+
    i                     "    R  t R tR tRR ltR# )c                B    W P                  4       8X  g   Q hV : RV: R2# )z6Return a udev comparison clause, like `ACTION=="add"`.z==""upperkeyvalues   &&4/usr/lib/python3/dist-packages/cloudinit/net/udev.pycompose_udev_equalityr
      s    ))+e$$    c                D    W P                  4       8X  g   Q hRV : RV: R2# )zBReturn a udev attribute comparison clause, like `ATTR{type}=="1"`.zATTR{z}=="r   )lower)	attributer   s   &&r	   compose_udev_attr_equalityr      s     ))))(%00r   c                B    W P                  4       8X  g   Q hV : RV: R2# )z4Return a udev assignment clause, like `NAME="eth0"`.z="r   r   r   s   &&r	   compose_udev_settingr      s    ))+U##r   Nc           
         V'       g   RpRP                  \        RR4      \        RR4      \        RV4      \        RV4      \        R	V 4      .4      pR
V,          # )zReturn a udev rule to set the name of network interface with `mac`.

The rule ends up as a single line looking something like:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}="ff:ee:dd:cc:bb:aa", NAME="eth0"
z?*z, 	SUBSYSTEMnetACTIONaddDRIVERSaddressNAMEz%s
)joinr
   r   r   )	interfacemacdriverrules   &&& r	   generate_udev_ruler      s]     99!+u5!(E2!)V4&y#6 3	
D D=r   )N)r
   r   r   r    r   r	   <module>r!      s   %1$r   