§
    ¤”j˜ ã                   ó„  — 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	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*m+Z+ d dl,m-Z-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lJmKZKmLZL d dlMmNZO  G d„ d¦  «        ZP eP¦   «         ZQd„ ZRd„ ZS G d„ deT¦  «        ZU G d „ d!¦  «        ZV G d"„ d#¦  «        ZW G d$„ d%eDeU¬&¦  «        ZXd,d'„ZYd(„ ZZd)„ Z[d*„ Z\d+e\_]        dS )-é    N)Ú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)ÚCheckConstraintÚUniqueConstraint)ÚCASCADEÚ	Collector)ÚDatabaseDefaultÚRawSQL)Ú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)Ú	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    úd/var/www/finuniver-perm.ru/html/portfolio/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   E   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   W   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>d   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>a  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%   Úmodelr1   Ú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___   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_classq  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._preparew  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dDd„Zd„ Z eee¦  «        Zd„ ZdEd„ZdEd„Zd„ Z	 dFd„Zde_        	 dFd„Zde_        ed„ ¦   «         Z	 	 	 	 	 dGd„Zde_        	 dDd„Z	 	 	 	 	 	 dHd„Zd„ Zd„ ZdDd„ZdId„Zde_        dId„Z de _        d„ Z!d„ Z"d „ Z#dDd!„Z$d"„ Z%d#„ Z&dDd$„Z'dId%„Z(d&„ Z)d'„ Z*d(„ Z+d)„ Z,d*„ Z-dDd+„Z.dJd,„Z/dDd-„Z0ed.„ ¦   «         Z1ed/„ ¦   «         Z2ed0„ ¦   «         Z3ed1„ ¦   «         Z4ed2„ ¦   «         Z5ed3„ ¦   «         Z6ed4„ ¦   «         Z7ed5„ ¦   «         Z8ed6„ ¦   «         Z9ed7„ ¦   «         Z:ed8„ ¦   «         Z;ed9„ ¦   «         Z<ed:„ ¦   «         Z=ed;„ ¦   «         Z>ed<„ ¦   «         Z?ed=„ ¦   «         Z@ed>„ ¦   «         ZAed?„ ¦   «         ZBed@„ ¦   «         ZCedA„ ¦   «         ZDedB„ ¦   «         ZEedC„ ¦   «         ZFˆ xZGS )KÚ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        |vr|	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>6  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__Ì  sn  ø€ àŒ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Ø %ÐàŒ} FÐ*Ð*¨u¬|Ð/CÀuÄÐ/CØØð *Ý˜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   ÆF6Æ6
HÇGÇHÇG=Ç:HÇ<G=Ç=HÈHÈH"È"IÉIËK.Ë.LÌ L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>B  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__K  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__N  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__Q  sW   € Ý˜%¥Ñ'Ô'ð 	"Ý!Ð!ØŒ:Ô$¨¬Ô(BÒBÐBØ�5Ø”ˆØˆ=Ø˜5�=Ð Ø˜œÒ Ð rA   c                 óV   — | j         €t          d¦  «        ‚t          | j         ¦  «        S )Nz8Model instances without primary key value are unhashable)r  r‡   Úhashr<   s    r>   Ú__hash__zModel.__hash__[  s&   € ØŒ7ˆ?ÝÐ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__`  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=   Ústater/  ÚattrrT   s        r>   r&  zModel.__getstate__f  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.r/  )rÏ   r   r'  r(  ÚwarningsÚwarnÚRuntimeWarningr}   r0  r”   r“   )r=   r3  Úpickled_versionr4  rT   s        r>   Ú__setstate__zModel.__setstate__w  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                 ó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           	      ó`  ‡	— |€i | _         nft          | dd¦  «        }|D ]}||v r||= |                     |¦  «         Œ|sdS t          d„ |D ¦   «         ¦  «        rt	          dt
          z  ¦  «        ‚d| i}| j        j                             ||¬¦  «         	                    | j
        ¬¦  «        }|                      ¦   «         Š	|�t          |¦  «        } |j        |Ž }n$‰	r"ˆ	fd	„| j        j        D ¦   «         } |j        |Ž }|                     ¦   «         }|                     ¦   «         }| j        j        D ]f}|j        |v rŒt%          | |j        t          ||j        ¦  «        ¦  «         |j        r*|                     | ¦  «        r|                     | ¦  «         Œg| j        j        D ],}|                     | ¦  «        r|                     | ¦  «         Œ-| j        j        D ]3}|j        r*|                     | ¦  «        r|                     | ¦  «         Œ4|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   •— g | ]}|j         ‰v¯|j         ‘ŒS r;   )rþ   )r[   rp   Údeferred_fieldss     €r>   r]   z)Model.refresh_from_db.<locals>.<listcomp>Í  s2   ø€ ð ð ð àØ”9 OÐ3Ð3ð ”	à3Ð3Ð3rA   )rG  r   ÚremoverÒ   rÓ   r   r¹   rß   Ú
db_managerÚfilterr  rE  ÚlistÚonlyra   rú   rÏ   rþ   r¼   Úis_relationÚ	is_cachedÚdelete_cached_valueÚrelated_objectsrŠ   rø   rî   )
r=   Úusingr‹   Úprefetched_objects_cacher±   rI  Údb_instance_qsÚdb_instanceÚnon_loaded_fieldsrL  s
            @r>   Úrefresh_from_dbzModel.refresh_from_db£  s   ø€ ð ˆ>Ø-/ˆDÔ*Ð*å'.¨tÐ5PÐRTÑ'UÔ'UÐ$Øð )ð )�ØÐ4Ð4Ð4Ø0°Ð7Ø—M’M %Ñ(Ô(Ð(øØð Ø�ÝÐ3Ð3¨FÐ3Ñ3Ô3Ñ3Ô3ð Ý ð1Ý3=ñ>ñô ð ð
 ˜TÐ"ˆØœÔ5×@Ò@Ø˜ð Añ 
