§
    
 @gR´ ã                  ó  — 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Ú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Úintre   zDict[PathRegistry, PostLoad]rg   Ú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© ó    úJ/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/orm/context.pyÚdefault_load_optionsro   …   sS   € € € € € Ø#ÐØ"ÐØˆØ!ÐØˆ
ØˆØˆ
ØˆØ ÐØ ÐØ$(Ð!Ø ÐÐÐr€   r‚   Nr/   Ú	statementú&Union[Select[Any], FromStatement[Any]]rY   rG   r]   rE   rZ   ú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€   )!rZ   Ú_EMPTY_DICTr\   r[   rW   rX   r]   rj   rk   rY   r}   rV   Úselect_statementÚ_with_optionsÚtupleÚziprd   Údictr   rw   r^   rt   r_   rv   r`   ru   ra   rz   rb   ry   ri   rx   rh   )
r�   rW   rƒ   rY   r]   rZ   r\   r[   Úcached_optionsÚuncached_optionss
   `         r�   Ú__init__zQueryContext.__init__“   s  ø€ ð )ˆÔØ!2Ð!AµkˆÔØ,Ð;µˆÔØ*ˆÔØˆŒ
ØˆŒØ).ˆÔ&Ø(-ˆÔ%ØˆŒØ!-Ô!GˆÔà&Ô7ÔEˆØ$Ô2Ðõ */ð /
ð /
ð /
ð /
å%(¨Ð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   rG   r]   rE   rZ   r…   r\   r†   r[   r‡   )r›   rU   )	rp   rq   rr   Ú	__slots__Ú__annotations__r2   r‚   rš   rž   r   r€   r�   rU   rU   f   s¢   € € € € € € ð€Ið4 €J€J�JØ1Ð1Ð1Ñ1Ø"Ð"Ð"Ñ"ð!ð !ð !ð !ð !˜wñ !ô !ð !ð0 CGØ37ð4;ð 4;ð 4;ð 4;ð 4;ðl.ð .ð .ð .ð .ð .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ˆOØˆ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ƒ   rY   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ƒ   rY   r\   r[   ÚconnÚresults           r�   Úorm_execute_statementz-AbstractORMCompileState.orm_execute_statement  sT   € ð —’Ø�v�| Ð7Hð ñ 
ô 
ˆð ×*Ò*ØØØØØØñ
ô 
ð 	
r€   c                ó   — t          ¦   «         ‚rŠ   r¿   ©r¼   r]   rƒ   rY   r\   r[   rÈ   s          r�   rÆ   z/AbstractORMCompileState.orm_setup_cursor_result1  rÃ   r€   )rƒ   r¶   r¯   r·   r¸   r   r›   r£   )r›   rF   )rp   rq   rr   Ú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_optionsrw   )r¼   r]   rƒ   rY   r\   r[   rÁ   rZ   s           r�   rÂ   z1AutoflushOnlyORMCompileState.orm_pre_session_execA  sm   € õ Ô-×DÒDØ"àðð ØÔ(ñ
ô 
ñ	
ØØð ð 	! Ô 7ð 	!Ø×ÒÑ Ô Ð àÐ+Ð+Ð+r€   c                ó   — |S rŠ   r   rË   s          r�   rÆ   z4AutoflushOnlyORMCompileState.orm_setup_cursor_result^  s	   € ð ˆr€   N)rp   rq   rr   Ú__doc__rÍ   rÂ   rÆ   r   r€   r�   rÑ   rÑ   >  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 )6rm   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)rp   rq   rr   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Ú   l  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, ...]]rc   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 ¦  «        r^t          |j        j        ¦  «        dk    rA|                     dd¦  «        �+t          j        d	¦  «         |                     dd i¦  «        }||d
<   	 |j        d         }	|	r
|	j        |d<   n# t&          $ r J d¦   «         ‚w xY w|s|j        r|                     ¦   «          ||fS )NrÓ   >   r^   ri   rh   r_   Úsa_top_level_orm_contextr  ri   rÞ   é
   Úcompiled_cacheTz÷Loader depth for query is excessively deep; caching will be disabled for additional loaders.  Consider using the recursion_depth feature for deeply nested recursive eager loaders.  Use the compiled_cache=None execution option to skip this warning.ÚclauseÚplugin_subjectÚmapperFz0statement had 'orm' plugin but no plugin_subject)rU   r‚   rÔ   rÕ   rX   Ú
