+
    ˜qgj2c  ã                   ó"  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
Ht ^ RIHtHtHtHt ^ RIHt ^ RIHt RtRtR	tR
t]P2                  ! ]4      t ! R R4      t ! R R]P:                  4      tRR ltRR ltR t RR lt!R t"R# )é    N)ÚListÚOptional)ÚsubpÚutil)Úis_ipv6_addressÚis_ipv6_networkÚrendererÚsubnet_is_ipv6)ÚNetworkState)Úavailable_nm_ifcfg_rhz/etc/NetworkManagerz/usr/lib/NetworkManagerz/etc/sysconfig/network-scriptszÞ# This is generated by cloud-init. Do not edit.
#
[.config]
  enable=nm-version-min:1.40
[connection.30-cloud-init-ip6-addr-gen-mode]
  # Select EUI64 to be used if the profile does not specify it.
  ipv6.addr-gen-mode=0

c                   óÊ   a € ] tR t^*t o RtR tR tR tR tR t	R t
R tV 3R	 lR
 ltR tR tR tR tR tV 3R lR ltV 3R lR ltR tR t]R 4       tR tR tRtV tR# )ÚNMConnectionz/Represents a NetworkManager connection profile.c           	     ó  € \         P                  ! R4      p\        P                  ! 4       V n        \
        V P                  n        RRV 2R\        \         P                  ! W!4      4      RR/V P                  R&   RR	/V P                  R