ô 
ç
Š&�D”Gˆ&Ñ
Ô
ð 	ð
 ×2Ò2Ñ4Ô4ˆØÐÝ˜&‘\”\ˆFØ0˜^Ô0°&Ð9ˆNˆNØð 	:ðð ð ð àœÔ3ðñ ô ˆFð
 1˜^Ô0°&Ð9ˆNà$×(Ò(Ñ*Ô*ˆØ'×;Ò;Ñ=Ô=ÐØ”ZÔ/ð 	0ð 	0ˆEØŒ}Ð 1Ð1Ð1àÝ�D˜%œ-­°¸e¼mÑ)LÔ)LÑMÔMÐMàÔ ð 0 U§_¢_°TÑ%:Ô%:ð 0Ø×)Ò)¨$Ñ/Ô/Ð/øð ”ZÔ/ð 	0ð 	0ˆEØ�Š˜tÑ$Ô$ð 0Ø×)Ò)¨$Ñ/Ô/Ð/øð ”ZÔ.ð 	0ð 	0ˆEØÔ ð 0 U§_¢_°TÑ%:Ô%:ð 0Ø×)Ò)¨$Ñ/Ô/Ð/øà$Ô+Ô.ˆŒŒˆˆrA   c              ƒ   óP   K  —  t          | j        ¦  «        ||¬¦  «        ƒ d {V —†S )N)rV  r‹   )r   r[  )r=   rV  r‹   s      r>   Úarefresh_from_dbzModel.arefresh_from_dbë  s8   è è € Ø8•] 4Ô#7Ñ8Ô8¸uÈVÐTÑTÔTÐTÐTÐTÐTÐTÐTÐTrA   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   ‚ �:¹:Fc                 óÆ  ‡ — ‰                       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    rtt          ¦   «         }‰ j        j        D ]3}|j        s*t          |d	¦  «        s|                     |j        ¦  «         Œ4| 	                    |¦  «        }	|	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)Ú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   rD  s     €r>   rq   zModel.save.<locals>.<setcomp>  s@   ø€ ð )
ð )
ð )
àØŒy ¤Ð-Ð-°!´+ÀÐ2FÐ2Fð ŒIà2FÐ2FÐ2FrA   Nz_The following fields do not exist in this model, are m2m fields, or are non-concrete fields: %srÀ   Úthrough)rV  Úforce_insertÚforce_updateÚupdate_fields)Ú _prepare_related_fields_for_saver   Údb_for_writer¹   rÓ   ra   rú   Ú	frozensetÚ_non_pk_concrete_field_namesÚ
differencerÍ   rø   rî   r‘   Úprimary_keyrS   r•   rþ   Ú	save_base)
r=   rg  rh  rV  ri  Údeferred_non_generated_fieldsr­   Únon_model_fieldsr±   Úloaded_fieldss
   `         r>   rb  z
Model.saveÿ  sÔ  ø€ ð 	×-Ò-¸VÐ-ÑDÔDÐDàÐK�Ô,¨T¬^ÀdÐKÑKÔKˆØð 	W˜\ð 	W¨]ð 	WÝÐUÑVÔVÐVð)
ð )
ð )
ð )
à”ZÔ/ð)
ñ )
ô )
Ð%ð
 Ð$ð !ð Ø�å% mÑ4Ô4ˆMØœ*ÔAˆKØ,×7Ò7¸ÑDÔDÐàð Ý ð=à—i’iÐ 0Ñ1Ô1ñ2ñô ð ðð ð	9à-ð	9ð ˜œœÒ'Ð'å™%œ%ˆKØœÔ3ð 3ð 3�ØÔ(ð 3µ¸À	Ñ1JÔ1Jð 3Ø—O’O E¤MÑ2Ô2Ð2øØ'×2Ò2Ð3PÑQÔQˆMØð 9Ý )¨-Ñ 8Ô 8�à�ŠØØ%Ø%Ø'ð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
rA   Tc              ƒ   óT   K  —  t          | j        ¦  «        ||||¬¦  «        ƒ d {V —†S )N)rg  rh  rV  ri  )r   rb  )r=   rg  rh  rV  ri  s        r>   ÚasavezModel.asave?  sU   è è € ð .•] 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�   rg  Úmembers      r>   Ú_validate_force_insertzModel._validate_force_insertK  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.
        rd  N)rÆ   ré   ÚrawrV  ri  F)rV  Ú	savepoint)rV  )rÆ   ré   Úcreatedri  r{  rV  )r   rk  r¹   ra   r…   rŒ   ru   r/   rÕ   r—   r   ÚatomicÚmark_for_rollback_on_errorry  Ú_save_parentsÚ_save_tablerø   rî   rï   r-   )r=   r{  rg  rh  rV  ri  r�   Úoriginr¨   Úcontext_managerÚparent_insertedÚupdateds               r>   rp  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�   rV  ri  rg  Úupdated_parents)r�   rV  ri  rg  T)ra   r—   r~   r   r  rþ   r¼   rÏ   r€  r�  rw  r>  rS  rT  )r=   r�   rV  ri  rg  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         Šd„ ‰j        D ¦   «         }‰rˆfd„|D ¦   «         }‰                      ‰¦  «        }|€5‰j                             ‰ ¦  «        }t          ‰ ‰j        j        |¦  «         |duŠ‰s|s‰rt          d¦  «        ‚d}	‰sN|sL‰ j        j	        r@‰j        j
        r‰j        j
        t          us‰j        j        r‰j        j        t          urd}‰ro|sm|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 | ]}|j         °	|j        °|‘ŒS r;   )ro  r   ro   s     r>   r]   z%Model._save_table.<locals>.<listcomp>ä  s<   € ð !
ð !
ð !
àØ”=ð!
ð *+¬ð!
Øð!
ð !
ð !
rA   c                 ó8   •— g | ]}|j         ‰v s	|j        ‰v ¯|‘ŒS r;   )rJ   rþ   )r[   rp   ri  s     €r>   r]   z%Model._save_table.<locals>.<listcomp>ë  s<   ø€ ð %ð %ð %àØ”6˜]Ð*Ð*¨a¬i¸=Ð.HÐ.Hð à.HÐ.HÐ.HrA   Nz5Cannot force an update in save() with no primary key.FTc                 ó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>  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.Ú_orderé   )Ú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   Úlocal_concrete_fieldsr>  r  Úget_pk_value_on_saver¼   rþ   rÓ   rø   rï   Údefaultr   Ú
db_defaultrß   rV  Ú
_do_updater   rÇ   Úget_filter_kwargs_for_objectrO  Ú	aggregater&   r   r   r   r   rŽ  Údb_returning_fieldsÚ
_do_insertrý   )r=   r{  r�   rg  rh  rV  ri  Únon_pks_non_generatedÚpk_valr…  Úbase_qsr  Úforced_updater±   Úfilter_argsr‹   Úreturning_fieldsÚresultsrT   r¨   r”  s   ``    `            @@r>   r�  zModel._save_tableÖ  sz  øøøøø€ ð Œyˆð!
ð !
àÔ/ð!
ñ !
ô !
Ðð ð 	ð%ð %ð %ð %à.ð%ñ %ô %Ð!ð ×!Ò! $Ñ'Ô'ˆØˆ>Ø”W×1Ò1°$Ñ7Ô7ˆFÝ�D˜$œ'œ/¨6Ñ2Ô2Ð2Ø˜tÐ#ˆØð 	V˜<ð 	V¨=ð 	VÝÐTÑUÔUÐUØˆð ð		 à ð		 ð ”Ô"ð		 ð
 ””ð		 ð
 &*¤W¤_½LÐ%HÐ%HØ”GÔ&ð &IØ+/¬7Ô+=Å\Ð+QÐ+Qð  ˆLàð 	X˜,ð 	XØÔ'×-Ò-¨eÑ4Ô4ˆGðð ð ð ð ð /ðñ ô ˆFð *Ð9¨\ˆMØ—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).
        rJ  Nr   )rO  Úexistsra   Úselect_on_saveÚ_update)r=   r   rV  rŸ  r  ri  r¡  Úfiltereds           r>   r™  zModel._do_update7  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£  rV  r{  )Ú_insert)r=   rÚ   rV  r‹   r£  r{  s         r>   r�  zModel._do_insertS  s0   € ð
 �ŠØˆFØØ-ØØð ñ 
ô 
ð 	
rA   c                 ó  — | j         j        D ]ý}|r||vrŒ	|j        rí|                     | ¦  «        rØt	          | |j        d ¦  «        }|sŒ>|j        €@|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 ]o}|r||vrŒ	|j        r_|                     | ¦  «        rJt!          |d¦  «        r:|                     | d ¬¦  «        }|r!|j        €t          |› d|j        › d�¦  «        ‚Œpd S )NzB() prohibited to prevent data loss due to unsaved related object 'rl   Úfk_field)r—  )ra   rú   rR  rS  r   rJ   r  r�   ÚmultiplerT  rÓ   rþ   Úempty_valuesr¼   r@  rŠ   rS   Úget_cached_value)r=   rc  r‹   r±   r¦   s        r>   rj  z&Model._prepare_related_fields_for_save`  s  € ð
 ”ZÔ/ð  	4ð  	4ˆEØð ˜% vÐ-Ð-Øð Ô ð 4 U§_¢_°TÑ%:Ô%:ð 4Ý˜d E¤J°Ñ5Ô5�Øð Øð ”6�>à Ô-Ô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Ð,Ñ@Ô@�Øð ˜3œ6˜>Ý$Ø)ð Bð BØ38´:ðBð Bð Bñô ð øð	ð 	rA   c                 ó   — | j         €.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.rd  )rV  r‚  )Úkeep_parents)r  rÓ   ra   r)  rþ   r   rk  r¹   r   ÚcollectÚdelete)r=   rV  r²  Ú	collectors       r>   r´  zModel.delete–  s›   € ØŒ7ˆ?Ýà"œ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)rV  r²  )r   r´  )r=   rV  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                 ó|  — | j         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   ÚANDÚORr¹   râ   rV  rø   rî   rO  Ú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³  s_  € ØŒwð 	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	 Ä	2D;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__%sr�  r;   )rS   ra   rÇ   rš  r¹   râ   rO  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        }ˆˆ ˆfd„|j        D ¦   «         }d‰vrt          ‰ j        |j        ¦  «        |d<   |S )Nc                 ó®   •— i | ]Q}|j         ‰v¯|j        °|j         t          ‰|j        ¦  «        xŠrt	          ‰d ¦  «        r‰nt          ‰|¦  «        “ŒRS )Úresolve_expression)rJ   r   r   rþ   rS   r   )r[   r±   Úexcluder=   rT   s     €€€r>   ú
