§
    WøÁi;¹ ã                  ó  — 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 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 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 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) 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,m0Z0 dd,l1m2Z2 dd-l1m3Z3 dd.l1m4Z4 dd/l1m5Z5 dd0l1m6Z6 dd1l1m7Z7 dd2l8m9Z9 dd3l:m;Z; dd4l:m<Z< dd5l=m>Z> dd6l=m?Z? dd7l=m@Z@ dd8l=mAZA dd9l=mBZB dd:l=mCZC dd;l=mDZD dd<l=mEZE dd=lFmGZG errdd>lHmIZI dd?lHmJZJ dd@lmKZK ddAlLmMZM ddBlNmOZO ddClPmQZQ ddDlPmRZR ddElSmTZT ddFlUmVZV ddGl,mWZW ddHlXmYZY ddIl8mZZZ ddJl:m[Z[ ddKl=m\Z\ ddLl=m]Z] ddMl=m^Z^ ddNl=m_Z_ ddOl=m`Z` ddPlambZb  edQe¬R¦  «        Zcejd        Ze ejf        ¦   «         ZgeCjh        Zh G dS„ dT¦  «        Zi ejf        dUdVi¦  «        Zj G dW„ dXe4¦  «        Zk G dY„ dZek¦  «        Zl G d[„ d\ek¦  «        Zm G d]„ d^¦  «        Zne&j        j4         o                    d_d`¦  «         G da„ dbem¦  «        ¦   «         Zp G dc„ dde;e6eEe-         ¦  «        Zqe&j        j4         o                    d_de¦  «         G df„ dgele>¦  «        ¦   «         Zre&j        j4         o                    d_dh¦  «         G di„ djemeD¦  «        ¦   «         Zs	 	 d�dŽdt„Ztd�dx„Zud�dy„Zv	 d�d‘d~„Zw G d„ d€¦  «        Zx G d�„ d‚ex¦  «        Zy G dƒ„ d„ex¦  «        Zz G d…„ d†ex¦  «        Z{ G d‡„ dˆe{¦  «        Z| G d‰„ dŠe{¦  «        Z} G d‹„ dŒe}¦  «        Z~dS )’é    )ÚannotationsN)ÚAny)Úcast)ÚDict)ÚIterable)ÚList)ÚOptional)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Ú
interfaces)Úloading)Ú_is_aliased_class)ÚORMColumnDescription)ÚORMColumnsClauseRole)ÚPathRegistry)Ú_entity_corresponds_to)Ú_ORMJoin)Ú_TraceAdaptRole)ÚAliasedClass)ÚBundle)Ú
ORMAdapter)ÚORMStatementAdapteré   )Úexc)Úfuture)Úinspect)Úsql)Úutil)Ú	coercions)Ú
expression)Úroles)Úvisitors)Ú_TP)Úis_dml)Úis_insert_update)Úis_select_base)Ú_select_iterables)ÚCacheableOptions)ÚCompileState)Ú
Executable)Ú
Generative)ÚOptions)Ú
UpdateBase)ÚGroupedElement)Ú
TextClause)ÚCompoundSelectState)ÚLABEL_STYLE_DISAMBIGUATE_ONLY)ÚLABEL_STYLE_NONE)ÚLABEL_STYLE_TABLENAME_PLUS_COL)ÚSelect)ÚSelectLabelStyle)ÚSelectState)ÚTypedReturnsRows)ÚInternalTraversal)Ú_InternalEntityType)ÚOrmExecuteOptionsParameter)ÚPostLoad)ÚMapper)ÚQuery)Ú_BindArguments)ÚSession)ÚResult)Ú_CoreSingleExecuteParams)Ú_ColumnsClauseArgument)ÚSQLCompiler)Ú_DMLTableElement)ÚColumnElement)Ú_JoinTargetElement)Ú_LabelConventionCallable)Ú_SetupJoinsElement)ÚExecutableReturnsRows)Ú
SelectBase)Ú
TypeEngineÚ_T)Úboundc                  ód   — e Zd ZU dZded<   ded<   ded<    G d„ d	e¦  «        Z	 	 ddd„Zdd„Zd
S )ÚQueryContext)Útop_level_contextÚcompile_stateÚqueryÚuser_passed_queryÚparamsÚload_optionsÚbind_argumentsÚexecution_optionsÚsessionÚ	autoflushÚpopulate_existingÚinvoke_all_eagersÚversion_checkÚrefresh_stateÚcreate_eager_joinsÚpropagated_loader_optionsr   ÚrunidÚpartialsÚpost_load_pathsÚidentity_tokenÚ	yield_perÚloaders_require_bufferingÚloaders_require_uniquingÚintrf   zDict[PathRegistry, PostLoad]rh   ÚORMCompileStaterW   c                  ó>   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdS )ú!QueryContext.default_load_optionsFTN)Ú__name__Ú
__module__Ú__qualname__Ú_only_return_tuplesÚ_populate_existingÚ_version_checkÚ_invoke_all_eagersÚ
_autoflushÚ_identity_tokenÚ
_yield_perÚ_refresh_stateÚ_lazy_loaded_fromÚ_legacy_uniquingÚ_sa_top_level_orm_contextÚ_is_user_refresh© ó    ú`/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/sqlalchemy/orm/context.pyÚdefault_load_optionsrp   †   sS   € € € € € Ø#ÐØ"ÐØˆØ!ÐØˆ
ØˆØˆ
ØˆØ ÐØ ÐØ$(Ð!Ø ÐÐÐr�   rƒ   Nr/   Ú	statementú&Union[Select[Any], FromStatement[Any]]rY   rZ   rG   r^   rE   r[   úQUnion[Type[QueryContext.default_load_options], QueryContext.default_load_options]r]   ú$Optional[OrmExecuteOptionsParameter]r\   úOptional[_BindArguments]c	                ó$  ‡ — |‰ _         |pt          ‰ _        |pt          ‰ _        |‰ _        |‰ _        |‰ _        |‰ _        d‰ _        d‰ _	        |‰ _
        |j        ‰ _        |j        j        }	|j        }
t          ˆ fd„t!          |	|
¦  «        D ¦   «         ¦  «        ‰ _        t%          |j        ¦  «        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j         ‰ _!        d S )NFc              3  óX   •K  — | ]$\  }}|j         ¯|                     ‰|¦  «        V — Œ%d S ©N)Úpropagate_to_loadersÚ'_adapt_cached_option_to_uncached_option)Ú.0ÚoptÚuncached_optÚselfs      €r‚   ú	<genexpr>z(QueryContext.__init__.<locals>.<genexpr>Å   sT   øè è € ð /
ð /
á!��\ØÔ'ð/
Ø×7Ò7¸¸lÑKÔKð/
ð /
ð /
ð /
ð /
ð /
r�   )"r[   Ú_EMPTY_DICTr]   r\   rW   rX   rY   r^   rk   rl   rZ   r~   rV   Úselect_statementÚ_with_optionsÚtupleÚzipre   Údictr   rx   r_   ru   r`   rw   ra   rv   rb   r{   rc   rz   rj   ry   ri   )r‘   rW   r„   rY   rZ   r^   r[   r]   r\   Úcached_optionsÚuncached_optionss   `          r‚   Ú__init__zQueryContext.__init__”   s'  ø€ ð" )ˆÔØ!2Ð!AµkˆÔØ,Ð;µˆÔØ*ˆÔØˆŒ
ð "3ˆÔàˆŒØ).ˆÔ&Ø(-ˆÔ%ØˆŒØ!-Ô!GˆÔà&Ô7ÔEˆØ,Ô:Ðõ */ð /
ð /
ð /
ð /
å%(¨Ð9IÑ%JÔ%Jð/
ñ /
ô /
ñ *
ô *
ˆÔ&õ ˜}Ô7Ñ8Ô8ˆŒà%Ô0ˆŒØ!-Ô!@ˆÔØ!-Ô!@ˆÔØ)Ô8ˆÔØ)Ô8ˆÔØ%Ô0ˆŒØ*Ô:ˆÔÐÐr�   Úreturnc                ó   — | j         p| S r‹   )rV   ©r‘   s    r‚   Ú_get_top_level_contextz#QueryContext._get_top_level_contextÕ   s   € ØÔ%Ð-¨Ð-r�   )NN)rW   r/   r„   r…   rY   r…   rZ   rG   r^   rE   r[   r†   r]   r‡   r\   rˆ   )rœ   rU   )	rq   rr   rs   Ú	__slots__Ú__annotations__r2   rƒ   r›   rŸ   r€   r�   r‚   rU   rU   f   s¢   € € € € € € ð€Ið6 €J€J�JØ1Ð1Ð1Ñ1Ø"Ð"Ð"Ñ"ð!ð !ð !ð !ð !˜wñ !ô !ð !ð8 CGØ37ð?;ð ?;ð ?;ð ?;ð ?;ðB.ð .ð .ð .ð .ð .r�   rU   Ú _result_disable_adapt_to_contextTc                  ó~   ‡ — e Zd ZdZd„ Zedˆ fd
„¦   «         Zed„ ¦   «         Zedd„¦   «         Zed„ ¦   «         Z	ˆ xZ
S )ÚAbstractORMCompileStateFc               ó–  — i | _         |€i x| _        }|sJ ‚d S |j        x| _        }|r/d|d<   |r&|j        D ]}|j        r|                     | ¦  «         Œd S |                     dd¦  «        rd S |j        d         }	 |d         }|j        D ]%}|j        r|j        r|                     | ¦  «         Œ&n# t          $ r Y nw xY wd|d<   d S )NTÚtoplevel_ormFr   Ú
selectable)
r   Úglobal_attributesÚ_global_attributesr•   Ú_is_criteria_optionÚprocess_compile_stateÚgetÚstackÚ_is_compile_stateÚKeyError)	r‘   r„   ÚcompilerÚtoplevelÚprocess_criteria_for_toplevelÚgar�   Ústack_0Útoplevel_stmts	            r‚   Ú_init_global_attributesz/AbstractORMCompileState._init_global_attributesá   s<  € ð ˆŒàÐð +-Ð,ˆDÔ" RØˆOˆO�8ØˆFà*2Ô*EÐEˆDÔ" Ràð 
	Ø!%ˆBˆ~Ñà,ð 8Ø$Ô2ð 8ð 8�CØÔ.ð 8Ø×1Ò1°$Ñ7Ô7Ð7øàˆFØ�VŠV�N EÑ*Ô*ð 	ØˆFà”. Ô#ˆð	4Ø# LÔ1ˆMð %Ô2ð 4ð 4�ØÔ(ð 4¨SÔ-Dð 4Ø×-Ò-¨dÑ3Ô3Ð3øð4øõ ð 	ð 	ð 	ØˆDð	øøøð "ˆˆ>ÑÐÐs   Á>B4 Â4
CÃ Cr„   úUnion[Select, FromStatement]r°   úOptional[SQLCompiler]Úkwr   rœ   c                ó:   •—  t          ¦   «         j        ||fi |¤ŽS )aÇ  Create a context for a statement given a :class:`.Compiler`.

        This method is always invoked in the context of SQLCompiler.process().

        For a Select object, this would be invoked from
        SQLCompiler.visit_select(). For the special FromStatement object used
        by Query to indicate "Query.from_statement()", this is called by
        FromStatement._compiler_dispatch() that would be called by
        SQLCompiler.process().
        )ÚsuperÚcreate_for_statement)Úclsr„   r°   r¹   Ú	__class__s       €r‚   r¼   z,AbstractORMCompileState.create_for_statement  s&   ø€ ð" ,�u‰wŒwÔ+¨I°xÐFÐFÀ2ÐFÐFÐFr�   c                ó   — t          ¦   «         ‚r‹   ©ÚNotImplementedError)r½   r^   r„   rZ   r]   r\   Úis_pre_events          r‚   Úorm_pre_session_execz,AbstractORMCompileState.orm_pre_session_exec  ó   € õ "Ñ#Ô#Ð#r�   rF   c                ój   — |                      ||pi |¬¦  «        }|                      ||||||¦  «        S )N)r]   )ÚexecuteÚorm_setup_cursor_result)r½   r^   r„   rZ   r]   r\   ÚconnÚresults           r‚   Úorm_execute_statementz-AbstractORMCompileState.orm_execute_statement'  sT   € ð —’Ø�v�| Ð7Hð ñ 
ô 
ˆð ×*Ò*ØØØØØØñ
ô 
ð 	
r�   c                ó   — t          ¦   «         ‚r‹   rÀ   ©r½   r^   r„   rZ   r]   r\   rÉ   s          r‚   rÇ   z/AbstractORMCompileState.orm_setup_cursor_result=  rÄ   r�   )r„   r·   r°   r¸   r¹   r   rœ   r¤   )rœ   rF   )rq   rr   rs   Úis_dml_returningr¶   Úclassmethodr¼   rÃ   rÊ   rÇ   Ú__classcell__©r¾   s   @r‚   r¤   r¤   Þ   s»   ø€ € € € € ØÐð%"ð %"ð %"ðN ðGð Gð Gð Gð Gñ „[ðGð$ ð	$ð 	$ñ „[ð	$ð ð
ð 
ð 
ñ „[ð
ð* ð	$ð 	$ñ „[ð	$ð 	$ð 	$ð 	$ð 	$r�   r¤   c                  ó>   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         ZdS )ÚAutoflushOnlyORMCompileStatez>ORM compile state that is a passthrough, except for autoflush.c                óš   — t           j                             ddh||j        ¦  «        \  }}|s|j        r|                     ¦   «          ||fS )NÚ_sa_orm_load_optionsr_   )rU   rƒ   Úfrom_execution_optionsÚ_execution_optionsrx   )r½   r^   r„   rZ   r]   r\   rÂ   r[   s           r‚   rÃ   z1AutoflushOnlyORMCompileState.orm_pre_session_execM  sm   € õ Ô-×DÒDØ"àðð ØÔ(ñ
ô 
ñ	
ØØð ð 	! Ô 7ð 	!Ø×ÒÑ Ô Ð àÐ+Ð+Ð+r�   c                ó   — |S r‹   r€   rÌ   s          r‚   rÇ   z4AutoflushOnlyORMCompileState.orm_setup_cursor_resultj  s	   € ð ˆr�   N)rq   rr   rs   Ú__doc__rÎ   rÃ   rÇ   r€   r�   r‚   rÒ   rÒ   J  sN   € € € € € ØHÐHàð,ð ,ñ „[ð,ð8 ð	ð 	ñ „[ð	ð 	ð 	r�   rÒ   c                  ó„  — e Zd ZU  G d„ de¦  «        Zded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   eZded<   dZd„ Z	e
red4d&„¦   «         Zd'„ Zed5d+„¦   «         Zed,„ ¦   «         Zed-„ ¦   «         Zed.„ ¦   «         Zed/„ ¦   «         Zd0„ Zd1„ Zed2„ ¦   «         Zd3S )6rn   c                  óî   — e Zd Zdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fd	ej        fd
ej        fdej        fgZdZdZ	dZ
eZdZdZdZdZdZdZdZdS )ú'ORMCompileState.default_compile_optionsÚ_use_legacy_query_styleÚ_for_statementÚ_bake_okÚ_current_pathÚ_enable_single_critÚ_enable_eagerloadsÚ_only_load_propsÚ_set_base_aliasÚ_for_refresh_stateÚ_render_for_subqueryÚ_is_starFTN)rq   rr   rs   r>   Ú
dp_booleanÚdp_has_cache_keyÚdp_plain_objÚ_cache_key_traversalrÜ   rÝ   rÞ   Ú_path_registryrß   rà   rá   râ   rã   rä   rå   ræ   r€   r�   r‚   Údefault_compile_optionsrÛ   x  sÛ   € € € € € à&Ð(9Ô(DÐEØÐ0Ô;Ð<ØÐ*Ô5Ð6ØÐ/Ô@ÐAØ"Ð$5Ô$@ÐAØ!Ð#4Ô#?Ð@ØÐ!2Ô!?Ð@ØÐ 1Ô <Ð=Ø!Ð#4Ô#?Ð@Ø#Ð%6Ô%AÐBØÐ*Ô5Ð6ð 
Ðð& #(Ðð
 ˆàˆØ&ˆØ"ÐØ!ÐØÐØˆØ"ÐØ$ÐØˆˆˆr�   rì   zDict[Any, Any]r   r¨   r…   r„   r”   úList[_QueryEntity]Ú	_entitiesz%Dict[_InternalEntityType, ORMAdapter]Ú_polymorphic_adaptersz=Union[Type[default_compile_options], default_compile_options]Úcompile_optionszOptional[_QueryEntity]Ú_primary_entityÚboolÚuse_legacy_query_stylerM   Ú_label_conventionzList[ColumnElement[Any]]Úprimary_columnsÚsecondary_columnszSet[ColumnElement[Any]]Údedupe_columnszList[Tuple[Any, ...]]rd   r   Úcurrent_pathFc                ó   — t          ¦   «         ‚r‹   rÀ   )r‘   Úargr¹   s      r‚   r›   zORMCompileState.__init__´  ó   € Ý!Ñ#Ô#Ð#r�   r·   r°   r¸   r¹   r   rœ   c                ó   — d S r‹   r€   )r½   r„   r°   r¹   s       r‚   r¼   z$ORMCompileState.create_for_statement¹  s	   € ð "˜cr�   c                ót   — | j         }||vr,|                     |¦  «         |                     |¦  «         d S d S r‹   )r÷   ÚaddÚappend)r‘   ÚobjÚcol_collectionÚdedupes       r‚   Ú_append_dedupe_col_collectionz-ORMCompileState._append_dedupe_col_collectionÁ  sF   € ØÔ$ˆØ�fÐÐØ�JŠJ�s‰OŒOˆOØ×!Ò! #Ñ&Ô&Ð&Ð&Ð&ð Ðr�   Úlabel_styler;   Úlegacyc                ó:   — |rdd„}|S t          j        |¦  «        S )Nc                ó*   — |r|S t          | d¦  «        S )NÚkey)Úgetattr)ÚcolÚcol_names     r‚   Únamez7ORMCompileState._column_naming_convention.<locals>.nameÍ  s   € Øð /Ø#�Oå" 3¨Ñ.Ô.Ð.r�   r‹   )r<   Ú_column_naming_convention)r½   r  r  r  s       r‚   r  z)ORMCompileState._column_naming_conventionÇ  s9   € ð ð 
	Fð/ð /ð /ð /ð ˆKåÔ8¸ÑEÔEÐEr�   c                ó    — t          |¦  «        S r‹   )Ú_column_descriptions©r½   r„   s     r‚   Úget_column_descriptionsz'ORMCompileState.get_column_descriptions×  s   € å# IÑ.Ô.Ð.r�   c                ó¾  — t           j                             dh d£||j        ¦  «        \  }}d|v r-|d         }|j        j                             |j        |¦  «        }|st          }n|                     t          ¦  «        }|j	        r|                     d|j	        i¦  «        }t          |j        dd ¦  «        rKt          |j        j        ¦  «        dk    r.|                     dd¦  «        �|                     d d	d
œ¦  «        }||d<   	 |j        d         }	|	r
|	j        |d<   n# t"          $ r J d¦   «         ‚w xY w|s|j        r|                     ¦   «          ||fS )NrÔ   >   r_   rj   ri   r`   Úsa_top_level_orm_contextr  rj   rß   é
   Úcompiled_cacheTz#excess depth for ORM loader options)r  Ú_cache_disable_reasonÚclauseÚplugin_subjectÚmapperFz0statement had 'orm' plugin but no plugin_subject)rU   rƒ   rÕ   rÖ   rX   Ú
