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

    The exception is created in a way that allows it to be pickled, assuming
    that the returned exception class will be added as an attribute to the
    'attached_to' class.
    ú.)rE   rF   )ÚtyperF   )ÚnameÚbasesÚmoduleÚattached_tos       r>   Úsubclass_exceptionrN   G   s-   € ô ØØà Ø'2×'?Ó'?ÁÐFñ	
óð rA   c                 óJ   — t        j                  | «       xr t        | d«      S )NÚcontribute_to_class)ÚinspectÚisclassÚhasattr)Úvalues    r>   Ú_has_contribute_to_classrU   Y   s!   € ä�‰˜uÓ%Ð%ÒO¬'°%Ð9NÓ*OÐOrA   c                   óN   ‡ — 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         ‰'| �  }|D �cg c]  }t        |t        «      sŒ|‘Œ }}|s || |||«      S |j	                  d«      }d|i}	|j	                  dd «      }
|
�|
|	d<   |j	                  dd «      }i }|j                  «       D ]  \  }}t        |«      r|||<   Œ||	|<   Œ  || |||	fi |¤Ž}t        |dd«      }|xs t        |dd «      }t        |dd «      }d }t        j                  |«      }t        |dd «      €"|€|st        d|›d	|›d
�«      ‚|j                  }|j                  dt        ||«      «       |sÌ|j                  dt        dt        d„ |D «       «      xs t         f||¬«      «       |j                  dt        dt        d„ |D «       «      xs t"        f||¬«      «       |rZ|j$                  sNt'        |d«      s|j(                  |j*                  _        t'        |d«      s|j,                  |j*                  _        |j*                  j.                  }|r)|r'|j0                  rt3        |›d|j0                  ›d�«      ‚|j                  «       D ]  \  }}|j                  ||«       Œ t5        |j*                  j6                  |j*                  j8                  |j*                  j:                  «      }|D �ch c]  }|j<                  ’Œ }}|rïd }|D �cg c]  }t'        |d«      sŒ|‘Œ c}D ]|  }|j*                  j$                  r%|j*                  j>                  rt3        d|z  «      ‚Œ>|€|}ŒC|j*                  j@                  |j*                  j@                  usŒpt3        d|z  «      ‚ |€t3        d|z  «      ‚|j*                  jC                  |«       |j*                  j@                  |j*                  _         n||j*                  _         i }tE        |g|z   «      D ]œ  }t'        |d«      sŒ||k7  r|j*                  j$                  sŒ,|j*                  j6                  D ]X  }t        |tF        «      sŒ|jH                  jJ                  sŒ+tM        ||jH                  jN                  «      }||tQ        |«      <   ŒZ Œž tS        «       }|jU                  «       D �]#  }||vst'        |d«      s|jW                  |jX                  «       Œ0|j*                  j6                  |j*                  j8                  z   } |j*                  j$                  �s| D ]T  }|j<                  |v r)t[        d|j<                  ›d|›d|j\                  ›d	�«      ‚|j_                  |j<                  «       ŒV |j*                  j@                  }tQ        |«      }!|!|v r||!   }ns|sod|j*                  j`                  z  }"tG        |tb        |"dd¬«      }|"|v rt[        d|"›d|›d|j\                  ›d �«      ‚t'        ||"«      s|j                  |"|«       nd }||j*                  jd                  |<   nè|j*                  jd                  jg                  «       }#| D ]š  }|j<                  |vsŒ|j<                  |jX                  vsŒ+|j<                  |vsŒ:tg        jh                  |«      }$|j                  |j<                  |$«       |jj                  sŒx|#j                  «       D ]  \  }}%||%k(  sŒ|$|#|<   Œ Œœ |j*                  jd                  jW                  |#«       |j*                  j:                  D ]ž  }|j<                  |v r@|j*                  j$                  rŒ(t[        d|j<                  ›d|›d|j\                  ›d	�«      ‚tg        jh                  |«      }|j*                  j$                  sd|_6        |j                  |j<                  |«       Œ  �Œ& |j*                  jn                  D �&cg c]  }&tg        jh                  |&«      ‘Œ c}&|j*                  _7        |rd|_        ||_8        |S |js                  «        |j*                  j                  ju                  |j*                  jv                  |«       |S c c}w c c}w c c}w c c}&w )!NrE   Ú__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   óx   K  — | ]2  }t        |d «      r$|j                  j                  s|j                  –— Œ4 y­w©r\   N)rS   r\   r[   r^   ©Ú.0Úxs     r>   ú	<genexpr>z$ModelBase.__new__.<locals>.<genexpr>—   s2   è ø€ ò àÜ" 1 gÔ.°q·w±w×7GÒ7Gð Ÿ�ñùó   ‚8:)rM   r   c              3   óx   K  — | ]2  }t        |d «      r$|j                  j                  s|j                  –— Œ4 y­wr`   )rS   r\   r[   r   ra   s     r>   rd   z$ModelBase.__new__.<locals>.<genexpr>¥   s4   è ø€ ò àÜ" 1 gÔ.°q·w±w×7GÒ7Gð ×1Õ1ñùre   ÚorderingÚget_latest_byz! cannot proxy the swapped model 'ú'.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.)<ÚsuperÚ__new__Ú
isinstancerW   ÚpopÚitemsrU   Úgetattrr   Úget_containing_app_configÚRuntimeErrorÚlabelÚadd_to_classr'   rN   Útupler   r   r[   rS   rg   r\   rh   ÚproxyÚswappedÚ	TypeErrorr   Úlocal_fieldsÚlocal_many_to_manyÚprivate_fieldsrJ   ÚfieldsÚconcrete_modelÚsetup_proxyÚreversedr"   Úremote_fieldrl   r$   Úmodelr0   ÚsetÚmroÚupdateÚ__dict__r   rD   ÚaddÚ
model_namer   ÚparentsÚcopyÚdeepcopyÚ
one_to_oneÚmti_inheritedÚindexesrZ   Ú_prepareÚregister_modelr]   )(ÚclsrJ   rK   ÚattrsÚkwargsÚ	super_newÚbrŠ   rL   Ú	new_attrsÚ	classcellÚ	attr_metaÚcontributable_attrsÚobj_nameÚobjÚ	new_classr[   ÚmetaÚ	base_metar]   Ú
app_configÚis_proxyÚ
new_fieldsÚfÚfield_namesÚbaseÚklsÚparentÚparent_linksÚfieldÚrelatedÚinherited_attributesÚparent_fieldsÚbase_keyÚ	attr_nameÚbase_parentsÚ	new_fieldrl   ÚidxÚ	__class__s(                                          €r>   rn   zModelBase.__new__a   s   ø€ Ü‘G‘Oˆ	ð $Ö@˜¤z°!´YÕ'?’1Ð@ˆÐ@ÙÙ˜S $¨¨uÓ5Ð5ð —‘˜<Ó(ˆØ! 6Ð*ˆ	Ø—I‘I˜o¨tÓ4ˆ	ØÐ Ø)2ˆI�oÑ&Ø—I‘I˜f dÓ+ˆ	ð !ÐØ"Ÿ[™[›]ò 	*‰MˆH�cÜ'¨Ô,Ø03Ð# HÒ-à&)�	˜(Ò#ð		*ñ
 ˜c 4¨°	ÑD¸VÑDˆ	ä˜9 j°%Ó8ˆØÒ<œG I¨v°tÓ<ˆÜ˜I w°Ó5ˆ	àˆ	ô ×3Ñ3°FÓ;ˆ
ä�4˜ dÓ+Ð3ØÐ!ÙÝ&ò .4²Tð;óð ð '×,Ñ,�	à×Ñ˜w¬°°iÓ(@ÔAÙØ×"Ñ"ØÜ"Ø"Üñ à!(ôó ò -ô
 +Ð,ØØ )ô
ôð ×"Ñ"Ø)Ü"Ø-Üñ à!(ôó ò 2ô
 0Ð1ØØ )ô
ôñ  ×!3Ò!3ô ˜t ZÔ0Ø/8×/AÑ/A�I—O‘OÔ,Ü˜t _Ô5Ø4=×4KÑ4K�I—O‘OÔ1à—?‘?×(Ñ(ˆñ ™	 i×&7Ò&7ÜÚ=AÀ9×CTÓCTÐUóð ð 1×6Ñ6Ó8ò 	2‰MˆH�cØ×"Ñ" 8¨SÕ1ð	2ô Ø�O‰O×(Ñ(Ø�O‰O×.Ñ.Ø�O‰O×*Ñ*ó
ˆ
ð
 (2Ö2 !�q—v“vÐ2ˆÐ2ñ ØˆDØ*1ÖK 3´W¸SÀ'Õ5Jš3ÒKò �Ø—<‘<×(Ò(Ø—|‘|×*Ò*Ü'ð>Ø@DñEóð ð
 !Ø�<Ø!‘DØ—\‘\×0Ñ0¸¿
¹
×8QÑ8QÒQÜ#ð!Ø#'ñ(óð ðð  ˆ|ÜØLÈtÑSóð ð �O‰O×'Ñ'¨Ô-Ø-1¯Z©Z×-FÑ-FˆI�O‰OÕ*à-6ˆI�O‰OÔ*ð ˆÜ˜i˜[¨7Ñ2Ó3ò 	DˆDä˜4 Ô)Øà�yÒ ¨¯©×)<Ò)<ØàŸ™×0Ñ0ò D�Ü˜e¤]Õ3¸×8JÑ8J×8VÓ8VÜ.¨y¸%×:LÑ:L×:RÑ:RÓS�GØ>C�LÔ!1°'Ó!:Ò;ñDð	Dô  #›uÐà—M‘M“Oó c	>ˆDØ˜7Ñ"¬'°$¸Ô*@ð %×+Ñ+¨D¯M©MÔ:Øà ŸJ™J×3Ñ3°d·j±j×6SÑ6SÑSˆMØ—:‘:×&Ó&ð +ò =�EØ—z‘z [Ñ0Ý(ð !&§
£
Ú $Ø $§£ðóð ð -×0Ñ0°·±Õ<ð=ð —z‘z×0Ñ0�Ü+¨DÓ1�Ø˜|Ñ+Ø(¨Ñ2‘EÙ!Ø (¨4¯:©:×+@Ñ+@Ñ @�IÜ)ØÜ")Ø&Ø%)Ø$(ô�Eð ! KÑ/Ý(ò
 !*Ú $Ø $§£ðó	ð 	ô # 9¨iÔ8Ø!×.Ñ.¨y¸%Õ@à �EØ05�	—‘×'Ñ'¨Ò-à#Ÿz™z×1Ñ1×6Ñ6Ó8�ð +ò E�EàŸ
™
¨+Ò5Ø!ŸJ™J¨i×.@Ñ.@Ò@Ø!ŸJ™JÐ.BÒBä$(§M¡M°%Ó$8˜	Ø!×.Ñ.¨u¯z©z¸9ÔEð !×+Ó+Ø7C×7IÑ7IÓ7Kò EÑ 3 ¨Ø#(¨KÓ#7Ø;D L°Ò$8ñEðEð  —‘×'Ñ'×.Ñ.¨|Ô<ð Ÿ™×2Ñ2ò >�Ø—:‘: Ñ,ØŸ:™:×.Ó.Ý(ð !&§
£
Ú $Ø $§£ðóð ô !ŸM™M¨%Ó0�EØŸ:™:×.Ò.Ø.2˜Ô+Ø×*Ñ*¨5¯:©:°uÕ=ò!>ðgc	>ðP +4¯/©/×*AÑ*Aö#
Ø#&ŒD�M‰M˜#Õò#
ˆ	�‰Ôñ ð "'ˆIÔØ&ˆIŒNØÐà×ÑÔØ�‰×Ñ×+Ñ+¨I¯O©O×,EÑ,EÀyÔQØÐùòW AùòL 3ùò
 Lùòd#
s"   �a4¦a4Ëa9Ë%a>Ë7a>ß(bc                 óZ   — t        |«      r|j                  | |«       y t        | ||«       y ©N)rU   rP   Úsetattr)r’   rJ   rT   s      r>   rv   zModelBase.add_to_classs  s&   € Ü# EÔ*Ø×%Ñ% c¨4Õ0ä�C˜˜uÕ%rA   c                 ó²  — | j                   }|j                  | «       |j                  r�t        | j                  d¬«      | _        t        | j                  d¬«      | _        |j                  j                  r3|j                  }|j                  j                  }t        t        | |«       | j                  €7| j                  ›ddj                  d„ |j                  D «       «      ›d�| _        t        j                   j#                  |j$                  «      }|rt'        | d	|«       |j(                  sWt+        d
„ |j                  D «       «      rt-        d| j                  z  «      ‚t/        «       }d|_        | j3                  d|«       | j                   j4                  D ]   }|j6                  rŒ|j9                  | «       Œ" t;        j<                  | ¬«       y)z7Create some methods once self._meta has been populated.T)Úis_nextFNú(ú, c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr´   ©rJ   ©rb   r£   s     r>   rd   z%ModelBase._prepare.<locals>.<genexpr>”  s   è ø€ Ò6 Q˜!Ÿ&�&Ñ6ùó   ‚ú)Úget_absolute_urlc              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)ÚobjectsNr»   r¼   s     r>   rd   z%ModelBase._prepare.<locals>.<genexpr>ž  s   è ø€ Ò<¨1�1—6‘6˜YÕ&Ñ<ùs   ‚zOModel %s must specify a custom Manager, because it has a field named 'objects'.rÁ   )Úsender)r\   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&   rk   rv   r�   rJ   Úset_name_with_modelr*   Úsend)r’   ÚoptsÚwrtÚremoteÚget_absolute_url_overrideÚmanagerÚindexs          r>   r�   zModelBase._preparey  s‹  € à�y‰yˆØ�‰�cÔà×%Ò%Ü$1Ø×2Ñ2¸Dô%ˆCÔ!ô )6Ø×2Ñ2¸Eô)ˆCÔ%ð ×)Ñ)×6Ò6Ø×0Ñ0�Ø×)Ñ)×/Ñ/�Ü&Ô'CÀSÈ&ÔQð �;‰;Ðà—“Ø—	‘	Ñ6¨$¯+©+Ô6Õ6ðˆCŒKô
 %-×$CÑ$C×$GÑ$GØ×Ñó%
Ð!ñ %Ü�CÐ+Ð-FÔGà�}Š}ÜÑ<°·±Ô<Ô<Ü ð-Ø/2¯|©|ñ<óð ô “iˆGØ#'ˆGÔ Ø×Ñ˜Y¨Ô0ð
 —Y‘Y×&Ñ&ò 	/ˆEØ—:“:Ø×)Ñ)¨#Õ.ð	/ô 	×Ñ 3Ö'rA   c                 ó.   — | j                   j                  S r´   )r\   Úbase_manager©r’   s    r>   Ú_base_managerzModelBase._base_manager°  s   € à�y‰y×%Ñ%Ð%rA   c                 ó.   — | j                   j                  S r´   )r\   Údefault_managerrÚ   s    r>   Ú_default_managerzModelBase._default_manager´  s   € à�y‰y×(Ñ(Ð(rA   )rD   rE   rF   rÈ   rn   rv   r�   ÚpropertyrÛ   rÞ   rY   ©r²   s   @r>   rW   rW   ^   s@   ø„ Ù#ôPòd&ò5(ðn ñ&ó ð&ð ñ)ó ô)rA   rW   c                   ó   — e Zd Zdd„Zy)Ú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y)Ú
ModelStatezStore model instance state.NT)rD   rE   rF   rÈ   ÚdbÚaddingrâ   rä   r;   rA   r>   ré   ré   Á  s   „ Ù%à	€Bð
 €FÙ2Ó4�LrA   ré   c                   ó<  ‡ — e Zd Zˆ fd„Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ ZdGd„Zd„ Z eee«      ZdGd„Zd„ ZdHd„ZdHd„Zd„ Zd„ Zddd
d
dœd„Zde_        ddd
d
dœd„Zde_        ed„ «       Z	 	 	 	 	 dId„Zde_        	 dGd„Z	 	 	 	 	 	 dJd„Zd„ Zd„ ZdGd„Z dKd„Z!de!_        dKd „Z"de"_        d!„ Z#d"„ Z$d#„ Z%dGd$„Z&d%„ Z'd&„ Z(dGd'„Z)dKd(„Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/dGd.„Z0dLd/„Z1dGd0„Z2ed1„ «       Z3ed2„ «       Z4ed3„ «       Z5ed4„ «       Z6ed5„ «       Z7ed6„ «       Z8ed7„ «       Z9ed8„ «       Z:ed9„ «       Z;ed:„ «       Z<ed;„ «       Z=ed<„ «       Z>ed=„ «       Z?ed>„ «       Z@ed?„ «       ZAed@„ «       ZBedA„ «       ZCedB„ «       ZDedC„ «       ZEedD„ «       ZFedE„ «       ZGedF„ «       ZHˆ xZIS )MÚModelc                 ó´  •— | j                   }| j                  }t        }t        }|j                  rt        d«      ‚t        j                  |||¬«       t        «       | _	        t        |«      t        |j                  «      kD  rt        d«      ‚|sCt        |j                  «      }t        ||«      D ]  \  }}	||u rŒ || |	j                  |«       Œ  n�t        |j                   «      }t        ||«      D ]i  \  }}	||u rŒ || |	j                  |«       |j#                  |	j$                  t&        «      t&        usŒFt        |j(                  › d|	j$                  › d�«      ‚ |D ]º  }	d}
|	j*                  �|	j,                  rŒ|rVt/        |	j0                  t2        «      r	 |j#                  |	j$                  «      }d}
n-	 |j#                  |	j                  «      }n|	j7                  «       }|
r|usŒ� || |	j$                  |«       Œ¢|usŒ§ || |	j                  |«       Œ¼ |r�|j8                  }d}|j;                  «       D ]:  \  }}||v r||usŒ || ||«       Œ	 |j=                  |«       ||usŒ1 || ||«       Œ< |r2d	jA                  d
„ |D «       «      }t        |jB                  › d|› �«      ‚tD        ‰| ��  «        tI        j                  || ¬«       y # t4        $ r@ 	 |j#                  |	j                  «      }n# t4        $ r |	j7                  «       }Y nw xY wY �Œ6w xY w# t4        $ r |	j7                  «       }Y �ŒVw xY w# t>        $ r
 ||fz  }Y �Œw xY w)Nz'Abstract models cannot be instantiated.)rÂ   Úargsr”   z'Number of args exceeds number of fieldsz8() got both positional and keyword arguments for field 'ri   FTr;   r¹   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr´   ©Úrepr)rb   Úns     r>   rd   z!Model.__init__.<locals>.<genexpr>8  s   è ø€ Ò,I¸¬T°!¯WÑ,Iùó   ‚z%() got unexpected keyword arguments: )rÂ   rå   )%r²   r\   rµ   ÚDEFERREDr[   rz   r-   rÑ   ré   Ú_stateÚlenÚconcrete_fieldsÚ
IndexErrorÚiterÚzipÚattnamer~   rp   rJ   r   rF   ÚcolumnÚ	generatedro   r‚   r!   ÚKeyErrorÚget_defaultÚ_property_namesrq   Ú	get_fieldr   rÉ   rD   rm   Ú__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__Î  sO  ø€ à�n‰nˆØ�z‰zˆÜˆÜˆ	Ø�=Š=ÜÐEÓFÐFä�‰˜S t°FÕ;ô !“lˆŒô ˆt‹9”s˜4×/Ñ/Ó0Ò0äÐFÓGÐGáÜ˜t×3Ñ3Ó4ˆKô
 " $¨Ó4ò 3‘
��UØ˜)Ñ#ØÙ˜˜uŸ}™}¨cÕ2ñ3ô ˜tŸ{™{Ó+ˆKÜ! $¨Ó4ò ‘
��UØ˜)Ñ#ØÙ˜˜uŸ}™}¨cÔ2Ø—:‘:˜eŸj™j¬,Ó7¼|ÒKÜ#Ø×+Ñ+Ð,ð -8Ø8=¿
¹
°|À2ðGóð ðð !ò &	7ˆEØ %Ðà�|‰|Ð# u§¢ØÙÜ˜e×0Ñ0Ô2BÔCð	6à"(§*¡*¨U¯Z©ZÓ"8˜Ø,0Ñ)ð2Ø$Ÿj™j¨¯©Ó7™ð ×'Ñ'Ó)�á ð
  )Ò+Ù˜T 5§:¡:¨wÕ7à˜iÒ'Ù˜T 5§=¡=°#Õ6ðM&	7ñP Ø!×1Ñ1ˆNØˆJØ%Ÿ|™|›~ò 8‘��eð ˜>Ñ)Ø IÒ-Ù   t¨UÕ3ð8ØŸ™ tÔ,ð !¨	Ò1Ù$ T¨4°Õ7ð8ñ Ø#'§9¡9Ñ,I¸jÔ,IÓ#IÐ ÜØ—|‘|�nÐ$IØ'Ð(ð*óð ô 	‰ÑÔÜ�‰˜c¨DÖ1øôk $ò 6ð6à"(§*¡*¨U¯]©]Ó";™CøÜ'ò 6Ø"'×"3Ñ"3Ó"5šCð6ýð	6ûô $ò 2ð
 $×/Ñ/Ó1›ð2ûô@ -ò .Ø" t gÑ-›
ð.úsZ   ÆKÆ>L$ÉMË	L!Ë"K>Ë=L!Ë>LÌL!ÌLÌL!Ì L!Ì$MÍ MÍMÍMc                 óJ  — t        |«      t        | j                  j                  «      k7  rKt        |«      }| j                  j                  D �cg c]!  }|j                  |v rt        |«      nt        ‘Œ# }} | |Ž }d|j                  _        ||j                  _	        |S c c}w ©NF)
r÷   r\   rø   rú   rü   Únextrõ   rö   rë   rê   )r’   rê   r¤   ÚvaluesÚvalues_iterr£   Únews          r>   Úfrom_dbzModel.from_db@  s�   € äˆv‹;œ#˜cŸi™i×7Ñ7Ó8Ò8Ü˜v›,ˆKð Ÿ™×2Ñ2öàð &'§Y¡Y°+Ñ%=”�[Ô!Ä8ÑKðˆFð ñ �6ˆlˆØ!ˆ�
‰
ÔØˆ�
‰
ŒØˆ
ùòs   Á&B c                 ó<   — d| j                   j                  ›d| ›d�S )Nú<z: ú>)r²   rD   r<   s    r>   r?   zModel.__repr__M  s   � Ø!Ÿ^™^×4Ó4²dÐ;Ð;rA   c                 óN   — | j                   j                  ›d| j                  ›d�S )Nz	 object (r¾   )r²   rD   Úpkr<   s    r>   rC   zModel.__str__P  s   € Ø#'§>¡>×#:Ó#:¸D¿G»GÐDÐDrA   c                 óÌ   — t        |t        «      st        S | j                  j                  |j                  j                  k7  ry| j
                  }|€| |u S ||j
                  k(  S r  )ro   rí   ÚNotImplementedr\   r   r  )r=   ÚotherÚmy_pks      r>   Ú__eq__zModel.__eq__S  sX   € Ü˜%¤Ô'Ü!Ð!Ø�:‰:×$Ñ$¨¯©×(BÑ(BÒBØØ—‘ˆØˆ=Ø˜5�=Ð Ø˜Ÿ™Ñ Ð rA   c                 ób   — | j                  «       st        d«      ‚t        | j                  «      S )Nz8Model instances without primary key value are unhashable)Ú
_is_pk_setrz   Úhashr  r<   s    r>   Ú__hash__zModel.__hash__]  s&   € Ø�‰Ô ÜÐVÓWÐWÜ�D—G‘G‹}ÐrA   c                 ó¼   — | j                  «       }t        j                  |t        <   | j                  j
                  | j                  j                  f}t        |f|fS r´   )Ú__getstate__ÚdjangoÚ__version__r   r\   r]   Úobject_nameÚmodel_unpickle)r=   ÚdataÚclass_ids      r>   Ú
__reduce__zModel.__reduce__b  sN   € Ø× Ñ Ó"ˆÜ*0×*<Ñ*<ˆÔ&Ñ'Ø—:‘:×'Ñ'¨¯©×)?Ñ)?Ð?ˆÜ ˜{¨DÐ0Ð0rA   c                 óŒ  — | j                   j                  «       }t        j                  |d   «      |d<   |d   j                  j                  «       |d   _        g }|j                  «       D ]2  \  }}t	        |t
        «      sŒ|j                  |t        |«      f«       Œ4 |r ||d<   |D ]  \  }}|j                  |«       Œ |S )z0Hook to allow choosing the attributes to pickle.rö   Ú_memoryview_attrs)	r‡   r‹   rä   rq   ro   Ú
memoryviewÚappendÚbytesrp   )r=   Ústater-  ÚattrrT   s        r>   r$  zModel.__getstate__h  s¾   € à—‘×"Ñ"Ó$ˆÜŸ)™) E¨(¡OÓ4ˆˆh‰Ø',¨X¡×'CÑ'C×'HÑ'HÓ'Jˆˆh‰Ô$ð ÐØ Ÿ;™;›=ò 	?‰KˆD�%Ü˜%¤Õ,Ø!×(Ñ(¨$´°e³Ð)=Õ>ð	?ñ Ø):ˆEÐ%Ñ&Ø0ò  ‘��eØ—	‘	˜$•ð àˆrA   c                 ó€  — |j                  t        «      }|rE|t        j                  k7  rNt	        j
                  d|›dt        j                  ›d�t        d¬«       nt	        j
                  dt        d¬«       d|v r'|j                  d«      D ]  \  }}t        |«      ||<   Œ | j                  j                  |«       y )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ÚRuntimeWarningrp   r.  r‡   r†   )r=   r1  Úpickled_versionr2  rT   s        r>   Ú__setstate__zModel.__setstate__y  s¦   € ØŸ)™)Ô$=Ó>ˆÙØ¤&×"4Ñ"4Ò4Ü—’ò '¬×(:Ó(:ð<ô #Ø öô �M‰MØKÜØõð
  %Ñ'Ø$Ÿy™yÐ)<Ó=ò 0‘��eÜ(¨Ó/��d’ð0à�‰×Ñ˜UÕ#rA   Nc                 ób   — |xs | j                   }t        | |j                  j                  «      S r´   )r\   rr   r  rü   )r=   rž   s     r>   Ú_get_pk_valzModel._get_pk_val�  s%   € ØÒ!�t—z‘zˆÜ�t˜TŸW™WŸ_™_Ó-Ð-rA   c                 ó&  — | j                   j                  j                  «       D ]@  }|sŒ|| j                   j                  k7  sŒ t	        | |j
                  j                  |«       ŒB t	        | | j                   j                  j                  |«      S r´   )r\   rŠ   r  r  rµ   Útarget_fieldrü   )r=   rT   rl   s      r>   Ú_set_pk_valzModel._set_pk_val“  so   € ØŸ:™:×-Ñ-×4Ñ4Ó6ò 	GˆKÚ˜{¨d¯j©j¯m©mÓ;Ü˜˜k×6Ñ6×>Ñ>ÀÕFð	Gô �t˜TŸZ™ZŸ]™]×2Ñ2°EÓ:Ð:rA   c                 óz   — | j                  |«      }|d u xs$ t        |t        «      xr t        d„ |D «       «       S )Nc              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr´   r;   r¼   s     r>   rd   z#Model._is_pk_set.<locals>.<genexpr>Ÿ  s   è ø€ Ò1LÀ°!°t´)Ñ1Lùs   ‚)r=  ro   rw   rÎ   )r=   rž   Úpk_vals      r>   r   zModel._is_pk_set›  sC   € Ø×!Ñ! $Ó'ˆà�dˆNò NÜ˜6¤5Ó)ÒL¬cÑ1LÀVÔ1LÓ.Lð
ð 	
rA   c                 ó˜   — | j                   j                  D �ch c]&  }|j                  | j                  vr|j                  ’Œ( c}S c c}w )zU
        Return a set containing names of deferred fields for this instance.
        )r\   rø   rü   r‡   )r=   r£   s     r>   Úget_deferred_fieldszModel.get_deferred_fields¢  sB   € ð —Z‘Z×/Ñ/ö
àØ�y‰y §¡Ñ-ð �I‹Iò
ð 	
ùò 
s   ™+Ac           	      óà  — |€i | _         nmt        | dd«      }t        |«      }|j                  «       D ]  }||v sŒ||= |j	                  |«       Œ |syt        d„ |D «       «      rt        dt        z  «      ‚|€,d| i}| j                  j                  j                  ||¬«      }n|�|j                  |«      }|j                  | j                  ¬«      }| j                  «       }|� |j                  |Ž }nK|rI |j                  | j                   j"                  D �	ch c]  }	|	j$                  |vr|	j$                  ’Œ c}	Ž }|j'                  «       }
|
j                  «       }| j                   j"                  D ]Ÿ  }|j$                  |v rŒt)        | |j$                  t        |
|j$                  «      «       |j*                  sŒJ|j-                  |
«      r"|j/                  | |j1                  |
«      «       Œ}|j-                  | «      sŒ�|j3                  | «       Œ¡ | j                   j4                  D ]6  }|�|j6                  |v sŒ|j-                  | «      sŒ&|j3                  | «       Œ8 | j                   j8                  D ]C  }|�|j6                  |v sŒ|j*                  sŒ!|j-                  | «      sŒ3|j3                  | «       ŒE |
j:                  j<                  | j:                  _        yc c}	w )	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 –— Œ y ­wr´   r   r¼   s     r>   rd   z(Model.refresh_from_db.<locals>.<genexpr>Æ  s   è ø€ Ò3 q”: ”?Ñ3ùs   ‚zRFound "%s" in fields argument. Relations and transforms are not allowed in fields.rå   )Úhints©r  )rG  rr   r„   r‹   ÚremoverÎ   rÏ   r   r²   rÛ   Ú
db_managerÚusingÚfilterr  rE  Úonlyr\   rø   rü   rË   rµ   Úis_relationÚ	is_cachedÚset_cached_valueÚget_cached_valueÚdelete_cached_valueÚrelated_objectsrJ   r}   rö   rê   )r=   rM  r~   Úfrom_querysetÚprefetched_objects_cacher©   rI  Údb_instance_qsÚdeferred_fieldsr£   Údb_instanceÚnon_loaded_fieldsÚrels                r>   Úrefresh_from_dbzModel.refresh_from_db¬  s¹  € ð ˆ>Ø-/ˆDÕ*ä'.¨tÐ5PÐRTÓ'UÐ$Ü˜“[ˆFØŸ™›ò )�ØÐ4Ò4Ø0°Ð7Ø—M‘M %Õ(ð)ñ ØÜÑ3¨FÔ3Ô3Ü ð1Ü3=ñ>óð ð
 Ð Ø Ð&ˆEØ ŸN™N×8Ñ8×CÑCÀEÐQVÐCÓW‰MØÐØ)×/Ñ/°Ó6ˆMà&×-Ñ-°·±Ð-Ó9ˆð ×2Ñ2Ó4ˆØÐØ0˜^×0Ñ0°&Ð9‰NÙØ0˜^×0Ñ0ð "ŸZ™Z×7Ñ7öàØ—y‘y¨Ñ7ð —I“IòðˆNð %×(Ñ(Ó*ˆØ'×;Ñ;Ó=ÐØ—Z‘Z×/Ñ/ò 
	4ˆEØ�}‰}Ð 1Ñ1àÜ�D˜%Ÿ-™-¬°¸e¿m¹mÓ)LÔMà× Ó Ø—?‘? ;Ô/Ø×*Ñ*¨4°×1GÑ1GÈÓ1TÕUØ—_‘_ TÕ*Ø×-Ñ-¨dÕ3ð
	4ð —:‘:×-Ñ-ò 	.ˆCØ� #§(¡(¨fÒ"4¸#¿-¹-ÈÕ:MØ×'Ñ'¨Õ-ð	.ð
 —Z‘Z×.Ñ.ò 	0ˆEà� 5§:¡:°Ò#7Ø×%Ó%Ø—O‘O DÕ)à×)Ñ)¨$Õ/ð	0ð %×+Ñ+×.Ñ.ˆ�‰�ùòGs   Ä!K+c              ƒ   óZ   K  —  t        | j                  «      |||¬«      ƒ d {  –—† S 7 Œ­w)N)rM  r~   rV  )r   r]  )r=   rM  r~   rV  s       r>   Úarefresh_from_dbzModel.arefresh_from_dbÿ  s1   è ø€ Ø8”] 4×#7Ñ#7Ó8Ø °mô
÷ 
ð 	
ð 
ús   ‚"+¤)¥+c                 óœ   — 	 | j                   j                  |«      }t        | |j                  «      S # t        $ r t        | |«      cY S w xY w)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.
        )r\   r  r   rr   rü   )r=   Ú
field_namer©   s      r>   Úserializable_valuezModel.serializable_value  sL   € ð	-Ø—J‘J×(Ñ(¨Ó4ˆEô �t˜UŸ]™]Ó+Ð+øô !ò 	-Ü˜4 Ó,Ò,ð	-ús   ‚3 ³AÁ
Ac          
      óP  ‡‡‡
— ddd d dœŠ
t        j                  d‰› d�t        d¬«       t        ‰«      dz   }t        ‰
«      dz   }||kD  rt	        d‰› d	|› d
|› d�«      ‚ˆˆ
ˆfd„}t        |j                  «       «      D ���	cg c]  \  }\  }}	 |||	|«      ‘Œ c}	}}S c c}	}}w )NF©Úforce_insertÚforce_updaterM  Úupdate_fieldsz Passing positional arguments to z() is deprecatedé   r5  é   úModel.z() takes from 1 to z positional arguments but z were givenc                 ó`   •— |t        ‰«      k  r|‰|    urt        d‰› d| › d�«      ‚‰|   S |S )Nrj  z%() got multiple values for argument 'ú')r÷   rz   )Ú
param_nameÚparam_valueÚ	arg_indexrï   ÚdefaultsÚmethod_names      €€€r>   Ú	get_paramz+Model._parse_save_params.<locals>.get_param,  sS   ø€ Øœ3˜t›9Ò$Ø h¨zÑ&:Ñ:ä#Ø   ð .Ø&˜< qð*óð ð ˜I‘Ð&àÐrA   )r7  r8  r1   r÷   rz   Ú	enumeraterq   )r=   rq  rï   r”   Útotal_len_argsÚmax_len_argsrr  ÚiÚkÚvrp  s    ``       @r>   Ú_parse_save_paramszModel._parse_save_params  sÄ   ú€ à!Ø!ØØ!ñ	
ˆô 	�‰Ø.¨{¨mÐ;KÐLÜ$Øõ	
ô
 ˜T› Q™ˆÜ˜8“} qÑ(ˆØ˜LÒ(äØ˜˜Ð%8¸¸ð G!Ø!/Ð 0°ð=óð ö

	ô 5>¸f¿l¹l»nÓ4M×NÐN¡y q©&¨1¨a‘	˜!˜Q Õ"ÔNÐNùÔNs   ÂB!Frd  c          	      óš  — |r | j                   |d||||dœŽ\  }}}}| j                  d¬«       |xs! t        j                  | j                  | ¬«      }|r|s|rt        d«      ‚| j                  j                  D �ch c]4  }|j                  | j                  vr|j                  du r|j                  ’Œ6 }}|�T|syt        |«      }| j                  j                  }|j                  |«      }	|	rÀt        dd	j                  |	«      z  «      ‚|s¡|rŸ|| j                  j                   k(  r†t#        «       }| j                  j$                  }
| j                  j                  D ]/  }||
vsŒt'        |d
«      rŒ|j)                  |j                  «       Œ1 |j                  |«      }|rt        |«      }| j+                  ||||¬«       yc c}w )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©rq  re  rf  rM  rg  )Úoperation_name©rå   z6Cannot force both insert and updating in model saving.FNzmThe following fields do not exist in this model, are m2m fields, primary keys, or are non-concrete fields: %sr¹   Úthrough)rM  re  rf  rg  )ry  Ú _prepare_related_fields_for_saver   Údb_for_writer²   rÏ   r\   rø   rü   r‡   rþ   Ú	frozensetÚ_non_pk_concrete_field_namesÚ
differencerÉ   rö   rê   r„   Ú	pk_fieldsrS   rˆ   Ú	save_base)r=   re  rf  rM  rg  rï   r£   Údeferred_non_generated_fieldsr¤   Únot_updatable_fieldsr…  r©   Úloaded_fieldss                r>   r{  z
Model.save>  sÌ  € ñ" Ø?V¸t×?VÑ?VØØ"Ø)Ø)ØØ+ò@Ñ<ˆL˜,¨¨}ð 	×-Ñ-¸VÐ-ÔDàÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÙ™\©]ÜÐUÓVÐVð —Z‘Z×/Ñ/ö)
àØ�y‰y §¡Ñ-°!·+±+ÀÑ2Fð �I‹Ið)
Ð%ð )
ð
 Ð$ñ !Øä% mÓ4ˆMØŸ*™*×AÑAˆKØ#0×#;Ñ#;¸KÓ#HÐ á#Ü ðKà—i‘iÐ 4Ó5ñ6óð ñ Ù-Ø˜Ÿ™Ÿ™Ò'ä›%ˆKØŸ