<dictcomp>z3Model._get_field_expression_map.<locals>.<dictcomp>ã  s|   ø€ ð 	
ð 	
ð 	
ð ØŒz Ð(Ð(°´Ð(ð ŒJå$ T¨5¬=Ñ9Ô9Ð9�Eð)å˜EÐ#7Ñ8Ô8ð)��õ ˜5 %Ñ(Ô(ð )Ð(Ð(rA   r  )r‘   ra   r•  r   r  )r=   r¨   rÖ  Ú	field_maprT   s   ` ` @r>   Ú_get_field_expression_mapzModel._get_field_expression_mapß  s€   øøø€ Øˆ?Ý‘e”eˆGØÐ!�t”zˆð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð Ô3ð	
ñ 	
ô 	
ˆ	ð �wÐÐÝ# D¤G¨T¬WÑ5Ô5ˆI�d‰OØÐrA   c                 óŒ   — | j         €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_saveñ  sG   € ØŒ7ˆ?ÝØ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.cleanø  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_errorsÚkÚvs           r>   Úvalidate_uniquezModel.validate_unique  s«   € ð
 &*×%<Ò%<ÀWÐ%<Ñ%MÔ%MÑ"ˆ�{à×,Ò,¨]Ñ;Ô;ˆØ×/Ò/°Ñ<Ô<ˆà×%Ò%Ñ'Ô'ð 	/ð 	/‰DˆAˆqØ×Ò˜a Ñ$Ô$×+Ò+¨AÑ.Ô.Ð.Ð.àð 	*Ý! &Ñ)Ô)Ð)ð	*ð 	*rA   c                 óÐ  ‡— ‰€t          ¦   «         Šg }| j        | j        j        fg}g }|r| j        | j        j        fg}| 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                             ¦   «         D ]#}|                     ||j        j
        f¦  «         Œ$|D ]¿\  }}|D ]·}|j        }|‰v rŒ|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>4  s'   øè è € ÐMÐM°4˜t w˜ÐMÐMÐMÐMÐMÐMrA   ÚdateÚyearÚmonth)r‘   r¹   ra   Úunique_togetherÚtotal_unique_constraintsÚget_parent_listr1  rÒ   r„   r‹   rˆ   rJ   Ú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   s    `               r>   rá  zModel._get_unique_checks  sP  ø€ ð ˆ?Ý‘e”eˆGØˆà!œ^¨T¬ZÔ-GÐHÐIÐØˆØ#ð 	RØ œN¨D¬JÔ,OÐPÐQˆKØ œJ×6Ò6Ñ8Ô8ð 	ð 	ˆ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×6Ò6Ñ8Ô8ð 	Vð 	VˆLØ×$Ò$ l°LÔ4FÔ4SÐ%TÑUÔUÐUÐUà#4ð 	Yð 	YÑˆK˜Øð Yð Y�Ø”v�Ø˜7�?�?ØØ”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 �]a\  }}i }|D ]q}| j                              |¦  «        }t          | |j        ¦  «        }|�|dk    rt          j        j        rŒK|j        r| j        j	        sŒ_||t          |¦  «        <   Œrt          |¦  «        t          |¦  «        k    rŒ� |j        j        di |¤Ž}	|                      |j         ¦  «        }
