§
    °³Ùg³Ê  ã                   ó4  — d dl Z d dlZ d dlZd dlZd dlZd dlZd dlZd dlZ	 d dlm	Z	 n# e
$ r d dl	Z	Y nw xY wd dlZd dlZd dlZd dlmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ 	 d dlZej        j        Zn# e
$ r
 d dlZd„ ZY nw xY wej                             ej                             e d	d	d	¦  «        ¦  «        Z! G d
„ dej"        ¦  «        Z# G d„ dej"        ¦  «        Z$ G d„ dej"        ¦  «        Z% G d„ dej"        ¦  «        Z& G d„ dej'        ¦  «        Z( G d„ dej'        ¦  «        Z) G d„ dej'        ¦  «        Z* G d„ dej'        ¦  «        Z+ G d„ dej,        ¦  «        Z- G d„ dej'        ¦  «        Z. G d„ dej'        ¦  «        Z/ G d „ d!ej'        ¦  «        Z0 G d"„ d#ej'        ¦  «        Z1 G d$„ d%ej'        ¦  «        Z2 G d&„ d'ej'        ¦  «        Z3 G d(„ d)ej'        ¦  «        Z4 G d*„ d+ej'        ¦  «        Z5 G d,„ d-ej'        ¦  «        Z6d.„ Z7dS )/é    N)Úmock)Úmatchers)Ú	wheelfile)Úgit)Ú	packaging)Úbasec                  ó.   — d„ t           j        D ¦   «         S )Nc                 ó   — g | ]
}|d          ‘ŒS )r   © )Ú.0Úxs     úN/granary/edev/quantum/lib/python3.11/site-packages/pbr/tests/test_packaging.pyú
<listcomp>z get_suffixes.<locals>.<listcomp>K   s   € Ð/Ð/Ð/˜��!”Ð/Ð/Ð/ó    )ÚimpÚget_suffixesr   r   r   r   r   J   s   € Ø/Ð/�cÔ.Ð/Ñ/Ô/Ð/r   z..c                   ó@   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zdd„Zd„ Zd„ Zˆ xZ	S )	ÚTestRepozäA git repo for testing with.

    Use of TempHomeDir with this fixture is strongly recommended as due to the
    lack of config --local in older gits, it will write to the users global
    configuration without TempHomeDir.
    c                 ód   •— t          t          | ¦  «                             ¦   «          || _        d S ©N)Úsuperr   Ú__init__Ú_basedir)ÚselfÚbasedirÚ	__class__s     €r   r   zTestRepo.__init__Y   s*   ø€ Ý�h˜ÑÔ×&Ò&Ñ(Ô(Ð(ØˆŒˆˆr   c                 óì   •— t          t          | ¦  «                             ¦   «          t          j        g d¢| j        ¦  «         t          j        ¦   «          t          j        g d¢| j        ¦  «         d S )N)r   Úinitú.)r   Úaddr   )r   r   ÚsetUpr   Ú_run_cmdr   Ú_config_git©r   r   s    €r   r!   zTestRepo.setUp]   sj   ø€ Ý�h˜ÑÔ×#Ò#Ñ%Ô%Ð%ÝŒÐ*Ð*Ð*¨D¬MÑ:Ô:Ð:ÝÔÑÔÐÝŒÐ)Ð)Ð)¨4¬=Ñ9Ô9Ð9Ð9Ð9r   útest commitc                 ó&  — t          t          j        | j        ¦  «        ¦  «        }| j        d|z  z   }t	          |d¦  «                             ¦   «          t          j        dd|g| j        ¦  «         t          j        ddd|g| j        ¦  «         d S )Nz/%dÚwtr   r    Úcommitú-m)ÚlenÚosÚlistdirr   ÚopenÚcloser   r"   )r   Úmessage_contentÚfilesÚpaths       r   r(   zTestRepo.commitc   s…   € Ý•B”J˜tœ}Ñ-Ô-Ñ.Ô.ˆØŒ}˜u u™}Ñ,ˆÝˆT�4ÑÔ×ÒÑ Ô Ð ÝŒ�u˜e TÐ*¨D¬MÑ:Ô:Ð:ÝŒ�u˜h¨¨oÐ>ÀÄÑNÔNÐNÐNÐNr   c                 ó>   — t          j        g d¢| j        ¦  «         d S )N)r   Úresetz--hardzHEAD^©r   r"   r   )r   s    r   ÚuncommitzTestRepo.uncommitj   s#   € ÝŒÐ9Ð9Ð9¸4¼=ÑIÔIÐIÐIÐIr   c                 óD   — t          j        dddd|g| j        ¦  «         d S )Nr   Útagz-smztest tagr4   ©r   Úversions     r   r7   zTestRepo.tagm   s7   € ÝŒØ�E˜5 *¨gÐ6¸¼ñ	Gô 	Gð 	Gð 	Gð 	Gr   )r%   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r!   r(   r5   r7   Ú__classcell__©r   s   @r   r   r   Q   s›   ø€ € € € € ðð ð ð  ð  ð  ð  ð:ð :ð :ð :ð :ðOð Oð Oð OðJð Jð JðGð Gð Gð Gð Gð Gð Gr   r   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚGPGKeyFixturezxCreates a GPG key for testing.

    It's recommended that this be used in concert with a unique home
    directory.
    c                 óÞ  •— t          t          | ¦  «                             ¦   «          |                      t	          j        ¦   «         ¦  «        }t          j        d¦  «        }t          j	        ddg|j
        ¦  «        }|d                              d¦  «        D ]€}|                     |¦  «        }|rgt          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        f} nŒ�|€d	}t          j
                             |j
        d
¦  «        }t#          |d¦  «        5 }|d         dk    r!|d         dk    r|                     d¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |d         dk    rd}n|d         dk    rd}nd}t          j	        ddd||g|j
        ¦  «         d S )Nz#^gpg\s.*\s([\d+])\.([\d+])\.([\d+])Úgpgz	--versionr   ú
é   é   é   )r   r   r   z
key-configr'   zO
                %no-protection
                %transient-key
                zã
            %no-ask-passphrase
            Key-Type: RSA
            Name-Real: Example Key
            Name-Comment: N/A
            Name-Email: example@example.com
            Expire-Date: 2d
            %commit
            z--quick-randomz--debug-quick-randomÚ z	--gen-keyz--batch)r   rA   r!   Ú
useFixtureÚfixturesÚTempDirÚreÚcompiler   r"   r1   ÚsplitÚmatchÚintÚgroupr+   Újoinr-   Úwrite)	r   ÚtempdirÚgnupg_version_reÚgnupg_versionÚlineÚconfig_fileÚfÚgnupg_randomr   s	           €r   r!   zGPGKeyFixture.setUpy   s@  ø€ Ý�m˜TÑ"Ô"×(Ò(Ñ*Ô*Ð*Ø—/’/¥(Ô"2Ñ"4Ô"4Ñ5Ô5ˆÝœ:Ð&LÑMÔMÐÝœ u¨kÐ&:¸G¼LÑIÔIˆØ! !Ô$×*Ò*¨4Ñ0Ô0ð 		*ð 		*ˆDØ,×2Ò2°4Ñ8Ô8ˆMØð Ý!$ ]×%8Ò%8¸Ñ%;Ô%;Ñ!<Ô!<Ý!$ ]×%8Ò%8¸Ñ%;Ô%;Ñ!<Ô!<Ý!$ ]×%8Ò%8¸Ñ%;Ô%;Ñ!<Ô!<ð!>�ð �ð	ð Ð$Ø )�å”g—l’l 7¤<°Ñ>Ô>ˆÝ�+˜tÑ$Ô$ð 	¨Ø˜QÔ 1Ò$Ð$¨°qÔ)9¸QÒ)>Ð)>Ø—’ð ñ ô ð ð �GŠGð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð& ˜Ô˜qÒ Ð Ø+ˆLˆLØ˜1Ô Ò"Ð"Ø1ˆLˆLàˆLåŒØ�K ¨L¸+ÐFØŒLñ	ô 	ð 	ð 	ð 	s   ÅAF#Æ#F'Æ*F')r:   r;   r<   r=   r!   r>   r?   s   @r   rA   rA   r   sB   ø€ € € € € ðð ð-ð -ð -ð -ð -ð -ð -ð -ð -r   rA   c                   ó    — e Zd ZdZdd„Zd„ ZdS )ÚVenvzªCreate a virtual environment for testing with.

    :attr path: The path to the environment root.
    :attr python: The path to the python binary in the environment.
    r   Nc                 ón   — || _         |dk    rddddt          g}|| _        |€g d¢| _        dS || _        dS )až  Create a Venv fixture.

        :param reason: A human readable string to bake into the venv
            file path to aid diagnostics in the case of failures.
        :param modules: A list of modules to install, defaults to latest
            pip, wheel, and the working copy of PBR.
        :attr pip_cmd: A list to override the default pip_cmd passed to
            python for installing base packages.
        r   ÚpipÚwheelÚbuildÚ
