§
    -áUg
9  ã                   óÌ  — d dl mZ d dl mZ d dlmZmZ ej        ej        j        ej        j	        fZ
ej        ej        j        ej        j        fZej        ej        j        f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„ Z eej         ¦  «        d„ ¦   «         Z! eej"        ¦  «        d„ ¦   «         Z#d„ Z$d„ Z%d„ Z& eej'        ¦  «        d„ ¦   «         Z( eej)        ¦  «        d„ ¦   «         Z* e¦   «         d„ ¦   «         Z+ eej,        ¦  «        d„ ¦   «         Z- eej         ¦  «        d„ ¦   «         Z. e¦   «         d„ ¦   «         Z/d„ Z0d„ Z1d„ d „ d!d"d"fd#„Z2d!S )$é    )Úsql)Útokens)ÚrecurseÚimtc                 ó²  — g }d}t          t          | ¦  «        ¦  «        D ]µ\  }}||z
  }|j        rŒ|j        r!t	          ||¦  «        st          ||¦  «         Œ: |j        |j        Ž r|                     |¦  «         Œ_ |j        |j	        Ž rG	 | 
                    ¦   «         }n# t          $ r Y Œ�w xY w|}|                      |||¦  «         |||z
  z  }Œ¶dS )z*Groups Tokens that have beginning and end.r   N)Ú	enumerateÚlistÚis_whitespaceÚis_groupÚ