| j        j	        s|
�|	                     |
¬¦  «        }	|	                     ¦   «         r`t          |¦  «        dk    r	|d         }nt"          }|                     |g ¦  «                             |                      ||¦  «        ¦  «         �Œc|S )NrÁ  rJ  r�  r   r;   )ra   r  r   rþ   r   ÚfeaturesÚ!interprets_empty_strings_as_nullsro  rø   rï   Ústrrù   râ   rO  r>  rÖ  r¦  r	   rä  r1  Úunique_error_message)r=   ræ  rè  rÿ  Úunique_checkÚlookup_kwargsr_  rp   Úlookup_valuerÎ  Úmodel_class_pkÚkeys               r>   râ  zModel._perform_unique_checksP  s•  € Øˆà)6ð *	ñ *	Ñ%ˆK˜ð ˆMØ*ð >ð >�
Ø”J×(Ò(¨Ñ4Ô4�Ý& t¨Q¬YÑ7Ô7�àÐ'Ø  BÒ&Ð&Ý"Ô+ÔMð 'ð Ø”=ð ¨¬Ô);ð àØ1=��c *™oœoÑ.Ð.õ �<Ñ Ô ¥C¨Ñ$6Ô$6Ò6Ð6Øà4�Ô-Ô4ÐEÐE°}ÐEÐEˆBð "×-Ò-¨kÔ.?Ñ@Ô@ˆNØ”;Ô%ð 3¨.Ð*DØ—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"| j        �|	 	                    | j        ¬¦  «        }	|	 
                    ¦   «         r>|                     |g ¦  «                             |                      |||¦  «        ¦  «         �Œ
|S )Nrñ  z%s__dayz	%s__monthz%s__yearrÅ  rJ  r;   )r   Údayró  rò  râ   rO  rø   rï   r  rÖ  r¦  rä  r1  Údate_error_message)
r=   rç  rè  rÿ  Úlookup_typer±   Ú
unique_forr
  rñ  rÎ  s
             r>   rã  zModel._perform_date_checks�  sU  € ØˆØ;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  r_  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–   r	  r�  r   r  r÷  r  c                 ó^   •— g | ])}t          ‰                     |¦  «        j        ¦  «        ‘Œ*S r;   )r4   r  r  )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   r  rù   r  r   r  r5   Ú_)r=   rÿ  r	  r  r±   r   rÖ   s         @r>   r  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                             ¦   «         D ]/}|j        j        r!|                     ||j        j        f¦  «         Œ0|S r»   )r¹   ra   rý  rö  r1  )r=   rý  rþ  s      r>   Úget_constraintszModel.get_constraintsÑ  sj   € Øœ¨¬
Ô(>Ð?Ð@ˆØ œJ×6Ò6Ñ8Ô8ð 	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 )Nrd  )rÖ  rV  r  r÷  r�  r   )r#  r   rk  r¹   Úvalidater   r   rù   r‹   rä  r1  Úupdate_error_dict)	r=   rÖ  rý  rV  rè  rÿ  r  r  Úes	            r>   Úvalidate_constraintszModel.validate_constraintsØ  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   r&  rÞ  r	   r•   rì  r(  )r=   rÖ  rì  r(  rè  r'  rJ   s          r>   Ú
full_cleanzModel.full_cleanì  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_valuer'  s         r>   r*  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_index_togetherÚ_check_unique_togetherÚ_check_indexesÚ_check_orderingÚ_check_constraintsÚ_check_default_pkÚ_check_db_table_comment)r�   rŸ   rè  r1  Úclash_errorss        r>   r   zModel.check7  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   ÚWarningrG  r¹   rF   rÞ   s    r>   rC  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                 ó  — | 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¦   rJ  )ra   Údb_table_commentr   Úallow_migrate_modelr   r  rO  Úrequired_db_featuresr1  r   rM  Údisplay_name)r�   r1  rè  rî   r   s        r>   rD  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©rJ  rH   ú'z' references 'z0', which has not been installed, or is abstract.zmodels.E002)ra   r†   r   Ú	get_modelrÓ   r1  r   ÚErrorÚ	swappableÚLookupErrorÚsplit)r�   rè  rb   r–   s       r>   r2  zModel._check_swappable”  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.E017rV  )ra   r…   rˆ   r‰   r1  r   rY  rD   ©r�   rè  s     r>   r3  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>   r4  zModel._check_managers¼  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>   r5  zModel._check_fieldsÄ  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�   rf  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.E003rP  )
ra   r‰   r�   r�   rf  Úthrough_fieldsr1  r   rY  r‚   )r�   rè  Úseen_intermediary_signaturesr‹   rp   Ú	signatures         r>   r6  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 rV  )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   rJ  zP'id' can only be used as a field name if the field also sets 'primary_key=True'.zmodels.E004rP  )ra   rˆ   ro  r  rJ   r   rY  )r�   r‹   s   ` r>   r8  zModel._check_id_fieldò  s‰   ø€ ð
ð 
ð 
ð 
Ø”yÔ-ð
ñ 
ô 
ˆð ð 
	˜& œ)Ô/ð 
	°C´I´LÔ4EÈÒ4MÐ4Må”ð/àØ$ð	ñ ô ðð ð ˆIrA   c                 óÖ  — g }i }| 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                              ¦   «         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.E005rP  z' from model 'zmodels.E006rJ  )ra   rö  rˆ   rÏ   rJ   rþ   r1  r   rY  r�   Ú
