+
    œ°³j²[  ã                   óF  € ^ RI t ^ RIHt ^ RIt^ RIHt ^ RIHu Ht ^ RI	H
u Hu Ht ^ RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHtHt ^RIH t H!t!H"t" ^RI#H$t$ ^RI%H&t& ^RI'H(t(H)t) ^RI*H+t+H,t,H-t-H.t.H/t/ ^RI0H1t1H2t2 ^RI3H4t4 ^RI5H6t6 ^RI7H8t8 ^RI9H:t:H;t; ]/Px                  ! ]=4      t>],! RR7      ] ! R R]84      4       4       t? ! R R]:4      t@],! RR7      ] ! R R]4      4       4       tA ! R R]P„                  4      tC ! R R ]P„                  4      tD ! R! R"]&4      tE ! R# R$];4      tF ! R% R&]E4      tG ! R' R(]E4      tH],] ! R) R*]$4      4       4       tI],! R+R,7       ! R- R.]E4      4       tJ],]4! R2R/7       ! R0 R1]4      4       4       tK. R3OtLR# )4é    N)Ú	dataclass)Ústrict)Úinitialization)ÚACT2CLS)Úfilter_output_hidden_states)ÚPreTrainedConfig)ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚIMAGENET_DEFAULT_MEANÚIMAGENET_DEFAULT_STDÚSizeDict)ÚBaseModelOutput)ÚPreTrainedModel)ÚImagesKwargsÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚis_torchdynamo_compilingÚlogging)Ú
TensorTypeÚmerge_with_config_defaults)Úrequires)Úcapture_outputs)ÚGotOcr2VisionConfig)ÚGotOcr2VisionAttentionÚGotOcr2VisionEncoderz&PaddlePaddle/SLANeXt_wired_safetensors)Ú
checkpointc                   ó0   a € ] tR t^2t o RtV 3R ltRtV tR# )ÚSLANeXtVisionConfigé   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )é   Ú
image_size)Úint)ÚformatÚ__classdict__s   "€Úl/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/slanext/modular_slanext.pyÚ__annotate__Ú SLANeXtVisionConfig.__annotate__2   s   ø‡ ‚ ñ Ñò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r&   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r)   s   @r*   r"   r"   2   s   ø‡ € ð €J÷ ƒ r-   r"   c                   ó   € ] tR t^8tRtR# )ÚSLANeXtVisionAttentionr.   N©r/   r0   r1   r2   r4   r.   r-   r*   r8   r8   8   ó   † Ûr-   r8   c                   óf   a a€ ] tR t^<t oRtRtR]/tRtRt	Rt
^2tRtRtV 3R ltV3R	 ltR
tVtV ;t# )ÚSLANeXtConfigaž  
vision_config (`dict` or [`SLANeXtVisionConfig`], *optional*):
    Configuration for the vision encoder. If `None`, a default [`SLANeXtVisionConfig`] is used.
post_conv_in_channels (`int`, *optional*, defaults to 256):
    Number of input channels for the post-encoder convolution layer.
post_conv_out_channels (`int`, *optional*, defaults to 512):
    Number of output channels for the post-encoder convolution layer.
out_channels (`int`, *optional*, defaults to 50):
    Vocabulary size for the table structure token prediction head, i.e., the number of distinct structure
    tokens the model can predict.
hidden_size (`int`, *optional*, defaults to 512):
    Dimensionality of the hidden states in the attention GRU cell and the structure/location prediction heads.
max_text_length (`int`, *optional*, defaults to 500):
    Maximum number of autoregressive decoding steps (tokens) for the structure and location decoder.
