§
    ¤”jäÅ  ã                   óB  — 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	m
Z
mZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ d dlm Z  d„ Z!d„ Z"d„ Z#d„ Z$ G d„ d¦  «        Z% G d„ de%¦  «        Z& G d„ de%¦  «        Z'd„ Z(d„ Z)d„ Z*dS )é    N)Úchain)Úapps)Úsettings)ÚNotRegistered)ÚNotRelationFieldÚflattenÚget_fields_from_path)Úchecks)ÚFieldDoesNotExist)Úmodels)Ú
LOOKUP_SEP)Ú
Combinable)ÚBaseModelFormÚBaseModelFormSetÚ_get_foreign_key)Úengines)ÚDjangoTemplates)Úimport_stringc                 óF   — 	 t          | |¦  «        S # t          $ r Y dS w xY w)zX
    issubclass() variant that doesn't raise an exception if cls isn't a
    class.
    F)Ú
issubclassÚ	TypeError)ÚclsÚ	classinfos     új/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/contrib/admin/checks.pyÚ_issubclassr      s9   € ð
Ý˜#˜yÑ)Ô)Ð)øÝð ð ð Øˆuˆuðøøøs   ‚ ’
 Ÿ c                 ó–   — t          | ¦  «        }|D ]6}	 t          |¦  «        }n# t          $ r Y Œw xY wt          ||¦  «        r dS Œ7dS )z|
    Return whether or not a dotted class path (or a subclass of that class) is
    found in a list of candidate paths.
    TF)r   ÚImportErrorr   )Ú
class_pathÚcandidate_pathsr   ÚpathÚcandidate_clss        r   Ú_contains_subclassr"      sy   € õ
 ˜
Ñ
#Ô
#€CØð ð ˆð	Ý)¨$Ñ/Ô/ˆMˆMøÝð 	ð 	ð 	àˆHð	øøøõ �} cÑ*Ô*ð 	Ø�4�4ð	àˆ5s   •%¥
2±2c                 óp   — ddl m} g }|D ]*}|                     |                     | ¦  «        ¦  «         Œ+|S )Nr   ©Ú	all_sites)Údjango.contrib.admin.sitesr%   ÚextendÚcheck)Úapp_configsÚkwargsr%   ÚerrorsÚsites        r   Úcheck_admin_appr-   /   sN   € Ø4Ð4Ð4Ð4Ð4Ð4à€FØð /ð /ˆØ�Š�d—j’j Ñ-Ô-Ñ.Ô.Ð.Ð.Ø€Mó    c                  óÊ  — ddl m} t          j        d¦  «        sg S g }d}|D ]H\  }}t          j        |¦  «        s/|                     t          j        d|z  d|z  ¬¦  «        ¦  «         ŒIt          j        ¦   «         D ] }t          |t          ¦  «        r	|j        } nŒ!d}|s*|                     t          j        d	d
¬¦  «        ¦  «         nËd|j        vrCt          dt          j        ¦  «        r)|                     t          j        dd¬¦  «        ¦  «         d|j        vr)|                     t          j        dd¬¦  «        ¦  «         t!          d„ |D ¦   «         ¦  «        }|r2d|j        vr)|                     t          j        dd¬¦  «        ¦  «         t          dt          j        ¦  «        s)|                     t          j        dd¬¦  «        ¦  «         t          dt          j        ¦  «        s)|                     t          j        dd¬¦  «        ¦  «         t          dt          j        ¦  «        s*|                     t          j        ddd¬ ¦  «        ¦  «         |S )!zF
    Check that the admin's dependencies are correctly installed.
    r   r$   zdjango.contrib.admin))zdjango.contrib.contenttypesi‘  )zdjango.contrib.authi•  )zdjango.contrib.messagesi–  zE'%s' must be in INSTALLED_APPS in order to use the admin application.z	admin.E%d)ÚidNzƒA 'django.template.backends.django.DjangoTemplates' instance must be configured in TEMPLATES in order to use the admin application.z
admin.E403z+django.contrib.auth.context_processors.authz)django.contrib.auth.backends.ModelBackendz¥'django.contrib.auth.context_processors.auth' must be enabled in DjangoTemplates (TEMPLATES) if using the default auth backend in order to use the admin application.z
admin.E402z3django.contrib.messages.context_processors.messagesz‹'django.contrib.messages.context_processors.messages' must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin application.z
admin.E404c              3   ó$   K  — | ]}|j         V — Œd S ©N)Úenable_nav_sidebar)Ú.0r,   s     r   ú	<genexpr>z%check_dependencies.<locals>.<genexpr>{   s%   è è € ÐLÐL¸$˜dÔ5ÐLÐLÐLÐLÐLÐLr.   z*django.template.context_processors.requestz‰'django.template.context_processors.request' must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin navigation sidebar.z
admin.W411z7django.contrib.auth.middleware.AuthenticationMiddlewarezv'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEWARE in order to use the admin application.z
admin.E408z4django.contrib.messages.middleware.MessageMiddlewarezs'django.contrib.messages.middleware.MessageMiddleware' must be in MIDDLEWARE in order to use the admin application.z
admin.E409z4django.contrib.sessions.middleware.SessionMiddlewarezs'django.contrib.sessions.middleware.SessionMiddleware' must be in MIDDLEWARE in order to use the admin application.zInsert 'django.contrib.sessions.middleware.SessionMiddleware' before 'django.contrib.auth.middleware.AuthenticationMiddleware'.z
admin.E410)Úhintr0   )r&   r%   r   Úis_installedÚappendr
   ÚErrorr   ÚallÚ
isinstancer   ÚengineÚcontext_processorsr"   r   ÚAUTHENTICATION_BACKENDSÚanyÚWarningÚ
MIDDLEWARE)	r*   r%   r+   Úapp_dependenciesÚapp_nameÚ
error_coder<   Údjango_templates_instanceÚsidebar_enableds	            r   Úcheck_dependenciesrG   8   sT  € ð 5Ð4Ð4Ð4Ð4Ð4åÔÐ3Ñ4Ô4ð Øˆ	Ø€FðÐð
 !1ð ð Ñˆ�*ÝÔ  Ñ*Ô*ð 	Ø�MŠMÝ”ð#Ø%-ñ.à" ZÑ/ðñ ô ñô ð øõ ”+‘-”-ð )ð )ˆÝ�f�oÑ.Ô.ð 	Ø(.¬Ð%ØˆEð	ð %)Ð!Ø$ð 3Ø�ŠÝŒLðð  ð	ñ ô ñ	
ô 	
ð 	
ð 	
ð :Ø,Ô?ð@ð @å"Ø;ÝÔ0ñô ð@ð �MŠMÝ”ðJð $ð	ñ ô ñô ð ð BØ,Ô?ð@ð @ð �MŠMÝ”ð-ð $ð	ñ ô ñô ð õ ÐLÐLÀ)ÐLÑLÔLÑLÔLˆàð	à<Ø,Ô?ð@ð @ð �MŠMÝ”ð*ð $ð	ñ ô ñô ð õ ØAÅ8ÔCVñô ð 	
ð 	�ŠÝŒLðJàðñ ô ñ	
ô 	
ð 	
õ Ø>ÅÔ@Sñô ð 	
ð 	�ŠÝŒLðJàðñ ô ñ	
ô 	
ð 	
õ Ø>ÅÔ@Sñô ð 
ð 	�ŠÝŒLðJðQð
  ð
ñ 
ô 
ñ	
ô 	
ð 	
ð €Mr.   c                   ó°   — e 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d„ Zd„ ZdS )ÚBaseModelAdminChecksc                 ó(  — g |                       |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|  	                    |¦  «        ¢|  
                    |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢S r2   )Ú_check_autocomplete_fieldsÚ_check_raw_id_fieldsÚ_check_fieldsÚ_check_fieldsetsÚ_check_excludeÚ_check_formÚ_check_filter_verticalÚ_check_filter_horizontalÚ_check_radio_fieldsÚ_check_prepopulated_fieldsÚ_check_view_on_site_urlÚ_check_orderingÚ_check_readonly_fields)ÚselfÚ	admin_objr*   s      r   r(   zBaseModelAdminChecks.check²   s@  € ð
Ø×,Ò,¨YÑ7Ô7ð
à×&Ò& yÑ1Ô1ð
ð ×Ò 	Ñ*Ô*ð
ð ×"Ò" 9Ñ-Ô-ð	
ð
 × Ò  Ñ+Ô+ð
ð ×Ò˜iÑ(Ô(ð
ð ×(Ò(¨Ñ3Ô3ð
ð ×*Ò*¨9Ñ5Ô5ð
ð ×%Ò% iÑ0Ô0ð
ð ×,Ò,¨YÑ7Ô7ð
ð ×)Ò)¨)Ñ4Ô4ð
ð ×!Ò! )Ñ,Ô,ð
ð ×(Ò(¨Ñ3Ô3ð
ð 	
r.   c                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )zV
        Check that `autocomplete_fields` is a list or tuple of model fields.
        úa list or tupleÚautocomplete_fieldsz
admin.E036©ÚoptionÚobjr0   c                 óJ   •— g | ]\  }}‰                      ‰|d |z  ¦  «        ‘Œ S )zautocomplete_fields[%d])Ú_check_autocomplete_fields_item©r4   ÚindexÚ
field_namer_   rX   s      €€r   ú
<listcomp>zCBaseModelAdminChecks._check_autocomplete_fields.<locals>.<listcomp>Ñ   sL   ø€ ð ð ð ñ .˜E :ð ×<Ò<Ø Ð-FÈÑ-Nñô ðð ð r.   )r;   r\   ÚlistÚtupleÚmust_ber   Úfrom_iterableÚ	enumerate©rX   r_   s   ``r   rK   z/BaseModelAdminChecks._check_autocomplete_fieldsÃ   sž   øø€ õ ˜#Ô1µD½%°=ÑAÔAð 	ÝØ!Ø,ØØð	ñ ô ð õ ÝÔ#ðð ð ð ð õ 2;¸3Ô;RÑ1SÔ1Sð	ñ ô ñô ñ	ô 	ð 	r.   c           	      óv  — 	 |j         j                             |¦  «        }|j        s-t	          |t
          j        ¦  «        st          d||d¬¦  «        S 	 |j         	                    |j
        j         ¦  «        }|j        s?t          j        |j        j        ›dt!          |¦  «        j        ›d�|j        d¬¦  «        gS nU# t"          $ rH t          j        d|j
        j         j        ›d	t!          |¦  «        j        ›d�|j        d