&   R# )zy
Initializes the connection with some very basic properties,
notably the UUID so that the connection can be referred to.
z$a3924cb8-09e0-43e9-890b-77972a800108Úidzcloud-init Úuuidzautoconnect-priorityÚ120Ú
connectionz%org.freedesktop.NetworkManager.originz
cloud-initÚuserN)r   ÚUUIDÚconfigparserÚConfigParserÚconfigÚstrÚoptionxformÚuuid5)ÚselfÚcon_idÚ
CI_NM_UUIDs   && Ú?/usr/lib/python3/dist-packages/cloudinit/net/network_manager.pyÚ__init__ÚNMConnection.__init__-   s|   € ô —Y’YÐEÓFˆ
ä"×/Ò/Ó1ˆŒä"%ˆ�‰Ôð �K ˜xÐ(Ø”CœŸ
š
 :Ó6Ó7Ø" Eð%
ˆ�‰�LÑ!ð 4°\ð
ˆ�‰�FÓó    c                óÖ   € V P                   P                  V4      '       g   / V P                   V&   V P                   P                  W4      '       g   W0P                   V,          V&   R# R# )zG
Sets a property unless it's already set, ensuring the section
exists.
N©r   Úhas_sectionÚ
has_option©r   ÚsectionÚoptionÚvalues   &&&&r   Ú_set_defaultÚNMConnection._set_defaultE   sR   € ð �{‰{×&Ñ& w×/Ò/Ø#%ˆD�K‰K˜Ñ Ø�{‰{×%Ñ% g×6Ò6Ø+0�K‰K˜Õ  Ó(ñ 7r"   c                ó~   € V P                   P                  V4      ;'       d    V P                   P                  W4      # )zN
Checks if a config option is set. Returns True if it is,
else returns False.
r$   ©r   r(   r)   s   &&&r   Ú_config_option_is_setÚ"NMConnection._config_option_is_setP   s9   € ð
 �{‰{×&Ñ& wÓ/÷ 
ð 
°D·K±K×4JÑ4JØó5
ð 	
r"   c                óh   € V P                  W4      '       d   V P                  V,          V,          # R# )zE
Returns the value of a config option if its set,
else returns None.
N©r/   r   r.   s   &&&r   Ú_get_config_optionÚNMConnection._get_config_optionY   s,   € ð
 ×%Ñ% g×6Ò6Ø—;‘;˜wÕ'¨Õ/Ð/ár"   c                ób   € V P                  W4      '       d   W0P                  V,          V&   R# R# )zt
Overrides the value of a config option if its already set.
Else, if the config option is not set, it does nothing.
Nr2   r'   s   &&&&r   Ú_change_set_config_optionÚ&NMConnection._change_set_config_optionc   s+   € ð
 ×%Ñ% g×6Ò6Ø+0�K‰K˜Õ  Ó(ñ 7r"   c                ó¸   € R F7  pV P                  VR4      R8w  d    R# V P                  VR4      R9  g   K6   R# 	  R F  pV P                  VRR4       K  	  R# )z\
If for both ipv4 and ipv6, 'may-fail' is set to be False,
set it to True for both of them.
úmay-failÚfalseNÚmethodÚtrue©Úipv4Úipv6)ÚdhcpÚauto)r3   r6   )r   Úfamilys   & r   Ú$_set_mayfail_true_if_both_false_dhcpÚ1NMConnection._set_mayfail_true_if_both_false_dhcpk   sf   € ó
 'ˆFØ×&Ñ& v¨zÓ:¸gÔEò Ø×&Ñ& v¨xÓ8ð Aö ò
 ñ 'ó  'ˆFØ×*Ñ*¨6°:¸vÖFó 'r"   c                óÞ  € RRRRRRRRRRRR	R
RR	R/pRpV P                  VRV4        V'       d	   W2,          pT P                  T,          R,          R	8X  d   R# T P                  T,          R,          R8X  d
   TR8X  d   R# TR9   d   T P                  RRR4       Y@P                  T,          R&   T P                  TRR4       R#   \         d    RpRT P                  T,          R&    L²i ; i)ze
Ensures there's appropriate [ipv4]/[ipv6] for given family
appropriate for given configuration type
ÚstaticÚmanualÚstatic6Údhcp6rA   Ú
ipv6_slaacúipv6_dhcpv6-statelessúipv6_dhcpv6-statefulr@   Údhcp4Údisabledr;   r<   r9   Nr>   r:   )rL   rK   rJ   )r+   ÚKeyErrorr   )r   rB   Úsubnet_typeÚ
method_mapr;   s   &&&  r   Ú_set_ip_methodÚNMConnection._set_ip_methodƒ   s  € ð �hØ�xØ�VØ˜&Ø# VØ" FØ�VØ�Fð	
ˆ
ð ˆØ×Ñ˜& (¨FÔ3ð	5ßØ#Õ0�ð �;‰;�vÕ˜xÕ(¨FÔ2ÙØ�;‰;�vÕ˜xÕ(¨FÔ2°vÀÔ7IÙàð 
ô 
ð ×Ñ˜f h°
Ô;à(.�‰�FÕ˜HÑ%ð 	×Ñ˜& *¨gÖ6øôG ô 	5àˆFØ.4ˆD�K‰K˜Õ 
Ó+ð	5ús   ©C ±C Ã#C,Ã+C,c                ó    <€ V ^8„  d   QhRS[ /# )é   Úreturn©r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚNMConnection.__annotate__À   s   ø€ ÷ ñ Áñ r"   c                óö   € V P                   P                  V4      '       g   / V P                   V&   \        P                  ! ^4       F.  pV V 2pV P                   P	                  W4      '       d   K,  Vu # 	  R# )é   Únot_possible)r   r%   Ú	itertoolsÚcountr&   )r   r(   Ú
key_prefixÚindexÚkeys   &&&  r   Ú_get_next_numbered_sectionÚ'NMConnection._get_next_numbered_sectionÀ   se   € Ø�{‰{×&Ñ& w×/Ò/Ø#%ˆD�K‰K˜Ñ Ü—_’_ QÖ'ˆEØ�L  Ð(ˆCØ—;‘;×)Ñ)¨'×7Ô7Ø’
ñ (ñ r"   c                óR   € V P                  W4      pW0P                  V,          V&   R# )zm
Adds a numbered property, such as address<n> or route<n>, ensuring
the appropriate value gets used for <n>.
N)rd   r   )r   r(   ra   r*   rc   s   &&&& r   Ú_add_numberedÚNMConnection._add_numberedÉ   s%   € ð
 ×-Ñ-¨gÓBˆØ$)�‰�GÕ˜SÓ!r"   c                ó®   € V R2pV P                   V,          P                  V4      pV'       d   V RV RV 2MV RV 2V P                   V,          V&   R# )zêAdd route options to a given route

