Ë
    ¹ûàgYŸ  ã                   óf  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dl	mZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dl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!m"Z" d dl#m$Z$ ddl%m&Z& ddl'm(Z( d"d„Z)d„ Z*d„ Z+d„ Z, G d„ d«      Z- G d„ de«      Z. G d„ de
«      Z/ G d „ d!«      Z0y)#é    N)Údefaultdict)Úcontextmanager)Úpartial)Ú	AppConfig)ÚApps)Úapps)Úsettings)ÚFieldDoesNotExist)Úmodels)Úfield_is_referencedÚget_references)ÚNOT_PROVIDED)ÚRECURSIVE_RELATIONSHIP_CONSTANT)ÚDEFAULT_NAMESÚnormalize_together)Úmake_model_tuple)Úcached_property)Úimport_string)Úget_docs_versioné   )ÚInvalidBasesError)Úresolve_relationc                 óÞ   — t        | t        «      r2| j                  dd«      }t        |«      dk(  rt	        |«      S ||d   fS | j
                  j                  | j
                  j                  fS )Nú.r   é   r   )Ú
isinstanceÚstrÚsplitÚlenÚtupleÚ_metaÚ	app_labelÚ
model_name)Úmodelr"   r   s      úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/db/migrations/state.pyÚ_get_app_label_and_model_namer&      s]   € Ü�%œÔØ—‘˜C Ó#ˆÜ" 5›z¨QšŒu�U‹|ÐI°YÀÀaÁÐ4IÐIà�{‰{×$Ñ$ e§k¡k×&<Ñ&<Ð<Ð<ó    c                 ó  — | j                  «       D �cg c]  }t        |t        j                  «      r|‘Œ  }}t	        «       }| j
                  j                  dd¬«      D ]m  }|j                  sŒ|j                  €Œt        |j                  t        «      rŒ8|j                  |j                  «       |j                  |j                  «       Œo | j
                  }|j                  r| |v r|j                  |j                  «       |S c c}w )zEReturn all models that have a direct relationship to the given model.T)Úinclude_parentsÚinclude_hidden)Ú__subclasses__Ú
issubclassr   ÚModelÚsetr!   Ú
get_fieldsÚis_relationÚrelated_modelr   r   Úaddr$   ÚappendÚproxyÚconcrete_model)ÚmÚsubclassÚrelated_modelsÚrelated_fields_modelsÚfÚoptss         r%   Ú_get_related_modelsr<   !   sá   € ð ×(Ñ(Ó*öàÜ�h¤§¡Ô-ò 	ð€Nð ô
  ›EÐØ�W‰W×Ñ°ÀTÐÓJò 3ˆà�M‹MØ—‘Ñ+Ü˜qŸ™´Õ4à!×%Ñ% a§g¡gÔ.Ø×!Ñ! !§/¡/Õ2ð3ð �7‰7€DØ‡z‚z�aÐ0Ñ0Ø×Ñ˜d×1Ñ1Ô2ØÐùò's   “#Dc                 ó’   — t        | «      D �ch c].  }|j                  j                  |j                  j                  f’Œ0 c}S c c}w )zq
    Return a list of typical (app_label, model_name) tuples for all related
    models for the given model.
    )r<   r!   r"   r#   )r$   Úrel_mods     r%   Úget_related_models_tuplesr?   9   sB   € ô +¨5Ó1öàð 
�‰×	 Ñ	  '§-¡-×":Ñ":Ò;òð ùò s   Ž3Ac                 óZ  — t        «       }t        | «      }|D ]b  }|j                  j                  |j                  j                  }}||f|v rŒ6|j                  ||f«       |j                  t        |«      «       Œd || j                  j                  | j                  j                  fhz
  S )aå  
    Return all models that have a direct or indirect relationship
    to the given model.

    Relationships are either defined by explicit relational fields, like
    ForeignKey, ManyToManyField or OneToOneField, or by inheriting from another
    model (a superclass is related to its subclasses, but not vice versa). Note,
    however, that a model inheriting from a concrete model is also related to
    its superclass through the implicit *_ptr OneToOneField on the subclass.
    )r.   r<   r!   r"   r#   r2   Úextend)r$   ÚseenÚqueuer>   Úrel_app_labelÚrel_model_names         r%   Úget_related_models_recursiverF   D   s£   € ô ‹5€DÜ Ó&€EØò 3ˆà�M‰M×#Ñ#Ø�M‰M×$Ñ$ð &ˆð ˜>Ð*¨dÑ2ØØ�‰�- Ð0Ô1Ø�‰Ô(¨Ó1Õ2ð3ð �E—K‘K×)Ñ)¨5¯;©;×+AÑ+AÐBÐCÑCÐCr'   c                   ó  — e Zd ZdZd&d„Zed„ «       Zd„ Zd„ Zd„ Z	d'd„Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd(d„Zd(d„Zd)d„Zd„ Zd„ Z	 d'd„Zd'd„Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$e%d#„ «       Z&e'd$„ «       Z(d%„ Z)y)*ÚProjectStatez½
    Represent the entire project's overall state. This is the item that is
    passed around - do it here rather than at the app level so that cross-app
    FKs/etc. resolve properly.
    Nc                 ó‚   — |xs i | _         |€t        «       }nt        |t        «      sJ ‚|| _        d| _        d | _        y ©NF)r   r.   r   Ú	real_appsÚ
is_delayedÚ
_relations)Úselfr   rK   s      r%   Ú__init__zProjectState.__init__d   s?   € Ø’l ˆŒàÐÜ›‰Iä˜i¬Ô-Ð-Ð-Ø"ˆŒØˆŒàˆ�r'   c                 óR   — | j                   €| j                  «        | j                   S ©N)rM   Úresolve_fields_and_relations©rN   s    r%   Ú	relationszProjectState.relationsp   s"   € à�?‰?Ð"Ø×-Ñ-Ô/Ø�‰Ðr'   c                 óÈ   — |j                   |j                  f}|| j                  |<   | j                  �| j	                  |«       d| j
                  v r | j                  |Ž  y y ©Nr   )r"   Ú
