+
    "Ý³j1  ã                  ó$  € R t ^ RIHt ^ RIHtHt ^ RIHt ^ RIH	t	H
t
HtHtHt ]! RR7       ! R R4      4       t ! R	 R
]]4      t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t ! R R4      t]! RR7       ! R R]4      4       t]]]3,          tR R ltR R ltR R ltR R lt]! RR7       ! R R]4      4       tR R  ltR! R" ltR#R$R%^R&R$/R' R( lltR#R$R%^R&R$/R) R* llt. R+Ot R$# ),z@Rectangular layout primitives for future region-based renderers.)Úannotations)Ú	dataclassÚfield)ÚEnum)ÚDictÚListÚOptionalÚSequenceÚUnionT)Úfrozenc                  ó¸   € ] tR t^t$ RtR]R&   R]R&   R]R&   R]R&   R R lt]R	 R
 l4       t]R R l4       t	RR R llt
R^ R^ R^ R^ /R R lltR R ltRtR# )ÚViewportzDDescribe a rectangular terminal region in absolute cell coordinates.ÚintÚxÚyÚwidthÚheightc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNone© )Úformats   "ÚN/home/luca/screen-checking/.venv/lib/python3.14/site-packages/logbar/layout.pyÚ__annotate__ÚViewport.__annotate__   s   € ÷ 3ñ 3˜tñ 3ó    c           
     ó~  € \         P                  V R\        ^ \        V P                  4      4      4       \         P                  V R\        ^ \        V P
                  4      4      4       \         P                  V R\        V P                  4      4       \         P                  V R\        V P                  4      4       R# )z>Clamp invalid dimensions so downstream layout math stays safe.r   r   r   r   N)ÚobjectÚ__setattr__Úmaxr   r   r   r   r   ©Úselfs   &r   Ú__post_init__ÚViewport.__post_init__   s{   € ô 	×Ñ˜4 ¬#¨a´°T·Z±Z³Ó*AÔBÜ×Ñ˜4 ¬3¨q´#°d·k±kÓ2BÓ+CÔDÜ×Ñ˜4 ¤c¨$¯&©&£kÔ2Ü×Ñ˜4 ¤c¨$¯&©&£kÖ2r   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   r   !   s   € ÷ #ñ #�sñ #r   c                ó<   € V P                   V P                  ,           # )z1Return the exclusive right edge of the rectangle.)r   r   r"   s   &r   ÚrightÚViewport.right    s   € ð �v‰v˜Ÿ
™
Õ"Ð"r   c               ó   € V ^8„  d   QhRR/# r'   r   )r   s   "r   r   r   '   s   € ÷ $ñ $˜ñ $r   c                ó<   € V P                   V P                  ,           # )z2Return the exclusive bottom edge of the rectangle.)r   r   r"   s   &r   ÚbottomÚViewport.bottom&   s   € ð �v‰v˜Ÿ™Õ#Ð#r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Údxr   Údyr   ú
'Viewport'r   )r   s   "r   r   r   ,   s&   € ÷ Uñ U˜Cð U¨ð U°Zñ Ur   c                ó®   € \        V P                  \        V4      ,           V P                  \        V4      ,           V P                  V P
                  4      # )z6Return a copy moved by the given terminal-cell offset.)r   r   r   r   r   r   )r#   r0   r1   s   &&&r   Ú	translateÚViewport.translate,   s7   € ô ˜Ÿ™¤ R£Õ(¨$¯&©&´3°r³7Õ*:¸D¿J¹JÈÏÉÓTÐTr   ÚleftÚtopr)   r-   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r   r6   r   r7   r)   r-   r   r2   r   )r   s   "r   r   r   1   s7   € ÷ 
