§
    °³Ùgf
  ã                   ó~   — d dl Z d dlZd dlZd dlZd dlZ	 d dlZn# e$ r d dlZY nw xY we j        d„ ¦   «         Z	d„ Z
dS )é    Nc              #   ó&  K  — t           j        dk    rt          j        ¦   «         }nt          j        ¦   «         }|                     | ¦  «         |V — t          | d¦  «        5 }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)é   é   Úw)ÚsysÚversion_infoÚconfigparserÚConfigParserÚSafeConfigParserÚreadÚopenÚwrite)ÚfilenameÚcfgÚfps      úD/granary/edev/quantum/lib/python3.11/site-packages/pbr/tests/util.pyÚopen_configr   5   sÍ   è è € å
Ô˜6Ò!Ð!ÝÔ'Ñ)Ô)ˆˆåÔ+Ñ-Ô-ˆØ‡H‚HˆXÑÔÐØ
€I€I€IÝ	ˆh˜Ñ	Ô	ð  Ø�	Š	�"‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á#BÂB
ÂB
c                 ó4   — d„ }t          j        | |¬¦  «        S )zkshutil.rmtree() with error handler.

    Handle 'access denied' from trying to delete read-only files.
    c                 óš   — t          j        |t           j        ¦  «        s,t          j        |t          j        ¦  «          | |¦  «         d S ‚ )N)ÚosÚaccessÚW_OKÚchmodÚstatÚS_IWUSR)ÚfuncÚpathÚexc_infos      r   Úonerrorzrmtree.<locals>.onerrorG   s@   € ÝŒy˜�rœwÑ'Ô'ð 	ÝŒH�T�4œ<Ñ(Ô(Ð(ØˆD�‰JŒJˆJˆJˆJàó    )r   )ÚshutilÚrmtree)r   r   s     r   r"   r"   A   s(   € ðð ð õ Œ=˜ wÐ/Ñ/Ô/Ð/r    )Ú
contextlibr   r!   r   r   r
   r	   ÚImportErrorÚcontextmanagerr   r"   © r    r   ú<module>r'      s±   ððR Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
ðØ'Ð'Ð'Ð'Ð'øØð ð ð ØÐÐÐÐÐðøøøð Ôðð ñ Ôðð0ð 0ð 0ð 0ð 0s   – ›	'¦'