™
×,Ñ,ˆIØŸ™×3Ñ3ò 3�Ø 	Ò)´'¸%ÀÕ2KØ—O‘O E§M¡MÕ2ð3ð (×2Ñ2Ð3PÓQˆMÙÜ )¨-Ó 8�à�‰ØØ%Ø%Ø'ð	 	õ 	
ùòO)
s   Á>9GTc          	   ‡   ó–   K  — |r | j                   |d||||dœŽ\  }}}} t        | j                  «      ||||¬«      ƒ d {  –—† S 7 Œ­w)NÚasaver|  rd  )ry  r   r{  )r=   re  rf  rM  rg  rï   s         r>   r‹  zModel.asave“  si   è ø€ ñ Ø?V¸t×?VÑ?VØØ#Ø)Ø)ØØ+ò@Ñ<ˆL˜,¨¨}ð .”] 4§9¡9Ó-Ø%Ø%ØØ'ô	
÷ 
ð 	
ð 
ús   ‚A A	ÁAÁA	c                 ó  — |du ry|du r| fS t        |t        «      st        d«      ‚|D ]S  }t        |t        «      st        d|›d�«      ‚t	        | |«      rŒ/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   )ro   rw   rz   rW   Ú
issubclassrF   )r’   re  Úmembers      r>   Ú_validate_force_insertzModel._validate_force_insert®  s­   € à˜5Ñ ØØ˜4ÑØ�6ˆMÜ˜,¬Ô.ÜÐCÓDÐDØ"ò 		ˆFÜ˜f¤iÔ0ÜØ3°F°:Ð=WÐXóð ô ˜c 6Õ*ÜØ3°F×4GÑ4GÐ3Hð IØ"×/Ñ/Ð0°ð3óð ð		ð ÐrA   c           	      ó   — |xs! 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%| j                  |«      }| j                  ||||«      }
| j                  |||xs |
|||«      }ddd«       || j                   _        d| j                   _        |j                  st'        j                  ||  |||¬«       yy# 1 sw Y   ŒUxY w)av  
        Handle the parts of saving which should be done only once per save,
        yet need to be done in raw saves, too. This includes some sanity
        checks and signal sending.

        The 'raw' argument is telling save_base not to save any parent
        models and not to do any changes to the values before save. This
        is used by fixture loading.
        r~  N)rÂ   rå   ÚrawrM  rg  F)rM  Ú	savepoint)rM  )rÂ   rå   Úcreatedrg  r‘  rM  )r   r�  r²   r\   rx   r   rk   r.   rÑ   rŠ   r   ÚatomicÚmark_for_rollback_on_errorr�  Ú_save_parentsÚ_save_tablerö   rê   rë   r,   )r=   r‘  re  rf  rM  rg  r’   Úoriginrž   Úcontext_managerÚparent_insertedÚupdateds               r>   r†  zModel.save_baseÂ  su  € ð" ÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÙ ¡l±mÐEÐEØÐ$©Ð5Ð5Ø—~‘~Ð%ˆˆfà�9‰9�?Š?Ø—)‘)×*Ñ*ˆCØ�y‰yˆØ× Ò Ü�M‰MØØØØØ+õð �<Š<Ü)×0Ñ0°uÈÔN‰Oä)×DÑDÈ5ÔQˆOØñ 	Ø#ˆOÙà#×:Ñ:¸<ÓH�Ø"&×"4Ñ"4Ø˜ ¨|ó#�ð ×&Ñ&ØØØÒ/ ØØØóˆG÷	ð" ˆ�‰Œà"ˆ�‰Ôð × Ò Ü�N‰NØØØ$˜Ø+ØØöð !÷-	ð 	ús   ÃAE4Å4E=c           
      óÖ  — |j                   }d}|€i }|j                  j                  «       D �]8  \  }}	|	rt        | |j                   j                  j
                  «      €Ut        | |	j
                  «      �?t        | |j                   j                  j
                  t        | |	j
                  «      «       |j                  |«      x}