merge_withr]   Ú_orm_load_exec_optionsÚunionrz   r	  Ú_compile_optionsÚlenrß   r¬   Ú_propagate_attrsr  r¯   rx   )
r½   r^   r„   rZ   r]   r\   rÂ   r[   Úctxr  s
             r‚   rÃ   z$ORMCompileState.orm_pre_session_execÛ  så  € õ Ô-×DÒDØ"ðð ð ð ØÔ(ñ
ô 
ñ	
ØØð( &Ð):Ð:Ð:Ø#Ð$>Ô?ˆCØ #¤	Ô <× GÒ GØÔ%Ð'8ñ!ô !Ðð !ð 	PÝ 6ÐÐà 1× 7Ò 7Õ8NÑ OÔ OÐð Ô"ð 	Ø 1× 7Ò 7Ø˜lÔ5Ð6ñ!ô !Ðõ
 �IÔ.°ÀÑFÔFð	å�IÔ.Ô<Ñ=Ô=ÀÒBÐBØ!×%Ò%Ð&6¸Ñ=Ô=ÐIð "×'Ò'à*.ð2-ðð ñô ð ð $-ˆ�xÑ ð	AØ&Ô7Ð8HÔIˆNð ð AØ+9Ô+@�˜xÑ(øøõ	 ð 	Mð 	Mð 	MØLÐLÑLÔL�5ð	Møøøð ð 	! Ô 7ð 	!Ø×ÒÑ Ô Ð àÐ+Ð+Ð+s   ÄD& Ä&D;c           
     óÚ   — |j         }|j        j        }|                     dt          j        ¦  «        }	|j        j        r|S t	          ||||||	||¦  «        }
t          j	        ||
¦  «        S )NrÔ   )
ÚcontextÚcompiledrW   r¬   rU   rƒ   rð   ræ   r   Ú	instances)r½   r^   r„   rZ   r]   r\   rÉ   Úexecution_contextrW   r[   Úquerycontexts              r‚   rÇ   z'ORMCompileState.orm_setup_cursor_result5  s‡   € ð #œNÐØ)Ô2Ô@ˆð )×,Ò,Ø"¥LÔ$Eñ
ô 
ˆð Ô(Ô1ð 	ØˆMå#ØØØØØØØØñ	
ô 	
ˆõ Ô  ¨Ñ6Ô6Ð6r�   c                ó$   — d„ | j         D ¦   «         S )zºreturn all _MapperEntity objects in the lead entities collection.

        Does **not** include entities that have been replaced by
        with_entities(), with_only_columns()

        c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   ©Ú
isinstanceÚ_MapperEntity©rŽ   Úents     r‚   ú
<listcomp>z9ORMCompileState._lead_mapper_entities.<locals>.<listcomp>b  s7   € ð 
ð 
ð 
Ø­Z¸½]Ñ-KÔ-Kð
Øð
ð 
ð 
r�   )rî   rž   s    r‚   Ú_lead_mapper_entitiesz%ORMCompileState._lead_mapper_entitiesZ  s%   € ð
ð 
Øœ>ð
ñ 
ô 
ð 	
r�   c           
     óæ   — |j         se|j        j        | j        vrT|j                             ¦   «         D ]<}|                      |t          t          j        ||j	        |¬¦  «        ¦  «         Œ9dS dS dS )a5  given MapperEntity or ORMColumnEntity, setup polymorphic loading
        if called for by the Mapper.

        As of #8168 in 2.0.0rc1, polymorphic adapters, which greatly increase
        the complexity of the query creation process, are not used at all
        except in the quasi-legacy cases of with_polymorphic referring to an
        alias and/or subquery. This would apply to concrete polymorphic
        loading, and joined inheritance where a subquery is
        passed to with_polymorphic (which is completely unnecessary in modern
        use).

        )Úequivalentsr§   N)
Úis_aliased_classr  Úpersist_selectablerï   Úiterate_to_rootÚ"_mapper_loads_polymorphically_withr   r   ÚWITH_POLYMORPHIC_ADAPTERÚ_equivalent_columns)r‘   Úext_infor§   Úmps       r‚   Ú _create_with_polymorphic_adapterz0ORMCompileState._create_with_polymorphic_adapterf  s¨   € ð Ô)ð	à”Ô2ØÔ-ð.ð .ð ”o×5Ò5Ñ7Ô7ð 	ð 	�Ø×7Ò7ØÝÝ'Ô@ØØ$&Ô$:Ø#-ð	ñ ô ñô ð ð ð	ð 	ð.ð .ð	ð 	r�   c                ó€   — |j         p|gD ]2}|| j        |<   |                     ¦   «         D ]}|| j        |j        <   ŒŒ3d S r‹   )Ú_with_polymorphic_mappersrï   r4  Úlocal_table)r‘   r  ÚadapterÚm2Úms        r‚   r5  z2ORMCompileState._mapper_loads_polymorphically_withƒ  sk   € ØÔ2Ð>°v°hð 	Dð 	DˆBØ-4ˆDÔ& rÑ*à×'Ò'Ñ)Ô)ð Dð D�Ø<C�Ô*¨1¬=Ñ9Ð9ðDð	Dð 	Dr�   c                ó    — t          d¦  «        ‚)Nz0this method only works for ORMSelectCompileStaterÀ   )r½   rX   r  s      r‚   Ú_create_entities_collectionz+ORMCompileState._create_entities_collectionŠ  s   € å!Ø>ñ
ô 
ð 	
r�   N)r„   r·   r°   r¸   r¹   r   rœ   rn   )r  r;   r  rò   rœ   rM   )rq   rr   rs   r.   rì   r¡   rë   rø   Ú_has_mapper_entitiesr›   r   rÎ   r¼   r  r  r  rÃ   rÇ   Úpropertyr/  r:  r5  rB  r€   r�   r‚   rn   rn   w  s.  € € € € € € ð#ð #ð #ð #ð #Ð"2ñ #ô #ð #ðJ ÐÐÑØ%Ð%Ð%Ñ%à5Ð5Ð5Ñ5Ø<Ð<Ð<Ñ<Ø!Ð!Ð!Ñ!Ø@Ð@Ð@Ñ@ðð ð ñ ð ,Ð+Ð+Ñ+Ø Ð Ð Ñ Ø/Ð/Ð/Ñ/Ø-Ð-Ð-Ñ-Ø/Ð/Ð/Ñ/Ø+Ð+Ð+Ñ+ðð ð ñ ð "0€LÐ/Ð/Ð/Ñ/Ø Ðð$ð $ð $ð ð "à	ð	"ð 	"ð 	"ñ 
Œð	"ð'ð 'ð 'ð ðFð Fð Fñ „[ðFð ð/ð /ñ „[ð/ð ðW,ð W,ñ „[ðW,ðr ð"7ð "7ñ „[ð"7ðH ð	
ð 	
ñ „Xð	
ðð ð ð:Dð Dð Dð ð
ð 
ñ „[ð
ð 
ð 
r�   rn   c                  ó(   — e Zd ZdZdZd„ Zd„ Zd„ ZdS )ÚDMLReturningColFilterzðan adapter used for the DML RETURNING case.

    Has a subset of the interface used by
    :class:`.ORMAdapter` and is used for :class:`._QueryEntity`
    instances to set up their columns as used in RETURNING for a
    DML statement.

    )r  ÚcolumnsÚ__weakref__c                óŽ   — |�|j         |j         ur|| _        n|| _        t          j        | j        ¦  «        x| _        | _        d S r‹   )r=  r  r$   ÚWeakPopulateDictÚadapt_check_presentrG  )r‘   Útarget_mapperÚimmediate_dml_mappers      r‚   r›   zDMLReturningColFilter.__init__�  sY   € à Ð,ØÔ)Ø'Ô3ð4ð 4ð /ˆDŒKˆKð (ˆDŒKÝ&*Ô&;ØÔ$ñ'
ô '
ð 	
ˆŒ�t”|�|�|r�   c                ój   — t          j        |¦  «        D ]}|                      |¦  «        }|�|c S Œd S r‹   )Úsql_utilÚ_find_columnsrK  )r‘   r
  Ú	as_filterÚccÚc2s        r‚   Ú__call__zDMLReturningColFilter.__call__¬  sI   € ÝÔ(¨Ñ-Ô-ð 	ð 	ˆBØ×)Ò)¨"Ñ-Ô-ˆBØˆ~Ø�
�
�
ð ð �4r�   c                óŒ   — | j         }|j                             |d ¦  «        }|€d S |j        j                             |¦  «        S r‹   )r  Ú_columntopropertyr¬   r=  ÚcÚcorresponding_column)r‘   r
  r  Úprops       r‚   rK  z)DMLReturningColFilter.adapt_check_present´  sE   € Ø”ˆØÔ'×+Ò+¨C°Ñ6Ô6ˆØˆ<Ø�4ØÔ!Ô#×8Ò8¸Ñ=Ô=Ð=r�   N)rq   rr   rs   rØ   r    r›   rT  rK  r€   r�   r‚   rF  rF  ‘  sR   € € € € € ðð ð 5€Ið
ð 
ð 
ðð ð ð>ð >ð >ð >ð >r�   rF  ÚormÚorm_from_statementc                  ó|   — e Zd ZU dZdZded<   ded<   dZded<   dZdZdZ	dZ
eZeZedd„¦   «         Zd„ Zd„ Zd„ ZdS )ÚORMFromStatementCompileStateNFÚFromStatementÚstatement_containerz)Union[SelectBase, TextClause, UpdateBase]Úrequested_statementzOptional[_DMLTableElement]Ú	dml_tabler·   r°   r¸   r¹   r   rœ   c                ó¦  — t          |t          ¦  «        sJ ‚|�|j        rt          j        d¦  «        ‚|                      | ¦  «        }d |_        |j        j        |_	        |x|_
        |_        |j        x|_        }|j        r|j        |_        d|_        g |_        i |_        |j        |_        |j	        rVt          |t*          j        ¦  «        r<|j        s5|j        s.|j        t2          u r |                     t6          ¦  «        |_        n||_        |                     |j        s|j        s|j        nt2          |j	        ¦  «        |_        t>                                ||j!        |j        d¬¦  «         |j        j"        |_#        | $                    ||dd¬¦  «         |j%        r&|j%        D ]}|j&        r| '                    |¦  «         Œ|j(        r|j(        D ]\  }} ||¦  «         Œg |_)        g |_*        tW          ¦   «         |_,        g |_-        g |_.        d |_/        t          |j        t*          j0        ¦  «        rci |_1        |j        D ]}	|	 2                    |¦  «         Œdx|_3        |_4        d|_5        |j)        D ]}