merge_withr\   Ú_orm_load_exec_optionsÚunionry   r  Ú_compile_optionsÚlenrÞ   r«   r$   ÚwarnÚ_propagate_attrsr  r®   rw   )
r¼   r]   rƒ   rY   r\   r[   rÁ   rZ   Ú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åŒIð%ñô ð ð !2× 7Ò 7Ø! 4Ð(ñ!ô !Ðð $-ˆ�xÑ ð	AØ&Ô7Ð8HÔIˆNð ð AØ+9Ô+@�˜xÑ(øøõ	 ð 	Mð 	Mð 	MØLÐLÑLÔLÐLð	Møøøð ð 	! Ô 7ð 	!Ø×ÒÑ Ô Ð àÐ+Ð+Ð+s   ÄD9 Ä9E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ƒ   rY   r\   r[   rÈ   Úexecution_contextrW   rZ   Úquerycontexts              r�   rÆ   z'ORMCompileState.orm_setup_cursor_result+  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>W  s7   € ð 
ð 
ð 
Ø­Z¸½]Ñ-KÔ-Kð
Øð
ð 
ð 
r€   )rí   r�   s    r�   Ú_lead_mapper_entitiesz%ORMCompileState._lead_mapper_entitiesO  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_adapter[  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î   r3  Úlocal_table)r�   r  ÚadapterÚm2Úms        r�   r4  z2ORMCompileState._mapper_loads_polymorphically_withx  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›   rm   )r  r;   r  rñ   r›   rM   )rp   rq   rr   r.   rë   r    rê   r÷   Ú_has_mapper_entitiesrš   r   rÍ   r»   r  r  r  rÂ   rÆ   Úpropertyr.  r9  r4  rA  r   r€   r�   rm   rm   k  s.  € € € € € € ð#ð #ð #ð #ð #Ð"2ñ #ô #ð #ðJ ÐÐÑØ%Ð%Ð%Ñ%à5Ð5Ð5Ñ5Ø<Ð<Ð<Ñ<Ø!Ð!Ð!Ñ!Ø@Ð@Ð@Ñ@ðð ð ñ ð ,Ð+Ð+Ñ+Ø Ð Ð Ñ Ø/Ð/Ð/Ñ/Ø-Ð-Ð-Ñ-Ø/Ð/Ð/Ñ/Ø+Ð+Ð+Ñ+ðð ð ñ ð "0€LÐ/Ð/Ð/Ñ/Ø Ðð$ð $ð $ð ð 	à	ð	ð 	ð 	ñ 
Œð	ð'ð 'ð 'ð ðFð Fð Fñ „[ðFð ð/ð /ñ „[ð/ð ðX,ð X,ñ „[ðX,ðt ð!7ð !7ñ „[ð!7ðF ð	
ð 	
ñ „Xð	
ðð ð ð:Dð Dð Dð ð
ð 
ñ „[ð
ð 
ð 
r€   rm   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_presentrF  )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_columnsrJ  )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�   rJ  z)DMLReturningColFilter.adapt_check_present©  sE   € Ø”ˆØÔ'×+Ò+¨C°Ñ6Ô6ˆØˆ<Ø�4ØÔ!Ô#×8Ò8¸Ñ=Ô=Ð=r€   N)rp   rq   rr   r×   rŸ   rš   rS  rJ  r   r€   r�   rE  rE  †  sR   € € € € € ðð ð 5€Ið
ð 
ð 
ðð ð ð>ð >ð >ð >ð >r€   rE  Ú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*   Útabler`  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ö   rc   Ú_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  ÚentityrV  s              r�   r»   z1ORMFromStatementCompileState.create_for_statementÂ  sc  € õ Ð-­}Ñ=Ô=Ð=Ð=Ð=àÐ 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à!%×!?Ò!?àÔ(ð"Ø1:Ô1Að"ˆIÔ"Ð"å!ØÔ'ñ	"
ô "
ˆÔõ 	×%Ò%ØØÔ,ØŒ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Ô%ØÔ1ð
 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_listB  ó   € Øˆr€   c                ó   — d S rŠ   r   r�   s    r�   Ú_get_current_adapterz1ORMFromStatementCompileState._get_current_adapterE  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«   rE  rï   rå   r  rí   rg  rh  Ú!setup_dml_returning_compile_state)r�   Ú
dml_mapperrK  r=  r�  s        r�   rŒ  z>ORMFromStatementCompileState.setup_dml_returning_compile_stateH  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\  )rp   rq   rr   r  rB  r    r`  Ú_has_orm_entitiesÚmulti_row_eager_loadersÚeager_adding_joinsÚcompound_eager_adapterr’   rv  Úeager_joinsrÍ   r»   r†  r‰  rŒ  r   r€   r�   r\  r\  ±  sÂ   € € € € € € à€OØ Ðà&Ð&Ð&Ñ&ØBÐBÐBÑBØ,0€IÐ0Ð0Ð0Ñ0àÐØ#ÐØÐØ!Ðà)ÐØ€Kàð}ð }ð }ñ „[ð}ð~ð ð ðð ð ðDð Dð Dð Dð Dr€   r\  c                  ó0  ‡ — 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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`.

    rZ  Nú(Union[ExecutableReturnsRows, TextClause]rj  rñ   r~  rq  r  TÚentitiesú%Iterable[_ColumnsClauseArgument[Any]]c                óÀ   ‡ — ˆ fd„t          j        |¦  «        D ¦   «         ‰ _        |‰ _        |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_listrq  rj  r*   r,   rm  r~  )r�   r•  rj  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�   rj  s     r�   r‘   z-FromStatement.get_children.<locals>.<genexpr>¸  s6   è è € ð 1
