Edit File: ipaddress.cpython-36.opt-2.pyc
3 48eC#�����������������@���s���d�Z�ddlZdZdZG�dd��de�ZG�dd��de�Zd d ��Zd<dd �Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zd d!��ZG�d"d#��d#�ZejG�d$d%��d%e��ZejG�d&d'��d'e��ZG�d(d)��d)�ZG�d*d+��d+ee�ZG�d,d-��d-e�ZG�d.d/��d/ee�ZG�d0d1��d1�Zee_G�d2d3��d3�ZG�d4d5��d5ee�ZG�d6d7��d7e�ZG�d8d9��d9ee�Z G�d:d;��d;�Z!e!e_dS�)=z1.0�����N� �������c���������������@���s���e�Zd�ZdS�)�AddressValueErrorN)�__name__� __module__�__qualname__��r���r����!/usr/lib64/python3.6/ipaddress.pyr������s���r���c���������������@���s���e�Zd�ZdS�)�NetmaskValueErrorN)r���r���r���r���r���r���r ���r ������s���r ���c�������������C���sT���yt�|��S��ttfk r ���Y�nX�yt|��S��ttfk rB���Y�nX�td|����d�S�)Nz0%r does not appear to be an IPv4 or IPv6 address)�IPv4Addressr���r ����IPv6Address� ValueError)�addressr���r���r ���� ip_address���s����r���Tc�������������C���sX���y t�|�|�S��ttfk r"���Y�nX�y t|�|�S��ttfk rF���Y�nX�td|����d�S�)Nz0%r does not appear to be an IPv4 or IPv6 network)�IPv4Networkr���r ����IPv6Networkr ���)r����strictr���r���r ���� ip_network9���s���� r���c�������������C���sT���yt�|��S��ttfk r ���Y�nX�yt|��S��ttfk rB���Y�nX�td|����d�S�)Nz2%r does not appear to be an IPv4 or IPv6 interface)� IPv4Interfacer���r ���� IPv6Interfacer ���)r���r���r���r ����ip_interfaceW���s����r���c�������������C���s.���y|�j�dd�S��tk r(���td��Y�nX�d�S�)N�����bigz&Address negative or too large for IPv4)�to_bytes� OverflowErrorr ���)r���r���r���r ����v4_int_to_packedz���s����r���c�������������C���s.���y|�j�dd�S��tk r(���td��Y�nX�d�S�)N����r���z&Address negative or too large for IPv6)r���r���r ���)r���r���r���r ����v6_int_to_packed����s���� r���c�������������C���s*���t�|��jd�}t|�dkr&td|����|S�)N�/����zOnly one '/' permitted in %r)�str�split�lenr���)r����addrr���r���r ����_split_optional_netmask����s����r$���c�������������c���sR���t�|��}t|��}}x.|D�]&}|j|jd�kr<||fV��|}|}qW�||fV��d�S�)N����)�iter�next�_ip)� addresses�it�first�last�ipr���r���r ����_find_address_range����s���� r.���c�������������C���s$���|�dkr|S�t�||��|�d�@�j���S�)Nr���r%���)�min� bit_length)Znumber�bitsr���r���r ����_count_righthand_zero_bits����s����r2���c�������������c���s����t�|�t�ot�|t�std��|�j|jkr8td|�|f���|�|krHtd��|�jdkrXt}n|�jdkrht}ntd��|�j}|�j}|j}x^||kr�t t ||�||�d�j��d��}||||�f�}|V��|d|>�7�}|d�|jkr�P�q�W�d�S�)Nz1first and last must be IP addresses, not networksz%%s and %s are not of the same versionz*last IP address must be greater than firstr�������zunknown IP versionr%���) � isinstance�_BaseAddress� TypeError�versionr ���r���r����_max_prefixlenr(���r/���r2���r0���� _ALL_ONES)r+���r,���r-���Zip_bitsZ first_intZlast_intZnbits�netr���r���r ����summarize_address_range����s0���� r;���c�������������c���s����t�|��}i�}xL|rX|j��}|j��}|j|�}|d�kr>|||<�q||kr||=�|j|��qW�d�}x4t|j���D�]$}|d�k r�|j|jkr�ql|V��|}qlW�d�S�)N)�list�pop�supernet�get�append�sorted�values�broadcast_address)r)���Zto_merge�subnetsr:���r>���Zexistingr,���r���r���r ����_collapse_addresses_internal��s$���� rE���c�������������C���s8��g�}g�}g�}x�|�D�]�}t�|t�rT|rH|d�j|jkrHtd||d�f���|j|��q|j|jkr�|r�|d�j|jkr�td||d�f���y|j|j��W�q��tk r����|j|j ��Y�q�X�q|r�|d�j|jkr�td||d�f���|j|��qW�t t|��}|�r,x&t|�D�]\}}|j t||����qW�t||��S�) Nr%���z%%s and %s are not of the same version���rF���rF���rF���rF���rF���)r4���r5����_versionr6���r@���� _prefixlenr8���r-����AttributeError�network_addressrA����setr.����extendr;���rE���)r)���ZaddrsZipsZnetsr-���r+���r,���r���r���r ����collapse_addresses2��s4���� rM���c�������������C���s(���t�|�t�r|�j��S�t�|�t�r$|�j��S�tS�)N)r4����_BaseNetwork�_get_networks_keyr5����_get_address_key�NotImplemented)�objr���r���r ����get_mixed_type_keyh��s ���� rS���c���������������@���s����e�Zd�Zf�Zedd���Zedd���Zedd���Zedd���Zd d ��Z dd��Z ed d���Zedd���Z edd���Zedd���Zedd���Zdd��ZdS�)�_IPAddressBasec�������������C���s���|�j���S�)N)�_explode_shorthand_ip_string)�selfr���r���r ����exploded���s����z_IPAddressBase.explodedc�������������C���s���t�|��S�)N)r ���)rV���r���r���r ���� compressed���s����z_IPAddressBase.compressedc�������������C���s���|�j���S�)N)�_reverse_pointer)rV���r���r���r ����reverse_pointer���s���� z_IPAddressBase.reverse_pointerc�������������C���s���dt�|��f�}t|��d�S�)Nz%200s has no version specified)�type�NotImplementedError)rV����msgr���r���r ���r7������s����z_IPAddressBase.versionc�������������C���sF���|dk�rd}t�|||�jf���||�jkrBd}t�|||�j|�jf���d�S�)Nr���z-%d (< 0) is not permitted as an IPv%d addressz2%d (>= 2**%d) is not permitted as an IPv%d address)r���rG���r9���r8���)rV���r���r]���r���r���r ����_check_int_address���s���� z!_IPAddressBase._check_int_addressc�������������C���s.���t�|�}||kr*d}t|||||�jf���d�S�)Nz6%r (len %d != %d) is not permitted as an IPv%d address)r"���r���rG���)rV���r���Zexpected_lenZaddress_lenr]���r���r���r ����_check_packed_address���s ����z$_IPAddressBase._check_packed_addressc�������������C���s���|�j�|�j�|?�A�S�)N)r9���)�cls� prefixlenr���r���r ����_ip_int_from_prefix���s����z"_IPAddressBase._ip_int_from_prefixc������� ������C���s\���t�||�j�}|�j|�}||?�}d|>�d�}||krX|�jd�}|j|d�}d}t||���|S�)Nr%�������r���z&Netmask pattern %r mixes zeroes & ones)r2���r8���r���r ���) r`����ip_intZtrailing_zeroesra���Zleading_onesZall_onesZbyteslenZdetailsr]���r���r���r ����_prefix_from_ip_int���s���� z"_IPAddressBase._prefix_from_ip_intc�������������C���s���d|�}t�|�d��d�S�)Nz%r is not a valid netmask)r ���)r`���Znetmask_strr]���r���r���r ����_report_invalid_netmask���s����z&_IPAddressBase._report_invalid_netmaskc�������������C���sj���t�jj|�s|�j|��yt|�}W�n�tk r@���|�j|��Y�nX�d|��koV|�jkn��sf|�j|��|S�)Nr���)�_BaseV4�_DECIMAL_DIGITS� issupersetrf����intr ���r8���)r`���Z prefixlen_strra���r���r���r ����_prefix_from_prefix_string���s���� z)_IPAddressBase._prefix_from_prefix_stringc�������������C���s����y|�j�|�}W�n�tk r,���|�j|��Y�nX�y |�j|�S��tk rL���Y�nX�||�jN�}y |�j|�S��tk r����|�j|��Y�nX�d�S�)N)�_ip_int_from_stringr���rf���re���r ���r9���)r`����ip_strrd���r���r���r ����_prefix_from_ip_string���s���� z%_IPAddressBase._prefix_from_ip_stringc�������������C���s���|�j�t|��ffS�)N)� __class__r ���)rV���r���r���r ���� __reduce__��s����z_IPAddressBase.__reduce__N)r���r���r���� __slots__�propertyrW���rX���rZ���r7���r^���r_����classmethodrb���re���rf���rk���rn���rp���r���r���r���r ���rT������s��� "rT���c���������������@���s`���e�Zd�Zf�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Z d d��Z dd��Zdd��Zdd��Z dS�)r5���c�������������C���s���|�j�S�)N)r(���)rV���r���r���r ����__int__&��s����z_BaseAddress.__int__c�������������C���s2���y|�j�|j�ko|�j|jkS��tk r,���tS�X�d�S�)N)r(���rG���rI���rQ���)rV����otherr���r���r ����__eq__)��s ����z_BaseAddress.__eq__c�������������C���sF���t�|t�stS�|�j|jkr*td|�|f���|�j|jkrB|�j|jk�S�dS�)Nz%%s and %s are not of the same versionF)r4���r5���rQ���rG���r6���r(���)rV���ru���r���r���r ����__lt__0��s���� z_BaseAddress.__lt__c�������������C���s ���t�|t�stS�|�jt|��|��S�)N)r4���rj���rQ���ro���)rV���ru���r���r���r ����__add__<��s���� z_BaseAddress.__add__c�������������C���s ���t�|t�stS�|�jt|��|��S�)N)r4���rj���rQ���ro���)rV���ru���r���r���r ����__sub__A��s���� z_BaseAddress.__sub__c�������������C���s���d|�j�jt|��f�S�)Nz%s(%r))ro���r���r ���)rV���r���r���r ����__repr__F��s����z_BaseAddress.__repr__c�������������C���s���t�|�j|�j��S�)N)r ����_string_from_ip_intr(���)rV���r���r���r ����__str__I��s����z_BaseAddress.__str__c�������������C���s���t�tt|�j���S�)N)�hash�hexrj���r(���)rV���r���r���r ����__hash__L��s����z_BaseAddress.__hash__c�������������C���s ���|�j�|�fS�)N)rG���)rV���r���r���r ���rP���O��s����z_BaseAddress._get_address_keyc�������������C���s���|�j�|�jffS�)N)ro���r(���)rV���r���r���r ���rp���R��s����z_BaseAddress.__reduce__N)r���r���r���rq���rt���rv���rw���rx���ry���rz���r|���r���rP���rp���r���r���r���r ���r5�����s��� r5���c���������������@���sD��e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z edd���Zedd���Zedd���Zedd���Zedd ���Zed!d"���Zed#d$���Zed%d&���Zd'd(��Zd)d*��Zd+d,��ZdAd/d0�ZdBd1d2�Zed3d4���Zed5d6���Zed7d8���Zed9d:���Zed;d<���Z ed=d>���Z!ed?d@���Z"d.S�)CrN���c�������������C���s ���i�|�_�d�S�)N)�_cache)rV���r���r���r���r ����__init___��s����z_BaseNetwork.__init__c�������������C���s���d|�j�jt|��f�S�)Nz%s(%r))ro���r���r ���)rV���r���r���r ���rz���b��s����z_BaseNetwork.__repr__c�������������C���s���d|�j�|�jf�S�)Nz%s/%d)rJ���ra���)rV���r���r���r ���r|���e��s����z_BaseNetwork.__str__c�������������c���s<���t�|�j�}t�|�j�}x"t|d�|�D�]}|�j|�V��q$W�d�S�)Nr%���)rj���rJ���rC����range�_address_class)rV����network� broadcast�xr���r���r ����hostsh��s���� z_BaseNetwork.hostsc�������������c���s<���t�|�j�}t�|�j�}x"t||d��D�]}|�j|�V��q$W�d�S�)Nr%���)rj���rJ���rC���r����r����)rV���r����r����r����r���r���r ����__iter__t��s���� z_BaseNetwork.__iter__c�������������C���sl���t�|�j�}t�|�j�}|dkr>||�|kr0td��|�j||��S�|d7�}||�|k�rZtd��|�j||��S�d�S�)Nr���zaddress out of ranger%���)rj���rJ���rC���� IndexErrorr����)rV����nr����r����r���r���r ����__getitem__z��s���� z_BaseNetwork.__getitem__c�������������C���s^���t�|t�stS�|�j|jkr*td|�|f���|�j|jkrB|�j|jk�S�|�j|jkrZ|�j|jk�S�dS�)Nz%%s and %s are not of the same versionF)r4���rN���rQ���rG���r6���rJ����netmask)rV���ru���r���r���r ���rw������s���� z_BaseNetwork.__lt__c�������������C���sF���y,|�j�|j�ko,|�j|jko,t|�j�t|j�kS��tk r@���tS�X�d�S�)N)rG���rJ���rj���r����rI���rQ���)rV���ru���r���r���r ���rv������s����z_BaseNetwork.__eq__c�������������C���s���t�t|�j�t|�j�A��S�)N)r}���rj���rJ���r����)rV���r���r���r ���r������s����z_BaseNetwork.__hash__c�������������C���sL���|�j�|j�krdS�t|t�rdS�t|�j�t|j���koBt|�j�kS���S�d�S�)NF)rG���r4���rN���rj���rJ���r(���rC���)rV���ru���r���r���r ����__contains__���s���� z_BaseNetwork.__contains__c�������������C���s(���|�j�|kp&|�j|kp&|j�|�kp&|j|�kS�)N)rJ���rC���)rV���ru���r���r���r ����overlaps���s���� z_BaseNetwork.overlapsc�������������C���s<���|�j�jd�}|d�kr8|�jt|�j�t|�j�B��}||�j�d<�|S�)NrC���)r����r?���r����rj���rJ����hostmask)rV���r����r���r���r ���rC������s���� z_BaseNetwork.broadcast_addressc�������������C���s8���|�j�jd�}|d�kr4|�jt|�j�|�jA��}||�j�d<�|S�)Nr����)r����r?���r����rj���r����r9���)rV���r����r���r���r ���r�������s ���� z_BaseNetwork.hostmaskc�������������C���s���d|�j�|�jf�S�)Nz%s/%d)rJ���rH���)rV���r���r���r ����with_prefixlen���s����z_BaseNetwork.with_prefixlenc�������������C���s���d|�j�|�jf�S�)Nz%s/%s)rJ���r����)rV���r���r���r ����with_netmask���s����z_BaseNetwork.with_netmaskc�������������C���s���d|�j�|�jf�S�)Nz%s/%s)rJ���r����)rV���r���r���r ���� with_hostmask���s����z_BaseNetwork.with_hostmaskc�������������C���s���t�|�j�t�|�j��d�S�)Nr%���)rj���rC���rJ���)rV���r���r���r ���� num_addresses���s����z_BaseNetwork.num_addressesc�������������C���s���dt�|��f�}t|��d�S�)Nz%%200s has no associated address class)r[���r\���)rV���r]���r���r���r ���r�������s����z_BaseNetwork._address_classc�������������C���s���|�j�S�)N)rH���)rV���r���r���r ���ra������s����z_BaseNetwork.prefixlenc�������������c���sD��|�j�|j�kstd|�|f���t|t�s2td|���|j|�jkoH|j|�jksZtd||�f���||�krfd�S�|jd|j|jf��}|�j ��\}}x�||ko�||k�r|j|jkr�|j|jkr�|V��|j ��\}}q�|j|jkr�|j|jkr�|V��|j ��\}}q�t d|||f���q�W�||k�r|V��n$||k�r.|V��nt d|||f���d�S�)Nz%%s and %s are not of the same versionz%s is not a network objectz%s not contained in %sz%s/%sz3Error performing exclusion: s1: %s s2: %s other: %s)rG���r6���r4���rN���rJ���rC���r ���ro���ra���rD����AssertionError)rV���ru����s1�s2r���r���r ����address_exclude���s<����$ z_BaseNetwork.address_excludec�������������C���s`���|�j�|j�krtd|�|f���|�j|jk�r,dS�|�j|jkr<dS�|�j|jk�rLdS�|�j|jkr\dS�dS�)Nz"%s and %s are not of the same typer%���r���rF���rF���)rG���r6���rJ���r����)rV���ru���r���r���r ����compare_networks.��s����!z_BaseNetwork.compare_networksc�������������C���s���|�j�|�j|�jfS�)N)rG���rJ���r����)rV���r���r���r ���rO���^��s����z_BaseNetwork._get_networks_keyr%���Nc������� ������c���s����|�j�|�jkr|�V��d�S�|d�k rJ||�j�k�r0td��|dkr@td��||�j��}|dk�rZtd��|�j�|�}||�jkr~td||�f���t|�j�}t|�j�d�}t|�j�d�|?�}x(t|||�D�]}|�j||f�}|V��q�W�d�S�)Nznew prefix must be longerr%���z(cannot set prefixlen_diff and new_prefixr���zprefix length diff must be > 0z0prefix length diff %d is invalid for netblock %s) rH���r8���r ���rj���rJ���rC���r����r����ro���) rV����prefixlen_diff� new_prefix� new_prefixlen�start�end�stepZnew_addrZcurrentr���r���r ���rD���h��s,���� z_BaseNetwork.subnetsc�������������C���s����|�j�dkr|�S�|d�k rB||�j�kr(td��|dkr8td��|�j�|�}|�j|�}|dk�rftd|�j|f���|�jt|�j�t|�j�|>�@�|f�S�)Nr���znew prefix must be shorterr%���z(cannot set prefixlen_diff and new_prefixz;current prefixlen is %d, cannot have a prefixlen_diff of %d)rH���r ���ra���ro���rj���rJ���r����)rV���r����r����r����r���r���r ���r>������s ���� z_BaseNetwork.supernetc�������������C���s���|�j�jo|�jjS�)N)rJ����is_multicastrC���)rV���r���r���r ���r�������s���� z_BaseNetwork.is_multicastc�������������C���s���|�j�jo|�jjS�)N)rJ����is_reservedrC���)rV���r���r���r ���r�������s���� z_BaseNetwork.is_reservedc�������������C���s���|�j�jo|�jjS�)N)rJ���� is_link_localrC���)rV���r���r���r ���r�������s����z_BaseNetwork.is_link_localc�������������C���s���|�j�jo|�jjS�)N)rJ���� is_privaterC���)rV���r���r���r ���r�������s���� z_BaseNetwork.is_privatec�������������C���s���|�j��S�)N)r����)rV���r���r���r ���� is_global���s���� z_BaseNetwork.is_globalc�������������C���s���|�j�jo|�jjS�)N)rJ����is_unspecifiedrC���)rV���r���r���r ���r�������s���� z_BaseNetwork.is_unspecifiedc�������������C���s���|�j�jo|�jjS�)N)rJ����is_loopbackrC���)rV���r���r���r ���r������s���� z_BaseNetwork.is_loopback)r%���N)r%���N)#r���r���r���r����rz���r|���r����r����r����rw���rv���r���r����r����rr���rC���r����r����r����r����r����r����ra���r����r����rO���rD���r>���r����r����r����r����r����r����r����r���r���r���r ���rN���V��s>��� N0 5 )rN���c������������ ���@���s����e�Zd�Zf�ZdZde�d�Zed�Zeddddd d ddd h �Z eZ i�Zdd��Ze dd���Ze dd���Ze dd���Ze dd���Zdd��Zdd��Zdd��Zedd���Zed d!���Zd"S�)#rg���r���r���r%���� 0123456789������������������������������r���r���c�������������C���s���t�|��S�)N)r ���)rV���r���r���r ���rU���0��s����z$_BaseV4._explode_shorthand_ip_stringc�������������C���sn���||�j�krdt|t�r|}n.y|�j|�}W�n�tk rF���|�j|�}Y�nX�t|�j|��}||f|�j�|<�|�j�|�S�)N)�_netmask_cacher4���rj���rk���r ���rn���r���rb���)r`����argra���r����r���r���r ���� _make_netmask3��s���� z_BaseV4._make_netmaskc�������������C���s|���|st�d��|jd�}t|�dkr.t�d|���ytjt|�j|�d�S��tk rv�}�zt�d||f��d��W�Y�d�d�}~X�nX�d�S�)NzAddress cannot be empty�.r���zExpected 4 octets in %rr���z%s in %r)r���r!���r"���rj���� from_bytes�map�_parse_octetr ���)r`���rm���Zoctets�excr���r���r ���rl���K��s���� z_BaseV4._ip_int_from_stringc�������������C���s����|st�d��|�jj|�s(d}t�||���t|�dkrDd}t�||���t|d�}|dkrr|d�dkrrd }t�||���|d kr�t�d|���|S�)NzEmpty octet not permittedz#Only decimal digits permitted in %r����z$At most 3 characters permitted in %r� �������r����0z3Ambiguous (octal/decimal) value in %r not permittedr����zOctet %d (> 255) not permitted)r ���rh���ri���r"���rj���)r`���Z octet_strr]���Z octet_intr���r���r ���r����e��s���� z_BaseV4._parse_octetc�������������C���s���dj�tt|jdd���S�)Nr����r���r���)�joinr����r ���r���)r`���rd���r���r���r ���r{������s����z_BaseV4._string_from_ip_intc�������������C���s����|j�d�}t|�dkr�y$x|D�]}t|�|�jkrdS�qW�W�n�tk rN���dS�X�x0t|�D�]$\}}|dkrZ|||d��krZdS�qZW�dS�yt|�}W�n�tk r����dS�X�d|��ko�|�jkS���S�)Nr����r���Fr���r%���T)r!���r"���rj����_valid_mask_octetsr ���� enumerater8���)rV���r�����maskr�����idx�yr���r���r ����_is_valid_netmask���s"���� z_BaseV4._is_valid_netmaskc����������������sh���|j�d�}y��fdd�tt|�D��}W�n�tk r:���dS�X�t|�t|�krPdS�|d�|d�k�rddS�dS�) Nr����c����������������s���g�|�]}|��j�kr|�qS�r���)r����)�.0r����)rV���r���r ���� <listcomp>���s����z(_BaseV4._is_hostmask.<locals>.<listcomp>Fr���r%���TrF���)r!���r����rj���r ���r"���)rV���rm���r1����partsr���)rV���r ����_is_hostmask���s���� z_BaseV4._is_hostmaskc�������������C���s&���t�|��jd�d�d�d��}dj|�d�S�)Nr����r%���z .in-addr.arparF���)r ���r!���r����)rV���Zreverse_octetsr���r���r ���rY������s����z_BaseV4._reverse_pointerc�������������C���s���|�j�S�)N)r8���)rV���r���r���r ���� max_prefixlen���s����z_BaseV4.max_prefixlenc�������������C���s���|�j�S�)N)rG���)rV���r���r���r ���r7������s����z_BaseV4.versionN)r���r���r���rq���rG���� IPV4LENGTHr9���� frozensetrh���r����r8���r����rU���rs���r����rl���r����r{���r����r����rY���rr���r����r7���r���r���r���r ���rg�����s"��� % rg���c���������������@���s����e�Zd�ZdZdd��Zedd���Zedd���Zeej ��d d ����Z eej ��dd����Zed d���Zedd���Z edd���Zedd���ZdS�)r���r(����__weakref__c�������������C���sr���t�|t�r|�j|��||�_d�S�t�|t�rF|�j|d��tj|d�|�_d�S�t|�}d|krbtd|���|�j |�|�_d�S�)Nr���r���r���zUnexpected '/' in %r) r4���rj���r^���r(����bytesr_���r����r ���r���rl���)rV���r����addr_strr���r���r ���r�������s���� zIPv4Address.__init__c�������������C���s ���t�|�j�S�)N)r���r(���)rV���r���r���r ����packed��s����zIPv4Address.packedc�������������C���s���|�|�j�jkS�)N)� _constants�_reserved_network)rV���r���r���r ���r������s���� zIPv4Address.is_reservedc����������������s���t���fdd���jjD���S�)Nc�������������3���s���|�]}��|kV��qd�S�)Nr���)r����r:���)rV���r���r ���� <genexpr> ��s����z)IPv4Address.is_private.<locals>.<genexpr>)�anyr�����_private_networks)rV���r���)rV���r ���r������s���� zIPv4Address.is_privatec�������������C���s���|�|�j�jko|�j�S�)N)r�����_public_networkr����)rV���r���r���r ���r����"��s����zIPv4Address.is_globalc�������������C���s���|�|�j�jkS�)N)r�����_multicast_network)rV���r���r���r ���r����'��s���� zIPv4Address.is_multicastc�������������C���s���|�|�j�jkS�)N)r�����_unspecified_address)rV���r���r���r ���r����2��s���� zIPv4Address.is_unspecifiedc�������������C���s���|�|�j�jkS�)N)r�����_loopback_network)rV���r���r���r ���r����=��s����zIPv4Address.is_loopbackc�������������C���s���|�|�j�jkS�)N)r�����_linklocal_network)rV���r���r���r ���r����G��s����zIPv4Address.is_link_localN)r(���r����)r���r���r���rq���r����rr���r����r����� functools� lru_cacher����r����r����r����r����r����r���r���r���r ���r������s���# r���c���������������@���sj���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zej Z e dd���Ze d d���Ze dd���Z e dd���ZdS�)r���c�������������C���s����t�|ttf�r2tj|�|��t|�j�|�_|�j|�_ d�S�t�|t �r�tj|�|d���t|�dkrht|d��|�_ n|�j|�_ t|dd�|�_|�jj|�_|�jj |�_ d�S�t|�}tj|�|d���t|dd�|�_|�jj |�_ |�jj|�_|�jj |�_ d�S�)Nr���r%���F)r���)r4���r����rj���r���r����r���r(���r����r8���rH����tupler"���r����r����r$���)rV���r���r#���r���r���r ���r����T��s(���� zIPv4Interface.__init__c�������������C���s���d|�j�|�j�|�jjf�S�)Nz%s/%d)r{���r(���r����ra���)rV���r���r���r ���r|���p��s����zIPv4Interface.__str__c�������������C���sD���t�j|�|�}|�s|tkr|S�y|�j|jkS��tk r>���dS�X�d�S�)NF)r���rv���rQ���r����rI���)rV���ru���� address_equalr���r���r ���rv���t��s����zIPv4Interface.__eq__c�������������C���sN���t�j|�|�}|tkrtS�y|�j|jk�p4|�j|jko4|S��tk rH���dS�X�d�S�)NF)r���rw���rQ���r����rI���)rV���ru����address_lessr���r���r ���rw������s����zIPv4Interface.__lt__c�������������C���s���t�|�j|�jt|�jj�f�S�)N)r}���r(���rH���rj���r����rJ���)rV���r���r���r ���r������s����zIPv4Interface.__hash__c�������������C���s ���t�|�j�S�)N)r���r(���)rV���r���r���r ���r-������s����zIPv4Interface.ipc�������������C���s���d|�j�|�j�|�jf�S�)Nz%s/%s)r{���r(���rH���)rV���r���r���r ���r�������s����zIPv4Interface.with_prefixlenc�������������C���s���d|�j�|�j�|�jf�S�)Nz%s/%s)r{���r(���r����)rV���r���r���r ���r�������s����zIPv4Interface.with_netmaskc�������������C���s���d|�j�|�j�|�jf�S�)Nz%s/%s)r{���r(���r����)rV���r���r���r ���r�������s����zIPv4Interface.with_hostmaskN)r���r���r���r����r|���rv���rw���r���rT���rp���rr���r-���r����r����r����r���r���r���r ���r���R��s���r���c���������������@���s.���e�Zd�ZeZddd�Zeej��dd����Z dS�)r���Tc�������������C���s����t�j|�|��t|ttf�r&|}|�j}n^t|t�rT|d�}t|�dkrL|d�n|�j}n0t|�}|�j |d��}t|�dkr~|d�n|�j}t |�|�_|�j|�\|�_ |�_t|�j�}|t|�j �@�|kr�|r�td|����nt |t|�j �@��|�_|�j|�jd�kr�|�j|�_d�S�)Nr���r%���r���z%s has host bits set)rN���r����r4���rj���r����r8���r����r"���r$���rl���r���rJ���r����r����rH���r ���r����r����)rV���r���r���r#���r�����argsr����r���r���r ���r�������s(����% zIPv4Network.__init__c�������������C���s&���|�j�td�ko|�jtd�k�o$|�j�S�)Nz 100.64.0.0/10)rJ���r���rC���r����)rV���r���r���r ���r�������s���� zIPv4Network.is_globalN)T) r���r���r���r���r����r����rr���r����r����r����r���r���r���r ���r������s��� Cr���c���������������@���s����e�Zd�Zed�Zed�Zed�Zed�Zed�ed�ed�ed�ed�ed�ed �ed �ed�ed�ed �ed�ed�ed�gZed�Z e d�ZdS�)�_IPv4Constantsz169.254.0.0/16z127.0.0.0/8z224.0.0.0/4z 100.64.0.0/10z 0.0.0.0/8z 10.0.0.0/8z 172.16.0.0/12z192.0.0.0/29z192.0.0.170/31z192.0.2.0/24z192.168.0.0/16z 198.18.0.0/15z198.51.100.0/24z203.0.113.0/24z240.0.0.0/4z255.255.255.255/32z0.0.0.0N)r���r���r���r���r����r����r����r����r����r����r���r����r���r���r���r ���r������s(��� r����c���������������@���s����e�Zd�Zf�ZdZde�d�ZdZed�Z eZ i�Zedd���Z edd ���Zed d���Zedd ���Zeddd��Zdd��Zdd��Zedd���Zedd���ZdS�)�_BaseV6r3���r���r%���rc���Z0123456789ABCDEFabcdefc�������������C���sJ���||�j�kr@t|t�r|}n |�j|�}t|�j|��}||f|�j�|<�|�j�|�S�)N)r����r4���rj���rk���r���rb���)r`���r����ra���r����r���r���r ���r����<��s���� z_BaseV6._make_netmaskc�������������C���s���|st�d��|jd�}d}t|�|k�r:d||f�}t�|��d|d�kr�yt|j���j}W�n4�t�k r��}�zt�d||f��d��W�Y�d�d�}~X�nX�|jd|d ?�d @����|jd|d @����|�jd�}t|�|kr�d|d�|f�}t�|��d�}xDtdt|�d��D�].} || ���s�|d�k �r$d|�}t�|��| }��q�W�|d�k �r�|} t|�|�d�}|d ��st| d8�} | �rtd}t�||���|d��s�|d8�}|�r�d}t�||���|�j| |��}|dk��r:d}t�||�jd�|f���njt|�|�jk�r�d}t�||�j|f���|d ��sd}t�||���|d��s*d}t�||���t|�} d }d }ytd } x,t| �D�] } | d K�} | |�j || ��O�} �qJW�| d |�K�} x0t|�d �D�] } | d K�} | |�j || ��O�} �q�W�| S��t k �r��}�zt�d||f��d��W�Y�d�d�}~X�nX�d�S�)NzAddress cannot be empty�:r����z At least %d parts expected in %rr����r%���z%s in %rz%xr���i����z!At most %d colons permitted in %rz At most one '::' permitted in %rr���z0Leading ':' only permitted as part of '::' in %rz1Trailing ':' only permitted as part of '::' in %rz/Expected at most %d other parts with '::' in %rz,Exactly %d parts expected without '::' in %rrF���rF���rF���)r���r!���r"���r���r=���r(���r@���� _HEXTET_COUNTr����� _parse_hextetr ���)r`���rm���r����Z _min_partsr]���Zipv4_intr����Z _max_partsZ skip_index�iZparts_hiZparts_loZ parts_skippedrd���r���r���r ���rl���N��s����� $ z_BaseV6._ip_int_from_stringc�������������C���s>���|�j�j|�std|���t|�dkr4d}t||���t|d�S�)NzOnly hex digits permitted in %rr���z$At most 4 characters permitted in %rr���)�_HEX_DIGITSri���r ���r"���rj���)r`���Z hextet_strr]���r���r���r ���r�������s����z_BaseV6._parse_hextetc������� ������C���s����d}d}d}d}xJt�|�D�]>\}}|dkrP|d7�}|dkr>|}||krX|}|}qd}d}qW�|dkr�||�}|t|�kr�|dg7�}dg|||�<�|dkr�dg|�}|S�) Nr%���r���r������rF���rF���rF���rF���)r����r"���) r`����hextetsZbest_doublecolon_startZbest_doublecolon_lenZdoublecolon_startZdoublecolon_len�indexZhextetZbest_doublecolon_endr���r���r ����_compress_hextets���s.���� z_BaseV6._compress_hextetsNc����������������sZ���|d�krt�|�j�}||�jkr$td��d|�����fdd�tddd�D��}|�j|�}dj|�S�) NzIPv6 address is too largez%032xc����������������s&���g�|�]}d�t���||d���d���qS�)z%xr���r���)rj���)r����r����)�hex_strr���r ���r������s����z/_BaseV6._string_from_ip_int.<locals>.<listcomp>r���r���r���r����)rj���r(���r9���r ���r����r����r����)r`���rd���r����r���)r����r ���r{������s���� z_BaseV6._string_from_ip_intc����������������s����t�|�t�rt|�j�}nt�|�t�r,t|�j�}nt|��}|�j|�}d|�����fdd�tddd�D��}t�|�ttf�r�ddj |�|�j f�S�dj |�S�) Nz%032xc����������������s���g�|�]}��||d�����qS�)r���r���)r����r����)r����r���r ���r����-��s����z8_BaseV6._explode_shorthand_ip_string.<locals>.<listcomp>r���r���r���z%s/%dr����)r4���r���r ���rJ���r���r-���rl���r����rN���r����rH���)rV���rm���rd���r����r���)r����r ���rU�����s���� z$_BaseV6._explode_shorthand_ip_stringc�������������C���s&���|�j�d�d�d��jdd�}dj|�d�S�)Nr%���r����r����r����z .ip6.arparF���)rW����replacer����)rV���Z reverse_charsr���r���r ���rY���2��s����z_BaseV6._reverse_pointerc�������������C���s���|�j�S�)N)r8���)rV���r���r���r ���r����;��s����z_BaseV6.max_prefixlenc�������������C���s���|�j�S�)N)rG���)rV���r���r���r ���r7���?��s����z_BaseV6.version)N)r���r���r���rq���rG���� IPV6LENGTHr9���r����r����r����r8���r����rs���r����rl���r����r����r{���rU���rY���rr���r����r7���r���r���r���r ���r����(��s"��� h0 r����c���������������@���s����e�Zd�ZdZdd��Zedd���Zedd���Zed d ���Zedd���Z ed d���Z eej��dd����Z edd���Zedd���Zedd���Zedd���Zedd���Zedd���ZdS�)r���r(���r����c�������������C���sr���t�|t�r|�j|��||�_d�S�t�|t�rF|�j|d��tj|d�|�_d�S�t|�}d|krbtd|���|�j |�|�_d�S�)Nr���r���r���zUnexpected '/' in %r) r4���rj���r^���r(���r����r_���r����r ���r���rl���)rV���r���r����r���r���r ���r����J��s���� zIPv6Address.__init__c�������������C���s ���t�|�j�S�)N)r���r(���)rV���r���r���r ���r����n��s����zIPv6Address.packedc�������������C���s���|�|�j�jkS�)N)r����r����)rV���r���r���r ���r����s��s���� zIPv6Address.is_multicastc����������������s���t���fdd���jjD���S�)Nc�������������3���s���|�]}��|kV��qd�S�)Nr���)r����r����)rV���r���r ���r�������s����z*IPv6Address.is_reserved.<locals>.<genexpr>)r����r�����_reserved_networks)rV���r���)rV���r ���r����~��s���� zIPv6Address.is_reservedc�������������C���s���|�|�j�jkS�)N)r����r����)rV���r���r���r ���r�������s����zIPv6Address.is_link_localc�������������C���s���|�|�j�jkS�)N)r�����_sitelocal_network)rV���r���r���r ���� is_site_local���s����zIPv6Address.is_site_localc����������������s���t���fdd���jjD���S�)Nc�������������3���s���|�]}��|kV��qd�S�)Nr���)r����r:���)rV���r���r ���r�������s����z)IPv6Address.is_private.<locals>.<genexpr>)r����r����r����)rV���r���)rV���r ���r�������s���� zIPv6Address.is_privatec�������������C���s���|�j��S�)N)r����)rV���r���r���r ���r�������s���� zIPv6Address.is_globalc�������������C���s ���|�j�dkS�)Nr���)r(���)rV���r���r���r ���r�������s���� zIPv6Address.is_unspecifiedc�������������C���s ���|�j�dkS�)Nr%���)r(���)rV���r���r���r ���r�������s���� zIPv6Address.is_loopbackc�������������C���s ���|�j�d?�dkrd�S�t|�j�d@��S�)Nr���i����l������)r(���r���)rV���r���r���r ����ipv4_mapped���s���� zIPv6Address.ipv4_mappedc�������������C���s4���|�j�d?�dkrd�S�t|�j�d?�d@��t|�j��d@��fS�)N�`���i�� �@���l������)r(���r���)rV���r���r���r ����teredo���s���� zIPv6Address.teredoc�������������C���s$���|�j�d?�dkrd�S�t|�j�d?�d@��S�)N�p���i ���P���l������)r(���r���)rV���r���r���r ���� sixtofour���s���� zIPv6Address.sixtofourN)r(���r����)r���r���r���rq���r����rr���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r���r���r���r ���r���D��s���$ r���c���������������@���s����e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zej Z e dd���Ze d d���Ze dd���Z e dd���Ze dd���Ze dd���ZdS�)r���c�������������C���s����t�|ttf�r2tj|�|��t|�j�|�_|�j|�_ d�S�t�|t �r�tj|�|d���t|�dkrht|d��|�_ n|�j|�_ t|dd�|�_|�jj|�_|�jj |�_ d�S�t|�}tj|�|d���t|dd�|�_|�jj|�_|�jj |�_ |�jj |�_ d�S�)Nr���r%���F)r���)r4���r����rj���r���r����r���r(���r����r8���rH���r����r"���r����r����r$���)rV���r���r#���r���r���r ���r�������s(���� zIPv6Interface.__init__c�������������C���s���d|�j�|�j�|�jjf�S�)Nz%s/%d)r{���r(���r����ra���)rV���r���r���r ���r|�����s����zIPv6Interface.__str__c�������������C���sD���t�j|�|�}|�s|tkr|S�y|�j|jkS��tk r>���dS�X�d�S�)NF)r���rv���rQ���r����rI���)rV���ru���r����r���r���r ���rv�����s����zIPv6Interface.__eq__c�������������C���sN���t�j|�|�}|tkrtS�y|�j|jk�p4|�j|jko4|S��tk rH���dS�X�d�S�)NF)r���rw���rQ���r����rI���)rV���ru���r����r���r���r ���rw���"��s����zIPv6Interface.__lt__c�������������C���s���t�|�j|�jt|�jj�f�S�)N)r}���r(���rH���rj���r����rJ���)rV���r���r���r ���r���.��s����zIPv6Interface.__hash__c�������������C���s ���t�|�j�S�)N)r���r(���)rV���r���r���r ���r-���3��s����zIPv6Interface.ipc�������������C���s���d|�j�|�j�|�jf�S�)Nz%s/%s)r{���r(���rH���)rV���r���r���r ���r����7��s����zIPv6Interface.with_prefixlenc�������������C���s���d|�j�|�j�|�jf�S�)Nz%s/%s)r{���r(���r����)rV���r���r���r ���r����<��s����zIPv6Interface.with_netmaskc�������������C���s���d|�j�|�j�|�jf�S�)Nz%s/%s)r{���r(���r����)rV���r���r���r ���r����A��s����zIPv6Interface.with_hostmaskc�������������C���s���|�j�dko|�jjS�)Nr���)r(���r����r����)rV���r���r���r ���r����F��s����zIPv6Interface.is_unspecifiedc�������������C���s���|�j�dko|�jjS�)Nr%���)r(���r����r����)rV���r���r���r ���r����J��s����zIPv6Interface.is_loopbackN)r���r���r���r����r|���rv���rw���r���rT���rp���rr���r-���r����r����r����r����r����r���r���r���r ���r������s���r���c���������������@���s.���e�Zd�ZeZd dd�Zdd��Zedd���ZdS�) r���Tc�������������C���s����t�j|�|��t|ttf�r&|}|�j}n^t|t�rT|d�}t|�dkrL|d�n|�j}n0t|�}|�j |d��}t|�dkr~|d�n|�j}t |�|�_|�j|�\|�_ |�_t|�j�}|t|�j �@�|kr�|r�td|����nt |t|�j �@��|�_|�j|�jd�kr�|�j|�_d�S�)Nr���r%���r���z%s has host bits set)rN���r����r4���rj���r����r8���r����r"���r$���rl���r���rJ���r����r����rH���r ���r����r����)rV���r���r���r#���r����r����r����r���r���r ���r����_��s(���� zIPv6Network.__init__c�������������c���s@���t�|�j�}t�|�j�}x&t|d�|d��D�]}|�j|�V��q(W�d�S�)Nr%���)rj���rJ���rC���r����r����)rV���r����r����r����r���r���r ���r�������s���� zIPv6Network.hostsc�������������C���s���|�j�jo|�jjS�)N)rJ���r����rC���)rV���r���r���r ���r�������s����zIPv6Network.is_site_localN)T) r���r���r���r���r����r����r����rr���r����r���r���r���r ���r���O��s��� >r���c���������������@���s����e�Zd�Zed�Zed�Zed�ed�ed�ed�ed�ed�ed �ed �ed�ed�g Zed�ed �ed�ed�ed�ed�ed�ed�ed�ed�ed�ed�ed�ed�ed�gZed�ZdS�)�_IPv6Constantsz fe80::/10zff00::/8z::1/128z::/128z ::ffff:0:0/96z100::/64z 2001::/23z2001:2::/48z 2001:db8::/32z2001:10::/28zfc00::/7z::/8z100::/8z200::/7z400::/6z800::/5z1000::/4z4000::/3z6000::/3z8000::/3zA000::/3zC000::/3zE000::/4zF000::/5zF800::/6zFE00::/9z fec0::/10N) r���r���r���r���r����r����r����r����r����r���r���r���r ���r�������s*��� r����)T)"�__version__r����r����r����r ���r���r ���r���r���r���r���r���r$���r.���r2���r;���rE���rM���rS���rT����total_orderingr5���rN���rg���r���r���r���r����r����r����r���r���r���r����r���r���r���r ����<module>���sT��� #716�:���E�EuSa���5Wj!