name_lowerr   rM   Úresolve_model_relationsÚ__dict__Úreload_model)rN   Úmodel_stateÚ	model_keys      r%   Ú	add_modelzProjectState.add_modelv   s_   € Ø×)Ñ)¨;×+AÑ+AÐAˆ	Ø!,ˆ�‰�IÑØ�?‰?Ð&Ø×(Ñ(¨Ô3Ø�T—]‘]Ñ"ØˆD×Ñ˜yÒ)ð #r'   c                 ó”  — ||f}| j                   |= | j                  �i| j                  j                  |d «       t        | j                  j	                  «       «      D ]'  \  }}|j                  |d «       |rŒ| j                  |= Œ) d| j
                  v r4 | j                  j                  |Ž  | j                  j                  «        y y rV   )	r   rM   ÚpopÚlistÚitemsrY   r   Úunregister_modelÚclear_cache)rN   r"   r#   r\   Úrelated_model_keyÚmodel_relationss         r%   Úremove_modelzProjectState.remove_model~   s¶   € Ø˜zÐ)ˆ	Ø�K‰K˜	Ð"Ø�?‰?Ð&Ø�O‰O×Ñ 	¨4Ô0ä6:¸4¿?¹?×;PÑ;PÓ;RÓ6Sò ;Ñ2Ð! ?Ø×#Ñ# I¨tÔ4Ú&ØŸ™Ð(9Ñ:ð;ð �T—]‘]Ñ"Ø&ˆD�I‰I×&Ñ&¨	Ñ2ð �I‰I×!Ñ!Õ#ð	 #r'   c                 ó¬  — |j                  «       }|j                  «       }| j                  ||f   j                  «       }||_        || j                  ||f<   ||f}|› d|› �}t	        «       }	t        | |«      D ]ž  \  }
}}}d }|j                  r!|j                  «       }||j                  _        |j                  r#|€|j                  «       }||j                  _	        |sŒi||
j                  |<   |	j                  |
j                  |
j                  f«       Œ  | j                  �v||f}||f}|| j                  v r(| j                  j                  |«      | j                  |<   | j                  j!                  «       D ]  }||v sŒ|j                  |«      ||<   Œ | j#                  |	d¬«       | j%                  ||«       | j'                  ||d¬«       y )Nr   T©Údelay)Úlowerr   ÚcloneÚnamer.   r   ÚtoÚremote_fieldr$   ÚthroughÚfieldsr2   r"   rW   rM   r_   ÚvaluesÚreload_modelsrf   rZ   )rN   r"   Úold_nameÚnew_nameÚold_name_lowerÚnew_name_lowerÚrenamed_modelÚold_model_tupleÚnew_remote_modelÚ	to_reloadr[   rl   ÚfieldÚ	referenceÚchanged_fieldÚold_name_keyÚnew_name_keyre   s                     r%   Úrename_modelzProjectState.rename_modelŽ   sÔ  € à!Ÿ™Ó)ˆØ!Ÿ™Ó)ˆØŸ™ I¨~Ð$=Ñ>×DÑDÓFˆØ%ˆÔØ1>ˆ�‰�I˜~Ð-Ñ.à$ nÐ5ˆØ'˜[¨¨(¨Ð4ÐÜ“Eˆ	Ü3AØ�/ó4
ò 	OÑ/ˆK˜˜u ið !ˆMØ�|Š|Ø %§¡£�Ø3C�×*Ñ*Ô0Ø× Ò Ø Ð(Ø$)§K¡K£M�MØ5E�×*Ñ*Ô2ÚØ+8�×"Ñ" 4Ñ(Ø—‘˜{×4Ñ4°k×6LÑ6LÐMÕNð	Oð �?‰?Ð&Ø$ nÐ4ˆLØ$ nÐ4ˆLØ˜tŸ™Ñ.Ø04·±×0CÑ0CÀLÓ0Q�—‘ Ñ-Ø#'§?¡?×#9Ñ#9Ó#;ò V�Ø ?Ò2Ø4C×4GÑ4GÈÓ4U�O LÒ1ðVð 	×Ñ˜9¨DÐÔ1à×Ñ˜) ^Ô4Ø×Ñ˜) ^¸4ÐÕ@r'   c                 óÌ   — | j                   ||f   }i |j                  ¥|¥|_        |r(|D ]#  }||vsŒ|j                  j                  |d«       Œ% | j                  ||d¬«       y )NFTrh   )r   Úoptionsr_   rZ   )rN   r"   r#   r‚   Úoption_keysr[   Úkeys          r%   Úalter_model_optionsz ProjectState.alter_model_optionsµ   st   € Ø—k‘k )¨ZÐ"7Ñ8ˆØ@ ×!4Ñ!4Ð@¸Ð@ˆÔÙØ"ò 8�Ø˜gÒ%Ø×'Ñ'×+Ñ+¨C°Õ7ð8ð 	×Ñ˜) Z°tÐÕ<r'   c                 óü   — | j                   ||f   }|j                  j                  |«      x}r5|D �cg c]  }t        |«      t        |«      k7  sŒ|‘Œ c}|j                  |<   | j	                  ||d¬«       y c c}w ©NTrh   )r   r‚   Úgetr    rZ   )rN   r"   r#   Úoption_nameÚvalue_to_remover[   ÚobjsÚobjs           r%   Úremove_model_optionsz!ProjectState.remove_model_options¾   s}   € Ø—k‘k )¨ZÐ"7Ñ8ˆØ×&Ñ&×*Ñ*¨;Ó7Ð7ˆ4Ð7à#ö0Ø¤u¨S£z´U¸?Ó5KÓ'K’ò0ˆK×Ñ Ñ,ð 	×Ñ˜) Z°tÐÕ<ùò0s   ³A9ÁA9c                 ón   — | j                   ||f   }t        |«      |_        | j                  ||d¬«       y r‡   )r   r`   ÚmanagersrZ   )rN   r"   r#   r�   r[   s        r%   Úalter_model_managersz!ProjectState.alter_model_managersÆ   s6   € Ø—k‘k )¨ZÐ"7Ñ8ˆÜ# H›~ˆÔØ×Ñ˜) Z°tÐÕ<r'   c                 óŽ   — | j                   ||f   }g |j                  |   ¢|‘|j                  |<   | j                  ||d¬«       y r‡   )r   r‚   rZ   )rN   r"   r#   r‰   rŒ   r[   s         r%   Ú_append_optionzProjectState._append_optionË   sO   € Ø—k‘k )¨ZÐ"7Ñ8ˆØ+S¨[×-@Ñ-@ÀÑ-MÐ+SÈsÐ+Sˆ×Ñ˜KÑ(Ø×Ñ˜) Z°tÐÕ<r'   c                 óÐ   — | j                   ||f   }|j                  |   }|D �cg c]  }|j                  |k7  sŒ|‘Œ c}|j                  |<   | j                  ||d¬«       y c c}w r‡   )r   r‚   rl   rZ   )rN   r"   r#   r‰   Úobj_namer[   r‹   rŒ   s           r%   Ú_remove_optionzProjectState._remove_optionÐ   sf   € Ø—k‘k )¨ZÐ"7Ñ8ˆØ×"Ñ" ;Ñ/ˆØ;?Ö+X°CÀ3Ç8Á8ÈxÓCWªCÒ+Xˆ×Ñ˜KÑ(Ø×Ñ˜) Z°tÐÕ<ùò ,Ys
   ¥A#ºA#c                 ó,   — | j                  ||d|«       y ©NÚindexes©r’   )rN   r"   r#   Úindexs       r%   Ú	add_indexzProjectState.add_indexÖ   s   € Ø×Ñ˜I z°9¸eÕDr'   c                 ó,   — | j                  ||d|«       y r—   ©r•   )rN   r"   r#   Ú
index_names       r%   Úremove_indexzProjectState.remove_indexÙ   s   € Ø×Ñ˜I z°9¸jÕIr'   c                 ó
  — | j                   ||f   }|j                  d   }g }|D ]9  }|j                  |k(  r|j                  «       }||_        |j	                  |«       Œ; ||j                  d<   | j                  ||d¬«       y )Nr˜   Trh   )r   r‚   rl   rk   r3   rZ   )	rN   r"   r#   Úold_index_nameÚnew_index_namer[   r‹   Únew_indexesrŒ   s	            r%   Úrename_indexzProjectState.rename_indexÜ   sŒ   € Ø—k‘k )¨ZÐ"7Ñ8ˆØ×"Ñ" 9Ñ-ˆàˆØò 	$ˆCØ�x‰x˜>Ò)Ø—i‘i“k�Ø)�”Ø×Ñ˜sÕ#ð		$ð *5ˆ×Ñ˜IÑ&Ø×Ñ˜) Z°tÐÕ<r'   c                 ó,   — | j                  ||d|«       y ©NÚconstraintsr™   )rN   r"   r#   Ú