setuptoolsN)r)   r^   z-vÚinstall)Ú_reasonÚPBR_ROOTÚmodulesÚpip_cmd)r   Úreasonre   rf   s       r   r   zVenv.__init__°   sL   € ð ˆŒØ�bŠ=ˆ=Ø˜g w°½hÐGˆGØˆŒØˆ?Ø9Ð9Ð9ˆDŒLˆLˆLà"ˆDŒLˆLˆLr   c                 óH  — |                       t          j        ¦   «         ¦  «        j        }t	          j        |g¦  «         t          j                             |dd¦  «        }|g| j        z   dgz   }| j	        rbt          | j	        ¦  «        dk    rJ|                     | j	        ¦  «         |                       t          j        d| j        z   |¦  «        ¦  «         |                      t           | d¦  «         |                      t           | d¦  «         || _        || _        ||fS )NÚbinÚpythonz-Ur   zmkvenv-r1   )rI   rJ   rK   r1   Ú
virtualenvÚcli_runr+   rR   rf   re   r*   Úextendr   ÚCapturedSubprocessrc   Ú
addCleanupÚdelattrrj   )r   r1   rj   Úcommands       r   Ú_setUpzVenv._setUpÃ   s  € Ø�Š�xÔ/Ñ1Ô1Ñ2Ô2Ô7ˆÝÔ˜D˜6Ñ"Ô"Ð"å”—’˜d E¨8Ñ4Ô4ˆØ�(˜Tœ\Ñ)¨T¨FÑ2ˆØŒ<ð 	4�C ¤Ñ-Ô-°Ò1Ð1Ø�NŠN˜4œ<Ñ(Ô(Ð(Ø�OŠO�DÔ3Ø˜DœLÑ(¨'ñ3ô 3ñ 4ô 4ð 4à�Š�  vÑ.Ô.Ð.Ø�Š�  xÑ0Ô0Ð0ØˆŒ	ØˆŒØ�Vˆ|Ðr   )r   N)r:   r;   r<   r=   r   rr   r   r   r   r\   r\   ©   sA   € € € € € ðð ð#ð #ð #ð #ð&ð ð ð ð r   r\   c                   óf   — e Zd ZdZ ej        d¦  «         ej        d¦  «        dœZd„ Zd„ Zd„ Z	dS )	ÚCreatePackageszÆCreates packages from dict with defaults

        :param package_dirs: A dict of package name to directory strings
        {'pkg_a': '/tmp/path/to/tmp/pkg_a', 'pkg_b': '/tmp/path/to/tmp/pkg_b'}
    z¶            #!/usr/bin/env python
            import setuptools
            setuptools.setup(
                setup_requires=['pbr'],
                pbr=True,
            )
        z=            [metadata]
            name = {pkg_name}
        ©úsetup.pyú	setup.cfgc                 ó   — || _         dS )aX  Creates packages from dict with defaults

            :param packages: a dict where the keys are the package name and a
            value that is a second dict that may be empty, containing keys of
            filenames and a string value of the contents.
            {'package-a': {'requirements.txt': 'string', 'setup.cfg': 'string'}
        N)Úpackages)r   ry   s     r   r   zCreatePackages.__init__ê   s   € ð !ˆŒˆˆr   c                 óÚ  — t           j                             t           j                             ||¦  «        ¦  «        }t           j                             |¦  «        }t           j                             |¦  «        s1|                     |¦  «        rt          j        |¦  «         nt          ‚t          |d¦  «        5 }| 
                    |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr'   )r+   r1   ÚabspathrR   ÚdirnameÚexistsÚ
startswithÚmakedirsÚ
ValueErrorr-   rS   )r   Ú	directoryÚ	file_nameÚcontentsr1   Úpath_dirrY   s          r   Ú
_writeFilezCreatePackages._writeFileô   s   € ÝŒw�Š�rœwŸ|š|¨I°yÑAÔAÑBÔBˆÝ”7—?’? 4Ñ(Ô(ˆÝŒw�~Š~˜hÑ'Ô'ð 	!Ø×"Ò" 9Ñ-Ô-ð !Ý”˜HÑ%Ô%Ð%Ð%å Ð Ý�$˜ÑÔð 	 Ø�GŠG�HÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Â=C Ã C$Ã'C$c                 óâ  — |                       t          j        ¦   «         ¦  «        j        }i }| j        D �]}t
          j                             ||¦  «        }|||<   t          j        |¦  «         dD ]j}|| j        |         v r!| j        |                              |¦  «        }n!| j	        |          
                    |¬¦  «        }|                      |||¦  «         Œk| j        |         D ]*}|                      ||| j        |         |         ¦  «         Œ+|                       t          |¦  «        ¦  «                             ¦   «          �Œ|                      t          | d¦  «         || _        |S )Nru   )Úpkg_nameÚpackage_dirs)rI   rJ   rK   r1   ry   r+   rR   ÚmkdirÚpopÚdefaultsÚformatr…   r   r(   ro   rp   rˆ   )r   Útmpdirrˆ   r‡   Úpkg_pathÚcfrƒ   s          r   rr   zCreatePackages._setUpÿ   sa  € Ø—’¥Ô!1Ñ!3Ô!3Ñ4Ô4Ô9ˆØˆØœð 	9ñ 	9ˆHÝ”w—|’| F¨HÑ5Ô5ˆHØ%-ˆL˜Ñ"ÝŒH�XÑÔÐØ/ð 8ð 8�Ø˜œ xÔ0Ð0Ð0Ø#œ}¨XÔ6×:Ò:¸2Ñ>Ô>�H�Hà#œ}¨RÔ0×7Ò7ÀÐ7ÑJÔJ�HØ—’ ¨"¨hÑ7Ô7Ð7Ð7à”m HÔ-ð Kð K�Ø—’ ¨"¨d¬m¸HÔ.EÀbÔ.IÑJÔJÐJÐJØ�OŠO�H XÑ.Ô.Ñ/Ô/×6Ò6Ñ8Ô8Ð8Ñ8Ø�Š�  ~Ñ6Ô6Ð6Ø(ˆÔØÐr   N)
r:   r;   r<   r=   ÚtextwrapÚdedentr‹   r   r…   rr   r   r   r   rt   rt   Ô   s‡   € € € € € ðð ð $�H”Oð %ñ ô ð %�X”_ð &ñ ô ðð €Hð!ð !ð !ð	ð 	ð 	ðð ð ð ð r   rt   c                   ó€   ‡ — e Zd Zd ed¬¦  «        fd ed¬¦  «        fgZˆ fd„Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zˆ xZS )Ú TestPackagingInGitRepoWithCommitÚpreversionedT©r”   ÚpostversionedFc                 óà   •— t          t          | ¦  «                             ¦   «          |                      t	          | j        ¦  «        ¦  «        | _        | j                             ¦   «          d S r   )r   r“   r!   rI   r   Úpackage_dirÚrepor(   r$   s    €r   r!   z&TestPackagingInGitRepoWithCommit.setUp  sX   ø€ ÝÕ.°Ñ5Ô5×;Ò;Ñ=Ô=Ð=Ø—O’O¥H¨TÔ-=Ñ$>Ô$>Ñ?Ô?ˆŒ	ØŒ	×ÒÑÔÐÐÐr   c                 ó  — |                       dd¬¦  «         t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |d¦  «         d S )NÚsdistF©Ú
allow_failÚAUTHORSÚrrH   ©Ú	run_setupr-   r+   r1   rR   r˜   ÚreadÚassertNotEqual©r   rY   Úbodys      r   Útest_authorsz-TestPackagingInGitRepoWithCommit.test_authors!  s¶   € Ø�Š�w¨5ˆÑ1Ô1Ð1å•"”'—,’,˜tÔ/°Ñ;Ô;¸SÑAÔAð 	ÀQØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò˜D "Ñ%Ô%Ð%Ð%Ð%ó   ÁA,Á,A0Á3A0c                 ó  — |                       dd¬¦  «         t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |d¦  «         d S )Nr›   Frœ   Ú	ChangeLogrŸ   rH   r    r¤   s      r   Útest_changelogz/TestPackagingInGitRepoWithCommit.test_changelog(  s¸   € Ø�Š�w¨5ˆÑ1Ô1Ð1Ý•"”'—,’,˜tÔ/°Ñ=Ô=¸sÑCÔCð 	ÀqØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜D "Ñ%Ô%Ð%Ð%Ð%r§   c                 óT  — | j                              d¬¦  «         |                      dd¬¦  «         t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |  	                    d|¦  «         d S )	NzAllow *.openstack.org to work©r/   r›   Frœ   r©   rŸ   z\*©
r™   r(   r¡   r-   r+   r1   rR   r˜   r¢   ÚassertInr¤   s      r   Útest_changelog_handles_astriskz?TestPackagingInGitRepoWithCommit.test_changelog_handles_astrisk/  sÎ   € ØŒ	×ÒÐ)HÐÑIÔIÐIØ�Š�w¨5ˆÑ1Ô1Ð1Ý•"”'—,’,˜tÔ/°Ñ=Ô=¸sÑCÔCð 	ÀqØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�e˜TÑ"Ô"Ð"Ð"Ð"ó   Á&BÂBÂBc                 ó¬  — | j                              d¬¦  «         |                      dd¬¦  «         t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |  	                    d|¦  «         |  	                    d	|¦  «         |  	                    d
|¦  «         d S )NzSee os_ for to_do about qemu_.r¬   r›   Frœ   r©   rŸ   zos\_zto\_dozqemu\_r­   r¤   s      r   Ú+test_changelog_handles_dead_links_in_commitzLTestPackagingInGitRepoWithCommit.test_changelog_handles_dead_links_in_commit6  sö   € ØŒ	×ÒÐ)IÐÑJÔJÐJØ�Š�w¨5ˆÑ1Ô1Ð1Ý•"”'—,’,˜tÔ/°Ñ=Ô=¸sÑCÔCð 	ÀqØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�g˜tÑ$Ô$Ð$Ø�Š�i Ñ&Ô&Ð&Ø�Š�i Ñ&Ô&Ð&Ð&Ð&r°   c                 óT  — | j                              d¬¦  «         |                      dd¬¦  «         t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |  	                    d|¦  «         d S )	NzAllow `openstack.org` to `workr¬   r›   Frœ   r©   rŸ   z\`r­   r¤   s      r   Ú test_changelog_handles_backtickszATestPackagingInGitRepoWithCommit.test_changelog_handles_backticks?  sÎ   € ØŒ	×ÒÐ)IÐÑJÔJÐJØ�Š�w¨5ˆÑ1Ô1Ð1Ý•"”'—,’,˜tÔ/°Ñ=Ô=¸sÑCÔCð 	ÀqØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�e˜TÑ"Ô"Ð"Ð"Ð"r°   c                 ó¶  — |                       dd¬¦  «         t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |t          j	        t          j
        d¦  «        ¦  «        ¦  «         |                      |t          j
        d¦  «        ¦  «         d S )Nr›   Frœ   z$pbr_testpackage.egg-info/SOURCES.txtrŸ   zpbr_testpackage/extra.pyzpbr_testpackage/__init__.py)r¡   r-   r+   r1   rR   r˜   r¢   Ú
