+
    ˜qgjŒ
  ã                   óÈ   € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ]P                  ! ]	4      t
R R ltR R ltR R	 ltR
 R ltR R lt ! R R] P                   4      tR# )é    N©ÚOptional)Údmic                ó0   € V ^8„  d   QhR\         R\         /# ©é   Úsystem_uuidÚreturn©Ústr)Úformats   "ÚB/usr/lib/python3/dist-packages/cloudinit/sources/azure/identity.pyÚ__annotate__r      s   € ÷ 8ñ 8¤sð 8¬sñ 8ó    c                óÐ   €  \         P                  ! V 4      p\        \         P                  ! TP                  R7      4      #   \         d    \        P	                  RT 4       h i ; i)aÀ  Byte swap system uuid.

Azure always uses little-endian for the first three fields in the uuid.
This behavior was made strict in SMBIOS 2.6+, but Linux and dmidecode
follow RFC 4122 and assume big-endian for earlier SMBIOS versions.

Azure's gen1 VMs use SMBIOS 2.3 which requires byte swapping to match
compute.vmId presented by IMDS.

Azure's gen2 VMs use SMBIOS 3.1 which does not require byte swapping.

:raises ValueError: if UUID is invalid.
zFailed to parse system uuid: %r)Úbytes)ÚuuidÚUUIDÚ
ValueErrorÚLOGÚerrorr   Úbytes_le)r	   Úoriginal_uuids   & r   Úbyte_swap_system_uuidr      sT   € ðÜŸ	š	 +Ó.ˆô
 Œt�yŠy˜}×5Ñ5Ô6Ó7Ð7øô	 ô Ü�	‰	Ð3°[ÔAØðús   ‚A Á#A%c                ó0   € V ^8„  d   QhR\         R\         /# r   r   )r   s   "r   r   r   '   s   € ÷ ñ ¬cð ´cñ r   c                ó<   € \        4       '       d   \        V 4      # V # )z!Determine VM ID from system uuid.)Ú
is_vm_gen1r   ©r	   s   &r   Úconvert_system_uuid_to_vm_idr   '   s   € ä‡|‚|Ü$ [Ó1Ð1àÐr   c                ó$   € V ^8„  d   QhR\         /# ©r   r
   )Úbool)r   s   "r   r   r   /   s   € ÷ ñ ”Dñ r   c                 ó¢   € \         P                  P                  R4      '       d   R# \         P                  P                  R4      '       d   R# R# )zRDetermine if VM is gen1 or gen2.

Gen2 guests use UEFI while gen1 is legacy BIOS.
z/sys/firmware/efiFz/dev/efiT)ÚosÚpathÚexists© r   r   r   r   /   s6   € ô 
‡w�w‡~�~Ð)×*Ò*Ùô 
‡w�w‡~�~�j×!Ò!Ùár   c                ó$   € V ^8„  d   QhR\         /# r!   r   )r   s   "r   r   r   ?   s   € ÷ 	ñ 	œ3ñ 	r   c                 óœ   € \         P                  ! R4      p V f   \        R4      hV P                  4       p \        P                  RV 4       V # )z Query system uuid in lower-case.zsystem-uuidzfailed to read system-uuidzRead product uuid: %s)r   Úread_dmi_dataÚRuntimeErrorÚlowerr   Údebugr   s    r   Úquery_system_uuidr.   ?   sI   € ä×#Ò# MÓ2€KØÒÜÐ7Ó8Ð8ð ×#Ñ#Ó%€KÜ‡I�IÐ% {Ô3ØÐr   c                ó$   € V ^8„  d   QhR\         /# r!   r   )r   s   "r   r   r   K   s   € ÷ 5ñ 5”Sñ 5r   c                 ó,   € \        4       p \        V 4      # )zQuery VM ID from system.)r.   r   r   s    r   Úquery_vm_idr1   K   s   € ä#Ó%€KÜ'¨Ó4Ð4r   c                   ó@   a € ] tR t^Qt o Rt]V 3R lR l4       tRtV tR# )ÚChassisAssetTagz 7783-7084-3265-9085-8269-3286-77c                ó.   <€ V ^8„  d   QhRS[ R,          /# )r   r
   r3   r   )r   Ú__classdict__s   "€r   r   ÚChassisAssetTag.__annotate__U   s   ø€ ÷ ñ ™XÐ&7Õ8ñ r   c                óÔ   € \         P                  ! R4      p V ! V4      p\        P	                  RYP
                  4       T#   \         d    \        P	                  RT4        R# i ; i)z~Check platform environment to report if this datasource may run.

:returns: ChassisAssetTag if matching tag found, else None.
zchassis-asset-tagzNon-Azure chassis asset tag: %rNz Azure chassis asset tag: %r (%s))r   r*   r   r   r-   Úname)ÚclsÚ	asset_tagÚtags   &  r   Úquery_systemÚChassisAssetTag.query_systemT   s`   € ô ×%Ò%Ð&9Ó:ˆ	ð	Ù�i“.ˆCô
 	�	‰	Ð4°iÇÁÔJØˆ
øô ô 	Ü�I‰IÐ7¸ÔCÚð	ús   ˜A Á!A'Á&A'r'   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚAZURE_CLOUDÚclassmethodr<   Ú__static_attributes__Ú__classdictcell__)r5   s   @r   r3   r3   Q   s   ø‡ € Ø4€Kà÷ó ör   r3   )ÚenumÚloggingr$   r   Útypingr   Ú	cloudinitr   Ú	getLoggerr>   r   r   r   r   r.   r1   ÚEnumr3   r'   r   r   Ú<module>rL      sR   ðó
 Û Û 	Û Ý å à×Ò˜Ó!€õ8õ.õõ 	õ5ô�d—i‘iö r   