Example:
Given:
  section: ipv4
  route: route0
  key: mtu
  value: 500

Create line under [ipv4] section:
    route0_options=mtu=500

If the line already exists, then append the new key/value pair
Ú_optionsÚ,Ú=N)r   Úget)r   r(   Úrouterc   r*   Únumbered_keyÚroute_optionss   &&&&&  r   Ú_add_route_optionsÚNMConnection._add_route_optionsÑ   se   € ð  ˜ Ð)ˆØŸ™ GÕ,×0Ñ0°Ó>ˆ÷ ð ˆo˜Q˜s˜e 1 U GÑ,à�5˜˜%˜Ð!ð 	�‰�GÕ˜\Ó*r"   c                óz   € VR,          R,           \        VR,          4      ,           pV P                  VRV4       R# )z%
Adds an ipv[46]address<n> property.
ÚaddressÚ/ÚprefixN)r   rg   )r   rB   Úsubnetr*   s   &&& r   Ú_add_addressÚNMConnection._add_addressè   s4   € ð
 �yÕ! CÕ'¬#¨f°XÕ.>Ó*?Õ?ˆØ×Ñ˜6 9¨eÖ4r"   c                óF   € RpVR,          ^ 8H  ;'       d    VR,          V9   # )ú::rv   Únetwork)r{   z0.0.0.0© )r   rn   Údefault_netss   && r   Ú_is_default_routeÚNMConnection._is_default_routeð   s(   € Ø(ˆØ�X� !Ñ#×HÐH¨¨iÕ(8¸LÑ(HÐHr"   c                óÐ  € \        VR,          4      '       d   RMRpVR,           RVR,           2pRV9   d   VRVR,           2,          pRV9   dJ   V P                  V4      '       d    VR,           V P                  V,          R	&   MVRVR,           2,          pV P                  VR
