
    vKgD                     <   S SK r S SKrS SKrS SKJrJrJrJr  \R                  S    S:H  r	Sr
Sr " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    N)openBytesIOSEEK_CURSEEK_END   z0.10)r   
   c                   \    \ rS rSrS rS rS rS r\S 5       r	\S 5       r
\S 5       rS	rg
)KaitaiStruct   c                     Xl         g N_io)selfstreams     L/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/kaitaistruct.py__init__KaitaiStruct.__init__   s        c                     U $ r    r   s    r   	__enter__KaitaiStruct.__enter__       r   c                 $    U R                  5         g r   closer   argskwargss      r   __exit__KaitaiStruct.__exit__"       

r   c                 8    U R                   R                  5         g r   r   r   r   s    r   r   KaitaiStruct.close%       r   c                 |    [        US5      n U " [        U5      5      $ ! [         a    UR                  5         e f = f)Nrb)r   KaitaiStream	Exceptionr   )clsfilenamefs      r   	from_fileKaitaiStruct.from_file(   s=    4 	|A'' 	GGI	s    ;c                 6    U " [        [        U5      5      5      $ r   )r+   r   )r-   bufs     r   
from_bytesKaitaiStruct.from_bytes2   s    <-..r   c                 $    U " [        U5      5      $ r   )r+   )r-   ios     r   from_ioKaitaiStruct.from_io6   s    <#$$r   r   N)__name__
__module____qualname____firstlineno__r   r   r"   r   classmethodr0   r4   r8   __static_attributes__r   r   r   r
   r
      sR       / / % %r   r
   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  " S
5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      rS rS rS rS rS r S r!S r"S r#S  r$S! r%S" r&S# r'S$ r(S% r)\R                  " S&5      r*\R                  " S'5      r+\R                  " S(5      r,\R                  " S)5      r-S* r.S+ r/S, r0S- r1S. r2S/ r3S0 r4S1 r5S2 r6S3 r7S4 r8S5 r9\:S6 5       r;\:S7 5       r<\:S8 5       r=\:S9 5       r>\:S: 5       r?\:S; 5       r@\:S< 5       rA\:S= 5       rB\:S> 5       rC\:S? 5       rD\:S@ 5       rESArFgB)Cr+   ;   c                 0    Xl         U R                  5         g r   )r   align_to_byte)r   r7   s     r   r   KaitaiStream.__init__<   s    r   c                     U $ r   r   r   s    r   r   KaitaiStream.__enter__@   r   r   c                 $    U R                  5         g r   r   r   s      r   r"   KaitaiStream.__exit__C   r$   r   c                 8    U R                   R                  5         g r   r&   r   s    r   r   KaitaiStream.closeF   r(   r   c                     U R                   S:  a  gU R                  nUR                  S5      nUS:X  a  gUR                  S[        5        g)Nr   F   r   T)	bits_leftr   readseekr   )r   r7   ts      r   is_eofKaitaiStream.is_eofM   sB    >>AXXGGAJ8
Hr   c                 :    U R                   R                  U5        g r   )r   rP   r   ns     r   rP   KaitaiStream.seekY   s    ar   c                 6    U R                   R                  5       $ r   )r   tellr   s    r   posKaitaiStream.pos\       xx}}r   c                     U R                   nUR                  5       nUR                  S[        5      nUR                  U5        U$ Nr   )r   rY   rP   r   )r   r7   cur_pos	full_sizes       r   sizeKaitaiStream.size_   s:     XX'')GGAx(	
r   bz>hz>iz>qz<hz<iz<qBz>Hz>Iz>Qz<Hz<Iz<Qc                 d    [         R                  R                  U R                  S5      5      S   $ NrL   r   )r+   	packer_s1unpack
read_bytesr   s    r   read_s1KaitaiStream.read_s1   '    %%,,T__Q-?@CCr   c                 d    [         R                  R                  U R                  S5      5      S   $ Nr   r   )r+   packer_s2berh   ri   r   s    r   	read_s2beKaitaiStream.read_s2be   '    ''..tq/AB1EEr   c                 d    [         R                  R                  U R                  S5      5      S   $ N   r   )r+   packer_s4berh   ri   r   s    r   	read_s4beKaitaiStream.read_s4be   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ N   r   )r+   packer_s8berh   ri   r   s    r   	read_s8beKaitaiStream.read_s8be   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rn   )r+   packer_s2lerh   ri   r   s    r   	read_s2leKaitaiStream.read_s2le   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rt   )r+   packer_s4lerh   ri   r   s    r   	read_s4leKaitaiStream.read_s4le   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rz   )r+   packer_s8lerh   ri   r   s    r   	read_s8leKaitaiStream.read_s8le   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rf   )r+   	packer_u1rh   ri   r   s    r   read_u1KaitaiStream.read_u1   rl   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rn   )r+   packer_u2berh   ri   r   s    r   	read_u2beKaitaiStream.read_u2be   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rt   )r+   packer_u4berh   ri   r   s    r   	read_u4beKaitaiStream.read_u4be   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rz   )r+   packer_u8berh   ri   r   s    r   	read_u8beKaitaiStream.read_u8be   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rn   )r+   packer_u2lerh   ri   r   s    r   	read_u2leKaitaiStream.read_u2le   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rt   )r+   packer_u4lerh   ri   r   s    r   	read_u4leKaitaiStream.read_u4le   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rz   )r+   packer_u8lerh   ri   r   s    r   	read_u8leKaitaiStream.read_u8le   rr   r   z>fz>dz<fz<dc                 d    [         R                  R                  U R                  S5      5      S   $ rt   )r+   packer_f4berh   ri   r   s    r   	read_f4beKaitaiStream.read_f4be   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rz   )r+   packer_f8berh   ri   r   s    r   	read_f8beKaitaiStream.read_f8be   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rt   )r+   packer_f4lerh   ri   r   s    r   	read_f4leKaitaiStream.read_f4le   rr   r   c                 d    [         R                  R                  U R                  S5      5      S   $ rz   )r+   packer_f8lerh   ri   r   s    r   	read_f8leKaitaiStream.read_f8le   rr   r   c                      SU l         SU l        g r^   )rN   bitsr   s    r   rC   KaitaiStream.align_to_byte   s    	r   c                    SnXR                   -
  nU* S-  U l         US:  aj  US-
  S-  S-   nU R                  U5      n[        (       a  [        U5      nU H  nUS-  U-  nM     UnX R                   -	  U R                  U-  -  nXpl        OU R                  U* -	  nSU R                   -  S-
  nU =R                  U-  sl        U$ )Nr   r{   rL   )rN   ri   PY2	bytearrayr   )	r   rV   resbits_neededbytes_neededr3   bytenew_bitsmasks	            r   read_bits_int_beKaitaiStream.read_bits_int_be   s    ..(%)? )1_2a7L//,/CsnQho  H'$)){*BBC I))|+CT^^#q(		T	
