§
    ŸjdŠ ã                   ó”  — d dl Z d dl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d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZmZmZ d d
lmZmZmZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZE d dlFmGZG d dlHmIZI d dlJmKZK d dlLmMZMmNZN d dlOmPZQ  G d„ d¦  «        ZR eR¦   «         ZSd„ ZTd„ ZU G d „ d!eV¦  «        ZW G d"„ d#¦  «        ZX G d$„ d%¦  «        ZY G d&„ d'eDeW¬(¦  «        ZZd.d)„Z[d*„ Z\d+„ Z]d,„ Z^d-e^__        dS )/é    N)Údefaultdict)Úpartialmethod)Úchain)Úsync_to_async)Úapps)Úsettings)Úchecks)ÚNON_FIELD_ERRORSÚFieldDoesNotExistÚ
FieldErrorÚMultipleObjectsReturnedÚObjectDoesNotExistÚValidationError)ÚDJANGO_VERSION_PICKLE_KEYÚDatabaseErrorÚ
connectionÚconnectionsÚrouterÚtransaction)ÚNOT_PROVIDEDÚExpressionWrapperÚIntegerFieldÚMaxÚValue©Ú
LOOKUP_SEP)ÚCASCADEÚ	Collector)ÚDatabaseDefault)ÚCompositePrimaryKey)ÚForeignObjectRelÚOneToOneFieldÚlazy_related_operationÚresolve_relation)ÚCoalesce)ÚManager)ÚOptions)ÚFÚQ)Úclass_preparedÚ	post_initÚ	post_saveÚpre_initÚpre_save)Ú
AltersDataÚmake_model_tuple)ÚRemovedInDjango60Warning)Ú	force_str)Úmake_hashable)ÚcapfirstÚget_text_list)Úgettext_lazyc                   ó   — e Zd Zd„ Zd„ ZdS )ÚDeferredc                 ó   — dS ©Nz<Deferred field>© ©Úselfs    úb/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/django/db/models/base.pyÚ__repr__zDeferred.__repr__=   ó   € Ø!Ð!ó    c                 ó   — dS r:   r;   r<   s    r>   Ú__str__zDeferred.__str__@   r@   rA   N)Ú__name__Ú
__module__Ú__qualname__r?   rC   r;   rA   r>   r8   r8   <   s2   € € € € € ð"ð "ð "ð"ð "ð "ð "ð "rA   r8   c                 ó>   — t          | |||j        ›d| ›�dœ¦  «        S )zï
    Create exception subclass. Used by ModelBase below.

    The exception is created in a way that allows it to be pickled, assuming
    that the returned exception class will be added as an attribute to the
    'attached_to' class.
    ú.)rE   rF   )ÚtyperF   )ÚnameÚbasesÚmoduleÚattached_tos       r>   Úsubclass_exceptionrN   G   s<   € õ ØØà Ø'2Ô'?Ð'?Ð'?ÀÀÐFð	
ð 	
ñô ð rA   c                 óL   — t          j        | ¦  «         ot          | d¦  «        S )NÚcontribute_to_class)ÚinspectÚisclassÚhasattr)Úvalues    r>   Ú_has_contribute_to_classrU   Y   s%   € åŒ˜uÑ%Ô%Ð%ÐO­'°%Ð9NÑ*OÔ*OÐOrA   c                   óZ   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Z	ˆ xZ
S )Ú	ModelBasezMetaclass for all models.c                 ó°  •— t          ¦   «         j        }d„ |D ¦   «         }|s || |||¦  «        S |                     d¦  «        }d|i}|                     dd ¦  «        }	|	�|	|d<   |                     dd ¦  «        }
i }|                     ¦   «         D ]\  }}t	          |¦  «        r|||<   Œ|||<   Œ  || |||fi |¤Ž}t          |
dd¦  «        }|
pt          |dd ¦  «        }t          |dd ¦  «        }d }t          j        |¦  «        }t          |dd ¦  «        €"|€|st          d	|›d
|›d�¦  «        ‚n|j	        }| 
                    dt          ||¦  «        ¦  «         |s×| 
                    dt          dt          d„ |D ¦   «         ¦  «        pt          f||¬¦  «        ¦  «         | 
                    dt          dt          d„ |D ¦   «         ¦  «        pt          f||¬¦  «        ¦  «         |rI|j        sBt#          |d¦  «        s|j        |j        _        t#          |d¦  «        s|j        |j        _        |j        j        }|r#|r!|j        rt/          |›d|j        ›d�¦  «        ‚|                     ¦   «         D ]\  }}| 
                    ||¦  «         Œt1          |j        j        |j        j        |j        j        ¦  «        }d„ |D ¦   «         }|r°d }d„ |D ¦   «         D ]\}|j        j        r|j        j        rt/          d|z  ¦  «        ‚Œ-|€|}Œ2|j        j        |j        j        urt/          d|z  ¦  «        ‚Œ]|€t/          d|z  ¦  «        ‚|j                             |¦  «         |j        j        |j        _        n||j        _        i }t?          |g|z   ¦  «        D ]‚}t#          |d¦  «        sŒ||k    r|j        j        sŒ&|j        j        D ]O}tA          |tB          ¦  «        r8|j"        j#        r,tI          ||j"        j%        ¦  «        }||tM          |¦  «        <   ŒPŒƒtO          ¦   «         }| (                    ¦   «         D �]–}||vst#          |d¦  «        s| )                    |j*        ¦  «         Œ2|j        j        |j        j        z   }|j        j        sø|D ]H}|j+        |v r#tY          d|j+        ›d|›d|j-        ›d
�¦  «        ‚| .                    |j+        ¦  «         ŒI|j        j        }tM          |¦  «        }||v r	||         }nu|sqd|j        j/        z  }tC          |t`          |dd¬¦  «        }||v rtY          d |›d!|›d"|j-        ›d#�¦  «        ‚t#          ||¦  «        s| 
                    ||¦  «         nd }||j        j1        |<   n½|j        j1         2                    ¦   «         } |D ]}}|j+        |vrr|j+        |j*        vrd|j+        |vr[te          j3        |¦  «        }!| 
                    |j+        |!¦  «         |j4        r%|                      ¦   «         D ]\  }}"||"k    r|!| |<   ŒŒ~|j        j1         )                    | ¦  «         |j        j        D ]}}|j+        |v r0|j        j        s#tY          d|j+        ›d|›d|j-        ›d
�¦  «        ‚Œ;te          j3        |¦  «        }|j        j        sd|_5        | 
                    |j+        |¦  «         Œ~�Œ˜d$„ |j        j6        D ¦   «         |j        _6        |rd|
_        |
|_7        |S | 8                    ¦   «          |j        j         9                    |j        j:        |¦  «         |S )%Nc                 ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r;   )Ú
isinstancerW   )Ú.0Úbs     r>   ú
<listcomp>z%ModelBase.__new__.<locals>.<listcomp>f   s'   € Ð@Ð@Ð@˜¥z°!µYÑ'?Ô'?Ð@�1Ð@Ð@Ð@rA   rE   Ú__classcell__ÚMetaÚabstractFÚ_metaÚ	app_labelzModel class rH   zU doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.ÚDoesNotExistc              3   ó\   K  — | ]'}t          |d ¦  «        ¯|j        j        °|j        V — Œ(dS ©ra   N)rS   ra   r`   rc   ©r[   Úxs     r>   ú	<genexpr>z$ModelBase.__new__.<locals>.<genexpr>—   sW   è è € ð ð àÝ" 1 gÑ.Ô.ðð 89´wÔ7GðØœðð ð ð ð ð rA   )rM   r   c              3   ó\   K  — | ]'}t          |d ¦  «        ¯|j        j        °|j        V — Œ(dS re   )rS   ra   r`   r   rf   s     r>   rh   z$ModelBase.__new__.<locals>.<genexpr>¥   sX   è è € ð ð àÝ" 1 gÑ.Ô.ðð 89´wÔ7GðØÔ1ðð ð ð ð ð rA   ÚorderingÚget_latest_byz! cannot proxy the swapped model 'ú'.c                 ó   — h | ]	}|j         ’Œ
S r;   ©rJ   ©r[   Úfs     r>   ú	<setcomp>z$ModelBase.__new__.<locals>.<setcomp>Ì   s   € Ð2Ð2Ð2 !�q”vÐ2Ð2Ð2rA   c                 ó2   — g | ]}t          |d ¦  «        ¯|‘ŒS )ra   )rS   )r[   Úklss     r>   r]   z%ModelBase.__new__.<locals>.<listcomp>Ñ   s'   € ÐKÐKÐK 3µW¸SÀ'Ñ5JÔ5JÐK˜3ÐKÐKÐKrA   zOAbstract base class containing model fields not permitted for proxy model '%s'.zAProxy model '%s' has more than one non-abstract model base class.z6Proxy model '%s' has no non-abstract model base class.zLocal field z
 in class z5 clashes with field of the same name from base class z%s_ptrT)Ú	on_deleterJ   Úauto_createdÚparent_linkzAuto-generated field 'z' in class z for parent_link to base class z. clashes with declared field of the same name.c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r;   )ÚcopyÚdeepcopy)r[   Úidxs     r>   r]   z%ModelBase.__new__.<locals>.<listcomp>c  s/   € ð #
ð #
ð #
Ø#&�DŒM˜#ÑÔð#
ð #
ð #
rA   );ÚsuperÚ__new__ÚpopÚitemsrU   Úgetattrr   Úget_containing_app_configÚRuntimeErrorÚlabelÚadd_to_classr'   rN   Útupler   r   r`   rS   rj   ra   rk   ÚproxyÚswappedÚ	TypeErrorr   Úlocal_fieldsÚlocal_many_to_manyÚprivate_fieldsÚfieldsÚconcrete_modelÚsetup_proxyÚreversedrZ   r"   Úremote_fieldrv   r$   Úmodelr0   ÚsetÚmroÚupdateÚ__dict__rJ   r   rD   ÚaddÚ
model_namer   Úparentsrx   ry   Ú
one_to_oneÚmti_inheritedÚindexesr_   Ú_prepareÚregister_modelrb   )$ÚclsrJ   rK   ÚattrsÚkwargsÚ	super_newr—   rL   Ú	new_attrsÚ	classcellÚ	attr_metaÚcontributable_attrsÚobj_nameÚobjÚ	new_classr`   ÚmetaÚ	base_metarb   Ú
app_configÚis_proxyÚ
new_fieldsÚfield_namesÚbaseÚparentÚparent_linksÚfieldÚrelatedÚinherited_attributesÚparent_fieldsÚbase_keyÚ	attr_nameÚbase_parentsÚ	new_fieldrv   Ú	__class__s$                                      €r>   r|   zModelBase.__new__a   sg	  ø€ Ý‘G”G”Oˆ	ð AÐ@˜eÐ@Ñ@Ô@ˆØð 	6Ø�9˜S $¨¨uÑ5Ô5Ð5ð —’˜<Ñ(Ô(ˆØ! 6Ð*ˆ	Ø—I’I˜o¨tÑ4Ô4ˆ	ØÐ Ø)2ˆI�oÑ&Ø—I’I˜f dÑ+Ô+ˆ	ð !ÐØ"Ÿ[š[™]œ]ð 	*ð 	*‰MˆH�cÝ'¨Ñ,Ô,ð *Ø03Ð# HÑ-Ð-à&)�	˜(Ñ#Ð#Ø�I˜c 4¨°	ÐDÐD¸VÐDÐDˆ	å˜9 j°%Ñ8Ô8ˆØÐ<�G I¨v°tÑ<Ô<ˆÝ˜I w°Ñ5Ô5ˆ	àˆ	õ Ô3°FÑ;Ô;ˆ
å�4˜ dÑ+Ô+Ð3ØÐ!Øð Ý&˜,ð .4¨V¨V°T°T°Tð;ñô ð ðð 'Ô,�	à×Ò˜w­°°iÑ(@Ô(@ÑAÔAÐAØð $	LØ×"Ò"ØÝ"Ø"Ýð ð à!(ðñ ô ñ ô ð -õ
 +Ð,ØØ )ð
ñ 
ô 
ñô ð ð ×"Ò"Ø)Ý"Ø-Ýð ð à!(ðñ ô ñ ô ð 2õ
 0Ð1ØØ )ð
ñ 
ô 
ñô ð ð ð L Ô!3ð Lõ ˜t ZÑ0Ô0ð BØ/8Ô/A�I”OÔ,Ý˜t _Ñ5Ô5ð LØ4=Ô4K�I”OÔ1à”?Ô(ˆð ð 	˜	ð 	 iÔ&7ð 	ÝØ=A¸T¸TÀ9ÔCTÐCTÐCTÐUñô ð ð 1×6Ò6Ñ8Ô8ð 	2ð 	2‰MˆH�cØ×"Ò" 8¨SÑ1Ô1Ð1Ð1õ ØŒOÔ(ØŒOÔ.ØŒOÔ*ñ
ô 
ˆ
ð
 3Ð2 zÐ2Ñ2Ô2ˆð ð 	7ØˆDØKÐK¨'ÐKÑKÔKð ð �Ø”<Ô(ð !Ø”|Ô*ð !Ý'ð>Ø@DñEñô ð ð
 !Ø�<Ø!�D�DØ”\Ô0¸¼
Ô8QÐQÐQÝ#ð!Ø#'ñ(ñô ð ð Rð
 ˆ|ÝØLÈtÑSñô ð ð ŒO×'Ò'¨Ñ-Ô-Ð-Ø-1¬ZÔ-FˆIŒOÔ*Ð*à-6ˆIŒOÔ*ð ˆÝ˜i˜[¨7Ñ2Ñ3Ô3ð 	Dð 	DˆDå˜4 Ñ)Ô)ð Øà�yÒ Ð ¨¬Ô)<Ð ØàœÔ0ð Dð D�Ý˜e¥]Ñ3Ô3ð D¸Ô8JÔ8Vð DÝ.¨y¸%Ô:LÔ:RÑSÔS�GØ>C�LÕ!1°'Ñ!:Ô!:Ñ;øðDõ  #™uœuÐà—M’M‘O”Oð c	>ñ c	>ˆDØ˜7Ð"Ð"­'°$¸Ñ*@Ô*@Ð"ð %×+Ò+¨D¬MÑ:Ô:Ð:Øà œJÔ3°d´jÔ6SÑSˆMØ”:Ô&ð G=ð +ð =ð =�EØ”z [Ð0Ð0Ý(˜jð !&¤
 
 
Ø $  Ø $¤  ðñô ð ð -×0Ò0°´Ñ<Ô<Ð<Ð<ð ”zÔ0�Ý+¨DÑ1Ô1�Ø˜|Ð+Ð+Ø(¨Ô2�E�EØ!ð !Ø (¨4¬:Ô+@Ñ @�IÝ)ØÝ")Ø&Ø%)Ø$(ðñ ô �Eð ! KÐ/Ð/Ý(˜jð
 !* 	 	Ø $  Ø $¤  ðñ	ô 	ð 	õ # 9¨iÑ8Ô8ð AØ!×.Ò.¨y¸%Ñ@Ô@Ð@øà �EØ05�	”Ô'¨Ñ-Ð-à#œzÔ1×6Ò6Ñ8Ô8�ð +ð Eð E�Eàœ
¨+Ð5Ð5Ø!œJ¨iÔ.@Ð@Ð@Ø!œJÐ.BÐBÐBå$(¤M°%Ñ$8Ô$8˜	Ø!×.Ò.¨u¬z¸9ÑEÔEÐEð !Ô+ð EØ7C×7IÒ7IÑ7KÔ7Kð Eð EÑ 3 ¨Ø#(¨KÒ#7Ð#7Ø;D L°Ñ$8øøð ”Ô'×.Ò.¨|Ñ<Ô<Ð<ð œÔ2ð >ð >�Ø”: Ð,Ð,Øœ:Ô.ð 	Ý(˜jð !&¤
 
 
Ø $  Ø $¤  ðñô ð ð	õ !œM¨%Ñ0Ô0�EØœ:Ô.ð 3Ø.2˜Ô+Ø×*Ò*¨5¬:°uÑ=Ô=Ð=Ð=ñ!>ð(#
ð #
Ø*3¬/Ô*Að#
ñ #
ô #
ˆ	ŒÔð ð 	ð "'ˆIÔØ&ˆIŒNØÐà×ÒÑÔÐØŒÔ×+Ò+¨I¬OÔ,EÀyÑQÔQÐQØÐrA   c                 óv   — t          |¦  «        r|                     | |¦  «         d S t          | ||¦  «         d S ©N)rU   rP   Úsetattr)r�   rJ   rT   s      r>   rƒ   zModelBase.add_to_classs  sF   € Ý# EÑ*Ô*ð 	&Ø×%Ò% c¨4Ñ0Ô0Ð0Ð0Ð0å�C˜˜uÑ%Ô%Ð%Ð%Ð%rA   c                 óT  — | j         }|                     | ¦  «         |j        rkt          | j        d¬¦  «        | _        t          | j        d¬¦  «        | _        |j        j        r)|j        }|j        j        }t          t          | |¦  «         | j        €4| j        ›dd                     d„ |j        D ¦   «         ¦  «        ›d�| _        t          j                             |j        ¦  «        }|rt'          | d	|¦  «         |j        s`t+          d
„ |j        D ¦   «         ¦  «        rt-          d| j        z  ¦  «        ‚t/          ¦   «         }d|_        |                      d|¦  «         | j         j        D ]}|j        s|                     | ¦  «         Œt;          j        | ¬¦  «         dS )z7Create some methods once self._meta has been populated.T)Úis_nextFNú(ú, c              3   ó$   K  — | ]}|j         V — Œd S r»   rn   ro   s     r>   rh   z%ModelBase._prepare.<locals>.<genexpr>”  s$   è è € Ð6Ð6 Q˜!œ&Ð6Ð6Ð6Ð6Ð6Ð6rA   ú)Úget_absolute_urlc              3   ó,   K  — | ]}|j         d k    V — ŒdS )ÚobjectsNrn   ro   s     r>   rh   z%ModelBase._prepare.<locals>.<genexpr>ž  s)   è è € Ð<Ð<¨1�1”6˜YÒ&Ð<Ð<Ð<Ð<Ð<Ð<rA   zOModel %s must specify a custom Manager, because it has a field named 'objects'.rÅ   )Úsender)ra   r›   Úorder_with_respect_tor   Ú_get_next_or_previous_in_orderÚget_next_in_orderÚget_previous_in_orderr�   r�   r#   Úmake_foreign_order_accessorsÚ__doc__rD   Újoinr‹   r   ÚABSOLUTE_URL_OVERRIDESÚgetÚlabel_lowerr¼   ÚmanagersÚanyÚ
ValueErrorr&   ru   rƒ   rš   rJ   Úset_name_with_modelr*   Úsend)r�   ÚoptsÚwrtÚremoteÚget_absolute_url_overrideÚmanagerÚindexs          r>   r›   zModelBase._preparey  sä  € àŒyˆØ�Š�cÑÔÐàÔ%ð 	RÝ$1ØÔ2¸Dð%ñ %ô %ˆCÔ!õ )6ØÔ2¸Eð)ñ )ô )ˆCÔ%ð Ô)Ô6ð RØÔ0�ØÔ)Ô/�Ý&Õ'CÀSÈ&ÑQÔQÐQð Œ;Ðà”��Ø—	’	Ð6Ð6¨$¬+Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6ðˆCŒKõ
 %-Ô$C×$GÒ$GØÔñ%