assertThatr   ÚNotÚContainsr¤   s      r   Útest_manifest_exclude_honouredz?TestPackagingInGitRepoWithCommit.test_manifest_exclude_honouredF  s  € Ø�Š�w¨5ˆÑ1Ô1Ð1Ý•"”'—,’,ØÔ Ø6ñ8ô 8à9<ñ>ô >ð 	àABØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠØ•(”,�xÔ0Ð1KÑLÔLÑMÔMñ	Oô 	Oð 	Oà�Š˜�hÔ/Ð0MÑNÔNÑOÔOÐOÐOÐOr§   c                 ó    — |                       dd| j        dz   d¬¦  «        \  }}}|                      |t          j        d¦  «        ¦  «         d S ©Nrb   ú--rootÚ	installedFrœ   zGenerating ChangeLog©r¡   Útemp_dirÚ
expectThatr   r¸   ©r   ÚstdoutÚ_s      r   Útest_install_writes_changelogz>TestPackagingInGitRepoWithCommit.test_install_writes_changelogP  sY   € Ø—~’~Ø�x ¤°Ñ!<Øð &ñ ô ‰ˆ��1ð 	�Š˜¥Ô 1Ð2HÑ IÔ IÑJÔJÐJÐJÐJr   )r:   r;   r<   ÚdictÚ	scenariosr!   r¦   rª   r¯   r²   r´   r¹   rÄ   r>   r?   s   @r   r“   r“     sÞ   ø€ € € € € ð 
˜˜¨4Ð0Ñ0Ô0Ð1Ø	˜$˜$¨EÐ2Ñ2Ô2Ð3ð€Ið
ð ð ð ð ð
&ð &ð &ð&ð &ð &ð#ð #ð #ð'ð 'ð 'ð#ð #ð #ðPð Pð PðKð Kð Kð Kð Kð Kð Kr   r“   c                   ó   — e Zd Zd„ ZdS )ÚTestExtrafileInstallationc                 óð   — |                       dd| j        dz   d¬¦  «        \  }}}|                      |t          j        d¦  «        ¦  «         |                      |t          j        d¦  «        ¦  «         d S )Nrb   r¼   r½   Frœ   zcopying data_files/a.txtzcopying data_files/b.txtr¾   rÁ   s      r   Útest_install_globz+TestExtrafileInstallation.test_install_globX  s“   € Ø—~’~Ø�x ¤°Ñ!<Øð &ñ ô ‰ˆ��1ð 	�ŠØ•HÔ%Ð&@ÑAÔAñ	Cô 	Cð 	Cà�ŠØ•HÔ%Ð&@ÑAÔAñ	Cô 	Cð 	Cð 	Cð 	Cr   N)r:   r;   r<   rÊ   r   r   r   rÈ   rÈ   W  s(   € € € € € ðCð Cð Cð Cð Cr   rÈ   c                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )Ú#TestPackagingInGitRepoWithoutCommitc                 óÒ   •— t          t          | ¦  «                             ¦   «          |                      t	          | j        ¦  «        ¦  «         |                      dd¬¦  «         d S )Nr›   Frœ   )r   rÌ   r!   rI   r   r˜   r¡   r$   s    €r   r!   z)TestPackagingInGitRepoWithoutCommit.setUpd  sY   ø€ ÝÕ1°4Ñ8Ô8×>Ò>Ñ@Ô@Ð@Ø�Š� Ô!1Ñ2Ô2Ñ3Ô3Ð3Ø�Š�w¨5ˆÑ1Ô1Ð1Ð1Ð1r   c                 óð   — t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      d|¦  «         d S )Nrž   rŸ   rD   ©r-   r+   r1   rR   r˜   r¢   ÚassertEqualr¤   s      r   r¦   z0TestPackagingInGitRepoWithoutCommit.test_authorsi  s    € å•"”'—,’,˜tÔ/°Ñ;Ô;¸SÑAÔAð 	ÀQØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò˜˜tÑ$Ô$Ð$Ð$Ð$ó   ´AÁAÁAc                 óð   — t          t          j                             | j        d¦  «        d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      d|¦  «         d S )Nr©   rŸ   zCHANGES
=======

rÏ   r¤   s      r   rª   z2TestPackagingInGitRepoWithoutCommit.test_changelogo  s¡   € å•"”'—,’,˜tÔ/°Ñ=Ô=¸sÑCÔCð 	ÀqØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×ÒÐ/°Ñ6Ô6Ð6Ð6Ð6rÑ   )r:   r;   r<   r!   r¦   rª   r>   r?   s   @r   rÌ   rÌ   b  sV   ø€ € € € € ð2ð 2ð 2ð 2ð 2ð
%ð %ð %ð7ð 7ð 7ð 7ð 7ð 7ð 7r   rÌ   c                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚTestPackagingWheelsc                 ó’  •— t          t          | ¦  «                             ¦   «          |                      t	          | j        ¦  «        ¦  «         |                      dd¬¦  «         t          j         	                    | j        d¦  «        }t          j
        |¦  «        d         }t          j         	                    ||¦  «        }t          j        |¦  «        }|j                             d¦  «        }t          j         	                    ||¦  «        | _        |                     | j        ¦  «         |                     ¦   «          d S )NÚbdist_wheelFrœ   Údistr   Únamever)r   rÔ   r!   rI   r   r˜   r¡   r+   r1   rR   r,   r   Ú	WheelFileÚparsed_filenamerQ   Úextracted_wheel_dirÚ
