Ë
    F‚$hD  ã                   ó  — d dl Z d dl mZ d dlmZmZmZmZ d dlZd dl	m
Z
 d dlmZ d dlmZ  G d„ dej                   j"                  j$                  «      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    N)ÚDecimal)ÚOptionalÚUnionÚoverloadÚLiteral)ÚET©Úsvg)ÚQRModuleDrawerc                   óà   ‡ — e Zd ZU dZdZdZdZej                  Z	e
e   ed<   ˆ fd„Zedeeef   ded	   d
efd„«       Zeddeeef   ded   d
efd„«       Zdd„Zdd„Zd„ Zd„ Zdd„Zd„ Zˆ xZS )ÚSvgFragmentImagezT
    SVG image builder

    Creates a QR-code image as a SVG document fragment.
    zhttp://www.w3.org/2000/svgÚSVG)r   Údefault_drawer_classc                 ó¤   •— t        j                  d| j                  «       t        ‰| �  |i |¤Ž | j                  | j                  «      | _        y )Nr
   )r   Úregister_namespaceÚ_SVG_namespaceÚsuperÚ__init__ÚunitsÚbox_sizeÚ	unit_size©ÚselfÚargsÚkwargsÚ	__class__s      €úN/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/qrcode/image/svg.pyr   zSvgFragmentImage.__init__   s?   ø€ Ü
×Ñ˜e T×%8Ñ%8Ô9Ü‰Ñ˜$Ð) &Ò)àŸ™ D§M¡MÓ2ˆ�ó    ÚpixelsÚtextFÚreturnc                  ó   — y ©N© ©r   r   r    s      r   r   zSvgFragmentImage.units   s   € ØSVr   Tc                  ó   — y r#   r$   r%   s      r   r   zSvgFragmentImage.units    s   € ØUXr   c                 óT  — t        |«      dz  }|s|S |j                  t        d«      «      }t        j                  t        j                  g¬«      }	 t        d«      t        d«      t        d«      fD ]  }|j                  ||¬«      }Œ 	 |› d�S # t        j                  $ r Y Œw xY w)	z8
        A box_size of 10 (default) equals 1mm.
        é
   z0.001)Útrapsz0.01z0.1Ú0)ÚcontextÚmm)r   ÚquantizeÚdecimalÚContextÚInexact)r   r   r    r   r+   Úds         r   r   zSvgFragmentImage.units#   s¡   € ô ˜“ "Ñ$ˆÙØˆLØ—‘œw wÓ/Ó0ˆÜ—/‘/¬¯©Ð(9Ô:ˆð	Ü˜f“o¤w¨u£~´w¸s³|ÐDò ;�ØŸ™ q°'˜Ó:‘ñ;ð �˜ˆ|Ðøô �‰ò 	Ùð	ús   Á8B ÂB'Â&B'c                 óJ   — | j                  |¬«       | j                  |«       y )N)Úkind)Ú
check_kindÚ_write)r   Ústreamr3   s      r   ÚsavezSvgFragmentImage.save3   s   € Ø�‰˜TˆÔ"Ø�‰�FÕr   c                 óB   — t        j                  | j                  fi |¤ŽS r#   )r   ÚtostringÚ_img©r   r   s     r   Ú	to_stringzSvgFragmentImage.to_string7   s   € Ü�{‰{˜4Ÿ9™9Ñ/¨Ñ/Ð/r   c                 ó&   —  | j                   di |¤ŽS )Nr$   )Ú_svgr;   s     r   Ú	new_imagezSvgFragmentImage.new_image:   s   € Øˆt�y‰yÑ"˜6Ñ"Ð"r   c                 ó°   — |€ t        j                  | j                  d«      }| j                  | j                  «      }t        j
                  |f|||dœ|¤ŽS )Nr
   )ÚwidthÚheightÚversion)r   ÚQNamer   r   Ú
pixel_sizeÚElement)r   ÚtagrC   r   Ú	dimensions        r   r>   zSvgFragmentImage._svg=   s[   € Øˆ;Ü—(‘(˜4×.Ñ.°Ó6ˆCØ—J‘J˜tŸ™Ó/ˆ	Ü�z‰zØð
àØØñ	
ð
 ñ
ð 	
r   c                 ód   — t        j                  | j                  «      j                  |d¬«       y )NF)Úxml_declaration©r   ÚElementTreer:   Úwrite©r   r6   s     r   r5   zSvgFragmentImage._writeI   s"   € Ü
�‰�t—y‘yÓ!×'Ñ'¨ÀÐ'ÕFr   )Tr#   )Nz1.1)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r3   Úallowed_kindsÚsvg_drawersÚSvgSquareDrawerr   Útyper   Ú__annotations__r   r   r   Úintr   r   r   Ústrr7   r<   r?   r>   r5   Ú__classcell__©r   s   @r   r   r      sª   ø… ñð 2€NØ€DØ€MØ1<×1LÑ1LÐ˜$˜~Ñ.ÓLô3ð ØV˜E # w ,Ñ/ÐV°w¸u±~ÐVÈ'ÒVó ØVàÙX˜E # w ,Ñ/ÐX°w¸t±}ÐXÐPSÒXó ØXóó ò0ò#ó

öGr   r   c                   óú   ‡ — e Zd ZU dZdZee   ed<   ej                  i fej                  d e
d«      ifej                  d e
d«      ifdœZej                  j                  j                   ed<   d
ˆ fd„	Zd	„ Zˆ xZS )ÚSvgImageza
    Standalone SVG image builder

    Creates a QR-code image as a standalone SVG document.
    NÚ
