+
    JV-jG8  ã                  óâ  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^RIHtH	t	H
t
Ht Rt]'       d   ^ RIHt ^ RIHt  ! R R	4      tR
 R ltR R ltR R lt ! R R]	P                  4      tR R ltR R lt]P.                  ! ]P0                  ]]4       ]P2                  ! ]P0                  ]4       ]P4                  ! ]P0                  . RO4       ]P6                  ! ]P0                  R4       R# )é    )ÚannotationsN)Úcast)ÚImageÚ	ImageFileÚImagePaletteÚ_binaryF)ÚCallable)ÚIOc                  ór   € ] tR t^tRtRR R lltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltRtR# )Ú	BoxReaderzq
A small helper class to read fields stored in JPEG2000 header boxes
and to easily step into and read sub-boxes.
c               ó$   € V ^8„  d   QhRRRRRR/# )é   Úfpú	IO[bytes]ÚlengthÚintÚreturnÚNone© )Úformats   "Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/PIL/Jpeg2KImagePlugin.pyÚ__annotate__ÚBoxReader.__annotate__%   s!   € ÷ #ñ #˜9ð #¨cð #¸4ñ #ó    c                	ó@   € Wn         V^ 8¬  V n        W n        RV n        R# )r   Néÿÿÿÿ©r   Ú
has_lengthr   Úremaining_in_box)Úselfr   r   s   &&&r   Ú__init__ÚBoxReader.__init__%   s   € ØŒØ  A™+ˆŒØŒØ "ˆÖr   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	num_bytesr   r   Úboolr   )r   s   "r   r   r   +   s   € ÷ ñ  3ð ¨4ñ r   c                	óÌ   € V P                   '       d3   V P                  P                  4       V,           V P                  8”  d   R # V P                  ^ 8¼  d   WP                  8*  # R# )FT)r   r   Útellr   r   )r    r$   s   &&r   Ú	_can_readÚBoxReader._can_read+   sH   € Ø�?�?ˆ?˜tŸw™wŸ|™|›~°	Õ9¸D¿K¹KÔGáØ× Ñ  AÔ%à× 5Ñ 5Ñ5Ð5ár   c               ó    € V ^8„  d   QhRRRR/# )r   r$   r   r   Úbytesr   )r   s   "r   r   r   5   s   € ÷ ñ  Sð ¨Uñ r   c                	ó2  € V P                  V4      '       g   R p\        V4      hV P                  P                  V4      p\	        V4      V8  d   RV R\	        V4       R2p\        V4      hV P                  ^ 8”  d   V ;P                  V,          un        V# )zNot enough data in headerzExpected to read z bytes but only got Ú.)r(   ÚSyntaxErrorr   ÚreadÚlenÚOSErrorr   )r    r$   ÚmsgÚdatas   &&  r   Ú_read_bytesÚBoxReader._read_bytes5   s†   € Ø�~‰~˜i×(Ò(Ø-ˆCÜ˜cÓ"Ð"à�w‰w�|‰|˜IÓ&ˆÜˆt‹9�yÔ Ø% i [Ð0DÄSÈÃYÀKÈqÐQˆCÜ˜#“,Ðà× Ñ  1Ô$Ø×!Ò! YÕ.Õ!Øˆr   c               ó    € V ^8„  d   QhRRRR/# )r   Úfield_formatÚstrr   ztuple[int | bytes, ...]r   )r   s   "r   r   r   C   s   € ÷ 1ñ 1¨ð 1Ð0Gñ 1r   c                	ó|   € \         P                  ! V4      pV P                  V4      p\         P                  ! W4      # ©N)ÚstructÚcalcsizer4   Úunpack)r    r7   Úsizer3   s   &&  r   Úread_fieldsÚBoxReader.read_fieldsC   s/   € Ü�Š˜|Ó,ˆØ×Ñ Ó%ˆÜ�}Š}˜\Ó0Ð0r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   H   s   € ÷ 1ñ 1˜Iñ 1r   c                	ó|   € V P                   pV P                  V4      p\        \        P                  ! V4      V4      # r:   )r   r4   r   ÚioÚBytesIO)r    r>   r3   s   &  r   Ú
read_boxesÚBoxReader.read_boxesH   s3   € Ø×$Ñ$ˆØ×Ñ Ó%ˆÜœŸš DÓ)¨4Ó0Ð0r   c               ó   € V ^8„  d   QhRR/# )r   r   r%   r   )r   s   "r   r   r   M   s   € ÷ ñ ˜dñ r   c                	óš   € V P                   '       d9   V P                  P                  4       V P                  ,           V P                  8  # R # )T)r   r   r'   r   r   )r    s   &r   Úhas_next_boxÚBoxReader.has_next_boxM   s2   € Ø�?�?ˆ?Ø—7‘7—<‘<“> D×$9Ñ$9Õ9¸D¿K¹KÑGÐGár   c               ó   € V ^8„  d   QhRR/# )r   r   r+   r   )r   s   "r   r   r   S   s   € ÷ ñ ˜uñ r   c                	óà  € V P                   ^ 8”  d5   V P                  P                  V P                   \        P                  4       RV n         \        \        \        \        3,          V P                  R4      4      w  rV^8X  d*   \        \        V P                  R4      ^ ,          4      p^pM^pW8  g   V P                  W,
          4      '       g   Rp\        V4      hW,
          V n         V# )r   z>I4sz>QzInvalid header lengthr   )r   r   ÚseekÚosÚSEEK_CURr   Útupler   r+   r?   r(   r.   )r    ÚlboxÚtboxÚhlenr2   s   &    r   Únext_box_typeÚBoxReader.next_box_typeS   s¹   € à× Ñ  1Ô$Ø�G‰G�L‰L˜×.Ñ.´·±Ô<Ø "ˆÔô œ%¤¤U 
