U .Ѫ_Öã@s¨dZddlmZddlmZddlmZdd„Zeddƒed d ƒed d ƒd ddddddddddddddddddd d!d"d#gZe eee dd$ƒƒƒZ d%d&„Z d'd(„Z d)S)*z&A basic implementation of RFC 1924 ;-)é)ÚAddrFormatError)Ú IPAddress)Ú_zipcCs dd„tt|ƒt|ƒdƒDƒS)z2Returns all characters between low and high chars.cSsg|] }t|ƒ‘qS©)Úchr)Ú.0Úirrú9/Users/cjl/code/aws-vpc-ipam/lambda/netaddr/ip/rfc1924.pyÚ szchr_range..é)ÚrangeÚord)ÚlowÚhighrrr Ú chr_rangesrÚ0Ú9ÚAÚZÚaÚzú!ú#ú$ú%ú&ú(ú)Ú*ú+ú-ú;ú<ú=ú>ú?ú@ú^Ú_ú`Ú{ú|Ú}ú~éVcCsdt|ƒ}t|ƒ}g}|dkr4| |d¡|d}qd dd„t|ƒDƒ¡}dt|ƒd}||S)z*Convert a regular IPv6 address to base 85.réUÚcSsg|] }t|‘qSr)ÚBASE_85)rÚwrrr r (sz"ipv6_to_base85..ér)rÚintÚappendÚjoinÚreversedÚlen)ÚaddrÚipÚint_valÚ remainderÚencodedZleading_zeroesrrr Úipv6_to_base85s r>cCsft|ƒ}t|ƒdkr"td|fƒ‚d}tt|ƒƒD] \}}t|}||d|7}q2t|dƒ}t|ƒS)zC Convert a base 85 IPv6 address to its hexadecimal format. r3z Invalid base 85 IPv6 address: %rrr/é)Úlistr8rÚ enumerater7Ú BASE_85_DICTrÚstr)r9ÚtokensÚresultrÚnumr:rrr Úbase85_to_ipv6-s  rGN)Ú__doc__Ú netaddr.corerÚ netaddr.iprÚnetaddr.compatrrr1Údictr rBr>rGrrrr Ús.   ÿÿþÿ