constraints       r%   Úadd_constraintzProjectState.add_constraintê   s   € Ø×Ñ˜I z°=À*ÕMr'   c                 ó,   — | j                  ||d|«       y r¦   r�   )rN   r"   r#   Úconstraint_names       r%   Úremove_constraintzProjectState.remove_constraintí   s   € Ø×Ñ˜I z°=À/ÕRr'   c                 ó   — |s|j                  «       }t        |_        n|}||f}|| j                  |   j                  |<   | j
                  �| j                  |||«       |j                   } | j                  |d|iŽ y ©Nri   )	rk   r   Údefaultr   rp   rM   Úresolve_model_field_relationsr0   rZ   )rN   r"   r#   rl   r{   Úpreserve_defaultr\   ri   s           r%   Ú	add_fieldzProjectState.add_fieldð   s~   € áØ—K‘K“MˆEÜ(ˆE�MàˆEØ˜zÐ)ˆ	Ø.3ˆ�‰�IÑ×%Ñ% dÑ+Ø�?‰?Ð&Ø×.Ñ.¨y¸$ÀÔFà×%Ñ%Ð%ˆØˆ×Ñ˜9Ð2¨EÓ2r'   c                 óÜ   — ||f}| j                   |   }|j                  j                  |«      }| j                  �| j	                  |||«       |j
                   } | j                  |d|iŽ y r®   )r   rp   r_   rM   r°   r0   rZ   )rN   r"   r#   rl   r\   r[   Ú	old_fieldri   s           r%   Úremove_fieldzProjectState.remove_fieldÿ   so   € Ø˜zÐ)ˆ	Ø—k‘k )Ñ,ˆØ×&Ñ&×*Ñ*¨4Ó0ˆ	Ø�?‰?Ð&Ø×.Ñ.¨y¸$À	ÔJà×)Ñ)Ð)ˆØˆ×Ñ˜9Ð2¨EÓ2r'   c                 ó¬  — |s|j                  «       }t        |_        n|}||f}| j                  |   j                  }| j
                  �U|j                  |«      }|j                  r| j                  |||«       |||<   |j                  r| j                  |||«       n|||<   |j                   xr t        | |||f«       }	 | j                  |d|	iŽ y r®   )rk   r   r¯   r   rp   rM   r_   r0   r°   r   rZ   )
rN   r"   r#   rl   r{   r±   r\   rp   r´   ri   s
             r%   Úalter_fieldzProjectState.alter_field	  sÞ   € ÙØ—K‘K“MˆEÜ(ˆE�MàˆEØ˜zÐ)ˆ	Ø—‘˜YÑ'×.Ñ.ˆØ�?‰?Ð&ØŸ
™
 4Ó(ˆIØ×$Ò$Ø×2Ñ2°9¸dÀIÔNØ ˆF�4‰LØ× Ò Ø×2Ñ2°9¸dÀEÕJà ˆF�4‰Lð
 ×%Ñ%Ð%ò 
Ô.AØ�)˜d E˜]ó/
ð +
ˆð 	ˆ×Ñ˜9Ð2¨EÓ2r'   c           
      óü  — ||f}| j                   |   }|j                  }	 |j                  |«      }|||<   |j                  «       D ]7  }	t        |	dd «      }
|
sŒt        |
D �cg c]  }||k(  r|n|‘Œ c}«      |	_        Œ9 |j                  }dD ]4  }||v sŒ||   D ��cg c]  }|D �cg c]  }||k(  r|n|‘Œ c}‘Œ c}}||<   Œ6 d}t        | |||f«      }|D ]c  �^ }}	}d}|j                  sŒ|j                  \  }}t        |dd «      |k(  r||_        |sŒ?t        |D �cg c]  }||k(  r|n|‘Œ c}«      |	_        Œe | j                  �j|j                  «       }|j                  «       }| j                  j                  «       D ]-  }|||   v sŒ||   j                  |«      }	||	_        |	||   |<   Œ/  | j"                  |d	|iŽ y # t        $ r t	        |› d|› d|› d�«      ‚w xY wc c}w c c}w c c}}w c c}w )
Nr   z has no field named 'ú'Úfrom_fields)Úindex_togetherÚunique_togetherTFÚ
field_nameri   )r   rp   r_   ÚKeyErrorr
   rq   Úgetattrr    rº   r‚   r   rm   r½   Ú	to_fieldsrM   rj   rl   rZ   )rN   r"   r#   rs   rt   r\   r[   rp   Úfoundr{   rº   Úfrom_field_namer‚   ÚoptionÚtogetherÚnri   Ú
referencesÚ_r|   rn   rÀ   Úto_field_nameru   rv   Úto_models                             r%   Úrename_fieldzProjectState.rename_field#  sj  € Ø˜zÐ)ˆ	Ø—k‘k )Ñ,ˆà×#Ñ#ˆð	Ø—J‘J˜xÓ(ˆEð
 !ˆˆxÑØ—]‘]“_ò 		ˆEä! %¨¸Ó=ˆKÚÜ$)ð 0;öà+ð %4°xÒ$?™À_ÑTòó%�Õ!ð			ð ×%Ñ%ˆØ;ò 	ˆFØ˜Ò ð %,¨F¡O÷#à ð @HÖH¸!  h¢‘X°AÑ5ÔHó#�˜’ð	ð ˆÜ# D¨)°hÀÐ5FÓGˆ
Ø$.ò 	Ñ ˆQ��yØˆEØ�|‹|Ø*3¯,©,Ñ'�˜iÜ˜<¨°tÓ<ÀÒHØ.6�LÔ+ÚÜ&+ð 2;öà -ð )6¸Ò(A™HÀ}ÑTòó'�E•Oð	ð �?‰?Ð&Ø%Ÿ^™^Ó-ˆNØ%Ÿ^™^Ó-ˆNØ ŸO™O×2Ñ2Ó4ò @�Ø! X¨iÑ%8Ò8Ø$ YÑ/×3Ñ3°NÓC�EØ!/�E”JØ:?�H˜YÑ'¨Ò7ð	@ð
 	ˆ×Ñ˜9Ð2¨EÓ2øô_ ò 	Ü#Ø�+˜Q˜z˜lÐ*?À¸zÈÐKóð ð	üòùò Iùó#ùòs/   ¡G Á#G)
Â	G3Â(G.Â8G3Ä!G9
ÇG&Ç.G3c                 ó  — |rd| _         t        «       }	 | j                  j                  ||«      }|rt	        |«      }nt        |«      }	 | j                  ||f   }t        «       }|j                  j                  «       D ]g  }|j                  sŒ|j                  j                  t        k(  rŒ.t        |j                  |«      \  }	}
|j!                  |	|
j#                  «       f«       Œi |j%                  |«       |D ]Y  \  }	}
	 | j                  j                  |	|