¬¦  «        gcY S w xY wg S # t$          $ r t'          |||d¬¦  «        cY S w xY w)z¹
        Check that an item in `autocomplete_fields` is a ForeignKey or a
        ManyToManyField and that the item has a related ModelAdmin with
        search_fields defined.
        ú%a foreign key or a many-to-many fieldz
admin.E038r]   z9 must define "search_fields", because it's referenced by z.autocomplete_fields.z
admin.E040©r_   r0   zAn admin for model "z+" has to be registered to be referenced by z
admin.E039z
admin.E037©Úfieldr^   r_   r0   )ÚmodelÚ_metaÚ	get_fieldÚmany_to_manyr;   r   Ú
ForeignKeyrh   Ú
admin_siteÚget_model_adminÚremote_fieldÚsearch_fieldsr
   r9   Ú	__class__Ú__name__Útyper   r   Úrefer_to_missing_field)rX   r_   rd   Úlabelrp   Úrelated_admins         r   ra   z4BaseModelAdminChecks._check_autocomplete_fields_itemÚ   s¯  € ð+	Ø”I”O×-Ò-¨jÑ9Ô9ˆEð Ô%ð ­j¸ÅÔ@QÑ.RÔ.Rð ÝØ;Ø ØØ#ð	ñ ô ð ðØ #¤× >Ò >¸uÔ?QÔ?WÑ XÔ X�ð %Ô2ð åœð !.Ô 7Ô @Ð @Ð @Ý $ S¡	¤	Ô 2Ð 2Ð 2ð	ð !$¤Ø+ð	ñ 	ô 	ðð ðøõ !ð ð ð å”L�Lð "Ô.Ô4Ô=Ð=Ð=Ý  ™IœIÔ.Ð.Ð.ð	ð  œMØ'ð	ñ 	ô 	ðð ð ð ðøøøð6 ˆIøõS !ð 	ð 	ð 	Ý)Ø ¨°C¸Lðñ ô ð ð ð ð	øøøs$   ‚D Á$C ÃADÄDÄD8Ä7D8c                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )zZCheck that `raw_id_fields` only contains field names that are listed
        on the model.r[   Úraw_id_fieldsz
admin.E001r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zraw_id_fields[%d]N)Ú_check_raw_id_fields_itemrb   s      €€r   r5   z<BaseModelAdminChecks._check_raw_id_fields.<locals>.<genexpr>  sZ   øè è € ð $ð $ñ *˜˜zð ×2Ò2Ø˜ZÐ)<¸uÑ)Dñô ð$ð $ð $ð $ð $ð $r.   )r;   r�   rf   rg   rh   r   ri   rj   rk   s   ``r   rL   z)BaseModelAdminChecks._check_raw_id_fields  s›   øø€ õ ˜#Ô+­dµE¨]Ñ;Ô;ð 	ÝØ!¨/¸sÀ|ðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $õ .7°sÔ7HÑ-IÔ-Ið	$ñ $ô $ñ ô ñô ð r.   c                 ó0  — 	 |j         j                             |¦  «        }|j        |k    rt	          |||d¬¦  «        S |j        s-t          |t          j        ¦  «        st          d||d¬¦  «        S g S # t          $ r t	          |||d¬¦  «        cY S w xY w)zœCheck an item of `raw_id_fields`, i.e. check that field named
        `field_name` exists in model `model` and is a ForeignKey or a
        ManyToManyField.z
admin.E002ro   rm   z
admin.E003r]   )rq   rr   rs   Únamer}   rt   r;   r   ru   rh   r   ©rX   r_   rd   r~   rp   s        r   rƒ   z.BaseModelAdminChecks._check_raw_id_fields_item  sâ   € ð
	Ø”I”O×-Ò-¨jÑ9Ô9ˆEð Œz˜ZÒ'Ð'Ý-Ø$Ø ØØ#ð	ñ ô ð ð Ô%ð ­j¸ÅÔ@QÑ.RÔ.Rð ÝØ;Ø ØØ#ð	ñ ô ð ð �	øõ+ !ð 	ð 	ð 	Ý)Ø ¨°C¸Lðñ ô ð ð ð ð	øøøs   ‚A5 Á5BÂBc                 óê  ‡ ‡— ‰j         €g S t          ‰j         t          t          f¦  «        st	          dd‰d¬¦  «        S ‰j        rt          j        d‰j        d¬¦  «        gS t          ‰j         ¦  «        }t          |¦  «        t          t          |¦  «        ¦  «        k    rt          j        d	‰j        d
¬¦  «        gS t          t          j        ˆˆ fd„‰j         D ¦   «         ¦  «        ¦  «        S )zœCheck that `fields` only refer to existing fields, doesn't contain
        duplicates. Check if at most one of `fields` and `fieldsets` is defined.
        Nr[   Úfieldsz
admin.E004r]   z,Both 'fieldsets' and 'fields' are specified.z
admin.E005rn   z2The value of 'fields' contains duplicate field(s).z
admin.E006c              3   óF   •K  — | ]}‰                      ‰|d ¦  «        V — ŒdS )rˆ   N©Ú_check_field_spec)r4   rd   r_   rX   s     €€r   r5   z5BaseModelAdminChecks._check_fields.<locals>.<genexpr>Y  sI   øè è € ð  ð  àð ×&Ò& s¨J¸ÑAÔAð ð  ð  ð  ð  ð  r.   )rˆ   r;   rf   rg   rh   Ú	fieldsetsr
   r9   rz   r   ÚlenÚsetr   ri   )rX   r_   rˆ   s   `` r   rM   z"BaseModelAdminChecks._check_fields=  s   øø€ ð
 Œ:ÐØˆIÝ˜CœJ­­u¨Ñ6Ô6ð 		ÝÐ,°XÀ3È<ÐXÑXÔXÐXØŒ]ð 	å”ØBØœØ#ðñ ô ðð õ ˜œÑ$Ô$ˆÝˆv‰;Œ;�#�c &™kœkÑ*Ô*Ò*Ð*å”ØHØœØ#ðñ ô ðð õ ÝÔð  ð  ð  ð  ð  à"%¤*ð ñ  ô  ñ ô ñ
ô 
ð 	
r.   c                 ó  ‡ ‡‡— ‰j         €g S t          ‰j         t          t          f¦  «        st	          dd‰d¬¦  «        S g Št          t          j        ˆˆˆ fd„t          ‰j         ¦  «        D ¦   «         ¦  «        ¦  «        S )zRCheck that fieldsets is properly formatted and doesn't contain
        duplicates.Nr[   rŒ   z
admin.E007r]   c              3   óT   •K  — | ]"\  }}‰                      ‰|d |z  ‰¦  «        V — Œ#dS )zfieldsets[%d]N)Ú_check_fieldsets_item)r4   rc   Úfieldsetr_   Úseen_fieldsrX   s      €€€r   r5   z8BaseModelAdminChecks._check_fieldsets.<locals>.<genexpr>l  s[   øè è € ð $ð $ñ (˜˜xð ×.Ò.Ø˜X ¸Ñ'>Àñô ð$ð $ð $ð $ð $ð $r.   )rŒ   r;   rf   rg   rh   r   ri   rj   )rX   r_   r“   s   ``@r   rN   z%BaseModelAdminChecks._check_fieldsets_  s±   øøø€ ð Œ=Ð ØˆIÝ˜CœM­Dµ%¨=Ñ9Ô9ð 	ÝØ!¨+¸3À<ðñ ô ð ð ˆKÝÝÔ#ð $ð $ð $ð $ð $ð $õ ,5°S´]Ñ+CÔ+Cð	$ñ $ô $ñ ô ñô ð r.   c                 óP  ‡ ‡‡— t          |t          t          f¦  «        st          d‰‰d¬¦  «        S t	          |¦  «        dk    rt          d‰‰d¬¦  «        S t          |d         t
          ¦  «        st          dd	‰z  ‰d
