ó
    ¤“Žgˆ5  ã                   óæ   • S SK Jr  S SKJr  SSKJrJr  SSKJrJ	r	   " S S5      r
 " S S	5      r " S
 S5      r " S S5      r " S S5      r " S S5      r\ " S S5      5       r " S S5      rg)é    )Ú	dataclass)ÚOptionalé   )ÚffiÚlib)Ú_string_realloc_call_no_errorÚNetplanExceptionc            	       ó°  • \ rS rSrS rSS S\4S jrS&S\S\S	\S\4S
 jjr\	S'S j5       r
\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\\   4S j5       r\	S(S j5       r\	S)S j5       r\	S*S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r \	S\4S j5       r!\	S\4S j5       r"\	S\4S  j5       r#\	S\4S! j5       r$\	S\4S" j5       r%\	S\4S# j5       r&\	S\4S$ j5       r'S%r(g)+ÚNetDefinitioné   c                 ó   • X l         Xl        g ©N)Ú_ptrÚ_parent)ÚselfÚnp_stateÚptrs      Ú0/usr/lib/python3/dist-packages/netplan/netdef.pyÚ__init__ÚNetDefinition.__init__   s   € ØŒ	ð  �ó    ÚotherÚreturnc                 óX   • [        US5      (       d  gU R                  UR                  :H  $ )Nr   F)Úhasattrr   )r   r   s     r   Ú__eq__ÚNetDefinition.__eq__   s%   € Ü�u˜f×%Ñ%ØØ�y‰y˜EŸJ™JÑ&Ð&r   NÚ
iface_nameÚiface_driverÚ	iface_macc           
      óN  • [        [        R                  " U R                  U(       a  UR	                  S5      O[
        R                  U(       a  UR	                  S5      O[
        R                  U(       a  UR	                  S5      5      5      $ [
        R                  5      5      $ ©Núutf-8)Úboolr   Únetplan_netdef_match_interfacer   Úencoder   ÚNULL)r   r   r   r    s       r   Ú_match_interfaceÚNetDefinition._match_interface#   s~   € Ü”C×6Ò6Ø�I‰IÞ*4ˆJ×Ñ˜gÔ&¼#¿(¹(Þ)2ˆI×Ñ˜WÔ%¼¿¹Þ,8ˆL×Ñ Ó(ó	Hó Ið 	Iô ?B¿h¹hó	Hó Ið 	Ir   c                 ó,   • [        U R                  5      $ r   )Ú_NetdefAddressIteratorr   ©r   s    r   Ú	addressesÚNetDefinition.addresses*   s   € ä% d§i¡iÓ0Ð0r   c                 óT   • [        [        R                  " U R                  5      5      $ r   )r$   r   Únetplan_netdef_get_dhcp4r   r,   s    r   Údhcp4ÚNetDefinition.dhcp4.   ó   € ä”C×0Ò0°·±Ó;Ó<Ð<r   c                 óT   • [        [        R                  " U R                  5      5      $ r   )r$   r   Únetplan_netdef_get_dhcp6r   r,   s    r   Údhcp6ÚNetDefinition.dhcp62   r3   r   c                 ó  • / n[        [        R                  " U R                  5      5      (       a  UR	                  S5        [        [        R
                  " U R                  5      5      (       a  UR	                  S5        U$ )NÚipv4Úipv6)r$   r   Ú"netplan_netdef_get_link_local_ipv4r   ÚappendÚ"netplan_netdef_get_link_local_ipv6)r   Ú	linklocals     r   Ú
link_localÚNetDefinition.link_local6   s]   € àˆ	Ü”×6Ò6°t·y±yÓA×BÑBØ×Ñ˜VÔ$Ü”×6Ò6°t·y±yÓA×BÑBØ×Ñ˜VÔ$ØÐr   c                 ó`   • [         R                  " U R                  5      nUS:X  a  gUS:X  a  gg )Nr   Té   F)r   Únetplan_netdef_get_accept_rar   )r   Úvalues     r   Ú	accept_raÚNetDefinition.accept_ra?   s/   € ô
 ×0Ò0°·±Ó;ˆØ�A‹:ØØ�a‹ZØàr   c                 ó,   • [        U R                  5      $ r   )Ú_NetdefNameserverIteratorr   r,   s    r   Únameserver_addressesÚ"NetDefinition.nameserver_addressesL   s   € ä(¨¯©Ó3Ð3r   c                 ó,   • [        U R                  5      $ r   )Ú_NetdefSearchDomainIteratorr   r,   s    r   Únameserver_searchÚNetDefinition.nameserver_searchP   s   € ä*¨4¯9©9Ó5Ð5r   c                 ó,   • [        U R                  5      $ r   )Ú_NetdefRouteIteratorr   r,   s    r   ÚroutesÚNetDefinition.routesT   s   € ä# D§I¡IÓ.Ð.r   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Ú_netplan_netdef_get_gateway4r   Úlen©Úbr   s    €r   Ú<lambda>Ú)NetDefinition._gateway4.<locals>.<lambda>Z   ó#   ø€ ´s×7WÒ7WÐX\×XaÑXaÐcdÔfiÐjkÓflÔ7mr   ©r   r,   s   `r   Ú	_gateway4ÚNetDefinition._gateway4X   ó   ø€ ä,Ô-mÓnÐnr   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Ú_netplan_netdef_get_gateway6r   rV   rW   s    €r   rY   Ú)NetDefinition._gateway6.<locals>.<lambda>^   r[   r   r\   r,   s   `r   Ú	_gateway6ÚNetDefinition._gateway6\   r_   r   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Únetplan_netdef_get_macaddressr   rV   rW   s    €r   rY   Ú*NetDefinition.macaddress.<locals>.<lambda>b   ó#   ø€ ´s×7XÒ7XÐY]×YbÑYbÐdeÔgjÐklÓgmÔ7nr   r\   r,   s   `r   Ú
macaddressÚNetDefinition.macaddress`   ó   ø€ ä,Ô-nÓoÐor   c                 óT   • [        [        R                  " U R                  5      5      $ r   )r$   r   Únetplan_netdef_has_matchr   r,   s    r   Ú
_has_matchÚNetDefinition._has_matchd   r3   r   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Únetplan_netdef_get_set_namer   rV   rW   s    €r   rY   Ú(NetDefinition.set_name.<locals>.<lambda>j   ó#   ø€ ´s×7VÒ7VÐW[×W`ÑW`ÐbcÔehÐijÓekÔ7lr   r\   r,   s   `r   Úset_nameÚNetDefinition.set_nameh   ó   ø€ ä,Ô-lÓmÐmr   c                 óT   • [        [        R                  " U R                  5      5      $ r   )r$   r   Ú_netplan_netdef_get_criticalr   r,   s    r   ÚcriticalÚNetDefinition.criticall   s   € ä”C×4Ò4°T·Y±YÓ?Ó@Ð@r   c                 ó  • [        5       n[        R                  " U R                  5      =n(       a  [	        U R
                  U5      US'   [        R                  " U R                  5      =n(       a  [	        U R
                  U5      US'   [        R                  " U R                  5      =n(       a  [	        U R
                  U5      US'   [        R                  " U R                  5      =n(       a  [	        U R
                  U5      US'   [        R                  " U R                  5      =n(       a  [	        U R
                  U5      US'   [        R                  " U R                  5      =n(       a  [	        U R
                  U5      US'   U$ )NÚsriovÚvlanÚbridgeÚbondÚvrfÚpeer)Údictr   Únetplan_netdef_get_sriov_linkr   r   r   Únetplan_netdef_get_vlan_linkÚnetplan_netdef_get_bridge_linkÚnetplan_netdef_get_bond_linkÚnetplan_netdef_get_vrf_linkÚnetplan_netdef_get_peer_link)r   ÚdÚ
sriov_linkÚ	vlan_linkÚbridge_linkÚ	bond_linkÚvrf_linkÚ	peer_links           r   ÚlinksÚNetDefinition.linksp   s$  € ä‹FˆÜ×:Ò:¸4¿9¹9ÓEÐEˆ:ÕEÜ& t§|¡|°ZÓ@ˆAˆg‰Jä×8Ò8¸¿¹ÓCÐCˆ9ÕCÜ% d§l¡l°IÓ>ˆAˆf‰Iä×<Ò<¸T¿Y¹YÓGÐGˆ;ÕGÜ'¨¯©°kÓBˆAˆh‰Kä×8Ò8¸¿¹ÓCÐCˆ9ÕCÜ% d§l¡l°IÓ>ˆAˆf‰Iä×6Ò6°t·y±yÓAÐAˆ8ÕAÜ$ T§\¡\°8Ó<ˆAˆe‰Hô ×8Ò8¸¿¹ÓCÐCˆ9ÕCÜ% d§l¡l°IÓ>ˆAˆf‰IØˆr   c                 óp   • [         R                  " U R                  5      nU[         R                  :X  a  g U$ r   )r   Ú_netplan_netdef_get_vlan_idr   ÚUINT_MAX)r   Úvlan_ids     r   Ú_vlan_idÚNetDefinition._vlan_id‡   s*   € ä×1Ò1°$·)±)Ó<ˆØ”c—l‘lÓ"ØØˆr   c                 óT   • [        [        R                  " U R                  5      5      $ r   )r$   r   Ú%_netplan_netdef_get_sriov_vlan_filterr   r,   s    r   Ú_has_sriov_vlan_filterÚ$NetDefinition._has_sriov_vlan_filterŽ   s   € ä”C×=Ò=¸d¿i¹iÓHÓIÐIr   c                 ó°   • [         R                  " [        R                  " [        R                  " U R
                  5      5      5      R                  S5      $ r"   )r   Ústringr   Únetplan_backend_nameÚnetplan_netdef_get_backendr   Údecoder,   s    r   ÚbackendÚNetDefinition.backend’   s:   € ä�zŠzœ#×2Ò2´3×3QÒ3QÐRV×R[ÑR[Ó3\Ó]Ó^×eÑeÐfmÓnÐnr   c                 ó°   • [         R                  " [        R                  " [        R                  " U R
                  5      5      5      R                  S5      $ r"   )r   r    r   Únetplan_def_type_nameÚnetplan_netdef_get_typer   r£   r,   s    r   ÚtypeÚNetDefinition.type–   s:   € ä�zŠzœ#×3Ò3´C×4OÒ4OÐPT×PYÑPYÓ4ZÓ[Ó\×cÑcÐdkÓlÐlr   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Únetplan_netdef_get_idr   rV   rW   s    €r   rY   Ú"NetDefinition.id.<locals>.<lambda>œ   s#   ø€ ´s×7PÒ7PÐQU×QZÑQZÐ\]Ô_bÐcdÓ_eÔ7fr   r\   r,   s   `r   ÚidÚNetDefinition.idš   s   ø€ ä,Ô-fÓgÐgr   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Únetplan_netdef_get_filepathr   rV   rW   s    €r   rY   Ú(NetDefinition.filepath.<locals>.<lambda>    rv   r   r\   r,   s   `r   ÚfilepathÚNetDefinition.filepathž   ry   r   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Ú(_netplan_netdef_get_embedded_switch_moder   rV   rW   s    €r   rY   Ú5NetDefinition._embedded_switch_mode.<locals>.<lambda>¤   s#   ø€ ´s×7cÒ7cÐdh×dmÑdmÐopÔruÐvwÓrxÔ7yr   r\   r,   s   `r   Ú_embedded_switch_modeÚ#NetDefinition._embedded_switch_mode¢   s   ø€ ä,Ô-yÓzÐzr   c                 óT   • [        [        R                  " U R                  5      5      $ r   )r$   r   Ú2_netplan_netdef_get_delay_virtual_functions_rebindr   r,   s    r   Ú_delay_virtual_functions_rebindÚ-NetDefinition._delay_virtual_functions_rebind¦   s   € ä”C×JÒJÈ4Ï9É9ÓUÓVÐVr   c                 óê   ^• [         R                  " S5      n[        R                  " U R                  R
                  U R
                  U5      nUS:  a  US   m[        U4S j5      n[        U5      eU$ )NzNetplanError **r   c                 óF   >• [         R                  " TU [        U 5      5      $ r   )r   Únetplan_error_messagerV   )rX   Úerrs    €r   rY   Ú)NetDefinition._vf_count.<locals>.<lambda>°   s   ø€ ¼#×:SÒ:SÐTWÐYZÔ\_Ð`aÓ\bÔ:cr   )r   Únewr   Ú#_netplan_state_get_vf_count_for_defr   r   r   r	   )r   ÚrefÚcountÚmsgrÄ   s       @r   Ú	_vf_countÚNetDefinition._vf_countª   s`   ø€ ä�gŠgÐ'Ó(ˆÜ×7Ò7¸¿¹×8IÑ8IÈ4Ï9É9ÐVYÓZˆØ�1‹9Ø�a‘&ˆCÜ/Ô0cÓdˆCÜ" 3Ó'Ð'Øˆr   c                 ó"   ^ • [        U 4S j5      $ )Nc                 óZ   >• [         R                  " TR                  U [        U 5      5      $ r   )r   Ú_netplan_netdef_get_bond_moder   rV   rW   s    €r   rY   Ú*NetDefinition._bond_mode.<locals>.<lambda>¶   rj   r   r\   r,   s   `r   Ú
_bond_modeÚNetDefinition._bond_mode´   rm   r   c                 óT   • [        [        R                  " U R                  5      5      $ )z”
Returns True if the interface is a compound interface (bond or bridge),
and its configuration is trivial, without any variation from the defaults.
)r$   r   Ú'_netplan_netdef_is_trivial_compound_itfr   r,   s    r   Ú_is_trivial_compound_itfÚ&NetDefinition._is_trivial_compound_itf¸   s   € ô ”C×?Ò?ÀÇ	Á	ÓJÓKÐKr   )r   r   )NNN)r   r+   )r   rH   )r   rL   )r   rP   ))Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r$   r   Ústrr(   Úpropertyr-   r1   r6   Úlistr?   r   rE   rI   rM   rQ   r]   rd   rk   rp   rw   r|   r…   r“   Úintr™   r�   r¤   r©   r¯   rµ   r»   r¿   rË   rÑ   rÕ   Ú__static_attributes__© r   r   r   r      s  † ò ð'˜Oð '°ô 'ñ
I¨3ð IÀSð IÐ\_ð IÐkoõ Ið ó1ó ð1ð ð=�tó =ó ð=ð ð=�tó =ó ð=ð ð˜Dó ó ðð ð
˜8 D™>ó 
ó ð
ð ó4ó ð4ð ó6ó ð6ð ó/ó ð/ð ðo˜3ó oó ðoð ðo˜3ó oó ðoð ðp˜Có pó ðpð ð=˜Dó =ó ð=ð ðn˜#ó nó ðnð ðA˜$ó Aó ðAð ð�tó ó ðð, ð˜#ó ó ðð ðJ¨ó Jó ðJð ðo˜ó oó ðoð ðm�có mó ðmð ðh�Có hó ðhð ðn˜#ó nó ðnð ð{ só {ó ð{ð ðW°ó Wó ðWð ð˜3ó ó ðð ðp˜Có pó ðpð ðL¨$ó Ló óLr   r   c                   ó8   • \ rS rSrS	S\4S jjrS rS rS rSr	g)
ÚNetDefinitionIteratoréÁ   NÚdev_typec                 ó¬   • Xl         U(       a  UR                  S5      O[        R                  n[        R
                  " UR                  U5      U l        g r"   )r   r&   r   r'   r   Ú&_netplan_state_new_netdef_pertype_iterr   Úiterator)r   r   rä   Únp_types       r   r   ÚNetDefinitionIterator.__init__Â   s6   € à ŒÞ.6�(—/‘/ 'Ô*¼C¿H¹HˆÜ×BÒBÀ8Ç=Á=ÐRYÓZˆ�r   c                 óD   • [         R                  " U R                  5        g r   )r   Ú!_netplan_netdef_pertype_iter_freerç   r,   s    r   Ú__del__ÚNetDefinitionIterator.__del__È   s   € Ü×-Ò-¨d¯m©mÕ<r   c                 ó   • U $ r   rà   r,   s    r   Ú__iter__ÚNetDefinitionIterator.__iter__Ë   ó   € Øˆr   c                 óˆ   • [         R                  " U R                  5      nU(       d  [        e[	        U R
                  U5      $ r   )r   Ú!_netplan_netdef_pertype_iter_nextrç   ÚStopIterationr   r   ©r   Ú
next_values     r   Ú__next__ÚNetDefinitionIterator.__next__Î   s0   € Ü×:Ò:¸4¿=¹=ÓIˆ
ÞÜÐÜ˜TŸ]™]¨JÓ7Ð7r   )rç   r   r   )
r×   rØ   rÙ   rÚ   rÛ   r   rì   rï   r÷   rß   rà   r   r   râ   râ   Á   s   † ñ[¨3õ [ò=òõ8r   râ   c                   ó8   • \ rS rSrS\S\S\4S jrS\4S jrSrg	)
ÚNetplanAddresséÕ   ÚaddressÚlifetimeÚlabelc                 ó(   • Xl         X l        X0l        g r   )rü   rý   rþ   )r   rü   rý   rþ   s       r   r   ÚNetplanAddress.__init__Ö   s   € ØŒØ ŒØ�
r   r   c                 ó   • U R                   $ r   )rü   r,   s    r   Ú__str__ÚNetplanAddress.__str__Û   s   € Ø�|‰|Ðr   )rü   rþ   rý   N)r×   rØ   rÙ   rÚ   rÛ   r   r  rß   rà   r   r   rú   rú   Õ   s(   † ð ð ¨sð ¸3ô ð
˜÷ r   rú   c                   ó4   • \ rS rSrS\4S jrS rS rS rSr	g)	r+   éß   Únetdefc                 óF   • Xl         [        R                  " U5      U l        g r   )r  r   Ú _netplan_netdef_new_address_iterrç   ©r   r  s     r   r   Ú_NetdefAddressIterator.__init__à   s   € ØŒÜ×<Ò<¸VÓDˆ�r   c                 óD   • [         R                  " U R                  5        g r   )r   Ú_netplan_address_iter_freerç   r,   s    r   rì   Ú_NetdefAddressIterator.__del__ä   s   € Ü×&Ò& t§}¡}Õ5r   c                 ó   • U $ r   rà   r,   s    r   rï   Ú_NetdefAddressIterator.__iter__ç   rñ   r   c                 ó  • [         R                  " U R                  5      nU(       d  [        eUnUR                  (       a/  [
        R                  " UR                  5      R                  S5      OS nUR                  (       a/  [
        R                  " UR                  5      R                  S5      OS nUR                  (       a/  [
        R                  " UR                  5      R                  S5      OS n[        X4U5      $ r"   )r   Ú_netplan_address_iter_nextrç   rô   rü   r   r    r£   rý   rþ   rú   )r   rö   Úcontentrü   rý   rþ   s         r   r÷   Ú_NetdefAddressIterator.__next__ê   s«   € Ü×3Ò3°D·M±MÓBˆ
ÞÜÐØˆð BIÇÇ”#—*’*˜WŸ_™_Ó-×4Ñ4°WÔ=ÐVZˆØCJ×CS×CS”3—:’:˜g×.Ñ.Ó/×6Ñ6°wÔ?ÐY]ˆØ=D¿]¿]”—
’
˜7Ÿ=™=Ó)×0Ñ0°Ô9ÐPTˆÜ˜g°Ó7Ð7r   ©rç   r  N©
r×   rØ   rÙ   rÚ   r   r   rì   rï   r÷   rß   rà   r   r   r+   r+   ß   s   † ðE˜}ô Eò6òõ
8r   r+   c                   ó4   • \ rS rSrS\4S jrS rS rS rSr	g)	rH   é÷   r  c                 óF   • Xl         [        R                  " U5      U l        g r   )r  r   Ú#_netplan_netdef_new_nameserver_iterrç   r	  s     r   r   Ú"_NetdefNameserverIterator.__init__ø   s   € ØŒÜ×?Ò?ÀÓGˆ�r   c                 óD   • [         R                  " U R                  5        g r   )r   Ú_netplan_nameserver_iter_freerç   r,   s    r   rì   Ú!_NetdefNameserverIterator.__del__ü   s   € Ü×)Ò)¨$¯-©-Õ8r   c                 ó   • U $ r   rà   r,   s    r   rï   Ú"_NetdefNameserverIterator.__iter__ÿ   rñ   r   c                 ó¦   • [         R                  " U R                  5      nU(       d  [        e[        R
                  " U5      R                  S5      $ r"   )r   Ú_netplan_nameserver_iter_nextrç   rô   r   r    r£   rõ   s     r   r÷   Ú"_NetdefNameserverIterator.__next__  s9   € Ü×6Ò6°t·}±}ÓEˆ
ÞÜÐÜ�zŠz˜*Ó%×,Ñ,¨WÓ5Ð5r   r  Nr  rà   r   r   rH   rH   ÷   s   † ðH˜}ô Hò9òõ6r   rH   c                   ó,   • \ rS rSrS rS rS rS rSrg)rL   i	  c                 óF   • Xl         [        R                  " U5      U l        g r   )r  r   Ú&_netplan_netdef_new_search_domain_iterrç   r	  s     r   r   Ú$_NetdefSearchDomainIterator.__init__
  s   € ØŒÜ×BÒBÀ6ÓJˆ�r   c                 óD   • [         R                  " U R                  5        g r   )r   Ú _netplan_search_domain_iter_freerç   r,   s    r   rì   Ú#_NetdefSearchDomainIterator.__del__  s   € Ü×,Ò,¨T¯]©]Õ;r   c                 ó   • U $ r   rà   r,   s    r   rï   Ú$_NetdefSearchDomainIterator.__iter__  rñ   r   c                 ó¦   • [         R                  " U R                  5      nU(       d  [        e[        R
                  " U5      R                  S5      $ r"   )r   Ú _netplan_search_domain_iter_nextrç   rô   r   r    r£   rõ   s     r   r÷   Ú$_NetdefSearchDomainIterator.__next__  s9   € Ü×9Ò9¸$¿-¹-ÓHˆ
ÞÜÐÜ�zŠz˜*Ó%×,Ñ,¨WÓ5Ð5r   r  N©	r×   rØ   rÙ   rÚ   r   rì   rï   r÷   rß   rà   r   r   rL   rL   	  s   † òKò<òõ6r   rL   c                   ó  • \ rS rSr% \R
                  rSrSrSr	\
\S'   Sr\
\S'   Sr\
\S'   Sr\
\S'   S	r\
\S
'   Sr\
\S'   \r\\S'   Sr\\S'   \r\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   \r\\S'   S rS rS rS rSrg)ÚNetplanRoutei  r   NÚtoÚviaÚ	from_addrÚunicastr©   ÚglobalÚscopeÚprotocolÚtableéÿÿÿÿÚfamilyÚmetricÚmtubytesÚcongestion_windowÚadvertised_receive_windowFÚonlinkÚadvertised_mssc                 ó,  • SnU R                   (       a  XR                   -   nU R                  (       a  USU R                   3-   nU R                  (       a  USU R                   3-   nU R                  (       a  USU R                   3-   nU R                  (       a  USU R                   3-   nU R
                  U R                  :  a  USU R
                   3-   nU R                  U R                  :”  a  USU R                   3-   nUR                  5       $ )NÚ z via z type z scope z src z metric z table )
r2  r3  r©   r7  r4  r<  Ú_METRIC_UNSPEC_r9  Ú_TABLE_UNSPEC_Ústrip©r   Úroutes     r   r  ÚNetplanRoute.__str__0  sä   € ØˆØ�7�7ØŸG™G‘OˆEØ�8�8Ø˜e D§H¡H :Ð.Ñ.ˆEØ�9�9Ø˜f T§Y¡Y KÐ0Ñ0ˆEØ�:�:Ø˜g d§j¡j \Ð2Ñ2ˆEØ�>�>Ø˜e D§N¡NÐ#3Ð4Ñ4ˆEØ�;‰;˜×-Ñ-Ó-Ø˜h t§{¡{ mÐ4Ñ4ˆEØ�:‰:˜×+Ñ+Ó+Ø˜g d§j¡j \Ð2Ñ2ˆEØ�{‰{‹}Ðr   c                 óÊ  • 0 nU R                   S:¼  a  U R                   US'   U R                  (       a  U R                  US'   U R                  (       a  U R                  US'   U R                  (       a  U R                  US'   U R                  U R
                  :  a  U R                  US'   U R                  U R                  :”  a  U R                  US'   U R                  US'   U$ )	Nr   r;  r2  r3  Úfromr<  r9  r©   )	r;  r2  r3  r4  r<  rD  r9  rE  r©   rG  s     r   Úto_dictÚNetplanRoute.to_dictB  s¬   € ØˆØ�;‰;˜!ÓØ"Ÿk™kˆE�(‰OØ�7�7ØŸ'™'ˆE�$‰KØ�8�8ØŸ8™8ˆE�%‰LØ�>�>Ø ŸN™NˆE�&‰MØ�;‰;˜×-Ñ-Ó-Ø"Ÿk™kˆE�(‰OØ�:‰:˜×+Ñ+Ó+Ø!ŸZ™ZˆE�'‰NàŸ	™	ˆˆf‰àˆr   c           
      óÈ   • [        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  45      $ r   )	Úhashr2  r3  r4  r9  r;  r<  r©   r7  r,   s    r   Ú__hash__ÚNetplanRoute.__hash__U  sH   € ÜØ�W‰W�d—h‘hØ�^‰^˜TŸZ™ZØ�[‰[˜$Ÿ+™+Ø�Y‰Y˜Ÿ
™
ð$ó%ð 	%r   c                 óô  • U R                   UR                   :H  =(       aÙ    U R                  UR                  :H  =(       a¹    U R                  UR                  :H  =(       a™    U R                  UR                  :H  =(       ay    U R                  UR                  :H  =(       aY    U R
                  UR
                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   )r2  r3  r4  r9  r;  r<  r©   r7  rG  s     r   r   ÚNetplanRoute.__eq__\  s´   € à�G‰G�u—x‘xÑ÷ &Ø�H‰H˜Ÿ	™	Ñ!÷&à�N‰N˜eŸo™oÑ-÷&ð �J‰J˜%Ÿ+™+Ñ%÷&ð �K‰K˜5Ÿ<™<Ñ'÷	&ð
 �K‰K˜5Ÿ<™<Ñ'÷&ð �I‰I˜Ÿ™Ñ#÷&ð �J‰J˜%Ÿ+™+Ñ%ð		
r   rà   ) r×   rØ   rÙ   rÚ   r   r—   rD  Ú_ADVMSS_UNSPEC_rE  r2  rÛ   Ú__annotations__r3  r4  r©   r7  r8  r9  rÞ   r;  r<  r=  r>  r?  r@  r$   rA  r  rL  rP  r   rß   rà   r   r   r1  r1    sµ   ‡ à—l‘l€OØ€OØ€Nà€BˆƒNØ€CˆƒOØ€IˆsÓØ€Dˆ#ÓØ€Eˆ3ÓØ€HˆcÓØ€Eˆ3ÓØ€FˆCÓØ!€FˆCÓ!Ø€HˆcÓØÐ�sÓØ%&Ð˜sÓ&Ø€FˆDÓØ)€N�CÓ)òò$ò&%õ

r   r1  c                   ó,   • \ rS rSrS rS rS rS rSrg)rP   ii  c                 óF   • Xl         [        R                  " U5      U l        g r   )r  r   Ú_netplan_netdef_new_route_iterrç   r	  s     r   r   Ú_NetdefRouteIterator.__init__j  s   € ØŒÜ×:Ò:¸6ÓBˆ�r   c                 óD   • [         R                  " U R                  5        g r   )r   Ú_netplan_route_iter_freerç   r,   s    r   rì   Ú_NetdefRouteIterator.__del__n  s   € Ü×$Ò$ T§]¡]Õ3r   c                 ó   • U $ r   rà   r,   s    r   rï   Ú_NetdefRouteIterator.__iter__q  rñ   r   c                 ó¤  • [         R                  " U R                  5      nU(       d  [        e[	        US5      nUR
                  (       a/  [        R                  " UR
                  5      R                  S5      OS UR                  (       a/  [        R                  " UR                  5      R                  S5      OS U(       a%  [        R                  " U5      R                  S5      OS UR                  (       a/  [        R                  " UR                  5      R                  S5      OS UR                  (       a/  [        R                  " UR                  5      R                  S5      OS S UR                  UR                  UR                  UR                  UR                   UR"                  UR$                  UR&                  S.n[)        S0 UD6$ )NrK  r#   )r2  r3  r4  r©   r7  r8  r9  r;  r<  r=  r>  r?  r@  rA  rà   )r   Ú_netplan_route_iter_nextrç   rô   Úgetattrr2  r   r    r£   r3  r©   r7  r9  r;  r<  r=  r>  r?  r@  Úadvmssr1  )r   rö   r4  rH  s       r   r÷   Ú_NetdefRouteIterator.__next__t  sC  € Ü×1Ò1°$·-±-Ó@ˆ
ÞÜÐô ˜J¨Ó/ˆ	ð @J¿}¿}”#—*’*˜ZŸ]™]Ó+×2Ñ2°7Ô;ÐRVØAKÇÇ”3—:’:˜jŸn™nÓ-×4Ñ4°WÔ=ÐUYÞBKœŸš IÓ.×5Ñ5°gÔ>ÐQUØCMÇ?Ç?”C—J’J˜zŸ™Ó/×6Ñ6°wÔ?ÐX\ØEO×EU×EU”S—Z’Z 
× 0Ñ 0Ó1×8Ñ8¸ÔAÐ[_ØØ×%Ñ%Ø ×'Ñ'Ø ×'Ñ'Ø"×+Ñ+Ø!+×!=Ñ!=Ø)3×)MÑ)MØ ×'Ñ'Ø(×/Ñ/ñ
ˆô" Ñ$˜eÑ$Ð$r   r  Nr/  rà   r   r   rP   rP   i  s   † òCò4òõ%r   rP   N)Údataclassesr   Útypingr   Ú_netplan_cffir   r   Ú_utilsr   r	   r   râ   rú   r+   rH   rL   r1  rP   rà   r   r   Ú<module>rh     s{   ðõ  "Ý ç #ß C÷gLñ gL÷T8ñ 8÷(ñ ÷8ñ 8÷06ñ 6÷$6ñ 6ð$ ÷J
ð J
ó ðJ
÷Z$%ò $%r   