Õ+¨T×-=Ñ-=¸fÓ-EÓF‰
ˆØ�1Œ9Üœ˜T×-Ñ-¨dÓ3°AÕ6Ó7ˆDØ‰DàˆDàŒ;˜dŸn™n¨T­[×9Ò9Ø)ˆCÜ˜cÓ"Ð"à $¥ˆÔØˆr   r   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   r(   r4   r?   rE   rI   rT   Ú__static_attributes__r   r   r   r   r      s/   † ñ÷
#õõõ1õ
1õ
÷ñ r   r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   ztuple[tuple[int, int], str]r   )r   s   "r   r   r   i   s   € ÷ ñ ˜)ð Ð(Cñ r   c                óØ  € V P                  ^4      p\        P                  ! V4      pWP                  V^,
          4      ,           p\        P                  ! RV4      w  r$rVrx   ršWW,
          Wh,
          3pV
^8X  d@   \        P                  ! RV^&4      pV^ ,          ^,          ^,           ^8”  d   RpW½3# Rp W½3# V
^8X  d   RpW½3# V
^8X  d   RpW½3# V
^8X  d   RpW½3# Rp\        V4      h)	z‡Parse the JPEG 2000 codestream to extract the size and component
count from the SIZ marker segment, returning a PIL (size, mode) tuple.z>HHIIIIIIIIHz>BúI;16ÚLÚLAÚRGBÚRGBAz"unable to determine J2K image mode)r/   r   Úi16ber;   Úunpack_fromr.   )r   ÚhdrÚlsizÚsizÚrsizÚxsizÚysizÚxosizÚyosizÚ_Úcsizr>   ÚssizÚmoder2   s   &              r   Ú_parse_codestreamrq   i   s  € ð �'‰'�!‹*€CÜ�=Š=˜Ó€DØ
—‘˜˜q�Ó!Õ
!€CÜ=C×=OÒ=OØ˜ó>Ñ:€D�˜E¨!¨Q°°1ð �L˜$�,Ð'€DØˆq„yÜ×!Ò! $¨¨RÓ0ˆØ��G�d�N˜aÕ !Ô#ØˆDð ˆ:Ðð ‰Dð ˆ:Ðð 
�ŒØˆð ˆ:Ðð 
�ŒØˆð ˆ:Ðð 
�ŒØˆð
 ˆ:Ðð 3ˆÜ˜#ÓÐr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Únumr   ÚdenomÚexpr   zfloat | Noner   )r   s   "r   r   r   ˆ   s(   € ÷ 5ñ 5�Sð 5 ð 5¨3ð 5°<ñ 5r   c                ó^   € V^ 8X  d   R# ^þV ,          ^