Dñ 
D˜Sð 
D¨3ð 
D¸3ð 
DÈCð 
DÐXbñ 
Dr   c               ó˜  € \        ^ \        V4      4      p\        ^ \        V4      4      p\        ^ \        V4      4      p\        ^ \        V4      4      p\        ^ V P                  V,
          V,
          4      p\        ^ V P                  V,
          V,
          4      p\	        V P
                  V,           V P                  V,           WV4      # )zHShrink the rectangle by edge offsets while preserving non-negative size.)r!   r   r   r   r   r   r   )r#   r6   r7   r)   r-   r   r   s   &$$$$  r   ÚinsetÚViewport.inset1   s—   € ô �1”c˜$“iÓ ˆÜ�!”S˜“XÓˆÜ�A”s˜5“zÓ"ˆÜ�Qœ˜F›Ó$ˆä�A�t—z‘z DÕ(¨5Õ0Ó1ˆÜ�Q˜Ÿ™ cÕ)¨FÕ2Ó3ˆÜ˜Ÿ™ � t§v¡v°¥|°UÓCÐCr   c               ó    € V ^8„  d   QhRRRR/# )r   Úotherr2   r   r   )r   s   "r   r   r   =   s   € ÷ Oñ O *ð O°ñ Or   c           
     ó\  € \        V P                  VP                  4      p\        V P                  VP                  4      p\        V P                  VP                  4      p\        V P
                  VP
                  4      p\        W#\        ^ WB,
          4      \        ^ WS,
          4      4      # )z-Return the clipped overlap of two rectangles.)r!   r   r   Úminr)   r-   r   )r#   r=   r6   r7   r)   r-   s   &&    r   ÚintersectionÚViewport.intersection=   su   € ô �4—6‘6˜5Ÿ7™7Ó#ˆÜ�$—&‘&˜%Ÿ'™'Ó"ˆÜ�D—J‘J §¡Ó,ˆÜ�T—[‘[ %§,¡,Ó/ˆÜ˜¤3 q¨%­,Ó#7¼¸QÀÅÓ9MÓNÐNr   r   N)é    rB   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r$   Úpropertyr)   r-   r4   r:   r@   Ú__static_attributes__r   r   r   r   r      s   ‡ áNà
ƒFØ
ƒFØƒJØƒKõ3ð ô#ó ð#ð
 ô$ó ð$÷
Uð

D 1ð 
D°ð 
DÀð 
DÐRS÷ 
D÷Oñ Or   r   c                  ó"   € ] tR t^GtRtRtRtRtR# )ÚSplitDirectionz9Supported split directions for a rectangular region tree.Ú
LEFT_RIGHTÚ
TOP_BOTTOMr   N)rC   rD   rE   rF   rG   rM   rN   rJ   r   r   r   rL   rL   G   s   † ÙCà€JØ„Jr   rL   c                  ó0   € ] tR t^Nt$ RtR]R&   R]R&   RtR# )ÚLayoutAssignmentz7Bind one leaf region identifier to a concrete viewport.ÚstrÚ	region_idr   Úviewportr   N©rC   rD   rE   rF   rG   rH   rJ   r   r   r   rP   rP   N   s   ‡ áAàƒNØ×r   rP   c                  ó<   € ] tR t^Vt$ RtR]R&   R]R&   R R ltRtR	# )
ÚDividerAssignmentz@Bind one split-divider rectangle to its repeated fill character.r   rS   rQ   Úfillc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚDividerAssignment.__annotate__]   s   € ÷ 3ñ 3˜tñ 3r   c                ó€   € \        V P                  ;'       g    R4      p\        P                  V RVR,          4       R# )zFNormalize the divider fill to a single visible character when present.Ú rW   ºNé   NN)rQ   rW   r   r    )r#   Útexts   & r   r$   ÚDividerAssignment.__post_init__]   s.   € ô �4—9‘9—?�? Ó#ˆÜ×Ñ˜4 ¨¨b­Ö2r   r   N)rC   rD   rE   rF   rG   rH   r$   rJ   r   r   r   rV   rV   V   s   ‡ áJàÓØ
ƒI÷3ñ 3r   rV   c                  ó0   € ] tR t^dt$ RtR]R&   R]R&   RtR# )ÚResolvedLayoutzEStore all leaf viewports and divider rectangles from one layout pass.úDict[str, Viewport]Ú	viewportsúList[DividerAssignment]Údividersr   NrT   r   r   r   ra   ra   d   s   ‡ áOà"Ó"Ø%×%r   ra   c                  ó>   € ] tR t^ltRtR R ltR R ltR R ltRtR	# )
Ú
LayoutNodez:Base class for nodes that can resolve into leaf viewports.c               ó    € V ^8„  d   QhRRRR/# ©r   rS   r   r   ra   r   )r   s   "r   r   ÚLayoutNode.__annotate__o   s   € ÷ "ñ " ð "¨^ñ "r   c                ó   € \         h)z7Return all leaf viewports and dividers under this node.)ÚNotImplementedError©r#   rS   s   &&r   ÚresolveÚLayoutNode.resolveo   s
   € ô "Ð!r   c               ó    € V ^8„  d   QhRRRR/# )r   rS   r   r   zList[LayoutAssignment]r   )r   s   "r   r   rj   t   s   € ÷ 