ô %
Ð!ð %ð 	HÝ�CÐ+Ð-FÑGÔGÐGàŒ}ð 	1ÝÐ<Ð<°´Ð<Ñ<Ô<Ñ<Ô<ð Ý ð-Ø/2¬|ñ<ñô ð õ ‘i”iˆGØ#'ˆGÔ Ø×Ò˜Y¨Ñ0Ô0Ð0ð
 ”YÔ&ð 	/ð 	/ˆEØ”:ð /Ø×)Ò)¨#Ñ.Ô.Ð.øåÔ 3Ð'Ñ'Ô'Ð'Ð'Ð'rA   c                 ó   — | j         j        S r»   )ra   Úbase_manager©r�   s    r>   Ú_base_managerzModelBase._base_manager°  s   € àŒyÔ%Ð%rA   c                 ó   — | j         j        S r»   )ra   Údefault_managerrÞ   s    r>   Ú_default_managerzModelBase._default_manager´  s   € àŒyÔ(Ð(rA   )rD   rE   rF   rÌ   r|   rƒ   r›   Úpropertyrß   râ   r^   ©r¹   s   @r>   rW   rW   ^   s™   ø€ € € € € Ø#Ð#ðPð Pð Pð Pð Pðd&ð &ð &ð5(ð 5(ð 5(ðn ð&ð &ñ „Xð&ð ð)ð )ñ „Xð)ð )ð )ð )ð )rA   rW   c                   ó   — e Zd Zdd„ZdS )ÚModelStateFieldsCacheDescriptorNc                 ó    — |€| S i x}|_         |S r»   )Úfields_cache)r=   Úinstancer�   Úress       r>   Ú__get__z'ModelStateFieldsCacheDescriptor.__get__º  s   € ØÐØˆKØ&(Ð(ˆˆhÔ#Øˆ
rA   r»   )rD   rE   rF   rë   r;   rA   r>   ræ   ræ   ¹  s(   € € € € € ðð ð ð ð ð rA   ræ   c                   ó.   — e Zd ZdZdZdZ e¦   «         ZdS )Ú
ModelStatezStore model instance state.NT)rD   rE   rF   rÌ   ÚdbÚaddingræ   rè   r;   rA   r>   rí   rí   Á  s.   € € € € € Ø%Ð%à	€Bð
 €FØ2Ð2Ñ4Ô4€L€L€LrA   rí   c                   óÒ  ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ ZdGd„Zd„ Z eee¦  «        ZdGd„Zd„ ZdHd„ZdHd„Zd„ Zd„ Zddd
d
dœd„Zde_        ddd
d
dœd„Zde_        ed„ ¦   «         Z	 	 	 	 	 dId„Zde_        	 dGd„Z	 	 	 	 	 	 dJd„Zd„ Zd„ ZdGd„Z dKd„Z!de!_        dKd „Z"de"_        d!„ Z#d"„ Z$d#„ Z%dGd$„Z&d%„ Z'd&„ Z(dGd'„Z)dKd(„Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/dGd.„Z0dLd/„Z1dGd0„Z2ed1„ ¦   «         Z3ed2„ ¦   «         Z4ed3„ ¦   «         Z5ed4„ ¦   «         Z6ed5„ ¦   «         Z7ed6„ ¦   «         Z8ed7„ ¦   «         Z9ed8„ ¦   «         Z:ed9„ ¦   «         Z;ed:„ ¦   «         Z<ed;„ ¦   «         Z=ed<„ ¦   «         Z>ed=„ ¦   «         Z?ed>„ ¦   «         Z@ed?„ ¦   «         ZAed@„ ¦   «         ZBedA„ ¦   «         ZCedB„ ¦   «         ZDedC„ ¦   «         ZEedD„ ¦   «         ZFedE„ ¦   «         ZGedF„ ¦   «         ZHˆ xZIS )MÚModelc                 óÚ  •— | j         }| j        }t          }t          }|j        rt          d¦  «        ‚t          j        |||¬¦  «         t          ¦   «         | _	        t          |¦  «        t          |j        ¦  «        k    rt          d¦  «        ‚|sBt          |j        ¦  «        }t          ||¦  «        D ]\  }}	||u rŒ
 || |	j        |¦  «         Œn‡t          |j        ¦  «        }t          ||¦  «        D ]b\  }}	||u rŒ
 || |	j        |¦  «         |                     |	j        t&          ¦  «        t&          urt          |j        › d|	j        › d�¦  «        ‚Œc|D �]"}	d}
|	j        �|	j        rŒ|rÈt/          |	j        t2          ¦  «        rn	 |                     |	j        ¦  «        }d}
n¤# t4          $ rC 	 |                     |	j        ¦  «        }n$# t4          $ r |	                     ¦   «         }Y nw xY wY nXw xY w	 |                     |	j        ¦  «        }n8# t4          $ r |	                     ¦   «         }Y nw xY w|	                     ¦   «         }|
r||ur || |	j        |¦  «         �Œ||ur || |	j        |¦  «         �Œ$|r°|j        }d}|                     ¦   «         D ]X\  }}||v r||ur || ||¦  «         Œ	 |                     |¦  «         ||ur || ||¦  «         ŒC# t>          $ r	 ||fz  }Y ŒUw xY w|r8d	                      d
„ |D ¦   «         ¦  «        }t          |j!        › d|› �¦  «        ‚tE          ¦   «          #                    ¦   «          tI          j        || ¬¦  «         d S )Nz'Abstract models cannot be instantiated.)rÆ   ÚargsrŸ   z'Number of args exceeds number of fieldsz8() got both positional and keyword arguments for field 'rl   FTr;   rÀ   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r»   ©Úrepr)r[   Úns     r>   rh   z!Model.__init__.<locals>.<genexpr>8  s(   è è € Ð,IÐ,I¸­T°!©W¬WÐ,IÐ,IÐ,IÐ,IÐ,IÐ,IrA   z%() got unexpected keyword arguments: )rÆ   ré   )%r¹   ra   r¼   ÚDEFERREDr`   r‡   r-   rÕ   rí   Ú_stateÚlenÚconcrete_fieldsÚ
IndexErrorÚiterÚzipÚattnamer‹   r}   rJ   r   rF   ÚcolumnÚ	generatedrZ   r�   r!   ÚKeyErrorÚget_defaultÚ_property_namesr~   Ú	get_fieldr   rÍ   rD   r{   Ú__init__r+   )r=   ró   rŸ   r�   rÖ   Ú_setattrÚ	_DEFERREDÚfields_iterÚvalr±   Úis_related_objectÚrel_objÚproperty_namesÚ
unexpectedÚproprT   Úunexpected_namesr¹   s                    €r>   r  zModel.__init__Î  sb  ø€ àŒnˆØŒzˆÝˆÝˆ	ØŒ=ð 	GÝÐEÑFÔFÐFåŒ˜S t°FÐ;Ñ;Ô;Ð;õ !‘l”lˆŒõ ˆt‰9Œ9•s˜4Ô/Ñ0Ô0Ò0Ð0åÐFÑGÔGÐGàð 	Ý˜tÔ3Ñ4Ô4ˆKõ
 " $¨Ñ4Ô4ð 3ð 3‘
��UØ˜)Ð#Ð#ØØ�˜˜uœ}¨cÑ2Ô2Ð2Ð2ð3õ ˜tœ{Ñ+Ô+ˆKÝ! $¨Ñ4Ô4ð ð ‘
��UØ˜)Ð#Ð#ØØ�˜˜uœ}¨cÑ2Ô2Ð2Ø—:’:˜eœj­,Ñ7Ô7½|ÐKÐKÝ#ØÔ+ð Gð GØ8=¼
ðGð Gð Gñô ð ð Lð !ð &	7ñ &	7ˆEØ %ÐàŒ|Ð# u¤Ð#ØØð *Ý˜eÔ0Õ2BÑCÔCð 2ð	6à"(§*¢*¨U¬ZÑ"8Ô"8˜Ø,0Ð)Ð)øÝ#ð 6ð 6ð 6ð6à"(§*¢*¨U¬]Ñ";Ô";˜C˜CøÝ'ð 6ð 6ð 6Ø"'×"3Ò"3Ñ"5Ô"5˜C˜C˜Cð6øøøøøð	6øøøð2Ø$Ÿjšj¨¬Ñ7Ô7˜˜øÝ#ð 2ð 2ð 2ð
 $×/Ò/Ñ1Ô1˜˜˜ð2øøøð ×'Ò'Ñ)Ô)�à ð 	7ð
  )Ð+Ð+Ø�H˜T 5¤:¨wÑ7Ô7Ð7ùà˜iÐ'Ð'Ø�H˜T 5¤=°#Ñ6Ô6Ð6ùàð 	Ø!Ô1ˆNØˆJØ%Ÿ|š|™~œ~ð 8ð 8‘��eð ˜>Ð)Ð)Ø IÐ-Ð-Ø ˜  t¨UÑ3Ô3Ð3øð8ØŸš tÑ,Ô,Ð,ð !¨	Ð1Ð1Ø$˜H T¨4°Ñ7Ô7Ð7øøõ	 -ð .ð .ð .Ø" t gÑ-˜
˜
˜
ð.øøøð
 ð Ø#'§9¢9Ð,IÐ,I¸jÐ,IÑ,IÔ,IÑ#IÔ#IÐ ÝØ”|ð *ð *Ø'ð*ð *ñô ð õ 	‰Œ×ÒÑÔÐÝŒ˜c¨DÐ1Ñ1Ô1Ð1Ð1Ð1sZ   ÆF-Æ-
G:Æ8GÇG:ÇG4Ç1G:Ç3G4Ç4G:Ç9G:Ç>HÈH:È9H:Ê>K%Ë%K8Ë7K8c                 óè   ‡‡— t          |¦  «        t          | j        j        ¦  «        k    r(t          |¦  «        Šˆˆfd„| j        j        D ¦   «         } | |Ž }d|j        _        ||j        _        |S )Nc                 óN   •— g | ]!}|j         ‰v rt          ‰¦  «        nt          ‘Œ"S r;   )rÿ   Únextrø   )r[   rp   r­   Úvalues_iters     €€r>   r]   z!Model.from_db.<locals>.<listcomp>D  sB   ø€ ð ð ð àð &'¤Y°+Ð%=Ð%=•�[Ñ!Ô!Ð!Å8ðð ð rA   F)rú   ra   rû   rý   rù   rï   rî   )r�   rî   r­   ÚvaluesÚnewr  s     `  @r>   Úfrom_dbzModel.from_db@  s„   øø€ åˆv‰;Œ;�#˜cœiÔ7Ñ8Ô8Ò8Ð8Ý˜v™,œ,ˆKðð ð ð ð àœÔ2ðñ ô ˆFð ˆc�6ˆlˆØ!ˆŒ
ÔØˆŒ
ŒØˆ
rA   c                 ó(   — d| j         j        ›d| ›d�S )Nú<z: ú>)r¹   rD   r<   s    r>   r?   zModel.__repr__M  s   € € Ø!œ^Ô4Ð4Ð4°d°d°dÐ;Ð;rA   c                 ó0   — | j         j        ›d| j        ›d�S )Nz	 object (rÂ   )r¹   rD   Úpkr<   s    r>   rC   zModel.__str__P  s   € Ø#'¤>Ô#:Ð#:Ð#:¸D¼G¸G¸GÐDÐDrA   c                 ó¢   — t          |t          ¦  «        st          S | j        j        |j        j        k    rdS | j        }|€| |u S ||j        k    S ©NF)rZ   rñ   ÚNotImplementedra   rŒ   r  )r=   ÚotherÚmy_pks      r>   Ú__eq__zModel.__eq__S  sW   € Ý˜%¥Ñ'Ô'ð 	"Ý!Ð!ØŒ:Ô$¨¬Ô(BÒBÐBØ�5Ø”ˆØˆ=Ø˜5�=Ð Ø˜œÒ Ð rA   c                 óp   — |                       ¦   «         st          d¦  «        ‚t          | j        ¦  «        S )Nz8Model instances without primary key value are unhashable)Ú
_is_pk_setr‡   Úhashr  r<   s    r>   Ú__hash__zModel.__hash__]  s2   € Ø�ŠÑ Ô ð 	XÝÐVÑWÔWÐWÝ�D”G‰}Œ}ÐrA   c                 ó˜   — |                       ¦   «         }t          j        |t          <   | j        j        | j        j        f}t          |f|fS r»   )Ú__getstate__ÚdjangoÚ__version__r   ra   rb   Úobject_nameÚmodel_unpickle)r=   ÚdataÚclass_ids      r>   Ú
__reduce__zModel.__reduce__b  sD   € Ø× Ò Ñ"Ô"ˆÝ*0Ô*<ˆÕ&Ñ'Ø”:Ô'¨¬Ô)?Ð?ˆÝ ˜{¨DÐ0Ð0rA   c                 ó¸  — | j                              ¦   «         }t          j        |d         ¦  «        |d<   |d         j                             ¦   «         |d         _        g }|                     ¦   «         D ]>\  }}t	          |t
          ¦  «        r$|                     |t          |¦  «        f¦  «         Œ?|r"||d<   |D ]\  }}|                     |¦  «         Œ|S )z0Hook to allow choosing the attributes to pickle.rù   Ú_memoryview_attrs)	r”   rx   rè   r~   rZ   Ú