¬¦  «        S d|d         vr t          j        d‰z  ‰j        d¬¦  «        gS t          |d         d         t          t          f¦  «        st          dd‰z  ‰d¬¦  «        S | 	                    t          |d         d         ¦  «        ¦  «         t	          |¦  «        t	          t          |¦  «        ¦  «        k    r t          j        d‰z  ‰j        d¬¦  «        gS t          t          j        ˆˆˆ fd„|d         d         D ¦   «         ¦  «        ¦  «        S )z|Check an item of `fieldsets`, i.e. check that this is a pair of a
        set name and a dictionary containing "fields" key.r[   z
admin.E008r]   é   zof length 2z
admin.E009é   úa dictionaryú%s[1]z
admin.E010rˆ   z3The value of '%s[1]' must contain the key 'fields'.z
admin.E011rn   z%s[1]['fields']z(There are duplicate field(s) in '%s[1]'.z
admin.E012c              3   óL   •K  — | ]}‰                      ‰|d ‰z  ¦  «        V — ŒdS )z%s[1]["fields"]NrŠ   )r4   Úfieldset_fieldsr~   r_   rX   s     €€€r   r5   z=BaseModelAdminChecks._check_fieldsets_item.<locals>.<genexpr>š  sP   øè è € ð  ð  à#ð ×&Ò& s¨OÐ=NÐQVÑ=VÑWÔWð ð  ð  ð  ð  ð  r.   )r;   rf   rg   rh   r�   Údictr
   r9   rz   r'   r   rŽ   r   ri   )rX   r_   r’   r~   r“   s   `` ` r   r‘   z*BaseModelAdminChecks._check_fieldsets_itemt  sô  øøø€ õ ˜(¥T­5 MÑ2Ô2ð 	ÝÐ,°UÀÈÐUÑUÔUÐUÝ�‰]Œ]˜aÒÐÝ˜=°¸CÀLÐQÑQÔQÐQÝ˜H QœK­Ñ.Ô.ð 	ÝØ w°¡¸CÀLðñ ô ð ð ˜X aœ[Ð(Ð(å”ØIÈEÑQØœØ#ðñ ô ðð õ ˜H QœK¨Ô1µD½%°=ÑAÔAð 	ÝØ!Ø(¨5Ñ0ØØð	ñ ô ð ð 	×Ò�7 8¨A¤;¨xÔ#8Ñ9Ô9Ñ:Ô:Ð:Ýˆ{ÑÔ�s¥3 {Ñ#3Ô#3Ñ4Ô4Ò4Ð4å”Ø>ÀÑFØœØ#ðñ ô ðð õ ÝÔð  ð  ð  ð  ð  ð  à'/°¤{°8Ô'<ð ñ  ô  ñ ô ñ
ô 
ð 	
r.   c                 óØ   ‡ ‡‡— t          |t          ¦  «        r<t          t          j        ˆˆˆ fd„t          |¦  «        D ¦   «         ¦  «        ¦  «        S ‰                      ‰|‰¦  «        S )z²`fields` should be an item of `fields` or an item of
        fieldset[1]['fields'] for any `fieldset` in `fieldsets`. It should be a
        field name or a tuple of field names.c              3   óV   •K  — | ]#\  }}‰                      ‰|d ‰|fz  ¦  «        V — Œ$dS )z%s[%d]N)Ú_check_field_spec_item)r4   rc   rd   r~   r_   rX   s      €€€r   r5   z9BaseModelAdminChecks._check_field_spec.<locals>.<genexpr>§  s]   øè è € ð $ð $ñ *˜˜zð ×/Ò/Ø˜Z¨°U¸E°NÑ)Bñô ð$ð $ð $ð $ð $ð $r.   )r;   rg   rf   r   ri   rj   rž   )rX   r_   rˆ   r~   s   `` `r   r‹   z&BaseModelAdminChecks._check_field_spec   s�   øøø€ õ
 �f�eÑ$Ô$ð 
	CÝÝÔ#ð $ð $ð $ð $ð $ð $õ .7°vÑ->Ô->ð	$ñ $ô $ñ ô ñô ð ð ×.Ò.¨s°F¸EÑBÔBÐBr.   c                 ó(  — ||j         v rg S 	 |j        j                             |¦  «        }t	          |t
          j        ¦  «        r:|j        j        j        j	        s$t          j        d|›d|›d�|j        d¬¦  «        gS g S # t          $ r g cY S w xY w)NúThe value of 'ú&' cannot include the ManyToManyField 'ú>', because that field manually specifies a relationship model.ú
admin.E013rn   )Úreadonly_fieldsrq   rr   rs   r;   r   ÚManyToManyFieldrx   ÚthroughÚauto_createdr
   r9   rz   r   r†   s        r   rž   z+BaseModelAdminChecks._check_field_spec_item±  sÎ   € Ø˜Ô,Ð,Ð,ð ˆIðØœ	œ×1Ò1°*Ñ=Ô=�õ ˜u¥fÔ&<Ñ=Ô=ðà!Ô.Ô6Ô<ÔIðõ
 œ˜ð 6;°U°U¸J¸J¸JðHð !$¤Ø+ðñ ô ðð ð �Iøõ' %ð ð ð ð �	�	�	ðøøøs   �B ÂBÂBc                 ó(  — |j         €g S t          |j         t          t          f¦  «        st	          dd|d¬¦  «        S t          |j         ¦  «        t          t          |j         ¦  «        ¦  «        k    rt          j        d|j	        d¬¦  «        gS g S )	z4Check that exclude is a sequence without duplicates.Nr[   Úexcludez
admin.E014r]   z3The value of 'exclude' contains duplicate field(s).z
admin.E015rn   )
r©   r;   rf   rg   rh   r�   rŽ   r
   r9   rz   rk   s     r   rO   z#BaseModelAdminChecks._check_excludeÏ  s¢   € ð Œ;ÐØˆIÝ˜CœK­$µ¨Ñ7Ô7ð 	ÝØ!¨)¸Àðñ ô ð õ �”ÑÔ¥¥C¨¬Ñ$4Ô$4Ñ 5Ô 5Ò5Ð5å”ØIØœØ#ðñ ô ðð ð ˆIr.   c                 ó`   — t          |j        t          ¦  «        st          dd|d¬¦  «        S g S )z)Check that form subclasses BaseModelForm.r   Úformz
admin.E016©Úparentr^   r_   r0   )r   r«   r   Úmust_inherit_fromrk   s     r   rP   z BaseModelAdminChecks._check_formã  s=   € å˜3œ8¥]Ñ3Ô3ð 	Ý$Ø&¨v¸3À<ðñ ô ð ð ˆIr.   c                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )z8Check that filter_vertical is a sequence of field names.r[   Úfilter_verticalz
admin.E017r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zfilter_vertical[%d]N©Ú_check_filter_itemrb   s      €€r   r5   z>BaseModelAdminChecks._check_filter_vertical.<locals>.<genexpr>ô  sZ   øè è € ð $ð $ñ *˜˜zð ×+Ò+Ø˜ZÐ)>ÀÑ)Fñô ð$ð $ð $ð $ð $ð $r.   )r;   r°   rf   rg   rh   r   ri   rj   rk   s   ``r   rQ   z+BaseModelAdminChecks._check_filter_verticalì  sš   øø€ å˜#Ô-µµe¨}Ñ=Ô=ð 	ÝØ!Ð*;ÀÈðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $õ .7°sÔ7JÑ-KÔ-Kð	$ñ $ô $ñ ô ñô ð r.   c                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )z:Check that filter_horizontal is a sequence of field names.r[   Úfilter_horizontalz
admin.E018r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zfilter_horizontal[%d]Nr²   rb   s      €€r   r5   z@BaseModelAdminChecks._check_filter_horizontal.<locals>.<genexpr>  sZ   øè è € ð $ð $ñ *˜˜zð ×+Ò+Ø˜ZÐ)@À5Ñ)Hñô ð$ð $ð $ð $ð $ð $r.   )r;   rµ   rf   rg   rh   r   ri   rj   rk   s   ``r   rR   z-BaseModelAdminChecks._check_filter_horizontalü  sš   øø€ å˜#Ô/µ$½°Ñ?Ô?ð 	ÝØ!Ð*=À3È<ðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $õ .7°sÔ7LÑ-MÔ-Mð	$ñ $ô $ñ ô ñô ð r.   c                 óh  — 	 |j         j                             |¦  «        }|j        rt	          |t
          j        ¦  «        rt          d||d¬¦  «        S |j        j	        j        j
        s$t          j        d|› d|› d�|j        d¬¦  «        gS g S # t          $ r t          |||d	¬