extractallr.   )r   Údist_dirÚrelative_wheel_filenameÚabsolute_wheel_filenameÚ
wheel_fileÚ
wheel_namer   s         €r   r!   zTestPackagingWheels.setUpx  s
  ø€ ÝÕ! 4Ñ(Ô(×.Ò.Ñ0Ô0Ð0Ø�Š� Ô!1Ñ2Ô2Ñ3Ô3Ð3à�Š�}°ˆÑ7Ô7Ð7å”7—<’< Ô 0°&Ñ9Ô9ˆÝ"$¤*¨XÑ"6Ô"6°qÔ"9ÐÝ"$¤'§,¢,ØÐ-ñ#/ô #/ÐåÔ(Ð)@ÑAÔAˆ
ØÔ/×5Ò5°iÑ@Ô@ˆ
å#%¤7§<¢<°¸*Ñ#EÔ#EˆÔ à×Ò˜dÔ6Ñ7Ô7Ð7Ø×ÒÑÔÐÐÐr   c                 ó´   — t           j                             | j        d¦  «        }|                      t           j                             |¦  «        ¦  «         d S )Nz&pbr_testpackage-0.0.dist-info/pbr.json)r+   r1   rR   rÛ   Ú
assertTruer}   )r   Úpbr_jsons     r   Ú$test_metadata_directory_has_pbr_jsonz8TestPackagingWheels.test_metadata_directory_has_pbr_jsonŠ  sH   € å”7—<’<ØÔ$Ð&NñPô Pˆà�Š�œŸš xÑ0Ô0Ñ1Ô1Ð1Ð1Ð1r   c                 óŒ  — t           j                             | j        d¦  «        }|                      t           j                             |¦  «        ¦  «         t          j        |¦  «        }|                      d|¦  «         |                      d|¦  «         |                      d|¦  «         |                      d|¦  «         d S )Nz pbr_testpackage-0.0.data/scriptsÚpbr_test_wsgiÚpbr_test_wsgi_with_classÚpbr_test_cmdÚpbr_test_cmd_with_class)	r+   r1   rR   rÛ   rã   r}   r,   r®   ÚassertNotIn)r   Úscripts_dirÚscriptss      r   Ú$test_data_directory_has_wsgi_scriptsz8TestPackagingWheels.test_data_directory_has_wsgi_scripts�  s­   € å”g—l’lØÔ$Ð&HñJô Jˆà�Š�œŸš {Ñ3Ô3Ñ4Ô4Ð4Ý”*˜[Ñ)Ô)ˆà�Š�o wÑ/Ô/Ð/Ø�ŠÐ0°'Ñ:Ô:Ð:Ø×Ò˜¨Ñ1Ô1Ð1Ø×ÒÐ2°GÑ<Ô<Ð<Ð<Ð<r   c                 ó¦  — t           j                             | j        d¦  «        }d}t	          ¦   «         }|rd                     |¦  «        }t           j                             ||¦  «        }|                      t           j                             |¦  «        ¦  «         |                      t           j                             |¦  «        ¦  «         d S )NÚpbr_testpackagez
testext.soztestext.{0}.so)r+   r1   rR   rÛ   Ú	get_soabirŒ   rã   r}   )r   Úbuilt_package_dirÚstatic_object_filenameÚsoabiÚstatic_object_paths        r   Útest_generates_c_extensionsz/TestPackagingWheels.test_generates_c_extensionsœ  s³   € ÝœGŸLšLØÔ$Ð&7ñ9ô 9Ðà!-ÐÝ‘”ˆØð 	DØ%5×%<Ò%<¸UÑ%CÔ%CÐ"ÝœWŸ\š\ØÐ5ñ7ô 7Ðð 	�Š�œŸšÐ'8Ñ9Ô9Ñ:Ô:Ð:Ø�Š�œŸšÐ'9Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;r   )r:   r;   r<   r!   rå   rî   rö   r>   r?   s   @r   rÔ   rÔ   v  se   ø€ € € € € ðð ð ð ð ð$2ð 2ð 2ð
=ð 
=ð 
=ð<ð <ð <ð <ð <ð <ð <r   rÔ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestPackagingHelpersc                 óž   — d}t          j        ddd¬¦  «        }d}d}t          j        ||||¦  «        }d}|                      ||¦  «         d S )	NÚconsole_scriptsútest-epúpbr.packaging)ÚLocalInstallScripts©ÚnameÚmodule_nameÚattrsú#!/usr/bin/env fake-header
ú=%(group)s %(module_name)s %(import_target)s %(invoke_target)sz`#!/usr/bin/env fake-header
console_scripts pbr.packaging LocalInstallScripts LocalInstallScripts)Úpkg_resourcesÚ
EntryPointr   Úgenerate_scriptrÐ   )r   rQ   Úentry_pointÚheaderÚtemplateÚgenerated_scriptÚexpected_scripts          r   Útest_generate_scriptz)TestPackagingHelpers.test_generate_script¬  s|   € Ø!ˆÝ#Ô.ØØ'Ø*ð,ñ ,ô ,ˆð 0ˆð(ˆõ %Ô4Ø�; ¨ñ2ô 2Ðð6ð 	ð 	×Ò˜Ð*:Ñ;Ô;Ð;Ð;Ð;r   c                 ó  — d}t          j        dd¬¦  «        }d}d}|                      t          t          j        ||||¦  «         t          j        ddd¬¦  «        }|                      t          t          j        ||||¦  «         d S )	Nrú   rû   rü   )rÿ   r   r  r  )Úattr1Úattr2Úattr3rþ   )r  r  ÚassertRaisesr€   r   r  )r   rQ   r  r  r	  s        r   Ú+test_generate_script_validates_expectationsz@TestPackagingHelpers.test_generate_script_validates_expectations¿  s²   € Ø!ˆÝ#Ô.ØØ'ð)ñ )ô )ˆð 0ˆð(ˆà×ÒÝ�	Ô1°5¸+ÀvØñ	ô 	ð 	õ $Ô.ØØ'Ø-ð/ñ /ô /ˆð 	×ÒÝ�	Ô1°5¸+ÀvØñ	ô 	ð 	ð 	ð 	r   N)r:   r;   r<   r  r  r   r   r   rø   rø   ª  s2   € € € € € ð<ð <ð <ð&ð ð ð ð r   rø   c                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚTestPackagingInPlainDirectoryc                 óV   •— t          t          | ¦  «                             ¦   «          d S r   )r   r  r!   r$   s    €r   r!   z#TestPackagingInPlainDirectory.setUpÖ  s&   ø€ ÝÕ+¨TÑ2Ô2×8Ò8Ñ:Ô:Ð:Ð:Ð:r   c                 óâ   — |                       dd¬¦  «         t          j                             | j        d¦  «        }|                      t          j                             |¦  «        ¦  «         d S )Nr›   Frœ   rž   ©r¡   r+   r1   rR   r˜   ÚassertFalser}   ©r   Úfilenames     r   r¦   z*TestPackagingInPlainDirectory.test_authorsÙ  sX   € Ø�Š�w¨5ˆÑ1Ô1Ð1å”7—<’< Ô 0°)Ñ<Ô<ˆØ×Ò�œŸš¨Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 óâ   — |                       dd¬¦  «         t          j                             | j        d¦  «        }|                      t          j                             |¦  «        ¦  «         d S )Nr›   Frœ   r©   r  r  s     r   rª   z,TestPackagingInPlainDirectory.test_changelogß  sX   € Ø�Š�w¨5ˆÑ1Ô1Ð1å”7—<’< Ô 0°+Ñ>Ô>ˆØ×Ò�œŸš¨Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 óÄ   — |                       dd| j        dz   d¬¦  «        \  }}}|                      |t          j        t          j        d¦  «        ¦  «        ¦  «         d S r»   )r¡   r¿   rÀ   r   r·   r¸   rÁ   s      r   Útest_install_no_ChangeLogz7TestPackagingInPlainDirectory.test_install_no_ChangeLogå  ss   € Ø—~’~Ø�x ¤°Ñ!<Øð &ñ ô ‰ˆ��1ð 	�ŠØ•H”L¥Ô!2Ð3IÑ!JÔ!JÑKÔKñ	Mô 	Mð 	Mð 	Mð 	Mr   )r:   r;   r<   r!   r¦   rª   r  r>   r?   s   @r   r  r  Ô  sl   ø€ € € € € ð;ð ;ð ;ð ;ð ;ð3ð 3ð 3ð3ð 3ð 3ðMð Mð Mð Mð Mð Mð Mr   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestPresenceOfGitc                 óÞ   — t           j                             t          d¦  «        5 }d|_        |                      dt          j        ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚ_run_shell_commandzgit version 1.8.4.1T)r   ÚpatchÚobjectr   Úreturn_valuerÐ   Ú_git_is_installed©r   Ú_commands     r   ÚtestGitIsInstalledz$TestPresenceOfGit.testGitIsInstalledï  s¨   € ÝŒZ×Ò�sØ3ñ5ô 5ð 	<Ø8@Ø$9ˆHÔ!Ø×Ò˜T¥3Ô#8Ñ#:Ô#:Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   ¦/A"Á"A&Á)A&c                 óè   — t           j                             t          d¦  «        5 }t          |_        |                      dt          j        ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr!  F)r   r"  r#  r   ÚOSErrorÚside_effectrÐ   r%  r&  s     r   ÚtestGitIsNotInstalledz'TestPresenceOfGit.testGitIsNotInstalledõ  s¨   € ÝŒZ×Ò�sØ3ñ5ô 5ð 	=Ø8@Ý#*ˆHÔ Ø×Ò˜U¥CÔ$9Ñ$;Ô$;Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ¦4A'Á'A+Á.A+N)r:   r;   r<   r(  r,  r   r   r   r  r  í  s2   € € € € € ð<ð <ð <ð=ð =ð =ð =ð =r   r  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚParseRequirementsTestc                 óZ   — t          j        g ¦  «        }|                      g |¦  «         d S r   )r   Úparse_requirementsrÐ   )r   Úactuals     r   Útest_empty_requirementsz-ParseRequirementsTest.test_empty_requirementsþ  s.   € ÝÔ-¨bÑ1Ô1ˆØ×Ò˜˜VÑ$Ô$Ð$Ð$Ð$r   c                 ó¸  — t          j        ¦   «         }t          j                             |d¦  «        }t          |d¦  «        5 }|                     d¦  «         ddd¦  «         n# 1 swxY w Y   t          j         	                    t          d|f¦  «        5  t          j        ¦   «         }ddd¦  «         n# 1 swxY w Y   |                      dg|¦  «         dS )z/Ensure default files used if no files provided.úrequirements.txtÚwÚpbrNÚREQUIREMENTS_FILES)ÚtempfileÚmkdtempr+   r1   rR   r-   rS   r   r"  r#  r   r0  rÐ   ©r   rT   ÚrequirementsrY   Úresults        r   Útest_default_requirementsz/ParseRequirementsTest.test_default_requirements  sB  € åÔ"Ñ$Ô$ˆÝ”w—|’| GÐ-?Ñ@Ô@ˆÝ�, Ñ$Ô$ð 	¨Ø�GŠG�E‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 ŒZ×Ò�yÐ*>ØðAñ  ô  ð 	4ð 	4åÔ1Ñ3Ô3ˆFð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	×Ò˜%˜ &Ñ)Ô)Ð)Ð)Ð)s$   ÁA&Á&A*Á-A*ÂB8Â8B<Â?B<c                 óT  — t          j        dd¬¦  «        \  }}t          |d¦  «        5 }|                     d¦  «         ddd¦  «         n# 1 swxY w Y   |                      t          j        d|¦  «        ¦  «         |                      dd	gt          j	        ¦   «         ¦  «         dS )
z6Ensure environment variable used if no files provided.Ú	openstackú.setup©ÚprefixÚsuffixr5  úfoo
barNÚPBR_REQUIREMENTS_FILESÚfooÚbar©
r8  Úmkstempr-   rS   rI   rJ   ÚEnvironmentVariablerÐ   r   r0  ©r   rÃ   Útmp_fileÚfhs       r   Útest_override_with_envz,ParseRequirementsTest.test_override_with_env  sí   € åÔ&¨kÀ(ÐKÑKÔK‰ˆˆ8Ý�(˜CÑ Ô ð 	! BØ�HŠH�ZÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!à�ŠÝÔ(Ð)AÀ8ÑLÔLñ	Nô 	Nð 	Nà×Ò˜% ˜Ý"Ô5Ñ7Ô7ñ	9ô 	9ð 	9ð 	9ð 	9ó   ªAÁAÁAc                 óZ  — t          j        dd¬¦  «        \  }}t          |d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          j        dd|z   ¦  «        ¦  «         |                      dd	gt          j	        ¦   «         ¦  «         d S )
Nr?  r@  rA  r5  rD  rE  zno-such-file,rF  rG  rH  rK  s       r   Ú%test_override_with_env_multiple_filesz;ParseRequirementsTest.test_override_with_env_multiple_files  sû   € ÝÔ&¨kÀ(ÐKÑKÔK‰ˆˆ8Ý�(˜CÑ Ô ð 	! BØ�HŠH�ZÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!à�ŠÝÔ(Ð)AØ)8¸8Ñ)CñEô Eñ	Fô 	Fð 	Fð 	×Ò˜% ˜Ý"Ô5Ñ7Ô7ñ	9ô 	9ð 	9ð 	9ð 	9rO  c                 óæ  — t          j        ¦   «         }t          j                             |d¦  «        }t          |d¦  «        5 }|                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |g¦  «        }|  	                    dg|¦  «         d S )	Nr4  r5  z-i https://myindex.local
z$  --index-url https://myindex.local
z) --extra-index-url https://myindex.local
z#--find-links https://myindex.local
zarequirement>=1.0
zarequirement>=1.0©
r8  r9  r+   r1   rR   r-   rS   r   r0  rÐ   r:  s        r   Útest_index_presentz(ParseRequirementsTest.test_index_present$  s  € ÝÔ"Ñ$Ô$ˆÝ”w—|’| GÐ-?Ñ@Ô@ˆÝ�, Ñ$Ô$ð 	+¨Ø�GŠGÐ0Ñ1Ô1Ð1Ø�GŠGÐ;Ñ<Ô<Ð<Ø�GŠGÐ@ÑAÔAÐAØ�GŠGÐ:Ñ;Ô;Ð;Ø�GŠGÐ)Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+õ Ô-¨|¨nÑ=Ô=ˆØ×ÒÐ-Ð.°Ñ7Ô7Ð7Ð7Ð7s   ÁA*B:Â:B>ÃB>c                 óþ  — t          j        ¦   «         }t          j                             |d¦  «        }t          j                             |d¦  «        }t          |d¦  «        5 }|                     d|z   ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |g¦  «        }|  	                    dg|¦  «         d S )Nr4  z
nested.txtr5  z-r r6  rS  )r   rT   r;  ÚnestedrY   r<  s         r   Útest_nested_requirementsz.ParseRequirementsTest.test_nested_requirements0  sT  € ÝÔ"Ñ$Ô$ˆÝ”w—|’| GÐ-?Ñ@Ô@ˆÝ”—’˜g |Ñ4Ô4ˆÝ�, Ñ$Ô$ð 	$¨Ø�GŠG�E˜F‘NÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$å�&˜#ÑÔð 	 !Ø�GŠG�E‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åÔ-¨|¨nÑ=Ô=ˆØ×Ò˜%˜ &Ñ)Ô)Ð)Ð)Ð)s$   Á$B	Â	BÂBÂ$CÃC
ÃC
N)	r:   r;   r<   r2  r=  rN  rQ  rT  rW  r   r   r   r.  r.  ü  sn   € € € € € ð%ð %ð %ð*ð *ð *ð9ð 9ð 9ð9ð 9ð 9ð
8ð 
8ð 
8ð	*ð 	*ð 	*ð 	*ð 	*r   r.  c                   ó  — e Zd ZdddgdœfdddgdœfgZdd	difd
d	difgZddddgdœfddddgdœfddg dœfgZe ej        dddifdddifdddifgee¦  «        z   Ze ej        ddddœfgdddifdddifgee¦  «        z   Zd„ Zd S )!ÚParseRequirementsTestScenariosznon-versionedFrG  )Ú	versionedÚexpectedrZ  Tz
bar>=1.2.3znon-subdirectoryÚhas_subdirectoryzhas-subdirectoryÚnormalrD  rF  )Úurlr[  Únormal_with_commentsz-# this is a comment
foo
# and another one
barÚremoves_index_linesz	-f foobarÚssh_egg_urlr^  z!git+ssh://foo.com/zipball#egg=barÚgit_https_egg_urlz#git+https://foo.com/zipball#egg=barÚhttp_egg_urlzhttps://foo.com/zipball#egg=barÚgit_egg_urlúgit://foo.com/zipball#egg=bar)r^  rÿ   znon-editableÚeditablec                 óÌ  — t          j        ¦   «         }| j        }t          | d¦  «        r| j        rd|z  }t          | d¦  «        r| j        rd|z  }t          | d¦  «        r| j        rd|z  }t          |j        d¦  «        5 }| 	                    |¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    | j        t          j        |j        g¦  «        ¦  «         d S )Nrf  z-e %srZ  z%s-1.2.3r\  z%s&subdirectory=bazr5  )r8  ÚNamedTemporaryFiler^  Úhasattrrf  rZ  r\  r-   rÿ   rS   rÐ   r[  r   r0  )r   rL  Ú
req_stringrM  s       r   Útest_parse_requirementsz6ParseRequirementsTestScenarios.test_parse_requirements`  s;  € ÝÔ.Ñ0Ô0ˆØ”Xˆ
Ý�4˜Ñ$Ô$ð 	0¨¬ð 	0Ø! JÑ.ˆJÝ�4˜Ñ%Ô%ð 	3¨$¬.ð 	3Ø$ zÑ1ˆJÝ�4Ð+Ñ,Ô,ð 	>°Ô1Fð 	>Ø/°*Ñ<ˆJÝ�(”- Ñ%Ô%ð 	!¨Ø�HŠH�ZÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!à×Ò˜œÝ"Ô5°x´}°oÑFÔFñ	Hô 	Hð 	Hð 	Hð 	Hs   ÂB&Â&B*Â-B*N)	r:   r;   r<   Úversioned_scenariosÚsubdirectory_scenariosrÆ   ÚtestscenariosÚmultiply_scenariosrk  r   r   r   rY  rY  <  s|  € € € € € ð 
¨¸E¸7ÐCÐCÐDØ	 D°|°nÐEÐEÐFðÐð 
Ð0°%Ð8Ð9Ø	Ð0°$Ð7Ð8ðÐð 
˜:°E¸5°>ÐBÐBÐCØ	ØEØ ˜ð"(ð "(ð 	)ð 
¨ÀÐ DÐ DÐEð€Ið Ð<˜MÔ<Ø	˜Ð CÐDÐEØ	˜uÐ&KÐLÐMØ	˜%Ð!BÐCÐDð>ð Ð2ñ	4ô 4ñ 4€Ið Ð<˜MÔ<àØ7ÀÐGÐGðIð	
ð ˜j¨%Ð0Ð1Ø˜* dÐ+Ð,ð
ð 	Ð3ñ5ô 5ñ 5€IðHð Hð Hð Hð Hr   rY  c                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚParseDependencyLinksTestc                 ó’   •— t          t          | ¦  «                             ¦   «          t          j        dd¬¦  «        \  }| _        d S )Nr?  r@  rA  )r   rq  r!   r8  rI  rL  )r   rÃ   r   s     €r   r!   zParseDependencyLinksTest.setUpq  sG   ø€ ÝÕ&¨Ñ-Ô-×3Ò3Ñ5Ô5Ð5Ý#Ô+°;Ø3;ð=ñ =ô =Ñˆˆ4Œ=ˆ=ˆ=r   c                 óè   — t          | j        d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dgt	          j        | j        g¦  «        ¦  «         d S )Nr5  zhttp://test.com
zhttp://test.com©r-   rL  rS   rÐ   r   Úparse_dependency_links©r   rM  s     r   Útest_parse_dependency_normalz5ParseDependencyLinksTest.test_parse_dependency_normalv  s³   € Ý�$”- Ñ%Ô%ð 	*¨Ø�HŠHÐ(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*à×ÒØÐÝÔ,¨d¬m¨_Ñ=Ô=ñ	?ô 	?ð 	?ð 	?ð 	?ó   –8¸<¿<c                 óè   — t          | j        d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dgt	          j        | j        g¦  «        ¦  «         d S )Nr5  z -e git://foo.com/zipball#egg=barre  rt  rv  s     r   Ú&test_parse_dependency_with_git_egg_urlz?ParseDependencyLinksTest.test_parse_dependency_with_git_egg_url}  s³   € Ý�$”- Ñ%Ô%ð 	9¨Ø�HŠHÐ7Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9à×ÒØ,Ð-ÝÔ,¨d¬m¨_Ñ=Ô=ñ	?ô 	?ð 	?ð 	?ð 	?rx  )r:   r;   r<   r!   rw  rz  r>   r?   s   @r   rq  rq  o  sV   ø€ € € € € ð=ð =ð =ð =ð =ð
?ð ?ð ?ð?ð ?ð ?ð ?ð ?ð ?ð ?r   rq  c                   óü   ‡ — e Zd Zd ed¬¦  «        fd ed¬¦  «        fgZˆ fd„Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Zˆ fd!„Z ˆ xZ!S )"ÚTestVersionsr”   Tr•   r–   Fc                 óH  •— t          t          | ¦  «                             ¦   «          |                      t	          | j        ¦  «        ¦  «        | _        |                      t          ¦   «         ¦  «         |                      t          j	        | j        ¦  «        ¦  «         d S r   )
r   r|  r!   rI   r   r˜   r™   rA   r   ÚDiveDirr$   s    €r   r!   zTestVersions.setUpŒ  sx   ø€ Ý�l˜DÑ!Ô!×'Ò'Ñ)Ô)Ð)Ø—O’O¥H¨TÔ-=Ñ$>Ô$>Ñ?Ô?ˆŒ	Ø�Š�™œÑ(Ô(Ð(Ø�Š�œ TÔ%5Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7r   c                 ó´  — t          j        ¦   «         }t          j        d|¦  «        5  t          j        d¦  «        5 }t          j                             d¦  «        ddig|_        t          j        d¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |  	                    |j
        ¦  «         |                      |¦  «         d S )Nzpbr.packaging.openzemail.message_from_fileÚTestÚNamerð   )r   Ú	mock_openr"  ÚemailÚerrorsÚMessageErrorr+  r   Ú_get_version_from_pkg_metadatarã   ÚcalledÚassertIsNone)r   Úmocked_openÚmessage_from_filer9   s       r   Ú%test_email_parsing_errors_are_handledz2TestVersions.test_email_parsing_errors_are_handled’  sK  € Ý”nÑ&Ô&ˆÝŒZÐ,¨kÑ:Ô:ð 	'ð 	'Ý”Ð5Ñ6Ô6ð 'Ð:Kå”L×-Ò-¨fÑ5Ô5ØÐ.Ð/ð11Ð!Ô-õ $ÔBØ%ñ'ô '�ð	'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	�ŠÐ)Ô0Ñ1Ô1Ð1Ø×Ò˜'Ñ"Ô"Ð"Ð"Ð"s4   ©B¾=BÁ;BÂB	ÂBÂB	ÂBÂB"Â%B"c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nú1.2.3úSem-Ver: api-breakú