memoryviewÚappendÚbytesr}   )r=   Ústater1  ÚattrrT   s        r>   r(  zModel.__getstate__h  sÜ   € à”×"Ò"Ñ$Ô$ˆÝœ) E¨(¤OÑ4Ô4ˆˆh‰Ø',¨X¤Ô'C×'HÒ'HÑ'JÔ'JˆˆhŒÔ$ð ÐØ Ÿ;š;™=œ=ð 	?ð 	?‰KˆD�%Ý˜%¥Ñ,Ô,ð ?Ø!×(Ò(¨$µ°e±´Ð)=Ñ>Ô>Ð>øØð 	 Ø):ˆEÐ%Ñ&Ø0ð  ð  ‘��eØ—	’	˜$‘”��ØˆrA   c                 óˆ  — |                      t          ¦  «        }|r>|t          j        k    r-t	          j        d|›dt          j        ›d�t          d¬¦  «         nt	          j        dt          d¬¦  «         d|v r-|                     d¦  «        D ]\  }}t          |¦  «        ||<   Œ| j	         
                    |¦  «         d S )Nz(Pickled model instance's Django version z$ does not match the current version rH   é   ©Ú
stacklevelz9Pickled model instance's Django version is not specified.r1  )rÏ   r   r)  r*  ÚwarningsÚwarnÚRuntimeWarningr}   r2  r”   r“   )r=   r5  Úpickled_versionr6  rT   s        r>   Ú__setstate__zModel.__setstate__y  sç   € ØŸ)š)Õ$=Ñ>Ô>ˆØð 	Ø¥&Ô"4Ò4Ð4Ý”�ð '��­Ô(:Ð(:Ð(:ð<õ #Ø ðñ ô ð øõ ŒMØKÝØðñ ô ð ð
  %Ð'Ð'Ø$ŸyšyÐ)<Ñ=Ô=ð 0ð 0‘��eÝ(¨Ñ/Ô/��d‘�ØŒ×Ò˜UÑ#Ô#Ð#Ð#Ð#rA   Nc                 óH   — |p| j         }t          | |j        j        ¦  «        S r»   )ra   r   r  rÿ   )r=   r¨   s     r>   Ú_get_pk_valzModel._get_pk_val�  s"   € ØÐ!�t”zˆÝ�t˜TœWœ_Ñ-Ô-Ð-rA   c                 óÞ   — | j         j                             ¦   «         D ]/}|r+|| j         j        k    rt	          | |j        j        |¦  «         Œ0t	          | | j         j        j        |¦  «        S r»   )ra   r—   r  r  r¼   Útarget_fieldrÿ   )r=   rT   rv   s      r>   Ú_set_pk_valzModel._set_pk_val“  sm   € Øœ:Ô-×4Ò4Ñ6Ô6ð 	Gð 	GˆKØð G˜{¨d¬j¬mÒ;Ð;Ý˜˜kÔ6Ô>ÀÑFÔFÐFøÝ�t˜TœZœ]Ô2°EÑ:Ô:Ð:rA   c                 ó’   — |                       |¦  «        }|d u p-t          |t          ¦  «        ot          d„ |D ¦   «         ¦  «         S )Nc              3   ó   K  — | ]}|d u V — Œ	d S r»   r;   ro   s     r>   rh   z#Model._is_pk_set.<locals>.<genexpr>Ÿ  s&   è è € Ð1LÐ1LÀ°!°t°)Ð1LÐ1LÐ1LÐ1LÐ1LÐ1LrA   )rA  rZ   r„   rÒ   )r=   r¨   Úpk_vals      r>   r$  zModel._is_pk_set›  sU   € Ø×!Ò! $Ñ'Ô'ˆà�dˆNð NÝ˜6¥5Ñ)Ô)ÐL­cÐ1LÐ1LÀVÐ1LÑ1LÔ1LÑ.LÔ.Lð
ð 	
rA   c                 ó4   ‡ — ˆ fd„‰ j         j        D ¦   «         S )zU
        Return a set containing names of deferred fields for this instance.
        c                 ó:   •— h | ]}|j         ‰j        v¯|j         ’ŒS r;   )rÿ   r”   ©r[   rp   r=   s     €r>   rq   z,Model.get_deferred_fields.<locals>.<setcomp>¦  s4   ø€ ð 
ð 
ð 
àØŒy ¤Ð-Ð-ð ŒIà-Ð-Ð-rA   )ra   rû   r<   s   `r>   Úget_deferred_fieldszModel.get_deferred_fields¢  s3   ø€ ð
ð 
ð 
ð 
à”ZÔ/ð
ñ 
ô 
ð 	
rA   c           	      ób  ‡— |€i | _         n‡t          | dd¦  «        }t          |¦  «        }|                     ¦   «         D ]}||v r||= |                     |¦  «         Œ|sdS t          d„ |D ¦   «         ¦  «        rt          dt          z  ¦  «        ‚|€&d| i}| j        j	         
                    ||¬¦  «        }n|�|                     |¦  «        }|                     | j        ¬¦  «        }|                      ¦   «         Š|� |j        |Ž }n"‰r  |j        ˆfd	„| j        j        D ¦   «         Ž }|                     ¦   «         }|                     ¦   «         }	| j        j        D ]¥}|j        |	v rŒt)          | |j        t          ||j        ¦  «        ¦  «         |j        ri|                     |¦  «        r*|                     | |                     |¦  «        ¦  «         Œ{|                     | ¦  «        r|                     | ¦  «         Œ¦| j        j        D ]7}
|�	|
j        |v r*|
                     | ¦  «        r|
                     | ¦  «         Œ8| j        j        D ]>}|�	|j        |v r1|j        r*|                     | ¦  «        r|                     | ¦  «         Œ?|j        j        | j        _        dS )
aU  
        Reload field values from the database.

        By default, the reloading happens from the database this instance was
        loaded from, or by the read router if this instance wasn't loaded from
        any database. The using parameter will override the default.

        Fields can be used to specify which fields to reload. The fields
        should be an iterable of field attnames. If fields is None, then
        all non-deferred fields are reloaded.

        When accessing deferred fields of an instance, the deferred loading
        of the field will call this method.
        NÚ_prefetched_objects_cacher;   c              3   ó(   K  — | ]}t           |v V — Œd S r»   r   ro   s     r>   rh   z(Model.refresh_from_db.<locals>.<genexpr>Æ  s&   è è € Ð3Ð3 q•: �?Ð3Ð3Ð3Ð3Ð3Ð3rA   zRFound "%s" in fields argument. Relations and transforms are not allowed in fields.ré   )Úhints©r  c                 ó0   •— h | ]}|j         ‰v¯|j         ’ŒS r;   )rÿ   )r[   rp   Údeferred_fieldss     €r>   rq   z(Model.refresh_from_db.<locals>.<setcomp>Ú  s2   ø€ ð ð ð àØ”y¨Ð7Ð7ð ”Ià7Ð7Ð7rA   )rM  r   r‘   rx   ÚremoverÒ   rÓ   r   r¹   rß   Ú
db_managerÚusingÚfilterr  rK  Úonlyra   rû   rÏ   rÿ   r¼   Úis_relationÚ	is_cachedÚset_cached_valueÚget_cached_valueÚdelete_cached_valueÚrelated_objectsrJ   rŠ   rù   rî   )r=   rU  r‹   Úfrom_querysetÚprefetched_objects_cacher±   rO  Údb_instance_qsÚdb_instanceÚnon_loaded_fieldsÚrelrR  s              @r>   Úrefresh_from_dbzModel.refresh_from_db¬  s"  ø€ ð ˆ>Ø-/ˆDÔ*Ð*å'.¨tÐ5PÐRTÑ'UÔ'UÐ$Ý˜‘[”[ˆFØŸš™œð )ð )�ØÐ4Ð4Ð4Ø0°Ð7Ø—M’M %Ñ(Ô(Ð(øØð Ø�ÝÐ3Ð3¨FÐ3Ñ3Ô3Ñ3Ô3ð Ý ð1Ý3=ñ>ñô ð ð
 Ð Ø Ð&ˆEØ œNÔ8×CÒCÀEÐQVÐCÑWÔWˆMˆMØÐØ)×/Ò/°Ñ6Ô6ˆMà&×-Ò-°´Ð-Ñ9Ô9ˆð ×2Ò2Ñ4Ô4ˆØÐØ0˜^Ô0°&Ð9ˆNˆNØð 	Ø0˜^Ô0ðð ð ð à!œZÔ7ðñ ô ðˆNð %×(Ò(Ñ*Ô*ˆØ'×;Ò;Ñ=Ô=ÐØ”ZÔ/ð 
	4ð 
	4ˆEØŒ}Ð 1Ð1Ð1àÝ�D˜%œ-­°¸e¼mÑ)LÔ)LÑMÔMÐMàÔ ð 4Ø—?’? ;Ñ/Ô/ð 4Ø×*Ò*¨4°×1GÒ1GÈÑ1TÔ1TÑUÔUÐUÐUØ—_’_ TÑ*Ô*ð 4Ø×-Ò-¨dÑ3Ô3Ð3øð ”:Ô-ð 	.ð 	.ˆCØ� #¤(¨fÐ"4Ð"4¸#¿-º-ÈÑ:MÔ:MÐ"4Ø×'Ò'¨Ñ-Ô-Ð-øð ”ZÔ.ð 	0ð 	0ˆEà� 5¤:°Ð#7Ð#7ØÔ%ð $8à—O’O DÑ)Ô)ð $8ð ×)Ò)¨$Ñ/Ô/Ð/øà$Ô+Ô.ˆŒŒˆˆrA   c              ƒ   óR   K  —  t          | j        ¦  «        |||¬¦  «        ƒ d {V —†S )N)rU  r‹   r^  )r   rd  )r=   rU  r‹   r^  s       r>   Úarefresh_from_dbzModel.arefresh_from_dbÿ  sO   è è € Ø8•] 4Ô#7Ñ8Ô8Ø °mð
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rA   c                 ó¤   — 	 | j                              |¦  «        }n # t          $ r t          | |¦  «        cY S w xY wt          | |j        ¦  «        S )aÂ  
        Return the value of the field name for this instance. If the field is
        a foreign key, return the id value instead of the object. If there's
        no Field object with this name on the model, return the model
        attribute's value.

        Used to serialize a field's value (in the serializer, or form output,
        for example). Normally, you would just access the attribute directly
        and not use this method.
        )ra   r  r   r   rÿ   )r=   Ú
field_namer±   s      r>   Úserializable_valuezModel.serializable_value  sa   € ð	-Ø”J×(Ò(¨Ñ4Ô4ˆEˆEøÝ ð 	-ð 	-ð 	-Ý˜4 Ñ,Ô,Ð,Ð,Ð,ð	-øøøå�t˜Uœ]Ñ+Ô+Ð+s   ‚ �:¹:c          	      óF  ‡‡‡‡— ddd d dœŠt          j        d‰› d�t          d¬¦  «         t          ‰¦  «        dz   }t          ‰¦  «        dz   }||k    rt	          d‰› d	|› d
|› d�¦  «        ‚ˆˆˆfd„Šˆfd„t          |                     ¦   «         ¦  «        D ¦   «         S )NF©Úforce_insertÚforce_updaterU  Úupdate_fieldsz Passing positional arguments to z() is deprecatedé   r9  é   úModel.z() takes from 1 to z positional arguments but z were givenc                 ó~   •— |t          ‰¦  «        k     r(|‰|          urt          d‰› d| › d�¦  «        ‚‰|         S |S )Nrq  z%() got multiple values for argument 'ú')rú   r‡   )Ú
param_nameÚparam_valueÚ	arg_indexró   ÚdefaultsÚmethod_names      €€€r>   Ú	get_paramz+Model._parse_save_params.<locals>.get_param,  sk   ø€ Ø�3˜t™9œ9Ò$Ð$Ø h¨zÔ&:Ð:Ð:å#ð* ð *ð *Ø&ð*ð *ð *ñô ð ð ˜I”Ð&àÐrA   c                 ó6   •— g | ]\  }\  }} ‰|||¦  «        ‘ŒS r;   r;   )r[   ÚiÚkÚvry  s       €r>   r]   z,Model._parse_save_params.<locals>.<listcomp>8  s/   ø€ ÐNÐNÐN¡y q©&¨1¨a�	�	˜!˜Q Ñ"Ô"ÐNÐNÐNrA   )r;  r<  r1   rú   r‡   Ú	enumerater~   )r=   rx  ró   rŸ   Útotal_len_argsÚmax_len_argsrw  ry  s    ``   @@r>   Ú_parse_save_paramszModel._parse_save_params  s
  øøøø€ à!Ø!ØØ!ð	
ð 
ˆõ 	ŒØL¨{ÐLÐLÐLÝ$Øð	
ñ 	
ô 	
ð 	
õ
 ˜T™œ Q™ˆÝ˜8‘}”} qÑ(ˆØ˜LÒ(Ð(åð=˜ð =ð =¸ð =ð =Ø!/ð=ð =ð =ñô ð ð

	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð OÐNÐNÐNµI¸f¿lºl¹n¼nÑ4MÔ4MÐNÑNÔNÐNrA   Frk  c          	      ó  ‡ — |r ‰ j         |d||||dœŽ\  }}}}‰                      d¬¦  «         |pt          j        ‰ j        ‰ ¬¦  «        }|r|s|rt          d¦  «        ‚ˆ fd„‰ j        j        D ¦   «         }|�\|sdS t          |¦  «        }‰ j        j	        }| 
                    |¦  «        }|r%t          dd	                     |¦  «        z  ¦  «        ‚n‘|s�|r�|‰ j        j        k    r}t          ¦   «         }‰ j        j        }	‰ j        j        D ]0}
|
|	vr*t!          |
d
¦  «        s|                     |
j        ¦  «         Œ1| 
                    |¦  «        }|rt          |¦  «        }‰                      ||||¬¦  «         dS )aa  
        Save the current instance. Override this in a subclass if you want to
        control the saving process.

        The 'force_insert' and 'force_update' parameters can be used to insist
        that the "save" must be an SQL insert or update (or equivalent for
        non-SQL backends), respectively. Normally, they should not be set.
        Úsave©rx  rl  rm  rU  rn  )Úoperation_name©ré   z6Cannot force both insert and updating in model saving.c                 óL   •— h | ] }|j         ‰j        v¯|j        d u ¯|j         ’Œ!S )F)rÿ   r”   r  rJ  s     €r>   rq   zModel.save.<locals>.<setcomp>_  s@   ø€ ð )
ð )
ð )
àØŒy ¤Ð-Ð-°!´+ÀÐ2FÐ2Fð ŒIà2FÐ2FÐ2FrA   NzmThe following fields do not exist in this model, are m2m fields, primary keys, or are non-concrete fields: %srÀ   Úthrough)rU  rl  rm  rn  )r�  Ú _prepare_related_fields_for_saver   Údb_for_writer¹   rÓ   ra   rû   Ú	frozensetÚ_non_pk_concrete_field_namesÚ
differencerÍ   rù   rî   r‘   Ú	pk_fieldsrS   r•   rÿ   Ú	save_base)r=   rl  rm  rU  rn  ró   Údeferred_non_generated_fieldsr­   Únot_updatable_fieldsrŽ  r±   Úloaded_fieldss   `           r>   rƒ  z
Model.save>  s  ø€ ð" ð 	Ø?V¸tÔ?VØØ"Ø)Ø)ØØ+ð@ð @ð @Ñ<ˆL˜,¨¨}ð 	×-Ò-¸VÐ-ÑDÔDÐDàÐK�Ô,¨T¬^ÀdÐKÑKÔKˆØð 	W˜\ð 	W¨]ð 	WÝÐUÑVÔVÐVð)
ð )
ð )
ð )
à”ZÔ/ð)
ñ )
ô )
Ð%ð
 Ð$ð !ð Ø�å% mÑ4Ô4ˆMØœ*ÔAˆKØ#0×#;Ò#;¸KÑ#HÔ#HÐ à#ð Ý ðKà—i’iÐ 4Ñ5Ô5ñ6ñô ð ðð ð	9à-ð	9ð ˜œœÒ'Ð'å™%œ%ˆKØœ
Ô,ˆIØœÔ3ð 3ð 3�Ø 	Ð)Ð)µ'¸%ÀÑ2KÔ2KÐ)Ø—O’O E¤MÑ2Ô2Ð2øØ'×2Ò2Ð3PÑQÔQˆMØð 9Ý )¨-Ñ 8Ô 8�à�ŠØØ%Ø%Ø'ð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
rA   Tc          	   ‡   ó„   K  — |r | j         |d||||dœŽ\  }}}} t          | j        ¦  «        ||||¬¦  «        ƒ d {V —†S )NÚasaver„  rk  )r�  r   rƒ  )r=   rl  rm  rU  rn  ró   s         r>   r”  zModel.asave“  s–   è è € ð ð 	Ø?V¸tÔ?VØØ#Ø)Ø)ØØ+ð@ð @ð @Ñ<ˆL˜,¨¨}ð .•] 4¤9Ñ-Ô-Ø%Ø%ØØ'ð	
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rA   c                 ó"  — |du rdS |du r| fS t          |t          ¦  «        st          d¦  «        ‚|D ]Z}t          |t          ¦  «        st          d|›d�¦  «        ‚t	          | |¦  «        s t          d|j        › d| j        › d�¦  «        ‚Œ[|S )	NFr;   Tz%force_insert must be a bool or tuple.zInvalid force_insert member. z must be a model subclass.z must be a base of rH   )rZ   r„   r‡   rW   Ú
issubclassrF   )r�   rl  Úmembers      r>   Ú_validate_force_insertzModel._validate_force_insert®  sã   € à˜5Ð Ð Ø�2Ø˜4ÐÐØ�6ˆMÝ˜,­Ñ.Ô.ð 	EÝÐCÑDÔDÐDØ"ð 		ð 		ˆFÝ˜f¥iÑ0Ô0ð ÝØX°FÐXÐXÐXñô ð õ ˜c 6Ñ*Ô*ð Ýð3°FÔ4Gð 3ð 3Ø"Ô/ð3ð 3ð 3ñô ð ðð
 ÐrA   c           	      ó˜  — |pt          j        | j        | ¬¦  «        }|r|s|rJ ‚|�|sJ ‚| j        x}}|j        j        r|j        j        }|j        }|j        st          j        || |||¬¦  «         |j	        rt          j        |d¬¦  «        }	nt          j        |¬¦  «        }	|	5  d}
|s-|                      |¦  «        }|                      ||||¦  «        }
|                      |||p|
|||¦  «        }ddd¦  «         n# 1 swxY w Y   || j        _        d| j        _        |j        st'          j        || | |||¬¦  «         dS dS )av  
        Handle the parts of saving which should be done only once per save,
        yet need to be done in raw saves, too. This includes some sanity
        checks and signal sending.

        The 'raw' argument is telling save_base not to save any parent
        models and not to do any changes to the values before save. This
        is used by fixture loading.
        r†  N)rÆ   ré   ÚrawrU  rn  F)rU  Ú	savepoint)rU  )rÆ   ré   Úcreatedrn  rš  rU  )r   rŠ  r¹   ra   r…   rŒ   ru   r.   rÕ   r—   r   ÚatomicÚmark_for_rollback_on_errorr˜  Ú_save_parentsÚ_save_tablerù   rî   rï   r,   )r=   rš  rl  rm  rU  rn  r�   Úoriginr¨   Úcontext_managerÚparent_insertedÚupdateds               r>   r�  zModel.save_baseÂ  s  € ð" ÐK�Ô,¨T¬^ÀdÐKÑKÔKˆØ ÐE lÐE°mÐEÐEÐEØÐ$¨Ð$Ð$Ð$Ø”~Ð%ˆˆfàŒ9Œ?ð 	+Ø”)Ô*ˆCØŒyˆØÔ ð 	ÝŒMØØØØØ+ðñ ô ð ð Œ<ð 	RÝ)Ô0°uÈÐNÑNÔNˆOˆOå)ÔDÈ5ÐQÑQÔQˆOØð 	ð 	Ø#ˆOØð à#×:Ò:¸<ÑHÔH�Ø"&×"4Ò"4Ø˜ ¨|ñ#ô #�ð ×&Ò&ØØØÐ/ ØØØñô ˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð" ˆŒŒà"ˆŒÔð Ô ð 	ÝŒNØØØ$˜Ø+ØØðñ ô ð ð ð ð	ð 	s   Â)ADÄDÄ