ÚslanextÚvision_configNé   r#   iô  c                óØ   <€ V P                   f   \        4       V n         M:\        V P                   \        4      '       d   \        R/ V P                   B V n         \        SV `  ! R/ VB  R # ©Nr.   )r>   r"   Ú
isinstanceÚdictÚsuperÚ__post_init__©ÚselfÚkwargsÚ	__class__s   &,€r*   rE   ÚSLANeXtConfig.__post_init__Y   sS   ø€ Ø×ÑÒ%Ü!4Ó!6ˆDÕÜ˜×*Ñ*¬D×1Ò1Ü!4Ñ!J°t×7IÑ7IÑ!JˆDÔÜ‰ÒÑ' Ô'r-   c                ó€   <€ V ^8„  d   Qh/ S[ S[,          R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )r%   Nr>   Úpost_conv_in_channelsÚpost_conv_out_channelsÚout_channelsÚhidden_sizeÚmax_text_length)rC   r"   r'   )r(   r)   s   "€r*   r+   ÚSLANeXtConfig.__annotate__<   s^   ø‡ ‚ ñ, Ñ-Õ-°Õ4Ñ;ñ- ñ. Ñ$ñ/ ñ0  Ñ%ñ1 ñ2 Ññ3 ñ4 Ññ5 ñ6 Ñò7 r-   )r>   )r/   r0   r1   r2   Ú__doc__Ú
model_typer"   Úsub_configsr>   rL   rM   rN   rO   rP   rE   r3   r4   r5   Ú__classcell__©rI   r)   s   @@r*   r<   r<   <   sH   ù‡ € ñð  €JØ"Ð$7Ð8€Kà7;€MØ!$ÐØ"%ÐØ€LØ€KØ€Oõ(÷; … r-   r<   c                   óD   a a€ ] tR t^at oV 3R ltV3R lR ltRtVtV ;t# )ÚSLANeXtAttentionGRUCellc                ó  <€ \         SV `  4        \        P                  ! WR R7      V n        \        P                  ! W"4      V n        \        P                  ! V^R R7      V n        \        P                  ! W,           V4      V n        R# )F)ÚbiasN)	rD   Ú__init__ÚnnÚLinearÚinput_to_hiddenÚhidden_to_hiddenÚscoreÚGRUCellÚrnn)rG   Ú
input_sizerO   Únum_embeddingsrI   s   &&&&€r*   r[   Ú SLANeXtAttentionGRUCell.__init__b   s[   ø€ Ü‰ÑÔä!Ÿyšy¨ÀuÔMˆÔÜ "§	¢	¨+Ó CˆÔÜ—Y’Y˜{¨A°EÔ:ˆŒ
ä—:’:˜jÕ9¸;ÓGˆŽr-   c          	      ó~   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[S[,          /# )r%   Úprev_hiddenÚbatch_hiddenÚchar_onehotsrH   )ÚtorchÚFloatTensorr   r   )r(   r)   s   "€r*   r+   Ú$SLANeXtAttentionGRUCell.__annotate__k   sK   ø€ ÷ +ñ +á×&Ñ&ð+ñ ×'Ñ'ð+ñ ×'Ñ'ð	+ñ
 Ñ+Õ,ñ+r-   c                ó  € V P                  V4      pV P                  V4      P                  ^4      pWV,           p\        P                  ! V4      pV P                  V4      p\        P                  ! V^\        P                  R7      P                  VP                  4      pVP                  ^^4      p\        P                  ! W‚4      P                  ^4      p	\        P                  ! W“.^4      p
V P                  W¡4      pW¸3# )é   ©ÚdimÚdtype)r^   r_   Ú	unsqueezerj   Útanhr`   ÚFÚsoftmaxÚfloat32Útorq   Ú	transposeÚmatmulÚsqueezeÚcatrb   )rG   rg   rh   ri   rH   Úbatch_hidden_projÚprev_hidden_projÚattention_scoresÚattn_weightsÚcontextÚconcat_contextÚhidden_statess   &&&&,       r*   ÚforwardÚSLANeXtAttentionGRUCell.forwardk   sØ   € ð !×0Ñ0°Ó>ÐØ×0Ñ0°Ó=×GÑGÈÓJÐà,Õ?ÐÜ Ÿ:š:Ð&6Ó7ÐØŸ:™:Ð&6Ó7Ðä—y’yÐ!1°qÄÇÁÔN×QÑQÐRb×RhÑRhÓiˆØ#×-Ñ-¨a°Ó3ˆÜ—,’,˜|Ó:×BÑBÀ1ÓEˆÜŸš GÐ#:¸AÓ>ˆØŸ™ Ó=ˆàÐ*Ð*r-   )r_   r^   rb   r`   ©	r/   r0   r1   r2   r[   rƒ   r4   r5   rU   rV   s   @@r*   rX   rX   a   s   ù‡ € õH÷+÷ +ð +r-   rX   c                   ó<   a a€ ] tR t^‚t oRV 3R lltR tRtVtV ;t# )Ú
SLANeXtMLPc                óþ   <€ \         SV `  4        \        P                  ! W4      V n        \        P                  ! W4      V n        Vf   \        P                  ! 4       V n        R # \        V,          ! 4       V n        R # ©N)	rD   r[   r\   r]   Úfc1Úfc2ÚIdentityr   Úact_fn)rG   rO   rN   Ú
activationrI   s   &&&&€r*   r[   ÚSLANeXtMLP.__init__ƒ   sN   ø€ Ü‰ÑÔÜ—9’9˜[Ó6ˆŒÜ—9’9˜[Ó7ˆŒØ'1Ò'9”b—k’k“mˆŽ¼wÀzÖ?RÓ?TˆŽr-   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r‰   )rŠ   r‹   r�   )rG   r‚   s   &&r*   rƒ   ÚSLANeXtMLP.forward‰   s2   € ØŸ™ Ó/ˆØŸ™ Ó/ˆØŸ™ MÓ2ˆØÐr-   )r�   rŠ   r‹   r‰   r…   rV   s   @@r*   r‡   r‡   ‚   s   ù‡ € ÷U÷ò r-   r‡   c                   ó~   a a€ ] tR t^�t oRtRtR	tRtRR.t]	P                  ! 4       V 3R l4       tV3R ltRtVtV ;t# )
ÚSLANeXtPreTrainedModelÚbackboneÚpixel_valuesTÚstructure_attention_cellÚstructure_generatorc                ón  <€ \         SV `  V4       \        V\        4      '       d0   VP                  e"   \
        P                  ! VP                  R4       \        V\        4      '       dU   VP                  '       dC   \
        P                  ! VP                  R4       \
        P                  ! VP                  R4       \        V\        P                  4      '       dã   VP                  ^ 8”  d(   R\        P                  ! VP                  4      ,          M^ p\
        P                   ! VP"                  V) V4       \
        P                   ! VP$                  V) V4       VP&                  e$   \
        P                   ! VP&                  V) V4       VP(                  e$   \
        P                   ! VP(                  V) V4       \        V\*        4      '       dÞ   R\        P                  ! V P,                  P                  R,          4      ,          pVP.                  3 F’  pVP1                  4        F{  p\        V\        P2                  4      '       g   K%  \
        P                   ! VP4                  V) V4       VP6                  f   KX  \
        P                   ! VP6                  V) V4       K}  	  K”  	  R# R# )zInitialize the weightsNg        g      ð?)rD   Ú_init_weightsrB   ÚSLANeXtVisionEncoderÚ	pos_embedÚinitÚ	constant_r8   Úuse_rel_posÚ	rel_pos_hÚ	rel_pos_wr\   ra   rO   ÚmathÚsqrtÚuniform_Ú	weight_ihÚ	weight_hhÚbias_ihÚbias_hhÚSLANeXtSLAHeadÚconfigr—   Úchildrenr]   ÚweightrZ   )rG   ÚmoduleÚstdÚ	generatorÚlayerrI   s   &&   €r*   r™   Ú$SLANeXtPreTrainedModel._init_weights˜   sÕ  ø€ ô 	‰Ñ˜fÔ%ô �fÔ2×3Ò3Ø×ÑÒ+Ü—’˜v×/Ñ/°Ô5ô �fÔ4×5Ò5Ø×!×!Ð!Ü—’˜v×/Ñ/°Ô5Ü—’˜v×/Ñ/°Ô5ô �fœbŸj™j×)Ò)Ø9?×9KÑ9KÈaÔ9O�#œŸ	š	 &×"4Ñ"4Ó5Ö5ÐUVˆCÜ�MŠM˜&×*Ñ*¨S¨D°#Ô6Ü�MŠM˜&×*Ñ*¨S¨D°#Ô6Ø�~‰~Ò)Ü—’˜fŸn™n¨s¨d°CÔ8Ø�~‰~Ò)Ü—’˜fŸn™n¨s¨d°CÔ8ô �fœn×-Ò-ØœŸ	š	 $§+¡+×"9Ñ"9¸CÕ"?Ó@Õ@ˆCà$×8Ñ8Ó:�	Ø&×/Ñ/Ö1�EÜ! %¬¯©×3Ô3ÜŸš e§l¡l°S°D¸#Ô>Ø Ÿ:™:Ô1Ü ŸMšM¨%¯*©*°s°d¸CÖ@ó	 2ó ;ñ .r-   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # ©r%   r©   ©r<   )r(   r)   s   "€r*   r+   Ú#SLANeXtPreTrainedModel.__annotate__�   s   ø‡ ‚ ÙÑò r-   r.   )Úimage)r/   r0   r1   r2   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_keep_in_fp32_modules_strictrj   Úno_gradr™   r3   r4   r5   rU   rV   s   @@r*   r“   r“   �   sI   ù‡ € à"ÐØ$€OØ!ÐØ&*Ð#Ø$>Ð@UÐ#VÐ à
‡]‚]ƒ_ô"Aó ð"A÷ … r-   r“   c                   ó   € ] tR t^¾tRtR# )rš   r.   Nr9   r.   r-   r*   rš   rš   ¾   r:   r-   rš   c                   óT   a a€ ] tR t^Ât oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚSLANeXtBackbonec                ó.   <€ V ^8„  d   QhRS[ R,          /# ©r%   r©   N©rC   )r(   r)   s   "€r*   r+   ÚSLANeXtBackbone.__annotate__Ã   s   ø€ ÷ 
ñ 
á�t•ñ
r-   c           	     óä   <€ \         SV `  V4       \        VP                  4      V n        \
        P                  ! VP                  VP                  ^^^RR7      V n	        V P                  4        R# )é   F)Úkernel_sizeÚstrideÚpaddingrZ   N)rD   r[   rš   r>   Úvision_towerr\   ÚConv2drL   rM   Ú	post_convÚ	post_init©rG   r©   rH   rI   s   &&,€r*   r[   ÚSLANeXtBackbone.__init__Ã   s^   ø€ ô
 	‰Ñ˜Ô Ü0°×1EÑ1EÓFˆÔÜŸšØ×(Ñ(¨&×*GÑ*GÐUVÐ_`ÐjkÐrwô
ˆŒð 	�‰Ör-   c                óJ   <€ V ^8„  d   QhRS[ P                  RS[S[,          /# )r%   r‚   rH   )rj   ÚTensorr   r   )r(   r)   s   "€r*   r+   rÂ   Ï   s%   ø€ ÷ 
ñ 
¡U§\¡\ð 
¹VÑDVÕ=Wñ 
r-   c                óä   € V P                   ! V3/ VB pV P                  VP                  4      pVP                  ^4      P	                  ^^4      p\        VVP                  VP                  R7      # )r%   )Úlast_hidden_stater‚   Ú
attentions)rÈ   rÊ   rÑ   Úflattenrx   r   r‚   rÒ   )rG   r‚   rH   Úvision_outputs   &&, r*   rƒ   ÚSLANeXtBackbone.forwardÏ   sj   € Ø×)Ò)¨-ÑB¸6ÑBˆØŸ™ }×'FÑ'FÓGˆØ%×-Ñ-¨aÓ0×:Ñ:¸1¸aÓ@ˆÜØ+Ø'×5Ñ5Ø$×/Ñ/ô
ð 	
r-   )rÊ   rÈ   r‰   r…   rV   s   @@r*   r¾   r¾   Â   s   ù‡ € ÷
õ 
÷
÷ 
ð 
r-   r¾   c                   ó~   a a€ ] tR t^Út oR]/tRV3R lV 3R lllt]]]	RV3R lR ll4       4       4       t
RtVtV ;t# )r¨   rÒ   c                ó.   <€ V ^8„  d   QhRS[ R,          /# rÀ   rÁ   )r(   r)   s   "€r*   r+   ÚSLANeXtSLAHead.__annotate__ß   s   ø€ ÷ ñ á�t•ñr-   c                óð   <€ \         SV `  V4       \        VP                  VP                  VP
                  4      V n        \        VP                  VP
                  4      V n        V P                  4        R # r‰   )