| 6                    |
d|j7        ¬¦  «         Œ n+tq          tr          j:        |j        |j;        ¬¦  «        |_<        |S )NzšThe ORM FromStatement construct only supports being invoked as the topmost statement, as it is only intended to define how result rows should be returned.T©Úis_current_entitiesF)r²   r±   )Úwithin_columns_clauseÚadd_to_result_map)Úadapt_on_names)=r*  r^  r­   Úsa_excÚCompileErrorÚ__new__rñ   r  rÜ   ró   r_  r”   Úelementr`  r*   Útablera  rÍ   rî   rï   rð   r&   rP   Ú_is_textualÚ_label_styler8   Úset_label_styler9   r„   r  rô   Ú_QueryEntityÚto_compile_stateÚ_raw_columnsrß   rø   r¶   r•   r®   r«   Ú_with_context_optionsrõ   rö   Úsetr÷   rd   Ú_fallback_from_clausesÚorder_byr5   Úextra_criteria_entitiesÚsetup_compile_stateÚ_ordered_columnsÚ_textual_ordered_columnsÚ_loose_column_name_matchingÚprocessÚ_add_to_result_mapr   r   ÚADAPT_FROM_STATEMENTÚ_adapt_on_namesÚ_from_obj_alias)r½   r_  r°   r¹   r‘   r„   r�   Úfnr  ÚentityrW  s              r‚   r¼   z1ORMFromStatementCompileState.create_for_statementÍ  sd  € õ Ð-­}Ñ=Ô=Ð=Ð=Ð=àÐ H¤NÐÝÔ%ð=ñô ð ð �{Š{˜3ÑÔˆØ#ˆÔð  Ô0ÔHð 	Ô#ð <OÐNˆÔ  4Ô#8Ø/BÔ/JÐJˆÔ  9àÔð 	)Ø&œ_ˆDŒNØ$(ˆDÔ!àˆŒØ%'ˆÔ"à2ÔCˆÔð Ô'ð	'å˜9¥jÔ&;Ñ<Ô<ð	'ð Ô)ð	'ð Ô$ð		'ð
 Ô&Õ*:Ð:Ð:à&×6Ò6Ý.ñô ˆDŒNˆNð 'ˆDŒNà!%×!?Ò!?ð !Ô,ð&Ø5>Ô5Eð&�	Ô&Ð&å%àÔ'ñ"
ô "
ˆÔõ 	×%Ò%ØØÔ,ØŒNØ $ð	 	&ñ 	
ô 	
ð 	
ð 0Ô@ÔNˆÔà×$Ò$ØØØ*/Øð	 	%ñ 	
ô 	
ð 	
ð Ô,ð 	4Ø*Ô8ð 4ð 4�ØÔ(ð 4Ø×-Ò-¨dÑ3Ô3Ð3øàÔ4ð 	Ø.ÔDð ð ‘��CØ��4‘”��à!ˆÔØ!#ˆÔÝ!™eœeˆÔØ"$ˆÔØ&(ˆÔ#àˆŒå�d”n¥jÔ&;Ñ<Ô<ð %	ð ,.ˆDÔ(àœ.ð 1ð 1�Ø×*Ò*¨4Ñ0Ô0Ð0Ð0ð ðˆHÔ%¨Ô(Ið 48ˆHÔ0àÔ)ð ð �Ø× Ò ØØ*.Ø&.Ô&Að !ñ ô ð ð ðõ  $7ÝÔ4Ø”Ø2ÔBð$ñ $ô $ˆDÔ ð ˆr�   c                ó   — |S r‹   r€   ©r‘   ÚcolsÚcurrent_adapters      r‚   Ú_adapt_col_listz,ORMFromStatementCompileState._adapt_col_listO  ó   € Øˆr�   c                ó   — d S r‹   r€   rž   s    r‚   Ú_get_current_adapterz1ORMFromStatementCompileState._get_current_adapterR  s   € Øˆtr�   c                ó  — | j         j                             dd¦  «        }t          ||¦  «        }| j        j        r,t          | j        ¦  «        dk    rt          j	        d¦  «        ‚| j        D ]}| 
                    | |¦  «         ŒdS )z†used by BulkORMInsert (and Update / Delete?) to set up a handler
        for RETURNING to return ORM objects and expressions

        r  Nr   úsCan't generate ORM query that includes multiple expressions at the same time as '*'; query for '*' alone if present)r„   r  r¬   rF  rð   ræ   r  rî   rh  ri  Ú!setup_dml_returning_compile_state)r‘   Ú
dml_mapperrL  r>  r‚  s        r‚   r�  z>ORMFromStatementCompileState.setup_dml_returning_compile_stateU  s«   € ð
 œÔ7×;Ò;Ø˜dñ
ô 
ˆõ (¨°zÑBÔBˆàÔÔ(ð 	­c°$´.Ñ.AÔ.AÀQÒ.FÐ.FÝÔ%ðJñô ð ð
 ”nð 	Dð 	DˆFØ×4Ò4°T¸7ÑCÔCÐCÐCð	Dð 	Dr�   )r_  r·   r°   r¸   r¹   r   rœ   r]  )rq   rr   rs   r€  rC  r¡   ra  Ú_has_orm_entitiesÚmulti_row_eager_loadersÚeager_adding_joinsÚcompound_eager_adapterr“   rw  Úeager_joinsrÎ   r¼   r‡  rŠ  r�  r€   r�   r‚   r]  r]  ¼  sÂ   € € € € € € à€OØ Ðà&Ð&Ð&Ñ&ØBÐBÐBÑBØ,0€IÐ0Ð0Ð0Ñ0àÐØ#ÐØÐØ!Ðà)ÐØ€Kàðð ð ñ „[ððBð ð ðð ð ðDð Dð Dð Dð Dr�   r]  c                  ó4  ‡ — e Zd ZU dZdZej        Zej        Z	dZ
ded<   ded<   dej        fdej        fgej        z   Zed	ej        fgz   Zd
Z	 ddd„Zd„ Zed„ ¦   «         Zd„ Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zˆ xZS )r^  a*  Core construct that represents a load of ORM objects from various
    :class:`.ReturnsRows` and other classes including:

    :class:`.Select`, :class:`.TextClause`, :class:`.TextualSelect`,
    :class:`.CompoundSelect`, :class`.Insert`, :class:`.Update`,
    and in theory, :class:`.Delete`.

    r[  Nú(Union[ExecutableReturnsRows, TextClause]rk  rò   r  rr  r  TÚentitiesú%Iterable[_ColumnsClauseArgument[Any]]c                ó   ‡ — ˆ fd„t          j        |¦  «        D ¦   «         ‰ _        |‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        t          |¦  «        r|j
        nd ‰ _
        |‰ _        d S )Nc                óT   •— g | ]$}t          j        t          j        |‰d ¬¦  «        ‘Œ%S )T)Úapply_propagate_attrsÚpost_inspect)r%   Úexpectr'   ÚColumnsClauseRole)rŽ   r-  r‘   s     €r‚   r.  z*FromStatement.__init__.<locals>.<listcomp>�  sL   ø€ ð 
ð 
ð 
ð õ ÔÝÔ'ØØ&*Ø!ð	ñ ô ð
ð 
ð 
r�   )r$   Úto_listrr  rk  r*   Ú	is_selectÚ	is_deleteÚ	is_insertÚ	is_updater,   rn  r  )r‘   r–  rk  r  s   `   r‚   r›   zFromStatement.__init__Š  s¤   ø€ ð
ð 
ð 
ð 
õ ”| HÑ-Ô-ð
ñ 
ô 
ˆÔð ˆŒØ”nˆŒØ Ô*ˆŒØ Ô*ˆŒØ Ô*ˆŒØ Ô*ˆŒå$2°7Ñ$;Ô$;ÐEˆGÔ Ð Àð 	Ôð  /ˆÔÐÐr�   c                óh   —  | j         | |fi |¤Ž}|j         }|r||_         |j        |j        fi |¤ŽS )z›provide a fixed _compiler_dispatch method.

        This is roughly similar to using the sqlalchemy.ext.compiler
        ``@compiles`` extension.

        )Ú_compile_state_factoryr­   rW   r|  r„   )r‘   r°   r¹   rW   r±   s        r‚   Ú_compiler_dispatchz FromStatement._compiler_dispatch¤  sX   € ð 4˜Ô3°D¸(ÐIÐIÀbÐIÐIˆà”~Ð%ˆàð 	3Ø%2ˆHÔ"àˆxÔ Ô 7Ð>Ð>¸2Ð>Ð>Ð>r�   c                óp   — t          t          t          j        | ¦  «        ¦  «        j        } || ¦  «        S )a@  Return a :term:`plugin-enabled` 'column descriptions' structure
        referring to the columns which are SELECTed by this statement.

        See the section :ref:`queryguide_inspection` for an overview
        of this feature.

        .. seealso::

            :ref:`queryguide_inspection` - ORM background

        )r   ÚORMSelectCompileStater<   Úget_plugin_classr  )r‘   Úmeths     r‚   Úcolumn_descriptionsz!FromStatement.column_descriptionsµ  s9   € õ Ý!¥;Ô#?ÀÑ#EÔ#Eñ
ô 
ä
!ð 	ð ˆt�D‰zŒzÐr�   c                ó   — | S r‹   r€   rž   s    r‚   Ú_ensure_disambiguated_namesz)FromStatement._ensure_disambiguated_namesÇ  rˆ  r�   c              +  ó²   •K  — t           j                             d„ | j        D ¦   «         ¦  «        E d {V —†  t	          ¦   «         j        di |¤ŽE d {V —† d S )Nc              3  ó$   K  — | ]}|j         V — Œd S r‹   )Ú_from_objects©rŽ   rk  s     r‚   r’   z-FromStatement.get_children.<locals>.<genexpr>Ë  s6   è è € ð 1
ð 1
Ø&-ˆGÔ!ð1
ð 1
ð 1
ð 1
ð 1
ð 1
r�   r€   )Ú	itertoolsÚchainÚfrom_iterablerr  r»   Úget_children)r‘   r¹   r¾   s     €r‚   r´  zFromStatement.get_childrenÊ  s•   øè è € Ý”?×0Ò0ð 1
ð 1
Ø15Ô1Bð1
ñ 1
ô 1
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð (•5‘7”7Ô'Ð-Ð-¨"Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-r�   c                ó   — | j         j        S r‹   )rk  Ú_all_selected_columnsrž   s    r‚   r¶  z#FromStatement._all_selected_columnsÐ  s   € àŒ|Ô1Ð1r�   c                óF   — t          | j        ¦  «        r| j        j        nd S r‹   )r*   rk  Ú_return_defaultsrž   s    r‚   r¸  zFromStatement._return_defaultsÔ  s!   € å06°t´|Ñ0DÔ0DÐNˆtŒ|Ô,Ð,È$ÐNr�   c                óF   — t          | j        ¦  «        r| j        j        nd S r‹   )r*   rk  Ú
_returningrž   s    r‚   rº  zFromStatement._returningØ  s!   € å*0°´Ñ*>Ô*>ÐHˆtŒ|Ô&Ð&ÀDÐHr�   c                óF   — t          | j        ¦  «        r| j        j        nd S r‹   )r+   rk  Ú_inlinerž   s    r‚   r¼  zFromStatement._inlineÜ  s!   € å'7¸¼Ñ'EÔ'EÐOˆtŒ|Ô#Ð#È4ÐOr�   ©T)r–  r—  rk  r•  r  rò   ) rq   rr   rs   rØ   Ú__visit_name__r]  rì   r  r¼   r¤  Ú_for_update_argr¡   r>   Údp_clauseelement_listÚdp_clauseelementr0   Ú_executable_traverse_internalsÚ_traverse_internalsrè   rê   Úis_from_statementr›   r¥  rD  rª  r¬  r´  r¶  r¸  rº  r¼  rÏ   rÐ   s   @r‚   r^  r^  i  sŸ  ø€ € € € € € ðð ð *€Nà3ÔKÐà9ÔNÐà€Oà5Ð5Ð5Ñ5àÐÐÑð 
Ð*Ô@ÐAØ	Ð%Ô6Ð7ðð 	Ô1ñ2Ðð
 /Ø	Ð.Ô?Ð@ð2ñ Ðð Ðð !%ð	/ð /ð /ð /ð /ð4?ð ?ð ?ð" ðð ñ „Xðð"ð ð ð.ð .ð .ð .ð .ð ð2ð 2ñ „Xð2ð ðOð Oñ „XðOð ðIð Iñ „XðIð ðPð Pñ „XðPð Pð Pð Pð Pr�   r^  Úcompound_selectc                  ó   — e Zd ZdS )ÚCompoundSelectCompileStateN)rq   rr   rs   r€   r�   r‚   rÇ  rÇ  á  s   € € € € € ð 	€Dr�   rÇ  Úselectc                  óv  — e Zd ZdZeZdZdZdZdZ	dZ
dZdZdZdZdZed)d„¦   «         Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Z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*e+d%„ ¦   «         Z,e+d&„ ¦   «         Z-d'„ Z.d(„ Z/dS )+r§  r€   NFr„   r·   r°   r¸   r¹   r   rœ   c                ó
  ‡
— |                       | ¦  «        Š
|�	|j         }nd}|}| j                             |j        ¦  «        |_        |j        r7|                     ¦   «         ‰
_        t          j	        ¦   «         ‰
j        _        n|‰
_        |j        j
        ‰
_        |j        j        ‰
_        g ‰
_        d‰
_        i ‰
_        |j        ‰
_        |s‰
xj        dddœz  c_        ‰
j        r4‰
j        j        t&          u r!‰
j        st(          ‰
_        nt,          ‰
_        n‰
j        j        ‰
_        |j        rˆ
fd„|j        D ¦   «         ‰
_        ‰
                     |j        ‰
j        ¦  «        ‰
_        t6                               ‰
|j        ‰
j        d¬¦  «         |j        j        ‰
_        d‰
_         ‰
 !                    |||d¬¦  «         |r|j"        s|j        rq|j        D ]>}|j"        D ]4}|j#        r+| $                    ‰
d	„ ‰
j        |         D ¦   «         ¦  «         Œ5Œ?‰
j        j"        D ]}|j#        r| %                    ‰
¦  «         Œ|j&        r|j&        D ]\  }}	 |‰
¦  «         Œg ‰
_'        g ‰
_(        tS          ¦   «         ‰
_*        i ‰
_+        i ‰
_,        g ‰
_-        g ‰
_.        ‰
 /                    d
„ |j0        D ¦   «         ¦  «        ‰
_1        ‰
 2                    ¦   «          tg          j4        ‰
‰
j5        |fi |¤Ž ‰
S )z@compiler hook, we arrive here from compiler.visit_select() only.NTF)rá   rå   c           	     óX   •— i | ]&}|t                                ‰|j        g d ¬¦  «        “Œ'S )Frc  )rp  rq  rr  )rŽ   Úmemoized_entitiesr‘   s     €r‚   ú
<dictcomp>z>ORMSelectCompileState.create_for_statement.<locals>.<dictcomp>B  sR   ø€ ð 
'ð 
'ð 
'ð &ð "¥<×#@Ò#@ØØ%Ô2ØØ(-ð	 $Añ $ô $ð
'ð 
'ð 
'r�   rc  r€   )r±   r²   c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   r)  r,  s     r‚   r.  z>ORMSelectCompileState.create_for_statement.<locals>.<listcomp>s  s:   € ð ð ð à$'õ $.¨cµ=Ñ#AÔ#AðØ #ðð ð r�   c              3  ó$   K  — | ]}|j         V — Œd S r‹   )r§   )rŽ   Úinfos     r‚   r’   z=ORMSelectCompileState.create_for_statement.<locals>.<genexpr>–  s5   è è € ð 2
ð 2
Ø $ˆDŒOð2
ð 2
ð 2
ð 2
ð 2
ð 2
r�   )6rj  r­   rì   Ú
safe_merger  rÖ   Ú_cloner”   r$   ÚimmutabledictrÝ   Úfor_statementrÜ   ró   rî   rñ   rï   rð   rn  ÚLABEL_STYLE_LEGACY_ORMr9   r  r7   Ú_memoized_select_entitiesÚ_memoized_entitiesr  rô   rp  rq  rr  rß   rø   Úeager_order_byr¶   r•   r®   Ú'process_compile_state_replaced_entitiesr«   rs  rõ   rö   rt  r÷   r“  rw  rd   ru  Ú_normalize_fromsÚ	_from_objÚfrom_clausesÚ_setup_for_generater<   r›   r„   )r½   r„   r°   r¹   r±   r”   rÌ  r�   r�  r  r‘   s             @r‚   r¼   z*ORMSelectCompileState.create_for_statementû  sÞ  ø€ ð �{Š{˜3ÑÔˆàÐØ#œ>Ð)ˆHˆHàˆHà$Ðð &)Ô%@×%KÒ%KØÔ&ñ&
ô &
ˆ	Ô"ð Ô.ð 	5ð %5×$;Ò$;Ñ$=Ô$=ˆDÔ!Ý7;Ô7IÑ7KÔ7KˆDÔ!Ô4Ð4à$4ˆDÔ!ð .Ô>ÔMˆÔð Ô-ÔEð 	Ô#ð ˆŒØ#ˆÔØ%'ˆÔ"à/Ô@ˆÔàð 	ð Ð Ô Ø&+Ø(,ð%ð %ñ Ð Ô ð Ô'ð		BàÔ%Ô2Õ6LÐLÐLàÔ%ð AÝ#A�Ô Ð å#@�Ô Ð à#Ô4ÔAˆDÔàÔ5ð 	ð
'ð 
'ð 
'ð 
'ð %Ô>ð
'ñ 
'ô 
'ˆDÔ#ð  "&×!?Ò!?ØÔ" DÔ$?ñ"
ô "
ˆÔõ 	×%Ò%ØØÔ)ØŒNØ $ð	 	&ñ 	
ô 	
ð 	
ð -Ô=ÔKˆÔà ˆÔà×$Ò$ØØØØ*/ð	 	%ñ 	
ô 	
ð 	
ð ð 	4ØÔ*ð	4àÔ9ð	4ð "Ô;ðð Ø!à,Ô:ð ð �CØÔ,ð 
Ø×CÒCØ ðð à+/Ô+BØ$5ô,"ðñ ô ñ	ô 	ð 	øðð Ô,Ô:ð 4ð 4�ØÔ(ð 4Ø×-Ò-¨dÑ3Ô3Ð3øð Ô1ð 	Ø+ÔAð ð ‘��CØ��4‘”��à!ˆÔØ!#ˆÔÝ!™eœeˆÔØˆÔØ')ˆÔ$Ø"$ˆÔØ&(ˆÔ#ð !×1Ò1ð 2
ð 2
Ø(8Ô(Bð2
ñ 2
ô 2
ñ 
ô 
ˆÔð 	× Ò Ñ"Ô"Ð"åÔ˜T 4¤>°8ÐBÐB¸rÐBÐBÐBØˆr�   c                óL  — t          d¦  «         t          d| j        › �¦  «         | j        D ]õ}t          |t          ¦  «        rv|d         dk    rjt          dt          j        |d         ¦  «        › �¦  «         t          d| j        |         › �¦  «         t          d| j        |         j        › �¦  «         Œ�t          |t          ¦  «        rS|d         dk    rGt          d	t          j        |d         ¦  «        › �¦  «         t          d| j        |         › �¦  «         Œöd S )
Nz5
---------------------------------------------------
zcurrent path: r   Úloaderz
Loader:           r   z    Úpath_with_polymorphicz
With Polymorphic: )Úprintrø   r   r*  r–   r   ÚcoerceÚ__dict__)r‘   r  s     r‚   Ú_dump_option_structz)ORMSelectCompileState._dump_option_struct¢  s4  € ÝÐGÑHÔHÐHÝÐ2˜tÔ0Ð2Ð2Ñ3Ô3Ð3Ø”?ð 	5ð 	5ˆCÝ˜#�uÑ%Ô%ð 5¨#¨a¬&°HÒ*<Ð*<ÝÐJ­\Ô-@ÀÀQÄÑ-HÔ-HÐJÐJÑKÔKÐKÝÐ3˜Tœ_¨SÔ1Ð3Ð3Ñ4Ô4Ð4ÝÐ<˜Tœ_¨SÔ1Ô:Ð<Ð<Ñ=Ô=Ð=Ð=Ý˜C¥Ñ'Ô'ð 5¨C°¬FÐ6MÒ,MÐ,MÝÐJ­\Ô-@ÀÀQÄÑ-HÔ-HÐJÐJÑKÔKÐKÝÐ3˜Tœ_¨SÔ1Ð3Ð3Ñ4Ô4Ð4øð	5ð 	5r�   c                ó*  ‡— | j         }d | _        d| _        | j        j        r|                      ¦   «          |j        D ]/}|j        r&|                      |j        | j	        |         ¦  «         Œ0|j        r |                      |j        | j
        ¦  «         |                      ¦   «         Š|j        r3|j        | _        ‰r%t          ˆfd„| j        D ¦   «         ¦  «        | _        ‰r$|j        dvr|                      |j        ‰¦  «        n|j        | _        |j        r%t          ˆfd„|j        D ¦   «         ¦  «        | _        ‰r6|j        dvr-|                      t'          j        |j        ¦  «        ‰¦  «        n|j        pd | _        | j        r1| j        d         j        }|                     | j        ¦  «        | _        |j        r!|                      |j        ‰¦  «        | _        nd| _        |j        | _        |j        r6t          t'          j        d„ |j        D ¦   «         ¦  «        ¦  «        | _        nK|j         �6t          t'          j        d„ |j         D ¦   «         ¦  «        ¦  «        | _!        n|j"        sd| _        |j#        | _#        | j        j$        r,tK          | j
        ¦  «        d	k    rtM          j'        d