Dc           
      ó¸  — |j         }d}|€i }|j                             ¦   «         D �]1\  }}	|	rgt          | |j         j        j        ¦  «        €Ht          | |	j        ¦  «        �3t          | |j         j        j        t          | |	j        ¦  «        ¦  «         |                     |¦  «        x}
€M|                      |||||¬¦  «        }|  	                    ||||pt          ||¦  «        ¬¦  «        }|sd}|||<   n|
sd}|	rXt          | |	j        |                      |j         ¦  «        ¦  «         |	                     | ¦  «        r|	                     | ¦  «         �Œ3|S )z3Save all the parents of cls using values from self.FN)r�   rU  rn  rl  Úupdated_parents)r�   rU  rn  rl  T)ra   r—   r~   r   r  rÿ   r¼   rÏ   rŸ  r   r–  rA  rY  r\  )r=   r�   rU  rn  rl  r¦  r¨   Úinsertedr¯   r±   Úparent_updatedr£  r¤  s                r>   rŸ  zModel._save_parents
  s“  € ð ŒyˆØˆØÐ"Ø ˆOØ!œ\×/Ò/Ñ1Ô1ð $	4ñ $	4‰MˆF�Eð ðUå˜D &¤,¤/Ô"9Ñ:Ô:ÐBÝ˜D %¤-Ñ0Ô0Ð<å˜˜fœlœoÔ5µw¸tÀUÄ]Ñ7SÔ7SÑTÔTÐTØ"1×"5Ò"5°fÑ"=Ô"=Ð=�ÐFØ"&×"4Ò"4ØØØ"/Ø!-Ø$3ð #5ñ #ô #�ð ×*Ò*ØØØ"/Ø!0Ð!TµJ¸vÀ|Ñ4TÔ4Tð	 +ñ ô �ð ð $Ø#�HØ*1� Ñ'Ð'Ø#ð  Ø�àð 4Ý˜˜eœm¨T×-=Ò-=¸f¼lÑ-KÔ-KÑLÔLÐLð —?’? 4Ñ(Ô(ð 4Ø×-Ò-¨dÑ3Ô3Ð3ùØˆrA   c           
      ó$  ‡ ‡‡‡‡‡— |j         Š‰j        Šˆfd„‰j        D ¦   «         }‰rˆfd„|D ¦   «         }‰                      ‰¦  «        s5‰j                             ‰ ¦  «        }t          ‰ ‰j        j        |¦  «         ‰                      ‰¦  «        Š‰s|s‰rt          d¦  «        ‚d}	‰s0|s.|s,‰ j	        j
        r t          d„ ‰j        D ¦   «         ¦  «        rd}‰r„|s‚|j                             |¦  «        }
ˆˆ fd„|D ¦   «         }‰p|}‰                      ‰¦  «        }‰                      |
|||‰|¦  «        }	|r|	st!          d¦  «        ‚‰r|	st!          d	¦  «        ‚|	�s'‰j        r³‰j        }|                     ‰ ¦  «        } |j                             |¦  «        j        di |¤Ž                     t+          t-          t/          d
¦  «        t1          d¦  «        z   t3          ¦   «         ¬¦  «        t1          d¦  «        ¦  «        ¬¦  «        d         ‰ _        ˆˆfd„‰j        D ¦   «         }‰j        }‰                      |j        |||‰¦  «        }|r2t;          |d         |¦  «        D ]\  }}t          ‰ |j        |¦  «         Œ|	S )zp
        Do the heavy-lifting involved in saving. Update or insert the data
        for a single table.
        c                 ó*   •— g | ]}|‰v¯|j         °|‘ŒS r;   )r  )r[   rp   rŽ  s     €r>   r]   z%Model._save_table.<locals>.<listcomp>H  s5   ø€ ð !
ð !
ð !
àØ˜	Ð!Ð!¨!¬+Ð!ð à!Ð!Ð!rA   c                 ó8   •— g | ]}|j         ‰v s	|j        ‰v ¯|‘ŒS r;   )rJ   rÿ   )r[   rp   rn  s     €r>   r]   z%Model._save_table.<locals>.<listcomp>O  s<   ø€ ð %ð %ð %àØ”6˜]Ð*Ð*¨a¬i¸=Ð.HÐ.Hð à.HÐ.HÐ.HrA   z5Cannot force an update in save() with no primary key.Fc              3   óf   K  — | ],}|                      ¦   «         p|                     ¦   «         V — Œ-d S r»   )Úhas_defaultÚhas_db_defaultro   s     r>   rh   z$Model._save_table.<locals>.<genexpr>b  s;   è è € ÐRÐR¸a�A—M’M‘O”OÐ9 q×'7Ò'7Ñ'9Ô'9ÐRÐRÐRÐRÐRÐRrA   Tc                 óp   •— g | ]2}|d ‰rt          ‰|j        ¦  «        n|                     ‰d¦  «        f‘Œ3S r  )r   rÿ   r.   )r[   rp   rš  r=   s     €€r>   r]   z%Model._save_table.<locals>.<listcomp>h  sZ   ø€ ð ð ð ð ð	 ØØ14ÐQ•W˜T 1¤9Ñ-Ô-Ð-¸!¿*º*ÀTÈ5Ñ:QÔ:Qððð ð rA   z&Forced update did not affect any rows.z0Save with update_fields did not affect any rows.Ú_orderrp  )Úoutput_fieldr   )Ú_order__maxr²  c                 ó8   •— g | ]}|j         s‰s	|‰j        u¯|‘ŒS r;   )r  Ú
auto_field)r[   rp   r¨   Úpk_sets     €€r>   r]   z%Model._save_table.<locals>.<listcomp>‹  sF   ø€ ð ð ð àØ”{ðð )/ðð 34¸4¼?Ð2JÐ2Jð à2JÐ2JÐ2JrA   r;   )ra   rŽ  Úlocal_concrete_fieldsr$  r  Úget_pk_value_on_saver¼   rÿ   rÓ   rù   rï   Úallrß   rU  rA  Ú
_do_updater   rÇ   Úget_filter_kwargs_for_objectrV  Ú	aggregater%   r   r   r   r   r°  Údb_returning_fieldsÚ
_do_insertrþ   )r=   rš  r�   rl  rm  rU  rn  Únon_pks_non_generatedrG  r¤  Úbase_qsr  Úforced_updater±   Úfilter_argsr‹   Úreturning_fieldsÚresultsrT   r¨   rŽ  rµ  s   ``    `            @@@r>   r   zModel._save_table9  s’  øøøøøø€ ð ŒyˆØ”Nˆ	ð!
ð !
ð !
ð !
àÔ/ð!
ñ !
ô !
Ðð ð 	ð%ð %ð %ð %à.ð%ñ %ô %Ð!ð �Š˜tÑ$Ô$ð 	3Ø”W×1Ò1°$Ñ7Ô7ˆFÝ�D˜$œ'œ/¨6Ñ2Ô2Ð2Ø—’ Ñ&Ô&ˆØð 	V˜<ð 	V¨=ð 	VÝÐTÑUÔUÐUØˆð ð	 à ð	 ð !ð	 ð ”Ô"ð		 õ
 ÐRÐRÀ4Ä>ÐRÑRÔRÑRÔRð	 ð  ˆLàð 	X˜,ð 	XØÔ'×-Ò-¨eÑ4Ô4ˆGðð ð ð ð ð /ðñ ô ˆFð *Ð9¨\ˆMØ×%Ò% dÑ+Ô+ˆFØ—o’oØ˜ ¨°¸}ñô ˆGð ð N Gð NÝ#Ð$LÑMÔMÐMØð X Wð XÝ#Ð$VÑWÔWÐWØñ 	8ØÔ)ð ð Ô2�Ø#×@Ò@ÀÑFÔF�ð�CÔ%×+Ò+¨EÑ2Ô2Üð+ð +Ø)ð+ð +ç’YÝ$,Ý-Ý # H¡¤µ°a±´Ñ 8Å|Á~Ä~ðñ ô õ " !™HœHñ	%ô %ð ñ ô ð $ô	%ð ”ðð ð ð ð àÔ3ðñ ô ˆFð
  $Ô7ÐØ—o’oØÔ! 5¨&Ð2BÀCñô ˆGð ð 8Ý$'¨°¬
Ð4DÑ$EÔ$Eð 8ð 8‘L�E˜5Ý˜D %¤-°Ñ7Ô7Ð7Ð7ØˆrA   c                 ó2  — |                      |¬¦  «        }|s|dup|                     ¦   «         S | j        j        rC|sA|                     ¦   «         o,|                     |¦  «        dk    p|                     ¦   «         S |                     |¦  «        dk    S )z�
        Try to update the model. Return True if the model was updated (if an
        update query was done and a matching row was found in the DB).
        rP  Nr   )rV  Úexistsra   Úselect_on_saveÚ_update)r=   r¿  rU  rG  r  rn  rÀ  Úfiltereds           r>   r¹  zModel._do_update™  sª   € ð
 —>’> V�>Ñ,Ô,ˆØð 	Bð !¨Ð,ÐA°·²Ñ0AÔ0AÐAØŒ:Ô$ð 	¨]ð 	à—’Ñ!Ô!ð 	Dð ×!Ò! &Ñ)Ô)¨AÒ-ÐB°·²Ñ1BÔ1Bðð ×Ò Ñ'Ô'¨!Ò+Ð+rA   c                 ó8   — |                      | g||||¬¦  «        S )z‹
        Do an INSERT. If returning_fields is defined then this method should
        return the newly created data for the model.
        )r‹   rÂ  rU  rš  )Ú_insert)r=   rÚ   rU  r‹   rÂ  rš  s         r>   r½  zModel._do_insertµ  s0   € ð
 �ŠØˆFØØ-ØØð ñ 
ô 
ð 	
rA   c                 óJ  — | j         j        D �]}|r||vrŒ
|j        rú|                     | ¦  «        råt	          | |j        d ¦  «        }|sŒ?|                     ¦   «         s@|j        j        s|j         	                    |¦  «         t          |›d|j        ›d�¦  «        ‚t	          | |j        ¦  «        |j        v rt          | |j        |¦  «         t	          ||j        j        ¦  «        t	          | |j        ¦  «        k    r| 	                    | ¦  «         �Œ| j         j        D ]|}|r||vrŒ	|j        rl|                     | ¦  «        rWt!          |d¦  «        rG|                     | d ¬¦  «        }|r.|                     ¦   «         st          |› d|j        › d�¦  «        ‚Œ}d S )NzB() prohibited to prevent data loss due to unsaved related object 'rl   Úfk_field)Údefault)ra   rû   rX  rY  r   rJ   r$  r�   Úmultipler\  rÓ   rÿ   Úempty_valuesr¼   rC  rŠ   rS   r[  )r=   r…  r‹   r±   r¦   s        r>   r‰  z&Model._prepare_related_fields_for_saveÂ  s  € ð
 ”ZÔ/ð  	4ñ  	4ˆEØð ˜% vÐ-Ð-Øð Ô ð 4 U§_¢_°TÑ%:Ô%:ð 4Ý˜d E¤J°Ñ5Ô5�Øð Øð —~’~Ñ'Ô'ð 3à Ô-Ô6ð DØÔ*×>Ò>¸sÑCÔCÐCÝ$à2@°.°.À%Ä*À*À*ðNñô ð õ ˜T 5¤=Ñ1Ô1°UÔ5GÐGÐGõ ˜D %¤*¨cÑ2Ô2Ð2õ ˜3 Ô 2Ô :Ñ;Ô;½wØ˜%œ-ñ@ô @ò ð ð ×-Ò-¨dÑ3Ô3Ð3ùà”ZÔ.ð 	ð 	ˆEØð ˜% vÐ-Ð-ØàÔ!ð
à—O’O DÑ)Ô)ð
õ ˜E :Ñ.Ô.ð
ð
 ×,Ò,¨T¸4Ð,Ñ@Ô@�Øð ˜sŸ~š~Ñ/Ô/ð Ý$Ø)ð Bð BØ38´:ðBð Bð Bñô ð øð	ð 	rA   c                 ó:  — |                       ¦   «         s.t          | j        j        ›d| j        j        j        ›d�¦  «        ‚|pt          j        | j        | ¬¦  «        }t          || ¬¦  «        }| 
                    | g|¬¦  «         |                     ¦   «         S )Nz% object can't be deleted because its z attribute is set to None.r†  )rU  r¡  )Úkeep_parents)r$  rÓ   ra   r+  r  rÿ   r   rŠ  r¹   r   ÚcollectÚdelete)r=   rU  rÑ  Ú	collectors       r>   rÓ  zModel.deleteø  s¦   € Ø�ŠÑ Ô ð 	Ýà"œjÔ4Ð4Ð4°d´j´mÔ6KÐ6KÐ6KðMñô ð ð ÐK�Ô,¨T¬^ÀdÐKÑKÔKˆÝ E°$Ð7Ñ7Ô7ˆ	Ø×Ò˜4˜&¨|ÐÑ<Ô<Ð<Ø×ÒÑ!Ô!Ð!rA   c              ƒ   óP   K  —  t          | j        ¦  «        ||¬¦  «        ƒ d {V —†S )N)rU  rÑ  )r   rÓ  )r=   rU  rÑ  s      r>   ÚadeletezModel.adelete  sM   è è € Ø/•] 4¤;Ñ/Ô/ØØ%ð
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rA   c                 óÒ   — t          | |j        ¦  «        }t          t          |j        ¦  «        ¦  «        }t          |                     t          |¦  «        |¦  «        d¬¦  «        S )NT)Ústrings_only)r   rÿ   Údictr3   Úflatchoicesr2   rÏ   )r=   r±   rT   Úchoices_dicts       r>   Ú_get_FIELD_displayzModel._get_FIELD_display  s_   € Ý˜˜eœmÑ,Ô,ˆÝ�M¨%Ô*;Ñ<Ô<Ñ=Ô=ˆåØ×Ò�]¨5Ñ1Ô1°5Ñ9Ô9Èð
ñ 
ô 
ð 	
rA   c                 ó–  — |                       ¦   «         st          d¦  «        ‚|rdnd}|rdnd}t          | |j        ¦  «        }t	          j        |j        |fd|› �| j        fgt          j        ¬¦  «        }t	          j        ||j        › d|› �|fgt          j	        ¬¦  «        } | j
        j                             | j        j        ¦  «        j        di |¤Ž                     |¦  «                             |›|j        ›�d	|z  ¦  «        }	 |d
         S # t"          $ r( |                      d| j
        j        j        z  ¦  «        ‚w xY w)Nz8get_next/get_previous cannot be used on unsaved objects.ÚgtÚltÚ ú-Úpk__)Ú	connectorÚ__z%spkr   z!%s matching query does not exist.r;   )r$  rÓ   r   rÿ   r)   ÚcreaterJ   r  ÚANDÚORr¹   râ   rU  rù   rî   rV  Úorder_byrü   rc   ra   r+  )	r=   r±   r¾   rŸ   ÚopÚorderÚparamÚqÚqss	            r>   Ú_get_next_or_previous_by_FIELDz$Model._get_next_or_previous_by_FIELD  sg  € Ø�ŠÑ Ô ð 	YÝÐWÑXÔXÐXØÐ&ˆTˆT $ˆØÐ&�� 3ˆÝ˜˜eœmÑ,Ô,ˆÝŒH�u”z 5Ð)¨K°2¨K¨K¸¼Ð+AÐBÍaÌeÐTÑTÔTˆÝŒH�a˜UœZÐ/Ð/¨2Ð/Ð/°Ð7Ð8ÅAÄDÐIÑIÔIˆðˆDŒNÔ+×1Ò1°$´+´.ÑAÔAÜðð Øðð çŠV�A‰YŒYßŠX   u¤z zÐ2°F¸U±NÑCÔCð	 	ð	Ø�a”5ˆLøÝð 	ð 	ð 	Ø×#Ò#Ø3°d´nÔ6JÔ6VÑVñô ð ð	øøøs   ÄD Ä2Ec                 óì  — d|z  }t          | |¦  «        sÐ|rdnd}|rdnd}| j        j        }|                     | ¦  «        }  | j        j        j        di |¤Žj        di d|z   | j        j                             d¦  «        j        di | j        j        j	        | j        i¤Ži¤Ž 
                    |¦  «        d d…                              ¦   «         }t          | ||¦  «         t          | |¦  «        S )	Nz__%s_order_cacherÞ  rß  r°  z-_orderz
_order__%srp  r;   )rS   ra   rÇ   rº  r¹   râ   rV  r  r  rJ   rè  rÏ   r¼   r   )r=   r¾   Ú	cachenameré  rê  Úorder_fieldrÁ  r¦   s           r>   rÈ   z$Model._get_next_or_previous_in_order*  s,  € Ø&¨Ñ0ˆ	Ý�t˜YÑ'Ô'ð 	*Ø Ð*�� dˆBØ 'Ð6�H�H¨YˆEØœ*Ô:ˆKØ%×BÒBÀ4ÑHÔHˆKðÐ6�”Ô/Ô6ÐEÐE¸ÐEÐEÜðð ð %ØñØU˜dœnÔ=×DÒDÀXÑNÔNÔUð ð Ø#œzœ}Ô1°4´7Ð;ðð ððð ÷ ’˜%‘”  ! ô	%÷ ’‘”ð õ �D˜) SÑ)Ô)Ð)Ý�t˜YÑ'Ô'Ð'rA   c                 ó„  ‡— ‰€t          ¦   «         Š|p| j        }i }g }|j        D ]ž}|j        ‰v rŒ|j        rJt          ˆfd„|                      |j        ¦  «        D ¦   «         ¦  «        rŒG|                     |¦  «         Œ]t          | |j
        ¦  «        }|rt          |d¦  «        st          ||¦  «        }|||j        <   ŒŸd‰vrt          | j        |j        ¦  «        |d<   |rXd„ |                     ¦   «         D ¦   «         }|D ]7}t          |j                             |¦  «        |j        ¦  «        ||j        <   Œ8|S )Nc              3   ó,   •K  — | ]}|d          ‰v V — ŒdS ©r   Nr;   )r[   ÚrefÚexcludes     €r>   rh   z2Model._get_field_expression_map.<locals>.<genexpr>K  s@   øè è € ð ð àð ˜”F˜gÐ%ðð ð ð ð ð rA   Úresolve_expressionr  c                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r;   )r(   )r[   rJ   rT   s      r>   ú
<dictcomp>z3Model._get_field_expression_map.<locals>.<dictcomp>Y  s$   € ÐPÐPÐP©{¨t°U�A˜d™GœG UÐPÐPÐPrA   )r‘   ra   r¶  rJ   r  rÒ   Ú_get_expr_referencesÚ
expressionr3  r   rÿ   rS   r   r  r~   r   Úreplace_expressionsr±  )	r=   r¨   rö  Ú	field_mapÚgenerated_fieldsr±   rT   ÚreplacementsÚgenerated_fields	     `      r>   Ú_get_field_expression_mapzModel._get_field_expression_mapA  s”  ø€ Øˆ?Ý‘e”eˆGØÐ!�t”zˆØˆ	ØÐØÔ/ð 	*ð 	*ˆEØŒz˜WÐ$Ð$ØØŒð Ýð ð ð ð à#×8Ò8¸Ô9IÑJÔJðñ ô ñ ô ð ð Ø ×'Ò'¨Ñ.Ô.Ð.ØÝ˜D %¤-Ñ0Ô0ˆEØð ,¥¨Ð/CÑ DÔ Dð ,Ý˜e UÑ+Ô+�Ø$)ˆI�e”jÑ!Ð!Ø�wÐÐÝ# D¤G¨T¬WÑ5Ô5ˆI�d‰OØð 	ØPÐP¸i¿oºoÑ>OÔ>OÐPÑPÔPˆLØ#3ð ð �Ý2CØ#Ô.×BÒBÀ<ÑPÔPØ#Ô0ñ3ô 3�	˜/Ô.Ñ/Ð/ð
 ÐrA   c                 ó¦   — |                       ¦   «         st          d| z  ¦  «        ‚t          | |j                             ¦   «         j        ¦  «        S )Nz9Unsaved model instance %r cannot be used in an ORM query.)r$  rÓ   r   r�   Úget_related_fieldrÿ   )r=   r±   s     r>   Úprepare_database_savezModel.prepare_database_saveb  sR   € Ø�ŠÑ Ô ð 	ÝØKÈdÑRñô ð õ �t˜UÔ/×AÒAÑCÔCÔKÑLÔLÐLrA   c                 ó   — dS )aI  
        Hook for doing any extra model-wide validation after clean() has been
        called on every field by self.clean_fields. Any ValidationError raised
        by this method will not be associated with a particular field; it will
        have a special-case association with the field defined by NON_FIELD_ERRORS.
        Nr;   r<   s    r>   ÚcleanzModel.cleani  s	   € ð 	ˆrA   c                 ó4  — |                       |¬¦  «        \  }}|                      |¦  «        }|                      |¦  «        }|                     ¦   «         D ].\  }}|                     |g ¦  «                             |¦  «         Œ/|rt          |¦  «        ‚dS )zh
        Check unique constraints on the model and raise ValidationError if any
        failed.
        ©rö  N)Ú_get_unique_checksÚ_perform_unique_checksÚ_perform_date_checksr~   Ú