backgroundÚ
size_ratioçš™™™™™é?©Úcirclezgapped-circlezgapped-squareÚdrawer_aliasesc           
      óâ   •— t        ‰| �  dd|i|¤Ž}|j                  d| j                  «       | j                  r4|j                  t        j                  d| j                  dddd¬«      «       |S )NrG   ÚxmlnsÚrectr*   z100%)ÚfillÚxÚyrA   rB   r$   )r   r>   Úsetr   r^   Úappendr   rF   )r   rG   r   r
   r   s       €r   r>   zSvgImage._svg[   si   ø€ Ü‰g‰lÑ-˜sÐ- fÑ-ˆØ�‰�˜×,Ñ,Ô-Ø�?Š?Ø�J‰JÜ—
‘
ØØŸ™ØØØ Ø!ôô	ð ˆ
r   c                 óf   — t        j                  | j                  «      j                  |dd¬«       y )NzUTF-8T)ÚencodingrJ   rK   rN   s     r   r5   zSvgImage._writek   s%   € Ü
�‰�t—y‘yÓ!×'Ñ'¨¸ÐRVÐ'ÕWr   r	   )rO   rP   rQ   rR   r^   r   rY   rW   rT   ÚSvgCircleDrawerr   rU   rc   ÚqrcodeÚimageÚbaseÚDrawerAliasesr>   r5   rZ   r[   s   @r   r]   r]   M   s}   ø… ñð !%€J�˜‘Ó$à×.Ñ.°Ð3Ø%×5Ñ5¸ÁgÈcÃlÐ7SÐTØ%×5Ñ5¸ÁgÈcÃlÐ7SÐTñ7€N�F—L‘L×%Ñ%×3Ñ3ó õö Xr   r]   c                   ó  ‡ — e Zd ZU dZdddddœZdZdZeej                     e
d	<   ej                  Zee   e
d
<   ej                   i fej                   d ed«      ifej                  d ed«      ifdœZˆ fd„Zdˆ fd„	Zd„ Zˆ xZS )ÚSvgPathImagezs
    SVG image builder with one single <path> element (removes white spaces
    between individual QR points).
    z#000000Ú1ÚnonzeroÚnone)rg   zfill-opacityz	fill-ruleÚstrokeTNÚpathr   r_   r`   ra   c                 ó2   •— g | _         t        ‰| �  |i |¤Ž y r#   )Ú	_subpathsr   r   r   s      €r   r   zSvgPathImage.__init__‹   s   ø€ Ø$&ˆŒÜ‰Ñ˜$Ð) &Ó)r   c                 óˆ   •— |€/| j                  | j                  d¬«      }dj                  |¬«      }t        ‰| �  dd|i|¤ŽS )NF)r    z0 0 {d} {d})r1   ÚviewBoxr$   )r   rE   Úformatr   r>   )r   r}   r   rH   r   s       €r   r>   zSvgPathImage._svg�   sH   ø€ Øˆ?ØŸ
™
 4§?¡?¸˜
Ó?ˆIØ#×*Ñ*¨YÐ*Ó7ˆGÜ‰w‰|Ñ6 GÐ6¨vÑ6Ð6r   c                 ó  — t        j                  t        j                  d«      fdj                  | j                  «      ddœ| j
                  ¤Ž| _        g | _        | j                  j                  | j                  «       y )Nry   Ú zqr-path)r1   Úid)	r   rF   rD   Újoinr{   ÚQR_PATH_STYLEry   r:   rk   )r   s    r   ÚprocesszSvgPathImage.process•   sg   € ô —J‘JÜ�H‰H�VÓð
à�g‰g�d—n‘nÓ%Øñ
ð × Ñ ñ	
ˆŒ	ð ˆŒØ�	‰	×Ñ˜Ÿ™Õ#r   r#   )rO   rP   rQ   rR   rƒ   Úneeds_processingry   r   r   rF   rW   rT   ÚSvgPathSquareDrawerr   rV   r   ÚSvgPathCircleDrawerr   rc   r   r>   r„   rZ   r[   s   @r   rt   rt   o   s¨   ø… ñð ØØØñ	€Mð ÐØ!%€Dˆ(�2—:‘:Ñ
Ó%Ø1<×1PÑ1PÐ˜$˜~Ñ.ÓPà×2Ñ2°BÐ7à×+Ñ+Ø™7 3›<Ð(ð
ð
 ×+Ñ+Ø™7 3›<Ð(ð
ñ
€Nô*õ7ö
$r   rt   c                   ó   — e Zd ZdZdZy)ÚSvgFillImagez9
    An SvgImage that fills the background to white.
    ÚwhiteN©rO   rP   rQ   rR   r^   r$   r   r   r‰   r‰   ¢   ó   „ ñð �Jr   r‰   c                   ó   — e Zd ZdZdZy)ÚSvgPathFillImagez=
    An SvgPathImage that fills the background to white.
    rŠ   Nr‹   r$   r   r   rŽ   rŽ   ª   rŒ   r   rŽ   )r.   r   Útypingr   r   r   r   Úqrcode.image.basero   Úqrcode.compat.etreer   Ú!qrcode.image.styles.moduledrawersr
   rT   Ú&qrcode.image.styles.moduledrawers.baser   rp   rq   ÚBaseImageWithDrawerr   r]   rt   r‰   rŽ   r$   r   r   ú<module>r•      sq   ðÛ Ý ß 5Ó 5ã Ý "Ý @Ý Aô?G�v—|‘|×(Ñ(×<Ñ<ô ?GôDXÐô XôD0$�8ô 0$ôf�8ô ô�|õ r   