get_fieldsr—   r  )r�   rè  Úused_fieldsr¯   rp   Úclashrv   Úid_conflicts           r>   r9  zModel._check_field_name_clashes  s  € ð ˆØˆð ”i×/Ò/Ñ1Ô1ð 	+ð 	+ˆ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×/Ò/Ñ1Ô1ð 	,ð 	,ˆ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 ]l}|                     ¦   «         \  }}|r<||v r8|                     t	          j        d|j        ›d|›d�d| d¬¦  «        ¦  «         ŒW|                     |¦  «         Œm|S )NzField 'z' has column name 'z ' that is used by another field.z$Specify a 'db_column' for the field.zmodels.E007rH  )ra   rˆ   Úget_attname_columnr1  r   rY  rJ   )r�   Úused_column_namesrè  rp   r!  Úcolumn_names         r>   r=  z Model._check_column_name_clashesK  sº   € ð ÐØˆà”Ô'ð 	6ð 	6ˆAØ×1Ò1Ñ3Ô3‰NˆAˆ{ð ð 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 )Nr!  zgThe model name '%s' cannot start or end with an underscore as it collides with the query lookup syntax.zmodels.E023rP  zbThe model name '%s' cannot contain double underscores as it collides with the query lookup syntax.zmodels.E024)rD   Ú
startswithÚendswithr1  r   rY  r   )r�   rè  r–   s      r>   r:  z)Model._check_model_name_db_lookup_clashesd  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   óZ   K  — | ]&}|j         r|j        ®|                     ¦   «         V — Œ'd S r»   )rR  Úrelated_modelÚget_attnamero   s     r>   rh   zLModel._check_property_name_related_field_accessor_clashes.<locals>.<genexpr>€  sJ   è è € ð #
ð #
àØŒ}ð#
ð "#¤Ð!<ð �MŠM‰OŒOà!<Ð!<Ð!<Ð!<ð#
ð #
rA   F©Úreversez8The property '%s' clashes with a related field accessor.zmodels.E025rP  )ra   r  Ú_get_fieldsr1  r   rY  )r�   rè  r  Úrelated_field_accessorsÚaccessors        r>   r;  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 )r�  N)ro  ro   s     r>   rh   z2Model._check_single_primary_key.<locals>.<genexpr>”  s)   è è € ÐBÐB�Q°A´MÐBˆqÐBÐBÐBÐBÐBÐBrA   r�  zBThe model cannot have more than one field with 'primary_key=True'.zmodels.E026rP  )Úsumra   rˆ   r1  r   rY  r^  s     r>   r<  zModel._check_single_primary_key‘  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 "index_together" option.z)'index_together' must be a list or tuple.zmodels.E008rP  c              3   óP   K  — | ]!}t          |t          t          f¦  «         V — Œ"d S r»   ©rZ   r„   rP  ©r[   r‹   s     r>   rh   z.Model._check_index_together.<locals>.<genexpr>¬  sD   è è € ð 
ð 
Ø6<•
˜6¥E­4 =Ñ1Ô1Ð1ð
ð 
ð 
ð 
ð 
ð 
rA   z6All 'index_together' elements must be lists or tuples.zmodels.E009Úindex_together)
rZ   ra   r†  r„   rP  r   rY  rÒ   rå  Ú_check_local_fields©r�   rè  r‹   s      r>   r>  zModel._check_index_together   sì   € õ ˜#œ)Ô2µU½D°MÑBÔBð 	å”Ø?ØØ$ðñ ô ðð õ ð 
ð 
Ø@CÄ	Ô@Xð
ñ 
ô 
ñ 
ô 
ð 	õ ”ØLØØ$ðñ ô ðð ð ˆFØœ)Ô2ð Qð Q�Ø—’˜c×5Ò5°fÐ>NÑOÔOÑPÔPÐPÐPØˆMrA   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.E010rP  c              3   óP   K  — | ]!}t          |t          t          f¦  «         V — Œ"d S r»   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„   rP  r   rY  rÒ   rå  r‡  rˆ  s      r>   r?  zModel._check_unique_together½  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   r!  z@The index name '%s' cannot start with an underscore or a number.zmodels.E033rP  z8The index name '%s' cannot be longer than %d characters.zmodels.E034c              3   ó&   K  — | ]}|d          V — ŒdS )r   Nr;   )r[   Úrefs     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.W037rH  Ú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±   r!  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>1  s'   € ÐWÐWÐW˜uÈÌÐWÐW¸g�7ÐWÐWÐWÐWrA   rš   )r‘   ra   rš   rJ   Úisdigitr1  r   rY  rù   Úmax_name_lengthr˜  Úexpressionsr“   Ú_get_expr_referencesr   rR  r   r  rŽ  rS  rÒ   rM  rT  r’  r–  rå  r‡  )	r�   r1  rè  Ú
referencesrÛ   Ú
expressionrî   r   r‹   s	            r>   r@  zModel._check_indexesÛ  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                 ót  — ddl m} i }| j                             d¬¦  «        D ]&}|||j        <   t          |d¦  «        r
|||j        <   Œ'g }|D ]è}	 ||         }t          |j        |j	        ¦  «        r5| 
                    t          j        d|›d|›d|›d	�| d