ñ 
˜xð 
Ð,Bñ 
r   c           	     ó    € V P                  V4      pVP                  P                  4        UUu. uF  w  r4\        W4R7      NK  	  upp# u uppi )z5Return all leaf viewport assignments under this node.)rR   rS   )rn   rc   ÚitemsrP   )r#   rS   ÚresolvedrR   Úregion_viewports   &&   r   ÚassignÚLayoutNode.assignt   sP   € ð —<‘< Ó)ˆð /7×.@Ñ.@×.FÑ.FÔ.Hô
á.HÑ*�	ô  y×KÙ.Hò
ð 	
ùó 
s   ¯A
c               ó    € V ^8„  d   QhRRRR/# )r   rS   r   r   rd   r   )r   s   "r   r   rj   }   s   € ÷ 5ñ 5 ð 5Ð.Eñ 5r   c                óJ   € \        V P                  V4      P                  4      # )z.Return all divider rectangles under this node.©Úlistrn   re   rm   s   &&r   re   ÚLayoutNode.dividers}   s   € ô �D—L‘L Ó*×3Ñ3Ó4Ð4r   r   N)	rC   rD   rE   rF   rG   rn   ru   re   rJ   r   r   r   rg   rg   l   s   † ÙDõ"õ

÷5ñ 5r   rg   c                  ó2   € ] tR t^ƒt$ RtR]R&   R R ltRtR# )ÚLeafNodez6Terminal layout leaf that names one renderable region.rQ   rR   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   ÚLeafNode.__annotate__‰   s   € ÷ 
ñ 
 ð 
¨^ñ 
r   c                ó4   € \        V P                  V/. R7      # )z1Resolve a leaf directly to the provided viewport.©rc   re   )ra   rR   rm   s   &&r   rn   ÚLeafNode.resolve‰   s    € ô Ø—~‘~ xÐ0Øô
ð 	
r   r   N)rC   rD   rE   rF   rG   rH   rn   rJ   r   r   r   r}   r}   ƒ   s   ‡ á@àƒN÷
ñ 
r   r}   c               ó    € V ^8„  d   QhRRRR/# )r   rR   rQ   r   r}   r   )r   s   "r   r   r   •   s   € ÷  ñ  �Cð  ˜Hñ  r   c                óp   € \        V 4      P                  4       pV'       g   \        R4      h\        V4      # )z<Create one leaf layout node from a public region identifier.zregion_id must not be empty.)rQ   ÚstripÚ
ValueErrorr}   )rR   Ú
normalizeds   & r   Úpanerˆ   •   s0   € ô �Y“×%Ñ%Ó'€JßÜÐ7Ó8Ð8Ü�JÓÐr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚchildÚLayoutChildr   rg   r   )r   s   "r   r   r   ž   s   € ÷ Zñ Z ð Z°
ñ Zr   c                óŠ   € \        V \        4      '       d   V # \        V \        4      '       d   \        V 4      # \	        R4      h)zBNormalize bare region ids and existing layout nodes into one node.zBlayout children must be region-id strings or LayoutNode instances.)Ú
isinstancerg   rQ   rˆ   Ú	TypeError)rŠ   s   &r   Ú_coerce_layout_childr�   ž   s9   € ô �%œ×$Ò$ØˆÜ�%œ×ÒÜ�E‹{ÐÜ
ÐXÓ
YÐYr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚchildrenúSequence[LayoutNode]ÚweightsúOptional[Sequence[int]]r   ú	List[int]r   )r   s   "r   r   r   ¨   s$   € ÷ ñ Ð!5ð Ð@Wð Ð\eñ r   c                ój  € V '       g   \        R4      hVf   ^.\        V 4      ,          # \        V4      \        V 4      8w  d   \        R4      hV Uu. uF  p\        V4      NK  	  pp\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        R4      hV# u upi )z=Resolve child weights while rejecting zero or negative sizes.z&SplitNode requires at least one child.z*weights must match the number of children.c              3  ó*   "  € T F	  q^ 8*  x € K  	  R# 5i)rB   Nr   )Ú.0Úweights   & r   Ú	<genexpr>Ú%_normalize_weights.<locals>.<genexpr>µ   s   é € Ð
0¡Z˜6�QŽ;£Zùs   ‚TFz"weights must be positive integers.)r†   Úlenr   Úany)r‘   r“   r™   r‡   s   &&  r   Ú_normalize_weightsrž   ¨   s•   € ÷ ÜÐAÓBÐBà‚Øˆs”S˜“]Õ"Ð"ä
ˆ7ƒ|”s˜8“}Ô$ÜÐEÓFÐFá,3Ó4©G &”#�f–+©G€JÐ4ß
ƒsÑ
0¡ZÓ
0‡s‡s‚sÑ
0¡ZÓ
0×0Ò0ÜÐ=Ó>Ð>ØÐùò 5s   ÁB0c               ó$   € V ^8„  d   QhRRRRRR/# )r   Útotalr   r“   zSequence[int]r   r•   r   )r   s   "r   r   r   º   s!   € ÷ ñ ˜Sð ¨=ð ¸Yñ r   c                ód  € \        ^ \        V 4      4      p V'       g   . # \        V4      pV^ 8:  d   ^ .\        V4      ,          # V Uu. uF  q0V,          V,          NK  	  ppV \        V4      ,
          p\	        V4       F'  pWF\        V4      ,          ;;,          ^,          uu&   K)  	  V# u upi )z?Distribute terminal cells proportionally and deterministically.)r!   r   Úsumrœ   Úrange)r    r“   Ú
