§
    eÒ³g7  ã                   óX  — d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZ ddlmZmZ dde
e         ded	e
e
e                  fd
„Zde	e         ded	eeef         fd„Z edeeedf         ¦  «        Z	 dde
e         deeeegef         f         deded	e
e
e                  f
d„ZdS )é    N)ÚHashable)Ú
itemgetter)ÚAnyÚCallableÚDictÚIterableÚListÚTupleÚTypeVarÚUnioné   )ÚT_numÚT_objÚxsÚ	toleranceÚreturnc                 ó°  — |dk    rd„ t          | ¦  «        D ¦   «         S t          | ¦  «        dk     rd„ t          | ¦  «        D ¦   «         S g }t          t          | ¦  «        ¦  «        } | d         g}| d         }| dd …         D ];}|||z   k    r|                     |¦  «         n|                     |¦  «         |g}|}Œ<|                     |¦  «         |S )Nr   c                 ó   — g | ]}|g‘ŒS © r   ©Ú.0Úxs     úY/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pdfplumber/utils/clustering.pyú
<listcomp>z cluster_list.<locals>.<listcomp>   ó   € Ð(Ð(Ð(˜��Ð(Ð(Ð(ó    r   c                 ó   — g | ]}|g‘ŒS r   r   r   s     r   r   z cluster_list.<locals>.<listcomp>   r   r   é   )ÚsortedÚlenÚlistÚappend)r   r   ÚgroupsÚcurrent_groupÚlastr   s         r   Úcluster_listr&   	   sï   € Ø�A‚~€~Ø(Ð(�V B™ZœZÐ(Ñ(Ô(Ð(Ý
ˆ2�w„w�‚{€{Ø(Ð(�V B™ZœZÐ(Ñ(Ô(Ð(Ø€FÝ	�f�R‰jŒjÑ	Ô	€BØ˜”U�G€MØˆaŒ5€DØ���ŒVð ð ˆØ�˜	Ñ!Ò"Ð"Ø× Ò  Ñ#Ô#Ð#Ð#à�MŠM˜-Ñ(Ô(Ð(Ø˜CˆMØˆˆØ
‡M‚M�-Ñ Ô Ð Ø€Mr   Úvaluesc                 ó¾   — t          t          t          | ¦  «        ¦  «        |¦  «        }d„ t          |¦  «        D ¦   «         }t	          t          j        |Ž ¦  «        S )Nc                 ó2   ‡— g | ]\  Š}ˆfd „|D ¦   «         ‘ŒS )c                 ó   •— g | ]}|‰f‘ŒS r   r   )r   ÚvalÚis     €r   r   z0make_cluster_dict.<locals>.<listcomp>.<listcomp>!   s   ø€ Ð+Ð+Ð+�cˆ#ˆqˆÐ+Ð+Ð+r   r   )r   Úvalue_clusterr,   s     @r   r   z%make_cluster_dict.<locals>.<listcomp>    s?   ø€ ð ð ð Ù0@°°=Ð+Ð+Ð+Ð+˜]Ð+Ñ+Ô+ðð ð r   )r&   r!   ÚsetÚ	enumerateÚdictÚ	itertoolsÚchain)r'   r   ÚclustersÚnested_tupless       r   Úmake_cluster_dictr5      s\   € Ý�D¥ V¡¤Ñ-Ô-¨yÑ9Ô9€Hðð ÝDMÈhÑDWÔDWðñ ô €Mõ •	” Ð/Ñ0Ô0Ð0r   ÚClusterable.FÚkey_fnÚpreserve_orderc                 ój  ‡‡‡	— t          ‰¦  «        st          ‰¦  «        Št          ‰| ¦  «        }t          ||¦  «        Št          d¦  «        t          d¦  «        cŠ	}|rˆˆfd„| D ¦   «         }nt	          ˆˆfd„| D ¦   «         |¬¦  «        }t          j        ||¬¦  «        }ˆ	fd„|D ¦   «         S )Nr   r   c                 óP   •— g | ]"}|‰                       ‰|¦  «        ¦  «        f‘Œ#S r   ©Úget©r   r   Úcluster_dictr7   s     €€r   r   z#cluster_objects.<locals>.<listcomp>:   s4   ø€ ÐGÐGÐG¸q˜1˜l×.Ò.¨v¨v°a©y¬yÑ9Ô9Ð:ÐGÐGÐGr   c              3   óX   •K  — | ]$}|‰                       ‰|¦  «        ¦  «        fV — Œ%d S )Nr;   r=   s     €€r   ú	<genexpr>z"cluster_objects.<locals>.<genexpr>=   s>   øè è € Ð:Ð:°!ˆa�×!Ò! & &¨¡)¤)Ñ,Ô,Ð-Ð:Ð:Ð:Ð:Ð:Ð:r   )Úkeyc                 óP   •— g | ]"\  }}t          t          ‰|¦  «        ¦  «        ‘Œ#S r   )r!   Úmap)r   ÚkÚvÚget_0s      €r   r   z#cluster_objects.<locals>.<listcomp>B   s-   ø€ Ð4Ð4Ð4¡D A q�D•�U˜A‘”ÑÔÐ4Ð4Ð4r   )Úcallabler   rC   r5   r   r1   Úgroupby)
r   r7   r   r8   r'   Úget_1Úcluster_tuplesÚgroupedr>   rF   s
    `      @@r   Úcluster_objectsrL   *   sÞ   øøø€ õ �FÑÔð $Ý˜FÑ#Ô#ˆå�˜‰_Œ_€FÝ$ V¨YÑ7Ô7€Lå˜a‘=”=¥*¨Q¡-¤-€L€Eˆ5àð 
ØGÐGÐGÐGÐGÀBÐGÑGÔGˆˆåØ:Ð:Ð:Ð:Ð:°rÐ:Ñ:Ô:Àð
ñ 
ô 
ˆõ Ô °EÐ:Ñ:Ô:€Gà4Ð4Ð4Ð4¨GÐ4Ñ4Ô4Ð4r   )r   )F)r1   Úcollections.abcr   Úoperatorr   Útypingr   r   r   r   r	   r
   r   r   Ú_typingr   r   r&   Úintr5   r6   ÚboolrL   r   r   r   ú<module>rS      s“  ðØ Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mà "Ð "Ð "Ð "Ð "Ð "Ð "Ð "ðð �T˜%”[ð ¨Uð ¸4ÀÀUÄÔ;Lð ð ð ð ð(1˜h uœoð 1¸%ð 1ÀDÈÐPSÈÔDTð 1ð 1ð 1ð 1ð ˆg�m U¨E°#°s°(¬OÑ<Ô<€ð !ð	5ð 5Øˆ[Ôð5à�(˜H k ]°EÐ%9Ô:Ð:Ô;ð5ð ð5ð ð	5ð
 
ˆ$ˆ{Ô
Ôð5ð 5ð 5ð 5ð 5ð 5r   