¦  «        ‚| j
        D ]}| (                    | ¦  «         Œ| j)        D ]}|d         } || g|d	d …         ¢R Ž  Œ| j        j*        r|  +                    ¦   «          | j,        s*| j        j-        r
J d¦   «         ‚tM          j.        d¦  «        ‚| j        st_          | j0        ¦  «        | _        | j        du rd | _        | j1        r(| j2        r!| j3        r|  4                    ¦   «         | _        n|  5                    ¦   «         | _        | j6        r9|  7                    ¦   «         }|�%| j         8                    d|i¦  «        | _        d S d S d S )Nr€   c              3  ó0   •K  — | ]} ‰|d ¦  «        V — ŒdS ©TNr€   ©rŽ   Úcritr†  s     €r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>È  sC   øè è € ð -ð -àð $�O D¨$Ñ/Ô/ð-ð -ð -ð -ð -ð -r�   ©NFc              3  ó8   •K  — | ]}‰r ‰|d ¦  «        n|V — ŒdS rç  r€   rè  s     €r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>×  sM   øè è € ð *ð *àð 0?ÐH��  dÑ+Ô+Ð+ÀDð*ð *ð *ð *ð *ð *r�   r   c              3  óF   K  — | ]}|�t          j        |¦  «        nd V — Œd S r‹   ©rO  Úsurface_selectables©rŽ   Úss     r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>ö  óJ   è è € ð &ð &àð 89°}•HÔ0°Ñ3Ô3Ð3È$ð&ð &ð &ð &ð &ð &r�   c              3  óF   K  — | ]}|�t          j        |¦  «        nd V — Œd S r‹   rí  rï  s     r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>ý  rñ  r�   r‹   r   rŒ  Fz,no columns were included in _only_load_propsz4Query contains no columns with which to SELECT from.Ú
deepentity)9r”   r„   Ú_join_entitiesrð   rã   Ú_set_select_from_aliasrÖ  Ú_setup_joinsÚ_joinr×  rî   rŠ  Ú_where_criteriar–   Ú_order_by_clausesr‡  rv  Ú_having_criteriaÚ_group_by_clausesr$   Úflatten_iteratorÚgroup_byrØ  rÜ  Ú_target_adapterÚcopy_and_processÚ_distinct_onÚdistinct_onÚ	_distinctÚdistinctÚ
_correlateÚ	correlateÚ_correlate_exceptÚcorrelate_exceptÚ_auto_correlater¿  ræ   r  rh  ri  rx  rd   rà   Ú_adjust_for_extra_criteriarõ   râ   ÚInvalidRequestErrorÚlistru  r�  r‘  Ú_should_nest_selectableÚ_compound_eager_statementÚ_simple_statementrÔ  Ú_mapper_zeroÚ	_annotate)	r‘   rX   rÌ  r>  r‚  ÚrecÚstrategyÚezeror†  s	           @r‚   rÝ  z)ORMSelectCompileState._setup_for_generate®  s  ø€ ØÔ%ˆàˆŒØ ˆÔàÔÔ/ð 	*à×'Ò'Ñ)Ô)Ð)à!&Ô!@ð 	ð 	ÐØ Ô-ð Ø—
’
Ø%Ô2ØÔ+Ð,=Ô>ñô ð øð
 Ôð 	;Ø�JŠJ�uÔ)¨4¬>Ñ:Ô:Ð:à×3Ò3Ñ5Ô5ˆàÔ ð 	Ø#(Ô#8ˆDÔ àð Ý',ð -ð -ð -ð -à $Ô 4ð-ñ -ô -ñ (ô (�Ô$ð ð)Ø#(Ô#:À-Ð#OÐ#Oð × Ò  Ô!8¸/ÑJÔJÐJàÔ(ð 	Œð Ô!ð 	Ý$)ð *ð *ð *ð *à!Ô2ð*ñ *ô *ñ %ô %ˆDÔ!ð ð1ð $)Ô#:À-Ð#OÐ#Oð × Ò ÝÔ% eÔ&=Ñ>Ô>Àñô ð ð Ô(Ð0¨Dð 	Œð Ôð 	PØÔ'¨Ô*Ô:ˆGØ")×":Ò":¸4Ô;NÑ"OÔ"OˆDÔàÔð 	"Ø#×3Ò3ØÔ" Oñ ô  ˆDÔÐð  "ˆDÔàœˆŒàÔð 	%õ #ÝÔ%ð &ð &à"Ô-ð&ñ &ô &ñ ô ñô ˆDŒNˆNð Ô$Ð0Ý$)ÝÔ%ð &ð &à"Ô4ð&ñ &ô &ñ ô ñ%ô %ˆDÔ!Ð!ð Ô&ð 	%Ø$ˆDŒNð  %Ô4ˆÔàÔÔ(ð 	­c°$´.Ñ.AÔ.AÀQÒ.FÐ.FÝÔ%ðJñô ð ð ”nð 	-ð 	-ˆFØ×&Ò& tÑ,Ô,Ð,Ð,àÔ*ð 	%ð 	%ˆCØ˜1”vˆHØˆH�TÐ$˜C   œGÐ$Ð$Ð$Ð$Ð$ð
 ÔÔ3ð 	.Ø×+Ò+Ñ-Ô-Ð-àÔ#ð 	ØÔ#Ô4ð MØLÐLÑLÔL�uåÔ,ØFñô ð ð Ô ð 	BÝ $ TÔ%@Ñ AÔ AˆDÔàŒ=˜EÐ!Ð!Ø ˆDŒMð Ô(ð	6àÔ'ð	6ð Ô,ð	6ð
 "×;Ò;Ñ=Ô=ˆDŒNˆNà!×3Ò3Ñ5Ô5ˆDŒNàÔð 	Ø×%Ò%Ñ'Ô'ˆEØÐ ð "&¤×!9Ò!9Ø! 5Ð)ñ"ô "�”��ð	ð 	à Ð r�   c                óê   — |                       | ¦  «        }g |_        d|_        i |_        |                     |j        |¦  «        |_        t                               ||j	        |j        d¬¦  «         |S )a  Creates a partial ORMSelectCompileState that includes
        the full collection of _MapperEntity and other _QueryEntity objects.

        Supports a few remaining use cases that are pre-compilation
        but still need to gather some of the column  / adaption information.

        NTrc  )
rj  rî   rñ   rï   r  rn  rô   rp  rq  rr  )r½   rX   r  r‘   s       r‚   rB  z1ORMSelectCompileState._create_entities_collection;  s€   € ð �{Š{˜3ÑÔˆàˆŒØ#ˆÔØ%'ˆÔ"à!%×!?Ò!?ØÔ ñ"
ô "
ˆÔõ 	×%Ò%Ø�%Ô$ d¤nÈ$ð 	&ñ 	
ô 	
ð 	
ð ˆr�   c                ó0   — |j         }t          |d ¦  «        S r‹   )rö  Ú_determine_last_joined_entity)r½   r„   Úsetup_joinss      r‚   Údetermine_last_joined_entityz2ORMSelectCompileState.determine_last_joined_entityU  s   € àÔ,ˆå,¨[¸$Ñ?Ô?Ð?r�   c              #  ó  K  — |j         D ]u}|j        rVd|j        v rM|j        d         }|j        s|j        st          |g¦  «        E d {V —† ŒDt          |j        ¦  «        E d {V —† Œ_t          |g¦  «        E d {V —† Œvd S )NÚentity_namespace)rr  Úis_selectableÚ_annotationsÚ	is_mapperr2  r-   Ú_all_column_expressions)r½   r„   rk  Úenss       r‚   Úall_selected_columnsz*ORMSelectCompileState.all_selected_columns[  sÏ   è è € à Ô-ð 	8ð 	8ˆGàÔ%ð
8à&¨'Ô*>Ð>Ð>àÔ*Ð+=Ô>�Ø”}ð N¨SÔ-Að NÝ0°'°Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;å0°Ô1LÑMÔMÐMÐMÐMÐMÐMÐMÐMÐMå,¨g¨YÑ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð	8ð 	8r�   c                ó„   — |                       t          j                             d„ |j        D ¦   «         ¦  «        ¦  «        S )Nc              3  óv   K  — | ]4}d |j         vr|j        n|j         d                               ¦   «         gV — Œ5dS )ÚparententityN)r  r¯  Ú__clause_element__r°  s     r‚   r’   zAORMSelectCompileState.get_columns_clause_froms.<locals>.<genexpr>m  so   è è € ð *ð *ð ð &¨WÔ-AÐAÐAð Ô)Ð)ð  Ô,Ø*ôç,Ò,Ñ.Ô.ðð	*ð *ð *ð *ð *ð *r�   )rÚ  r±  r²  r³  rr  r  s     r‚   Úget_columns_clause_fromsz.ORMSelectCompileState.get_columns_clause_fromsj  sP   € à×#Ò#ÝŒO×)Ò)ð *ð *ð  )Ô5ð*ñ *ô *ñ ô ñ
ô 
ð 	
r�   c                óÖ   — t          j        t          j        ||¬¦  «        }t	          |j        |¦  «        }|j                             |j        |j	        |j
        |j        ¬¦  «         |S )N)rš  )r•   rs  rÖ   r  )r%   rœ  r'   ÚReturnsRowsRoler^  rr  rã  Úupdater•   rs  rÖ   r  )r½   r„   Úfrom_statementÚstmts       r‚   r)  z$ORMSelectCompileState.from_statement{  sw   € å"Ô)ÝÔ!ØØ"+ð
ñ 
ô 
ˆõ ˜YÔ3°^ÑDÔDˆàŒ×ÒØ#Ô1Ø"+Ô"AØ(Ô;Ø&Ô7ð	 	ñ 	
ô 	
ð 	
ð ˆr�   c                óÞ   — | j         }| j        j        sJ ‚t          |j        ¦  «        dk    sJ ‚|                      |j        d         ¦  «        }|r| xj        ddiz  c_        || _        dS dS )ú used only for legacy Query casesr   r   rà   FN)r”   rð   rã   r  rÛ  Ú_get_select_from_alias_from_objr€  )r‘   rX   r>  s      r‚   rõ  z,ORMSelectCompileState._set_select_from_alias�  s�   € ð Ô%ˆàÔ#Ô3Ð3Ð3Ð3Ý�5”?Ñ#Ô# qÒ(Ð(Ð(Ð(à×6Ò6°u´ÀqÔ7IÑJÔJˆØð 	+ØÐ Ô Ð%:¸EÐ$BÑBÐ Ô Ø#*ˆDÔ Ð Ð ð	+ð 	+r�   c                ób  — |}d|j         v r|j         d         }t          |d¦  «        r"|j        st          j        d¦  «        ‚|j        S t          |j        t          j        j	        ¦  «        r@|  
                    ¦   «         }||j        u sJ ‚t          t          j        |j        |¬¦  «        S dS )r,  r#  r  zPA selectable (FromClause) instance is expected when the base alias is being set.©r1  N)r  Úhasattrr2  rh  ÚArgumentErrorÚ_adapterr*  r§   r#   ÚAliasedReturnsRowsÚ_all_equivsr   r   ÚLEGACY_SELECT_FROM_ALIAS)r‘   Úfrom_objrÐ  Úequivss       r‚   r-  z5ORMSelectCompileState._get_select_from_alias_from_objš  sÏ   € ð ˆà˜TÔ.Ð.Ð.ØÔ$ ^Ô4ˆDå�4˜Ñ"Ô"ð 	ØÔ(ð %ÝÔ*ðAñô ð ð
 ”}Ð$å˜œ­¬Ô)JÑKÔKð 		Ø×%Ò%Ñ'Ô'ˆFØ˜4œ?Ð*Ð*Ð*Ð*Ý&ÝÔ8Ø”Ø"ðñ ô ð ð �4r�   c                ó&   — | j         d         j        S )z8return the Mapper associated with the first QueryEntity.r   )rî   r  rž   s    r‚   r  z"ORMSelectCompileState._mapper_zero¶  s   € àŒ~˜aÔ Ô'Ð'r�   c                ó~   — | j         D ]}d|j        v r|j        d         c S Œ| j        D ]}|j        r	|j        c S ŒdS )z›Return the 'entity' (mapper or AliasedClass) associated
        with the first QueryEntity, or alternatively the 'select from'
        entity if specified.r#  N)rÜ  r  rî   Úentity_zero)r‘   r-  Úqents      r‚   Ú_entity_zeroz"ORMSelectCompileState._entity_zeroº  st   € ð
 Ô$ð 	8ð 	8ˆCØ Ô!1Ð1Ð1ØÔ'¨Ô7Ð7Ð7Ð7ð 2à”Nð 	(ð 	(ˆDØÔð (ØÔ'Ð'Ð'Ð'ð(ð ˆtr�   c                ój   — | j         | j        gk    rt          j        d|z  ¦  «        ‚| j        j        S )Nz4%s() can only be used against a single mapped class.)rî   rñ   rh  r
  r:  )r‘   Úmethnames     r‚   Ú_only_full_mapper_zeroz,ORMSelectCompileState._only_full_mapper_zeroÈ  sE   € ØŒ>˜dÔ2Ð3Ò3Ð3ÝÔ,ð)Ø+3ñ4ñô ð ð Ô#Ô/Ð/r�   c                ó†   — t          | j        ¦  «        dk    rt          j        |pd¦  «        ‚|                      ¦   «         S )Nr   z8This operation requires a Query against a single mapper.)r  rî   rh  r
  r<  )r‘   Ú	rationales     r‚   Ú_only_entity_zeroz'ORMSelectCompileState._only_entity_zeroÐ  sM   € ÝˆtŒ~ÑÔ Ò"Ð"ÝÔ,Øð +ð+ñô ð ð
 × Ò Ñ"Ô"Ð"r�   c                ó  — i }| j                              ¦   «         D ]0}d„ |D ¦   «         D ]!}|                     |j        j        ¦  «         Œ"Œ1d„ | j        D ¦   «         D ]!}|                     |j        j        ¦  «         Œ"|S )Nc                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   r)  r,  s     r‚   r.  z5ORMSelectCompileState._all_equivs.<locals>.<listcomp>Ý  s8   € ð ð ð àÝ˜c¥=Ñ1Ô1ðØðð ð r�   c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   r)  r,  s     r‚   r.  z5ORMSelectCompileState._all_equivs.<locals>.<listcomp>ä  s7   € ð 
ð 
ð 
Ø­Z¸½]Ñ-KÔ-Kð
Øð
ð 
ð 
r�   )r×  Úvaluesr(  r  r7  rî   )r‘   r7  rÌ  r-  s       r‚   r4  z!ORMSelectCompileState._all_equivsÙ  sº   € Øˆà!%Ô!8×!?Ò!?Ñ!AÔ!Að 	>ð 	>Ððð à,ðñ ô ð >ð >�ð
 —’˜cœjÔ<Ñ=Ô=Ð=Ð=ð>ð
ð 
Øœ>ð
ñ 
ô 
ð 	:ð 	:ˆCð �MŠM˜#œ*Ô8Ñ9Ô9Ð9Ð9Øˆr�   c           	     óš  ‡ — ‰ j         r,d„ ‰ j         D ¦   «         }t          j        ‰ j        |¦  «        }ng }d } ‰ j        ‰ j        ˆ fd„|D ¦   «         z   ‰ j        ‰ j        ‰ j        ‰ j        ‰ j         f‰ j	        ‰ j
        j        ‰ j
        j        ‰ j        ‰ j        dœ‰ j        ¤Ž}|                     ¦   «         }‰                      ¦   «         }t%          t&          j        ||¬¦  «        ‰ _        t-          j        |g‰ j        z   Ž }‰ j        |_        ‰ j	        �‰ j	        j        €‰ j	        |_	        |}‰ j                             ¦   «         D ]}t          j        |||j        ¦  «        }Œ|j                              ||¦  «         |r+ |j         j         |g‰ j         !                    |¦  «        ¢R Ž   |j         j         |g‰ j"        ¢R Ž  |S )Nc                ó^   — g | ]*}t          |t          j        j        ¦  «        r|j        n|‘Œ+S r€   )r*  r#   ÚelementsÚ_label_referencerk  )rŽ   Úelems     r‚   r.  zCORMSelectCompileState._compound_eager_statement.<locals>.<listcomp>ö  sG   € ð "ð "ð "ð õ " $­¬Ô(EÑFÔFð�D”L�Làð	"ð "ð "r�   c                ó&   •— g | ]}|‰j         v¯|‘ŒS r€   )r÷   )rŽ   rW  r‘   s     €r‚   r.  zCORMSelectCompileState._compound_eager_statement.<locals>.<listcomp>
  s&   ø€ ÐLÐLÐL�Q¨q¸Ô8KÐ/KÐ/KˆqÐ/KÐ/KÐ/Kr�   ©Ú