4      pW0P                  V,          V&   RV9   d   V P	                  W$RVR,          4       R# R# )z!Adds a ipv[46].route<n> property.r|   r?   r>   ru   rv   Úgatewayrk   Úmetricúroute-metricrn   ÚmtuN)r   r   r   rd   rq   )r   rn   rB   r*   Ú	route_keys   &&   r   Ú
_add_routeÚNMConnection._add_routeô   sâ   € ô +¨5°Õ+;×<Ò<‘À&ˆØ˜Õ#Ð$ A e¨H¥oÐ%6Ð7ˆØ˜ÔØ�q˜˜yÕ)Ð*Ð+Õ+ˆEØ�uÔØ×%Ñ% e×,Ò,Ø9>¸x½Ð8I�—‘˜FÕ# NÒ3à˜1˜U 8�_Ð-Ð.Õ.�Ø×3Ñ3°F¸GÓDˆ	Ø).�‰�FÕ˜IÑ&Ø�EŒ>Ø×#Ñ# F°u¸eÀE½lÖKñ r"   c                ó$   <€ V ^8„  d   QhRS[ RR/# )rU   ÚdnsrV   NrW   )rX   rY   s   "€r   rZ   r[     s   ø€ ÷ 
Pñ 
P¡3ð 
P¨4ñ 
Pr"   c                óF  € \        V4      '       d   RMRpV P                  P                  V4      '       dk   V P                  VR4      R8w  dR   V P	                  VRR4       V P                  V,          R,          V,           R,           V P                  V,          R&   R# R# R# )	z6
Extends the ipv[46].dns property with a name server.
r?   r>   r;   rN   rŠ   Ú Ú;N)r   r   r%   r3   r+   )r   rŠ   rB   s   && r   Ú_add_nameserverÚNMConnection._add_nameserver  s‡   € ô +¨3×/Ò/‘°Vˆà�K‰K×#Ñ# F×+Ò+Ø×'Ñ'¨°Ó9¸ZÔGà×Ñ˜f e¨RÔ0Ø)-¯©°VÕ)<¸UÕ)CÀcÕ)IÈCÕ)OˆD�K‰K˜Õ Ó&ñ Hñ ,r"   c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )rU   Ú
dns_searchrV   N)r   r   )rX   rY   s   "€r   rZ   r[     s   ø€ ÷ ñ ©$©s­)ð ¸ñ r"   c                óL  € R F�  pV P                   P                  V4      '       g   K&  V P                  VR4      R8w  g   K?  V P                  VRR4       V P                   V,          R,          RP	                  V4      ,           R,           V P                   V,          R&   KŸ  	  R# )z=
Extends the ipv[46].dns-search property with a name server.
r;   rN   z
dns-searchrŒ   r�   Nr=   )r   r%   r3   r+   Újoin)r   r‘   rB   s   && r   Ú_add_dns_searchÚNMConnection._add_dns_search  s‡   € ó 'ˆFà—‘×'Ñ'¨×/Ô/Ø×+Ñ+¨F°HÓ=ÀÖKà×!Ñ! &¨,¸Ô;à—K‘K Õ'¨Õ5Ø—h‘h˜zÓ*õ+àõð —‘˜FÕ# LÓ1ó 'r"   c                ó6   € V P                   R,          R,          # )z
Returns the connection UUID
r   r   ©r   ©r   s   &r   Úcon_uuidÚNMConnection.con_uuid"  s   € ð �{‰{˜<Õ(¨Õ0Ð0r"   c                ó:   € V P                   P                  RR4      # )z>
Can this be serialized into a meaningful connection profile?
r   Útype)r   r&   r˜   s   &r   ÚvalidÚNMConnection.valid(  s   € ð �{‰{×%Ñ% l°FÓ;Ð;r"   c                óB   € V P                  RR4      P                  4       # )z
Sanitize a MAC address.
Ú-Ú:)ÚreplaceÚupper)Úaddrs   &r   Úmac_addrÚNMConnection.mac_addr.  s   € ð
 �|‰|˜C Ó%×+Ñ+Ó-Ð-r"   c                ó(  € RRRRRRRRRRRR/pWAR	,          ,          pVf   R# R
V9   d   RpMRpWPP                   R,          R	&   VeI   W`P                   R,          R&   VP                  ! WR,           ,          4      V P                   R,          R&   / V P                   V&   R/ RRbRRbRRbRRbRRbRRbRRbRRbRR bR!R"bR#R$bR%R&bR'R(bR)R*bR+R,bR-R.bR/R0bR1R2R3R4R5R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRERF/CRRGRHRIRJ/RRKRL/R/ R/ /pVRM,          pRp	. p
. pVR8X  d+   VRN,          '       g   Rj F  pV P                  VR4       K  	  VRN,           EF  p\        V4      '       d   RPMROpV P                  WÍR	,          4       RQV9   d   V P	                  WÍ4       RRV9   d   VRR,          V P                   V,          RR&   VRS,           F  pV P                  V4       K  	  RTV9   d'   \        VRT,          4      V P                   V,          RU&   RVV9   d   V
P                  VRV,          4       RWV9   d   VP                  VRW,          4       VRO8X  g   EK  RMV9   g   EK  VRM,          p	EK  	  RXV9   d`   T
VRX,          RY,           Uu. uF  pWú9  g   K  VNK  	  up,          p
TVRX,          RZ,           Uu. uF  pVV9  g   K  VNK  	  up,          pV
'       g   VP                  '       d   VP                  p
V'       g   VP                  '       d   VP                  pV
 F  pV P                  V4       K  	  V'       d   V P                  V4       V P                  4        V	f   Tp	W˜8X  g    \        P                  R[VR\,          VV	4       Wu,          P                  4        Fˆ  w  ppVV9  d   K  VV,          f   K  \!        VV,          \"        4      '       d*   VV,          '       d   R]MR^V P                   V,          V&   Kb  \        VV,          4      V P                   V,          V&   KŠ  	  VR8X  d‡   VR_,          R`J d    \        ^@4      V P                   R,          Ra&   V	e    \        V	4      V P                   R,          RM&   VRb,          e-   V P%                  VRb,          4      V P                   R,          Rc&   VR8X  d5   RdV9   d.   VP                  ! VRd,          4      V P                   R,          Re&   VR8X  dD   V	e@   RV P                   9  d   / V P                   R&   \        V	4      V P                   R,          RM&   VR8X  dŽ   VRf,           FI  pVP&                  ! V4      pVP)                  RRR4       VP)                  RRV P+                  4       4       KK  	  VRb,          e-   V P%                  VRb,          4      V P                   R,          Rc&   VR8X  dq   V	em   RgV P                   R,          Rh&   \        V	4      V P                   R,          RM&   VRb,          e-   V P%                  VRb,          4      V P                   R,          Rc&   VR8X  g#   V P                   P-                  VRc4      '       g    VR\,          V P                   R,          Ri&   R# R# u upi u upi )kzt
Integrate information from network state interface information
into the connection. Most of the work is done here.
ÚphysicalÚethernetÚvlanÚbondÚbridgeÚ
infinibandÚloopbackNrœ   zbond-masterr   z
slave-typez-masterÚmasterÚmodez	bond-modeÚmiimonzbond-miimonÚxmit_hash_policyzbond-xmit_hash_policyÚnum_grat_arpzbond-num_grat_arpÚ	downdelayzbond-downdelayÚupdelayzbond-updelayÚfail_over_maczbond-fail_over_macÚprimary_reselectzbond-primary_reselectÚprimaryzbond-primaryÚactive_slavezbond-active_slaveÚad_actor_sys_priozbond-ad_actor_sys_prioÚad_actor_systemzbond-ad_actor_systemÚ	ad_selectzbond-ad_selectÚad_user_port_keyzbond-ad_user_port_keyÚall_slaves_activezbond-all_slaves_activeÚarp_all_targetszbond-arp_all_targetsÚarp_intervalzbond-arp_intervalÚarp_ip_targetzbond-arp_ip_targetÚarp_validatezbond-arp_validateÚ	lacp_ratezbond-lacp_rateÚlp_intervalzbond-lp_intervalÚ	min_linkszbond-min_linksÚnum_unsol_nazbond-num_unsol_naÚpackets_per_slavezbond-packets_per_slaveÚpeer_notif_delayzbond-peer_notif_delayÚresend_igmpzbond-resend_igmpÚtlb_dynamic_lbzbond-tlb_dynamic_lbÚuse_carrierzbond-use_carrierÚstpÚ
bridge_stpÚpriorityÚbridge_bridgeprior   Úvlan_idr…   Úsubnetsr>   r?   rt   r‚   Úroutesrƒ   r„   Údns_nameserversr‘   rŠ   ÚnameserversÚsearchzZNetwork config: ignoring %s device-level mtu:%s because ipv4 subnet-level mtu:%s provided.Únamer<   r:   Ú	wakeonlanTzwake-on-lanÚmac_addresszmac-addresszvlan-raw-deviceÚparentÚbridge_portsÚdatagramztransport-modezinterface-namer=   )r   Úcon_refrR   r
   rx   r‡   r   ÚextendrÓ   Údns_searchdomainsrŽ   r”   rC   ÚLOGÚwarningÚitemsÚ