€C| j                  |||||¬«      }| j                  ||||xs t        ||«      ¬«      }|sd}|||<   n|
sd}|	sŒåt        | |	j
                  | j                  |j                   «      «       |	j                  | «      s�Œ(|	j                  | «       �Œ; |S )z3Save all the parents of cls using values from self.F)r’   rM  rg  re  Úupdated_parents)r’   rM  rg  re  T)r\   rŠ   rq   rr   r  rü   rµ   rË   r–  r—  r�  r=  rQ  rT  )r=   r’   rM  rg  re  r�  rž   Úinsertedr§   r©   Úparent_updatedrš  r›  s                r>   r–  zModel._save_parents
  s_  € ð �y‰yˆØˆØÐ"Ø ˆOØ!Ÿ\™\×/Ñ/Ó1ó $	4‰MˆF�Eñ Ü˜D &§,¡,§/¡/×"9Ñ"9Ó:ÐBÜ˜D %§-¡-Ó0Ð<ä˜˜fŸl™lŸo™o×5Ñ5´w¸tÀUÇ]Á]Ó7SÔTØ"1×"5Ñ"5°fÓ"=Ð=�ÐFØ"&×"4Ñ"4ØØØ"/Ø!-Ø$3ð #5ó #�ð ×*Ñ*ØØØ"/Ø!0Ò!T´J¸vÀ|Ó4Tð	 +ó �ñ Ø#�HØ*1� Ò'Ù#Ø�âÜ˜˜eŸm™m¨T×-=Ñ-=¸f¿l¹lÓ-KÔLð —?‘? 4Ö(Ø×-Ñ-¨dÖ3ðI$	4ðJ ˆrA   c           
      ó  — |j                   }|j                  }|j                  D �	cg c]  }	|	|vr|	j                  s|	‘Œ }
}	|r+|
D �	cg c]   }	|	j                  |v s|	j
                  |v r|	‘Œ" }
}	| j                  |«      s<|j                  j                  | «      }t        | |j                  j
                  |«       | j                  |«      }|s|s|rt        d«      ‚d}|s8|s6|s4| j                  j                  rt        d„ |j                  D «       «      rd}|r¢|s |j                  j                  |«      }|