¦  «        cY S w xY w)z€Check one item of `filter_vertical` or `filter_horizontal`, i.e.
        check that given field exists and is a ManyToManyField.za many-to-many fieldz
admin.E020r]   r    r¡   r¢   r£   rn   z
admin.E019ro   )rq   rr   rs   rt   r;   r   ÚManyToManyRelrh   rx   r¦   r§   r
   r9   rz   r   r}   r†   s        r   r³   z'BaseModelAdminChecks._check_filter_item  s  € ð	Ø”I”O×-Ò-¨jÑ9Ô9ˆEð Ô%ð ­°E½6Ô;OÑ)PÔ)Pð ÝØ*°5¸cÀlðñ ô ð ð Ô'Ô/Ô5ÔBð å”Lð/¨ð /ð /Ø&ð/ð /ð /ð  œMØ'ðñ ô ðð ð �	øõ) !ð 	ð 	ð 	Ý)Ø ¨°C¸Lðñ ô ð ð ð ð	øøøs   ‚B ÂB1Â0B1c                 óê   ‡ ‡— t          ‰j        t          ¦  «        st          dd‰d¬¦  «        S t	          t          j        ˆˆ fd„‰j                             ¦   «         D ¦   «         ¦  «        ¦  «        S )z*Check that `radio_fields` is a dictionary.r—   Úradio_fieldsz
admin.E021r]   c              3   ó‚   •K  — | ]9\  }}‰                      ‰|d ¦  «        ‰                     ‰|d|z  ¦  «        z   V — Œ:dS )rº   zradio_fields["%s"]N)Ú_check_radio_fields_keyÚ_check_radio_fields_value©r4   rd   Úvalr_   rX   s      €€r   r5   z;BaseModelAdminChecks._check_radio_fields.<locals>.<genexpr>0  st   øè è € ð $ð $ñ
 (˜
 Cð	 ×0Ò0°°jÀ.ÑQÔQØ×4Ò4Ø˜SÐ"6¸Ñ"Cñô ñð$ð $ð $ð $ð $ð $r.   )r;   rº   r›   rh   rf   r   ri   Úitemsrk   s   ``r   rS   z(BaseModelAdminChecks._check_radio_fields(  s™   øø€ å˜#Ô*­DÑ1Ô1ð 	ÝØ ~¸3À<ðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $ð
 ,/Ô+;×+AÒ+AÑ+CÔ+Cð$ñ $ô $ñ ô ñô ð r.   c                 ó  — 	 |j         j                             |¦  «        }t          |t          j        ¦  «        s+|j        s$t          j        d|›d|›d�|j	        d¬¦  «        gS g S # t          $ r t          |||d¬¦  «        cY S w xY w)zŒCheck that a key of `radio_fields` dictionary is name of existing
        field and that the field is a ForeignKey or has `choices` defined.r    ú' refers to 'zT', which is not an instance of ForeignKey, and does not have a 'choices' definition.z
admin.E023rn   z
admin.E022ro   )rq   rr   rs   r;   r   ru   Úchoicesr
   r9   rz   r   r}   r†   s        r   r¼   z,BaseModelAdminChecks._check_radio_fields_key9  sÊ   € ð	Ø”I”O×-Ò-¨jÑ9Ô9ˆEõ ˜u¥fÔ&7Ñ8Ô8ð ¸E¼Mð å”L�Lð */¨¨°
°
°
ð<ð  œMØ'ðñ ô ðð ð �	øõ! !ð 	ð 	ð 	Ý)Ø ¨°C¸Lðñ ô ð ð ð ð	øøøs   ‚A( Á(BÂBc                 ób   — ddl m}m} |||fvr t          j        d|z  |j        d¬¦  «        gS g S )z3Check type of a value of `radio_fields` dictionary.r   )Ú
HORIZONTALÚVERTICALzDThe value of '%s' must be either admin.HORIZONTAL or admin.VERTICAL.z
admin.E024rn   )Údjango.contrib.admin.optionsrÅ   rÆ   r
   r9   rz   )rX   r_   r¿   r~   rÅ   rÆ   s         r   r½   z.BaseModelAdminChecks._check_radio_fields_valueQ  sg   € ð 	FÐEÐEÐEÐEÐEÐEÐEà�z 8Ð,Ð,Ð,å”ð&Ø(-ñ.àœØ#ð	ñ ô ðð ð ˆIr.   c                 óœ   — t          |j        ¦  «        s7t          |j        t          ¦  «        st	          j        d|j        d¬¦  «        gS g S )NzBThe value of 'view_on_site' must be a callable or a boolean value.z
admin.E025rn   )ÚcallableÚview_on_siter;   Úboolr
   r9   rz   rk   s     r   rU   z,BaseModelAdminChecks._check_view_on_site_urlb  s[   € Ý˜Ô(Ñ)Ô)ð 
	µ*¸SÔ=MÍtÑ2TÔ2Tð 
	å”ðàœØ#ð	ñ ô ðð ð ˆIr.   c                 óê   ‡ ‡— t          ‰j        t          ¦  «        st          dd‰d¬¦  «        S t	          t          j        ˆˆ fd„‰j                             ¦   «         D ¦   «         ¦  «        ¦  «        S )zXCheck that `prepopulated_fields` is a dictionary containing allowed
        field types.r—   Úprepopulated_fieldsz
admin.E026r]   c              3   ó‚   •K  — | ]9\  }}‰                      ‰|d ¦  «        ‰                     ‰|d|z  ¦  «        z   V — Œ:dS )rÍ   zprepopulated_fields["%s"]N)Ú_check_prepopulated_fields_keyÚ _check_prepopulated_fields_valuer¾   s      €€r   r5   zBBaseModelAdminChecks._check_prepopulated_fields.<locals>.<genexpr>x  s|   øè è € ð $ð $ñ (˜
 Cð ×7Ò7Ø˜ZÐ)>ñô ð ×;Ò;Ø˜SÐ"=À
Ñ"Jñô ñð$ð $ð $ð $ð $ð $r.   )r;   rÍ   r›   rh   rf   r   ri   rÀ   rk   s   ``r   rT   z/BaseModelAdminChecks._check_prepopulated_fieldso  sœ   øø€ õ ˜#Ô1µ4Ñ8Ô8ð 	ÝØÐ'<À#È,ðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $ð ,/Ô+B×+HÒ+HÑ+JÔ+Jð$ñ $ô $ñ ô ñ
ô 
ð 
r.   c                 ó6  — 	 |j         j                             |¦  «        }t          |t          j        t          j        t          j        f¦  «        r$t          j	        d|›d|›d�|j
        d¬¦  «        gS g S # t          $ r t          |||d¬¦  «        cY S w xY w)z›Check a key of `prepopulated_fields` dictionary, i.e. check that it
        is a name of existing field and the field is one of the allowed types.
        r    rÂ   zZ', which must not be a DateTimeField, a ForeignKey, a OneToOneField, or a ManyToManyField.z