setdefaultÚextendr   )r=   rö  Úunique_checksÚdate_checksÚerrorsÚdate_errorsr|  r}  s           r>   Úvalidate_uniquezModel.validate_uniquer  s«   € ð
 &*×%<Ò%<ÀWÐ%<Ñ%MÔ%MÑ"ˆ�{à×,Ò,¨]Ñ;Ô;ˆØ×/Ò/°Ñ<Ô<ˆà×%Ò%Ñ'Ô'ð 	/ð 	/‰DˆAˆqØ×Ò˜a Ñ$Ô$×+Ò+¨AÑ.Ô.Ð.Ð.àð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*rA   c                 ód  ‡— ‰€t          ¦   «         Šg }| j        | j        j        fg}g }|r| j        | j        j        fg}| j        j        D ]^}|j        j        r!|                     ||j        j        f¦  «         |r-|j        j        r!|                     ||j        j        f¦  «         Œ_|D ]I\  }}|D ]A}	t          ˆfd„|	D ¦   «         ¦  «        s$|                     |t          |	¦  «        f¦  «         ŒBŒJ|rI|D ]F\  }}
|
D ]>}t          ˆfd„|j	        D ¦   «         ¦  «        s|                     ||j	        f¦  «         Œ?ŒGg }| j        | j        j
        fg}| j        j        D ]#}|                     ||j        j
        f¦  «         Œ$|D �]"\  }}|D �]}|j        }|‰v rŒt          |t          ¦  «        rKt          d„ |j	        D ¦   «         ¦  «        }‰                     |¦  «        r|                     ||f¦  «         Œo|j        r|                     ||ff¦  «         |j        r'|j        ‰vr|                     |d||j        f¦  «         |j        r'|j        ‰vr|                     |d||j        f¦  «         |j        r'|j        ‰vr|                     |d||j        f¦  «         �Œ�Œ$||fS )a{  
        Return a list of checks to perform. Since validate_unique() could be
        called from a ModelForm, some fields may have been excluded; we can't
        perform a unique check on a model that is missing fields involved
        in that check. Fields that did not validate should also be excluded,
        but they need to be passed in via the exclude argument.
        Nc              3   ó    •K  — | ]}|‰v V — Œ	d S r»   r;   ©r[   rJ   rö  s     €r>   rh   z+Model._get_unique_checks.<locals>.<genexpr>ž  s'   øè è € Ð=Ð=¨t˜4 7˜?Ð=Ð=Ð=Ð=Ð=Ð=rA   c              3   ó    •K  — | ]}|‰v V — Œ	d S r»   r;   r  s     €r>   rh   z+Model._get_unique_checks.<locals>.<genexpr>¥  s'   øè è € ÐMÐM°4˜t w˜ÐMÐMÐMÐMÐMÐMrA   c              3   ó$   K  — | ]}|j         V — Œd S r»   rn   ©r[   r±   s     r>   rh   z+Model._get_unique_checks.<locals>.<genexpr>¸  s$   è è € Ð!CÐ!C° %¤*Ð!CÐ!CÐ!CÐ!CÐ!CÐ!CrA   ÚdateÚyearÚmonth)r‘   r¹   ra   Úunique_togetherÚtotal_unique_constraintsÚall_parentsr3  rÒ   r„   r‹   rˆ   rJ   rZ   r    Ú
isdisjointÚuniqueÚunique_for_dateÚunique_for_yearÚunique_for_month)r=   rö  Úinclude_meta_constraintsr  Úunique_togethersÚconstraintsÚparent_classÚmodel_classr  ÚcheckÚmodel_constraintsÚ
constraintr  Úfields_with_classr‹   rp   rJ   Únamess    `                r>   r	  zModel._get_unique_checks‚  s¢  ø€ ð ˆ?Ý‘e”eˆGØˆà!œ^¨T¬ZÔ-GÐHÐIÐØˆØ#ð 	RØ œN¨D¬JÔ,OÐPÐQˆKØ œJÔ2ð 	ð 	ˆLØÔ!Ô1ð Ø ×'Ò'Ø! <Ô#5Ô#EÐFñô ð ð (ð ¨LÔ,>Ô,Wð Ø×"Ò"Ø! <Ô#5Ô#NÐOñô ð øð -=ð 	Fð 	FÑ(ˆK˜Ø(ð Fð F�ÝÐ=Ð=Ð=Ð=°uÐ=Ñ=Ô=Ñ=Ô=ð Fà!×(Ò(¨+µu¸U±|´|Ð)DÑEÔEÐEøðFð
 $ð 	OØ2=ð Oð OÑ.�Ð.Ø"3ð Oð O�JÝÐMÐMÐMÐM¸:Ô;LÐMÑMÔMÑMÔMð OØ%×,Ò,¨k¸:Ô;LÐ-MÑNÔNÐNøðOð
 ˆð
 #œn¨d¬jÔ.EÐFÐGÐØ œJÔ2ð 	Vð 	VˆLØ×$Ò$ l°LÔ4FÔ4SÐ%TÑUÔUÐUÐUà#4ð 	Yñ 	YÑˆK˜Øð Yñ Y�Ø”v�Ø˜7�?�?ØÝ˜aÕ!4Ñ5Ô5ð Ý!Ð!CÐ!C¸!¼(Ð!CÑ!CÔ!CÑCÔC�EØ×)Ò)¨%Ñ0Ô0ð CØ%×,Ò,¨k¸5Ð-AÑBÔBÐBØØ”8ð AØ!×(Ò(¨+¸°wÐ)?Ñ@Ô@Ð@ØÔ$ð W¨Ô):À'Ð)IÐ)IØ×&Ò&¨°V¸TÀ1ÔCTÐ'UÑVÔVÐVØÔ$ð W¨Ô):À'Ð)IÐ)IØ×&Ò&¨°V¸TÀ1ÔCTÐ'UÑVÔVÐVØÔ%ð Y¨!Ô*<ÀGÐ*KÐ*KØ×&Ò&¨°W¸dÀAÔDVÐ'WÑXÔXÐXùñ!Yð" ˜kÐ)Ð)rA   c                 ó  — i }|D �]€\  }}i }|D ]x}| j                              |¦  «        }t          | |j        ¦  «        }|�|dk    rt          j        j        rŒK||j         j        v r| j        j	        sŒf||t          |¦  «        <   Œyt          |¦  «        t          |¦  «        k    rŒ¤ |j        j        di |¤Ž}	|                      |j         ¦  «        }
| j        j	        s0|                      |j         ¦  «        r|	                     |
¬¦  «        }	|	                     ¦   «         r`t          |¦  «        dk    r	|d         }nt$          }|                     |g ¦  «                             |                      ||¦  «        ¦  «         �Œ‚|S )Nrà  rP  rp  r   r;   )ra   r  r   rÿ   r   ÚfeaturesÚ!interprets_empty_strings_as_nullsrŽ  rù   rï   Ústrrú   râ   rV  rA  r$  rö  rÅ  r
   r  r3  Úunique_error_message)r=   r  r  r(  Úunique_checkÚlookup_kwargsrh  rp   Úlookup_valuerí  Úmodel_class_pkÚkeys               r>   r
  zModel._perform_unique_checksÆ  s«  € Øˆà)6ð *	ñ *	Ñ%ˆK˜ð ˆMØ*ð >ð >�
Ø”J×(Ò(¨Ñ4Ô4�Ý& t¨Q¬YÑ7Ô7�àÐ'Ø  BÒ&Ð&Ý"Ô+ÔMð 'ð Ø˜Ô)Ô3Ð3Ð3¸D¼KÔ<NÐ3àØ1=��c *™oœoÑ.Ð.õ �<Ñ Ô ¥C¨Ñ$6Ô$6Ò6Ð6Øà4�Ô-Ô4ÐEÐE°}ÐEÐEˆBð "×-Ò-¨kÔ.?Ñ@Ô@ˆNØ”;Ô%ð 3¨$¯/ª/¸+Ô:KÑ*LÔ*Lð 3Ø—Z’Z >�ZÑ2Ô2�Ø�yŠy‰{Œ{ð Ý�|Ñ$Ô$¨Ò)Ð)Ø& qœ/�C�Cå*�CØ×!Ò! # rÑ*Ô*×1Ò1Ø×-Ò-¨k¸<ÑHÔHñô ð ùð ˆrA   c                 ó<  — i }|D �]\  }}}}i }t          | |¦  «        }|€Œ|dk    r(|j        |d|z  <   |j        |d|z  <   |j        |d|z  <   nt          ||¦  «        ||›d|›�<   t          | |¦  «        ||<    |j        j        di |¤Ž}	| j        j        s/|                      ¦   «         r|	 	                    | j
        ¬¦  «        }	|	                     ¦   «         r>|                     |g ¦  «                             |                      |||¦  «        ¦  «         �Œ|S )Nr  z%s__dayz	%s__monthz%s__yearrä  rP  r;   )r   Údayr  r  râ   rV  rù   rï   r$  rö  r  rÅ  r  r3  Údate_error_message)
r=   r  r  r(  Úlookup_typer±   Ú
unique_forr4  r  rí  s
             r>   r  zModel._perform_date_checks÷  s_  € ØˆØ;Fð 	ñ 	Ñ7ˆK˜ e¨ZØˆMõ ˜4 Ñ,Ô,ˆDØˆ|ØØ˜fÒ$Ð$Ø8<¼�˜i¨*Ñ4Ñ5Ø:>¼*�˜k¨JÑ6Ñ7Ø9=¼�˜j¨:Ñ5Ñ6Ð6åFMØ˜+ñGô G�¨*¨*¨*°k°kÐBÑCõ $+¨4°Ñ#7Ô#7ˆM˜%Ñ à4�Ô-Ô4ÐEÐE°}ÐEÐEˆBð ”;Ô%ð ,¨$¯/ª/Ñ*;Ô*;ð ,Ø—Z’Z 4¤7�ZÑ+Ô+�à�yŠy‰{Œ{ð Ø×!Ò! %¨Ñ,Ô,×3Ò3Ø×+Ò+¨K¸À
ÑKÔKñô ð ùð ˆrA   c                 ó  — | j         }|                     |¦  «        }t          |j        d         d| t	          |j        ¦  «        ||t	          |j        ¦  «        |t	          |                     |¦  «        j        ¦  «        dœ¬¦  «        S )Nr!  )r�   r–   r;  r±   Úfield_labelÚ
date_fieldÚdate_field_label©ÚmessageÚcodeÚparams)ra   r  r   Úerror_messagesr4   Úverbose_name)r=   r;  rh  r<  rÖ   r±   s         r>   r:  zModel.date_error_message  sŒ   € ØŒzˆØ—’˜zÑ*Ô*ˆÝØÔ(Ð):Ô;Ø"àÝ& tÔ'8Ñ9Ô9Ø*Ø#Ý'¨Ô(:Ñ;Ô;Ø(Ý$,¨T¯^ª^¸JÑ-GÔ-GÔ-TÑ$UÔ$Uðð ð
ñ 
ô 
ð 	
rA   c                 ó¢  ‡— |j         Š| |t          ‰j        ¦  «        |dœ}t          |¦  «        dk    rO‰                     |d         ¦  «        }t          |j        ¦  «        |d<   t          |j        d         d|¬¦  «        S ˆfd„|D ¦   «         }t          |t          d¦  «        ¦  «        |d	<   t          t          d
¦  «        d|¬¦  «        S )N)r�   r(  r–   r3  rp  r   r>  r   rA  c                 ó^   •— g | ])}t          ‰                     |¦  «        j        ¦  «        ‘Œ*S r;   )r4   r  rF  )r[   rp   rÖ   s     €r>   r]   z.Model.unique_error_message.<locals>.<listcomp>=  s=   ø€ ð ð ð Ø=>•˜Ÿš¨Ñ*Ô*Ô7Ñ8Ô8ðð ð rA   ÚandÚfield_labelsz9%(model_name)s with this %(field_labels)s already exists.r  )	ra   r4   rF  rú   r  r   rE  r5   Ú_)r=   r(  r3  rD  r±   rJ  rÖ   s         @r>   r2  zModel.unique_error_message'  s  ø€ ØÔ ˆð Ø&Ý" 4Ô#4Ñ5Ô5Ø(ð	
ð 
ˆõ ˆ|ÑÔ Ò!Ð!Ø—N’N <°¤?Ñ3Ô3ˆEÝ$,¨UÔ-?Ñ$@Ô$@ˆF�=Ñ!Ý"ØÔ,¨XÔ6ØØðñ ô ð ðð ð ð ØBNðñ ô ˆLõ &3°<ÅÀ5ÁÄÑ%JÔ%JˆF�>Ñ"Ý"ÝÐUÑVÔVØ&Øðñ ô ð rA   c                 ó¦   — | j         | j        j        fg}| j        j        D ]/}|j        j        r!|                     ||j        j        f¦  «         Œ0|S r»   )r¹   ra   r&  r  r3  )r=   r&  r'  s      r>   Úget_constraintszModel.get_constraintsG  sa   € Øœ¨¬
Ô(>Ð?Ð@ˆØ œJÔ2ð 	Sð 	SˆLØÔ!Ô-ð SØ×"Ò" L°,Ô2DÔ2PÐ#QÑRÔRÐRøØÐrA   c                 óô  — |                       ¦   «         }t          j        | j        | ¬¦  «        }i }|D ]²\  }}|D ]ª}	 |                     || ||¬¦  «         Œ# t
          $ r�}t          |dd ¦  «        dk    rMt          |j        ¦  «        dk    r5| 	                    |j        d         g ¦  «         
                    |¦  «         n|                     |¦  «        }Y d }~Œ£d }~ww xY wŒ³|rt          |¦  «        ‚d S )Nr†  )rö  rU  rC  r   rp  r   )rM  r   rŠ  r¹   Úvalidater   r   rú   r‹   r  r3  Úupdate_error_dict)	r=   rö  r&  rU  r  r(  r*  r+  Úes	            r>   Úvalidate_constraintszModel.validate_constraintsN  s3  € Ø×*Ò*Ñ,Ô,ˆÝÔ# D¤N¸TÐBÑBÔBˆàˆØ.9ð 	=ð 	=Ñ*ˆKÐ*Ø/ð 
=ð 
=�
ð	=Ø×'Ò'¨°TÀ7ÐRWÐ'ÑXÔXÐXÐXøÝ&ð =ð =ð =å  6¨4Ñ0Ô0°HÒ<Ð<Ý 
Ô 1Ñ2Ô2°aÒ7Ð7à×)Ò)¨*Ô*;¸AÔ*>ÀÑCÔC×JÒJÈ1ÑMÔMÐMÐMà!"×!4Ò!4°VÑ!<Ô!<˜øøøøøøøøøð=øøøð
=ð ð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*s   ¾AÁ
C#Á"A7CÃC#c                 ó4  — i }|€t          ¦   «         }nt          |¦  «        }	 |                      |¬¦  «         n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w	 |                      ¦   «          n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w|rm|D ]&}|t
          k    r||vr|                     |¦  «         Œ'	 |                      |¬¦  «         n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w|rm|D ]&}|t
          k    r||vr|                     |¦  «         Œ'	 |                      |¬¦  «         n,# t          $ r}|                     |¦  «        }Y d}~nd}~ww xY w|rt          |¦  «        ‚dS )z®
        Call clean_fields(), clean(), validate_unique(), and
        validate_constraints() on the model. Raise a ValidationError for any
        errors that occur.
        Nr  )	r‘   Úclean_fieldsr   rP  r  r
   r•   r  rR  )r=   rö  r  rR  r  rQ  rJ   s          r>   Ú
