ó
    �®žj)?  ã                   ó:  • S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJrJrJrJrJrJr  S SKJrJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SK J!r!  \RD                  " \#5      r$\" \5      r%\&" 1 Sk5      r'\(\)\S-  \S-  4   r* " S S\5      r+g)é    N)ÚBytesIO)ÚPath)ÚAny)Úurlparse)	ÚDocItemLabelÚDoclingDocumentÚDocumentOriginÚ
FormattingÚ
GroupLabelÚNodeItemÚRichTableCellÚ	TableCellÚ	TableData)ÚAnyUrlÚTypeAdapterÚValidationError)Úoverride)ÚDeclarativeDocumentBackend)ÚInputFormat)ÚInputDocument)ÚDocumentLoadError>   ÚhttpÚhttpsÚmailtoc            
       ó  ^ • \ rS rSrSr\S\S\\-  4U 4S jj5       r	\S\
4S j5       r\\S\
4S j5       5       r\\S\\   4S	 j5       5       r\S\4S
 j5       rS\\   S\S\S-  SS4S jrS\\\4   S\S\S-  SS4S jrS\\   S\S\S-  SS4S jrS\S\\   S\S\S-  SS4
S jrS\\\4   S\S\S\
SS4
S jrS\\\4   S\S\SS4S jrS\\\4   S\\\S-  \ S-  \\   4   4S jr!S\\   S\S\S-  SS4S jr"S\\   S\
4S  jr#S!\\\4   S\S\S-  SS4S" jr$S\\   S\%4S# jr&S\\   S\\%   4S$ jr'S%\\   S\\S-  \ S-  4   4S& jr(S\\   S\4S' jr)S\\   S\4S( jr*\+S)\S\ S-  4S* j5       r,S+r-U =r.$ ),ÚBoxNoteDocumentBackendé*   aH  Declarative backend for Box Notes (.boxnote files).