V,          ,          RV,          ,          # )z­Convert JPEG2000's (numerator, denominator, exponent-base-10) resolution,
calculated as (num / denom) * 10^exp and stored in dots per meter,
to floating-point dots per inch.Ni'  r   )rs   rt   ru   s   &&&r   Ú_res_to_dpirw   ˆ   s*   € ð �„zÙØ�#�I˜˜S�Õ! e¨e¥mÕ4Ð4r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   zetuple[tuple[int, int], str, str | None, tuple[float, float] | None, ImagePalette.ImagePalette | None]r   )r   s   "r   r   r   ‘   s"   € ÷ n.ñ n.Øðn.ðñn.r   c                ó´  € \        V 4      pRpRpVP                  4       '       dU   VP                  4       pVR8X  d   VP                  4       pM,VR8X  g   KG  VP	                  R4      ^ ,          R8X  g   Kf  RpKj  Vf   Q hRpRpRpRpRp	Rp
RpVP                  4       '       Edœ   VP                  4       pVR8X  d§   VP	                  R4      w  rÍr‡\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       g   Q hWÜ3pV^8X  d   V^,          ^8”  d   R	pK¦  V^8X  d   R
pK±  V^8X  d   RpK¼  V^8X  d   RpKÇ  V^8X  d   RpKÒ  KÔ  VR8X  dT   VP	                  R4      w  p ppV^8X  d4   VR9   d   RpEK  V^8X  d   RpV^8X  d   RpEK  EK  V^8X  d   R
pEK(  EK+  EK.  VR8X  Ed`   VR9   EdX   VR9  EdP   VP	                  R4      w  pp\        V\        4      '       g   Q h\        V\        4      '       g   Q h^ pVP	                  RRV,          ,           4       F&  p\        V\        4      '       g   Q hVV8”  g   K$  TpK(  	  V^8:  d·   V^8X  d   VR8X  d   RMRpMRp\        P                  ! V4      p
\        V4       Fn  p. pVP	                  RRV,          ,           4       F,  p\        V\        4      '       g   Q hVP                  V4       K.  	  V
P                  \        V4      4       Kp  	  VR
8X  d   RMRpEK’  EK•  VR8X  g   EKŸ  VP                  4       pVP                  4       '       g   EKÈ  VP                  4       pVR8X  g   K2  VP	                  R4      w  pppppp \        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V \        4      '       g   Q h\        VVV 4      p!\        VVV4      p"V!e	   V"e   V!V"3p	EK²  Ve   Vf   Rp#\        V#4      hWVW9V
3# )z¢Parse the JP2 header box to extract size, component count,
color space information, and optionally DPI information,
returning a (size, mode, mimetype, dpi) tuple.Ns   jp2hs   ftypz>4ss   jpx z	image/jpxs   ihdrz>IIHBr^   r_   r`   ra   rb   s   colrz>BBBIÚ1ÚCMYKs   pclrz>HBÚ>ÚBÚPÚPAs   res s   rescz>HHHHBBzMalformed JP2 header)r   é   )r_   r`   )rz   r_   )r   rI   rT   rE   r?   Ú
isinstancer   r   ÚrangeÚappendÚgetcolorrP   rw   r.   )$r   ÚreaderÚheaderÚmimetyperR   r>   rp   ÚbpcÚncÚdpiÚpaletteÚcolrÚheightÚwidthÚmethrm   ÚenumcsÚneÚnpcÚmax_bitdepthÚbitdepthÚpalette_modeÚiÚcolorÚvalueÚresÚtresÚvrcnÚvrcdÚhrcnÚhrcdÚvrceÚhrceÚhresÚvresr2   s$   &                                   r   Ú_parse_jp2_headerr£   ‘   s-  € ô �r‹]€FØ€FØ€HØ
×
Ñ
×
Ò
Ø×#Ñ#Ó%ˆà�7Œ?Ø×&Ñ&Ó(ˆFØØ�WŽ_Ø×!Ñ! %Ó(¨Õ+¨wÖ6Ø&’ØÒÐÐà€DØ€DØ
€CØ	€BØ
€CØ€GØ€Dà
×
Ñ
×
Ó
Ø×#Ñ#Ó%ˆà�7Œ?Ø%+×%7Ñ%7¸Ó%@Ñ"ˆF˜2Ü˜f¤c×*Ò*Ð*Ð*Ü˜e¤S×)Ò)Ð)Ð)Ü˜c¤3×'Ò'Ð'Ð'Ø�?ˆDØ�QŒw˜C $�J¨!Ô+Ø’Ø�q”Ø’Ø�q”Ø’Ø�q”Ø’Ø�q”Ø’ñ à�WŒ_Ø!'×!3Ñ!3°GÓ!<ÑˆD�!�Q˜Ø�qŒyØ˜WÔ$Ø“DØ˜r”\Ø!�DØ˜Q”wØ%›ò à˜r”\Ø“Dò "ò ð �W�_ ¨Õ!4¸ÀZÕ9OØ×(Ñ(¨Ó/‰GˆB�Ü˜b¤#×&Ò&Ð&Ð&Ü˜c¤3×'Ò'Ð'Ð'ØˆLØ"×.Ñ.¨s°c¸CµiÕ/@ÖA�Ü! (¬C×0Ò0Ð0Ð0Ø˜lÖ*Ø#+’Lñ Bð ˜qÔ Ø˜!”8Ø-1°V¬^¡6À‘Là#(�LÜ&×3Ò3°LÓA�Ü˜rž�AØ')�EØ!'×!3Ñ!3°C¸3À½9Õ4EÖ!F˜Ü)¨%´×5Ò5Ð5Ð5ØŸ™ UÖ+ñ "Gð ×$Ñ$¤U¨5£\Ö2ñ #ð # cœk‘s¨t“ò !ð �W�_Ø×#Ñ#Ó%ˆCØ×"Ñ"×$Õ$Ø×(Ñ(Ó*�Ø˜7–?Ø9<¿¹ÈÓ9SÑ6�D˜$  d¨D°$Ü% d¬C×0Ò0Ð0Ð0Ü% d¬C×0Ò0Ð0Ð0Ü% d¬C×0Ò0Ð0Ð0Ü% d¬C×0Ò0Ð0Ð0Ü% d¬C×0Ò0Ð0Ð0Ü% d¬C×0Ò0Ð0Ð0Ü& t¨T°4Ó8�DÜ& t¨T°4Ó8�DØÒ'¨DÒ,<Ø# T˜l˜Úà‚|�t’|Ø$ˆÜ˜#ÓÐà�x gÐ-Ð-r   c                  óŽ   a € ] tR tRtRtRtR R ltR R lt]R V 3R	 ll4       t	]	P                  R
 R l4       t	R R ltRtV ;t# )ÚJpeg2KImageFilei  ÚJPEG2000zJPEG 2000 (ISO 15444)c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   ÚJpeg2KImageFile.__annotate__
  s   € ÷ 3
ñ 3
�tñ 3
r   c           
     	ó¢  € V P                   f   Q hV P                   P                  ^4      pVR8X  d<   RV n        \        V P                   4      w  V n        V n        V P                  4        EM!WP                   P                  ^4      ,           pVR8X  dí   RV n        \        V P                   4      pVw  V n        V n        V n        q0n	        Ve   W0P                  R&   V P                   P                  ^4      P                  R4      '       ds   V P                   P                  ^4      p\        P                  ! V4      pV P                   P                  V^,
          \        P                   4       V P                  4        MRp\#        V4      h^ V n        ^ V n        R	pR	p V P                   P)                  4       p\        P*                  ! V4      P,                  p\6        P8                  ! RR
T P:                  ,           ^ T P                  T P$                  T P&                  Yu34      .T n        R #   \.         d”    R	p T P                   P1                  4       pT P                   P                  ^ \2        P4                  4       T P                   P1                  4       pT P                   P                  T4        LÝ  \.         d    R	p  Líi ; ii ; i)Nó   ÿOÿQÚj2kó      jP  
‡
Újp2rŠ   s   jp2cÿOÿQznot a JPEG 2000 fileÚjpeg2kr   ©r   r   )r   r/   Úcodecrq   Ú_sizeÚ_modeÚ_parse_commentr£   Úcustom_mimetyper‹   ÚinfoÚendswithr   rc   rM   rN   rO   r.   Ú_reduceÚlayersÚfilenoÚfstatÚst_sizeÚ	Exceptionr'   rC   ÚSEEK_ENDr   Ú_Tiler>   Útile)	r    Úsigr†   rŠ   re   r   r2   ÚfdÚposs	   &        r   Ú_openÚJpeg2KImageFile._open
  s  € Ø�w‰wÒ"Ð"Ð"Ø�g‰g�l‰l˜1‹oˆØÐ%Ô%ØˆDŒJÜ%6°t·w±wÓ%?Ñ"ˆDŒJ˜œ
Ø×ÑÖ!àŸ™Ÿ™ Q›Õ'ˆCàÐ=Ô=Ø"�”
Ü*¨4¯7©7Ó3�ØRXÑO�”
˜DœJ¨Ô(<¸cÄ<Ø’?Ø'*—I‘I˜eÑ$Ø—7‘7—<‘< Ó#×,Ñ,Ð-D×EÒEØŸ'™'Ÿ,™, q›/�CÜ$Ÿ]š]¨3Ó/�FØ—G‘G—L‘L ¨!¥¬R¯[©[Ô9Ø×'Ñ'Ô)øà,�Ü! #Ó&Ð&àˆŒØˆŒàˆØˆð	Ø—‘—‘Ó!ˆBÜ—X’X˜b“\×)Ñ)ˆFô �OŠOØØ˜Ÿ™Õ"ØØ—‘˜TŸ\™\¨4¯;©;¸ÐCó	ð
ˆŽ	øô ô 	ØˆBðØ—g‘g—l‘l“n�Ø—‘—‘˜Q¤§¡Ô,ØŸ™Ÿ™›�Ø—‘—‘˜SÖ!øÜô Ø“ðúð	ús+   Æ":H0 È0KÈ>A9J9Ê9K
ËKË	K
Ë
Kc               ó   € V ^8„  d   QhRR/# r¨   r   )r   s   "r   r   r©   ?  s   € ÷ 6ñ 6 ñ 6r   c                	óØ  € V P                   f   Q h V P                   P                  ^4      pV'       g   R # V^,          pVR9   d   R # V P                   P                  ^4      p\        P                  ! V4      pV^d8X  d9   V P                   P                  V^,
          4      R,          V P                  R&   R # V P                   P                  V^,
          \        P                  4       KÛ  )N:r   NNÚcomment)é�   éÙ   )r   r/   r   rc   r¶   rM   rN   rO   )r    ÚmarkerÚtypre   r   s   &    r   r´   ÚJpeg2KImageFile._parse_comment?  s§   € Ø�w‰wÒ"Ð"Ð"ØØ—W‘W—\‘\ !“_ˆFßÙØ˜•)ˆCØ�lÔ"áØ—'‘'—,‘,˜q“/ˆCÜ—]’] 3Ó'ˆFØ�dŒ{à'+§w¡w§|¡|°F¸QµJÓ'?ÀÕ'C�—	‘	˜)Ñ$Ùà—‘—‘˜V a�Z¬¯©Ö5r   c               ó   € V ^8„  d   QhRR/# )r   r   zVCallable[[int | tuple[int, int], tuple[int, int, int, int] | None], Image.Image] | intr   )r   s   "r   r   r©   S  s   € ÷ 	.ñ 	.ð	ñ	.r   c                	ó@   <€ V P                   ;'       g    \        SV `  # r:   )r¸   ÚsuperÚreduce)r    Ú	__class__s   &€r   rÑ   ÚJpeg2KImageFile.reduceR  s   ø€ ð �|‰|×-Ð-œu™w™~Ð-r   c               ó    € V ^8„  d   QhRRRR/# )r   r˜   r   r   r   r   )r   s   "r   r   r©   _  s   € ÷ ñ ˜Cð  Dñ r   c                	ó   € Wn         R # r:   )r¸   )r    r˜   s   &&r   rÑ   rÓ   ^  s   € àŽr   c               ó   € V ^8„  d   QhRR/# )r   r   zImage.core.PixelAccess | Noner   )r   s   "r   r   r©   b  s   € ÷ .ñ .Ð3ñ .r   c                	óà  € V P                   '       Ed>   V P                  '       Ed+   ^V P                  ,          pV^,	          p\        V P                  ^ ,          V,           V,          4      \        V P                  ^,          V,           V,          4      3V n        V P                   ^ ,          p\        V^,          \        4      '       g   Q hV^,          ^ ,          V P                  V P                  V^,          ^,          V^,          ^,          3p\        P                  ! V^ ,          RV P                  ,           V^,          V4      .V n         \        P                  P                  V 4      # )é   r°   )rÀ   r¸   r   r>   r²   r�   rP   r¹   r   r¿   Úload)r    ÚpowerÚadjustÚtÚt3s   &    r   rÙ   ÚJpeg2KImageFile.loadb  sþ   € Ø�9�9‰9˜ŸŸ™Ø˜Ÿ™Õ%ˆEØ˜a•ZˆFä�T—Y‘Y˜q•\ FÕ*¨eÕ3Ó4Ü�T—Y‘Y˜q•\ FÕ*¨eÕ3Ó4ðˆDŒJð —	‘	˜!•ˆAÜ˜a �d¤E×*Ò*Ð*Ð*Ø�A•$�q•'˜4Ÿ<™<¨¯©°a¸µd¸1µg¸qÀ½tÀA½wÐGˆBÜ"Ÿš¨¨1­¨v¸¿	¹	Õ/AÀ1ÀQÅ4ÈÓLÐMˆDŒIä×"Ñ"×'Ñ'¨Ó-Ð-r   )r³   r¸   r²   r±   rµ   r¹   r‹   rÀ   )rV   rW   rX   rY   r   Úformat_descriptionrÄ   r´   ÚpropertyrÑ   ÚsetterrÙ   r[   Ú__classcell__)rÒ   s   @r   r¥   r¥     sO   ø† Ø€FØ0Ðõ3