«      }|r|j%                  t	        |«      «       Œ@|j%                  t        |«      «       Œ[ |j!                  ||f«       |S # t        $ r Y �Œ/w xY w# t        $ r Y ŒŒw xY w)NT)rL   r.   r   Ú	get_modelr?   rF   ÚLookupErrorr   rp   rq   r0   rn   r$   r   r&   r1   r2   rj   Úupdate)rN   r"   r#   ri   r8   Ú	old_modelr[   Údirect_related_modelsr{   rD   rE   Ú	rel_models               r%   Ú_find_reload_modelzProjectState._find_reload_model[  s“  € ÙØ"ˆDŒOä›ˆð
	IØŸ	™	×+Ñ+¨I°zÓBˆIñ Ü!:¸9Ó!E‘ä!=¸iÓ!H‘ð —k‘k 9¨jÐ"9Ñ:ˆô !$£ÐØ ×'Ñ'×.Ñ.Ó0ò 	SˆEØ× Ó Ø×%Ñ%×+Ñ+Ô/NÒNØÜ0MØ×'Ñ'¨ó1Ñ-�˜~ð &×)Ñ)¨=¸.×:NÑ:NÓ:PÐ*QÕRð	Sð 	×ÑÐ3Ô4Ø-Bò 		SÑ)ˆM˜>ðSØ ŸI™I×/Ñ/°¸~ÓN�	ñ Ø"×)Ñ)Ô*CÀIÓ*NÕOà"×)Ñ)Ô*FÀyÓ*QÕRð		Sð 	×Ñ˜I zÐ2Ô3àÐøôQ ò 	Úð	ûô: ò Ùðús#   •E. ÄE>Å.	E;Å:E;Å>	F
Æ	F
c                 ój   — d| j                   v r%| j                  |||«      }| j                  |«       y y rV   )rY   rÒ   Ú_reload)rN   r"   r#   ri   r8   s        r%   rZ   zProjectState.reload_model�  s3   € Ø�T—]‘]Ñ"Ø!×4Ñ4°YÀ
ÈEÓRˆNØ�L‰L˜Õ(ð #r'   c                 ó°   — d| j                   v rHt        «       }|D ]'  \  }}|j                  | j                  |||«      «       Œ) | j	                  |«       y y rV   )rY   r.   rÎ   rÒ   rÔ   )rN   r   ri   r8   r"   r#   s         r%   rr   zProjectState.reload_models’  s\   € Ø�T—]‘]Ñ"Ü ›UˆNØ)/ò Ñ%�	˜:Ø×%Ñ%Ø×+Ñ+¨I°zÀ5ÓIõðð �L‰L˜Õ(ð #r'   c                 óð  — | j                   j                  «       5  |D ]!  \  }}| j                   j                  ||«       Œ# 	 d d d «       g }| j                   j                  D ].  }|j                  |j
                  f|v sŒ|j                  |«       Œ0 |D ](  \  }}	 | j                  ||f   }|j                  |«       Œ* | j                   j                  |«       y # 1 sw Y   Œ›xY w# t        $ r Y Œ^w xY wrQ   )
r   Úbulk_updaterb   Úreal_modelsr"   rW   r3   r   r¾   Úrender_multiple)rN   r8   rD   rE   Ústates_to_be_renderedr[   s         r%   rÔ   zProjectState._reload›  s  € à�Y‰Y×"Ñ"Ó$ñ 	JØ1?ò JÑ-�˜~Ø—	‘	×*Ñ*¨=¸.ÕIñJ÷	Jð !#Ðð  Ÿ9™9×0Ñ0ò 	:ˆKØ×%Ñ% {×'=Ñ'=Ð>À.ÒPØ%×,Ñ,¨[Õ9ð	:ð
 .<ò 	:Ñ)ˆM˜>ð:Ø"Ÿk™k¨-¸Ð*GÑH�ð &×,Ñ,¨[Õ9ð	:ð 	�	‰	×!Ñ!Ð"7Õ8÷-	Jð 	Jûô  ò Ùðús   ›'CÂC)ÃC&Ã)	C5Ã4C5c                 óæ   — t        |g|¢­Ž }|d   | j                  vr	||v r||   }| j                  |   }|| j                  |   j                  v r|||   vsJ ‚|||   |<   y ||   |= ||   s||= y y )Nr   )r   rK   rM   r   rp   )rN   r$   r\   r½   r{   Ú	concretesÚremote_model_keyÚrelations_to_remote_models           r%   Úupdate_model_field_relationz(ProjectState.update_model_field_relationµ  s¨   € ô ,¨EÐ>°IÒ>ÐØ˜AÑ d§n¡nÑ4Ð9IÈYÑ9VØ(Ð)9Ñ:ÐØ$(§O¡OÐ4DÑ$EÐ!Ø˜Ÿ™ YÑ/×6Ñ6Ñ6ð Ð%>¸yÑ%IÑIÐIÐIØ?DÐ% iÑ0°Ò<à)¨)Ñ4°ZÐ@Ø,¨YÒ7Ø-¨iÑ8ð 8r'   c                 óÔ   — |j                   }|sy |€| j                  «       \  }}| j                  |j                  ||||«       t	        |dd «      }|sy | j                  |||||«       y )Nro   )rn   Ú-_get_concrete_models_mapping_and_proxy_modelsrß   r$   r¿   )rN   r\   r½   r{   rÜ   rn   rÇ   ro   s           r%   r°   z*ProjectState.resolve_model_field_relationsÌ  s   € ð ×)Ñ)ˆÙØØÐØ×MÑMÓO‰LˆI�qà×(Ñ(Ø×ÑØØØØô	
ô ˜,¨	°4Ó8ˆÙØØ×(Ñ(Ø�Y 
¨E°9õ	
r'   c                 ó¸   — |€| j                  «       \  }}| j                  |   }|j                  j                  «       D ]  \  }}| j	                  ||||«       Œ y rQ   )rá   r   rp   ra   r°   )rN   r\   rÜ   rÇ   r[   r½   r{   s          r%   rX   z$ProjectState.resolve_model_relationsè  sa   € ØÐØ×MÑMÓO‰LˆI�qà—k‘k )Ñ,ˆØ!,×!3Ñ!3×!9Ñ!9Ó!;ò 	XÑˆJ˜Ø×.Ñ.¨y¸*ÀeÈYÕWñ	Xr'   c                 ó|  — | j                   j                  «       D ]+  }|j                  j                  «       D ]  \  }}||_        Œ Œ- t        t        t
        t        «      «      | _        | j                  «       \  }}|D ]  }| j                  ||«       Œ |D ]!  }| j                  ||      | j                  |<   Œ# y rQ   )r   rq   rp   ra   rl   r   r   ÚdictrM   rá   rX   )rN   r[   r½   r{   rÜ   Úproxiesr\   s          r%   rR   z)ProjectState.resolve_fields_and_relationsð  s¾   € àŸ;™;×-Ñ-Ó/ò 	(ˆKØ%0×%7Ñ%7×%=Ñ%=Ó%?ò (Ñ!�
