Update gdb to 7.11.
am: 5102a42dbb

* commit '5102a42dbbd313551dec806dedcb2c4b41ca2549':
  Update gdb to 7.11.

Change-Id: I46057b49d0401396298cc3d4649579f41d9a1f8f
diff --git a/NOTICE b/NOTICE
index 8a40de8..b1dcc02 100644
--- a/NOTICE
+++ b/NOTICE
@@ -339,6 +339,383 @@
 library.  If this is what you want to do, use the GNU Library General
 Public License instead of this License.
 
+Copyright (C) Lucent Technologies 1997
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appear in all
+copies and that both that the copyright notice and this
+permission notice and warranty disclaimer appear in supporting
+documentation, and that the name Lucent Technologies or any of
+its entities not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior
+permission.
+
+LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
+IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
+Copyright (C) 2016 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          59 Temple Place - Suite 330, Boston, MA
+                          02111-1307, USA.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  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.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+		     END OF TERMS AND CONDITIONS
+
+	Appendix: 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
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision 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, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This 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 Library General
+Public License instead of this License.
+
 A. HISTORY OF THE SOFTWARE
 ==========================
 
@@ -618,3 +995,1450 @@
 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  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.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+		     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
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision 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, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This 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 Library General
+Public License instead of this License.
+
+Copyright (C) 2016 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Yasm is Copyright (c) 2001-2014 Peter Johnson and other Yasm developers.
+
+Yasm developers and/or contributors include:
+  Peter Johnson
+  Michael Urman
+  Brian Gladman (Visual Studio build files, other fixes)
+  Stanislav Karchebny (options parser)
+  Mathieu Monnier (SSE4 instruction patches, NASM preprocessor additions)
+  Anonymous "NASM64" developer (NASM preprocessor fixes)
+  Stephen Polkowski (x86 instruction patches)
+  Henryk Richter (Mach-O object format)
+  Ben Skeggs (patches, bug reports)
+  Alexei Svitkine (GAS preprocessor)
+  Samuel Thibault (TASM parser and frontend)
+
+-----------------------------------
+Yasm licensing overview and summary
+-----------------------------------
+
+Note: This document does not provide legal advice nor is it the actual
+license of any part of Yasm.  See the individual licenses for complete
+details.  Consult a lawyer for legal advice.
+
+The primary license of Yasm is the 2-clause BSD license.  Please use this
+license if you plan on submitting code to the project.
+
+Yasm has absolutely no warranty; not even for merchantibility or fitness
+for a particular purpose.
+
+-------
+Libyasm
+-------
+Libyasm is 2-clause or 3-clause BSD licensed, with the exception of
+bitvect, which is triple-licensed under the Artistic license, GPL, and
+LGPL.  Libyasm is thus GPL and LGPL compatible.  In addition, this also
+means that libyasm is free for binary-only distribution as long as the
+terms of the 3-clause BSD license and Artistic license (as it applies to
+bitvect) are fulfilled.
+
+-------
+Modules
+-------
+The modules are 2-clause or 3-clause BSD licensed.
+
+---------
+Frontends
+---------
+The frontends are 2-clause BSD licensed.
+
+-------------
+License Texts
+-------------
+The full text of all licenses are provided in separate files in the source
+distribution.  Each source file may include the entire license (in the case
+of the BSD and Artistic licenses), or may reference the GPL or LGPL license
+file.
+
+BSD.txt - 2-clause and 3-clause BSD licenses
+Artistic.txt - Artistic license
+GNU_GPL-2.0 - GNU General Public License
+GNU_LGPL-2.0 - GNU Library General Public License
+
+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.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER 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 AUTHOR OR OTHER 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.
+-------------------------------------------------------------------------------
+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 author nor the names of other contributors
+   may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER 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 AUTHOR OR OTHER 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.
+-------------------------------------------------------------------------------
+NASM is now licensed under the 2-clause BSD license, also known as the
+simplified BSD license.
+
+    Copyright 1996-2009 the NASM Authors - All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following
+    conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+      
+      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+
+
+
+
+
+			 The "Artistic License"
+
+				Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to make
+reasonable modifications.
+
+Definitions:
+
+	"Package" refers to the collection of files distributed by the
+	Copyright Holder, and derivatives of that collection of files
+	created through textual modification.
+
+	"Standard Version" refers to such a Package if it has not been
+	modified, or has been modified in accordance with the wishes
+	of the Copyright Holder as specified below.
+
+	"Copyright Holder" is whoever is named in the copyright or
+	copyrights for the package.
+
+	"You" is you, if you're thinking about copying or distributing
+	this Package.
+
+	"Reasonable copying fee" is whatever you can justify on the
+	basis of media cost, duplication charges, time of people involved,
+	and so on.  (You will not be required to justify it to the
+	Copyright Holder, but only to the computing community at large
+	as a market that must bear the fee.)
+
+	"Freely Available" means that no fee is charged for the item
+	itself, though there may be fees involved in handling the item.
+	It also means that recipients of the item may redistribute it
+	under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+derived from the Public Domain or from the Copyright Holder.  A Package
+modified in such a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided
+that you insert a prominent notice in each changed file stating how and
+when you changed that file, and provided that you do at least ONE of the
+following:
+
+    a) place your modifications in the Public Domain or otherwise make them
+    Freely Available, such as by posting said modifications to Usenet or
+    an equivalent medium, or placing the modifications on a major archive
+    site such as uunet.uu.net, or by allowing the Copyright Holder to include
+    your modifications in the Standard Version of the Package.
+
+    b) use the modified Package only within your corporation or organization.
+
+    c) rename any non-standard executables so the names do not conflict
+    with standard executables, which must also be provided, and provide
+    a separate manual page for each non-standard executable that clearly
+    documents how it differs from the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+executable form, provided that you do at least ONE of the following:
+
+    a) distribute a Standard Version of the executables and library files,
+    together with instructions (in the manual page or equivalent) on where
+    to get the Standard Version.
+
+    b) accompany the distribution with the machine-readable source of
+    the Package with your modifications.
+
+    c) give non-standard executables non-standard names, and clearly
+    document the differences in manual pages (or equivalent), together
+    with instructions on where to get the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this
+Package.  You may charge any fee you choose for support of this
+Package.  You may not charge a fee for this Package itself.  However,
+you may distribute this Package in aggregate with other (possibly
+commercial) programs as part of a larger (possibly commercial) software
+distribution provided that you do not advertise this Package as a
+product of your own.  You may embed this Package's interpreter within
+an executable of yours (by linking); this shall be construed as a mere
+form of aggregation, provided that the complete Standard Version of the
+interpreter is so embedded.
+
+6. The scripts and library files supplied as input to or produced as
+output from the programs of this Package do not automatically fall
+under the copyright of this Package, but belong to whoever generated
+them, and may be sold commercially, and may be aggregated with this
+Package.  If such scripts or library files are aggregated with this
+Package via the so-called "undump" or "unexec" methods of producing a
+binary executable image, then distribution of such an image shall
+neither be construed as a distribution of this Package nor shall it
+fall under the restrictions of Paragraphs 3 and 4, provided that you do
+not represent such an executable image as a Standard Version of this
+Package.
+
+7. C subroutines (or comparably compiled subroutines in other
+languages) supplied by you and linked into this Package in order to
+emulate subroutines and variables of the language defined by this
+Package shall not be considered part of this Package, but are the
+equivalent of input as in Paragraph 6, provided these subroutines do
+not change the language in any way that would cause it to fail the
+regression tests for the language.
+
+8. Aggregation of this Package with a commercial distribution is always
+permitted provided that the use of this Package is embedded; that is,
+when no overt attempt is made to make this Package's interfaces visible
+to the end user of the commercial distribution.  Such use shall not be
+construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+				The End
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  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.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+		     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
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision 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, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This 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 Library General
+Public License instead of this License.
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+    		      51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, 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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library 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 Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year> <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library 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
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/bin/gcore b/bin/gcore
index 2760715..287f689 100755
--- a/bin/gcore
+++ b/bin/gcore
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-#   Copyright (C) 2003-2015 Free Software Foundation, Inc.
+#   Copyright (C) 2003-2016 Free Software Foundation, Inc.
 
 # 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
diff --git a/bin/gdb-orig b/bin/gdb-orig
index 80aa5f6..242fedf 100755
--- a/bin/gdb-orig
+++ b/bin/gdb-orig
Binary files differ
diff --git a/bin/pydoc b/bin/pydoc
new file mode 100755
index 0000000..4462ff0
--- /dev/null
+++ b/bin/pydoc
@@ -0,0 +1,5 @@
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
+
+import pydoc
+if __name__ == '__main__':
+    pydoc.cli()
diff --git a/bin/python b/bin/python
deleted file mode 120000
index 551ab26..0000000
--- a/bin/python
+++ /dev/null
@@ -1 +0,0 @@
-python2
\ No newline at end of file
diff --git a/bin/python b/bin/python
new file mode 100755
index 0000000..0f750b3
--- /dev/null
+++ b/bin/python
Binary files differ
diff --git a/bin/python-config b/bin/python-config
deleted file mode 120000
index 758027f..0000000
--- a/bin/python-config
+++ /dev/null
@@ -1 +0,0 @@
-python2-config
\ No newline at end of file
diff --git a/bin/python-config b/bin/python-config
new file mode 100755
index 0000000..c36d9db
--- /dev/null
+++ b/bin/python-config
@@ -0,0 +1,57 @@
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
+
+import sys
+import os
+import getopt
+from distutils import sysconfig
+
+valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
+              'ldflags', 'help']
+
+def exit_with_usage(code=1):
+    print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
+                                            '|'.join('--'+opt for opt in valid_opts))
+    sys.exit(code)
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
+except getopt.error:
+    exit_with_usage()
+
+if not opts:
+    exit_with_usage()
+
+pyver = sysconfig.get_config_var('VERSION')
+getvar = sysconfig.get_config_var
+
+opt_flags = [flag for (flag, val) in opts]
+
+if '--help' in opt_flags:
+    exit_with_usage(code=0)
+
+for opt in opt_flags:
+    if opt == '--prefix':
+        print sysconfig.PREFIX
+
+    elif opt == '--exec-prefix':
+        print sysconfig.EXEC_PREFIX
+
+    elif opt in ('--includes', '--cflags'):
+        flags = ['-I' + sysconfig.get_python_inc(),
+                 '-I' + sysconfig.get_python_inc(plat_specific=True)]
+        if opt == '--cflags':
+            flags.extend(getvar('CFLAGS').split())
+        print ' '.join(flags)
+
+    elif opt in ('--libs', '--ldflags'):
+        libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
+        libs.append('-lpython'+pyver)
+        # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+        # shared library in prefix/lib/.
+        if opt == '--ldflags':
+            if not getvar('Py_ENABLE_SHARED'):
+                libs.insert(0, '-L' + getvar('LIBPL'))
+            if not getvar('PYTHONFRAMEWORK'):
+                libs.extend(getvar('LINKFORSHARED').split())
+        print ' '.join(libs)
+
diff --git a/bin/python-config.sh b/bin/python-config.sh
index 05aa2b3..d708bba 100755
--- a/bin/python-config.sh
+++ b/bin/python-config.sh
@@ -31,7 +31,7 @@
     echo $RESULT
 }
 
-prefix_build="/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64"
+prefix_build="/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools"
 prefix_real=$(installed_prefix "$0")
 
 exec_prefix_build="${prefix}"
diff --git a/bin/python2 b/bin/python2
deleted file mode 120000
index 8f7a3c1..0000000
--- a/bin/python2
+++ /dev/null
@@ -1 +0,0 @@
-python2.7
\ No newline at end of file
diff --git a/bin/python2 b/bin/python2
new file mode 100755
index 0000000..0f750b3
--- /dev/null
+++ b/bin/python2
Binary files differ
diff --git a/bin/python2-config b/bin/python2-config
deleted file mode 120000
index 785f36f..0000000
--- a/bin/python2-config
+++ /dev/null
@@ -1 +0,0 @@
-python2.7-config
\ No newline at end of file
diff --git a/bin/python2-config b/bin/python2-config
new file mode 100755
index 0000000..c36d9db
--- /dev/null
+++ b/bin/python2-config
@@ -0,0 +1,57 @@
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
+
+import sys
+import os
+import getopt
+from distutils import sysconfig
+
+valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
+              'ldflags', 'help']
+
+def exit_with_usage(code=1):
+    print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
+                                            '|'.join('--'+opt for opt in valid_opts))
+    sys.exit(code)
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
+except getopt.error:
+    exit_with_usage()
+
+if not opts:
+    exit_with_usage()
+
+pyver = sysconfig.get_config_var('VERSION')
+getvar = sysconfig.get_config_var
+
+opt_flags = [flag for (flag, val) in opts]
+
+if '--help' in opt_flags:
+    exit_with_usage(code=0)
+
+for opt in opt_flags:
+    if opt == '--prefix':
+        print sysconfig.PREFIX
+
+    elif opt == '--exec-prefix':
+        print sysconfig.EXEC_PREFIX
+
+    elif opt in ('--includes', '--cflags'):
+        flags = ['-I' + sysconfig.get_python_inc(),
+                 '-I' + sysconfig.get_python_inc(plat_specific=True)]
+        if opt == '--cflags':
+            flags.extend(getvar('CFLAGS').split())
+        print ' '.join(flags)
+
+    elif opt in ('--libs', '--ldflags'):
+        libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
+        libs.append('-lpython'+pyver)
+        # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+        # shared library in prefix/lib/.
+        if opt == '--ldflags':
+            if not getvar('Py_ENABLE_SHARED'):
+                libs.insert(0, '-L' + getvar('LIBPL'))
+            if not getvar('PYTHONFRAMEWORK'):
+                libs.extend(getvar('LINKFORSHARED').split())
+        print ' '.join(libs)
+
diff --git a/bin/python2.7 b/bin/python2.7
index 3a675e3..0f750b3 100755
--- a/bin/python2.7
+++ b/bin/python2.7
Binary files differ
diff --git a/bin/python2.7-config b/bin/python2.7-config
index 6fb0471..c36d9db 100755
--- a/bin/python2.7-config
+++ b/bin/python2.7-config
@@ -1,4 +1,4 @@
-#!/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/bin/python2.7
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
 
 import sys
 import os
diff --git a/lib/libpython2.7.a b/lib/libpython2.7.a
index 545f025..e79703c 100755
--- a/lib/libpython2.7.a
+++ b/lib/libpython2.7.a
Binary files differ
diff --git a/lib/pkgconfig/python-2.7.pc b/lib/pkgconfig/python-2.7.pc
index a02e80b..658c189 100644
--- a/lib/pkgconfig/python-2.7.pc
+++ b/lib/pkgconfig/python-2.7.pc
@@ -1,4 +1,4 @@
-prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64
+prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
 exec_prefix=${prefix}
 libdir=${exec_prefix}/lib
 includedir=${prefix}/include
diff --git a/lib/pkgconfig/python.pc b/lib/pkgconfig/python.pc
deleted file mode 120000
index b7dff7f..0000000
--- a/lib/pkgconfig/python.pc
+++ /dev/null
@@ -1 +0,0 @@
-python2.pc
\ No newline at end of file
diff --git a/lib/pkgconfig/python.pc b/lib/pkgconfig/python.pc
new file mode 100644
index 0000000..658c189
--- /dev/null
+++ b/lib/pkgconfig/python.pc
@@ -0,0 +1,13 @@
+prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: Python
+Description: Python library
+Requires: 
+Version: 2.7
+Libs.private: -lpthread -ldl  -lutil
+Libs: -L${libdir} -lpython2.7
+Cflags: -I${includedir}/python2.7 
+
diff --git a/lib/pkgconfig/python2.pc b/lib/pkgconfig/python2.pc
deleted file mode 120000
index b5ac60c..0000000
--- a/lib/pkgconfig/python2.pc
+++ /dev/null
@@ -1 +0,0 @@
-python-2.7.pc
\ No newline at end of file
diff --git a/lib/pkgconfig/python2.pc b/lib/pkgconfig/python2.pc
new file mode 100644
index 0000000..658c189
--- /dev/null
+++ b/lib/pkgconfig/python2.pc
@@ -0,0 +1,13 @@
+prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: Python
+Description: Python library
+Requires: 
+Version: 2.7
+Libs.private: -lpthread -ldl  -lutil
+Libs: -L${libdir} -lpython2.7
+Cflags: -I${includedir}/python2.7 
+
diff --git a/lib/python2.7/_sysconfigdata.py b/lib/python2.7/_sysconfigdata.py
index c447809..c17f160 100644
--- a/lib/python2.7/_sysconfigdata.py
+++ b/lib/python2.7/_sysconfigdata.py
@@ -3,9 +3,9 @@
  'AIX_GENUINE_CPLUSPLUS': 0,
  'AR': 'x86_64-linux-gnu-ar',
  'ARFLAGS': 'rc',
- 'ASDLGEN': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
- 'ASDLGEN_FILES': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl.py /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
- 'AST_ASDL': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/Python.asdl',
+ 'ASDLGEN': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
+ 'ASDLGEN_FILES': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl.py /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
+ 'AST_ASDL': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/Python.asdl',
  'AST_C': 'Python/Python-ast.c',
  'AST_C_DIR': 'Python',
  'AST_H': 'Include/Python-ast.h',
@@ -14,8 +14,8 @@
  'BASECFLAGS': '-fno-strict-aliasing',
  'BASEMODLIBS': '',
  'BEOS_THREADS': 0,
- 'BINDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/bin',
- 'BINLIBDEST': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'BINDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin',
+ 'BINLIBDEST': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
  'BLDLIBRARY': 'libpython2.7.a',
  'BLDSHARED': 'x86_64-linux-gnu-gcc -shared',
  'BUILDEXE': '',
@@ -25,18 +25,18 @@
  'CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes',
  'CFLAGSFORSHARED': '',
  'CONFIGFILES': 'configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in',
- 'CONFIG_ARGS': "'--prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='",
- 'CONFINCLUDEDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include',
- 'CONFINCLUDEPY': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
+ 'CONFIG_ARGS': "'--prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='",
+ 'CONFINCLUDEDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include',
+ 'CONFINCLUDEPY': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
  'COREPYTHONPATH': ':plat-linux2:lib-tk:lib-old',
- 'CPPFLAGS': '-I. -IInclude -I/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Include',
+ 'CPPFLAGS': '-I. -IInclude -I/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Include',
  'CXX': 'x86_64-linux-gnu-g++ -pthread',
  'C_THREADS': 0,
  'DELIM': ':',
- 'DESTDIRS': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/lib-dynload',
- 'DESTLIB': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'DESTDIRS': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7 /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/lib-dynload',
+ 'DESTLIB': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
  'DESTPATH': '',
- 'DESTSHARED': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/lib-dynload',
+ 'DESTSHARED': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/lib-dynload',
  'DIRMODE': 755,
  'DIST': 'README ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Demo Ext-dummy',
  'DISTDIRS': 'Include Lib Misc Demo Ext-dummy',
@@ -62,7 +62,7 @@
  'GNULD': 'yes',
  'GRAMMAR_C': 'Python/graminit.c',
  'GRAMMAR_H': 'Include/graminit.h',
- 'GRAMMAR_INPUT': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Grammar/Grammar',
+ 'GRAMMAR_INPUT': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Grammar/Grammar',
  'HAVE_ACOSH': 1,
  'HAVE_ADDRINFO': 1,
  'HAVE_ALARM': 1,
@@ -351,9 +351,9 @@
  'HGVERSION': '',
  'HOST_GNU_TYPE': 'x86_64-pc-linux-gnu',
  'HURD_C_THREADS': 0,
- 'INCLDIRSTOMAKE': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
- 'INCLUDEDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include',
- 'INCLUDEPY': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
+ 'INCLDIRSTOMAKE': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7 /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
+ 'INCLUDEDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include',
+ 'INCLUDEPY': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
  'INSTALL': '/usr/bin/install -c',
  'INSTALL_DATA': '/usr/bin/install -c -m 644',
  'INSTALL_PROGRAM': '/usr/bin/install -c',
@@ -367,15 +367,15 @@
  'LDLIBRARYDIR': '',
  'LDSHARED': 'x86_64-linux-gnu-gcc -shared',
  'LIBC': '',
- 'LIBDEST': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
- 'LIBDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib',
+ 'LIBDEST': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
+ 'LIBDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib',
  'LIBFFI_INCLUDEDIR': '',
  'LIBM': '-lm',
  'LIBOBJDIR': 'Python/',
  'LIBOBJS': '',
- 'LIBP': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
- 'LIBPC': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/pkgconfig',
- 'LIBPL': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/config',
+ 'LIBP': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
+ 'LIBPC': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/pkgconfig',
+ 'LIBPL': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/config',
  'LIBRARY': 'libpython2.7.a',
  'LIBRARY_OBJS': '\\',
  'LIBS': '-lpthread -ldl  -lutil',
@@ -388,20 +388,20 @@
  'MACHDEPPATH': ':plat-linux2',
  'MACHDEPS': 'plat-linux2',
  'MACHDEP_OBJS': '',
- 'MACHDESTLIB': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'MACHDESTLIB': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
  'MACH_C_THREADS': 0,
  'MACOSX_DEPLOYMENT_TARGET': '',
  'MAINCC': 'x86_64-linux-gnu-gcc -pthread',
  'MAJOR_IN_MKDEV': 0,
  'MAJOR_IN_SYSMACROS': 0,
- 'MAKESETUP': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Modules/makesetup',
- 'MANDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/share/man',
+ 'MAKESETUP': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Modules/makesetup',
+ 'MANDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/share/man',
  'MEMTESTOPTS': '-l -x test_subprocess test_io test_lib2to3 \\ -x test_dl test___all__ test_fork1 \\',
  'MKDIR_P': '/bin/mkdir -p',
  'MODLIBS': '',
  'MODOBJS': 'Modules/posixmodule.o  Modules/threadmodule.o  Modules/signalmodule.o  Modules/errnomodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/_weakref.o  Modules/zipimport.o  Modules/symtablemodule.o  Modules/xxsubtype.o',
  'MODULE_OBJS': '\\',
- 'MSYSVPATH': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'MSYSVPATH': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
  'MULTIARCH': 'x86_64-linux-gnu',
  'MVWDELCH_IS_EXPRESSION': 1,
  'NT_THREADS': 0,
@@ -427,7 +427,7 @@
  'PLATMACPATH': ':plat-mac:plat-mac/lib-scriptpackages',
  'POBJS': '\\',
  'POSIX_SEMAPHORES_NOT_ENABLED': 0,
- 'PROFILE_TASK': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck',
+ 'PROFILE_TASK': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck',
  'PSRCS': '\\',
  'PTHREAD_SYSTEM_SCHED_SUPPORTED': 1,
  'PURIFY': '',
@@ -441,7 +441,7 @@
  'PYTHON_FOR_BUILD': './python -E',
  'PYTHON_HEADERS': '\\',
  'PYTHON_OBJS': '\\',
- 'PY_CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Include  -DPy_BUILD_CORE',
+ 'PY_CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Include  -DPy_BUILD_CORE',
  'PY_FORMAT_LONG_LONG': '"ll"',
  'PY_FORMAT_SIZE_T': '"z"',
  'PY_UNICODE_TYPE': 'unsigned short',
@@ -455,7 +455,7 @@
  'RESSRCDIR': 'Mac/Resources/framework',
  'RETSIGTYPE': 'void',
  'RUNSHARED': '',
- 'SCRIPTDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib',
+ 'SCRIPTDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib',
  'SETPGRP_HAVE_ARG': 0,
  'SGI_ABI': '',
  'SHELL': '/bin/sh',
@@ -483,7 +483,7 @@
  'SIZEOF__BOOL': 1,
  'SO': '.so',
  'SRCDIRS': 'Parser Grammar Objects Python Modules Mac',
- 'SRC_GDB_HOOKS': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Tools/gdb/libpython.py',
+ 'SRC_GDB_HOOKS': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Tools/gdb/libpython.py',
  'STDC_HEADERS': 1,
  'STRICT_SYSV_CURSES': "/* Don't use ncurses extensions */",
  'STRINGLIB_HEADERS': '\\',
@@ -495,7 +495,7 @@
  'TANH_PRESERVES_ZERO_SIGN': 1,
  'TESTOPTS': '-l',
  'TESTPATH': '',
- 'TESTPROG': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Lib/test/regrtest.py',
+ 'TESTPROG': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Lib/test/regrtest.py',
  'TESTPYTHON': './python -Wd -3 -E -tt',
  'TESTPYTHONOPTS': '',
  'THREADOBJ': 'Python/thread.o',
@@ -507,7 +507,7 @@
  'USE_TOOLBOX_OBJECT_GLUE': 0,
  'VA_LIST_IS_ARRAY': 1,
  'VERSION': '2.7',
- 'VPATH': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'VPATH': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
  'WANT_SIGFPE_HANDLER': 0,
  'WANT_WCTYPE_FUNCTIONS': 0,
  'WINDOW_HAS_FLAGS': 1,
@@ -522,11 +522,11 @@
  'WITH_VALGRIND': 0,
  'X87_DOUBLE_ROUNDING': 0,
  'XMLLIBSUBDIRS': 'xml xml/dom xml/etree xml/parsers xml/sax',
- 'abs_builddir': '/buildbot/tmp/buildhost/build-python-linux-x86_64-2.7.5',
- 'abs_srcdir': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'abs_builddir': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/build-python-linux-x86_64-2.7.5',
+ 'abs_srcdir': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
  'build': 'x86_64-pc-linux-gnu',
- 'datarootdir': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/share',
- 'exec_prefix': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64',
+ 'datarootdir': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/share',
+ 'exec_prefix': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools',
  'host': 'x86_64-pc-linux-gnu',
- 'prefix': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64',
- 'srcdir': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5'}
+ 'prefix': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools',
+ 'srcdir': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5'}
diff --git a/lib/python2.7/config/Makefile b/lib/python2.7/config/Makefile
index cd97577..fb509c9 100644
--- a/lib/python2.7/config/Makefile
+++ b/lib/python2.7/config/Makefile
@@ -26,11 +26,11 @@
 
 # === Variables set by configure
 VERSION=	2.7
-srcdir=		/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-VPATH=		/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-MSYSVPATH=	/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-abs_srcdir=	/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-abs_builddir=	/buildbot/tmp/buildhost/build-python-linux-x86_64-2.7.5
+srcdir=		/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+VPATH=		/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+MSYSVPATH=	/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+abs_srcdir=	/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+abs_builddir=	/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/build-python-linux-x86_64-2.7.5
 build=		x86_64-pc-linux-gnu
 host=		x86_64-pc-linux-gnu
 
@@ -95,7 +95,7 @@
 MULTIARCH=	x86_64-linux-gnu
 
 # Install prefix for architecture-independent files
-prefix=		/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64
+prefix=		/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
 
 # Install prefix for architecture-dependent files
 exec_prefix=	${prefix}
@@ -154,7 +154,7 @@
 FILEMODE=	644
 
 # configure script arguments
-CONFIG_ARGS=	 '--prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='
+CONFIG_ARGS=	 '--prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='
 
 
 # Subdirectories with code
@@ -541,7 +541,7 @@
 # for a shared core library; otherwise, this rule is a noop.
 $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
 	if test -n "$(DLLLIBRARY)"; then \
-		$(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
+		$(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) -static-libgcc $^ \
 			$(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
 	else true; \
 	fi
diff --git a/lib/python2.7/config/config.c b/lib/python2.7/config/config.c
index 44cca93..e61842e 100644
--- a/lib/python2.7/config/config.c
+++ b/lib/python2.7/config/config.c
@@ -1,4 +1,4 @@
-/* Generated automatically from /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Modules/config.c.in by makesetup. */
+/* Generated automatically from /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Modules/config.c.in by makesetup. */
 /* -*- C -*- ***********************************************
 Copyright (c) 2000, BeOpen.com.
 Copyright (c) 1995-2000, Corporation for National Research Initiatives.
diff --git a/lib/python2.7/config/libpython2.7.a b/lib/python2.7/config/libpython2.7.a
index 147d851..a006d33 100644
--- a/lib/python2.7/config/libpython2.7.a
+++ b/lib/python2.7/config/libpython2.7.a
Binary files differ
diff --git a/lib/python2.7/config/python.o b/lib/python2.7/config/python.o
index 6ea6b2b..49cb71e 100644
--- a/lib/python2.7/config/python.o
+++ b/lib/python2.7/config/python.o
Binary files differ
diff --git a/lib/python2.7/distutils/tests/Setup.sample b/lib/python2.7/distutils/tests/Setup.sample
deleted file mode 100644
index 36c4290..0000000
--- a/lib/python2.7/distutils/tests/Setup.sample
+++ /dev/null
@@ -1,67 +0,0 @@
-# Setup file from the pygame project
-
-#--StartConfig
-SDL = -I/usr/include/SDL -D_REENTRANT -lSDL
-FONT = -lSDL_ttf
-IMAGE = -lSDL_image
-MIXER = -lSDL_mixer
-SMPEG = -lsmpeg
-PNG = -lpng
-JPEG = -ljpeg
-SCRAP = -lX11
-PORTMIDI = -lportmidi
-PORTTIME = -lporttime
-#--EndConfig
-
-#DEBUG = -C-W -C-Wall
-DEBUG = 
-
-#the following modules are optional. you will want to compile
-#everything you can, but you can ignore ones you don't have
-#dependencies for, just comment them out
-
-imageext src/imageext.c $(SDL) $(IMAGE) $(PNG) $(JPEG) $(DEBUG)
-font src/font.c $(SDL) $(FONT) $(DEBUG)
-mixer src/mixer.c $(SDL) $(MIXER) $(DEBUG)
-mixer_music src/music.c $(SDL) $(MIXER) $(DEBUG)
-_numericsurfarray src/_numericsurfarray.c $(SDL) $(DEBUG)
-_numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG)
-movie src/movie.c $(SDL) $(SMPEG) $(DEBUG)
-scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG)
-_camera src/_camera.c src/camera_v4l2.c src/camera_v4l.c $(SDL) $(DEBUG)
-pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG)
-
-GFX = src/SDL_gfx/SDL_gfxPrimitives.c 
-#GFX = src/SDL_gfx/SDL_gfxBlitFunc.c src/SDL_gfx/SDL_gfxPrimitives.c 
-gfxdraw src/gfxdraw.c $(SDL) $(GFX) $(DEBUG)
-
-
-
-#these modules are required for pygame to run. they only require
-#SDL as a dependency. these should not be altered
-
-base src/base.c $(SDL) $(DEBUG)
-cdrom src/cdrom.c $(SDL) $(DEBUG)
-color src/color.c $(SDL) $(DEBUG)
-constants src/constants.c $(SDL) $(DEBUG)
-display src/display.c $(SDL) $(DEBUG)
-event src/event.c $(SDL) $(DEBUG)
-fastevent src/fastevent.c src/fastevents.c $(SDL) $(DEBUG)
-key src/key.c $(SDL) $(DEBUG)
-mouse src/mouse.c $(SDL) $(DEBUG)
-rect src/rect.c $(SDL) $(DEBUG)
-rwobject src/rwobject.c $(SDL) $(DEBUG)
-surface src/surface.c src/alphablit.c src/surface_fill.c $(SDL) $(DEBUG)
-surflock src/surflock.c $(SDL) $(DEBUG)
-time src/time.c $(SDL) $(DEBUG)
-joystick src/joystick.c $(SDL) $(DEBUG)
-draw src/draw.c $(SDL) $(DEBUG)
-image src/image.c $(SDL) $(DEBUG)
-overlay src/overlay.c $(SDL) $(DEBUG)
-transform src/transform.c src/rotozoom.c src/scale2x.c src/scale_mmx.c $(SDL) $(DEBUG)
-mask src/mask.c src/bitmask.c $(SDL) $(DEBUG)
-bufferproxy src/bufferproxy.c $(SDL) $(DEBUG)
-pixelarray src/pixelarray.c $(SDL) $(DEBUG)
-_arraysurfarray src/_arraysurfarray.c $(SDL) $(DEBUG)
-
-
diff --git a/lib/python2.7/distutils/tests/__init__.py b/lib/python2.7/distutils/tests/__init__.py
deleted file mode 100644
index 697ff84..0000000
--- a/lib/python2.7/distutils/tests/__init__.py
+++ /dev/null
@@ -1,36 +0,0 @@
-"""Test suite for distutils.
-
-This test suite consists of a collection of test modules in the
-distutils.tests package.  Each test module has a name starting with
-'test' and contains a function test_suite().  The function is expected
-to return an initialized unittest.TestSuite instance.
-
-Tests for the command classes in the distutils.command package are
-included in distutils.tests as well, instead of using a separate
-distutils.command.tests package, since command identification is done
-by import rather than matching pre-defined names.
-
-"""
-
-import os
-import sys
-import unittest
-from test.test_support import run_unittest
-
-
-here = os.path.dirname(__file__) or os.curdir
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    for fn in os.listdir(here):
-        if fn.startswith("test") and fn.endswith(".py"):
-            modname = "distutils.tests." + fn[:-3]
-            __import__(modname)
-            module = sys.modules[modname]
-            suite.addTest(module.test_suite())
-    return suite
-
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/setuptools_build_ext.py b/lib/python2.7/distutils/tests/setuptools_build_ext.py
deleted file mode 100644
index 21fa9e8..0000000
--- a/lib/python2.7/distutils/tests/setuptools_build_ext.py
+++ /dev/null
@@ -1,287 +0,0 @@
-from distutils.command.build_ext import build_ext as _du_build_ext
-try:
-    # Attempt to use Pyrex for building extensions, if available
-    from Pyrex.Distutils.build_ext import build_ext as _build_ext
-except ImportError:
-    _build_ext = _du_build_ext
-
-import os, sys
-from distutils.file_util import copy_file
-
-from distutils.tests.setuptools_extension import Library
-
-from distutils.ccompiler import new_compiler
-from distutils.sysconfig import customize_compiler, get_config_var
-get_config_var("LDSHARED")  # make sure _config_vars is initialized
-from distutils.sysconfig import _config_vars
-from distutils import log
-from distutils.errors import *
-
-have_rtld = False
-use_stubs = False
-libtype = 'shared'
-
-if sys.platform == "darwin":
-    use_stubs = True
-elif os.name != 'nt':
-    try:
-        from dl import RTLD_NOW
-        have_rtld = True
-        use_stubs = True
-    except ImportError:
-        pass
-
-def if_dl(s):
-    if have_rtld:
-        return s
-    return ''
-
-
-
-
-
-
-class build_ext(_build_ext):
-    def run(self):
-        """Build extensions in build directory, then copy if --inplace"""
-        old_inplace, self.inplace = self.inplace, 0
-        _build_ext.run(self)
-        self.inplace = old_inplace
-        if old_inplace:
-            self.copy_extensions_to_source()
-
-    def copy_extensions_to_source(self):
-        build_py = self.get_finalized_command('build_py')
-        for ext in self.extensions:
-            fullname = self.get_ext_fullname(ext.name)
-            filename = self.get_ext_filename(fullname)
-            modpath = fullname.split('.')
-            package = '.'.join(modpath[:-1])
-            package_dir = build_py.get_package_dir(package)
-            dest_filename = os.path.join(package_dir,os.path.basename(filename))
-            src_filename = os.path.join(self.build_lib,filename)
-
-            # Always copy, even if source is older than destination, to ensure
-            # that the right extensions for the current Python/platform are
-            # used.
-            copy_file(
-                src_filename, dest_filename, verbose=self.verbose,
-                dry_run=self.dry_run
-            )
-            if ext._needs_stub:
-                self.write_stub(package_dir or os.curdir, ext, True)
-
-
-    if _build_ext is not _du_build_ext and not hasattr(_build_ext,'pyrex_sources'):
-        # Workaround for problems using some Pyrex versions w/SWIG and/or 2.4
-        def swig_sources(self, sources, *otherargs):
-            # first do any Pyrex processing
-            sources = _build_ext.swig_sources(self, sources) or sources
-            # Then do any actual SWIG stuff on the remainder
-            return _du_build_ext.swig_sources(self, sources, *otherargs)
-
-
-
-    def get_ext_filename(self, fullname):
-        filename = _build_ext.get_ext_filename(self,fullname)
-        ext = self.ext_map[fullname]
-        if isinstance(ext,Library):
-            fn, ext = os.path.splitext(filename)
-            return self.shlib_compiler.library_filename(fn,libtype)
-        elif use_stubs and ext._links_to_dynamic:
-            d,fn = os.path.split(filename)
-            return os.path.join(d,'dl-'+fn)
-        else:
-            return filename
-
-    def initialize_options(self):
-        _build_ext.initialize_options(self)
-        self.shlib_compiler = None
-        self.shlibs = []
-        self.ext_map = {}
-
-    def finalize_options(self):
-        _build_ext.finalize_options(self)
-        self.extensions = self.extensions or []
-        self.check_extensions_list(self.extensions)
-        self.shlibs = [ext for ext in self.extensions
-                        if isinstance(ext,Library)]
-        if self.shlibs:
-            self.setup_shlib_compiler()
-        for ext in self.extensions:
-            ext._full_name = self.get_ext_fullname(ext.name)
-        for ext in self.extensions:
-            fullname = ext._full_name
-            self.ext_map[fullname] = ext
-            ltd = ext._links_to_dynamic = \
-                self.shlibs and self.links_to_dynamic(ext) or False
-            ext._needs_stub = ltd and use_stubs and not isinstance(ext,Library)
-            filename = ext._file_name = self.get_ext_filename(fullname)
-            libdir = os.path.dirname(os.path.join(self.build_lib,filename))
-            if ltd and libdir not in ext.library_dirs:
-                ext.library_dirs.append(libdir)
-            if ltd and use_stubs and os.curdir not in ext.runtime_library_dirs:
-                ext.runtime_library_dirs.append(os.curdir)
-
-    def setup_shlib_compiler(self):
-        compiler = self.shlib_compiler = new_compiler(
-            compiler=self.compiler, dry_run=self.dry_run, force=self.force
-        )
-        if sys.platform == "darwin":
-            tmp = _config_vars.copy()
-            try:
-                # XXX Help!  I don't have any idea whether these are right...
-                _config_vars['LDSHARED'] = "gcc -Wl,-x -dynamiclib -undefined dynamic_lookup"
-                _config_vars['CCSHARED'] = " -dynamiclib"
-                _config_vars['SO'] = ".dylib"
-                customize_compiler(compiler)
-            finally:
-                _config_vars.clear()
-                _config_vars.update(tmp)
-        else:
-            customize_compiler(compiler)
-
-        if self.include_dirs is not None:
-            compiler.set_include_dirs(self.include_dirs)
-        if self.define is not None:
-            # 'define' option is a list of (name,value) tuples
-            for (name,value) in self.define:
-                compiler.define_macro(name, value)
-        if self.undef is not None:
-            for macro in self.undef:
-                compiler.undefine_macro(macro)
-        if self.libraries is not None:
-            compiler.set_libraries(self.libraries)
-        if self.library_dirs is not None:
-            compiler.set_library_dirs(self.library_dirs)
-        if self.rpath is not None:
-            compiler.set_runtime_library_dirs(self.rpath)
-        if self.link_objects is not None:
-            compiler.set_link_objects(self.link_objects)
-
-        # hack so distutils' build_extension() builds a library instead
-        compiler.link_shared_object = link_shared_object.__get__(compiler)
-
-
-
-    def get_export_symbols(self, ext):
-        if isinstance(ext,Library):
-            return ext.export_symbols
-        return _build_ext.get_export_symbols(self,ext)
-
-    def build_extension(self, ext):
-        _compiler = self.compiler
-        try:
-            if isinstance(ext,Library):
-                self.compiler = self.shlib_compiler
-            _build_ext.build_extension(self,ext)
-            if ext._needs_stub:
-                self.write_stub(
-                    self.get_finalized_command('build_py').build_lib, ext
-                )
-        finally:
-            self.compiler = _compiler
-
-    def links_to_dynamic(self, ext):
-        """Return true if 'ext' links to a dynamic lib in the same package"""
-        # XXX this should check to ensure the lib is actually being built
-        # XXX as dynamic, and not just using a locally-found version or a
-        # XXX static-compiled version
-        libnames = dict.fromkeys([lib._full_name for lib in self.shlibs])
-        pkg = '.'.join(ext._full_name.split('.')[:-1]+[''])
-        for libname in ext.libraries:
-            if pkg+libname in libnames: return True
-        return False
-
-    def get_outputs(self):
-        outputs = _build_ext.get_outputs(self)
-        optimize = self.get_finalized_command('build_py').optimize
-        for ext in self.extensions:
-            if ext._needs_stub:
-                base = os.path.join(self.build_lib, *ext._full_name.split('.'))
-                outputs.append(base+'.py')
-                outputs.append(base+'.pyc')
-                if optimize:
-                    outputs.append(base+'.pyo')
-        return outputs
-
-    def write_stub(self, output_dir, ext, compile=False):
-        log.info("writing stub loader for %s to %s",ext._full_name, output_dir)
-        stub_file = os.path.join(output_dir, *ext._full_name.split('.'))+'.py'
-        if compile and os.path.exists(stub_file):
-            raise DistutilsError(stub_file+" already exists! Please delete.")
-        if not self.dry_run:
-            f = open(stub_file,'w')
-            f.write('\n'.join([
-                "def __bootstrap__():",
-                "   global __bootstrap__, __file__, __loader__",
-                "   import sys, os, pkg_resources, imp"+if_dl(", dl"),
-                "   __file__ = pkg_resources.resource_filename(__name__,%r)"
-                   % os.path.basename(ext._file_name),
-                "   del __bootstrap__",
-                "   if '__loader__' in globals():",
-                "       del __loader__",
-                if_dl("   old_flags = sys.getdlopenflags()"),
-                "   old_dir = os.getcwd()",
-                "   try:",
-                "     os.chdir(os.path.dirname(__file__))",
-                if_dl("     sys.setdlopenflags(dl.RTLD_NOW)"),
-                "     imp.load_dynamic(__name__,__file__)",
-                "   finally:",
-                if_dl("     sys.setdlopenflags(old_flags)"),
-                "     os.chdir(old_dir)",
-                "__bootstrap__()",
-                "" # terminal \n
-            ]))
-            f.close()
-        if compile:
-            from distutils.util import byte_compile
-            byte_compile([stub_file], optimize=0,
-                         force=True, dry_run=self.dry_run)
-            optimize = self.get_finalized_command('install_lib').optimize
-            if optimize > 0:
-                byte_compile([stub_file], optimize=optimize,
-                             force=True, dry_run=self.dry_run)
-            if os.path.exists(stub_file) and not self.dry_run:
-                os.unlink(stub_file)
-
-
-if use_stubs or os.name=='nt':
-    # Build shared libraries
-    #
-    def link_shared_object(self, objects, output_libname, output_dir=None,
-        libraries=None, library_dirs=None, runtime_library_dirs=None,
-        export_symbols=None, debug=0, extra_preargs=None,
-        extra_postargs=None, build_temp=None, target_lang=None
-    ):  self.link(
-            self.SHARED_LIBRARY, objects, output_libname,
-            output_dir, libraries, library_dirs, runtime_library_dirs,
-            export_symbols, debug, extra_preargs, extra_postargs,
-            build_temp, target_lang
-        )
-else:
-    # Build static libraries everywhere else
-    libtype = 'static'
-
-    def link_shared_object(self, objects, output_libname, output_dir=None,
-        libraries=None, library_dirs=None, runtime_library_dirs=None,
-        export_symbols=None, debug=0, extra_preargs=None,
-        extra_postargs=None, build_temp=None, target_lang=None
-    ):
-        # XXX we need to either disallow these attrs on Library instances,
-        #     or warn/abort here if set, or something...
-        #libraries=None, library_dirs=None, runtime_library_dirs=None,
-        #export_symbols=None, extra_preargs=None, extra_postargs=None,
-        #build_temp=None
-
-        assert output_dir is None   # distutils build_ext doesn't pass this
-        output_dir,filename = os.path.split(output_libname)
-        basename, ext = os.path.splitext(filename)
-        if self.library_filename("x").startswith('lib'):
-            # strip 'lib' prefix; this is kludgy if some platform uses
-            # a different prefix
-            basename = basename[3:]
-
-        self.create_static_lib(
-            objects, basename, output_dir, debug, target_lang
-        )
diff --git a/lib/python2.7/distutils/tests/setuptools_extension.py b/lib/python2.7/distutils/tests/setuptools_extension.py
deleted file mode 100644
index ec6b690..0000000
--- a/lib/python2.7/distutils/tests/setuptools_extension.py
+++ /dev/null
@@ -1,51 +0,0 @@
-from distutils.core import Extension as _Extension
-from distutils.core import Distribution as _Distribution
-
-def _get_unpatched(cls):
-    """Protect against re-patching the distutils if reloaded
-
-    Also ensures that no other distutils extension monkeypatched the distutils
-    first.
-    """
-    while cls.__module__.startswith('setuptools'):
-        cls, = cls.__bases__
-    if not cls.__module__.startswith('distutils'):
-        raise AssertionError(
-            "distutils has already been patched by %r" % cls
-        )
-    return cls
-
-_Distribution = _get_unpatched(_Distribution)
-_Extension = _get_unpatched(_Extension)
-
-try:
-    from Pyrex.Distutils.build_ext import build_ext
-except ImportError:
-    have_pyrex = False
-else:
-    have_pyrex = True
-
-
-class Extension(_Extension):
-    """Extension that uses '.c' files in place of '.pyx' files"""
-
-    if not have_pyrex:
-        # convert .pyx extensions to .c
-        def __init__(self,*args,**kw):
-            _Extension.__init__(self,*args,**kw)
-            sources = []
-            for s in self.sources:
-                if s.endswith('.pyx'):
-                    sources.append(s[:-3]+'c')
-                else:
-                    sources.append(s)
-            self.sources = sources
-
-class Library(Extension):
-    """Just like a regular Extension, but built as a library instead"""
-
-import sys, distutils.core, distutils.extension
-distutils.core.Extension = Extension
-distutils.extension.Extension = Extension
-if 'distutils.command.build_ext' in sys.modules:
-    sys.modules['distutils.command.build_ext'].Extension = Extension
diff --git a/lib/python2.7/distutils/tests/support.py b/lib/python2.7/distutils/tests/support.py
deleted file mode 100644
index 4e6058d..0000000
--- a/lib/python2.7/distutils/tests/support.py
+++ /dev/null
@@ -1,221 +0,0 @@
-"""Support code for distutils test cases."""
-import os
-import sys
-import shutil
-import tempfile
-import unittest
-import sysconfig
-from copy import deepcopy
-import warnings
-
-from distutils import log
-from distutils.log import DEBUG, INFO, WARN, ERROR, FATAL
-from distutils.core import Distribution
-
-
-def capture_warnings(func):
-    def _capture_warnings(*args, **kw):
-        with warnings.catch_warnings():
-            warnings.simplefilter("ignore")
-            return func(*args, **kw)
-    return _capture_warnings
-
-
-class LoggingSilencer(object):
-
-    def setUp(self):
-        super(LoggingSilencer, self).setUp()
-        self.threshold = log.set_threshold(log.FATAL)
-        # catching warnings
-        # when log will be replaced by logging
-        # we won't need such monkey-patch anymore
-        self._old_log = log.Log._log
-        log.Log._log = self._log
-        self.logs = []
-
-    def tearDown(self):
-        log.set_threshold(self.threshold)
-        log.Log._log = self._old_log
-        super(LoggingSilencer, self).tearDown()
-
-    def _log(self, level, msg, args):
-        if level not in (DEBUG, INFO, WARN, ERROR, FATAL):
-            raise ValueError('%s wrong log level' % str(level))
-        self.logs.append((level, msg, args))
-
-    def get_logs(self, *levels):
-        def _format(msg, args):
-            if len(args) == 0:
-                return msg
-            return msg % args
-        return [_format(msg, args) for level, msg, args
-                in self.logs if level in levels]
-
-    def clear_logs(self):
-        self.logs = []
-
-
-class TempdirManager(object):
-    """Mix-in class that handles temporary directories for test cases.
-
-    This is intended to be used with unittest.TestCase.
-    """
-
-    def setUp(self):
-        super(TempdirManager, self).setUp()
-        self.old_cwd = os.getcwd()
-        self.tempdirs = []
-
-    def tearDown(self):
-        # Restore working dir, for Solaris and derivatives, where rmdir()
-        # on the current directory fails.
-        os.chdir(self.old_cwd)
-        super(TempdirManager, self).tearDown()
-        while self.tempdirs:
-            d = self.tempdirs.pop()
-            shutil.rmtree(d, os.name in ('nt', 'cygwin'))
-
-    def mkdtemp(self):
-        """Create a temporary directory that will be cleaned up.
-
-        Returns the path of the directory.
-        """
-        d = tempfile.mkdtemp()
-        self.tempdirs.append(d)
-        return d
-
-    def write_file(self, path, content='xxx'):
-        """Writes a file in the given path.
-
-
-        path can be a string or a sequence.
-        """
-        if isinstance(path, (list, tuple)):
-            path = os.path.join(*path)
-        f = open(path, 'w')
-        try:
-            f.write(content)
-        finally:
-            f.close()
-
-    def create_dist(self, pkg_name='foo', **kw):
-        """Will generate a test environment.
-
-        This function creates:
-         - a Distribution instance using keywords
-         - a temporary directory with a package structure
-
-        It returns the package directory and the distribution
-        instance.
-        """
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, pkg_name)
-        os.mkdir(pkg_dir)
-        dist = Distribution(attrs=kw)
-
-        return pkg_dir, dist
-
-
-class DummyCommand:
-    """Class to store options for retrieval via set_undefined_options()."""
-
-    def __init__(self, **kwargs):
-        for kw, val in kwargs.items():
-            setattr(self, kw, val)
-
-    def ensure_finalized(self):
-        pass
-
-
-class EnvironGuard(object):
-
-    def setUp(self):
-        super(EnvironGuard, self).setUp()
-        self.old_environ = deepcopy(os.environ)
-
-    def tearDown(self):
-        for key, value in self.old_environ.items():
-            if os.environ.get(key) != value:
-                os.environ[key] = value
-
-        for key in os.environ.keys():
-            if key not in self.old_environ:
-                del os.environ[key]
-
-        super(EnvironGuard, self).tearDown()
-
-
-def copy_xxmodule_c(directory):
-    """Helper for tests that need the xxmodule.c source file.
-
-    Example use:
-
-        def test_compile(self):
-            copy_xxmodule_c(self.tmpdir)
-            self.assertIn('xxmodule.c', os.listdir(self.tmpdir))
-
-    If the source file can be found, it will be copied to *directory*.  If not,
-    the test will be skipped.  Errors during copy are not caught.
-    """
-    filename = _get_xxmodule_path()
-    if filename is None:
-        raise unittest.SkipTest('cannot find xxmodule.c (test must run in '
-                                'the python build dir)')
-    shutil.copy(filename, directory)
-
-
-def _get_xxmodule_path():
-    # FIXME when run from regrtest, srcdir seems to be '.', which does not help
-    # us find the xxmodule.c file
-    srcdir = sysconfig.get_config_var('srcdir')
-    candidates = [
-        # use installed copy if available
-        os.path.join(os.path.dirname(__file__), 'xxmodule.c'),
-        # otherwise try using copy from build directory
-        os.path.join(srcdir, 'Modules', 'xxmodule.c'),
-        # srcdir mysteriously can be $srcdir/Lib/distutils/tests when
-        # this file is run from its parent directory, so walk up the
-        # tree to find the real srcdir
-        os.path.join(srcdir, '..', '..', '..', 'Modules', 'xxmodule.c'),
-    ]
-    for path in candidates:
-        if os.path.exists(path):
-            return path
-
-
-def fixup_build_ext(cmd):
-    """Function needed to make build_ext tests pass.
-
-    When Python was build with --enable-shared on Unix, -L. is not good
-    enough to find the libpython<blah>.so.  This is because regrtest runs
-    it under a tempdir, not in the top level where the .so lives.  By the
-    time we've gotten here, Python's already been chdir'd to the tempdir.
-
-    When Python was built with in debug mode on Windows, build_ext commands
-    need their debug attribute set, and it is not done automatically for
-    some reason.
-
-    This function handles both of these things.  Example use:
-
-        cmd = build_ext(dist)
-        support.fixup_build_ext(cmd)
-        cmd.ensure_finalized()
-
-    Unlike most other Unix platforms, Mac OS X embeds absolute paths
-    to shared libraries into executables, so the fixup is not needed there.
-    """
-    if os.name == 'nt':
-        cmd.debug = sys.executable.endswith('_d.exe')
-    elif sysconfig.get_config_var('Py_ENABLE_SHARED'):
-        # To further add to the shared builds fun on Unix, we can't just add
-        # library_dirs to the Extension() instance because that doesn't get
-        # plumbed through to the final compiler command.
-        runshared = sysconfig.get_config_var('RUNSHARED')
-        if runshared is None:
-            cmd.library_dirs = ['.']
-        else:
-            if sys.platform == 'darwin':
-                cmd.library_dirs = []
-            else:
-                name, equals, value = runshared.partition('=')
-                cmd.library_dirs = value.split(os.pathsep)
diff --git a/lib/python2.7/distutils/tests/test_archive_util.py b/lib/python2.7/distutils/tests/test_archive_util.py
deleted file mode 100644
index f01cec3..0000000
--- a/lib/python2.7/distutils/tests/test_archive_util.py
+++ /dev/null
@@ -1,328 +0,0 @@
-# -*- coding: utf-8 -*-
-"""Tests for distutils.archive_util."""
-__revision__ = "$Id$"
-
-import unittest
-import os
-import sys
-import tarfile
-from os.path import splitdrive
-import warnings
-
-from distutils.archive_util import (check_archive_formats, make_tarball,
-                                    make_zipfile, make_archive,
-                                    ARCHIVE_FORMATS)
-from distutils.spawn import find_executable, spawn
-from distutils.tests import support
-from test.test_support import check_warnings, run_unittest
-
-try:
-    import grp
-    import pwd
-    UID_GID_SUPPORT = True
-except ImportError:
-    UID_GID_SUPPORT = False
-
-try:
-    import zipfile
-    ZIP_SUPPORT = True
-except ImportError:
-    ZIP_SUPPORT = find_executable('zip')
-
-# some tests will fail if zlib is not available
-try:
-    import zlib
-except ImportError:
-    zlib = None
-
-def can_fs_encode(filename):
-    """
-    Return True if the filename can be saved in the file system.
-    """
-    if os.path.supports_unicode_filenames:
-        return True
-    try:
-        filename.encode(sys.getfilesystemencoding())
-    except UnicodeEncodeError:
-        return False
-    return True
-
-
-class ArchiveUtilTestCase(support.TempdirManager,
-                          support.LoggingSilencer,
-                          unittest.TestCase):
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_make_tarball(self):
-        self._make_tarball('archive')
-
-    def _make_tarball(self, target_name):
-        # creating something to tar
-        tmpdir = self.mkdtemp()
-        self.write_file([tmpdir, 'file1'], 'xxx')
-        self.write_file([tmpdir, 'file2'], 'xxx')
-        os.mkdir(os.path.join(tmpdir, 'sub'))
-        self.write_file([tmpdir, 'sub', 'file3'], 'xxx')
-
-        tmpdir2 = self.mkdtemp()
-        unittest.skipUnless(splitdrive(tmpdir)[0] == splitdrive(tmpdir2)[0],
-                            "source and target should be on same drive")
-
-        base_name = os.path.join(tmpdir2, target_name)
-
-        # working with relative paths to avoid tar warnings
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(splitdrive(base_name)[1], '.')
-        finally:
-            os.chdir(old_dir)
-
-        # check if the compressed tarball was created
-        tarball = base_name + '.tar.gz'
-        self.assertTrue(os.path.exists(tarball))
-
-        # trying an uncompressed one
-        base_name = os.path.join(tmpdir2, target_name)
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(splitdrive(base_name)[1], '.', compress=None)
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar'
-        self.assertTrue(os.path.exists(tarball))
-
-    def _tarinfo(self, path):
-        tar = tarfile.open(path)
-        try:
-            names = tar.getnames()
-            names.sort()
-            return tuple(names)
-        finally:
-            tar.close()
-
-    def _create_files(self):
-        # creating something to tar
-        tmpdir = self.mkdtemp()
-        dist = os.path.join(tmpdir, 'dist')
-        os.mkdir(dist)
-        self.write_file([dist, 'file1'], 'xxx')
-        self.write_file([dist, 'file2'], 'xxx')
-        os.mkdir(os.path.join(dist, 'sub'))
-        self.write_file([dist, 'sub', 'file3'], 'xxx')
-        os.mkdir(os.path.join(dist, 'sub2'))
-        tmpdir2 = self.mkdtemp()
-        base_name = os.path.join(tmpdir2, 'archive')
-        return tmpdir, tmpdir2, base_name
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    @unittest.skipUnless(find_executable('tar') and find_executable('gzip'),
-                         'Need the tar command to run')
-    def test_tarfile_vs_tar(self):
-        tmpdir, tmpdir2, base_name =  self._create_files()
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(base_name, 'dist')
-        finally:
-            os.chdir(old_dir)
-
-        # check if the compressed tarball was created
-        tarball = base_name + '.tar.gz'
-        self.assertTrue(os.path.exists(tarball))
-
-        # now create another tarball using `tar`
-        tarball2 = os.path.join(tmpdir, 'archive2.tar.gz')
-        tar_cmd = ['tar', '-cf', 'archive2.tar', 'dist']
-        gzip_cmd = ['gzip', '-f9', 'archive2.tar']
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            spawn(tar_cmd)
-            spawn(gzip_cmd)
-        finally:
-            os.chdir(old_dir)
-
-        self.assertTrue(os.path.exists(tarball2))
-        # let's compare both tarballs
-        self.assertEqual(self._tarinfo(tarball), self._tarinfo(tarball2))
-
-        # trying an uncompressed one
-        base_name = os.path.join(tmpdir2, 'archive')
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(base_name, 'dist', compress=None)
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar'
-        self.assertTrue(os.path.exists(tarball))
-
-        # now for a dry_run
-        base_name = os.path.join(tmpdir2, 'archive')
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(base_name, 'dist', compress=None, dry_run=True)
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar'
-        self.assertTrue(os.path.exists(tarball))
-
-    @unittest.skipUnless(find_executable('compress'),
-                         'The compress program is required')
-    def test_compress_deprecated(self):
-        tmpdir, tmpdir2, base_name =  self._create_files()
-
-        # using compress and testing the PendingDeprecationWarning
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            with check_warnings() as w:
-                warnings.simplefilter("always")
-                make_tarball(base_name, 'dist', compress='compress')
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar.Z'
-        self.assertTrue(os.path.exists(tarball))
-        self.assertEqual(len(w.warnings), 1)
-
-        # same test with dry_run
-        os.remove(tarball)
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            with check_warnings() as w:
-                warnings.simplefilter("always")
-                make_tarball(base_name, 'dist', compress='compress',
-                             dry_run=True)
-        finally:
-            os.chdir(old_dir)
-        self.assertTrue(not os.path.exists(tarball))
-        self.assertEqual(len(w.warnings), 1)
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    @unittest.skipUnless(ZIP_SUPPORT, 'Need zip support to run')
-    def test_make_zipfile(self):
-        # creating something to tar
-        tmpdir = self.mkdtemp()
-        self.write_file([tmpdir, 'file1'], 'xxx')
-        self.write_file([tmpdir, 'file2'], 'xxx')
-
-        tmpdir2 = self.mkdtemp()
-        base_name = os.path.join(tmpdir2, 'archive')
-        make_zipfile(base_name, tmpdir)
-
-        # check if the compressed tarball was created
-        tarball = base_name + '.zip'
-
-    def test_check_archive_formats(self):
-        self.assertEqual(check_archive_formats(['gztar', 'xxx', 'zip']),
-                         'xxx')
-        self.assertEqual(check_archive_formats(['gztar', 'zip']), None)
-
-    def test_make_archive(self):
-        tmpdir = self.mkdtemp()
-        base_name = os.path.join(tmpdir, 'archive')
-        self.assertRaises(ValueError, make_archive, base_name, 'xxx')
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    def test_make_archive_owner_group(self):
-        # testing make_archive with owner and group, with various combinations
-        # this works even if there's not gid/uid support
-        if UID_GID_SUPPORT:
-            group = grp.getgrgid(0)[0]
-            owner = pwd.getpwuid(0)[0]
-        else:
-            group = owner = 'root'
-
-        base_dir, root_dir, base_name =  self._create_files()
-        base_name = os.path.join(self.mkdtemp() , 'archive')
-        res = make_archive(base_name, 'zip', root_dir, base_dir, owner=owner,
-                           group=group)
-        self.assertTrue(os.path.exists(res))
-
-        res = make_archive(base_name, 'zip', root_dir, base_dir)
-        self.assertTrue(os.path.exists(res))
-
-        res = make_archive(base_name, 'tar', root_dir, base_dir,
-                           owner=owner, group=group)
-        self.assertTrue(os.path.exists(res))
-
-        res = make_archive(base_name, 'tar', root_dir, base_dir,
-                           owner='kjhkjhkjg', group='oihohoh')
-        self.assertTrue(os.path.exists(res))
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
-    def test_tarfile_root_owner(self):
-        tmpdir, tmpdir2, base_name =  self._create_files()
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        group = grp.getgrgid(0)[0]
-        owner = pwd.getpwuid(0)[0]
-        try:
-            archive_name = make_tarball(base_name, 'dist', compress=None,
-                                        owner=owner, group=group)
-        finally:
-            os.chdir(old_dir)
-
-        # check if the compressed tarball was created
-        self.assertTrue(os.path.exists(archive_name))
-
-        # now checks the rights
-        archive = tarfile.open(archive_name)
-        try:
-            for member in archive.getmembers():
-                self.assertEqual(member.uid, 0)
-                self.assertEqual(member.gid, 0)
-        finally:
-            archive.close()
-
-    def test_make_archive_cwd(self):
-        current_dir = os.getcwd()
-        def _breaks(*args, **kw):
-            raise RuntimeError()
-        ARCHIVE_FORMATS['xxx'] = (_breaks, [], 'xxx file')
-        try:
-            try:
-                make_archive('xxx', 'xxx', root_dir=self.mkdtemp())
-            except:
-                pass
-            self.assertEqual(os.getcwd(), current_dir)
-        finally:
-            del ARCHIVE_FORMATS['xxx']
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_make_tarball_unicode(self):
-        """
-        Mirror test_make_tarball, except filename is unicode.
-        """
-        self._make_tarball(u'archive')
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    @unittest.skipUnless(can_fs_encode(u'årchiv'),
-        'File system cannot handle this filename')
-    def test_make_tarball_unicode_latin1(self):
-        """
-        Mirror test_make_tarball, except filename is unicode and contains
-        latin characters.
-        """
-        self._make_tarball(u'årchiv') # note this isn't a real word
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    @unittest.skipUnless(can_fs_encode(u'のアーカイブ'),
-        'File system cannot handle this filename')
-    def test_make_tarball_unicode_extended(self):
-        """
-        Mirror test_make_tarball, except filename is unicode and contains
-        characters outside the latin charset.
-        """
-        self._make_tarball(u'のアーカイブ') # japanese for archive
-
-def test_suite():
-    return unittest.makeSuite(ArchiveUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist.py b/lib/python2.7/distutils/tests/test_bdist.py
deleted file mode 100644
index 121d099..0000000
--- a/lib/python2.7/distutils/tests/test_bdist.py
+++ /dev/null
@@ -1,52 +0,0 @@
-"""Tests for distutils.command.bdist."""
-import os
-import unittest
-
-from test.test_support import run_unittest
-
-from distutils.command.bdist import bdist
-from distutils.tests import support
-
-
-class BuildTestCase(support.TempdirManager,
-                    unittest.TestCase):
-
-    def test_formats(self):
-        # let's create a command and make sure
-        # we can set the format
-        dist = self.create_dist()[1]
-        cmd = bdist(dist)
-        cmd.formats = ['msi']
-        cmd.ensure_finalized()
-        self.assertEqual(cmd.formats, ['msi'])
-
-        # what formats does bdist offer?
-        formats = ['bztar', 'gztar', 'msi', 'rpm', 'tar',
-                   'wininst', 'zip', 'ztar']
-        found = sorted(cmd.format_command)
-        self.assertEqual(found, formats)
-
-    def test_skip_build(self):
-        # bug #10946: bdist --skip-build should trickle down to subcommands
-        dist = self.create_dist()[1]
-        cmd = bdist(dist)
-        cmd.skip_build = 1
-        cmd.ensure_finalized()
-        dist.command_obj['bdist'] = cmd
-
-        names = ['bdist_dumb', 'bdist_wininst']
-        # bdist_rpm does not support --skip-build
-        if os.name == 'nt':
-            names.append('bdist_msi')
-
-        for name in names:
-            subcmd = cmd.get_finalized_command(name)
-            self.assertTrue(subcmd.skip_build,
-                            '%s should take --skip-build from bdist' % name)
-
-
-def test_suite():
-    return unittest.makeSuite(BuildTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_dumb.py b/lib/python2.7/distutils/tests/test_bdist_dumb.py
deleted file mode 100644
index 5db3a85..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_dumb.py
+++ /dev/null
@@ -1,114 +0,0 @@
-"""Tests for distutils.command.bdist_dumb."""
-
-import os
-import sys
-import zipfile
-import unittest
-from test.test_support import run_unittest
-
-# zlib is not used here, but if it's not available
-# test_simple_built will fail
-try:
-    import zlib
-except ImportError:
-    zlib = None
-
-from distutils.core import Distribution
-from distutils.command.bdist_dumb import bdist_dumb
-from distutils.tests import support
-
-SETUP_PY = """\
-from distutils.core import setup
-import foo
-
-setup(name='foo', version='0.1', py_modules=['foo'],
-      url='xxx', author='xxx', author_email='xxx')
-
-"""
-
-class BuildDumbTestCase(support.TempdirManager,
-                        support.LoggingSilencer,
-                        support.EnvironGuard,
-                        unittest.TestCase):
-
-    def setUp(self):
-        super(BuildDumbTestCase, self).setUp()
-        self.old_location = os.getcwd()
-        self.old_sys_argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        os.chdir(self.old_location)
-        sys.argv = self.old_sys_argv[0]
-        sys.argv[:] = self.old_sys_argv[1]
-        super(BuildDumbTestCase, self).tearDown()
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_simple_built(self):
-
-        # let's create a simple package
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, 'foo')
-        os.mkdir(pkg_dir)
-        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
-        self.write_file((pkg_dir, 'foo.py'), '#')
-        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
-        self.write_file((pkg_dir, 'README'), '')
-
-        dist = Distribution({'name': 'foo', 'version': '0.1',
-                             'py_modules': ['foo'],
-                             'url': 'xxx', 'author': 'xxx',
-                             'author_email': 'xxx'})
-        dist.script_name = 'setup.py'
-        os.chdir(pkg_dir)
-
-        sys.argv = ['setup.py']
-        cmd = bdist_dumb(dist)
-
-        # so the output is the same no matter
-        # what is the platform
-        cmd.format = 'zip'
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # see what we have
-        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
-        base = "%s.%s.zip" % (dist.get_fullname(), cmd.plat_name)
-        if os.name == 'os2':
-            base = base.replace(':', '-')
-
-        self.assertEqual(dist_created, [base])
-
-        # now let's check what we have in the zip file
-        fp = zipfile.ZipFile(os.path.join('dist', base))
-        try:
-            contents = fp.namelist()
-        finally:
-            fp.close()
-
-        contents = sorted(os.path.basename(fn) for fn in contents)
-        wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
-        if not sys.dont_write_bytecode:
-            wanted.append('foo.pyc')
-        self.assertEqual(contents, sorted(wanted))
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        os.chdir(pkg_dir)
-        cmd = bdist_dumb(dist)
-        self.assertEqual(cmd.bdist_dir, None)
-        cmd.finalize_options()
-
-        # bdist_dir is initialized to bdist_base/dumb if not set
-        base = cmd.get_finalized_command('bdist').bdist_base
-        self.assertEqual(cmd.bdist_dir, os.path.join(base, 'dumb'))
-
-        # the format is set to a default value depending on the os.name
-        default = cmd.default_format[os.name]
-        self.assertEqual(cmd.format, default)
-
-def test_suite():
-    return unittest.makeSuite(BuildDumbTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_msi.py b/lib/python2.7/distutils/tests/test_bdist_msi.py
deleted file mode 100644
index 2df7c30..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_msi.py
+++ /dev/null
@@ -1,26 +0,0 @@
-"""Tests for distutils.command.bdist_msi."""
-import sys
-import unittest
-from test.test_support import run_unittest
-from distutils.tests import support
-
-
-@unittest.skipUnless(sys.platform == 'win32', 'these tests require Windows')
-class BDistMSITestCase(support.TempdirManager,
-                       support.LoggingSilencer,
-                       unittest.TestCase):
-
-    @unittest.skip("Require bdist_msi")
-    def test_minimal(self):
-        # minimal test XXX need more tests
-        from distutils.command.bdist_msi import bdist_msi
-        project_dir, dist = self.create_dist()
-        cmd = bdist_msi(dist)
-        cmd.ensure_finalized()
-
-
-def test_suite():
-    return unittest.makeSuite(BDistMSITestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_rpm.py b/lib/python2.7/distutils/tests/test_bdist_rpm.py
deleted file mode 100644
index 37d8915..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_rpm.py
+++ /dev/null
@@ -1,136 +0,0 @@
-"""Tests for distutils.command.bdist_rpm."""
-
-import unittest
-import sys
-import os
-import tempfile
-import shutil
-
-from test.test_support import run_unittest
-
-from distutils.core import Distribution
-from distutils.command.bdist_rpm import bdist_rpm
-from distutils.tests import support
-from distutils.spawn import find_executable
-from distutils import spawn
-from distutils.errors import DistutilsExecError
-
-SETUP_PY = """\
-from distutils.core import setup
-import foo
-
-setup(name='foo', version='0.1', py_modules=['foo'],
-      url='xxx', author='xxx', author_email='xxx')
-
-"""
-
-class BuildRpmTestCase(support.TempdirManager,
-                       support.LoggingSilencer,
-                       unittest.TestCase):
-
-    def setUp(self):
-        super(BuildRpmTestCase, self).setUp()
-        self.old_location = os.getcwd()
-        self.old_sys_argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        os.chdir(self.old_location)
-        sys.argv = self.old_sys_argv[0]
-        sys.argv[:] = self.old_sys_argv[1]
-        super(BuildRpmTestCase, self).tearDown()
-
-    def test_quiet(self):
-
-        # XXX I am unable yet to make this test work without
-        # spurious sdtout/stderr output under Mac OS X
-        if sys.platform != 'linux2':
-            return
-
-        # this test will run only if the rpm commands are found
-        if (find_executable('rpm') is None or
-            find_executable('rpmbuild') is None):
-            return
-
-        # let's create a package
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, 'foo')
-        os.mkdir(pkg_dir)
-        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
-        self.write_file((pkg_dir, 'foo.py'), '#')
-        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
-        self.write_file((pkg_dir, 'README'), '')
-
-        dist = Distribution({'name': 'foo', 'version': '0.1',
-                             'py_modules': ['foo'],
-                             'url': 'xxx', 'author': 'xxx',
-                             'author_email': 'xxx'})
-        dist.script_name = 'setup.py'
-        os.chdir(pkg_dir)
-
-        sys.argv = ['setup.py']
-        cmd = bdist_rpm(dist)
-        cmd.fix_python = True
-
-        # running in quiet mode
-        cmd.quiet = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
-        self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
-
-        # bug #2945: upload ignores bdist_rpm files
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
-
-    def test_no_optimize_flag(self):
-
-        # XXX I am unable yet to make this test work without
-        # spurious sdtout/stderr output under Mac OS X
-        if sys.platform != 'linux2':
-            return
-
-        # http://bugs.python.org/issue1533164
-        # this test will run only if the rpm command is found
-        if (find_executable('rpm') is None or
-            find_executable('rpmbuild') is None):
-            return
-
-        # let's create a package that brakes bdist_rpm
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, 'foo')
-        os.mkdir(pkg_dir)
-        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
-        self.write_file((pkg_dir, 'foo.py'), '#')
-        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
-        self.write_file((pkg_dir, 'README'), '')
-
-        dist = Distribution({'name': 'foo', 'version': '0.1',
-                             'py_modules': ['foo'],
-                             'url': 'xxx', 'author': 'xxx',
-                             'author_email': 'xxx'})
-        dist.script_name = 'setup.py'
-        os.chdir(pkg_dir)
-
-        sys.argv = ['setup.py']
-        cmd = bdist_rpm(dist)
-        cmd.fix_python = True
-
-        cmd.quiet = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
-        self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
-
-        # bug #2945: upload ignores bdist_rpm files
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
-
-        os.remove(os.path.join(pkg_dir, 'dist', 'foo-0.1-1.noarch.rpm'))
-
-def test_suite():
-    return unittest.makeSuite(BuildRpmTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_wininst.py b/lib/python2.7/distutils/tests/test_bdist_wininst.py
deleted file mode 100644
index c2b13b3..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_wininst.py
+++ /dev/null
@@ -1,32 +0,0 @@
-"""Tests for distutils.command.bdist_wininst."""
-import unittest
-
-from test.test_support import run_unittest
-
-from distutils.command.bdist_wininst import bdist_wininst
-from distutils.tests import support
-
-class BuildWinInstTestCase(support.TempdirManager,
-                           support.LoggingSilencer,
-                           unittest.TestCase):
-
-    def test_get_exe_bytes(self):
-
-        # issue5731: command was broken on non-windows platforms
-        # this test makes sure it works now for every platform
-        # let's create a command
-        pkg_pth, dist = self.create_dist()
-        cmd = bdist_wininst(dist)
-        cmd.ensure_finalized()
-
-        # let's run the code that finds the right wininst*.exe file
-        # and make sure it finds it and returns its content
-        # no matter what platform we have
-        exe_file = cmd.get_exe_bytes()
-        self.assertTrue(len(exe_file) > 10)
-
-def test_suite():
-    return unittest.makeSuite(BuildWinInstTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build.py b/lib/python2.7/distutils/tests/test_build.py
deleted file mode 100644
index eeb8d73..0000000
--- a/lib/python2.7/distutils/tests/test_build.py
+++ /dev/null
@@ -1,55 +0,0 @@
-"""Tests for distutils.command.build."""
-import unittest
-import os
-import sys
-from test.test_support import run_unittest
-
-from distutils.command.build import build
-from distutils.tests import support
-from sysconfig import get_platform
-
-class BuildTestCase(support.TempdirManager,
-                    support.LoggingSilencer,
-                    unittest.TestCase):
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build(dist)
-        cmd.finalize_options()
-
-        # if not specified, plat_name gets the current platform
-        self.assertEqual(cmd.plat_name, get_platform())
-
-        # build_purelib is build + lib
-        wanted = os.path.join(cmd.build_base, 'lib')
-        self.assertEqual(cmd.build_purelib, wanted)
-
-        # build_platlib is 'build/lib.platform-x.x[-pydebug]'
-        # examples:
-        #   build/lib.macosx-10.3-i386-2.7
-        plat_spec = '.%s-%s' % (cmd.plat_name, sys.version[0:3])
-        if hasattr(sys, 'gettotalrefcount'):
-            self.assertTrue(cmd.build_platlib.endswith('-pydebug'))
-            plat_spec += '-pydebug'
-        wanted = os.path.join(cmd.build_base, 'lib' + plat_spec)
-        self.assertEqual(cmd.build_platlib, wanted)
-
-        # by default, build_lib = build_purelib
-        self.assertEqual(cmd.build_lib, cmd.build_purelib)
-
-        # build_temp is build/temp.<plat>
-        wanted = os.path.join(cmd.build_base, 'temp' + plat_spec)
-        self.assertEqual(cmd.build_temp, wanted)
-
-        # build_scripts is build/scripts-x.x
-        wanted = os.path.join(cmd.build_base, 'scripts-' +  sys.version[0:3])
-        self.assertEqual(cmd.build_scripts, wanted)
-
-        # executable is os.path.normpath(sys.executable)
-        self.assertEqual(cmd.executable, os.path.normpath(sys.executable))
-
-def test_suite():
-    return unittest.makeSuite(BuildTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_clib.py b/lib/python2.7/distutils/tests/test_build_clib.py
deleted file mode 100644
index bef1bd9..0000000
--- a/lib/python2.7/distutils/tests/test_build_clib.py
+++ /dev/null
@@ -1,146 +0,0 @@
-"""Tests for distutils.command.build_clib."""
-import unittest
-import os
-import sys
-
-from test.test_support import run_unittest
-
-from distutils.command.build_clib import build_clib
-from distutils.errors import DistutilsSetupError
-from distutils.tests import support
-from distutils.spawn import find_executable
-
-class BuildCLibTestCase(support.TempdirManager,
-                        support.LoggingSilencer,
-                        unittest.TestCase):
-
-    def test_check_library_dist(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        # 'libraries' option must be a list
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list, 'foo')
-
-        # each element of 'libraries' must a 2-tuple
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          ['foo1', 'foo2'])
-
-        # first element of each tuple in 'libraries'
-        # must be a string (the library name)
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          [(1, 'foo1'), ('name', 'foo2')])
-
-        # library name may not contain directory separators
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          [('name', 'foo1'),
-                           ('another/name', 'foo2')])
-
-        # second element of each tuple must be a dictionary (build info)
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          [('name', {}),
-                           ('another', 'foo2')])
-
-        # those work
-        libs = [('name', {}), ('name', {'ok': 'good'})]
-        cmd.check_library_list(libs)
-
-    def test_get_source_files(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        # "in 'libraries' option 'sources' must be present and must be
-        # a list of source filenames
-        cmd.libraries = [('name', {})]
-        self.assertRaises(DistutilsSetupError, cmd.get_source_files)
-
-        cmd.libraries = [('name', {'sources': 1})]
-        self.assertRaises(DistutilsSetupError, cmd.get_source_files)
-
-        cmd.libraries = [('name', {'sources': ['a', 'b']})]
-        self.assertEqual(cmd.get_source_files(), ['a', 'b'])
-
-        cmd.libraries = [('name', {'sources': ('a', 'b')})]
-        self.assertEqual(cmd.get_source_files(), ['a', 'b'])
-
-        cmd.libraries = [('name', {'sources': ('a', 'b')}),
-                         ('name2', {'sources': ['c', 'd']})]
-        self.assertEqual(cmd.get_source_files(), ['a', 'b', 'c', 'd'])
-
-    def test_build_libraries(self):
-
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-        class FakeCompiler:
-            def compile(*args, **kw):
-                pass
-            create_static_lib = compile
-
-        cmd.compiler = FakeCompiler()
-
-        # build_libraries is also doing a bit of typoe checking
-        lib = [('name', {'sources': 'notvalid'})]
-        self.assertRaises(DistutilsSetupError, cmd.build_libraries, lib)
-
-        lib = [('name', {'sources': list()})]
-        cmd.build_libraries(lib)
-
-        lib = [('name', {'sources': tuple()})]
-        cmd.build_libraries(lib)
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        cmd.include_dirs = 'one-dir'
-        cmd.finalize_options()
-        self.assertEqual(cmd.include_dirs, ['one-dir'])
-
-        cmd.include_dirs = None
-        cmd.finalize_options()
-        self.assertEqual(cmd.include_dirs, [])
-
-        cmd.distribution.libraries = 'WONTWORK'
-        self.assertRaises(DistutilsSetupError, cmd.finalize_options)
-
-    def test_run(self):
-        # can't test on windows
-        if sys.platform == 'win32':
-            return
-
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        foo_c = os.path.join(pkg_dir, 'foo.c')
-        self.write_file(foo_c, 'int main(void) { return 1;}\n')
-        cmd.libraries = [('foo', {'sources': [foo_c]})]
-
-        build_temp = os.path.join(pkg_dir, 'build')
-        os.mkdir(build_temp)
-        cmd.build_temp = build_temp
-        cmd.build_clib = build_temp
-
-        # before we run the command, we want to make sure
-        # all commands are present on the system
-        # by creating a compiler and checking its executables
-        from distutils.ccompiler import new_compiler
-        from distutils.sysconfig import customize_compiler
-
-        compiler = new_compiler()
-        customize_compiler(compiler)
-        for ccmd in compiler.executables.values():
-            if ccmd is None:
-                continue
-            if find_executable(ccmd[0]) is None:
-                return # can't test
-
-        # this should work
-        cmd.run()
-
-        # let's check the result
-        self.assertTrue('libfoo.a' in os.listdir(build_temp))
-
-def test_suite():
-    return unittest.makeSuite(BuildCLibTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_ext.py b/lib/python2.7/distutils/tests/test_build_ext.py
deleted file mode 100644
index 94c6eea..0000000
--- a/lib/python2.7/distutils/tests/test_build_ext.py
+++ /dev/null
@@ -1,522 +0,0 @@
-import sys
-import os
-from StringIO import StringIO
-import textwrap
-
-from distutils.core import Extension, Distribution
-from distutils.command.build_ext import build_ext
-from distutils import sysconfig
-from distutils.tests import support
-from distutils.errors import (DistutilsSetupError, CompileError,
-                              DistutilsPlatformError)
-
-import unittest
-from test import test_support
-
-# http://bugs.python.org/issue4373
-# Don't load the xx module more than once.
-ALREADY_TESTED = False
-
-
-class BuildExtTestCase(support.TempdirManager,
-                       support.LoggingSilencer,
-                       unittest.TestCase):
-    def setUp(self):
-        super(BuildExtTestCase, self).setUp()
-        self.tmp_dir = self.mkdtemp()
-        self.xx_created = False
-        sys.path.append(self.tmp_dir)
-        self.addCleanup(sys.path.remove, self.tmp_dir)
-        if sys.version > "2.6":
-            import site
-            self.old_user_base = site.USER_BASE
-            site.USER_BASE = self.mkdtemp()
-            from distutils.command import build_ext
-            build_ext.USER_BASE = site.USER_BASE
-
-    def tearDown(self):
-        if self.xx_created:
-            test_support.unload('xx')
-            # XXX on Windows the test leaves a directory
-            # with xx module in TEMP
-        super(BuildExtTestCase, self).tearDown()
-
-    def test_build_ext(self):
-        global ALREADY_TESTED
-        support.copy_xxmodule_c(self.tmp_dir)
-        self.xx_created = True
-        xx_c = os.path.join(self.tmp_dir, 'xxmodule.c')
-        xx_ext = Extension('xx', [xx_c])
-        dist = Distribution({'name': 'xx', 'ext_modules': [xx_ext]})
-        dist.package_dir = self.tmp_dir
-        cmd = build_ext(dist)
-        support.fixup_build_ext(cmd)
-        cmd.build_lib = self.tmp_dir
-        cmd.build_temp = self.tmp_dir
-
-        old_stdout = sys.stdout
-        if not test_support.verbose:
-            # silence compiler output
-            sys.stdout = StringIO()
-        try:
-            cmd.ensure_finalized()
-            #Broken after issue 7712(r78136) : add a temp_cwd context manager to test_support ...
-            #Without current working dir: "...cannot find -lpython27"
-            #NOTE: [py3k svn r85559] First (uncontroversial) part of issue 9807, barry.warsaw, 2010-10-16 :
-            #  new _fixup_command is bogus, so we will use own work-around
-            cmd.library_dirs.insert(0, test_support.SAVEDCWD)
-            cmd.run()
-        finally:
-            sys.stdout = old_stdout
-
-        if ALREADY_TESTED:
-            return
-        else:
-            ALREADY_TESTED = True
-
-        import xx
-
-        for attr in ('error', 'foo', 'new', 'roj'):
-            self.assertTrue(hasattr(xx, attr))
-
-        self.assertEqual(xx.foo(2, 5), 7)
-        self.assertEqual(xx.foo(13,15), 28)
-        self.assertEqual(xx.new().demo(), None)
-        if test_support.HAVE_DOCSTRINGS:
-            doc = 'This is a template module just for instruction.'
-            self.assertEqual(xx.__doc__, doc)
-        self.assertTrue(isinstance(xx.Null(), xx.Null))
-        self.assertTrue(isinstance(xx.Str(), xx.Str))
-
-    def test_solaris_enable_shared(self):
-        dist = Distribution({'name': 'xx'})
-        cmd = build_ext(dist)
-        old = sys.platform
-
-        sys.platform = 'sunos' # fooling finalize_options
-        from distutils.sysconfig import  _config_vars
-        old_var = _config_vars.get('Py_ENABLE_SHARED')
-        _config_vars['Py_ENABLE_SHARED'] = 1
-        try:
-            cmd.ensure_finalized()
-        finally:
-            sys.platform = old
-            if old_var is None:
-                del _config_vars['Py_ENABLE_SHARED']
-            else:
-                _config_vars['Py_ENABLE_SHARED'] = old_var
-
-        # make sure we get some library dirs under solaris
-        self.assertTrue(len(cmd.library_dirs) > 0)
-
-    def test_user_site(self):
-        # site.USER_SITE was introduced in 2.6
-        if sys.version < '2.6':
-            return
-
-        import site
-        dist = Distribution({'name': 'xx'})
-        cmd = build_ext(dist)
-
-        # making sure the user option is there
-        options = [name for name, short, label in
-                   cmd.user_options]
-        self.assertIn('user', options)
-
-        # setting a value
-        cmd.user = 1
-
-        # setting user based lib and include
-        lib = os.path.join(site.USER_BASE, 'lib')
-        incl = os.path.join(site.USER_BASE, 'include')
-        os.mkdir(lib)
-        os.mkdir(incl)
-
-        cmd.ensure_finalized()
-
-        # see if include_dirs and library_dirs were set
-        self.assertIn(lib, cmd.library_dirs)
-        self.assertIn(lib, cmd.rpath)
-        self.assertIn(incl, cmd.include_dirs)
-
-    def test_finalize_options(self):
-        # Make sure Python's include directories (for Python.h, pyconfig.h,
-        # etc.) are in the include search path.
-        modules = [Extension('foo', ['xxx'])]
-        dist = Distribution({'name': 'xx', 'ext_modules': modules})
-        cmd = build_ext(dist)
-        cmd.finalize_options()
-
-        py_include = sysconfig.get_python_inc()
-        self.assertTrue(py_include in cmd.include_dirs)
-
-        plat_py_include = sysconfig.get_python_inc(plat_specific=1)
-        self.assertTrue(plat_py_include in cmd.include_dirs)
-
-        # make sure cmd.libraries is turned into a list
-        # if it's a string
-        cmd = build_ext(dist)
-        cmd.libraries = 'my_lib, other_lib lastlib'
-        cmd.finalize_options()
-        self.assertEqual(cmd.libraries, ['my_lib', 'other_lib', 'lastlib'])
-
-        # make sure cmd.library_dirs is turned into a list
-        # if it's a string
-        cmd = build_ext(dist)
-        cmd.library_dirs = 'my_lib_dir%sother_lib_dir' % os.pathsep
-        cmd.finalize_options()
-        self.assertIn('my_lib_dir', cmd.library_dirs)
-        self.assertIn('other_lib_dir', cmd.library_dirs)
-
-        # make sure rpath is turned into a list
-        # if it's a string
-        cmd = build_ext(dist)
-        cmd.rpath = 'one%stwo' % os.pathsep
-        cmd.finalize_options()
-        self.assertEqual(cmd.rpath, ['one', 'two'])
-
-        # XXX more tests to perform for win32
-
-        # make sure define is turned into 2-tuples
-        # strings if they are ','-separated strings
-        cmd = build_ext(dist)
-        cmd.define = 'one,two'
-        cmd.finalize_options()
-        self.assertEqual(cmd.define, [('one', '1'), ('two', '1')])
-
-        # make sure undef is turned into a list of
-        # strings if they are ','-separated strings
-        cmd = build_ext(dist)
-        cmd.undef = 'one,two'
-        cmd.finalize_options()
-        self.assertEqual(cmd.undef, ['one', 'two'])
-
-        # make sure swig_opts is turned into a list
-        cmd = build_ext(dist)
-        cmd.swig_opts = None
-        cmd.finalize_options()
-        self.assertEqual(cmd.swig_opts, [])
-
-        cmd = build_ext(dist)
-        cmd.swig_opts = '1 2'
-        cmd.finalize_options()
-        self.assertEqual(cmd.swig_opts, ['1', '2'])
-
-    def test_check_extensions_list(self):
-        dist = Distribution()
-        cmd = build_ext(dist)
-        cmd.finalize_options()
-
-        #'extensions' option must be a list of Extension instances
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, 'foo')
-
-        # each element of 'ext_modules' option must be an
-        # Extension instance or 2-tuple
-        exts = [('bar', 'foo', 'bar'), 'foo']
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        # first element of each tuple in 'ext_modules'
-        # must be the extension name (a string) and match
-        # a python dotted-separated name
-        exts = [('foo-bar', '')]
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        # second element of each tuple in 'ext_modules'
-        # must be a ary (build info)
-        exts = [('foo.bar', '')]
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        # ok this one should pass
-        exts = [('foo.bar', {'sources': [''], 'libraries': 'foo',
-                             'some': 'bar'})]
-        cmd.check_extensions_list(exts)
-        ext = exts[0]
-        self.assertTrue(isinstance(ext, Extension))
-
-        # check_extensions_list adds in ext the values passed
-        # when they are in ('include_dirs', 'library_dirs', 'libraries'
-        # 'extra_objects', 'extra_compile_args', 'extra_link_args')
-        self.assertEqual(ext.libraries, 'foo')
-        self.assertTrue(not hasattr(ext, 'some'))
-
-        # 'macros' element of build info dict must be 1- or 2-tuple
-        exts = [('foo.bar', {'sources': [''], 'libraries': 'foo',
-                'some': 'bar', 'macros': [('1', '2', '3'), 'foo']})]
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        exts[0][1]['macros'] = [('1', '2'), ('3',)]
-        cmd.check_extensions_list(exts)
-        self.assertEqual(exts[0].undef_macros, ['3'])
-        self.assertEqual(exts[0].define_macros, [('1', '2')])
-
-    def test_get_source_files(self):
-        modules = [Extension('foo', ['xxx'])]
-        dist = Distribution({'name': 'xx', 'ext_modules': modules})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        self.assertEqual(cmd.get_source_files(), ['xxx'])
-
-    def test_compiler_option(self):
-        # cmd.compiler is an option and
-        # should not be overriden by a compiler instance
-        # when the command is run
-        dist = Distribution()
-        cmd = build_ext(dist)
-        cmd.compiler = 'unix'
-        cmd.ensure_finalized()
-        cmd.run()
-        self.assertEqual(cmd.compiler, 'unix')
-
-    def test_get_outputs(self):
-        tmp_dir = self.mkdtemp()
-        c_file = os.path.join(tmp_dir, 'foo.c')
-        self.write_file(c_file, 'void initfoo(void) {};\n')
-        ext = Extension('foo', [c_file])
-        dist = Distribution({'name': 'xx',
-                             'ext_modules': [ext]})
-        cmd = build_ext(dist)
-        support.fixup_build_ext(cmd)
-        cmd.ensure_finalized()
-        self.assertEqual(len(cmd.get_outputs()), 1)
-
-        cmd.build_lib = os.path.join(self.tmp_dir, 'build')
-        cmd.build_temp = os.path.join(self.tmp_dir, 'tempt')
-
-        # issue #5977 : distutils build_ext.get_outputs
-        # returns wrong result with --inplace
-        other_tmp_dir = os.path.realpath(self.mkdtemp())
-        old_wd = os.getcwd()
-        #Without current working dir: "...cannot find -lpython27"
-        #NOTE: After issue #7712(r78136) test cannot use old_wd !
-        #cmd.library_dirs.insert(0, old_wd)
-        #NOTE: [py3k svn r85559] First (uncontroversial) part of issue 9807, barry.warsaw, 2010-10-16 :
-        #  new _fixup_command is bogus, so we will use own work-around
-        cmd.library_dirs.insert(0, test_support.SAVEDCWD)
-        os.chdir(other_tmp_dir)
-        try:
-            cmd.inplace = 1
-            cmd.run()
-            so_file = cmd.get_outputs()[0]
-        finally:
-            os.chdir(old_wd)
-        self.assertTrue(os.path.exists(so_file))
-        self.assertEqual(os.path.splitext(so_file)[-1],
-                         sysconfig.get_config_var('SO'))
-        so_dir = os.path.dirname(so_file)
-        self.assertEqual(so_dir, other_tmp_dir)
-        cmd.compiler = None
-        cmd.inplace = 0
-        cmd.run()
-        so_file = cmd.get_outputs()[0]
-        self.assertTrue(os.path.exists(so_file))
-        self.assertEqual(os.path.splitext(so_file)[-1],
-                         sysconfig.get_config_var('SO'))
-        so_dir = os.path.dirname(so_file)
-        self.assertEqual(so_dir, cmd.build_lib)
-
-        # inplace = 0, cmd.package = 'bar'
-        build_py = cmd.get_finalized_command('build_py')
-        build_py.package_dir = {'': 'bar'}
-        path = cmd.get_ext_fullpath('foo')
-        # checking that the last directory is the build_dir
-        path = os.path.split(path)[0]
-        self.assertEqual(path, cmd.build_lib)
-
-        # inplace = 1, cmd.package = 'bar'
-        cmd.inplace = 1
-        other_tmp_dir = os.path.realpath(self.mkdtemp())
-        old_wd = os.getcwd()
-        os.chdir(other_tmp_dir)
-        try:
-            path = cmd.get_ext_fullpath('foo')
-        finally:
-            os.chdir(old_wd)
-        # checking that the last directory is bar
-        path = os.path.split(path)[0]
-        lastdir = os.path.split(path)[-1]
-        self.assertEqual(lastdir, 'bar')
-
-    def test_ext_fullpath(self):
-        ext = sysconfig.get_config_vars()['SO']
-        dist = Distribution()
-        cmd = build_ext(dist)
-        cmd.inplace = 1
-        cmd.distribution.package_dir = {'': 'src'}
-        cmd.distribution.packages = ['lxml', 'lxml.html']
-        curdir = os.getcwd()
-        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-        path = cmd.get_ext_fullpath('lxml.etree')
-        self.assertEqual(wanted, path)
-
-        # building lxml.etree not inplace
-        cmd.inplace = 0
-        cmd.build_lib = os.path.join(curdir, 'tmpdir')
-        wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + ext)
-        path = cmd.get_ext_fullpath('lxml.etree')
-        self.assertEqual(wanted, path)
-
-        # building twisted.runner.portmap not inplace
-        build_py = cmd.get_finalized_command('build_py')
-        build_py.package_dir = {}
-        cmd.distribution.packages = ['twisted', 'twisted.runner.portmap']
-        path = cmd.get_ext_fullpath('twisted.runner.portmap')
-        wanted = os.path.join(curdir, 'tmpdir', 'twisted', 'runner',
-                              'portmap' + ext)
-        self.assertEqual(wanted, path)
-
-        # building twisted.runner.portmap inplace
-        cmd.inplace = 1
-        path = cmd.get_ext_fullpath('twisted.runner.portmap')
-        wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + ext)
-        self.assertEqual(wanted, path)
-
-    def test_build_ext_inplace(self):
-        etree_c = os.path.join(self.tmp_dir, 'lxml.etree.c')
-        etree_ext = Extension('lxml.etree', [etree_c])
-        dist = Distribution({'name': 'lxml', 'ext_modules': [etree_ext]})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        cmd.inplace = 1
-        cmd.distribution.package_dir = {'': 'src'}
-        cmd.distribution.packages = ['lxml', 'lxml.html']
-        curdir = os.getcwd()
-        ext = sysconfig.get_config_var("SO")
-        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-        path = cmd.get_ext_fullpath('lxml.etree')
-        self.assertEqual(wanted, path)
-
-    def test_setuptools_compat(self):
-        import distutils.core, distutils.extension, distutils.command.build_ext
-        saved_ext = distutils.extension.Extension
-        try:
-            # on some platforms, it loads the deprecated "dl" module
-            test_support.import_module('setuptools_build_ext', deprecated=True)
-
-            # theses import patch Distutils' Extension class
-            from setuptools_build_ext import build_ext as setuptools_build_ext
-            from setuptools_extension import Extension
-
-            etree_c = os.path.join(self.tmp_dir, 'lxml.etree.c')
-            etree_ext = Extension('lxml.etree', [etree_c])
-            dist = Distribution({'name': 'lxml', 'ext_modules': [etree_ext]})
-            cmd = setuptools_build_ext(dist)
-            cmd.ensure_finalized()
-            cmd.inplace = 1
-            cmd.distribution.package_dir = {'': 'src'}
-            cmd.distribution.packages = ['lxml', 'lxml.html']
-            curdir = os.getcwd()
-            ext = sysconfig.get_config_var("SO")
-            wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-            path = cmd.get_ext_fullpath('lxml.etree')
-            self.assertEqual(wanted, path)
-        finally:
-            # restoring Distutils' Extension class otherwise its broken
-            distutils.extension.Extension = saved_ext
-            distutils.core.Extension = saved_ext
-            distutils.command.build_ext.Extension = saved_ext
-
-    def test_build_ext_path_with_os_sep(self):
-        dist = Distribution({'name': 'UpdateManager'})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        ext = sysconfig.get_config_var("SO")
-        ext_name = os.path.join('UpdateManager', 'fdsend')
-        ext_path = cmd.get_ext_fullpath(ext_name)
-        wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
-        self.assertEqual(ext_path, wanted)
-
-    def test_build_ext_path_cross_platform(self):
-        if sys.platform != 'win32':
-            return
-        dist = Distribution({'name': 'UpdateManager'})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        ext = sysconfig.get_config_var("SO")
-        # this needs to work even under win32
-        ext_name = 'UpdateManager/fdsend'
-        ext_path = cmd.get_ext_fullpath(ext_name)
-        wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
-        self.assertEqual(ext_path, wanted)
-
-    @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
-    def test_deployment_target_default(self):
-        # Issue 9516: Test that, in the absence of the environment variable,
-        # an extension module is compiled with the same deployment target as
-        #  the interpreter.
-        self._try_compile_deployment_target('==', None)
-
-    @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
-    def test_deployment_target_too_low(self):
-        # Issue 9516: Test that an extension module is not allowed to be
-        # compiled with a deployment target less than that of the interpreter.
-        self.assertRaises(DistutilsPlatformError,
-            self._try_compile_deployment_target, '>', '10.1')
-
-    @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
-    def test_deployment_target_higher_ok(self):
-        # Issue 9516: Test that an extension module can be compiled with a
-        # deployment target higher than that of the interpreter: the ext
-        # module may depend on some newer OS feature.
-        deptarget = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
-        if deptarget:
-            # increment the minor version number (i.e. 10.6 -> 10.7)
-            deptarget = [int(x) for x in deptarget.split('.')]
-            deptarget[-1] += 1
-            deptarget = '.'.join(str(i) for i in deptarget)
-            self._try_compile_deployment_target('<', deptarget)
-
-    def _try_compile_deployment_target(self, operator, target):
-        orig_environ = os.environ
-        os.environ = orig_environ.copy()
-        self.addCleanup(setattr, os, 'environ', orig_environ)
-
-        if target is None:
-            if os.environ.get('MACOSX_DEPLOYMENT_TARGET'):
-                del os.environ['MACOSX_DEPLOYMENT_TARGET']
-        else:
-            os.environ['MACOSX_DEPLOYMENT_TARGET'] = target
-
-        deptarget_c = os.path.join(self.tmp_dir, 'deptargetmodule.c')
-
-        with open(deptarget_c, 'w') as fp:
-            fp.write(textwrap.dedent('''\
-                #include <AvailabilityMacros.h>
-
-                int dummy;
-
-                #if TARGET %s MAC_OS_X_VERSION_MIN_REQUIRED
-                #else
-                #error "Unexpected target"
-                #endif
-
-            ''' % operator))
-
-        # get the deployment target that the interpreter was built with
-        target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
-        target = tuple(map(int, target.split('.')))
-        target = '%02d%01d0' % target
-        deptarget_ext = Extension(
-            'deptarget',
-            [deptarget_c],
-            extra_compile_args=['-DTARGET=%s'%(target,)],
-        )
-        dist = Distribution({
-            'name': 'deptarget',
-            'ext_modules': [deptarget_ext]
-        })
-        dist.package_dir = self.tmp_dir
-        cmd = build_ext(dist)
-        cmd.build_lib = self.tmp_dir
-        cmd.build_temp = self.tmp_dir
-
-        try:
-            cmd.ensure_finalized()
-            cmd.run()
-        except CompileError:
-            self.fail("Wrong deployment target during compilation")
-
-def test_suite():
-    return unittest.makeSuite(BuildExtTestCase)
-
-if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_py.py b/lib/python2.7/distutils/tests/test_build_py.py
deleted file mode 100644
index 6c6ec20..0000000
--- a/lib/python2.7/distutils/tests/test_build_py.py
+++ /dev/null
@@ -1,122 +0,0 @@
-"""Tests for distutils.command.build_py."""
-
-import os
-import sys
-import StringIO
-import unittest
-
-from distutils.command.build_py import build_py
-from distutils.core import Distribution
-from distutils.errors import DistutilsFileError
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class BuildPyTestCase(support.TempdirManager,
-                      support.LoggingSilencer,
-                      unittest.TestCase):
-
-    def test_package_data(self):
-        sources = self.mkdtemp()
-        f = open(os.path.join(sources, "__init__.py"), "w")
-        try:
-            f.write("# Pretend this is a package.")
-        finally:
-            f.close()
-        f = open(os.path.join(sources, "README.txt"), "w")
-        try:
-            f.write("Info about this package")
-        finally:
-            f.close()
-
-        destination = self.mkdtemp()
-
-        dist = Distribution({"packages": ["pkg"],
-                             "package_dir": {"pkg": sources}})
-        # script_name need not exist, it just need to be initialized
-        dist.script_name = os.path.join(sources, "setup.py")
-        dist.command_obj["build"] = support.DummyCommand(
-            force=0,
-            build_lib=destination)
-        dist.packages = ["pkg"]
-        dist.package_data = {"pkg": ["README.txt"]}
-        dist.package_dir = {"pkg": sources}
-
-        cmd = build_py(dist)
-        cmd.compile = 1
-        cmd.ensure_finalized()
-        self.assertEqual(cmd.package_data, dist.package_data)
-
-        cmd.run()
-
-        # This makes sure the list of outputs includes byte-compiled
-        # files for Python modules but not for package data files
-        # (there shouldn't *be* byte-code files for those!).
-        #
-        self.assertEqual(len(cmd.get_outputs()), 3)
-        pkgdest = os.path.join(destination, "pkg")
-        files = os.listdir(pkgdest)
-        self.assertIn("__init__.py", files)
-        self.assertIn("README.txt", files)
-        # XXX even with -O, distutils writes pyc, not pyo; bug?
-        if sys.dont_write_bytecode:
-            self.assertNotIn("__init__.pyc", files)
-        else:
-            self.assertIn("__init__.pyc", files)
-
-    def test_empty_package_dir(self):
-        # See SF 1668596/1720897.
-        cwd = os.getcwd()
-
-        # create the distribution files.
-        sources = self.mkdtemp()
-        open(os.path.join(sources, "__init__.py"), "w").close()
-
-        testdir = os.path.join(sources, "doc")
-        os.mkdir(testdir)
-        open(os.path.join(testdir, "testfile"), "w").close()
-
-        os.chdir(sources)
-        old_stdout = sys.stdout
-        sys.stdout = StringIO.StringIO()
-
-        try:
-            dist = Distribution({"packages": ["pkg"],
-                                 "package_dir": {"pkg": ""},
-                                 "package_data": {"pkg": ["doc/*"]}})
-            # script_name need not exist, it just need to be initialized
-            dist.script_name = os.path.join(sources, "setup.py")
-            dist.script_args = ["build"]
-            dist.parse_command_line()
-
-            try:
-                dist.run_commands()
-            except DistutilsFileError:
-                self.fail("failed package_data test when package_dir is ''")
-        finally:
-            # Restore state.
-            os.chdir(cwd)
-            sys.stdout = old_stdout
-
-    def test_dont_write_bytecode(self):
-        # makes sure byte_compile is not used
-        pkg_dir, dist = self.create_dist()
-        cmd = build_py(dist)
-        cmd.compile = 1
-        cmd.optimize = 1
-
-        old_dont_write_bytecode = sys.dont_write_bytecode
-        sys.dont_write_bytecode = True
-        try:
-            cmd.byte_compile([])
-        finally:
-            sys.dont_write_bytecode = old_dont_write_bytecode
-
-        self.assertIn('byte-compiling is disabled', self.logs[0][1])
-
-def test_suite():
-    return unittest.makeSuite(BuildPyTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_scripts.py b/lib/python2.7/distutils/tests/test_build_scripts.py
deleted file mode 100644
index 4da93cc..0000000
--- a/lib/python2.7/distutils/tests/test_build_scripts.py
+++ /dev/null
@@ -1,112 +0,0 @@
-"""Tests for distutils.command.build_scripts."""
-
-import os
-import unittest
-
-from distutils.command.build_scripts import build_scripts
-from distutils.core import Distribution
-import sysconfig
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class BuildScriptsTestCase(support.TempdirManager,
-                           support.LoggingSilencer,
-                           unittest.TestCase):
-
-    def test_default_settings(self):
-        cmd = self.get_build_scripts_cmd("/foo/bar", [])
-        self.assertTrue(not cmd.force)
-        self.assertTrue(cmd.build_dir is None)
-
-        cmd.finalize_options()
-
-        self.assertTrue(cmd.force)
-        self.assertEqual(cmd.build_dir, "/foo/bar")
-
-    def test_build(self):
-        source = self.mkdtemp()
-        target = self.mkdtemp()
-        expected = self.write_sample_scripts(source)
-
-        cmd = self.get_build_scripts_cmd(target,
-                                         [os.path.join(source, fn)
-                                          for fn in expected])
-        cmd.finalize_options()
-        cmd.run()
-
-        built = os.listdir(target)
-        for name in expected:
-            self.assertTrue(name in built)
-
-    def get_build_scripts_cmd(self, target, scripts):
-        import sys
-        dist = Distribution()
-        dist.scripts = scripts
-        dist.command_obj["build"] = support.DummyCommand(
-            build_scripts=target,
-            force=1,
-            executable=sys.executable
-            )
-        return build_scripts(dist)
-
-    def write_sample_scripts(self, dir):
-        expected = []
-        expected.append("script1.py")
-        self.write_script(dir, "script1.py",
-                          ("#! /usr/bin/env python2.3\n"
-                           "# bogus script w/ Python sh-bang\n"
-                           "pass\n"))
-        expected.append("script2.py")
-        self.write_script(dir, "script2.py",
-                          ("#!/usr/bin/python\n"
-                           "# bogus script w/ Python sh-bang\n"
-                           "pass\n"))
-        expected.append("shell.sh")
-        self.write_script(dir, "shell.sh",
-                          ("#!/bin/sh\n"
-                           "# bogus shell script w/ sh-bang\n"
-                           "exit 0\n"))
-        return expected
-
-    def write_script(self, dir, name, text):
-        f = open(os.path.join(dir, name), "w")
-        try:
-            f.write(text)
-        finally:
-            f.close()
-
-    def test_version_int(self):
-        source = self.mkdtemp()
-        target = self.mkdtemp()
-        expected = self.write_sample_scripts(source)
-
-
-        cmd = self.get_build_scripts_cmd(target,
-                                         [os.path.join(source, fn)
-                                          for fn in expected])
-        cmd.finalize_options()
-
-        # http://bugs.python.org/issue4524
-        #
-        # On linux-g++-32 with command line `./configure --enable-ipv6
-        # --with-suffix=3`, python is compiled okay but the build scripts
-        # failed when writing the name of the executable
-        old = sysconfig.get_config_vars().get('VERSION')
-        sysconfig._CONFIG_VARS['VERSION'] = 4
-        try:
-            cmd.run()
-        finally:
-            if old is not None:
-                sysconfig._CONFIG_VARS['VERSION'] = old
-
-        built = os.listdir(target)
-        for name in expected:
-            self.assertTrue(name in built)
-
-def test_suite():
-    return unittest.makeSuite(BuildScriptsTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_ccompiler.py b/lib/python2.7/distutils/tests/test_ccompiler.py
deleted file mode 100644
index 45e477a..0000000
--- a/lib/python2.7/distutils/tests/test_ccompiler.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Tests for distutils.ccompiler."""
-import os
-import unittest
-from test.test_support import captured_stdout
-
-from distutils.ccompiler import (gen_lib_options, CCompiler,
-                                 get_default_compiler)
-from distutils.sysconfig import customize_compiler
-from distutils import debug
-from distutils.tests import support
-
-class FakeCompiler(object):
-    def library_dir_option(self, dir):
-        return "-L" + dir
-
-    def runtime_library_dir_option(self, dir):
-        return ["-cool", "-R" + dir]
-
-    def find_library_file(self, dirs, lib, debug=0):
-        return 'found'
-
-    def library_option(self, lib):
-        return "-l" + lib
-
-class CCompilerTestCase(support.EnvironGuard, unittest.TestCase):
-
-    def test_gen_lib_options(self):
-        compiler = FakeCompiler()
-        libdirs = ['lib1', 'lib2']
-        runlibdirs = ['runlib1']
-        libs = [os.path.join('dir', 'name'), 'name2']
-
-        opts = gen_lib_options(compiler, libdirs, runlibdirs, libs)
-        wanted = ['-Llib1', '-Llib2', '-cool', '-Rrunlib1', 'found',
-                  '-lname2']
-        self.assertEqual(opts, wanted)
-
-    def test_debug_print(self):
-
-        class MyCCompiler(CCompiler):
-            executables = {}
-
-        compiler = MyCCompiler()
-        with captured_stdout() as stdout:
-            compiler.debug_print('xxx')
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), '')
-
-        debug.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                compiler.debug_print('xxx')
-            stdout.seek(0)
-            self.assertEqual(stdout.read(), 'xxx\n')
-        finally:
-            debug.DEBUG = False
-
-    def test_customize_compiler(self):
-
-        # not testing if default compiler is not unix
-        if get_default_compiler() != 'unix':
-            return
-
-        os.environ['AR'] = 'my_ar'
-        os.environ['ARFLAGS'] = '-arflags'
-
-        # make sure AR gets caught
-        class compiler:
-            compiler_type = 'unix'
-
-            def set_executables(self, **kw):
-                self.exes = kw
-
-        comp = compiler()
-        customize_compiler(comp)
-        self.assertEqual(comp.exes['archiver'], 'my_ar -arflags')
-
-def test_suite():
-    return unittest.makeSuite(CCompilerTestCase)
-
-if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
diff --git a/lib/python2.7/distutils/tests/test_check.py b/lib/python2.7/distutils/tests/test_check.py
deleted file mode 100644
index f73342a..0000000
--- a/lib/python2.7/distutils/tests/test_check.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.check."""
-import unittest
-from test.test_support import run_unittest
-
-from distutils.command.check import check, HAS_DOCUTILS
-from distutils.tests import support
-from distutils.errors import DistutilsSetupError
-
-class CheckTestCase(support.LoggingSilencer,
-                    support.TempdirManager,
-                    unittest.TestCase):
-
-    def _run(self, metadata=None, **options):
-        if metadata is None:
-            metadata = {}
-        pkg_info, dist = self.create_dist(**metadata)
-        cmd = check(dist)
-        cmd.initialize_options()
-        for name, value in options.items():
-            setattr(cmd, name, value)
-        cmd.ensure_finalized()
-        cmd.run()
-        return cmd
-
-    def test_check_metadata(self):
-        # let's run the command with no metadata at all
-        # by default, check is checking the metadata
-        # should have some warnings
-        cmd = self._run()
-        self.assertEqual(cmd._warnings, 2)
-
-        # now let's add the required fields
-        # and run it again, to make sure we don't get
-        # any warning anymore
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': 'xxx',
-                    'name': 'xxx', 'version': 'xxx'}
-        cmd = self._run(metadata)
-        self.assertEqual(cmd._warnings, 0)
-
-        # now with the strict mode, we should
-        # get an error if there are missing metadata
-        self.assertRaises(DistutilsSetupError, self._run, {}, **{'strict': 1})
-
-        # and of course, no error when all metadata are present
-        cmd = self._run(metadata, strict=1)
-        self.assertEqual(cmd._warnings, 0)
-
-        # now a test with Unicode entries
-        metadata = {'url': u'xxx', 'author': u'\u00c9ric',
-                    'author_email': u'xxx', u'name': 'xxx',
-                    'version': u'xxx',
-                    'description': u'Something about esszet \u00df',
-                    'long_description': u'More things about esszet \u00df'}
-        cmd = self._run(metadata)
-        self.assertEqual(cmd._warnings, 0)
-
-    def test_check_document(self):
-        if not HAS_DOCUTILS: # won't test without docutils
-            return
-        pkg_info, dist = self.create_dist()
-        cmd = check(dist)
-
-        # let's see if it detects broken rest
-        broken_rest = 'title\n===\n\ntest'
-        msgs = cmd._check_rst_data(broken_rest)
-        self.assertEqual(len(msgs), 1)
-
-        # and non-broken rest
-        rest = 'title\n=====\n\ntest'
-        msgs = cmd._check_rst_data(rest)
-        self.assertEqual(len(msgs), 0)
-
-    def test_check_restructuredtext(self):
-        if not HAS_DOCUTILS: # won't test without docutils
-            return
-        # let's see if it detects broken rest in long_description
-        broken_rest = 'title\n===\n\ntest'
-        pkg_info, dist = self.create_dist(long_description=broken_rest)
-        cmd = check(dist)
-        cmd.check_restructuredtext()
-        self.assertEqual(cmd._warnings, 1)
-
-        # let's see if we have an error with strict=1
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': 'xxx',
-                    'name': 'xxx', 'version': 'xxx',
-                    'long_description': broken_rest}
-        self.assertRaises(DistutilsSetupError, self._run, metadata,
-                          **{'strict': 1, 'restructuredtext': 1})
-
-        # and non-broken rest, including a non-ASCII character to test #12114
-        metadata['long_description'] = u'title\n=====\n\ntest \u00df'
-        cmd = self._run(metadata, strict=1, restructuredtext=1)
-        self.assertEqual(cmd._warnings, 0)
-
-    def test_check_all(self):
-
-        metadata = {'url': 'xxx', 'author': 'xxx'}
-        self.assertRaises(DistutilsSetupError, self._run,
-                          {}, **{'strict': 1,
-                                 'restructuredtext': 1})
-
-def test_suite():
-    return unittest.makeSuite(CheckTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_clean.py b/lib/python2.7/distutils/tests/test_clean.py
deleted file mode 100644
index 7b988f7..0000000
--- a/lib/python2.7/distutils/tests/test_clean.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""Tests for distutils.command.clean."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.clean import clean
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class cleanTestCase(support.TempdirManager,
-                    support.LoggingSilencer,
-                    unittest.TestCase):
-
-    def test_simple_run(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = clean(dist)
-
-        # let's add some elements clean should remove
-        dirs = [(d, os.path.join(pkg_dir, d))
-                for d in ('build_temp', 'build_lib', 'bdist_base',
-                'build_scripts', 'build_base')]
-
-        for name, path in dirs:
-            os.mkdir(path)
-            setattr(cmd, name, path)
-            if name == 'build_base':
-                continue
-            for f in ('one', 'two', 'three'):
-                self.write_file(os.path.join(path, f))
-
-        # let's run the command
-        cmd.all = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # make sure the files where removed
-        for name, path in dirs:
-            self.assertTrue(not os.path.exists(path),
-                         '%s was not removed' % path)
-
-        # let's run the command again (should spit warnings but succeed)
-        cmd.all = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-def test_suite():
-    return unittest.makeSuite(cleanTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_cmd.py b/lib/python2.7/distutils/tests/test_cmd.py
deleted file mode 100644
index e074099..0000000
--- a/lib/python2.7/distutils/tests/test_cmd.py
+++ /dev/null
@@ -1,127 +0,0 @@
-"""Tests for distutils.cmd."""
-import unittest
-import os
-from test.test_support import captured_stdout, run_unittest
-
-from distutils.cmd import Command
-from distutils.dist import Distribution
-from distutils.errors import DistutilsOptionError
-from distutils import debug
-
-class MyCmd(Command):
-    def initialize_options(self):
-        pass
-
-class CommandTestCase(unittest.TestCase):
-
-    def setUp(self):
-        dist = Distribution()
-        self.cmd = MyCmd(dist)
-
-    def test_ensure_string_list(self):
-
-        cmd = self.cmd
-        cmd.not_string_list = ['one', 2, 'three']
-        cmd.yes_string_list = ['one', 'two', 'three']
-        cmd.not_string_list2 = object()
-        cmd.yes_string_list2 = 'ok'
-        cmd.ensure_string_list('yes_string_list')
-        cmd.ensure_string_list('yes_string_list2')
-
-        self.assertRaises(DistutilsOptionError,
-                          cmd.ensure_string_list, 'not_string_list')
-
-        self.assertRaises(DistutilsOptionError,
-                          cmd.ensure_string_list, 'not_string_list2')
-
-    def test_make_file(self):
-
-        cmd = self.cmd
-
-        # making sure it raises when infiles is not a string or a list/tuple
-        self.assertRaises(TypeError, cmd.make_file,
-                          infiles=1, outfile='', func='func', args=())
-
-        # making sure execute gets called properly
-        def _execute(func, args, exec_msg, level):
-            self.assertEqual(exec_msg, 'generating out from in')
-        cmd.force = True
-        cmd.execute = _execute
-        cmd.make_file(infiles='in', outfile='out', func='func', args=())
-
-    def test_dump_options(self):
-
-        msgs = []
-        def _announce(msg, level):
-            msgs.append(msg)
-        cmd = self.cmd
-        cmd.announce = _announce
-        cmd.option1 = 1
-        cmd.option2 = 1
-        cmd.user_options = [('option1', '', ''), ('option2', '', '')]
-        cmd.dump_options()
-
-        wanted = ["command options for 'MyCmd':", '  option1 = 1',
-                  '  option2 = 1']
-        self.assertEqual(msgs, wanted)
-
-    def test_ensure_string(self):
-        cmd = self.cmd
-        cmd.option1 = 'ok'
-        cmd.ensure_string('option1')
-
-        cmd.option2 = None
-        cmd.ensure_string('option2', 'xxx')
-        self.assertTrue(hasattr(cmd, 'option2'))
-
-        cmd.option3 = 1
-        self.assertRaises(DistutilsOptionError, cmd.ensure_string, 'option3')
-
-    def test_ensure_string_list(self):
-        cmd = self.cmd
-        cmd.option1 = 'ok,dok'
-        cmd.ensure_string_list('option1')
-        self.assertEqual(cmd.option1, ['ok', 'dok'])
-
-        cmd.option2 = ['xxx', 'www']
-        cmd.ensure_string_list('option2')
-
-        cmd.option3 = ['ok', 2]
-        self.assertRaises(DistutilsOptionError, cmd.ensure_string_list,
-                          'option3')
-
-    def test_ensure_filename(self):
-        cmd = self.cmd
-        cmd.option1 = __file__
-        cmd.ensure_filename('option1')
-        cmd.option2 = 'xxx'
-        self.assertRaises(DistutilsOptionError, cmd.ensure_filename, 'option2')
-
-    def test_ensure_dirname(self):
-        cmd = self.cmd
-        cmd.option1 = os.path.dirname(__file__) or os.curdir
-        cmd.ensure_dirname('option1')
-        cmd.option2 = 'xxx'
-        self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')
-
-    def test_debug_print(self):
-        cmd = self.cmd
-        with captured_stdout() as stdout:
-            cmd.debug_print('xxx')
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), '')
-
-        debug.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                cmd.debug_print('xxx')
-            stdout.seek(0)
-            self.assertEqual(stdout.read(), 'xxx\n')
-        finally:
-            debug.DEBUG = False
-
-def test_suite():
-    return unittest.makeSuite(CommandTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_config.py b/lib/python2.7/distutils/tests/test_config.py
deleted file mode 100644
index cfd096e..0000000
--- a/lib/python2.7/distutils/tests/test_config.py
+++ /dev/null
@@ -1,123 +0,0 @@
-"""Tests for distutils.pypirc.pypirc."""
-import sys
-import os
-import unittest
-import tempfile
-import shutil
-
-from distutils.core import PyPIRCCommand
-from distutils.core import Distribution
-from distutils.log import set_threshold
-from distutils.log import WARN
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-PYPIRC = """\
-[distutils]
-
-index-servers =
-    server1
-    server2
-
-[server1]
-username:me
-password:secret
-
-[server2]
-username:meagain
-password: secret
-realm:acme
-repository:http://another.pypi/
-"""
-
-PYPIRC_OLD = """\
-[server-login]
-username:tarek
-password:secret
-"""
-
-WANTED = """\
-[distutils]
-index-servers =
-    pypi
-
-[pypi]
-username:tarek
-password:xxx
-"""
-
-
-class PyPIRCCommandTestCase(support.TempdirManager,
-                            support.LoggingSilencer,
-                            support.EnvironGuard,
-                            unittest.TestCase):
-
-    def setUp(self):
-        """Patches the environment."""
-        super(PyPIRCCommandTestCase, self).setUp()
-        self.tmp_dir = self.mkdtemp()
-        os.environ['HOME'] = self.tmp_dir
-        self.rc = os.path.join(self.tmp_dir, '.pypirc')
-        self.dist = Distribution()
-
-        class command(PyPIRCCommand):
-            def __init__(self, dist):
-                PyPIRCCommand.__init__(self, dist)
-            def initialize_options(self):
-                pass
-            finalize_options = initialize_options
-
-        self._cmd = command
-        self.old_threshold = set_threshold(WARN)
-
-    def tearDown(self):
-        """Removes the patch."""
-        set_threshold(self.old_threshold)
-        super(PyPIRCCommandTestCase, self).tearDown()
-
-    def test_server_registration(self):
-        # This test makes sure PyPIRCCommand knows how to:
-        # 1. handle several sections in .pypirc
-        # 2. handle the old format
-
-        # new format
-        self.write_file(self.rc, PYPIRC)
-        cmd = self._cmd(self.dist)
-        config = cmd._read_pypirc()
-
-        config = config.items()
-        config.sort()
-        waited = [('password', 'secret'), ('realm', 'pypi'),
-                  ('repository', 'http://pypi.python.org/pypi'),
-                  ('server', 'server1'), ('username', 'me')]
-        self.assertEqual(config, waited)
-
-        # old format
-        self.write_file(self.rc, PYPIRC_OLD)
-        config = cmd._read_pypirc()
-        config = config.items()
-        config.sort()
-        waited = [('password', 'secret'), ('realm', 'pypi'),
-                  ('repository', 'http://pypi.python.org/pypi'),
-                  ('server', 'server-login'), ('username', 'tarek')]
-        self.assertEqual(config, waited)
-
-    def test_server_empty_registration(self):
-        cmd = self._cmd(self.dist)
-        rc = cmd._get_rc_file()
-        self.assertTrue(not os.path.exists(rc))
-        cmd._store_pypirc('tarek', 'xxx')
-        self.assertTrue(os.path.exists(rc))
-        f = open(rc)
-        try:
-            content = f.read()
-            self.assertEqual(content, WANTED)
-        finally:
-            f.close()
-
-def test_suite():
-    return unittest.makeSuite(PyPIRCCommandTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_config_cmd.py b/lib/python2.7/distutils/tests/test_config_cmd.py
deleted file mode 100644
index e16c8ee..0000000
--- a/lib/python2.7/distutils/tests/test_config_cmd.py
+++ /dev/null
@@ -1,91 +0,0 @@
-"""Tests for distutils.command.config."""
-import unittest
-import os
-import sys
-from test.test_support import run_unittest
-
-from distutils.command.config import dump_file, config
-from distutils.tests import support
-from distutils import log
-
-class ConfigTestCase(support.LoggingSilencer,
-                     support.TempdirManager,
-                     unittest.TestCase):
-
-    def _info(self, msg, *args):
-        for line in msg.splitlines():
-            self._logs.append(line)
-
-    def setUp(self):
-        super(ConfigTestCase, self).setUp()
-        self._logs = []
-        self.old_log = log.info
-        log.info = self._info
-
-    def tearDown(self):
-        log.info = self.old_log
-        super(ConfigTestCase, self).tearDown()
-
-    def test_dump_file(self):
-        this_file = os.path.splitext(__file__)[0] + '.py'
-        f = open(this_file)
-        try:
-            numlines = len(f.readlines())
-        finally:
-            f.close()
-
-        dump_file(this_file, 'I am the header')
-        self.assertEqual(len(self._logs), numlines+1)
-
-    def test_search_cpp(self):
-        # TODO: mingw host ?
-        if sys.platform == 'win32':
-            return
-        pkg_dir, dist = self.create_dist()
-        cmd = config(dist)
-
-        # simple pattern searches
-        match = cmd.search_cpp(pattern='xxx', body='/* xxx */')
-        self.assertEqual(match, 0)
-
-        match = cmd.search_cpp(pattern='_configtest', body='/* xxx */')
-        self.assertEqual(match, 1)
-
-    def test_finalize_options(self):
-        # finalize_options does a bit of transformation
-        # on options
-        pkg_dir, dist = self.create_dist()
-        cmd = config(dist)
-        cmd.include_dirs = 'one%stwo' % os.pathsep
-        cmd.libraries = 'one'
-        cmd.library_dirs = 'three%sfour' % os.pathsep
-        cmd.ensure_finalized()
-
-        self.assertEqual(cmd.include_dirs, ['one', 'two'])
-        self.assertEqual(cmd.libraries, ['one'])
-        self.assertEqual(cmd.library_dirs, ['three', 'four'])
-
-    def test_clean(self):
-        # _clean removes files
-        tmp_dir = self.mkdtemp()
-        f1 = os.path.join(tmp_dir, 'one')
-        f2 = os.path.join(tmp_dir, 'two')
-
-        self.write_file(f1, 'xxx')
-        self.write_file(f2, 'xxx')
-
-        for f in (f1, f2):
-            self.assertTrue(os.path.exists(f))
-
-        pkg_dir, dist = self.create_dist()
-        cmd = config(dist)
-        cmd._clean(f1, f2)
-
-        for f in (f1, f2):
-            self.assertTrue(not os.path.exists(f))
-
-def test_suite():
-    return unittest.makeSuite(ConfigTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_core.py b/lib/python2.7/distutils/tests/test_core.py
deleted file mode 100644
index 0d979bc..0000000
--- a/lib/python2.7/distutils/tests/test_core.py
+++ /dev/null
@@ -1,108 +0,0 @@
-"""Tests for distutils.core."""
-
-import StringIO
-import distutils.core
-import os
-import shutil
-import sys
-import test.test_support
-from test.test_support import captured_stdout, run_unittest
-import unittest
-from distutils.tests import support
-
-# setup script that uses __file__
-setup_using___file__ = """\
-
-__file__
-
-from distutils.core import setup
-setup()
-"""
-
-setup_prints_cwd = """\
-
-import os
-print os.getcwd()
-
-from distutils.core import setup
-setup()
-"""
-
-
-class CoreTestCase(support.EnvironGuard, unittest.TestCase):
-
-    def setUp(self):
-        super(CoreTestCase, self).setUp()
-        self.old_stdout = sys.stdout
-        self.cleanup_testfn()
-        self.old_argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        sys.stdout = self.old_stdout
-        self.cleanup_testfn()
-        sys.argv = self.old_argv[0]
-        sys.argv[:] = self.old_argv[1]
-        super(CoreTestCase, self).tearDown()
-
-    def cleanup_testfn(self):
-        path = test.test_support.TESTFN
-        if os.path.isfile(path):
-            os.remove(path)
-        elif os.path.isdir(path):
-            shutil.rmtree(path)
-
-    def write_setup(self, text, path=test.test_support.TESTFN):
-        f = open(path, "w")
-        try:
-            f.write(text)
-        finally:
-            f.close()
-        return path
-
-    def test_run_setup_provides_file(self):
-        # Make sure the script can use __file__; if that's missing, the test
-        # setup.py script will raise NameError.
-        distutils.core.run_setup(
-            self.write_setup(setup_using___file__))
-
-    def test_run_setup_uses_current_dir(self):
-        # This tests that the setup script is run with the current directory
-        # as its own current directory; this was temporarily broken by a
-        # previous patch when TESTFN did not use the current directory.
-        sys.stdout = StringIO.StringIO()
-        cwd = os.getcwd()
-
-        # Create a directory and write the setup.py file there:
-        os.mkdir(test.test_support.TESTFN)
-        setup_py = os.path.join(test.test_support.TESTFN, "setup.py")
-        distutils.core.run_setup(
-            self.write_setup(setup_prints_cwd, path=setup_py))
-
-        output = sys.stdout.getvalue()
-        if output.endswith("\n"):
-            output = output[:-1]
-        self.assertEqual(cwd, output)
-
-    def test_debug_mode(self):
-        # this covers the code called when DEBUG is set
-        sys.argv = ['setup.py', '--name']
-        with captured_stdout() as stdout:
-            distutils.core.setup(name='bar')
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), 'bar\n')
-
-        distutils.core.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                distutils.core.setup(name='bar')
-        finally:
-            distutils.core.DEBUG = False
-        stdout.seek(0)
-        wanted = "options (after parsing config files):\n"
-        self.assertEqual(stdout.readlines()[0], wanted)
-
-def test_suite():
-    return unittest.makeSuite(CoreTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dep_util.py b/lib/python2.7/distutils/tests/test_dep_util.py
deleted file mode 100644
index 7510434..0000000
--- a/lib/python2.7/distutils/tests/test_dep_util.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""Tests for distutils.dep_util."""
-import unittest
-import os
-import time
-
-from distutils.dep_util import newer, newer_pairwise, newer_group
-from distutils.errors import DistutilsFileError
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class DepUtilTestCase(support.TempdirManager, unittest.TestCase):
-
-    def test_newer(self):
-
-        tmpdir = self.mkdtemp()
-        new_file = os.path.join(tmpdir, 'new')
-        old_file = os.path.abspath(__file__)
-
-        # Raise DistutilsFileError if 'new_file' does not exist.
-        self.assertRaises(DistutilsFileError, newer, new_file, old_file)
-
-        # Return true if 'new_file' exists and is more recently modified than
-        # 'old_file', or if 'new_file' exists and 'old_file' doesn't.
-        self.write_file(new_file)
-        self.assertTrue(newer(new_file, 'I_dont_exist'))
-        self.assertTrue(newer(new_file, old_file))
-
-        # Return false if both exist and 'old_file' is the same age or younger
-        # than 'new_file'.
-        self.assertFalse(newer(old_file, new_file))
-
-    def test_newer_pairwise(self):
-        tmpdir = self.mkdtemp()
-        sources = os.path.join(tmpdir, 'sources')
-        targets = os.path.join(tmpdir, 'targets')
-        os.mkdir(sources)
-        os.mkdir(targets)
-        one = os.path.join(sources, 'one')
-        two = os.path.join(sources, 'two')
-        three = os.path.abspath(__file__)    # I am the old file
-        four = os.path.join(targets, 'four')
-        self.write_file(one)
-        self.write_file(two)
-        self.write_file(four)
-
-        self.assertEqual(newer_pairwise([one, two], [three, four]),
-                         ([one],[three]))
-
-    def test_newer_group(self):
-        tmpdir = self.mkdtemp()
-        sources = os.path.join(tmpdir, 'sources')
-        os.mkdir(sources)
-        one = os.path.join(sources, 'one')
-        two = os.path.join(sources, 'two')
-        three = os.path.join(sources, 'three')
-        old_file = os.path.abspath(__file__)
-
-        # return true if 'old_file' is out-of-date with respect to any file
-        # listed in 'sources'.
-        self.write_file(one)
-        self.write_file(two)
-        self.write_file(three)
-        self.assertTrue(newer_group([one, two, three], old_file))
-        self.assertFalse(newer_group([one, two, old_file], three))
-
-        # missing handling
-        os.remove(one)
-        self.assertRaises(OSError, newer_group, [one, two, old_file], three)
-
-        self.assertFalse(newer_group([one, two, old_file], three,
-                                     missing='ignore'))
-
-        self.assertTrue(newer_group([one, two, old_file], three,
-                                    missing='newer'))
-
-
-def test_suite():
-    return unittest.makeSuite(DepUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dir_util.py b/lib/python2.7/distutils/tests/test_dir_util.py
deleted file mode 100644
index d82d913..0000000
--- a/lib/python2.7/distutils/tests/test_dir_util.py
+++ /dev/null
@@ -1,134 +0,0 @@
-"""Tests for distutils.dir_util."""
-import unittest
-import os
-import stat
-import shutil
-import sys
-
-from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree,
-                                ensure_relative)
-
-from distutils import log
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
-
-    def _log(self, msg, *args):
-        if len(args) > 0:
-            self._logs.append(msg % args)
-        else:
-            self._logs.append(msg)
-
-    def setUp(self):
-        super(DirUtilTestCase, self).setUp()
-        self._logs = []
-        tmp_dir = self.mkdtemp()
-        self.root_target = os.path.join(tmp_dir, 'deep')
-        self.target = os.path.join(self.root_target, 'here')
-        self.target2 = os.path.join(tmp_dir, 'deep2')
-        self.old_log = log.info
-        log.info = self._log
-
-    def tearDown(self):
-        log.info = self.old_log
-        super(DirUtilTestCase, self).tearDown()
-
-    def test_mkpath_remove_tree_verbosity(self):
-
-        mkpath(self.target, verbose=0)
-        wanted = []
-        self.assertEqual(self._logs, wanted)
-        remove_tree(self.root_target, verbose=0)
-
-        mkpath(self.target, verbose=1)
-        wanted = ['creating %s' % self.root_target,
-                  'creating %s' % self.target]
-        self.assertEqual(self._logs, wanted)
-        self._logs = []
-
-        remove_tree(self.root_target, verbose=1)
-        wanted = ["removing '%s' (and everything under it)" % self.root_target]
-        self.assertEqual(self._logs, wanted)
-
-    @unittest.skipIf(sys.platform.startswith('win'),
-                        "This test is only appropriate for POSIX-like systems.")
-    def test_mkpath_with_custom_mode(self):
-        # Get and set the current umask value for testing mode bits.
-        umask = os.umask(0o002)
-        os.umask(umask)
-        mkpath(self.target, 0o700)
-        self.assertEqual(
-            stat.S_IMODE(os.stat(self.target).st_mode), 0o700 & ~umask)
-        mkpath(self.target2, 0o555)
-        self.assertEqual(
-            stat.S_IMODE(os.stat(self.target2).st_mode), 0o555 & ~umask)
-
-    def test_create_tree_verbosity(self):
-
-        create_tree(self.root_target, ['one', 'two', 'three'], verbose=0)
-        self.assertEqual(self._logs, [])
-        remove_tree(self.root_target, verbose=0)
-
-        wanted = ['creating %s' % self.root_target]
-        create_tree(self.root_target, ['one', 'two', 'three'], verbose=1)
-        self.assertEqual(self._logs, wanted)
-
-        remove_tree(self.root_target, verbose=0)
-
-
-    def test_copy_tree_verbosity(self):
-
-        mkpath(self.target, verbose=0)
-
-        copy_tree(self.target, self.target2, verbose=0)
-        self.assertEqual(self._logs, [])
-
-        remove_tree(self.root_target, verbose=0)
-
-        mkpath(self.target, verbose=0)
-        a_file = os.path.join(self.target, 'ok.txt')
-        f = open(a_file, 'w')
-        try:
-            f.write('some content')
-        finally:
-            f.close()
-
-        wanted = ['copying %s -> %s' % (a_file, self.target2)]
-        copy_tree(self.target, self.target2, verbose=1)
-        self.assertEqual(self._logs, wanted)
-
-        remove_tree(self.root_target, verbose=0)
-        remove_tree(self.target2, verbose=0)
-
-    def test_copy_tree_skips_nfs_temp_files(self):
-        mkpath(self.target, verbose=0)
-
-        a_file = os.path.join(self.target, 'ok.txt')
-        nfs_file = os.path.join(self.target, '.nfs123abc')
-        for f in a_file, nfs_file:
-            fh = open(f, 'w')
-            try:
-                fh.write('some content')
-            finally:
-                fh.close()
-
-        copy_tree(self.target, self.target2)
-        self.assertEqual(os.listdir(self.target2), ['ok.txt'])
-
-        remove_tree(self.root_target, verbose=0)
-        remove_tree(self.target2, verbose=0)
-
-    def test_ensure_relative(self):
-        if os.sep == '/':
-            self.assertEqual(ensure_relative('/home/foo'), 'home/foo')
-            self.assertEqual(ensure_relative('some/path'), 'some/path')
-        else:   # \\
-            self.assertEqual(ensure_relative('c:\\home\\foo'), 'c:home\\foo')
-            self.assertEqual(ensure_relative('home\\foo'), 'home\\foo')
-
-def test_suite():
-    return unittest.makeSuite(DirUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dist.py b/lib/python2.7/distutils/tests/test_dist.py
deleted file mode 100644
index 4b7bbeb..0000000
--- a/lib/python2.7/distutils/tests/test_dist.py
+++ /dev/null
@@ -1,445 +0,0 @@
-# -*- coding: utf8 -*-
-
-"""Tests for distutils.dist."""
-import os
-import StringIO
-import sys
-import unittest
-import warnings
-import textwrap
-
-from distutils.dist import Distribution, fix_help_options
-from distutils.cmd import Command
-import distutils.dist
-from test.test_support import TESTFN, captured_stdout, run_unittest
-from distutils.tests import support
-
-
-class test_dist(Command):
-    """Sample distutils extension command."""
-
-    user_options = [
-        ("sample-option=", "S", "help text"),
-        ]
-
-    def initialize_options(self):
-        self.sample_option = None
-
-
-class TestDistribution(Distribution):
-    """Distribution subclasses that avoids the default search for
-    configuration files.
-
-    The ._config_files attribute must be set before
-    .parse_config_files() is called.
-    """
-
-    def find_config_files(self):
-        return self._config_files
-
-
-class DistributionTestCase(support.TempdirManager,
-                           support.LoggingSilencer,
-                           support.EnvironGuard,
-                           unittest.TestCase):
-
-    def setUp(self):
-        super(DistributionTestCase, self).setUp()
-        self.argv = sys.argv, sys.argv[:]
-        del sys.argv[1:]
-
-    def tearDown(self):
-        sys.argv = self.argv[0]
-        sys.argv[:] = self.argv[1]
-        super(DistributionTestCase, self).tearDown()
-
-    def create_distribution(self, configfiles=()):
-        d = TestDistribution()
-        d._config_files = configfiles
-        d.parse_config_files()
-        d.parse_command_line()
-        return d
-
-    def test_debug_mode(self):
-        with open(TESTFN, "w") as f:
-            f.write("[global]\n")
-            f.write("command_packages = foo.bar, splat")
-
-        files = [TESTFN]
-        sys.argv.append("build")
-
-        with captured_stdout() as stdout:
-            self.create_distribution(files)
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), '')
-        distutils.dist.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                self.create_distribution(files)
-            stdout.seek(0)
-            self.assertEqual(stdout.read(), '')
-        finally:
-            distutils.dist.DEBUG = False
-
-    def test_command_packages_unspecified(self):
-        sys.argv.append("build")
-        d = self.create_distribution()
-        self.assertEqual(d.get_command_packages(), ["distutils.command"])
-
-    def test_command_packages_cmdline(self):
-        from distutils.tests.test_dist import test_dist
-        sys.argv.extend(["--command-packages",
-                         "foo.bar,distutils.tests",
-                         "test_dist",
-                         "-Ssometext",
-                         ])
-        d = self.create_distribution()
-        # let's actually try to load our test command:
-        self.assertEqual(d.get_command_packages(),
-                         ["distutils.command", "foo.bar", "distutils.tests"])
-        cmd = d.get_command_obj("test_dist")
-        self.assertIsInstance(cmd, test_dist)
-        self.assertEqual(cmd.sample_option, "sometext")
-
-    def test_command_packages_configfile(self):
-        sys.argv.append("build")
-        self.addCleanup(os.unlink, TESTFN)
-        f = open(TESTFN, "w")
-        try:
-            print >> f, "[global]"
-            print >> f, "command_packages = foo.bar, splat"
-        finally:
-            f.close()
-
-        d = self.create_distribution([TESTFN])
-        self.assertEqual(d.get_command_packages(),
-                         ["distutils.command", "foo.bar", "splat"])
-
-        # ensure command line overrides config:
-        sys.argv[1:] = ["--command-packages", "spork", "build"]
-        d = self.create_distribution([TESTFN])
-        self.assertEqual(d.get_command_packages(),
-                         ["distutils.command", "spork"])
-
-        # Setting --command-packages to '' should cause the default to
-        # be used even if a config file specified something else:
-        sys.argv[1:] = ["--command-packages", "", "build"]
-        d = self.create_distribution([TESTFN])
-        self.assertEqual(d.get_command_packages(), ["distutils.command"])
-
-    def test_write_pkg_file(self):
-        # Check DistributionMetadata handling of Unicode fields
-        tmp_dir = self.mkdtemp()
-        my_file = os.path.join(tmp_dir, 'f')
-        klass = Distribution
-
-        dist = klass(attrs={'author': u'Mister Café',
-                            'name': 'my.package',
-                            'maintainer': u'Café Junior',
-                            'description': u'Café torréfié',
-                            'long_description': u'Héhéhé'})
-
-        # let's make sure the file can be written
-        # with Unicode fields. they are encoded with
-        # PKG_INFO_ENCODING
-        dist.metadata.write_pkg_file(open(my_file, 'w'))
-
-        # regular ascii is of course always usable
-        dist = klass(attrs={'author': 'Mister Cafe',
-                            'name': 'my.package',
-                            'maintainer': 'Cafe Junior',
-                            'description': 'Cafe torrefie',
-                            'long_description': 'Hehehe'})
-
-        my_file2 = os.path.join(tmp_dir, 'f2')
-        dist.metadata.write_pkg_file(open(my_file2, 'w'))
-
-    def test_empty_options(self):
-        # an empty options dictionary should not stay in the
-        # list of attributes
-
-        # catching warnings
-        warns = []
-
-        def _warn(msg):
-            warns.append(msg)
-
-        self.addCleanup(setattr, warnings, 'warn', warnings.warn)
-        warnings.warn = _warn
-        dist = Distribution(attrs={'author': 'xxx', 'name': 'xxx',
-                                   'version': 'xxx', 'url': 'xxxx',
-                                   'options': {}})
-
-        self.assertEqual(len(warns), 0)
-        self.assertNotIn('options', dir(dist))
-
-    def test_finalize_options(self):
-        attrs = {'keywords': 'one,two',
-                 'platforms': 'one,two'}
-
-        dist = Distribution(attrs=attrs)
-        dist.finalize_options()
-
-        # finalize_option splits platforms and keywords
-        self.assertEqual(dist.metadata.platforms, ['one', 'two'])
-        self.assertEqual(dist.metadata.keywords, ['one', 'two'])
-
-    def test_get_command_packages(self):
-        dist = Distribution()
-        self.assertEqual(dist.command_packages, None)
-        cmds = dist.get_command_packages()
-        self.assertEqual(cmds, ['distutils.command'])
-        self.assertEqual(dist.command_packages,
-                         ['distutils.command'])
-
-        dist.command_packages = 'one,two'
-        cmds = dist.get_command_packages()
-        self.assertEqual(cmds, ['distutils.command', 'one', 'two'])
-
-    def test_announce(self):
-        # make sure the level is known
-        dist = Distribution()
-        args = ('ok',)
-        kwargs = {'level': 'ok2'}
-        self.assertRaises(ValueError, dist.announce, args, kwargs)
-
-    def test_find_config_files_disable(self):
-        # Ticket #1180: Allow user to disable their home config file.
-        temp_home = self.mkdtemp()
-        if os.name == 'posix':
-            user_filename = os.path.join(temp_home, ".pydistutils.cfg")
-        else:
-            user_filename = os.path.join(temp_home, "pydistutils.cfg")
-
-        with open(user_filename, 'w') as f:
-            f.write('[distutils]\n')
-
-        def _expander(path):
-            return temp_home
-
-        old_expander = os.path.expanduser
-        os.path.expanduser = _expander
-        try:
-            d = distutils.dist.Distribution()
-            all_files = d.find_config_files()
-
-            d = distutils.dist.Distribution(attrs={'script_args':
-                                            ['--no-user-cfg']})
-            files = d.find_config_files()
-        finally:
-            os.path.expanduser = old_expander
-
-        # make sure --no-user-cfg disables the user cfg file
-        self.assertEqual(len(all_files)-1, len(files))
-
-
-class MetadataTestCase(support.TempdirManager, support.EnvironGuard,
-                       unittest.TestCase):
-
-    def setUp(self):
-        super(MetadataTestCase, self).setUp()
-        self.argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        sys.argv = self.argv[0]
-        sys.argv[:] = self.argv[1]
-        super(MetadataTestCase, self).tearDown()
-
-    def test_classifier(self):
-        attrs = {'name': 'Boa', 'version': '3.0',
-                 'classifiers': ['Programming Language :: Python :: 3']}
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        self.assertIn('Metadata-Version: 1.1', meta)
-
-    def test_download_url(self):
-        attrs = {'name': 'Boa', 'version': '3.0',
-                 'download_url': 'http://example.org/boa'}
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        self.assertIn('Metadata-Version: 1.1', meta)
-
-    def test_long_description(self):
-        long_desc = textwrap.dedent("""\
-        example::
-              We start here
-            and continue here
-          and end here.""")
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "long_description": long_desc}
-
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        meta = meta.replace('\n' + 8 * ' ', '\n')
-        self.assertIn(long_desc, meta)
-
-    def test_simple_metadata(self):
-        attrs = {"name": "package",
-                 "version": "1.0"}
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.0", meta)
-        self.assertNotIn("provides:", meta.lower())
-        self.assertNotIn("requires:", meta.lower())
-        self.assertNotIn("obsoletes:", meta.lower())
-
-    def test_provides(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "provides": ["package", "package.sub"]}
-        dist = Distribution(attrs)
-        self.assertEqual(dist.metadata.get_provides(),
-                         ["package", "package.sub"])
-        self.assertEqual(dist.get_provides(),
-                         ["package", "package.sub"])
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.1", meta)
-        self.assertNotIn("requires:", meta.lower())
-        self.assertNotIn("obsoletes:", meta.lower())
-
-    def test_provides_illegal(self):
-        self.assertRaises(ValueError, Distribution,
-                          {"name": "package",
-                           "version": "1.0",
-                           "provides": ["my.pkg (splat)"]})
-
-    def test_requires(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "requires": ["other", "another (==1.0)"]}
-        dist = Distribution(attrs)
-        self.assertEqual(dist.metadata.get_requires(),
-                         ["other", "another (==1.0)"])
-        self.assertEqual(dist.get_requires(),
-                         ["other", "another (==1.0)"])
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.1", meta)
-        self.assertNotIn("provides:", meta.lower())
-        self.assertIn("Requires: other", meta)
-        self.assertIn("Requires: another (==1.0)", meta)
-        self.assertNotIn("obsoletes:", meta.lower())
-
-    def test_requires_illegal(self):
-        self.assertRaises(ValueError, Distribution,
-                          {"name": "package",
-                           "version": "1.0",
-                           "requires": ["my.pkg (splat)"]})
-
-    def test_obsoletes(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "obsoletes": ["other", "another (<1.0)"]}
-        dist = Distribution(attrs)
-        self.assertEqual(dist.metadata.get_obsoletes(),
-                         ["other", "another (<1.0)"])
-        self.assertEqual(dist.get_obsoletes(),
-                         ["other", "another (<1.0)"])
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.1", meta)
-        self.assertNotIn("provides:", meta.lower())
-        self.assertNotIn("requires:", meta.lower())
-        self.assertIn("Obsoletes: other", meta)
-        self.assertIn("Obsoletes: another (<1.0)", meta)
-
-    def test_obsoletes_illegal(self):
-        self.assertRaises(ValueError, Distribution,
-                          {"name": "package",
-                           "version": "1.0",
-                           "obsoletes": ["my.pkg (splat)"]})
-
-    def format_metadata(self, dist):
-        sio = StringIO.StringIO()
-        dist.metadata.write_pkg_file(sio)
-        return sio.getvalue()
-
-    def test_custom_pydistutils(self):
-        # fixes #2166
-        # make sure pydistutils.cfg is found
-        if os.name == 'posix':
-            user_filename = ".pydistutils.cfg"
-        else:
-            user_filename = "pydistutils.cfg"
-
-        temp_dir = self.mkdtemp()
-        user_filename = os.path.join(temp_dir, user_filename)
-        f = open(user_filename, 'w')
-        try:
-            f.write('.')
-        finally:
-            f.close()
-
-        try:
-            dist = Distribution()
-
-            # linux-style
-            if sys.platform in ('linux', 'darwin'):
-                os.environ['HOME'] = temp_dir
-                files = dist.find_config_files()
-                self.assertIn(user_filename, files)
-
-            # win32-style
-            if sys.platform == 'win32':
-                # home drive should be found
-                os.environ['HOME'] = temp_dir
-                files = dist.find_config_files()
-                self.assertIn(user_filename, files,
-                             '%r not found in %r' % (user_filename, files))
-        finally:
-            os.remove(user_filename)
-
-    def test_fix_help_options(self):
-        help_tuples = [('a', 'b', 'c', 'd'), (1, 2, 3, 4)]
-        fancy_options = fix_help_options(help_tuples)
-        self.assertEqual(fancy_options[0], ('a', 'b', 'c'))
-        self.assertEqual(fancy_options[1], (1, 2, 3))
-
-    def test_show_help(self):
-        # smoke test, just makes sure some help is displayed
-        dist = Distribution()
-        sys.argv = []
-        dist.help = 1
-        dist.script_name = 'setup.py'
-        with captured_stdout() as s:
-            dist.parse_command_line()
-
-        output = [line for line in s.getvalue().split('\n')
-                  if line.strip() != '']
-        self.assertTrue(output)
-
-    def test_read_metadata(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "long_description": "desc",
-                 "description": "xxx",
-                 "download_url": "http://example.com",
-                 "keywords": ['one', 'two'],
-                 "requires": ['foo']}
-
-        dist = Distribution(attrs)
-        metadata = dist.metadata
-
-        # write it then reloads it
-        PKG_INFO = StringIO.StringIO()
-        metadata.write_pkg_file(PKG_INFO)
-        PKG_INFO.seek(0)
-        metadata.read_pkg_file(PKG_INFO)
-
-        self.assertEqual(metadata.name, "package")
-        self.assertEqual(metadata.version, "1.0")
-        self.assertEqual(metadata.description, "xxx")
-        self.assertEqual(metadata.download_url, 'http://example.com')
-        self.assertEqual(metadata.keywords, ['one', 'two'])
-        self.assertEqual(metadata.platforms, ['UNKNOWN'])
-        self.assertEqual(metadata.obsoletes, None)
-        self.assertEqual(metadata.requires, ['foo'])
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(DistributionTestCase))
-    suite.addTest(unittest.makeSuite(MetadataTestCase))
-    return suite
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_file_util.py b/lib/python2.7/distutils/tests/test_file_util.py
deleted file mode 100644
index 7dbcf52..0000000
--- a/lib/python2.7/distutils/tests/test_file_util.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""Tests for distutils.file_util."""
-import unittest
-import os
-import shutil
-
-from distutils.file_util import move_file, write_file, copy_file
-from distutils import log
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class FileUtilTestCase(support.TempdirManager, unittest.TestCase):
-
-    def _log(self, msg, *args):
-        if len(args) > 0:
-            self._logs.append(msg % args)
-        else:
-            self._logs.append(msg)
-
-    def setUp(self):
-        super(FileUtilTestCase, self).setUp()
-        self._logs = []
-        self.old_log = log.info
-        log.info = self._log
-        tmp_dir = self.mkdtemp()
-        self.source = os.path.join(tmp_dir, 'f1')
-        self.target = os.path.join(tmp_dir, 'f2')
-        self.target_dir = os.path.join(tmp_dir, 'd1')
-
-    def tearDown(self):
-        log.info = self.old_log
-        super(FileUtilTestCase, self).tearDown()
-
-    def test_move_file_verbosity(self):
-        f = open(self.source, 'w')
-        try:
-            f.write('some content')
-        finally:
-            f.close()
-
-        move_file(self.source, self.target, verbose=0)
-        wanted = []
-        self.assertEqual(self._logs, wanted)
-
-        # back to original state
-        move_file(self.target, self.source, verbose=0)
-
-        move_file(self.source, self.target, verbose=1)
-        wanted = ['moving %s -> %s' % (self.source, self.target)]
-        self.assertEqual(self._logs, wanted)
-
-        # back to original state
-        move_file(self.target, self.source, verbose=0)
-
-        self._logs = []
-        # now the target is a dir
-        os.mkdir(self.target_dir)
-        move_file(self.source, self.target_dir, verbose=1)
-        wanted = ['moving %s -> %s' % (self.source, self.target_dir)]
-        self.assertEqual(self._logs, wanted)
-
-    def test_write_file(self):
-        lines = ['a', 'b', 'c']
-        dir = self.mkdtemp()
-        foo = os.path.join(dir, 'foo')
-        write_file(foo, lines)
-        content = [line.strip() for line in open(foo).readlines()]
-        self.assertEqual(content, lines)
-
-    def test_copy_file(self):
-        src_dir = self.mkdtemp()
-        foo = os.path.join(src_dir, 'foo')
-        write_file(foo, 'content')
-        dst_dir = self.mkdtemp()
-        copy_file(foo, dst_dir)
-        self.assertTrue(os.path.exists(os.path.join(dst_dir, 'foo')))
-
-def test_suite():
-    return unittest.makeSuite(FileUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_filelist.py b/lib/python2.7/distutils/tests/test_filelist.py
deleted file mode 100644
index 69b88f2..0000000
--- a/lib/python2.7/distutils/tests/test_filelist.py
+++ /dev/null
@@ -1,299 +0,0 @@
-"""Tests for distutils.filelist."""
-import os
-import re
-import unittest
-from distutils import debug
-from distutils.log import WARN
-from distutils.errors import DistutilsTemplateError
-from distutils.filelist import glob_to_re, translate_pattern, FileList
-
-from test.test_support import captured_stdout, run_unittest
-from distutils.tests import support
-
-MANIFEST_IN = """\
-include ok
-include xo
-exclude xo
-include foo.tmp
-include buildout.cfg
-global-include *.x
-global-include *.txt
-global-exclude *.tmp
-recursive-include f *.oo
-recursive-exclude global *.x
-graft dir
-prune dir3
-"""
-
-
-def make_local_path(s):
-    """Converts '/' in a string to os.sep"""
-    return s.replace('/', os.sep)
-
-
-class FileListTestCase(support.LoggingSilencer,
-                       unittest.TestCase):
-
-    def assertNoWarnings(self):
-        self.assertEqual(self.get_logs(WARN), [])
-        self.clear_logs()
-
-    def assertWarnings(self):
-        self.assertGreater(len(self.get_logs(WARN)), 0)
-        self.clear_logs()
-
-    def test_glob_to_re(self):
-        sep = os.sep
-        if os.sep == '\\':
-            sep = re.escape(os.sep)
-
-        for glob, regex in (
-            # simple cases
-            ('foo*', r'foo[^%(sep)s]*\Z(?ms)'),
-            ('foo?', r'foo[^%(sep)s]\Z(?ms)'),
-            ('foo??', r'foo[^%(sep)s][^%(sep)s]\Z(?ms)'),
-            # special cases
-            (r'foo\\*', r'foo\\\\[^%(sep)s]*\Z(?ms)'),
-            (r'foo\\\*', r'foo\\\\\\[^%(sep)s]*\Z(?ms)'),
-            ('foo????', r'foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s]\Z(?ms)'),
-            (r'foo\\??', r'foo\\\\[^%(sep)s][^%(sep)s]\Z(?ms)')):
-            regex = regex % {'sep': sep}
-            self.assertEqual(glob_to_re(glob), regex)
-
-    def test_process_template_line(self):
-        # testing  all MANIFEST.in template patterns
-        file_list = FileList()
-        l = make_local_path
-
-        # simulated file list
-        file_list.allfiles = ['foo.tmp', 'ok', 'xo', 'four.txt',
-                              'buildout.cfg',
-                              # filelist does not filter out VCS directories,
-                              # it's sdist that does
-                              l('.hg/last-message.txt'),
-                              l('global/one.txt'),
-                              l('global/two.txt'),
-                              l('global/files.x'),
-                              l('global/here.tmp'),
-                              l('f/o/f.oo'),
-                              l('dir/graft-one'),
-                              l('dir/dir2/graft2'),
-                              l('dir3/ok'),
-                              l('dir3/sub/ok.txt'),
-                             ]
-
-        for line in MANIFEST_IN.split('\n'):
-            if line.strip() == '':
-                continue
-            file_list.process_template_line(line)
-
-        wanted = ['ok',
-                  'buildout.cfg',
-                  'four.txt',
-                  l('.hg/last-message.txt'),
-                  l('global/one.txt'),
-                  l('global/two.txt'),
-                  l('f/o/f.oo'),
-                  l('dir/graft-one'),
-                  l('dir/dir2/graft2'),
-                 ]
-
-        self.assertEqual(file_list.files, wanted)
-
-    def test_debug_print(self):
-        file_list = FileList()
-        with captured_stdout() as stdout:
-            file_list.debug_print('xxx')
-        self.assertEqual(stdout.getvalue(), '')
-
-        debug.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                file_list.debug_print('xxx')
-            self.assertEqual(stdout.getvalue(), 'xxx\n')
-        finally:
-            debug.DEBUG = False
-
-    def test_set_allfiles(self):
-        file_list = FileList()
-        files = ['a', 'b', 'c']
-        file_list.set_allfiles(files)
-        self.assertEqual(file_list.allfiles, files)
-
-    def test_remove_duplicates(self):
-        file_list = FileList()
-        file_list.files = ['a', 'b', 'a', 'g', 'c', 'g']
-        # files must be sorted beforehand (sdist does it)
-        file_list.sort()
-        file_list.remove_duplicates()
-        self.assertEqual(file_list.files, ['a', 'b', 'c', 'g'])
-
-    def test_translate_pattern(self):
-        # not regex
-        self.assertTrue(hasattr(
-            translate_pattern('a', anchor=True, is_regex=False),
-            'search'))
-
-        # is a regex
-        regex = re.compile('a')
-        self.assertEqual(
-            translate_pattern(regex, anchor=True, is_regex=True),
-            regex)
-
-        # plain string flagged as regex
-        self.assertTrue(hasattr(
-            translate_pattern('a', anchor=True, is_regex=True),
-            'search'))
-
-        # glob support
-        self.assertTrue(translate_pattern(
-            '*.py', anchor=True, is_regex=False).search('filelist.py'))
-
-    def test_exclude_pattern(self):
-        # return False if no match
-        file_list = FileList()
-        self.assertFalse(file_list.exclude_pattern('*.py'))
-
-        # return True if files match
-        file_list = FileList()
-        file_list.files = ['a.py', 'b.py']
-        self.assertTrue(file_list.exclude_pattern('*.py'))
-
-        # test excludes
-        file_list = FileList()
-        file_list.files = ['a.py', 'a.txt']
-        file_list.exclude_pattern('*.py')
-        self.assertEqual(file_list.files, ['a.txt'])
-
-    def test_include_pattern(self):
-        # return False if no match
-        file_list = FileList()
-        file_list.set_allfiles([])
-        self.assertFalse(file_list.include_pattern('*.py'))
-
-        # return True if files match
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', 'b.txt'])
-        self.assertTrue(file_list.include_pattern('*.py'))
-
-        # test * matches all files
-        file_list = FileList()
-        self.assertIsNone(file_list.allfiles)
-        file_list.set_allfiles(['a.py', 'b.txt'])
-        file_list.include_pattern('*')
-        self.assertEqual(file_list.allfiles, ['a.py', 'b.txt'])
-
-    def test_process_template(self):
-        l = make_local_path
-        # invalid lines
-        file_list = FileList()
-        for action in ('include', 'exclude', 'global-include',
-                       'global-exclude', 'recursive-include',
-                       'recursive-exclude', 'graft', 'prune', 'blarg'):
-            self.assertRaises(DistutilsTemplateError,
-                              file_list.process_template_line, action)
-
-        # include
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', 'b.txt', l('d/c.py')])
-
-        file_list.process_template_line('include *.py')
-        self.assertEqual(file_list.files, ['a.py'])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('include *.rb')
-        self.assertEqual(file_list.files, ['a.py'])
-        self.assertWarnings()
-
-        # exclude
-        file_list = FileList()
-        file_list.files = ['a.py', 'b.txt', l('d/c.py')]
-
-        file_list.process_template_line('exclude *.py')
-        self.assertEqual(file_list.files, ['b.txt', l('d/c.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('exclude *.rb')
-        self.assertEqual(file_list.files, ['b.txt', l('d/c.py')])
-        self.assertWarnings()
-
-        # global-include
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', 'b.txt', l('d/c.py')])
-
-        file_list.process_template_line('global-include *.py')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('global-include *.rb')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.py')])
-        self.assertWarnings()
-
-        # global-exclude
-        file_list = FileList()
-        file_list.files = ['a.py', 'b.txt', l('d/c.py')]
-
-        file_list.process_template_line('global-exclude *.py')
-        self.assertEqual(file_list.files, ['b.txt'])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('global-exclude *.rb')
-        self.assertEqual(file_list.files, ['b.txt'])
-        self.assertWarnings()
-
-        # recursive-include
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', l('d/b.py'), l('d/c.txt'),
-                                l('d/d/e.py')])
-
-        file_list.process_template_line('recursive-include d *.py')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('recursive-include e *.py')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertWarnings()
-
-        # recursive-exclude
-        file_list = FileList()
-        file_list.files = ['a.py', l('d/b.py'), l('d/c.txt'), l('d/d/e.py')]
-
-        file_list.process_template_line('recursive-exclude d *.py')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.txt')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('recursive-exclude e *.py')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.txt')])
-        self.assertWarnings()
-
-        # graft
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', l('d/b.py'), l('d/d/e.py'),
-                                l('f/f.py')])
-
-        file_list.process_template_line('graft d')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('graft e')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertWarnings()
-
-        # prune
-        file_list = FileList()
-        file_list.files = ['a.py', l('d/b.py'), l('d/d/e.py'), l('f/f.py')]
-
-        file_list.process_template_line('prune d')
-        self.assertEqual(file_list.files, ['a.py', l('f/f.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('prune e')
-        self.assertEqual(file_list.files, ['a.py', l('f/f.py')])
-        self.assertWarnings()
-
-
-def test_suite():
-    return unittest.makeSuite(FileListTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install.py b/lib/python2.7/distutils/tests/test_install.py
deleted file mode 100644
index 2996161..0000000
--- a/lib/python2.7/distutils/tests/test_install.py
+++ /dev/null
@@ -1,247 +0,0 @@
-"""Tests for distutils.command.install."""
-
-import os
-import sys
-import unittest
-import site
-
-from test.test_support import captured_stdout, run_unittest
-
-from distutils import sysconfig
-from distutils.command.install import install
-from distutils.command import install as install_module
-from distutils.command.build_ext import build_ext
-from distutils.command.install import INSTALL_SCHEMES
-from distutils.core import Distribution
-from distutils.errors import DistutilsOptionError
-from distutils.extension import Extension
-
-from distutils.tests import support
-
-
-def _make_ext_name(modname):
-    if os.name == 'nt' and sys.executable.endswith('_d.exe'):
-        modname += '_d'
-    return modname + sysconfig.get_config_var('SO')
-
-
-class InstallTestCase(support.TempdirManager,
-                      support.LoggingSilencer,
-                      unittest.TestCase):
-
-    def test_home_installation_scheme(self):
-        # This ensure two things:
-        # - that --home generates the desired set of directory names
-        # - test --home is supported on all platforms
-        builddir = self.mkdtemp()
-        destination = os.path.join(builddir, "installation")
-
-        dist = Distribution({"name": "foopkg"})
-        # script_name need not exist, it just need to be initialized
-        dist.script_name = os.path.join(builddir, "setup.py")
-        dist.command_obj["build"] = support.DummyCommand(
-            build_base=builddir,
-            build_lib=os.path.join(builddir, "lib"),
-            )
-
-        cmd = install(dist)
-        cmd.home = destination
-        cmd.ensure_finalized()
-
-        self.assertEqual(cmd.install_base, destination)
-        self.assertEqual(cmd.install_platbase, destination)
-
-        def check_path(got, expected):
-            got = os.path.normpath(got)
-            expected = os.path.normpath(expected)
-            self.assertEqual(got, expected)
-
-        libdir = os.path.join(destination, "lib", "python")
-        check_path(cmd.install_lib, libdir)
-        check_path(cmd.install_platlib, libdir)
-        check_path(cmd.install_purelib, libdir)
-        check_path(cmd.install_headers,
-                   os.path.join(destination, "include", "python", "foopkg"))
-        check_path(cmd.install_scripts, os.path.join(destination, "bin"))
-        check_path(cmd.install_data, destination)
-
-    def test_user_site(self):
-        # site.USER_SITE was introduced in 2.6
-        if sys.version < '2.6':
-            return
-
-        # preparing the environment for the test
-        self.old_user_base = site.USER_BASE
-        self.old_user_site = site.USER_SITE
-        self.tmpdir = self.mkdtemp()
-        self.user_base = os.path.join(self.tmpdir, 'B')
-        self.user_site = os.path.join(self.tmpdir, 'S')
-        site.USER_BASE = self.user_base
-        site.USER_SITE = self.user_site
-        install_module.USER_BASE = self.user_base
-        install_module.USER_SITE = self.user_site
-
-        def _expanduser(path):
-            return self.tmpdir
-        self.old_expand = os.path.expanduser
-        os.path.expanduser = _expanduser
-
-        def cleanup():
-            site.USER_BASE = self.old_user_base
-            site.USER_SITE = self.old_user_site
-            install_module.USER_BASE = self.old_user_base
-            install_module.USER_SITE = self.old_user_site
-            os.path.expanduser = self.old_expand
-
-        self.addCleanup(cleanup)
-
-        for key in ('nt_user', 'unix_user', 'os2_home'):
-            self.assertIn(key, INSTALL_SCHEMES)
-
-        dist = Distribution({'name': 'xx'})
-        cmd = install(dist)
-
-        # making sure the user option is there
-        options = [name for name, short, lable in
-                   cmd.user_options]
-        self.assertIn('user', options)
-
-        # setting a value
-        cmd.user = 1
-
-        # user base and site shouldn't be created yet
-        self.assertFalse(os.path.exists(self.user_base))
-        self.assertFalse(os.path.exists(self.user_site))
-
-        # let's run finalize
-        cmd.ensure_finalized()
-
-        # now they should
-        self.assertTrue(os.path.exists(self.user_base))
-        self.assertTrue(os.path.exists(self.user_site))
-
-        self.assertIn('userbase', cmd.config_vars)
-        self.assertIn('usersite', cmd.config_vars)
-
-    def test_handle_extra_path(self):
-        dist = Distribution({'name': 'xx', 'extra_path': 'path,dirs'})
-        cmd = install(dist)
-
-        # two elements
-        cmd.handle_extra_path()
-        self.assertEqual(cmd.extra_path, ['path', 'dirs'])
-        self.assertEqual(cmd.extra_dirs, 'dirs')
-        self.assertEqual(cmd.path_file, 'path')
-
-        # one element
-        cmd.extra_path = ['path']
-        cmd.handle_extra_path()
-        self.assertEqual(cmd.extra_path, ['path'])
-        self.assertEqual(cmd.extra_dirs, 'path')
-        self.assertEqual(cmd.path_file, 'path')
-
-        # none
-        dist.extra_path = cmd.extra_path = None
-        cmd.handle_extra_path()
-        self.assertEqual(cmd.extra_path, None)
-        self.assertEqual(cmd.extra_dirs, '')
-        self.assertEqual(cmd.path_file, None)
-
-        # three elements (no way !)
-        cmd.extra_path = 'path,dirs,again'
-        self.assertRaises(DistutilsOptionError, cmd.handle_extra_path)
-
-    def test_finalize_options(self):
-        dist = Distribution({'name': 'xx'})
-        cmd = install(dist)
-
-        # must supply either prefix/exec-prefix/home or
-        # install-base/install-platbase -- not both
-        cmd.prefix = 'prefix'
-        cmd.install_base = 'base'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-        # must supply either home or prefix/exec-prefix -- not both
-        cmd.install_base = None
-        cmd.home = 'home'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-        # can't combine user with prefix/exec_prefix/home or
-        # install_(plat)base
-        cmd.prefix = None
-        cmd.user = 'user'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-    def test_record(self):
-        install_dir = self.mkdtemp()
-        project_dir, dist = self.create_dist(py_modules=['hello'],
-                                             scripts=['sayhi'])
-        os.chdir(project_dir)
-        self.write_file('hello.py', "def main(): print 'o hai'")
-        self.write_file('sayhi', 'from hello import main; main()')
-
-        cmd = install(dist)
-        dist.command_obj['install'] = cmd
-        cmd.root = install_dir
-        cmd.record = os.path.join(project_dir, 'filelist')
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.record)
-        try:
-            content = f.read()
-        finally:
-            f.close()
-
-        found = [os.path.basename(line) for line in content.splitlines()]
-        expected = ['hello.py', 'hello.pyc', 'sayhi',
-                    'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
-        self.assertEqual(found, expected)
-
-    def test_record_extensions(self):
-        install_dir = self.mkdtemp()
-        project_dir, dist = self.create_dist(ext_modules=[
-            Extension('xx', ['xxmodule.c'])])
-        os.chdir(project_dir)
-        support.copy_xxmodule_c(project_dir)
-
-        buildextcmd = build_ext(dist)
-        support.fixup_build_ext(buildextcmd)
-        buildextcmd.ensure_finalized()
-
-        cmd = install(dist)
-        dist.command_obj['install'] = cmd
-        dist.command_obj['build_ext'] = buildextcmd
-        cmd.root = install_dir
-        cmd.record = os.path.join(project_dir, 'filelist')
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.record)
-        try:
-            content = f.read()
-        finally:
-            f.close()
-
-        found = [os.path.basename(line) for line in content.splitlines()]
-        expected = [_make_ext_name('xx'),
-                    'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
-        self.assertEqual(found, expected)
-
-    def test_debug_mode(self):
-        # this covers the code called when DEBUG is set
-        old_logs_len = len(self.logs)
-        install_module.DEBUG = True
-        try:
-            with captured_stdout():
-                self.test_record()
-        finally:
-            install_module.DEBUG = False
-        self.assertTrue(len(self.logs) > old_logs_len)
-
-
-def test_suite():
-    return unittest.makeSuite(InstallTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_data.py b/lib/python2.7/distutils/tests/test_install_data.py
deleted file mode 100644
index 4775694..0000000
--- a/lib/python2.7/distutils/tests/test_install_data.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""Tests for distutils.command.install_data."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.install_data import install_data
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class InstallDataTestCase(support.TempdirManager,
-                          support.LoggingSilencer,
-                          support.EnvironGuard,
-                          unittest.TestCase):
-
-    def test_simple_run(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_data(dist)
-        cmd.install_dir = inst = os.path.join(pkg_dir, 'inst')
-
-        # data_files can contain
-        #  - simple files
-        #  - a tuple with a path, and a list of file
-        one = os.path.join(pkg_dir, 'one')
-        self.write_file(one, 'xxx')
-        inst2 = os.path.join(pkg_dir, 'inst2')
-        two = os.path.join(pkg_dir, 'two')
-        self.write_file(two, 'xxx')
-
-        cmd.data_files = [one, (inst2, [two])]
-        self.assertEqual(cmd.get_inputs(), [one, (inst2, [two])])
-
-        # let's run the command
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the result
-        self.assertEqual(len(cmd.get_outputs()), 2)
-        rtwo = os.path.split(two)[-1]
-        self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
-        rone = os.path.split(one)[-1]
-        self.assertTrue(os.path.exists(os.path.join(inst, rone)))
-        cmd.outfiles = []
-
-        # let's try with warn_dir one
-        cmd.warn_dir = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the result
-        self.assertEqual(len(cmd.get_outputs()), 2)
-        self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
-        self.assertTrue(os.path.exists(os.path.join(inst, rone)))
-        cmd.outfiles = []
-
-        # now using root and empty dir
-        cmd.root = os.path.join(pkg_dir, 'root')
-        inst3 = os.path.join(cmd.install_dir, 'inst3')
-        inst4 = os.path.join(pkg_dir, 'inst4')
-        three = os.path.join(cmd.install_dir, 'three')
-        self.write_file(three, 'xx')
-        cmd.data_files = [one, (inst2, [two]),
-                          ('inst3', [three]),
-                          (inst4, [])]
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the result
-        self.assertEqual(len(cmd.get_outputs()), 4)
-        self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
-        self.assertTrue(os.path.exists(os.path.join(inst, rone)))
-
-def test_suite():
-    return unittest.makeSuite(InstallDataTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_headers.py b/lib/python2.7/distutils/tests/test_install_headers.py
deleted file mode 100644
index b37224b..0000000
--- a/lib/python2.7/distutils/tests/test_install_headers.py
+++ /dev/null
@@ -1,41 +0,0 @@
-"""Tests for distutils.command.install_headers."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.install_headers import install_headers
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class InstallHeadersTestCase(support.TempdirManager,
-                             support.LoggingSilencer,
-                             support.EnvironGuard,
-                             unittest.TestCase):
-
-    def test_simple_run(self):
-        # we have two headers
-        header_list = self.mkdtemp()
-        header1 = os.path.join(header_list, 'header1')
-        header2 = os.path.join(header_list, 'header2')
-        self.write_file(header1)
-        self.write_file(header2)
-        headers = [header1, header2]
-
-        pkg_dir, dist = self.create_dist(headers=headers)
-        cmd = install_headers(dist)
-        self.assertEqual(cmd.get_inputs(), headers)
-
-        # let's run the command
-        cmd.install_dir = os.path.join(pkg_dir, 'inst')
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the results
-        self.assertEqual(len(cmd.get_outputs()), 2)
-
-def test_suite():
-    return unittest.makeSuite(InstallHeadersTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_lib.py b/lib/python2.7/distutils/tests/test_install_lib.py
deleted file mode 100644
index 4d86308..0000000
--- a/lib/python2.7/distutils/tests/test_install_lib.py
+++ /dev/null
@@ -1,107 +0,0 @@
-"""Tests for distutils.command.install_data."""
-import os
-import sys
-import unittest
-
-from distutils.command.install_lib import install_lib
-from distutils.extension import Extension
-from distutils.tests import support
-from distutils.errors import DistutilsOptionError
-from test.test_support import run_unittest
-
-class InstallLibTestCase(support.TempdirManager,
-                         support.LoggingSilencer,
-                         support.EnvironGuard,
-                         unittest.TestCase):
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-
-        cmd.finalize_options()
-        self.assertEqual(cmd.compile, 1)
-        self.assertEqual(cmd.optimize, 0)
-
-        # optimize must be 0, 1, or 2
-        cmd.optimize = 'foo'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-        cmd.optimize = '4'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-        cmd.optimize = '2'
-        cmd.finalize_options()
-        self.assertEqual(cmd.optimize, 2)
-
-    def _setup_byte_compile(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-        cmd.compile = cmd.optimize = 1
-
-        f = os.path.join(pkg_dir, 'foo.py')
-        self.write_file(f, '# python file')
-        cmd.byte_compile([f])
-        return pkg_dir
-
-    @unittest.skipIf(sys.dont_write_bytecode, 'byte-compile not enabled')
-    def test_byte_compile(self):
-        pkg_dir = self._setup_byte_compile()
-        if sys.flags.optimize < 1:
-            self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyc')))
-        else:
-            self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyo')))
-
-    def test_get_outputs(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-
-        # setting up a dist environment
-        cmd.compile = cmd.optimize = 1
-        cmd.install_dir = pkg_dir
-        f = os.path.join(pkg_dir, 'foo.py')
-        self.write_file(f, '# python file')
-        cmd.distribution.py_modules = [pkg_dir]
-        cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]
-        cmd.distribution.packages = [pkg_dir]
-        cmd.distribution.script_name = 'setup.py'
-
-        # get_output should return 4 elements
-        self.assertTrue(len(cmd.get_outputs()) >= 2)
-
-    def test_get_inputs(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-
-        # setting up a dist environment
-        cmd.compile = cmd.optimize = 1
-        cmd.install_dir = pkg_dir
-        f = os.path.join(pkg_dir, 'foo.py')
-        self.write_file(f, '# python file')
-        cmd.distribution.py_modules = [pkg_dir]
-        cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]
-        cmd.distribution.packages = [pkg_dir]
-        cmd.distribution.script_name = 'setup.py'
-
-        # get_input should return 2 elements
-        self.assertEqual(len(cmd.get_inputs()), 2)
-
-    def test_dont_write_bytecode(self):
-        # makes sure byte_compile is not used
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-        cmd.compile = 1
-        cmd.optimize = 1
-
-        old_dont_write_bytecode = sys.dont_write_bytecode
-        sys.dont_write_bytecode = True
-        try:
-            cmd.byte_compile([])
-        finally:
-            sys.dont_write_bytecode = old_dont_write_bytecode
-
-        self.assertTrue('byte-compiling is disabled' in self.logs[0][1])
-
-def test_suite():
-    return unittest.makeSuite(InstallLibTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_scripts.py b/lib/python2.7/distutils/tests/test_install_scripts.py
deleted file mode 100644
index 4608545..0000000
--- a/lib/python2.7/distutils/tests/test_install_scripts.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Tests for distutils.command.install_scripts."""
-
-import os
-import unittest
-
-from distutils.command.install_scripts import install_scripts
-from distutils.core import Distribution
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class InstallScriptsTestCase(support.TempdirManager,
-                             support.LoggingSilencer,
-                             unittest.TestCase):
-
-    def test_default_settings(self):
-        dist = Distribution()
-        dist.command_obj["build"] = support.DummyCommand(
-            build_scripts="/foo/bar")
-        dist.command_obj["install"] = support.DummyCommand(
-            install_scripts="/splat/funk",
-            force=1,
-            skip_build=1,
-            )
-        cmd = install_scripts(dist)
-        self.assertTrue(not cmd.force)
-        self.assertTrue(not cmd.skip_build)
-        self.assertTrue(cmd.build_dir is None)
-        self.assertTrue(cmd.install_dir is None)
-
-        cmd.finalize_options()
-
-        self.assertTrue(cmd.force)
-        self.assertTrue(cmd.skip_build)
-        self.assertEqual(cmd.build_dir, "/foo/bar")
-        self.assertEqual(cmd.install_dir, "/splat/funk")
-
-    def test_installation(self):
-        source = self.mkdtemp()
-        expected = []
-
-        def write_script(name, text):
-            expected.append(name)
-            f = open(os.path.join(source, name), "w")
-            try:
-                f.write(text)
-            finally:
-                f.close()
-
-        write_script("script1.py", ("#! /usr/bin/env python2.3\n"
-                                    "# bogus script w/ Python sh-bang\n"
-                                    "pass\n"))
-        write_script("script2.py", ("#!/usr/bin/python\n"
-                                    "# bogus script w/ Python sh-bang\n"
-                                    "pass\n"))
-        write_script("shell.sh", ("#!/bin/sh\n"
-                                  "# bogus shell script w/ sh-bang\n"
-                                  "exit 0\n"))
-
-        target = self.mkdtemp()
-        dist = Distribution()
-        dist.command_obj["build"] = support.DummyCommand(build_scripts=source)
-        dist.command_obj["install"] = support.DummyCommand(
-            install_scripts=target,
-            force=1,
-            skip_build=1,
-            )
-        cmd = install_scripts(dist)
-        cmd.finalize_options()
-        cmd.run()
-
-        installed = os.listdir(target)
-        for name in expected:
-            self.assertTrue(name in installed)
-
-
-def test_suite():
-    return unittest.makeSuite(InstallScriptsTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_msvc9compiler.py b/lib/python2.7/distutils/tests/test_msvc9compiler.py
deleted file mode 100644
index 2d94a11..0000000
--- a/lib/python2.7/distutils/tests/test_msvc9compiler.py
+++ /dev/null
@@ -1,184 +0,0 @@
-"""Tests for distutils.msvc9compiler."""
-import sys
-import unittest
-import os
-
-from distutils.errors import DistutilsPlatformError
-from distutils.tests import support
-from test.test_support import run_unittest
-
-# A manifest with the only assembly reference being the msvcrt assembly, so
-# should have the assembly completely stripped.  Note that although the
-# assembly has a <security> reference the assembly is removed - that is
-# currently a "feature", not a bug :)
-_MANIFEST_WITH_ONLY_MSVC_REFERENCE = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
-          manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="asInvoker" uiAccess="false">
-        </requestedExecutionLevel>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
-         version="9.0.21022.8" processorArchitecture="x86"
-         publicKeyToken="XXXX">
-      </assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-</assembly>
-"""
-
-# A manifest with references to assemblies other than msvcrt.  When processed,
-# this assembly should be returned with just the msvcrt part removed.
-_MANIFEST_WITH_MULTIPLE_REFERENCES = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
-          manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="asInvoker" uiAccess="false">
-        </requestedExecutionLevel>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
-         version="9.0.21022.8" processorArchitecture="x86"
-         publicKeyToken="XXXX">
-      </assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
-        version="9.0.21022.8" processorArchitecture="x86"
-        publicKeyToken="XXXX"></assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-</assembly>
-"""
-
-_CLEANED_MANIFEST = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
-          manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="asInvoker" uiAccess="false">
-        </requestedExecutionLevel>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-  <dependency>
-
-  </dependency>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
-        version="9.0.21022.8" processorArchitecture="x86"
-        publicKeyToken="XXXX"></assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-</assembly>"""
-
-if sys.platform=="win32":
-    from distutils.msvccompiler import get_build_version
-    if get_build_version()>=8.0:
-        SKIP_MESSAGE = None
-    else:
-        SKIP_MESSAGE = "These tests are only for MSVC8.0 or above"
-else:
-    SKIP_MESSAGE = "These tests are only for win32"
-
-@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)
-class msvc9compilerTestCase(support.TempdirManager,
-                            unittest.TestCase):
-
-    def test_no_compiler(self):
-        # makes sure query_vcvarsall raises
-        # a DistutilsPlatformError if the compiler
-        # is not found
-        from distutils.msvc9compiler import query_vcvarsall
-        def _find_vcvarsall(version):
-            return None
-
-        from distutils import msvc9compiler
-        old_find_vcvarsall = msvc9compiler.find_vcvarsall
-        msvc9compiler.find_vcvarsall = _find_vcvarsall
-        try:
-            self.assertRaises(DistutilsPlatformError, query_vcvarsall,
-                             'wont find this version')
-        finally:
-            msvc9compiler.find_vcvarsall = old_find_vcvarsall
-
-    def test_reg_class(self):
-        from distutils.msvc9compiler import Reg
-        self.assertRaises(KeyError, Reg.get_value, 'xxx', 'xxx')
-
-        # looking for values that should exist on all
-        # windows registeries versions.
-        path = r'Control Panel\Desktop'
-        v = Reg.get_value(path, u'dragfullwindows')
-        self.assertTrue(v in (u'0', u'1', u'2'))
-
-        import _winreg
-        HKCU = _winreg.HKEY_CURRENT_USER
-        keys = Reg.read_keys(HKCU, 'xxxx')
-        self.assertEqual(keys, None)
-
-        keys = Reg.read_keys(HKCU, r'Control Panel')
-        self.assertTrue('Desktop' in keys)
-
-    def test_remove_visual_c_ref(self):
-        from distutils.msvc9compiler import MSVCCompiler
-        tempdir = self.mkdtemp()
-        manifest = os.path.join(tempdir, 'manifest')
-        f = open(manifest, 'w')
-        try:
-            f.write(_MANIFEST_WITH_MULTIPLE_REFERENCES)
-        finally:
-            f.close()
-
-        compiler = MSVCCompiler()
-        compiler._remove_visual_c_ref(manifest)
-
-        # see what we got
-        f = open(manifest)
-        try:
-            # removing trailing spaces
-            content = '\n'.join([line.rstrip() for line in f.readlines()])
-        finally:
-            f.close()
-
-        # makes sure the manifest was properly cleaned
-        self.assertEqual(content, _CLEANED_MANIFEST)
-
-    def test_remove_entire_manifest(self):
-        from distutils.msvc9compiler import MSVCCompiler
-        tempdir = self.mkdtemp()
-        manifest = os.path.join(tempdir, 'manifest')
-        f = open(manifest, 'w')
-        try:
-            f.write(_MANIFEST_WITH_ONLY_MSVC_REFERENCE)
-        finally:
-            f.close()
-
-        compiler = MSVCCompiler()
-        got = compiler._remove_visual_c_ref(manifest)
-        self.assertIs(got, None)
-
-
-def test_suite():
-    return unittest.makeSuite(msvc9compilerTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_register.py b/lib/python2.7/distutils/tests/test_register.py
deleted file mode 100644
index 4f34b18..0000000
--- a/lib/python2.7/distutils/tests/test_register.py
+++ /dev/null
@@ -1,290 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.register."""
-import os
-import unittest
-import getpass
-import urllib2
-import warnings
-
-from test.test_support import check_warnings, run_unittest
-
-from distutils.command import register as register_module
-from distutils.command.register import register
-from distutils.errors import DistutilsSetupError
-
-from distutils.tests.test_config import PyPIRCCommandTestCase
-
-try:
-    import docutils
-except ImportError:
-    docutils = None
-
-PYPIRC_NOPASSWORD = """\
-[distutils]
-
-index-servers =
-    server1
-
-[server1]
-username:me
-"""
-
-WANTED_PYPIRC = """\
-[distutils]
-index-servers =
-    pypi
-
-[pypi]
-username:tarek
-password:password
-"""
-
-class RawInputs(object):
-    """Fakes user inputs."""
-    def __init__(self, *answers):
-        self.answers = answers
-        self.index = 0
-
-    def __call__(self, prompt=''):
-        try:
-            return self.answers[self.index]
-        finally:
-            self.index += 1
-
-class FakeOpener(object):
-    """Fakes a PyPI server"""
-    def __init__(self):
-        self.reqs = []
-
-    def __call__(self, *args):
-        return self
-
-    def open(self, req):
-        self.reqs.append(req)
-        return self
-
-    def read(self):
-        return 'xxx'
-
-class RegisterTestCase(PyPIRCCommandTestCase):
-
-    def setUp(self):
-        super(RegisterTestCase, self).setUp()
-        # patching the password prompt
-        self._old_getpass = getpass.getpass
-        def _getpass(prompt):
-            return 'password'
-        getpass.getpass = _getpass
-        self.old_opener = urllib2.build_opener
-        self.conn = urllib2.build_opener = FakeOpener()
-
-    def tearDown(self):
-        getpass.getpass = self._old_getpass
-        urllib2.build_opener = self.old_opener
-        super(RegisterTestCase, self).tearDown()
-
-    def _get_cmd(self, metadata=None):
-        if metadata is None:
-            metadata = {'url': 'xxx', 'author': 'xxx',
-                        'author_email': 'xxx',
-                        'name': 'xxx', 'version': 'xxx'}
-        pkg_info, dist = self.create_dist(**metadata)
-        return register(dist)
-
-    def test_create_pypirc(self):
-        # this test makes sure a .pypirc file
-        # is created when requested.
-
-        # let's create a register instance
-        cmd = self._get_cmd()
-
-        # we shouldn't have a .pypirc file yet
-        self.assertTrue(not os.path.exists(self.rc))
-
-        # patching raw_input and getpass.getpass
-        # so register gets happy
-        #
-        # Here's what we are faking :
-        # use your existing login (choice 1.)
-        # Username : 'tarek'
-        # Password : 'password'
-        # Save your login (y/N)? : 'y'
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # we should have a brand new .pypirc file
-        self.assertTrue(os.path.exists(self.rc))
-
-        # with the content similar to WANTED_PYPIRC
-        f = open(self.rc)
-        try:
-            content = f.read()
-            self.assertEqual(content, WANTED_PYPIRC)
-        finally:
-            f.close()
-
-        # now let's make sure the .pypirc file generated
-        # really works : we shouldn't be asked anything
-        # if we run the command again
-        def _no_way(prompt=''):
-            raise AssertionError(prompt)
-        register_module.raw_input = _no_way
-
-        cmd.show_response = 1
-        cmd.run()
-
-        # let's see what the server received : we should
-        # have 2 similar requests
-        self.assertEqual(len(self.conn.reqs), 2)
-        req1 = dict(self.conn.reqs[0].headers)
-        req2 = dict(self.conn.reqs[1].headers)
-        self.assertEqual(req2['Content-length'], req1['Content-length'])
-        self.assertTrue('xxx' in self.conn.reqs[1].data)
-
-    def test_password_not_in_file(self):
-
-        self.write_file(self.rc, PYPIRC_NOPASSWORD)
-        cmd = self._get_cmd()
-        cmd._set_config()
-        cmd.finalize_options()
-        cmd.send_metadata()
-
-        # dist.password should be set
-        # therefore used afterwards by other commands
-        self.assertEqual(cmd.distribution.password, 'password')
-
-    def test_registering(self):
-        # this test runs choice 2
-        cmd = self._get_cmd()
-        inputs = RawInputs('2', 'tarek', 'tarek@ziade.org')
-        register_module.raw_input = inputs.__call__
-        try:
-            # let's run the command
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # we should have send a request
-        self.assertEqual(len(self.conn.reqs), 1)
-        req = self.conn.reqs[0]
-        headers = dict(req.headers)
-        self.assertEqual(headers['Content-length'], '608')
-        self.assertTrue('tarek' in req.data)
-
-    def test_password_reset(self):
-        # this test runs choice 3
-        cmd = self._get_cmd()
-        inputs = RawInputs('3', 'tarek@ziade.org')
-        register_module.raw_input = inputs.__call__
-        try:
-            # let's run the command
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # we should have send a request
-        self.assertEqual(len(self.conn.reqs), 1)
-        req = self.conn.reqs[0]
-        headers = dict(req.headers)
-        self.assertEqual(headers['Content-length'], '290')
-        self.assertTrue('tarek' in req.data)
-
-    @unittest.skipUnless(docutils is not None, 'needs docutils')
-    def test_strict(self):
-        # testing the script option
-        # when on, the register command stops if
-        # the metadata is incomplete or if
-        # long_description is not reSt compliant
-
-        # empty metadata
-        cmd = self._get_cmd({})
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        self.assertRaises(DistutilsSetupError, cmd.run)
-
-        # metadata are OK but long_description is broken
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': u'éxéxé',
-                    'name': 'xxx', 'version': 'xxx',
-                    'long_description': 'title\n==\n\ntext'}
-
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        self.assertRaises(DistutilsSetupError, cmd.run)
-
-        # now something that works
-        metadata['long_description'] = 'title\n=====\n\ntext'
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # strict is not by default
-        cmd = self._get_cmd()
-        cmd.ensure_finalized()
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # and finally a Unicode test (bug #12114)
-        metadata = {'url': u'xxx', 'author': u'\u00c9ric',
-                    'author_email': u'xxx', u'name': 'xxx',
-                    'version': u'xxx',
-                    'description': u'Something about esszet \u00df',
-                    'long_description': u'More things about esszet \u00df'}
-
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-    @unittest.skipUnless(docutils is not None, 'needs docutils')
-    def test_register_invalid_long_description(self):
-        description = ':funkie:`str`'  # mimic Sphinx-specific markup
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': 'xxx',
-                    'name': 'xxx', 'version': 'xxx',
-                    'long_description': description}
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = True
-        inputs = RawInputs('2', 'tarek', 'tarek@ziade.org')
-        register_module.raw_input = inputs
-        self.addCleanup(delattr, register_module, 'raw_input')
-        self.assertRaises(DistutilsSetupError, cmd.run)
-
-    def test_check_metadata_deprecated(self):
-        # makes sure make_metadata is deprecated
-        cmd = self._get_cmd()
-        with check_warnings() as w:
-            warnings.simplefilter("always")
-            cmd.check_metadata()
-            self.assertEqual(len(w.warnings), 1)
-
-def test_suite():
-    return unittest.makeSuite(RegisterTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_sdist.py b/lib/python2.7/distutils/tests/test_sdist.py
deleted file mode 100644
index 7e7d98d..0000000
--- a/lib/python2.7/distutils/tests/test_sdist.py
+++ /dev/null
@@ -1,512 +0,0 @@
-"""Tests for distutils.command.sdist."""
-import os
-import tarfile
-import unittest
-import warnings
-import zipfile
-from os.path import join
-from textwrap import dedent
-from test.test_support import captured_stdout, check_warnings, run_unittest
-
-# zlib is not used here, but if it's not available
-# the tests that use zipfile may fail
-try:
-    import zlib
-except ImportError:
-    zlib = None
-
-try:
-    import grp
-    import pwd
-    UID_GID_SUPPORT = True
-except ImportError:
-    UID_GID_SUPPORT = False
-
-
-from distutils.command.sdist import sdist, show_formats
-from distutils.core import Distribution
-from distutils.tests.test_config import PyPIRCCommandTestCase
-from distutils.errors import DistutilsOptionError
-from distutils.spawn import find_executable
-from distutils.log import WARN
-from distutils.filelist import FileList
-from distutils.archive_util import ARCHIVE_FORMATS
-
-SETUP_PY = """
-from distutils.core import setup
-import somecode
-
-setup(name='fake')
-"""
-
-MANIFEST = """\
-# file GENERATED by distutils, do NOT edit
-README
-buildout.cfg
-inroot.txt
-setup.py
-data%(sep)sdata.dt
-scripts%(sep)sscript.py
-some%(sep)sfile.txt
-some%(sep)sother_file.txt
-somecode%(sep)s__init__.py
-somecode%(sep)sdoc.dat
-somecode%(sep)sdoc.txt
-"""
-
-class SDistTestCase(PyPIRCCommandTestCase):
-
-    def setUp(self):
-        # PyPIRCCommandTestCase creates a temp dir already
-        # and put it in self.tmp_dir
-        super(SDistTestCase, self).setUp()
-        # setting up an environment
-        self.old_path = os.getcwd()
-        os.mkdir(join(self.tmp_dir, 'somecode'))
-        os.mkdir(join(self.tmp_dir, 'dist'))
-        # a package, and a README
-        self.write_file((self.tmp_dir, 'README'), 'xxx')
-        self.write_file((self.tmp_dir, 'somecode', '__init__.py'), '#')
-        self.write_file((self.tmp_dir, 'setup.py'), SETUP_PY)
-        os.chdir(self.tmp_dir)
-
-    def tearDown(self):
-        # back to normal
-        os.chdir(self.old_path)
-        super(SDistTestCase, self).tearDown()
-
-    def get_cmd(self, metadata=None):
-        """Returns a cmd"""
-        if metadata is None:
-            metadata = {'name': 'fake', 'version': '1.0',
-                        'url': 'xxx', 'author': 'xxx',
-                        'author_email': 'xxx'}
-        dist = Distribution(metadata)
-        dist.script_name = 'setup.py'
-        dist.packages = ['somecode']
-        dist.include_package_data = True
-        cmd = sdist(dist)
-        cmd.dist_dir = 'dist'
-        return dist, cmd
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_prune_file_list(self):
-        # this test creates a project with some VCS dirs and an NFS rename
-        # file, then launches sdist to check they get pruned on all systems
-
-        # creating VCS directories with some files in them
-        os.mkdir(join(self.tmp_dir, 'somecode', '.svn'))
-        self.write_file((self.tmp_dir, 'somecode', '.svn', 'ok.py'), 'xxx')
-
-        os.mkdir(join(self.tmp_dir, 'somecode', '.hg'))
-        self.write_file((self.tmp_dir, 'somecode', '.hg',
-                         'ok'), 'xxx')
-
-        os.mkdir(join(self.tmp_dir, 'somecode', '.git'))
-        self.write_file((self.tmp_dir, 'somecode', '.git',
-                         'ok'), 'xxx')
-
-        self.write_file((self.tmp_dir, 'somecode', '.nfs0001'), 'xxx')
-
-        # now building a sdist
-        dist, cmd = self.get_cmd()
-
-        # zip is available universally
-        # (tar might not be installed under win32)
-        cmd.formats = ['zip']
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # now let's check what we have
-        dist_folder = join(self.tmp_dir, 'dist')
-        files = os.listdir(dist_folder)
-        self.assertEqual(files, ['fake-1.0.zip'])
-
-        zip_file = zipfile.ZipFile(join(dist_folder, 'fake-1.0.zip'))
-        try:
-            content = zip_file.namelist()
-        finally:
-            zip_file.close()
-
-        # making sure everything has been pruned correctly
-        self.assertEqual(len(content), 4)
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_make_distribution(self):
-
-        # check if tar and gzip are installed
-        if (find_executable('tar') is None or
-            find_executable('gzip') is None):
-            return
-
-        # now building a sdist
-        dist, cmd = self.get_cmd()
-
-        # creating a gztar then a tar
-        cmd.formats = ['gztar', 'tar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # making sure we have two files
-        dist_folder = join(self.tmp_dir, 'dist')
-        result = os.listdir(dist_folder)
-        result.sort()
-        self.assertEqual(result, ['fake-1.0.tar', 'fake-1.0.tar.gz'])
-
-        os.remove(join(dist_folder, 'fake-1.0.tar'))
-        os.remove(join(dist_folder, 'fake-1.0.tar.gz'))
-
-        # now trying a tar then a gztar
-        cmd.formats = ['tar', 'gztar']
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        result = os.listdir(dist_folder)
-        result.sort()
-        self.assertEqual(result, ['fake-1.0.tar', 'fake-1.0.tar.gz'])
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_unicode_metadata_tgz(self):
-        """
-        Unicode name or version should not break building to tar.gz format.
-        Reference issue #11638.
-        """
-
-        # create the sdist command with unicode parameters
-        dist, cmd = self.get_cmd({'name': u'fake', 'version': u'1.0'})
-
-        # create the sdist as gztar and run the command
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # The command should have created the .tar.gz file
-        dist_folder = join(self.tmp_dir, 'dist')
-        result = os.listdir(dist_folder)
-        self.assertEqual(result, ['fake-1.0.tar.gz'])
-
-        os.remove(join(dist_folder, 'fake-1.0.tar.gz'))
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_add_defaults(self):
-
-        # http://bugs.python.org/issue2279
-
-        # add_default should also include
-        # data_files and package_data
-        dist, cmd = self.get_cmd()
-
-        # filling data_files by pointing files
-        # in package_data
-        dist.package_data = {'': ['*.cfg', '*.dat'],
-                             'somecode': ['*.txt']}
-        self.write_file((self.tmp_dir, 'somecode', 'doc.txt'), '#')
-        self.write_file((self.tmp_dir, 'somecode', 'doc.dat'), '#')
-
-        # adding some data in data_files
-        data_dir = join(self.tmp_dir, 'data')
-        os.mkdir(data_dir)
-        self.write_file((data_dir, 'data.dt'), '#')
-        some_dir = join(self.tmp_dir, 'some')
-        os.mkdir(some_dir)
-        # make sure VCS directories are pruned (#14004)
-        hg_dir = join(self.tmp_dir, '.hg')
-        os.mkdir(hg_dir)
-        self.write_file((hg_dir, 'last-message.txt'), '#')
-        # a buggy regex used to prevent this from working on windows (#6884)
-        self.write_file((self.tmp_dir, 'buildout.cfg'), '#')
-        self.write_file((self.tmp_dir, 'inroot.txt'), '#')
-        self.write_file((some_dir, 'file.txt'), '#')
-        self.write_file((some_dir, 'other_file.txt'), '#')
-
-        dist.data_files = [('data', ['data/data.dt',
-                                     'buildout.cfg',
-                                     'inroot.txt',
-                                     'notexisting']),
-                           'some/file.txt',
-                           'some/other_file.txt']
-
-        # adding a script
-        script_dir = join(self.tmp_dir, 'scripts')
-        os.mkdir(script_dir)
-        self.write_file((script_dir, 'script.py'), '#')
-        dist.scripts = [join('scripts', 'script.py')]
-
-        cmd.formats = ['zip']
-        cmd.use_defaults = True
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # now let's check what we have
-        dist_folder = join(self.tmp_dir, 'dist')
-        files = os.listdir(dist_folder)
-        self.assertEqual(files, ['fake-1.0.zip'])
-
-        zip_file = zipfile.ZipFile(join(dist_folder, 'fake-1.0.zip'))
-        try:
-            content = zip_file.namelist()
-        finally:
-            zip_file.close()
-
-        # making sure everything was added
-        self.assertEqual(len(content), 12)
-
-        # checking the MANIFEST
-        f = open(join(self.tmp_dir, 'MANIFEST'))
-        try:
-            manifest = f.read()
-        finally:
-            f.close()
-        self.assertEqual(manifest, MANIFEST % {'sep': os.sep})
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_metadata_check_option(self):
-        # testing the `medata-check` option
-        dist, cmd = self.get_cmd(metadata={})
-
-        # this should raise some warnings !
-        # with the `check` subcommand
-        cmd.ensure_finalized()
-        cmd.run()
-        warnings = [msg for msg in self.get_logs(WARN) if
-                    msg.startswith('warning: check:')]
-        self.assertEqual(len(warnings), 2)
-
-        # trying with a complete set of metadata
-        self.clear_logs()
-        dist, cmd = self.get_cmd()
-        cmd.ensure_finalized()
-        cmd.metadata_check = 0
-        cmd.run()
-        warnings = [msg for msg in self.get_logs(WARN) if
-                    msg.startswith('warning: check:')]
-        self.assertEqual(len(warnings), 0)
-
-    def test_check_metadata_deprecated(self):
-        # makes sure make_metadata is deprecated
-        dist, cmd = self.get_cmd()
-        with check_warnings() as w:
-            warnings.simplefilter("always")
-            cmd.check_metadata()
-            self.assertEqual(len(w.warnings), 1)
-
-    def test_show_formats(self):
-        with captured_stdout() as stdout:
-            show_formats()
-
-        # the output should be a header line + one line per format
-        num_formats = len(ARCHIVE_FORMATS.keys())
-        output = [line for line in stdout.getvalue().split('\n')
-                  if line.strip().startswith('--formats=')]
-        self.assertEqual(len(output), num_formats)
-
-    def test_finalize_options(self):
-        dist, cmd = self.get_cmd()
-        cmd.finalize_options()
-
-        # default options set by finalize
-        self.assertEqual(cmd.manifest, 'MANIFEST')
-        self.assertEqual(cmd.template, 'MANIFEST.in')
-        self.assertEqual(cmd.dist_dir, 'dist')
-
-        # formats has to be a string splitable on (' ', ',') or
-        # a stringlist
-        cmd.formats = 1
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-        cmd.formats = ['zip']
-        cmd.finalize_options()
-
-        # formats has to be known
-        cmd.formats = 'supazipa'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
-    def test_make_distribution_owner_group(self):
-
-        # check if tar and gzip are installed
-        if (find_executable('tar') is None or
-            find_executable('gzip') is None):
-            return
-
-        # now building a sdist
-        dist, cmd = self.get_cmd()
-
-        # creating a gztar and specifying the owner+group
-        cmd.formats = ['gztar']
-        cmd.owner = pwd.getpwuid(0)[0]
-        cmd.group = grp.getgrgid(0)[0]
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # making sure we have the good rights
-        archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
-        archive = tarfile.open(archive_name)
-        try:
-            for member in archive.getmembers():
-                self.assertEqual(member.uid, 0)
-                self.assertEqual(member.gid, 0)
-        finally:
-            archive.close()
-
-        # building a sdist again
-        dist, cmd = self.get_cmd()
-
-        # creating a gztar
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # making sure we have the good rights
-        archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
-        archive = tarfile.open(archive_name)
-
-        # note that we are not testing the group ownership here
-        # because, depending on the platforms and the container
-        # rights (see #7408)
-        try:
-            for member in archive.getmembers():
-                self.assertEqual(member.uid, os.getuid())
-        finally:
-            archive.close()
-
-    # the following tests make sure there is a nice error message instead
-    # of a traceback when parsing an invalid manifest template
-
-    def _check_template(self, content):
-        dist, cmd = self.get_cmd()
-        os.chdir(self.tmp_dir)
-        self.write_file('MANIFEST.in', content)
-        cmd.ensure_finalized()
-        cmd.filelist = FileList()
-        cmd.read_template()
-        warnings = self.get_logs(WARN)
-        self.assertEqual(len(warnings), 1)
-
-    def test_invalid_template_unknown_command(self):
-        self._check_template('taunt knights *')
-
-    def test_invalid_template_wrong_arguments(self):
-        # this manifest command takes one argument
-        self._check_template('prune')
-
-    @unittest.skipIf(os.name != 'nt', 'test relevant for Windows only')
-    def test_invalid_template_wrong_path(self):
-        # on Windows, trailing slashes are not allowed
-        # this used to crash instead of raising a warning: #8286
-        self._check_template('include examples/')
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_get_file_list(self):
-        # make sure MANIFEST is recalculated
-        dist, cmd = self.get_cmd()
-
-        # filling data_files by pointing files in package_data
-        dist.package_data = {'somecode': ['*.txt']}
-        self.write_file((self.tmp_dir, 'somecode', 'doc.txt'), '#')
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.manifest)
-        try:
-            manifest = [line.strip() for line in f.read().split('\n')
-                        if line.strip() != '']
-        finally:
-            f.close()
-
-        self.assertEqual(len(manifest), 5)
-
-        # adding a file
-        self.write_file((self.tmp_dir, 'somecode', 'doc2.txt'), '#')
-
-        # make sure build_py is reinitialized, like a fresh run
-        build_py = dist.get_command_obj('build_py')
-        build_py.finalized = False
-        build_py.ensure_finalized()
-
-        cmd.run()
-
-        f = open(cmd.manifest)
-        try:
-            manifest2 = [line.strip() for line in f.read().split('\n')
-                         if line.strip() != '']
-        finally:
-            f.close()
-
-        # do we have the new file in MANIFEST ?
-        self.assertEqual(len(manifest2), 6)
-        self.assertIn('doc2.txt', manifest2[-1])
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_manifest_marker(self):
-        # check that autogenerated MANIFESTs have a marker
-        dist, cmd = self.get_cmd()
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.manifest)
-        try:
-            manifest = [line.strip() for line in f.read().split('\n')
-                        if line.strip() != '']
-        finally:
-            f.close()
-
-        self.assertEqual(manifest[0],
-                         '# file GENERATED by distutils, do NOT edit')
-
-    @unittest.skipUnless(zlib, 'requires zlib')
-    def test_manifest_comments(self):
-        # make sure comments don't cause exceptions or wrong includes
-        contents = dedent("""\
-            # bad.py
-            #bad.py
-            good.py
-            """)
-        dist, cmd = self.get_cmd()
-        cmd.ensure_finalized()
-        self.write_file((self.tmp_dir, cmd.manifest), contents)
-        self.write_file((self.tmp_dir, 'good.py'), '# pick me!')
-        self.write_file((self.tmp_dir, 'bad.py'), "# don't pick me!")
-        self.write_file((self.tmp_dir, '#bad.py'), "# don't pick me!")
-        cmd.run()
-        self.assertEqual(cmd.filelist.files, ['good.py'])
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_manual_manifest(self):
-        # check that a MANIFEST without a marker is left alone
-        dist, cmd = self.get_cmd()
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        self.write_file((self.tmp_dir, cmd.manifest), 'README.manual')
-        self.write_file((self.tmp_dir, 'README.manual'),
-                         'This project maintains its MANIFEST file itself.')
-        cmd.run()
-        self.assertEqual(cmd.filelist.files, ['README.manual'])
-
-        f = open(cmd.manifest)
-        try:
-            manifest = [line.strip() for line in f.read().split('\n')
-                        if line.strip() != '']
-        finally:
-            f.close()
-
-        self.assertEqual(manifest, ['README.manual'])
-
-        archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
-        archive = tarfile.open(archive_name)
-        try:
-            filenames = [tarinfo.name for tarinfo in archive]
-        finally:
-            archive.close()
-        self.assertEqual(sorted(filenames), ['fake-1.0', 'fake-1.0/PKG-INFO',
-                                             'fake-1.0/README.manual'])
-
-def test_suite():
-    return unittest.makeSuite(SDistTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_spawn.py b/lib/python2.7/distutils/tests/test_spawn.py
deleted file mode 100644
index defa54d..0000000
--- a/lib/python2.7/distutils/tests/test_spawn.py
+++ /dev/null
@@ -1,60 +0,0 @@
-"""Tests for distutils.spawn."""
-import unittest
-import os
-import time
-from test.test_support import captured_stdout, run_unittest
-
-from distutils.spawn import _nt_quote_args
-from distutils.spawn import spawn, find_executable
-from distutils.errors import DistutilsExecError
-from distutils.tests import support
-
-class SpawnTestCase(support.TempdirManager,
-                    support.LoggingSilencer,
-                    unittest.TestCase):
-
-    def test_nt_quote_args(self):
-
-        for (args, wanted) in ((['with space', 'nospace'],
-                                ['"with space"', 'nospace']),
-                               (['nochange', 'nospace'],
-                                ['nochange', 'nospace'])):
-            res = _nt_quote_args(args)
-            self.assertEqual(res, wanted)
-
-
-    @unittest.skipUnless(os.name in ('nt', 'posix'),
-                         'Runs only under posix or nt')
-    def test_spawn(self):
-        tmpdir = self.mkdtemp()
-
-        # creating something executable
-        # through the shell that returns 1
-        if os.name == 'posix':
-            exe = os.path.join(tmpdir, 'foo.sh')
-            self.write_file(exe, '#!/bin/sh\nexit 1')
-            os.chmod(exe, 0777)
-        else:
-            exe = os.path.join(tmpdir, 'foo.bat')
-            self.write_file(exe, 'exit 1')
-
-        os.chmod(exe, 0777)
-        self.assertRaises(DistutilsExecError, spawn, [exe])
-
-        # now something that works
-        if os.name == 'posix':
-            exe = os.path.join(tmpdir, 'foo.sh')
-            self.write_file(exe, '#!/bin/sh\nexit 0')
-            os.chmod(exe, 0777)
-        else:
-            exe = os.path.join(tmpdir, 'foo.bat')
-            self.write_file(exe, 'exit 0')
-
-        os.chmod(exe, 0777)
-        spawn([exe])  # should work without any error
-
-def test_suite():
-    return unittest.makeSuite(SpawnTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_sysconfig.py b/lib/python2.7/distutils/tests/test_sysconfig.py
deleted file mode 100644
index ddb40d9..0000000
--- a/lib/python2.7/distutils/tests/test_sysconfig.py
+++ /dev/null
@@ -1,117 +0,0 @@
-"""Tests for distutils.sysconfig."""
-import os
-import test
-import unittest
-import shutil
-
-from distutils import sysconfig
-from distutils.tests import support
-from test.test_support import TESTFN
-
-class SysconfigTestCase(support.EnvironGuard,
-                        unittest.TestCase):
-    def setUp(self):
-        super(SysconfigTestCase, self).setUp()
-        self.makefile = None
-
-    def tearDown(self):
-        if self.makefile is not None:
-            os.unlink(self.makefile)
-        self.cleanup_testfn()
-        super(SysconfigTestCase, self).tearDown()
-
-    def cleanup_testfn(self):
-        path = test.test_support.TESTFN
-        if os.path.isfile(path):
-            os.remove(path)
-        elif os.path.isdir(path):
-            shutil.rmtree(path)
-
-    def test_get_python_lib(self):
-        lib_dir = sysconfig.get_python_lib()
-        # XXX doesn't work on Linux when Python was never installed before
-        #self.assertTrue(os.path.isdir(lib_dir), lib_dir)
-        # test for pythonxx.lib?
-        self.assertNotEqual(sysconfig.get_python_lib(),
-                            sysconfig.get_python_lib(prefix=TESTFN))
-        _sysconfig = __import__('sysconfig')
-        res = sysconfig.get_python_lib(True, True)
-        self.assertEqual(_sysconfig.get_path('platstdlib'), res)
-
-    def test_get_python_inc(self):
-        inc_dir = sysconfig.get_python_inc()
-        # This is not much of a test.  We make sure Python.h exists
-        # in the directory returned by get_python_inc() but we don't know
-        # it is the correct file.
-        #Broken after issue 7712(r78136) : add a temp_cwd context manager to test_support ...
-        #NOTE: Its fail on platforms without root directory support(like windows)
-        #where temp and current working directories may stay on different drivers.
-        old_wd = os.getcwd()
-        os.chdir(SAVEDCWD)
-        self.assertTrue(os.path.isdir(inc_dir), inc_dir)
-        python_h = os.path.join(inc_dir, "Python.h")
-        self.assertTrue(os.path.isfile(python_h), python_h)
-        os.chdir(old_wd)
-
-    def test_parse_makefile_base(self):
-        self.makefile = test.test_support.TESTFN
-        fd = open(self.makefile, 'w')
-        try:
-            fd.write(r"CONFIG_ARGS=  '--arg1=optarg1' 'ENV=LIB'" '\n')
-            fd.write('VAR=$OTHER\nOTHER=foo')
-        finally:
-            fd.close()
-        d = sysconfig.parse_makefile(self.makefile)
-        self.assertEqual(d, {'CONFIG_ARGS': "'--arg1=optarg1' 'ENV=LIB'",
-                             'OTHER': 'foo'})
-
-    def test_parse_makefile_literal_dollar(self):
-        self.makefile = test.test_support.TESTFN
-        fd = open(self.makefile, 'w')
-        try:
-            fd.write(r"CONFIG_ARGS=  '--arg1=optarg1' 'ENV=\$$LIB'" '\n')
-            fd.write('VAR=$OTHER\nOTHER=foo')
-        finally:
-            fd.close()
-        d = sysconfig.parse_makefile(self.makefile)
-        self.assertEqual(d, {'CONFIG_ARGS': r"'--arg1=optarg1' 'ENV=\$LIB'",
-                             'OTHER': 'foo'})
-
-
-    def test_sysconfig_module(self):
-        import sysconfig as global_sysconfig
-        self.assertEqual(global_sysconfig.get_config_var('CFLAGS'), sysconfig.get_config_var('CFLAGS'))
-        self.assertEqual(global_sysconfig.get_config_var('LDFLAGS'), sysconfig.get_config_var('LDFLAGS'))
-
-    @unittest.skipIf(sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'),'compiler flags customized')
-    def test_sysconfig_compiler_vars(self):
-        # On OS X, binary installers support extension module building on
-        # various levels of the operating system with differing Xcode
-        # configurations.  This requires customization of some of the
-        # compiler configuration directives to suit the environment on
-        # the installed machine.  Some of these customizations may require
-        # running external programs and, so, are deferred until needed by
-        # the first extension module build.  With Python 3.3, only
-        # the Distutils version of sysconfig is used for extension module
-        # builds, which happens earlier in the Distutils tests.  This may
-        # cause the following tests to fail since no tests have caused
-        # the global version of sysconfig to call the customization yet.
-        # The solution for now is to simply skip this test in this case.
-        # The longer-term solution is to only have one version of sysconfig.
-
-        import sysconfig as global_sysconfig
-        if sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'):
-            return
-        self.assertEqual(global_sysconfig.get_config_var('LDSHARED'), sysconfig.get_config_var('LDSHARED'))
-        self.assertEqual(global_sysconfig.get_config_var('CC'), sysconfig.get_config_var('CC'))
-
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(SysconfigTestCase))
-    return suite
-
-
-if __name__ == '__main__':
-    test.test_support.run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_text_file.py b/lib/python2.7/distutils/tests/test_text_file.py
deleted file mode 100644
index ce19cd4..0000000
--- a/lib/python2.7/distutils/tests/test_text_file.py
+++ /dev/null
@@ -1,107 +0,0 @@
-"""Tests for distutils.text_file."""
-import os
-import unittest
-from distutils.text_file import TextFile
-from distutils.tests import support
-from test.test_support import run_unittest
-
-TEST_DATA = """# test file
-
-line 3 \\
-# intervening comment
-  continues on next line
-"""
-
-class TextFileTestCase(support.TempdirManager, unittest.TestCase):
-
-    def test_class(self):
-        # old tests moved from text_file.__main__
-        # so they are really called by the buildbots
-
-        # result 1: no fancy options
-        result1 = ['# test file\n', '\n', 'line 3 \\\n',
-                   '# intervening comment\n',
-                   '  continues on next line\n']
-
-        # result 2: just strip comments
-        result2 = ["\n",
-                   "line 3 \\\n",
-                   "  continues on next line\n"]
-
-        # result 3: just strip blank lines
-        result3 = ["# test file\n",
-                   "line 3 \\\n",
-                   "# intervening comment\n",
-                   "  continues on next line\n"]
-
-        # result 4: default, strip comments, blank lines,
-        # and trailing whitespace
-        result4 = ["line 3 \\",
-                   "  continues on next line"]
-
-        # result 5: strip comments and blanks, plus join lines (but don't
-        # "collapse" joined lines
-        result5 = ["line 3   continues on next line"]
-
-        # result 6: strip comments and blanks, plus join lines (and
-        # "collapse" joined lines
-        result6 = ["line 3 continues on next line"]
-
-        def test_input(count, description, file, expected_result):
-            result = file.readlines()
-            self.assertEqual(result, expected_result)
-
-        tmpdir = self.mkdtemp()
-        filename = os.path.join(tmpdir, "test.txt")
-        out_file = open(filename, "w")
-        try:
-            out_file.write(TEST_DATA)
-        finally:
-            out_file.close()
-
-        in_file = TextFile(filename, strip_comments=0, skip_blanks=0,
-                           lstrip_ws=0, rstrip_ws=0)
-        try:
-            test_input(1, "no processing", in_file, result1)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=1, skip_blanks=0,
-                           lstrip_ws=0, rstrip_ws=0)
-        try:
-            test_input(2, "strip comments", in_file, result2)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=0, skip_blanks=1,
-                           lstrip_ws=0, rstrip_ws=0)
-        try:
-            test_input(3, "strip blanks", in_file, result3)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename)
-        try:
-            test_input(4, "default processing", in_file, result4)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
-                           join_lines=1, rstrip_ws=1)
-        try:
-            test_input(5, "join lines without collapsing", in_file, result5)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
-                           join_lines=1, rstrip_ws=1, collapse_join=1)
-        try:
-            test_input(6, "join lines with collapsing", in_file, result6)
-        finally:
-            in_file.close()
-
-def test_suite():
-    return unittest.makeSuite(TextFileTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_unixccompiler.py b/lib/python2.7/distutils/tests/test_unixccompiler.py
deleted file mode 100644
index 3ff92f8..0000000
--- a/lib/python2.7/distutils/tests/test_unixccompiler.py
+++ /dev/null
@@ -1,130 +0,0 @@
-"""Tests for distutils.unixccompiler."""
-import sys
-import unittest
-from test.test_support import run_unittest
-
-from distutils import sysconfig
-from distutils.unixccompiler import UnixCCompiler
-
-class UnixCCompilerTestCase(unittest.TestCase):
-
-    def setUp(self):
-        self._backup_platform = sys.platform
-        self._backup_get_config_var = sysconfig.get_config_var
-        class CompilerWrapper(UnixCCompiler):
-            def rpath_foo(self):
-                return self.runtime_library_dir_option('/foo')
-        self.cc = CompilerWrapper()
-
-    def tearDown(self):
-        sys.platform = self._backup_platform
-        sysconfig.get_config_var = self._backup_get_config_var
-
-    def test_runtime_libdir_option(self):
-
-        # not tested under windows
-        if sys.platform == 'win32':
-            return
-
-        # Issue#5900
-        #
-        # Ensure RUNPATH is added to extension modules with RPATH if
-        # GNU ld is used
-
-        # darwin
-        sys.platform = 'darwin'
-        self.assertEqual(self.cc.rpath_foo(), '-L/foo')
-
-        # hp-ux
-        sys.platform = 'hp-ux'
-        old_gcv = sysconfig.get_config_var
-        def gcv(v):
-            return 'xxx'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), ['+s', '-L/foo'])
-
-        def gcv(v):
-            return 'gcc'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
-
-        def gcv(v):
-            return 'g++'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
-
-        sysconfig.get_config_var = old_gcv
-
-        # irix646
-        sys.platform = 'irix646'
-        self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
-
-        # osf1V5
-        sys.platform = 'osf1V5'
-        self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
-
-        # GCC GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'gcc'
-            elif v == 'GNULD':
-                return 'yes'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
-        # GCC non-GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'gcc'
-            elif v == 'GNULD':
-                return 'no'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
-        # GCC GNULD with fully qualified configuration prefix
-        # see #7617
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'x86_64-pc-linux-gnu-gcc-4.4.2'
-            elif v == 'GNULD':
-                return 'yes'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
-
-        # non-GCC GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'cc'
-            elif v == 'GNULD':
-                return 'yes'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-R/foo')
-
-        # non-GCC non-GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'cc'
-            elif v == 'GNULD':
-                return 'no'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-R/foo')
-
-        # AIX C/C++ linker
-        sys.platform = 'aix'
-        def gcv(v):
-            return 'xxx'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-blibpath:/foo')
-
-
-def test_suite():
-    return unittest.makeSuite(UnixCCompilerTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_upload.py b/lib/python2.7/distutils/tests/test_upload.py
deleted file mode 100644
index 9911199..0000000
--- a/lib/python2.7/distutils/tests/test_upload.py
+++ /dev/null
@@ -1,131 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.upload."""
-import os
-import unittest
-from test.test_support import run_unittest
-
-from distutils.command import upload as upload_mod
-from distutils.command.upload import upload
-from distutils.core import Distribution
-
-from distutils.tests.test_config import PYPIRC, PyPIRCCommandTestCase
-
-PYPIRC_LONG_PASSWORD = """\
-[distutils]
-
-index-servers =
-    server1
-    server2
-
-[server1]
-username:me
-password:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-[server2]
-username:meagain
-password: secret
-realm:acme
-repository:http://another.pypi/
-"""
-
-
-PYPIRC_NOPASSWORD = """\
-[distutils]
-
-index-servers =
-    server1
-
-[server1]
-username:me
-"""
-
-class FakeOpen(object):
-
-    def __init__(self, url):
-        self.url = url
-        if not isinstance(url, str):
-            self.req = url
-        else:
-            self.req = None
-        self.msg = 'OK'
-
-    def getcode(self):
-        return 200
-
-
-class uploadTestCase(PyPIRCCommandTestCase):
-
-    def setUp(self):
-        super(uploadTestCase, self).setUp()
-        self.old_open = upload_mod.urlopen
-        upload_mod.urlopen = self._urlopen
-        self.last_open = None
-
-    def tearDown(self):
-        upload_mod.urlopen = self.old_open
-        super(uploadTestCase, self).tearDown()
-
-    def _urlopen(self, url):
-        self.last_open = FakeOpen(url)
-        return self.last_open
-
-    def test_finalize_options(self):
-
-        # new format
-        self.write_file(self.rc, PYPIRC)
-        dist = Distribution()
-        cmd = upload(dist)
-        cmd.finalize_options()
-        for attr, waited in (('username', 'me'), ('password', 'secret'),
-                             ('realm', 'pypi'),
-                             ('repository', 'http://pypi.python.org/pypi')):
-            self.assertEqual(getattr(cmd, attr), waited)
-
-    def test_saved_password(self):
-        # file with no password
-        self.write_file(self.rc, PYPIRC_NOPASSWORD)
-
-        # make sure it passes
-        dist = Distribution()
-        cmd = upload(dist)
-        cmd.finalize_options()
-        self.assertEqual(cmd.password, None)
-
-        # make sure we get it as well, if another command
-        # initialized it at the dist level
-        dist.password = 'xxx'
-        cmd = upload(dist)
-        cmd.finalize_options()
-        self.assertEqual(cmd.password, 'xxx')
-
-    def test_upload(self):
-        tmp = self.mkdtemp()
-        path = os.path.join(tmp, 'xxx')
-        self.write_file(path)
-        command, pyversion, filename = 'xxx', '2.6', path
-        dist_files = [(command, pyversion, filename)]
-        self.write_file(self.rc, PYPIRC_LONG_PASSWORD)
-
-        # lets run it
-        pkg_dir, dist = self.create_dist(dist_files=dist_files, author=u'dédé')
-        cmd = upload(dist)
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # what did we send ?
-        self.assertIn('dédé', self.last_open.req.data)
-        headers = dict(self.last_open.req.headers)
-        self.assertEqual(headers['Content-length'], '2085')
-        self.assertTrue(headers['Content-type'].startswith('multipart/form-data'))
-        self.assertEqual(self.last_open.req.get_method(), 'POST')
-        self.assertEqual(self.last_open.req.get_full_url(),
-                         'http://pypi.python.org/pypi')
-        self.assertTrue('xxx' in self.last_open.req.data)
-        auth = self.last_open.req.headers['Authorization']
-        self.assertFalse('\n' in auth)
-
-def test_suite():
-    return unittest.makeSuite(uploadTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_util.py b/lib/python2.7/distutils/tests/test_util.py
deleted file mode 100644
index 67cd4cc..0000000
--- a/lib/python2.7/distutils/tests/test_util.py
+++ /dev/null
@@ -1,25 +0,0 @@
-"""Tests for distutils.util."""
-import sys
-import unittest
-from test.test_support import run_unittest
-
-from distutils.errors import DistutilsPlatformError, DistutilsByteCompileError
-from distutils.util import byte_compile
-
-class UtilTestCase(unittest.TestCase):
-
-    def test_dont_write_bytecode(self):
-        # makes sure byte_compile raise a DistutilsError
-        # if sys.dont_write_bytecode is True
-        old_dont_write_bytecode = sys.dont_write_bytecode
-        sys.dont_write_bytecode = True
-        try:
-            self.assertRaises(DistutilsByteCompileError, byte_compile, [])
-        finally:
-            sys.dont_write_bytecode = old_dont_write_bytecode
-
-def test_suite():
-    return unittest.makeSuite(UtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_version.py b/lib/python2.7/distutils/tests/test_version.py
deleted file mode 100644
index 2189956..0000000
--- a/lib/python2.7/distutils/tests/test_version.py
+++ /dev/null
@@ -1,71 +0,0 @@
-"""Tests for distutils.version."""
-import unittest
-from distutils.version import LooseVersion
-from distutils.version import StrictVersion
-from test.test_support import run_unittest
-
-class VersionTestCase(unittest.TestCase):
-
-    def test_prerelease(self):
-        version = StrictVersion('1.2.3a1')
-        self.assertEqual(version.version, (1, 2, 3))
-        self.assertEqual(version.prerelease, ('a', 1))
-        self.assertEqual(str(version), '1.2.3a1')
-
-        version = StrictVersion('1.2.0')
-        self.assertEqual(str(version), '1.2')
-
-    def test_cmp_strict(self):
-        versions = (('1.5.1', '1.5.2b2', -1),
-                    ('161', '3.10a', ValueError),
-                    ('8.02', '8.02', 0),
-                    ('3.4j', '1996.07.12', ValueError),
-                    ('3.2.pl0', '3.1.1.6', ValueError),
-                    ('2g6', '11g', ValueError),
-                    ('0.9', '2.2', -1),
-                    ('1.2.1', '1.2', 1),
-                    ('1.1', '1.2.2', -1),
-                    ('1.2', '1.1', 1),
-                    ('1.2.1', '1.2.2', -1),
-                    ('1.2.2', '1.2', 1),
-                    ('1.2', '1.2.2', -1),
-                    ('0.4.0', '0.4', 0),
-                    ('1.13++', '5.5.kw', ValueError))
-
-        for v1, v2, wanted in versions:
-            try:
-                res = StrictVersion(v1).__cmp__(StrictVersion(v2))
-            except ValueError:
-                if wanted is ValueError:
-                    continue
-                else:
-                    raise AssertionError(("cmp(%s, %s) "
-                                          "shouldn't raise ValueError")
-                                            % (v1, v2))
-            self.assertEqual(res, wanted,
-                             'cmp(%s, %s) should be %s, got %s' %
-                             (v1, v2, wanted, res))
-
-
-    def test_cmp(self):
-        versions = (('1.5.1', '1.5.2b2', -1),
-                    ('161', '3.10a', 1),
-                    ('8.02', '8.02', 0),
-                    ('3.4j', '1996.07.12', -1),
-                    ('3.2.pl0', '3.1.1.6', 1),
-                    ('2g6', '11g', -1),
-                    ('0.960923', '2.2beta29', -1),
-                    ('1.13++', '5.5.kw', -1))
-
-
-        for v1, v2, wanted in versions:
-            res = LooseVersion(v1).__cmp__(LooseVersion(v2))
-            self.assertEqual(res, wanted,
-                             'cmp(%s, %s) should be %s, got %s' %
-                             (v1, v2, wanted, res))
-
-def test_suite():
-    return unittest.makeSuite(VersionTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_versionpredicate.py b/lib/python2.7/distutils/tests/test_versionpredicate.py
deleted file mode 100644
index 1d6c8d5..0000000
--- a/lib/python2.7/distutils/tests/test_versionpredicate.py
+++ /dev/null
@@ -1,13 +0,0 @@
-"""Tests harness for distutils.versionpredicate.
-
-"""
-
-import distutils.versionpredicate
-import doctest
-from test.test_support import run_unittest
-
-def test_suite():
-    return doctest.DocTestSuite(distutils.versionpredicate)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/xxmodule.c b/lib/python2.7/distutils/tests/xxmodule.c
deleted file mode 100644
index 1d9b08a..0000000
--- a/lib/python2.7/distutils/tests/xxmodule.c
+++ /dev/null
@@ -1,379 +0,0 @@
-
-/* Use this file as a template to start implementing a module that
-   also declares object types. All occurrences of 'Xxo' should be changed
-   to something reasonable for your objects. After that, all other
-   occurrences of 'xx' should be changed to something reasonable for your
-   module. If your module is named foo your sourcefile should be named
-   foomodule.c.
-
-   You will probably want to delete all references to 'x_attr' and add
-   your own types of attributes instead.  Maybe you want to name your
-   local variables other than 'self'.  If your object type is needed in
-   other files, you'll have to create a file "foobarobject.h"; see
-   intobject.h for an example. */
-
-/* Xxo objects */
-
-#include "Python.h"
-
-static PyObject *ErrorObject;
-
-typedef struct {
-    PyObject_HEAD
-    PyObject            *x_attr;        /* Attributes dictionary */
-} XxoObject;
-
-static PyTypeObject Xxo_Type;
-
-#define XxoObject_Check(v)      (Py_TYPE(v) == &Xxo_Type)
-
-static XxoObject *
-newXxoObject(PyObject *arg)
-{
-    XxoObject *self;
-    self = PyObject_New(XxoObject, &Xxo_Type);
-    if (self == NULL)
-        return NULL;
-    self->x_attr = NULL;
-    return self;
-}
-
-/* Xxo methods */
-
-static void
-Xxo_dealloc(XxoObject *self)
-{
-    Py_XDECREF(self->x_attr);
-    PyObject_Del(self);
-}
-
-static PyObject *
-Xxo_demo(XxoObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, ":demo"))
-        return NULL;
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-static PyMethodDef Xxo_methods[] = {
-    {"demo",            (PyCFunction)Xxo_demo,  METH_VARARGS,
-        PyDoc_STR("demo() -> None")},
-    {NULL,              NULL}           /* sentinel */
-};
-
-static PyObject *
-Xxo_getattr(XxoObject *self, char *name)
-{
-    if (self->x_attr != NULL) {
-        PyObject *v = PyDict_GetItemString(self->x_attr, name);
-        if (v != NULL) {
-            Py_INCREF(v);
-            return v;
-        }
-    }
-    return Py_FindMethod(Xxo_methods, (PyObject *)self, name);
-}
-
-static int
-Xxo_setattr(XxoObject *self, char *name, PyObject *v)
-{
-    if (self->x_attr == NULL) {
-        self->x_attr = PyDict_New();
-        if (self->x_attr == NULL)
-            return -1;
-    }
-    if (v == NULL) {
-        int rv = PyDict_DelItemString(self->x_attr, name);
-        if (rv < 0)
-            PyErr_SetString(PyExc_AttributeError,
-                "delete non-existing Xxo attribute");
-        return rv;
-    }
-    else
-        return PyDict_SetItemString(self->x_attr, name, v);
-}
-
-static PyTypeObject Xxo_Type = {
-    /* The ob_type field must be initialized in the module init function
-     * to be portable to Windows without using C++. */
-    PyVarObject_HEAD_INIT(NULL, 0)
-    "xxmodule.Xxo",             /*tp_name*/
-    sizeof(XxoObject),          /*tp_basicsize*/
-    0,                          /*tp_itemsize*/
-    /* methods */
-    (destructor)Xxo_dealloc, /*tp_dealloc*/
-    0,                          /*tp_print*/
-    (getattrfunc)Xxo_getattr, /*tp_getattr*/
-    (setattrfunc)Xxo_setattr, /*tp_setattr*/
-    0,                          /*tp_compare*/
-    0,                          /*tp_repr*/
-    0,                          /*tp_as_number*/
-    0,                          /*tp_as_sequence*/
-    0,                          /*tp_as_mapping*/
-    0,                          /*tp_hash*/
-    0,                      /*tp_call*/
-    0,                      /*tp_str*/
-    0,                      /*tp_getattro*/
-    0,                      /*tp_setattro*/
-    0,                      /*tp_as_buffer*/
-    Py_TPFLAGS_DEFAULT,     /*tp_flags*/
-    0,                      /*tp_doc*/
-    0,                      /*tp_traverse*/
-    0,                      /*tp_clear*/
-    0,                      /*tp_richcompare*/
-    0,                      /*tp_weaklistoffset*/
-    0,                      /*tp_iter*/
-    0,                      /*tp_iternext*/
-    0,                      /*tp_methods*/
-    0,                      /*tp_members*/
-    0,                      /*tp_getset*/
-    0,                      /*tp_base*/
-    0,                      /*tp_dict*/
-    0,                      /*tp_descr_get*/
-    0,                      /*tp_descr_set*/
-    0,                      /*tp_dictoffset*/
-    0,                      /*tp_init*/
-    0,                      /*tp_alloc*/
-    0,                      /*tp_new*/
-    0,                      /*tp_free*/
-    0,                      /*tp_is_gc*/
-};
-/* --------------------------------------------------------------------- */
-
-/* Function of two integers returning integer */
-
-PyDoc_STRVAR(xx_foo_doc,
-"foo(i,j)\n\
-\n\
-Return the sum of i and j.");
-
-static PyObject *
-xx_foo(PyObject *self, PyObject *args)
-{
-    long i, j;
-    long res;
-    if (!PyArg_ParseTuple(args, "ll:foo", &i, &j))
-        return NULL;
-    res = i+j; /* XXX Do something here */
-    return PyInt_FromLong(res);
-}
-
-
-/* Function of no arguments returning new Xxo object */
-
-static PyObject *
-xx_new(PyObject *self, PyObject *args)
-{
-    XxoObject *rv;
-
-    if (!PyArg_ParseTuple(args, ":new"))
-        return NULL;
-    rv = newXxoObject(args);
-    if (rv == NULL)
-        return NULL;
-    return (PyObject *)rv;
-}
-
-/* Example with subtle bug from extensions manual ("Thin Ice"). */
-
-static PyObject *
-xx_bug(PyObject *self, PyObject *args)
-{
-    PyObject *list, *item;
-
-    if (!PyArg_ParseTuple(args, "O:bug", &list))
-        return NULL;
-
-    item = PyList_GetItem(list, 0);
-    /* Py_INCREF(item); */
-    PyList_SetItem(list, 1, PyInt_FromLong(0L));
-    PyObject_Print(item, stdout, 0);
-    printf("\n");
-    /* Py_DECREF(item); */
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-/* Test bad format character */
-
-static PyObject *
-xx_roj(PyObject *self, PyObject *args)
-{
-    PyObject *a;
-    long b;
-    if (!PyArg_ParseTuple(args, "O#:roj", &a, &b))
-        return NULL;
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* ---------- */
-
-static PyTypeObject Str_Type = {
-    /* The ob_type field must be initialized in the module init function
-     * to be portable to Windows without using C++. */
-    PyVarObject_HEAD_INIT(NULL, 0)
-    "xxmodule.Str",             /*tp_name*/
-    0,                          /*tp_basicsize*/
-    0,                          /*tp_itemsize*/
-    /* methods */
-    0,                          /*tp_dealloc*/
-    0,                          /*tp_print*/
-    0,                          /*tp_getattr*/
-    0,                          /*tp_setattr*/
-    0,                          /*tp_compare*/
-    0,                          /*tp_repr*/
-    0,                          /*tp_as_number*/
-    0,                          /*tp_as_sequence*/
-    0,                          /*tp_as_mapping*/
-    0,                          /*tp_hash*/
-    0,                          /*tp_call*/
-    0,                          /*tp_str*/
-    0,                          /*tp_getattro*/
-    0,                          /*tp_setattro*/
-    0,                          /*tp_as_buffer*/
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    0,                          /*tp_doc*/
-    0,                          /*tp_traverse*/
-    0,                          /*tp_clear*/
-    0,                          /*tp_richcompare*/
-    0,                          /*tp_weaklistoffset*/
-    0,                          /*tp_iter*/
-    0,                          /*tp_iternext*/
-    0,                          /*tp_methods*/
-    0,                          /*tp_members*/
-    0,                          /*tp_getset*/
-    0, /* see initxx */         /*tp_base*/
-    0,                          /*tp_dict*/
-    0,                          /*tp_descr_get*/
-    0,                          /*tp_descr_set*/
-    0,                          /*tp_dictoffset*/
-    0,                          /*tp_init*/
-    0,                          /*tp_alloc*/
-    0,                          /*tp_new*/
-    0,                          /*tp_free*/
-    0,                          /*tp_is_gc*/
-};
-
-/* ---------- */
-
-static PyObject *
-null_richcompare(PyObject *self, PyObject *other, int op)
-{
-    Py_INCREF(Py_NotImplemented);
-    return Py_NotImplemented;
-}
-
-static PyTypeObject Null_Type = {
-    /* The ob_type field must be initialized in the module init function
-     * to be portable to Windows without using C++. */
-    PyVarObject_HEAD_INIT(NULL, 0)
-    "xxmodule.Null",            /*tp_name*/
-    0,                          /*tp_basicsize*/
-    0,                          /*tp_itemsize*/
-    /* methods */
-    0,                          /*tp_dealloc*/
-    0,                          /*tp_print*/
-    0,                          /*tp_getattr*/
-    0,                          /*tp_setattr*/
-    0,                          /*tp_compare*/
-    0,                          /*tp_repr*/
-    0,                          /*tp_as_number*/
-    0,                          /*tp_as_sequence*/
-    0,                          /*tp_as_mapping*/
-    0,                          /*tp_hash*/
-    0,                          /*tp_call*/
-    0,                          /*tp_str*/
-    0,                          /*tp_getattro*/
-    0,                          /*tp_setattro*/
-    0,                          /*tp_as_buffer*/
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    0,                          /*tp_doc*/
-    0,                          /*tp_traverse*/
-    0,                          /*tp_clear*/
-    null_richcompare,           /*tp_richcompare*/
-    0,                          /*tp_weaklistoffset*/
-    0,                          /*tp_iter*/
-    0,                          /*tp_iternext*/
-    0,                          /*tp_methods*/
-    0,                          /*tp_members*/
-    0,                          /*tp_getset*/
-    0, /* see initxx */         /*tp_base*/
-    0,                          /*tp_dict*/
-    0,                          /*tp_descr_get*/
-    0,                          /*tp_descr_set*/
-    0,                          /*tp_dictoffset*/
-    0,                          /*tp_init*/
-    0,                          /*tp_alloc*/
-    0, /* see initxx */         /*tp_new*/
-    0,                          /*tp_free*/
-    0,                          /*tp_is_gc*/
-};
-
-
-/* ---------- */
-
-
-/* List of functions defined in the module */
-
-static PyMethodDef xx_methods[] = {
-    {"roj",             xx_roj,         METH_VARARGS,
-        PyDoc_STR("roj(a,b) -> None")},
-    {"foo",             xx_foo,         METH_VARARGS,
-        xx_foo_doc},
-    {"new",             xx_new,         METH_VARARGS,
-        PyDoc_STR("new() -> new Xx object")},
-    {"bug",             xx_bug,         METH_VARARGS,
-        PyDoc_STR("bug(o) -> None")},
-    {NULL,              NULL}           /* sentinel */
-};
-
-PyDoc_STRVAR(module_doc,
-"This is a template module just for instruction.");
-
-/* Initialization function for the module (*must* be called initxx) */
-
-PyMODINIT_FUNC
-initxx(void)
-{
-    PyObject *m;
-
-    /* Due to cross platform compiler issues the slots must be filled
-     * here. It's required for portability to Windows without requiring
-     * C++. */
-    Null_Type.tp_base = &PyBaseObject_Type;
-    Null_Type.tp_new = PyType_GenericNew;
-    Str_Type.tp_base = &PyUnicode_Type;
-
-    /* Finalize the type object including setting type of the new type
-     * object; doing it here is required for portability, too. */
-    if (PyType_Ready(&Xxo_Type) < 0)
-        return;
-
-    /* Create the module and add the functions */
-    m = Py_InitModule3("xx", xx_methods, module_doc);
-    if (m == NULL)
-        return;
-
-    /* Add some symbolic constants to the module */
-    if (ErrorObject == NULL) {
-        ErrorObject = PyErr_NewException("xx.error", NULL, NULL);
-        if (ErrorObject == NULL)
-            return;
-    }
-    Py_INCREF(ErrorObject);
-    PyModule_AddObject(m, "error", ErrorObject);
-
-    /* Add Str */
-    if (PyType_Ready(&Str_Type) < 0)
-        return;
-    PyModule_AddObject(m, "Str", (PyObject *)&Str_Type);
-
-    /* Add Null */
-    if (PyType_Ready(&Null_Type) < 0)
-        return;
-    PyModule_AddObject(m, "Null", (PyObject *)&Null_Type);
-}
diff --git a/lib/python2.7/distutils/unixccompiler.py b/lib/python2.7/distutils/unixccompiler.py
index d30ab4f..9fbbb31 100644
--- a/lib/python2.7/distutils/unixccompiler.py
+++ b/lib/python2.7/distutils/unixccompiler.py
@@ -172,6 +172,16 @@
                 ld_args[:0] = extra_preargs
             if extra_postargs:
                 ld_args.extend(extra_postargs)
+
+            # NDK HACK:
+            # Avoid dependency on libgcc dll on mingw. -static-libgcc works
+            # while compiling for the host and windows, but not darwin. We
+            # can't easily tell whether we're compiling for windows or the
+            # host, so rely on the fact that we don't cross-compile darwin
+            # binaries on linux.
+            if sys.platform[:6] != "darwin":
+                ld_args.extend(["-static-libgcc"])
+
             self.mkpath(os.path.dirname(output_filename))
             try:
                 if target_desc == CCompiler.EXECUTABLE:
diff --git a/lib/python2.7/json/tests/__init__.py b/lib/python2.7/json/tests/__init__.py
deleted file mode 100644
index 90cb2b7..0000000
--- a/lib/python2.7/json/tests/__init__.py
+++ /dev/null
@@ -1,73 +0,0 @@
-import os
-import sys
-import json
-import doctest
-import unittest
-
-from test import test_support
-
-# import json with and without accelerations
-cjson = test_support.import_fresh_module('json', fresh=['_json'])
-pyjson = test_support.import_fresh_module('json', blocked=['_json'])
-
-# create two base classes that will be used by the other tests
-class PyTest(unittest.TestCase):
-    json = pyjson
-    loads = staticmethod(pyjson.loads)
-    dumps = staticmethod(pyjson.dumps)
-
-@unittest.skipUnless(cjson, 'requires _json')
-class CTest(unittest.TestCase):
-    if cjson is not None:
-        json = cjson
-        loads = staticmethod(cjson.loads)
-        dumps = staticmethod(cjson.dumps)
-
-# test PyTest and CTest checking if the functions come from the right module
-class TestPyTest(PyTest):
-    def test_pyjson(self):
-        self.assertEqual(self.json.scanner.make_scanner.__module__,
-                         'json.scanner')
-        self.assertEqual(self.json.decoder.scanstring.__module__,
-                         'json.decoder')
-        self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
-                         'json.encoder')
-
-class TestCTest(CTest):
-    def test_cjson(self):
-        self.assertEqual(self.json.scanner.make_scanner.__module__, '_json')
-        self.assertEqual(self.json.decoder.scanstring.__module__, '_json')
-        self.assertEqual(self.json.encoder.c_make_encoder.__module__, '_json')
-        self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
-                         '_json')
-
-
-here = os.path.dirname(__file__)
-
-def test_suite():
-    suite = additional_tests()
-    loader = unittest.TestLoader()
-    for fn in os.listdir(here):
-        if fn.startswith("test") and fn.endswith(".py"):
-            modname = "json.tests." + fn[:-3]
-            __import__(modname)
-            module = sys.modules[modname]
-            suite.addTests(loader.loadTestsFromModule(module))
-    return suite
-
-def additional_tests():
-    suite = unittest.TestSuite()
-    for mod in (json, json.encoder, json.decoder):
-        suite.addTest(doctest.DocTestSuite(mod))
-    suite.addTest(TestPyTest('test_pyjson'))
-    suite.addTest(TestCTest('test_cjson'))
-    return suite
-
-def main():
-    suite = test_suite()
-    runner = unittest.TextTestRunner()
-    runner.run(suite)
-
-if __name__ == '__main__':
-    sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
-    main()
diff --git a/lib/python2.7/json/tests/test_check_circular.py b/lib/python2.7/json/tests/test_check_circular.py
deleted file mode 100644
index 3ad3d24..0000000
--- a/lib/python2.7/json/tests/test_check_circular.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-def default_iterable(obj):
-    return list(obj)
-
-class TestCheckCircular(object):
-    def test_circular_dict(self):
-        dct = {}
-        dct['a'] = dct
-        self.assertRaises(ValueError, self.dumps, dct)
-
-    def test_circular_list(self):
-        lst = []
-        lst.append(lst)
-        self.assertRaises(ValueError, self.dumps, lst)
-
-    def test_circular_composite(self):
-        dct2 = {}
-        dct2['a'] = []
-        dct2['a'].append(dct2)
-        self.assertRaises(ValueError, self.dumps, dct2)
-
-    def test_circular_default(self):
-        self.dumps([set()], default=default_iterable)
-        self.assertRaises(TypeError, self.dumps, [set()])
-
-    def test_circular_off_default(self):
-        self.dumps([set()], default=default_iterable, check_circular=False)
-        self.assertRaises(TypeError, self.dumps, [set()], check_circular=False)
-
-
-class TestPyCheckCircular(TestCheckCircular, PyTest): pass
-class TestCCheckCircular(TestCheckCircular, CTest): pass
diff --git a/lib/python2.7/json/tests/test_decode.py b/lib/python2.7/json/tests/test_decode.py
deleted file mode 100644
index ffd1aa4..0000000
--- a/lib/python2.7/json/tests/test_decode.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import decimal
-from StringIO import StringIO
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-class TestDecode(object):
-    def test_decimal(self):
-        rval = self.loads('1.1', parse_float=decimal.Decimal)
-        self.assertTrue(isinstance(rval, decimal.Decimal))
-        self.assertEqual(rval, decimal.Decimal('1.1'))
-
-    def test_float(self):
-        rval = self.loads('1', parse_int=float)
-        self.assertTrue(isinstance(rval, float))
-        self.assertEqual(rval, 1.0)
-
-    def test_decoder_optimizations(self):
-        # Several optimizations were made that skip over calls to
-        # the whitespace regex, so this test is designed to try and
-        # exercise the uncommon cases. The array cases are already covered.
-        rval = self.loads('{   "key"    :    "value"    ,  "k":"v"    }')
-        self.assertEqual(rval, {"key":"value", "k":"v"})
-
-    def test_empty_objects(self):
-        self.assertEqual(self.loads('{}'), {})
-        self.assertEqual(self.loads('[]'), [])
-        self.assertEqual(self.loads('""'), u"")
-        self.assertIsInstance(self.loads('""'), unicode)
-
-    def test_object_pairs_hook(self):
-        s = '{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
-        p = [("xkd", 1), ("kcw", 2), ("art", 3), ("hxm", 4),
-             ("qrt", 5), ("pad", 6), ("hoy", 7)]
-        self.assertEqual(self.loads(s), eval(s))
-        self.assertEqual(self.loads(s, object_pairs_hook=lambda x: x), p)
-        self.assertEqual(self.json.load(StringIO(s),
-                                        object_pairs_hook=lambda x: x), p)
-        od = self.loads(s, object_pairs_hook=OrderedDict)
-        self.assertEqual(od, OrderedDict(p))
-        self.assertEqual(type(od), OrderedDict)
-        # the object_pairs_hook takes priority over the object_hook
-        self.assertEqual(self.loads(s, object_pairs_hook=OrderedDict,
-                                    object_hook=lambda x: None),
-                         OrderedDict(p))
-        # check that empty objects literals work (see #17368)
-        self.assertEqual(self.loads('{}', object_pairs_hook=OrderedDict),
-                         OrderedDict())
-        self.assertEqual(self.loads('{"empty": {}}',
-                                    object_pairs_hook=OrderedDict),
-                         OrderedDict([('empty', OrderedDict())]))
-
-    def test_extra_data(self):
-        s = '[1, 2, 3]5'
-        msg = 'Extra data'
-        self.assertRaisesRegexp(ValueError, msg, self.loads, s)
-
-    def test_invalid_escape(self):
-        s = '["abc\\y"]'
-        msg = 'escape'
-        self.assertRaisesRegexp(ValueError, msg, self.loads, s)
-
-class TestPyDecode(TestDecode, PyTest): pass
-class TestCDecode(TestDecode, CTest): pass
diff --git a/lib/python2.7/json/tests/test_default.py b/lib/python2.7/json/tests/test_default.py
deleted file mode 100644
index c2a07f6..0000000
--- a/lib/python2.7/json/tests/test_default.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-class TestDefault(object):
-    def test_default(self):
-        self.assertEqual(
-            self.dumps(type, default=repr),
-            self.dumps(repr(type)))
-
-
-class TestPyDefault(TestDefault, PyTest): pass
-class TestCDefault(TestDefault, CTest): pass
diff --git a/lib/python2.7/json/tests/test_dump.py b/lib/python2.7/json/tests/test_dump.py
deleted file mode 100644
index cd92569..0000000
--- a/lib/python2.7/json/tests/test_dump.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from cStringIO import StringIO
-from json.tests import PyTest, CTest
-
-
-class TestDump(object):
-    def test_dump(self):
-        sio = StringIO()
-        self.json.dump({}, sio)
-        self.assertEqual(sio.getvalue(), '{}')
-
-    def test_dumps(self):
-        self.assertEqual(self.dumps({}), '{}')
-
-    def test_encode_truefalse(self):
-        self.assertEqual(self.dumps(
-                 {True: False, False: True}, sort_keys=True),
-                 '{"false": true, "true": false}')
-        self.assertEqual(self.dumps(
-                {2: 3.0, 4.0: 5L, False: 1, 6L: True}, sort_keys=True),
-                '{"false": 1, "2": 3.0, "4.0": 5, "6": true}')
-
-    # Issue 16228: Crash on encoding resized list
-    def test_encode_mutated(self):
-        a = [object()] * 10
-        def crasher(obj):
-            del a[-1]
-        self.assertEqual(self.dumps(a, default=crasher),
-                 '[null, null, null, null, null]')
-
-
-class TestPyDump(TestDump, PyTest): pass
-class TestCDump(TestDump, CTest): pass
diff --git a/lib/python2.7/json/tests/test_encode_basestring_ascii.py b/lib/python2.7/json/tests/test_encode_basestring_ascii.py
deleted file mode 100644
index 9f9d5a5..0000000
--- a/lib/python2.7/json/tests/test_encode_basestring_ascii.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-CASES = [
-    (u'/\\"\ucafe\ubabe\uab98\ufcde\ubcda\uef4a\x08\x0c\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?', '"/\\\\\\"\\ucafe\\ubabe\\uab98\\ufcde\\ubcda\\uef4a\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?"'),
-    (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'),
-    (u'controls', '"controls"'),
-    (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'),
-    (u'{"object with 1 member":["array with 1 element"]}', '"{\\"object with 1 member\\":[\\"array with 1 element\\"]}"'),
-    (u' s p a c e d ', '" s p a c e d "'),
-    (u'\U0001d120', '"\\ud834\\udd20"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    (u"`1~!@#$%^&*()_+-={':[,]}|;.</>?", '"`1~!@#$%^&*()_+-={\':[,]}|;.</>?"'),
-    (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'),
-    (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'),
-]
-
-class TestEncodeBasestringAscii(object):
-    def test_encode_basestring_ascii(self):
-        fname = self.json.encoder.encode_basestring_ascii.__name__
-        for input_string, expect in CASES:
-            result = self.json.encoder.encode_basestring_ascii(input_string)
-            self.assertEqual(result, expect,
-                '{0!r} != {1!r} for {2}({3!r})'.format(
-                    result, expect, fname, input_string))
-
-    def test_ordered_dict(self):
-        # See issue 6105
-        items = [('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5)]
-        s = self.dumps(OrderedDict(items))
-        self.assertEqual(s, '{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5}')
-
-
-class TestPyEncodeBasestringAscii(TestEncodeBasestringAscii, PyTest): pass
-class TestCEncodeBasestringAscii(TestEncodeBasestringAscii, CTest): pass
diff --git a/lib/python2.7/json/tests/test_fail.py b/lib/python2.7/json/tests/test_fail.py
deleted file mode 100644
index e31b379..0000000
--- a/lib/python2.7/json/tests/test_fail.py
+++ /dev/null
@@ -1,105 +0,0 @@
-from json.tests import PyTest, CTest
-
-# 2007-10-05
-JSONDOCS = [
-    # http://json.org/JSON_checker/test/fail1.json
-    '"A JSON payload should be an object or array, not a string."',
-    # http://json.org/JSON_checker/test/fail2.json
-    '["Unclosed array"',
-    # http://json.org/JSON_checker/test/fail3.json
-    '{unquoted_key: "keys must be quoted"}',
-    # http://json.org/JSON_checker/test/fail4.json
-    '["extra comma",]',
-    # http://json.org/JSON_checker/test/fail5.json
-    '["double extra comma",,]',
-    # http://json.org/JSON_checker/test/fail6.json
-    '[   , "<-- missing value"]',
-    # http://json.org/JSON_checker/test/fail7.json
-    '["Comma after the close"],',
-    # http://json.org/JSON_checker/test/fail8.json
-    '["Extra close"]]',
-    # http://json.org/JSON_checker/test/fail9.json
-    '{"Extra comma": true,}',
-    # http://json.org/JSON_checker/test/fail10.json
-    '{"Extra value after close": true} "misplaced quoted value"',
-    # http://json.org/JSON_checker/test/fail11.json
-    '{"Illegal expression": 1 + 2}',
-    # http://json.org/JSON_checker/test/fail12.json
-    '{"Illegal invocation": alert()}',
-    # http://json.org/JSON_checker/test/fail13.json
-    '{"Numbers cannot have leading zeroes": 013}',
-    # http://json.org/JSON_checker/test/fail14.json
-    '{"Numbers cannot be hex": 0x14}',
-    # http://json.org/JSON_checker/test/fail15.json
-    '["Illegal backslash escape: \\x15"]',
-    # http://json.org/JSON_checker/test/fail16.json
-    '[\\naked]',
-    # http://json.org/JSON_checker/test/fail17.json
-    '["Illegal backslash escape: \\017"]',
-    # http://json.org/JSON_checker/test/fail18.json
-    '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]',
-    # http://json.org/JSON_checker/test/fail19.json
-    '{"Missing colon" null}',
-    # http://json.org/JSON_checker/test/fail20.json
-    '{"Double colon":: null}',
-    # http://json.org/JSON_checker/test/fail21.json
-    '{"Comma instead of colon", null}',
-    # http://json.org/JSON_checker/test/fail22.json
-    '["Colon instead of comma": false]',
-    # http://json.org/JSON_checker/test/fail23.json
-    '["Bad value", truth]',
-    # http://json.org/JSON_checker/test/fail24.json
-    "['single quote']",
-    # http://json.org/JSON_checker/test/fail25.json
-    '["\ttab\tcharacter\tin\tstring\t"]',
-    # http://json.org/JSON_checker/test/fail26.json
-    '["tab\\   character\\   in\\  string\\  "]',
-    # http://json.org/JSON_checker/test/fail27.json
-    '["line\nbreak"]',
-    # http://json.org/JSON_checker/test/fail28.json
-    '["line\\\nbreak"]',
-    # http://json.org/JSON_checker/test/fail29.json
-    '[0e]',
-    # http://json.org/JSON_checker/test/fail30.json
-    '[0e+]',
-    # http://json.org/JSON_checker/test/fail31.json
-    '[0e+-1]',
-    # http://json.org/JSON_checker/test/fail32.json
-    '{"Comma instead if closing brace": true,',
-    # http://json.org/JSON_checker/test/fail33.json
-    '["mismatch"}',
-    # http://code.google.com/p/simplejson/issues/detail?id=3
-    u'["A\u001FZ control characters in string"]',
-]
-
-SKIPS = {
-    1: "why not have a string payload?",
-    18: "spec doesn't specify any nesting limitations",
-}
-
-class TestFail(object):
-    def test_failures(self):
-        for idx, doc in enumerate(JSONDOCS):
-            idx = idx + 1
-            if idx in SKIPS:
-                self.loads(doc)
-                continue
-            try:
-                self.loads(doc)
-            except ValueError:
-                pass
-            else:
-                self.fail("Expected failure for fail{0}.json: {1!r}".format(idx, doc))
-
-    def test_non_string_keys_dict(self):
-        data = {'a' : 1, (1, 2) : 2}
-
-        #This is for c encoder
-        self.assertRaises(TypeError, self.dumps, data)
-
-        #This is for python encoder
-        self.assertRaises(TypeError, self.dumps, data, indent=True)
-
-
-class TestPyFail(TestFail, PyTest): pass
-class TestCFail(TestFail, CTest): pass
diff --git a/lib/python2.7/json/tests/test_float.py b/lib/python2.7/json/tests/test_float.py
deleted file mode 100644
index 049f9ae..0000000
--- a/lib/python2.7/json/tests/test_float.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import math
-from json.tests import PyTest, CTest
-
-
-class TestFloat(object):
-    def test_floats(self):
-        for num in [1617161771.7650001, math.pi, math.pi**100,
-                    math.pi**-100, 3.1]:
-            self.assertEqual(float(self.dumps(num)), num)
-            self.assertEqual(self.loads(self.dumps(num)), num)
-            self.assertEqual(self.loads(unicode(self.dumps(num))), num)
-
-    def test_ints(self):
-        for num in [1, 1L, 1<<32, 1<<64]:
-            self.assertEqual(self.dumps(num), str(num))
-            self.assertEqual(int(self.dumps(num)), num)
-            self.assertEqual(self.loads(self.dumps(num)), num)
-            self.assertEqual(self.loads(unicode(self.dumps(num))), num)
-
-    def test_out_of_range(self):
-        self.assertEqual(self.loads('[23456789012E666]'), [float('inf')])
-        self.assertEqual(self.loads('[-23456789012E666]'), [float('-inf')])
-
-    def test_allow_nan(self):
-        for val in (float('inf'), float('-inf'), float('nan')):
-            out = self.dumps([val])
-            if val == val:  # inf
-                self.assertEqual(self.loads(out), [val])
-            else:  # nan
-                res = self.loads(out)
-                self.assertEqual(len(res), 1)
-                self.assertNotEqual(res[0], res[0])
-            self.assertRaises(ValueError, self.dumps, [val], allow_nan=False)
-
-
-class TestPyFloat(TestFloat, PyTest): pass
-class TestCFloat(TestFloat, CTest): pass
diff --git a/lib/python2.7/json/tests/test_indent.py b/lib/python2.7/json/tests/test_indent.py
deleted file mode 100644
index 9b18761..0000000
--- a/lib/python2.7/json/tests/test_indent.py
+++ /dev/null
@@ -1,60 +0,0 @@
-import textwrap
-from StringIO import StringIO
-from json.tests import PyTest, CTest
-
-
-class TestIndent(object):
-    def test_indent(self):
-        h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
-             {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
-
-        expect = textwrap.dedent("""\
-        [
-          [
-            "blorpie"
-          ],
-          [
-            "whoops"
-          ],
-          [],
-          "d-shtaeou",
-          "d-nthiouh",
-          "i-vhbjkhnth",
-          {
-            "nifty": 87
-          },
-          {
-            "field": "yes",
-            "morefield": false
-          }
-        ]""")
-
-
-        d1 = self.dumps(h)
-        d2 = self.dumps(h, indent=2, sort_keys=True, separators=(',', ': '))
-
-        h1 = self.loads(d1)
-        h2 = self.loads(d2)
-
-        self.assertEqual(h1, h)
-        self.assertEqual(h2, h)
-        self.assertEqual(d2, expect)
-
-    def test_indent0(self):
-        h = {3: 1}
-        def check(indent, expected):
-            d1 = self.dumps(h, indent=indent)
-            self.assertEqual(d1, expected)
-
-            sio = StringIO()
-            self.json.dump(h, sio, indent=indent)
-            self.assertEqual(sio.getvalue(), expected)
-
-        # indent=0 should emit newlines
-        check(0, '{\n"3": 1\n}')
-        # indent=None is more compact
-        check(None, '{"3": 1}')
-
-
-class TestPyIndent(TestIndent, PyTest): pass
-class TestCIndent(TestIndent, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass1.py b/lib/python2.7/json/tests/test_pass1.py
deleted file mode 100644
index df8259b..0000000
--- a/lib/python2.7/json/tests/test_pass1.py
+++ /dev/null
@@ -1,75 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass1.json
-JSON = r'''
-[
-    "JSON Test Pattern pass1",
-    {"object with 1 member":["array with 1 element"]},
-    {},
-    [],
-    -42,
-    true,
-    false,
-    null,
-    {
-        "integer": 1234567890,
-        "real": -9876.543210,
-        "e": 0.123456789e-12,
-        "E": 1.234567890E+34,
-        "":  23456789012E66,
-        "zero": 0,
-        "one": 1,
-        "space": " ",
-        "quote": "\"",
-        "backslash": "\\",
-        "controls": "\b\f\n\r\t",
-        "slash": "/ & \/",
-        "alpha": "abcdefghijklmnopqrstuvwyz",
-        "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
-        "digit": "0123456789",
-        "0123456789": "digit",
-        "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
-        "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
-        "true": true,
-        "false": false,
-        "null": null,
-        "array":[  ],
-        "object":{  },
-        "address": "50 St. James Street",
-        "url": "http://www.JSON.org/",
-        "comment": "// /* <!-- --",
-        "# -- --> */": " ",
-        " s p a c e d " :[1,2 , 3
-
-,
-
-4 , 5        ,          6           ,7        ],"compact":[1,2,3,4,5,6,7],
-        "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
-        "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
-        "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
-: "A key can be any string"
-    },
-    0.5 ,98.6
-,
-99.44
-,
-
-1066,
-1e1,
-0.1e1,
-1e-1,
-1e00,2e+00,2e-00
-,"rosebud"]
-'''
-
-class TestPass1(object):
-    def test_parse(self):
-        # test in/out equivalence and parsing
-        res = self.loads(JSON)
-        out = self.dumps(res)
-        self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass1(TestPass1, PyTest): pass
-class TestCPass1(TestPass1, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass2.py b/lib/python2.7/json/tests/test_pass2.py
deleted file mode 100644
index a2bb6d7..0000000
--- a/lib/python2.7/json/tests/test_pass2.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass2.json
-JSON = r'''
-[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
-'''
-
-class TestPass2(object):
-    def test_parse(self):
-        # test in/out equivalence and parsing
-        res = self.loads(JSON)
-        out = self.dumps(res)
-        self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass2(TestPass2, PyTest): pass
-class TestCPass2(TestPass2, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass3.py b/lib/python2.7/json/tests/test_pass3.py
deleted file mode 100644
index 221f9a0..0000000
--- a/lib/python2.7/json/tests/test_pass3.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass3.json
-JSON = r'''
-{
-    "JSON Test Pattern pass3": {
-        "The outermost value": "must be an object or array.",
-        "In this test": "It is an object."
-    }
-}
-'''
-
-
-class TestPass3(object):
-    def test_parse(self):
-        # test in/out equivalence and parsing
-        res = self.loads(JSON)
-        out = self.dumps(res)
-        self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass3(TestPass3, PyTest): pass
-class TestCPass3(TestPass3, CTest): pass
diff --git a/lib/python2.7/json/tests/test_recursion.py b/lib/python2.7/json/tests/test_recursion.py
deleted file mode 100644
index b5221e5..0000000
--- a/lib/python2.7/json/tests/test_recursion.py
+++ /dev/null
@@ -1,108 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-class JSONTestObject:
-    pass
-
-
-class TestRecursion(object):
-    def test_listrecursion(self):
-        x = []
-        x.append(x)
-        try:
-            self.dumps(x)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on list recursion")
-        x = []
-        y = [x]
-        x.append(y)
-        try:
-            self.dumps(x)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on alternating list recursion")
-        y = []
-        x = [y, y]
-        # ensure that the marker is cleared
-        self.dumps(x)
-
-    def test_dictrecursion(self):
-        x = {}
-        x["test"] = x
-        try:
-            self.dumps(x)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on dict recursion")
-        x = {}
-        y = {"a": x, "b": x}
-        # ensure that the marker is cleared
-        self.dumps(x)
-
-    def test_defaultrecursion(self):
-        class RecursiveJSONEncoder(self.json.JSONEncoder):
-            recurse = False
-            def default(self, o):
-                if o is JSONTestObject:
-                    if self.recurse:
-                        return [JSONTestObject]
-                    else:
-                        return 'JSONTestObject'
-                return pyjson.JSONEncoder.default(o)
-
-        enc = RecursiveJSONEncoder()
-        self.assertEqual(enc.encode(JSONTestObject), '"JSONTestObject"')
-        enc.recurse = True
-        try:
-            enc.encode(JSONTestObject)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on default recursion")
-
-
-    def test_highly_nested_objects_decoding(self):
-        # test that loading highly-nested objects doesn't segfault when C
-        # accelerations are used. See #12017
-        # str
-        with self.assertRaises(RuntimeError):
-            self.loads('{"a":' * 100000 + '1' + '}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads('{"a":' * 100000 + '[1]' + '}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads('[' * 100000 + '1' + ']' * 100000)
-        # unicode
-        with self.assertRaises(RuntimeError):
-            self.loads(u'{"a":' * 100000 + u'1' + u'}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads(u'{"a":' * 100000 + u'[1]' + u'}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads(u'[' * 100000 + u'1' + u']' * 100000)
-
-    def test_highly_nested_objects_encoding(self):
-        # See #12051
-        l, d = [], {}
-        for x in xrange(100000):
-            l, d = [l], {'k':d}
-        with self.assertRaises(RuntimeError):
-            self.dumps(l)
-        with self.assertRaises(RuntimeError):
-            self.dumps(d)
-
-    def test_endless_recursion(self):
-        # See #12051
-        class EndlessJSONEncoder(self.json.JSONEncoder):
-            def default(self, o):
-                """If check_circular is False, this will keep adding another list."""
-                return [o]
-
-        with self.assertRaises(RuntimeError):
-            EndlessJSONEncoder(check_circular=False).encode(5j)
-
-
-class TestPyRecursion(TestRecursion, PyTest): pass
-class TestCRecursion(TestRecursion, CTest): pass
diff --git a/lib/python2.7/json/tests/test_scanstring.py b/lib/python2.7/json/tests/test_scanstring.py
deleted file mode 100644
index 4fef8cb..0000000
--- a/lib/python2.7/json/tests/test_scanstring.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import sys
-from json.tests import PyTest, CTest
-
-
-class TestScanstring(object):
-    def test_scanstring(self):
-        scanstring = self.json.decoder.scanstring
-        self.assertEqual(
-            scanstring('"z\\ud834\\udd20x"', 1, None, True),
-            (u'z\U0001d120x', 16))
-
-        if sys.maxunicode == 65535:
-            self.assertEqual(
-                scanstring(u'"z\U0001d120x"', 1, None, True),
-                (u'z\U0001d120x', 6))
-        else:
-            self.assertEqual(
-                scanstring(u'"z\U0001d120x"', 1, None, True),
-                (u'z\U0001d120x', 5))
-
-        self.assertEqual(
-            scanstring('"\\u007b"', 1, None, True),
-            (u'{', 8))
-
-        self.assertEqual(
-            scanstring('"A JSON payload should be an object or array, not a string."', 1, None, True),
-            (u'A JSON payload should be an object or array, not a string.', 60))
-
-        self.assertEqual(
-            scanstring('["Unclosed array"', 2, None, True),
-            (u'Unclosed array', 17))
-
-        self.assertEqual(
-            scanstring('["extra comma",]', 2, None, True),
-            (u'extra comma', 14))
-
-        self.assertEqual(
-            scanstring('["double extra comma",,]', 2, None, True),
-            (u'double extra comma', 21))
-
-        self.assertEqual(
-            scanstring('["Comma after the close"],', 2, None, True),
-            (u'Comma after the close', 24))
-
-        self.assertEqual(
-            scanstring('["Extra close"]]', 2, None, True),
-            (u'Extra close', 14))
-
-        self.assertEqual(
-            scanstring('{"Extra comma": true,}', 2, None, True),
-            (u'Extra comma', 14))
-
-        self.assertEqual(
-            scanstring('{"Extra value after close": true} "misplaced quoted value"', 2, None, True),
-            (u'Extra value after close', 26))
-
-        self.assertEqual(
-            scanstring('{"Illegal expression": 1 + 2}', 2, None, True),
-            (u'Illegal expression', 21))
-
-        self.assertEqual(
-            scanstring('{"Illegal invocation": alert()}', 2, None, True),
-            (u'Illegal invocation', 21))
-
-        self.assertEqual(
-            scanstring('{"Numbers cannot have leading zeroes": 013}', 2, None, True),
-            (u'Numbers cannot have leading zeroes', 37))
-
-        self.assertEqual(
-            scanstring('{"Numbers cannot be hex": 0x14}', 2, None, True),
-            (u'Numbers cannot be hex', 24))
-
-        self.assertEqual(
-            scanstring('[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]', 21, None, True),
-            (u'Too deep', 30))
-
-        self.assertEqual(
-            scanstring('{"Missing colon" null}', 2, None, True),
-            (u'Missing colon', 16))
-
-        self.assertEqual(
-            scanstring('{"Double colon":: null}', 2, None, True),
-            (u'Double colon', 15))
-
-        self.assertEqual(
-            scanstring('{"Comma instead of colon", null}', 2, None, True),
-            (u'Comma instead of colon', 25))
-
-        self.assertEqual(
-            scanstring('["Colon instead of comma": false]', 2, None, True),
-            (u'Colon instead of comma', 25))
-
-        self.assertEqual(
-            scanstring('["Bad value", truth]', 2, None, True),
-            (u'Bad value', 12))
-
-    def test_issue3623(self):
-        self.assertRaises(ValueError, self.json.decoder.scanstring, b"xxx", 1,
-                          "xxx")
-        self.assertRaises(UnicodeDecodeError,
-                          self.json.encoder.encode_basestring_ascii, b"xx\xff")
-
-    def test_overflow(self):
-        with self.assertRaises(OverflowError):
-            self.json.decoder.scanstring(b"xxx", sys.maxsize+1)
-
-
-class TestPyScanstring(TestScanstring, PyTest): pass
-class TestCScanstring(TestScanstring, CTest): pass
diff --git a/lib/python2.7/json/tests/test_separators.py b/lib/python2.7/json/tests/test_separators.py
deleted file mode 100644
index a4246e1..0000000
--- a/lib/python2.7/json/tests/test_separators.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import textwrap
-from json.tests import PyTest, CTest
-
-
-class TestSeparators(object):
-    def test_separators(self):
-        h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
-             {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
-
-        expect = textwrap.dedent("""\
-        [
-          [
-            "blorpie"
-          ] ,
-          [
-            "whoops"
-          ] ,
-          [] ,
-          "d-shtaeou" ,
-          "d-nthiouh" ,
-          "i-vhbjkhnth" ,
-          {
-            "nifty" : 87
-          } ,
-          {
-            "field" : "yes" ,
-            "morefield" : false
-          }
-        ]""")
-
-
-        d1 = self.dumps(h)
-        d2 = self.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : '))
-
-        h1 = self.loads(d1)
-        h2 = self.loads(d2)
-
-        self.assertEqual(h1, h)
-        self.assertEqual(h2, h)
-        self.assertEqual(d2, expect)
-
-
-class TestPySeparators(TestSeparators, PyTest): pass
-class TestCSeparators(TestSeparators, CTest): pass
diff --git a/lib/python2.7/json/tests/test_speedups.py b/lib/python2.7/json/tests/test_speedups.py
deleted file mode 100644
index 7186a40..0000000
--- a/lib/python2.7/json/tests/test_speedups.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from json.tests import CTest
-
-
-class TestSpeedups(CTest):
-    def test_scanstring(self):
-        self.assertEqual(self.json.decoder.scanstring.__module__, "_json")
-        self.assertIs(self.json.decoder.scanstring, self.json.decoder.c_scanstring)
-
-    def test_encode_basestring_ascii(self):
-        self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
-                         "_json")
-        self.assertIs(self.json.encoder.encode_basestring_ascii,
-                      self.json.encoder.c_encode_basestring_ascii)
-
-class TestDecode(CTest):
-    def test_make_scanner(self):
-        self.assertRaises(AttributeError, self.json.scanner.c_make_scanner, 1)
-
-    def test_make_encoder(self):
-        self.assertRaises(TypeError, self.json.encoder.c_make_encoder,
-            None,
-            "\xCD\x7D\x3D\x4E\x12\x4C\xF9\x79\xD7\x52\xBA\x82\xF2\x27\x4A\x7D\xA0\xCA\x75",
-            None)
diff --git a/lib/python2.7/json/tests/test_tool.py b/lib/python2.7/json/tests/test_tool.py
deleted file mode 100644
index 27dfb84..0000000
--- a/lib/python2.7/json/tests/test_tool.py
+++ /dev/null
@@ -1,69 +0,0 @@
-import os
-import sys
-import textwrap
-import unittest
-import subprocess
-from test import test_support
-from test.script_helper import assert_python_ok
-
-class TestTool(unittest.TestCase):
-    data = """
-
-        [["blorpie"],[ "whoops" ] , [
-                                 ],\t"d-shtaeou",\r"d-nthiouh",
-        "i-vhbjkhnth", {"nifty":87}, {"morefield" :\tfalse,"field"
-            :"yes"}  ]
-           """
-
-    expect = textwrap.dedent("""\
-    [
-        [
-            "blorpie"
-        ],
-        [
-            "whoops"
-        ],
-        [],
-        "d-shtaeou",
-        "d-nthiouh",
-        "i-vhbjkhnth",
-        {
-            "nifty": 87
-        },
-        {
-            "field": "yes",
-            "morefield": false
-        }
-    ]
-    """)
-
-    def test_stdin_stdout(self):
-        proc = subprocess.Popen(
-                (sys.executable, '-m', 'json.tool'),
-                stdin=subprocess.PIPE, stdout=subprocess.PIPE)
-        out, err = proc.communicate(self.data.encode())
-        self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
-        self.assertEqual(err, None)
-
-    def _create_infile(self):
-        infile = test_support.TESTFN
-        with open(infile, "w") as fp:
-            self.addCleanup(os.remove, infile)
-            fp.write(self.data)
-        return infile
-
-    def test_infile_stdout(self):
-        infile = self._create_infile()
-        rc, out, err = assert_python_ok('-m', 'json.tool', infile)
-        self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
-        self.assertEqual(err, b'')
-
-    def test_infile_outfile(self):
-        infile = self._create_infile()
-        outfile = test_support.TESTFN + '.out'
-        rc, out, err = assert_python_ok('-m', 'json.tool', infile, outfile)
-        self.addCleanup(os.remove, outfile)
-        with open(outfile, "r") as fp:
-            self.assertEqual(fp.read(), self.expect)
-        self.assertEqual(out, b'')
-        self.assertEqual(err, b'')
diff --git a/lib/python2.7/json/tests/test_unicode.py b/lib/python2.7/json/tests/test_unicode.py
deleted file mode 100644
index e90f158..0000000
--- a/lib/python2.7/json/tests/test_unicode.py
+++ /dev/null
@@ -1,89 +0,0 @@
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-class TestUnicode(object):
-    def test_encoding1(self):
-        encoder = self.json.JSONEncoder(encoding='utf-8')
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        s = u.encode('utf-8')
-        ju = encoder.encode(u)
-        js = encoder.encode(s)
-        self.assertEqual(ju, js)
-
-    def test_encoding2(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        s = u.encode('utf-8')
-        ju = self.dumps(u, encoding='utf-8')
-        js = self.dumps(s, encoding='utf-8')
-        self.assertEqual(ju, js)
-
-    def test_encoding3(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps(u)
-        self.assertEqual(j, '"\\u03b1\\u03a9"')
-
-    def test_encoding4(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps([u])
-        self.assertEqual(j, '["\\u03b1\\u03a9"]')
-
-    def test_encoding5(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps(u, ensure_ascii=False)
-        self.assertEqual(j, u'"{0}"'.format(u))
-
-    def test_encoding6(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps([u], ensure_ascii=False)
-        self.assertEqual(j, u'["{0}"]'.format(u))
-
-    def test_big_unicode_encode(self):
-        u = u'\U0001d120'
-        self.assertEqual(self.dumps(u), '"\\ud834\\udd20"')
-        self.assertEqual(self.dumps(u, ensure_ascii=False), u'"\U0001d120"')
-
-    def test_big_unicode_decode(self):
-        u = u'z\U0001d120x'
-        self.assertEqual(self.loads('"' + u + '"'), u)
-        self.assertEqual(self.loads('"z\\ud834\\udd20x"'), u)
-
-    def test_unicode_decode(self):
-        for i in range(0, 0xd7ff):
-            u = unichr(i)
-            s = '"\\u{0:04x}"'.format(i)
-            self.assertEqual(self.loads(s), u)
-
-    def test_object_pairs_hook_with_unicode(self):
-        s = u'{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
-        p = [(u"xkd", 1), (u"kcw", 2), (u"art", 3), (u"hxm", 4),
-             (u"qrt", 5), (u"pad", 6), (u"hoy", 7)]
-        self.assertEqual(self.loads(s), eval(s))
-        self.assertEqual(self.loads(s, object_pairs_hook = lambda x: x), p)
-        od = self.loads(s, object_pairs_hook = OrderedDict)
-        self.assertEqual(od, OrderedDict(p))
-        self.assertEqual(type(od), OrderedDict)
-        # the object_pairs_hook takes priority over the object_hook
-        self.assertEqual(self.loads(s,
-                                    object_pairs_hook = OrderedDict,
-                                    object_hook = lambda x: None),
-                         OrderedDict(p))
-
-    def test_default_encoding(self):
-        self.assertEqual(self.loads(u'{"a": "\xe9"}'.encode('utf-8')),
-            {'a': u'\xe9'})
-
-    def test_unicode_preservation(self):
-        self.assertEqual(type(self.loads(u'""')), unicode)
-        self.assertEqual(type(self.loads(u'"a"')), unicode)
-        self.assertEqual(type(self.loads(u'["a"]')[0]), unicode)
-        # Issue 10038.
-        self.assertEqual(type(self.loads('"foo"')), unicode)
-
-    def test_bad_encoding(self):
-        self.assertRaises(UnicodeEncodeError, self.loads, '"a"', u"rat\xe9")
-        self.assertRaises(TypeError, self.loads, '"a"', 1)
-
-
-class TestPyUnicode(TestUnicode, PyTest): pass
-class TestCUnicode(TestUnicode, CTest): pass
diff --git a/lib/python2.7/lib-dynload/_bisect.so b/lib/python2.7/lib-dynload/_bisect.so
index da4a110..d6ec721 100755
--- a/lib/python2.7/lib-dynload/_bisect.so
+++ b/lib/python2.7/lib-dynload/_bisect.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_cn.so b/lib/python2.7/lib-dynload/_codecs_cn.so
index 775c60c..d99b292 100755
--- a/lib/python2.7/lib-dynload/_codecs_cn.so
+++ b/lib/python2.7/lib-dynload/_codecs_cn.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_hk.so b/lib/python2.7/lib-dynload/_codecs_hk.so
index a94a635..3c3661f 100755
--- a/lib/python2.7/lib-dynload/_codecs_hk.so
+++ b/lib/python2.7/lib-dynload/_codecs_hk.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_iso2022.so b/lib/python2.7/lib-dynload/_codecs_iso2022.so
index 3f78d58..70df764 100755
--- a/lib/python2.7/lib-dynload/_codecs_iso2022.so
+++ b/lib/python2.7/lib-dynload/_codecs_iso2022.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_jp.so b/lib/python2.7/lib-dynload/_codecs_jp.so
index 4de2276..00d21fc 100755
--- a/lib/python2.7/lib-dynload/_codecs_jp.so
+++ b/lib/python2.7/lib-dynload/_codecs_jp.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_kr.so b/lib/python2.7/lib-dynload/_codecs_kr.so
index 8f20d95..24aa8f4 100755
--- a/lib/python2.7/lib-dynload/_codecs_kr.so
+++ b/lib/python2.7/lib-dynload/_codecs_kr.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_tw.so b/lib/python2.7/lib-dynload/_codecs_tw.so
index 2882ec1..67b34de 100755
--- a/lib/python2.7/lib-dynload/_codecs_tw.so
+++ b/lib/python2.7/lib-dynload/_codecs_tw.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_collections.so b/lib/python2.7/lib-dynload/_collections.so
index a35859c..46b8dff 100755
--- a/lib/python2.7/lib-dynload/_collections.so
+++ b/lib/python2.7/lib-dynload/_collections.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_csv.so b/lib/python2.7/lib-dynload/_csv.so
index cf3ea52..266b57b 100755
--- a/lib/python2.7/lib-dynload/_csv.so
+++ b/lib/python2.7/lib-dynload/_csv.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ctypes.so b/lib/python2.7/lib-dynload/_ctypes.so
index 93726e0..e39a0a5 100755
--- a/lib/python2.7/lib-dynload/_ctypes.so
+++ b/lib/python2.7/lib-dynload/_ctypes.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ctypes_test.so b/lib/python2.7/lib-dynload/_ctypes_test.so
index c80162f..6fb421c 100755
--- a/lib/python2.7/lib-dynload/_ctypes_test.so
+++ b/lib/python2.7/lib-dynload/_ctypes_test.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_curses.so b/lib/python2.7/lib-dynload/_curses.so
index acd0b53..423976f 100755
--- a/lib/python2.7/lib-dynload/_curses.so
+++ b/lib/python2.7/lib-dynload/_curses.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_curses_panel.so b/lib/python2.7/lib-dynload/_curses_panel.so
index 6315596..708248f 100755
--- a/lib/python2.7/lib-dynload/_curses_panel.so
+++ b/lib/python2.7/lib-dynload/_curses_panel.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_elementtree.so b/lib/python2.7/lib-dynload/_elementtree.so
index a1a3054..89a7b1b 100755
--- a/lib/python2.7/lib-dynload/_elementtree.so
+++ b/lib/python2.7/lib-dynload/_elementtree.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_functools.so b/lib/python2.7/lib-dynload/_functools.so
index 1f706f4..e799851 100755
--- a/lib/python2.7/lib-dynload/_functools.so
+++ b/lib/python2.7/lib-dynload/_functools.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_hashlib.so b/lib/python2.7/lib-dynload/_hashlib.so
index 6066608..df93851 100755
--- a/lib/python2.7/lib-dynload/_hashlib.so
+++ b/lib/python2.7/lib-dynload/_hashlib.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_heapq.so b/lib/python2.7/lib-dynload/_heapq.so
index 7c9396f..145e100 100755
--- a/lib/python2.7/lib-dynload/_heapq.so
+++ b/lib/python2.7/lib-dynload/_heapq.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_hotshot.so b/lib/python2.7/lib-dynload/_hotshot.so
index 7a251dc..e23499f 100755
--- a/lib/python2.7/lib-dynload/_hotshot.so
+++ b/lib/python2.7/lib-dynload/_hotshot.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_io.so b/lib/python2.7/lib-dynload/_io.so
index 9d1b8c4..df85366 100755
--- a/lib/python2.7/lib-dynload/_io.so
+++ b/lib/python2.7/lib-dynload/_io.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_json.so b/lib/python2.7/lib-dynload/_json.so
index 7ff54cd..c94f285 100755
--- a/lib/python2.7/lib-dynload/_json.so
+++ b/lib/python2.7/lib-dynload/_json.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_locale.so b/lib/python2.7/lib-dynload/_locale.so
index 4158ece..f68dcd0 100755
--- a/lib/python2.7/lib-dynload/_locale.so
+++ b/lib/python2.7/lib-dynload/_locale.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_lsprof.so b/lib/python2.7/lib-dynload/_lsprof.so
index 50d8106..5f5bc1c 100755
--- a/lib/python2.7/lib-dynload/_lsprof.so
+++ b/lib/python2.7/lib-dynload/_lsprof.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_multibytecodec.so b/lib/python2.7/lib-dynload/_multibytecodec.so
index 9acf046..c57ee77 100755
--- a/lib/python2.7/lib-dynload/_multibytecodec.so
+++ b/lib/python2.7/lib-dynload/_multibytecodec.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_multiprocessing.so b/lib/python2.7/lib-dynload/_multiprocessing.so
index 53978cb..f45854b 100755
--- a/lib/python2.7/lib-dynload/_multiprocessing.so
+++ b/lib/python2.7/lib-dynload/_multiprocessing.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_random.so b/lib/python2.7/lib-dynload/_random.so
index 12d9372..3546e86 100755
--- a/lib/python2.7/lib-dynload/_random.so
+++ b/lib/python2.7/lib-dynload/_random.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_socket.so b/lib/python2.7/lib-dynload/_socket.so
index a3ac0d3..812f43a 100755
--- a/lib/python2.7/lib-dynload/_socket.so
+++ b/lib/python2.7/lib-dynload/_socket.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_sqlite3.so b/lib/python2.7/lib-dynload/_sqlite3.so
index a75c0e2..4313e75 100755
--- a/lib/python2.7/lib-dynload/_sqlite3.so
+++ b/lib/python2.7/lib-dynload/_sqlite3.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ssl.so b/lib/python2.7/lib-dynload/_ssl.so
index 4fc35cf..7721b02 100755
--- a/lib/python2.7/lib-dynload/_ssl.so
+++ b/lib/python2.7/lib-dynload/_ssl.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_struct.so b/lib/python2.7/lib-dynload/_struct.so
index 73908a3..6e59f88 100755
--- a/lib/python2.7/lib-dynload/_struct.so
+++ b/lib/python2.7/lib-dynload/_struct.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_testcapi.so b/lib/python2.7/lib-dynload/_testcapi.so
index e8880a6..9adc376 100755
--- a/lib/python2.7/lib-dynload/_testcapi.so
+++ b/lib/python2.7/lib-dynload/_testcapi.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/array.so b/lib/python2.7/lib-dynload/array.so
index 624415e..8ec9f9d 100755
--- a/lib/python2.7/lib-dynload/array.so
+++ b/lib/python2.7/lib-dynload/array.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/audioop.so b/lib/python2.7/lib-dynload/audioop.so
index a8a3824..b5a3975 100755
--- a/lib/python2.7/lib-dynload/audioop.so
+++ b/lib/python2.7/lib-dynload/audioop.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/binascii.so b/lib/python2.7/lib-dynload/binascii.so
index 34cee49..f256888 100755
--- a/lib/python2.7/lib-dynload/binascii.so
+++ b/lib/python2.7/lib-dynload/binascii.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cPickle.so b/lib/python2.7/lib-dynload/cPickle.so
index a7620d7..9c1774c 100755
--- a/lib/python2.7/lib-dynload/cPickle.so
+++ b/lib/python2.7/lib-dynload/cPickle.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cStringIO.so b/lib/python2.7/lib-dynload/cStringIO.so
index 9cc581d..55a9dc9 100755
--- a/lib/python2.7/lib-dynload/cStringIO.so
+++ b/lib/python2.7/lib-dynload/cStringIO.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cmath.so b/lib/python2.7/lib-dynload/cmath.so
index 7c4b5ff..7cc39a4 100755
--- a/lib/python2.7/lib-dynload/cmath.so
+++ b/lib/python2.7/lib-dynload/cmath.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/crypt.so b/lib/python2.7/lib-dynload/crypt.so
index e0bbc60..620fdb9 100755
--- a/lib/python2.7/lib-dynload/crypt.so
+++ b/lib/python2.7/lib-dynload/crypt.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/datetime.so b/lib/python2.7/lib-dynload/datetime.so
index 1c62758..0fef12b 100755
--- a/lib/python2.7/lib-dynload/datetime.so
+++ b/lib/python2.7/lib-dynload/datetime.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/fcntl.so b/lib/python2.7/lib-dynload/fcntl.so
index 4a47f7c..d193172 100755
--- a/lib/python2.7/lib-dynload/fcntl.so
+++ b/lib/python2.7/lib-dynload/fcntl.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/future_builtins.so b/lib/python2.7/lib-dynload/future_builtins.so
index eeea768..2ec2a11 100755
--- a/lib/python2.7/lib-dynload/future_builtins.so
+++ b/lib/python2.7/lib-dynload/future_builtins.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/grp.so b/lib/python2.7/lib-dynload/grp.so
index c06a488..082a22b 100755
--- a/lib/python2.7/lib-dynload/grp.so
+++ b/lib/python2.7/lib-dynload/grp.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/itertools.so b/lib/python2.7/lib-dynload/itertools.so
index c20a1fb..eb4e746 100755
--- a/lib/python2.7/lib-dynload/itertools.so
+++ b/lib/python2.7/lib-dynload/itertools.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/linuxaudiodev.so b/lib/python2.7/lib-dynload/linuxaudiodev.so
index eac02c3..fe1bc0f 100755
--- a/lib/python2.7/lib-dynload/linuxaudiodev.so
+++ b/lib/python2.7/lib-dynload/linuxaudiodev.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/math.so b/lib/python2.7/lib-dynload/math.so
index b42f469..27fc3a0 100755
--- a/lib/python2.7/lib-dynload/math.so
+++ b/lib/python2.7/lib-dynload/math.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/mmap.so b/lib/python2.7/lib-dynload/mmap.so
index eb7812d..60dc53b 100755
--- a/lib/python2.7/lib-dynload/mmap.so
+++ b/lib/python2.7/lib-dynload/mmap.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/nis.so b/lib/python2.7/lib-dynload/nis.so
index 6e82515..300fed4 100755
--- a/lib/python2.7/lib-dynload/nis.so
+++ b/lib/python2.7/lib-dynload/nis.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/operator.so b/lib/python2.7/lib-dynload/operator.so
index ea26878..f1ab3af 100755
--- a/lib/python2.7/lib-dynload/operator.so
+++ b/lib/python2.7/lib-dynload/operator.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/ossaudiodev.so b/lib/python2.7/lib-dynload/ossaudiodev.so
index 68a9d82..da590cb 100755
--- a/lib/python2.7/lib-dynload/ossaudiodev.so
+++ b/lib/python2.7/lib-dynload/ossaudiodev.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/parser.so b/lib/python2.7/lib-dynload/parser.so
index 12e8378..b87089f 100755
--- a/lib/python2.7/lib-dynload/parser.so
+++ b/lib/python2.7/lib-dynload/parser.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/pwd.so b/lib/python2.7/lib-dynload/pwd.so
index bdf244b..895e3e4 100755
--- a/lib/python2.7/lib-dynload/pwd.so
+++ b/lib/python2.7/lib-dynload/pwd.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/pyexpat.so b/lib/python2.7/lib-dynload/pyexpat.so
index 972d58a..d127d8e 100755
--- a/lib/python2.7/lib-dynload/pyexpat.so
+++ b/lib/python2.7/lib-dynload/pyexpat.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/resource.so b/lib/python2.7/lib-dynload/resource.so
index 5fd6355..d1bfb98 100755
--- a/lib/python2.7/lib-dynload/resource.so
+++ b/lib/python2.7/lib-dynload/resource.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/select.so b/lib/python2.7/lib-dynload/select.so
index 79098fb..ce62073 100755
--- a/lib/python2.7/lib-dynload/select.so
+++ b/lib/python2.7/lib-dynload/select.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/spwd.so b/lib/python2.7/lib-dynload/spwd.so
index 28fab55..61b0197 100755
--- a/lib/python2.7/lib-dynload/spwd.so
+++ b/lib/python2.7/lib-dynload/spwd.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/strop.so b/lib/python2.7/lib-dynload/strop.so
index 0e77877..ef648e6 100755
--- a/lib/python2.7/lib-dynload/strop.so
+++ b/lib/python2.7/lib-dynload/strop.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/syslog.so b/lib/python2.7/lib-dynload/syslog.so
index c5aebcc..7a5ecfa 100755
--- a/lib/python2.7/lib-dynload/syslog.so
+++ b/lib/python2.7/lib-dynload/syslog.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/termios.so b/lib/python2.7/lib-dynload/termios.so
index 3b73872..c2ecfa0 100755
--- a/lib/python2.7/lib-dynload/termios.so
+++ b/lib/python2.7/lib-dynload/termios.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/time.so b/lib/python2.7/lib-dynload/time.so
index cd89daa..217ce63 100755
--- a/lib/python2.7/lib-dynload/time.so
+++ b/lib/python2.7/lib-dynload/time.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/unicodedata.so b/lib/python2.7/lib-dynload/unicodedata.so
index 48a5c1e..c55b928 100755
--- a/lib/python2.7/lib-dynload/unicodedata.so
+++ b/lib/python2.7/lib-dynload/unicodedata.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/zlib.so b/lib/python2.7/lib-dynload/zlib.so
index e149c00..f93eba6 100755
--- a/lib/python2.7/lib-dynload/zlib.so
+++ b/lib/python2.7/lib-dynload/zlib.so
Binary files differ
diff --git a/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle b/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
index d9b73ae..30d754d 100644
--- a/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
+++ b/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
Binary files differ
diff --git a/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle b/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
index dd783b1..050f1fb 100644
--- a/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
+++ b/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
Binary files differ
diff --git a/lib/python2.7/lib2to3/tests/__init__.py b/lib/python2.7/lib2to3/tests/__init__.py
deleted file mode 100644
index cfaea0d..0000000
--- a/lib/python2.7/lib2to3/tests/__init__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-"""Make tests/ into a package. This allows us to "import tests" and
-have tests.all_tests be a TestSuite representing all test cases
-from all test_*.py files in tests/."""
-# Author: Collin Winter
-
-import os
-import os.path
-import unittest
-import types
-
-from . import support
-
-all_tests = unittest.TestSuite()
-
-tests_dir = os.path.join(os.path.dirname(__file__), '..', 'tests')
-tests = [t[0:-3] for t in os.listdir(tests_dir)
-                        if t.startswith('test_') and t.endswith('.py')]
-
-loader = unittest.TestLoader()
-
-for t in tests:
-    __import__("",globals(),locals(),[t],level=1)
-    mod = globals()[t]
-    all_tests.addTests(loader.loadTestsFromModule(mod))
diff --git a/lib/python2.7/lib2to3/tests/data/README b/lib/python2.7/lib2to3/tests/data/README
deleted file mode 100644
index 7aa47e4..0000000
--- a/lib/python2.7/lib2to3/tests/data/README
+++ /dev/null
@@ -1,6 +0,0 @@
-In this directory:
-- py2_test_grammar.py -- test file that exercises most/all of Python 2.x's grammar.
-- py3_test_grammar.py -- test file that exercises most/all of Python 3.x's grammar.
-- infinite_recursion.py -- test file that causes lib2to3's faster recursive pattern matching
-  scheme to fail, but passes when lib2to3 falls back to iterative pattern matching.
-- fixes/ -- for use by test_refactor.py
diff --git a/lib/python2.7/lib2to3/tests/data/bom.py b/lib/python2.7/lib2to3/tests/data/bom.py
deleted file mode 100644
index 9bc3975..0000000
--- a/lib/python2.7/lib2to3/tests/data/bom.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# coding: utf-8
-print "BOM BOOM!"
diff --git a/lib/python2.7/lib2to3/tests/data/crlf.py b/lib/python2.7/lib2to3/tests/data/crlf.py
deleted file mode 100644
index dbe2d7b..0000000
--- a/lib/python2.7/lib2to3/tests/data/crlf.py
+++ /dev/null
@@ -1,3 +0,0 @@
-print "hi"
-
-print "Like bad Windows newlines?"
diff --git a/lib/python2.7/lib2to3/tests/data/different_encoding.py b/lib/python2.7/lib2to3/tests/data/different_encoding.py
deleted file mode 100644
index 9f32bd0..0000000
--- a/lib/python2.7/lib2to3/tests/data/different_encoding.py
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-print u'ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ'
-
-def f(x):
-    print '%s\t->  α(%2i):%s  β(%s)'
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py b/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py
deleted file mode 100644
index 061bbf2..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixBadOrder(BaseFix):
-
-    order = "crazy"
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py
+++ /dev/null
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py
deleted file mode 100644
index cbe16f6..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixExplicit(BaseFix):
-    explicit = True
-
-    def match(self): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py
deleted file mode 100644
index a88821f..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixFirst(BaseFix):
-    run_order = 1
-
-    def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py
deleted file mode 100644
index 9a077d4..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixLast(BaseFix):
-
-    run_order = 10
-
-    def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py
deleted file mode 100644
index 6db79ad..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-from lib2to3.fixer_util import Name
-
-class FixParrot(BaseFix):
-    """
-    Change functions named 'parrot' to 'cheese'.
-    """
-
-    PATTERN = """funcdef < 'def' name='parrot' any* >"""
-
-    def transform(self, node, results):
-        name = results["name"]
-        name.replace(Name("cheese", name.prefix))
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py
deleted file mode 100644
index b9bfbba..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixPreorder(BaseFix):
-    order = "pre"
-
-    def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py b/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py
deleted file mode 100644
index 506f794..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py
+++ /dev/null
@@ -1 +0,0 @@
-# This is empty so trying to fetch the fixer class gives an AttributeError
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py b/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py
deleted file mode 100644
index 0852928..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py
+++ /dev/null
@@ -1,2 +0,0 @@
-def parrot():
-    pass
diff --git a/lib/python2.7/lib2to3/tests/data/infinite_recursion.py b/lib/python2.7/lib2to3/tests/data/infinite_recursion.py
deleted file mode 100644
index 71715ef..0000000
--- a/lib/python2.7/lib2to3/tests/data/infinite_recursion.py
+++ /dev/null
@@ -1,2669 +0,0 @@
-# This file is used to verify that 2to3 falls back to a slower, iterative pattern matching
-# scheme in the event that the faster recursive system fails due to infinite recursion.
-from ctypes import *
-STRING = c_char_p
-
-
-OSUnknownByteOrder = 0
-UIT_PROMPT = 1
-P_PGID = 2
-P_PID = 1
-UIT_ERROR = 5
-UIT_INFO = 4
-UIT_NONE = 0
-P_ALL = 0
-UIT_VERIFY = 2
-OSBigEndian = 2
-UIT_BOOLEAN = 3
-OSLittleEndian = 1
-__darwin_nl_item = c_int
-__darwin_wctrans_t = c_int
-__darwin_wctype_t = c_ulong
-__int8_t = c_byte
-__uint8_t = c_ubyte
-__int16_t = c_short
-__uint16_t = c_ushort
-__int32_t = c_int
-__uint32_t = c_uint
-__int64_t = c_longlong
-__uint64_t = c_ulonglong
-__darwin_intptr_t = c_long
-__darwin_natural_t = c_uint
-__darwin_ct_rune_t = c_int
-class __mbstate_t(Union):
-    pass
-__mbstate_t._pack_ = 4
-__mbstate_t._fields_ = [
-    ('__mbstate8', c_char * 128),
-    ('_mbstateL', c_longlong),
-]
-assert sizeof(__mbstate_t) == 128, sizeof(__mbstate_t)
-assert alignment(__mbstate_t) == 4, alignment(__mbstate_t)
-__darwin_mbstate_t = __mbstate_t
-__darwin_ptrdiff_t = c_int
-__darwin_size_t = c_ulong
-__darwin_va_list = STRING
-__darwin_wchar_t = c_int
-__darwin_rune_t = __darwin_wchar_t
-__darwin_wint_t = c_int
-__darwin_clock_t = c_ulong
-__darwin_socklen_t = __uint32_t
-__darwin_ssize_t = c_long
-__darwin_time_t = c_long
-sig_atomic_t = c_int
-class sigcontext(Structure):
-    pass
-sigcontext._fields_ = [
-    ('sc_onstack', c_int),
-    ('sc_mask', c_int),
-    ('sc_eax', c_uint),
-    ('sc_ebx', c_uint),
-    ('sc_ecx', c_uint),
-    ('sc_edx', c_uint),
-    ('sc_edi', c_uint),
-    ('sc_esi', c_uint),
-    ('sc_ebp', c_uint),
-    ('sc_esp', c_uint),
-    ('sc_ss', c_uint),
-    ('sc_eflags', c_uint),
-    ('sc_eip', c_uint),
-    ('sc_cs', c_uint),
-    ('sc_ds', c_uint),
-    ('sc_es', c_uint),
-    ('sc_fs', c_uint),
-    ('sc_gs', c_uint),
-]
-assert sizeof(sigcontext) == 72, sizeof(sigcontext)
-assert alignment(sigcontext) == 4, alignment(sigcontext)
-u_int8_t = c_ubyte
-u_int16_t = c_ushort
-u_int32_t = c_uint
-u_int64_t = c_ulonglong
-int32_t = c_int
-register_t = int32_t
-user_addr_t = u_int64_t
-user_size_t = u_int64_t
-int64_t = c_longlong
-user_ssize_t = int64_t
-user_long_t = int64_t
-user_ulong_t = u_int64_t
-user_time_t = int64_t
-syscall_arg_t = u_int64_t
-
-# values for unnamed enumeration
-class aes_key_st(Structure):
-    pass
-aes_key_st._fields_ = [
-    ('rd_key', c_ulong * 60),
-    ('rounds', c_int),
-]
-assert sizeof(aes_key_st) == 244, sizeof(aes_key_st)
-assert alignment(aes_key_st) == 4, alignment(aes_key_st)
-AES_KEY = aes_key_st
-class asn1_ctx_st(Structure):
-    pass
-asn1_ctx_st._fields_ = [
-    ('p', POINTER(c_ubyte)),
-    ('eos', c_int),
-    ('error', c_int),
-    ('inf', c_int),
-    ('tag', c_int),
-    ('xclass', c_int),
-    ('slen', c_long),
-    ('max', POINTER(c_ubyte)),
-    ('q', POINTER(c_ubyte)),
-    ('pp', POINTER(POINTER(c_ubyte))),
-    ('line', c_int),
-]
-assert sizeof(asn1_ctx_st) == 44, sizeof(asn1_ctx_st)
-assert alignment(asn1_ctx_st) == 4, alignment(asn1_ctx_st)
-ASN1_CTX = asn1_ctx_st
-class asn1_object_st(Structure):
-    pass
-asn1_object_st._fields_ = [
-    ('sn', STRING),
-    ('ln', STRING),
-    ('nid', c_int),
-    ('length', c_int),
-    ('data', POINTER(c_ubyte)),
-    ('flags', c_int),
-]
-assert sizeof(asn1_object_st) == 24, sizeof(asn1_object_st)
-assert alignment(asn1_object_st) == 4, alignment(asn1_object_st)
-ASN1_OBJECT = asn1_object_st
-class asn1_string_st(Structure):
-    pass
-asn1_string_st._fields_ = [
-    ('length', c_int),
-    ('type', c_int),
-    ('data', POINTER(c_ubyte)),
-    ('flags', c_long),
-]
-assert sizeof(asn1_string_st) == 16, sizeof(asn1_string_st)
-assert alignment(asn1_string_st) == 4, alignment(asn1_string_st)
-ASN1_STRING = asn1_string_st
-class ASN1_ENCODING_st(Structure):
-    pass
-ASN1_ENCODING_st._fields_ = [
-    ('enc', POINTER(c_ubyte)),
-    ('len', c_long),
-    ('modified', c_int),
-]
-assert sizeof(ASN1_ENCODING_st) == 12, sizeof(ASN1_ENCODING_st)
-assert alignment(ASN1_ENCODING_st) == 4, alignment(ASN1_ENCODING_st)
-ASN1_ENCODING = ASN1_ENCODING_st
-class asn1_string_table_st(Structure):
-    pass
-asn1_string_table_st._fields_ = [
-    ('nid', c_int),
-    ('minsize', c_long),
-    ('maxsize', c_long),
-    ('mask', c_ulong),
-    ('flags', c_ulong),
-]
-assert sizeof(asn1_string_table_st) == 20, sizeof(asn1_string_table_st)
-assert alignment(asn1_string_table_st) == 4, alignment(asn1_string_table_st)
-ASN1_STRING_TABLE = asn1_string_table_st
-class ASN1_TEMPLATE_st(Structure):
-    pass
-ASN1_TEMPLATE_st._fields_ = [
-]
-ASN1_TEMPLATE = ASN1_TEMPLATE_st
-class ASN1_ITEM_st(Structure):
-    pass
-ASN1_ITEM = ASN1_ITEM_st
-ASN1_ITEM_st._fields_ = [
-]
-class ASN1_TLC_st(Structure):
-    pass
-ASN1_TLC = ASN1_TLC_st
-ASN1_TLC_st._fields_ = [
-]
-class ASN1_VALUE_st(Structure):
-    pass
-ASN1_VALUE_st._fields_ = [
-]
-ASN1_VALUE = ASN1_VALUE_st
-ASN1_ITEM_EXP = ASN1_ITEM
-class asn1_type_st(Structure):
-    pass
-class N12asn1_type_st4DOLLAR_11E(Union):
-    pass
-ASN1_BOOLEAN = c_int
-ASN1_INTEGER = asn1_string_st
-ASN1_ENUMERATED = asn1_string_st
-ASN1_BIT_STRING = asn1_string_st
-ASN1_OCTET_STRING = asn1_string_st
-ASN1_PRINTABLESTRING = asn1_string_st
-ASN1_T61STRING = asn1_string_st
-ASN1_IA5STRING = asn1_string_st
-ASN1_GENERALSTRING = asn1_string_st
-ASN1_BMPSTRING = asn1_string_st
-ASN1_UNIVERSALSTRING = asn1_string_st
-ASN1_UTCTIME = asn1_string_st
-ASN1_GENERALIZEDTIME = asn1_string_st
-ASN1_VISIBLESTRING = asn1_string_st
-ASN1_UTF8STRING = asn1_string_st
-N12asn1_type_st4DOLLAR_11E._fields_ = [
-    ('ptr', STRING),
-    ('boolean', ASN1_BOOLEAN),
-    ('asn1_string', POINTER(ASN1_STRING)),
-    ('object', POINTER(ASN1_OBJECT)),
-    ('integer', POINTER(ASN1_INTEGER)),
-    ('enumerated', POINTER(ASN1_ENUMERATED)),
-    ('bit_string', POINTER(ASN1_BIT_STRING)),
-    ('octet_string', POINTER(ASN1_OCTET_STRING)),
-    ('printablestring', POINTER(ASN1_PRINTABLESTRING)),
-    ('t61string', POINTER(ASN1_T61STRING)),
-    ('ia5string', POINTER(ASN1_IA5STRING)),
-    ('generalstring', POINTER(ASN1_GENERALSTRING)),
-    ('bmpstring', POINTER(ASN1_BMPSTRING)),
-    ('universalstring', POINTER(ASN1_UNIVERSALSTRING)),
-    ('utctime', POINTER(ASN1_UTCTIME)),
-    ('generalizedtime', POINTER(ASN1_GENERALIZEDTIME)),
-    ('visiblestring', POINTER(ASN1_VISIBLESTRING)),
-    ('utf8string', POINTER(ASN1_UTF8STRING)),
-    ('set', POINTER(ASN1_STRING)),
-    ('sequence', POINTER(ASN1_STRING)),
-]
-assert sizeof(N12asn1_type_st4DOLLAR_11E) == 4, sizeof(N12asn1_type_st4DOLLAR_11E)
-assert alignment(N12asn1_type_st4DOLLAR_11E) == 4, alignment(N12asn1_type_st4DOLLAR_11E)
-asn1_type_st._fields_ = [
-    ('type', c_int),
-    ('value', N12asn1_type_st4DOLLAR_11E),
-]
-assert sizeof(asn1_type_st) == 8, sizeof(asn1_type_st)
-assert alignment(asn1_type_st) == 4, alignment(asn1_type_st)
-ASN1_TYPE = asn1_type_st
-class asn1_method_st(Structure):
-    pass
-asn1_method_st._fields_ = [
-    ('i2d', CFUNCTYPE(c_int)),
-    ('d2i', CFUNCTYPE(STRING)),
-    ('create', CFUNCTYPE(STRING)),
-    ('destroy', CFUNCTYPE(None)),
-]
-assert sizeof(asn1_method_st) == 16, sizeof(asn1_method_st)
-assert alignment(asn1_method_st) == 4, alignment(asn1_method_st)
-ASN1_METHOD = asn1_method_st
-class asn1_header_st(Structure):
-    pass
-asn1_header_st._fields_ = [
-    ('header', POINTER(ASN1_OCTET_STRING)),
-    ('data', STRING),
-    ('meth', POINTER(ASN1_METHOD)),
-]
-assert sizeof(asn1_header_st) == 12, sizeof(asn1_header_st)
-assert alignment(asn1_header_st) == 4, alignment(asn1_header_st)
-ASN1_HEADER = asn1_header_st
-class BIT_STRING_BITNAME_st(Structure):
-    pass
-BIT_STRING_BITNAME_st._fields_ = [
-    ('bitnum', c_int),
-    ('lname', STRING),
-    ('sname', STRING),
-]
-assert sizeof(BIT_STRING_BITNAME_st) == 12, sizeof(BIT_STRING_BITNAME_st)
-assert alignment(BIT_STRING_BITNAME_st) == 4, alignment(BIT_STRING_BITNAME_st)
-BIT_STRING_BITNAME = BIT_STRING_BITNAME_st
-class bio_st(Structure):
-    pass
-BIO = bio_st
-bio_info_cb = CFUNCTYPE(None, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)
-class bio_method_st(Structure):
-    pass
-bio_method_st._fields_ = [
-    ('type', c_int),
-    ('name', STRING),
-    ('bwrite', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
-    ('bread', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
-    ('bputs', CFUNCTYPE(c_int, POINTER(BIO), STRING)),
-    ('bgets', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
-    ('ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, c_long, c_void_p)),
-    ('create', CFUNCTYPE(c_int, POINTER(BIO))),
-    ('destroy', CFUNCTYPE(c_int, POINTER(BIO))),
-    ('callback_ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, POINTER(bio_info_cb))),
-]
-assert sizeof(bio_method_st) == 40, sizeof(bio_method_st)
-assert alignment(bio_method_st) == 4, alignment(bio_method_st)
-BIO_METHOD = bio_method_st
-class crypto_ex_data_st(Structure):
-    pass
-class stack_st(Structure):
-    pass
-STACK = stack_st
-crypto_ex_data_st._fields_ = [
-    ('sk', POINTER(STACK)),
-    ('dummy', c_int),
-]
-assert sizeof(crypto_ex_data_st) == 8, sizeof(crypto_ex_data_st)
-assert alignment(crypto_ex_data_st) == 4, alignment(crypto_ex_data_st)
-CRYPTO_EX_DATA = crypto_ex_data_st
-bio_st._fields_ = [
-    ('method', POINTER(BIO_METHOD)),
-    ('callback', CFUNCTYPE(c_long, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)),
-    ('cb_arg', STRING),
-    ('init', c_int),
-    ('shutdown', c_int),
-    ('flags', c_int),
-    ('retry_reason', c_int),
-    ('num', c_int),
-    ('ptr', c_void_p),
-    ('next_bio', POINTER(bio_st)),
-    ('prev_bio', POINTER(bio_st)),
-    ('references', c_int),
-    ('num_read', c_ulong),
-    ('num_write', c_ulong),
-    ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(bio_st) == 64, sizeof(bio_st)
-assert alignment(bio_st) == 4, alignment(bio_st)
-class bio_f_buffer_ctx_struct(Structure):
-    pass
-bio_f_buffer_ctx_struct._fields_ = [
-    ('ibuf_size', c_int),
-    ('obuf_size', c_int),
-    ('ibuf', STRING),
-    ('ibuf_len', c_int),
-    ('ibuf_off', c_int),
-    ('obuf', STRING),
-    ('obuf_len', c_int),
-    ('obuf_off', c_int),
-]
-assert sizeof(bio_f_buffer_ctx_struct) == 32, sizeof(bio_f_buffer_ctx_struct)
-assert alignment(bio_f_buffer_ctx_struct) == 4, alignment(bio_f_buffer_ctx_struct)
-BIO_F_BUFFER_CTX = bio_f_buffer_ctx_struct
-class hostent(Structure):
-    pass
-hostent._fields_ = [
-]
-class bf_key_st(Structure):
-    pass
-bf_key_st._fields_ = [
-    ('P', c_uint * 18),
-    ('S', c_uint * 1024),
-]
-assert sizeof(bf_key_st) == 4168, sizeof(bf_key_st)
-assert alignment(bf_key_st) == 4, alignment(bf_key_st)
-BF_KEY = bf_key_st
-class bignum_st(Structure):
-    pass
-bignum_st._fields_ = [
-    ('d', POINTER(c_ulong)),
-    ('top', c_int),
-    ('dmax', c_int),
-    ('neg', c_int),
-    ('flags', c_int),
-]
-assert sizeof(bignum_st) == 20, sizeof(bignum_st)
-assert alignment(bignum_st) == 4, alignment(bignum_st)
-BIGNUM = bignum_st
-class bignum_ctx(Structure):
-    pass
-bignum_ctx._fields_ = [
-]
-BN_CTX = bignum_ctx
-class bn_blinding_st(Structure):
-    pass
-bn_blinding_st._fields_ = [
-    ('init', c_int),
-    ('A', POINTER(BIGNUM)),
-    ('Ai', POINTER(BIGNUM)),
-    ('mod', POINTER(BIGNUM)),
-    ('thread_id', c_ulong),
-]
-assert sizeof(bn_blinding_st) == 20, sizeof(bn_blinding_st)
-assert alignment(bn_blinding_st) == 4, alignment(bn_blinding_st)
-BN_BLINDING = bn_blinding_st
-class bn_mont_ctx_st(Structure):
-    pass
-bn_mont_ctx_st._fields_ = [
-    ('ri', c_int),
-    ('RR', BIGNUM),
-    ('N', BIGNUM),
-    ('Ni', BIGNUM),
-    ('n0', c_ulong),
-    ('flags', c_int),
-]
-assert sizeof(bn_mont_ctx_st) == 72, sizeof(bn_mont_ctx_st)
-assert alignment(bn_mont_ctx_st) == 4, alignment(bn_mont_ctx_st)
-BN_MONT_CTX = bn_mont_ctx_st
-class bn_recp_ctx_st(Structure):
-    pass
-bn_recp_ctx_st._fields_ = [
-    ('N', BIGNUM),
-    ('Nr', BIGNUM),
-    ('num_bits', c_int),
-    ('shift', c_int),
-    ('flags', c_int),
-]
-assert sizeof(bn_recp_ctx_st) == 52, sizeof(bn_recp_ctx_st)
-assert alignment(bn_recp_ctx_st) == 4, alignment(bn_recp_ctx_st)
-BN_RECP_CTX = bn_recp_ctx_st
-class buf_mem_st(Structure):
-    pass
-buf_mem_st._fields_ = [
-    ('length', c_int),
-    ('data', STRING),
-    ('max', c_int),
-]
-assert sizeof(buf_mem_st) == 12, sizeof(buf_mem_st)
-assert alignment(buf_mem_st) == 4, alignment(buf_mem_st)
-BUF_MEM = buf_mem_st
-class cast_key_st(Structure):
-    pass
-cast_key_st._fields_ = [
-    ('data', c_ulong * 32),
-    ('short_key', c_int),
-]
-assert sizeof(cast_key_st) == 132, sizeof(cast_key_st)
-assert alignment(cast_key_st) == 4, alignment(cast_key_st)
-CAST_KEY = cast_key_st
-class comp_method_st(Structure):
-    pass
-comp_method_st._fields_ = [
-    ('type', c_int),
-    ('name', STRING),
-    ('init', CFUNCTYPE(c_int)),
-    ('finish', CFUNCTYPE(None)),
-    ('compress', CFUNCTYPE(c_int)),
-    ('expand', CFUNCTYPE(c_int)),
-    ('ctrl', CFUNCTYPE(c_long)),
-    ('callback_ctrl', CFUNCTYPE(c_long)),
-]
-assert sizeof(comp_method_st) == 32, sizeof(comp_method_st)
-assert alignment(comp_method_st) == 4, alignment(comp_method_st)
-COMP_METHOD = comp_method_st
-class comp_ctx_st(Structure):
-    pass
-comp_ctx_st._fields_ = [
-    ('meth', POINTER(COMP_METHOD)),
-    ('compress_in', c_ulong),
-    ('compress_out', c_ulong),
-    ('expand_in', c_ulong),
-    ('expand_out', c_ulong),
-    ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(comp_ctx_st) == 28, sizeof(comp_ctx_st)
-assert alignment(comp_ctx_st) == 4, alignment(comp_ctx_st)
-COMP_CTX = comp_ctx_st
-class CRYPTO_dynlock_value(Structure):
-    pass
-CRYPTO_dynlock_value._fields_ = [
-]
-class CRYPTO_dynlock(Structure):
-    pass
-CRYPTO_dynlock._fields_ = [
-    ('references', c_int),
-    ('data', POINTER(CRYPTO_dynlock_value)),
-]
-assert sizeof(CRYPTO_dynlock) == 8, sizeof(CRYPTO_dynlock)
-assert alignment(CRYPTO_dynlock) == 4, alignment(CRYPTO_dynlock)
-BIO_dummy = bio_st
-CRYPTO_EX_new = CFUNCTYPE(c_int, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
-CRYPTO_EX_free = CFUNCTYPE(None, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
-CRYPTO_EX_dup = CFUNCTYPE(c_int, POINTER(CRYPTO_EX_DATA), POINTER(CRYPTO_EX_DATA), c_void_p, c_int, c_long, c_void_p)
-class crypto_ex_data_func_st(Structure):
-    pass
-crypto_ex_data_func_st._fields_ = [
-    ('argl', c_long),
-    ('argp', c_void_p),
-    ('new_func', POINTER(CRYPTO_EX_new)),
-    ('free_func', POINTER(CRYPTO_EX_free)),
-    ('dup_func', POINTER(CRYPTO_EX_dup)),
-]
-assert sizeof(crypto_ex_data_func_st) == 20, sizeof(crypto_ex_data_func_st)
-assert alignment(crypto_ex_data_func_st) == 4, alignment(crypto_ex_data_func_st)
-CRYPTO_EX_DATA_FUNCS = crypto_ex_data_func_st
-class st_CRYPTO_EX_DATA_IMPL(Structure):
-    pass
-CRYPTO_EX_DATA_IMPL = st_CRYPTO_EX_DATA_IMPL
-st_CRYPTO_EX_DATA_IMPL._fields_ = [
-]
-CRYPTO_MEM_LEAK_CB = CFUNCTYPE(c_void_p, c_ulong, STRING, c_int, c_int, c_void_p)
-DES_cblock = c_ubyte * 8
-const_DES_cblock = c_ubyte * 8
-class DES_ks(Structure):
-    pass
-class N6DES_ks3DOLLAR_9E(Union):
-    pass
-N6DES_ks3DOLLAR_9E._fields_ = [
-    ('cblock', DES_cblock),
-    ('deslong', c_ulong * 2),
-]
-assert sizeof(N6DES_ks3DOLLAR_9E) == 8, sizeof(N6DES_ks3DOLLAR_9E)
-assert alignment(N6DES_ks3DOLLAR_9E) == 4, alignment(N6DES_ks3DOLLAR_9E)
-DES_ks._fields_ = [
-    ('ks', N6DES_ks3DOLLAR_9E * 16),
-]
-assert sizeof(DES_ks) == 128, sizeof(DES_ks)
-assert alignment(DES_ks) == 4, alignment(DES_ks)
-DES_key_schedule = DES_ks
-_ossl_old_des_cblock = c_ubyte * 8
-class _ossl_old_des_ks_struct(Structure):
-    pass
-class N23_ossl_old_des_ks_struct4DOLLAR_10E(Union):
-    pass
-N23_ossl_old_des_ks_struct4DOLLAR_10E._fields_ = [
-    ('_', _ossl_old_des_cblock),
-    ('pad', c_ulong * 2),
-]
-assert sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 8, sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E)
-assert alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 4, alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E)
-_ossl_old_des_ks_struct._fields_ = [
-    ('ks', N23_ossl_old_des_ks_struct4DOLLAR_10E),
-]
-assert sizeof(_ossl_old_des_ks_struct) == 8, sizeof(_ossl_old_des_ks_struct)
-assert alignment(_ossl_old_des_ks_struct) == 4, alignment(_ossl_old_des_ks_struct)
-_ossl_old_des_key_schedule = _ossl_old_des_ks_struct * 16
-class dh_st(Structure):
-    pass
-DH = dh_st
-class dh_method(Structure):
-    pass
-dh_method._fields_ = [
-    ('name', STRING),
-    ('generate_key', CFUNCTYPE(c_int, POINTER(DH))),
-    ('compute_key', CFUNCTYPE(c_int, POINTER(c_ubyte), POINTER(BIGNUM), POINTER(DH))),
-    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DH), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('init', CFUNCTYPE(c_int, POINTER(DH))),
-    ('finish', CFUNCTYPE(c_int, POINTER(DH))),
-    ('flags', c_int),
-    ('app_data', STRING),
-]
-assert sizeof(dh_method) == 32, sizeof(dh_method)
-assert alignment(dh_method) == 4, alignment(dh_method)
-DH_METHOD = dh_method
-class engine_st(Structure):
-    pass
-ENGINE = engine_st
-dh_st._fields_ = [
-    ('pad', c_int),
-    ('version', c_int),
-    ('p', POINTER(BIGNUM)),
-    ('g', POINTER(BIGNUM)),
-    ('length', c_long),
-    ('pub_key', POINTER(BIGNUM)),
-    ('priv_key', POINTER(BIGNUM)),
-    ('flags', c_int),
-    ('method_mont_p', STRING),
-    ('q', POINTER(BIGNUM)),
-    ('j', POINTER(BIGNUM)),
-    ('seed', POINTER(c_ubyte)),
-    ('seedlen', c_int),
-    ('counter', POINTER(BIGNUM)),
-    ('references', c_int),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('meth', POINTER(DH_METHOD)),
-    ('engine', POINTER(ENGINE)),
-]
-assert sizeof(dh_st) == 76, sizeof(dh_st)
-assert alignment(dh_st) == 4, alignment(dh_st)
-class dsa_st(Structure):
-    pass
-DSA = dsa_st
-class DSA_SIG_st(Structure):
-    pass
-DSA_SIG_st._fields_ = [
-    ('r', POINTER(BIGNUM)),
-    ('s', POINTER(BIGNUM)),
-]
-assert sizeof(DSA_SIG_st) == 8, sizeof(DSA_SIG_st)
-assert alignment(DSA_SIG_st) == 4, alignment(DSA_SIG_st)
-DSA_SIG = DSA_SIG_st
-class dsa_method(Structure):
-    pass
-dsa_method._fields_ = [
-    ('name', STRING),
-    ('dsa_do_sign', CFUNCTYPE(POINTER(DSA_SIG), POINTER(c_ubyte), c_int, POINTER(DSA))),
-    ('dsa_sign_setup', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BN_CTX), POINTER(POINTER(BIGNUM)), POINTER(POINTER(BIGNUM)))),
-    ('dsa_do_verify', CFUNCTYPE(c_int, POINTER(c_ubyte), c_int, POINTER(DSA_SIG), POINTER(DSA))),
-    ('dsa_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('init', CFUNCTYPE(c_int, POINTER(DSA))),
-    ('finish', CFUNCTYPE(c_int, POINTER(DSA))),
-    ('flags', c_int),
-    ('app_data', STRING),
-]
-assert sizeof(dsa_method) == 40, sizeof(dsa_method)
-assert alignment(dsa_method) == 4, alignment(dsa_method)
-DSA_METHOD = dsa_method
-dsa_st._fields_ = [
-    ('pad', c_int),
-    ('version', c_long),
-    ('write_params', c_int),
-    ('p', POINTER(BIGNUM)),
-    ('q', POINTER(BIGNUM)),
-    ('g', POINTER(BIGNUM)),
-    ('pub_key', POINTER(BIGNUM)),
-    ('priv_key', POINTER(BIGNUM)),
-    ('kinv', POINTER(BIGNUM)),
-    ('r', POINTER(BIGNUM)),
-    ('flags', c_int),
-    ('method_mont_p', STRING),
-    ('references', c_int),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('meth', POINTER(DSA_METHOD)),
-    ('engine', POINTER(ENGINE)),
-]
-assert sizeof(dsa_st) == 68, sizeof(dsa_st)
-assert alignment(dsa_st) == 4, alignment(dsa_st)
-class evp_pkey_st(Structure):
-    pass
-class N11evp_pkey_st4DOLLAR_12E(Union):
-    pass
-class rsa_st(Structure):
-    pass
-N11evp_pkey_st4DOLLAR_12E._fields_ = [
-    ('ptr', STRING),
-    ('rsa', POINTER(rsa_st)),
-    ('dsa', POINTER(dsa_st)),
-    ('dh', POINTER(dh_st)),
-]
-assert sizeof(N11evp_pkey_st4DOLLAR_12E) == 4, sizeof(N11evp_pkey_st4DOLLAR_12E)
-assert alignment(N11evp_pkey_st4DOLLAR_12E) == 4, alignment(N11evp_pkey_st4DOLLAR_12E)
-evp_pkey_st._fields_ = [
-    ('type', c_int),
-    ('save_type', c_int),
-    ('references', c_int),
-    ('pkey', N11evp_pkey_st4DOLLAR_12E),
-    ('save_parameters', c_int),
-    ('attributes', POINTER(STACK)),
-]
-assert sizeof(evp_pkey_st) == 24, sizeof(evp_pkey_st)
-assert alignment(evp_pkey_st) == 4, alignment(evp_pkey_st)
-class env_md_st(Structure):
-    pass
-class env_md_ctx_st(Structure):
-    pass
-EVP_MD_CTX = env_md_ctx_st
-env_md_st._fields_ = [
-    ('type', c_int),
-    ('pkey_type', c_int),
-    ('md_size', c_int),
-    ('flags', c_ulong),
-    ('init', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
-    ('update', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), c_void_p, c_ulong)),
-    ('final', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(c_ubyte))),
-    ('copy', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(EVP_MD_CTX))),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
-    ('sign', CFUNCTYPE(c_int)),
-    ('verify', CFUNCTYPE(c_int)),
-    ('required_pkey_type', c_int * 5),
-    ('block_size', c_int),
-    ('ctx_size', c_int),
-]
-assert sizeof(env_md_st) == 72, sizeof(env_md_st)
-assert alignment(env_md_st) == 4, alignment(env_md_st)
-EVP_MD = env_md_st
-env_md_ctx_st._fields_ = [
-    ('digest', POINTER(EVP_MD)),
-    ('engine', POINTER(ENGINE)),
-    ('flags', c_ulong),
-    ('md_data', c_void_p),
-]
-assert sizeof(env_md_ctx_st) == 16, sizeof(env_md_ctx_st)
-assert alignment(env_md_ctx_st) == 4, alignment(env_md_ctx_st)
-class evp_cipher_st(Structure):
-    pass
-class evp_cipher_ctx_st(Structure):
-    pass
-EVP_CIPHER_CTX = evp_cipher_ctx_st
-evp_cipher_st._fields_ = [
-    ('nid', c_int),
-    ('block_size', c_int),
-    ('key_len', c_int),
-    ('iv_len', c_int),
-    ('flags', c_ulong),
-    ('init', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_int)),
-    ('do_cipher', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_uint)),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX))),
-    ('ctx_size', c_int),
-    ('set_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
-    ('get_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
-    ('ctrl', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), c_int, c_int, c_void_p)),
-    ('app_data', c_void_p),
-]
-assert sizeof(evp_cipher_st) == 52, sizeof(evp_cipher_st)
-assert alignment(evp_cipher_st) == 4, alignment(evp_cipher_st)
-class evp_cipher_info_st(Structure):
-    pass
-EVP_CIPHER = evp_cipher_st
-evp_cipher_info_st._fields_ = [
-    ('cipher', POINTER(EVP_CIPHER)),
-    ('iv', c_ubyte * 16),
-]
-assert sizeof(evp_cipher_info_st) == 20, sizeof(evp_cipher_info_st)
-assert alignment(evp_cipher_info_st) == 4, alignment(evp_cipher_info_st)
-EVP_CIPHER_INFO = evp_cipher_info_st
-evp_cipher_ctx_st._fields_ = [
-    ('cipher', POINTER(EVP_CIPHER)),
-    ('engine', POINTER(ENGINE)),
-    ('encrypt', c_int),
-    ('buf_len', c_int),
-    ('oiv', c_ubyte * 16),
-    ('iv', c_ubyte * 16),
-    ('buf', c_ubyte * 32),
-    ('num', c_int),
-    ('app_data', c_void_p),
-    ('key_len', c_int),
-    ('flags', c_ulong),
-    ('cipher_data', c_void_p),
-    ('final_used', c_int),
-    ('block_mask', c_int),
-    ('final', c_ubyte * 32),
-]
-assert sizeof(evp_cipher_ctx_st) == 140, sizeof(evp_cipher_ctx_st)
-assert alignment(evp_cipher_ctx_st) == 4, alignment(evp_cipher_ctx_st)
-class evp_Encode_Ctx_st(Structure):
-    pass
-evp_Encode_Ctx_st._fields_ = [
-    ('num', c_int),
-    ('length', c_int),
-    ('enc_data', c_ubyte * 80),
-    ('line_num', c_int),
-    ('expect_nl', c_int),
-]
-assert sizeof(evp_Encode_Ctx_st) == 96, sizeof(evp_Encode_Ctx_st)
-assert alignment(evp_Encode_Ctx_st) == 4, alignment(evp_Encode_Ctx_st)
-EVP_ENCODE_CTX = evp_Encode_Ctx_st
-EVP_PBE_KEYGEN = CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), STRING, c_int, POINTER(ASN1_TYPE), POINTER(EVP_CIPHER), POINTER(EVP_MD), c_int)
-class lhash_node_st(Structure):
-    pass
-lhash_node_st._fields_ = [
-    ('data', c_void_p),
-    ('next', POINTER(lhash_node_st)),
-    ('hash', c_ulong),
-]
-assert sizeof(lhash_node_st) == 12, sizeof(lhash_node_st)
-assert alignment(lhash_node_st) == 4, alignment(lhash_node_st)
-LHASH_NODE = lhash_node_st
-LHASH_COMP_FN_TYPE = CFUNCTYPE(c_int, c_void_p, c_void_p)
-LHASH_HASH_FN_TYPE = CFUNCTYPE(c_ulong, c_void_p)
-LHASH_DOALL_FN_TYPE = CFUNCTYPE(None, c_void_p)
-LHASH_DOALL_ARG_FN_TYPE = CFUNCTYPE(None, c_void_p, c_void_p)
-class lhash_st(Structure):
-    pass
-lhash_st._fields_ = [
-    ('b', POINTER(POINTER(LHASH_NODE))),
-    ('comp', LHASH_COMP_FN_TYPE),
-    ('hash', LHASH_HASH_FN_TYPE),
-    ('num_nodes', c_uint),
-    ('num_alloc_nodes', c_uint),
-    ('p', c_uint),
-    ('pmax', c_uint),
-    ('up_load', c_ulong),
-    ('down_load', c_ulong),
-    ('num_items', c_ulong),
-    ('num_expands', c_ulong),
-    ('num_expand_reallocs', c_ulong),
-    ('num_contracts', c_ulong),
-    ('num_contract_reallocs', c_ulong),
-    ('num_hash_calls', c_ulong),
-    ('num_comp_calls', c_ulong),
-    ('num_insert', c_ulong),
-    ('num_replace', c_ulong),
-    ('num_delete', c_ulong),
-    ('num_no_delete', c_ulong),
-    ('num_retrieve', c_ulong),
-    ('num_retrieve_miss', c_ulong),
-    ('num_hash_comps', c_ulong),
-    ('error', c_int),
-]
-assert sizeof(lhash_st) == 96, sizeof(lhash_st)
-assert alignment(lhash_st) == 4, alignment(lhash_st)
-LHASH = lhash_st
-class MD2state_st(Structure):
-    pass
-MD2state_st._fields_ = [
-    ('num', c_int),
-    ('data', c_ubyte * 16),
-    ('cksm', c_uint * 16),
-    ('state', c_uint * 16),
-]
-assert sizeof(MD2state_st) == 148, sizeof(MD2state_st)
-assert alignment(MD2state_st) == 4, alignment(MD2state_st)
-MD2_CTX = MD2state_st
-class MD4state_st(Structure):
-    pass
-MD4state_st._fields_ = [
-    ('A', c_uint),
-    ('B', c_uint),
-    ('C', c_uint),
-    ('D', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(MD4state_st) == 92, sizeof(MD4state_st)
-assert alignment(MD4state_st) == 4, alignment(MD4state_st)
-MD4_CTX = MD4state_st
-class MD5state_st(Structure):
-    pass
-MD5state_st._fields_ = [
-    ('A', c_uint),
-    ('B', c_uint),
-    ('C', c_uint),
-    ('D', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(MD5state_st) == 92, sizeof(MD5state_st)
-assert alignment(MD5state_st) == 4, alignment(MD5state_st)
-MD5_CTX = MD5state_st
-class mdc2_ctx_st(Structure):
-    pass
-mdc2_ctx_st._fields_ = [
-    ('num', c_int),
-    ('data', c_ubyte * 8),
-    ('h', DES_cblock),
-    ('hh', DES_cblock),
-    ('pad_type', c_int),
-]
-assert sizeof(mdc2_ctx_st) == 32, sizeof(mdc2_ctx_st)
-assert alignment(mdc2_ctx_st) == 4, alignment(mdc2_ctx_st)
-MDC2_CTX = mdc2_ctx_st
-class obj_name_st(Structure):
-    pass
-obj_name_st._fields_ = [
-    ('type', c_int),
-    ('alias', c_int),
-    ('name', STRING),
-    ('data', STRING),
-]
-assert sizeof(obj_name_st) == 16, sizeof(obj_name_st)
-assert alignment(obj_name_st) == 4, alignment(obj_name_st)
-OBJ_NAME = obj_name_st
-ASN1_TIME = asn1_string_st
-ASN1_NULL = c_int
-EVP_PKEY = evp_pkey_st
-class x509_st(Structure):
-    pass
-X509 = x509_st
-class X509_algor_st(Structure):
-    pass
-X509_ALGOR = X509_algor_st
-class X509_crl_st(Structure):
-    pass
-X509_CRL = X509_crl_st
-class X509_name_st(Structure):
-    pass
-X509_NAME = X509_name_st
-class x509_store_st(Structure):
-    pass
-X509_STORE = x509_store_st
-class x509_store_ctx_st(Structure):
-    pass
-X509_STORE_CTX = x509_store_ctx_st
-engine_st._fields_ = [
-]
-class PEM_Encode_Seal_st(Structure):
-    pass
-PEM_Encode_Seal_st._fields_ = [
-    ('encode', EVP_ENCODE_CTX),
-    ('md', EVP_MD_CTX),
-    ('cipher', EVP_CIPHER_CTX),
-]
-assert sizeof(PEM_Encode_Seal_st) == 252, sizeof(PEM_Encode_Seal_st)
-assert alignment(PEM_Encode_Seal_st) == 4, alignment(PEM_Encode_Seal_st)
-PEM_ENCODE_SEAL_CTX = PEM_Encode_Seal_st
-class pem_recip_st(Structure):
-    pass
-pem_recip_st._fields_ = [
-    ('name', STRING),
-    ('dn', POINTER(X509_NAME)),
-    ('cipher', c_int),
-    ('key_enc', c_int),
-]
-assert sizeof(pem_recip_st) == 16, sizeof(pem_recip_st)
-assert alignment(pem_recip_st) == 4, alignment(pem_recip_st)
-PEM_USER = pem_recip_st
-class pem_ctx_st(Structure):
-    pass
-class N10pem_ctx_st4DOLLAR_16E(Structure):
-    pass
-N10pem_ctx_st4DOLLAR_16E._fields_ = [
-    ('version', c_int),
-    ('mode', c_int),
-]
-assert sizeof(N10pem_ctx_st4DOLLAR_16E) == 8, sizeof(N10pem_ctx_st4DOLLAR_16E)
-assert alignment(N10pem_ctx_st4DOLLAR_16E) == 4, alignment(N10pem_ctx_st4DOLLAR_16E)
-class N10pem_ctx_st4DOLLAR_17E(Structure):
-    pass
-N10pem_ctx_st4DOLLAR_17E._fields_ = [
-    ('cipher', c_int),
-]
-assert sizeof(N10pem_ctx_st4DOLLAR_17E) == 4, sizeof(N10pem_ctx_st4DOLLAR_17E)
-assert alignment(N10pem_ctx_st4DOLLAR_17E) == 4, alignment(N10pem_ctx_st4DOLLAR_17E)
-pem_ctx_st._fields_ = [
-    ('type', c_int),
-    ('proc_type', N10pem_ctx_st4DOLLAR_16E),
-    ('domain', STRING),
-    ('DEK_info', N10pem_ctx_st4DOLLAR_17E),
-    ('originator', POINTER(PEM_USER)),
-    ('num_recipient', c_int),
-    ('recipient', POINTER(POINTER(PEM_USER))),
-    ('x509_chain', POINTER(STACK)),
-    ('md', POINTER(EVP_MD)),
-    ('md_enc', c_int),
-    ('md_len', c_int),
-    ('md_data', STRING),
-    ('dec', POINTER(EVP_CIPHER)),
-    ('key_len', c_int),
-    ('key', POINTER(c_ubyte)),
-    ('data_enc', c_int),
-    ('data_len', c_int),
-    ('data', POINTER(c_ubyte)),
-]
-assert sizeof(pem_ctx_st) == 76, sizeof(pem_ctx_st)
-assert alignment(pem_ctx_st) == 4, alignment(pem_ctx_st)
-PEM_CTX = pem_ctx_st
-pem_password_cb = CFUNCTYPE(c_int, STRING, c_int, c_int, c_void_p)
-class pkcs7_issuer_and_serial_st(Structure):
-    pass
-pkcs7_issuer_and_serial_st._fields_ = [
-    ('issuer', POINTER(X509_NAME)),
-    ('serial', POINTER(ASN1_INTEGER)),
-]
-assert sizeof(pkcs7_issuer_and_serial_st) == 8, sizeof(pkcs7_issuer_and_serial_st)
-assert alignment(pkcs7_issuer_and_serial_st) == 4, alignment(pkcs7_issuer_and_serial_st)
-PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st
-class pkcs7_signer_info_st(Structure):
-    pass
-pkcs7_signer_info_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
-    ('digest_alg', POINTER(X509_ALGOR)),
-    ('auth_attr', POINTER(STACK)),
-    ('digest_enc_alg', POINTER(X509_ALGOR)),
-    ('enc_digest', POINTER(ASN1_OCTET_STRING)),
-    ('unauth_attr', POINTER(STACK)),
-    ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(pkcs7_signer_info_st) == 32, sizeof(pkcs7_signer_info_st)
-assert alignment(pkcs7_signer_info_st) == 4, alignment(pkcs7_signer_info_st)
-PKCS7_SIGNER_INFO = pkcs7_signer_info_st
-class pkcs7_recip_info_st(Structure):
-    pass
-pkcs7_recip_info_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
-    ('key_enc_algor', POINTER(X509_ALGOR)),
-    ('enc_key', POINTER(ASN1_OCTET_STRING)),
-    ('cert', POINTER(X509)),
-]
-assert sizeof(pkcs7_recip_info_st) == 20, sizeof(pkcs7_recip_info_st)
-assert alignment(pkcs7_recip_info_st) == 4, alignment(pkcs7_recip_info_st)
-PKCS7_RECIP_INFO = pkcs7_recip_info_st
-class pkcs7_signed_st(Structure):
-    pass
-class pkcs7_st(Structure):
-    pass
-pkcs7_signed_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('md_algs', POINTER(STACK)),
-    ('cert', POINTER(STACK)),
-    ('crl', POINTER(STACK)),
-    ('signer_info', POINTER(STACK)),
-    ('contents', POINTER(pkcs7_st)),
-]
-assert sizeof(pkcs7_signed_st) == 24, sizeof(pkcs7_signed_st)
-assert alignment(pkcs7_signed_st) == 4, alignment(pkcs7_signed_st)
-PKCS7_SIGNED = pkcs7_signed_st
-class pkcs7_enc_content_st(Structure):
-    pass
-pkcs7_enc_content_st._fields_ = [
-    ('content_type', POINTER(ASN1_OBJECT)),
-    ('algorithm', POINTER(X509_ALGOR)),
-    ('enc_data', POINTER(ASN1_OCTET_STRING)),
-    ('cipher', POINTER(EVP_CIPHER)),
-]
-assert sizeof(pkcs7_enc_content_st) == 16, sizeof(pkcs7_enc_content_st)
-assert alignment(pkcs7_enc_content_st) == 4, alignment(pkcs7_enc_content_st)
-PKCS7_ENC_CONTENT = pkcs7_enc_content_st
-class pkcs7_enveloped_st(Structure):
-    pass
-pkcs7_enveloped_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('recipientinfo', POINTER(STACK)),
-    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-]
-assert sizeof(pkcs7_enveloped_st) == 12, sizeof(pkcs7_enveloped_st)
-assert alignment(pkcs7_enveloped_st) == 4, alignment(pkcs7_enveloped_st)
-PKCS7_ENVELOPE = pkcs7_enveloped_st
-class pkcs7_signedandenveloped_st(Structure):
-    pass
-pkcs7_signedandenveloped_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('md_algs', POINTER(STACK)),
-    ('cert', POINTER(STACK)),
-    ('crl', POINTER(STACK)),
-    ('signer_info', POINTER(STACK)),
-    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-    ('recipientinfo', POINTER(STACK)),
-]
-assert sizeof(pkcs7_signedandenveloped_st) == 28, sizeof(pkcs7_signedandenveloped_st)
-assert alignment(pkcs7_signedandenveloped_st) == 4, alignment(pkcs7_signedandenveloped_st)
-PKCS7_SIGN_ENVELOPE = pkcs7_signedandenveloped_st
-class pkcs7_digest_st(Structure):
-    pass
-pkcs7_digest_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('md', POINTER(X509_ALGOR)),
-    ('contents', POINTER(pkcs7_st)),
-    ('digest', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(pkcs7_digest_st) == 16, sizeof(pkcs7_digest_st)
-assert alignment(pkcs7_digest_st) == 4, alignment(pkcs7_digest_st)
-PKCS7_DIGEST = pkcs7_digest_st
-class pkcs7_encrypted_st(Structure):
-    pass
-pkcs7_encrypted_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-]
-assert sizeof(pkcs7_encrypted_st) == 8, sizeof(pkcs7_encrypted_st)
-assert alignment(pkcs7_encrypted_st) == 4, alignment(pkcs7_encrypted_st)
-PKCS7_ENCRYPT = pkcs7_encrypted_st
-class N8pkcs7_st4DOLLAR_15E(Union):
-    pass
-N8pkcs7_st4DOLLAR_15E._fields_ = [
-    ('ptr', STRING),
-    ('data', POINTER(ASN1_OCTET_STRING)),
-    ('sign', POINTER(PKCS7_SIGNED)),
-    ('enveloped', POINTER(PKCS7_ENVELOPE)),
-    ('signed_and_enveloped', POINTER(PKCS7_SIGN_ENVELOPE)),
-    ('digest', POINTER(PKCS7_DIGEST)),
-    ('encrypted', POINTER(PKCS7_ENCRYPT)),
-    ('other', POINTER(ASN1_TYPE)),
-]
-assert sizeof(N8pkcs7_st4DOLLAR_15E) == 4, sizeof(N8pkcs7_st4DOLLAR_15E)
-assert alignment(N8pkcs7_st4DOLLAR_15E) == 4, alignment(N8pkcs7_st4DOLLAR_15E)
-pkcs7_st._fields_ = [
-    ('asn1', POINTER(c_ubyte)),
-    ('length', c_long),
-    ('state', c_int),
-    ('detached', c_int),
-    ('type', POINTER(ASN1_OBJECT)),
-    ('d', N8pkcs7_st4DOLLAR_15E),
-]
-assert sizeof(pkcs7_st) == 24, sizeof(pkcs7_st)
-assert alignment(pkcs7_st) == 4, alignment(pkcs7_st)
-PKCS7 = pkcs7_st
-class rc2_key_st(Structure):
-    pass
-rc2_key_st._fields_ = [
-    ('data', c_uint * 64),
-]
-assert sizeof(rc2_key_st) == 256, sizeof(rc2_key_st)
-assert alignment(rc2_key_st) == 4, alignment(rc2_key_st)
-RC2_KEY = rc2_key_st
-class rc4_key_st(Structure):
-    pass
-rc4_key_st._fields_ = [
-    ('x', c_ubyte),
-    ('y', c_ubyte),
-    ('data', c_ubyte * 256),
-]
-assert sizeof(rc4_key_st) == 258, sizeof(rc4_key_st)
-assert alignment(rc4_key_st) == 1, alignment(rc4_key_st)
-RC4_KEY = rc4_key_st
-class rc5_key_st(Structure):
-    pass
-rc5_key_st._fields_ = [
-    ('rounds', c_int),
-    ('data', c_ulong * 34),
-]
-assert sizeof(rc5_key_st) == 140, sizeof(rc5_key_st)
-assert alignment(rc5_key_st) == 4, alignment(rc5_key_st)
-RC5_32_KEY = rc5_key_st
-class RIPEMD160state_st(Structure):
-    pass
-RIPEMD160state_st._fields_ = [
-    ('A', c_uint),
-    ('B', c_uint),
-    ('C', c_uint),
-    ('D', c_uint),
-    ('E', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(RIPEMD160state_st) == 96, sizeof(RIPEMD160state_st)
-assert alignment(RIPEMD160state_st) == 4, alignment(RIPEMD160state_st)
-RIPEMD160_CTX = RIPEMD160state_st
-RSA = rsa_st
-class rsa_meth_st(Structure):
-    pass
-rsa_meth_st._fields_ = [
-    ('name', STRING),
-    ('rsa_pub_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_pub_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_priv_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_priv_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(RSA))),
-    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('init', CFUNCTYPE(c_int, POINTER(RSA))),
-    ('finish', CFUNCTYPE(c_int, POINTER(RSA))),
-    ('flags', c_int),
-    ('app_data', STRING),
-    ('rsa_sign', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), POINTER(c_uint), POINTER(RSA))),
-    ('rsa_verify', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), c_uint, POINTER(RSA))),
-]
-assert sizeof(rsa_meth_st) == 52, sizeof(rsa_meth_st)
-assert alignment(rsa_meth_st) == 4, alignment(rsa_meth_st)
-RSA_METHOD = rsa_meth_st
-rsa_st._fields_ = [
-    ('pad', c_int),
-    ('version', c_long),
-    ('meth', POINTER(RSA_METHOD)),
-    ('engine', POINTER(ENGINE)),
-    ('n', POINTER(BIGNUM)),
-    ('e', POINTER(BIGNUM)),
-    ('d', POINTER(BIGNUM)),
-    ('p', POINTER(BIGNUM)),
-    ('q', POINTER(BIGNUM)),
-    ('dmp1', POINTER(BIGNUM)),
-    ('dmq1', POINTER(BIGNUM)),
-    ('iqmp', POINTER(BIGNUM)),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('references', c_int),
-    ('flags', c_int),
-    ('_method_mod_n', POINTER(BN_MONT_CTX)),
-    ('_method_mod_p', POINTER(BN_MONT_CTX)),
-    ('_method_mod_q', POINTER(BN_MONT_CTX)),
-    ('bignum_data', STRING),
-    ('blinding', POINTER(BN_BLINDING)),
-]
-assert sizeof(rsa_st) == 84, sizeof(rsa_st)
-assert alignment(rsa_st) == 4, alignment(rsa_st)
-openssl_fptr = CFUNCTYPE(None)
-class SHAstate_st(Structure):
-    pass
-SHAstate_st._fields_ = [
-    ('h0', c_uint),
-    ('h1', c_uint),
-    ('h2', c_uint),
-    ('h3', c_uint),
-    ('h4', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(SHAstate_st) == 96, sizeof(SHAstate_st)
-assert alignment(SHAstate_st) == 4, alignment(SHAstate_st)
-SHA_CTX = SHAstate_st
-class ssl_st(Structure):
-    pass
-ssl_crock_st = POINTER(ssl_st)
-class ssl_cipher_st(Structure):
-    pass
-ssl_cipher_st._fields_ = [
-    ('valid', c_int),
-    ('name', STRING),
-    ('id', c_ulong),
-    ('algorithms', c_ulong),
-    ('algo_strength', c_ulong),
-    ('algorithm2', c_ulong),
-    ('strength_bits', c_int),
-    ('alg_bits', c_int),
-    ('mask', c_ulong),
-    ('mask_strength', c_ulong),
-]
-assert sizeof(ssl_cipher_st) == 40, sizeof(ssl_cipher_st)
-assert alignment(ssl_cipher_st) == 4, alignment(ssl_cipher_st)
-SSL_CIPHER = ssl_cipher_st
-SSL = ssl_st
-class ssl_ctx_st(Structure):
-    pass
-SSL_CTX = ssl_ctx_st
-class ssl_method_st(Structure):
-    pass
-class ssl3_enc_method(Structure):
-    pass
-ssl_method_st._fields_ = [
-    ('version', c_int),
-    ('ssl_new', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_clear', CFUNCTYPE(None, POINTER(SSL))),
-    ('ssl_free', CFUNCTYPE(None, POINTER(SSL))),
-    ('ssl_accept', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_connect', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_read', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
-    ('ssl_peek', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
-    ('ssl_write', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
-    ('ssl_shutdown', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_renegotiate', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_renegotiate_check', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, c_long, c_void_p)),
-    ('ssl_ctx_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, c_long, c_void_p)),
-    ('get_cipher_by_char', CFUNCTYPE(POINTER(SSL_CIPHER), POINTER(c_ubyte))),
-    ('put_cipher_by_char', CFUNCTYPE(c_int, POINTER(SSL_CIPHER), POINTER(c_ubyte))),
-    ('ssl_pending', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('num_ciphers', CFUNCTYPE(c_int)),
-    ('get_cipher', CFUNCTYPE(POINTER(SSL_CIPHER), c_uint)),
-    ('get_ssl_method', CFUNCTYPE(POINTER(ssl_method_st), c_int)),
-    ('get_timeout', CFUNCTYPE(c_long)),
-    ('ssl3_enc', POINTER(ssl3_enc_method)),
-    ('ssl_version', CFUNCTYPE(c_int)),
-    ('ssl_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, CFUNCTYPE(None))),
-    ('ssl_ctx_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, CFUNCTYPE(None))),
-]
-assert sizeof(ssl_method_st) == 100, sizeof(ssl_method_st)
-assert alignment(ssl_method_st) == 4, alignment(ssl_method_st)
-ssl3_enc_method._fields_ = [
-]
-SSL_METHOD = ssl_method_st
-class ssl_session_st(Structure):
-    pass
-class sess_cert_st(Structure):
-    pass
-ssl_session_st._fields_ = [
-    ('ssl_version', c_int),
-    ('key_arg_length', c_uint),
-    ('key_arg', c_ubyte * 8),
-    ('master_key_length', c_int),
-    ('master_key', c_ubyte * 48),
-    ('session_id_length', c_uint),
-    ('session_id', c_ubyte * 32),
-    ('sid_ctx_length', c_uint),
-    ('sid_ctx', c_ubyte * 32),
-    ('not_resumable', c_int),
-    ('sess_cert', POINTER(sess_cert_st)),
-    ('peer', POINTER(X509)),
-    ('verify_result', c_long),
-    ('references', c_int),
-    ('timeout', c_long),
-    ('time', c_long),
-    ('compress_meth', c_int),
-    ('cipher', POINTER(SSL_CIPHER)),
-    ('cipher_id', c_ulong),
-    ('ciphers', POINTER(STACK)),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('prev', POINTER(ssl_session_st)),
-    ('next', POINTER(ssl_session_st)),
-]
-assert sizeof(ssl_session_st) == 200, sizeof(ssl_session_st)
-assert alignment(ssl_session_st) == 4, alignment(ssl_session_st)
-sess_cert_st._fields_ = [
-]
-SSL_SESSION = ssl_session_st
-GEN_SESSION_CB = CFUNCTYPE(c_int, POINTER(SSL), POINTER(c_ubyte), POINTER(c_uint))
-class ssl_comp_st(Structure):
-    pass
-ssl_comp_st._fields_ = [
-    ('id', c_int),
-    ('name', STRING),
-    ('method', POINTER(COMP_METHOD)),
-]
-assert sizeof(ssl_comp_st) == 12, sizeof(ssl_comp_st)
-assert alignment(ssl_comp_st) == 4, alignment(ssl_comp_st)
-SSL_COMP = ssl_comp_st
-class N10ssl_ctx_st4DOLLAR_18E(Structure):
-    pass
-N10ssl_ctx_st4DOLLAR_18E._fields_ = [
-    ('sess_connect', c_int),
-    ('sess_connect_renegotiate', c_int),
-    ('sess_connect_good', c_int),
-    ('sess_accept', c_int),
-    ('sess_accept_renegotiate', c_int),
-    ('sess_accept_good', c_int),
-    ('sess_miss', c_int),
-    ('sess_timeout', c_int),
-    ('sess_cache_full', c_int),
-    ('sess_hit', c_int),
-    ('sess_cb_hit', c_int),
-]
-assert sizeof(N10ssl_ctx_st4DOLLAR_18E) == 44, sizeof(N10ssl_ctx_st4DOLLAR_18E)
-assert alignment(N10ssl_ctx_st4DOLLAR_18E) == 4, alignment(N10ssl_ctx_st4DOLLAR_18E)
-class cert_st(Structure):
-    pass
-ssl_ctx_st._fields_ = [
-    ('method', POINTER(SSL_METHOD)),
-    ('cipher_list', POINTER(STACK)),
-    ('cipher_list_by_id', POINTER(STACK)),
-    ('cert_store', POINTER(x509_store_st)),
-    ('sessions', POINTER(lhash_st)),
-    ('session_cache_size', c_ulong),
-    ('session_cache_head', POINTER(ssl_session_st)),
-    ('session_cache_tail', POINTER(ssl_session_st)),
-    ('session_cache_mode', c_int),
-    ('session_timeout', c_long),
-    ('new_session_cb', CFUNCTYPE(c_int, POINTER(ssl_st), POINTER(SSL_SESSION))),
-    ('remove_session_cb', CFUNCTYPE(None, POINTER(ssl_ctx_st), POINTER(SSL_SESSION))),
-    ('get_session_cb', CFUNCTYPE(POINTER(SSL_SESSION), POINTER(ssl_st), POINTER(c_ubyte), c_int, POINTER(c_int))),
-    ('stats', N10ssl_ctx_st4DOLLAR_18E),
-    ('references', c_int),
-    ('app_verify_callback', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), c_void_p)),
-    ('app_verify_arg', c_void_p),
-    ('default_passwd_callback', POINTER(pem_password_cb)),
-    ('default_passwd_callback_userdata', c_void_p),
-    ('client_cert_cb', CFUNCTYPE(c_int, POINTER(SSL), POINTER(POINTER(X509)), POINTER(POINTER(EVP_PKEY)))),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('rsa_md5', POINTER(EVP_MD)),
-    ('md5', POINTER(EVP_MD)),
-    ('sha1', POINTER(EVP_MD)),
-    ('extra_certs', POINTER(STACK)),
-    ('comp_methods', POINTER(STACK)),
-    ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
-    ('client_CA', POINTER(STACK)),
-    ('options', c_ulong),
-    ('mode', c_ulong),
-    ('max_cert_list', c_long),
-    ('cert', POINTER(cert_st)),
-    ('read_ahead', c_int),
-    ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
-    ('msg_callback_arg', c_void_p),
-    ('verify_mode', c_int),
-    ('verify_depth', c_int),
-    ('sid_ctx_length', c_uint),
-    ('sid_ctx', c_ubyte * 32),
-    ('default_verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('generate_session_id', GEN_SESSION_CB),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('quiet_shutdown', c_int),
-]
-assert sizeof(ssl_ctx_st) == 248, sizeof(ssl_ctx_st)
-assert alignment(ssl_ctx_st) == 4, alignment(ssl_ctx_st)
-cert_st._fields_ = [
-]
-class ssl2_state_st(Structure):
-    pass
-class ssl3_state_st(Structure):
-    pass
-ssl_st._fields_ = [
-    ('version', c_int),
-    ('type', c_int),
-    ('method', POINTER(SSL_METHOD)),
-    ('rbio', POINTER(BIO)),
-    ('wbio', POINTER(BIO)),
-    ('bbio', POINTER(BIO)),
-    ('rwstate', c_int),
-    ('in_handshake', c_int),
-    ('handshake_func', CFUNCTYPE(c_int)),
-    ('server', c_int),
-    ('new_session', c_int),
-    ('quiet_shutdown', c_int),
-    ('shutdown', c_int),
-    ('state', c_int),
-    ('rstate', c_int),
-    ('init_buf', POINTER(BUF_MEM)),
-    ('init_msg', c_void_p),
-    ('init_num', c_int),
-    ('init_off', c_int),
-    ('packet', POINTER(c_ubyte)),
-    ('packet_length', c_uint),
-    ('s2', POINTER(ssl2_state_st)),
-    ('s3', POINTER(ssl3_state_st)),
-    ('read_ahead', c_int),
-    ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
-    ('msg_callback_arg', c_void_p),
-    ('hit', c_int),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('cipher_list', POINTER(STACK)),
-    ('cipher_list_by_id', POINTER(STACK)),
-    ('enc_read_ctx', POINTER(EVP_CIPHER_CTX)),
-    ('read_hash', POINTER(EVP_MD)),
-    ('expand', POINTER(COMP_CTX)),
-    ('enc_write_ctx', POINTER(EVP_CIPHER_CTX)),
-    ('write_hash', POINTER(EVP_MD)),
-    ('compress', POINTER(COMP_CTX)),
-    ('cert', POINTER(cert_st)),
-    ('sid_ctx_length', c_uint),
-    ('sid_ctx', c_ubyte * 32),
-    ('session', POINTER(SSL_SESSION)),
-    ('generate_session_id', GEN_SESSION_CB),
-    ('verify_mode', c_int),
-    ('verify_depth', c_int),
-    ('verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
-    ('error', c_int),
-    ('error_code', c_int),
-    ('ctx', POINTER(SSL_CTX)),
-    ('debug', c_int),
-    ('verify_result', c_long),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('client_CA', POINTER(STACK)),
-    ('references', c_int),
-    ('options', c_ulong),
-    ('mode', c_ulong),
-    ('max_cert_list', c_long),
-    ('first_packet', c_int),
-    ('client_version', c_int),
-]
-assert sizeof(ssl_st) == 268, sizeof(ssl_st)
-assert alignment(ssl_st) == 4, alignment(ssl_st)
-class N13ssl2_state_st4DOLLAR_19E(Structure):
-    pass
-N13ssl2_state_st4DOLLAR_19E._fields_ = [
-    ('conn_id_length', c_uint),
-    ('cert_type', c_uint),
-    ('cert_length', c_uint),
-    ('csl', c_uint),
-    ('clear', c_uint),
-    ('enc', c_uint),
-    ('ccl', c_ubyte * 32),
-    ('cipher_spec_length', c_uint),
-    ('session_id_length', c_uint),
-    ('clen', c_uint),
-    ('rlen', c_uint),
-]
-assert sizeof(N13ssl2_state_st4DOLLAR_19E) == 72, sizeof(N13ssl2_state_st4DOLLAR_19E)
-assert alignment(N13ssl2_state_st4DOLLAR_19E) == 4, alignment(N13ssl2_state_st4DOLLAR_19E)
-ssl2_state_st._fields_ = [
-    ('three_byte_header', c_int),
-    ('clear_text', c_int),
-    ('escape', c_int),
-    ('ssl2_rollback', c_int),
-    ('wnum', c_uint),
-    ('wpend_tot', c_int),
-    ('wpend_buf', POINTER(c_ubyte)),
-    ('wpend_off', c_int),
-    ('wpend_len', c_int),
-    ('wpend_ret', c_int),
-    ('rbuf_left', c_int),
-    ('rbuf_offs', c_int),
-    ('rbuf', POINTER(c_ubyte)),
-    ('wbuf', POINTER(c_ubyte)),
-    ('write_ptr', POINTER(c_ubyte)),
-    ('padding', c_uint),
-    ('rlength', c_uint),
-    ('ract_data_length', c_int),
-    ('wlength', c_uint),
-    ('wact_data_length', c_int),
-    ('ract_data', POINTER(c_ubyte)),
-    ('wact_data', POINTER(c_ubyte)),
-    ('mac_data', POINTER(c_ubyte)),
-    ('read_key', POINTER(c_ubyte)),
-    ('write_key', POINTER(c_ubyte)),
-    ('challenge_length', c_uint),
-    ('challenge', c_ubyte * 32),
-    ('conn_id_length', c_uint),
-    ('conn_id', c_ubyte * 16),
-    ('key_material_length', c_uint),
-    ('key_material', c_ubyte * 48),
-    ('read_sequence', c_ulong),
-    ('write_sequence', c_ulong),
-    ('tmp', N13ssl2_state_st4DOLLAR_19E),
-]
-assert sizeof(ssl2_state_st) == 288, sizeof(ssl2_state_st)
-assert alignment(ssl2_state_st) == 4, alignment(ssl2_state_st)
-SSL2_STATE = ssl2_state_st
-class ssl3_record_st(Structure):
-    pass
-ssl3_record_st._fields_ = [
-    ('type', c_int),
-    ('length', c_uint),
-    ('off', c_uint),
-    ('data', POINTER(c_ubyte)),
-    ('input', POINTER(c_ubyte)),
-    ('comp', POINTER(c_ubyte)),
-]
-assert sizeof(ssl3_record_st) == 24, sizeof(ssl3_record_st)
-assert alignment(ssl3_record_st) == 4, alignment(ssl3_record_st)
-SSL3_RECORD = ssl3_record_st
-class ssl3_buffer_st(Structure):
-    pass
-size_t = __darwin_size_t
-ssl3_buffer_st._fields_ = [
-    ('buf', POINTER(c_ubyte)),
-    ('len', size_t),
-    ('offset', c_int),
-    ('left', c_int),
-]
-assert sizeof(ssl3_buffer_st) == 16, sizeof(ssl3_buffer_st)
-assert alignment(ssl3_buffer_st) == 4, alignment(ssl3_buffer_st)
-SSL3_BUFFER = ssl3_buffer_st
-class N13ssl3_state_st4DOLLAR_20E(Structure):
-    pass
-N13ssl3_state_st4DOLLAR_20E._fields_ = [
-    ('cert_verify_md', c_ubyte * 72),
-    ('finish_md', c_ubyte * 72),
-    ('finish_md_len', c_int),
-    ('peer_finish_md', c_ubyte * 72),
-    ('peer_finish_md_len', c_int),
-    ('message_size', c_ulong),
-    ('message_type', c_int),
-    ('new_cipher', POINTER(SSL_CIPHER)),
-    ('dh', POINTER(DH)),
-    ('next_state', c_int),
-    ('reuse_message', c_int),
-    ('cert_req', c_int),
-    ('ctype_num', c_int),
-    ('ctype', c_char * 7),
-    ('ca_names', POINTER(STACK)),
-    ('use_rsa_tmp', c_int),
-    ('key_block_length', c_int),
-    ('key_block', POINTER(c_ubyte)),
-    ('new_sym_enc', POINTER(EVP_CIPHER)),
-    ('new_hash', POINTER(EVP_MD)),
-    ('new_compression', POINTER(SSL_COMP)),
-    ('cert_request', c_int),
-]
-assert sizeof(N13ssl3_state_st4DOLLAR_20E) == 296, sizeof(N13ssl3_state_st4DOLLAR_20E)
-assert alignment(N13ssl3_state_st4DOLLAR_20E) == 4, alignment(N13ssl3_state_st4DOLLAR_20E)
-ssl3_state_st._fields_ = [
-    ('flags', c_long),
-    ('delay_buf_pop_ret', c_int),
-    ('read_sequence', c_ubyte * 8),
-    ('read_mac_secret', c_ubyte * 36),
-    ('write_sequence', c_ubyte * 8),
-    ('write_mac_secret', c_ubyte * 36),
-    ('server_random', c_ubyte * 32),
-    ('client_random', c_ubyte * 32),
-    ('need_empty_fragments', c_int),
-    ('empty_fragment_done', c_int),
-    ('rbuf', SSL3_BUFFER),
-    ('wbuf', SSL3_BUFFER),
-    ('rrec', SSL3_RECORD),
-    ('wrec', SSL3_RECORD),
-    ('alert_fragment', c_ubyte * 2),
-    ('alert_fragment_len', c_uint),
-    ('handshake_fragment', c_ubyte * 4),
-    ('handshake_fragment_len', c_uint),
-    ('wnum', c_uint),
-    ('wpend_tot', c_int),
-    ('wpend_type', c_int),
-    ('wpend_ret', c_int),
-    ('wpend_buf', POINTER(c_ubyte)),
-    ('finish_dgst1', EVP_MD_CTX),
-    ('finish_dgst2', EVP_MD_CTX),
-    ('change_cipher_spec', c_int),
-    ('warn_alert', c_int),
-    ('fatal_alert', c_int),
-    ('alert_dispatch', c_int),
-    ('send_alert', c_ubyte * 2),
-    ('renegotiate', c_int),
-    ('total_renegotiations', c_int),
-    ('num_renegotiations', c_int),
-    ('in_read_app_data', c_int),
-    ('tmp', N13ssl3_state_st4DOLLAR_20E),
-]
-assert sizeof(ssl3_state_st) == 648, sizeof(ssl3_state_st)
-assert alignment(ssl3_state_st) == 4, alignment(ssl3_state_st)
-SSL3_STATE = ssl3_state_st
-stack_st._fields_ = [
-    ('num', c_int),
-    ('data', POINTER(STRING)),
-    ('sorted', c_int),
-    ('num_alloc', c_int),
-    ('comp', CFUNCTYPE(c_int, POINTER(STRING), POINTER(STRING))),
-]
-assert sizeof(stack_st) == 20, sizeof(stack_st)
-assert alignment(stack_st) == 4, alignment(stack_st)
-class ui_st(Structure):
-    pass
-ui_st._fields_ = [
-]
-UI = ui_st
-class ui_method_st(Structure):
-    pass
-ui_method_st._fields_ = [
-]
-UI_METHOD = ui_method_st
-class ui_string_st(Structure):
-    pass
-ui_string_st._fields_ = [
-]
-UI_STRING = ui_string_st
-
-# values for enumeration 'UI_string_types'
-UI_string_types = c_int # enum
-class X509_objects_st(Structure):
-    pass
-X509_objects_st._fields_ = [
-    ('nid', c_int),
-    ('a2i', CFUNCTYPE(c_int)),
-    ('i2a', CFUNCTYPE(c_int)),
-]
-assert sizeof(X509_objects_st) == 12, sizeof(X509_objects_st)
-assert alignment(X509_objects_st) == 4, alignment(X509_objects_st)
-X509_OBJECTS = X509_objects_st
-X509_algor_st._fields_ = [
-    ('algorithm', POINTER(ASN1_OBJECT)),
-    ('parameter', POINTER(ASN1_TYPE)),
-]
-assert sizeof(X509_algor_st) == 8, sizeof(X509_algor_st)
-assert alignment(X509_algor_st) == 4, alignment(X509_algor_st)
-class X509_val_st(Structure):
-    pass
-X509_val_st._fields_ = [
-    ('notBefore', POINTER(ASN1_TIME)),
-    ('notAfter', POINTER(ASN1_TIME)),
-]
-assert sizeof(X509_val_st) == 8, sizeof(X509_val_st)
-assert alignment(X509_val_st) == 4, alignment(X509_val_st)
-X509_VAL = X509_val_st
-class X509_pubkey_st(Structure):
-    pass
-X509_pubkey_st._fields_ = [
-    ('algor', POINTER(X509_ALGOR)),
-    ('public_key', POINTER(ASN1_BIT_STRING)),
-    ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(X509_pubkey_st) == 12, sizeof(X509_pubkey_st)
-assert alignment(X509_pubkey_st) == 4, alignment(X509_pubkey_st)
-X509_PUBKEY = X509_pubkey_st
-class X509_sig_st(Structure):
-    pass
-X509_sig_st._fields_ = [
-    ('algor', POINTER(X509_ALGOR)),
-    ('digest', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(X509_sig_st) == 8, sizeof(X509_sig_st)
-assert alignment(X509_sig_st) == 4, alignment(X509_sig_st)
-X509_SIG = X509_sig_st
-class X509_name_entry_st(Structure):
-    pass
-X509_name_entry_st._fields_ = [
-    ('object', POINTER(ASN1_OBJECT)),
-    ('value', POINTER(ASN1_STRING)),
-    ('set', c_int),
-    ('size', c_int),
-]
-assert sizeof(X509_name_entry_st) == 16, sizeof(X509_name_entry_st)
-assert alignment(X509_name_entry_st) == 4, alignment(X509_name_entry_st)
-X509_NAME_ENTRY = X509_name_entry_st
-X509_name_st._fields_ = [
-    ('entries', POINTER(STACK)),
-    ('modified', c_int),
-    ('bytes', POINTER(BUF_MEM)),
-    ('hash', c_ulong),
-]
-assert sizeof(X509_name_st) == 16, sizeof(X509_name_st)
-assert alignment(X509_name_st) == 4, alignment(X509_name_st)
-class X509_extension_st(Structure):
-    pass
-X509_extension_st._fields_ = [
-    ('object', POINTER(ASN1_OBJECT)),
-    ('critical', ASN1_BOOLEAN),
-    ('value', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(X509_extension_st) == 12, sizeof(X509_extension_st)
-assert alignment(X509_extension_st) == 4, alignment(X509_extension_st)
-X509_EXTENSION = X509_extension_st
-class x509_attributes_st(Structure):
-    pass
-class N18x509_attributes_st4DOLLAR_13E(Union):
-    pass
-N18x509_attributes_st4DOLLAR_13E._fields_ = [
-    ('ptr', STRING),
-    ('set', POINTER(STACK)),
-    ('single', POINTER(ASN1_TYPE)),
-]
-assert sizeof(N18x509_attributes_st4DOLLAR_13E) == 4, sizeof(N18x509_attributes_st4DOLLAR_13E)
-assert alignment(N18x509_attributes_st4DOLLAR_13E) == 4, alignment(N18x509_attributes_st4DOLLAR_13E)
-x509_attributes_st._fields_ = [
-    ('object', POINTER(ASN1_OBJECT)),
-    ('single', c_int),
-    ('value', N18x509_attributes_st4DOLLAR_13E),
-]
-assert sizeof(x509_attributes_st) == 12, sizeof(x509_attributes_st)
-assert alignment(x509_attributes_st) == 4, alignment(x509_attributes_st)
-X509_ATTRIBUTE = x509_attributes_st
-class X509_req_info_st(Structure):
-    pass
-X509_req_info_st._fields_ = [
-    ('enc', ASN1_ENCODING),
-    ('version', POINTER(ASN1_INTEGER)),
-    ('subject', POINTER(X509_NAME)),
-    ('pubkey', POINTER(X509_PUBKEY)),
-    ('attributes', POINTER(STACK)),
-]
-assert sizeof(X509_req_info_st) == 28, sizeof(X509_req_info_st)
-assert alignment(X509_req_info_st) == 4, alignment(X509_req_info_st)
-X509_REQ_INFO = X509_req_info_st
-class X509_req_st(Structure):
-    pass
-X509_req_st._fields_ = [
-    ('req_info', POINTER(X509_REQ_INFO)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-    ('references', c_int),
-]
-assert sizeof(X509_req_st) == 16, sizeof(X509_req_st)
-assert alignment(X509_req_st) == 4, alignment(X509_req_st)
-X509_REQ = X509_req_st
-class x509_cinf_st(Structure):
-    pass
-x509_cinf_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('serialNumber', POINTER(ASN1_INTEGER)),
-    ('signature', POINTER(X509_ALGOR)),
-    ('issuer', POINTER(X509_NAME)),
-    ('validity', POINTER(X509_VAL)),
-    ('subject', POINTER(X509_NAME)),
-    ('key', POINTER(X509_PUBKEY)),
-    ('issuerUID', POINTER(ASN1_BIT_STRING)),
-    ('subjectUID', POINTER(ASN1_BIT_STRING)),
-    ('extensions', POINTER(STACK)),
-]
-assert sizeof(x509_cinf_st) == 40, sizeof(x509_cinf_st)
-assert alignment(x509_cinf_st) == 4, alignment(x509_cinf_st)
-X509_CINF = x509_cinf_st
-class x509_cert_aux_st(Structure):
-    pass
-x509_cert_aux_st._fields_ = [
-    ('trust', POINTER(STACK)),
-    ('reject', POINTER(STACK)),
-    ('alias', POINTER(ASN1_UTF8STRING)),
-    ('keyid', POINTER(ASN1_OCTET_STRING)),
-    ('other', POINTER(STACK)),
-]
-assert sizeof(x509_cert_aux_st) == 20, sizeof(x509_cert_aux_st)
-assert alignment(x509_cert_aux_st) == 4, alignment(x509_cert_aux_st)
-X509_CERT_AUX = x509_cert_aux_st
-class AUTHORITY_KEYID_st(Structure):
-    pass
-x509_st._fields_ = [
-    ('cert_info', POINTER(X509_CINF)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-    ('valid', c_int),
-    ('references', c_int),
-    ('name', STRING),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('ex_pathlen', c_long),
-    ('ex_flags', c_ulong),
-    ('ex_kusage', c_ulong),
-    ('ex_xkusage', c_ulong),
-    ('ex_nscert', c_ulong),
-    ('skid', POINTER(ASN1_OCTET_STRING)),
-    ('akid', POINTER(AUTHORITY_KEYID_st)),
-    ('sha1_hash', c_ubyte * 20),
-    ('aux', POINTER(X509_CERT_AUX)),
-]
-assert sizeof(x509_st) == 84, sizeof(x509_st)
-assert alignment(x509_st) == 4, alignment(x509_st)
-AUTHORITY_KEYID_st._fields_ = [
-]
-class x509_trust_st(Structure):
-    pass
-x509_trust_st._fields_ = [
-    ('trust', c_int),
-    ('flags', c_int),
-    ('check_trust', CFUNCTYPE(c_int, POINTER(x509_trust_st), POINTER(X509), c_int)),
-    ('name', STRING),
-    ('arg1', c_int),
-    ('arg2', c_void_p),
-]
-assert sizeof(x509_trust_st) == 24, sizeof(x509_trust_st)
-assert alignment(x509_trust_st) == 4, alignment(x509_trust_st)
-X509_TRUST = x509_trust_st
-class X509_revoked_st(Structure):
-    pass
-X509_revoked_st._fields_ = [
-    ('serialNumber', POINTER(ASN1_INTEGER)),
-    ('revocationDate', POINTER(ASN1_TIME)),
-    ('extensions', POINTER(STACK)),
-    ('sequence', c_int),
-]
-assert sizeof(X509_revoked_st) == 16, sizeof(X509_revoked_st)
-assert alignment(X509_revoked_st) == 4, alignment(X509_revoked_st)
-X509_REVOKED = X509_revoked_st
-class X509_crl_info_st(Structure):
-    pass
-X509_crl_info_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('issuer', POINTER(X509_NAME)),
-    ('lastUpdate', POINTER(ASN1_TIME)),
-    ('nextUpdate', POINTER(ASN1_TIME)),
-    ('revoked', POINTER(STACK)),
-    ('extensions', POINTER(STACK)),
-    ('enc', ASN1_ENCODING),
-]
-assert sizeof(X509_crl_info_st) == 40, sizeof(X509_crl_info_st)
-assert alignment(X509_crl_info_st) == 4, alignment(X509_crl_info_st)
-X509_CRL_INFO = X509_crl_info_st
-X509_crl_st._fields_ = [
-    ('crl', POINTER(X509_CRL_INFO)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-    ('references', c_int),
-]
-assert sizeof(X509_crl_st) == 16, sizeof(X509_crl_st)
-assert alignment(X509_crl_st) == 4, alignment(X509_crl_st)
-class private_key_st(Structure):
-    pass
-private_key_st._fields_ = [
-    ('version', c_int),
-    ('enc_algor', POINTER(X509_ALGOR)),
-    ('enc_pkey', POINTER(ASN1_OCTET_STRING)),
-    ('dec_pkey', POINTER(EVP_PKEY)),
-    ('key_length', c_int),
-    ('key_data', STRING),
-    ('key_free', c_int),
-    ('cipher', EVP_CIPHER_INFO),
-    ('references', c_int),
-]
-assert sizeof(private_key_st) == 52, sizeof(private_key_st)
-assert alignment(private_key_st) == 4, alignment(private_key_st)
-X509_PKEY = private_key_st
-class X509_info_st(Structure):
-    pass
-X509_info_st._fields_ = [
-    ('x509', POINTER(X509)),
-    ('crl', POINTER(X509_CRL)),
-    ('x_pkey', POINTER(X509_PKEY)),
-    ('enc_cipher', EVP_CIPHER_INFO),
-    ('enc_len', c_int),
-    ('enc_data', STRING),
-    ('references', c_int),
-]
-assert sizeof(X509_info_st) == 44, sizeof(X509_info_st)
-assert alignment(X509_info_st) == 4, alignment(X509_info_st)
-X509_INFO = X509_info_st
-class Netscape_spkac_st(Structure):
-    pass
-Netscape_spkac_st._fields_ = [
-    ('pubkey', POINTER(X509_PUBKEY)),
-    ('challenge', POINTER(ASN1_IA5STRING)),
-]
-assert sizeof(Netscape_spkac_st) == 8, sizeof(Netscape_spkac_st)
-assert alignment(Netscape_spkac_st) == 4, alignment(Netscape_spkac_st)
-NETSCAPE_SPKAC = Netscape_spkac_st
-class Netscape_spki_st(Structure):
-    pass
-Netscape_spki_st._fields_ = [
-    ('spkac', POINTER(NETSCAPE_SPKAC)),
-    ('sig_algor', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-]
-assert sizeof(Netscape_spki_st) == 12, sizeof(Netscape_spki_st)
-assert alignment(Netscape_spki_st) == 4, alignment(Netscape_spki_st)
-NETSCAPE_SPKI = Netscape_spki_st
-class Netscape_certificate_sequence(Structure):
-    pass
-Netscape_certificate_sequence._fields_ = [
-    ('type', POINTER(ASN1_OBJECT)),
-    ('certs', POINTER(STACK)),
-]
-assert sizeof(Netscape_certificate_sequence) == 8, sizeof(Netscape_certificate_sequence)
-assert alignment(Netscape_certificate_sequence) == 4, alignment(Netscape_certificate_sequence)
-NETSCAPE_CERT_SEQUENCE = Netscape_certificate_sequence
-class PBEPARAM_st(Structure):
-    pass
-PBEPARAM_st._fields_ = [
-    ('salt', POINTER(ASN1_OCTET_STRING)),
-    ('iter', POINTER(ASN1_INTEGER)),
-]
-assert sizeof(PBEPARAM_st) == 8, sizeof(PBEPARAM_st)
-assert alignment(PBEPARAM_st) == 4, alignment(PBEPARAM_st)
-PBEPARAM = PBEPARAM_st
-class PBE2PARAM_st(Structure):
-    pass
-PBE2PARAM_st._fields_ = [
-    ('keyfunc', POINTER(X509_ALGOR)),
-    ('encryption', POINTER(X509_ALGOR)),
-]
-assert sizeof(PBE2PARAM_st) == 8, sizeof(PBE2PARAM_st)
-assert alignment(PBE2PARAM_st) == 4, alignment(PBE2PARAM_st)
-PBE2PARAM = PBE2PARAM_st
-class PBKDF2PARAM_st(Structure):
-    pass
-PBKDF2PARAM_st._fields_ = [
-    ('salt', POINTER(ASN1_TYPE)),
-    ('iter', POINTER(ASN1_INTEGER)),
-    ('keylength', POINTER(ASN1_INTEGER)),
-    ('prf', POINTER(X509_ALGOR)),
-]
-assert sizeof(PBKDF2PARAM_st) == 16, sizeof(PBKDF2PARAM_st)
-assert alignment(PBKDF2PARAM_st) == 4, alignment(PBKDF2PARAM_st)
-PBKDF2PARAM = PBKDF2PARAM_st
-class pkcs8_priv_key_info_st(Structure):
-    pass
-pkcs8_priv_key_info_st._fields_ = [
-    ('broken', c_int),
-    ('version', POINTER(ASN1_INTEGER)),
-    ('pkeyalg', POINTER(X509_ALGOR)),
-    ('pkey', POINTER(ASN1_TYPE)),
-    ('attributes', POINTER(STACK)),
-]
-assert sizeof(pkcs8_priv_key_info_st) == 20, sizeof(pkcs8_priv_key_info_st)
-assert alignment(pkcs8_priv_key_info_st) == 4, alignment(pkcs8_priv_key_info_st)
-PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st
-class x509_hash_dir_st(Structure):
-    pass
-x509_hash_dir_st._fields_ = [
-    ('num_dirs', c_int),
-    ('dirs', POINTER(STRING)),
-    ('dirs_type', POINTER(c_int)),
-    ('num_dirs_alloced', c_int),
-]
-assert sizeof(x509_hash_dir_st) == 16, sizeof(x509_hash_dir_st)
-assert alignment(x509_hash_dir_st) == 4, alignment(x509_hash_dir_st)
-X509_HASH_DIR_CTX = x509_hash_dir_st
-class x509_file_st(Structure):
-    pass
-x509_file_st._fields_ = [
-    ('num_paths', c_int),
-    ('num_alloced', c_int),
-    ('paths', POINTER(STRING)),
-    ('path_type', POINTER(c_int)),
-]
-assert sizeof(x509_file_st) == 16, sizeof(x509_file_st)
-assert alignment(x509_file_st) == 4, alignment(x509_file_st)
-X509_CERT_FILE_CTX = x509_file_st
-class x509_object_st(Structure):
-    pass
-class N14x509_object_st4DOLLAR_14E(Union):
-    pass
-N14x509_object_st4DOLLAR_14E._fields_ = [
-    ('ptr', STRING),
-    ('x509', POINTER(X509)),
-    ('crl', POINTER(X509_CRL)),
-    ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(N14x509_object_st4DOLLAR_14E) == 4, sizeof(N14x509_object_st4DOLLAR_14E)
-assert alignment(N14x509_object_st4DOLLAR_14E) == 4, alignment(N14x509_object_st4DOLLAR_14E)
-x509_object_st._fields_ = [
-    ('type', c_int),
-    ('data', N14x509_object_st4DOLLAR_14E),
-]
-assert sizeof(x509_object_st) == 8, sizeof(x509_object_st)
-assert alignment(x509_object_st) == 4, alignment(x509_object_st)
-X509_OBJECT = x509_object_st
-class x509_lookup_st(Structure):
-    pass
-X509_LOOKUP = x509_lookup_st
-class x509_lookup_method_st(Structure):
-    pass
-x509_lookup_method_st._fields_ = [
-    ('name', STRING),
-    ('new_item', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
-    ('free', CFUNCTYPE(None, POINTER(X509_LOOKUP))),
-    ('init', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
-    ('shutdown', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
-    ('ctrl', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_long, POINTER(STRING))),
-    ('get_by_subject', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(X509_OBJECT))),
-    ('get_by_issuer_serial', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(ASN1_INTEGER), POINTER(X509_OBJECT))),
-    ('get_by_fingerprint', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(c_ubyte), c_int, POINTER(X509_OBJECT))),
-    ('get_by_alias', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_int, POINTER(X509_OBJECT))),
-]
-assert sizeof(x509_lookup_method_st) == 40, sizeof(x509_lookup_method_st)
-assert alignment(x509_lookup_method_st) == 4, alignment(x509_lookup_method_st)
-X509_LOOKUP_METHOD = x509_lookup_method_st
-x509_store_st._fields_ = [
-    ('cache', c_int),
-    ('objs', POINTER(STACK)),
-    ('get_cert_methods', POINTER(STACK)),
-    ('flags', c_ulong),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
-    ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
-    ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
-    ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
-    ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('references', c_int),
-    ('depth', c_int),
-]
-assert sizeof(x509_store_st) == 76, sizeof(x509_store_st)
-assert alignment(x509_store_st) == 4, alignment(x509_store_st)
-x509_lookup_st._fields_ = [
-    ('init', c_int),
-    ('skip', c_int),
-    ('method', POINTER(X509_LOOKUP_METHOD)),
-    ('method_data', STRING),
-    ('store_ctx', POINTER(X509_STORE)),
-]
-assert sizeof(x509_lookup_st) == 20, sizeof(x509_lookup_st)
-assert alignment(x509_lookup_st) == 4, alignment(x509_lookup_st)
-time_t = __darwin_time_t
-x509_store_ctx_st._fields_ = [
-    ('ctx', POINTER(X509_STORE)),
-    ('current_method', c_int),
-    ('cert', POINTER(X509)),
-    ('untrusted', POINTER(STACK)),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('check_time', time_t),
-    ('flags', c_ulong),
-    ('other_ctx', c_void_p),
-    ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
-    ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
-    ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
-    ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
-    ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('depth', c_int),
-    ('valid', c_int),
-    ('last_untrusted', c_int),
-    ('chain', POINTER(STACK)),
-    ('error_depth', c_int),
-    ('error', c_int),
-    ('current_cert', POINTER(X509)),
-    ('current_issuer', POINTER(X509)),
-    ('current_crl', POINTER(X509_CRL)),
-    ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(x509_store_ctx_st) == 116, sizeof(x509_store_ctx_st)
-assert alignment(x509_store_ctx_st) == 4, alignment(x509_store_ctx_st)
-va_list = __darwin_va_list
-__darwin_off_t = __int64_t
-fpos_t = __darwin_off_t
-class __sbuf(Structure):
-    pass
-__sbuf._fields_ = [
-    ('_base', POINTER(c_ubyte)),
-    ('_size', c_int),
-]
-assert sizeof(__sbuf) == 8, sizeof(__sbuf)
-assert alignment(__sbuf) == 4, alignment(__sbuf)
-class __sFILEX(Structure):
-    pass
-__sFILEX._fields_ = [
-]
-class __sFILE(Structure):
-    pass
-__sFILE._pack_ = 4
-__sFILE._fields_ = [
-    ('_p', POINTER(c_ubyte)),
-    ('_r', c_int),
-    ('_w', c_int),
-    ('_flags', c_short),
-    ('_file', c_short),
-    ('_bf', __sbuf),
-    ('_lbfsize', c_int),
-    ('_cookie', c_void_p),
-    ('_close', CFUNCTYPE(c_int, c_void_p)),
-    ('_read', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
-    ('_seek', CFUNCTYPE(fpos_t, c_void_p, c_longlong, c_int)),
-    ('_write', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
-    ('_ub', __sbuf),
-    ('_extra', POINTER(__sFILEX)),
-    ('_ur', c_int),
-    ('_ubuf', c_ubyte * 3),
-    ('_nbuf', c_ubyte * 1),
-    ('_lb', __sbuf),
-    ('_blksize', c_int),
-    ('_offset', fpos_t),
-]
-assert sizeof(__sFILE) == 88, sizeof(__sFILE)
-assert alignment(__sFILE) == 4, alignment(__sFILE)
-FILE = __sFILE
-ct_rune_t = __darwin_ct_rune_t
-rune_t = __darwin_rune_t
-class div_t(Structure):
-    pass
-div_t._fields_ = [
-    ('quot', c_int),
-    ('rem', c_int),
-]
-assert sizeof(div_t) == 8, sizeof(div_t)
-assert alignment(div_t) == 4, alignment(div_t)
-class ldiv_t(Structure):
-    pass
-ldiv_t._fields_ = [
-    ('quot', c_long),
-    ('rem', c_long),
-]
-assert sizeof(ldiv_t) == 8, sizeof(ldiv_t)
-assert alignment(ldiv_t) == 4, alignment(ldiv_t)
-class lldiv_t(Structure):
-    pass
-lldiv_t._pack_ = 4
-lldiv_t._fields_ = [
-    ('quot', c_longlong),
-    ('rem', c_longlong),
-]
-assert sizeof(lldiv_t) == 16, sizeof(lldiv_t)
-assert alignment(lldiv_t) == 4, alignment(lldiv_t)
-__darwin_dev_t = __int32_t
-dev_t = __darwin_dev_t
-__darwin_mode_t = __uint16_t
-mode_t = __darwin_mode_t
-class mcontext(Structure):
-    pass
-mcontext._fields_ = [
-]
-class mcontext64(Structure):
-    pass
-mcontext64._fields_ = [
-]
-class __darwin_pthread_handler_rec(Structure):
-    pass
-__darwin_pthread_handler_rec._fields_ = [
-    ('__routine', CFUNCTYPE(None, c_void_p)),
-    ('__arg', c_void_p),
-    ('__next', POINTER(__darwin_pthread_handler_rec)),
-]
-assert sizeof(__darwin_pthread_handler_rec) == 12, sizeof(__darwin_pthread_handler_rec)
-assert alignment(__darwin_pthread_handler_rec) == 4, alignment(__darwin_pthread_handler_rec)
-class _opaque_pthread_attr_t(Structure):
-    pass
-_opaque_pthread_attr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 36),
-]
-assert sizeof(_opaque_pthread_attr_t) == 40, sizeof(_opaque_pthread_attr_t)
-assert alignment(_opaque_pthread_attr_t) == 4, alignment(_opaque_pthread_attr_t)
-class _opaque_pthread_cond_t(Structure):
-    pass
-_opaque_pthread_cond_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 24),
-]
-assert sizeof(_opaque_pthread_cond_t) == 28, sizeof(_opaque_pthread_cond_t)
-assert alignment(_opaque_pthread_cond_t) == 4, alignment(_opaque_pthread_cond_t)
-class _opaque_pthread_condattr_t(Structure):
-    pass
-_opaque_pthread_condattr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 4),
-]
-assert sizeof(_opaque_pthread_condattr_t) == 8, sizeof(_opaque_pthread_condattr_t)
-assert alignment(_opaque_pthread_condattr_t) == 4, alignment(_opaque_pthread_condattr_t)
-class _opaque_pthread_mutex_t(Structure):
-    pass
-_opaque_pthread_mutex_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 40),
-]
-assert sizeof(_opaque_pthread_mutex_t) == 44, sizeof(_opaque_pthread_mutex_t)
-assert alignment(_opaque_pthread_mutex_t) == 4, alignment(_opaque_pthread_mutex_t)
-class _opaque_pthread_mutexattr_t(Structure):
-    pass
-_opaque_pthread_mutexattr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 8),
-]
-assert sizeof(_opaque_pthread_mutexattr_t) == 12, sizeof(_opaque_pthread_mutexattr_t)
-assert alignment(_opaque_pthread_mutexattr_t) == 4, alignment(_opaque_pthread_mutexattr_t)
-class _opaque_pthread_once_t(Structure):
-    pass
-_opaque_pthread_once_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 4),
-]
-assert sizeof(_opaque_pthread_once_t) == 8, sizeof(_opaque_pthread_once_t)
-assert alignment(_opaque_pthread_once_t) == 4, alignment(_opaque_pthread_once_t)
-class _opaque_pthread_rwlock_t(Structure):
-    pass
-_opaque_pthread_rwlock_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 124),
-]
-assert sizeof(_opaque_pthread_rwlock_t) == 128, sizeof(_opaque_pthread_rwlock_t)
-assert alignment(_opaque_pthread_rwlock_t) == 4, alignment(_opaque_pthread_rwlock_t)
-class _opaque_pthread_rwlockattr_t(Structure):
-    pass
-_opaque_pthread_rwlockattr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 12),
-]
-assert sizeof(_opaque_pthread_rwlockattr_t) == 16, sizeof(_opaque_pthread_rwlockattr_t)
-assert alignment(_opaque_pthread_rwlockattr_t) == 4, alignment(_opaque_pthread_rwlockattr_t)
-class _opaque_pthread_t(Structure):
-    pass
-_opaque_pthread_t._fields_ = [
-    ('__sig', c_long),
-    ('__cleanup_stack', POINTER(__darwin_pthread_handler_rec)),
-    ('__opaque', c_char * 596),
-]
-assert sizeof(_opaque_pthread_t) == 604, sizeof(_opaque_pthread_t)
-assert alignment(_opaque_pthread_t) == 4, alignment(_opaque_pthread_t)
-__darwin_blkcnt_t = __int64_t
-__darwin_blksize_t = __int32_t
-__darwin_fsblkcnt_t = c_uint
-__darwin_fsfilcnt_t = c_uint
-__darwin_gid_t = __uint32_t
-__darwin_id_t = __uint32_t
-__darwin_ino_t = __uint32_t
-__darwin_mach_port_name_t = __darwin_natural_t
-__darwin_mach_port_t = __darwin_mach_port_name_t
-__darwin_mcontext_t = POINTER(mcontext)
-__darwin_mcontext64_t = POINTER(mcontext64)
-__darwin_pid_t = __int32_t
-__darwin_pthread_attr_t = _opaque_pthread_attr_t
-__darwin_pthread_cond_t = _opaque_pthread_cond_t
-__darwin_pthread_condattr_t = _opaque_pthread_condattr_t
-__darwin_pthread_key_t = c_ulong
-__darwin_pthread_mutex_t = _opaque_pthread_mutex_t
-__darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t
-__darwin_pthread_once_t = _opaque_pthread_once_t
-__darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t
-__darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t
-__darwin_pthread_t = POINTER(_opaque_pthread_t)
-__darwin_sigset_t = __uint32_t
-__darwin_suseconds_t = __int32_t
-__darwin_uid_t = __uint32_t
-__darwin_useconds_t = __uint32_t
-__darwin_uuid_t = c_ubyte * 16
-class sigaltstack(Structure):
-    pass
-sigaltstack._fields_ = [
-    ('ss_sp', c_void_p),
-    ('ss_size', __darwin_size_t),
-    ('ss_flags', c_int),
-]
-assert sizeof(sigaltstack) == 12, sizeof(sigaltstack)
-assert alignment(sigaltstack) == 4, alignment(sigaltstack)
-__darwin_stack_t = sigaltstack
-class ucontext(Structure):
-    pass
-ucontext._fields_ = [
-    ('uc_onstack', c_int),
-    ('uc_sigmask', __darwin_sigset_t),
-    ('uc_stack', __darwin_stack_t),
-    ('uc_link', POINTER(ucontext)),
-    ('uc_mcsize', __darwin_size_t),
-    ('uc_mcontext', __darwin_mcontext_t),
-]
-assert sizeof(ucontext) == 32, sizeof(ucontext)
-assert alignment(ucontext) == 4, alignment(ucontext)
-__darwin_ucontext_t = ucontext
-class ucontext64(Structure):
-    pass
-ucontext64._fields_ = [
-    ('uc_onstack', c_int),
-    ('uc_sigmask', __darwin_sigset_t),
-    ('uc_stack', __darwin_stack_t),
-    ('uc_link', POINTER(ucontext64)),
-    ('uc_mcsize', __darwin_size_t),
-    ('uc_mcontext64', __darwin_mcontext64_t),
-]
-assert sizeof(ucontext64) == 32, sizeof(ucontext64)
-assert alignment(ucontext64) == 4, alignment(ucontext64)
-__darwin_ucontext64_t = ucontext64
-class timeval(Structure):
-    pass
-timeval._fields_ = [
-    ('tv_sec', __darwin_time_t),
-    ('tv_usec', __darwin_suseconds_t),
-]
-assert sizeof(timeval) == 8, sizeof(timeval)
-assert alignment(timeval) == 4, alignment(timeval)
-rlim_t = __int64_t
-class rusage(Structure):
-    pass
-rusage._fields_ = [
-    ('ru_utime', timeval),
-    ('ru_stime', timeval),
-    ('ru_maxrss', c_long),
-    ('ru_ixrss', c_long),
-    ('ru_idrss', c_long),
-    ('ru_isrss', c_long),
-    ('ru_minflt', c_long),
-    ('ru_majflt', c_long),
-    ('ru_nswap', c_long),
-    ('ru_inblock', c_long),
-    ('ru_oublock', c_long),
-    ('ru_msgsnd', c_long),
-    ('ru_msgrcv', c_long),
-    ('ru_nsignals', c_long),
-    ('ru_nvcsw', c_long),
-    ('ru_nivcsw', c_long),
-]
-assert sizeof(rusage) == 72, sizeof(rusage)
-assert alignment(rusage) == 4, alignment(rusage)
-class rlimit(Structure):
-    pass
-rlimit._pack_ = 4
-rlimit._fields_ = [
-    ('rlim_cur', rlim_t),
-    ('rlim_max', rlim_t),
-]
-assert sizeof(rlimit) == 16, sizeof(rlimit)
-assert alignment(rlimit) == 4, alignment(rlimit)
-mcontext_t = __darwin_mcontext_t
-mcontext64_t = __darwin_mcontext64_t
-pthread_attr_t = __darwin_pthread_attr_t
-sigset_t = __darwin_sigset_t
-ucontext_t = __darwin_ucontext_t
-ucontext64_t = __darwin_ucontext64_t
-uid_t = __darwin_uid_t
-class sigval(Union):
-    pass
-sigval._fields_ = [
-    ('sival_int', c_int),
-    ('sival_ptr', c_void_p),
-]
-assert sizeof(sigval) == 4, sizeof(sigval)
-assert alignment(sigval) == 4, alignment(sigval)
-class sigevent(Structure):
-    pass
-sigevent._fields_ = [
-    ('sigev_notify', c_int),
-    ('sigev_signo', c_int),
-    ('sigev_value', sigval),
-    ('sigev_notify_function', CFUNCTYPE(None, sigval)),
-    ('sigev_notify_attributes', POINTER(pthread_attr_t)),
-]
-assert sizeof(sigevent) == 20, sizeof(sigevent)
-assert alignment(sigevent) == 4, alignment(sigevent)
-class __siginfo(Structure):
-    pass
-pid_t = __darwin_pid_t
-__siginfo._fields_ = [
-    ('si_signo', c_int),
-    ('si_errno', c_int),
-    ('si_code', c_int),
-    ('si_pid', pid_t),
-    ('si_uid', uid_t),
-    ('si_status', c_int),
-    ('si_addr', c_void_p),
-    ('si_value', sigval),
-    ('si_band', c_long),
-    ('pad', c_ulong * 7),
-]
-assert sizeof(__siginfo) == 64, sizeof(__siginfo)
-assert alignment(__siginfo) == 4, alignment(__siginfo)
-siginfo_t = __siginfo
-class __sigaction_u(Union):
-    pass
-__sigaction_u._fields_ = [
-    ('__sa_handler', CFUNCTYPE(None, c_int)),
-    ('__sa_sigaction', CFUNCTYPE(None, c_int, POINTER(__siginfo), c_void_p)),
-]
-assert sizeof(__sigaction_u) == 4, sizeof(__sigaction_u)
-assert alignment(__sigaction_u) == 4, alignment(__sigaction_u)
-class __sigaction(Structure):
-    pass
-__sigaction._fields_ = [
-    ('__sigaction_u', __sigaction_u),
-    ('sa_tramp', CFUNCTYPE(None, c_void_p, c_int, c_int, POINTER(siginfo_t), c_void_p)),
-    ('sa_mask', sigset_t),
-    ('sa_flags', c_int),
-]
-assert sizeof(__sigaction) == 16, sizeof(__sigaction)
-assert alignment(__sigaction) == 4, alignment(__sigaction)
-class sigaction(Structure):
-    pass
-sigaction._fields_ = [
-    ('__sigaction_u', __sigaction_u),
-    ('sa_mask', sigset_t),
-    ('sa_flags', c_int),
-]
-assert sizeof(sigaction) == 12, sizeof(sigaction)
-assert alignment(sigaction) == 4, alignment(sigaction)
-sig_t = CFUNCTYPE(None, c_int)
-stack_t = __darwin_stack_t
-class sigvec(Structure):
-    pass
-sigvec._fields_ = [
-    ('sv_handler', CFUNCTYPE(None, c_int)),
-    ('sv_mask', c_int),
-    ('sv_flags', c_int),
-]
-assert sizeof(sigvec) == 12, sizeof(sigvec)
-assert alignment(sigvec) == 4, alignment(sigvec)
-class sigstack(Structure):
-    pass
-sigstack._fields_ = [
-    ('ss_sp', STRING),
-    ('ss_onstack', c_int),
-]
-assert sizeof(sigstack) == 8, sizeof(sigstack)
-assert alignment(sigstack) == 4, alignment(sigstack)
-u_char = c_ubyte
-u_short = c_ushort
-u_int = c_uint
-u_long = c_ulong
-ushort = c_ushort
-uint = c_uint
-u_quad_t = u_int64_t
-quad_t = int64_t
-qaddr_t = POINTER(quad_t)
-caddr_t = STRING
-daddr_t = int32_t
-fixpt_t = u_int32_t
-blkcnt_t = __darwin_blkcnt_t
-blksize_t = __darwin_blksize_t
-gid_t = __darwin_gid_t
-in_addr_t = __uint32_t
-in_port_t = __uint16_t
-ino_t = __darwin_ino_t
-key_t = __int32_t
-nlink_t = __uint16_t
-off_t = __darwin_off_t
-segsz_t = int32_t
-swblk_t = int32_t
-clock_t = __darwin_clock_t
-ssize_t = __darwin_ssize_t
-useconds_t = __darwin_useconds_t
-suseconds_t = __darwin_suseconds_t
-fd_mask = __int32_t
-class fd_set(Structure):
-    pass
-fd_set._fields_ = [
-    ('fds_bits', __int32_t * 32),
-]
-assert sizeof(fd_set) == 128, sizeof(fd_set)
-assert alignment(fd_set) == 4, alignment(fd_set)
-pthread_cond_t = __darwin_pthread_cond_t
-pthread_condattr_t = __darwin_pthread_condattr_t
-pthread_mutex_t = __darwin_pthread_mutex_t
-pthread_mutexattr_t = __darwin_pthread_mutexattr_t
-pthread_once_t = __darwin_pthread_once_t
-pthread_rwlock_t = __darwin_pthread_rwlock_t
-pthread_rwlockattr_t = __darwin_pthread_rwlockattr_t
-pthread_t = __darwin_pthread_t
-pthread_key_t = __darwin_pthread_key_t
-fsblkcnt_t = __darwin_fsblkcnt_t
-fsfilcnt_t = __darwin_fsfilcnt_t
-
-# values for enumeration 'idtype_t'
-idtype_t = c_int # enum
-id_t = __darwin_id_t
-class wait(Union):
-    pass
-class N4wait3DOLLAR_3E(Structure):
-    pass
-N4wait3DOLLAR_3E._fields_ = [
-    ('w_Termsig', c_uint, 7),
-    ('w_Coredump', c_uint, 1),
-    ('w_Retcode', c_uint, 8),
-    ('w_Filler', c_uint, 16),
-]
-assert sizeof(N4wait3DOLLAR_3E) == 4, sizeof(N4wait3DOLLAR_3E)
-assert alignment(N4wait3DOLLAR_3E) == 4, alignment(N4wait3DOLLAR_3E)
-class N4wait3DOLLAR_4E(Structure):
-    pass
-N4wait3DOLLAR_4E._fields_ = [
-    ('w_Stopval', c_uint, 8),
-    ('w_Stopsig', c_uint, 8),
-    ('w_Filler', c_uint, 16),
-]
-assert sizeof(N4wait3DOLLAR_4E) == 4, sizeof(N4wait3DOLLAR_4E)
-assert alignment(N4wait3DOLLAR_4E) == 4, alignment(N4wait3DOLLAR_4E)
-wait._fields_ = [
-    ('w_status', c_int),
-    ('w_T', N4wait3DOLLAR_3E),
-    ('w_S', N4wait3DOLLAR_4E),
-]
-assert sizeof(wait) == 4, sizeof(wait)
-assert alignment(wait) == 4, alignment(wait)
-class timespec(Structure):
-    pass
-timespec._fields_ = [
-    ('tv_sec', time_t),
-    ('tv_nsec', c_long),
-]
-assert sizeof(timespec) == 8, sizeof(timespec)
-assert alignment(timespec) == 4, alignment(timespec)
-class tm(Structure):
-    pass
-tm._fields_ = [
-    ('tm_sec', c_int),
-    ('tm_min', c_int),
-    ('tm_hour', c_int),
-    ('tm_mday', c_int),
-    ('tm_mon', c_int),
-    ('tm_year', c_int),
-    ('tm_wday', c_int),
-    ('tm_yday', c_int),
-    ('tm_isdst', c_int),
-    ('tm_gmtoff', c_long),
-    ('tm_zone', STRING),
-]
-assert sizeof(tm) == 44, sizeof(tm)
-assert alignment(tm) == 4, alignment(tm)
-__gnuc_va_list = STRING
-ptrdiff_t = c_int
-int8_t = c_byte
-int16_t = c_short
-uint8_t = c_ubyte
-uint16_t = c_ushort
-uint32_t = c_uint
-uint64_t = c_ulonglong
-int_least8_t = int8_t
-int_least16_t = int16_t
-int_least32_t = int32_t
-int_least64_t = int64_t
-uint_least8_t = uint8_t
-uint_least16_t = uint16_t
-uint_least32_t = uint32_t
-uint_least64_t = uint64_t
-int_fast8_t = int8_t
-int_fast16_t = int16_t
-int_fast32_t = int32_t
-int_fast64_t = int64_t
-uint_fast8_t = uint8_t
-uint_fast16_t = uint16_t
-uint_fast32_t = uint32_t
-uint_fast64_t = uint64_t
-intptr_t = c_long
-uintptr_t = c_ulong
-intmax_t = c_longlong
-uintmax_t = c_ulonglong
-__all__ = ['ENGINE', 'pkcs7_enc_content_st', '__int16_t',
-           'X509_REVOKED', 'SSL_CTX', 'UIT_BOOLEAN',
-           '__darwin_time_t', 'ucontext64_t', 'int_fast32_t',
-           'pem_ctx_st', 'uint8_t', 'fpos_t', 'X509', 'COMP_CTX',
-           'tm', 'N10pem_ctx_st4DOLLAR_17E', 'swblk_t',
-           'ASN1_TEMPLATE', '__darwin_pthread_t', 'fixpt_t',
-           'BIO_METHOD', 'ASN1_PRINTABLESTRING', 'EVP_ENCODE_CTX',
-           'dh_method', 'bio_f_buffer_ctx_struct', 'in_port_t',
-           'X509_SIG', '__darwin_ssize_t', '__darwin_sigset_t',
-           'wait', 'uint_fast16_t', 'N12asn1_type_st4DOLLAR_11E',
-           'uint_least8_t', 'pthread_rwlock_t', 'ASN1_IA5STRING',
-           'fsfilcnt_t', 'ucontext', '__uint64_t', 'timespec',
-           'x509_cinf_st', 'COMP_METHOD', 'MD5_CTX', 'buf_mem_st',
-           'ASN1_ENCODING_st', 'PBEPARAM', 'X509_NAME_ENTRY',
-           '__darwin_va_list', 'ucontext_t', 'lhash_st',
-           'N4wait3DOLLAR_4E', '__darwin_uuid_t',
-           '_ossl_old_des_ks_struct', 'id_t', 'ASN1_BIT_STRING',
-           'va_list', '__darwin_wchar_t', 'pthread_key_t',
-           'pkcs7_signer_info_st', 'ASN1_METHOD', 'DSA_SIG', 'DSA',
-           'UIT_NONE', 'pthread_t', '__darwin_useconds_t',
-           'uint_fast8_t', 'UI_STRING', 'DES_cblock',
-           '__darwin_mcontext64_t', 'rlim_t', 'PEM_Encode_Seal_st',
-           'SHAstate_st', 'u_quad_t', 'openssl_fptr',
-           '_opaque_pthread_rwlockattr_t',
-           'N18x509_attributes_st4DOLLAR_13E',
-           '__darwin_pthread_rwlock_t', 'daddr_t', 'ui_string_st',
-           'x509_file_st', 'X509_req_info_st', 'int_least64_t',
-           'evp_Encode_Ctx_st', 'X509_OBJECTS', 'CRYPTO_EX_DATA',
-           '__int8_t', 'AUTHORITY_KEYID_st', '_opaque_pthread_attr_t',
-           'sigstack', 'EVP_CIPHER_CTX', 'X509_extension_st', 'pid_t',
-           'RSA_METHOD', 'PEM_USER', 'pem_recip_st', 'env_md_ctx_st',
-           'rc5_key_st', 'ui_st', 'X509_PUBKEY', 'u_int8_t',
-           'ASN1_ITEM_st', 'pkcs7_recip_info_st', 'ssl2_state_st',
-           'off_t', 'N10ssl_ctx_st4DOLLAR_18E', 'crypto_ex_data_st',
-           'ui_method_st', '__darwin_pthread_rwlockattr_t',
-           'CRYPTO_EX_dup', '__darwin_ino_t', '__sFILE',
-           'OSUnknownByteOrder', 'BN_MONT_CTX', 'ASN1_NULL', 'time_t',
-           'CRYPTO_EX_new', 'asn1_type_st', 'CRYPTO_EX_DATA_FUNCS',
-           'user_time_t', 'BIGNUM', 'pthread_rwlockattr_t',
-           'ASN1_VALUE_st', 'DH_METHOD', '__darwin_off_t',
-           '_opaque_pthread_t', 'bn_blinding_st', 'RSA', 'ssize_t',
-           'mcontext64_t', 'user_long_t', 'fsblkcnt_t', 'cert_st',
-           '__darwin_pthread_condattr_t', 'X509_PKEY',
-           '__darwin_id_t', '__darwin_nl_item', 'SSL2_STATE', 'FILE',
-           'pthread_mutexattr_t', 'size_t',
-           '_ossl_old_des_key_schedule', 'pkcs7_issuer_and_serial_st',
-           'sigval', 'CRYPTO_MEM_LEAK_CB', 'X509_NAME', 'blkcnt_t',
-           'uint_least16_t', '__darwin_dev_t', 'evp_cipher_info_st',
-           'BN_BLINDING', 'ssl3_state_st', 'uint_least64_t',
-           'user_addr_t', 'DES_key_schedule', 'RIPEMD160_CTX',
-           'u_char', 'X509_algor_st', 'uid_t', 'sess_cert_st',
-           'u_int64_t', 'u_int16_t', 'sigset_t', '__darwin_ptrdiff_t',
-           'ASN1_CTX', 'STACK', '__int32_t', 'UI_METHOD',
-           'NETSCAPE_SPKI', 'UIT_PROMPT', 'st_CRYPTO_EX_DATA_IMPL',
-           'cast_key_st', 'X509_HASH_DIR_CTX', 'sigevent',
-           'user_ssize_t', 'clock_t', 'aes_key_st',
-           '__darwin_socklen_t', '__darwin_intptr_t', 'int_fast64_t',
-           'asn1_string_table_st', 'uint_fast32_t',
-           'ASN1_VISIBLESTRING', 'DSA_SIG_st', 'obj_name_st',
-           'X509_LOOKUP_METHOD', 'u_int32_t', 'EVP_CIPHER_INFO',
-           '__gnuc_va_list', 'AES_KEY', 'PKCS7_ISSUER_AND_SERIAL',
-           'BN_CTX', '__darwin_blkcnt_t', 'key_t', 'SHA_CTX',
-           'pkcs7_signed_st', 'SSL', 'N10pem_ctx_st4DOLLAR_16E',
-           'pthread_attr_t', 'EVP_MD', 'uint', 'ASN1_BOOLEAN',
-           'ino_t', '__darwin_clock_t', 'ASN1_OCTET_STRING',
-           'asn1_ctx_st', 'BIO_F_BUFFER_CTX', 'bn_mont_ctx_st',
-           'X509_REQ_INFO', 'PEM_CTX', 'sigvec',
-           '__darwin_pthread_mutexattr_t', 'x509_attributes_st',
-           'stack_t', '__darwin_mode_t', '__mbstate_t',
-           'asn1_object_st', 'ASN1_ENCODING', '__uint8_t',
-           'LHASH_NODE', 'PKCS7_SIGNER_INFO', 'asn1_method_st',
-           'stack_st', 'bio_info_cb', 'div_t', 'UIT_VERIFY',
-           'PBEPARAM_st', 'N4wait3DOLLAR_3E', 'quad_t', '__siginfo',
-           '__darwin_mbstate_t', 'rsa_st', 'ASN1_UNIVERSALSTRING',
-           'uint64_t', 'ssl_comp_st', 'X509_OBJECT', 'pthread_cond_t',
-           'DH', '__darwin_wctype_t', 'PKCS7_ENVELOPE', 'ASN1_TLC_st',
-           'sig_atomic_t', 'BIO', 'nlink_t', 'BUF_MEM', 'SSL3_RECORD',
-           'bio_method_st', 'timeval', 'UI_string_types', 'BIO_dummy',
-           'ssl_ctx_st', 'NETSCAPE_CERT_SEQUENCE',
-           'BIT_STRING_BITNAME_st', '__darwin_pthread_attr_t',
-           'int8_t', '__darwin_wint_t', 'OBJ_NAME',
-           'PKCS8_PRIV_KEY_INFO', 'PBE2PARAM_st',
-           'LHASH_DOALL_FN_TYPE', 'x509_st', 'X509_VAL', 'dev_t',
-           'ASN1_TEMPLATE_st', 'MD5state_st', '__uint16_t',
-           'LHASH_DOALL_ARG_FN_TYPE', 'mdc2_ctx_st', 'SSL3_STATE',
-           'ssl3_buffer_st', 'ASN1_ITEM_EXP',
-           '_opaque_pthread_condattr_t', 'mode_t', 'ASN1_VALUE',
-           'qaddr_t', '__darwin_gid_t', 'EVP_PKEY', 'CRYPTO_EX_free',
-           '_ossl_old_des_cblock', 'X509_INFO', 'asn1_string_st',
-           'intptr_t', 'UIT_INFO', 'int_fast8_t', 'sigaltstack',
-           'env_md_st', 'LHASH', '__darwin_ucontext_t',
-           'PKCS7_SIGN_ENVELOPE', '__darwin_mcontext_t', 'ct_rune_t',
-           'MD2_CTX', 'pthread_once_t', 'SSL3_BUFFER', 'fd_mask',
-           'ASN1_TYPE', 'PKCS7_SIGNED', 'ssl3_record_st', 'BF_KEY',
-           'MD4state_st', 'MD4_CTX', 'int16_t', 'SSL_CIPHER',
-           'rune_t', 'X509_TRUST', 'siginfo_t', 'X509_STORE',
-           '__sbuf', 'X509_STORE_CTX', '__darwin_blksize_t', 'ldiv_t',
-           'ASN1_TIME', 'SSL_METHOD', 'X509_LOOKUP',
-           'Netscape_spki_st', 'P_PID', 'sigaction', 'sig_t',
-           'hostent', 'x509_cert_aux_st', '_opaque_pthread_cond_t',
-           'segsz_t', 'ushort', '__darwin_ct_rune_t', 'fd_set',
-           'BN_RECP_CTX', 'x509_lookup_st', 'uint16_t', 'pkcs7_st',
-           'asn1_header_st', '__darwin_pthread_key_t',
-           'x509_trust_st', '__darwin_pthread_handler_rec', 'int32_t',
-           'X509_CRL_INFO', 'N11evp_pkey_st4DOLLAR_12E', 'MDC2_CTX',
-           'N23_ossl_old_des_ks_struct4DOLLAR_10E', 'ASN1_HEADER',
-           'X509_crl_info_st', 'LHASH_HASH_FN_TYPE',
-           '_opaque_pthread_mutexattr_t', 'ssl_st',
-           'N8pkcs7_st4DOLLAR_15E', 'evp_pkey_st',
-           'pkcs7_signedandenveloped_st', '__darwin_mach_port_t',
-           'EVP_PBE_KEYGEN', '_opaque_pthread_mutex_t',
-           'ASN1_UTCTIME', 'mcontext', 'crypto_ex_data_func_st',
-           'u_long', 'PBKDF2PARAM_st', 'rc4_key_st', 'DSA_METHOD',
-           'EVP_CIPHER', 'BIT_STRING_BITNAME', 'PKCS7_RECIP_INFO',
-           'ssl3_enc_method', 'X509_CERT_AUX', 'uintmax_t',
-           'int_fast16_t', 'RC5_32_KEY', 'ucontext64', 'ASN1_INTEGER',
-           'u_short', 'N14x509_object_st4DOLLAR_14E', 'mcontext64',
-           'X509_sig_st', 'ASN1_GENERALSTRING', 'PKCS7', '__sFILEX',
-           'X509_name_entry_st', 'ssl_session_st', 'caddr_t',
-           'bignum_st', 'X509_CINF', '__darwin_pthread_cond_t',
-           'ASN1_TLC', 'PKCS7_ENCRYPT', 'NETSCAPE_SPKAC',
-           'Netscape_spkac_st', 'idtype_t', 'UIT_ERROR',
-           'uint_fast64_t', 'in_addr_t', 'pthread_mutex_t',
-           '__int64_t', 'ASN1_BMPSTRING', 'uint32_t',
-           'PEM_ENCODE_SEAL_CTX', 'suseconds_t', 'ASN1_OBJECT',
-           'X509_val_st', 'private_key_st', 'CRYPTO_dynlock',
-           'X509_objects_st', 'CRYPTO_EX_DATA_IMPL',
-           'pthread_condattr_t', 'PKCS7_DIGEST', 'uint_least32_t',
-           'ASN1_STRING', '__uint32_t', 'P_PGID', 'rsa_meth_st',
-           'X509_crl_st', 'RC2_KEY', '__darwin_fsfilcnt_t',
-           'X509_revoked_st', 'PBE2PARAM', 'blksize_t',
-           'Netscape_certificate_sequence', 'ssl_cipher_st',
-           'bignum_ctx', 'register_t', 'ASN1_UTF8STRING',
-           'pkcs7_encrypted_st', 'RC4_KEY', '__darwin_ucontext64_t',
-           'N13ssl2_state_st4DOLLAR_19E', 'bn_recp_ctx_st',
-           'CAST_KEY', 'X509_ATTRIBUTE', '__darwin_suseconds_t',
-           '__sigaction', 'user_ulong_t', 'syscall_arg_t',
-           'evp_cipher_ctx_st', 'X509_ALGOR', 'mcontext_t',
-           'const_DES_cblock', '__darwin_fsblkcnt_t', 'dsa_st',
-           'int_least8_t', 'MD2state_st', 'X509_EXTENSION',
-           'GEN_SESSION_CB', 'int_least16_t', '__darwin_wctrans_t',
-           'PBKDF2PARAM', 'x509_lookup_method_st', 'pem_password_cb',
-           'X509_info_st', 'x509_store_st', '__darwin_natural_t',
-           'X509_pubkey_st', 'pkcs7_digest_st', '__darwin_size_t',
-           'ASN1_STRING_TABLE', 'OSLittleEndian', 'RIPEMD160state_st',
-           'pkcs7_enveloped_st', 'UI', 'ptrdiff_t', 'X509_REQ',
-           'CRYPTO_dynlock_value', 'X509_req_st', 'x509_store_ctx_st',
-           'N13ssl3_state_st4DOLLAR_20E', 'lhash_node_st',
-           '__darwin_pthread_mutex_t', 'LHASH_COMP_FN_TYPE',
-           '__darwin_rune_t', 'rlimit', '__darwin_pthread_once_t',
-           'OSBigEndian', 'uintptr_t', '__darwin_uid_t', 'u_int',
-           'ASN1_T61STRING', 'gid_t', 'ssl_method_st', 'ASN1_ITEM',
-           'ASN1_ENUMERATED', '_opaque_pthread_rwlock_t',
-           'pkcs8_priv_key_info_st', 'intmax_t', 'sigcontext',
-           'X509_CRL', 'rc2_key_st', 'engine_st', 'x509_object_st',
-           '_opaque_pthread_once_t', 'DES_ks', 'SSL_COMP',
-           'dsa_method', 'int64_t', 'bio_st', 'bf_key_st',
-           'ASN1_GENERALIZEDTIME', 'PKCS7_ENC_CONTENT',
-           '__darwin_pid_t', 'lldiv_t', 'comp_method_st',
-           'EVP_MD_CTX', 'evp_cipher_st', 'X509_name_st',
-           'x509_hash_dir_st', '__darwin_mach_port_name_t',
-           'useconds_t', 'user_size_t', 'SSL_SESSION', 'rusage',
-           'ssl_crock_st', 'int_least32_t', '__sigaction_u', 'dh_st',
-           'P_ALL', '__darwin_stack_t', 'N6DES_ks3DOLLAR_9E',
-           'comp_ctx_st', 'X509_CERT_FILE_CTX']
diff --git a/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py b/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py
deleted file mode 100644
index b5a4137..0000000
--- a/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py
+++ /dev/null
@@ -1,974 +0,0 @@
-# Python test set -- part 1, grammar.
-# This just tests whether the parser accepts them all.
-
-# NOTE: When you run this test as a script from the command line, you
-# get warnings about certain hex/oct constants.  Since those are
-# issued by the parser, you can't suppress them by adding a
-# filterwarnings() call to this module.  Therefore, to shut up the
-# regression test, the filterwarnings() call has been added to
-# regrtest.py.
-
-from test.test_support import run_unittest, check_syntax_error
-import unittest
-import sys
-# testing import *
-from sys import *
-
-class TokenTests(unittest.TestCase):
-
-    def testBackslash(self):
-        # Backslash means line continuation:
-        x = 1 \
-        + 1
-        self.assertEquals(x, 2, 'backslash for line continuation')
-
-        # Backslash does not means continuation in comments :\
-        x = 0
-        self.assertEquals(x, 0, 'backslash ending comment')
-
-    def testPlainIntegers(self):
-        self.assertEquals(0xff, 255)
-        self.assertEquals(0377, 255)
-        self.assertEquals(2147483647, 017777777777)
-        # "0x" is not a valid literal
-        self.assertRaises(SyntaxError, eval, "0x")
-        from sys import maxint
-        if maxint == 2147483647:
-            self.assertEquals(-2147483647-1, -020000000000)
-            # XXX -2147483648
-            self.assert_(037777777777 > 0)
-            self.assert_(0xffffffff > 0)
-            for s in '2147483648', '040000000000', '0x100000000':
-                try:
-                    x = eval(s)
-                except OverflowError:
-                    self.fail("OverflowError on huge integer literal %r" % s)
-        elif maxint == 9223372036854775807:
-            self.assertEquals(-9223372036854775807-1, -01000000000000000000000)
-            self.assert_(01777777777777777777777 > 0)
-            self.assert_(0xffffffffffffffff > 0)
-            for s in '9223372036854775808', '02000000000000000000000', \
-                     '0x10000000000000000':
-                try:
-                    x = eval(s)
-                except OverflowError:
-                    self.fail("OverflowError on huge integer literal %r" % s)
-        else:
-            self.fail('Weird maxint value %r' % maxint)
-
-    def testLongIntegers(self):
-        x = 0L
-        x = 0l
-        x = 0xffffffffffffffffL
-        x = 0xffffffffffffffffl
-        x = 077777777777777777L
-        x = 077777777777777777l
-        x = 123456789012345678901234567890L
-        x = 123456789012345678901234567890l
-
-    def testFloats(self):
-        x = 3.14
-        x = 314.
-        x = 0.314
-        # XXX x = 000.314
-        x = .314
-        x = 3e14
-        x = 3E14
-        x = 3e-14
-        x = 3e+14
-        x = 3.e14
-        x = .3e14
-        x = 3.1e4
-
-    def testStringLiterals(self):
-        x = ''; y = ""; self.assert_(len(x) == 0 and x == y)
-        x = '\''; y = "'"; self.assert_(len(x) == 1 and x == y and ord(x) == 39)
-        x = '"'; y = "\""; self.assert_(len(x) == 1 and x == y and ord(x) == 34)
-        x = "doesn't \"shrink\" does it"
-        y = 'doesn\'t "shrink" does it'
-        self.assert_(len(x) == 24 and x == y)
-        x = "does \"shrink\" doesn't it"
-        y = 'does "shrink" doesn\'t it'
-        self.assert_(len(x) == 24 and x == y)
-        x = """
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-"""
-        y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n'
-        self.assertEquals(x, y)
-        y = '''
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-'''
-        self.assertEquals(x, y)
-        y = "\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the 'lazy' dog.\n\
-"
-        self.assertEquals(x, y)
-        y = '\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the \'lazy\' dog.\n\
-'
-        self.assertEquals(x, y)
-
-
-class GrammarTests(unittest.TestCase):
-
-    # single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
-    # XXX can't test in a script -- this rule is only used when interactive
-
-    # file_input: (NEWLINE | stmt)* ENDMARKER
-    # Being tested as this very moment this very module
-
-    # expr_input: testlist NEWLINE
-    # XXX Hard to test -- used only in calls to input()
-
-    def testEvalInput(self):
-        # testlist ENDMARKER
-        x = eval('1, 0 or 1')
-
-    def testFuncdef(self):
-        ### 'def' NAME parameters ':' suite
-        ### parameters: '(' [varargslist] ')'
-        ### varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' ('**'|'*' '*') NAME]
-        ###            | ('**'|'*' '*') NAME)
-        ###            | fpdef ['=' test] (',' fpdef ['=' test])* [',']
-        ### fpdef: NAME | '(' fplist ')'
-        ### fplist: fpdef (',' fpdef)* [',']
-        ### arglist: (argument ',')* (argument | *' test [',' '**' test] | '**' test)
-        ### argument: [test '='] test   # Really [keyword '='] test
-        def f1(): pass
-        f1()
-        f1(*())
-        f1(*(), **{})
-        def f2(one_argument): pass
-        def f3(two, arguments): pass
-        def f4(two, (compound, (argument, list))): pass
-        def f5((compound, first), two): pass
-        self.assertEquals(f2.func_code.co_varnames, ('one_argument',))
-        self.assertEquals(f3.func_code.co_varnames, ('two', 'arguments'))
-        if sys.platform.startswith('java'):
-            self.assertEquals(f4.func_code.co_varnames,
-                   ('two', '(compound, (argument, list))', 'compound', 'argument',
-                                'list',))
-            self.assertEquals(f5.func_code.co_varnames,
-                   ('(compound, first)', 'two', 'compound', 'first'))
-        else:
-            self.assertEquals(f4.func_code.co_varnames,
-                  ('two', '.1', 'compound', 'argument',  'list'))
-            self.assertEquals(f5.func_code.co_varnames,
-                  ('.0', 'two', 'compound', 'first'))
-        def a1(one_arg,): pass
-        def a2(two, args,): pass
-        def v0(*rest): pass
-        def v1(a, *rest): pass
-        def v2(a, b, *rest): pass
-        def v3(a, (b, c), *rest): return a, b, c, rest
-
-        f1()
-        f2(1)
-        f2(1,)
-        f3(1, 2)
-        f3(1, 2,)
-        f4(1, (2, (3, 4)))
-        v0()
-        v0(1)
-        v0(1,)
-        v0(1,2)
-        v0(1,2,3,4,5,6,7,8,9,0)
-        v1(1)
-        v1(1,)
-        v1(1,2)
-        v1(1,2,3)
-        v1(1,2,3,4,5,6,7,8,9,0)
-        v2(1,2)
-        v2(1,2,3)
-        v2(1,2,3,4)
-        v2(1,2,3,4,5,6,7,8,9,0)
-        v3(1,(2,3))
-        v3(1,(2,3),4)
-        v3(1,(2,3),4,5,6,7,8,9,0)
-
-        # ceval unpacks the formal arguments into the first argcount names;
-        # thus, the names nested inside tuples must appear after these names.
-        if sys.platform.startswith('java'):
-            self.assertEquals(v3.func_code.co_varnames, ('a', '(b, c)', 'rest', 'b', 'c'))
-        else:
-            self.assertEquals(v3.func_code.co_varnames, ('a', '.1', 'rest', 'b', 'c'))
-        self.assertEquals(v3(1, (2, 3), 4), (1, 2, 3, (4,)))
-        def d01(a=1): pass
-        d01()
-        d01(1)
-        d01(*(1,))
-        d01(**{'a':2})
-        def d11(a, b=1): pass
-        d11(1)
-        d11(1, 2)
-        d11(1, **{'b':2})
-        def d21(a, b, c=1): pass
-        d21(1, 2)
-        d21(1, 2, 3)
-        d21(*(1, 2, 3))
-        d21(1, *(2, 3))
-        d21(1, 2, *(3,))
-        d21(1, 2, **{'c':3})
-        def d02(a=1, b=2): pass
-        d02()
-        d02(1)
-        d02(1, 2)
-        d02(*(1, 2))
-        d02(1, *(2,))
-        d02(1, **{'b':2})
-        d02(**{'a': 1, 'b': 2})
-        def d12(a, b=1, c=2): pass
-        d12(1)
-        d12(1, 2)
-        d12(1, 2, 3)
-        def d22(a, b, c=1, d=2): pass
-        d22(1, 2)
-        d22(1, 2, 3)
-        d22(1, 2, 3, 4)
-        def d01v(a=1, *rest): pass
-        d01v()
-        d01v(1)
-        d01v(1, 2)
-        d01v(*(1, 2, 3, 4))
-        d01v(*(1,))
-        d01v(**{'a':2})
-        def d11v(a, b=1, *rest): pass
-        d11v(1)
-        d11v(1, 2)
-        d11v(1, 2, 3)
-        def d21v(a, b, c=1, *rest): pass
-        d21v(1, 2)
-        d21v(1, 2, 3)
-        d21v(1, 2, 3, 4)
-        d21v(*(1, 2, 3, 4))
-        d21v(1, 2, **{'c': 3})
-        def d02v(a=1, b=2, *rest): pass
-        d02v()
-        d02v(1)
-        d02v(1, 2)
-        d02v(1, 2, 3)
-        d02v(1, *(2, 3, 4))
-        d02v(**{'a': 1, 'b': 2})
-        def d12v(a, b=1, c=2, *rest): pass
-        d12v(1)
-        d12v(1, 2)
-        d12v(1, 2, 3)
-        d12v(1, 2, 3, 4)
-        d12v(*(1, 2, 3, 4))
-        d12v(1, 2, *(3, 4, 5))
-        d12v(1, *(2,), **{'c': 3})
-        def d22v(a, b, c=1, d=2, *rest): pass
-        d22v(1, 2)
-        d22v(1, 2, 3)
-        d22v(1, 2, 3, 4)
-        d22v(1, 2, 3, 4, 5)
-        d22v(*(1, 2, 3, 4))
-        d22v(1, 2, *(3, 4, 5))
-        d22v(1, *(2, 3), **{'d': 4})
-        def d31v((x)): pass
-        d31v(1)
-        def d32v((x,)): pass
-        d32v((1,))
-
-        # keyword arguments after *arglist
-        def f(*args, **kwargs):
-            return args, kwargs
-        self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4),
-                                                    {'x':2, 'y':5}))
-        self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)")
-        self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)")
-
-        # Check ast errors in *args and *kwargs
-        check_syntax_error(self, "f(*g(1=2))")
-        check_syntax_error(self, "f(**g(1=2))")
-
-    def testLambdef(self):
-        ### lambdef: 'lambda' [varargslist] ':' test
-        l1 = lambda : 0
-        self.assertEquals(l1(), 0)
-        l2 = lambda : a[d] # XXX just testing the expression
-        l3 = lambda : [2 < x for x in [-1, 3, 0L]]
-        self.assertEquals(l3(), [0, 1, 0])
-        l4 = lambda x = lambda y = lambda z=1 : z : y() : x()
-        self.assertEquals(l4(), 1)
-        l5 = lambda x, y, z=2: x + y + z
-        self.assertEquals(l5(1, 2), 5)
-        self.assertEquals(l5(1, 2, 3), 6)
-        check_syntax_error(self, "lambda x: x = 2")
-        check_syntax_error(self, "lambda (None,): None")
-
-    ### stmt: simple_stmt | compound_stmt
-    # Tested below
-
-    def testSimpleStmt(self):
-        ### simple_stmt: small_stmt (';' small_stmt)* [';']
-        x = 1; pass; del x
-        def foo():
-            # verify statements that end with semi-colons
-            x = 1; pass; del x;
-        foo()
-
-    ### small_stmt: expr_stmt | print_stmt  | pass_stmt | del_stmt | flow_stmt | import_stmt | global_stmt | access_stmt | exec_stmt
-    # Tested below
-
-    def testExprStmt(self):
-        # (exprlist '=')* exprlist
-        1
-        1, 2, 3
-        x = 1
-        x = 1, 2, 3
-        x = y = z = 1, 2, 3
-        x, y, z = 1, 2, 3
-        abc = a, b, c = x, y, z = xyz = 1, 2, (3, 4)
-
-        check_syntax_error(self, "x + 1 = 1")
-        check_syntax_error(self, "a + 1 = b + 2")
-
-    def testPrintStmt(self):
-        # 'print' (test ',')* [test]
-        import StringIO
-
-        # Can't test printing to real stdout without comparing output
-        # which is not available in unittest.
-        save_stdout = sys.stdout
-        sys.stdout = StringIO.StringIO()
-
-        print 1, 2, 3
-        print 1, 2, 3,
-        print
-        print 0 or 1, 0 or 1,
-        print 0 or 1
-
-        # 'print' '>>' test ','
-        print >> sys.stdout, 1, 2, 3
-        print >> sys.stdout, 1, 2, 3,
-        print >> sys.stdout
-        print >> sys.stdout, 0 or 1, 0 or 1,
-        print >> sys.stdout, 0 or 1
-
-        # test printing to an instance
-        class Gulp:
-            def write(self, msg): pass
-
-        gulp = Gulp()
-        print >> gulp, 1, 2, 3
-        print >> gulp, 1, 2, 3,
-        print >> gulp
-        print >> gulp, 0 or 1, 0 or 1,
-        print >> gulp, 0 or 1
-
-        # test print >> None
-        def driver():
-            oldstdout = sys.stdout
-            sys.stdout = Gulp()
-            try:
-                tellme(Gulp())
-                tellme()
-            finally:
-                sys.stdout = oldstdout
-
-        # we should see this once
-        def tellme(file=sys.stdout):
-            print >> file, 'hello world'
-
-        driver()
-
-        # we should not see this at all
-        def tellme(file=None):
-            print >> file, 'goodbye universe'
-
-        driver()
-
-        self.assertEqual(sys.stdout.getvalue(), '''\
-1 2 3
-1 2 3
-1 1 1
-1 2 3
-1 2 3
-1 1 1
-hello world
-''')
-        sys.stdout = save_stdout
-
-        # syntax errors
-        check_syntax_error(self, 'print ,')
-        check_syntax_error(self, 'print >> x,')
-
-    def testDelStmt(self):
-        # 'del' exprlist
-        abc = [1,2,3]
-        x, y, z = abc
-        xyz = x, y, z
-
-        del abc
-        del x, y, (z, xyz)
-
-    def testPassStmt(self):
-        # 'pass'
-        pass
-
-    # flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt
-    # Tested below
-
-    def testBreakStmt(self):
-        # 'break'
-        while 1: break
-
-    def testContinueStmt(self):
-        # 'continue'
-        i = 1
-        while i: i = 0; continue
-
-        msg = ""
-        while not msg:
-            msg = "ok"
-            try:
-                continue
-                msg = "continue failed to continue inside try"
-            except:
-                msg = "continue inside try called except block"
-        if msg != "ok":
-            self.fail(msg)
-
-        msg = ""
-        while not msg:
-            msg = "finally block not called"
-            try:
-                continue
-            finally:
-                msg = "ok"
-        if msg != "ok":
-            self.fail(msg)
-
-    def test_break_continue_loop(self):
-        # This test warrants an explanation. It is a test specifically for SF bugs
-        # #463359 and #462937. The bug is that a 'break' statement executed or
-        # exception raised inside a try/except inside a loop, *after* a continue
-        # statement has been executed in that loop, will cause the wrong number of
-        # arguments to be popped off the stack and the instruction pointer reset to
-        # a very small number (usually 0.) Because of this, the following test
-        # *must* written as a function, and the tracking vars *must* be function
-        # arguments with default values. Otherwise, the test will loop and loop.
-
-        def test_inner(extra_burning_oil = 1, count=0):
-            big_hippo = 2
-            while big_hippo:
-                count += 1
-                try:
-                    if extra_burning_oil and big_hippo == 1:
-                        extra_burning_oil -= 1
-                        break
-                    big_hippo -= 1
-                    continue
-                except:
-                    raise
-            if count > 2 or big_hippo <> 1:
-                self.fail("continue then break in try/except in loop broken!")
-        test_inner()
-
-    def testReturn(self):
-        # 'return' [testlist]
-        def g1(): return
-        def g2(): return 1
-        g1()
-        x = g2()
-        check_syntax_error(self, "class foo:return 1")
-
-    def testYield(self):
-        check_syntax_error(self, "class foo:yield 1")
-
-    def testRaise(self):
-        # 'raise' test [',' test]
-        try: raise RuntimeError, 'just testing'
-        except RuntimeError: pass
-        try: raise KeyboardInterrupt
-        except KeyboardInterrupt: pass
-
-    def testImport(self):
-        # 'import' dotted_as_names
-        import sys
-        import time, sys
-        # 'from' dotted_name 'import' ('*' | '(' import_as_names ')' | import_as_names)
-        from time import time
-        from time import (time)
-        # not testable inside a function, but already done at top of the module
-        # from sys import *
-        from sys import path, argv
-        from sys import (path, argv)
-        from sys import (path, argv,)
-
-    def testGlobal(self):
-        # 'global' NAME (',' NAME)*
-        global a
-        global a, b
-        global one, two, three, four, five, six, seven, eight, nine, ten
-
-    def testExec(self):
-        # 'exec' expr ['in' expr [',' expr]]
-        z = None
-        del z
-        exec 'z=1+1\n'
-        if z != 2: self.fail('exec \'z=1+1\'\\n')
-        del z
-        exec 'z=1+1'
-        if z != 2: self.fail('exec \'z=1+1\'')
-        z = None
-        del z
-        import types
-        if hasattr(types, "UnicodeType"):
-            exec r"""if 1:
-            exec u'z=1+1\n'
-            if z != 2: self.fail('exec u\'z=1+1\'\\n')
-            del z
-            exec u'z=1+1'
-            if z != 2: self.fail('exec u\'z=1+1\'')"""
-        g = {}
-        exec 'z = 1' in g
-        if g.has_key('__builtins__'): del g['__builtins__']
-        if g != {'z': 1}: self.fail('exec \'z = 1\' in g')
-        g = {}
-        l = {}
-
-        import warnings
-        warnings.filterwarnings("ignore", "global statement", module="<string>")
-        exec 'global a; a = 1; b = 2' in g, l
-        if g.has_key('__builtins__'): del g['__builtins__']
-        if l.has_key('__builtins__'): del l['__builtins__']
-        if (g, l) != ({'a':1}, {'b':2}):
-            self.fail('exec ... in g (%s), l (%s)' %(g,l))
-
-    def testAssert(self):
-        # assert_stmt: 'assert' test [',' test]
-        assert 1
-        assert 1, 1
-        assert lambda x:x
-        assert 1, lambda x:x+1
-        try:
-            assert 0, "msg"
-        except AssertionError, e:
-            self.assertEquals(e.args[0], "msg")
-        else:
-            if __debug__:
-                self.fail("AssertionError not raised by assert 0")
-
-    ### compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef
-    # Tested below
-
-    def testIf(self):
-        # 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
-        if 1: pass
-        if 1: pass
-        else: pass
-        if 0: pass
-        elif 0: pass
-        if 0: pass
-        elif 0: pass
-        elif 0: pass
-        elif 0: pass
-        else: pass
-
-    def testWhile(self):
-        # 'while' test ':' suite ['else' ':' suite]
-        while 0: pass
-        while 0: pass
-        else: pass
-
-        # Issue1920: "while 0" is optimized away,
-        # ensure that the "else" clause is still present.
-        x = 0
-        while 0:
-            x = 1
-        else:
-            x = 2
-        self.assertEquals(x, 2)
-
-    def testFor(self):
-        # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite]
-        for i in 1, 2, 3: pass
-        for i, j, k in (): pass
-        else: pass
-        class Squares:
-            def __init__(self, max):
-                self.max = max
-                self.sofar = []
-            def __len__(self): return len(self.sofar)
-            def __getitem__(self, i):
-                if not 0 <= i < self.max: raise IndexError
-                n = len(self.sofar)
-                while n <= i:
-                    self.sofar.append(n*n)
-                    n = n+1
-                return self.sofar[i]
-        n = 0
-        for x in Squares(10): n = n+x
-        if n != 285:
-            self.fail('for over growing sequence')
-
-        result = []
-        for x, in [(1,), (2,), (3,)]:
-            result.append(x)
-        self.assertEqual(result, [1, 2, 3])
-
-    def testTry(self):
-        ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
-        ###         | 'try' ':' suite 'finally' ':' suite
-        ### except_clause: 'except' [expr [('as' | ',') expr]]
-        try:
-            1/0
-        except ZeroDivisionError:
-            pass
-        else:
-            pass
-        try: 1/0
-        except EOFError: pass
-        except TypeError as msg: pass
-        except RuntimeError, msg: pass
-        except: pass
-        else: pass
-        try: 1/0
-        except (EOFError, TypeError, ZeroDivisionError): pass
-        try: 1/0
-        except (EOFError, TypeError, ZeroDivisionError), msg: pass
-        try: pass
-        finally: pass
-
-    def testSuite(self):
-        # simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
-        if 1: pass
-        if 1:
-            pass
-        if 1:
-            #
-            #
-            #
-            pass
-            pass
-            #
-            pass
-            #
-
-    def testTest(self):
-        ### and_test ('or' and_test)*
-        ### and_test: not_test ('and' not_test)*
-        ### not_test: 'not' not_test | comparison
-        if not 1: pass
-        if 1 and 1: pass
-        if 1 or 1: pass
-        if not not not 1: pass