+
    ‰4i–  ã                   óh   € ^ RI t ^ RIHtHtHtHtHtHtHt R t	R t
R tR tR tR tR	 tR
 tR tR# )é    N)Úiprange_to_cidrsÚ	IPNetworkÚ
cidr_mergeÚcidr_excludeÚlargest_matching_cidrÚsmallest_matching_cidrÚall_matching_cidrsc                  ó„  € \        R R4      p V . \        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R	4      N\        R
4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R 4      N\        R!4      N\        R"4      N\        R#4      N\        R$4      N\        R%4      N\        R&4      N\        R'4      N\        R(4      N\        R)4      N\        R*4      N\        R+4      N\        R,4      N\        R-4      N\        R.4      N\        R/4      N\        R04      N\        R14      N\        R24      N\        R34      N\        R44      N\        R54      N\        R64      N\        R74      N\        R84      N\        R94      N\        R:4      N\        R;4      N\        R<4      N\        R=4      N\        R>4      N\        R?4      N8X  g   Q hR@# )Az0.0.0.1z255.255.255.254z
0.0.0.1/32z
0.0.0.2/31z
0.0.0.4/30z
0.0.0.8/29z0.0.0.16/28z0.0.0.32/27z0.0.0.64/26z0.0.0.128/25z
0.0.1.0/24z
0.0.2.0/23z
0.0.4.0/22z
0.0.8.0/21z0.0.16.0/20z0.0.32.0/19z0.0.64.0/18z0.0.128.0/17z
0.1.0.0/16z
0.2.0.0/15z
0.4.0.0/14z
0.8.0.0/13z0.16.0.0/12z0.32.0.0/11z0.64.0.0/10z0.128.0.0/9z	1.0.0.0/8z	2.0.0.0/7z	4.0.0.0/6z	8.0.0.0/5z
16.0.0.0/4z
32.0.0.0/3z
64.0.0.0/2z128.0.0.0/2z192.0.0.0/3z224.0.0.0/4z240.0.0.0/5z248.0.0.0/6z252.0.0.0/7z254.0.0.0/8z255.0.0.0/9z255.128.0.0/10z255.192.0.0/11z255.224.0.0/12z255.240.0.0/13z255.248.0.0/14z255.252.0.0/15z255.254.0.0/16z255.255.0.0/17z255.255.128.0/18z255.255.192.0/19z255.255.224.0/20z255.255.240.0/21z255.255.248.0/22z255.255.252.0/23z255.255.254.0/24z255.255.255.0/25z255.255.255.128/26z255.255.255.192/27z255.255.255.224/28z255.255.255.240/29z255.255.255.248/30z255.255.255.252/31z255.255.255.254/32N)r   r   )Únetworkss    Ú?/usr/lib/python3/dist-packages/netaddr/tests/ip/test_cidr_v4.pyÚ#test_iprange_to_cidrs_worst_case_v4r      s  € Ü 	Ð+<Ó=€HØð ?Ü�,Óð?ä�,Óð?ô 	�,Óð?ô 	�,Óð	?ô
 	�-Ó ð?ô 	�-Ó ð?ô 	�-Ó ð?ô 	�.Ó!ð?ô 	�,Óð?ô 	�,Óð?ô 	�,Óð?ô 	�,Óð?ô 	�-Ó ð?ô 	�-Ó ð?ô 	�-Ó ð?ô  	�.Ó!ð!?ô" 	�,Óð#?ô$ 	�,Óð%?ô& 	�,Óð'?ô( 	�,Óð)?ô* 	�-Ó ð+?ô, 	�-Ó ð-?ô. 	�-Ó ð/?ô0 	�-Ó ð1?ô2 	�+Óð3?ô4 	�+Óð5?ô6 	�+Óð7?ô8 	�+Óð9?ô: 	�,Óð;?ô< 	�,Óð=?ô> 	�,Óð??ô@ 	�-Ó ðA?ôB 	�-Ó ðC?ôD 	�-Ó ðE?ôF 	�-Ó ðG?ôH 	�-Ó ðI?ôJ 	�-Ó ðK?ôL 	�-Ó ðM?ôN 	�-Ó ðO?ôP 	Ð"Ó#ðQ?ôR 	Ð"Ó#ðS?ôT 	Ð"Ó#ðU?ôV 	Ð"Ó#ðW?ôX 	Ð"Ó#ðY?ôZ 	Ð"Ó#ð[?ô\ 	Ð"Ó#ð]?ô^ 	Ð"Ó#ð_?ô` 	Ð$Ó%ða?ôb 	Ð$Ó%ðc?ôd 	Ð$Ó%ðe?ôf 	Ð$Ó%ðg?ôh 	Ð$Ó%ði?ôj 	Ð$Ó%ðk?ôl 	Ð$Ó%ðm?ôn 	Ð$Ó%ðo?ôp 	Ð&Ó'ðq?ôr 	Ð&Ó'ðs?ôt 	Ð&Ó'ðu?ôv 	Ð&Ó'ðw?ôx 	Ð&Ó'ðy?ôz 	Ð&Ó'ð{?ô| 	Ð&Ó'ð}?ô ?ð ?ò ?ó    c                  óœ  € \        R R 4      . 8X  g   Q h\        RR 4      \        R4      .8X  g   Q h\        RR4      \        R4      .8X  g   Q h\        RR4      \        R4      \        R4      \        R4      .8X  g   Q h\        R R4      . 8X  g   Q h\        R	R
