o
    VÛë\&  ã                   @   sî  d Z ddlmZmZ ddlmZ edƒZi dd“dd“d	d
“dd“dd“dd“dd“dd
“dd“dd“dd“dd“dd“dd“dd“dd“dd“i dd“dd“dd“d d“d!d“d"d“d#d$“d%d$“d&d'“d(d“d)d“d*d“d+d“d,d
“d-d“d.d“d/d0“¥i d1d“d2d“d3d“d4d“d5d“d6d“d7d“d8d“d9d:“d;d<“d=d>“d?d“d@d“dAd“dBd“dCd“dDdE“¥i dFd“dGd$“dHdI“dJd
“dKd“dLdM“dNd
“dOd“dPd“dQd“dRd“dSd
“dTd“dUd“dVd“dWd“¥ZdZG dXdY„ dYe	ƒZ
efdZd[„Zd\S )]z¸
    babel.messages.plurals
    ~~~~~~~~~~~~~~~~~~~~~~

    Plural form definitions.

    :copyright: (c) 2013-2019 by the Babel Team.
    :license: BSD, see LICENSE for more details.
é    )Údefault_localeÚLocale)Ú
itemgetterÚLC_CTYPEÚaf)é   z(n != 1)Úar)é   z[(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5)Úbe)é   zR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)ÚbgÚbnÚbo)é   Ú0Úbr)r	   a&  (n==1 ? 0 : n%10==1 && n%100!=11 && n%100!=71 && n%100!=91 ? 1 : n%10==2 && n%100!=12 && n%100!=72 && n%100!=92 ? 2 : (n%10==3 || n%10==4 || n%10==9) && n%100!=13 && n%100!=14 && n%100!=19 && n%100!=73 && n%100!=74 && n%100!=79 && n%100!=93 && n%100!=94 && n%100!=99 ? 3 : n%1000000==0 ? 4 : 5)ÚbsÚcaÚcs)r   z%((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2)ÚcvÚcy)é   z/(n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 0)ÚdaÚdeÚdzÚelÚenÚeoÚesÚetÚeuÚfaÚfiÚfr)r   z(n > 1)ÚfurÚga)r   z@(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)ÚglÚhaÚheÚhiÚhrÚhuÚhyÚis)r   z(n%10==1 && n%100!=11 ? 0 : 1)ÚitÚjaÚkaÚkgÚkmÚkoÚkuÚloÚlt)r   zG(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)Úlv)r   z+(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)Úmt)é   zS(n==1 ? 0 : n==0 || ( n%100=>1 && n%100<=10) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)ÚnbÚnlÚnnÚnoÚpaÚpl)r   zB(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)ÚptÚpt_BRÚro)r   z8(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2)ÚruÚskÚsl)r9   z<(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)ÚsrÚstÚsvÚthÚtrÚukÚveÚviÚxhÚzhc                   @   sL   e Zd ZdZdZeedƒdd�Zeedƒdd�Zedd	„ d
d�Z	dd„ Z
dS )Ú_PluralTuplez A tuple with plural information.© r   z.
    The number of plurals used by the locale.)Údocr   z.
    The plural expression used by the locale.c                 C   s   d|  S )Nznplurals=%s; plural=%s;rQ   )ÚxrQ   rQ   ú8/usr/lib/python3/dist-packages/babel/messages/plurals.pyÚ<lambda>Ø   s    z_PluralTuple.<lambda>z9
    The plural expression used by the catalog or locale.c                 C   s   | j S )N)Úplural_forms)ÚselfrQ   rQ   rT   Ú__str__Û   s   z_PluralTuple.__str__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Úpropertyr   Únum_pluralsÚplural_exprrV   rX   rQ   rQ   rQ   rT   rP   Ð   s    rP   c                 C   sj   t  | ¡} ztt| ƒ }W t|ƒS  ty4   zt| j }W n ty)   t}Y nw Y t|ƒS Y t|ƒS w )a¸  A tuple with the information catalogs need to perform proper
    pluralization.  The first item of the tuple is the number of plural
    forms, the second the plural expression.

    >>> get_plural(locale='en')
    (2, '(n != 1)')
    >>> get_plural(locale='ga')
    (5, '(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)')

    The object returned is a special tuple with additional members:

    >>> tup = get_plural("ja")
    >>> tup.num_plurals
    1
    >>> tup.plural_expr
    '0'
    >>> tup.plural_forms
    'nplurals=1; plural=0;'

    Converting the tuple into a string prints the plural forms for a
    gettext catalog:

    >>> str(tup)
    'nplurals=1; plural=0;'
    )r   ÚparseÚPLURALSÚstrÚKeyErrorÚlanguageÚDEFAULT_PLURALrP   )ÚlocaleÚtuprQ   rQ   rT   Ú
get_pluralß   s   
ûÿÿÿûri   N)r\   Ú
babel.corer   r   Úoperatorr   r   rb   rf   ÚtuplerP   ri   rQ   rQ   rQ   rT   Ú<module>   s†  
øðäâ&Ú(Ø*Ö1Ï3Í=ÃA¿C½E»G¹KµM³O±Q¯S­U«W©Y§[¥]£_¡aŸc�e›g™i—k•m“o‘q�s�u‹w‰y‡{…}ƒ�  �þ  �ü  �ú  �ø 
 �ö  �ô  �ò  �ð  �î  �ì  �ê  �è  �æ  �ä  �â   �à " �Þ $ �Ü & �Ú ( �Ø * �Ö , �Ô . �Ò 0 �Ð 2 �Î 4 �Ì 8