¬¦  «        ¦  «         ŒZ|| j        j        vr?| 
                    t          j        d|›d|›d| j        j        ›d	�d| d¬¦  «        ¦  «         Œ¨# t          $ r4 | 
                    t          j        d|›d|›d	�| d¬¦  «        ¦  «         Y Œåw xY w|S )Nr   )ÚmodelsFrz  rþ   rW  z' refers to a ManyToManyField 'z.', but ManyToManyFields are not permitted in 'rl   zmodels.E013rP  z' refers to field 'z' which is not local to model 'z4This issue may be caused by multi-table inheritance.zmodels.E016rH  z#' refers to the nonexistent field 'zmodels.E012)Ú	django.dbr£  ra   r|  rJ   rS   rþ   rZ   r�   ÚManyToManyRelr1  r   rY  rˆ   r)  r  )r�   r‹   Úoptionr£  Úforward_fields_mapr±   rè  r_  s           r>   r‡  zModel._check_local_fields6  sÝ  € à$Ð$Ð$Ð$Ð$Ð$ð  ÐØ”Y×*Ò*°5Ð*Ñ9Ô9ð 	:ð 	:ˆEØ-2Ð˜uœzÑ*Ý�u˜iÑ(Ô(ð :Ø49Ð" 5¤=Ñ1øàˆØ ð '	ð '	ˆJð&Ø*¨:Ô6�õ ˜eÔ0°&Ô2FÑGÔGð Ø—M’MÝœ˜ð !'  Ø * 
 
Ø &  ðð !$Ø,ð
ñ 
ô 
ñô ð ð ð  #¤)Ô"8Ð8Ð8Ø—M’MÝœ˜à'- v v¨z¨z¨z¸3¼9Ô;PÐ;PÐ;PðRà!WØ #Ø,ðñ ô ñô ð øøõ9 ð ð ð Ø—’Ý”L�Lð #˜F˜FØ&˜J˜Jðð
  Ø(ðñ ô ñ
ô 
ð 
ð 
ð 
ðøøøðJ ˆs   ÁC7Ã7;D5Ä4D5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.E021rP  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   r  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 rJ  r;   ro   s     r>   rq   z(Model._check_ordering.<locals>.<setcomp>º  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   rY  rÇ   rj   rZ   rP  r„   r   r1  r\  r  r  rR  Ú
path_infosÚto_optsr�   r
   ÚAttributeErrorÚget_transformÚ
get_lookupr‘   r   Úfrom_iterabler‹   rU  rå  )r�   rè  r‹   Ú_fieldsÚrelated_fieldsrp   r±   Ú_clsÚfldÚpartÚinvalid_fieldsrÖ   Úvalid_fieldsÚinvalid_fields                 r>   rA  zModel._check_orderingm  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                 ó2  — |sg S g }d}d}|D ]^}t          j        || ¦  «        sŒt          |         }|j                             ¦   «         }|�|j        j        rŒM|€|}|}ŒT||k     r|}|}Œ_|€|S | j        j        D ]j}| 	                    ¦   «         \  }	}
|j
        €J|
�Ht          |
¦  «        |k    r5|                     t          j        d|
›d|›d|›d�d| d¬¦  «        ¦  «         Œk| j        j        D ]£}t!          |j        j        t&          ¦  «        rŒ"|j        j        j        j        D ]j}| 	                    ¦   «         \  }	}|j
        €J|�Ht          |¦  «        |k    r5|                     t          j        d	|›d|›d|›d�d