ð 1
Ø&-ˆGÔ!ð1
ð 1
ð 1
ð 1
ð 1
ð 1
r€   r   )Ú	itertoolsÚchainÚfrom_iterablerq  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Š   )rj  Ú_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*   rj  Ú_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*   rj  Ú
_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+   rj  Ú_inliner�   s    r�   r·  zFromStatement._inlineÉ  s!   € å'7¸¼Ñ'EÔ'EÐOˆtŒ|Ô#Ð#È4ÐOr€   ©T)r•  r–  rj  r”  r~  rñ   )rp   rq   rr   r×   Ú__visit_name__r\  rë   r  r»   rŸ  Ú_for_update_argr    r>   Údp_clauseelement_listÚdp_clauseelementr0   Ú_executable_traverse_internalsÚ_traverse_internalsrç   ré   rš   r   rC  r¥  r§  r¯  r±  r³  rµ  r·  rÎ   rÏ   s   @r�   r]  r]  \  s—  ø€ € € € € € ðð ð *€Nà3ÔKÐà9ÔNÐà€Oà5Ð5Ð5Ñ5àÐÐÑð 
Ð*Ô@ÐAØ	Ð%Ô6Ð7ðð 	Ô1ñ2Ðð
 /Ø	Ð.Ô?Ð@ð2ñ Ðð !%ð	/ð /ð /ð /ð /ð,?ð ?ð ?ð" ðð ñ „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)rp   rq   rr   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 )Frb  )ro  rp  rq  )r�   Úmemoized_entitiesr�   s     €r�   ú
<dictcomp>z>ORMSelectCompileState.create_for_statement.<locals>.<dictcomp>/  sR   ø€ ð 
'ð 
'ð 
'ð &ð "¥<×#@Ò#@ØØ%Ô2ØØ(-ð	 $Añ $ô $ð
'ð 
'ð 
'r€   rb  r   )r°   r±   c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r   r(  r+  s     r�   r-  z>ORMSelectCompileState.create_for_statement.<locals>.<listcomp>`  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€   )6ri  r¬   rë   Ú
safe_merger  rÕ   Ú_cloner“   r$   ÚimmutabledictrÜ   Úfor_statementrÛ   rò   rí   rð   rî   rï   rm  ÚLABEL_STYLE_LEGACY_ORMr9   r  r7   Ú_memoized_select_entitiesÚ_memoized_entitiesr  ró   ro  rp  rq  rÞ   r÷   Úeager_order_byrµ   r”   r­   Ú'process_compile_state_replaced_entitiesrª   rr  rô   rõ   rs  rö   r’  rv  rc   rt  Ú_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Š   ©rN  Ú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†  ru  Ú_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  rg  rh  rw  rc   rß   Ú_adjust_for_extra_criteriarô   rá   ÚInvalidRequestErrorÚlistrt  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ÐLåÔ,Ø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.

        NTrb  )