D �	cg c]/  }	|	d|rt!        | |	j
                  «      n|	j#                  | d«      f‘Œ1 }}	|xs |}| j%                  |«      }| j'                  ||||||«      }|r|st)        d«      ‚|r|st)        d«      ‚|�s7|j*                  r›|j*                  }|j-                  | «      } |j                  j                  |«      j.                  di |¤Žj1                  t3        t5        t7        d«      t9        d	«      z   t;        «       ¬
«      t9        d«      «      ¬«      d   | _        |j                  D �	cg c]   }	|	j                  s|s|	|j>                  ur|	‘Œ" }}	|j@                  }| jC                  |j                  ||||«      }|r.tE        |d   |«      D ]  \  }}t        | |j
                  |«       Œ |S c c}	w c c}	w c c}	w c c}	w )zp
        Do the heavy-lifting involved in saving. Update or insert the data
        for a single table.
        z5Cannot force an update in save() with no primary key.Fc              3   ó`   K  — | ]&  }|j                  «       xs |j                  «       –— Œ( y ­wr´   )Úhas_defaultÚhas_db_defaultr¼   s     r>   rd   z$Model._save_table.<locals>.<genexpr>b  s'   è ø€ ÒR¸a�A—M‘M“OÒ9 q×'7Ñ'7Ó'9Ó9ÑRùs   ‚,.TNz&Forced update did not affect any rows.z0Save with update_fields did not affect any rows.Ú_orderri  )Úoutput_fieldr   )Ú_order__maxr¦  r;   )#r\   r…  Úlocal_concrete_fieldsrþ   rJ   rü   r   r  Úget_pk_value_on_saverµ   rÏ   rö   rë   ÚallrÛ   rM  rr   r.   r=  Ú
_do_updater   rÃ   Úget_filter_kwargs_for_objectrN  Ú	aggregater%   r   r   r   r   r¤  Ú
auto_fieldÚdb_returning_fieldsÚ
_do_insertrû   )r=   r‘  r’   re  rf  rM  rg  rž   r…  r£   Únon_pks_non_generatedrC  Úpk_setr›  Úbase_qsr  Úforced_updater©   Úfilter_argsr~   Úreturning_fieldsÚresultsrT   s                          r>   r—  zModel._save_table9  s#  € ð �y‰yˆØ—N‘Nˆ	ð ×/Ñ/ö!
àØ˜	Ñ!¨!¯+ª+ò ð!
Ðð !
ñ ð /ö%àØ—6‘6˜]Ñ*¨a¯i©i¸=Ñ.Hò ð%Ð!ð %ð �‰˜tÔ$Ø—W‘W×1Ñ1°$Ó7ˆFÜ�D˜$Ÿ'™'Ÿ/™/¨6Ô2Ø—‘ Ó&ˆÙ™<©=ÜÐTÓUÐUØˆñ Ù Ù Ø—‘×"Ò"ÜÑRÀ4Ç>Á>ÔRÔRàˆLá™,Ø×'Ñ'×-Ñ-¨eÓ4ˆGð /öð ð	 ØÙ14”W˜T 1§9¡9Ô-¸!¿*¹*ÀTÈ5Ó:QòðˆFð ð *Ò9¨\ˆMØ×%Ñ% dÓ+ˆFØ—o‘oØ˜ ¨°¸}óˆGñ ¡GÜ#Ð$LÓMÐMÙ¡WÜ#Ð$VÓWÐWÚØ×)Ò)ð ×2Ñ2�Ø#×@Ñ@ÀÓF�ð�C×%Ñ%×+Ñ+¨EÓ2ß‘Vñ+Ø)ñ+ç‘YÜ$,Ü-Ü # H£´°a³Ñ 8Ä|Ã~ôô " !›Hó	%ð ó ð $ñ	%ð ”ð ×3Ñ3öàØ—{’{©°!¸4¿?¹?Ñ2Jò ðˆFð ð
  $×7Ñ7ÐØ—o‘oØ×!Ñ! 5¨&Ð2BÀCóˆGñ Ü$'¨°©
Ð4DÓ$Eò 8‘L�E˜5Ü˜D %§-¡-°Õ7ð8àˆùò_!
ùò%ùò2ùòFs   §K:Á%K?Ä=4LÉ6%L	c                 ó  — |j                  |¬«      }|s|duxs |j                  «       S | j                  j                  r:|s8|j                  «       xr& |j	                  |«      dkD  xs |j                  «       S |j	                  |«      dkD  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   )rN  Úexistsr\   Úselect_on_saveÚ_update)r=   r²  rM  rC  r  rg  r³  Úfiltereds           r>   rª  zModel._do_update™  s�   € ð
 —>‘> V�>Ó,ˆÙð !¨Ð,ÒA°·±Ó0AÐAØ�:‰:×$Ò$©]à—‘Ó!ò 	Dð ×!Ñ! &Ó)¨AÑ-ÒB°·±Ó1Bðð ×Ñ Ó'¨!Ñ+Ð+rA   c                 ó0   — |j                  | 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µ  rM  r‘  )Ú_insert)r=   rÖ   rM  r~   rµ  r‘  s         r>   r¯  zModel._do_insertµ  s+   € ð
 �‰ØˆFØØ-ØØð ó 
ð 	
rA   c                 óš  — | j                   j                  D �]"  }|r||vrŒ|j                  sŒ|j                  | «      sŒ*t	        | |j
                  d «      }|sŒD|j                  «       sL|j                  j                  s|j                  j                  |«       t        |›d|j
                  ›d�«      ‚t	        | |j                  «      |j                  v rt        | |j
                  |«       t	        ||j                  j                  «      t	        | |j                  «      k7  s�Œ|j                  | «       �Œ% | j                   j                  D ]v  }|r||vrŒ
|j                  sŒ|j                  | «      sŒ)t!        |d«      sŒ6|j#                  | d ¬«      }|sŒL|j                  «       rŒ]t        |› d|j
                  › d�«      ‚ y )NzB() prohibited to prevent data loss due to unsaved related object 'ri   Úfk_field)Údefault)r\   rø   rP  rQ  rr   rJ   r   r‚   ÚmultiplerT  rÏ   rü   Úempty_valuesrµ   r?  r}   rS   rS  )r=   r}  r~   r©   rœ   s        r>   r€  z&Model._prepare_related_fields_for_saveÂ  s¡  € ð
 —Z‘Z×/Ñ/ó  	4ˆEÙ˜% vÑ-Øð × Ó  U§_¡_°TÕ%:Ü˜d E§J¡J°Ó5�ÙØð —~‘~Ô'à ×-Ñ-×6Ò6Ø×*Ñ*×>Ñ>¸sÔCÜ$â2@À%Ç*Ã*ðNóð ô ˜T 5§=¡=Ó1°U×5GÑ5GÑGô ˜D %§*¡*¨cÔ2ô ˜3 × 2Ñ 2× :Ñ :Ó;¼wØ˜%Ÿ-™-ó@ô ð ×-Ñ-¨dÖ3ðA 	4ðD —Z‘Z×.Ñ.ò 	ˆEÙ˜% vÑ-Øà×!Ó!Ø—O‘O DÕ)Ü˜E :Õ.à×,Ñ,¨T¸4Ð,Ó@�Ú˜sŸ~™~Õ/Ü$Ø)Ð*ð +3Ø38·:±:°,¸bðBóð ñ	rA   c                 óT  — | j                  «       sCt        | j                  j                  ›d| j                  j                  j
                  ›d�«      ‚|xs! t        j                  | j                  | ¬«      }t        || ¬«      }|j                  | g|¬«       |j                  «       S )Nz% object can't be deleted because its z attribute is set to None.r~  )rM  r˜  )Úkeep_parents)r   rÏ   r\   r'  r  rü   r   r�  r²   r   ÚcollectÚdelete)r=   rM  rÄ  Ú	collectors       r>   rÆ  zModel.deleteø  s‰   € Ø�‰Ô Üà"Ÿj™j×4Ó4°d·j±j·m±m×6KÓ6KðMóð ð ÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÜ E°$Ô7ˆ	Ø×Ñ˜4˜&¨|ÐÔ<Ø×ÑÓ!Ð!rA   c              ƒ   óX   K  —  t        | j                  «      ||¬«      ƒ d {  –—† S 7 Œ­w)N)rM  rÄ  )r   rÆ  )r=   rM  rÄ  s      r>   ÚadeletezModel.adelete  s.   è ø€ Ø/”] 4§;¡;Ó/ØØ%ô
÷ 
ð 	
ð 
ús   ‚!*£(¤*c                 ó¶   — t        | |j                  «      }t        t        |j                  «      «      }t        |j                  t        |«      |«      d¬«      S )NT)Ústrings_only)rr   rü   Údictr3   Úflatchoicesr2   rË   )r=   r©   rT   Úchoices_dicts       r>   Ú_get_FIELD_displayzModel._get_FIELD_display  sK   € Ü˜˜eŸm™mÓ,ˆÜœM¨%×*;Ñ*;Ó<Ó=ˆäØ×Ñœ]¨5Ó1°5Ó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                  «      j                  di |¤Žj                  |«      j!                  |›|j                  ›�d	|z  «      }	 |d
   S # t"        $ r3 | j%                  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Ï   rr   rü   r)   ÚcreaterJ   r  ÚANDÚORr²   rÞ   rM  rö   rê   rN  Úorder_byrù   r^   r\   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ÓXÐXÙ‰T $ˆÙ‘ 3ˆÜ˜˜eŸm™mÓ,ˆÜ�H‰H�u—z‘z 5Ð)¨d°2°$¨K¸¿¹Ð+AÐBÌaÏeÉeÔTˆÜ�H‰H�a˜UŸZ™Z˜L¨¨2¨$Ð/°Ð7Ð8ÄAÇDÁDÔIˆðˆD�N‰N×+Ñ+×1Ñ1°$·+±+·.±.ÓAß‰VñØñç‰V�A‹Yß‰X¡ u§z¢zÐ2°F¸U±NÓCð	 	ð	Ø�a‘5ˆLøÜò 	Ø×#Ñ#Ø3°d·n±n×6JÑ6J×6VÑ6VÑVóð ð	ús   Ä2D7 Ä7<E3c                 ó,  — d|z  }t        | |«      sø|rdnd}|rdnd}| j                  j                  }|j                  | «      }  | j                  j
                  j                  di |¤Žj                  di d|z   | j                  j
                  j                  d«      j                  di | j                  j                  j                  | j                  i¤Ži¤Žj                  |«      d d j                  «       }t        | ||«       t        | |«      S )	Nz__%s_order_cacherÑ  rÒ  r¤  z-_orderz
_order__%sri  r;   )rS   r\   rÃ   r«  r²   rÞ   rN  r  r  rJ   rÛ  rË   rµ   rr   )r=   r·   Ú	cachenamerÜ  rÝ  Úorder_fieldr´  rœ   s           r>   rÄ   z$Model._get_next_or_previous_in_order*  s  € Ø&¨Ñ0ˆ	Ü�t˜YÔ'Ù ‘ dˆBÙ '‘H¨YˆEØŸ*™*×:Ñ:ˆKØ%×BÑBÀ4ÓHˆKðÐ6�—‘×/Ñ/×6Ñ6ÑE¸ÑEß‘ñð %ØñØU˜dŸn™n×=Ñ=×DÑDÀXÓN×UÑUñ Ø#Ÿz™zŸ}™}×1Ñ1°4·7±7Ð;ñðñ÷ ‘˜%“  !ð	%÷ ‘“ð ô �D˜) SÔ)Ü�t˜YÓ'Ð'rA   c                 óÚ  ‡— ‰€
t        «       Š|xs | j                  }i }g }|j                  D ]œ  }|j                  ‰v rŒ|j                  r@t        ˆfd„| j                  |j                  «      D «       «      rŒL|j                  |«       Œ^t        | |j                  «      }|rt        |d«      st        ||«      }|||j                  <   Œž d‰vr#t        | j                  |j                  «      |d<   |ro|j                  «       D ��ci c]  \  }}t        |«      |“Œ }}}|D ]>  }	t!        |	j                  j#                  |«      |	j$                  «      ||	j                  <   Œ@ |S c c}}w )Nc              3   ó,   •K  — | ]  }|d    ‰v –— Œ y­w©r   Nr;   )rb   ÚrefÚexcludes     €r>   rd   z2Model._get_field_expression_map.<locals>.<genexpr>K  s"   øè ø€ ò àð ˜‘F˜gÔ%ñùs   ƒÚresolve_expressionr  )r„   r\   r§  rJ   rþ   rÎ   Ú_get_expr_referencesÚ
expressionr/  rr   rü   rS   r   r  rq   r(   r   Úreplace_expressionsr¥  )
r=   rž   ré  Ú	field_mapÚgenerated_fieldsr©   rT   rJ   ÚreplacementsÚgenerated_fields
     `       r>   Ú_get_field_expression_mapzModel._get_field_expression_mapA  s`  ø€ Øˆ?Ü“eˆGØÒ!�t—z‘zˆØˆ	ØÐØ×/Ñ/ò 	*ˆEØ�z‰z˜WÑ$ØØ�ŠÜó à#×8Ñ8¸×9IÑ9IÓJôô ð Ø ×'Ñ'¨Ô.ØÜ˜D %§-¡-Ó0ˆEÙ¤¨Ð/CÔ DÜ˜e UÓ+�Ø$)ˆI�e—j‘jÒ!ð	*ð �wÑÜ# D§G¡G¨T¯W©WÓ5ˆI�d‰OÙØ>G¿o¹oÓ>O×P©{¨t°UœA˜d›G U™NÐPˆLÑPØ#3ò �Ü2CØ#×.Ñ.×BÑBÀ<ÓPØ#×0Ñ0ó3�	˜/×.Ñ.Ò/ðð Ðùó Qs   Ä	E'c                 óš   — | j                  «       st        d| z  «      ‚t        | |j                  j	                  «       j
                  «      S )Nz9Unsaved model instance %r cannot be used in an ORM query.)r   rÏ   rr   r‚   Úget_related_fieldrü   )r=   r©   s     r>   Úprepare_database_savezModel.prepare_database_saveb  sE   € Ø�‰Ô ÜØKÈdÑRóð ô �t˜U×/Ñ/×AÑAÓC×KÑKÓLÐLrA   c                  ó   — y)aI  
        Hook for doing any extra model-wide validation after clean() has been
        called on every field by self.clean_fields. Any ValidationError raised
        by this method will not be associated with a particular field; it will
        have a special-case association with the field defined by NON_FIELD_ERRORS.
        Nr;   r<   s    r>   ÚcleanzModel.cleani  s   € ð 	rA   c                 óþ   — | j                  |¬«      \  }}| j                  |«      }| j                  |«      }|j                  «       D ]&  \  }}|j	                  |g «      j                  |«       Œ( |rt        |«      ‚y)zh
        Check unique constraints on the model and raise ValidationError if any
        failed.
        ©ré  N)Ú_get_unique_checksÚ_perform_unique_checksÚ_perform_date_checksrq   Ú
setdefaultÚextendr   )r=   ré  Úunique_checksÚdate_checksÚerrorsÚdate_errorsrw  rx  s           r>   Úvalidate_uniquezModel.validate_uniquer  sˆ   € ð
 &*×%<Ñ%<ÀWÐ%<Ó%MÑ"ˆ�{à×,Ñ,¨]Ó;ˆØ×/Ñ/°Ó<ˆà×%Ñ%Ó'ò 	/‰DˆAˆqØ×Ñ˜a Ó$×+Ñ+¨AÕ.ð	/ñ Ü! &Ó)Ð)ð rA   c                 ój  ‡— ‰€
t        «       Šg }| j                  | j                  j                  fg}g }|r#| j                  | j                  j                  fg}| j                  j
                  D ]€  }|j                  j                  r'|j                  ||j                  j                  f«       |sŒC|j                  j                  sŒZ|j                  ||j                  j                  f«       Œ‚ |D ]=  \  }}|D ]3  }	t        ˆfd„|	D «       «      rŒ|j                  |t        |	«      f«       Œ5 Œ? |rM|D ]H  \  }}
|
D ]>  }t        ˆfd„|j                  D «       «      rŒ"|j                  ||j                  f«       Œ@ ŒJ g }| j                  | j                  j                  fg}| j                  j
                  D ])  }|j                  ||j                  j                  f«       Œ+ |D �]@  \  }}|D �]4  }|j                  }|‰v rŒt        |t        «      rAt        d„ |j                  D «       «      }‰j                  |«      r|j                  ||f«       Œf|j                  r|j                  ||ff«       |j                   r-|j                   ‰vr|j                  |d||j                   f«       |j"                  r-|j"                  ‰vr|j                  |d||j"                  f«       |j$                  s�Œ|j$                  ‰vs�Œ|j                  |d||j$                  f«       �Œ7 �ŒC ||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.
        c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr´   r;   ©rb   rJ   ré  s     €r>   rd   z+Model._get_unique_checks.<locals>.<genexpr>ž  s   øè ø€ Ò=¨t˜4 7œ?Ñ=ùó   ƒc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr´   r;   r  s     €r>   rd   z+Model._get_unique_checks.<locals>.<genexpr>¥  s   øè ø€ ÒM°4˜t wœÑMùr  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr´   r»   ©rb   r©   s     r>   rd   z+Model._get_unique_checks.<locals>.<genexpr>¸  s   è ø€ Ò!C° %§*¥*Ñ!Cùr½   ÚdateÚyearÚmonth)r„   r²   r\   Úunique_togetherÚtotal_unique_constraintsÚall_parentsr/  rÎ   rw   r~   r{   rJ   ro   r    Ú
isdisjointÚuniqueÚunique_for_dateÚunique_for_yearÚunique_for_month)r=   ré  Úinclude_meta_constraintsrÿ  Úunique_togethersÚconstraintsÚparent_classÚmodel_classr  ÚcheckÚmodel_constraintsÚ
constraintr   Úfields_with_classr~   r£   rJ   Únamess    `                r>   rú  zModel._get_unique_checks‚  s  ø€ ð ˆ?Ü“eˆGØˆà!Ÿ^™^¨T¯Z©Z×-GÑ-GÐHÐIÐØˆÙ#Ø ŸN™N¨D¯J©J×,OÑ,OÐPÐQˆKØ ŸJ™J×2Ñ2ò 	ˆLØ×!Ñ!×1Ò1Ø ×'Ñ'Ø! <×#5Ñ#5×#EÑ#EÐFôò (¨L×,>Ñ,>×,WÓ,WØ×"Ñ"Ø! <×#5Ñ#5×#NÑ#NÐOõð	ð -=ò 	FÑ(ˆK˜Ø(ò F�ÜÓ=°uÔ=Õ=à!×(Ñ(¨+´u¸U³|Ð)DÕEñFð	Fñ $Ø2=ò OÑ.�Ð.Ø"3ò O�JÜÓM¸:×;LÑ;LÔMÕMØ%×,Ñ,¨k¸:×;LÑ;LÐ-MÕNñOðOð ˆð
 #Ÿn™n¨d¯j©j×.EÑ.EÐFÐGÐØ ŸJ™J×2Ñ2ò 	VˆLØ×$Ñ$ l°L×4FÑ4F×4SÑ4SÐ%TÕUð	Vð $5ó 	YÑˆK˜Øó Y�Ø—v‘v�Ø˜7‘?ØÜ˜aÔ!4Ô5Ü!Ñ!C¸!¿(¹(Ô!CÓC�EØ×)Ñ)¨%Ô0Ø%×,Ñ,¨k¸5Ð-AÔBØØ—8’8Ø!×(Ñ(¨+¸°wÐ)?Ô@Ø×$Ò$¨×):Ñ):À'Ñ)IØ×&Ñ&¨°V¸TÀ1×CTÑCTÐ'UÔVØ×$Ò$¨×):Ñ):À'Ñ)IØ×&Ñ&¨°V¸TÀ1×CTÑCTÐ'UÔVØ×%Ô%¨!×*<Ñ*<ÀGÓ*KØ×&Ñ&¨°W¸dÀA×DVÑDVÐ'WÖXò!Yð	Yð$ ˜kÐ)Ð)rA   c                 ó2  — i }|D �]Ž  \  }}i }|D ]’  }| j                   j                  |«      }t        | |j                  «      }|�|dk(  rt        j
                  j                  rŒV||j                   j                  v r| j                  j                  sŒ…||t        |«      <   Œ” t        |«      t        |«      k7  rŒ¸ |j                  j                  di |¤Ž}	| j                  |j                   «      }