admin.E028rn   z
admin.E027ro   )rq   rr   rs   r;   r   ÚDateTimeFieldru   r¥   r
   r9   rz   r   r}   r†   s        r   rÏ   z3BaseModelAdminChecks._check_prepopulated_fields_keyƒ  sÖ   € ð
	Ø”I”O×-Ò-¨jÑ9Ô9ˆEõ Ø�Ô,­fÔ.?ÅÔAWÐXñô ð õ ”L�Lð /4¨e¨e°Z°Z°ZðAð  œMØ'ðñ ô ðð ð �	øõ% !ð 	ð 	ð 	Ý)Ø ¨°C¸Lðñ ô ð ð ð ð	øøøs   ‚A8 Á8BÂBc                 óÞ   ‡ ‡‡— t          |t          t          f¦  «        st          d‰‰d¬¦  «        S t          t	          j        ˆˆˆ fd„t          |¦  «        D ¦   «         ¦  «        ¦  «        S )zdCheck a value of `prepopulated_fields` dictionary, i.e. it's an
        iterable of existing fields.r[   z
admin.E029r]   c           	   3   óX   •K  — | ]$\  }}‰                      ‰|‰›d |›d�¦  «        V — Œ%dS )ú[ú]N)Ú%_check_prepopulated_fields_value_item)r4   rc   Úsubfield_namer~   r_   rX   s      €€€r   r5   zHBaseModelAdminChecks._check_prepopulated_fields_value.<locals>.<genexpr>¦  sa   øè è € ð $ð $ñ -˜˜}ð ×>Ò>Ø˜]¸¸¸¸u¸u¸uÐ,Eñô ð$ð $ð $ð $ð $ð $r.   )r;   rf   rg   rh   r   ri   rj   )rX   r_   r¿   r~   s   `` `r   rÐ   z5BaseModelAdminChecks._check_prepopulated_fields_valuež  s�   øøø€ õ ˜#¥¥e˜}Ñ-Ô-ð 
	ÝÐ,°UÀÈÐUÑUÔUÐUåÝÔ#ð $ð $ð $ð $ð $ð $õ 1:¸#±´ð	$ñ $ô $ñ ô ñô ð r.   c                 óŒ   — 	 |j         j                             |¦  «         g S # t          $ r t	          |||d¬¦  «        cY S w xY w)zYFor `prepopulated_fields` equal to {"slug": ("title",)},
        `field_name` is "title".z
admin.E030ro   )rq   rr   rs   r   r}   ©rX   r_   rd   r~   s       r   r×   z:BaseModelAdminChecks._check_prepopulated_fields_value_item®  sm   € ð	ØŒIŒO×%Ò% jÑ1Ô1Ð1ð ˆIøõ !ð 	ð 	ð 	Ý)Ø ¨°C¸Lðñ ô ð ð ð ð	øøøs   ‚# £AÁAc                 ó   ‡ ‡— ‰j         €g S t          ‰j         t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j         ¦  «        D ¦   «         ¦  «        ¦  «        S )z;Check that ordering refers to existing fields or is random.Nr[   Úorderingz
admin.E031r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zordering[%d]N)Ú_check_ordering_itemrb   s      €€r   r5   z7BaseModelAdminChecks._check_ordering.<locals>.<genexpr>Ç  sS   øè è € ð $ð $á)˜˜zð ×-Ò-¨c°:¸~ÐPUÑ?UÑVÔVð$ð $ð $ð $ð $ð $r.   )rÜ   r;   rf   rg   rh   r   ri   rj   rk   s   ``r   rV   z$BaseModelAdminChecks._check_ordering»  s¤   øø€ ð Œ<ÐØˆIÝ˜CœL­4µ¨-Ñ8Ô8ð 
	ÝØ!¨*¸#À,ðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $å-6°s´|Ñ-DÔ-Dð$ñ $ô $ñ ô ñô ð r.   c                 ó^  — t          |t          t          j        f¦  «        r\t          |t          j        ¦  «        s|                     ¦   «         }t          |j        t          j        ¦  «        r|j        j        }ng S |dk    r6t          |j	        ¦  «        dk    rt          j        dd|j        d¬¦  «        gS |dk    rg S t          |v rg S |                     d¦  «        }|dk    rg S 	 |j        j                             |¦  «         g S # t$          $ r t'          |||d	¬
¦  «        cY S w xY w)z0Check that `ordering` refers to existing fields.ú?r–   z^The value of 'ordering' has the random ordering marker '?', but contains other fields as well.z2Either remove the "?", or remove the other fields.z
admin.E032)r6   r_   r0   ú-Úpkz
admin.E033ro   )r;   r   r   ÚOrderByÚascÚ
expressionÚFr…   r�   rÜ   r
   r9   rz   r   Úremoveprefixrq   rr   rs   r   r}   rÚ   s       r   rÞ   z)BaseModelAdminChecks._check_ordering_itemÍ  sf  € å�j¥:­v¬~Ð">Ñ?Ô?ð 	Ý˜j­&¬.Ñ9Ô9ð .Ø'Ÿ^š^Ñ-Ô-�
Ý˜*Ô/µ´Ñ:Ô:ð Ø'Ô2Ô7�
�
à�	Ø˜ÒÐ¥ S¤\Ñ!2Ô!2°aÒ!7Ð!7å”ð9àMØœØ#ðñ ô ðð ð ˜3ÒÐØˆIÝ˜:Ð%Ð%ð ˆIà#×0Ò0°Ñ5Ô5ˆJØ˜TÒ!Ð!Ø�	ðØ”	”×)Ò)¨*Ñ5Ô5Ð5ð �	øõ %ð ð ð Ý-Ø$¨U¸Àðñ ô ð ð ð ðøøøs   Ã+D ÄD,Ä+D,c                 ó  ‡ ‡— ‰j         dk    rg S t          ‰j         t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j         ¦  «        D ¦   «         ¦  «        ¦  «        S )z?Check that readonly_fields refers to proper attribute or field.© r[   r¤   z
admin.E034r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zreadonly_fields[%d]N)Ú_check_readonly_fields_itemrb   s      €€r   r5   z>BaseModelAdminChecks._check_readonly_fields.<locals>.<genexpr>þ  sZ   øè è € ð $ð $ñ *˜˜zð ×4Ò4Ø˜ZÐ)>ÀÑ)Fñô ð$ð $ð $ð $ð $ð $r.   )r¤   r;   rf   rg   rh   r   ri   rj   rk   s   ``r   rW   z+BaseModelAdminChecks._check_readonly_fieldsó  s¯   øø€ ð Ô "Ò$Ð$ØˆIÝ˜CÔ/µ$½°Ñ?Ô?ð 	ÝØ!Ð*;ÀÈðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $õ .7°sÔ7JÑ-KÔ-Kð	$ñ $ô $ñ ô ñô ð r.   c                 ó`  — t          |¦  «        rg S t          ||¦  «        rg S t          |j        |¦  «        rg S 	 |j        j                             |¦  «         g S # t
          $ rF t          j        d|›d|›d|j        j	        ›d|j        j        j
        ›d�	|j        d¬¦  «        gcY S w xY w)Nr    rÂ   ú-', which is not a callable, an attribute of 'z', or an attribute of 'ú'.z
admin.E035rn   )rÉ   Úhasattrrq   rr   rs   r   r
   r9   rz   r{   r~   rÚ   s       r   rë   z0BaseModelAdminChecks._check_readonly_fields_item  sï   € Ý�JÑÔð 	ØˆIÝ�S˜*Ñ%Ô%ð 	ØˆIÝ�S”Y 
Ñ+Ô+ð 	ØˆIðØ”	”×)Ò)¨*Ñ5Ô5Ð5ð" �	øõ! %ð ð ð å”L�Lð "˜E˜EØ&˜J˜JØœMÔ2Ð2Ð2ØœIœOÔ1Ð1Ð1ðð  œMØ'ðñ ô ðð ð ð ðøøøs   ¼A ÁAB-Â,B-N)r{   Ú
__module__Ú__qualname__r(   rK   ra   rL   rƒ   rM   rN   r‘   r‹   rž   rO   rP   rQ   rR   r³   rS   r¼   r½   rU   rT   rÏ   rÐ   r×   rV   rÞ   rW   rë   ré   r.   r   rI   rI   ±   s°  € € € € € ð
ð 
ð 
ð"ð ð ð.1ð 1ð 1ðfð ð ð$ð ð ð< 
ð  
ð  
ðDð ð ð**
ð *
ð *
ðXCð Cð Cð"ð ð ð<ð ð ð(ð ð ðð ð ð ð ð ð ð ð ð8ð ð ð"ð ð ð0ð ð ð"ð ð ðð ð ð(ð ð ð6ð ð ð ð ð ðð ð ð$$ð $ð $ðLð ð ð&ð ð ð ð r.   rI   c                   ó�   ‡ — e Zd 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ˆ xZS )ÚModelAdminChecksc                 ó–  •— g t          ¦   «                              |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|  	                    |¦  «        ¢|  
                    |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢S r2   )Úsuperr(   Ú_check_save_asÚ_check_save_on_topÚ_check_inlinesÚ_check_list_displayÚ_check_list_display_linksÚ_check_list_filterÚ_check_list_select_relatedÚ_check_list_per_pageÚ_check_list_max_show_allÚ_check_list_editableÚ_check_search_fieldsÚ_check_date_hierarchyÚ _check_action_permission_methodsÚ_check_actions_uniqueness)rX   rY   r*   rz   s      €r   r(   zModelAdminChecks.check$  ss  ø€ ð
Ý‰WŒW�]Š]˜9Ñ%Ô%ð
à× Ò  Ñ+Ô+ð
ð ×$Ò$ YÑ/Ô/ð
ð × Ò  Ñ+Ô+ð	
ð
 ×%Ò% iÑ0Ô0ð
ð ×+Ò+¨IÑ6Ô6ð
ð ×$Ò$ YÑ/Ô/ð
ð ×,Ò,¨YÑ7Ô7ð
ð ×&Ò& yÑ1Ô1ð
ð ×*Ò*¨9Ñ5Ô5ð
ð ×&Ò& yÑ1Ô1ð
ð ×&Ò& yÑ1Ô1ð
ð ×'Ò'¨	Ñ2Ô2ð
ð ×2Ò2°9Ñ=Ô=ð
ð ×+Ò+¨IÑ6Ô6ð
ð 	
r.   c                 ó`   — t          |j        t          ¦  «        st          dd|d¬¦  «        S g S )zCheck save_as is a boolean.ú	a booleanÚsave_asz
admin.E101r]   )r;   r  rË   rh   rk   s     r   rö   zModelAdminChecks._check_save_as7  s4   € õ ˜#œ+¥tÑ,Ô,ð 	Ý˜;¨y¸cÀlÐSÑSÔSÐSàˆIr.   c                 ó`   — t          |j        t          ¦  «        st          dd|d¬¦  «        S g S )zCheck save_on_top is a boolean.r  Úsave_on_topz
admin.E102r]   )r;   r  rË   rh   rk   s     r   r÷   z#ModelAdminChecks._check_save_on_top?  s4   € õ ˜#œ/­4Ñ0Ô0ð 	Ý˜;¨}À#È,ÐWÑWÔWÐWàˆIr.   c                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )z%Check all inline model admin classes.r[   Úinlinesz
admin.E103r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zinlines[%d]N)Ú_check_inlines_item©r4   rc   Úitemr_   rX   s      €€r   r5   z2ModelAdminChecks._check_inlines.<locals>.<genexpr>P  sR   øè è € ð $ð $á#˜˜tð ×,Ò,¨S°$¸ÈÑ8MÑNÔNð$ð $ð $ð $ð $ð $r.   )r;   r
  rf   rg   rh   r   ri   rj   rk   s   ``r   rø   zModelAdminChecks._check_inlinesG  s—   øø€ õ ˜#œ+­­e }Ñ5Ô5ð 
	ÝØ!¨)¸Àðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $å'0°´Ñ'=Ô'=ð$ñ $ô $ñ ô ñô ð r.   c                 óþ  — 	 |j         dz   |j        z   }n0# t          $ r# t          j        d|z  |j        d¬¦  «        gcY S w xY wddlm} t          ||¦  «        s t          j        d|z  |j        d¬¦  «        gS |j	        s t          j        d|z  |j        d¬¦  «        gS t          |j	        t          j        ¦  «        st          d	d