full_cleanzModel.full_cleanb  s+  € ð ˆØˆ?Ý‘e”eˆGˆGå˜'‘l”lˆGð	1Ø×Ò gÐÑ.Ô.Ð.Ð.øÝð 	1ð 	1ð 	1Ø×(Ò(¨Ñ0Ô0ˆFˆFˆFˆFˆFˆFøøøøð	1øøøð
	1Ø�JŠJ‰LŒLˆLˆLøÝð 	1ð 	1ð 	1Ø×(Ò(¨Ñ0Ô0ˆFˆFˆFˆFˆFˆFøøøøð	1øøøð ð 	5Øð &ð &�ØÕ+Ò+Ð+°¸GÐ0CÐ0CØ—K’K Ñ%Ô%Ð%øð5Ø×$Ò$¨WÐ$Ñ5Ô5Ð5Ð5øÝ"ð 5ð 5ð 5Ø×,Ò,¨VÑ4Ô4������øøøøð5øøøð  ð 	5Øð &ð &�ØÕ+Ò+Ð+°¸GÐ0CÐ0CØ—K’K Ñ%Ô%Ð%øð5Ø×)Ò)°'Ð)Ñ:Ô:Ð:Ð:øÝ"ð 5ð 5ð 5Ø×,Ò,¨VÑ4Ô4������øøøøð5øøøð ð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*s]   ¤; »
A$ÁAÁA$Á(A= Á=
B&ÂB!Â!B&ÃC, Ã,
DÃ6DÄDÅE Å
FÅ%E?Å?Fc           	      ó¦  — |€t          ¦   «         }i }| j        j        D ] }|j        |v s|j        rŒt          | |j        ¦  «        }|j        r
||j        v rŒ9t          |t          ¦  «        rŒO	 t          | |j        |                     || ¦  «        ¦  «         Œ{# t          $ r}|j        ||j        <   Y d}~Œ™d}~ww xY w|rt          |¦  «        ‚dS )z
        Clean all fields and raise a ValidationError containing a dict
        of all validation errors if any occur.
        N)r‘   ra   r‹   rJ   r  r   rÿ   ÚblankrÏ  rZ   r   r¼   r  r   Ú
error_list)r=   rö  r  rp   Ú	raw_valuerQ  s         r>   rT  zModel.clean_fields‘  s  € ð
 ˆ?Ý‘e”eˆGàˆØ”Ô"ð 	.ð 	.ˆAØŒv˜Ð Ð  A¤KÐ Øõ    a¤iÑ0Ô0ˆIØŒwð ˜9¨¬Ð6Ð6Øå˜)¥_Ñ5Ô5ð Øð.Ý˜˜aœi¨¯ª°¸DÑ)AÔ)AÑBÔBÐBÐBøÝ"ð .ð .ð .Ø!"¤��q”v‘�����øøøøð.øøøð ð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*s   Á/*BÂ
B=Â$B8Â8B=c                 ó¤  — g |                       ¦   «         ¢|                      ¦   «         ¢ | j        di |¤Ž¢}| j        j        �s‹|                     d¦  «        pg }|g  | j        di |¤Ž¢|                      ¦   «         ¢|                      |¦  «        ¢z  }g |  	                    ¦   «         ¢|  
                    ¦   «         ¢|                      ¦   «         ¢|                      ¦   «         ¢|                      ¦   «         ¢R }|                     |¦  «         |s'|                     |                      ¦   «         ¦  «         |g |                      ¦   «         ¢|                      |¦  «        ¢|                      ¦   «         ¢|                      |¦  «        ¢|                      ¦   «         ¢|                      |¦  «        ¢|                      ¦   «         ¢z  }|S )NÚ	databasesr;   )Ú_check_swappableÚ_check_modelÚ_check_managersra   r†   rÏ   Ú_check_fieldsÚ$_check_m2m_through_same_relationshipÚ_check_long_column_namesÚ_check_id_fieldÚ_check_field_name_clashesÚ#_check_model_name_db_lookup_clashesÚ3_check_property_name_related_field_accessor_clashesÚ_check_single_primary_keyr  Ú_check_column_name_clashesÚ_check_unique_togetherÚ_check_indexesÚ_check_orderingÚ_check_constraintsÚ_check_default_pkÚ_check_db_table_commentÚ_check_composite_pk)r�   rŸ   r  r[  Úclash_errorss        r>   r)  zModel.check­  s.  € ð
Ø×!Ò!Ñ#Ô#ð
à×ÒÑÔð
ð !ˆSÔ Ð*Ð* 6Ð*Ð*ð
ˆð
 ŒyÔ ñ 	ØŸ
š
 ;Ñ/Ô/Ð5°2ˆIØð Ø"�Ô"Ð,Ð, VÐ,Ð,ðà×9Ò9Ñ;Ô;ðð ×-Ò-¨iÑ8Ô8ðñ ˆFð
Ø×$Ò$Ñ&Ô&ðà×.Ò.Ñ0Ô0ðð ×8Ò8Ñ:Ô:ðð ×HÒHÑJÔJð	ð
 ×.Ò.Ñ0Ô0ðð ˆLð �MŠM˜,Ñ'Ô'Ð'ð  ð @Ø—’˜c×<Ò<Ñ>Ô>Ñ?Ô?Ð?Øð Ø×+Ò+Ñ-Ô-ðà×#Ò# IÑ.Ô.ðð ×$Ò$Ñ&Ô&ðð ×'Ò'¨	Ñ2Ô2ð	ð
 ×&Ò&Ñ(Ô(ðð ×,Ò,¨YÑ7Ô7ðð ×(Ò(Ñ*Ô*ðñ ˆFð ˆrA   c                 óŠ  — | j         j        s¶| j         j        j        r¥t	          | j         j        t
          ¦  «        r| j         j        j        j        spt          j	        d¦  «        s\| j         j
        rP| j         j
        j        s?t          j        dt          j        › d�d| j         j
        j        j        › d�| d¬¦  «        gS g S )NÚDEFAULT_AUTO_FIELDzPAuto-created primary key used when not defining a primary key type, by default 'rl   z0Configure the DEFAULT_AUTO_FIELD setting or the zh.default_auto_field attribute to point to a subclass of AutoField, e.g. 'django.db.models.BigAutoField'.zmodels.W042©Úhintr¦   Úid)ra   r`   r  ru   rZ   r"   r�   rv   r   Úis_overriddenrª   Ú!_is_default_auto_field_overriddenr	   ÚWarningrq  r¹   rF   rÞ   s    r>   rl  zModel._check_default_pkÓ  sò   € ð ”	Ô"ð	à”	”Ô)ð	õ ˜3œ9œ<­Ñ7Ô7ð	ð ”I”LÔ-Ô9ð	õ Ô*Ð+?Ñ@Ô@ð	ð ”	Ô$ð	ð ”IÔ(ÔJð	õ ”ð8å Ô3ð8ð 8ð 8ðOØœ9Ô/Ô9ÔFðOð Oð Oð
 Ø$ðñ ô ðð ð ˆ	rA   c           
      ó  — g }| j         }|j        }|j        st          |t          ¦  «        s|S t          t          ¦  «        }|j        D ]»}d }	 |                     |¦  «        }n# t          $ r d }Y nw xY w|s|›d�}nV|j
        s|›d�}nI|j        r|›d�}n<|j        r|›d�}n/||j        vr|›d�}n ||j
                                      |¦  «         |r.|                     t          j        |›d�|| d¬¦  «        ¦  «         Œ¼|                     ¦   «         D ]o\  }}	t%          |	¦  «        d	k    rW|	^}}
d
                     d„ |
D ¦   «         ¦  «        }|                     t          j        |› d�|› d|›d�| d¬¦  «        ¦  «         Œp|S )Nz is not a valid field.z field has no column.z field may not set 'null=True'.z field is a generated field.z field is not a local field.z1 cannot be included in the composite primary key.zmodels.E042rr  rp  rÀ   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r»   rõ   r  s     r>   rh   z,Model._check_composite_pk.<locals>.<genexpr>!  s(   è è € Ð&EÐ&E°u¥t¨E¡{¤{Ð&EÐ&EÐ&EÐ&EÐ&EÐ&ErA   z and z are the same fields.)ra   r  r…   rZ   r    r   Úlistr­   r  r   r   Únullr  rˆ   r3  r	   ÚErrorr~   rú   rÍ   )r�   r  r¨   r  Úseen_columnsrh  rs  r±   r   r­   ÚrestÚ
duplicatess               r>   rn  zModel._check_composite_pkó  sA  € àˆØŒyˆØŒWˆàŒ:ð 	�Z¨Õ,?Ñ@Ô@ð 	ØˆMå"¥4Ñ(Ô(ˆàœ.ð 	ð 	ˆJØˆDðØŸš zÑ2Ô2��øÝ$ð ð ð Ø���ðøøøð ð >Ø$Ð>Ð>Ð>��Ø”\ð 	>Ø$Ð=Ð=Ð=��Ø”ð >Ø$ÐGÐGÐG��Ø”ð >Ø$ÐDÐDÐD��Ø˜dÔ/Ð/Ð/Ø$ÐDÐDÐD��à˜Uœ\Ô*×1Ò1°*Ñ=Ô=Ð=àð 	Ø—’Ý”LØ%ð ð ð à!ØØ(ðñ ô ñô ð øð $0×#5Ò#5Ñ#7Ô#7ð 	ð 	ÑˆF�KÝ�;ÑÔ !Ò#Ð#Ø$/Ð!�
˜TØ!ŸYšYÐ&EÐ&EÀÐ&EÑ&EÔ&EÑEÔE�
Ø—’Ý”LØ%ð ð ð à *ÐTÐT°ÐTÐTÐTØØ(ðñ ô ñô ð øð ˆs   ÁA%Á%A4Á3A4c                 ó  — | j         j        sg S g }|D ]q}t          j        || ¦  «        sŒt          |         }|j        j        s@d| j         j        v s2|                     t          j
        |j        › d�| d¬¦  «        ¦  «         Œr|S )NÚsupports_commentsz8 does not support comments on tables (db_table_comment).zmodels.W046©r¦   rt  )ra   Údb_table_commentr   Úallow_migrate_modelr   r/  r�  Úrequired_db_featuresr3  r	   rw  Údisplay_name)r�   r[  r  rî   r   s        r>   rm  zModel._check_db_table_comment.  s´   € àŒyÔ)ð 	ØˆIØˆØð 	ð 	ˆBÝÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJàÔ#Ô5ðà&¨#¬)Ô*HÐHÐHà—’Ý”NØ%Ô2ð 6ð 6ð 6àØ(ð	ñ ô ñô ð øð ˆrA   c                 óÂ  — g }| j         j        rÐ	 t          j        | j         j        ¦  «         n°# t          $ r9 |                     t          j        d| j         j        z  d¬¦  «        ¦  «         Y nnt          $ rb | j         j         
                    d¦  «        \  }}|                     t          j        d| j         j        ›d|›d|›d�d¬¦  «        ¦  «         Y nw xY w|S )	z"Check if the swapped model exists.z-'%s' is not of the form 'app_label.app_name'.zmodels.E001©rt  rH   rs  z' references 'z0', which has not been installed, or is abstract.zmodels.E002)ra   r†   r   Ú	get_modelrÓ   r3  r	   r|  Ú	swappableÚLookupErrorÚsplit)r�   r  rb   r–   s       r>   r\  zModel._check_swappableE  s*  € ð ˆØŒ9Ôð 	ðÝ”˜sœyÔ0Ñ1Ô1Ð1Ð1øÝð ð ð Ø—’Ý”LØGØœ)Ô-ñ.à(ðñ ô ñô ð ð ð õ ð 	ð 	ð 	Ø(+¬	Ô(9×(?Ò(?ÀÑ(DÔ(DÑ%�	˜:Ø—’Ý”L�Lð œ9Ô.Ð.Ð.°	°	°	¸:¸:¸:ðGð )ð	ñ ô ñô ð ð ð ð	øøøð ˆs   �/ ¯A CÁ1A(CÃCc                 ó´   — g }| j         j        rI| j         j        s| j         j        r1|                     t          j        d| j        z  d¬¦  «        ¦  «         |S )Nz'Proxy model '%s' contains model fields.zmodels.E017rˆ  )ra   r…   rˆ   r‰   r3  r	   r|  rD   ©r�   r  s     r>   r]  zModel._check_model`  sj   € àˆØŒ9Œ?ð 	ØŒyÔ%ð ¨¬Ô)Eð Ø—’Ý”LØAÀCÄLÑPØ(ðñ ô ñô ð ð ˆrA   c                 óh   — g }| j         j        D ]"}|                      |j        di |¤Ž¦  «         Œ#|S )zPerform all manager checks.r;   )ra   rÑ   r  r)  )r�   rŸ   r  rÚ   s       r>   r^  zModel._check_managersm  sI   € ð ˆØ”yÔ)ð 	3ð 	3ˆGØ�MŠM˜-˜'œ-Ð1Ð1¨&Ð1Ð1Ñ2Ô2Ð2Ð2ØˆrA   c                 óÊ   — g }| j         j        D ]"}|                      |j        di |¤Ž¦  «         Œ#| j         j        D ]$}|                      |j        dd| i|¤Ž¦  «         Œ%|S )zPerform all field checks.Ú
from_modelr;   )ra   rˆ   r  r)  r‰   )r�   rŸ   r  r±   s       r>   r_  zModel._check_fieldsu  s‹   € ð ˆØ”YÔ+ð 	1ð 	1ˆEØ�MŠM˜+˜%œ+Ð/Ð/¨Ð/Ð/Ñ0Ô0Ð0Ð0Ø”YÔ1ð 	Að 	AˆEØ�MŠM˜+˜%œ+Ð?Ð?°Ð?¸Ð?Ð?Ñ@Ô@Ð@Ð@ØˆrA   c                 ó^  — g }g }| j         j        }d„ |D ¦   «         }d„ |D ¦   «         }|D ]�}|j        j        | |j        j        |j        j        f}||v rB|                     t          j        d|j        j        j         j	        z  | d¬¦  «        ¦  «         Œl|                     |¦  «         Œ‚|S )zBCheck if no relationship model is used by more than one m2m field.c              3   óX   K  — | ]%}t          |j        j        t          ¦  «        ¯!|V — Œ&d S r»   )rZ   r�   r�   rW   ro   s     r>   rh   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>‰  s6   è è € ÐSÐS˜¥z°!´.Ô2FÍ	Ñ'RÔ'RÐS�!ÐSÐSÐSÐSÐSÐSrA   c              3   óX   K  — | ]%}t          |j        j        t          ¦  «        ¯!|V — Œ&d S r»   )rZ   r�   rˆ  rW   ro   s     r>   rh   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>Œ  s6   è è € ÐUÐU˜¥z°!´.Ô2HÍ)Ñ'TÔ'TÐU�!ÐUÐUÐUÐUÐUÐUrA   zWThe model has two identical many-to-many relations through the intermediate model '%s'.zmodels.E003r‚  )
ra   r‰   r�   r�   rˆ  Úthrough_fieldsr3  r	   r|  r‚   )r�   r  Úseen_intermediary_signaturesr‹   rp   Ú	signatures         r>   r`  z*Model._check_m2m_through_same_relationship  sñ   € ð ˆØ')Ð$à”Ô-ˆð TÐS˜VÐSÑSÔSˆð VÐU˜VÐUÑUÔUˆàð 	?ð 	?ˆAà”Ô$ØØ”Ô&Ø”Ô-ð	ˆIð Ð8Ð8Ð8Ø—’Ý”Lð?àœ.Ô0Ô6Ô<ñ=ð  Ø(ðñ ô ñô ð ð ð -×3Ò3°IÑ>Ô>Ð>Ð>ØˆrA   c                 ó°   ‡ — ˆ fd„‰ j         j        D ¦   «         }|r:|d         j        s-‰ j         j        j        dk    rt          j        d‰ d¬¦  «        gS g S )z%Check if `id` field is a primary key.c                 óJ   •— g | ]}|j         d k    ¯|‰j        j        k    ¯|‘Œ S rˆ  )rJ   ra   r  )r[   rp   r�   s     €r>   r]   z)Model._check_id_field.<locals>.<listcomp>¦  s8   ø€ ð 
ð 
ð 
Ø°´¸4²°ÀAÈÌÌÒDUÐDUˆAÐDUÐDUÐDUrA   r   rt  zP'id' can only be used as a field name if the field also sets 'primary_key=True'.zmodels.E004r‚  )ra   rˆ   Úprimary_keyr  rJ   r	   r|  )r�   r‹   s   ` r>   rb  zModel._check_id_field£  s‰   ø€ ð
ð 
ð 
ð 
Ø”yÔ-ð
ñ 
ô 
ˆð ð 
	˜& œ)Ô/ð 
	°C´I´LÔ4EÈÒ4MÐ4Må”ð/àØ$ð	ñ ô ðð ð ˆIrA   c                 ó¢  — g }i }| j         j        D ]²}|j         j        D ]£}|                     |j        ¦  «        p|                     |j        ¦  «        pd}|rU|                     t          j        d|j        ›d|j	        j         ›d|j        ›d|j	        j         ›d�	| d¬¦  «        ¦  «         |||j        <   |||j        <   Œ¤Œ³| j         j        D ],}|j          
                    ¦   «         D ]}||vr