˜EØ'�•
ñ(ð	(ô
 &¤g¬k¼4Ó&@ÓAˆŒØ!×OÑOÓQÑˆ	�7à"ò 	?ˆIØ×(Ñ(¨°IÕ>ð	?ð !ò 	OˆIØ)-¯©¸À9Ñ9MÑ)NˆD�O‰O˜IÒ&ñ	Or'   c                 óH   — | j                  «       \  }}t        |«      }||   S rQ   )rá   r   )rN   r$   Úconcrete_models_mappingrÇ   r\   s        r%   Úget_concrete_model_keyz#ProjectState.get_concrete_model_key   s0   € ð ×>Ñ>Ó@ñ	
Ø#Øä$ UÓ+ˆ	Ø& yÑ1Ð1r'   c                 óÌ   — i }i }| j                   j                  «       D ]@  \  }}|j                  j                  d«      r|||<   | j	                  ||«      ||<   Œ<|||<   ŒB ||fS )Nr4   )r   ra   r‚   rˆ   Ú_find_concrete_model_from_proxy)rN   rç   Úproxy_modelsr\   r[   s        r%   rá   z:ProjectState._get_concrete_models_mapping_and_proxy_models  s†   € Ø"$ÐØˆà&*§k¡k×&7Ñ&7Ó&9ò 	?Ñ"ˆI�{Ø×"Ñ"×&Ñ& wÔ/Ø*5�˜YÑ'ð ×8Ñ8Ø$Ø#óð (¨	Ò2ð 6?Ð'¨	Ò2ð	?ð '¨Ð4Ð4r'   c                 óæ   — |j                   D ]b  }t        |t        «      st        |t        j
                  «      sŒ.t        |«      }|j                  |«      }|s|c S | j                  ||«      c S  y rQ   )	Úbasesr   r   r,   r   r-   r   rˆ   rê   )rN   rë   r[   ÚbaseÚbase_keyÚ
base_states         r%   rê   z,ProjectState._find_concrete_model_from_proxy  sh   € Ø×%Ñ%ò 	RˆDÜ˜t¤SÔ)¬Z¸¼f¿l¹lÔ-KØÜ'¨Ó-ˆHØ%×)Ñ)¨(Ó3ˆJÙà’Ø×7Ñ7¸ÀjÓQÒQñ	Rr'   c           	      ó0  — t        | j                  j                  «       D ��ci c]  \  }}||j                  «       “Œ c}}| j                  ¬«      }d| j
                  v r| j                  j                  «       |_        | j                  |_        |S c c}}w )z*Return an exact copy of this ProjectState.©r   rK   r   )rH   r   ra   rk   rK   rY   r   rL   )rN   ÚkÚvÚ	new_states       r%   rk   zProjectState.clone%  st   € ä Ø-1¯[©[×->Ñ->Ó-@×A¡T Q¨�A�q—w‘w“y‘LÓAØ—n‘nô
ˆ	ð �T—]‘]Ñ"Ø!ŸY™YŸ_™_Ó.ˆIŒNØ#Ÿ™ˆ	ÔØÐùó Bs   £B
c                 óV   — | j                   rd| j                  v r| j                  d= y y y rV   )rL   rY   rS   s    r%   Úclear_delayed_apps_cachez%ProjectState.clear_delayed_apps_cache0  s'   € Ø�?Š?˜v¨¯©Ñ6Ø—‘˜fÑ%ð  7ˆ?r'   c                 óB   — t        | j                  | j                  «      S rQ   )Ú	StateAppsrK   r   rS   s    r%   r   zProjectState.apps4  s   € ä˜Ÿ™¨¯©Ó5Ð5r'   c                 ó¤   — i }|j                  d¬«      D ]2  }t        j                  |«      }|||j                  |j                  f<   Œ4  | |«      S )z3Take an Apps and return a ProjectState matching it.T)Úinclude_swapped)Ú
get_modelsÚ
ModelStateÚ
from_modelr"   rW   )Úclsr   Ú
app_modelsr$   r[   s        r%   Ú	from_appszProjectState.from_apps8  s\   € ð ˆ
Ø—_‘_°T�_Ó:ò 	VˆEÜ$×/Ñ/°Ó6ˆKØJUˆJ˜×-Ñ-¨{×/EÑ/EÐFÒGð	Vñ �:‹Ðr'   c                 ój   — | j                   |j                   k(  xr | j                  |j                  k(  S rQ   rò   ©rN   Úothers     r%   Ú__eq__zProjectState.__eq__A  s'   € Ø�{‰{˜eŸl™lÑ*ÒP¨t¯~©~ÀÇÁÑ/PÐPr'   )NNrQ   ©F)T)*Ú__name__Ú
__module__Ú__qualname__Ú__doc__rO   ÚpropertyrT   r]   rf   r€   r…   r�   r�   r’   r•   r›   rŸ   r¤   r©   r¬   r²   rµ   r·   rÊ   rÒ   rZ   rr   rÔ   rß   r°   rX   rR   rè   rá   rê   rk   r÷   r   r   Úclassmethodr  r  © r'   r%   rH   rH   ]   sô   „ ñó
ð ñó ðò
*ò$ò %AóN=ò=ò=ò
=ò
=òEòJò=òNòSò3ò3ò3ò463óp0ód)ó
)ò9ò49ð8 ó
ó8XòOò 2ò5ò$	Rò	ò&ð ñ6ó ð6ð ñó ðóQr'   rH   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚAppConfigStubzAStub of an AppConfig. Only provides a label and a dict of models.c                 ó<   — d | _         i | _        || _        || _        y rQ   )r   r   Úlabelrl   )rN   r  s     r%   rO   zAppConfigStub.__init__H  s    € ØˆŒ	ØˆŒð ˆŒ
Øˆ�	r'   c                 óT   — | j                   j                  | j                     | _        y rQ   )r   Ú
all_modelsr  r   rS   s    r%   Úimport_modelszAppConfigStub.import_modelsQ  s   € Ø—i‘i×*Ñ*¨4¯:©:Ñ6ˆ�r'   N)r  r  r	  r
  rO   r  r  r'   r%   r  r  E  s   „ ÙKòó7r'   r  c                   óL   ‡ — e Zd ZdZdˆ fd„	Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )	rù   zo
    Subclass of the global Apps registry class to better handle dynamic model
    additions and removals.
    c                 óÌ  •— g | _         |D ]\  }t        j                  |«      }|j                  «       D ]2  }| j                   j	                  t
        j                  |d¬«      «       Œ4 Œ^  |j                  «       D �ch c]  }|j                  ’Œ }}t        g |¢|¢«      D �	cg c]  }	t        |	«      ‘Œ }
}	t        ‰| �1  |
«       d | _        d | _        | j                  g  |j                  «       ¢| j                   ¢«       ddlm} |rt%        t&        j(                  «      hn	t+        «       } || |¬«      }|r!t-        dj/                  d„ |D «       «      «      ‚y c c}w c c}	w )NT)Úexclude_relsr   )Ú_check_lazy_references)Úignoreú
c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrQ   )Úmsg)Ú.0Úerrors     r%   ú	<genexpr>z%StateApps.__init__.<locals>.<genexpr>}  s   è ø€ Ò&E°U u§y¥yÑ&Eùs   ‚)rØ   Úglobal_appsÚget_app_configrü   r3   rý   rþ   rq   r"   Úsortedr  ÚsuperrO   Ú_lockÚready_eventrÙ   Údjango.core.checks.model_checksr  r   r	   ÚAUTH_USER_MODELr.   Ú
ValueErrorÚjoin)rN   rK   r   Úignore_swappabler"   Úappr$   r[   Ú
app_labelsr  Úapp_configsr  r  ÚerrorsÚ	__class__s                 €r%   rO   zStateApps.__init__[  si  ø€ ð ˆÔØ"ò 	YˆIÜ×,Ñ,¨YÓ7ˆCØŸ™Ó)ò Y�Ø× Ñ ×'Ñ'¬
×(=Ñ(=¸eÐRVÐ(=Ó(WÕXñYð	Yð
 @M¸v¿}¹}»ÖO°�k×+Ó+ÐOˆ
ÐOä.4Ð5N°yÐ5NÀ:Ð5NÓ.Oö
Ø%*ŒM˜%Õ ð
ˆð 
ô 	‰Ñ˜Ô%ð
 ˆŒ
ØˆÔà×ÑÐB˜}˜vŸ}™}›ÐB°×1AÑ1AÐBÔCõ 	Kñ =MÔœh×6Ñ6Ó7Ñ8ÔRUÓRWð 	ñ (¨°VÔ<ˆÙÜ˜TŸY™YÑ&E¸fÔ&EÓEÓFÐFð ùò+ Pùò
s   Á=EÂ#E!c              #   ó¢   K  — | j                   }d| _         	 d –— || _         | j                  «        y # || _         | j                  «        w xY w­wrJ   )Úreadyrc   )rN   r1  s     r%   r×   zStateApps.bulk_update  sI   è ø€ ð —
‘
ˆØˆŒ
ð	ÛàˆDŒJØ×ÑÕøð ˆDŒJØ×ÑÕüs   ‚A—3 ›A³AÁAc                 ó>  — |sy | j                  «       5  |}|rQg }|D ]  }	 |j                  | «       Œ t	        |«      t	        |«      k(  rt        d|›dt        «       ›d�«      ‚|}|rŒQd d d «       y # t        $ r |j                  |«       Y Œrw xY w# 1 sw Y   y xY w)NzCannot resolve bases for z£
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
 in an app with no migrations; see https://docs.djangoproject.com/en/z)/topics/migrations/#dependencies for more)r×   Úrenderr   r3   r   r   )rN   Úmodel_statesÚunrendered_modelsÚnew_unrendered_modelsr$   s        r%   rÙ   zStateApps.render_multiple‹  s¿   € ñ
 Øà×ÑÓñ 	:Ø ,ÐÙ#Ø(*Ð%Ø.ò <�Eð<ØŸ™ TÕ*ð<ô
 Ð,Ó-´Ð5FÓ1GÒGÝ+ò 1Ô2BÕ2DðFóð ð %:Ð!ò! $÷	:ð 	:øô -ò <Ø-×4Ñ4°UÖ;ð<ú÷	:ð 	:ús-   ”B¡A3²7BÁ3BÂBÂBÂBÂBc                 ó  — t        g i «      }t        j                  | j                  «      |_        | j                  D ]3  }t        |«      }||_        |j                  «        ||j                  |<   Œ5 | j                  |_        |S )z Return a clone of this registry.)	rù   ÚcopyÚdeepcopyr  r-  r  r   r  rØ   )rN   rk   r"   Ú