isinstanceÚboolr¥   Úget_connr+   r™   r&   )r   ÚifaceÚnetwork_stater	   Ú	_type_mapÚif_typeÚ
slave_typeÚ	_prop_mapÚ
device_mtuÚipv4_mtuÚfound_nameserversÚfound_dns_searchrB   rw   rn   rŠ   rÕ   Ú
nameserverÚnm_proprc   Úports   &&&&                 r   Úrender_interfaceÚNMConnection.render_interface5  s/  € ð ˜
Ø�FØ�FØ�hØ˜,Ø˜ð
ˆ	ð  &�MÕ*ˆØŠ?ÙØ˜EÔ!Ø‰JàˆJà,3�‰�LÕ! &Ñ)ØÒ!Ø6@�K‰K˜Õ% lÑ3Ø2:×2BÒ2BØ 9Õ,Õ-ó3ˆD�K‰K˜Õ% hÑ/ð
  "ˆ�‰�GÑð ð .Ø˜ð.à˜-ð.ð #Ð$;ð	.ð Ð 3ð.ð Ð-ð.ð ˜>ð.ð  Ð!5ð.ð #Ð$;ð.ð ˜>ð.ð Ð 3ð.ð" $Ð%=ð#.ð& "Ð#9ð'.ð* Ð-ð+.ð. #Ð$;ð/.ð0 $Ð%=ð1.ð2 "Ð#9ð3.ð4 Ð 3ð5.ð6  Ð!5ØÐ 3àÐ-àÐ1àÐ-àÐ 3à#Ð%=à"Ð$;àÐ1à Ð"7ØÐ1ñ[.ð^ Ø�|ØÐ/ðð Ø�iðð ˜Ø˜"ðq9