õj6ð& ÷	.ó ð	.ð ‡]�]ôó ð÷.ó .r   r¥   c               ó    € V ^8„  d   QhRRRR/# )r   Úprefixr+   r   r%   r   )r   s   "r   r   r   t  s   € ÷ ñ �Eð ˜dñ r   c                ó$   € V P                  R4      # )r«   )r«   r­   )Ú
startswith)rä   s   &r   Ú_acceptrç   t  s   € Ø×ÑØFóð r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚimzImage.Imager   r   Úfilenamezstr | bytesr   r   r   )r   s   "r   r   r   ~  s4   € ÷ @Tñ @Tˆkð @T˜yð @T°Kð @TÀDñ @Tr   c                ó$  € V P                   p\        V\        4      '       d   VP                  4       pVP	                  R 4      '       g   VP                  RR4      '       d   RpMRpVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  R	R
4      pVP                  RR4      p	V	ed   \        V	\        \        34      '       d;   \        ;QJ d    R V	 4       F  '       d   K   RM	  RM! R V	 4       4      '       g   Rp
\        V
4      hVP                  R^ 4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  R^ 4      pVP                  RR4      pVP                  R4      p\        V\        4      '       d   VP                  4       pVP                  RR4      pRp\        VR4      '       d    VP                  4       pVVVVV	VVVVVVVVVVV3V n        \        P                  ! W\        P                   ! RRV P"                  ,           ^ V4      .4       R#   \         d    Rp Lhi ; i)s   .j2kÚno_jp2Fr¬   r®   ÚoffsetNÚtile_offsetÚ	tile_sizeÚquality_modeÚratesÚquality_layersc              3  óN   "  € T F  p\        V\        \        34      x € K  	  R # 5ir:   )r�   r   Úfloat)Ú.0Úquality_layers   & r   Ú	<genexpr>Ú_save.<locals>.<genexpr>�  s!   é € ð 
ÙIW¸ŒJ�}¤s¬E l×3Ð3Ëùs   ‚#%Tz,quality_layers must be a sequence of numbersÚnum_resolutionsÚcodeblock_sizeÚprecinct_sizeÚirreversibleÚprogressionÚLRCPÚcinema_modeÚnoÚmctÚsignedrÈ   Úpltrº   r¯   r   r°   )Úencoderinfor�   r8   Úencoder·   ÚgetÚlistrP   ÚallÚ
ValueErrorÚhasattrrº   r½   Úencoderconfigr   Ú_saver¿   r>   )ré   r   rê   r¶   Úkindrí   rî   rï   rð   rò   r2   rù   Ú	cblk_sizerû   rü   rý   rÿ   r  r  rÈ   r  rÂ   s   &&&                   r   r  r  ~  sO  € à�>‰>€Dä�(œC× Ò Ø—?‘?Ó$ˆØ×Ñ˜×!Ò! T§X¡X¨h¸×%>Ò%>Ø‰àˆà�X‰X�h Ó%€FØ—(‘(˜=¨$Ó/€KØ—‘˜ dÓ+€IØ—8‘8˜N¨GÓ4€LØ—X‘XÐ.°Ó5€NØÒ!Ü�>¤D¬% =×1Ò1ß‹Cñ 
ÙIWó
�C�CŠCñ 
ÙIWó
÷ 
ò 
ð =ˆÜ˜‹oÐà—h‘hÐ0°!Ó4€OØ—‘Ð)¨4Ó0€IØ—H‘H˜_¨dÓ3€MØ—8‘8˜N¨EÓ2€LØ—(‘(˜=¨&Ó1€KØ—(‘(˜=¨$Ó/€KØ
�(‰(�5˜!Ó
€CØ�X‰X�h Ó&€FØ�h‰h�yÓ!€GÜ�'œ3×ÒØ—.‘.Ó"ˆØ
�(‰(�5˜%Ó
 €Cà	€BÜˆr�8×Òð	Ø—‘“ˆBð
 	ØØØØØØØØØØØØØ
ØØð!€BÔô& ‡O‚O�BœYŸ_š_¨X°vÀÇÁÕ7GÈÈDÓQÐRÖSøô- ô 	ØŠBð	ús   ÈI? É?JÊJz	image/jp2)z.jp2z.j2kz.jpcz.jpfz.jpxz.j2c)Ú
__future__r   rC   rN   r;   Útypingr   Ú r   r   r   r   ÚTYPE_CHECKINGÚcollections.abcr	   r
   r   rq   rw   r£   r¥   rç   r  Úregister_openr   Úregister_saveÚregister_extensionsÚregister_mimer   r   r   Ú<module>r     sÌ   ðõ  #ã 	Û 	Û Ý ç 5Ó 5à€ßÝ(Ý÷Gñ GõTõ>5õn.ôjk.�i×)Ñ)ô k.õ\õ@TðN × Ò �O×*Ñ*¨O¸WÔ EØ × Ò �O×*Ñ*¨EÔ 2à × Ò Ø×ÑÒLôð × Ò �O×*Ñ*¨KÖ 8r   