isinstanceÚ_group_matchingÚmatchÚM_OPENÚappendÚM_CLOSEÚpopÚ
IndexErrorÚgroup_tokens)	ÚtlistÚclsÚopensÚtidx_offsetÚidxÚtokenÚtidxÚopen_idxÚ	close_idxs	            úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sqlparse/engine/grouping.pyr   r      s!  € à€EØ€KÝ¥ U¡¤Ñ,Ô,ð 0ð 0‰
ˆˆUØ�[Ñ ˆàÔð 	ð àŒ>ð 	¥*¨U°CÑ"8Ô"8ð 	õ ˜E 3Ñ'Ô'Ð'Øàˆ5Œ;˜œ
Ð#ð 	0Ø�LŠL˜ÑÔÐÐàˆUŒ[˜#œ+Ð&ð 		0ðØ Ÿ9š9™;œ;��øÝð ð ð ð �ðøøøð ˆIØ×Ò˜s H¨iÑ8Ô8Ð8Ø˜9 xÑ/Ñ/ˆKøð90ð 0s   ÂB%Â%
B2Â1B2c                 ó:   — t          | t          j        ¦  «         d S ©N)r   r   ÚSquareBrackets©r   s    r   Úgroup_bracketsr#   4   s   € Ý�E�3Ô-Ñ.Ô.Ð.Ð.Ð.ó    c                 ó:   — t          | t          j        ¦  «         d S r    )r   r   ÚParenthesisr"   s    r   Úgroup_parenthesisr'   8   s   € Ý�E�3œ?Ñ+Ô+Ð+Ð+Ð+r$   c                 ó:   — t          | t          j        ¦  «         d S r    )r   r   ÚCaser"   s    r   Ú
group_caser*   <   s   € Ý�E�3œ8Ñ$Ô$Ð$Ð$Ð$r$   c                 ó:   — t          | t          j        ¦  «         d S r    )r   r   ÚIfr"   s    r   Úgroup_ifr-   @   s   € Ý�E�3œ6Ñ"Ô"Ð"Ð"Ð"r$   c                 ó:   — t          | t          j        ¦  «         d S r    )r   r   ÚForr"   s    r   Ú	group_forr0   D   s   € Ý�E�3œ7Ñ#Ô#Ð#Ð#Ð#r$   c                 ó:   — t          | t          j        ¦  «         d S r    )r   r   ÚBeginr"   s    r   Úgroup_beginr3   H   s   € Ý�E�3œ9Ñ%Ô%Ð%Ð%Ð%r$   c                 ó\   — d„ }d„ }d„ }|x}}t          | t          j        ||||¦  «         d S )Nc                 óB   — |                       t          j        d¦  «        S )Nz::©r   ÚTÚPunctuation©r   s    r   r   zgroup_typecasts.<locals>.matchM   s   € Ø�{Š{�1œ=¨$Ñ/Ô/Ð/r$   c                 ó
   — | d uS r    © r9   s    r   Úvalidzgroup_typecasts.<locals>.validP   ó   € Ø˜DÐ Ð r$   c                 ó
   — ||fS r    r;   ©r   Úpidxr   Únidxs       r   Úpostzgroup_typecasts.<locals>.postS   ó   € Ø�TˆzÐr$   ©Ú_groupr   Ú
Identifier©r   r   r<   rB   Ú
valid_prevÚ
valid_nexts         r   Úgroup_typecastsrJ   L   s[   € ð0ð 0ð 0ð!ð !ð !ðð ð ð $Ð#€J�Ý
ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr$   c                 óZ   — d„ }d„ }d„ }d„ }t          | t          j        ||||¦  «         d S )Nc                 ó6   — | j         t          j        j        k    S r    )Úttyper7   ÚKeywordÚTZCastr9   s    r   r   zgroup_tzcasts.<locals>.match[   s   € ØŒ{�aœiÔ.Ò.Ð.r$   c                 ó
   — | d uS r    r;   r9   s    r   rH   z!group_tzcasts.<locals>.valid_prev^   r=   r$   c                 óŠ   — | d uo?| j         p8|                      t          j        d¦  «        p | j        t          j        j        Ž S ©NÚAS)r
   r   r7   rN   r   ÚTypedLiteralr   r9   s    r   rI   z!group_tzcasts.<locals>.valid_nexta   sI   € Ø˜DÐ ð 
ØÔð 6Ø�{Š{�1œ9 dÑ+Ô+ð6àˆuŒ{�CÔ,Ô4Ð5ð	
r$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_tzcasts.<locals>.posth   rC   r$   rD   ©r   r   rH   rI   rB   s        r   Úgroup_tzcastsrW   Z   s`   € ð/ð /ð /ð!ð !ð !ð
ð 
ð 
ðð ð õ ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr$   c           	      óª   — d„ }d„ }d„ }d„ }d„ }d„ }t          | t          j        ||||d¬¦  «         t          | t          j        ||||d	¬¦  «         d S )
Nc                 óB   — t          | t          j        j        ¬¦  «        S )N©Úm)r   r   rT   r   r9   s    r   r   z"group_typed_literal.<locals>.matcht   s   € Ý�5�CÔ,Ô3Ð4Ñ4Ô4Ð4r$   c                 ó6   — t          | t          j        ¦  «        S r    )r   r   rT   r9   s    r   Úmatch_to_extendz,group_typed_literal.<locals>.match_to_extendw   s   € Ý˜%¥Ô!1Ñ2Ô2Ð2r$   c                 ó
   — | d uS r    r;   r9   s    r   rH   z'group_typed_literal.<locals>.valid_prevz   r=   r$   c                 ó<   — | d uo | j         t          j        j        Ž S r    )r   r   rT   r   r9   s    r   rI   z'group_typed_literal.<locals>.valid_next}   s!   € Ø˜DÐ ÐK [ U¤[µ#Ô2BÔ2JÐ%KÐKr$   c                 ó<   — | d uo | j         t          j        j        Ž S r    )r   r   rT   ÚM_EXTENDr9   s    r   Úvalid_finalz(group_typed_literal.<locals>.valid_final€   s!   € Ø˜DÐ ÐL [ U¤[µ#Ô2BÔ2KÐ%LÐLr$   c                 ó
   — ||fS r    r;   r?   s       r   rB   z!group_typed_literal.<locals>.postƒ   rC   r$   F©ÚextendT)rE   r   rT   )r   r   r]   rH   rI   rb   rB   s          r   Úgroup_typed_literalrf   n   sÀ   € ð5ð 5ð 5ð3ð 3ð 3ð!ð !ð !ðLð Lð LðMð Mð Mðð ð õ ˆ5•#Ô" E¨:°zØ˜ðñ ô ð å
ˆ5•#Ô" O°ZÀØ˜ðñ ô ð ð ð r$   c                 óZ   — d„ }d„ }d„ }d„ }t          | t          j        ||||¦  «         d S )Nc                 ó–   — t           j        dft           j        dft           j        dffD ]\  }}|                      ||¦  «        r dS ŒdS )Nú.z->z->>TF)r7   r8   ÚOperatorr   )r   rM   Úvalues      r   r   zgroup_period.<locals>.match�   s^   € Ýœm¨SÐ1Ýœj¨$Ð/Ýœj¨%Ð0ð2ð 	ð 	‰LˆE�5ð �{Š{˜5 %Ñ(Ô(ð Ø�t�tðàˆur$   c                 ó�   — t           j        t           j        f}t          j        t          j        j        f}t          | ||¬¦  «        S ©N©ÚiÚt)r   r!   rF   r7   ÚNameÚStringÚSymbolr   ©r   ÚsqlclsÚttypess      r   rH   z group_period.<locals>.valid_prev•   s6   € ÝÔ#¥S¤^Ð3ˆÝ”�œœÐ(ˆÝ�5˜F fÐ-Ñ-Ô-Ð-r$   c                 ó   — dS ©NTr;   r9   s    r   rI   z group_period.<locals>.valid_nextš   s   € àˆtr$   c                 óò   — t           j        t           j        f}t          j        t          j        j        t          j        t          j        j        f}|�| |         nd }t          |||¬¦  «        }|r||fn||fS rm   )
r   r!   ÚFunctionr7   rq   rr   rs   ÚWildcardÚSingler   )r   r@   r   rA   ru   rv   Únext_rI   s           r   rB   zgroup_period.<locals>.postž   sh   € åÔ#¥S¤\Ð1ˆÝ”�œœ­!¬*µa´h´oÐEˆØ#Ð/��d”�°TˆÝ˜ &¨FÐ3Ñ3Ô3ˆ
à)Ð;��dˆ|ˆ|°°d¨|Ð;r$   rD   rV   s        r   Úgroup_periodr~   Œ   s`   € ðð ð ð.ð .ð .ð
ð ð ð<ð <ð <õ ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr$   c                 óZ   — d„ }d„ }d„ }d„ }t          | t          j        ||||¦  «         d S )Nc                 ó&   — | j         o
| j        dk    S rR   )Ú
is_keywordÚ
normalizedr9   s    r   r   zgroup_as.<locals>.match«   s   € ØÔÐ< EÔ$4¸Ò$<Ð<r$   c                 ó(   — | j         dk    p| j         S )NÚNULL)r‚   r�   r9   s    r   rH   zgroup_as.<locals>.valid_prev®   s   € ØÔ 6Ò)ÐA°Ô1AÐ-AÐAr$   c                 ót   — t           j        t           j        t           j        f}t	          | |¬¦  «         o| d uS ©N©rp   )r7   ÚDMLÚDDLÚCTEr   )r   rv   s     r   rI   zgroup_as.<locals>.valid_next±   s4   € Ý”�œ�qœuÐ$ˆÝ�u Ð'Ñ'Ô'Ð'Ð=¨E¸Ð,=Ð=r$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_as.<locals>.postµ   rC   r$   rD   rV   s        r   Úgroup_asrŒ   ª   sc   € ð=ð =ð =ðBð Bð Bð>ð >ð >ðð ð õ ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr$   c                 ó\   — d„ }d„ }d„ }|x}}t          | t          j        ||||¦  «         d S )Nc                 óB   — |                       t          j        d¦  «        S )Nz:=)r   r7   Ú
Assignmentr9   s    r   r   zgroup_assignment.<locals>.match¼   s   € Ø�{Š{�1œ<¨Ñ.Ô.Ð.r$   c                 ó2   — | d uo| j         t          j        fvS r    )rM   r7   rN   r9   s    r   r<   zgroup_assignment.<locals>.valid¿   s   € Ø˜DÐ ÐD U¤[½¼¸Ð%DÐDr$   c                 ób   — t           j        df}|                      ||¬¦  «        \  }}|p|}||fS )Nú;©r[   r   )r7   r8   Útoken_next_by)r   r@   r   rA   Úm_semicolonÚsnidxÚ_s          r   rB   zgroup_assignment.<locals>.postÂ   s=   € Ý”m SÐ(ˆØ×&Ò&¨¸$Ð&Ñ?Ô?‰ˆˆqØˆ}˜ˆØ�TˆzÐr$   )rE   r   r�   rG   s         r   Úgroup_assignmentr˜   »   s^   € ð/ð /ð /ðEð Eð Eðð ð ð $Ð#€J�Ý
ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr$   c           	      ó
  ‡‡— t           j        t           j        t           j        t           j        t           j        fŠt          t          z   t          z   Šd„ }ˆˆfd„}d„ }|x}}t          | t           j
        ||||d¬¦  «         d S )Nc                 ó6   — | j         t          j        j        k    S r    )rM   r7   rj   Ú