for_updateÚhintsÚstatement_hintsr  r  r/  )#rv  rO  Ú expand_column_list_from_order_byrõ   Ú_select_statementrÜ  rø  rú  r  r¿  r”   Ú_hintsÚ_statement_hintsr  r  Ú_select_argsÚaliasr4  r   r   ÚCOMPOUND_EAGER_STATEMENTr’  r!   rÈ  rö   rn  Úofr“  rF  Úsplice_joinsÚstop_onÚselect_fromÚnon_generativerÿ  rØ  )r‘   Úunwrapped_order_byÚorder_by_col_exprÚinnerr7  r„   Úfrom_clauseÚ
eager_joins   `       r‚   r  z/ORMSelectCompileState._compound_eager_statementê  sN  ø€ ð
 Œ=ð 	&ð"ð "ð !œMð"ñ "ô "Ðõ !)Ô IØÔ$Ð&8ñ!ô !ÐÐð !#ÐØ!%Ðð '�Ô&ØÔ ØLÐLÐLÐLÐ+ÐLÑLÔLñMàÔØÔ ØÔ!ØÔØŒMð
ð Ô+ØÔ'Ô.Ø Ô1ÔBØ”nØ!Ô2ð
ð 
ð Ôð
ð 
ˆð  —’‘”ˆà×!Ò!Ñ#Ô#ˆå&9ÝÔ4°eÈð'
ñ '
ô '
ˆÔ#õ ”MØˆg˜Ô.Ñ.ð
ˆ	ð "&Ô!1ˆ	Ôð Ô Ð,ØÔ$Ô'Ð/à(,Ô(<ˆIÔ%àˆØÔ*×1Ò1Ñ3Ô3ð 	ð 	ˆJõ #Ô/Ø˜Z¨Ô);ñô ˆKˆKð 	Ô×,Ò,¨Y¸ÑDÔDÐDàð 	Ø-ˆIÔÔ-ØðàÔ,×=Ò=Ø&ñô ðð ð ð ð 	*ˆ	ÔÔ)¨)ÐJ°dÔ6IÐJÐJÐJÐJØÐr�   c           	     óz  —  | j         | j        | j        z   t          | j        ¦  «        t          | j                             ¦   «         ¦  «        z   | j        | j        | j	        | j
        f| j        | j        j        | j        j        | j        | j        dœ| j        ¤Ž}| j        r |j
        j        |g| j        ¢R Ž  |S )NrM  )rR  rõ   rö   r–   rÜ  r“  rF  rø  rú  r  rv  r¿  r”   rS  rT  r  r  rU  rØ  r\  )r‘   r„   s     r‚   r  z'ORMSelectCompileState._simple_statementE  sÖ   € Ø*�DÔ*ØÔ  4Ô#9Ñ9Ý�$Ô#Ñ$Ô$¥u¨TÔ-=×-DÒ-DÑ-FÔ-FÑ'GÔ'GÑGØÔ ØÔ!ØÔØŒMð
ð Ô+ØÔ'Ô.Ø Ô1ÔBØ”nØ!Ô2ð
ð 
ð Ôð
ð 
ˆ	ð Ôð 	OØ-ˆIÔÔ-¨iÐN¸$Ô:MÐNÐNÐNÐNØÐr�   c                ó6  — t          j        |||¬¦  «        }|r||_        |r||_        |r|xj        t          |¦  «        z  c_        |r |j        j        |g|¢R Ž  n|r|j                             |¦  «         |r|xj        t          |¦  «        z  c_        ||_	        ||_
        ||_        ||_        ||_        ||_        |r||_        |r||_        ||_        |r||_        |	r|	|_        |
r |j        j        |g|
¢R Ž  |� |j        j        |g|¢R Ž  |S )N)rr  rÛ  rn  )r:   Ú_create_raw_selectrø  rú  rù  r–   r  r\  rû  Ú_limit_clauseÚ_offset_clauseÚ_fetch_clauseÚ_fetch_clause_optionsÚ_independent_ctesÚ_independent_ctes_optsÚ	_prefixesÚ	_suffixesr¿  rS  rT  r  r  )r‘   Úraw_columnsr6  Úwhere_criteriaÚhaving_criteriar  rv  rN  rO  rP  r  r  Úlimit_clauseÚoffset_clauseÚfetch_clauseÚfetch_clause_optionsr  r  ÚprefixesÚsuffixesrý  Úindependent_ctesÚindependent_ctes_optsr„   s                           r‚   rR  z'ORMSelectCompileState._select_statementY  s©  € õ2 Ô-Ø$ØØ$ð
ñ 
ô 
ˆ	ð ð 	7Ø(6ˆIÔ%Øð 	9Ø)8ˆIÔ&àð 	;ØÐ'Ô'­5°©?¬?Ñ:Ð'Ô'àð 	9Ø-ˆIÔÔ-¨iÐF¸+ÐFÐFÐFÐFÐFØð 	9ØÔ×-Ò-¨iÑ8Ô8Ð8àð 	;ØÐ'Ô'­5°©?¬?Ñ:Ð'Ô'à".ˆ	ÔØ#0ˆ	Ô Ø".ˆ	ÔØ*>ˆ	Ô'Ø&6ˆ	Ô#Ø+@ˆ	Ô(àð 	+Ø"*ˆIÔàð 	+Ø"*ˆIÔà$.ˆ	Ô!àð 	%Ø$ˆIÔØð 	9Ø)8ˆIÔ&àð 	FØ.ˆIÔÔ.¨yÐE¸9ÐEÐEÐEÐEàÐ'Ø5ˆIÔ&Ô5ØðØ,ðð ð ð ð Ðr�   c                óh  — d|j         v r?|j         d         }| j                             |d ¦  «        }|r|                     |¦  «        S t	          |t
          j        ¦  «        r|}nt          |d¦  «        r|j        }nd S | j                             |d ¦  «        }|r|                     |¦  «        S d S )Nr#  rl  )	r  rï   r¬   Úadapt_clauser*  r&   Ú
FromClauser0  rl  )r‘   rk  ÚsearchrV  s       r‚   Ú_adapt_polymorphic_elementz0ORMSelectCompileState._adapt_polymorphic_element¦  sË   € Ø˜WÔ1Ð1Ð1ØÔ)¨.Ô9ˆFØÔ.×2Ò2°6¸4Ñ@Ô@ˆEØð 3Ø×)Ò)¨'Ñ2Ô2Ð2å�g�zÔ4Ñ5Ô5ð 	ØˆFˆFÝ�W˜gÑ&Ô&ð 	Ø”]ˆFˆFà�4àÔ*×.Ò.¨v°tÑ<Ô<ˆØð 	/Ø×%Ò% gÑ.Ô.Ð.ð	/ð 	/r�   c                ó(   ‡— ‰rˆfd„|D ¦   «         S |S )Nc                ó(   •— g | ]} ‰|d ¦  «        ‘ŒS r½  r€   )rŽ   Úor†  s     €r‚   r.  z9ORMSelectCompileState._adapt_col_list.<locals>.<listcomp>º  s%   ø€ Ð;Ð;Ð;°�O�O A tÑ,Ô,Ð;Ð;Ð;r�   r€   r„  s     `r‚   r‡  z%ORMSelectCompileState._adapt_col_list¸  s*   ø€ Øð 	Ø;Ð;Ð;Ð;°dÐ;Ñ;Ô;Ð;àˆKr�   c                ó´   ‡— g Š| j         r!‰                     d| j         j        f¦  «         | j        r‰                     d| j        f¦  «         ‰sd S ˆfd„}|S )NTFc                ó:   •— ˆfd„}t          j        | i |¦  «        S )Nc                óf   •— d| j         v pd| j         v }‰D ]\  }}|s|r || ¦  «        }|�|c S Œd S )NÚ
_orm_adaptr#  )r  )rK  Úis_orm_adaptÚalways_adaptr>  ÚeÚadapterss        €r‚   ÚreplacezRORMSelectCompileState._get_current_adapter.<locals>._adapt_clause.<locals>.replaceß  sn   ø€ à  DÔ$5Ð5ð ;Ø%¨Ô):Ð:ð ð .6ð %ð %Ñ)�L 'Ø#ð % |ð %Ø#˜G D™MœM˜Ø˜=Ø#$˜H˜H˜Høð	%ð %r�   )r(   Úreplacement_traverse)r  rQ  rˆ  r‡  s      €r‚   Ú_adapt_clausezAORMSelectCompileState._get_current_adapter.<locals>._adapt_clauseÛ  s3   ø€ ð	%ð 	%ð 	%ð 	%ð 	%õ Ô0°¸¸WÑEÔEÐEr�   )r€  rÿ   rˆ  rï   r|  )r‘   rŠ  r‡  s     @r‚   rŠ  z*ORMSelectCompileState._get_current_adapter¾  s—   ø€ ØˆàÔð 	ð �OŠOàØÔ(Ô0ðñô ð ð Ô%ð 	FØ�OŠO˜U DÔ$CÐDÑEÔEÐEàð 	Ø�4ð	Fð 	Fð 	Fð 	Fð 	Fð" Ðr�   c           
     ó¾  — |D �]Ø\  }}}}|d         }|d         }t          |¦  «        }|�t          |¦  «        }t          |t          j        ¦  «        r|�t	          j        d¦  «        ‚|}d }nd|j        v r|j        d         }|€+|j        s$t          |d¦  «        st	          j	        d¦  «        ‚d }	t          |t          j        ¦  «        ræt          |dd ¦  «        }	|€?|	r|	}n:|j        }	 |j        }n*# t          $ r}
t	          j	        d|z  ¦  «        |
‚d }
~
ww xY w|j        }|j        }t          |t          j        ¦  «        s|}|||j        f| j        v r�Œ[|�T||urP|j                             dd ¦  «        |ur3t	          j        d	|j                             d|¦  «        ›d
|›�¦  «        ‚n|�d }|}nd x}}|                      |||||||¦  «         �ŒÚd S )NÚisouterÚfullzUNo 'on clause' argument may be passed when joining to a relationship path as a targetr#  r  z9Expected mapped entity or selectable/table as join targetÚ_of_typez0Join target %s does not refer to a mapped entityzexplicit from clause z4 does not match left side of relationship attribute )r"   r*  r   ÚPropComparatorrh  r
  r  r  r0  r1  r	  rD  r‚  ÚAttributeErrorÚ_parententityr   ÚQueryableAttributer  Ú_already_joined_edgesr¬   Ú_join_left_to_right)r‘   ÚargsÚentities_collectionÚrightÚonclauseÚfrom_ÚflagsrŒ  r�  Úof_typeÚerrÚleftrY  s                r‚   r÷  zORMSelectCompileState._joinî  s¦  € Ø-1ð \	ñ \	Ñ)ˆE�8˜U EØ˜IÔ&ˆGØ˜”=ˆDå˜E‘N”NˆEØÐ#Ý" 8Ñ,Ô,�å˜%¥Ô!:Ñ;Ô;ð 
;ØÐ'Ý Ô4ð=ñô ð ð
 !�Ø��Ø 5Ô#5Ð5Ð5ØÔ*¨>Ô:�àÐØÔ*ð µ7¸5À(Ñ3KÔ3Kð Ý Ô.ð:ñô ð ð
 ˆGå˜(¥JÔ$=Ñ>Ô>ð 3#õ " (¨J¸Ñ=Ô=�à�=Øð 'Ø '˜˜à (Ô 1˜ð'Ø$)¤L˜E˜EøÝ-ð 'ð 'ð 'Ý"(Ô"6ð!0Ø27ñ!8ñ#ô #ð $'ð'øøøøð'øøøð  Ô-�àÔ(�Ý! (­JÔ,IÑJÔJð $Ø#�Hð ˜% ¤Ð*¨dÔ.HÐHÐHÙàÐ$à TÐ)Ð)Ø!Ô.×2Ò2°>À4ÑHÔHØ#ð$ð $õ %Ô8Ð8ð !&Ô 2× 6Ò 6°~ÀuÑ MÔ MÐ MÐ MØ ( ð	ñô ð øð Ð"Ø�Ø��ð #Ð"��tð ×$Ò$Ø#ØØØØØØñô ð ñ ði\	ð \	s   Ã/C7Ã7
DÄDÄDc           	     ót  — |€!|�J ‚|                       ||||¦  «        \  }}}	n|                      ||¦  «        \  }}	||u rt          j        d|›d|›d�¦  «        ‚|                      ||||¦  «        \  }
}}|
j        s|                      |
¦  «        }nd}|�M| j        |         }| j        d|…         t          ||||||¬¦  «        gz   | j        |dz   d…         z   | _        dS |	�+t          ||	         t          ¦  «        sJ ‚||	         j        }n|}| j        t          ||
||||¬¦  «        gz   | _        dS )zÆgiven raw "left", "right", "onclause" parameters consumed from
        a particular key within _join(), add a real ORMJoin object to
        our _from_obj list (or augment an existing one)

        NzCan't construct a join from z to z, they are the same entityr€   )rŒ  r�  Ú_extra_criteriar   )Ú"_join_determine_implicit_left_sideÚ_join_place_explicit_left_siderh  r
  Ú _join_check_and_adapt_right_sider  Ú_get_extra_criteriarÜ  r   r*  r+  r§   )r‘   r–  r�  r—  r˜  rY  Ú	outerjoinr�  Úreplace_from_obj_indexÚuse_entity_indexÚr_infoÚextra_criteriaÚleft_clauses                r‚   r”  z)ORMSelectCompileState._join_left_to_rightM  só  € ð  ˆ<ð �<�<�<ð
 ×7Ò7Ø# T¨5°(ñô ñ	ØØ&Ø Ð ð ×3Ò3Ð4GÈÑNÔNñØ&Ø ð �5ˆ=ˆ=ÝÔ,Ð,à)-¨¨¨u¨u¨uð6ñô ð ð #'×"GÒ"GØ�%˜ 4ñ#
ô #
Ñˆ��xð Ô#ð 	 Ø!×5Ò5°fÑ=Ô=ˆNˆNàˆNà!Ð-ð Ô+Ð,BÔCˆKð Ô!Ð"9Ð#9Ð"9Ô:åØ#ØØ Ø )Ø!Ø(6ðñ ô ð	ñ
ð Ô#Ð$:¸QÑ$>Ð$@Ð$@ÔAñBð ÔÐÐð   Ð+õ "Ø'Ð(8Ô9½=ñô ð ð ð ð 2Ð2BÔCÔN��à"�à $Ô 1ÝØØØØ%ØØ$2ðñ ô ð	5ñ 	!ˆDÔÐÐr�   c                ó’  — t          |¦  «        }dx}}| j        r‰t          j        | j        |j        |¦  «        }t          |¦  «        dk    r|d         }| j        |         }�n_t          |¦  «        dk    rt          j        d¦  «        ‚t          j        d|›d�¦  «        ‚|�r	i }	t          |¦  «        D ]Q\  }
}|j	        }|€Œt          |¦  «        }||u rŒ#t          |t          ¦  «        r|
|f|	|j        <   ŒEd|f|	|j        <   ŒRt          |	                     ¦   «         ¦  «        }t          j        ||j        |¦  «        }t          |¦  «        dk    r|	||d                           \  }}nSt          |¦  «        dk    rt          j        d¦  «        ‚t          j        d|›d�¦  «        ‚t          j        d¦  «        ‚|||fS )z­When join conditions don't express the left side explicitly,
        determine if an existing FROM or entity in this query
        can serve as the left hand side.

        Nr   r   a  Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zDon't know how to join to z«. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zgNo entities to join from; please use select_from() to establish the left entity/selectable of this join)r"   rÜ  rO  Úfind_left_clause_to_join_fromr§   r  rh  r
  Ú	enumerateÚentity_zero_or_selectabler*  r+  r  Úkeys)r‘   r–  r�  r—  r˜  r§  r¥  r¦  ÚindexesÚ	potentialÚentity_indexr-  r‚  Úent_infoÚall_clausess                  r‚   r   z8ORMSelectCompileState._join_determine_implicit_left_side°  sA  € õ& ˜‘”ˆà48Ð8ÐÐ!1àÔð O	õ Ô<ØÔ! 6Ô#4°hñô ˆGõ �7‰|Œ|˜qÒ Ð Ø)0°¬Ð&ØÔ(Ð)?Ô@�‘Ý�W‘” Ò!Ð!ÝÔ0ð5ñô ð õ Ô0Ð0ð
 9>¸¸ð	@ñô ð ð !ñ 2	ð ˆIÝ%.Ð/BÑ%CÔ%Cð Dð DÑ!�˜cØÔ6�Ø�>ØÝ" 6™?œ?�Ø˜vÐ%Ð%Øõ
 ˜c¥=Ñ1Ô1ð DØ1=¸vÐ0F�I˜cœnÑ-Ð-à6:¸F°^�I˜hÔ1Ñ2Ð2å˜yŸ~š~Ñ/Ô/Ñ0Ô0ˆKÝÔ<Ø˜VÔ.°ñô ˆGõ �7‰|Œ|˜qÒ Ð Ø)2°;¸wÀq¼zÔ3JÔ)KÑ&Ð  $ $Ý�W‘” Ò!Ð!ÝÔ0ð5ñô ð õ Ô0Ð0ð
 9>¸¸ð	@ñô ð õ Ô,ð1ñô ð ð Ð+Ð-=Ð=Ð=r�   c                óŒ  — dx}}t          |¦  «        }| j        rPt          j        | j        |j        ¦  «        }t          |¦  «        dk    rt          j        d¦  «        ‚|r|d         }|€U|rSt          |d¦  «        rCt          |¦  «        D ]3\  }}t          |t          ¦  «        r|                     |¦  «        r|} nŒ4||fS )zøWhen join conditions express a left side explicitly, determine
        where in our existing list of FROM clauses we should join towards,
        or if we need to make a new join, and if so is it from one of our
        existing entities.

        Nr   zrCan't identify which entity in which to assign the left side of this join.   Please use a more specific ON clause.r   r  )r"   rÜ  rO  Ú#find_left_clause_that_matches_givenr§   r  rh  r
  r0  r¬  r*  r+  Úcorresponds_to)	r‘   r–  r�  r¥  r¦  Úl_infor¯  Úidxr-  s	            r‚   r¡  z4ORMSelectCompileState._join_place_explicit_left_side  s  € ð2 59Ð8ÐÐ!1å˜‘”ˆØÔð 	4ÝÔBØÔ! 6Ô#4ñô ˆGõ �7‰|Œ|˜aÒÐÝÔ0ð!ñô ð ð ð 4Ø)0°¬Ð&ð #Ð*Ø#ð +å˜ Ñ)Ô)ð +õ &Ð&9Ñ:Ô:ð ð ‘��Sõ ˜c¥=Ñ1Ô1ð °c×6HÒ6HÈÑ6NÔ6Nð Ø'*Ð$Ø�Eøà%Ð'7Ð7Ð7r�   c           	     óÞ  — t          |¦  «        }t          |¦  «        }d}t          |dd¦  «        }|rp|j        st          |j        t
          j        ¦  «        rJ| j        p|j        gD ]:}	t          j
        |j        |	¦  «        rt          j
        |	|j        ¦  «        rd} nŒ;|r*|j        |j        u rt          j        d|j        z  ¦  «        ‚t          |dd¦  «        |j        t          |dd¦  «        }}
}|r6|r4|                     |j        ¦  «        st          j        d|›d|›�¦  «        ‚t          |d¦  «        r| xj        |fz  c_        d}|j        rÞ|r|j        }|
j        r#|                      ¦   «         }|� ||d¦  «        }n«|r©|
                     |j        ¦  «        s*t          j        d	|
