PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oB]c@s.dZddlZejeZdZdS(s9Common utility functions for interacting with subprocess.iNcCs)g}g}g}x|D]}t|trq|dd krK|d}q|d|kr|jd|qnKt|tr|jd|s|j|qn|jt|q|j|qW|rtjd||dj |n|r%t dj d|ddj |n|S( sEnsure user-provided commands start with base_command; warn otherwise. Each command is either a list or string. Perform the following: - If the command is a list, pop the first element if it is None - If the command is a list, insert base_command as the first element if not present. - When the command is a string not starting with 'base-command', warn. Allow flexibility to provide non-base-command environment/config setup if needed. @commands: List of commands. Each command element is a list or string. @return: List of 'fixed up' commands. @raise: TypeError on invalid config item type. iis%s s Non-%s commands in %s config: %ss sHInvalid {name} config. These commands are not a string or list: {errors}tnameterrorsN( t isinstancetlisttNonetinserttstrt startswithtappendtLOGtwarningtjoint TypeErrortformat(t base_commandtcommandstwarningsRtfixed_commandstcommand((s2/usr/lib/python2.7/site-packages/cloudinit/subp.pytprepend_base_command s0   (t__doc__tloggingt getLoggert__name__R R(((s2/usr/lib/python2.7/site-packages/cloudinit/subp.pyts