Version 0.83 (2015-04-04)
------------
 * Add carrier grade NAT ranges
 * Unbreak lots of packing systems by not having a letter in the release version

Version 0.82a (2014-10-07)
------------
 * Fix version numbers in files
 * Correct x.next() -> next(x) python3 compatability

Version 0.82 (2014-10-06)
------------

 * Add support for array slices
 * Add __and__ and isdisjoint for IPSet
 * Fix a bug in IPSet where contains may incorrectly return false
 * Added some fuzz testing

Version 0.81 (2013-04-08)
------------

 * Correct reverseName() for IPv6 addresses, so IP('::1').reverseName() returns correct.
 * Add network mask awareness to v46map()
 * Fix Python 3 errors in IPSet class
 * Make IPSet base class be object when MutableSet isn't available, fixing
   errors in Python 2.5

Version 0.80 (2013-03-26)
------------

 * Drop support of Python older than 2.4
 * Python 3 does not need 2to3 conversion anymore (same code base)
 * Fix adding of non-adjacent networks:
   192.168.0.0/24 + 192.168.255.0/24 made 192.168.0.0/23
 * Fix adding networks that don't create a valid subnet:
   192.168.1.0/24 + 192.168.2.0/24 made 192.168.1.0/23
 * Fix adding with an IPv6 address where .int() was < 32 bits made IPy believe it
  was an IPv4 address:
  ::ffff:0/112 + ::1:0:0/112 made 255.255.0.0/111
 * Add support of IPSets
 * Add support for subtracting a network range
 * Prevent IPv4 and IPv6 ranges from saying they contain each other
 * Add a .v46map() method to convert mapped address ranges
   such as IP('::ffff:192.168.1.1'); RFC 4291
 * Change sort order to more natural: 
   IPv4 before IPv6; less-specific prefixes first (/0 before /32)


Version 0.76 (2013-03-19)
-------------------------

 * ip == other and ip != other doesn't fail with an exception anymore if other
  is not a IP object
 * Add IP.get_mac() method: get the 802.3 MAC address from IPv6 RFC 2464
  address.
 * Fix IP('::/0')[0]: return an IPv6 instead of an IPv4 address

Version 0.75 (2011-04-12)
-------------------------

 * IP('::/0').netmask() gives IP('::') instead of IP('0.0.0.0')

Version 0.74 (2011-02-16)
-------------------------

 * Fix tests for Python 3.1 and 3.2
 * ip.__nonzero__() and (ipa in ipb) return a bool instead of 0 or 1
 * IP('0.0.0.0/0') + IP('0.0.0.0/0') raises an error, fix written by Arfrever

Version 0.73 (2011-02-15)
-------------------------

 * Support Python 3: setup.py runs 2to3
 * Update the ranges for IPv6 IPs
 * Fix reverseName() and reverseNames() for IPv4 in IPv6 addresses
 * Drop support of Python < 2.5

Version 0.72 (2010-11-23)
-------------------------

 * Include examples and MANIFEST.in in source build (add them to
   MANIFEST.in)
 * Remove __rcsid__ constant from IPy module

Version 0.71 (2010-10-01)
-------------------------

 * Use xrange() instead of range()
 * Use isinstance(x, int) instead of type(x) == types.IntType
 * Prepare support of Python3 (use integer division: x // y)
 * Fix IP(long) constructor: ensure that the address is not too large
 * Constructor raise a TypeError if the type is not int, long,
   str or unicode
 * 223.0.0.0/8 is now public (belongs to APNIC)

Version 0.70 (2009-10-29)
-------------------------

 * New "major" version because it may break compatibility
 * Fix __cmp__(): IP('0.0.0.0/0') and IP('0.0.0.0') are not equal
 * Fix IP.net() of the network "::/0": "::" instead of "0.0.0.0".
   IPy 0.63 should fix this bug, but it wasn't.

Version 0.64 (2009-08-19)
-------------------------

 * Create MANIFEST.in to fix setup.py bdist_rpm, fix by Robert Nickel

Version 0.63 (2009-06-23)
-------------------------

 * Fix formatting of "IPv4 in IPv6" network, eg. IP('::ffff:192.168.10.0/120'),
   the netmask ("/120" in the example) was missing!

Version 0.62 (2008-07-15)
-------------------------

 * Fix reverse DNS of IPv6 address: use ".ip6.arpa." suffix instead of
   deprecated ".ip6.int." suffix

Version 0.61 (2008-06-12)
-------------------------

 * Patch from Aras Vaichas allowing the [-1] operator
   to work with an IP object of size 1.

Version 0.60 (2008-05-16)
-------------------------

 * strCompressed() formats '::ffff:a.b.c.d' correctly
 * Use strCompressed() instead of strFullsize() to format IP addresses,
   ouput is smarter with IPv6 address
 * Remove check_addr_prefixlen because it generates invalid IP address

