
    h                        S r SSKrS r\R                  S\S\S\R                  S\R                  4S j5       r\R                  " S	S
S9\R                  S\S\R                  S\R                  4S j5       5       r	\R                  " S	S
S9\R                  S\S\R                  S\R                  S\R                  4S j5       5       r
\R                  " S	S
S9\R                  S\S\R                  S\R                  S\R                  S\R                  4
S j5       5       r \R                  " S	S
S9\R                  S\S\R                  S\R                  4S j5       5       rg)a%  
Build a line table for CodeObjects, according to PEP-626 / Python 3.11.

See  https://github.com/python/cpython/blob/1054a755a3016f95fcd24b3ad20e8ed9048b7939/InternalDocs/locations.md
See  https://github.com/python/cpython/blob/1054a755a3016f95fcd24b3ad20e8ed9048b7939/Python/assemble.c#L192
    Nc                 \    / nUnU  H  n[        X$U5      nM     SR                  U5      n U$ )N )encode_single_positionjoin)	positionsfirstlinenotable_byteslast_linenoposition_info	linetables         S/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Compiler/LineTable.pybuild_line_tabler      s=    KK",[U #$I     r	   r   r
   returnc                 x   Uu  p4pVX2:  d   U SU 35       eX2-
  nXC:X  aV  US:X  a&  US:  a   SXe-
  s=::  a  S:  a  O  O[        XU5        U$ SUs=::  a  S:  a  O  OUS:  a  US:  a  [        XXV5        U$ [        U S5        [        XS-  5        [        XU-
  5        [        XS-   5        [        XS-   5        U$ )	Nz >= r   P                  )encode_location_shortencode_location_onelineencode_location_startencode_varint)r	   r   r
   start_lineno
end_linenostart_column
end_columnlast_lineno_deltas           r   r   r      s     :G6Ll&J<.[M(JJ&$0$>!!lR&7A*B[<a_a<a!+ZH#'a'L3,>:PSCS#KL] +r*+A56+L89+a/0+A~.r   F)checkcodec                 D    U R                  [        SUS-  -  5      5        g)Nr   r   r   appendchr)r	   r#   s     r   r   r   @   s#    
 s3$!),-.r   r   r   c                 b    US-  nUS-	  nU R                  SUS-  -  S US-  X!-
  -  S 35        g)N   r   r   c   r   r&   )r	   r   r   low_bitsr#   s        r   r   r   I   sN     (!+H#q(D#+A.A*B[/\]^._`ar   
line_deltac                 N    SU-   nU R                  SUS-  -  S US US 35        g)N
   r   r   r*   r   r,   )r	   r.   r   r   r#   s        r   r   r   S   s<     JD#+A.|A.>z!nMNr   valuec                     US:  d  US:X  d   eUS:  a-  U R                  [        SUS-  -  5      5        US-  nUS:  a  M-  U R                  [        U5      5        g)Nr   @   ?      r%   )r	   r1   s     r   r   r   j   sc     19
""
2+3rURZ012! 2+ s5z"r   )__doc__cythonr   cfunclisttupleintr   	exceptvalr   r   r   uintr    r   r   <module>r?      s   (  U QWQ[Q[ `f`j`j  @ "E"t 6:: &**   # "E"t 6:: SYS]S] bhblbl   # "E" 6:: U[U_U_ msmwmw   }C  }G  }G   # "E"t FKK FJJ   #r   