app_configs       r%   rk   zStateApps.clone§  sz   € ä˜"˜bÓ!ˆÜŸ=™=¨¯©Ó9ˆÔà×)Ñ)ò 	6ˆIÜ& yÓ1ˆJØ#ˆJŒOØ×$Ñ$Ô&Ø+5ˆE×Ñ˜iÒ(ð		6ð !×,Ñ,ˆÔØˆr'   c                 óf  — || j                   |   |j                  j                  <   || j                  vr,t	        |«      | j                  |<   | | j                  |   _        || j                  |   j                  |j                  j                  <   | j                  |«       | j                  «        y rQ   )	r  r!   r#   r-  r  r   r   Údo_pending_operationsrc   )rN   r"   r$   s      r%   Úregister_modelzStateApps.register_model¶  s”   € Ø=Bˆ�‰˜	Ñ" 5§;¡;×#9Ñ#9Ñ:Ø˜D×,Ñ,Ñ,Ü*7¸	Ó*BˆD×Ñ˜YÑ'Ø/3ˆD×Ñ˜YÑ'Ô,ØEJˆ×Ñ˜Ñ#×*Ñ*¨5¯;©;×+AÑ+AÑBØ×"Ñ" 5Ô)Ø×ÑÕr'   c                 óx   — 	 | j                   |   |= | j                  |   j                  |= y # t        $ r Y y w xY wrQ   )r  r-  r   r¾   )rN   r"   r#   s      r%   rb   zStateApps.unregister_model¿  sC   € ð	Ø—‘ 	Ñ*¨:Ð6Ø× Ñ  Ñ+×2Ñ2°:Ñ>øÜò 	Ùð	ús   ‚*- ­	9¸9r  )r  r  r	  r
  rO   r   r×   rÙ   rk   r=  rb   Ú__classcell__)r/  s   @r%   rù   rù   U  s7   ø„ ñõ
"GðH ñ	ó ð	ò:ò8òör'   rù   c                   ól   — e Zd ZdZ	 dd„Zed„ «       Zd„ Zedd„«       Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)rý   a�  
    Represent a Django Model. Don't use the actual Model class as it's not
    designed to have its options changed - instead, mutate this one and then
    render it into a Model as required.

    Note that while you are allowed to mutate .fields, you are not allowed
    to mutate the Field instances inside there themselves - you must instead
    assign new ones, as these are not detached during a clone.
    Nc           
      ó&  — || _         || _        t        |«      | _        |xs i | _        | j                  j                  dg «       | j                  j                  dg «       |xs t        j                  f| _        |xs g | _	        | j                  j                  «       D ]À  \  }}t        |d«      rt        d|z  «      ‚|j                  r?t        |j                  d«      r)t        d| j                   › d| j                  › d|› d�«      ‚|j                  sŒxt        |j                   j"                  d«      sŒ™t        d| j                   › d| j                  › d|› d	�«      ‚ | j                  d   D ]  }|j                  rŒt        d