| j                  j                  s-| j                  |j                   «      r|	j!                  |
¬«      }	|	j#                  «       s�ŒDt        |«      dk(  r|d   }nt$        }|j'                  |g «      j)                  | j+                  ||«      «       �Œ‘ |S )NrÓ  rJ  ri  r   r;   )r\   r  rr   rü   r   ÚfeaturesÚ!interprets_empty_strings_as_nullsr…  rö   rë   Ústrr÷   rÞ   rN  r=  r   ré  r¸  r
   rý  r/  Úunique_error_message)r=   rÿ  r  r  Úunique_checkÚlookup_kwargsra  r£   Úlookup_valuerà  Úmodel_class_pkÚkeys               r>   rû  zModel._perform_unique_checksÆ  sx  € Øˆà)6ó *	Ñ%ˆK˜ð ˆMØ*ò >�
Ø—J‘J×(Ñ(¨Ó4�Ü& t¨Q¯Y©YÓ7�àÐ'Ø  BÒ&Ü"×+Ñ+×MÒMð Ø˜×)Ñ)×3Ñ3Ñ3¸D¿K¹K×<NÒ<NàØ1=�œc *›oÒ.ð>ô  �<Ó ¤C¨Ó$6Ò6Øà4�×-Ñ-×4Ñ4ÑE°}ÑEˆBð "×-Ñ-¨k×.?Ñ.?Ó@ˆNØ—;‘;×%Ò%¨$¯/©/¸+×:KÑ:KÔ*LØ—Z‘Z >�ZÓ2�Ø�y‰yŽ{Ü�|Ó$¨Ò)Ø& q™/‘Cä*�CØ×!Ñ! # rÓ*×1Ñ1Ø×-Ñ-¨k¸<ÓHöðQ*	ðX ˆrA   c                 óH  — i }|D �]  \  }}}}i }t        | |«      }|€Œ|dk(  r7|j                  |d|z  <   |j                  |d|z  <   |j                  |d|z  <   nt        ||«      ||›d|›�<   t        | |«      ||<    |j                  j
                  di |¤Ž}	| j                  j                  s,| j                  «       r|	j                  | j                  ¬«      }	|	j                  «       sŒè|j                  |g «      j                  | j                  |||«      «       �Œ |S )Nr  z%s__dayz	%s__monthz%s__yearr×  rJ  r;   )rr   Údayr  r  rÞ   rN  rö   rë   r   ré  r  r¸  rý  r/  Údate_error_message)
r=   r   r  r  Úlookup_typer©   Ú
unique_forr&  r  rà  s
             r>   rü  zModel._perform_date_checks÷  s,  € ØˆØ;Fó 	Ñ7ˆK˜ e¨ZØˆMô ˜4 Ó,ˆDØˆ|ØØ˜fÒ$Ø8<¿¹�˜i¨*Ñ4Ñ5Ø:>¿*¹*�˜k¨JÑ6Ñ7Ø9=¿¹�˜j¨:Ñ5Ò6äFMØ˜+óG�ª*±kÐBÑCô $+¨4°Ó#7ˆM˜%Ñ à4�×-Ñ-×4Ñ4ÑE°}ÑEˆBð —;‘;×%Ò%¨$¯/©/Ô*;Ø—Z‘Z 4§7¡7�ZÓ+�à�y‰y�{Ø×!Ñ! %¨Ó,×3Ñ3Ø×+Ñ+¨K¸À
ÓKöð1	ð6 ˆrA   c                 ó  — | j                   }|j                  |«      }t        |j                  d   d| t	        |j
                  «      ||t	        |j
                  «      |t	        |j                  |«      j
                  «      dœ¬«      S )Nr  )rƒ   r‰   r-  r©   Úfield_labelÚ
date_fieldÚdate_field_label©ÚmessageÚcodeÚparams)r\   r  r   Úerror_messagesr4   Úverbose_name)r=   r-  ra  r.  rÒ   r©   s         r>   r,  zModel.date_error_message  s|   € Ø�z‰zˆØ—‘˜zÓ*ˆÜØ×(Ñ(Ð):Ñ;Ø"àÜ& t×'8Ñ'8Ó9Ø*Ø#Ü'¨×(:Ñ(:Ó;Ø(Ü$,¨T¯^©^¸JÓ-G×-TÑ-TÓ$Uñô
ð 	
rA   c                 óÂ  — |j                   }| |t        |j                  «      |dœ}t        |«      dk(  rG|j	                  |d   «      }t        |j                  «      |d<   t        |j                  d   d|¬«      S |D �cg c]&  }t        |j	                  |«      j                  «      ‘Œ( }}t        |t        d«      «      |d<   t        t        d	«      d
|¬«      S c c}w )N)rƒ   r  r‰   r%  ri  r   r0  r  r3  ÚandÚfield_labelsz9%(model_name)s with this %(field_labels)s already exists.r  )	r\   r4   r8  r÷   r  r   r7  r5   Ú_)r=   r  r%  rÒ   r6  r©   r£   r;  s           r>   r$  zModel.unique_error_message'  sî   € Ø× Ñ ˆð Ø&Ü" 4×#4Ñ#4Ó5Ø(ñ	
ˆô ˆ|Ó Ò!Ø—N‘N <°¡?Ó3ˆEÜ$,¨U×-?Ñ-?Ó$@ˆF�=Ñ!Ü"Ø×,Ñ,¨XÑ6ØØôð ð COöØ=>”˜Ÿ™¨Ó*×7Ñ7Õ8ðˆLð ô &3°<ÄÀ5ÃÓ%JˆF�>Ñ"Ü"ÜÐUÓVØ&Øôð ùò	s   Â +Cc                 óþ   — | j                   | j                  j                  fg}| j                  j                  D ]@  }|j                  j                  sŒ|j	                  ||j                  j                  f«       ŒB |S r´   )r²   r\   r  r  r/  )r=   r  r  s      r>   Úget_constraintszModel.get_constraintsG  sn   € ØŸ™¨¯
©
×(>Ñ(>Ð?Ð@ˆØ ŸJ™J×2Ñ2ò 	SˆLØ×!Ñ!×-Ó-Ø×"Ñ" L°,×2DÑ2D×2PÑ2PÐ#QÕRð	Sð ÐrA   c                 óÎ  — | j                  «       }t        j                  | j                  | ¬«      }i }|D ]"  \  }}|D ]  }	 |j	                  || ||¬«       Œ Œ$ |rt        |«      ‚y # t
        $ rr}t        |dd «      dk(  rGt        |j                  «      dk(  r/|j                  |j                  d   g «      j                  |«       n|j                  |«      }Y d }~Œ¡d }~ww xY w)Nr~  )ré  rM  r5  r  ri  r   )r>  r   r�  r²   Úvalidater   rr   r÷   r~   rý  r/  Úupdate_error_dict)	r=   ré  r  rM  r  r  r  r  Úes	            r>   Úvalidate_constraintszModel.validate_constraintsN  sî   € Ø×*Ñ*Ó,ˆÜ×#Ñ# D§N¡N¸TÔBˆàˆØ.9ò 	=Ñ*ˆKÐ*Ø/ò 
=�
ð	=Ø×'Ñ'¨°TÀ7ÐRWÐ'ÕXñ
=ð	=ñ Ü! &Ó)Ð)ð øô 'ò =ä  6¨4Ó0°HÒ<Ü 
× 1Ñ 1Ó2°aÒ7à×)Ñ)¨*×*;Ñ*;¸AÑ*>ÀÓC×JÑJÈ1ÕMà!"×!4Ñ!4°VÓ!<˜ÿøð=ús   ÁA)Á)	C$Á2A(CÃC$c                 óÂ  — i }|€t        «       }nt        |«      }	 | j                  |¬«       	 | j	                  «        |r:|D ]"  }|t
        k7  sŒ||vsŒ|j                  |«       Œ$ 	 | j                  |¬«       |r:|D ]"  }|t
        k7  sŒ||vsŒ|j                  |«       Œ$ 	 | j                  |¬«       |rt        |«      ‚y# t        $ r}|j                  |«      }Y d}~Œ¶d}~ww xY w# t        $ r}|j                  |«      }Y d}~ŒÌd}~ww xY w# t        $ r}|j                  |«      }Y d}~Œ·d}~ww xY w# t        $ r}|j                  |«      }Y d}~Œ¢d}~ww xY w)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   rA  r÷  r
   rˆ   r  rC  )r=   ré  r  rC  r  rB  rJ   s          r>   Ú