Comparisonr9   s    r   r   zgroup_comparison.<locals>.matchÑ   s   € ØŒ{�aœjÔ3Ò3Ð3r$   c                 ó\   •— t          | ‰‰¬¦  «        rdS | r| j        r| j        dk    rdS dS )N)rp   ro   Tr„   F)r   r�   r‚   rt   s    €€r   r<   zgroup_comparison.<locals>.validÔ   sH   ø€ Ýˆu˜ &Ð)Ñ)Ô)ð 	Ø�4Øð 	�uÔ'ð 	¨EÔ,<ÀÒ,FÐ,FØ�4à�5r$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_comparison.<locals>.postÜ   rC   r$   Frd   )r   r&   rz   rF   Ú	OperationrT   ÚT_NUMERICALÚT_STRINGÚT_NAMErE   r›   ©r   r   r<   rB   rH   rI   ru   rv   s         @@r   Úgroup_comparisonr£   Ì   s«   øø€ ÝŒo�sœ|­S¬^ÝŒm�SÔ-ð/€Få�8Ñ#¥fÑ,€Fð4ð 4ð 4ðð ð ð ð ð ðð ð ð $Ð#€J�Ý
ˆ5•#”. %Ø�z 4°ð7ñ 7ô 7ð 7ð 7ð 7r$   c                 óô   — t           j        j        t           j        f}|                      |¬¦  «        \  }}|r?|                      t          j        ||¦  «         |                      ||¬¦  «        \  }}|°=d S d S )Nr‡   ©rp   r   )r7   rr   rs   rq   r”   r   r   rF   )r   rv   r   r   s       r   Úgroup_identifierr¦   ä   sˆ   € åŒhŒo�qœvÐ&€Fà×%Ò%¨Ð%Ñ/Ô/�K€Dˆ%Ø
ð >Ø×Ò�3œ>¨4°Ñ6Ô6Ð6Ø×)Ò)¨F¸Ð)Ñ=Ô=‰ˆˆeð ð >ð >ð >ð >ð >r$   c                 ór  — |                       t          j        j        ¬¦  «        \  }}|rŒ|                      |¦  «        \  }}t          |t          j        t          j        ¬¦  «        r!|  	                    t          j        ||¦  «         |                       t          j        j        |¬¦  «        \  }}|°Šd S d S )NrZ   rn   r“   )
r”   r   ÚOverr   Ú
token_nextr   r&   r7   rq   r   )r   r   r   rA   r}   s        r   Ú
group_overrª   î   s¸   € à×%Ò%­¬¬Ð%Ñ8Ô8�K€Dˆ%Ø
ð GØ×&Ò& tÑ,Ô,‰ˆˆeÝˆu�œ­1¬6Ð2Ñ2Ô2ð 	5Ø×Ò�sœx¨¨tÑ4Ô4Ð4Ø×)Ò)­C¬H¬OÀÐ)ÑFÔF‰ˆˆeð	 ð Gð Gð Gð Gð Gr$   c           
      óê   ‡‡— t           j        t           j        t           j        fŠt          j        t          j        j        fŠd„ }ˆˆfd„}d„ }d„ }t          | t           j        ||||dd¬¦  «         d S )Nc                 ó6   — t          | t          j        ¦  «        S r    )r   r   r!   r9   s    r   r   zgroup_arrays.<locals>.matchü   s   € Ý˜%¥Ô!3Ñ4Ô4Ð4r$   c                 ó(   •— t          | ‰‰¬¦  «        S rm   ©r   rt   s    €€r   rH   z group_arrays.<locals>.valid_prevÿ   s   ø€ Ý�5˜F fÐ-Ñ-Ô-Ð-r$   c                 ó   — dS rx   r;   r9   s    r   rI   z group_arrays.<locals>.valid_next  s   € Øˆtr$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_arrays.<locals>.post  rC   r$   TF)re   r   )	r   r!   rF   rz   r7   rq   rr   rs   rE   )r   r   rH   rI   rB   ru   rv   s        @@r   Úgroup_arraysr±   ø   s®   øø€ ÝÔ¥¤µ´Ð=€FÝŒV•Q”X”_Ð$€Fð5ð 5ð 5ð.ð .ð .ð .ð .ð .ðð ð ðð ð õ ˆ5•#”. %Ø�z 4°¸eðEñ Eô Eð Eð Eð Er$   c           	      ó   ‡‡— t           t          z   t          z   Št          j        t          j        t          j        t          j        t          j        t          j	        fŠd„ }ˆˆfd„}d„ }|x}}t          | t          j        ||||d¬¦  «         d S )Nc                 óP   — t          | t          j        t          j        f¬¦  «        S r†   )r   r7   rj   r{   r9   s    r   r   zgroup_operator.<locals>.match  s   € Ý�5�QœZ­¬Ð4Ð5Ñ5Ô5Ð5r$   c                 ól   •— t          | ‰‰¬¦  «        p!| o|                      t          j        d¦  «        S )Nrn   )ÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMP)r   r   r7   rN   rt   s    €€r   r<   zgroup_operator.<locals>.valid  sD   ø€ Ý�5˜F fÐ-Ñ-Ô-ð HØð G˜%Ÿ+š+Ý”	ØEñGô Gð	Hr$   c                 ó8   — t           j        | |         _        ||fS r    )r7   rj   rM   r?   s       r   rB   zgroup_operator.<locals>.post  s   € ÝœJˆˆdŒÔØ�TˆzÐr$   Frd   )rŸ   r    r¡   r   r!   r&   rz   rF   rž   rT   rE   r¢   s         @@r   Úgroup_operatorr¹     s¶   øø€ Ý�8Ñ#¥fÑ,€FÝÔ ¥#¤/µ3´<ÝŒn�cœm­SÔ-=ð?€Fð6ð 6ð 6ðHð Hð Hð Hð Hð Hðð ð ð $Ð#€J�Ý