ˆ	ðv ˜5•\ˆ
ØˆØÐØÐð �fÔ U¨9×%5Ô%5ó +�Ø×#Ñ# F¨DÖ1ñ +ð ˜I×&Ñ&ˆFÜ-¨f×5Ò5‘V¸6ˆFà×Ñ ¨v­Ô7Ø˜FÔ"Ø×!Ñ! &Ô1Ø˜FÔ"Ø17¸	Õ1B�—‘˜FÕ# IÑ.Ø ×)Ð)�Ø—‘ Ö&ñ *ð ˜6Ô!Ü69¸&ÀÕ:JÓ6K�—‘˜FÕ# NÑ3à  FÔ*Ø!×(Ñ(¨Ð0AÕ)BÔCØ˜vÔ%Ø ×'Ñ'¨¨|Õ(<Ô=Ø˜× E¨V§OØ! %�=“ñ' 'ð, �EŒ>Øà  �<¨Ö6ó"á6�CØÑ/÷ �Ù6ñ"õ Ðð
 à# E�l¨8Ö4ó!á4�FØÐ!1Ñ1÷ �Ù4ñ!õ Ð÷ ! ]×%B×%BÐ%BØ -× =Ñ =Ðß M×$C×$CÐ$CØ,×>Ñ>Ðó ,ˆJØ× Ñ  Ö,ñ ,çØ× Ñ Ð!1Ô2ð 	×1Ñ1Ô3àÒØ!ˆHØÔ%Ü�K‰Kð>à�f•ØØôð &Õ.×4Ñ4Ö6‰LˆG�SØ˜%ÔÙØ�S�zÒ!ÙÜ˜% �*¤d×+Ò+à# CŸjœj‘F¨gð —‘˜GÕ$ WÓ-ô 14°E¸#µJ³�—‘˜GÕ$ WÓ-ñ 7ð �jÔ Ø�[Õ! TÓ)ä9<¸T»�—‘˜JÕ'¨Ñ6ØÒ#Ü14°X³�—‘˜JÕ'¨Ñ.Ø�]Õ#Ò/Ø9=¿¹Ø˜-Õ(ó:�—‘˜JÕ'¨Ñ6ð �fÔÐ!2°eÔ!;Ø,4×,<Ò,<ØÐ'Õ(ó-ˆD�K‰K˜Õ Ñ)ð �fÔ Ò!5Ø §¡Ô,Ø*,�—‘˜JÑ'Ü-0°«]ˆD�K‰K˜
Õ# EÑ*Ø�hÔà˜n×-Ð-�Ø×(Ò(¨Ó.�Ø×!Ñ! ,°¸hÔGØ×!Ñ! ,°¸$¿-¹-»/ÖJñ .ð �]Õ#Ò/Ø7;·}±}Ø˜-Õ(ó8�—‘˜HÕ% mÑ4ð �lÔ" xÒ';Ø:DˆD�K‰K˜Õ%Ð&6Ñ7Ü/2°8«}ˆD�K‰K˜Õ% eÑ,Ø�]Õ#Ò/Ø;?¿=¹=Ø˜-Õ(ó<�—‘˜LÕ)¨-Ñ8ð
 �hÔ d§k¡k×&<Ñ&<Ø�]÷'