full_cleanzModel.full_cleanb  sh  € ð ˆØˆ?Ü“e‰Gä˜'“lˆGð	1Ø×Ñ gÐÔ.ð	1Ø�J‰JŒLñ
 Øò &�ØÔ+Ó+°¸GÒ0CØ—K‘K Õ%ð&ð5Ø×$Ñ$¨WÐ$Ô5ñ
  Øò &�ØÔ+Ó+°¸GÒ0CØ—K‘K Õ%ð&ð5Ø×)Ñ)°'Ð)Ô:ñ Ü! &Ó)Ð)ð øô= ò 	1Ø×(Ñ(¨Ó0�Fûð	1ûô ò 	1Ø×(Ñ(¨Ó0�Fûð	1ûô #ò 5Ø×,Ñ,¨VÓ4•ûð5ûô #ò 5Ø×,Ñ,¨VÓ4•ûð5ús^   œC ¯C, Á)D Â%D: Ã	C)ÃC$Ã$C)Ã,	DÃ5DÄDÄ	D7ÄD2Ä2D7Ä:	EÅEÅEc           	      óØ  — |€
t        «       }i }| j                  j                  D ]‡  }|j                  |v s|j                  rŒt        | |j                  «      }|j                  r||j                  v rŒOt        |t        «      rŒ`	 t        | |j                  |j                  || «      «       Œ‰ |rt        |«      ‚y# t        $ r#}|j                  ||j                  <   Y d}~Œ¿d}~ww xY w)z
        Clean all fields and raise a ValidationError containing a dict
        of all validation errors if any occur.
        N)r„   r\   r~   rJ   rþ   rr   rü   ÚblankrÂ  ro   r   rµ   r÷  r   Ú
error_list)r=   ré  r  r£   Ú	raw_valuerB  s         r>   rE  zModel.clean_fields‘  sÏ   € ð
 ˆ?Ü“eˆGàˆØ—‘×"Ñ"ò 	.ˆAØ�v‰v˜Ñ  A§K¢KØô    a§i¡iÓ0ˆIØ�wŠw˜9¨¯©Ñ6Øä˜)¤_Ô5Øð.Ü˜˜aŸi™i¨¯©°¸DÓ)AÕBð	.ñ  Ü! &Ó)Ð)ð øô #ò .Ø!"§¡��q—v‘v–ûð.ús   Â'B=Â=	C)ÃC$Ã$C)c                 ó0  — g | j                  «       ¢| j                  «       ¢ | j                  di |¤Ž¢}| j                  j                  �sJ|j                  d«      xs g }|g  | j                  di |¤Ž¢| j                  «       ¢| j                  |«      ¢z  }g | j                  «       ¢| j                  «       ¢| j                  «       ¢| j                  «       ¢| j                  «       ¢­}|j                  |«       |s|j                  | j                  «       «       |g | j!                  «       ¢| j#                  |«      ¢| j%                  «       ¢| j'                  |«      ¢| j)                  «       ¢| j+                  |«      ¢| j-                  «       ¢z  }|S )NÚ	databasesr;   )Ú_check_swappableÚ_check_modelÚ_check_managersr\   ry   rË   Ú_check_fieldsÚ$_check_m2m_through_same_relationshipÚ_check_long_column_namesÚ_check_id_fieldÚ_check_field_name_clashesÚ#_check_model_name_db_lookup_clashesÚ3_check_property_name_related_field_accessor_clashesÚ_check_single_primary_keyrþ  Ú_check_column_name_clashesÚ_check_unique_togetherÚ_check_indexesÚ_check_orderingÚ_check_constraintsÚ_check_default_pkÚ_check_db_table_commentÚ_check_composite_pk)r’   r”   r  rL  Úclash_errorss        r>   r  zModel.check­  sÛ  € ð
Ø×!Ñ!Ó#ð
à×ÑÓð
ð !ˆS× Ñ Ñ* 6Ñ*ð
ˆð
 �y‰y× Ó ØŸ
™
 ;Ó/Ò5°2ˆIØð Ø"�×"Ñ"Ñ, VÑ,ðà×9Ñ9Ó;ðð ×-Ñ-¨iÓ8ðñ ˆFð
Ø×$Ñ$Ó&ðà×.Ñ.Ó0ðð ×8Ñ8Ó:ðð ×HÑHÓJð	ð
 ×.Ñ.Ó0ñˆLð �M‰M˜,Ô'ñ  Ø—‘˜c×<Ñ<Ó>Ô?Øð Ø×+Ñ+Ó-ðà×#Ñ# IÓ.ðð ×$Ñ$Ó&ðð ×'Ñ'¨	Ó2ð	ð
 ×&Ñ&Ó(ðð ×,Ñ,¨YÓ7ðð ×(Ñ(Ó*ðñ ˆFð ˆrA   c                 óV  — | j                   j                  �s| j                   j                  j                  rñt	        | j                   j                  t
        «      r*| j                   j                  j                  j                  s£t        j                  d«      sŽ| j                   j                  rx| j                   j                  j                  sXt        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 'ri   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)r\   r[   r  rk   ro   r"   r‚   rl   r   Úis_overriddenr    Ú!_is_default_auto_field_overriddenr	   ÚWarningrb  r²   rF   rÚ   s    r>   r]  zModel._check_default_pkÓ  sê   € ð —	‘	×"Ó"Ø—	‘	—‘×)Ò)ô ˜3Ÿ9™9Ÿ<™<¬Ô7Ø—I‘I—L‘L×-Ñ-×9Ò9ä×*Ñ*Ð+?Ô@Ø—	‘	×$Ò$Ø—I‘I×(Ñ(×JÒJô —‘ðä ×3Ñ3Ð4°Bð8ð KØŸ9™9×/Ñ/×9Ñ9×FÑFÐGð HNðOð
 Ø$ôðð ð ˆ	rA   c           
      ó&  — g }| j                   }|j                  }|j                  st        |t        «      s|S t        t        «      }|j                  D ]´  }d }	 |j                  |«      }|s|›d�}nh|j                  s|›d�}nV|j                  r|›d�}nD|j                  r|›d�}n2||j                  vr|›d�}n||j                     j                  |«       |sŒŠ|j                  t        j                   |›d�|| d¬«      «       Œ¶ |j#                  «       D ]a  \  }}	t%        |	«      d	kD  sŒ|	^}}
d
j'                  d„ |
D «       «      }|j                  t        j                   |› d�|› d|›d�| d¬«      «       Œc |S # t        $ r d }Y �Œ$w xY w)Nz is not a valid field.z field has no column.z field may not set 'null=True'.z field is a generated field.z field is not a local field.z1 cannot be included in the composite primary key.zmodels.E042rc  ri  r¹   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr´   rñ   r
  s     r>   rd   z,Model._check_composite_pk.<locals>.<genexpr>!  s   è ø€ Ò&E°u¤t¨E§{Ñ&Eùrô   z and z are the same fields.)r\   r  rx   ro   r    r   Úlistr¤   r  r   rý   Únullrþ   r{   r/  r	   ÚErrorrq   r÷   rÉ   )r’   r  rž   r  Úseen_columnsra  rd  r©   rý   r¤   ÚrestÚ
duplicatess               r>   r_  zModel._check_composite_pkó  s¾  € àˆØ�y‰yˆØ�W‰Wˆà�:Š:œZ¨Ô,?Ô@ØˆMä"¤4Ó(ˆàŸ.™.ò 	ˆJØˆDðØŸ™ zÓ2�ñ Ø$˜Ð'=Ð>‘Ø—\’\Ø$˜Ð'<Ð=‘Ø—’Ø$˜Ð'FÐG‘Ø—’Ø$˜Ð'CÐD‘Ø˜d×/Ñ/Ñ/Ø$˜Ð'CÐD‘à˜UŸ\™\Ñ*×1Ñ1°*Ô=âØ—‘Ü—L‘LØ%˜.ð )ð à!ØØ(ôõð-	ð@ $0×#5Ñ#5Ó#7ò 	ÑˆF�KÜ�;Ó !Ó#Ø$/Ð!�
˜TØ!ŸY™YÑ&EÀÔ&EÓE�
Ø—‘Ü—L‘LØ%˜,ð 'ð à *˜|¨5°°Ð>SÐTØØ(ôõð		ð ˆøôS %ò Ø“ðús   ÁFÆFÆFc                 óP  — | j                   j                  sg S g }|D ]†  }t        j                  || «      sŒt        |   }|j
                  j                  rŒ:d| j                   j                  v rŒS|j                  t        j                  |j                  › d�| d¬«      «       Œˆ |S )NÚsupports_commentsz8 does not support comments on tables (db_table_comment).zmodels.W046©rœ   re  )r\   Údb_table_commentr   Úallow_migrate_modelr   r!  rr  Úrequired_db_featuresr/  r	   rh  Údisplay_name)r’   rL  r  rê   r   s        r>   r^  zModel._check_db_table_comment.  s    € à�y‰y×)Ò)ØˆIØˆØò 	ˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJà×#Ñ#×5Ó5Ø&¨#¯)©)×*HÑ*HÒHà—‘Ü—N‘NØ%×2Ñ2Ð3ð 45ð 6àØ(ô	õð	ð  ˆrA   c                 ó  — g }| j                   j                  r,	 t        j                  | j                   j                  «       |S |S # t        $ rA |j                  t        j                  d| j                   j                  z  d¬«      «       Y |S t        $ rp | j                   j                  j                  d«      \  }}|j                  t        j                  d| j                   j                  ›d|›d|›d�d¬«      «       Y |S w xY w)	z"Check if the swapped model exists.z-'%s' is not of the form 'app_label.app_name'.zmodels.E001©re  rH   rl  z' references 'z0', which has not been installed, or is abstract.zmodels.E002)r\   ry   r   Ú	get_modelrÏ   r/  r	   rm  Ú	swappableÚLookupErrorÚsplit)r’   r  r]   r‰   s       r>   rM  zModel._check_swappableE  sê   € ð ˆØ�9‰9×ÒðÜ—‘˜sŸy™y×0Ñ0Ô1ð& ˆˆvˆøô% ò Ø—‘Ü—L‘LØGØŸ)™)×-Ñ-ñ.à(ôõð" ˆô ò 	Ø(+¯	©	×(9Ñ(9×(?Ñ(?ÀÓ(DÑ%�	˜:Ø—‘Ü—L’Lð Ÿ9™9×.Ó.²	º:ðGð )ô	õð ˆð	ús   š)A ÁADÂA4DÄDc                 óô   — g }| j                   j                  r_| j                   j                  s| j                   j                  r3|j	                  t        j                  d| j                  z  d¬«      «       |S )Nz'Proxy model '%s' contains model fields.zmodels.E017ry  )r\   rx   r{   r|   r/  r	   rm  rD   ©r’   r  s     r>   rN  zModel._check_model`  sY   € àˆØ�9‰9�?Š?Ø�y‰y×%Ò%¨¯©×)EÒ)EØ—‘Ü—L‘LØAÀCÇLÁLÑPØ(ôôð ˆrA   c                 ó‚   — g }| j                   j                  D ]#  }|j                   |j                  di |¤Ž«       Œ% |S )zPerform all manager checks.r;   )r\   rÍ   rþ  r  )r’   r”   r  rÖ   s       r>   rO  zModel._check_managersm  sA   € ð ˆØ—y‘y×)Ñ)ò 	3ˆGØ�M‰M˜-˜'Ÿ-™-Ñ1¨&Ñ1Õ2ð	3àˆrA   c                 óþ   — g }| j                   j                  D ]#  }|j                   |j                  di |¤Ž«       Œ% | j                   j                  D ]%  }|j                   |j                  dd| i|¤Ž«       Œ' |S )zPerform all field checks.Ú
from_modelr;   )r\   r{   rþ  r  r|   )r’   r”   r  r©   s       r>   rP  zModel._check_fieldsu  s{   € ð ˆØ—Y‘Y×+Ñ+ò 	1ˆEØ�M‰M˜+˜%Ÿ+™+Ñ/¨Ñ/Õ0ð	1à—Y‘Y×1Ñ1ò 	AˆEØ�M‰M˜+˜%Ÿ+™+Ñ?°Ð?¸Ñ?Õ@ð	AàˆrA   c                 óÀ  — g }g }| j                   j                  }d„ |D «       }d„ |D «       }|D ]¬  }|j                  j                  | |j                  j                  |j                  j
                  f}||v rS|j                  t        j                  d|j                  j                  j                   j                  z  | d¬«      «       Œœ|j                  |«       Œ® |S )zBCheck if no relationship model is used by more than one m2m field.c              3   ój   K  — | ]+  }t        |j                  j                  t        «      sŒ(|–— Œ- y ­wr´   )ro   r‚   rƒ   rW   r¼   s     r>   rd   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>‰  s#   è ø€ ÒS˜¤z°!·.±.×2FÑ2FÌ	Õ'R”!ÑSùó   ‚)3¬3c              3   ój   K  — | ]+  }t        |j                  j                  t        «      sŒ(|–— Œ- y ­wr´   )ro   r‚   r  rW   r¼   s     r>   rd   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>Œ  s#   è ø€ ÒU˜¤z°!·.±.×2HÑ2HÌ)Õ'T”!ÑUùr…  zWThe model has two identical many-to-many relations through the intermediate model '%s'.zmodels.E003rs  )
r\   r|   r‚   rƒ   r  Úthrough_fieldsr/  r	   rm  ru   )r’   r  Úseen_intermediary_signaturesr~   r£   Ú	signatures         r>   rQ  z*Model._check_m2m_through_same_relationship  sÝ   € ð ˆØ')Ð$à—‘×-Ñ-ˆñ T˜VÔSˆñ V˜VÔUˆàò 	?ˆAà—‘×$Ñ$ØØ—‘×&Ñ&Ø—‘×-Ñ-ð	ˆIð Ð8Ñ8Ø—‘Ü—L‘Lð?àŸ.™.×0Ñ0×6Ñ6×<Ñ<ñ=ð  Ø(ôõð -×3Ñ3°IÕ>ð%	?ð& ˆrA   c                 óD  — | j                   j                  D �cg c].  }|j                  dk(  sŒ|| j                   j                  k7  sŒ-|‘Œ0 }}|rK|d   j                  s<| j                   j                  j                  dk(  rt        j                  d| d¬«      gS g S c c}w )z%Check if `id` field is a primary key.re  r   zP'id' can only be used as a field name if the field also sets 'primary_key=True'.zmodels.E004rs  )r\   r{   rJ   r  Úprimary_keyr	   rm  )r’   r£   r~   s      r>   rS  zModel._check_id_field£  s”   € ð —y‘y×-Ñ-ö
Ø°·±¸4³ÀAÈÏÉÏÉÓDUŠAð
ˆð 
ñ ˜& ™)×/Ò/°C·I±I·L±L×4EÑ4EÈÒ4Mä—‘ð/àØ$ô	ðð ð ˆIùò
s   ™B®BÁBc                 ó
  — g }i }| j                   j                  D ]é  }|j                   j                  D ]Î  }|j                  |j                  «      xs |j                  |j
                  «      xs d}|rp|j                  t        j                  d|j                  ›d|j                  j                   ›d|j                  ›d|j                  j                   ›d�	| d¬«      «       |||j                  <   |||j
                  <   ŒÐ Œë | j                   j                  D ]5  }|j                   j                  «       D ]  }||vsŒ|||j                  <   Œ Œ7 | j                   j                  j                  «       D ]€  }|sŒ|j                  |j                  «      xs d}|sŒ(|j                  t        j                  d|j                  › d|j                  › d|j                  j                   › d�| d	¬«      «       Œ‚ | j                   j                  D ]î  }|j                  |j                  «      xs |j                  |j
                  «      xs d}|j                  d