weight_sumr™   ÚlengthsÚ	remainderÚindexs   &&     r   Ú_allocate_lengthsr¨   º   sš   € ô �”3�u“:Ó€EßØˆ	ä�W“€JØ�Q„Øˆs”S˜“\Õ!Ð!á<CÓD¹G°&˜• :×-Ð-¹G€GÐDØœ˜G›Õ$€IÜ�yÖ!ˆØœ˜G›Õ$×%¨Õ*Õ%ñ "à€Nùò	 Es   Á	B-c                  óÒ   € ] tR t^Ìt$ RtR]R&   R]R&   RtR]R&   ^tR	]R
&   RtR]R&   ]	! RRR7      t
R]R&   ]	! RRR7      tR]R&   R R ltR R ltR R ltR R ltR R ltRtR# )Ú	SplitNodez@Internal layout node that divides a rectangle among child nodes.rL   Ú	directionr’   r‘   Nr”   r“   r   ÚgutterúOptional[str]ÚdividerF)ÚinitÚreprr•   Ú_resolved_weightsrQ   Ú_resolved_dividerc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚSplitNode.__annotate__Ø   s   € ÷ Nñ N˜tñ Nr   c           
     ó   € \         P                  V R\        ^ \        V P                  4      4      4       \         P                  V R\        V P                  V P                  4      4       V P                  pVf$   V P                  \        P                  8X  d   RMRp\         P                  T R\        T;'       g    R4      R,          4       R# )	z@Validate split configuration eagerly so resolution stays simple.r¬   r±   NÚ|Ú-r²   r[   r\   )r   r    r!   r   r¬   rž   r‘   r“   r®   r«   rL   rM   rQ   )r#   r®   s   & r   r$   ÚSplitNode.__post_init__Ø   s—   € ô 	×Ñ˜4 ¬3¨q´#°d·k±kÓ2BÓ+CÔDÜ×ÑØØÜ˜tŸ}™}¨d¯l©lÓ;ô	
ð
 —,‘,ˆØŠ?Ø!Ÿ^™^¬~×/HÑ/HÔH‘cÈcˆGÜ×Ñ˜4Ð!4´c¸'¿-¸-ÀRÓ6HÈÕ6LÖMr   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   r´   æ   s   € ÷ %
ñ %
 ð %