|z  |d¬¦  «        S  ||j	        |j        ¦  «                             ¦   «         S )zCheck one inline model admin.ú.z*'%s' must inherit from 'InlineModelAdmin'.z
admin.E104rn   r   )ÚInlineModelAdminz#'%s' must have a 'model' attribute.z
admin.E105za Modelz%s.modelz
admin.E106r]   )rð   r{   ÚAttributeErrorr
   r9   rz   rÇ   r  r   rq   r   ÚModelrh   rv   r(   )rX   r_   Úinliner~   Úinline_labelr  s         r   r  z$ModelAdminChecks._check_inlines_itemV  sa  € ð		Ø!Ô,¨sÑ2°V´_ÑDˆLˆLøÝð 	ð 	ð 	å”Ø@À3ÑFØœØ#ðñ ô ðð ð ð ð	øøøð 	BÐAÐAÐAÐAÐAå˜6Ð#3Ñ4Ô4ð 	=å”Ø@À<ÑOØœØ#ðñ ô ðð ð ”ð 	=å”Ø9¸LÑHØœØ#ðñ ô ðð õ ˜Vœ\­6¬<Ñ8Ô8ð 	=ÝØ *¨|Ñ";ÀÈðñ ô ð ð �6˜#œ) S¤^Ñ4Ô4×:Ò:Ñ<Ô<Ð<s   ‚ •*AÁAc                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )zBCheck that list_display only contains fields or usable attributes.r[   Úlist_displayz
admin.E107r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zlist_display[%d]N)Ú_check_list_display_itemr  s      €€r   r5   z7ModelAdminChecks._check_list_display.<locals>.<genexpr>…  sT   øè è € ð $ð $á#˜˜tð ×1Ò1°#°tÐ=OÐRWÑ=WÑXÔXð$ð $ð $ð $ð $ð $r.   )r;   r  rf   rg   rh   r   ri   rj   rk   s   ``r   rù   z$ModelAdminChecks._check_list_display|  s™   øø€ õ ˜#Ô*­Tµ5¨MÑ:Ô:ð 
	ÝØ!¨.¸cÀlðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $å'0°Ô1AÑ'BÔ'Bð$ñ $ô $ñ ô ñô ð r.   c                 óJ  — t          |¦  «        rg S t          ||¦  «        rg S 	 |j        j                             |¦  «        }n|# t
          $ ro 	 t          |j        |¦  «        }nU# t          $ rH t          j	        d|›d|›d|j
        j        ›d|j        j        j        ›d�	|j
        d¬¦  «        gcY cY S w xY wY nw xY wt          |dd	¦  «        r|j        s)|j        s"t          |d
d ¦  «        r2|j        j        j        r!t          j	        d|› d�|j
        d¬¦  «        gS g S )Nr    rÂ   rí   z!', or an attribute or method on 'rî   z
admin.E108rn   Úis_relationFÚrelz<' must not be a many-to-many field or a reverse foreign key.z
admin.E109)rÉ   rï   rq   rr   rs   r   Úgetattrr  r
   r9   rz   r{   r~   rt   Úone_to_manyr  rp   Úmany_to_one)rX   r_   r  r~   rp   s        r   r  z)ModelAdminChecks._check_list_display_item‹  s¨  € Ý�D‰>Œ>ð 	ØˆIÝ�S˜$ÑÔð 	ØˆIð	Ø”I”O×-Ò-¨dÑ3Ô3ˆEˆEøÝ ð 	ð 	ð 	ðÝ ¤	¨4Ñ0Ô0��øÝ!ð ð ð å”L�Lð
 "˜E˜EØ ˜D˜DØœMÔ2Ð2Ð2ØœIœOÔ1Ð1Ð1ðð  œMØ'ðñ ô ðð ð ð ð ð ðøøøð �ð	øøøõ( �E˜=¨%Ñ0Ô0ð	àÔ#ð	à',Ô'8ð	õ �e˜U DÑ)Ô)ð	ð /4¬i¬oÔ.Ið	õ
 ”ð, Uð ,ð ,ð ,àœØ#ð	ñ ô ðð ð ˆ	s6   ¥A Á
B>ÁA&Á%B>Á&AB8Â3B>Â7B8Â8B>Â=B>c                 ó6  ‡ ‡— ddl m} ‰j        €g S t          ‰j        t          t
          f¦  «        st          dd‰d¬¦  «        S ‰j        j        |j        u r@t	          t          j
        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S g S )	zACheck that list_display_links is a unique subset of list_display.r   )Ú
ModelAdminNza list, a tuple, or NoneÚlist_display_linksz
admin.E110r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zlist_display_links[%d]N)Ú_check_list_display_links_itemrb   s      €€r   r5   z=ModelAdminChecks._check_list_display_links.<locals>.<genexpr>Ã  sZ   øè è € ð $ð $ñ *˜˜zð ×7Ò7Ø˜ZÐ)AÀEÑ)Iñô ð$ð $ð $ð $ð $ð $r.   )rÇ   r!  r"  r;   rf   rg   rh   Úget_list_displayÚ__func__r   ri   rj   )rX   r_   r!  s   `` r   rú   z*ModelAdminChecks._check_list_display_links³  s×   øø€ à;Ð;Ð;Ð;Ð;Ð;àÔ!Ð)ØˆIÝ˜CÔ2µT½5°MÑBÔBð 	ÝØ*Ø+ØØð	ñ ô ð ð Ô!Ô*¨jÔ.IÐIÐIÝÝÔ#ð $ð $ð $ð $ð $õ .7°sÔ7MÑ-NÔ-Nð	$ñ $ô $ñ ô ñô ð ð ˆ	r.   c                 ó`   — ||j         vr$t          j        d|›d|›d�|j        d¬¦  «        gS g S )Nr    rÂ   z*', which is not defined in 'list_display'.z
admin.E111rn   )r  r
   r9   rz   rÚ   s       r   r$  z/ModelAdminChecks._check_list_display_links_itemÌ  sQ   € Ø˜SÔ-Ð-Ð-å”�à).¨¨°
°
°
ð<àœØ#ð	ñ ô ðð ð ˆIr.   c                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )Nr[   Úlist_filterz
admin.E112r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zlist_filter[%d]N)Ú_check_list_filter_itemr  s      €€r   r5   z6ModelAdminChecks._check_list_filter.<locals>.<genexpr>à  sT   øè è € ð $ð $á#˜˜tð ×0Ò0°°dÐ<MÐPUÑ<UÑVÔVð$ð $ð $ð $ð $ð $r.   )r;   r)  rf   rg   rh   r   ri   rj   rk   s   ``r   rû   z#ModelAdminChecks._check_list_filterÙ  s•   øø€ Ý˜#œ/­Dµ%¨=Ñ9Ô9ð 
	ÝØ!¨-¸SÀ\ðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $å'0°´Ñ'AÔ'Að$ñ $ô $ñ ô ñô ð r.   c                 óJ  — ddl m}m} t          |¦  «        rot	          |t
          j        ¦  «        sUt          ||¦  «        st          d||d¬¦  «        S t          ||¦  «        r t          j        d|z  |j        d¬¦  «        gS g S t	          |t          t          f¦  «        r-|\  }}t          ||¦  «        st          d	d
|z  |d¬¦  «        S g S |}	 t          |j        |¦  «         g S # t"          t$          f$ r' t          j        d|›d|›d�|j        d¬¦  «        gcY S w xY w)aG  
        Check one item of `list_filter`, i.e. check if it is one of three options:
        1. 'field' -- a basic field filter, possibly w/ relationships (e.g.
           'field__rel')
        2. ('field', SomeFieldListFilter) - a field-based list filter class
        3. SomeListFilter - a non-field list filter class
        r   )ÚFieldListFilterÚ