ò '
ð ;@À½-ˆD�K‰K˜Õ%Ð&6Ó7ñ'
ùò}"ùò
!s   É;Z
ÊZ
Ê*	ZÊ8Zc                ó–   € \         P                  ! 4       pV P                  P                  VRR7       RpW!P	                  4       ,           # )z
Stringify.
F)Úspace_around_delimitersz2# Generated by cloud-init. Changes will be lost.

)ÚioÚStringIOr   ÚwriteÚgetvalue)r   ÚbufÚheaders   &  r   ÚdumpÚNMConnection.dump%  s:   € ô
 �kŠk‹mˆØ�‰×Ñ˜#°uÐÔ=ØGˆØŸ™›Õ&Ð&r"   r—   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    r+   r/   r3   r6   rC   rR   rd   rg   rq   rx   r   r‡   rŽ   r”   r™   r�   Ústaticmethodr¥   rò   rü   Ú__static_attributes__Ú__classdictcell__©rY   s   @r   r   r   *   s˜   ø‡ € Ù9ò
ò0	1ò
òò1òGò0;7÷zð ò*ò
ò.5òIòL÷$
Pð 
P÷ð ò 1ò<ð ñ.ó ð.ònH÷`'ð 'r"   r   c                   óP   a € ] tR tRt o RtR
R ltR tR tRV 3R lR lltR	t	V t
R# )ÚRendereri0  z‰Renders network information in a NetworkManager keyfile format.

See https://networkmanager.dev/docs/api/latest/nm-settings-keyfile.html
Nc                ó    € / V n         Wn        R # ©N)Úconnectionsr   )r   r   s   &&r   r    ÚRenderer.__init__6  s   € ØˆÔØŽr"   c                ó(   € V P                   V,          # r
  )r  ©r   r   s   &&r   rä   ÚRenderer.get_conn:  s   € Ø×Ñ Õ'Ð'r"   c                óh   € WP                   9   d"   V P                   V,          P                  4       # V# r
  )r  r™   r  s   &&r   rÜ   ÚRenderer.con_ref=  s/   € Ø×%Ñ%Ô%Ø×#Ñ# FÕ+×4Ñ4Ó6Ð6ð ˆMr"   c                ó:   <€ V ^8„  d   QhRS[ RS[S[,          RR/# )rU   ræ   Ú	templatesrV   N)r   r   Údict)rX   rY   s   "€r   rZ   ÚRenderer.__annotate__D  s-   ø€ ÷ 
ñ 
á#ð
ñ ™D•>ð
ð
 
ñ
r"   c                ó’  € VP                  4        FD  pVP                  R 4      ;'       g
    VR,          p\        VR,          4      V P                  V&   KF  	  VP                  4        FJ  pVP                  R 4      ;'       g
    VR,          pV P                  V,          pVP	                  WAV 4       KL  	  V P                  P                  4        FM  w  rvVP                  4       '       g   K  \        Ws4      p\        P                  ! W†P                  4       R4       KO  	  \        P                  ! \        V4      \        R4       R# )Ú	config_idrÖ   i€  N)Úiter_interfacesrm   r   r  rò   rá   r�   Únm_conn_filenamer   Ú
write_filerü   Úcloud_init_nm_conf_filenameÚNM_IPV6_ADDR_GEN_CONF)	r   ræ   r  Útargetrå   Úconn_keyÚconnr   rÖ   s	   &&&&     r   Úrender_network_stateÚRenderer.render_network_stateD  sý   € ð #×2Ñ2Ö4ˆEØ—y‘y Ó-×>Ð>°°vµˆHÜ)5°e¸FµmÓ)DˆD×Ñ˜XÓ&ñ 5ð
 #×2Ñ2Ö4ˆEØ—y‘y Ó-×>Ð>°°vµˆHØ×#Ñ# HÕ-ˆDØ×!Ñ! %¸Ö=ñ 5ð !×,Ñ,×2Ñ2Ö4‰LˆFØ—:‘:—<’<ÙÜ# FÓ3ˆDÜ�OŠO˜D§)¡)£+¨uÖ5ñ	 5ô 	�ŠÜ'¨Ó/Ô1FÈö	
r"   )r   r  r
  )NN)rþ   rÿ   r   r  r  r    rä   rÜ   r   r  r  r  s   @r   r  r  0  s(   ø‡ € ñô
ò(ò÷
÷ 
ð 
r"   r  c                 óR   € \         P                  ! V\        4      pR V  R2pV RV 2# )zcloud-init-z.nmconnectionz/system-connections/©r   Útarget_pathÚ
NM_RUN_DIR)r   r  Útarget_con_dirÚcon_files   &&  r   r  r  e  s5   € Ü×%Ò% f¬jÓ9€NØ˜V˜H MÐ2€HØÐÐ1°(°Ð<Ð<r"   c                 óP   € \         P                  ! V\        4      pR V  2pV RV 2# )zifcfg-ru   )r   r$  ÚIFCFG_CFG_FILE)Údevnamer  r&  r'  s   &&  r   Úsysconfig_conn_filenamer+  k  s2   € Ü×%Ò% f¬nÓ=€NØ˜�yÐ!€HØÐ˜Q˜x˜jÐ)Ð)r"   c                óê   € \        V 4      p\        P                  P                  V4      '       g   \	        4       '       d   \        V 4      p\        P                  P                  V4      '       d   V# R# )a¢  
This function returns the name of the interface config file.
It first checks for presence of network manager connection file.
If absent and ifcfg-rh plugin for network manager is available,
it returns the name of the ifcfg file if it is present. If the
plugin is not present or the plugin is present but ifcfg file is
not, it returns None.
This function is called from NetworkManagerActivator class in
activators.py.
N)r  ÚosÚpathÚisfiler   r+  )r*  Ú	conn_files   & r   Úconn_filenamer1  q  sS   € ô ! Ó)€Iô
 �7‰7�>‰>˜)×$Ò$Ô)>×)@Ò)@Ü+¨GÓ4ˆ	ÜŸ™Ÿ™ y×1Ò1ˆ9Ð;°tÐ;r"   c                 óJ   € \         P                  ! V \        4      pR pV RV 2# )z$30-cloud-init-ip6-addr-gen-mode.confz/conf.d/r#  )r  r&  Ú	conf_files   &  r   r  r  †  s+   € Ü×%Ò% f¬jÓ9€NØ6€IØÐ˜X i [Ð1Ð1r"   c                  óî   € ^ RI Hp  \        P                  ! R4      pRpV ! 4       '       d    \        P                  ! . RO4       \        V4      ;'       d    T#   \        P                   d    Rp L.i ; i)r   )Úuses_systemdÚnmcliTF)Ú	systemctlz
is-enabledzNetworkManager.service)Úcloudinit.distrosr5  r   ÚwhichÚProcessExecutionErrorrã   )r5  Únmcli_presentÚservice_actives      r   Ú	availabler=  Œ  sd   € õ /ä—J’J˜wÓ'€MØ€NÙ‡~‚~ð	#Ü�IŠIÒKÔLô �Ó×1Ð1 >Ð1øô ×)Ñ)ô 	#Ø"ŠNð	#ús   ­A ÁA4Á3A4r
  )#r   rö   r_   Úloggingr-  r   Útypingr   r   Ú	cloudinitr   r   Úcloudinit.netr   r   r	   r
   Úcloudinit.net.network_stater   Úcloudinit.net.sysconfigr   r%  Ú
NM_LIB_DIRr)  r  Ú	getLoggerrþ   rß   r   r  r  r+  r1  r  r=  r}   r"   r   Ú<module>rF     s“   ðó Û 	Û Û Û 	Û ß !ç  ÷ó õ 5Ý 9à"€
Ø&€
Ø1€ðÐ ð ×Ò˜Ó!€÷C'ñ C'ôL2
ˆx× Ñ ô 2
ôj=ô*ò<ô*2ô2r"   