|||j        <   ŒŒ-| j         j                             ¦   «         D ]k}|sŒ|                     |j        ¦  «        pd}|rH|                     t          j        d|j        › d|j        › d|j	        j         › d�| d	¬¦  «        ¦  «         Œl| j         j        D ]»}|                     |j        ¦  «        p|                     |j        ¦  «        pd}|j        d
k    o|o|j        d
k    o
|j	        | k    }|rJ|sH|                     t          j        d|j        ›d|j        ›d|j	        j         ›d�|d	¬¦  «        ¦  «         |||j        <   |||j        <   Œ¼|S )z2Forbid field shadowing in multi-table inheritance.NzThe field 'z' from parent model 'z' clashes with the field 'rl   zmodels.E005r‚  z' from model 'zmodels.E006rt  )ra   r  rˆ   rÏ   rJ   rÿ   r3  r	   r|  r�   Ú
get_fieldsr—   r  )r�   r  Úused_fieldsr¯   rp   Úclashrv   Úid_conflicts           r>   rc  zModel._check_field_name_clashes¶  sû  € ð ˆØˆð ”iÔ+ð 	+ð 	+ˆFØ”\Ô.ð +ð +�Ø#Ÿš¨¬Ñ/Ô/ÐU°;·?²?À1Ä9Ñ3MÔ3MÐUÐQU�Øð 
Ø—M’MÝœ˜ð  %œz˜z˜z¨5¬;Ô+<Ð+<Ð+<¸a¼f¸f¸fÀaÄgÄmÀmÀmðUð !$Ø,ðñ ô ñ	ô 	ð 	ð '(�˜AœFÑ#Ø)*�˜AœIÑ&Ð&ð+ð& ”iÔ+ð 	,ð 	,ˆFØ”\×,Ò,Ñ.Ô.ð ,ð ,�Ø˜KÐ'Ð'Ø*+�K ¤Ñ'øð,ð
 œ9Ô,×3Ò3Ñ5Ô5ð 	ð 	ˆKØð ØØ—O’O KÔ$4Ñ5Ô5Ð=¸ˆEØð Ø—’Ý”LðL kÔ&6ð Lð LØ!œJðLð LØ6;´kÔ6GðLð Lð LàØ(ð	ñ ô ñô ð øð ”Ô'ð 	'ð 	'ˆAØ—O’O A¤FÑ+Ô+ÐQ¨{¯ª¸q¼yÑ/IÔ/IÐQÈTˆEð ”˜$’ÐV 5ÐV¨U¬Z¸4Ò-?ÐVÀEÄKÐSVÒDVð ð ð ˜[ð Ø—’Ý”L�Là./¬f¨f¨f°e´j°j°jÀ%Ä+ÔBSÐBSÐBSðUàØ(ð	ñ ô ñô ð ð #$ˆK˜œÑØ%&ˆK˜œ	Ñ"Ð"àˆrA   c           
      óà   — g }g }| j         j        D ]\}|j        }|r<||v r8|                     t	          j        d|j        ›d|›d�d| d¬¦  «        ¦  «         ŒG|                     |¦  «         Œ]|S )NzField 'z' has column name 'z ' that is used by another field.z$Specify a 'db_column' for the field.zmodels.E007rr  )ra   rˆ   r   r3  r	   r|  rJ   )r�   Úused_column_namesr  rp   Úcolumn_names        r>   rg  z Model._check_column_name_clashesü  s¬   € ð ÐØˆà”Ô'ð 	6ð 	6ˆAØœ(ˆKð ð 6˜{Ð.?Ð?Ð?Ø—’Ý”L�Là,-¬F¨F¨F°K°K°KðAàCØØ(ðñ ô ñô ð ð ð "×(Ò(¨Ñ5Ô5Ð5Ð5àˆrA   c                 ó4  — g }| j         }|                     d¦  «        s|                     d¦  «        r.|                     t	          j        d|z  | d¬¦  «        ¦  «         n6t          |v r-|                     t	          j        d|z  | d¬¦  «        ¦  «         |S )NrK  zgThe model name '%s' cannot start or end with an underscore as it collides with the query lookup syntax.zmodels.E023r‚  zbThe model name '%s' cannot contain double underscores as it collides with the query lookup syntax.zmodels.E024)rD   Ú
startswithÚendswithr3  r	   r|  r   )r�   r  r–   s      r>   rd  z)Model._check_model_name_db_lookup_clashes  sÐ   € àˆØ”\ˆ
Ø× Ò  Ñ%Ô%ð 	¨×)<Ò)<¸SÑ)AÔ)Að 	Ø�MŠMÝ”ðCØEOñPàØ$ð	ñ ô ñô ð ð õ ˜:Ð%Ð%Ø�MŠMÝ”ð@ØBLñMàØ$ð	ñ ô ñô ð ð ˆrA   c                 óØ   — g }| j         j        }d„ | j                              d¬¦  «        D ¦   «         }|D ]3}||v r-|                     t	          j        d|z  | d¬¦  «        ¦  «         Œ4|S )Nc              3   ó@   K  — | ]}|j         r|j        ®|j        V — Œd S r»   )rX  Úrelated_modelrÿ   ro   s     r>   rh   zLModel._check_property_name_related_field_accessor_clashes.<locals>.<genexpr>1  sD   è è € ð #
ð #
àØŒ}ð#
ð "#¤Ð!<ð ŒIà!<Ð!<Ð!<Ð!<ð#
ð #
rA   F©Úreversez8The property '%s' clashes with a related field accessor.zmodels.E025r‚  )ra   r  Ú_get_fieldsr3  r	   r|  )r�   r  r  Úrelated_field_accessorsÚaccessors        r>   re  z9Model._check_property_name_related_field_accessor_clashes-  s¤   € àˆØœÔ2ˆð#
ð #
à”Y×*Ò*°5Ð*Ñ9Ô9ð#
ñ #
ô #
Ðð
 0ð 		ð 		ˆHØ˜>Ð)Ð)Ø—’Ý”Lð$Ø&.ñ/àØ(ð	ñ ô ñô ð øð ˆrA   c                 ó¬   — g }t          d„ | j        j        D ¦   «         ¦  «        dk    r*|                     t	          j        d| d¬¦  «        ¦  «         |S )Nc              3   ó(   K  — | ]}|j         ¯	d V — ŒdS )rp  N)rš  ro   s     r>   rh   z2Model._check_single_primary_key.<locals>.<genexpr>E  s)   è è € ÐBÐB�Q°A´MÐBˆqÐBÐBÐBÐBÐBÐBrA   rp  zBThe model cannot have more than one field with 'primary_key=True'.zmodels.E026r‚  )Úsumra   rˆ   r3  r	   r|  rŽ  s     r>   rf  zModel._check_single_primary_keyB  sj   € àˆÝÐBÐB˜#œ)Ô0ÐBÑBÔBÑBÔBÀQÒFÐFØ�MŠMÝ”ð*àØ$ð	ñ ô ñô ð ð ˆrA   c                 ól  — t          | j        j        t          t          f¦  «        st          j        d| d¬¦  «        gS t          d„ | j        j        D ¦   «         ¦  «        rt          j        d| d¬¦  «        gS g }| j        j        D ]+}|                     |  	                    |d¦  «        ¦  «         Œ,|S )z,Check the value of "unique_together" option.z*'unique_together' must be a list or tuple.zmodels.E010r‚  c              3   óP   K  — | ]!}t          |t          t          f¦  «         V — Œ"d S r»   )rZ   r„   rz  )r[   r‹   s     r>   rh   z/Model._check_unique_together.<locals>.<genexpr>\  sG   è è € ð 
ð 
àõ ˜6¥E­4 =Ñ1Ô1Ð1ð
ð 
ð 
ð 
ð 
ð 
rA   z7All 'unique_together' elements must be lists or tuples.zmodels.E011r  )
rZ   ra   r  r„   rz  r	   r|  rÒ   r  Ú_check_local_fields)r�   r  r‹   s      r>   rh  zModel._check_unique_togetherP  sì   € õ ˜#œ)Ô3µe½T°]ÑCÔCð 	å”Ø@ØØ$ðñ ô ðð õ ð 
ð 
àœ)Ô3ð
ñ 
ô 
ñ 
ô 
ð 	õ
 ”ØMØØ$ðñ ô ðð ð ˆFØœ)Ô3ð Rð R�Ø—’˜c×5Ò5°fÐ>OÑPÔPÑQÔQÐQÐQØˆMrA   c           	      óè  — g }t          ¦   «         }| j        j        D ]ý}|j        d         dk    s|j        d                              ¦   «         r2|                     t          j        d|j        z  | d¬¦  «        ¦  «         t          |j        ¦  «        |j	        k    r9|                     t          j        d|j        |j	        fz  | d¬¦  «        ¦  «         |j
        r<|j        D ]4}|                     d„ |                      |¦  «        D ¦   «         ¦  «         Œ5Œþ|D �]v}t          j        || ¦  «        sŒt           |         }|j        j        sdd	| j        j        v sVt)          d
„ | j        j        D ¦   «         ¦  «        r3|                     t          j        d|j        z  d| d¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt)          d„ | j        j        D ¦   «         ¦  «        r3|                     t          j        d|j        z  d| d¬¦  «        ¦  «         |j        j        sdd| j        j        v sVt)          d„ | j        j        D ¦   «         ¦  «        r3|                     t          j        d|j        z  d| d¬¦  «        ¦  «         �Œxd„ | j        j        D ¦   «         }|d„ | j        j        D ¦   «         z  }||z  }|                     |                      |d¦  «        ¦  «         |S )z/Check fields, names, and conditions of indexes.r   rK  z@The index name '%s' cannot start with an underscore or a number.zmodels.E033r‚  z8The index name '%s' cannot be longer than %d characters.zmodels.E034c              3   ó&   K  — | ]}|d          V — ŒdS rô  r;   )r[   rõ  s     r>   rh   z'Model._check_indexes.<locals>.<genexpr>Š  s7   è è € ð &ð &Ø#&˜˜Aœð&ð &ð &ð &ð &ð &rA   Úsupports_partial_indexesc              3   ó(   K  — | ]}|j         d uV — Œd S r»   )Ú	condition©r[   rÛ   s     r>   rh   z'Model._check_indexes.<locals>.<genexpr>”  s)   è è € ÐQÐQ°e�e”o¨TÐ1ÐQÐQÐQÐQÐQÐQrA   z,%s does not support indexes with conditions.zLConditions will be ignored. Silence this warning if you don't care about it.zmodels.W037rr  Úsupports_covering_indexesc              3   ó$   K  — | ]}|j         V — Œd S r»   ©Úincluder¹  s     r>   rh   z'Model._check_indexes.<locals>.<genexpr>¤  s$   è è € ÐCÐC¨�e”mÐCÐCÐCÐCÐCÐCrA   z1%s does not support indexes with non-key columns.zQNon-key columns will be ignored. Silence this warning if you don't care about it.zmodels.W040Úsupports_expression_indexesc              3   ó$   K  — | ]}|j         V — Œd S r»   )Úcontains_expressionsr¹  s     r>   rh   z'Model._check_indexes.<locals>.<genexpr>´  s%   è è € ÐPÐP°U�eÔ0ÐPÐPÐPÐPÐPÐPrA   z+%s does not support indexes on expressions.zKAn index won't be created. Silence this warning if you don't care about it.zmodels.W043c                 ó,   — g | ]}|j         D ]\  }}|‘ŒŒS r;   )Úfields_orders)r[   rÛ   r±   rK  s       r>   r]   z(Model._check_indexes.<locals>.<listcomp>Á  s@   € ð 
ð 
ð 
ØÀÔATð
ð 
Ù5=°U¸AˆEð
ð 
ð 
ð 
rA   c                 ó&   — g | ]}|j         D ]}|‘ŒŒS r;   r¼  )r[   rÛ   r½  s      r>   r]   z(Model._check_indexes.<locals>.<listcomp>Ä  s'   € ÐWÐWÐW˜uÈÌÐWÐW¸g�7ÐWÐWÐWÐWrA   rš   )r‘   ra   rš   rJ   Úisdigitr3  r	   r|  rú   Úmax_name_lengthrÀ  Úexpressionsr“   rú  r   r„  r   r/  r¶  r…  rÒ   rw  r†  rº  r¾  r  r³  )	r�   r[  r  Ú
referencesrÛ   rû  rî   r   r‹   s	            r>   ri  zModel._check_indexesn  sš  € ð ˆÝ‘U”Uˆ
Ø”YÔ&ð 	ð 	ˆEð Œz˜!Œ} Ò#Ð# u¤z°!¤}×'<Ò'<Ñ'>Ô'>Ð#Ø—’Ý”Lð'Ø).¬ñ4àØ(ð	ñ ô ñô ð õ �5”:‰Œ Ô!6Ò6Ð6Ø—’Ý”Lð&Ø).¬°UÔ5JÐ(KñLàØ(ð	ñ ô ñô ð ð Ô)ð Ø"'Ô"3ð ð �JØ×%Ò%ð &ð &Ø*-×*BÒ*BÀ:Ñ*NÔ*Nð&ñ &ô &ñ ô ð ð øð ð 3	ñ 3	ˆBÝÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJàÔ#Ô<ðà-°´Ô1OÐOÐOÝÐQÐQ¸s¼yÔ?PÐQÑQÔQÑQÔQð Pà—’Ý”NØFØ$Ô1ñ2ð:ð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô=ðà.°#´)Ô2PÐPÐPÝÐCÐC°´Ô1BÐCÑCÔCÑCÔCð Qà—’Ý”NØKØ$Ô1ñ2ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô?ðà0°C´IÔ4RÐRÐRÝÐPÐP¸c¼iÔ>OÐPÑPÔPÑPÔPð Sà—’Ý”NØEØ$Ô1ñ2ð:ð  Ø(ð	ñ 	ô 	ñô ð ùð
ð 
Ø"œyÔ0ð
ñ 
ô 
ˆð 	ÐWÐW¨¬	Ô(9ÐWÑWÔWÑWˆØ�*ÑˆØ�Š�c×-Ò-¨f°iÑ@Ô@ÑAÔAÐAØˆrA   c                 ó
  — ddl m} i }| j                             d¬¦  «        D ]&}|||j        <   t          |d¦  «        r
|||j        <   Œ'g }|D �]2}	 ||         }t          |j        |j	        ¦  «        r5| 
                    t          j        d|›d|›d|›d	�| d
¬¦  «        ¦  «         Œ[t          ||j        ¦  «        r4| 
                    t          j        |›d|›d|›d�| d¬¦  «        ¦  «         Œ¤|| j        j        vr?| 
                    t          j        d|›d|›d| j        j        ›d	�d| d¬¦  «        ¦  «         Œò# t           $ r5 | 
                    t          j        d|›d|›d	�| d¬¦  «        ¦  «         Y �Œ0w xY w|S )Nr   )ÚmodelsFr©  rÿ   rs  z' refers to a ManyToManyField 'z.', but ManyToManyFields are not permitted in 'rl   zmodels.E013r‚  z! refers to a CompositePrimaryKey z0, but CompositePrimaryKeys are not permitted in rH   zmodels.E048z' refers to field 'z' which is not local to model 'z4This issue may be caused by multi-table inheritance.zmodels.E016rr  z#' refers to the nonexistent field 'zmodels.E012)Ú	django.dbrÉ  ra   r«  rJ   rS   rÿ   rZ   r�   ÚManyToManyRelr3  r	   r|  r    rˆ   r+  r  )r�   r‹   ÚoptionrÉ  Úforward_fields_mapr±   r  rh  s           r>   r³  zModel._check_local_fieldsÉ  sX  € à$Ð$Ð$Ð$Ð$Ð$ð  ÐØ”Y×*Ò*°5Ð*Ñ9Ô9ð 	:ð 	:ˆEØ-2Ð˜uœzÑ*Ý�u˜iÑ(Ô(ð :Ø49Ð" 5¤=Ñ1øàˆØ ð 1	ñ 1	ˆJð0Ø*¨:Ô6�õ ˜eÔ0°&Ô2FÑGÔGð !Ø—M’MÝœ˜ð !'  Ø * 
 