ri  rí   rð   rî   r  rm  ró   ro  rp  rq  )r¼   rX   r  r�   s       r�   rA  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_entityB  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)rq  Úis_selectableÚ_annotationsÚ	is_mapperr1  r-   Ú_all_column_expressions)r¼   rƒ   rj  Úenss       r�   Úall_selected_columnsz*ORMSelectCompileState.all_selected_columnsH  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>Z  sl   è è € ð *ð *ð ð	 "¨Ô)=Ð=Ð=ð Ô%Ð%ð Ô(¨Ô8×KÒKÑMÔMðð*ð *ð *ð *ð *ð *r€   )rÔ  r¬  r­  r®  rq  r  s     r�   Úget_columns_clause_fromsz.ORMSelectCompileState.get_columns_clause_fromsW  sP   € à×#Ò#ÝŒO×)Ò)ð *ð *ð  )Ô5ð*ñ *ô *ñ ô ñ	
ô 	
ð 		
r€   c                óÖ   — t          j        t          j        ||¬¦  «        }t	          |j        |¦  «        }|j                             |j        |j	        |j
        |j        ¬¦  «         |S )N)r™  )r”   rr  rÕ   r  )r%   r›  r'   ÚReturnsRowsRoler]  rq  rÝ  Úupdater”   rr  rÕ   r  )r¼   rƒ   Úfrom_statementÚstmts       r�   r#  z$ORMSelectCompileState.from_statementd  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_aliasv  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.©r0  N)r  Úhasattrr1  rg  Ú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ð   rg  r  r4  )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í   rg  r  r6  )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  r6  rí   )r�   r1  rÆ  r,  s       r�   r.  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_referencerj  )r�   Úelems     r�   r-  zCORMSelectCompileState._compound_eager_statement.<locals>.<listcomp>ß  sG   € ð "ð "ð "ð õ ˜d¥C¤LÔ$AÑBÔBð�”�àð"ð "ð "r€   c                ó&   •— g | ]}|‰j         v¯|‘ŒS r   )rö   )r�   rV  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)  )#ru  rN  Ú expand_column_list_from_order_byrô   Ú_select_statementrÖ  rò  rô  r  rº  r“   Ú_hintsÚ_statement_hintsrÿ  r  Ú_select_argsÚaliasr.  r   r   ÚCOMPOUND_EAGER_STATEMENTr‘  r!   rÂ  rõ   rm  Úofr’  r@  Úsplice_joinsÚstop_onÚselect_fromÚnon_generativerù  rÒ  )r�   Úunwrapped_order_byÚorder_by_col_exprÚinnerr1  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 )NrG  )rL  rô   rõ   r•   rÖ  r’  r@  rò  rô  r  ru  rº  r“   rM  rN  rÿ  r  rO  rÒ  rV  )r�   rƒ   s     r�   r  z'ORMSelectCompileState._simple_statement,  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)rq  rÕ  rm  )r:   Ú_create_raw_selectrò  rô  ró  r•   rý  rV  rõ  Ú_limit_clauseÚ_offset_clauseÚ_fetch_clauseÚ_fetch_clause_optionsÚ_independent_ctesÚ_independent_ctes_optsÚ	_prefixesÚ	_suffixesrº  rM  rN  rÿ  r  )r�   Úraw_columnsr0  Úwhere_criteriaÚhaving_criteriar  ru  rH  rI  rJ  rÿ  r  Úlimit_clauseÚoffset_clauseÚfetch_clauseÚfetch_clause_optionsrý  rû  ÚprefixesÚsuffixesr÷  Úindependent_ctesÚindependent_ctes_optsrƒ   s                           r�   rL  z'ORMSelectCompileState._select_statement@  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  rk  )	r  rî   r«   Úadapt_clauser)  r&   Ú
FromClauser*  rk  )r�   rj  ÚsearchrP  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  )rE  Ú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  rP  r‚  r�  s      €r�   Ú_adapt_clausezAORMSelectCompileState._get_current_adapter.<locals>._adapt_clauseÂ  s3   ø€ ð	%ð 	%ð 	%ð 	%ð 	%õ Ô0°¸¸WÑEÔEÐEr€   )r  rþ   r‚  rî   rv  )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   ÚPropComparatorrg  r  r  r  r*  r+  r  rC  r�  ÚAttributeErrorÚ_parententityr   ÚQueryableAttributer  Ú_already_joined_edgesr«   Ú_join_left_to_right)r�   ÚargsÚentities_collectionÚrightÚonclauseÚfrom_Úflagsr†  r‡  Úof_typeÚerrÚleftrX  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_siderg  r  Ú _join_check_and_adapt_right_sider  Ú_get_extra_criteriarÖ  r   r)  r*  r¦   )r�   r�  r—  r‘  r’  rX  Ú	outerjoinr‡  Úreplace_from_obj_indexÚuse_entity_indexÚr_infoÚextra_criteriaÚleft_clauses                r�   rŽ  z)ORMSelectCompileState._join_left_to_right4  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Ö  rN  Úfind_left_clause_to_join_fromr¦   r  rg  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Ö  rN  Ú#find_left_clause_that_matches_givenr¦   r  rg  r  r*  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 itselfr1  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¦   r0  ))r"   r  Úwith_polymorphicr)  r2  r&   ÚJoinrÖ  r¦   rN  Úselectables_overlaprg  r  Úcommon_parentr  r*  rî  Úis_clause_elementÚ_is_lateralr‰  Úis_derived_fromÚdescriptionrP   r%   r›  r'   ÚFromClauseRoler   r$   Úwarn_deprecatedr  r   r   Ú DEPRECATED_JOIN_ADAPT_RIGHT_SIDEr6  r4  Ú#_has_aliased_polymorphic_fromclauseÚ#WITH_POLYMORPHIC_ADAPTER_RIGHT_JOINÚClauseElementr�  r  )r�   r—  r‘  r’  rX  r±  r¡  ÚoverlapÚright_mapperr0  Úright_selectableÚright_is_aliasedÚneed_adapterr…  Úaliased_entityr=  s                   r�   rœ  z6ORMSelectCompileState._join_check_and_adapt_right_sideC  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)rj  rk  rý  rû  rn  ro  r÷  rl  rm  rp  rq  )r“   r_  r`  rý  rû  re  rf  r÷  ra  rb  rc  rd  r�   s    r�   rO  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 )Nrj  rk  rý  Frû  r   r÷  )rO  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�   Úaer7  r�   s     €€r�   r‘   z<ORMSelectCompileState._get_extra_criteria.<locals>.<genexpr>$	  ss   øè è € ð ð àð Ô&ðð
 +-¬)°xÐ*?Ð*?Ø×&Ò& tÑ,Ô,ð +@ð	 ×*Ò*¨8Ñ4Ô4ð +@Ð*?Ð*?Ð*?ðð r€   r   )r  r§   r•   )r�   r7  s   ``r�   r�  z)ORMSelectCompileState._get_extra_criteria	  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§   rv  r1  r,  rs  r@  rî  rï   rã   r�  r‰  ÚtraverserN  Ú_deep_annotaterò  )	r�   Ú