rD   r[   rX   rM   rO   rN   r–   r‡   r—   rË   rÌ   s   &&,€r*   r[   ÚSLANeXtSLAHead.__init__ß   s_   ø€ ô
 	‰Ñ˜Ô ä(?Ø×)Ñ)¨6×+=Ñ+=¸v×?RÑ?Ró)
ˆÔ%ô $.¨f×.@Ñ.@À&×BUÑBUÓ#VˆÔ à�‰Ör-   c                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# )r%   r‚   ÚtargetsNrH   )rj   rk   rÏ   r   r   )r(   r)   s   "€r*   r+   rØ   ð   sC   ø€ ÷ fñ fá×(Ñ(ðfñ —‘ Õ$ðfñ Ñ+Õ,ñ	fr-   c                ón  € \         P                  ! VP                  ^ ,          V P                  P                  3\         P
                  VP                  R7      p\         P                  ! VP                  ^ ,          .\         P                  VP                  R7      p. p. p\        V P                  P                  ^,           4       EF
  p\        P                  ! WPP                  P                  4      P                  4       p	V P                  WAP                  4       V	4      w  rHV P                  V4      p
V
P!                  ^R7      pVP#                  V
4       VP#                  V4       \         P$                  ! V^R7      P'                  V P                  P                  ^,
          4      P)                  R4      P+                  4       '       g   EK   M	  \        P,                  ! \         P$                  ! V^R7      R\         P
                  R7      P/                  VP0                  4      p\3        W¶R7      # )r   ©rq   Údevice)Úsizerq   rß   ©rp   ro   )rÑ   r‚   éÿÿÿÿ)rj   ÚzerosÚshaper©   rO   rv   rß   ÚlongÚrangerP   rt   Úone_hotrN   Úfloatr–   r—   ÚargmaxÚappendÚstackÚeqÚanyÚallru   rw   rq   r   )rG   r‚   rÜ   rH   ÚfeaturesÚpredicted_charsÚstructure_preds_listÚstructure_ids_listÚ_Úembedding_featureÚstructure_stepÚstructure_predss   &&&,        r*   rƒ   ÚSLANeXtSLAHead.forwardí   s¢  € ô —;’;Ø× Ñ  Õ# T§[¡[×%<Ñ%<Ð=ÄUÇ]Á]Ð[h×[oÑ[oô