¨^ñ %
r   c                óT  € \        V P                  4      ^8X  d#   V P                  ^ ,          P                  V4      # / p. pV P                  V4      p\	        V4       EF»  w  pw  rgVP                  V4      pVP
                  P                  4        F  w  ršW’9   d   \        RV	: 24      hW¢V	&   K   	  VP                  VP                  4       V\        V4      ^,
          8¼  g$   V P                  ^ 8:  g   V P                  '       g   K­  V P                  \        P                  8X  d^   VP                  \!        \#        VP$                  VP&                  V P                  VP(                  4      V P                  R7      4       EK)  V P                  \        P*                  8X  d^   VP                  \!        \#        VP,                  VP.                  VP0                  V P                  4      V P                  R7      4       EK¥  \        RV P                  : 24      h	  \3        VVR7      # )zBResolve all descendant leaves and split dividers in one traversal.z$Duplicate region id in layout tree: )rS   rW   úUnsupported split direction: r�   )rœ   r‘   rn   Ú_child_viewportsÚ	enumeraterc   rr   r†   Úextendre   r¬   r²   r«   rL   rM   ÚappendrV   r   r)   r   r   rN   r   r-   r   ra   )r#   rS   Úresolved_viewportsÚresolved_dividersÚchild_viewportsr§   rŠ   Úchild_viewportÚchild_resolvedrR   Úresolved_viewports   &&         r   rn   ÚSplitNode.resolveæ   sÉ  € ô ˆt�}‰}Ó Ô"Ø—=‘= Õ#×+Ñ+¨HÓ5Ð5à24ÐØ57ÐØ×/Ñ/°Ó9ˆÜ.7¸×.HÑ*ˆEÑ*�EØ"Ÿ]™]¨>Ó:ˆNØ0>×0HÑ0H×0NÑ0NÖ0PÑ,�	ØÔ2Ü$Ð'KÈIÉ=Ð%YÓZÐZØ0A 9Ó-ñ 1Qð ×$Ñ$ ^×%<Ñ%<Ô=Øœ˜OÓ,¨qÕ0Ô0°D·K±KÀ1Ô4DÈD×Lb×LbÐLbÙØ�~‰~¤×!:Ñ!:Ô:Ø!×(Ñ(Ü%Ü!)¨.×*>Ñ*>ÀÇ
Á
ÈDÏKÉKÐYa×YhÑYhÓ!iØ!×3Ñ3ô÷ð —‘¤>×#<Ñ#<Ô<Ø!×(Ñ(Ü%Ü!)¨(¯*©*°n×6KÑ6KÈXÏ^É^Ð]a×]hÑ]hÓ!iØ!×3Ñ3ô÷ô !Ð#@ÀÇÁÑ@RÐ!SÓTÐTñ1 /Iô2 Ø(Ø&ô
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# ©r   rS   r   r   z!List[tuple[LayoutNode, Viewport]]r   )r   s   "r   r   r´     s   € ÷ Mñ M¨ð MÐ6Wñ Mr   c                óô   € V P                   \        P                  8X  d   V P                  V4      # V P                   \        P                  8X  d   V P                  V4      # \        RV P                   : 24      h)z3Resolve direct child rectangles for one split node.r»   )r«   rL   rM   Ú_left_right_child_viewportsrN   Ú_top_bottom_child_viewportsr†   rm   s   &&r   r¼   ÚSplitNode._child_viewports  sb   € ð �>‰>œ^×6Ñ6Ô6Ø×3Ñ3°HÓ=Ð=Ø�>‰>œ^×6Ñ6Ô6Ø×3Ñ3°HÓ=Ð=ÜÐ8¸¿¹Ñ8JÐKÓLÐLr   c               ó    € V ^8„  d   QhRRRR/# rÈ   r   )r   s   "r   r   r´     ó   € ÷ ñ °Hð ÐAbñ r   c                ó°  € \        ^ VP                  V P                  \        V P                  4      ^,
          ,          ,
          4      p\        W P                  4      p. pVP                  p\        V P                  V4       FP  w  rg\        WQP                  WqP                  4      pVP                  Wh34       WWV P                  ,           ,          pKR  	  V# )z7Split one viewport into left-to-right child rectangles.)r!   r   r¬   rœ   r‘   r¨   r±   r   Úzipr   r   r   r¿   )	r#   rS   Ú	availableÚwidthsrÂ   Úcursor_xrŠ   r   rÃ   s	   &&       r   rÊ   Ú%SplitNode._left_right_child_viewports  s¤   € ô ˜˜8Ÿ>™>¨T¯[©[¼CÀÇÁÓ<NÐQRÕ<RÕ-SÕTÓUˆ	Ü" 9×.DÑ.DÓEˆà=?ˆØ—:‘:ˆÜ §¡¨vÖ6‰LˆEÜ% h·
±
¸EÇ?Á?ÓSˆNØ×"Ñ" EÐ#:Ô;Ø §¡Õ+Õ+ŠHñ 7ð Ðr   c               ó    € V ^8„  d   QhRRRR/# rÈ   r   )r   s   "r   r   r´   $  rÎ   r   c                ó²  € \        ^ VP                  V P                  \        V P                  4      ^,
          ,          ,
          4      p\        W P                  4      p. pVP                  p\        V P                  V4       FQ  w  rg\        VP                  WQP                  V4      pVP                  Wh34       WWV P                  ,           ,          pKS  	  V# )z7Split one viewport into top-to-bottom child rectangles.)r!   r   r¬   rœ   r‘   r¨   r±   r   rÐ   r   r   r   r¿   )	r#   rS   rÑ   ÚheightsrÂ   Úcursor_yrŠ   r   rÃ   s	   &&       r   rË   Ú%SplitNode._top_bottom_child_viewports$  s¦   € ô ˜˜8Ÿ?™?¨d¯k©k¼SÀÇÁÓ=OÐRSÕ=SÕ.TÕUÓVˆ	Ü# I×/EÑ/EÓFˆà=?ˆØ—:‘:ˆÜ  §¡°Ö8‰MˆEÜ% h§j¡j°(¿N¹NÈFÓSˆNØ×"Ñ" EÐ#:Ô;Ø §¡Õ,Õ,ŠHñ 9ð Ðr   r   )rC   rD   rE   rF   rG   rH   r“   r¬   r®   r   r±   r²   r$   rn   r¼   rÊ   rË   rJ   r   r   r   rª   rª   Ì   st   ‡ áJàÓØ"Ó"Ø'+€GÐ$Ó+Ø€FˆCƒOØ!€Gˆ]Ó!Ù#(¨e¸%Ô#@Ð�yÓ@Ù"¨°EÔ:Ð�sÓ:õNõ%
õNMõ÷ñ r   rª   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úrootrg   rS   r   r   rb   r   )r   s   "r   r   r   3  s"   € ÷ 2ñ 2˜ð 2¨xð 2Ð<Oñ 2r   c                óJ   € \        V P                  V4      P                  4      # )zHResolve a layout tree into a stable mapping of region ids to rectangles.)Údictrn   rc   ©rÛ   rS   s   &&r   Úresolve_layoutrß   3  s   € ô �—‘˜XÓ&×0Ñ0Ó1Ð1r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÛ   rg   rS   r   r   rd   r   )r   s   "r   r   r   9  s"   € ÷ 1ñ 1˜:ð 1°ð 1Ð>Uñ 1r   c                óJ   € \        V P                  V4      P                  4      # )z9Resolve all split-divider rectangles for one layout tree.ry   rÞ   s   &&r   Úresolve_dividersrâ   9  s   € ô �—‘˜XÓ&×/Ñ/Ó0Ð0r   r“   Nr¬   r®   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# ©r   r‘   r‹   r“   r”   r¬   r   r®   r­   r   rª   r   )r   s   "r   r   r   ?  ó:   € ÷ ñ Øðà$ðð ðð ð	ð
 ñr   c                ó’   € \        \        P                  \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      V VVR7      # )zDCreate a left-to-right split from region ids or nested layout nodes.c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5i©N©r�   ©r˜   rŠ   s   & r   rš   Úcolumns.<locals>.<genexpr>I  ó   é € ÐIÁ°uÔ+¨E×2Ð2Ãùó   ‚©r«   r‘   r“   r¬   r®   )rª   rL   rM   Útuple©r“   r¬   r®   r‘   s   $$$*r   Úcolumnsrñ   ?  ó?   € ô Ü ×+Ñ+ß”ÑIÁÓI—‘ÑIÁÓIÓIØØØôð r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# rä   r   )r   s   "r   r   r   P  rå   r   c                ó’   € \        \        P                  \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      V VVR7      # )zDCreate a top-to-bottom split from region ids or nested layout nodes.c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irè   ré   rê   s   & r   rš   Úrows.<locals>.<genexpr>Z  rì   rí   rî   )rª   rL   rN   rï   rð   s   $$$*r   Úrowsr÷   P  rò   r   )rV   rP   r‹   rg   r}   ra   rL   rª   r   rñ   rˆ   r÷   rß   )!rG   Ú
__future__r   Údataclassesr   r   Úenumr   Útypingr   r   r   r	   r
   r   rQ   rL   rP   rV   ra   rg   r}   r‹   rˆ   r�   rž   r¨   rª   rß   râ   rñ   r÷   Ú__all__r   r   r   Ú<module>rý      sj  ðñ Gå "ç (Ý ß 8Õ 8ñ �$Ô÷4Oð 4Oó ð4Oôn�S˜$ô ñ �$Ô÷ð ó ðñ �$Ô÷
3ð 
3ó ð
3ñ �$Ô÷&ð &ó ð&÷5ñ 5ñ. �$Ôô
ˆzó 
ó ð
ð �C˜�OÕ$€õ õZõõ$ñ$ �$Ôôc�
ó có ðcõL2õ1ðà'+ðð ðð "÷	ð"à'+ðð ðð "÷	ò"‚r   