r   c                 $    U R                  U5      $ r   )r   rU   s     r   read_bits_intKaitaiStream.read_bits_int  s    $$Q''r   c                    SnXR                   -
  nUS:  av  US-
  S-  S-   nU R                  U5      n[        (       a  [        U5      n[	        U5       H  u  pgX'US-  -  -  nM     X#-	  nX R                   -  U R
                  -  nXl        O!U R
                  nU =R
                  U-  sl        U* S-  U l         SU-  S-
  n	X)-  nU$ )Nr   rL   r{   )rN   ri   r   r   	enumerater   )
r   rV   r   r   r   r3   ir   r   r   s
             r   read_bits_int_leKaitaiStream.read_bits_int_le  s    ..(? )1_2a7L//,/Csn$S>A& * )H'$))3C I))CII!OI%)Q!|
r   c                    US:  a  [        SU4-  5      eSnUS:  ai  [        [        U R                  SS 5      5      (       aD  U R                  R	                  5       (       a%  U R                  5       U R                  5       -
  nX:*  nU(       a*  U R                  R                  U5      n[        U5      nX:*  nU(       d  [        SUW4-  5      eW$ )Nr   z$requested invalid %d amount of bytesTi   seekablez/requested %d bytes, but only %d bytes available)

ValueErrorcallablegetattrr   r   ra   rZ   rO   lenEOFError)r   rV   is_satisfiablenum_bytes_availablers        r   ri   KaitaiStream.read_bytes(  s    q56 
   :t<==!!##"&))+
":6Na A"%a&6NA'()  r   c                 6    U R                   R                  5       $ r   )r   rO   r   s    r   read_bytes_fullKaitaiStream.read_bytes_fullN  r\   r   c                    Sn U R                   R                  S5      nUS:X  a  U(       a  [        SU4-  5      eU$ [        U5      U:X  a4  U(       a  XV-  nU(       d   U R                   R	                  S[
        5        U$ XV-  nM  )Nr   rL   z1end of stream reached, but no terminator %d foundrM   )r   rO   r,   ordrP   r   )r   terminclude_termconsume_term	eos_errorr   cs          r   read_bytes_termKaitaiStream.read_bytes_termQ  s    a ACx#K  
 1v~FA#HHMM"h/FA% r   c                 ~    U R                   R                  [        U5      5      nX!:w  a  [        SU< SU< 35      eU$ )Nzunexpected fixed contents: got z, was waiting for )r   rO   r   r,   )r   expectedactuals      r   ensure_fixed_contents"KaitaiStream.ensure_fixed_contentsg  s<    s8}-#  r   c                 J    U R                  [        R                  U5      5      $ r   )rstripr+   byte_from_int)datapad_bytes     r   bytes_strip_rightKaitaiStream.bytes_strip_rightp  s    {{<55h?@@r   c                 j    U R                  [        R                  U5      5      u  p4nU(       a  X4-  nU$ r   )	partitionr+   r   )r   r   r   new_data	term_byte_s         r   bytes_terminateKaitaiStream.bytes_terminatet  s0    !%0J0J40P!QQ!Hr   c                    ^ [         (       a'  [        [        U4S j[        U 5       5       5      5      $ [        U4S jU  5       5      $ )Nc              3   *   >#    U H	  oT-  v   M     g 7fr   r   .0vkeys     r   	<genexpr>/KaitaiStream.process_xor_one.<locals>.<genexpr>  s     "DOqs7O   c              3   *   >#    U H	  oT-  v   M     g 7fr   r   r   s     r   r   r     s     +dWdr   )r   bytesr   r   r   s    `r   process_xor_oneKaitaiStream.process_xor_one  s3    3"DIdO"DDEE+d+++r   c                    [         (       aK  [        [        S [        [        U 5      [        R
                  " [        U5      5      5       5       5      5      $ [        S [        U [        R
                  " U5      5       5       5      $ )Nc              3   ,   #    U H  u  pX-  v   M     g 7fr   r   r   arc   s      r   r   0KaitaiStream.process_xor_many.<locals>.<genexpr>  s     "k5jTQ155j   c              3   ,   #    U H  u  pX-  v   M     g 7fr   r   r  s      r   r   r	    s     G'FtqQU'Fr
  )r   r  r   zip	itertoolscycler  s     r   process_xor_manyKaitaiStream.process_xor_many  sY    3"kS4)//ZcdgZhJi5j"kkllGs41E'FGGGr   c                     US:w  a  [        SU4-  5      eU* US-  -  n[        U 5      n[        U5       H  u  pVXa-  S-  Xc-	  -  XE'   M     [        U5      $ )NrL   z&unable to rotate group of %d bytes yetr{      )r,   r   r   r  )r   amount
group_sizeanti_amountr   r   r   s          r   process_rotate_left KaitaiStream.process_rotate_left  sm    ?8 
 ga0dO |GANd*d.ABAD $Qxr   c                 2    [         (       a  [        U 5      $ U $ r   )r   r   )r   s    r   int_from_byteKaitaiStream.int_from_byte  s    s1v#!#r   c                 F    [         (       a  [        U 5      $ [        U 45      $ r   )r   chrr  )r   s    r   r   KaitaiStream.byte_from_int  s    s1v-%+-r   c                 0    [         R                  X   5      $ r   )r+   r  )r   r   s     r   byte_array_indexKaitaiStream.byte_array_index  s    ))$'22r   c                 >    [         R                  [        U 5      5      $ r   )r+   r  minrc   s    r   byte_array_minKaitaiStream.byte_array_min      ))#a&11r   c                 >    [         R                  [        U 5      5      $ r   )r+   r  maxr#  s    r   byte_array_maxKaitaiStream.byte_array_max  r&  r   c                 8     U " U5      $ ! [          a    Us $ f = f)zResolves value using enum: if the value is not found in the map,
we'll just use literal value per se. Works around problem with Python
enums throwing an exception when encountering unknown value.
)r   )enum_objvalues     r   resolve_enumKaitaiStream.resolve_enum  s%    	E?" 	L	s   
 )r   r   rN   N)Gr:   r;   r<   r=   r   r   r"   r   rR   rP   rZ   ra   structStructrg   ro   rv   r|   r   r   r   r   r   r   r   r   r   r   rj   rp   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rC   r   r   r   ri   r   r   r   staticmethodr   r   r  r  r  r  r   r  r$  r)  r.  r?   r   r   r   r+   r+   ;   s   