4      \        R	4      .8X  g   Q h\        RR	4      \        R4      .8X  g   Q hR# )ú192.0.2.1/32z192.0.2.0/31ú192.0.2.0/32ú192.0.2.0/24ú192.0.2.128/25z192.0.2.0/25ú192.0.2.128/27z192.0.2.160/27z192.0.2.192/26ú192.0.2.0/28z192.0.2.16/32z192.0.1.255/32N)r   r   © r   r   Útest_cidr_exclude_v4r   R   sÞ   € Ü˜¨Ó7¸2Ô=Ð=Ð=Ü˜¨Ó7¼IÀnÓ<UÐ;VÔVÐVÐVÜ˜Ð(8Ó9¼iÈÓ>WÐ=XÔXÐXÐXÜ˜Ð(8Ó9Ü�.Ó!ÜÐ"Ó#ÜÐ"Ó#ð>ô ð ð ô ˜¨Ó7¸2Ô=Ð=Ð=Ü˜¨Ó8¼YÀ~Ó=VÐ<WÔWÐWÐWÜÐ(¨.Ó9¼iÐHXÓ>YÐ=ZÔZÐZÒZr   c                  óæ  € \        R R.4      \        R4      .8X  g   Q h\        RR.4      \        R4      \        R4      .8X  g   Q h\        . RO4      \        R4      .8X  g   Q h\        . RO4      \        R4      \        R4      \        R4      .8X  g   Q h\        . RO4      \        R4      \        R	4      .8X  g   Q h\        . RO4      \        R
4      \        R4      \        R4      .8X  g   Q hR# )z192.0.128.0/24z192.0.129.0/24z192.0.128.0/23z192.0.130.0/24ú192.0.2.112/30ú192.0.2.118/31z192.0.2.112/29ú192.0.2.116/32ú192.0.2.112/31z192.0.2.116/30ú192.0.1.254/31ú192.0.3.0/28r   N)r   ú192.0.2.116/31r   )r   r   r   )r   r   r   )r   r   z192.0.2.16/28z192.0.2.32/28z192.0.2.48/28z192.0.2.64/28z192.0.2.80/28z192.0.2.96/28z192.0.2.112/28z192.0.2.128/28z192.0.2.144/28z192.0.2.160/28z192.0.2.176/28z192.0.2.192/28z192.0.2.208/28z192.0.2.224/28z192.0.2.240/28r   ©r   r   r   r   r   Útest_cidr_merge_v4r!   a   s/  € ÜÐ'Ð)9Ð:Ó;Ä	ÐJZÓ@[Ð?\Ô\Ð\Ð\ÜÐ'Ð)9Ð:Ó;ÜÐ"Ó#ÜÐ"Ó#ð@ô ð ð ô ÒLÓMÜÐ"Ó#ðRô ð ð ô ÒLÓMÜÐ"Ó#ÜÐ"Ó#ÜÐ"Ó#ðRô ð ð ô
 ÒLÓMÜÐ"Ó#ÜÐ"Ó#ðRô ð ð ô
 ò	
óô, 	Ð"Ó#Ü�.Ó!Ü�.Ó!ð
ô+ð ò r   c                  ó  € \        R 4      p \        R4      pV P                  ^4       Uu. uF  p\        V4      NK  	  up\        V P                  ^4      4      ,           VP                  ^|4       Uu. uF  p\        V4      NK  	  up,           \        VP                  ^|4      4      ,           . RO,           p\        P
                  ! V4       \        V4      pV\        R 4      \        R4      .8X  g   Q hW@V.8X  g   Q hR# u upi u upi )ú192.0.2.0/23z::192.0.2.0/120N)r   r   z::192.0.2.92/128)r   ÚsubnetÚstrÚlistÚrandomÚshuffler   )Úorig_cidr_ipv4Úorig_cidr_ipv6ÚcÚcidr_subnetsÚmerged_cidrss        r   Útest_extended_cidr_merger.   �   sö   € Ü˜~Ó.€NÜÐ0Ó1€Nð (×.Ñ.¨rÔ2Ó3Ñ2�AŒˆQŽÑ2Ñ3Ü