fromclauser7  ru  r=  Úsingle_critrÑ  r…  rã  s	            r�   r  z0ORMSelectCompileState._adjust_for_extra_criteria/	  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Š   )0rp   rq   rr   r�  r’   rÑ  r  rB  rŽ  r�  r�  r‘  rÿ  r  rò  rô  rÍ   r»   rÞ  r×  rA  r  r  r  r#  rï  r'  r	  r6  r9  r<  r.  r  r  rL  rv  r†  r‰  rñ  rŽ  rš  r›  rœ  rC  rO  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ð#ð #ð #ð #ðð ð ð"Wð Wð Wðrð ð ð(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 )r1  FNr�  )r  ÚtypeÚaliasedÚexprr�  )Ú_label_namerã  r  rå  r4  r½  )r�   r,  Úinsp_ents      r�   r-  z(_column_descriptions.<locals>.<listcomp>s	  s{   € ð 	ð 	ð 	ñ ˆC�ð ”OØ”HÝ˜xÐ);¸UÑCÔCØ”HàŒÐ*°8Ô3MÐ*õ ˜h¨°$Ñ7Ô7Ð7àð	
ð 	
ð	ð 	ð 	r€   c                ó    — g | ]}||j         f‘ŒS r   ©r4  )r�   Ú_ents     r�   r-  z(_column_descriptions.<locals>.<listcomp>}	  s-   € ð 
ð 
ð 
Ø)-ˆT�4Ô#Ð$ð
ð 
ð 
r€   )r¢  rA  rí   )rÝ  rW   r  r  Úds        r�   r  r  i	  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)rq  r  r)  r   r�  )rì  r�   r,  s      r�   rñ  rñ  “	  s~   € ð %€DØÔð Øˆtà
Ô
˜AÔ
€Cà˜Ô)Ð)Ð)ØÔ Ô/Ð/Ý	�CÕ-Ñ	.Ô	.ð ØŒzÐØ	�SÔ%Ð	%Ð	%ØÔ Ô)Ð)àˆ
r€   r  úTuple[_SetupJoinsElement, ...]r4  ú=Optional[Union[_InternalEntityType[Any], _JoinTargetElement]]c                ój   — | sd S | d         \  }}}}t          |t          j        ¦  «        r|j        S |S )Néÿÿÿÿ)r)  r   rŒ  r�  )r  r4  Ú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 )ro  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]r4  rW   rm   r›   ÚNonec                ó   — t          ¦   «         ‚rŠ   r¿   ©r�   rW   s     r�   rw  z _QueryEntity.setup_compile_stateÈ	  rú   r€   r=  rE  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_sequencerp  Ú	_resolvedr½  r  r  r*  Ú_ColumnEntityÚ_for_columnsÚ_select_iterabler«   Ú_BundleEntityÚ_is_clause_listÚ	is_bundle)r¼   rW   r•  r�  rc  r²  r�  s          r�   rp  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   rm   r›   rü  ©rW   rm   r=  rE  r›   rü  )rp   rq   rr   r×   rŸ   r    Ú_non_hashable_valueÚ_null_column_typeÚuse_id_for_hashrw  rŒ  r  rÍ   rp  r   r€   r�   ro  ro  ¸	  sÀ   € € € € € € ØDÐDà€Ià Ð Ð Ñ àÐØÐØ€OàÐÐÑØ+Ð+Ð+Ñ+Ø8Ð8Ð8Ñ8Ø.Ð.Ð.Ñ.ð$ð $ð $ð $ð$ð $ð $ð $ð$ð $ð $ð ð>#ð >#ñ „[ð>#ð >#ð >#r€   ro  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  r4  r1  ÚpathÚ_extra_entitiesræ  r;  r¦   Ú_polymorphic_discriminatorr?   rå  zMapper[Any]r  r4  rñ   r1  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ð   rB  rŽ  r  Ú_post_inspectr4  r�  rå  r  r  r1  r  ræ  Úclass_rp   rê   r  r¦   Úwith_polymorphic_mappersr;  Úpolymorphic_onr  Ú _should_select_with_poly_adapterr9  )r�   rW   r�  r�  rc  r7  r  s          r�   rš   z_MapperEntity.__init__.
  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.typeX
  s   € àŒ{Ô!Ð!r€   c                ó   — | j         S rŠ   ré  r�   s    r�   r§  z'_MapperEntity.entity_zero_or_selectable\
  s   € àÔÐr€   c                ó,   — t          | j        |¦  «        S rŠ   )r   r4  ©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Š   )r1  rî   r«   r  r4  r,  r  Úwrap)r�   rW   r=  Úrets       r�   Ú_get_entity_clausesz!_MapperEntity._get_entity_clausesc
  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_propsrb   Úpolymorphic_discriminator)rW   r#  r‘  r!  rð   rï   rá   rb   r   Ú_instance_processorr  r  r  ræ  r  )r�   r!  rÈ   rW   r=  r%  rb   Ú	_instances           r�   r  z_MapperEntity.row_processorx
  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   rm   r=  rE  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Ñ  r*  )r#  r  rØ  r§   r4  r1  r,  rv  r   r+  r  rô   r;  rï   rá   r  rt  rþ   r¦   )r�   rW   r=  Úsingle_table_critr7  s        r�   rw  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  )rp   rq   rr   r×   rŸ   r    rš   rû  r  r  rC  rã  r§  r°  r#  r  rŒ  rw  r   r€   r�   r*  r*  
  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„ 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�  rc  Úsetup_entitiesr1  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Š   )r4  r  )r�   r  s     r�   r  z_BundleEntity.mapper  s   € àÔ ˆØÐØ”<Ðà�4r€   c                ó4   — | j         D ]}|j        }|�|c S Œd S rŠ   )rí   r4  ©r�   r,  r  s      r�   r4  z_BundleEntity.entity_zero  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§  r8  s      r�   r§  z'_BundleEntity.entity_zero_or_selectable'  s6   € à”>ð 	ð 	ˆCØÔ1ˆEØÐ Ø���ð !ð �4r€   c                óD   — | j         D ]}|                     |¦  «         Œd S rŠ   )rí   rw  )r�   rW   r,  s      r�   rw  z!_BundleEntity.setup_compile_state0  s4   € Ø”>ð 	3ð 	3ˆCØ×#Ò# MÑ2Ô2Ð2Ð2ð	3ð 	3r€   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>6  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_processor4  sa   øø€ Ý"ØKÐKÐKÐKÐK¸D¼NÐKÑKÔKð 