|z  «      ‚ y )Nr˜   r§   r$   z7ModelState.fields cannot be bound to a model - "%s" is.r!   zEModel fields in "ModelState.fields" cannot refer to a model class - "r   z*.to" does. Use a string reference instead.z/.through" does. Use a string reference instead.zKIndexes passed to ModelState require a name attribute. %r doesn't have one.)r"   rl   rä   rp   r‚   Ú
setdefaultr   r-   rí   r�   ra   Úhasattrr(  r0   r1   Úmany_to_manyrn   ro   )	rN   r"   rl   rp   r‚   rí   r�   r{   rš   s	            r%   rO   zModelState.__init__Ò  sŽ  € ð #ˆŒØˆŒ	Ü˜6“lˆŒØ’} "ˆŒØ�‰×Ñ 	¨2Ô.Ø�‰×Ñ ¨rÔ2ØÒ-œvŸ|™|˜oˆŒ
Ø š BˆŒØŸ;™;×,Ñ,Ó.ò 	‰KˆD�%ä�u˜gÔ&Ü ØMÐPTÑTóð ð × Ò ¤W¨U×-@Ñ-@À'Ô%JÜ ðØŸ.™.Ð)¨¨4¯9©9¨+°Q°t°fð =)ð)óð ð
 ×!Ó!¤g¨e×.@Ñ.@×.HÑ.HÈ'Õ&RÜ ðØŸ.™.Ð)¨¨4¯9©9¨+°Q°t°fð =0ð0óð ð	ð( —\‘\ )Ñ,ò 	ˆEØ—:“:Ü ð+Ø-2ñ3óð ñ	r'   c                 ó6   — | j                   j                  «       S rQ   )rl   rj   rS   s    r%   rW   zModelState.name_lowerø  s   € à�y‰y�‰Ó Ð r'   c                 ób   — |dk(  r| j                   j                  d|«      }| j                  |   S )NÚ_orderÚorder_with_respect_to)r‚   rˆ   rp   )rN   r½   s     r%   Ú	get_fieldzModelState.get_fieldü  s0   € Ø˜Ò!ØŸ™×)Ñ)Ð*AÀ:ÓNˆJØ�{‰{˜:Ñ&Ð&r'   c           
      ó¤  ‡‡— g }‰j                   j                  D ][  }t        |dd«      r|rŒt        |t        j
                  «      rŒ.|j                  }	 |j                  ||j                  «       f«       Œ] |sI‰j                   j                  D ]0  }|j                  }	 |j                  ||j                  «       f«       Œ2 i }t        D �]  }|dv rŒ	|‰j                   j                  v sŒ"|dk(  r1‰j                   j                  d   }t        t!        |«      «      ||<   ŒX|d	k(  r\‰j                   j"                  D �	cg c]  }	|	j                  «       ‘Œ }
}	|
D ]   }|j                  rŒ|j%                  ‰«       Œ" |
|d	<   Œ¹|d
k(  r6‰j                   j&                  D �cg c]  }|j                  «       ‘Œ c}|d
<   Œô‰j                   j                  |   ||<   �Œ |rdD ]
  }||v sŒ||= Œ nB|j)                  d«      ‰j                   j*                  D �ch c]  }|j                  ’Œ c}v r|d= ˆfd„Št-        t         ‰‰«      «      ˆfd„¬«      }t/        d„ |D «       «      }t1        d„ |D «       «      st        j2                  f}g }t        «       }d}‰j                   j4                  D ]ß  }|j                  |v rŒ|j6                  r&t9        j8                  |«      }|j;                  «        nd|‰j<                  u s|‰j>                  u rGt	        j@                  «       }|jB                  |_!        |j                  |_        |‰j>                  u r|}nŒ¨|jE                  |j                  «       |j                  |j                  |f«       Œá |d|fgk(  rg } | ‰j                   jF                  ‰j                   j                  ||||«      S # t        $ r-}t        d|›d‰j                   j                  ›d|›�«      ‚d}~ww xY w# t        $ r-}t        d|›d‰j                   j                  ›d|›�«      ‚d}~ww xY wc c}	w c c}w c c}w )z3Given a model, return a ModelState representing it.rn   NzCouldn't reconstruct field z on z: zCouldn't reconstruct m2m field )r   r"   r¼   r˜   r§   )r¼   rH  rH  c                 óÄ   •— g }| j                   D ]M  }t        |d«      r.|j                  j                  r|j	                   ‰|«      «       Œ=|j                  |«       ŒO |S )Nr!   )Ú	__bases__rC  r!   ÚabstractrA   r3   )r$   rí   rî   Úflatten_basess      €r%   rN  z,ModelState.from_model.<locals>.flatten_basesG  sU   ø€ ØˆEØŸ™ò '�Ü˜4 Ô)¨d¯j©j×.AÒ.AØ—L‘L¡¨tÓ!4Õ5à—L‘L Õ&ð	'ð
 ˆLr'   c                 ó:   •— ‰j                   j                  | «      S rQ   )Ú__mro__rš   )Úxr$   s    €r%   ú<lambda>z'ModelState.from_model.<locals>.<lambda>V  s   ø€ °U·]±]×5HÑ5HÈÓ5K€ r'   ©r„   c              3   ód   K  — | ](  }t        |d «      r|j                  j                  n|–— Œ* y­w)r!   N)rC  r!   Úlabel_lower©r  rî   s     r%   r  z(ModelState.from_model.<locals>.<genexpr>Z  s0   è ø€ ò 
àô (/¨t°WÔ'=ˆT�Z‰Z×#Ò#À4ÓGñ
ùs   ‚.0c              3   ót   K  — | ]0  }t        |t        «      xs t        |t        j                  «      –— Œ2 y ­wrQ   )r   r   r,   r   r-   rV  s     r%   r  z(ModelState.from_model.<locals>.<genexpr>_  s/   è ø€ ò 
ØJNŒZ˜œcÓ"ÒD¤j°´v·|±|Ó&DÓDñ
ùs   ‚68Úobjects)$r!   Úlocal_fieldsr¿   r   r   ÚOrderWrtrl   r3   rk   Ú	TypeErrorr  Úlocal_many_to_manyÚobject_namer   Úoriginal_attrsr.   r   r˜   Úset_name_with_modelr§   rˆ   Úprivate_fieldsr"  r    Úanyr-   r�   Úuse_in_migrationsr8  Ú_set_creation_counterÚ_base_managerÚ_default_managerÚManagerr$   r2   r"   )rÿ   r$   r  rp   r{   rl   Úer‚   ÚutÚidxr˜   rš   Úconr„   Úflattened_basesrí   r�   Úmanager_namesÚdefault_manager_shimÚmanagerÚnew_managerrN  s    `                   @r%   rþ   zModelState.from_model  s$  ù€ ð ˆØ—[‘[×-Ñ-ò 	ˆEÜ�u˜n¨dÔ3¹ØÜ˜%¤§¡Ô1ØØ—:‘:ˆDð
Ø—‘˜t U§[¡[£]Ð3Õ4ð	ñ" ØŸ™×7Ñ7ò �Ø—z‘z�ð
Ø—M‘M 4¨¯©«Ð"7Õ8ðð ˆÜ!ó 	EˆDàÐ,Ñ,ØØ˜Ÿ™×3Ñ3Ò3ØÐ,Ò,ØŸ™×3Ñ3Ð4EÑF�BÜ$'Ô(:¸2Ó(>Ó$?�G˜D’MØ˜YÒ&Ø6;·k±k×6IÑ6IÖJ¨s˜sŸy™y�{ÐJ�GÐJØ!(ò =˜Ø$Ÿz›zØ!×5Ñ5°eÕ<ð=ð *1�G˜IÒ&Ø˜]Ò*à/4¯{©{×/FÑ/Fö.Ø(+˜Ÿ	™	�ò.�G˜MÒ*ð %*§K¡K×$>Ñ$>¸tÑ$D�G˜D“Mð'	Eñ, ØCò %�Ø˜'’>Ø ™ñ%ð �[‰[Ð0Ó1Ø$)§K¡K×$>Ñ$>ö6
Ø ˆE�J‹Jò6
ñ 
ð Ð/Ð0ô	ô !Ü‘˜eÓ$Ó%Ó+Kô
ˆô
 ñ 
à'ô
ó 
ˆô
 ñ 
ØRWô
ô 
ô —\‘\�OˆEàˆÜ›ˆØ#ÐØ—{‘{×+Ñ+ò 	9ˆGØ�|‰|˜}Ñ,àØ×*Ò*ä"Ÿi™i¨Ó0�Ø×1Ñ1Õ3Ø˜E×/Ñ/Ñ/°7¸e×>TÑ>TÑ3Tä$Ÿn™nÓ.�Ø$+§M¡M�Ô!Ø#*§<¡<�Ô Ø˜e×4Ñ4Ñ4Ø+6Ñ(àØ×Ñ˜gŸl™lÔ+Ø�O‰O˜WŸ\™\¨;Ð7Õ8ð%	9ð* ˜Ð$8Ð9Ð:Ò:ØˆHñ Ø�K‰K×!Ñ!Ø�K‰K×#Ñ#ØØØØó
ð 	
øôe ò Ýò ØŸ™×)Ó)Ùð	óð ûðûô !ò Ý#ò !Ø!ŸK™K×3Ó3Ùð	óð ûðüò( Kùò.ùò6
sB   Á!OÂ!!P
ÅQÆ"QÈQÏ	PÏ(PÐPÐ
	Q Ð(P;Ð;Q c              #   óî   K  — t        | j                  d„ ¬«      }|D ]T  \  }}|j                  «       \  }}}}}|r t        |«      }	||	j	                  «       f–— Œ>t        |«      }
| |
|i |¤Žf–— ŒV y­w)z-Deep-clone the managers using deconstruction.c                 ó    — | d   j                   S )Nr   )Úcreation_counter)rô   s    r%   rR  z/ModelState.construct_managers.<locals>.<lambda>Œ  s   € ¸aÀ¹d×>SÑ>S€ r'   rS  N)r"  r�   Údeconstructr   Ú
as_manager)rN   Úsorted_managersÚmgr_namern  rt  Úmanager_pathÚqs_pathÚargsÚkwargsÚqs_classÚmanager_classs              r%   Úconstruct_managerszModelState.construct_managers‰  s†   è ø€ ô ! §¡Ñ4SÔTˆØ!0ò 	?ÑˆH�gØ>E×>QÑ>QÓ>SÑ;ˆJ˜ g¨t°VÙÜ(¨Ó1�Ø × 3Ñ 3Ó 5Ð5Ó5ä -¨lÓ ;�Ø¡¨tÐ >°vÑ >Ð>Ó>ñ	?ùs   ‚A3A5c           
      óÞ   — | j                  | j                  | j                  t        | j                  «      t        | j
                  «      | j                  t        | j                  «      ¬«      S )z(Return an exact copy of this ModelState.)r"   rl   rp   r‚   rí   r�   )	r/  r"   rl   rä   rp   r‚   rí   r`   r�   rS   s    r%   rk   zModelState.clone–  sS   € à�~‰~Ø—n‘nØ—‘Ü˜Ÿ™Ó$ô ˜Ÿ™Ó&Ø—*‘*Ü˜$Ÿ-™-Ó(ð ó 

ð 
	
r'   c                 ó
  ‡— i | j                   ¥}|j                  dd«       | j                  ‰dœ|¥}t        dd|«      }	 t	        ˆfd„| j
                  D «       «      }| j                  j                  «       D ��ci c]  \  }}||j                  «       “Œ }}}||d<   d|d	<   |j                  | j                  «       «       t        | j                  ||«      S # t        $ r t        d| j
                  ›�«      ‚w xY wc c}}w )