2.0.0.dev1©r™   r(   r7   r   Ú_get_version_from_gitr¶   r   Ú
StartsWithr8   s     r   Útest_capitalized_headersz%TestVersions.test_capitalized_headersŸ  ót   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÐ-Ñ.Ô.Ð.ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  zSem-ver: api-breakr�  r�  r8   s     r   Ú test_capitalized_headers_partialz-TestVersions.test_capitalized_headers_partial¦  r”  r   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  zSem-ver: feature,api-breakr�  r�  r8   s     r   Ú"test_multi_inline_symbols_no_spacez/TestVersions.test_multi_inline_symbols_no_space­  ót   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÐ5Ñ6Ô6Ð6ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  zSem-ver: feature, api-breakr�  r�  r8   s     r   Ú test_multi_inline_symbols_spacedz-TestVersions.test_multi_inline_symbols_spaced´  st   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÐ6Ñ7Ô7Ð7ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  zSem-ver: api-break,featurer�  r�  r8   s     r   Ú"test_multi_inline_symbols_reversedz/TestVersions.test_multi_inline_symbols_reversed»  r™  r   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  z   sem-ver: api-breakr�  r�  r8   s     r   Útest_leading_spacezTestVersions.test_leading_spaceÂ  ót   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÐ0Ñ1Ô1Ð1ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  z'   Some cool text
   sem-ver: api-breakr�  r�  r8   s     r   Útest_leading_space_multilinez)TestVersions.test_leading_space_multilineÉ  s~   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×Òð(ñ	
ô 	
ð 	
õ Ô1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  z  ssem-ver: api-breakú
1.2.4.dev1r�  r8   s     r   Ú(test_leading_characters_symbol_not_foundz5TestVersions.test_leading_characters_symbol_not_foundÕ  r   r   c                 óÀ   — | j                              ¦   «          | j                              d¦  «         t          j        d¦  «        }|                      d|¦  «         d S )Nr�  ©r™   r(   r7   r   r‘  rÐ   r8   s     r   Ú#test_tagged_version_has_tag_versionz0TestVersions.test_tagged_version_has_tag_versionÜ  sV   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐÝÔ1°'Ñ:Ô:ˆØ×Ò˜ 'Ñ*Ô*Ð*Ð*Ð*r   c                 ó¾   — | j                              ¦   «          | j                              d¦  «         t          j        ¦   «         }|                      d|¦  «         d S )Nú	1.2.3-rc2z
1.2.3.0rc2r§  r8   s     r   Ú4test_tagged_version_with_semver_compliant_prereleasezATestVersions.test_tagged_version_with_semver_compliant_prereleaseâ  sT   € ØŒ	×ÒÑÔÐØŒ	�Š�kÑ"Ô"Ð"ÝÔ1Ñ3Ô3ˆØ×Ò˜ wÑ/Ô/Ð/Ð/Ð/r   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nz1.4rŽ  r�  r�  r8   s     r   Ú&test_non_canonical_tagged_version_bumpz3TestVersions.test_non_canonical_tagged_version_bumpè  st   € ØŒ	×ÒÑÔÐØŒ	�Š�eÑÔÐØŒ	×ÒÐ-Ñ.Ô.Ð.ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  r¤  r�  r8   s     r   Ú1test_untagged_version_has_dev_version_postversionz>TestVersions.test_untagged_version_has_dev_version_postversionï  sq   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÑÔÐÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nú	1.2.3.0a1ú1.2.3.0a2.dev1r�  r8   s     r   Ú9test_untagged_pre_release_has_pre_dev_version_postversionzFTestVersions.test_untagged_pre_release_has_pre_dev_version_postversionö  sr   € ØŒ	×ÒÑÔÐØŒ	�Š�kÑ"Ô"Ð"ØŒ	×ÒÑÔÐÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4Ð5EÑ!FÔ!FÑGÔGÐGÐGÐGr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  úsem-ver: deprecationz
1.3.0.dev1r�  r8   s     r   Ú test_untagged_version_minor_bumpz-TestVersions.test_untagged_version_minor_bumpý  st   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÐ/Ñ0Ô0Ð0ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )Nr�  úsem-ver: api-breakr�  r�  r8   s     r   Ú test_untagged_version_major_bumpz-TestVersions.test_untagged_version_major_bump  r”  r   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          t          j        d¦  «        }|                      |t          j        d¦  «        ¦  «         d S )Nr�  ú1.2.5ú
1.2.5.dev1r�  r8   s     r   Ú0test_untagged_version_has_dev_version_preversionz=TestVersions.test_untagged_version_has_dev_version_preversion  ss   € ØŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÑÔÐÝÔ1°'Ñ:Ô:ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          t          j        d¦  «        }|                      |t          j        d¦  «        ¦  «         d S )Nr±  r»  r¼  r�  r8   s     r   Ú:test_untagged_version_after_pre_has_dev_version_preversionzGTestVersions.test_untagged_version_after_pre_has_dev_version_preversion  ss   € ØŒ	×ÒÑÔÐØŒ	�Š�kÑ"Ô"Ð"ØŒ	×ÒÑÔÐÝÔ1°'Ñ:Ô:ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó  — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          t          j        d¦  «        }|                      |t          j        d¦  «        ¦  «         d S )Nr±  r�  r²  r�  r8   s     r   Ú9test_untagged_version_after_rc_has_dev_version_preversionzFTestVersions.test_untagged_version_after_rc_has_dev_version_preversion  st   € ØŒ	×ÒÑÔÐØŒ	�Š�kÑ"Ô"Ð"ØŒ	×ÒÑÔÐÝÔ1°'Ñ:Ô:ˆØ�Š˜¥Ô!4Ð5EÑ!FÔ!FÑGÔGÐGÐGÐGr   c                 óð   — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          t          j        ¦   «         }|                      d|¦  «         d S )Nrª  z1.2.3.0rc3.dev1r§  r8   s     r   Ú;test_untagged_version_after_semver_compliant_prerelease_tagzHTestVersions.test_untagged_version_after_semver_compliant_prerelease_tag   si   € ØŒ	×ÒÑÔÐØŒ	�Š�kÑ"Ô"Ð"ØŒ	×ÒÑÔÐÝÔ1Ñ3Ô3ˆØ×ÒÐ*¨GÑ4Ô4Ð4Ð4Ð4r   c                 óP  — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          |                      t          t
          j        d¦  «        }|                      |j        d         t          j
        d¦  «        ¦  «         d S )Nr�  r   úgit history©r™   r(   r7   r  r€   r   r‘  r¶   Úargsr   r’  ©r   Úerrs     r   Útest_preversion_too_low_simplez+TestVersions.test_preversion_too_low_simple'  sŽ   € ð 	Œ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÑÔÐð ×ÒÝ�	Ô7¸ñBô Bˆà�Š˜œ œ¥XÔ%8¸Ñ%GÔ%GÑHÔHÐHÐHÐHr   c                 óR  — | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         |                      t          t
          j        d¦  «        }|                      |j        d         t          j
        d¦  «        ¦  «         d S )Nr�  úsem-ver: featurez1.2.4r   rÅ  rÆ  rÈ  s     r   Ú&test_preversion_too_low_semver_headersz3TestVersions.test_preversion_too_low_semver_headers3  s‘   € ð 	Œ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÐ+Ñ,Ô,Ð,ð ×ÒÝ�	Ô7¸ñBô Bˆà�Š˜œ œ¥XÔ%8¸Ñ%GÔ%GÑHÔHÐHÐHÐHr   c                 ó€   ‡ ‡— ˆ fd„Šˆˆ fd„} |d¦  «         ‰ j                              d¦  «          |d¦  «         d S )Nc                 óL   •— ‰j         j        dz   }t          j        || ¦  «        S )Nz/.git)r™   r   r   Ú_get_increment_kwargs)r7   Úgit_dirr   s     €r   Ú
