3 \me@sddlmZmZddZdS))mask_and_ipv4_to_bcast_addrnet_prefix_to_ipv4_maskcCs|g}xN|jD]B}|j}| s|jdr,q|jdd}t|dkrFq|j|qWg}i}x<|D]4\}}|dkr|r|j|i}|||<qb|||<qbWd}x |jD]\}}|dkrd}qW|r|j|i} x*|D] } d| krq| djd} d} d| kr d} d} t| dkr6| djj}|r6|} | s>qi}i|d<t| d krz| d jj}|dkrz||d <| rx:dD]2}|| kr| |jj}|r||d|<qWnx6dD].}|| kr| |jj}|r|||<qWd|krLd|krL|djd\}}}|rLt ||d<||d<t |d||d<d| krf| dj|d<d| kr| dj|d<d| kr| djj}|jdd}t|d kr|djdr|d}|r||d<| | kr| | j |q|| | <qWxv|D]n\}}|jd}|s"q|djj} |dkrR| | krRd| | d<|dkrd|krd| | d<qW| S)N#ZifaceFTZinet6rZipv6dhcpstaticZ bootprotoaddressgatewaynetmask broadcast/zdns-nameserversz dns-searchZ hwaddressZetherauto)rr )r r )r r r r ) splitlinesstrip startswithsplitlenappenditemslower partitionrrupdate)ZsettingsZentrieslineZsplit_upZifacesZconsumecmdargsZabsorbZ real_ifacesinfoZ iface_detailsZuse_ipv6Zdev_nameZdevZ iface_infoZ proto_typekvalZaddr_prefixZhw_infoZhw_splitZhw_addrr"/usr/lib/python3.6/net_util.pytranslate_networkIs                         r$N)Z cloudinit.netrrr$r"r"r"r#Fs