ˆ5•#”- Ø�z 4°ð7ñ 7ô 7ð 7ð 7ð 7r$   c           	      óˆ  ‡‡‡— t           j        dfŠt          j        t          j        t          j        t          j        t          j        t          j        fŠt          t          z   t          z   t           j        t           j        t           j        fz   Šd„ }ˆˆˆfd„}d„ }|x}}t          | t          j        ||||d¬¦  «         d S )N)ÚnullÚrolec                 óB   — |                       t          j        d¦  «        S )Nú,r6   r9   s    r   r   z$group_identifier_list.<locals>.match*  s   € Ø�{Š{�1œ=¨#Ñ.Ô.Ð.r$   c                 ó*   •— t          | ‰‰‰¬¦  «        S )N)ro   r[   rp   r®   )r   Úm_roleru   rv   s    €€€r   r<   z$group_identifier_list.<locals>.valid-  s   ø€ Ý�5˜F f°Ð7Ñ7Ô7Ð7r$   c                 ó
   — ||fS r    r;   r?   s       r   rB   z#group_identifier_list.<locals>.post0  rC   r$   Trd   )r7   rN   r   rz   r)   rF   r›   ÚIdentifierListrž   rŸ   r    r¡   ÚCommentr{   rE   )	r   r   r<   rB   rH   rI   rÀ   ru   rv   s	         @@@r   Úgroup_identifier_listrÄ   #  sØ   øøø€ ÝŒYÐ(Ð(€FÝŒl�CœH¥c¤nµc´nÝÔ ¥#¤-ð1€Få�HÑ$¥vÑ-Ý”�AœI¥q¤zÐ2ñ3€Fð/ð /ð /ð8ð 8ð 8ð 8ð 8ð 8ð 8ðð ð ð $Ð#€J�Ý