get_kwargsz=TestVersions.test_get_kwargs_corner_cases.<locals>.get_kwargsB  s%   ø€ Ø”iÔ(¨7Ñ2ˆGÝÔ2°7¸CÑ@Ô@Ð@r   c                 ó¸  •— ‰j                              ¦   «          ‰                     t          ¦   «          ‰| ¦  «        ¦  «         ‰j                              d¦  «         ‰                     t          ¦   «          ‰| ¦  «        ¦  «         ‰j                              d¦  «         ‰                     t          d¬¦  «         ‰| ¦  «        ¦  «         ‰j                              ¦   «          ‰j                              d¦  «         ‰                     t          d¬¦  «         ‰| ¦  «        ¦  «         ‰j                              ¦   «          ‰j                              d¦  «         ‰                     t          d¬¦  «         ‰| ¦  «        ¦  «         ‰j                              d¦  «         ‰                     t          dd¬¦  «         ‰| ¦  «        ¦  «         d S )	Nzsem-ver: bugfixrÌ  T)Úminorrµ  r¸  )Úmajor)rÕ  rÔ  )r™   r(   rÐ   rÅ   r5   )r7   rÒ  r   s    €€r   Ú_check_combinationszFTestVersions.test_get_kwargs_corner_cases.<locals>._check_combinationsF  s¢  ø€ ØŒI×ÒÑÔÐØ×Ò�T™VœV Z Z°¡_¤_Ñ5Ô5Ð5ØŒI×ÒÐ.Ñ/Ô/Ð/Ø×Ò�T™VœV Z Z°¡_¤_Ñ5Ô5Ð5ØŒI×ÒÐ/Ñ0Ô0Ð0Ø×Ò�T¨Ð-Ñ-Ô-¨z¨z¸#©¬Ñ?Ô?Ð?ØŒI×ÒÑ Ô Ð ØŒI×ÒÐ3Ñ4Ô4Ð4Ø×Ò�T¨Ð-Ñ-Ô-¨z¨z¸#©¬Ñ?Ô?Ð?ØŒI×ÒÑ Ô Ð ØŒI×ÒÐ1Ñ2Ô2Ð2Ø×Ò�T¨Ð-Ñ-Ô-¨z¨z¸#©¬Ñ?Ô?Ð?ØŒI×ÒÐ3Ñ4Ô4Ð4Ø×Ò�T¨°DÐ9Ñ9Ô9¸:¸:Àc¹?¼?ÑKÔKÐKÐKÐKr   rH   r�  )r™   r7   )r   rÖ  rÒ  s   ` @r   Útest_get_kwargs_corner_casesz)TestVersions.test_get_kwargs_corner_cases?  s„   øø€ ð	Að 	Að 	Að 	Að 	Að	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Ð˜BÑÔÐØŒ	�Š�gÑÔÐØÐ˜GÑ$Ô$Ð$Ð$Ð$r   c                 óø  — | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         | j                              ¦   «          t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          | j                              d	¦  «         t          j        ¦   «         }|                      |t          j        d
¦  «        ¦  «         | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          | j                              d¦  «         t          j        ¦   «         }|                      |t          j        d¦  «        ¦  «         d S )NÚ1Úbadverz
1.0.1.dev1z
1.0.1.dev2z1.2Úbadver2z
1.2.1.dev1r�  Úbadver3r¤  z	1.2.4.0a1Úbadver4z1.2.4.0a2.dev1Ú2znon-release-tag/2014.12.16-1z
2.0.1.dev1r�  r8   s     r   Útest_invalid_tag_ignoredz%TestVersions.test_invalid_tag_ignoredY  s¾  € ð 	Œ	×ÒÑÔÐØŒ	�Š�cÑÔÐØŒ	×ÒÑÔÐàŒ	�Š�hÑÔÐÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCàŒ	×ÒÑÔÐÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCàŒ	×ÒÑÔÐØŒ	�Š�eÑÔÐØŒ	×ÒÑÔÐØŒ	�Š�iÑ Ô Ð ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCàŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØŒ	×ÒÑÔÐØŒ	�Š�iÑ Ô Ð ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCàŒ	×ÒÑÔÐØŒ	�Š�kÑ"Ô"Ð"ØŒ	×ÒÑÔÐØŒ	�Š�iÑ Ô Ð ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4Ð5EÑ!FÔ!FÑGÔGÐGàŒ	×ÒÑÔÐØŒ	�Š�cÑÔÐØŒ	×ÒÑÔÐØŒ	�ŠÐ4Ñ5Ô5Ð5ÝÔ1Ñ3Ô3ˆØ�Š˜¥Ô!4°\Ñ!BÔ!BÑCÔCÐCÐCÐCr   c                 ó¾   — | j                              ¦   «          | j                              d¦  «         t          j        ¦   «         }|                      d|¦  «         d S )Nz	1.3.0.0a1r§  r8   s     r   Útest_valid_tag_honouredz$TestVersions.test_valid_tag_honoured„  sV   € ð 	Œ	×ÒÑÔÐØŒ	�Š�kÑ"Ô"Ð"ÝÔ1Ñ3Ô3ˆØ×Ò˜ gÑ.Ô.Ð.Ð.Ð.r   c                 óÞ   — | j                              ¦   «          | j                              d¦  «         dt          j        d<   t          j        d¦  «        }|                      d|¦  «         d S )Nr�  rÙ  ÚSKIP_WRITE_GIT_CHANGELOG)r™   r(   r7   r+   Úenvironr   r‘  rÐ   r8   s     r   Útest_skip_write_git_changelogz*TestVersions.test_skip_write_git_changelog�  sc   € àŒ	×ÒÑÔÐØŒ	�Š�gÑÔÐØ14�Œ
Ð-Ñ.ÝÔ1°'Ñ:Ô:ˆØ×Ò˜ 'Ñ*Ô*Ð*Ð*Ð*r   c                 ó–   •— t          t          | ¦  «                             ¦   «          t          j                             dd ¦  «         d S )Nrã  )r   r|  ÚtearDownr+   rä  rŠ   r$   s    €r   rç  zTestVersions.tearDown•  s<   ø€ Ý�l˜DÑ!Ô!×*Ò*Ñ,Ô,Ð,Ý
Œ
�ŠÐ1°4Ñ8Ô8Ð8Ð8Ð8r   )"r:   r;   r<   rÅ   rÆ   r!   r‹  r“  r–  r˜  r›  r�  rŸ  r¢  r¥  r¨  r«  r­  r¯  r³  r¶  r¹  r½  r¿  rÁ  rÃ  rÊ  rÍ  r×  rß  rá  rå  rç  r>   r?   s   @r   r|  r|  …  sD  ø€ € € € € ð 
˜˜¨4Ð0Ñ0Ô0Ð1Ø	˜$˜$¨EÐ2Ñ2Ô2Ð3ð€Ið
8ð 8ð 8ð 8ð 8ð#ð #ð #ðDð Dð DðDð Dð DðDð Dð DðDð Dð DðDð Dð DðDð Dð Dð
Dð 
Dð 
DðDð Dð Dð+ð +ð +ð0ð 0ð 0ðDð Dð DðDð Dð DðHð Hð HðDð Dð DðDð Dð DðDð Dð DðDð Dð DðHð Hð Hð5ð 5ð 5ð
Ið 
Ið 
Ið
Ið 
Ið 
Ið%ð %ð %ð4)Dð )Dð )DðV/ð /ð /ð+ð +ð +ð9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9r   r|  c                   ó   — e Zd Zd„ ZdS )ÚTestRequirementParsingc                 ó  — dt          j        d¦  «        t          j        d¦  «        dœi}|                      t          |¦  «        ¦  «        j        }|d         }ddgdgdd	gd
gddgdœ}|                      t          d¦  «        ¦  «        }|j        }|                      |dd|¬¦  «         t          j	         
                    |d¦  «        }t          j	         
                    |d¦  «        }t          |d¦  «        5 }	t          t          j        |	¦  «        ¦  «        }
