ó
    ¬&Žj™+  ã                  óÆ   • S r SSKJr  SSKrSSKJs  Jr  SSK	J
r
  SSKJrJrJ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S rS rS rS r S r!S r"g)a:  Tests for footnote marker-to-definition resolution.

Pure and deterministic: the in-crop pairing tier, the reading-order scan
tier with its coherence acceptance, the Notes-pointer resolution, and the
exception lists. The demand-driven lookup agent is a separate tier with its
own module and is not exercised here.
é    )ÚannotationsN)ÚFootnoteDef)Úcanonical_markerÚresolve_footnotesÚsplit_leading_markerc                 óÌ
  • Sn [        U 5      nSn[        U5      o1U:H  nSn[        U5      ocU:H  ot(       a  U(       Gd½  [        R                  " SXG4SXU45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U5      [        R                  " U5      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U5      [        R                  " U5      S.	-  nSS	U0-  n	[        [        R                  " U	5      5      eS =n =n=n=n=n=n=pVS
n [        U 5      nSn
[        U
5      o±U:H  oD(       Gd?  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U
5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=n=p«Sn [        U 5      nSoqU:H  oD(       d×  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=pGSn [        U 5      nSoqU:H  oD(       d×  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=pGg )Nú(1)Ú1ô   Â¹)ú==r   )zP%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py11)s
{%(py11)s = %(py7)s(%(py9)s)
}zT%(py11)s
{%(py11)s = %(py7)s(%(py9)s)
} == %(py16)s
{%(py16)s = %(py12)s(%(py14)s)
}r   )	Úpy0Úpy2Úpy4Úpy7Úpy9Úpy11Úpy12Úpy14Úpy16zassert %(py18)sÚpy18z(a)zA.©r   )zP%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py10)s
{%(py10)s = %(py6)s(%(py8)s)
})r   r   r   Úpy6Úpy8Úpy10zassert %(py12)sr   õ   â€ ©z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)s©r   r   r   r   úassert %(py9)sr   Ú )	r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)Ú@py_assert1Ú@py_assert3Ú@py_assert8Ú@py_assert10Ú@py_assert5Ú@py_assert13Ú@py_assert15Ú@py_assert6Ú@py_format17Ú@py_format19Ú@py_assert7Ú@py_assert9Ú@py_format11Ú@py_format13Ú@py_format8Ú@py_format10s                   Ú3/home/mande/repo/quber/tests/core/test_footnotes.pyÚ(test_canonical_marker_equates_renderingsr9      sî  € Ø!ÐUÔ˜EÓ"ÐU°sÐUÔ&6°sÓ&;ÐUÐ&;ÑUÐUÐPTÐUÔ?OÐPTÓ?UÐUÐ?UÑU×U×U×U×UÒUÐ"Ð?U×U×U×U×U×UÕUÔ×U×U×UÑUÔ×U×UÕU˜E×U×UÓUÐ"×U×U×U×U×UÔUÔ&6×U×U×UÑUÔ&6×U×UÕU°s×U×UÓUÐ&;×U×U×U×U×UÔUÔ?O×U×U×UÑUÔ?O×U×UÕUÐPT×U×UÓUÐ?U×U×U×U×U×U×U×UÕUØ!Ð<Ô˜EÓ"Ð<°tÐ<Ô&6°tÓ&<Ð<Ð&<Ñ<×<×<×<Ó<Ð"×<×<×<×<×<Õ<Ô×<×<×<Ñ<Ô×<×<Õ<˜E×<×<Ó<Ð"×<×<×<×<×<Ô<Ô&6×<×<×<Ñ<Ô&6×<×<Õ<°t×<×<Ó<Ð&<×<×<×<×<×<×<×<Ø!Ð+Ô˜EÓ"Ð+ eÐ+ eÑ+×+×+×+Ò+Ð"×+×+×+×+×+Õ+Ô×+×+×+Ñ+Ô×+×+Õ+˜E×+×+Ó+Ð"×+×+Ó+ e×+×+×+×+×+×+Õ+ØÐ%Ô˜BÓÐ% 2Ð% 2Ñ%×%×%×%Ò%Ð×%×%×%×%×%Õ%Ô×%×%×%Ñ%Ô×%×%Õ%˜B×%×%Ó%Ð×%×%Ó% 2×%×%×%×%×%×%Ö%ó    c                 ó¦	  • Sn [        U 5      nSo!U:H  o3(       d×  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=p2S	n [        U 5      nS
o!U:H  o3(       d×  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=p2Sn [        U 5      nSo!U:H  o3(       d×  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=p2Sn [        U 5      nS o!UL o3(       d×  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=p2Sn [        U 5      nS o!UL o3(       d×  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=p2g )Nz(3) Reflects the transfer.)Ú3zReflects the transfer.r   r   r   r   r   r   z2 Includes wireless equipment.)Ú2zIncludes wireless equipment.úa. Amounts are unaudited.)ÚazAmounts are unaudited.z(In the fourth quarter, results improved.©Úis)z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} is %(py7)sú(3))	r   r    r!   r"   r#   r$   r%   r&   r'   )r(   r)   r/   r,   r6   r7   s         r8   Ú test_split_leading_marker_shapesrC      s¬  € Ø <Ð`ÔÐ <Ó=Ð`ÐA`Ð`ÐA`Ñ`×`×`×`Ò`Ð=×`×`×`×`×`Õ`Ô×`×`×`Ñ`Ô×`×`Õ`Ð <×`×`Ó`Ð=×`×`Ó`ÐA`×`×`×`×`×`×`Õ`Ø @ÐjÔÐ @ÓAÐjÐEjÐjÐEjÑj×j×j×jÒjÐA×j×j×j×j×jÕjÔ×j×j×jÑjÔ×j×jÕjÐ @×j×jÓjÐA×j×jÓjÐEj×j×j×j×j×j×jÕjØ ;Ð_ÔÐ ;Ó<Ð_Ð@_Ð_Ð@_Ñ_×_×_×_Ò_Ð<×_×_×_×_×_Õ_Ô×_×_×_Ñ_Ô×_×_Õ_Ð ;×_×_Ó_Ð<×_×_Ó_Ð@_×_×_×_×_×_×_Õ_à JÐSÔÐ JÓKÐSÈtÐSÈtÐS×S×S×SÒSÐK×S×S×S×S×SÕSÔ×S×S×SÑSÔ×S×SÕSÐ J×S×SÓSÐK×S×SÓSÈt×S×S×S×S×S×SÕSà %Ð.Ô Ó&Ð.¨$Ð.¨$Ð.×.×.×.Ò.Ð&×.×.×.×.×.Õ.Ô×.×.×.Ñ.Ô×.×.Õ. ×.×.Ó.Ð&×.×.Ó.¨$×.×.×.×.×.×.Ö.r:   c                 óx  • [        S/[        SSS9/SS9n U R                   Vs/ s H%  oR                  UR                  UR
                  4PM'     nnS/o2U:H  oD(       do  [        R                  " SU4S	X#45      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pC/ opR                  n/ oƒU:H  o™o)(       a  U R                  n
/ oºU:H  oÌnU(       GdŸ  [        R                  " SU	4SX845      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  oçR!                  U5        U	(       a­  [        R                  " SW4SW
W45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U
5      [        R                  " U5      S.-  nSSU0-  nUR!                  U5        [        R"                  " US5      0 -  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=n	=n=n
=pËg s  snf )NrB   r<   ú%Reflects the transfer of obligations.©ÚmarkerÚtexté   ©ÚmarkersÚ	footnotesÚ
table_page)rB   rE   Útabler   ©z%(py1)s == %(py4)s©Úpy1r   úassert %(py6)sr   )z2%(py4)s
{%(py4)s = %(py2)s.unresolved
} == %(py7)sÚout)r   r   r   z%(py9)sr   )z8%(py13)s
{%(py13)s = %(py11)s.unreferenced
} == %(py16)s)r   Úpy13r   z%(py18)sr   r   zassert %(py21)sÚpy21)r   r   ÚresolvedrG   rH   Úsourcer    r!   r%   r&   r'   Ú
unresolvedÚunreferencedr"   r#   r$   ÚappendÚ_format_boolop)rS   ÚrÚ@py_assert0r)   Ú@py_assert2Ú@py_format5Ú@py_format7r(   r/   r,   Ú@py_assert12r.   Ú@py_assert14r6   r7   r0   r1   Ú@py_format20Ú@py_format22s                      r8   Ú test_in_crop_pairs_resolve_firstre   $   sÍ  € Ü
Ø�Ü cÐ0WÑXÐYØñ€Cð
 36·,²,Ó?²,¨Q�X‰X�q—v‘v˜qŸx™xÓ(±,ð Ð?ØAðDð ð Dñ ÷ ó ïé ôÐ?÷ ñ ïé ðÐ?÷ ð ïé ðð D÷ ÷ ÷ ñ ïé ÷÷ ñ ;�>‰>Ð:˜RÐ:˜RÑ×: C×$4Ñ$4Ð:¸Ð:¸Ñ$:×:×:×:Õ:ˆ>×:×:×:×:×:Õ:ˆ3×:×:×:Ñ:ˆ3×:×:Õ:ˆ>×:×:Ó:˜R×:×:×:×:×:×:×:Ò:Ð$4¸×:×:×:×:×:Õ: C×:×:×:Ñ: C×:×:Õ:Ð$4×:×:Ó:¸×:×:×:×:×:×:×:×:×:×:×:×:×:×:Ð:ùò @s   ¤,J7c            	     óÄ  • Sn Sn[        S/[        SU S9/SSSU -   S4US4/S	9nUR                   Vs/ s H  o3R                  UR                  4PM     nnUS
S  S4/oTU:H  of(       do  [
        R                  " SU4SXE45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=peg s  snf )Nuî   GNMA interest-only securities are recorded at fair value with changes in fair value recorded in current period earnings. The Companyâ€™s GNMA interest-only securities are considered to be hybrid financial instruments that contain embeddedal  (6) GNMA interest-only securities are recorded at fair value with changes in fair value recorded in current period earnings. The Company's GNMA interestonly securities are considered to be hybrid financial instruments that contain embedded derivatives. As a result, the Company has elected to account for them as hybrid instruments in their entirety at fair value.z(6)rF   é   )z#(5) Includes restricted securities.é   z(6) rh   ©rK   rL   rM   Útrailing_linesé   Úscanr   rO   rP   rR   r   ©
r   r   rV   rH   rW   r    r!   r%   r&   r'   )	Úin_cropÚfullrS   r\   r]   r)   r^   r_   r`   s	            r8   Ú<test_in_crop_pair_cut_at_page_break_is_completed_by_the_scanrp   0   sÒ   € ð	]ð ð	7ð 	ô Ø�Ü e°'Ñ:Ð;ØØBÀVÈgÑEUÐWXÐDYÐ\`ÐbdÐ[eÐfñ	€Cð ),¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ÐMÐ5¸4ÀÀ¸8ÀVÐ:LÐ9MÐMÐ9MÑM×M×M×MÒMÐ5×M×MÔMÐ5×M×MÓMÐ9M×M×M×M×M×M×MÔMùÒ5s   ³!Cc                 ó¢  • [        S/[        SSS9/SSS/S9n U R                   Vs/ s H  oR                  UR                  4PM     nnS	/o2U:H  oD(       do  [
        R                  " S
U4SX#45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCg s  snf )NrB   r<   rE   rF   rI   )z)(3) Reflects the transfer of obligations.rI   )z-(3) Something else the scan happens to match.rI   ri   )rE   rN   r   rO   rP   rR   r   rm   ©rS   r\   r]   r)   r^   r_   r`   s          r8   Ú>test_in_crop_pair_stands_when_the_scan_line_does_not_extend_itrs   J   s£   € ô Ø�Ü cÐ0WÑXÐYØà=ØAð
ñ	€Cð ),¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ÐmÐ5Ð:lÐ9mÐmÐ9mÑm×m×m×mÒmÐ5×m×mÔmÐ5×m×mÓmÐ9m×m×m×m×m×m×mÔmùÒ5s   §!Cc                 óä  • [        S// SS/S9n U R                  S   oR                  nSo2U:H  oD(       d„  [        R                  " SU4SX#45      [        R
                  " U5      [        R
                  " U5      [        R
                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=n=pCU R                  S   oR                  nSo2U:H  oD(       d„  [        R                  " SU4SX#45      [        R
                  " U5      [        R
                  " U5      [        R
                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=n=pCg )Nr=   rI   )z&2 Includes wireless equipment revenue.rI   ri   r   rl   r   )z.%(py3)s
{%(py3)s = %(py1)s.source
} == %(py6)s©rQ   Úpy3r   úassert %(py8)sr   z$Includes wireless equipment revenue.©z,%(py3)s
{%(py3)s = %(py1)s.text
} == %(py6)s)	r   rV   rW   r    r!   r%   r&   r'   rH   ©rS   r]   r^   r,   Ú@py_assert4r`   Ú@py_format9s          r8   Ú,test_scan_accepts_same_page_solitary_numericr|   Y   sð   € Ü
Ø�ØØØFÐGñ	€Cð �<‰<˜‰?Ð+×!Ñ!Ð+ VÐ+ VÑ+×+×+×+Ò+Ð!×+×+Ô+ˆ?×+×+Ó+Ð!×+×+Ó+ V×+×+×+×+×+×+Õ+Ø�<‰<˜‰?ÐI×ÑÐIÐ#IÐIÐ#IÑI×I×I×IÒIÐ×I×IÔIˆ?×I×IÓIÐ×I×IÓIÐ#I×I×I×I×I×I×IÖIr:   c                 ó€  • [        S// SSS/S9n U R                  n/ o!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=p2U R                  nS/o!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=p2g )Nr=   rI   )zSome prose.é   )z$2 Total revenue grew in the quarter.é   ri   r   ©z0%(py2)s
{%(py2)s = %(py0)s.resolved
} == %(py5)srS   ©r   r   Úpy5úassert %(py7)sr   ©z2%(py2)s
{%(py2)s = %(py0)s.unresolved
} == %(py5)s)r   rV   r    r!   r"   r#   r$   r%   r&   r'   rX   ©rS   r(   rz   r)   Ú@py_format6r6   s         r8   Ú2test_scan_refuses_solitary_numeric_on_distant_pager‡   d   s  € ä
Ø�ØØØ+Ð-YÐZñ	€Cð �<‰<Ð˜2Ð˜2Ñ×××Òˆ<×××××Õˆ3×××Ñˆ3××Õˆ<××Ó˜2××××××ÓØ�>‰>Ð"˜c˜UÐ"˜UÑ"×"×"×"Ò"ˆ>×"×"×"×"×"Õ"ˆ3×"×"×"Ñ"ˆ3×"×"Õ"ˆ>×"×"Ó"˜U×"×"×"×"×"×"Ô"r:   c                 ó”  • / SQn [        S// SU S9nUR                   Vs/ s H  o"R                  UR                  4PM     nnS/oCU:H  oU(       do  [        R
                  " SU4SX445      [        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS =n=pTg s  snf )N))r>   r~   )z#b. Restated for the segment change.r~   )z$c. Excludes discontinued operations.r~   z(b)rI   ri   )z Restated for the segment change.rl   r   rO   rP   rR   r   )	r   rV   rH   rW   r    r!   r%   r&   r'   )ÚlinesrS   r\   r]   r)   r^   r_   r`   s           r8   Ú4test_scan_accepts_continuation_block_on_a_later_pagerŠ   p   s�   € ò€Eô
  U G°rÀbÐY^Ñ
_€CØ(+¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ÐgÐ5Ð:fÐ9gÐgÐ9gÑg×g×g×gÒgÐ5×g×gÔgÐ5×g×gÓgÐ9g×g×g×g×g×g×gÔgùÒ5s    !Cc                 ó‚  • [        S// SS/S9n U R                  S   oR                  nSo2U:H  oD(       d„  [        R                  " SU4SX#45      [        R
                  " U5      [        R
                  " U5      [        R
                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=n=pCg )Nr   rI   )u   â€  At fair value.r   ri   r   zAt fair value.r   rx   ru   rw   r   )r   rV   rH   r    r!   r%   r&   r'   ry   s          r8   Ú1test_scan_accepts_solitary_symbol_on_a_later_pagerŒ   |   s‹   € ô Ø�ØØØ2Ð3ñ	€Cð �<‰<˜‰?Ð3×ÑÐ3Ð#3Ð3Ð#3Ñ3×3×3×3Ò3Ð×3×3Ô3ˆ?×3×3Ó3Ð×3×3Ó3Ð#3×3×3×3×3×3×3Ö3r:   c            	     ó¤  • [        S// SS/[        S5      1S9n U R                   Vs/ s H  oR                  UR                  4PM     nnS/o2U:H  oD(       do  [
        R                  " SU4SX#45      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pCg s  snf )Nú	(Note 12)é   )zNote 12 Employee Benefit Plansé+   ©rK   rL   rM   ÚheadingsÚsection_keys)z,See Note 12 Employee Benefit Plans (page 43)Únote_pointerr   rO   rP   rR   r   ©
r   r   rV   rH   rW   r    r!   r%   r&   r'   rr   s          r8   Ú0test_note_reference_resolves_to_pointer_not_textr–   ˆ   s×   € ô Ø�ØØØ8Ð9Ü& {Ó3Ð4ñ€Cð ),¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ð Ð5ØHð:ð ð :ñ ÷ ó ïé ôÐ5÷ ñ ïé ðÐ5÷ ð ïé ðð :÷ ÷ ÷ ñ ïé ÷÷ ð ùÒ5ó   ¨!Cc                 ó�  • [        S// S[        S5      1S9n U R                  n/ o!U:H  o3(       dº  [        R                  " SU4SX45      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=p2U R                  nS/o!U:H  o3(       dº  [        R                  " SU4S
X45      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=p2g )NrŽ   r�   )rK   rL   rM   r“   r   r€   rS   r�   rƒ   r   r„   ©r   r   rV   r    r!   r"   r#   r$   r%   r&   r'   rX   r…   s         r8   Ú4test_note_reference_without_heading_stays_unresolvedrš   —   s  € Ü
Ø�ØØÜ& {Ó3Ð4ñ	€Cð �<‰<Ð˜2Ð˜2Ñ×××Òˆ<×××××Õˆ3×××Ñˆ3××Õˆ<××Ó˜2××××××ÓØ�>‰>Ð*˜k˜]Ð*˜]Ñ*×*×*×*Ò*ˆ>×*×*×*×*×*Õ*ˆ3×*×*×*Ñ*ˆ3×*×*Õ*ˆ>×*×*Ó*˜]×*×*×*×*×*×*Ô*r:   c            
     óþ  • [        S/[        SSS9[        SSS9[        SSS9/SS	9n U R                   Vs/ s H  oR                  PM     nnS/o2U:H  oD(       do  [        R
                  " S
U4SX#45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCU R                   Vs/ s H  owR                  PM     nnS/o2U:H  oD(       do  [        R
                  " S
U4SX#45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCg s  snf s  snf )Nr
   úPreliminary.rF   r=   zNothing points here.r   zAmounts in millions.é   rJ   r   rO   rP   rR   r   )r   r   rV   rG   r    r!   r%   r&   r'   rY   rH   )rS   r\   r]   r)   r^   r_   r`   Úds           r8   ÚLtest_unreferenced_marked_definition_is_an_exception_but_unmarked_note_is_notrŸ   ¢   s  € Ü
Ø�ä˜s¨Ñ8Ü˜sÐ)?Ñ@Ü˜rÐ(>Ñ?ð
ð
 ñ€Cð "ŸlšlÓ+šl˜�HŒH™lÐ4Ð+°¨uÐ4¨uÑ4×4×4×4Ò4Ð+×4×4Ô4Ð+×4×4Ó4¨u×4×4×4×4×4×4Ó4Ø×,Ò,Ó-Ò,�q�FŒFÑ,ÐIÐ-Ð2HÐ1IÐIÐ1IÑI×I×I×IÒIÐ-×I×IÔIÐ-×I×IÓIÐ1I×I×I×I×I×I×IÔIùò ,ùÚ-s   ¶E5ÃE:c                 ód  • [        S/[        SSS9/SS9n U R                  nSo!" U5      nSoCU:H  oU(       dä  [        R                  " SU4S	X445      S
[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS
[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=pTU R                  nSo!" U5      nS oCUL oU(       dä  [        R                  " SU4SX445      S
[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS
[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=pTg )Nr	   r
   rœ   rF   r�   rJ   r   r   )zN%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.text_for
}(%(py4)s)
} == %(py9)srS   )r   r   r   r   r   zassert %(py11)sr   z(2)r@   )zN%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.text_for
}(%(py4)s)
} is %(py9)s)r   r   Útext_forr    r!   r"   r#   r$   r%   r&   r'   )rS   r(   r)   r,   r*   r2   r7   Ú@py_format12s           r8   Ú&test_text_for_matches_by_canonical_keyr£   °   sR  € Ü
Ø�Ü c°Ñ?Ð@Øñ€Cð
 �<‰<Ð/˜Ð/ˆ<˜ÓÐ/ Ð/ Ñ/×/×/×/Ò/Ð×/×/×/×/×/Õ/ˆ3×/×/×/Ñ/ˆ3×/×/Õ/ˆ<×/×/Ó/˜×/×/Ó/Ð×/×/Ó/ ×/×/×/×/×/×/×/Ø�<‰<Ð&˜Ð&ˆ<˜ÓÐ& $Ð& $Ð&×&×&×&Ò&Ð×&×&×&×&×&Õ&ˆ3×&×&×&Ñ&ˆ3×&×&Õ&ˆ<×&×&Ó&˜×&×&Ó&Ð×&×&Ó& $×&×&×&×&×&×&×&Ð&r:   c                 ó4  • SSK Jn   [        SS// SS9nUR                  nSS/o2U:H  oD(       dº  [        R
                  " SU4SX#45      S	[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS	[        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCU " U[        SSS9/5      nUR                   Vs/ s H%  oˆR                  UR                  UR                   4PM'     n	nS/oIU:H  oª(       do  [        R
                  " SU
4SX”45      [        R                  " U	5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n	=p¤UR                  nS/o2U:H  oD(       dº  [        R
                  " SU4SX#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCg s  snf )Nr   )Úabsorb_lookupÚ4Ú5é   rJ   r   r„   Úbaser�   rƒ   r   z(4)úAt amortized cost.rF   )r¦   rª   ÚlookuprO   rP   rR   r   rS   )Úquber.core.fusion.footnotesr¥   r   rX   r    r!   r"   r#   r$   r%   r&   r'   r   rV   rG   rH   rW   )r¥   r©   r(   rz   r)   r†   r6   rS   r\   r]   r^   r_   r`   s                r8   Ú1test_absorb_lookup_resolves_only_matching_markersr­   º   s�  € Ý9ä c¨3 Z¸2È!ÑL€DØ�?‰?Ð(˜s C˜jÐ(˜jÑ(×(×(×(Ò(ˆ?×(×(×(×(×(Õ(ˆ4×(×(×(Ñ(ˆ4×(×(Õ(ˆ?×(×(Ó(˜j×(×(×(×(×(×(Ó(Ù
˜œ{°%Ð>RÑSÐTÓ
U€CØ25·,²,Ó?²,¨Q�X‰X�q—v‘v˜qŸx™xÓ(±,ÐjÐ?ÐDiÐCjÐjÐCjÑj×j×j×jÒjÐ?×j×jÔjÐ?×j×jÓjÐCj×j×j×j×j×j×jÓjØ�>‰>Ð"˜c˜UÐ"˜UÑ"×"×"×"Ò"ˆ>×"×"×"×"×"Õ"ˆ3×"×"×"Ñ"ˆ3×"×"Õ"ˆ>×"×"Ó"˜U×"×"×"×"×"×"Ô"ùò @s   Ä,Jc            	     ó¤  • [        S// SS/[        S5      1S9n U R                   Vs/ s H  oR                  UR                  4PM     nnS/o2U:H  oD(       do  [
        R                  " SU4SX#45      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pCg s  snf )Nz(Addendum 3)é
   )zAddendum 3 Regulatory MattersrI   r‘   )z+See Addendum 3 Regulatory Matters (page 12)r”   r   rO   rP   rR   r   r•   rr   s          r8   Ú3test_section_reference_pointer_is_not_note_specificr°   Ä   sØ   € ô ØÐ ØØØ7Ð8Ü& ~Ó6Ð7ñ€Cð ),¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ð Ð5ØGð:ð ð :ñ ÷ ó ïé ôÐ5÷ ñ ïé ðÐ5÷ ð ïé ðð :÷ ÷ ÷ ñ ïé ÷÷ ð ùÒ5r—   c            	     ó¤  • [        S// SS/[        S5      1S9n U R                   Vs/ s H  oR                  UR                  4PM     nnS/o2U:H  oD(       do  [
        R                  " SU4SX#45      [
        R                  " U5      [
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =n=pCg s  snf )NzSchedule IIé(   )u1   Schedule II â€” Valuation and Qualifying AccountséX   r‘   )u?   See Schedule II â€” Valuation and Qualifying Accounts (page 88)r”   r   rO   rP   rR   r   r•   rr   s          r8   Ú,test_section_reference_with_roman_identifierr´   Ó   s×   € ô Ø�ØØØKÐLÜ& }Ó5Ð6ñ€Cð ),¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ð Ð5Ø[ð:ð ð :ñ ÷ ó ïé ôÐ5÷ ñ ïé ðÐ5÷ ð ïé ðð :÷ ÷ ÷ ñ ïé ÷÷ ð ùÒ5r—   c            	     ó”  • [        S// SS/[        S5      1S9n U R                  n/ o!U:H  o3(       dº  [        R                  " SU4SX45      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS =n=p2U R                  nS/o!U:H  o3(       dº  [        R                  " SU4SX45      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS =n=p2g )Nz(Rule 5)r¯   )z05 This line is a real footnote for someone else.r¯   )rK   rL   rM   rj   r“   r   r€   rS   r�   rƒ   r   r„   r™   r…   s         r8   Ú@test_section_reference_without_matching_heading_stays_unresolvedr¶   â   s  € ô Ø�ØØØPÐQÜ& zÓ2Ð3ñ€Cð �<‰<Ð˜2Ð˜2Ñ×××Òˆ<×××××Õˆ3×××Ñˆ3××Õˆ<××Ó˜2××××××ÓØ�>‰>Ð)˜j˜\Ð)˜\Ñ)×)×)×)Ò)ˆ>×)×)×)×)×)Õ)ˆ3×)×)×)Ñ)ˆ3×)×)Õ)ˆ>×)×)Ó)˜\×)×)×)×)×)×)Ô)r:   c            	     ó¦  • [        S// SSS/[        S5      1S9n U R                   Vs/ s H  oR                  UR                  4PM     nnS/o2U:H  oD(       do  [
        R                  " SU4SX#45      [
        R                  " U5      [
        R                  " U5      S	.-  nS
SU0-  n[        [
        R                  " U5      5      eS =n=pCg s  snf )Nz	(Note 10)é   )z104. Other Itemsr¨   )z10. ContingenciesrI   r‘   )zSee 10. Contingencies (page 12)r”   r   rO   rP   rR   r   r•   rr   s          r8   Ú2test_section_reference_matches_bare_number_headingr¹   ñ   s¡   € ô Ø�ØØØ)Ð+DÐEÜ& {Ó3Ð4ñ€Cð ),¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ÐnÐ5Ð:mÐ9nÐnÐ9nÑn×n×n×nÒnÐ5×n×nÔnÐ5×n×nÓnÐ9n×n×n×n×n×n×nÔnùÒ5ó   ©!Cc            	     ó¦  • [        S// SSS/[        S5      1S9n U R                   Vs/ s H  oR                  UR                  4PM     nnS/o2U:H  oD(       do  [
        R                  " SU4SX#45      [
        R                  " U5      [
        R                  " U5      S	.-  nS
SU0-  n[        [
        R                  " U5      5      eS =n=pCg s  snf )NzNotes 1 and 4é>   )zNote 1 Basis of PresentationéF   )zNote 4 ImpairmentséK   r‘   )zLSee Note 1 Basis of Presentation (page 70); See Note 4 Impairments (page 75)r”   r   rO   rP   rR   r   r•   rr   s          r8   Ú=test_compound_section_reference_points_at_every_named_headingr¿   ÿ   sÙ   € Ü
Ø Ð!ØØØ6Ð8RÐSÜ& Ó7Ð8ñ€Cð ),¯ªÓ5ª 1�V‰V�Q—X‘XÓ©ð Ð5Øhð:ð ð :ñ ÷ ó ïé ôÐ5÷ ñ ïé ðÐ5÷ ð ïé ðð :÷ ÷ ÷ ñ ïé ÷÷ ð ùÒ5rº   c                 óB  • [        SS// SSS/S9n U R                   Vs/ s H  oR                  UR                  4PM     nnS/o2U:H  oD(       do  [        R
                  " SU4S	X#45      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCU R                  nS/o‡U:H  o3(       dº  [        R
                  " SU4SXx45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=p8g s  snf )Nú	(Note 18)r	   é   )zNOTE 18. Business SegmentséŒ   )z
1. GeneraléZ   )rK   rL   rM   r’   )rÁ   r”   r   rO   rP   rR   r   r„   rS   r�   rƒ   r   )r   rV   rG   rW   r    r!   r%   r&   r'   rX   r"   r#   r$   )rS   r\   r]   r)   r^   r_   r`   r(   rz   r†   r6   s              r8   ÚEtest_footnote_judged_word_number_marker_falls_back_to_heading_pointerrÅ     s  € ô Ø˜eÐ$ØØØ5Ð7IÐJñ	€Cð +.¯,ª,Ó7ª, Q�X‰X�q—x‘xÓ ©,ÐZÐ7Ð<YÐ;ZÐZÐ;ZÑZ×Z×Z×ZÒZÐ7×Z×ZÔZÐ7×Z×ZÓZÐ;Z×Z×Z×Z×Z×Z×ZÓZØ�>‰>Ð$˜e˜WÐ$˜WÑ$×$×$×$Ò$ˆ>×$×$×$×$×$Õ$ˆ3×$×$×$Ñ$ˆ3×$×$Õ$ˆ>×$×$Ó$˜W×$×$×$×$×$×$Ô$ùò 8s   Ÿ!F)#Ú__doc__Ú
__future__r   Úbuiltinsr"   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter    Úquber.agents.llm_clientr   r¬   r   r   r   r9   rC   re   rp   rs   r|   r‡   rŠ   rŒ   r–   rš   rŸ   r£   r­   r°   r´   r¶   r¹   r¿   rÅ   © r:   r8   Ú<module>rÎ      s‹   ðñõ #ç  „ Õ /÷ñ ò&ò/ò	;òNò4nòJò	#ò	hò	4òò+òJò'ò#òòò*òoò
ó%r:   