ˆ5•#Ô$ eØ�z 4°ð6ñ 6ô 6ð 6ð 6ð 6r$   c                 óP  — |                       t          j        ¬¦  «        \  }}|r€|                      d„ |¬¦  «        \  }}|�;|                      |d¬¦  «        \  }}|                      t          j        ||¦  «         |                       t          j        |¬¦  «        \  }}|°~d S d S )Nr‡   c                 óF   — t          | t          j        ¬¦  «        p| j        S r†   )r   r7   rÃ   Ú
is_newline)Útks    r   ú<lambda>z group_comments.<locals>.<lambda>=  s   € •s˜2¥¤Ð+Ñ+Ô+Ð<¨r¬}€ r$   )r   F)Úskip_wsr¥   )r”   r7   rÃ   Útoken_not_matchingÚ
token_prevr   r   ©r   r   r   ÚeidxÚends        r   Úgroup_commentsrÐ   8  sË   € à×%Ò%­¬	Ð%Ñ2Ô2�K€Dˆ%Ø
ð AØ×,Ò,Ø<Ð<À$ð -ñ Hô H‰	ˆˆcàˆ?Ø×(Ò(¨°uÐ(Ñ=Ô=‰IˆD�#Ø×Ò�sœ{¨D°$Ñ7Ô7Ð7à×)Ò)­A¬I¸4Ð)Ñ@Ô@‰ˆˆeð ð Að Að Að Að Ar$   c                 ó²  — |                       t          j        j        ¬¦  «        \  }}|r¬|                       t          j        j        |¬¦  «        \  }}|€| j        d         }n| j        |dz
           }|                      |¦  «        }|                      t          j        ||¦  «         |                       t          j        j        |¬¦  «        \  }}|°ªd S d S )NrZ   r“   éÿÿÿÿé   )	r”   r   ÚWherer   r   Ú_groupable_tokensr   Útoken_indexr   rÍ   s        r   Úgroup_wherer×   E  sâ   € à×%Ò%­¬	Ô(8Ð%Ñ9Ô9�K€Dˆ%Ø
ð HØ×'Ò'­#¬)Ô*;ÀÐ'ÑFÔF‰	ˆˆcàˆ;ØÔ)¨"Ô-ˆCˆCà”,˜t a™xÔ(ˆCð × Ò  Ñ%Ô%ˆØ×Ò�3œ9 d¨DÑ1Ô1Ð1Ø×)Ò)­C¬IÔ,<À$Ð)ÑGÔG‰ˆˆeð ð Hð Hð Hð Hð Hr$   c                 óÖ  — t           j        t           j        t           j        t           j        t           j        t           j        f}|                      |t          j	        ¬¦  «        \  }}|r~|  
                    |¦  «        \  }}t          |t           j        ¦  «        r#|                      t           j        ||d¬¦  «         |                      |t          j	        |¬¦  «        \  }}|°|d S d S )Nrn   Trd   )ro   rp   r   )r   r&   rz   r)   rF   rž   r›   r”   r7   ÚNumberr©   r   r   )r   ÚI_ALIASr   r   rA   r}   s         r   Úgroup_aliasedrÛ   V  sÚ   € åŒ¥¤­c¬h½¼ÝŒ}�cœnð.€Gð ×%Ò%¨µ1´8Ð%Ñ<Ô<�K€Dˆ%Ø