Ñˆˆv�uð Œ{×/Ò/°´¸uÀfÑMÔMˆà�TÔ% tÔ';Ð;Ð;r€   rá  )rp   rq   rr   r  rŸ   r    rš   rC  r  r4  r°  r§  rw  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ð<ð <ð <ð <ð <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  rh   r0  )r  rN  Úextract_first_column_annotationÚ_IdentityTokenEntityr3  Ú_RawColumnEntity)
r¼   rW   rF  r�  rF  rc  r1  Úcolumnr   Ú_entitys
             r�   r  z_ColumnEntity._for_columnsF  sÿ   € ð ð &	ð &	ˆFØ Ô-ˆKØ Ð,Ð,Ø% nÔ5��å"ÔBØ˜Nñô �ð ð Ø# vÔ':Ð:Ð:Ý(Ø%ØØ+ØØ(Ø+Ø&3ðñ ô ð ð õ %Ø%ØØ+ØØ(Ø+Ø&3ðñ ô ð ð õ !Ø!ØØ'Ø$Ø'Ø"/ðñ ô ð ð ð?&	ð &	r€   c                ó   — | j         j        S rŠ   )rL  rã  r�   s    r�   rã  z_ColumnEntity.typex  s   € àŒ{ÔÐr€   c                ó&   — | j         j        j         S rŠ   )rL  rã  Úhashabler�   s    r�   r  z!_ColumnEntity._non_hashable_value|  s   € à”;Ô#Ô,Ð,Ð,r€   c                ó$   — | j         j        j        S rŠ   )rL  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   rE  rG  rX   rq  rF  rD  rL  r  rF  r  Ú_deannotater‘  Ú_getterræ  r  )	r�   r!  rÈ   rW   ÚgetterÚ