ˆô  Ÿ+š+¨M×,?Ñ,?ÀÕ,BÐ+CÌ5Ï:É:Ð^k×^rÑ^rÔsˆà!ÐØÐÜ�t—{‘{×2Ñ2°QÕ6×7ˆAÜ !§	¢	¨/¿;¹;×;SÑ;SÓ T× ZÑ ZÓ \ÐØ×7Ñ7¸×BUÑBUÓBWÐYjÓk‰KˆHØ!×5Ñ5°hÓ?ˆNØ,×3Ñ3¸Ð3Ó:ˆOà ×'Ñ'¨Ô7Ø×%Ñ% oÔ6Ü�{Š{Ð-°1Ô5×8Ñ8¸¿¹×9QÑ9QÐTUÕ9UÓV×ZÑZÐ[]Ó^×bÑb×dÕdÙñ 8ô Ÿ)š)¤E§K¢KÐ0DÈ!Ô$LÐRTÔ\a×\iÑ\iÔj×mÑmØ×Ñó
ˆô °ÔeÐer-   )r–   r—   r‰   )r/   r0   r1   r2   rX   Ú_can_record_outputsr[   r   r   r   rƒ   r4   r5   rU   rV   s   @@r*   r¨   r¨   Ú   sO   ù‡ € àÐ-ðÐ÷õ ð  ØØ ÷fñ fó !ó ó  ÷fð fr-   r¨   c                   ó8   a € ] tR tRt o RtRtRtV 3R ltRtV t	R# )Ú SLANeXtForTableRecognitionOutputi  aY  
head_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Hidden-states of the SLANeXtSLAHead at each prediction step, varies up to max `self.config.max_text_length` states (depending on early exits).
head_attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
    Attentions of the SLANeXtSLAHead at each prediction step, varies up to max `self.config.max_text_length` attentions (depending on early exits).