ð KØ×&Ò& tÑ,Ô,‰ˆˆeÝ�e�Sœ^Ñ,Ô,ð 	HØ×Ò�sœ~¨t°TÀ$ÐÑGÔGÐGØ×)Ò)¨Gµq´xÀTÐ)ÑJÔJ‰ˆˆeð	 ð Kð Kð Kð Kð Kr$   c                 ó~  — d}d}d}| j         D ]M}|j                             ¦   «         dk    rd}|j                             ¦   «         dk    rd}|j        dk    rd}ŒN|r|r|sd S |                      t          j        ¬¦  «        \  }}|r´|                      |¦  «        \  }}t          |t          j	        ¦  «        rZ|                      |¦  «        \  }	}
|
rt          |
t          j
        ¦  «        r|	}n|}|                      t          j        ||¦  «         |                      t          j        |¬¦  «        \  }}|°²d S d S )NFÚCREATETÚTABLErS   r‡   r¥   )r   rk   Úupperr”   r7   rq   r©   r   r   r&   r¨   r   rz   )r   Ú
has_createÚ	has_tableÚhas_asÚ	tmp_tokenr   r   rA   r}   Úover_idxÚoverrÎ   s               r   Úgroup_functionsræ   c  so  € à€JØ€IØ€FØ”\ð ð ˆ	ØŒ?× Ò Ñ"Ô" hÒ.Ð.ØˆJØŒ?× Ò Ñ"Ô" gÒ-Ð-ØˆIØŒ?˜dÒ"Ð"ØˆFøØð �ið ¨ð Øˆà×%Ò%­¬Ð%Ñ/Ô/�K€Dˆ%Ø
ð 	>Ø×&Ò& tÑ,Ô,‰ˆˆeÝ�e�Sœ_Ñ-Ô-ð 	9Ø"×-Ò-¨dÑ3Ô3‰NˆH�dØð �
 4­¬Ñ2Ô2ð Ø��à�Ø×Ò�sœ|¨T°4Ñ8Ô8Ð8Ø×)Ò)­A¬F¸Ð)Ñ=Ô=‰ˆˆeð ð 	>ð 	>ð 	>ð 	>ð 	>r$   c                 óv  — |                       t          j        j        ¬¦  «        \  }}|rŽ|                      |¦  «        \  }}t          |t          j        t          j        ¬¦  «        r#|  	                    t          j        ||¦  «         |}|                       t          j        j        |¬¦  «        \  }}|°ŒdS dS )z,Group together Identifier and Asc/Desc tokenr‡   rn   r¥   N)