Box Notes are JSON. This reads the current (post-August 2022) schema, a
ProseMirror-style "doc" node tree, and maps it onto a DoclingDocument.
Notes saved before that release use the older "atext"/"pool" model and are
reported as unsupported rather than silently mis-parsed.
Úin_docÚpath_or_streamc                 óª  >• [         TU ]  X5        0 U l         Sn[        U R                  [
        5      (       a*  U R                  R                  5       R                  S5      nO8[        U R                  [        5      (       a  U R                  R                  SS9nUR                  5       (       a1  [        R                  " U5      n[        U[        5      (       a  X@l        SU R                  ;   a!  U R'                  5       (       d  [#        S5      eg g ! [        R                  [        [         4 a  n[#        SU R$                   S35      UeS nAff = f)NÚ z	utf-8-sig)Úencodingz+Could not load Box Note document with hash Ú.Úatextz‚Legacy Box Notes (the pre-August-2022 atext/pool format) are not supported yet; only the current Box Note format can be converted.)ÚsuperÚ__init__ÚdataÚ
isinstancer   r   ÚgetvalueÚdecoder   Ú	read_textÚstripÚjsonÚloadsÚdictÚJSONDecodeErrorÚUnicodeDecodeErrorÚOSErrorr   Údocument_hashÚis_valid)Úselfr   r   ÚrawÚloadedÚeÚ	__class__s         €Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/backend/boxnote_backend.pyr&   ÚBoxNoteDocumentBackend.__init__3   s   ø€ ä‰Ñ˜Ô0à$&ˆŒ	ð	ØˆCÜ˜$×-Ñ-¬w×7Ñ7Ø×)Ñ)×2Ñ2Ó4×;Ñ;¸KÓH‘Ü˜D×/Ñ/´×6Ñ6Ø×)Ñ)×3Ñ3¸[Ð3ÐI�Ø�y‰y�{‰{ÜŸš C›�Ü˜f¤d×+Ñ+Ø &”Ið �d—i‘iÓ¨¯©¯©Ü#ðTóð ð )8Ðøô ×$Ñ$Ô&8¼'ÐBó 	Ü#Ø=¸d×>PÑ>PÐ=QÐQRÐSóàðûð	ús   ™C	D ÄEÄ3EÅEÚreturnc                 óT   • [        U R                  R                  S5      [        5      $ )NÚdoc)r(   r'   Úgetr/   )r5   s    r:   r4   ÚBoxNoteDocumentBackend.is_validP   s   € ä˜$Ÿ)™)Ÿ-™-¨Ó.´Ó5Ð5ó    c                 ó   • g)NF© ©Úclss    r:   Úsupports_paginationÚ*BoxNoteDocumentBackend.supports_paginationT   s   € ð rA   c                 ó$   • [         R                  1$ ©N)r   ÚBOXNOTErD   s    r:   Úsupported_formatsÚ(BoxNoteDocumentBackend.supported_formatsY   s   € ô ×#Ñ#Ð$Ð$rA   c                 ót  • U R                  5       (       d  [        SU R                   S35      e[        U R                  R
                  =(       d    SSU R                  S9n[        U R                  R                  =(       d    SUS9nU R                  U R                  S   R                  S	/ 5      US 5        U$ )
Nz"Cannot convert Box Note with hash z: no 'doc' node found.zfile.boxnotezapplication/vnd.box.boxnote)ÚfilenameÚmimetypeÚbinary_hashÚfile)ÚnameÚoriginr>   Úcontent)r4   ÚRuntimeErrorr3   r	   rQ   rR   r   ÚstemÚ_add_blocksr'   r?   )r5   rS   r>   s      r:   ÚconvertÚBoxNoteDocumentBackend.convert^   s£   € à�}‰}�‰ÜØ4°T×5GÑ5GÐ4Hð I'ð 'óð ô
  Ø—Y‘Y—^‘^×5 ~Ø2Ø×*Ñ*ñ
ˆô
  4§9¡9§>¡>×#;°VÀFÑKˆà×Ñ˜Ÿ™ 5Ñ)×-Ñ-¨i¸Ó<¸cÀ4ÔHØˆ
rA   Únodesr>   ÚparentNc                 ó:   • U H  nU R                  XBU5        M     g rI   )Ú
_add_block)r5   rZ   r>   r[   Únodes        r:   rW   Ú"BoxNoteDocumentBackend._add_blocksp   s   € ó ˆDØ�O‰O˜D vÖ.ò rA   r^   c                 ó¼  • UR                  S5      nUR                  S/ 5      nUS:X  av  U R                  U5      u  pgnU(       aZ  UR                  S0 5      R                  S5      =(       d    Sn	U	S::  a  UR                  UUUUS9  g UR                  UU	S-
  UUUS9  g g US	:X  a  U R	                  XRU5        g US
;   a  U R                  XEX#5        g US:X  a)  U R                  U5      n
U
(       a  UR                  X£S9  g g US:X  a  U R                  XRU5        g US:X  a#  U R                  UR                  S0 5      X#5        g U(       a  U R                  XRU5        g g )NÚtyperT   ÚheadingÚattrsÚlevelé   )Útextr[   Ú
formattingÚ	hyperlink)rf   rd   r[   rg   rh   Ú	paragraph)Úbullet_listÚordered_listÚ
check_listÚ
code_block)rf   r[   ÚtableÚimage)r?   Ú	_collapseÚ	add_titleÚadd_headingÚ_add_paragraphÚ	_add_listÚ_plain_textÚadd_codeÚ
_add_tableÚ
_add_imagerW   )r5   r^   r>   r[   Ú	node_typerT   rf   rg   rh   rd   Úcodes              r:   r]   Ú!BoxNoteDocumentBackend._add_blockv   s_  € ð —H‘H˜VÓ$ˆ	Ø—(‘(˜9 bÓ)ˆà˜	Ó!Ø*.¯.©.¸Ó*AÑ'ˆD˜iÞØŸ™ ¨"Ó-×1Ñ1°'Ó:×?¸a�Ø˜A“:Ø—M‘MØ!Ø%Ø#-Ø"+ð	 "ò ð —O‘OØ!Ø# a™iØ%Ø#-Ø"+ð $ò ð ð" ˜+Ó%Ø×Ñ ¨fÕ5ØÐGÓGØ�N‰N˜9¨sÕ;Ø˜,Ó&Ø×#Ñ# GÓ,ˆDÞØ—‘ $�Ò6ð à˜'Ó!Ø�O‰O˜G¨&Õ1Ø˜'Ó!Ø�O‰O˜DŸH™H W¨bÓ1°3Õ?Þð ×Ñ˜W¨6Õ2ð rA   rT   c           	      ó   • U R                  U5      nU(       d  g [        U5      S:X  a*  US   u  pVnUR                  [        R                  UUUUS9  g UR                  US9nU H'  u  pVnUR                  [        R                  UUUUS9  M)     g )Nre   r   ©Úlabelrf   r[   rg   rh   )r[   )Ú_runsÚlenÚadd_textr   ÚTEXTÚadd_inline_group)	r5   rT   r>   r[   Úrunsrf   rg   rh   Úgroups	            r:   rs   Ú%BoxNoteDocumentBackend._add_paragraph    s¤   € ð �z‰z˜'Ó"ˆÞØÜˆt‹9˜‹>Ø*.¨q©'Ñ'ˆD˜iØ�L‰LÜ"×'Ñ'ØØØ%Ø#ð ñ ð Ø×$Ñ$¨FÐ$Ð3ˆÛ+/Ñ'ˆD˜iØ�L‰LÜ"×'Ñ'ØØØ%Ø#ð ó ò ,0rA   Ú	list_typeÚitemsc                 ó  • US:H  nUR                  U(       a  [        R                  O[        R                  SUS9nU H>  nUR	                  S5      S:X  a  U R                  XsU5        M,  U R                  XsXe5        M@     g )Nrk   Úlist©r~   rR   r[   ra   Úcheck_list_item)Ú	add_groupr   ÚORDERED_LISTÚLISTr?   Ú_add_check_itemÚ_add_list_item)r5   r‡   rˆ   r>   r[   Ú
enumeratedr…   Úitems           r:   rt   Ú BoxNoteDocumentBackend._add_listº   sv   € ð  .Ñ0ˆ
Ø—‘Þ-7”*×)Ò)¼Z¿_¹_ØØð ð 
ˆó
 ˆDØ�x‰x˜ÓÐ#4Ó4Ø×$Ñ$ T°Ö6à×#Ñ# D¨uÖAò	 rA   r“   r…   r’   c                 ó†   • U R                  U5      u  pVpxUR                  UUUUUS9n	U(       a  U R                  X‚U	5        g g )N)rf   r’   r[   rg   rh   )Ú_split_itemÚadd_list_itemrW   )
r5   r“   r>   r…   r’   rf   rg   rh   ÚnestedÚ	list_items
             r:   r‘   Ú%BoxNoteDocumentBackend._add_list_itemÍ   sW   € ð /3×.>Ñ.>¸tÓ.DÑ+ˆ˜)Ø×%Ñ%ØØ!ØØ!Øð &ð 
ˆ	ö Ø×Ñ˜V¨)Õ4ð rA   c                 ó  • U R                  U5      u  pEpgUR                  S0 5      R                  S5      (       a  [        R                  O[        R                  nUR                  UUUUUS9n	U(       a  U R                  XrU	5        g g )Nrc   Úcheckedr}   )r–   r?   r   ÚCHECKBOX_SELECTEDÚCHECKBOX_UNSELECTEDr�   rW   )
r5   r“   r>   r…   rf   rg   rh   r˜   r~   Ú
check_items
             r:   r�   Ú&BoxNoteDocumentBackend._add_check_itemß   sŽ   € ð /3×.>Ñ.>¸tÓ.DÑ+ˆ˜)ð �x‰x˜ Ó$×(Ñ(¨×3Ñ3ô ×*Ò*ä×1Ñ1ð 	ð
 —\‘\ØØØØ!Øð "ð 
ˆ
ö Ø×Ñ˜V¨*Õ5ð rA   c                 óð   • Su  p#n/ nUR                  S/ 5       HV  nU(       d;  UR                  S5      S:X  a&  U R                  UR                  S/ 5      5      u  p#nME  UR                  U5        MX     X#XE4$ )z¿Split a list item into its own text and any nested blocks.

The leading paragraph becomes the item text; everything else (nested
lists, extra paragraphs) is returned to be added as children.
)r!   NNrT   ra   ri   )r?   rp   Úappend)r5   r“   rf   rg   rh   r˜   Úchilds          r:   r–   Ú"BoxNoteDocumentBackend._split_itemò   ss   € ð '5Ñ#ˆ˜)ØˆØ—X‘X˜i¨Ö,ˆEÞ˜EŸI™I fÓ-°Ó<Ø.2¯n©n¸U¿Y¹YÀyÐRTÓ=UÓ.VÑ+�¢)à—‘˜eÖ$ñ	 -ð
  Ð2Ð2rA   Úrowsc                 ó\  • U Vs/ s H  oDR                  S5      S:X  d  M  UPM     nnU(       d  g [        [        U5      S/ S9nUR                  XSS9n[	        5       nSn[        U5       GH¨  u  p”Sn
UR                  S/ 5       GH‰  nUR                  S5      nUS;  a  M  Xš4U;   a  U
S-  n
Xš4U;   a  M  UR                  S	0 5      nUR                  S
5      =(       d    SnUR                  S5      =(       d    SnXž-   nX¯-   nUR                  S/ 5      nUS:H  nU R                  U5      (       aa  UR                  [        R                  SUS9nU R                  UUU5        [        U R                  U5      UUU	UU
UUUR                  5       S9	nO[        U R                  U5      UUU	UU
UUS9nUR                  UUS9  [!        X™U-   5       H+  n[!        XªU-   5       H  nUR#                  UU45        M     M-     X¯-  n
[%        XŠ5      nGMŒ     GM«     X†R&                  l        g s  snf )Nra   Ú	table_rowr   )Únum_rowsÚnum_colsÚtable_cells)r'   r[   rT   )Ú
table_cellÚtable_headerre   rc   ÚrowspanÚcolspanr¬   r«   r‹   )	rf   Úrow_spanÚcol_spanÚstart_row_offset_idxÚend_row_offset_idxÚstart_col_offset_idxÚend_col_offset_idxÚcolumn_headerÚref)rf   r¯   r°   r±   r²   r³   r´   rµ   )Ú
table_itemÚcell)r?   r   r€   Ú	add_tableÚsetÚ	enumerateÚ_cell_is_richr�   r   ÚUNSPECIFIEDrW   r   Ú
_cell_textÚget_refr   Úadd_table_cellÚrangeÚaddÚmaxr'   r©   )r5   r¥   r>   r[   Úrowr'   rn   Úoccupiedr©   Úrow_idxÚcol_idxr¸   Ú	cell_typerc   r¯   r°   Úend_rowÚend_colÚblocksÚ	is_headerr…   r«   Úspan_rowÚspan_cols                           r:   rw   Ú!BoxNoteDocumentBackend._add_table  s>  € ñ  $ÓFšt˜§w¡w¨v£¸+Ñ'E—™tˆÐFÞØä¤# d£)°aÀRÑHˆØ—‘ 4�Ð7ˆä),«ˆØˆÜ% dŸO‰LˆGØˆGØŸ™ 	¨2×.�Ø ŸH™H VÓ,�	ØÐ$BÓBÙØÐ(¨HÓ4Ø˜q‘L�Gð Ð(¨HÕ4àŸ™ ¨"Ó-�Ø Ÿ9™9 YÓ/×4°1�Ø Ÿ9™9 YÓ/×4°1�Ø!Ñ,�Ø!Ñ,�ØŸ™ )¨RÓ0�Ø%¨Ñ7�	à×%Ñ% f×-Ñ-ØŸM™MÜ(×4Ñ4¸<ÐPUð *ð �Eð ×$Ñ$ V¨S°%Ô8Ü,9Ø!Ÿ_™_¨VÓ4Ø!)Ø!)Ø-4Ø+2Ø-4Ø+2Ø&/Ø!ŸM™M›Oñ
-‘Jô "+Ø!Ÿ_™_¨VÓ4Ø!)Ø!)Ø-4Ø+2Ø-4Ø+2Ø&/ñ	"�Jð ×"Ñ"¨e¸*Ð"ÑEä % g¸Ñ/AÖ B�HÜ$)¨'¸XÑ3EÖ$F˜Ø Ÿ™ h°Ð%9Ö:ó %Gñ !Cð Ñ#�Ü˜xÓ1“ô_ /ñ ,ðf '�
‰
Õùòy Gs
   …H)¡H)rË   c           	      ó&  ^ • U Vs/ s HB  nUR                  S5      S:w  d(  T R                  UR                  S/ 5      5      (       d  M@  UPMD     nn[        U5      S:”  a  g[        S U 5       5      (       a  g[        U 4S jU 5       5      $ s  snf )a  A cell is rich when it cannot be one plain-text TableCell.

That covers images, multiple blocks, any non-paragraph block (lists,
code, nested tables), and a lone paragraph carrying a link or formatting:
a plain TableCell has no hyperlink field, so a flattened link would be
lost.
ra   ri   rT   re   Tc              3   óH   #   • U  H  oR                  S 5      S:g  v •  M     g7f)ra   ri   N)r?   )Ú.0Úblocks     r:   Ú	<genexpr>Ú7BoxNoteDocumentBackend._cell_is_rich.<locals>.<genexpr>S  s   é € ÐHºZ°E�y‰y˜Ó  KÖ/ºZùs   ‚ "c              3   ó’   >#   • U  H<  nTR                  UR                  S / 5      5        H  u  p#nU=(       d    Uv •  M     M>     g7f©rT   N)r   r?   )rÒ   rÓ   Ú_rg   rh   r5   s        €r:   rÔ   rÕ   U  sF   øé € ð 
â#�Ø,0¯J©J°u·y±yÀÈBÓ7O×,PÑ(�˜yð ×#˜)Ô#á,Pñ $Ú#ùs   ƒAA)r?   r   r€   Úany)r5   rË   rÓ   Ú
meaningfuls   `   r:   r¼   Ú$BoxNoteDocumentBackend._cell_is_richD  s‘   ø€ ñ  ó
â�Ø�y‰y˜Ó  KÓ/°4·:±:¸e¿i¹iÈ	ÐSUÓ>V×3W÷ Ùð 	ð 
ô
 ˆz‹?˜QÓØÜÑH¹ZÓH×HÑHØÜô 
á#ó
ó 
ð 	
ùò
s   †?BÁ	Brc   c                 óÂ   • S nUR                  S5      =(       d    UR                  S5      nU(       a  UR                  [        R                  US9nUR	                  XCS9  g )NÚaltÚfileName)r~   rf   )Úcaptionr[   )r?   r�   r   ÚCAPTIONÚadd_picture)r5   rc   r>   r[   rß   r~   s         r:   rx   Ú!BoxNoteDocumentBackend._add_image[  sN   € ð ˆØ—	‘	˜%Ó ×9 E§I¡I¨jÓ$9ˆÞØ—l‘l¬×)=Ñ)=ÀE�lÐJˆGØ�‰ ˆÒ7rA   c                 ó‚   • U R                  U5      n[        U5      S:X  a  US   $ SR                  S U 5       5      SS4$ )zÁReduce inline content to a single run.

Headings and list items take one formatting and one hyperlink, so a
single styled span keeps its style and a mixed span falls back to plain
joined text.
re   r   r!   c              3   ó,   #   • U  H
  u  n  o!v •  M     g 7frI   rC   )rÒ   rf   rØ   s      r:   rÔ   Ú3BoxNoteDocumentBackend._collapse.<locals>.<genexpr>n  s   é € Ð3ªd¡
  a¨”tªdùs   ‚N)r   r€   Újoin)r5   rT   r„   s      r:   rp   Ú BoxNoteDocumentBackend._collapsed  sB   € ð �z‰z˜'Ó"ˆÜˆt‹9˜‹>Ø˜‘7ˆNØ�w‰wÑ3©dÓ3Ó3°T¸4Ð?Ð?rA   c                 ó4  • / nU=(       d    /  H†  nUR                  S5      nUS:X  aS  UR                  SS5      nU(       a8  U R                  UR                  S/ 5      5      u  pgUR                  XVU45        Mk  Mm  US:X  d  Mu  UR                  S5        Mˆ     U$ )Nra   rf   r!   ÚmarksÚ
hard_break)Ú NN)r?   Ú_marksr¢   )r5   rT   r„   r^   ry   rf   rg   rh   s           r:   r   ÚBoxNoteDocumentBackend._runsp  s�   € ØˆØ—M˜r’MˆDØŸ™ Ó(ˆIØ˜FÓ"Ø—x‘x ¨Ó+�ÞØ,0¯K©K¸¿¹ÀÈ"Ó8MÓ,NÑ)�JØ—K‘K °9Ð =Ö>ñ ð ˜lÕ*Ø—‘Ð-Ö.ñ "ð ˆrA   ré   c                 ó  • S nS nU=(       d    /  Hö  nUR                  S5      nUS:X  a  U=(       d
    [        5       nSUl        M6  US:X  a  U=(       d
    [        5       nSUl        MX  US:X  a  U=(       d
    [        5       nSUl        Mz  US:X  a  U=(       d
    [        5       nSUl        Mœ  US:X  d  M¤  UR                  S0 5      R                  S	5      n[        U[        5      (       d  MÜ  U(       d  Må  U R                  U5      nMø     X#4$ )
Nra   ÚstrongTÚemÚ	underlineÚstrikethroughÚlinkrc   Úhref)	r?   r
   ÚboldÚitalicrñ   rò   r(   ÚstrÚ_as_url)r5   ré   rg   rh   ÚmarkÚ	mark_typerô   s          r:   rì   ÚBoxNoteDocumentBackend._marks}  sæ   € Ø(,ˆ
Ø#'ˆ	Ø—K˜R’KˆDØŸ™ Ó(ˆIØ˜HÓ$Ø'×7¬:«<�
Ø"&�
–Ø˜dÓ"Ø'×7¬:«<�
Ø$(�
Ö!Ø˜kÓ)Ø'×7¬:«<�
Ø'+�
Ö$Ø˜oÓ-Ø'×7¬:«<�
Ø+/�
Ö(Ø˜fÕ$Ø—x‘x ¨Ó,×0Ñ0°Ó8�Ü˜d¤C×(Ó(¯T¨TØ $§¡¨TÓ 2’Iñ#  ð$ Ð$Ð$rA   c                 óh  • / nU=(       d    /  H‘  nUR                  S5      nUS:X  a#  UR                  UR                  SS5      5        M=  US:X  a  UR                  S5        MV  UR                  S5      (       d  Mn  UR                  U R                  US   5      5        M“     SR                  U5      $ )Nra   rf   r!   rê   Ú
rT   )r?   r¢   ru   ræ   )r5   rZ   Úpartsr^   ry   s        r:   ru   Ú"BoxNoteDocumentBackend._plain_text”  s’   € ØˆØ—K˜R’KˆDØŸ™ Ó(ˆIØ˜FÓ"Ø—‘˜TŸX™X f¨bÓ1Ö2Ø˜lÓ*Ø—‘˜TÖ"Ø—‘˜)×$Ó$Ø—‘˜T×-Ñ-¨d°9©oÓ>Ö?ñ  ð �w‰w�u‹~ÐrA   c                 óL   ^ • U 4S jU 5       nSR                  S U 5       5      $ )Nc              3   ó‚   >#   • U  H4  nTR                  UR                  S / 5      5      R                  5       v •  M6     g7fr×   )ru   r?   r,   )rÒ   rÓ   r5   s     €r:   rÔ   Ú4BoxNoteDocumentBackend._cell_text.<locals>.<genexpr>¡  s5   øé € ÐXÒQWÈ�×!Ñ! %§)¡)¨I°rÓ":Ó;×AÑA×CÐCÒQWùs   ƒ<?rë   c              3   ó6   #   • U  H  o(       d  M  Uv •  M     g 7frI   rC   )rÒ   rf   s     r:   rÔ   r  ¢  s   é € Ð7ª ³$Ÿ™ªùs   ‚
�	)ræ   )r5   rË   Útextss   `  r:   r¾   Ú!BoxNoteDocumentBackend._cell_text   s#   ø€ ÜXÑQWÓXˆØ�x‰xÑ7©Ó7Ó7Ð7rA   rô   c                 ó–   •  [        U 5      R                  [        ;  a  g [        R	                  U 5      $ ! [
        [        4 a     g f = frI   )r   ÚschemeÚ_SAFE_LINK_SCHEMESÚ
_HYPERLINKÚvalidate_pythonÚ
ValueErrorr   )rô   s    r:   rø   ÚBoxNoteDocumentBackend._as_url¤  sG   € ð	Ü˜‹~×$Ñ$Ô,>Ó>ØÜ×-Ñ-¨dÓ3Ð3øÜœOÐ,ó 	ñ ð	ús   ‚5  5 µAÁA)r'   )/Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r   r&   Úboolr4   ÚclassmethodrF   rº   r   rK   r   rX   rŠ   r/   r   rW   r÷   r   r]   rs   rt   r‘   r�   Útupler
   r   r–   rw   r¼   rx   Ú_Runrp   r   rì   ru   r¾   Ústaticmethodrø   Ú__static_attributes__Ú__classcell__)r9   s   @r:   r   r   *   sI  ø† ñð ð˜}ð ¸gÈ¹nö ó ðð8 ð6˜$ó 6ó ð6ð Øð Dó ó ó ðð Øð% # kÑ"2ó %ó ó ð%ð ð˜ó ó ðð"/Ø˜$‘Zð/Ø&5ð/Ø?GÈ$¹ð/à	ô/ð(3Ø˜˜c˜‘Nð(3Ø)8ð(3ØBJÈTÁ/ð(3à	ô(3ðTØ˜D‘zðØ(7ðØAIÈDÁðà	ôð4BàðBð �D‰zðBð ð	Bð
 ˜4‘ðBð 
ôBð&5à�3˜�8‰nð5ð ð5ð ð	5ð
 ð5ð 
ô5ð$6Ø˜˜c˜‘Nð6Ø)8ð6ØAIð6à	ô6ð&3Ø˜˜c˜‘Nð3à	ˆs�J Ñ% v°¡}°d¸4±jÐ@Ñ	Aô3ð"?'Ø˜‘Jð?'Ø%4ð?'Ø>FÈ¹oð?'à	ô?'ðB
 D¨¡Jð 
°4ô 
ð.8Ø˜#˜s˜(‘^ð8Ø*9ð8ØCKÈdÁ?ð8à	ô8ð
@  d¡ð 
@°ô 
@ð˜T $™Zð ¨D°©Jô ð%˜D ™Jð %¨5°¸dÑ1BÀFÈTÁMÐ1QÑ+Rô %ð.
  d¡ð 
°ô 
ð8  d¡ð 8°ô 8ð ð�cð ˜f t™mó ó örA   r   ),r-   ÚloggingÚior   Úpathlibr   Útypingr   Úurllib.parser   Údocling_core.types.docr   r   r	   r
   r   r   r   r   r   Úpydanticr   r   r   Útyping_extensionsr   Ú docling.backend.abstract_backendr   Údocling.datamodel.base_modelsr   Údocling.datamodel.documentr   Údocling.exceptionsr   Ú	getLoggerr  Ú_logr	  Ú	frozensetr  r  r÷   r  r   rC   rA   r:   Ú<module>r(     s’   ðó Û Ý Ý Ý Ý !÷
÷ 
õ 
÷ :Ñ 9Ý &å GÝ 5Ý 4Ý 0à×Ò˜Ó"€á˜Ó €
ñ Ò:Ó;Ð ð ˆS�*˜tÑ# V¨d¡]Ð2Ñ3€ôCÐ7õ CrA   