label_nameÚextra_entitiesrL  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Š   )rp   rq   rr   rŸ   rÍ   r  rC  rã  r  r  r  r   r€   r�   r  r  >  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 )rK  NF)rå  rL  ræ  r§  r  c                óº  — || _         || _        |d u| _        |j        r|xj        ddiz  c_        |r|j        rd | _        n|                     |¦  «        | _        |r|j         	                    | ¦  «         n| 	                    | ¦  «         || _
        | j
        j        r| j
        j        d         nd | _        | j         | j
        f| _        d x| _        | _        d S )Nrå   Tr   )rå  rF  rG  rå   rï   Ú_is_text_clauseræ  ró   rí   rþ   rL  rª  r§  r  rD  rE  )r�   rW   rL  r�  rF  rc  r1  s          r�   rš   z_RawColumnEntity.__init__Ä  s  € ð ˆŒ	Ø 0ˆÔØ$4¸DÐ$@ˆÔ!àŒ?ð 	@ØÐ)Ô)¨j¸$Ð-?Ñ?Ð)Ô)à"ð 	G fÔ&<ð 	GØ#ˆDÔÐà,×>Ò>¸vÑFÔFˆDÔàð 	-ØÔ#×*Ò*¨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   rm   r=  rE  r›   rü  c                ó,   — |                       |¦  «        S rŠ   )rw  r   s      r�   rŒ  z2_RawColumnEntity.setup_dml_returning_compile_stateè  s   € ð
 ×'Ò'¨Ñ6Ô6Ð6r€   c                ó  — |                      ¦   «         }|r || j        d¦  «        }|€d S n| j        }|j        r|                     ¦   «         }|j                             |¦  «         |j                             |¦  «         || _        d S rä  )	r‰  rL  r  rT  rö   rý   rô   rþ   rD  )r�   rW   r…  rL  s       r�   rw  z$_RawColumnEntity.setup_compile_stateï  s    € Ø'×<Ò<Ñ>Ô>ˆØð 	!Ø$�_ T¤[°%Ñ8Ô8ˆFØˆ~Ø�ð ð ”[ˆFàÔð 	*ð ×'Ò'Ñ)Ô)ˆFàÔ$×(Ò(¨Ñ0Ô0Ð0ØÔ%×,Ò,¨VÑ4Ô4Ð4Ø#ˆÔÐÐr€   rŠ   r  )rp   rq   rr   r4  r  rû  rŸ   rš   r°  rŒ  rw  r   r€   r�   rK  rK  ·  sw   € € € € € Ø€KØ€FØ"Ðð€Ið ð8ð 8ð 8ð 8ðBð ð ð7ð 7ð 7ð 7ð$ð $ð $ð $ð $r€   rK  c                  ó8   — e Zd ZdZdZdZ	 dd„Zd„ Zdd„Zd„ Z	dS )r3  zColumn/expression based entity.F)rå  r  rL  ræ  r§  r4  r  Nc                ór  — |j         }|}	 |j        dd ¦  «        }
 |j        d|	¦  «        }|