Nc                óv   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   # )r%   NÚhead_hidden_statesÚhead_attentions)rj   rk   )r(   r)   s   "€r*   r+   Ú-SLANeXtForTableRecognitionOutput.__annotate__  s5   ø‡ ‚ ñ ×)Ñ)¨DÕ0Ñ7ñ ñ ×&Ñ&¨Õ-Ñ4ò r-   r.   )
r/   r0   r1   r2   rR   rü   rý   r3   r4   r5   r6   s   @r*   rú   rú     s   ø‡ € ñð 48ÐØ04€O÷ ƒ r-   rú   z¼
    SLANeXt Table Recognition model for table recognition tasks. Wraps the core SLANeXtPreTrainedModel
    and returns outputs compatible with the Transformers table recognition API.
    )Úcustom_introc                   ód   a a€ ] tR tRt oV3R lV 3R llt]]V3R lR l4       4       tRtVt	V ;t
# )ÚSLANeXtForTableRecognitioni  c                ó    <€ V ^8„  d   QhRS[ /# r²   r³   )r(   r)   s   "€r*   r+   Ú'SLANeXtForTableRecognition.__annotate__#  s   ø€ ÷ ñ ™}ñ r-   c                óŠ   <€ \         SV `  V4       \        VR 7      V n        \	        VR 7      V n        V P                  4        R# ))r©   N)rD   r[   r¾   r”   r¨   ÚheadrË   )rG   r©   rI   s   &&€r*   r[   Ú#SLANeXtForTableRecognition.__init__#  s2   ø€ Ü‰Ñ˜Ô Ü'¨vÔ6ˆŒÜ"¨&Ô1ˆŒ	Ø�‰Ör-   c                ó„   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[ P                  ,          S[,          /# )r%   r•   rH   Úreturn)rj   rk   r   r   Útuplerú   )r(   r)   s   "€r*   r+   r  +  sB   ø€ ÷ 
ñ 
Ù!×-Ñ-ð
Ù9?Ñ@RÕ9Sð
á	‰u× Ñ Õ	!Ñ$DÕ	Dñ
r-   c                óæ   € V P                   ! V3/ VB pV P                  ! VP                  3/ VB p\        VP                  VP                  VP
                  VP                  VP
                  R 7      # ))rÑ   r‚   rÒ   rü   rý   )r”   r  rÑ   rú   r‚   rÒ   )rG   r•   rH   Úbackbone_outputsÚhead_outputss   &&,  r*   rƒ   Ú"SLANeXtForTableRecognition.forward)  sl   € ð
  Ÿ=š=¨Ñ@¸Ñ@ÐØ—y’yÐ!1×!CÑ!CÑNÀvÑNˆÜ/Ø*×<Ñ<Ø*×8Ñ8Ø'×2Ñ2Ø+×9Ñ9Ø(×3Ñ3ô
ð 	
r-   )r”   r  )r/   r0   r1   r2   r[   r   r   rƒ   r4   r5   rU   rV   s   @@r*   r  r    s0   ù‡ € ÷ó ð Ø÷
ó ó ÷
ð 
r-   r  )Úbackendsc                   ó¦   a a€ ] tR tRt o^t]t]tRRRR/t	RRRR/t
RtRtRtRtRtV3R lR ltV3R lR	 ltV3R
 lV 3R lltR tR tRtVtV ;t# )ÚSLANeXtImageProcessori9  Úheightr#   ÚwidthTc                ó(   <€ V ^8„  d   QhRRRS[ RR/# )r%   rµ   útorch.Tensorrà   r  )r   )r(   r)   s   "€r*   r+   Ú"SLANeXtImageProcessor.__annotate__G  s3   ø€ ÷ @dñ @dàð@dñ ð@dð 
ñ	@dr-   c                óÀ  € VP                   w  r4rVVP                  W4,          WV4      pVP                  p\        VP                  VP
                  4      \        WV4      ,          p\        WX,          4      p	\        Wh,          4      p
\        P                  ! V
\        P                  VR 7      pVR,           \        V4      \        V
4      ,          ,          R,
          pVP                  4       P                  \        P                  4      pWÍP                  4       ,
          p\        P                  ! V^ 8  \        P                  ! V4      V4      p\        P                  ! V^ 8  \        P                  ! V4      V4      p\        P                  ! WÖ^,
          8¬  \        P                   ! V4      V4      p\        P                  ! WÖ^,
          8¬  \        P"                  ! WÖ^,
          4      V4      pVR,          R,           P                  4       P                  \        P                  4      pRV,
          p\        P                  ! V	\        P                  VR 7      pVR,           \        V4      \        V	4      ,          ,          R,
          pVP                  4       P                  \        P                  4      pVVP                  4       ,
          p\        P                  ! V^ 8  \        P                  ! V4      V4      p\        P                  ! V^ 8  \        P                  ! V4      V4      p\        P                  ! VV^,
          8¬  \        P                   ! V4      V4      p\        P                  ! VV^,
          8¬  \        P"                  ! VV^,
          4      V4      pVR,          R,           P                  4       P                  \        P                  4      pRV,
          pVP%                  ^ ^ÿ4      P                  \        P&                  4      pVP                  \        P                  4      pVP)                  4       pV^,           P)                  4       pVP)                  4       pV^,           P)                  4       pVRVR,          VR,          3,          pVRVR,          VR,          3,          pVRVR,          VR,          3,          pVRVR,          VR,          3,          p VP                  ^V	^4      p!VP                  ^V	^4      p"VP                  ^^V