ListFilterr.  z
admin.E113r¬   z:The value of '%s' must not inherit from 'FieldListFilter'.z
admin.E114rn   r-  r˜   z
admin.E115r    rÂ   z#', which does not refer to a Field.z
admin.E116)Údjango.contrib.adminr-  r.  rÉ   r;   r   ÚFieldr   r®   r   r
   r9   rz   rg   rf   r	   rq   r   r   )rX   r_   r  r~   r-  r.  rp   Úlist_filter_classs           r   r+  z(ModelAdminChecks._check_list_filter_itemæ  sª  € ð 	EÐDÐDÐDÐDÐDÐDÐDå�D‰>Œ>ð /	¥*¨Tµ6´<Ñ"@Ô"@ð /	å˜t ZÑ0Ô0ð Ý(Ø'°¸3À<ðñ ô ð õ ˜D /Ñ2Ô2ð 
å”LØTØñ àœMØ'ð	ñ ô ðð ð �	Ý˜�u¥d˜mÑ,Ô,ð 	à'+Ñ$ˆEÐ$ÝÐ0°/ÑBÔBð Ý(Ø,Ø" U™?ØØ#ð	ñ ô ð ð �	ð ˆEðÝ$ S¤Y°Ñ6Ô6Ð6ð �	øõ %Õ&7Ð8ð ð ð å”L�Là$) E E¨5¨5¨5ð2àœMØ'ð	ñ ô ðð ð ð ðøøøs   ÃC* Ã*5D"Ä!D"c                 óz   — t          |j        t          t          t          f¦  «        st          dd|d¬¦  «        S g S )z?Check that list_select_related is a boolean, a list or a tuple.za boolean, tuple or listÚlist_select_relatedz
admin.E117r]   )r;   r3  rË   rf   rg   rh   rk   s     r   rü   z+ModelAdminChecks._check_list_select_related!  sJ   € õ ˜#Ô1µD½$ÅÐ3FÑGÔGð 	ÝØ*Ø,ØØð	ñ ô ð ð ˆIr.   c                 ó`   — t          |j        t          ¦  «        st          dd|d¬¦  «        S g S )z'Check that list_per_page is an integer.ú
an integerÚlist_per_pagez
admin.E118r]   )r;   r6  Úintrh   rk   s     r   rý   z%ModelAdminChecks._check_list_per_page.  s@   € õ ˜#Ô+­SÑ1Ô1ð 	ÝØ _¸#À,ðñ ô ð ð ˆIr.   c                 ó`   — t          |j        t          ¦  «        st          dd|d¬¦  «        S g S )z+Check that list_max_show_all is an integer.r5  Úlist_max_show_allz
admin.E119r]   )r;   r9  r7  rh   rk   s     r   rþ   z)ModelAdminChecks._check_list_max_show_all8  sA   € õ ˜#Ô/µÑ5Ô5ð 	ÝØÐ%8¸cÀlðñ ô ð ð ˆIr.   c                 óî   ‡ ‡— t          ‰j        t          t          f¦  «        st	          dd‰d¬¦  «        S t          t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        ¦  «        S )zjCheck that list_editable is a sequence of editable fields from
        list_display without first element.r[   Úlist_editablez
admin.E120r]   c              3   óR   •K  — | ]!\  }}‰                      ‰|d |z  ¦  «        V — Œ"dS )zlist_editable[%d]N)Ú_check_list_editable_itemr  s      €€r   r5   z8ModelAdminChecks._check_list_editable.<locals>.<genexpr>L  sZ   øè è € ð $ð $ñ $˜˜tð ×2Ò2Ø˜TÐ#6¸Ñ#>ñô ð$ð $ð $ð $ð $ð $r.   )r;   r;  rf   rg   rh   r   ri   rj   rk   s   ``r   rÿ   z%ModelAdminChecks._check_list_editableB  s›   øø€ õ ˜#Ô+­dµE¨]Ñ;Ô;ð 	ÝØ!¨/¸sÀ|ðñ ô ð õ ÝÔ#ð $ð $ð $ð $ð $õ (1°Ô1BÑ'CÔ'Cð	$ñ $ô $ñ ô ñô ð r.   c                 óF  — 	 |j         j                             |¦  «        }||j        vr$t	          j        d|›d|›d�|j        d¬¦  «        gS |j        r)||j        v r t	          j        d|z  |j        d¬¦  «        gS |j        d         |k    r=|j        s6|j        �/t	          j        d|›d	|j        d         ›d
�|j        d¬¦  «        gS |j        r|j	        r$t	          j        d|›d|›d�|j        d¬¦  «        gS g S # t          $ r t          |||d¬¦  «        cY S w xY w)Nr    rÂ   z,', which is not contained in 'list_display'.z
admin.E122rn   zMThe value of '%s' cannot be in both 'list_editable' and 'list_display_links'.z
admin.E123r   z0' refers to the first field in 'list_display' ('z<'), which cannot be used unless 'list_display_links' is set.z
admin.E124z+', which is not editable through the admin.z
admin.E125z
admin.E121ro   )rq   rr   rs   r  r
   r9   rz   r"  ÚeditableÚprimary_keyr   r}   r†   s        r   r=  z*ModelAdminChecks._check_list_editable_itemT  sÉ  € ð3	Ø”I”O×-Ò-¨jÑ9Ô9ˆEð  Ô!1Ð1Ð1å”L�Là:?¸%¸%ÀÀÀðMàœMØ'ð	ñ ô ðð ð Ô'ð #¨J¸#Ô:PÐ,PÐ,På”Lð0Ø2<ñ=àœMØ'ð	ñ ô ðð ð Ô  Ô# zÒ1Ð1ØÔ.ð 2àÔ*Ð6õ ”L�Lð #( % %¨Ô)9¸!Ô)<Ð)<Ð)<ð>ð  œMØ'ðñ ô ðð ð ”^ð 
 uÔ'8ð 
å”L�Là05°°°z°z°zðCàœMØ'ð	ñ ô ðð ð �	øõc !ð 	ð 	ð 	Ý)Ø ¨°C¸Lðñ ô ð ð ð ð	øøøs   ‚D  Ä D ÄD c                 ón   — t          |j        t          t          f¦  «        st	          dd|d¬¦  «        S g S )z"Check search_fields is a sequence.r[   ry   z
admin.E126r]   )r;   ry   rf   rg   rh   rk   s     r   r   z%ModelAdminChecks._check_search_fieldsŠ  sD   € õ ˜#Ô+­dµE¨]Ñ;Ô;ð 	ÝØ!¨/¸sÀ|ðñ ô ð ð ˆIr.   c                 ó$  — |j         €g S 	 t          |j        |j         ¦  «        d         }|                     ¦   «         dvrt	          dd|d¬¦  «        S g S # t
          t          f$ r( t          j        d|j         z  |j	        d	¬
¦  «        gcY S w xY w)z?Check that date_hierarchy refers to DateField or DateTimeField.Néÿÿÿÿ>   Ú	DateFieldrÒ   za DateField or DateTimeFieldÚdate_hierarchyz
admin.E128r]   zNThe value of 'date_hierarchy' refers to '%s', which does not refer to a Field.z
admin.E127rn   )
rE  r	   rq   Úget_internal_typerh   r   r   r
   r9   rz   )rX   r_   rp   s      r   r  z&ModelAdminChecks._check_date_hierarchy”  sØ   € ð ÔÐ%ØˆIðÝ,¨S¬Y¸Ô8JÑKÔKÈBÔO�ð ×*Ò*Ñ,Ô,Ð4RÐRÐRÝ"Ø6Ø/ØØ'ð	ñ ô ð ð �Iøõ% %Õ&7Ð8ð ð ð å”Lð5Ø7:Ô7IñJàœMØ'ð	ñ ô ðð ð ð ðøøøs   ‹ A Á6BÂBc                 ó2  — |                      ¦   «         }g }|D ]}\  }}}t          |d¦  «        sŒ|j        D ]^}d|z  }t          ||¦  «        sG|                     t	          j        |j        j        ›d|›d|j        ›d�|j        d¬¦  «        ¦  «         Œ_Œ~|S )z 
        Actions with an allowed_permission attribute require the ModelAdmin to
        implement a has_<perm>_permission() method for each permission.
        Úallowed_permissionszhas_%s_permissionz must define a z() method for the z action.z
admin.E129rn   )Ú_get_base_actionsrï   rH  r8   r
   r9   rz   r{   )	rX   r_   Úactionsr+   Úfuncr…   Ú_Ú
permissionÚmethod_names	            r   r  z1ModelAdminChecks._check_action_permission_methods°  sÙ   € ð
 ×'Ò'Ñ)Ô)ˆØˆØ$ð 	ð 	‰MˆD�$˜Ý˜4Ð!6Ñ7Ô7ð ØØ"Ô6ð ð �
Ø1°JÑ>�Ý˜s KÑ0Ô0ð Ø—M’MÝœð !$¤Ô 6Ð 6Ð 6Ø +  Ø $¤  ð	ð !$¤Ø+ð	ñ 	ô 	ñô ð øðð ˆr.   c           
      ó*  — g }t          j        d„ |                     ¦   «         D ¦   «         ¦  «        }|                     ¦   «         D ]K\  }}|dk    r@|                     t          j        d|j        j        ›d|›d�|j        d¬¦  «        ¦  «         ŒL|S )z.Check that every action has a unique __name__.c              3   ó"   K  — | ]
\  }}}|V — Œd S r2   ré   )r4   rL  r…   s      r   r5   z=ModelAdminChecks._check_actions_uniqueness.<locals>.<genexpr>Î  s(   è è € Ð#SÐ#S©Z¨Q°°a DÐ#SÐ#SÐ#SÐ#SÐ#SÐ#Sr.   r–   z*__name__ attributes of actions defined in z must be unique. Name z is not unique.z
admin.E130rn   )	ÚcollectionsÚCounterrI  rÀ   r8   r
   r9   rz   r{   )rX   r_   r+   Únamesr…   Úcounts         r   r  z*ModelAdminChecks._check_actions_uniquenessË  s°   € àˆÝÔ#Ð#SÐ#S¸3×;PÒ;PÑ;RÔ;RÐ#SÑ#SÔ#SÑSÔSˆØ Ÿ;š;™=œ=ð 	ð 	‰KˆD�%Ø�qŠyˆyØ—’Ý”L�Lð  œMÔ2Ð2Ð2Ø ˜D˜Dð	ð  œMØ'ð	ñ 	ô 	ñô ð øð ˆr.   )r{   rð   rñ   r(   rö   r÷   rø   r  rù   r  rú   r$  rû   r+  rü   rý   rþ   rÿ   r=  r   r  r  r  Ú__classcell__©rz   s   @r   ró   ró   #  sY  ø€ € € € € ð
ð 
ð 
ð 
ð 
ð&ð ð ðð ð ðð ð ð$=ð $=ð $=ðLð ð ð&ð &ð &ðPð ð ð2ð ð ðð ð ð9ð 9ð 9ðvð ð ðð ð ðð ð ðð ð ð$4ð 4ð 4ðlð ð ðð ð ð8ð ð ð6ð ð ð ð ð ð r.   ró   c                   óF   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚInlineModelAdminChecksc                 óX  •— |j         }g t          ¦   «                              |¦  «        ¢|                      ||¦  «        ¢|                      ||¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢|                      |¦  «        ¢S r2   )	Úparent_modelrõ   r(   Ú_check_relationÚ_check_exclude_of_parent_modelÚ_check_extraÚ_check_max_numÚ_check_min_numÚ_check_formset)rX   Ú
inline_objr*   rZ  rz   s       €r   r(   zInlineModelAdminChecks.checká  s¿   ø€ Ø!Ô.ˆð
Ý‰WŒW�]Š]˜:Ñ&Ô&ð
à×!Ò! *¨lÑ;Ô;ð
ð ×0Ò0°¸\ÑJÔJð
ð ×Ò˜zÑ*Ô*ð	
ð
 × Ò  Ñ,Ô,ð
ð × Ò  Ñ,Ô,ð
ð × Ò  Ñ,Ô,ð
ð 	
r.   c                 óN  •— t          ¦   «                              |¦  «        }|rg S |                      ||¦  «        rg S |j        €g S t	          ||j        |j        ¬¦  «        }|j        |j        v r3t          j	        d|j        ›d|j
        j        ›d�|j        d¬¦  «        gS g S )N©Úfk_namezCannot exclude the field 'z6', because it is the foreign key to the parent model 'rî   z
admin.E201rn   )rõ   rO   r[  r©   r   rq   rd  r…   r
   r9   rr   r~   rz   )rX   r_   rZ  r+   Úfkrz   s        €r   r\  z5InlineModelAdminChecks._check_exclude_of_parent_modelí  sÌ   ø€ õ ‘”×'Ò'¨Ñ,Ô,ˆØð 	ØˆIð ×Ò  \Ñ2Ô2ð 	ØˆIàŒ;ÐØˆIå˜l¨C¬I¸s¼{ÐKÑKÔKˆØŒ7�c”kÐ!Ð!å”�ð œ˜˜Ø$Ô*Ô0Ð0Ð0ð	ð œØ#ð	ñ 	ô 	ðð ð ˆIr.   c                 ó¾   — 	 t          ||j        |j        ¬¦  «         g S # t          $ r2}t	          j        |j        d         |j        d¬¦  «        gcY d }~S d }~ww xY w)Nrc  r   z
admin.E202rn   )r   rq   rd  Ú
ValueErrorr
   r9   Úargsrz   )rX   r_   rZ  Úes       r   r[  z&InlineModelAdminChecks._check_relation  s}   € ð	Ý˜\¨3¬9¸c¼kÐJÑJÔJÐJð ˆIøõ ð 	Qð 	Qð 	QÝ”L ¤¨¤°´À,ÐOÑOÔOÐPÐPÐPÐPÐPÐPÐPøøøøð	Qøøøs   ‚   
Aª'AÁAÁAc                 ó`   — t          |j        t          ¦  «        st          dd|d¬¦  «        S g S )zCheck that extra is an integer.r5  Úextraz
admin.E203r]   )r;   rk  r7  rh   rk   s     r   r]  z#InlineModelAdminChecks._check_extra  s4   € õ ˜#œ)¥SÑ)Ô)ð 	Ý˜<°¸SÀ\ÐRÑRÔRÐRàˆIr.   c                 ór   — |j         €g S t          |j         t          ¦  «        st          dd|d¬¦  «        S g S )z!Check that max_num is an integer.Nr5  Úmax_numz
admin.E204r]   )rm  r;   r7  rh   rk   s     r   r^  z%InlineModelAdminChecks._check_max_num  óA   € ð Œ;ÐØˆIÝ˜CœK­Ñ-Ô-ð 	Ý˜<°	¸sÀ|ÐTÑTÔTÐTàˆIr.   c                 ór   — |j         €g S t          |j         t          ¦  «        st          dd|d¬¦  «        S g S )z!Check that min_num is an integer.Nr5  Úmin_numz
admin.E205r]   )rp  r;   r7  rh   rk   s     r   r_  z%InlineModelAdminChecks._check_min_num&  rn  r.   c                 ó`   — t          |j        t          ¦  «        st          dd|d¬¦  «        S g S )z0Check formset is a subclass of BaseModelFormSet.r   Úformsetz
admin.E206r¬   )r   rr  r   r®   rk   s     r   r`  z%InlineModelAdminChecks._check_formset0  s@   € õ ˜3œ;Õ(8Ñ9Ô9ð 	Ý$Ø)°)ÀÈðñ ô ð ð ˆIr.   )r{   rð   rñ   r(   r\  r[  r]  r^  r_  r`  rU  rV  s   @r   rX  rX  à  sœ   ø€ € € € € ð

ð 

ð 

ð 

ð 

ðð ð ð ð ð>ð ð ðð ð ðð ð ðð ð ðð ð ð ð ð ð r.   rX  c                 óJ   — t          j        d|›d| ›d�|j        |¬¦  «        gS )Nr    z
' must be r  rn   ©r
   r9   rz   )r|   r^   r_   r0   s       r   rh   rh   ;  s:   € åŒˆØ/5¨v¨v°t°t°tÐ<Ø”Øð	
ñ 	
ô 	
ðð r.   c                 óJ   — t          j        d|›d| ›d�|j        |¬¦  «        gS )Nr    z' must inherit from 'rî   rn   rt  r¬   s       r   r®   r®   E  s:   € åŒˆØ;A¸6¸6À6À6À6ÐJØ”Øð	
ñ 	
ô 	
ðð r.   c           	      ón   — t          j        d|›d| ›d|j        j        j        ›d�|j        |¬¦  «        gS )Nr    rÂ   z', which is not a field of 'rî   rn   )r
   r9   rq   rr   r~   rz   ro   s       r   r}   r}   O  sK   € åŒˆàˆvˆv�u�u�u˜cœiœoÔ3Ð3Ð3ð5à”Øð		
ñ 	
ô 	
ðð r.   )+rQ  Ú	itertoolsr   Údjango.appsr   Údjango.confr   Údjango.contrib.admin.exceptionsr   Údjango.contrib.admin.utilsr   r   r	   Údjango.corer
   Údjango.core.exceptionsr   Ú	django.dbr   Údjango.db.models.constantsr   Údjango.db.models.expressionsr   Údjango.forms.modelsr   r   r   Údjango.templater   Údjango.template.backends.djangor   Údjango.utils.module_loadingr   r   r"   r-   rG   rI   ró   rX  rh   r®   r}   ré   r.   r   ú<module>r…     s5  ðØ Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ #Ð #Ð #Ð #Ð #Ð #Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ðð ð ð"ð ð ðvð vð vðro	ð o	ð o	ð o	ð o	ñ o	ô o	ð o	ðdzð zð zð zð zÐ+ñ zô zð zðzXð Xð Xð Xð XÐ1ñ Xô Xð Xðvð ð ðð ð ðð ð ð ð r.   