k(  xr$ |xr  |j                  d
k(  xr |j                  | k(  }|r[|sY|j                  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 'ri   zmodels.E005rs  z' from model 'zmodels.E006re  )r\   r  r{   rË   rJ   rü   r/  r	   rm  rƒ   Ú
get_fieldsrŠ   r  )r’   r  Úused_fieldsr§   r£   Úclashrl   Úid_conflicts           r>   rT  zModel._check_field_name_clashes¶  sŸ  € ð ˆØˆð —i‘i×+Ñ+ò 	+ˆFØ—\‘\×.Ñ.ò +�Ø#Ÿ™¨¯©Ó/ÒU°;·?±?À1Ç9Á9Ó3MÒUÐQU�ÙØ—M‘MÜŸšð  %Ÿz›z¨5¯;©;×+<Ó+<¸a¿f»fÀaÇgÁgÇmÃmðUð !$Ø,ôô	ð '(�˜AŸF™FÑ#Ø)*�˜AŸI™IÒ&ñ+ð	+ð( —i‘i×+Ñ+ò 	,ˆFØ—\‘\×,Ñ,Ó.ò ,�Ø˜KÒ'Ø*+�K §¡Ò'ñ,ð	,ð Ÿ9™9×,Ñ,×3Ñ3Ó5ò 	ˆKÙØØ—O‘O K×$4Ñ$4Ó5Ò=¸ˆEÚØ—‘Ü—L‘LØ% k×&6Ñ&6Ð%7ð 8Ø!ŸJ™J˜< ~°e·k±k×6GÑ6GÐ5HÈðLàØ(ô	õð	ð —‘×'Ñ'ò 	'ˆAØ—O‘O A§F¡FÓ+ÒQ¨{¯©¸q¿y¹yÓ/IÒQÈTˆEð —‘˜$‘ÒV 5ÒV¨U¯Z©Z¸4Ñ-?ÒVÀEÇKÁKÐSVÑDVð ñ ™[Ø—‘Ü—L’Là./¯f«f°e·j³jÀ%Ç+Á+×BSÓBSðUàØ(ô	ôð #$ˆK˜Ÿ™ÑØ%&ˆK˜Ÿ	™	Ò"ð'	'ð* ˆrA   c           
      óþ   — g }g }| j                   j                  D ]_  }|j                  }|r>||v r:|j                  t	        j
                  d|j                  ›d|›d�d| d¬«      «       ŒO|j                  |«       Œa |S )NzField 'z' has column name 'z ' that is used by another field.z$Specify a 'db_column' for the field.zmodels.E007rc  )r\   r{   rý   r/  r	   rm  rJ   )r’   Úused_column_namesr  r£   Úcolumn_names        r>   rX  z Model._check_column_name_clashesü  s…   € ð ÐØˆà—‘×'Ñ'ò 	6ˆAØŸ(™(ˆKñ ˜{Ð.?Ñ?Ø—‘Ü—L’Là,-¯F«F²KðAàCØØ(ôõð "×(Ñ(¨Õ5ð	6ð" ˆrA   c                 ó"  — g }| j                   }|j                  d«      s|j                  d«      r,|j                  t	        j
                  d|z  | d¬«      «       |S t        |v r*|j                  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.E023rs  zbThe model name '%s' cannot contain double underscores as it collides with the query lookup syntax.zmodels.E024)rD   Ú
startswithÚendswithr/  r	   rm  r   )r’   r  r‰   s      r>   rU  z)Model._check_model_name_db_lookup_clashes  s�   € àˆØ—\‘\ˆ
Ø× Ñ  Ô%¨×)<Ñ)<¸SÔ)AØ�M‰MÜ—‘ðCØEOñPàØ$ô	ôð" ˆô ˜:Ñ%Ø�M‰MÜ—‘ð@ØBLñMàØ$ô	ôð ˆrA   c                 óè   — g }| j                   j                  }d„ | j                   j                  d¬«      D «       }|D ]1  }||v sŒ|j                  t	        j
                  d|z  | d¬«      «       Œ3 |S )Nc              3   ód   K  — | ](  }|j                   r|j                  �|j                  –— Œ* y ­wr´   )rP  Úrelated_modelrü   r¼   s     r>   rd   zLModel._check_property_name_related_field_accessor_clashes.<locals>.<genexpr>1  s,   è ø€ ò #
àØ�}Š} §¡Ð!<ð �I�Iñ#
ùs   ‚.0F©Úreversez8The property '%s' clashes with a related field accessor.zmodels.E025rs  )r\   r  Ú_get_fieldsr/  r	   rm  )r’   r  r
  Úrelated_field_accessorsÚaccessors        r>   rV  z9Model._check_property_name_related_field_accessor_clashes-  sƒ   € àˆØŸ™×2Ñ2ˆñ#
à—Y‘Y×*Ñ*°5Ð*Ó9ô#
Ðð
 0ò 		ˆHØ˜>Ò)Ø—‘Ü—L‘Lð$Ø&.ñ/àØ(ô	õð		ð ˆrA   c                 óª   — g }t        d„ | j                  j                  D «       «      dkD  r'|j                  t	        j
                  d| d¬«      «       |S )Nc              3   ó:   K  — | ]  }|j                   sŒd –— Œ y­w)ri  N)r‹  r¼   s     r>   rd   z2Model._check_single_primary_key.<locals>.<genexpr>E  s   è ø€ ÒB�Q°A·M³MŒqÑBùs   ‚”ri  zBThe model cannot have more than one field with 'primary_key=True'.zmodels.E026rs  )Úsumr\   r{   r/  r	   rm  r  s     r>   rW  zModel._check_single_primary_keyB  sN   € àˆÜÑB˜#Ÿ)™)×0Ñ0ÔBÓBÀQÒFØ�M‰MÜ—‘ð*àØ$ô	ôð ˆrA   c                 ó†  — 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 ]#  }|j                  | j                  |d«      «       Œ% |S )z,Check the value of "unique_together" option.z*'unique_together' must be a list or tuple.zmodels.E010rs  c              3   óJ   K  — | ]  }t        |t        t        f«       –— Œ y ­wr´   )ro   rw   rk  )rb   r~   s     r>   rd   z/Model._check_unique_together.<locals>.<genexpr>\  s&   è ø€ ò 
àô ˜6¤E¬4 =Ó1Ô1ñ
ùs   ‚!#z7All 'unique_together' elements must be lists or tuples.zmodels.E011r  )
ro   r\   r  rw   rk  r	   rm  rÎ   rþ  Ú_check_local_fields)r’   r  r~   s      r>   rY  zModel._check_unique_togetherP  s¾   € ô ˜#Ÿ)™)×3Ñ3´e¼T°]ÔCä—‘Ø@ØØ$ôðð ô ñ 
àŸ)™)×3Ñ3ô
ô 
ô
 —‘ØMØØ$ôðð ð ˆFØŸ)™)×3Ñ3ò R�Ø—‘˜c×5Ñ5°fÐ>OÓPÕQðRàˆMrA   c           	      óP  — g }t        «       }| j                  j                  D �]  }|j                  d   dk(  s|j                  d   j	                  «       r4|j                  t        j                  d|j                  z  | d¬«      «       t        |j                  «      |j                  kD  r@|j                  t        j                  d|j                  |j                  fz  | d¬«      «       |j                  sŒÖ|j                  D ])  }|j                  d„ | j                  |«      D «       «       Œ+ �Œ |D �]Ä  }t        j                  || «      sŒt         |   }|j"                  j$                  ssd	| j                  j&                  v s[t)        d
„ | j                  j                  D «       «      r5|j                  t        j*                  d|j,                  z  d| d¬«      «       |j"                  j.                  ssd| j                  j&                  v s[t)        d„ | j                  j                  D «       «      r5|j                  t        j*                  d|j,                  z  d| d¬«      «       |j"                  j0                  r�ŒNd| j                  j&                  v r�Œht)        d„ | j                  j                  D «       «      s�Œ�|j                  t        j*                  d|j,                  z  d| d¬«      «       �ŒÇ | j                  j                  D ���	cg c]  }|j2                  D ]  \  }}	|‘Œ	 Œ }
}}}	|
| j                  j                  D ��cg c]  }|j4                  D ]  }|‘Œ Œ c}}z  }
|
|z  }
|j7                  | j9                  |
d«      «       |S c c}	}}w c c}}w )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.E033rs  z8The index name '%s' cannot be longer than %d characters.zmodels.E034c              3   ó&   K  — | ]	  }|d    –— Œ y­wrç  r;   )rb   rè  s     r>   rd   z'Model._check_indexes.<locals>.<genexpr>Š  s   è ø€ ò &Ø#&˜˜A�ñ&ùs   ‚Úsupports_partial_indexesc              3   ó8   K  — | ]  }|j                   d u–— Œ y ­wr´   )Ú	condition©rb   r×   s     r>   rd   z'Model._check_indexes.<locals>.<genexpr>”  s   è ø€ ÒQ°e�e—o‘o¨TÔ1ÑQùs   ‚z,%s does not support indexes with conditions.zLConditions will be ignored. Silence this warning if you don't care about it.zmodels.W037rc  Úsupports_covering_indexesc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr´   )Úincluderª  s     r>   rd   z'Model._check_indexes.<locals>.<genexpr>¤  s   è ø€ ÒC¨�e—m•mÑCùr½   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   ó4   K  — | ]  }|j                   –— Œ y ­wr´   )Úcontains_expressionsrª  s     r>   rd   z'Model._check_indexes.<locals>.<genexpr>´  s   è ø€ ÒP°U�e×0Õ0ÑPùr½   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.W043r�   )r„   r\   r�   rJ   Úisdigitr/  r	   rm  r÷   Úmax_name_lengthr°  Úexpressionsr†   rë  r   ru  r   r!  r§  rv  rÎ   rh  rw  r«  r®  Úfields_ordersr­  rþ  r¤  )r’   rL  r  Ú
referencesr×   rì  rê   r   r©   r<  r~   r­  s               r>   rZ  zModel._check_indexesn  sB  € ð ˆÜ“Uˆ
Ø—Y‘Y×&Ñ&ó 	ˆEð �z‰z˜!‰} Ò# u§z¡z°!¡}×'<Ñ'<Ô'>Ø—‘Ü—L‘Lð'Ø).¯©ñ4àØ(ô	ôô �5—:‘:‹ ×!6Ñ!6Ò6Ø—‘Ü—L‘Lð&Ø).¯©°U×5JÑ5JÐ(KñLàØ(ô	ôð ×)Ó)Ø"'×"3Ñ"3ò �JØ×%Ñ%ñ &Ø*-×*BÑ*BÀ:Ó*Nô&õ òð-	ð4 ó 3	ˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJà×#Ñ#×<Ò<Ø-°·±×1OÑ1OÑOÜÑQ¸s¿y¹y×?PÑ?PÔQÔQØ—‘Ü—N‘NØFØ$×1Ñ1ñ2ð:ð  Ø(ô	ôð ×#Ñ#×=Ò=Ø.°#·)±)×2PÑ2PÑPÜÑC°·±×1BÑ1BÔCÔCØ—‘Ü—N‘NØKØ$×1Ñ1ñ2ðBð  Ø(ô	ôð ×#Ñ#×?Ô?Ø0°C·I±I×4RÑ4RÓRÜÑP¸c¿i¹i×>OÑ>OÔPÖPØ—‘Ü—N‘NØEØ$×1Ñ1ñ2ð:ð  Ø(ô	öðQ3	ðj  #Ÿy™y×0Ñ0÷
ð 
ØÀ×ATÑATò
Ù5=°U¸AŠEð
Øð
ˆò 
ð 	¨¯	©	×(9Ñ(9×W˜uÈÏÉÒW¸g’7ÐW�7ÓWÑWˆØ�*ÑˆØ�‰�c×-Ñ-¨f°iÓ@ÔAØˆùô
ùó Xs   ÌNÍN"c                 ó<  — ddl m} i }| j                  j                  d¬«      D ]-  }|||j                  <   t        |d«      sŒ|||j                  <   Œ/ g }|D �]  }	 ||   }t        |j                  |j                  «      r2|j                  t        j                  d|›d|›d|›d	�| d
¬«      «       Œ\t        ||j                  «      r1|j                  t        j                  |›d|›d|›d�| d¬«      «       Œ£|| j                  j                  vsŒ¼|j                  t        j                  d|›d|›d| j                  j                  ›d	�d| d¬«      «       �Œ |S # t         $ r2 |j                  t        j                  d|›d|›d	�| d¬«      «       Y �ŒAw xY w)Nr   )ÚmodelsFrš  rü   rl  z' refers to a ManyToManyField 'z.', but ManyToManyFields are not permitted in 'ri   zmodels.E013rs  z! refers to a CompositePrimaryKey z0, but CompositePrimaryKeys are not permitted in rH   zmodels.E048z' refers to field 'z' which is not local to model 'z4This issue may be caused by multi-table inheritance.zmodels.E016rc  z#' refers to the nonexistent field 'zmodels.E012)Ú	django.dbr·  r\   rœ  rJ   rS   rü   ro   r‚   ÚManyToManyRelr/  r	   rm  r    r{   r'  rÿ   )r’   r~   Úoptionr·  Úforward_fields_mapr©   r  ra  s           r>   r¤  zModel._check_local_fieldsÉ  s§  € å$ð  ÐØ—Y‘Y×*Ñ*°5Ð*Ó9ò 	:ˆEØ-2Ð˜uŸz™zÑ*Ü�u˜iÕ(Ø49Ð" 5§=¡=Ò1ð	:ð
 ˆØ ó 1	ˆJð0Ø*¨:Ñ6�ô ˜e×0Ñ0°&×2FÑ2FÔGØ—M‘MÜŸšò !'Ú *Ú &ðð !$Ø,ô
õô    v×'AÑ'AÔBØ—M‘MÜŸ™Ø%˜jÐ(IØ)˜nð -,Ø,2¨:°Qð8ð !$Ø,ôõð  #§)¡)×"8Ñ"8Ò8Ø—M‘MÜŸšâ'-ªz¸3¿9¹9×;PÓ;PðRà!WØ #Ø,ôöðS1	ðd ˆøô_ ò Ø—‘Ü—L’Lò #Ú&ðð
  Ø(ô÷
ðús   ÁE Å 7FÆFc           
      óP  — | 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 ]-  }t        |v r|j                  |«       Œ|j                  |«       Œ/ |}|D ]Š  }| }d}|j                  t        «      D ]l  }		 |	d	k(  r|j                   j                  }n|j                   j                  |	«      }|j                  r$|j                  d
   j                   j"                  }nd}Œn ŒŒ |D �ch c]
  }|d	k7  sŒ	|’Œ }}g }