j        ›d
|j        j        ›d�¦  «        ‚t          |
t
          j        ¦  «        r!t/          j        t2          j        |
¦  «        }
d}t7          ||
¦  «        }t9          j        d|z  dd¬¦  «         |o| o|}|s.|r,t7          |d¬¦  «        }d}t9          j        d|z  d¬¦  «         |rI|sJ ‚t?          t@          j!        t          |¦  «        |j"        ¬¦  «        }|  #                    ||¦  «         nK|j        sD|sB|j$        r;|  #                    |t?          t@          j%        ||j        |j"        ¬¦  «        ¦  «         t          |t
          j&        ¦  «        r"|                      ¦   «         }|r ||d¦  «        }|r| xj'        |||j(        ffz  c_'        t          |¦  «        ||fS )zútransform the "right" side of the join as well as the onclause
        according to polymorphic mapping translations, aliasing on the query
        or on the join, special cases where the right and left side have
        overlapping tables.

        Fr  NTz*Can't join table/selectable '%s' to itselfr2  zJoin target z9 does not correspond to the right side of join condition zSelectable 'z' is not derived from 'ú'zÕAn alias is being generated automatically against joined entity %s for raw clauseelement, which is deprecated and will be removed in a later release. Use the aliased() construct explicitly, see the linked example.z1.4Úxaj1)Úcode)Úflatz÷An alias is being generated automatically against joined entity %s due to overlapping tables.  This is a legacy pattern which may be deprecated in a later release.  Use the aliased(<entity>, flat=True) construct explicitly, see the linked example.Úxaj2r/  )r§   r1  ))r"   r	  Úwith_polymorphicr*  r3  r&   ÚJoinrÜ  r§   rO  Úselectables_overlaprh  r
  Úcommon_parentr  r0  rô  Úis_clause_elementÚ_is_lateralrŠ  Úis_derived_fromÚdescriptionrP   r%   rœ  r'   ÚFromClauseRoler   r$   Úwarn_deprecatedÚwarnr   r   Ú DEPRECATED_JOIN_ADAPT_RIGHT_SIDEr7  r5  Ú#_has_aliased_polymorphic_fromclauseÚ#WITH_POLYMORPHIC_ADAPTER_RIGHT_JOINÚClauseElementr“  r  )r‘   r�  r—  r˜  rY  r·  r§  ÚoverlapÚright_mapperr6  Úright_selectableÚright_is_aliasedÚneed_adapterr†  Úaliased_entityr>  s                   r‚   r¢  z6ORMSelectCompileState._join_check_and_adapt_right_side\  s—  € õ ˜‘”ˆÝ˜‘”ˆàˆå˜v x°Ñ6Ô6ˆð ð 	ØÔ)ð	å˜,Ô9½:¼?ÑKÔKð	ð !Ô-ÐD°&Ô2CÐ1Dð ð �ÝÔ/ØÔ% xñô ð åÔ2Ø˜fÔ/ñô ðð
 #�GØ�Eøàð 	�vÔ(¨FÔ,=Ð=Ð=ÝÔ,Ø<ØÔ#ñ$ñô ð õ �F˜H dÑ+Ô+ØÔÝ�FÐ.°Ñ6Ô6ð )9Ð&ˆð ð	àð	ð !×.Ò.¨t¬{Ñ;Ô;ð	õ
 Ô,Ð,à9>¸¸ÀÀðJñô ð õ �6˜8Ñ$Ô$ð 	-ØÐÔ F 9Ñ,ÐÔàˆð Ô#ð 2	Øð +Ø#œ{�àÔ+ð .ð #'×";Ò";Ñ"=Ô"=�Ø"Ð.ð ,˜O¨E°4Ñ8Ô8�Eøàð #ð (×7Ò7Ø Ô3ñô ð 	õ !Ô4Ð4ð -Ô8Ð8Ð8Ø(Ô;ÔGÐGÐGðñô ð õ Ð.µ
Ô0EÑFÔFð (Ý'0Ô'7ÝÔ,Ð.>ñ(ô (Ð$ð $(�Lõ % \Ð3CÑDÔD�åÔ$ðDð
 #ñ#ð Øð	ñ 	ô 	ð 	ð &ÐJÐ.>Ð*>ÐJÀ7ˆàð 	 ð 	õ ! ¨TÐ2Ñ2Ô2ˆEØˆLåŒIð@ð
 COñOð ðñ ô ð ð ð &	ð  ÐÐ�<å ÝÔ@Ý˜‘”Ø(Ô<ðñ ô ˆGð ×3Ò3°LÀ'ÑJÔJÐJÐJàÔ(ð	à$ð	ð Ô@ð	ð ×3Ò3ØÝÝ#ÔGØ Ø+Ô6Ø ,Ô @ð	ñ ô ñô ð õ �h¥
Ô 8Ñ9Ô9ð 	;Ø"×7Ò7Ñ9Ô9ˆOØð ;Ø*˜?¨8°TÑ:Ô:�ð ð 	EØÐ&Ô&¨D°%¸¼Ð+BÐ*DÑDÐ&Ô&å�u‰~Œ~˜u hÐ.Ð.r�   c                óà   — | j         j        | j         j        | j        | j        | j         j        | j         j        | j        pd | j         j        | j         j	        | j         j
        | j         j        dœS )N)rp  rq  r  r  rt  ru  rý  rr  rs  rv  rw  )r”   re  rf  r  r  rk  rl  rý  rg  rh  ri  rj  rž   s    r‚   rU  z"ORMSelectCompileState._select_args	  sp   € ð !Ô1Ô?Ø!Ô2ÔAØœØÔ+ØÔ-Ô7ØÔ-Ô7ØœÐ-¨Ø Ô1Ô?àÔ%Ô;à $Ô 5Ô GàÔ%Ô<ð
ð 
ð 	
r�   c                óð   — | j         }|                     d¦  «        d upX|                     d¦  «        d upA|                     dd¦  «        p+|                     dd¦  «        p|                     dd¦  «        S )Nrp  rq  r  Fr  r€   rý  )rU  r¬   )r‘   Úkwargss     r‚   r  z-ORMSelectCompileState._should_nest_selectable-	  s‚   € àÔ"ˆà�JŠJ�~Ñ&Ô&¨dÐ2ð -Ø�zŠz˜/Ñ*Ô*°$Ð6ð-à�zŠz˜* eÑ,Ô,ð-ð �zŠz˜-¨Ñ,Ô,ð-ð �zŠz˜* eÑ,Ô,ð	
r�   c                ó†   ‡ ‡— d‰j         f‰ j        v r.t          ˆˆ fd„‰ j        d‰j         f         D ¦   «         ¦  «        S dS )NÚadditional_entity_criteriac              3  óŒ   •K  — | ]>}|j         s	|j        ‰u ¯|                     ‰¦  «        ¯'|                     ‰¦  «        V — Œ?d S r‹   )Úinclude_aliasesr‚  Ú_should_includeÚ_resolve_where_criteria)rŽ   Úaer8  r‘   s     €€r‚   r’   z<ORMSelectCompileState._get_extra_criteria.<locals>.<genexpr>=	  ss   øè è € ð ð àð Ô&ðð
 +-¬)°xÐ*?Ð*?Ø×&Ò& tÑ,Ô,ð +@ð	 ×*Ò*¨8Ñ4Ô4ð +@Ð*?Ð*?Ð*?ðð r�   r€   )r  r¨   r–   )r‘   r8  s   ``r‚   r£  z)ORMSelectCompileState._get_extra_criteria8	  s{   øø€ à(ØŒOð
ð Ô#ð$ð $õ ð ð ð ð ð àÔ0Ø1°8´?ÐCôðñ ô ñ ô ð ð �2r�   c                ó~  — | j         D ]^}|j                             dd¦  «        }|r?|j        j        €d|j        f| j        v r#|| j        vr||j        r|j        ndf| j        |<   Œ_t          | j         
                    ¦   «         ¦  «        }|D ]­\  }}|| j        v rŒ|j        j        }| j        j        rg }n|                      |¦  «        }|�||fz  }|                      ¦   «         }|D ]O}|r|                     |¦  «        }|r#t#          j        |ddi¦  «        } ||d¦  «        }| xj        |fz  c_        ŒPŒ®dS )aà  Apply extra criteria filtering.

        For all distinct single-table-inheritance mappers represented in
        the columns clause of this query, as well as the "select from entity",
        add criterion to the WHERE
        clause of the given QueryContext such that only the appropriate
        subtypes are selected from the total results.

        Additionally, add WHERE criteria originating from LoaderCriteriaOptions
        associated with the global context.

        r#  NrØ  rƒ  TF)rÜ  r  r¬   r  Ú_single_table_criterionr¨   rw  r2  r2  rt  rF  rô  rð   rä   r£  rŠ  ÚtraverserO  Ú_deep_annotaterø  )	r‘   Ú
fromclauser8  r{  r>  Úsingle_critrØ  r†  ré  s	            r‚   r	  z0ORMSelectCompileState._adjust_for_extra_criteriaH	  s¶  € ð Ô+ð 	ð 	ˆJØ!Ô.×2Ò2°>À4ÑHÔHˆHð ðð ”OÔ;ÐGØ4°h´oÐFØÔ-ð.ð .ð  DÔ$@Ð@Ð@ð Ø)1Ô)BÐL�HÔ%Ð%Èð:�Ô,¨XÑ6øõ
 �TÔ1×8Ò8Ñ:Ô:Ñ;Ô;ˆà!'ð 	0ð 	0ÑˆH�gØ˜4Ô.Ð.Ð.Øà"œ/ÔAˆKàÔ#Ô6ð PØ-/Ð*Ð*à-1×-EÒ-EÀhÑ-OÔ-OÐ*àÐ&Ø*¨{¨nÑ<Ð*à"×7Ò7Ñ9Ô9ˆOØ2ð 0ð 0�Øð 2Ø"×+Ò+¨DÑ1Ô1�Dà"ð 8Ý#Ô2°4¸,ÈÐ9MÑNÔN�DØ*˜?¨4°Ñ7Ô7�DØÐ$Ô$¨¨Ñ/Ð$Ô$Ð$ð0ð	0ð 	0r�   )r„   r·   r°   r¸   r¹   r   rœ   r§  r‹   )0rq   rr   rs   r“  r“   r×  r€  rC  r�  r�  r‘  r’  r  r  rø  rú  rÎ   r¼   rä  rÝ  rB  r  r   r%  r)  rõ  r-  r  r<  r?  rB  r4  r  r  rR  r|  r‡  rŠ  r÷  r”  r   r¡  r¢  rD  rU  r  r£  r	  r€   r�   r‚   r§  r§  è  s¬  € € € € € àÐà$Ðà€OØ ÐàÐØ#ÐØÐØ!Ðà€IØÐØ€OØÐàðdð dð dñ „[ðdðL