ˆ~×$Ñ$ RÓ(Ó
)õ	*à)×0Ñ0°Ô5Ó
6Ñ5�aŒ3ˆqŽ6Ñ5Ñ
6õ	7ô ˆ~×$Ñ$ SÓ)Ó
*õ	+ò Aõ		Að ô ‡N‚N�<Ô ä˜lÓ+€LàœI nÓ5´yÐARÓ7SÐTÔTÐTÐTØ¨NÐ;Ô;Ð;Ò;ùò 	4ùâ
6s   ªDÁ2Dc                  óº   € \        R R.4      \        R 4      .8X  g   Q h\        R R.4      \        R 4      .8X  g   Q h\        . RO4      \        R 4      .8X  g   Q hR# )ú	0.0.0.0/0z0.0.0.0z255.255.255.255N)r0   r   ú
10.0.0.0/8r    r   r   r   Ú test_whole_network_cidr_merge_v4r2   ¤   s`   € Ü�{ IÐ.Ó/´I¸kÓ4JÐ3KÔKÐKÐKÜ�{Ð$5Ð6Ó7¼IÀkÓ<RÐ;SÔSÐSÐSÜÒAÓBÄyÐQ\ÓG]ÐF^Ô^Ð^Ò^r   c                  óÜ   € \        R R .4      \        R4      8X  g   Q h\        R RR .4      \        R4      8X  g   Q h\        R . RO4      \        R4      8X  g   Q h\        R RR.4      e   Q hR# )ú	192.0.2.0r   ú10.0.0.1ú	224.0.0.1N©r5   r4   r6   )r   r   r   r   r   Útest_largest_matching_cidr_v4r8   ª   s‰   € Ü  ¨{¨mÓ<Ä	È.Ó@YÔYÐYÐYÜ  ¨z¸;Ð.GÓHÌIØóMô ð ð ô ! Ò.TÓUÔYbØóZô ð ð ô ! ¨z¸;Ð.GÓHÒPÐPÒPr   c                  ó¢   € \        R . RO4      \        R4      8X  g   Q h\        R. RO4      \        R4      8X  g   Q h\        R RR.4      e   Q hR# )	r4   r5   r6   r   ú
192.0.2.32r   Nr7   ©r0   r1   ú192.0.0.0/8z192.0.1.0/24r   z192.0.3.0/24)r   r   r   r   r   Útest_smallest_matching_cidr_v4r=   µ   sk   € Ü! +Ò/UÓVÔZcØó[ô ð ð ô "ØÚbóô 
�>Ó	"ô#ð #ð #ô " +°
¸KÐ/HÓIÒQÐQÒQr   c                  ól   € \        R . RO4      \        R4      \        R4      \        R4      .8X  g   Q hR# )r:   r0   r<   r   Nr;   )r	   r   r   r   r   Útest_all_matching_cidrs_v4r?   À   s>   € ÜØÚbóô 	�+ÓÜ�-Ó Ü�.Ó!ð
ôð ò r   c                  ó\  € \        R 4      P                  ^4       U u. uF  p \        V 4      NK  	  pp V. RO8X  g   Q h\        RV4      \        R4      \        R4      \        R4      .8X  g   Q h\	        RV4      \        R4      8X  g   Q h\        RV4      \        R4      8X  g   Q hR# u up i )r   ú192.0.0.0/22r#   r   r4   N)rA   r#   r   r   z192.0.2.128/26)r   Úsupernetr%   r	   r   r   )r+   r   s     r   Útest_cidr_matching_v4rC   Ë   s¸   € Ü )Ð*:Ó ;× DÑ DÀRÔ HÓIÑ H˜1”�A–Ñ H€HÐIàò ô ð ð ô ˜k¨8Ó4Ü�.Ó!Ü�.Ó!Ü�.Ó!ð9ô ð ð ô " +¨xÓ8¼IÀnÓ<UÔUÐUÐUÜ  ¨hÓ7¼9À^Ó;TÔTÐTÒTùò# Js   �B))r'   Únetaddrr   r   r   r   r   r   r	   r   r   r!   r.   r2   r8   r=   r?   rC   r   r   r   Ú<module>rE      sL   ðÛ ÷÷ ñ òAòH[ò,ò^<ò(_òQòRòôUr   