d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         D ]9\  }}d„ |D ¦   «         }d„ |
|         D ¦   «         }|                      ||¦  «         Œ:d S )NÚtest_reqparseaD                          bar
                        quux<1.0; python_version=='2.6'
                        requests-aws>=0.1.4    # BSD License (3 clause)
                        Routes>=1.12.3,!=2.0,!=2.1;python_version=='2.7'
                        requests-kerberos>=0.6;python_version=='2.7' # MIT
                    aP                          [metadata]
                        name = test_reqparse

                        [extras]
                        test =
                            foo
                            baz>3.2 :python_version=='2.7' # MIT
                            bar>3.3 :python_version=='2.7' # MIT # Apache
                    )r4  rw   rG  zrequests-aws>=0.1.4zquux<1.0zRoutes!=2.0,!=2.1,>=1.12.3zrequests-kerberos>=0.6rF  zbaz>3.2zbar>3.3)Nz:(python_version=='2.6')z:(python_version=='2.7')Útestztest:(python_version=='2.7')ÚreqParse)rv   rÖ   F©r�   Úcwdztest_reqparse.egg-infozrequires.txtÚrtc                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S r   ©r  ÚRequirementÚparse©r   Úss     r   r   zCTestRequirementParsing.test_requirement_parsing.<locals>.<listcomp>Ñ  ó9   € ð ð ð àõ Ô)×/Ò/°Ñ2Ô2ðð ð r   c                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S r   rò  rõ  s     r   r   zCTestRequirementParsing.test_requirement_parsing.<locals>.<listcomp>Õ  r÷  r   )r�   r‘   rI   rt   rˆ   r\   rj   r"   r+   r1   rR   r-   rÅ   r  Úsplit_sectionsÚitemsrÐ   )r   ÚpkgsÚpkg_dirsÚpkg_dirÚexpected_requirementsÚvenvÚ
bin_pythonÚegg_infoÚrequires_txtÚrequiresÚgenerated_requirementsÚsectionr[  Ú
exp_parsedÚ
gen_parseds                  r   Útest_requirement_parsingz/TestRequirementParsing.test_requirement_parsingœ  s  € àå(0¬ð 9ñ )ô )õ "*¤ð 	2ñ 	"ô 	"ðð ð
ˆð* —?’?¥>°$Ñ#7Ô#7Ñ8Ô8ÔEˆØ˜?Ô+ˆð Ð/Ð0Ø)3¨Ø)EØ)Að)Cà�GØ-6¸	Ð,Bð!
ð !
Ðð �Š�t JÑ/Ô/Ñ0Ô0ˆØ”[ˆ
ð 	�Š�jÐ"=Ø!&¨Gð 	ñ 	5ô 	5ð 	5å”7—<’< Ð)AÑBÔBˆå”w—|’| H¨nÑ=Ô=ˆÝ�, Ñ%Ô%ð 	8¨Ý%)ÝÔ,¨XÑ6Ô6ñ&8ô &8Ð"ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð "7×!<Ò!<Ñ!>Ô!>ð 		5ð 		5ÑˆG�Xðð à!ðñ ô ˆJðð à/°Ô8ðñ ô ˆJð ×Ò˜Z¨Ñ4Ô4Ð4Ð4ð		5ð 		5s   Ã="D+Ä+D/Ä2D/N)r:   r;   r<   r  r   r   r   ré  ré  š  s#   € € € € € ð=5ð =5ð =5ð =5ð =5r   ré  c                   ó   — e Zd Zd„ ZdS )ÚTestPEP517Supportc                 ó†  — dt          j        d¦  «        t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        dœi}|                      t          |¦  «        ¦  «        j        }|d         }|                      t          d¦  «        ¦  «        }|                      |j        dd	|¬
¦  «         d S )NÚtest_pep517zS                        sphinx
                        iso8601
                    zŸ                        #!/usr/bin/env python
                        import setuptools
                        setuptools.setup(pbr=True)
                    a7                          [metadata]
                        name = test_pep517
                        summary = A tiny test project
                        author = PBR Team
                        author_email = foo@example.com
                        home_page = https://example.com/
                        classifier =
                            Intended Audience :: Information Technology
                            Intended Audience :: System Administrators
                            License :: OSI Approved :: Apache Software License
                            Operating System :: POSIX :: Linux
                            Programming Language :: Python
                            Programming Language :: Python :: 2
                            Programming Language :: Python :: 2.7
                            Programming Language :: Python :: 3
                            Programming Language :: Python :: 3.6
                            Programming Language :: Python :: 3.7
                            Programming Language :: Python :: 3.8
                    z¹                        [build-system]
                        requires = ["pbr", "setuptools>=36.6.0", "wheel"]
                        build-backend = "pbr.build"
                    )r4  rv   rw   zpyproject.tomlÚPEP517)r)   r`   z--no-isolationr   Frî  )r�   r‘   rI   rt   rˆ   r\   r"   rj   )r   rû  rü  rý  rÿ  s        r   Útest_pep_517_supportz&TestPEP517Support.test_pep_517_supportÝ  sâ   € ð å(0¬ð 9ñ )ô )õ
 !)¤ð 1ñ !ô !õ
 "*¤ð 2ñ "ô "õ2 '/¤oð 7ñ 'ô 'ðI(ð (ð+
ˆðX —?’?¥>°$Ñ#7Ô#7Ñ8Ô8ÔEˆØ˜=Ô)ˆØ�Š�t H™~œ~Ñ.Ô.ˆð 	�Š�d”kÐ#IØ!&¨Gð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   N)r:   r;   r<   r  r   r   r   r
  r
  Ü  s#   € € € € € ð95ð 95ð 95ð 95ð 95r   r
  c                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚTestRepositoryURLDependenciesc                 ór  •— t          t          | ¦  «                             ¦   «          t          j                             t          j        ¦   «         d¦  «        | _        t          | j        d¦  «        5 }| 
                    d                     g d¢¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr4  r5  rD   )zH-e git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rczE-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborizezJ-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-betazK-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-betazQ-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1z^-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1z‚-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz`-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123z+-e git+git://git.project.org/Proj#egg=Proj1ú0git+https://git.project.org/Proj#egg=Proj2-0.0.1z+-e git+ssh://git.project.org/Proj#egg=Proj3ú2svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2z;-e svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5ú9hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3z.-e hg+http://hg.project.org/Proj@2019#egg=Projú1hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4z9-e hg+http://hg.project.org/Proj@special_feature#egg=Projú'git://foo.com/zipball#egg=foo-bar-1.2.4ú