r”   r7   rN   ÚOrderrÌ   r   r   rF   rÙ   r   ©r   r   r   r@   Úprev_s        r   Úgroup_orderrë     s¿   € ð ×%Ò%­¬	¬Ð%Ñ8Ô8�K€Dˆ%Ø
ð GØ×&Ò& tÑ,Ô,‰ˆˆeÝˆu�œ­!¬(Ð3Ñ3Ô3ð 	Ø×Ò�sœ~¨t°TÑ:Ô:Ð:ØˆDØ×)Ò)­A¬I¬OÀÐ)ÑFÔF‰ˆˆeð ð Gð Gð Gð Gð Gr$   c                 óN  — |                       t          j        ¬¦  «        \  }}|r|                      |¦  «        \  }}t	          |t          j        ¦  «        r%|                      t          j        ||d¬¦  «         |}|                       t          j        |¬¦  «        \  }}|°}d S d S )N)ro   Trd   )ro   r   )r”   r   rÃ   rÌ   r   Ú	TokenListr   ré   s        r   Úalign_commentsrî   ‹  s·   € à×%Ò%­¬Ð%Ñ4Ô4�K€Dˆ%Ø
ð CØ×&Ò& tÑ,Ô,‰ˆˆeÝ�e�Sœ]Ñ+Ô+ð 	Ø×Ò�sœ}¨d°DÀÐÑFÔFÐFØˆDØ×)Ò)­C¬K¸TÐ)ÑBÔB‰ˆˆeð ð Cð Cð Cð Cð Cr$   c                 ó  — |                       t          j        df¬¦  «        \  }}|}d}|r6t          |t          j        ¦  «        r|}|                      |¦  «        \  }}|°6|dk    r%|                      t          j        ||d¬¦  «         d S d S )NÚVALUESrZ   rÒ   Trd   )	r”   r7   rN   r   r   r&   r©   r   ÚValues)r   r   r   Ú	start_idxÚend_idxs        r   Úgroup_valuesrô   –  s¦   € Ø×%Ò%­¬°HÐ(=Ð%Ñ>Ô>�K€Dˆ%Ø€IØ€GØ
ð -Ý�e�Sœ_Ñ-Ô-ð 	ØˆGØ×&Ò& tÑ,Ô,‰ˆˆeð ð -ð �"‚}€}Ø×Ò�3œ: y°'À$ÐÑGÔGÐGÐGÐGð €}r$   c                 óR  — t           t          t          t          t          t
          t          t          t          t          t          t          t          t          t          t          t           t"          t$          t&          t(          t*          t,          t.          t0          fD ]} || ¦  «         Œ| S r    )rÐ   r#   r'   r*   r-   r0   r3   rª   ræ   r×   r~   r±   r¦   rë   rJ   rW   rf   r¹   r£   rŒ   rÛ   r˜   rî   rÄ   rô   )ÚstmtÚfuncs     r   Úgrouprø   ¢  sv   € åõ 	ÝÝÝÝÝåÝÝÝÝÝÝÝÝÝÝÝÝÝÝåÝÝð;ð ð ˆð> 	ˆˆT‰
Œ
ˆ
ˆ
Ø€Kr$   c                 ó   — dS rx   r;   r‡   s    r   rÉ   rÉ   Ç  ó   €  € r$   c                 ó   — dS rx   r;   r‡   s    r   rÉ   rÉ   È  rú   r$   NTc           
      óÈ  — d}d\  }	}