4      p#VP                  ^^V
4      p$V"V$V,          V#V,          ,           ,          V!V$V,          V#V ,          ,           ,          ,           p%V%R,           ^,	          p%V%P%                  ^ ^ÿ4      P                  \        P&                  4      p&V&P                  W4Wš4      P                  VP*                  R7      # )rÞ   g      à?i   ºNNN)rq   )r  N)Nr  i    )rä   Úviewrß   Úmaxr  r  Úroundrj   Úarangerv   rè   Úfloorrw   Úint32ÚwhereÚ
zeros_likeÚ	ones_likeÚ	full_likeÚclampÚuint8rå   rq   )'rG   rµ   rà   Ú
batch_sizeÚchannelsr  r  rß   ÚscaleÚtarget_heightÚtarget_widthÚ
target_colÚsrc_colÚsrc_col_floorÚsrc_col_fracÚweight_rightÚweight_leftÚ
target_rowÚsrc_rowÚsrc_row_floorÚsrc_row_fracÚweight_bottomÚ
weight_topÚimage_uint8Úimage_int32Úcol_leftÚ	col_rightÚrow_topÚ
row_bottomÚpixel_top_leftÚpixel_top_rightÚpixel_bottom_leftÚpixel_bottom_rightÚweight_bottom_3dÚweight_top_3dÚweight_right_3dÚweight_left_3dÚinterpÚresults'   &&&                                    r*   Ú_resizeÚSLANeXtImageProcessor._resizeG  s‚  € ð
 /4¯k©kÑ+ˆ