zACreate a Model object from our current state into the given apps.r»   N)r"   r   ÚMetar  c              3   ód   •K  — | ]'  }t        |t        «      r‰j                  |«      n|–— Œ) y ­wrQ   )r   r   rÌ   )r  rî   r   s     €r%   r  z$ModelState.render.<locals>.<genexpr>¯  s0   øè ø€ ò àô *4°D¼#Ô)>�—‘ Ô%ÀDÓHñùs   ƒ-0z&Cannot resolve one or more bases from Ú__fake__r  )r‚   r_   r"   Útyper    rí   rÍ   r   rp   ra   rk   rÎ   r}  rl   )	rN   r   Úmeta_optionsÚmeta_contentsÚmetarí   rl   r{   Úbodys	    `       r%   r3  zModelState.render¤  s  ø€ ð (˜$Ÿ,™,Ð'ˆð 	×ÑÐ)¨4Ô0Ø&*§n¡n¸dÑSÀlÐSˆÜ�F˜B Ó.ˆð	Üó à ŸJ™Jôó ˆEð 8<·{±{×7HÑ7HÓ7J×K©¨¨e��e—k‘k“mÑ#ÐKˆÑKØˆˆV‰Ø'ˆˆ\Ñð 	�‰�D×+Ñ+Ó-Ô.ä�D—I‘I˜u dÓ+Ð+øô ò 	Ý#Ø>B¿jºjÐJóð ð	üó
 Ls   ÁC Á<C?Ã"C<c                 ó†   — | j                   d   D ]  }|j                  |k(  sŒ|c S  t        d|›d| j                  ›�«      ‚)Nr˜   zNo index named ú
 on model ©r‚   rl   r(  )rN   rl   rš   s      r%   Úget_index_by_namezModelState.get_index_by_nameÁ  sA   € Ø—\‘\ )Ñ,ò 	ˆEØ�z‰z˜TÓ!Ø’ð	õ ºDÀ$Ç)Â)ÐLÓMÐMr'   c                 ó†   — | j                   d   D ]  }|j                  |k(  sŒ|c S  t        d|›d| j                  ›�«      ‚)Nr§   zNo constraint named r‰  rŠ  )rN   rl   r¨   s      r%   Úget_constraint_by_namez!ModelState.get_constraint_by_nameÇ  sB   € ØŸ,™, }Ñ5ò 	"ˆJØ�‰ $Ó&Ø!Ò!ð	"õ ÂÀtÇyÂyÐQÓRÐRr'   c                 ój   — d| j                   j                  ›d| j                  ›d| j                  ›d�S )Nú<z: 'r   z'>)r/  r  r"   rl   rS   s    r%   Ú__repr__zModelState.__repr__Í  s!   � Ø"&§.¡.×"9Ó"9¸4¿>»>È4Ï9Ë9ÐUÐUr'   c           
      ó&  — | j                   |j                   k(  xr÷ | j                  |j                  k(  xrÜ t        | j                  «      t        |j                  «      k(  xr¯ t	        d„ t        t        | j                  j                  «       «      t        |j                  j                  «       «      «      D «       «      xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S )Nc              3   óŠ   K  — | ];  \  \  }}\  }}||k(  xr' |j                  «       d d |j                  «       d d k(  –— Œ= y­w)r   N)rs  )r  Úk1Úf1Úk2Úf2s        r%   r  z$ModelState.__eq__.<locals>.<genexpr>Õ  sQ   è ø€ ò á&‘H�R˜™h˜r 2ð �b‘ÒI˜RŸ^™^Ó-¨a¨bÐ1°R·^±^Ó5EÀaÀbÐ5IÑIÓIñùs   ‚AA)r"   rl   r   rp   ÚallÚzipr"  ra   r‚   rí   r�   r  s     r%   r  zModelState.__eq__Ð  sÛ   € à�^‰^˜uŸ™Ñ.ò 2Ø—‘˜eŸj™jÑ(ò2ä�T—[‘[Ó!¤S¨¯©Ó%6Ñ6ò2ô ñ ä*-Ü˜4Ÿ;™;×,Ñ,Ó.Ó/Ü˜5Ÿ<™<×-Ñ-Ó/Ó0ó+ôó ò2ð —‘ §¡Ñ.ò2ð —‘˜uŸ{™{Ñ*ò2ð —‘ %§.¡.Ñ0ð	
r'   )NNNr  )r  r  r	  r
  rO   r   rW   rI  r  rþ   r}  rk   r3  r‹  r�  r�  r  r  r'   r%   rý   rý   Ç  sj   „ ñð KOó$ðL ñ!ó ð!ò'ð
 òE
ó ðE
òN?ò
ò,ò:NòSòVó
r'   rý   )Ú )1r8  Úcollectionsr   Ú
contextlibr   Ú	functoolsr   Údjango.appsr   Údjango.apps.registryr   r   r   Údjango.confr	   Údjango.core.exceptionsr
   Ú	django.dbr   Údjango.db.migrations.utilsr   r   Údjango.db.modelsr   Údjango.db.models.fields.relatedr   Údjango.db.models.optionsr   r   Údjango.db.models.utilsr   Údjango.utils.functionalr   Údjango.utils.module_loadingr   Údjango.utils.versionr   Ú
exceptionsr   Úutilsr   r&   r<   r?   rF   rH   r  rù   rý   r  r'   r%   ú<module>r¬     sŒ   ðÛ Ý #Ý %Ý å !Ý %Ý 4Ý  Ý 4Ý ß JÝ )Ý Kß FÝ 3Ý 3Ý 5Ý 1å )Ý #ó=òò0òD÷2eQñ eQôP7�Iô 7ô o�ô o÷dX
ò X
r'   