" c"I--%K--%K--%K--%K--%K--%Kc"I--%K--%K--%K--%K--%K--%KDFFFFFFDFFFFFF --%K--%K--%K--%KFFFF<(@$L, A A   , , H H  $ $ $ . . 3 3 2 2 2 2  r   r+   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )KaitaiStructErrori  zCommon ancestor for all error originating from Kaitai Struct usage.
Stores KSY source path, pointing to an element supposedly guilty of
an error.
c                 F   > [         [        U ]  U< SU< 35        X l        g )Nz: )superr4  r   src_path)r   msgr7  	__class__s      r   r   KaitaiStructError.__init__  s    /Hc0JK r   )r7  r:   r;   r<   r=   __doc__r   r?   __classcell__r9  s   @r   r4  r4    s    ! !r   r4  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )UndecidedEndiannessErrori  zError that occurs when default endianness should be decided with
switch, but nothing matches (although using endianness expression
implies that there should be some positive result).
c                 .   > [         [        U ]  SU5        g )Nz)unable to decide on endianness for a type)r6  r@  r   )r   r7  r9  s     r   r   !UndecidedEndiannessError.__init__  s    &67bdlmr   r   r;  r>  s   @r   r@  r@    s    n nr   r@  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ValidationFailedErrori  zvCommon ancestor for all validation failures. Stores pointer to
KaitaiStream IO object which was involved in an error.
c                 `   > [         [        U ]  SUR                  5       U4-  U5        X l        g )Nz at pos %d: validation failed: %s)r6  rD  r   rZ   r7   )r   r8  r7   r7  r9  s       r   r   ValidationFailedError.__init__  s1    #T34VZ\Z`Z`ZbdgYh4hjrsr   )r7   r;  r>  s   @r   rD  rD    s     r   rD  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ValidationNotEqualErrori  zsSignals validation failure: we required "actual" value to be equal to
"expected", but it turned out that it's not.
c                 z   > [         [        U ]  S[        U5      < S[        U5      < 3X45        Xl        X l        g )Nznot equal, expected 
, but got )r6  rH  r   reprr   r   )r   r   r   r7   r7  r9  s        r   r    ValidationNotEqualError.__init__  s6    %t5^bck^lnrsynz6{}  	K r   )r   r   r;  r>  s   @r   rH  rH         r   rH  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ValidationLessThanErrori  z~Signals validation failure: we required "actual" value to be
greater than or equal to "min", but it turned out that it's not.
c                 z   > [         [        U ]  S[        U5      < S[        U5      < 3X45        Xl        X l        g )Nznot in range, min rJ  )r6  rO  r   rK  r"  r   )r   	min_boundr   r7   r7  r9  s        r   r    ValidationLessThanError.__init__  s6    %t5\`aj\kmqrxmy6z|~  	Jr   )r   r"  r;  r>  s   @r   rO  rO    rM  r   rO  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ValidationGreaterThanErrori  z{Signals validation failure: we required "actual" value to be
less than or equal to "max", but it turned out that it's not.
c                 z   > [         [        U ]  S[        U5      < S[        U5      < 3X45        Xl        X l        g )Nznot in range, max rJ  )r6  rT  r   rK  r(  r   )r   	max_boundr   r7   r7  r9  s        r   r   #ValidationGreaterThanError.__init__  s:    ($8_cdm_nptu{p|9}  @B  	Mr   )r   r(  r;  r>  s   @r   rT  rT    rM  r   rT  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ValidationNotAnyOfErrori  zmSignals validation failure: we required "actual" value to be
from the list, but it turned out that it's not.
c                 R   > [         [        U ]  S[        U5      -  X#5        Xl        g )Nznot any of the list, got %s)r6  rY  r   rK  r   r   r   r7   r7  r9  s       r   r    ValidationNotAnyOfError.__init__  s(    %t56SW[\bWc6dfhsr   r   r;  r>  s   @r   rY  rY         r   rY  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ValidationExprErrori  zsSignals validation failure: we required "actual" value to match
the expression, but it turned out that it doesn't.
c                 R   > [         [        U ]  S[        U5      -  X#5        Xl        g )Nz#not matching the expression, got %s)r6  r`  r   rK  r   r[  s       r   r   ValidationExprError.__init__  s(    !412W[_`f[g2hjlwr   r]  r;  r>  s   @r   r`  r`    r^  r   r`  )r  sysr0  r7   r   r   r   r   version_infor   __version__API_VERSIONobjectr
   r+   r,   r4  r@  rD  rH  rO  rT  rY  r`  r   r   r   <module>rh     s     
  0 0	qQ 
 %6 %@B6 BJ!	 !n0 n- 3 3 !6 3 / r   