˜fØ—
‘
˜:Õ0°&Ó@ˆà—‘ˆä�D—K‘K §¡Ó,¬s°6Ó/AÕAˆÜ˜f�nÓ-ˆÜ˜U�]Ó+ˆä—\’\ ,´e·m±mÈFÔSˆ
Ø Õ#¬¨e«´u¸\Ó7JÕ(JÕKÈcÕQˆØŸ™›×*Ñ*¬5¯;©;Ó7ˆØ×!4Ñ!4Ó!6Õ6ˆä—{’{ =°1Ñ#4´e×6FÒ6FÀ|Ó6TÐVbÓcˆÜŸš M°AÑ$5´u×7GÒ7GÈÓ7VÐXeÓfˆÜ—{’{ =¸AµIÑ#=¼u¿ºÈ|Ó?\Ð^jÓkˆÜŸšØ Q�YÑ&¬¯ª¸ÈqÅyÓ(QÐS`ó
ˆð % tÕ+¨cÕ1×8Ñ8Ó:×=Ñ=¼e¿k¹kÓJˆØ˜\Õ)ˆä—\’\ -´u·}±}ÈVÔTˆ
Ø Õ#¬¨f«¼¸mÓ8LÕ(LÕMÐPSÕSˆØŸ™›×*Ñ*¬5¯;©;Ó7ˆØ ×!4Ñ!4Ó!6Õ6ˆÜ—{’{ =°1Ñ#4´e×6FÒ6FÀ|Ó6TÐVbÓcˆÜŸš M°AÑ$5´u×7GÒ7GÈÓ7VÐXeÓfˆÜ—{’{ =°F¸QµJÑ#>ÄÇÂÐP\Ó@]Ð_kÓlˆÜŸšØ˜V a�ZÑ'¬¯ª¸ÈÐQRÍ
Ó)SÐUbó
ˆð &¨Õ,¨sÕ2×9Ñ9Ó;×>Ñ>¼u¿{¹{ÓKˆØ˜MÕ)ˆ
à—k‘k ! SÓ)×,Ñ,¬U¯[©[Ó9ˆØ!—n‘n¤U§[¡[Ó1ˆØ ×%Ñ%Ó'ˆØ" QÕ&×,Ñ,Ó.ˆ	Ø×$Ñ$Ó&ˆØ# aÕ'×-Ñ-Ó/ˆ
à$ Q¨°Õ(8¸(À7Õ:KÐ%KÕLˆØ% a¨°Õ)9¸9ÀWÕ;MÐ&MÕNˆØ'¨¨:°gÕ+>ÀÈÕ@QÐ(QÕRÐØ(¨¨J°wÕ,?ÀÈ7ÕASÐ)SÕTÐà(×-Ñ-¨a°ÀÓBÐØ"Ÿ™¨¨=¸!Ó<ˆØ&×+Ñ+¨A¨q°,Ó?ˆØ$×)Ñ)¨!¨Q°Ó=ˆØØ˜^Õ+¨oÀÕ.OÕOõ
à Ð1BÕ BÀ_ÐWiÕEiÕ iÕjõkˆð ˜GÕ$¨Õ+ˆØ—‘˜a Ó%×(Ñ(¬¯©Ó5ˆà�{‰{˜:°ÓM×PÑPÐW\×WbÑWbÐPÓcÐcr-   c                 ó*  <€ V ^8„  d   QhRS[ R,          RS[RS[RRRS[RS[R	S[R
S[RS[RS[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[R,          RS[R,          RS[R,          RS[S[,          R,          RS[/# )r%   Úimagesr  Ú	do_resizerà   Úresamplez"tvF.InterpolationMode | int | NoneÚdo_center_cropÚ	crop_sizeÚ
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdÚdo_padÚpad_sizeÚdisable_groupingÚreturn_tensorsr  )ÚlistÚboolr   rè   Ústrr   r
   )r(   r)   s   "€r*   r+   r  ‰  sô   ø€ ÷ 0añ 0aá�^Õ$ð0añ ð0añ ð	0að
 7ð0añ ð0añ ð0añ ð0añ ð0añ ð0añ ™D¡�KÕ'¨$Õ.ð0añ ™4¡�;Õ&¨Õ-ð0añ �t•ð0añ ˜T•/ð0añ  �+ð0añ  ™jÕ(¨4Õ/ð!0añ$ 
ñ%0ar-   c           	     ó,  € Ve&   \        4       '       g   \        P                  R4       \        WR7      w  pp/ pVP	                  4        F&  w  ppV'       d   V P                  VVR7      pVVV&   K(  	  \        VV4      p\        VVR7      w  pp/ pVP	                  4        F9  w  ppV'       d   V P                  VV4      pV P                  VWxWšV4      pVVV&   K;  	  \        VV4      pV'       d   V P                  VWÞR7      p\        RV/VR7      # )Nz&Resampling is not supported in SLANeXt)rT  )rµ   rà   )rS  rT  r•   )ÚdataÚtensor_type)r   ÚloggerÚwarning_oncer   ÚitemsrE  r   Úcenter_cropÚrescale_and_normalizeÚpadr
   )rG   rH  rI  rà   rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rH   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedrä   Ústacked_imagesÚresized_imagesÚprocessed_images_groupedÚprocessed_imagess   &&&&&&&&&&&&&&&&,        r*   Ú_preprocessÚ!SLANeXtImageProcessor._preprocess‰  s/  € ð& ÒÔ(@×(BÒ(BÜ×ÑÐ HÔIô 0EÀVÔ/oÑ,ˆÐ,Ø!#ÐØ%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%§¡°NÈ Ó!N�Ø,:Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆô 0EÀ^ÐfvÔ/wÑ,ˆÐ,Ø#%Ð Ø%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%×!1Ñ!1°.À)Ó!L�à!×7Ñ7Ø 
¸LÐV_óˆNð /=Ð$ UÓ+ñ &<ô *Ð*BÐDXÓYÐçØ#Ÿx™xÐ(8À8˜xÓoÐä .Ð2BÐ!CÐQ_Ô`Ð`r-   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r%   rH   )r   r   )r(   r)   s   "€r*   r+   r  »  s   ø€ ÷ ñ ¡©Õ!5ñ r-   c                óH   <€ \         SV `  ! R/ VB  V P                  4        R # rA   )rD   r[   Úinit_decoderrF   s   &,€r*   r[   ÚSLANeXtImageProcessor.__init__»  s   ø€ Ü‰ÒÑ"˜6Ò"Ø×ÑÖr-   c                ó,  € . R	OpT\        ^4       Uu. uF  pRV^,            R2NK  	  up,          pT\        ^4       Uu. uF  pRV^,            R2NK  	  up,          pRV9  d   VP                  R4       RV9   d   VP                  R4       R.V,           R.,           p\        V4       UUu/ uF  w  r#W2bK	  	  uppV n        Wn        . R
OV n        V P                  R,          V n        V P                  R,          V n        R# u upi u upi u uppi )a•  
Initialize the decoder vocabulary for table structure recognition.

Builds a character dictionary mapping HTML table structure tokens (e.g., `<thead>`, `<tr>`, `<td>`, colspan/
rowspan attributes) to integer indices. The dictionary includes special `"sos"` (start-of-sequence) and
`"eos"` (end-of-sequence) tokens. Merged `<td></td>` tokens are used in place of standalone `<td>` tokens
when applicable.
ú<td>z
 colspan="Ú"z
 rowspan="ú	<td></td>ÚsosÚeosN)
z<thead>z</thead>z<tbody>z</tbody>z<tr>z</tr>rp  ú<tdÚ>z</td>)rp  ru  rr  )	ræ   rê   ÚremoveÚ	enumeraterC   Ú	characterÚtd_tokenÚbos_idÚeos_id)rG   Údict_characterÚiÚchars   &   r*   rm  Ú"SLANeXtImageProcessor.init_decoder¿  sú   € ò
ˆð 	¼%À¼)ÓD¹)°Q˜Z¨¨A­ w¨aÓ0¹)ÑDÕDˆØ¼%À¼)ÓD¹)°Q˜Z¨¨A­ w¨aÓ0¹)ÑDÕDˆà˜nÔ,Ø×!Ñ! +Ô.Ø�^Ô#Ø×!Ñ! &Ô)à˜ >Õ1°U°GÕ;ˆÜ,5°nÔ,EÔFÑ,E¡ �T’WÑ,EÒFˆŒ	Ø'ŒÚ4ˆŒØ—i‘i Õ&ˆŒØ—i‘i Õ&ˆŽùò EùÚDùó Gs   “DÁ DÂ/Dc                óV  € VP                   V n        V P                  R,          p\        V P                  4      \        V P                  4      .p\        V P                  4      pVP                  ^R7      pVP                  ^R7      P                  p. pVP                  ^ ,          p\        V4       FÔ  p. p	. p
\        VP                  ^,          4       Fj  p\        WXV3,          4      pV^ 8”  d	   WÄ8X  d    MIWÃ9   d   K-  V P                  V,          pV	P                  V4       V
P                  W(V3,          4       Kl  	  VP                  V	4       \        P                  ! V
4      P                  4       P                  4       pKÖ  	  . ROV^ ,          ,           . RO,           pRVRX/# )a×  
Post-process the raw model outputs to decode the predicted table structure into an HTML token sequence.

Converts the model's predicted probability distributions over the structure vocabulary into a sequence of
HTML tokens representing the table structure. The decoded tokens are wrapped with `<html>`, `<body>`, and
`<table>` tags to form a complete HTML table structure.

Args:
    outputs ([`SLANeXtForTableRecognitionOutput`]):
        Raw outputs from the SLANeXt model. The `last_hidden_state` field contains the predicted probability
        distributions over the structure vocabulary at each decoding step, with shape
        `(batch_size, max_text_length, num_classes)`.

Returns:
    `dict`: A dictionary containing:
        - **structure** (`list[str]`): The predicted HTML table structure as a list of tokens, wrapped with
          `<html>`, `<body>`, and `<table>` tags.
        - **structure_score** (`float`): The mean confidence score across all predicted tokens.
:r   rn   Nrá   Ú	structureÚstructure_score)z<html>z<body>z<table>)z</table>z</body>z</html>)rÑ   Úpredr'   r{  r|  ré   r  Úvaluesrä   ræ   ry  rê   rj   rë   ÚmeanÚitem)rG   ÚoutputsÚstructure_probsÚignored_tokensÚend_idxÚstructure_idxÚstructure_str_listr$  Úbatch_indexÚstructure_listÚ
score_listÚpositionÚchar_idxÚtextrƒ  r‚  s   &&              r*   Úpost_process_table_recognitionÚ4SLANeXtImageProcessor.post_process_table_recognitionã  sq  € ð( ×-Ñ-ˆŒ	ØŸ)™) C�.ˆÜ˜dŸk™kÓ*¬C°·±Ó,<Ð=ˆÜ�d—k‘kÓ"ˆà'×.Ñ.°1Ð.Ó5ˆØ)×-Ñ-°!Ð-Ó4×;Ñ;ˆàÐØ"×(Ñ(¨Õ+ˆ
Ü  Ö,ˆKØˆNØˆJÜ! -×"5Ñ"5°aÕ"8Ö9�Ü˜}¸(Ð-BÕCÓD�Ø˜a”< HÔ$7ÙØÔ-ÙØ—~‘~ hÕ/�Ø×%Ñ% dÔ+Ø×!Ñ! /¸xÐ2GÕ"HÖIñ :ð ×%Ñ% nÔ5Ü#Ÿkšk¨*Ó5×:Ñ:Ó<×AÑAÓCŠOñ -ò 4Ð6HÈÕ6KÕKÒNpÕpˆ	Ø˜YÐ(9¸?ÐKÐKr-   )r{  ry  rC   r|  r„  rz  )r/   r0   r1   r2   rJ  r   rP  r   rQ  rà   rS  Údo_convert_rgbrI  rM  rO  rR  rE  ri  r[   rm  r”  r4   r5   rU   rV   s   @@r*   r  r  9  sƒ   ù‡ € ð €HØ&€JØ$€IØ�c˜7 CÐ(€DØ˜#˜w¨Ð,€HØ€NØ€IØ€JØ€LØ€F÷@dð @d÷D0að 0a÷dó ò"'÷H.Lò .Lr-   r  )rj   )r  r<   r¨   r¾   r  r“   )Mr¡   Údataclassesr   rj   Útorch.nnr\   Útorch.nn.functionalÚ
functionalrt   Ú$torchvision.transforms.v2.functionalÚ
transformsÚv2ÚtvFÚhuggingface_hub.dataclassesr   Ú r   rœ   Úactivationsr   Úbackbone_utilsr   Úconfiguration_utilsr   Úimage_processing_backendsr	   Úimage_processing_utilsr
   Úimage_transformsr   r   Úimage_utilsr   r   r   Úmodeling_outputsr   Úmodeling_utilsr   Úprocessing_utilsr   r   Úutilsr   r   r   r   r   Úutils.genericr   r   Úutils.import_utilsr   Úutils.output_capturingr   Úgot_ocr2.configuration_got_ocr2r   Úgot_ocr2.modeling_got_ocr2r   r   Ú
get_loggerr/   r\  r"   r8   r<   ÚModulerX   r‡   r“   rš   r¾   r¨   rú   r  r  Ú__all__r.   r-   r*   Ú<module>r´     s­  ðó  Ý !ã Ý ß Ð ß 2Ó 2Ý .å &Ý "Ý 9Ý 3Ý ;Ý 2ß Eß PÑ PÝ /Ý -ß 4ß lÕ lß CÝ *Ý 5Ý A÷ð 
×	Ò	˜HÓ	%€ñ ÐCÔDØôÐ-ó ó ó Eðô	Ð3ô 	ñ ÐCÔDØô (Ð$ó  (ó ó Eð (ôF+˜bŸi™iô +ôB�—‘ô ô+A˜_ô +Aô\	Ð/ô 	ô
Ð,ô 
ô01fÐ+ô 1fðh Ø
ô	5 ó 	5ó ó ð	5ñ ðôô
Ð!7ó 
óð
ð. Ù	�:ÔôVLÐ.ó VLó ó ðVLòr‚r-   