Ø &  ðð !$Ø,ð
ñ 
ô 
ñô ð ð õ    vÔ'AÑBÔBð Ø—M’MÝœØ%ð 8ð 8Ø)ð8ð 8à,2ð8ð 8ð 8ð !$Ø,ðñ ô ñô ð ð ð  #¤)Ô"8Ð8Ð8Ø—M’MÝœ˜à'- v v¨z¨z¨z¸3¼9Ô;PÐ;PÐ;PðRà!WØ #Ø,ðñ ô ñô ð øøõM ð ð ð Ø—’Ý”L�Lð #˜F˜FØ&˜J˜Jðð
  Ø(ðñ ô ñ
ô 
ð 
ð 
ñ 
ðøøøð^ ˆs   ÁEÅ;F Å?F c           
      óÖ  — | j         j        rt          j        d| d¬¦  «        gS | j         j        s| j         j        sg S t          | j         j        t          t          f¦  «        st          j        d| d¬¦  «        gS g }| j         j        }d„ |D ¦   «         }d„ |D ¦   «         }g }g }|D ]6}t          |v r| 
                    |¦  «         Œ!| 
                    |¦  «         Œ7|}|D ]â}| }d}|                     t          ¦  «        D ]Á}		 |	d	k    r|j         j        }n|j                              |	¦  «        }|j        r|j        d
         j        j        }nd}ŒR# t$          t&          f$ r\ |�*|                     |	¦  «        €B|                     |	¦  «        €-| 
                    t          j        d|z  | d¬¦  «        ¦  «         Y Œ¾w xY wŒãd„ |D ¦   «         }g }
| j         }t-          t/          j        d„ t/          |j        |j        ¦  «        D ¦   «         ¦  «        ¦  «        }|
                     ||z
  ¦  «         |
D ]/}| 
                    t          j        d|z  | d¬¦  «        ¦  «         Œ0|S )ze
        Check "ordering" option -- is it a list of strings and do all fields
        exist?
        z?'ordering' and 'order_with_respect_to' cannot be used together.zmodels.E021r‚  zQ'ordering' must be a tuple or list (even if you want to order by only one field).zmodels.E014c              3   óP   K  — | ]!}t          |t          ¦  «        ¯|d k    ¯|V — Œ"dS )ú?N)rZ   r1  ro   s     r>   rh   z(Model._check_ordering.<locals>.<genexpr>*	  s5   è è € ÐGÐG˜¥z°!µSÑ'9Ô'9ÐG¸aÀ3ºh¸h�!¸h¸h¸h¸hÐGÐGrA   c              3   ó@   K  — | ]}|                      d ¦  «        V — ŒdS )rá  N)Úremoveprefixro   s     r>   rh   z(Model._check_ordering.<locals>.<genexpr>-	  s.   è è € Ð6Ð6¨!�!—.’. Ñ%Ô%Ð6Ð6Ð6Ð6Ð6Ð6rA   Nr  éÿÿÿÿzJ'ordering' refers to the nonexistent field, related field, or lookup '%s'.zmodels.E015c                 ó   — h | ]
}|d k    ¯|’ŒS rP  r;   ro   s     r>   rq   z(Model._check_ordering.<locals>.<setcomp>W	  s   € Ð1Ð1Ð1˜ q¨D¢y y�! y y yrA   c              3   ó‚   K  — | ]:}|j         r|j        r|j        |j        fn|j                             ¦   «         fV — Œ;d S r»   )ru   ÚconcreterJ   rÿ   r±   Úrelated_query_namero   s     r>   rh   z(Model._check_ordering.<locals>.<genexpr>`	  sk   è è € ð  ð  ð ð œNð9Ø34´:ð9�Q”V˜QœYÐ'Ð'àœ'×4Ò4Ñ6Ô6Ð8ð	 ð  ð  ð  ð  ð  rA   )ra   Ú_ordering_clashr	   r|  rÇ   rj   rZ   rz  r„   r   r3  rŒ  r  r  rX  Ú
path_infosÚto_optsr�   r   ÚAttributeErrorÚget_transformÚ
get_lookupr‘   r   Úfrom_iterabler‹   r]  r  )r�   r  r‹   Ú_fieldsÚrelated_fieldsrp   r±   Ú_clsÚfldÚpartÚinvalid_fieldsrÖ   Úvalid_fieldsÚinvalid_fields                 r>   rj  zModel._check_ordering
	  s)  € ð Œ9Ô$ð 	å”ØUØØ$ðñ ô ðð ð Œ9Ô*ð 	°#´)Ô2Dð 	ØˆIå˜#œ)Ô,­tµU¨mÑ<Ô<ð 	å”ð'àØ$ð	ñ ô ðð ð ˆØ”Ô#ˆð HÐG˜VÐGÑGÔGˆð 7Ð6¨vÐ6Ñ6Ô6ˆð ˆØˆØð 	"ð 	"ˆAÝ˜QˆˆØ×%Ò% aÑ(Ô(Ð(Ð(à—’˜qÑ!Ô!Ð!Ð!Øˆð $ð 	ð 	ˆEØˆDØˆCØŸš¥JÑ/Ô/ð ð �ðà˜t’|�|Ø"œjœm˜˜à"œj×2Ò2°4Ñ8Ô8˜Ø”ð $Ø"œ~¨bÔ1Ô9Ô?˜˜à#˜øøÝ)­>Ð:ð ð ð Ø�{Ø×)Ò)¨$Ñ/Ô/Ð7¸C¿NºNÈ4Ñ<PÔ<PÐ<XàŸšÝ"œLð!AØCHñ!Ià$'Ø#0ð	ñ ô ñô ð øøð	øøøðð4 2Ð1˜VÐ1Ñ1Ô1ˆð ˆð ŒyˆÝÝÔð  ð  õ ˜tœ{¨DÔ,@ÑAÔAð ñ  ô  ñ ô ñ	
ô 	
ˆð 	×Ò˜f |Ñ3Ñ4Ô4Ð4à+ð 	ð 	ˆMØ�MŠMÝ”ð-Ø/<ñ=àØ$ð	ñ ô ñô ð ð ð ˆs   ÄAEÅA*GÇGc                 óò  — |sg S g }d}d}|D ]^}t          j        || ¦  «        sŒt          |         }|j                             ¦   «         }|�|j        j        rŒM|€|}|}ŒT||k     r|}|}Œ_|€|S | j        j        D ]Z}|j	        €Q|j
        x}	�Ht          |	¦  «        |k    r5|                     t          j        d|	›d|›d|›d�d| d¬¦  «        ¦  «         Œ[| j        j        D ]“}t!          |j        j        t&          ¦  «        rŒ"|j        j        j        j        D ]Z}
|
j	        €Q|
j
        x}�Ht          |¦  «        |k    r5|                     t          j        d	|›d|›d|›d�d
| d¬¦  «        ¦  «         Œ[Œ”|S )z–
        Check that any auto-generated column names are shorter than the limits
        for each database in which the model will be created.
        Nz.Autogenerated column name too long for field "z". Maximum length is "z" for database "z".z/Set the column name manually using 'db_column'.zmodels.E018rr  z2Autogenerated column name too long for M2M field "z\Use 'through' to create a separate model for M2M and then set column_name using 'db_column'.zmodels.E019)r   r„  r   ÚopsrÅ  r/  Útruncates_namesra   rˆ   Ú	db_columnr   rú   r3  r	   r|  r‰   rZ   r�   rˆ  r1  )r�   r[  r  Úallowed_lenÚdb_aliasrî   r   rÅ  rp   r¢  Úm2mÚrel_names               r>   ra  zModel._check_long_column_namesw	  s  € ð ð 	ØˆIØˆØˆØˆð ð 	"ð 	"ˆBåÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJØ(œn×<Ò<Ñ>Ô>ˆOØÐ&¨*Ô*=Ô*MÐ&ØàÐ&Ø"1�KØ!�H�HØ$ {Ò2Ð2Ø"1�KØ!�HøàÐØˆMà”Ô'ð 	ð 	ˆAð ”Ð#Ø$%¤HÐ,�[Ð9Ý˜Ñ$Ô$ {Ò2Ð2à—’Ý”L�Lð '˜;˜;¨¨¨°X°X°Xð?ð OØØ(ðñ ô ñ	ô 	ð 	øð ”Ô-ð 	ð 	ˆAå˜!œ.Ô0µ#Ñ6Ô6ð Øð ”~Ô-Ô3Ô@ð ð �à”MÐ)Ø%(¤ZÐ/˜Ð<Ý˜H™œ¨Ò3Ð3à—M’MÝœ˜ð  (˜x˜x¨¨¨°h°h°hð@ð!Rð !$Ø,ð
ñ 
ô 
ñô ð øðð( ˆrA   c              #   óR  K  — t          |t          ¦  «        r†|j        D ]|}t          |t          ¦  «        rJ|\  }}t          |                     t
          ¦  «        ¦  «        V — |                      |¦  «        E d {V —† Œa|                      |¦  «        E d {V —† Œ}d S t          |t          ¦  «        r0t          |j                             t
          ¦  «        ¦  «        V — d S t          |d¦  «        r2| 
                    ¦   «         D ]}|                      |¦  «        E d {V —† Œd S d S )NÚget_source_expressions)rZ   r)   Úchildrenr„   rŒ  r   rú  r(   rJ   rS   rð  )r�   ÚexprÚchildÚlookuprT   Úsrc_exprs         r>   rú  zModel._get_expr_referencesÇ	  sg  è è € å�d�AÑÔð 	>Øœð ?ð ?�Ý˜e¥UÑ+Ô+ð ?Ø$)‘M�F˜EÝ §¢­ZÑ 8Ô 8Ñ9Ô9Ð9Ð9Ð9Ø"×7Ò7¸Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>à"×7Ò7¸Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ð?ð ?õ ˜�aÑ Ô ð 	>Ý˜œ	Ÿš­
Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ý�TÐ3Ñ4Ô4ð 	>Ø ×7Ò7Ñ9Ô9ð >ð >�Ø×3Ò3°HÑ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ð	>ð 	>ð>ð >rA   c                 óÊ   — g }|D ]]}t          j        || ¦  «        sŒt          |         }| j        j        D ]+}|                     |                     | |¦  «        ¦  «         Œ,Œ^|S r»   )r   r„  r   ra   r&  r  Ú_check)r�   r[  r  rî   r   r+  s         r>   rk  zModel._check_constraints×	  s   € àˆØð 	Bð 	BˆBÝÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJØ!œiÔ3ð Bð B�
Ø—’˜j×/Ò/°°ZÑ@Ô@ÑAÔAÐAÐAðBàˆrA   r»   )NNN)FFFNN)FNFFNNr  )NTT)JrD   rE   rF   r  Úclassmethodr  r?   rC   r"  r&  r/  r(  r?  rA  rD  rã   r  r$  rK  rd  rf  ri  r�  rƒ  Úalters_datar”  r˜  r�  rŸ  r   r¹  r½  r‰  rÓ  rÖ  rÜ  rî  rÈ   r  r  r  r  r	  r
  r  r:  r2  rM  rR  rU  rT  r)  rl  rn  rm  r\  r]  r^  r_  r`  rb  rc  rg  rd  re  rf  rh  ri  r³  rj  ra  rú  rk  r^   rä   s   @r>   rñ   rñ   Í  sZ  ø€ € € € € ðp2ð p2ð p2ð p2ð p2ðd ð
ð 
ñ „[ð
ð<ð <ð <ðEð Eð Eð!ð !ð !ðð ð ð
1ð 1ð 1ðð ð ð"$ð $ð $ð,.ð .ð .ð .ð;ð ;ð ;ð 
ˆ�+˜{Ñ	+Ô	+€Bð
ð 
ð 
ð 
ð
ð 
ð 
ðQ/ð Q/ð Q/ð Q/ðf
ð 
ð 
ð 
ð
,ð ,ð ,ð$"Oð "Oð "OðV ØØØðM
ð M
ð M
ð M
ð M
ð^ €DÔð ØØØð
ð 
ð 
ð 
ð 
ð2 €EÔàðð ñ „[ðð* ØØØØðDð Dð Dð DðL !€IÔð HLð-ð -ð -ð -ðb ØØØØØð^ð ^ð ^ð ^ð@,ð ,ð ,ð8
ð 
ð 
ð4ð 4ð 4ð 4ðl	"ð 	"ð 	"ð 	"ð €FÔð
ð 
ð 
ð 
ð €GÔð
ð 
ð 
ðð ð ð*(ð (ð (ð.ð ð ð ðBMð Mð Mðð ð ð*ð *ð *ð *ð B*ð B*ð B*ð B*ðH/ð /ð /ðbð ð ð>
ð 
ð 
ð"ð ð ð@ð ð ð*ð *ð *ð *ð(-*ð -*ð -*ð -*ð^*ð *ð *ð *ð8 ð#ð #ñ „[ð#ðJ ðð ñ „[ðð> ð8ð 8ñ „[ð8ðt ðð ñ „[ðð, ðð ñ „[ðð4 ð
ð 
ñ „[ð
ð ðð ñ „[ðð ðð ñ „[ðð ð!ð !ñ „[ð!ðF ðð ñ „[ðð$ ðCð Cñ „[ðCðJ ðð ñ „[ðð0 ðð ñ „[ðð. ðð ñ „[ðð( ðð ñ „[ðð ðð ñ „[ðð: ðXð Xñ „[ðXðt ð>ð >ñ „[ð>ð@ ðjð jñ „[ðjðX ðMð Mñ „[ðMð^ ð>ð >ñ „[ð>ð ðð ñ „[ðð ð ð ð rA   rñ   )Ú	metaclassc                 óð   ‡— ‰j         j        }|                     | ¦  «        } ‰j                             |¦  «        j        di |¤Ž                     ˆfd„t          |¦  «        D ¦   «         dg¦  «         d S )Nc                 ó0   •— g | ]\  }} ‰||¬ ¦  «        ‘ŒS ))r  r°  r;   )r[   rê  r  Úordered_objs      €r>   r]   z$method_set_order.<locals>.<listcomp>î	  s,   ø€ ÐNÐNÐN©i¨e°Rˆˆ˜ 5Ð	)Ñ	)Ô	)ÐNÐNÐNrA   r°  r;   )ra   rÇ   Úget_forward_related_filterrÅ   rT  rV  Úbulk_updater~  )r=   rý  Úid_listrU  Ú	order_wrtrÁ  s    `    r>   Úmethod_set_orderr  ê	  s‹   ø€ ØÔ!Ô7€IØ×6Ò6°tÑ<Ô<€KØ0€KÔ×"Ò" 5Ñ)Ô)Ô0Ð?Ð?°;Ð?Ð?×KÒKØNÐNÐNÐN½9ÀWÑ;MÔ;MÐNÑNÔNØ	ˆ
ñô ð ð ð rA   c                 ó´   — |j         j        }|                     | ¦  «        }|j         j        j        } |j        j        di |¤Ž                     |d¬¦  «        S )NT)Úflatr;   )ra   rÇ   rþ  r  rJ   rÅ   rV  Úvalues_list)r=   rý  r  rÁ  Úpk_names        r>   Úmethod_get_orderr  ó	  s]   € ØÔ!Ô7€IØ×6Ò6°tÑ<Ô<€KØÔÔ"Ô'€GØ%ˆ;ÔÔ%Ð4Ð4¨Ð4Ð4×@Ò@ÀÈtÐ@ÑTÔTÐTrA   c                 óþ   — t          |d| j                             ¦   «         z  t          t          | ¦  «        ¦  «         t          |d| j                             ¦   «         z  t          t
          | ¦  «        ¦  «         d S )Nzget_%s_orderzset_%s_order)r¼   rD   Úlowerr   r  r  )r�   r¨  s     r>   rË   rË   ú	  s€   € ÝØØ˜œ×-Ò-Ñ/Ô/Ñ/ÝÕ&¨Ñ.Ô.ñô ð õ
 ØØ˜œ×-Ò-Ñ/Ô/Ñ/ÝÕ&¨Ñ.Ô.ñô ð ð ð rA   c                 óx   — t          | t          ¦  «        rt          j        | Ž }n| }|                     |¦  «        S )z7Used to unpickle Model subclasses with deferred fields.)rZ   r„   r   r‰  r|   )Úmodel_idr�   s     r>   r,  r,  
  s;   € å�(�EÑ"Ô"ð Ý” Ð)ˆˆð ˆØ�=Š=˜ÑÔÐrA   Tr»   )`rx   rQ   r;  Úcollectionsr   Ú	functoolsr   Ú	itertoolsr   Úasgiref.syncr   r)  Údjango.appsr   Údjango.confr   Údjango.corer	   Údjango.core.exceptionsr
   r   r   r   r   r   rÊ  r   r   r   r   r   r   Údjango.db.modelsr   r   r   r   r   Údjango.db.models.constantsr   Údjango.db.models.deletionr   r   Údjango.db.models.expressionsr   Ú!django.db.models.fields.compositer    Údjango.db.models.fields.relatedr!   r"   r#   r$   Údjango.db.models.functionsr%   Údjango.db.models.managerr&   Údjango.db.models.optionsr'   Údjango.db.models.queryr(   r)   Údjango.db.models.signalsr*   r+   r,   r-   r.   Údjango.db.models.utilsr/   r0   Údjango.utils.deprecationr1   Údjango.utils.encodingr2   Údjango.utils.hashabler3   Údjango.utils.textr4   r5   Údjango.utils.translationr6   rK  r8   rø   rN   rU   rI   rW   ræ   rí   rñ   r  r  rË   r,  Ú__safe_for_unpickle__r;   rA   r>   ú<module>r&     sx  ðØ €€€Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð WÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø =Ð =Ð =Ð =Ð =Ð =Ø +Ð +Ð +Ð +Ð +Ð +Ø /Ð /Ð /Ð /Ð /Ð /Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ð"ð "ð "ð "ð "ñ "ô "ð "ð ˆ8‰:Œ:€ðð ð ð$Pð Pð Pð
X)ð X)ð X)ð X)ð X)�ñ X)ô X)ð X)ðv
ð ð ð ð ñ ô ð ð	5ð 	5ð 	5ð 	5ð 	5ñ 	5ô 	5ð 	5ðS ð S ð S ð S ð S ˆJ )ð S ñ S ô S ð S ðz@ð ð ð ðUð Uð Uð
ð 
ð 
ð$ ð  ð  ð (,€Ô $Ð $Ð $rA   