| j                   }t-        t/        j0                  d„ t/        |j2                  |j4                  «      D «       «      «      }|
j7                  ||z
  «       |
D ],  }|j                  t        j                  d|z  | d¬«      «       Œ. |S # t$        t&        f$ rR |�"|j)                  |	«      €;|j+                  |	«      €*|j                  t        j                  d|z  | d¬«      «       Y �Œ~w xY wc c}w )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.E021rs  zQ'ordering' must be a tuple or list (even if you want to order by only one field).zmodels.E014c              3   óN   K  — | ]  }t        |t        «      sŒ|d k7  sŒ|–— Œ y­w)ú?N)ro   r#  r¼   s     r>   rd   z(Model._check_ordering.<locals>.<genexpr>*	  s   è ø€ ÒG˜¤z°!´SÕ'9¸aÀ3»h”!ÑGùs   ‚%˜%ž%c              3   ó>   K  — | ]  }|j                  d «      –— Œ y­w)rÔ  N)Úremoveprefixr¼   s     r>   rd   z(Model._check_ordering.<locals>.<genexpr>-	  s   è ø€ Ò6¨!�!—.‘. ×%Ñ6ùs   ‚Nr  éÿÿÿÿzJ'ordering' refers to the nonexistent field, related field, or lookup '%s'.zmodels.E015c              3   ó²   K  — | ]O  }|j                   r|j                  r|j                  |j                  fn|j                  j                  «       f–— ŒQ y ­wr´   )rk   ÚconcreterJ   rü   r©   Úrelated_query_namer¼   s     r>   rd   z(Model._check_ordering.<locals>.<genexpr>`	  sN   è ø€ ò  ð ð ŸNšN°1·:²:ð —V‘V˜QŸY™YÑ'àŸ'™'×4Ñ4Ó6Ð8ó9ñ ùs   ‚AA)r\   Ú_ordering_clashr	   rm  rÃ   rg   ro   rk  rw   r   r/  r}  r  r  rP  Ú
path_infosÚto_optsrƒ   r   ÚAttributeErrorÚget_transformÚ
get_lookupr„   r   Úfrom_iterabler~   rU  rþ  )r’   r  r~   Ú_fieldsÚrelated_fieldsr£   r©   Ú_clsÚfldÚpartÚinvalid_fieldsrÒ   Úvalid_fieldsÚinvalid_fields                 r>   r[  zModel._check_ordering
	  sª  € ð �9‰9×$Ò$ä—‘ØUØØ$ôðð ð �9‰9×*Ò*°#·)±)×2DÒ2DØˆIä˜#Ÿ)™)×,Ñ,¬t´U¨mÔ<ä—‘ð'àØ$ô	ðð ð ˆØ—‘×#Ñ#ˆñ H˜VÔGˆñ 7¨vÔ6ˆð ˆØˆØò 	"ˆAÜ˜Q‰Ø×%Ñ% aÕ(à—‘˜qÕ!ð		"ð
 ˆð $ò 	ˆEØˆDØˆCØŸ™¤JÓ/ò �ðà˜t’|Ø"Ÿj™jŸm™m™à"Ÿj™j×2Ñ2°4Ó8˜Ø—’Ø"Ÿ~™~¨bÑ1×9Ñ9×?Ñ?™à#˜øñð	ð: $Ö1˜ q¨D£y’!Ð1ˆÐ1ð ˆð �y‰yˆÜÜ×Ññ  ô ˜tŸ{™{¨D×,@Ñ,@ÓAô ó ó	
ˆð 	×Ñ˜f |Ñ3Ô4à+ò 	ˆMØ�M‰MÜ—‘ð-Ø/<ñ=àØ$ô	õð	ð ˆøô[ *¬>Ð:ò Ø�{Ø×)Ñ)¨$Ó/Ð7¸C¿N¹NÈ4Ó<PÐ<XàŸ™Ü"ŸL™Lð!AØCHñ!Ià$'Ø#0ô	ôúð	üò 2s    Ä%A)H?Æ
J#Æ!J#È?AJ ÊJ c                 ó€  — |sg S g }d}d}|D ]f  }t        j                  || «      sŒt        |   }|j                  j	                  «       }|�|j
                  j                  rŒV|€|}|}Œ]||k  sŒc|}|}Œh |€|S | j                  j                  D ]_  }|j                  �Œ|j                  x}	€Œt        |	«      |kD  sŒ.|j                  t        j                  d|	›d|›d|›d�d| d¬«      «       Œa | j                  j                  D ]³  }t!        |j"                  j$                  t&        «      rŒ(|j"                  j$                  j                  j                  D ]_  }
|
j                  �Œ|
j                  x}€Œt        |«      |kD  sŒ.|j                  t        j                  d	|›d|›d|›d�d
| d¬«      «       Œa Œµ |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.E018rc  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   ru  r   Úopsr²  r!  Útruncates_namesr\   r{   Ú	db_columnrý   r÷   r/  r	   rm  r|   ro   r‚   r  r#  )r’   rL  r  Úallowed_lenÚdb_aliasrê   r   r²  r£   r“  Úm2mÚrel_names               r>   rR  zModel._check_long_column_namesw	  sÍ  € ñ ØˆIØˆØˆØˆð ò 	"ˆBä×-Ñ-¨b°#Ô6ØÜ$ R™ˆJØ(Ÿn™n×<Ñ<Ó>ˆOØÐ&¨*×*=Ñ*=×*MÒ*MØàÐ&Ø"1�KØ!‘HØ$ {Ó2Ø"1�KØ!‘Hð	"ð  ÐØˆMà—‘×'Ñ'ò 	ˆAð —‘Ñ#Ø$%§H¡HÐ,�[Ñ9Ü˜Ó$ {Ó2à—‘Ü—L’Lò 'ª²Xð?ð OØØ(ôõ	ð	ð& —‘×-Ñ-ò 	ˆAä˜!Ÿ.™.×0Ñ0´#Ô6Øð —~‘~×-Ñ-×3Ñ3×@Ñ@ò �à—M‘MÑ)Ø%(§Z¡ZÐ/˜Ñ<Ü˜H›¨Ó3à—M‘MÜŸšò  (ª²hð@ð!Rð !$Ø,ô
õñð	ð6 ˆrA   c              #   ó  K  — t        |t        «      rz|j                  D ]j  }t        |t        «      r?|\  }}t        |j	                  t
        «      «      –— | j                  |«      E d {  –—†  ŒR| j                  |«      E d {  –—†  Œl y t        |t        «      r+t        |j                  j	                  t
        «      «      –— y t        |d«      r/|j                  «       D ]  }| j                  |«      E d {  –—†  Œ y y 7 Œ˜7 Œ€7 Œ­w)NÚget_source_expressions)ro   r)   Úchildrenrw   r}  r   rë  r(   rJ   rS   rÝ  )r’   ÚexprÚchildÚlookuprT   Úsrc_exprs         r>   rë  zModel._get_expr_referencesÇ	  sá   è ø€ ä�dœAÔØŸ™ò ?�Ü˜e¤UÔ+Ø$)‘M�F˜EÜ §¡¬ZÓ 8Ó9Ò9Ø"×7Ñ7¸Ó>×>Ñ>à"×7Ñ7¸Ó>×>Ñ>ñ?ô ˜œaÔ Ü˜Ÿ	™	Ÿ™¬
Ó3Ó4Ó4Ü�TÐ3Ô4Ø ×7Ñ7Ó9ò >�Ø×3Ñ3°HÓ=×=Ñ=ñ>ð 5ð ?øà>øð
 >ús7   ‚A)D
Á+DÁ,D
ÂDÂA5D
Ã;DÃ<	D
ÄD
ÄD
c                 óÐ   — g }|D ]^  }t        j                  || «      sŒt        |   }| j                  j                  D ]#  }|j                  |j                  | |«      «       Œ% Œ` |S r´   )r   ru  r   r\   r  rþ  Ú_check)r’   rL  r  rê   r   r  s         r>   r\  zModel._check_constraints×	  so   € àˆØò 	BˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJØ!Ÿi™i×3Ñ3ò B�
Ø—‘˜j×/Ñ/°°ZÓ@ÕAñBð		Bð ˆrA   r´   )NNN)FFFNN)FNFFNNr  )NTT)JrD   rE   rF   r  Úclassmethodr  r?   rC   r  r"  r+  r$  r;  r=  r@  rß   r  r   rE  r]  r_  rb  ry  r{  Úalters_datar‹  r�  r†  r–  r—  rª  r¯  r€  rÆ  rÉ  rÏ  rá  rÄ   rò  rõ  r÷  r  rú  rû  rü  r,  r$  r>  rC  rF  rE  r  r]  r_  r^  rM  rN  rO  rP  rQ  rS  rT  rX  rU  rV  rW  rY  rZ  r¤  r[  rR  rë  r\  rY   rà   s   @r>   rí   rí   Í  sa  ø„ ôp2ðd ñ
ó ð
ò<òEò!òò
1òò"$ó,.ò;ñ 
�+˜{Ó	+€Bó
ò
óQ/óf
ò
,ò$"OðV ØØØôM
ð^ €DÔð ØØØô
ð2 €EÔàñó ðð* ØØØØóDðL !€IÔð HLó-ðb ØØØØØó^ò@,ò8
ó4ól	"ð €FÔó
ð €GÔò
òò*(ó.òBMòó*ó B*òH/òbò>
ò"ò@ó*ó(-*ó^*ð8 ñ#ó ð#ðJ ñó ðð> ñ8ó ð8ðt ñó ðð, ñó ðð4 ñ
ó ð
ð ñó ðð ñó ðð ñ!ó ð!ðF ñó ðð$ ñCó ðCðJ ñó ðð0 ñó ðð. ñó ðð( ñó ðð ñó ðð: ñXó ðXðt ñ>ó ð>ð@ ñjó ðjðX ñMó ðMð^ ñ>ó ð>ð ñó ôrA   rí   )Ú	metaclassc           
      ó  — |j                   j                  }|j                  | «      } |j                  j	                  |«      j
                  di |¤Žj                  t        |«      D ��cg c]  \  }} |||¬«      ‘Œ c}}dg«       y c c}}w )N)r  r¤  r¤  r;   )r\   rÃ   Úget_forward_related_filterrÁ   rL  rN  Úbulk_updaters  )r=   Úordered_objÚid_listrM  Ú	order_wrtr´  rÝ  r  s           r>   Úmethod_set_orderrî  ê	  sx   € Ø×!Ñ!×7Ñ7€IØ×6Ñ6°tÓ<€KØ0€K×Ñ×"Ñ" 5Ó)×0Ñ0Ñ?°;Ñ?×KÑKÜ;DÀWÓ;M×N©i¨e°R‰˜ 5Ö	)ÓNØ	ˆ
õùÛNs   Á*B	
c                 óê   — |j                   j                  }|j                  | «      }|j                   j                  j                  } |j
                  j                  di |¤Žj                  |d¬«      S )NT)Úflatr;   )r\   rÃ   ré  r  rJ   rÁ   rN  Úvalues_list)r=   rë  rí  r´  Úpk_names        r>   Úmethod_get_orderró  ó	  sf   € Ø×!Ñ!×7Ñ7€IØ×6Ñ6°tÓ<€KØ×Ñ×"Ñ"×'Ñ'€GØ%ˆ;×Ñ×%Ñ%Ñ4¨Ñ4×@Ñ@ÀÈtÐ@ÓTÐTrA   c                 óÜ   — t        |d| j                  j                  «       z  t        t        | «      «       t        |d| j                  j                  «       z  t        t
        | «      «       y )Nzget_%s_orderzset_%s_order)rµ   rD   Úlowerr   ró  rî  )rƒ   r™  s     r>   rÇ   rÇ   ú	  sZ   € ÜØØ˜Ÿ™×-Ñ-Ó/Ñ/ÜÔ&¨Ó.ôô
 ØØ˜Ÿ™×-Ñ-Ó/Ñ/ÜÔ&¨Ó.õrA   c                 ón   — t        | t        «      rt        j                  | Ž }n| }|j	                  |«      S )z7Used to unpickle Model subclasses with deferred fields.)ro   rw   r   rz  rn   )Úmodel_idrƒ   s     r>   r(  r(  
  s0   € ä�(œEÔ"Ü—‘ Ð)‰ð ˆØ�=‰=˜ÓÐrA   Tr´   )`r‹   rQ   r7  Úcollectionsr   Ú	functoolsr   Ú	itertoolsr   Úasgiref.syncr   r%  Údjango.appsr   Údjango.confr   Údjango.corer	   Údjango.core.exceptionsr
   r   r   r   r   r   r¸  r   r   r   r   r   r   Údjango.db.modelsr   r   r   r   r   Údjango.db.models.constantsr   Údjango.db.models.deletionr   r   Údjango.db.models.expressionsr   Ú!django.db.models.fields.compositer    Údjango.db.models.fields.relatedr!   r"   r#   r$   Údjango.db.models.functionsr%   Údjango.db.models.managerr&   Údjango.db.models.optionsr'   Údjango.db.models.queryr(   r)   Údjango.db.models.signalsr*   r+   r,   r-   r.   Údjango.db.models.utilsr/   r0   Údjango.utils.deprecationr1   Údjango.utils.encodingr2   Údjango.utils.hashabler3   Údjango.utils.textr4   r5   Údjango.utils.translationr6   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Ý 1ß 8Ý 8Ý A÷ó õ 0Ý ,Ý ,ß '÷õ ÷ @Ý =Ý +Ý /ß 5Ý 6÷"ñ "ñ ‹:€òò$Pô
X)�ô X)÷v
ñ ÷	5ñ 	5ôS ˆJ )õ S óz@òUò
ò$ ð (,€Õ $rA   