t          t          | ¦  «        ¦  «        D ]½\  }}||z
  }|dk     rŒ|j        rŒ|r,|j        r%t	          ||¦  «        st          |||||||¦  «          ||¦  «        rg|                      |¦  «        \  }}|
rM ||
¦  «        rB ||¦  «        r7 || |	||¦  «        \  }}|                      ||||¬¦  «        }|||z
  z  }||}
}	Œ¹||}
}	Œ¾dS )zDGroups together tokens that are joined by a middle token. i.e. x < yr   )NNrd   N)r   r	   r
   r   r   rE   r©   r   )r   r   r   rH   rI   rB   re   r   r   r@   rê   r   r   r   rA   r}   Úfrom_idxÚto_idxÚgrps                      r   rE   rE   Æ  sM  € ð €KØ�K€Dˆ%Ý¥ U¡¤Ñ,Ô,ð "ð "‰
ˆˆUØ�[Ñ ˆØ�!Š8ˆ8ØàÔð 	Øàð 	L�u”~ð 	L­j¸ÀÑ.DÔ.Dð 	LÝ�5˜#˜u j°*¸dÀFÑKÔKÐKàˆ5�‰<Œ<ð 	Ø×*Ò*¨4Ñ0Ô0‰KˆD�%Øð ˜˜ EÑ*Ô*ð ¨z¨z¸%Ñ/@Ô/@ð Ø#' 4¨¨t°T¸4Ñ#@Ô#@Ñ �˜&Ø×(Ò(¨¨h¸ÀvÐ(ÑNÔN�à˜v¨Ñ0Ñ0�Ø&¨�e�Øà˜Eˆeˆˆð+"ð "r$   )3Úsqlparser   r   r7   Úsqlparse.utilsr   r   rÙ   ÚIntegerÚFloatrŸ   rr   r|   rs   r    rq   ÚPlaceholderr¡   r   r#   r'   r*   r-   r0   r3   rJ   rW   rf   r~   rŒ   r˜   r£   rF   r¦   r¨   rª   r±   r¹   rÄ   rÃ   rÐ   rÔ   r×   rÛ   rz   ræ   rë   rî   rô   rø   rE   r;   r$   r   ú<module>r     s,  ðð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'àŒx˜œÔ)¨1¬8¬>Ð:€ØŒH�a”h”o q¤x¤Ð7€Ø
Œ&�!”&Ô$Ð	%€ð 0ð  0ð  0ðF/ð /ð /ð,ð ,ð ,ð%ð %ð %ð#ð #ð #ð$ð $ð $ð&ð &ð &ðGð Gð GðGð Gð Gð(ð ð ð<Gð Gð Gð<Gð Gð Gð"Gð Gð Gð"7ð 7ð 7ð0 	€ˆŒÑÔð>ð >ñ Ôð>ð 	€ˆŒÑÔðGð Gñ ÔðGðEð Eð Eð(7ð 7ð 7ð.6ð 6ð 6ð* 	€ˆŒÑÔð	Að 	Añ Ôð	Að 	€ˆŒÑÔðHð Hñ ÔðHð  	€�„ð	Kð 	Kñ „ð	Kð 	€ˆŒÑÔð>ð >ñ Ôð>ð6 	€ˆŒÑÔðGð Gñ ÔðGð 	€�„ðCð Cñ „ðCð	Hð 	Hð 	Hð!ð !ð !ðJ %�nØ$�nØØØð "ð  "ð  "ð  "ð  "ð  "r$   