| d¬¦  «        ¦  «         ŒkŒ¤|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.E018rH  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   rR  r   Úopsr�  r  Útruncates_namesra   rˆ   rp  Ú	db_columnrù   r1  r   rY  r‰   rZ   r�   rf  r  )r�   r1  rè  Úallowed_lenÚdb_aliasrî   r   r�  rp   r!  rr  Úm2mÚrel_names                r>   r7  zModel._check_long_column_namesÚ  s-  € ð ð 	ØˆIØˆØˆØˆð ð 	"ð 	"ˆBåÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJØ(œn×<Ò<Ñ>Ô>ˆOØÐ&¨*Ô*=Ô*MÐ&ØàÐ&Ø"1�KØ!�H�HØ$ {Ò2Ð2Ø"1�KØ!�HøàÐØˆMà”Ô'ð 	ð 	ˆAØ×1Ò1Ñ3Ô3‰NˆAˆ{ð
 ”Ð#ØÐ+Ý˜Ñ$Ô$ {Ò2Ð2à—’Ý”L�Lð '˜;˜;¨¨¨°X°X°Xð?ð OØØ(ðñ ô ñ	ô 	ð 	øð ”Ô-ð 	ð 	ˆAå˜!œ.Ô0µ#Ñ6Ô6ð Øð ”~Ô-Ô3Ô@ð ð �Ø!×4Ò4Ñ6Ô6‘��8à”MÐ)Ø Ð,Ý˜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        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¬¦  «        ¦  «         |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¬¦  «        ¦  «         t%          t'          j        d„ | j        j        D ¦   «         ¦  «        ¦  «        }t%          ¦   «         }| j        j        D �]§}t+          |t,          ¦  «        rµ|j        j        sd| j        j        vrGt+          |j        t0          ¦  «        r-|                     |                      |j        ¦  «        ¦  «         |j        j        sd| j        j        vr9|j        r2|j        D ]*}|                     |                      |¦  «        ¦  «         Œ+ŒÍt+          |t:          ¦  «        rÅ|j        j        sd| j        j        vr«t+          |j        t0          ¦  «        r-|                     |                      |j        ¦  «        ¦  «         t          d„ |j                             ¦   «         D ¦   «         ¦  «        r4| 	                    t          j        d|j         ›d�d| d ¬¦  «        ¦  «         �Œ©|D �]^}	}
|	d!k    r| !                    |	¦  «         |
sŒ#	 |	d!k    r| j        j"        }n| j         #                    |	¦  «        }|j$        r|j%        s|j&        rŒgn# tN          $ r Y Œtw xY w|
d"         }tQ          |d#¦  «        r}tQ          |d$¦  «        rm| )                    |¦  «        €X| *                    |¦  «        €C| 	                    t          j+        d%tY          j-        |	g|
z   ¦  «        z  | d&¬'¦  «        ¦  «         �Œ| .                    |  /                    |d(¦  «        ¦  «         �Œú|S ))NÚ supports_table_check_constraintsc              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r»   )rZ   r   ©r[   r  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>G	  s@   è è € ð ð àõ ˜:¥Ñ7Ô7ðð ð ð ð ð rA   z&%s does not support check constraints.zOA constraint won't be created. Silence this warning if you don't care about it.zmodels.W027rH  rŽ  c              3   óR   K  — | ]"}t          |t          ¦  «        o|j        d uV — Œ#d S r»   )rZ   r   r�  rÓ  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>Z	  sS   è è € ð ð ð õ ˜:Õ'7Ñ8Ô8ð 5ØÔ(°Ð4ðð ð ð ð ð rA   z7%s does not support unique constraints with conditions.zmodels.W036Ú&supports_deferrable_unique_constraintsc              3   óR   K  — | ]"}t          |t          ¦  «        o|j        d uV — Œ#d S r»   )rZ   r   Ú
deferrablerÓ  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>o	  sS   è è € ð ð ð õ ˜:Õ'7Ñ8Ô8ð 6ØÔ)°Ð5ðð ð ð ð ð rA   z2%s does not support deferrable unique constraints.zmodels.W038r’  c              3   óN   K  — | ] }t          |t          ¦  «        o|j        V — Œ!d S r»   )rZ   r   r•  rÓ  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>ƒ	  sI   è è € ð ð àõ ˜:Õ'7Ñ8Ô8ÐO¸ZÔ=Oðð ð ð ð ð rA   z<%s does not support unique constraints with non-key columns.zmodels.W039r–  c              3   óN   K  — | ] }t          |t          ¦  «        o|j        V — Œ!d S r»   )rZ   r   r˜  rÓ  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>–	  sN   è è € ð ð ð õ ˜:Õ'7Ñ8Ô8ð 4ØÔ3ðð ð ð ð ð rA   z6%s does not support unique constraints on expressions.zmodels.W044Ú*supports_nulls_distinct_unique_constraintsc              3   óR   K  — | ]"}t          |t          ¦  «        o|j        d uV — Œ#d S r»   )rZ   r   Únulls_distinctrÓ  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>­	  sS   è è € ð ð ð õ ˜:Õ'7Ñ8Ô8ð :ØÔ-°TÐ9ðð ð ð ð ð rA   z;%s does not support unique constraints with nulls distinct.zmodels.W047c              3   ób   K  — | ]*}t          |t          ¦  «        ¯g |j        ¢|j        ¢R V — Œ+d S r»   )rZ   r   r‹   r•  rÓ  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>¿	  sZ   è è € ð $ð $à"Ý! *Õ.>Ñ?Ô?ð$Ø=�jÔ'Ð=¨*Ô*<Ð=Ð=ð$ð $ð $ð $ð $ð $rA   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r»   )rZ   r!   )r[   rÌ  s     r>   rh   z+Model._check_constraints.<locals>.<genexpr>á	  s@   è è € ð ð à $õ ' t­VÑ4Ô4ðð ð ð ð ð rA   zCheck constraint zS contains RawSQL() expression and won't be validated during the model full_clean().z0Silence this warning if you don't care about it.zmodels.W045r  r   r¶  r·  z.'constraints' refers to the joined field '%s'.zmodels.E041rP  rý  )0r   rR  r   r  rÑ  ra   rS  rÒ   rý  r1  r   rM  rT  rŽ  rÕ  r’  r–  rÚ  r‘   r   r¸  rZ   r   r�  r*   r“   rŸ  r˜  rž  r   r   ÚflattenrJ   r•   r  r  rR  Úmany_to_manyÚone_to_manyr
   rS   r¶  r·  rY  r   rÍ   rå  r‡  )r�   r1  rè  rî   r   r‹   r   r  r¡  r_  Úlookupsr±   Úfirst_lookups                r>   rB  zModel._check_constraints=	  sÝ  € àˆØð R	Jñ R	JˆBÝÔ-¨b°#Ñ6Ô6ð ØÝ$ RœˆJàÔ#ÔDðà5¸¼Ô9WÐWÐWÝð ð à"%¤)Ô"7ðñ ô ñ ô ð Xð
 —’Ý”NØ@Ø$Ô1ñ2ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô<ðà-°´Ô1OÐOÐOÝð ð ð #&¤)Ô"7ðñ ô ñ ô ð Pð —’Ý”Nð&Ø(2Ô(?ñ@ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#ÔJðà;Ø”9Ô1ð2ð 2åð ð ð #&¤)Ô"7ðñ ô ñ ô ð2ð —’Ý”NØLØ$Ô1ñ2ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô=ðà.°#´)Ô2PÐPÐPÝð ð à"%¤)Ô"7ðñ ô ñ ô ð Qð
 —’Ý”Nð#Ø%/Ô%<ñ=ðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#Ô?ðà0°C´IÔ4RÐRÐRÝð ð ð #&¤)Ô"7ðñ ô ñ ô ð Sð —’Ý”Nð'Ø)3Ô)@ñAðBð  Ø(ð	ñ 	ô 	ñô ð ð Ô#ÔNðð AØ”yÔ5ð6ð 6õ ð ð ð #&¤)Ô"7ðñ ô ñ ô ð6ð —’Ý”Nð*Ø,6Ô,CñDðBð  Ø(ð	ñ 	ô 	ñô ð õ ÝÔ#ð $ð $à&)¤iÔ&;ð$ñ $ô $ñ ô ñô ˆFõ ™œˆJØ!œiÔ3ð +ñ +�
Ý˜jÕ*:Ñ;Ô;ð *à"Ô+ÔDðà5Ø"œyÔ=ð>ð >å$ ZÔ%9½1Ñ=Ô=ð>ð #×)Ò)Ø×4Ò4°ZÔ5IÑJÔJñô ð ð #Ô+ÔGðTà8Ø"œyÔ=ð>ð >à$Ô9ð>ð +5Ô*@ð Tð T˜JØ&×-Ò-¨c×.FÒ.FÀzÑ.RÔ.RÑSÔSÐSÐSøÝ 
­OÑ<Ô<ð à"Ô+ÔLðà=Ø"œyÔ=ð>ð >õ & jÔ&6½Ñ:Ô:ð Ø&×-Ò-Ø #× 8Ò 8¸Ô9IÑ JÔ Jñô ð õ ð ð à(2Ô(8×(@Ò(@Ñ(BÔ(Bðñ ô ñ ô ð ð #ŸMšMÝ &¤ð%F¸
¼ð %Fð %Fð %Fð).ð ),Ø'4ð
!"ñ 
!"ô 
!"ñô ð ùð )3ð ñ Ð$�
˜Wà Ò%Ð%Ø—J’J˜zÑ*Ô*Ð*Øð àðØ! TÒ)Ð)Ø #¤	¤˜˜à #¤	× 3Ò 3°JÑ ?Ô ?˜Ø Ô,ð !°Ô0Bð !ÀeÔFWð !Ø ð!øå(ð ð ð Ø�Hðøøøð  ' qœz�å˜E ?Ñ3Ô3ðå  |Ñ4Ô4ðð ×+Ò+¨LÑ9Ô9ÐAØ×(Ò(¨Ñ6Ô6Ð>à—M’MÝœØLÝ(œo¨z¨l¸WÑ.DÑEÔEñFà #Ø,ð	ñ ô ñô ð ùð �MŠM˜#×1Ò1°&¸-ÑHÔHÑIÔIÐIÑIØˆs   Ó)AT-Ô-
T:Ô9T:r»   )NN)FFNN)FFFNN)FNFFNNr  )NTT)HrD   rE   rF   r  Úclassmethodr  r?   rC   r!  r$  r-  r&  r<  r>  rA  rã   r  rE  r[  r]  r`  rb  Úalters_dataru  ry  rp  r€  r�  r™  r�  rj  r´  r·  r½  rÏ  rÈ   rÙ  rÜ  rÞ  rì  rá  râ  rã  r  r  r#  r(  r+  r*  r   rC  rD  r2  r3  r4  r5  r6  r8  r9  r=  r:  r;  r<  r>  r?  r@  r‡  rA  r7  rŸ  rB  r^   rä   s   @r>   rñ   rñ   Ë  s  ø€ € € € € ðp2ð p2ð p2ð p2ð p2ðd ð
ð 
ñ „[ð
ð<ð <ð <ðEð Eð Eð!ð !ð !ðð ð ð
1ð 1ð 1ðð ð ð"$ð $ð $ð,.ð .ð .ð .ð;ð ;ð ;ð 
ˆ�+˜{Ñ	+Ô	+€Bð
ð 
ð 
ðF/ð F/ð F/ð F/ðPUð Uð Uð Uð,ð ,ð ,ð$ QUð<
ð <
ð <
ð <
ð| €DÔð QUð
ð 
ð 
ð 
ð €EÔàðð ñ „[ðð* ØØØØðDð Dð Dð DðL !€IÔð HLð-ð -ð -ð -ðb ØØØØØð_ð _ð _ð _ðB,ð ,ð ,ð8
ð 
ð 
ð4ð 4ð 4ð 4ðl	"ð 	"ð 	"ð 	"ð €FÔð
ð 
ð 
ð 
ð €GÔð
ð 
ð 
ðð ð ð*(ð (ð (ð.ð ð ð ð$Mð Mð Mðð ð ð*ð *ð *ð *ð =*ð =*ð =*ð =*ð~/ð /ð /ðbð ð ð>
ð 
ð 
ð"ð ð ð@ð ð ð*ð *ð *ð *ð(-*ð -*ð -*ð -*ð^*ð *ð *ð *ð8 ð#ð #ñ „[ð#ðJ ðð ñ „[ðð> ðð ñ „[ðð, ðð ñ „[ðð4 ð
ð 
ñ „[ð
ð ðð ñ „[ðð ðð ñ „[ðð ð!ð !ñ „[ð!ðF ðð ñ „[ðð$ ðCð Cñ „[ðCðJ ðð ñ „[ðð0 ðð ñ „[ðð. ðð ñ „[ðð( ðð ñ „[ðð ðð ñ „[ðð8 ðð ñ „[ðð: ðXð Xñ „[ðXðt ð4ð 4ñ „[ð4ðl ðjð jñ „[ðjðX ðPð Pñ „[ðPðd ð>ð >ñ „[ð>ð ðUð Uñ „[ðUð Uð Uð Uð U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Å   rN  rO  Úbulk_updateÚ	enumerate)r=   ré  Úid_listrV  Ú	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Å   rO  Ú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�   rx  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   rX  r|   )Úmodel_idr�   s     r>   r*  r*  ?
  s;   € å�(�EÑ"Ô"ð Ý” Ð)ˆˆð ˆØ�=Š=˜ÑÔÐrA   Tr»   )^rx   rQ   r8  Ú	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.constraintsr   r   Údjango.db.models.deletionr   r   Údjango.db.models.expressionsr    r!   Ú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.utilsr0   r1   Údjango.utils.encodingr2   Údjango.utils.hashabler3   Údjango.utils.textr4   r5   Údjango.utils.translationr6   r!  r8   r÷   rN   rU   rI   rW   ræ   rí   rñ   rï  rô  rË   r*  Ú__safe_for_unpickle__r;   rA   r>   ú<module>r     s`  ðØ €€€Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð WÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ðð ð ð ð ð ð ð ð ð ð ð ð 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ðH!ð H!ð H!ð H!ð H!ˆJ )ð H!ñ H!ô H!ð H!ðdBð ð ð ðUð Uð Uð
ð 
ð 
ð$ ð  ð  ð (,€Ô $Ð $Ð $rA   