5ð 
5ð 
5ðKð Kð KðZ ðð ñ „[ðð2 ð@ð @ñ „[ð@ð
 ð8ð 8ñ „[ð8ð ð
ð 
ñ „[ð
ð  ðð ñ „[ðð"+ð +ð +ðð ð ð8(ð (ð (ðð ð ð0ð 0ð 0ð#ð #ð #ð #ðð ð ð"Yð Yð Yðvð ð ð(Kð Kð KðZ/ð /ð /ð$ð ð ð.ð .ð .ð`]ð ]ð ]ð~að að aðFh>ð h>ð h>ðT@8ð @8ð @8ðD{/ð {/ð {/ðz ð
ð 
ñ „Xð
ð& ð
ð 
ñ „Xð
ðð ð ð 70ð 70ð 70ð 70ð 70r�   r§  FÚquery_or_select_stmtú#Union[Query, Select, FromStatement]rW   úOptional[ORMSelectCompileState]r  rò   rœ   úList[ORMColumnDescription]c                ó|   — |€t                                | |¬¦  «        }|}d„ d„ |j        D ¦   «         D ¦   «         }|S )N)r  c                óž   — g | ]J\  }}|j         |j        t          |d d¦  «        |j        |j        �|j        st          |dd¦  «        nddœ‘ŒKS )r2  FNr‚  )r  ÚtypeÚaliasedÚexprr‚  )Ú_label_namerê  r	  rì  r:  rÃ  )rŽ   r-  Úinsp_ents      r‚   r.  z(_column_descriptions.<locals>.<listcomp>Œ	  s‚   € ð 	ð 	ð 	ñ ˆC�ð ”OØ”HÝ˜xÐ);¸UÑCÔCØ”Hð ”?Ð.Ø Ô2ð /õ ˜ (¨DÑ1Ô1Ð1ð ð	
ð 	
ð	ð 	ð 	r�   c                ó    — g | ]}||j         f‘ŒS r€   ©r:  )rŽ   Ú_ents     r‚   r.  z(_column_descriptions.<locals>.<listcomp>™	  s-   € ð 
ð 
ð 
Ø)-ˆT�4Ô#Ð$ð
ð 
ð 
r�   )r§  rB  rî   )rä  rW   r  r   Úds        r‚   r  r  ‚	  sq   € ð
 ÐÝ-×IÒIØ ¨ð Jñ 
ô 
ˆð €Cð	ð 	ð
ð 
Ø14´ð
ñ 
ô 
ð	ñ 	ô 	€Að" €Hr�   Úquery_or_augmented_selectúUnion[Query[Any], Select[Any]]ú"Optional[_InternalEntityType[Any]]c                ó®   — | }|j         r|j        }|�|S |j        r,d|j        d         j        v r|j        d         j        d         S t	          |¦  «        S )Nr#  r   )rö  Ú_last_joined_entityrÛ  r  Ú_entity_from_pre_ent_zero)ró  r‘   r÷  s      r‚   Ú_legacy_filter_by_entity_zerorù   	  sj   € ð %€DØÔð 'Ø"Ô6ÐØÐ*Ø&Ð&à„~ð >˜.¨D¬N¸1Ô,=Ô,JÐJÐJØŒ~˜aÔ Ô-¨nÔ=Ð=å$ TÑ*Ô*Ð*r�   c                óÆ   — | }|j         sd S |j         d         }d|j        v r|j        d         S t          |t          ¦  «        r|j        S d|j        v r|j        d         S |S )Nr   r#  Úbundle)rr  r  r*  r   r‚  )ró  r‘   r-  s      r‚   rø  rø  ¯	  s~   € ð %€DØÔð Øˆtà
Ô
˜AÔ
€Cà˜Ô)Ð)Ð)ØÔ Ô/Ð/Ý	�CÕ-Ñ	.Ô	.ð ØŒzÐØ	�SÔ%Ð	%Ð	%ØÔ Ô)Ð)àˆ
r�   r  úTuple[_SetupJoinsElement, ...]r:  ú=Optional[Union[_InternalEntityType[Any], _JoinTargetElement]]c                ój   — | sd S | d         \  }}}}t          |t          j        ¦  «        r|j        S |S )Néÿÿÿÿ)r*  r   r’  r‚  )r  r:  Útargetr˜  r™  rš  s         r‚   r  r  Â	  sM   € ð ð Øˆtà'2°2¤Ñ$€VˆX�u˜eåØÝÔ%ñô ð ð Œ}Ðàˆr�   c                  ó‚   — e Zd ZU dZdZded<   dZdZdZded<   ded	<   d
ed<   ded<   dd„Z	dd„Z
d„ Zed„ ¦   «         ZdS )rp  z:represent an entity column returned within a Query result.r€   rò   Úsupports_single_entityFzOptional[str]rí  z!Union[Type[Any], TypeEngine[Any]]rê  z.Union[_InternalEntityType, ColumnElement[Any]]rì  zOptional[_InternalEntityType]r:  rW   rn   rœ   ÚNonec                ó   — t          ¦   «         ‚r‹   rÀ   ©r‘   rW   s     r‚   rx  z _QueryEntity.setup_compile_stateä	  rû   r�   r>  rF  c                ó   — t          ¦   «         ‚r‹   rÀ   ©r‘   rW   r>  s      r‚   r�  z._QueryEntity.setup_dml_returning_compile_stateç	  s   € õ
 "Ñ#Ô#Ð#r�   c                ó   — t          ¦   «         ‚r‹   rÀ   )r‘   r"  rÉ   s      r‚   Úrow_processorz_QueryEntity.row_processorî	  rû   r�   c                óZ  — t          |¦  «        D �]\  }}|j        r,|j        r|                      ||j        ||¦  «         Œ2|j        }|j        rÁ|j        r@d|j        v rt          ||||¦  «         Œct           
                    ||j        |||¦  «         Œ‡|j                             dd¦  «        rt          ||||¦  «         Œµ|j        r$t           
                    ||j        |||¦  «         Œàt           
                    ||g|||¦  «         �Œ|j        rt          |||¦  «         �Œ|S )Nr#  rû  F)r¬  Ú_is_lambda_elementÚ_is_sequencerq  Ú	_resolvedrÃ  r  r  r+  Ú_ColumnEntityÚ_for_columnsÚ_select_iterabler¬   Ú_BundleEntityÚ_is_clause_listÚ	is_bundle)r½   rW   r–  r–  rd  r¸  r‚  s          r‚   rq  z_QueryEntity.to_compile_stateñ	  sº  € õ % XÑ.Ô.ð 9	Jñ 9	J‰KˆC�ØÔ(ð 
.ØÔ&ð 	.Ø×(Ò(Ø%ØÔ(Ø+Ø+ñ	ô ð ð à#Ô-�FàÔ'ð ,JØÔ'ð )Ø%¨Ô)<Ð<Ð<Ý%Ø)Ø"Ø/Ø/ñ	ô ð ð õ &×2Ò2Ø)Ø"Ô3Ø/ØØ/ñô ð ð ð Ô*×.Ò.¨x¸Ñ?Ô?ð Ý%Ø)Ø"Ø/Ø/ñ	ô ð ð ð  Ô/ð õ &×2Ò2Ø)Ø"Ô3Ø/ØØ/ñô ð ð õ &×2Ò2Ø)Ø#˜HØ/ØØ/ñô ð ñ ð Ô!ð JÝ˜m¨VÐ5HÑIÔIÐIùà"Ð"r�   N)rW   rn   rœ   r  ©rW   rn   r>  rF  rœ   r  )rq   rr   rs   rØ   r    r¡   Ú_non_hashable_valueÚ_null_column_typeÚuse_id_for_hashrx  r�  r	  rÎ   rq  r€   r�   r‚   rp  rp  Ô	  sÀ   € € € € € € ØDÐDà€Ià Ð Ð Ñ àÐØÐØ€OàÐÐÑØ+Ð+Ð+Ñ+Ø8Ð8Ð8Ñ8Ø.Ð.Ð.Ñ.ð$ð $ð $ð $ð$ð $ð $ð $ð$ð $ð $ð ð>#ð >#ñ „[ð>#ð >#ð >#r�   rp  c                  ó²   — e Zd ZU dZdZded<   ded<   ded<   ded	<   d
ed<   ded<   d„ ZdZdZdZ	e
d„ ¦   «         Ze
d„ ¦   «         Zd„ Zd„ Zd„ Zdd„Zd„ ZdS )r+  z mapper/class/AliasedClass entity)
rì  r  r:  r2  ÚpathÚ_extra_entitiesrí  r<  r§   Ú_polymorphic_discriminatorr?   rì  zMapper[Any]r  r:  rò   r2  r   r  Ústrrí  c                ó  — |                      | ¦  «         |r|j        €| |_        d|_        d|_        |j        d         }|j         |x}| _        |j        }|| _        |j	        x| _	        }| j        f| _
        |j        r|j        | _        n|j        j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        r|                     || j        ¦  «         d S d S )NTr#  )rÿ   rñ   rC  r�  r  Ú_post_inspectr:  r‚  rì  r  r  r2  r  rí  Úclass_rq   rë   r  r§   Úwith_polymorphic_mappersr<  Úpolymorphic_onr  Ú _should_select_with_poly_adapterr:  )r‘   rW   r‚  r–  rd  r8  r  s          r‚   r›   z_MapperEntity.__init__J
  s$  € ð 	×"Ò" 4Ñ(Ô(Ð(Øð 	3ØÔ,Ð4Ø04�Ô-Ø15ˆMÔ.Ø.2ˆMÔ+àÔ$ ^Ô4ˆØÔÐØ&,Ð,ˆ�4Ô#Ø”ˆàˆŒ	Ø'œÐ.ˆŒ�fà $¤	˜|ˆÔàÔ$ð 	6Ø'œ}ˆDÔÐà%œ}Ô5ˆDÔà (Ô 9ˆÔØÔ+ˆŒ	à"Ô-ˆŒØ)1Ô)JˆÔ&Ø*2Ô*AˆÔ'àÔ2ð 	Ø×:Ò:Ø˜$œ/ñô ð ð ð ð	ð 	r�   Tc                ó   — | j         j        S r‹   )r  r  rž   s    r‚   rê  z_MapperEntity.typet
  s   € àŒ{Ô!Ð!r�   c                ó   — | j         S r‹   rð  rž   s    r‚   r­  z'_MapperEntity.entity_zero_or_selectablex
  s   € àÔÐr�   c                ó,   — t          | j        |¦  «        S r‹   )r   r:  ©r‘   r‚  s     r‚   r¶  z_MapperEntity.corresponds_to|
  s   € Ý% dÔ&6¸Ñ?Ô?Ð?r�   c                óÜ   — d }| j         s(|j        r |j                             | j        d ¦  «        }n| j        j        }|r%|j        r|                     |j        ¦  «        }n
|}n|j        }|S r‹   )r2  rï   r¬   r  r:  r2  r€  Úwrap)r‘   rW   r>  Úrets       r‚   Ú_get_entity_clausesz!_MapperEntity._get_entity_clauses
  s‡   € ØˆàÔ$ð 	0ØÔ2ð Ø'Ô=×AÒAØ”K ñô �øð Ô&Ô/ˆGàð 	0ØÔ,ð Ø—l’l =Ô#@ÑAÔA��à��àÔ/ˆCàˆ
r�   c                óL  — |j         }|                      |¦  «        }|j        r|r|                     |j        ¦  «        }n	|s|j        }|j        | u r|j        j        }|j        }nd x}}t          j	        | | j
        ||| j        |||| j        ¬¦	  «	        }|| j        | j        fS )N)Úonly_load_propsrc   Úpolymorphic_discriminator)rW   r*  r’  r(  rñ   rð   râ   rc   r   Ú_instance_processorr  r  r  rí  r  )r‘   r"  rÉ   rW   r>  r,  rc   Ú	_instances           r‚   r	  z_MapperEntity.row_processor”
  sÐ   € ØÔ-ˆØ×*Ò*¨=Ñ9Ô9ˆàÔ/ð 	;°Gð 	;Ø—l’l =Ô#GÑHÔHˆGˆGØð 	;Ø#Ô:ˆGàÔ(¨DÐ0Ð0Ø+Ô;ÔLˆOØ#Ô1ˆMˆMà.2Ð2ˆO˜måÔ/ØØŒKØØØŒIØØ+Ø'Ø&*Ô&Eð

ñ 

ô 

ˆ	ð ˜$Ô*¨DÔ,@Ð@Ð@r�   rW   rn   r>  rF  rœ   r  c                ó†   — t          j        || j        | | j        ||j        | j        |j        j        | j        ¬¦	  «	         d S )N©r¿  r,  r-  )	r   Ú_setup_entity_queryr  r  rõ   r<  rð   râ   r  r  s      r‚   r�  z/_MapperEntity.setup_dml_returning_compile_state±
  sV   € õ
 	Ô#ØØŒKØØŒIØØÔ)Ø!Ô;Ø)Ô9ÔJØ&*Ô&Eð
	
ñ 
	
ô 
	
ð 
	
ð 
	
ð 
	
r�   c                ól  — |                       |¦  «        }| j        j        }|€d| j        f|j        v r!| j        }||j        r|j        nd f|j        |<   t          j	        || j        | | j
        ||j        | j        |j        j        | j        ¬¦	  «	         |j                             | j        ¦  «         d S )NrØ  r1  )r*  r  rß  r¨   r:  r2  r2  rw  r   r2  r  rõ   r<  rð   râ   r  ru  rÿ   r§   )r‘   rW   r>  Úsingle_table_critr8  s        r‚   rx  z!_MapperEntity.setup_compile_stateÂ
  sÚ   € Ø×*Ò*¨=Ñ9Ô9ˆà œKÔ?ÐàÐ)Ø,¨d¬kÐ:ØÔ.ð/ð /ð Ô'ˆHàØ%-Ô%>ÐH�Ô!Ð!ÀDð?ˆMÔ1°(Ñ;õ
 	Ô#ØØŒKØØŒIØØÔ)Ø!Ô;Ø)Ô9ÔJØ&*Ô&Eð
	
ñ 
	
ô 
	
ð 
	
ð 	Ô,×3Ò3°D´OÑDÔDÐDÐDÐDr�   Nr  )rq   rr   rs   rØ   r    r¡   r›   r  r  r  rD  rê  r­  r¶  r*  r	  r�  rx  r€   r�   r‚   r+  r+  3
  s  € € € € € € Ø*Ð*ð€Ið ÐÐÑØÐÐÑØ$Ð$Ð$Ñ$ØÐÐÑØÐÐÑØÐÐÑð#ð #ð #ðJ "ÐàÐØ€Oàð"ð "ñ „Xð"ð ð ð  ñ „Xð ð@ð @ð @ðð ð ð*Að Að Að:
ð 
ð 
ð 
ð"Eð Eð Eð Eð Er�   r+  c                  ó¼   — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   ded<   ded<   	 	 dd„Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
ed„ ¦   «         Zd„ Zdd„Zd„ ZdS ) r  r€   )rû  rì  rê  rí  rî   r  rí   rî   r   rû  z	Type[Any]rê  r  rí  rò   r  rì  TNc           	     ó‚  — d|_         |j        d         }|r|j                             | ¦  «         n|                     | ¦  «         t	          |t
          j        t          j        f¦  «        r| 	                    ¦   «         }n|}|x| _
        | _        t          |¦  «        | _        |j        | _        g | _        |rs|j        D ]k}d|j        v rt!          ||||| ¬¦  «         Œ t	          |t"          ¦  «        rt!          ||||| ¬¦  «         ŒJt$                               ||g|d || ¬¦  «         Œl| j
        j        | _        d S )NTrû  ©Úparent_bundle)r�  r  rî   rÿ   r*  r   r’  r   r�  r$  rû  rì  rê  r  rí  Úexprsr  r   Ú_ORMColumnEntityr  Úsingle_entityr  )r‘   rW   rì  r–  rd  Úsetup_entitiesr8  rû  s           r‚   r›   z_BundleEntity.__init__ò
  s•  € ð +/ˆÔ'àÔ  Ô*ˆØð 	-ØÔ#×*Ò*¨4Ñ0Ô0Ð0Ð0à×&Ò& tÑ,Ô,Ð,åØ•:Ô0µ*Ô2KÐLñ
ô 
ð 	ð ×,Ò,Ñ.Ô.ˆFˆFàˆFà"(Ð(ˆŒ�d”iÝ˜‘L”LˆŒ	Ø!œ;ˆÔØˆŒàð 	Øœð ð �Ø˜tÔ0Ð0Ð0Ý!Ø%ØØ+Ø+Ø&*ðñ ô ð ð õ   ¥fÑ-Ô-ð Ý!Ø%ØØ+Ø+Ø&*ðñ ô ð ð õ %×1Ò1Ø%Ø˜Ø+ØØ+Ø&*ð 2ñ ô ð ð ð '+¤kÔ&?ˆÔ#Ð#Ð#r�   c                ó&   — | j         }|�|j        S d S r‹   )r:  r  )r‘   r  s     r‚   r  z_BundleEntity.mapper-  s   € àÔ ˆØÐØ”<Ðà�4r�   c                ó4   — | j         D ]}|j        }|�|c S Œd S r‹   )rî   r:  ©r‘   r-  r  s      r‚   r:  z_BundleEntity.entity_zero5  s5   € à”>ð 	ð 	ˆCØ”OˆEØÐ Ø���ð !ð �4r�   c                ó   — dS rê  r€   r&  s     r‚   r¶  z_BundleEntity.corresponds_to>  s	   € ð ˆur�   c                ó4   — | j         D ]}|j        }|�|c S Œd S r‹   )rî   r­  r?  s      r‚   r­  z'_BundleEntity.entity_zero_or_selectableC  s6   € à”>ð 	ð 	ˆCØÔ1ˆEØÐ Ø���ð !ð �4r�   c                óD   — | j         D ]}|                     |¦  «         Œd S r‹   )rî   rx  )r‘   rW   r-  s      r‚   rx  z!_BundleEntity.setup_compile_stateL  s4   € Ø”>ð 	3ð 	3ˆCØ×#Ò# MÑ2Ô2Ð2Ð2ð	3ð 	3r�   rW   rn   r>  rF  rœ   r  c                ó,   — |                       |¦  «        S r‹   ©rx  r  s      r‚   r�  z/_BundleEntity.setup_dml_returning_compile_stateP  ó   € ð
 ×'Ò'¨Ñ6Ô6Ð6r�   c                ó¤   ‡‡— t          ˆˆfd„| j        D ¦   «         Ž \  }}}| j                             ‰j        ||¦  «        }|| j        | j        fS )Nc                ó<   •— g | ]}|                      ‰‰¦  «        ‘ŒS r€   )r	  )rŽ   r-  r"  rÉ   s     €€r‚   r.  z/_BundleEntity.row_processor.<locals>.<listcomp>Y  s)   ø€ ÐKÐKÐK°Sˆc×Ò ¨Ñ0Ô0ÐKÐKÐKr�   )r—   rî   rû  Úcreate_row_processorrX   rí  r  )r‘   r"  rÉ   ÚprocsÚlabelsÚextraÚprocs    ``    r‚   r	  z_BundleEntity.row_processorW  sa   øø€ Ý"ØKÐKÐKÐKÐK¸D¼NÐKÑKÔKð 
Ñˆˆv�uð Œ{×/Ò/°´¸uÀfÑMÔMˆà�TÔ% tÔ';Ð;Ð;r�   rç  r  )rq   rr   rs   r  r    r¡   r›   rD  r  r:  r¶  r­  rx  r�  r	  r€   r�   r‚   r  r  ß
  s  € € € € € € Ø€Oð€Ið "Ð!Ð!Ñ!Ø€N€N�NØ€O€O�OØÐÐÑØ Ð Ð Ñ Ø€L€L�Lð Øð9@ð 9@ð 9@ð 9@ðv ðð ñ „Xðð ðð ñ „Xððð ð ð
 ðð ñ „Xðð3ð 3ð 3ð7ð 7ð 7ð 7ð<ð <ð <ð <ð <r�   r  c                  ót   — e Zd ZdZe	 dd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
dS )	r  )Ú_fetch_columnÚ_row_processorÚraw_column_indexÚtranslate_raw_columnNc           
     óþ   — |D ]y}|j         }d|v r	|d         }	nt          j        |d¦  «        }	|	r7d|j         v rt          ||||	|||¬¦  «         ŒMt	          ||||	|||¬¦  «         Œdt          ||||||¬¦  «         Œzd S )Nr#  ri   r7  )r  rO  Úextract_first_column_annotationÚ_IdentityTokenEntityr:  Ú_RawColumnEntity)
r½   rW   rG  r–  rP  rd  r8  Úcolumnr   Ú_entitys
             r‚   r  z_ColumnEntity._for_columnsi  sÿ   € ð ð &	ð &	ˆFØ Ô-ˆKØ Ð,Ð,Ø% nÔ5��å"ÔBØ˜Nñô �ð ð Ø# vÔ':Ð:Ð:Ý(Ø%ØØ+ØØ(Ø+Ø&3ðñ ô ð ð õ %Ø%ØØ+ØØ(Ø+Ø&3ðñ ô ð ð õ !Ø!ØØ'Ø$Ø'Ø"/ðñ ô ð ð ð?&	ð &	r�   c                ó   — | j         j        S r‹   )rV  rê  rž   s    r‚   rê  z_ColumnEntity.type›  s   € àŒ{ÔÐr�   c                ó&   — | j         j        j         S r‹   )rV  rê  Úhashablerž   s    r‚   r  z!_ColumnEntity._non_hashable_valueŸ  s   € à”;Ô#Ô,Ð,Ð,r�   c                ó$   — | j         j        j        S r‹   )rV  rê  Ú_isnullrž   s    r‚   r  z_ColumnEntity._null_column_type£  s   € àŒ{ÔÔ'Ð'r�   c                ó  — |j         }| j        �2| j        \  }}}| j        r||j        j        | j                 fz  }|||fS | j        �| j        }n;| j        }|j        r|j        j	        |         }|j
        r|                     ¦   «         }|j        r|j        j	        |         }|                     |¦  «        }|| j        | j        f}|| _        | j        r*| j        |j        j        | j                 fz   }|| j        |fS |S r‹   )rW   rO  rQ  rX   rr  rP  rN  rV  r€  rG  r  Ú_deannotater’  Ú_getterrí  r  )	r‘   r"  rÉ   rW   ÚgetterÚ
label_nameÚextra_entitiesrV  r)  s	            r‚   r	  z_ColumnEntity.row_processor§  sB  € ØÔ-ˆð ÔÐ*Ø15Ô1DÑ.ˆF�J ØÔ(ð ØØ”MÔ.¨tÔ/DÔEð#ñ �ð ˜: ~Ð5Ð5ð ÔÐ)ØÔ'ˆFˆFð ”[ˆFð Ô,ð GØ&Ô6Ô>¸vÔF�àÔ"ð .ð  ×+Ò+Ñ-Ô-�àÔ/ð 	JØ"Ô9ÔAÀ&ÔIˆFà—’ Ñ'Ô'ˆØ�dÔ&¨Ô(<Ð<ˆØ!ˆÔàÔ$ð 	Ø!Ô1Ø”Ô*¨4Ô+@ÔAð5ñ ˆNð ˜4Ô+¨^Ð;Ð;àˆJr�   r‹   )rq   rr   rs   r    rÎ   r  rD  rê  r  r  r	  r€   r�   r‚   r  r  a  s¡   € € € € € ð€Ið ð ð/ð /ð /ñ „[ð/ðb ð ð  ñ „Xð ð ð-ð -ñ „Xð-ð ð(ð (ñ „Xð(ð0ð 0ð 0ð 0ð 0r�   r  c                  ó<   — e Zd ZdZdZdZdZ	 dd„Zd„ Zdd„Z	d„ Z
dS )rU  NF)rì  rV  rí  r­  r  c                óØ  — || _         || _        |d u| _        |j        r|xj        ddiz  c_        |r|j        rd | _        n)|r|j        | _        n|                     |¦  «        | _        |r|j	         
                    | ¦  «         n| 
                    | ¦  «         || _        | j        j        r| j        j        d         nd | _        | j         | j        f| _        d x| _        | _        d S )Nræ   Tr   )rì  rP  rQ  ræ   rð   Ú_is_text_clauserí  Ú
_proxy_keyrô   rî   rÿ   rV  r¯  r­  r  rN  rO  )r‘   rW   rV  r–  rP  rd  r8  s          r‚   r›   z_RawColumnEntity.__init__ç  s  € ð ˆŒ	Ø 0ˆÔØ$4¸DÐ$@ˆÔ!àŒ?ð 	@ØÐ)Ô)¨j¸$Ð-?Ñ?Ð)Ô)à"ð 	K fÔ&<ð 	KØ#ˆDÔÐàð KØ#)Ô#4�Ô Ð à#0×#BÒ#BÀ6Ñ#JÔ#J�Ô àð 	-ØÔ#×*Ò*¨4Ñ0Ô0Ð0Ð0à×&Ò& tÑ,Ô,Ð,àˆŒà,0¬KÔ,EÐOˆDŒKÔ% aÔ(Ð(È4ð 	Ô&ð !%¤	¨4¬;Ð7ˆÔØ37Ð7ˆÔ˜TÔ0Ð0Ð0r�   c                ó   — dS rê  r€   r&  s     r‚   r¶  z_RawColumnEntity.corresponds_to  s   € Øˆur�   rW   rn   r>  rF  rœ   r  c                ó,   — |                       |¦  «        S r‹   rD  r  s      r‚   r�  z2_RawColumnEntity.setup_dml_returning_compile_state  rE  r�   c                ó  — |                      ¦   «         }|r || j        d¦  «        }|€d S n| j        }|j        r|                     ¦   «         }|j                             |¦  «         |j                             |¦  «         || _        d S rê  )	rŠ  rV  r  r^  r÷   rþ   rõ   rÿ   rN  )r‘   rW   r†  rV  s       r‚   rx  z$_RawColumnEntity.setup_compile_state  s    € Ø'×<Ò<Ñ>Ô>ˆØð 	!Ø$�_ T¤[°%Ñ8Ô8ˆFØˆ~Ø�ð ð ”[ˆFàÔð 	*ð ×'Ò'Ñ)Ô)ˆFàÔ$×(Ò(¨Ñ0Ô0Ð0ØÔ%×,Ò,¨VÑ4Ô4Ð4Ø#ˆÔÐÐr�   r‹   r  )rq   rr   rs   r:  r  r  r    r›   r¶  r�  rx  r€   r�   r‚   rU  rU  Ú  sw   € € € € € Ø€KØ€FØ"Ðð€Ið ð"8ð "8ð "8ð "8ðHð ð ð7ð 7ð 7ð 7ð$ð $ð $ð $ð $r�   rU  c                  ó8   — e Zd ZdZdZdZ	 dd„Zd„ Zdd„Zd„ Z	dS )r:  zColumn/expression based entity.F)rì  r  rV  rí  r­  r:  r  Nc                ó˜  — |j         }|}	 |j        dd ¦  «        }
 |j        d|	¦  «        }|
r"t          |j        |
¦  «        | _        d| _        n|| _        |d u| _        || _        |r0|r|
r|
n|j        | _        n$| 	                    ||
¬¦  «        | _        nd | _        |	j
         |	x| _        x| _        }|	j        x| _        }|r|j                             | ¦  «         n|                     | ¦  «         d|_        || _        d x| _        | _        | j        | j        f| _        |j        r|                     ||j        ¦  «         d S d S )NÚ	proxy_keyÚproxy_ownerF)r  T)r  r¬   r	  r‚  rì  rQ  rP  rf  rí  rô   r  r:  r­  r  rî   rÿ   r�  rV  rN  rO  r  r"  r:  r§   )r‘   rW   rV  r–  r#  rP  rd  r8  r   rW  Úorm_keyrm  r  r  s                 r‚   r›   z_ORMColumnEntity.__init__7  s§  € ð Ô)ˆàˆð "�+”/ +¨tÑ4Ô4ˆØ%�k”o m°WÑ=Ô=ˆØð 
	EÝ Ô 2°GÑ<Ô<ˆDŒIØ(-ˆDÔ%Ð%ð ˆDŒIØ(8ÀÐ(DˆDÔ%à 0ˆÔàð 	$Øð Ø.5Ð#L 7 7¸6Ô;L�Ô Ð à#0×#BÒ#BØ Wð $Cñ $ô $�Ô Ð ð  $ˆDÔàÔÐØDKÐKˆÔÐK˜4Ô9¸EØ&œ~Ð-ˆŒ�fàð 	-ØÔ#×*Ò*¨4Ñ0Ô0Ð0Ð0à×&Ò& tÑ,Ô,Ð,à*.ˆÔ'àˆŒà37Ð7ˆÔ˜TÔ0à $¤	¨4¬;Ð7ˆÔàÔ2ð 	Ø×:Ò:Ø�uÔ'ñô ð ð ð ð	ð 	r�   c                ó�   — t          |¦  «        r	|| j        u S t          | j        ¦  «         o|                     | j        ¦  «        S r‹   )r   r:  rÂ  r&  s     r‚   r¶  z_ORMColumnEntity.corresponds_toz  sV   € Ý˜VÑ$Ô$ð 	9à˜TÔ-Ð-Ð-å(ØÔ ñô ð ð 9à×&Ò& tÔ'7Ñ8Ô8ð9r�   rW   rn   r>  rF  rœ   r  c                ó°   — | j         | _         || j         d¦  «        }|�6|j                             |¦  «         |j                             |¦  «         d S d S rê  )rV  rN  r÷   rþ   rõ   rÿ   )r‘   rW   r>  rV  s       r‚   r�  z2_ORMColumnEntity.setup_dml_returning_compile_stateƒ  sc   € ð
 "œ[ˆÔØ�˜œ eÑ,Ô,ˆØÐØÔ(×,Ò,¨VÑ4Ô4Ð4ØÔ)×0Ò0°Ñ8Ô8Ð8Ð8Ð8ð Ðr�   c                óx  — |                      ¦   «         }|r+ || j        d¦  «        }|€|j        sJ ‚| j        | _        d S n| j        }| j        }| j        j        }|€d| j        f|j        v r||j        r|j	        nd f|j
        |<   |j        r|j        s|                     ¦   «         }t          | j        j        ¦  «                             |j        j        ¦  «        r|j                             |j        ¦  «         |j                             |¦  «         |j                             |¦  «         || _        d S )NFrØ  )rŠ  rV  rÍ   rN  r:  r  rß  r¨   r2  r2  rw  r  Ú_expression_labelr^  rt  r¯  Úintersectionr§   ru  rÿ   r÷   rþ   rõ   )r‘   rW   r†  rV  r  r4  s         r‚   rx  z$_ORMColumnEntity.setup_compile_stateŽ  sj  € Ø'×<Ò<Ñ>Ô>ˆØð 	!Ø$�_ T¤[°%Ñ8Ô8ˆFØˆ~Ø$Ô5Ð5Ð5Ð5Ø%)¤[�Ô"Ø�ð ð
 ”[ˆFàÔ ˆà œKÔ?ÐàÐ)Ø,¨d¬kÐ:ØÔ.ð/ð /ð Ø"'Ô"8ÐB�”�¸dð<ˆMÔ1°%Ñ8ð
 Ôð 	* vÔ'?ð 	*ð ×'Ò'Ñ)Ô)ˆFõ ˆtŒ{Ô(Ñ)Ô)×6Ò6ØÔÔ*ñ
ô 
ð 	Jð Ô0×7Ò7¸Ô8HÑIÔIÐIàÔ$×(Ò(¨Ñ0Ô0Ð0ØÔ%×,Ò,¨VÑ4Ô4Ð4Ø#ˆÔÐÐr�   r‹   r  )
rq   rr   rs   rØ   r  r    r›   r¶  r�  rx  r€   r�   r‚   r:  r:  (  sw   € € € € € Ø)Ð)à"Ðð€Ið$ ðAð Að Að AðF9ð 9ð 9ð	9ð 	9ð 	9ð 	9ð)$ð )$ð )$ð )$ð )$r�   r:  c                  ó   — e Zd ZdZd„ Zd„ ZdS )rT  Fc                ó   — d S r‹   r€   r  s     r‚   rx  z(_IdentityTokenEntity.setup_compile_state½  s   € Øˆr�   c                ó,   ‡— ˆfd„}|| j         | j        fS )Nc                ó   •— ‰j         j        S r‹   )r[   ry   )Úrowr"  s    €r‚   r`  z2_IdentityTokenEntity.row_processor.<locals>.getterÁ  s   ø€ ØÔ'Ô7Ð7r�   )rí  r  )r‘   r"  rÉ   r`  s    `  r‚   r	  z"_IdentityTokenEntity.row_processorÀ  s1   ø€ ð	8ð 	8ð 	8ð 	8ð 	8ð �tÔ'¨Ô)=Ð=Ð=r�   N)rq   rr   rs   rQ  rx  r	  r€   r�   r‚   rT  rT  º  s8   € € € € € Ø Ððð ð ð>ð >ð >ð >ð >r�   rT  rê  )rä  rå  rW   ræ  r  rò   rœ   rç  )ró  rô  rœ   rõ  r‹   )r  rü  r:  rõ  rœ   rý  )Ú
__future__r   r±  Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   Ú r   r   r   Úbaser   r   r   Úpath_registryr   r$   r   r   r   r   r   r   r   r    rh  r!   r"   r#   r%   r&   r'   rO  r(   Úsql._typingr)   r*   r+   r,   Úsql.baser-   r.   r/   r0   r1   r2   Úsql.dmlr3   Úsql.elementsr4   r5   Úsql.selectabler6   r7   r8   r9   r:   r;   r<   r=   Úsql.visitorsr>   Ú_typingr?   r@   rA   r  rB   rX   rC   r^   rD   rE   ÚenginerF   Úengine.interfacesrG   rH   Úsql.compilerrI   rJ   rK   rL   rM   rN   rO   rP   Úsql.type_apirQ   rR   Úrootrë   rÓ  r“   rÕ  rU   r  r¤   rÒ   rn   rF  Ú
plugin_forr]  r^  rÇ  r§  r  rù  rø  r  rp  r+  r  r  rU  r:  rT  r€   r�   r‚   ú<module>r‹     sù	  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø )Ð )Ð )Ð )Ð )Ð )Ø %Ð %Ð %Ð %Ð %Ð %Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø :Ð :Ð :Ð :Ð :Ð :Ø -Ð -Ð -Ð -Ð -Ð -Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ø (Ð (Ð (Ð (Ð (Ð (Ø -Ð -Ð -Ð -Ð -Ð -Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,àð *Ø,Ð,Ð,Ð,Ð,Ð,Ø3Ð3Ð3Ð3Ð3Ð3Ø!Ð!Ð!Ð!Ð!Ð!ØÐÐÐÐÐØÐÐÐÐÐØ'Ð'Ð'Ð'Ð'Ð'Ø Ð Ð Ð Ð Ð ØÐÐÐÐÐØ<Ð<Ð<Ð<Ð<Ð<Ø4Ð4Ð4Ð4Ð4Ð4Ø*Ð*Ð*Ð*Ð*Ð*Ø*Ð*Ð*Ð*Ð*Ð*Ø,Ð,Ð,Ð,Ð,Ð,Ø3Ð3Ð3Ð3Ð3Ð3Ø9Ð9Ð9Ð9Ð9Ð9Ø3Ð3Ð3Ð3Ð3Ð3Ø6Ð6Ð6Ð6Ð6Ð6Ø+Ð+Ð+Ð+Ð+Ð+Ø)Ð)Ð)Ð)Ð)Ð)à€WˆT˜ÐÑÔ€ØÔ"€à ˆdÔ Ñ"Ô"€ð *Ô@Ð ðp.ð p.ð p.ð p.ð p.ñ p.ô p.ð p.ðf ,˜Ô+Ø'¨Ð.ñô Ð ð
i$ð i$ð i$ð i$ð i$˜lñ i$ô i$ð i$ðX*ð *ð *ð *ð *Ð#:ñ *ô *ð *ðZW
ð W
ð W
ð W
ð W
Ð-ñ W
ô W
ð W
ðt(>ð (>ð (>ð (>ð (>ñ (>ô (>ð (>ðV „Ô×!Ò! %Ð)=Ñ>Ô>ðiDð iDð iDð iDð iD ?ñ iDô iDñ ?Ô>ðiDðXuPð uPð uPð uPð uP�N JÐ0@ÀÔ0Eñ uPô uPð uPðp „Ô×!Ò! %Ð):Ñ;Ô;ð	ð 	ð 	ð 	ð 	Ø Ð"5ñ	ô 	ñ <Ô;ð	ð „Ô×!Ò! %¨Ñ2Ô2ðV0ð V0ð V0ð V0ð V0˜O¨[ñ V0ô V0ñ 3Ô2ðV0ðv, 6:Øðð ð ð ð ð<+ð +ð +ð +ðð ð ð ð* 7;ðð ð ð ð ð$\#ð \#ð \#ð \#ð \#ñ \#ô \#ð \#ð~iEð iEð iEð iEð iE�Lñ iEô iEð iEðX<ð <ð <ð <ð <�Lñ <ô <ð <ðDvð vð vð vð v�Lñ vô vð vðrK$ð K$ð K$ð K$ð K$�}ñ K$ô K$ð K$ð\O$ð O$ð O$ð O$ð O$�}ñ O$ô O$ð O$ðd
>ð 
>ð 
>ð 
>ð 
>Ð+ñ 
>ô 
>ð 
>ð 
>ð 
>r�   