r"t          |j        |
¦  «        | _        d| _        n|| _        |d u| _        || _        |r|                     ||
¬¦  «        | _        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å  rG  rF  ró   ræ  r  r4  r§  r  rí   rþ   rŽ  rL  rD  rE  r  r  r9  r¦   )r�   rW   rL  r�  r  rF  rc  r1  r   rM  Úorm_keyrb  r  r  s                 r�   rš   z_ORMColumnEntity.__init__  s‡  € ð Ô)ˆàˆð "�+”/ +¨tÑ4Ô4ˆØ%�k”o m°WÑ=Ô=ˆØð 
	EÝ Ô 2°GÑ<Ô<ˆDŒIØ(-ˆDÔ%Ð%ð ˆDŒIØ(8ÀÐ(DˆDÔ%à 0ˆÔàð 	$Ø,×>Ò>Ø ð  ?ñ  ô  ˆDÔÐð  $ˆ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   r4  r¼  r  s     r�   r°  z_ORMColumnEntity.corresponds_toQ  sV   € Ý˜VÑ$Ô$ð 	9à˜TÔ-Ð-Ð-å(ØÔ ñô ð ð 9à×&Ò& tÔ'7Ñ8Ô8ð9r€   rW   rm   r=  rE  r›   rü  c                ó°   — | j         | _         || j         d¦  «        }|�6|j                             |¦  «         |j                             |¦  «         d S d S rä  )rL  rD  rö   rý   rô   rþ   )r�   rW   r=  rL  s       r�   rŒ  z2_ORMColumnEntity.setup_dml_returning_compile_stateZ  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‰  rL  rÌ   rD  r4  r  rØ  r§   r1  r,  rv  r  Ú_expression_labelrT  rs  rª  Úintersectionr¦   rt  rþ   rö   rý   rô   )r�   rW   r…  rL  r  r-  s         r�   rw  z$_ORMColumnEntity.setup_compile_statee  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  )
rp   rq   rr   r×   rû  rŸ   rš   r°  rŒ  rw  r   r€   r�   r3  r3    ss   € € € € € Ø)Ð)à"Ðð€Ið$ ð>ð >ð >ð >ð@9ð 9ð 9ð	9ð 	9ð 	9ð 	9ð)$ð )$ð )$ð )$ð )$r€   r3  c                  ó   — e Zd ZdZd„ Zd„ ZdS )rJ  Fc                ó   — d S rŠ   r   rþ  s     r�   rw  z(_IdentityTokenEntity.setup_compile_state”  s   € Øˆr€   c                ó,   ‡— ˆfd„}|| j         | j        fS )Nc                ó   •— ‰j         j        S rŠ   )rZ   rx   )Úrowr!  s    €r�   rV  z2_IdentityTokenEntity.row_processor.<locals>.getter˜  s   ø€ ØÔ'Ô7Ð7r€   )ræ  r  )r�   r!  rÈ   rV  s    `  r�   r  z"_IdentityTokenEntity.row_processor—  s1   ø€ ð	8ð 	8ð 	8ð 	8ð 	8ð �tÔ'¨Ô)=Ð=Ð=r€   N)rp   rq   rr   rG  rw  r  r   r€   r�   rJ  rJ  ‘  s8   € € € € € Ø Ððð ð ð>ð >ð >ð >ð >r€   rJ  rä  )rÝ  rÞ  rW   rß  r  rñ   r›   rà  )rì  rí  r›   rî  rŠ   )r  rõ  r4  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    rg  r!   r"   r#   r%   r&   r'   rN  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Ñ   rm   rE  Ú
plugin_forr\  r]  rÁ  r¢  r  rò  rñ  r  ro  r*  r
  r  rK  r3  rJ  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Ô Ñ"Ô"€ð *Ô@Ð ðd.ð d.ð d.ð d.ð d.ñ d.ô d.ð d.ðN ,˜Ô+Ø'¨Ð.ñô Ð ð
i$ð i$ð i$ð i$ð i$˜lñ i$ô i$ð i$ðX*ð *ð *ð *ð *Ð#:ñ *ô *ð *ðZX
ð X
ð X
ð X
ð X
Ð-ñ X
ô X
ð X
ðv(>ð (>ð (>ð (>ð (>ñ (>ô (>ð (>ðV „Ô×!Ò! %Ð)=Ñ>Ô>ðgDð gDð gDð gDð gD ?ñ gDô gDñ ?Ô>ðgDðToPð oPð oPð oPð oP�N JÐ0@ÀÔ0Eñ oPô oPð oPðd „Ô×!Ò! %Ð):Ñ;Ô;ð	ð 	ð 	ð 	ð 	Ø Ð"5ñ	ô 	ñ <Ô;ð	ð „Ô×!Ò! %¨Ñ2Ô2ðP0ð P0ð P0ð P0ð P0˜O¨[ñ P0ô P0ñ 3Ô2ðP0ðj, 6:Øðð ð ð ð ð6+ð +ð +ð +ðð ð ð ð* 7;ðð ð ð ð ð$\#ð \#ð \#ð \#ð \#ñ \#ô \#ð \#ð~iEð iEð iEð iEð iE�Lñ iEô iEð iEðXx<ð x<ð x<ð x<ð x<�Lñ x<ô x<ð x<ðvvð vð vð vð v�Lñ vô vð vðrH$ð H$ð H$ð H$ð H$�}ñ H$ô H$ð H$ðVL$ð L$ð L$ð L$ð L$�}ñ L$ô L$ð L$ð^
>ð 
>ð 
>ð 
>ð 
>Ð+ñ 
>ô 
>ð 
>ð 
>ð 
>r€   