pypi-proj1ú
pypi-proj2)r   r  r!   r+   r1   rR   r8  r9  r;  r-   rS   )r   rY   r   s     €r   r!   z#TestRepositoryURLDependencies.setUp  sï   ø€ ÝÕ+¨TÑ2Ô2×8Ò8Ñ:Ô:Ð:ÝœGŸLšL­Ô)9Ñ);Ô);Ø);ñ=ô =ˆÔå�$Ô# SÑ)Ô)ð 	.¨QØ�GŠG�D—I’Ið ,ð ,ð ,ñ -ô -ñ .ô .ð .ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   Á4+B,Â,B0Â3B0c           	      ó´   — g d¢}g d¢}t          |¦  «        D ]?\  }}|                      ||         t          j        dt          j        |¦  «        ¦  «         Œ@d S )N)/údjango-thumborizeúdjango-thumborize-betaúdjango-thumborize2-betaúdjango-thumborize2-beta>=4.0.1ú+django-thumborize2-beta>=1.0.0-alpha.beta.1zFdjango-thumborize2-beta>=1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okayú-django-thumborize2-beta>=2.0.0-rc.1+build.123zdjango-thumborize-beta>=0.0.4zdjango-thumborize-beta>=1.2.3z django-thumborize-beta>=10.20.30z-django-thumborize-beta>=1.1.2-prerelease+metaz"django-thumborize-beta>=1.1.2+metaz(django-thumborize-beta>=1.1.2+meta-validz#django-thumborize-beta>=1.0.0-alphaz"django-thumborize-beta>=1.0.0-betaz(django-thumborize-beta>=1.0.0-alpha.betaz*django-thumborize-beta>=1.0.0-alpha.beta.1z%django-thumborize-beta>=1.0.0-alpha.1z*django-thumborize-beta>=1.0.0-alpha0.validz*django-thumborize-beta>=1.0.0-alpha.0validzNdjango-thumborize-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz*django-thumborize-beta>=1.0.0-rc.1+build.1z,django-thumborize-beta>=2.0.0-rc.1+build.123z"django-thumborize-beta>=1.2.3-betaz+django-thumborize-beta>=10.2.3-DEV-SNAPSHOTz*django-thumborize-beta>=1.2.3-SNAPSHOT-123zdjango-thumborize-beta>=1.0.0zdjango-thumborize-beta>=2.0.0zdjango-thumborize-beta>=1.1.7z(django-thumborize-beta>=2.0.0+build.1848z(django-thumborize-beta>=2.0.1-alpha.1227z(django-thumborize-beta>=1.0.0-alpha+betaz<django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12+788z5django-thumborize-beta>=1.2.3----R-S.12.9.1--.12+metaz8django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12z:django-thumborize-beta>=1.0.0+0.build.1-rc.10000aaa-kk-0.1zGdjango-thumborize-beta>=999999999999999999.99999999999999.9999999999999ÚProj1úProj2>=0.0.1ÚProj3úProj4>=0.0.2ÚProj5úProj>=0.0.3ÚProjúProj>=0.0.4r&  úfoo-bar>=1.2.4)/zegg=django-thumborizezegg=django-thumborize-betazegg=django-thumborize2-betaz!egg=django-thumborize2-beta-4.0.1z.egg=django-thumborize2-beta-1.0.0-alpha.beta.1zIegg=django-thumborize2-beta-1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okayz0egg=django-thumborize2-beta-2.0.0-rc.1+build.123z egg=django-thumborize-beta-0.0.4z egg=django-thumborize-beta-1.2.3z#egg=django-thumborize-beta-10.20.30z0egg=django-thumborize-beta-1.1.2-prerelease+metaz%egg=django-thumborize-beta-1.1.2+metaz+egg=django-thumborize-beta-1.1.2+meta-validz&egg=django-thumborize-beta-1.0.0-alphaz%egg=django-thumborize-beta-1.0.0-betaz+egg=django-thumborize-beta-1.0.0-alpha.betaz-egg=django-thumborize-beta-1.0.0-alpha.beta.1z(egg=django-thumborize-beta-1.0.0-alpha.1z-egg=django-thumborize-beta-1.0.0-alpha0.validz-egg=django-thumborize-beta-1.0.0-alpha.0validzQegg=django-thumborize-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz-egg=django-thumborize-beta-1.0.0-rc.1+build.1z/egg=django-thumborize-beta-2.0.0-rc.1+build.123z%egg=django-thumborize-beta-1.2.3-betaz.egg=django-thumborize-beta-10.2.3-DEV-SNAPSHOTz-egg=django-thumborize-beta-1.2.3-SNAPSHOT-123z egg=django-thumborize-beta-1.0.0z egg=django-thumborize-beta-2.0.0z egg=django-thumborize-beta-1.1.7z+egg=django-thumborize-beta-2.0.0+build.1848z+egg=django-thumborize-beta-2.0.1-alpha.1227z+egg=django-thumborize-beta-1.0.0-alpha+betaz?egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12+788z8egg=django-thumborize-beta-1.2.3----R-S.12.9.1--.12+metaz;egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12z=egg=django-thumborize-beta-1.0.0+0.build.1-rc.10000aaa-kk-0.1zJegg=django-thumborize-beta-999999999999999999.99999999999999.9999999999999z	egg=Proj1zegg=Proj2-0.0.1z	egg=Proj3zegg=Proj4-0.0.2z	egg=Proj5zegg=Proj-0.0.3úegg=Projzegg=Proj-0.0.4r)  zegg=foo-bar-1.2.4zegg=([^&]+).*$)Ú	enumeraterÐ   rL   Úsubr   Úegg_fragment)r   r[  ÚtestsÚindexrì  s        r   Útest_egg_fragmentz/TestRepositoryURLDependencies.test_egg_fragment5  s‹   € ð0
ð 0
ð 0
ˆðb0
ð 0
ð 0
ˆõb % UÑ+Ô+ð 	+ð 	+‰KˆE�4Ø×Ò˜X eœ_ÝœVÐ$5Ý$-Ô$:Ø$(ñ*ô *ñ+ô +ð +ð +ð	+ð 	+r   c                 ój   — t          j        | j        g¦  «        }|                      g d¢|¦  «         d S )N)zoslo.messaging>=1.0.0-rcr  r  r  r  r  zOdjango-thumborize2-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayr  r   r!  r"  r#  r$  r%  r&  r'  r&  r(  r  r  )r   r0  r;  rÐ   ©r   r<  s     r   Ú test_parse_repo_url_requirementsz>TestRepositoryURLDependencies.test_parse_repo_url_requirementsž  sN   € ÝÔ-¨tÔ/@Ð.AÑBÔBˆØ×Òð (ð (ð (ð *0ñ	1ô 	1ð 	1ð 	1ð 	1r   c                 ój   — t          j        | j        g¦  «        }|                      g d¢|¦  «         d S )N)zEgit+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rczBgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborizezGgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-betazHgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-betazNgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1z[git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1zgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz]git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123z(git+git://git.project.org/Proj#egg=Proj1r  z(git+ssh://git.project.org/Proj#egg=Proj3r  z8svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5r  z+hg+http://hg.project.org/Proj@2019#egg=Projr  z6hg+http://hg.project.org/Proj@special_feature#egg=Projr  )r   ru  r;  rÐ   r1  s     r   Ú$test_parse_repo_url_dependency_linkszBTestRepositoryURLDependencies.test_parse_repo_url_dependency_links®  sT   € ÝÔ1°4Ô3DÐ2EÑFÔFˆØ×Òð8ð 8ð 8ð$ :@ñ'	Aô 	Að 	Að 	Að 	Ar   )r:   r;   r<   r!   r/  r2  r4  r>   r?   s   @r   r  r    sp   ø€ € € € € ð.ð .ð .ð .ð .ð4g+ð g+ð g+ðR1ð 1ð 1ð Að Að Að Að Að Að Ar   r  c                  óœ  — d } 	 t          j        d¦  «        } t          j        d¦  «        }n# t          $ r Y nw xY w| r|rdt          j        ¦   «         v r| ›d|›�} | €mdt          j        ¦   «         v rXt	          ¦   «         D ]I}|                     d¦  «        r2|                     d¦  «        r|                     d¦  «        d         }  nŒJ| S )	NÚSOABIÚ	MULTIARCHÚpypyú-z.pypyz.sor   rE   )Ú	sysconfigÚget_config_varÚIOErrorÚget_scheme_namesr   r~   ÚendswithrN   )rô   ÚarchrC  s      r   rñ   rñ   Æ  s÷   € Ø€EðÝÔ(¨Ñ1Ô1ˆÝÔ'¨Ñ4Ô4ˆˆøÝð ð ð Øˆðøøøàð (�ð (˜&¥IÔ$>Ñ$@Ô$@Ð@Ð@Ø ˜5˜5 $ $Ð'ˆØ€}˜¥9Ô#=Ñ#?Ô#?Ð?Ð?õ #‘n”nð 	ð 	ˆFØ× Ò  Ñ)Ô)ð ¨f¯oªo¸eÑ.DÔ.Dð ØŸš SÑ)Ô)¨!Ô,�Ø�øØ€Ls   „(- ­
:¹:)8rƒ  Úemail.errorsr+   rL   r:  r8  r�   rJ   Úunittestr   ÚImportErrorr  rn  Ú	testtoolsr   rk   r_   r   r6  r   r   Ú	pbr.testsr   Úimportlib.machineryÚ	importlibÚ	machineryÚall_suffixesr   r   r1   r{   rR   Ú__file__rd   ÚFixturer   rA   r\   rt   ÚBaseTestCaser“   rÈ   rÌ   rÔ   ÚTestCaserø   r  r  r.  rY  rq  r|  ré  r
  r  rñ   r   r   r   ú<module>rM     s6  ððR €€€Ø Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€à €€€ðØÐÐÐÐÐÐøØð ð ð Ø€K€K€K€K€Kðøøøà Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
0ØÐÐÐØÔ&Ô3€L€Løàð 0ð 0ð 0Ø€J€J€Jð0ð 0ð 0ð 0ð 0ð0øøøð Œ7�?Š?˜2œ7Ÿ<š<¨°$¸¸dÑCÔCÑDÔD€ðGð Gð Gð Gð GˆxÔñ Gô Gð GðB4ð 4ð 4ð 4ð 4�HÔ$ñ 4ô 4ð 4ðn(ð (ð (ð (ð (ˆ8Ôñ (ô (ð (ðV>ð >ð >ð >ð >�XÔ%ñ >ô >ð >ðB?Kð ?Kð ?Kð ?Kð ?K tÔ'8ñ ?Kô ?Kð ?KðDCð Cð Cð Cð C Ô 1ñ Cô Cð Cð7ð 7ð 7ð 7ð 7¨$Ô*;ñ 7ô 7ð 7ð(1<ð 1<ð 1<ð 1<ð 1<˜$Ô+ñ 1<ô 1<ð 1<ðh'ð 'ð 'ð 'ð '˜9Ô-ñ 'ô 'ð 'ðTMð Mð Mð Mð M DÔ$5ñ Mô Mð Mð2=ð =ð =ð =ð =˜Ô)ñ =ô =ð =ð=*ð =*ð =*ð =*ð =*˜DÔ-ñ =*ô =*ð =*ð@0Hð 0Hð 0Hð 0Hð 0H TÔ%6ñ 0Hô 0Hð 0Hðf?ð ?ð ?ð ?ð ?˜tÔ0ñ ?ô ?ð ?ð,R9ð R9ð R9ð R9ð R9�4Ô$ñ R9ô R9ð R9ðj?5ð ?5ð ?5ð ?5ð ?5˜TÔ.ñ ?5ô ?5ð ?5ðD:5ð :5ð :5ð :5ð :5˜Ô)ñ :5ô :5ð :5ðzjAð jAð jAð jAð jA DÔ$5ñ jAô jAð jAðZð ð ð ð s   ¢) ©	5´5Á'A8 Á8BÂB