
    }i                     V    d dl mZmZ d Z G d d      Z G d d      Z G d d      Zy	)
    )BinaryWriterBinaryReaderc                      ddd dS )Nr   )itaglastModifiedxtags r	       @/usr/local/lib/python3.12/dist-packages/pytubefix/sabr/common.pycreate_base_format_idr      s     r
   c                   6    e Zd Zeddefd       Zedd       Zy)FormatIdNmessagec                 h   |
t               }| j                  dd      dk7  r#|j                  d      j                  | d          | j                  dd      dk7  r#|j                  d      j	                  | d          | j                  dd       #|j                  d      j                  | d          |S )Nr   r      r      r      )r   getuint32int32uint64stringr   writers     r   encodezFormatId.encode   s    >!^F;;vq!Q&MM!""76?3;;~q)Q.MM"$$W^%<=;;w%1MM"$$WW%56r
   c                    t        | t              r| n
t        |       }||j                  n|j                  |z   }t	               }|j                  |k  r|j                         }|dz	  }|dk(  r|dk(  r|j                         |d<   B|dk(  r|dk(  r|j                         |d<   `|dk(  r|dk(  r|j                         |d	<   ~|d
z  dk(  s|dk(  r	 |S |j                  |d
z         |j                  |k  r|S )N      r   r      r   r   r   r         r   )

isinstancer   lenposr   r   r   r   r   skip
input_datalengthreaderendr   tagfield_nos          r   decodezFormatId.decode   s    )*lCV`Ia"Nfjj

V0C')jj3--/CaxH1}"(,,.Q3"9*0--/'Q3"9#)==? aA~ KKa  jj3  r
   N__name__
__module____qualname__staticmethoddictr   r-   r	   r
   r   r   r      s/        r
   r   c                   8    e Zd ZddZedd       Zedd       Zy)	InitRangec                      || _         || _        y r.   startr*   )selfr9   r*   s      r   __init__zInitRange.__init__6   s    
r
   Nc                 
   |
t               }| j                  dk7  r,|j                  d       |j                  | j                         | j                  dk7  r,|j                  d       |j                  | j                         |S )Nr   r   r   )r   r9   r   r   r*   r   s     r   r   zInitRange.encode:   sc    >!^F==AMM!LL';;!MM"LL%r
   c                    t        | t              r| n
t        |       }||j                  n|j                  |z   }t	               }|j                  |k  r|j                         }|dz	  }|dk(  r|dk(  r|j                         |_        D|dk(  r|dk(  r|j                         |_        d|dz  dk(  s|dk(  r	 |S |j                  |dz         |j                  |k  r|S )	Nr   r   r   r   r   r    r!   r   )
r"   r   r#   r$   r6   r   r   r9   r*   r%   r&   s          r   r-   zInitRange.decodeF   s    )*lCV`Ia"Nfjj

V0C+jj3--/CaxH1} &Q3"9$llnaA~ KKa  jj3 r
   )r   r   r.   )r0   r1   r2   r;   r3   r   r-   r	   r
   r   r6   r6   5   s/     	 	  r
   r6   c                   6    e Zd Zeddefd       Zedd       Zy)
IndexRangeNr   c                     |
t               }| j                  dd      dk7  r#|j                  d      j                  | d          | j                  dd      dk7  r#|j                  d      j                  | d          |S )Nr9   r   r   r*   r   )r   r   r   r   r   s     r   r   zIndexRange.encodeZ   sp    >!^F;;w"a'MM!""77#34;;ua A%MM"##GEN3r
   c                    t        | t              r| n
t        |       }||j                  n|j                  |z   }ddd}|j                  |k  r|j	                         }|dz	  }|dk(  r|dk(  r|j                         |d<   B|dk(  r|dk(  r|j                         |d	<   `|d
z  dk(  s|dk(  r	 |S |j                  |d
z         |j                  |k  r|S )Nr   r8   r   r   r   r9   r   r   r*   r    r!   )r"   r   r#   r$   r   r   r%   r&   s          r   r-   zIndexRange.decodeg   s    )*lCV`Ia"Nfjj

V0C
 jj3--/CaxH1}#)<<> Q3"9!'aA~ KKa  jj3 r
   r.   r/   r	   r
   r   r?   r?   Y   s/    
 
 
  r
   r?   N)pytubefix.sabr.protor   r   r   r   r6   r?   r	   r
   r   <module>rC      s/    <& &P" "H" "r
   