§
    Ètºf'%  ã                   ó  — d Z ddlmZ 	 ddlZ[ddlmZ ddlmZm	Z	 ddl
mZ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 d
dlmZmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z'm(Z) dZ* ed¦  «        Z+eede+f         ge+f         Z,	 e- n# e.$ r e/Z-Y nw xY wd„ Z0da1e d d„¦   «         Z2e d!d„¦   «         Z3e d"d„¦   «         Z4e d#d„¦   «         Z5d„ Z6da7e d„ ¦   «         Z8e d„ ¦   «         Z9e d„ ¦   «         Z:dS # e;$ r ddlm<Z< dZ*Y dS w xY w)$z
Hypothesis strategies.
é    )Úabsolute_importN)Úreader)ÚdirnameÚjoin)Úascii_lettersÚdigits)Ú
maxunicode)ÚCallableÚIterableÚListÚOptionalÚSequenceÚTextÚTypeVarÚcast)Úopené   )Ú
DecodedURLÚ
EncodedURL)Úassume)Ú	compositeÚintegersÚlistsÚsampled_fromÚtext)Ú	IDNAErrorÚcheck_labelÚencode)Údecoded_urlsÚencoded_urlsÚhostname_labelsÚ	hostnamesÚ	idna_textÚpathsÚport_numbersÚT.c                  ó–  — t           �s;g } t          t          t          ¦  «        d¦  «        }t	          |¦  «        5 }t          d„ |D ¦   «         d¬¦  «        }t          |¦  «         |D ]­}|\  }}}|dk    rŒ|d                              dd¦  «        }t          |¦  «        dk    r| 	                    |d         ¦  «         d	„ |D ¦   «         \  }	}
t          |	|
dz   ¦  «        D ]1}|t          k    r n#|  	                    t          |¦  «        ¦  «         Œ2Œ®	 d
d
d
¦  «         n# 1 swxY w Y   d                     | ¦  «        a t           S )z>
        Returns a string containing IDNA characters.
        zidna-tables-properties.csv.gzc              3   ó@   K  — | ]}|                      d ¦  «        V — ŒdS )úutf-8N)Údecode)Ú.0Úlines     úS/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/hyperlink/hypothesis.pyú	<genexpr>z"idna_characters.<locals>.<genexpr>Q   s.   è è € Ð?Ð?¨d�T—[’[ Ñ)Ô)Ð?Ð?Ð?Ð?Ð?Ð?ó    ú,)Ú	delimiterÚPVALIDr   ú-r   c              3   ó6   K  — | ]}t          |d ¦  «        V — ŒdS )é   N)Úint)r+   Úis     r-   r.   z"idna_characters.<locals>.<genexpr>b   s*   è è € Ð!?Ð!?°¥# a¨¡*¤*Ð!?Ð!?Ð!?Ð!?Ð!?Ð!?r/   NÚ )Ú_idnaCharactersr   r   Ú__file__Ú	open_gzipÚ
csv_readerÚnextÚsplitÚlenÚappendÚranger	   Úunichr)ÚresultÚdataFileNameÚdataFiler   ÚrowÚcodesÚpropÚdescriptionÚstartEndÚstartÚendr7   s               r-   Úidna_charactersrM   ?   s¬  € õ ñ #	/ØˆFõ
  Ý�Ñ!Ô!Ð#Bñô ˆLõ ˜<Ñ(Ô(ð 1¨HÝ#Ø?Ð?°hÐ?Ñ?Ô?Ø!ðñ ô �õ �V‘”�Ø!ð 1ð 1�CØ/2Ñ,�E˜4 à˜xÒ'Ð'ð !à" 1œvŸ|š|¨C°Ñ3Ô3�HÝ˜8‘}”}¨Ò)Ð)à Ÿš¨°¬Ñ4Ô4Ð4Ø!?Ð!?°hÐ!?Ñ!?Ô!?‘J�E˜3å" 5¨#°©'Ñ2Ô2ð 1ð 1˜Ø�zš>˜>Ø!˜EØŸš¥f¨Q¡i¤iÑ0Ô0Ð0Ð0øð%1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð4 "Ÿhšh vÑ.Ô.ˆOåÐs   ¼CD$Ä$D(Ä+D(r8   c           
      ó  — t          ¦   «         }|dk    sJ ‚|�|dk    sJ ‚t          t           | t          |||¬¦  «        ¦  «        ¦  «        }	 t	          |¦  «         n# t
          $ r t          d¦  «         Y nw xY w|S )a(  
        A strategy which generates IDNA-encodable text.

        @param min_size: The minimum number of characters in the text.
            C{None} is treated as C{0}.

        @param max_size: The maximum number of characters in the text.
            Use C{None} for an unbounded size.
        r   N©Úmin_sizeÚmax_sizeÚalphabetF)rM   r   r   r   Úidna_encoder   r   )ÚdrawrP   rQ   rR   rC   s        r-   r#   r#   o   s¤   € õ #Ñ$Ô$ˆà˜1Š}ˆ}ˆ}ˆ}àÐØ˜q’=�=�=�=åÝØˆD•˜x°(ÀXÐNÑNÔNÑOÔOñ
ô 
ˆð	Ý˜ÑÔÐÐøÝð 	ð 	ð 	Ý�5‰MŒMˆMˆMˆMð	øøøð ˆs   ÁA  Á A<Á;A<Fc           	      ój   — |rd}nd}t          t           | t          |d¬¦  «        ¦  «        ¦  «        S )z†
        A strategy which generates port numbers.

        @param allow_zero: Whether to allow port C{0} as a possible value.
        r   r   iÿÿ  )Ú	min_valueÚ	max_value)r   r6   r   )rT   Ú
allow_zerorV   s      r-   r%   r%   �   s?   € ð ð 	ØˆIˆIàˆIå•C˜˜�h°ÀeÐLÑLÔLÑMÔMÑNÔNÐNr/   Tc                 ó”  — |rÊt          t           | t          dd¬¦  «        ¦  «        ¦  «        }	 |                     d¦  «         nÑ# t          $ ry t          |                     d¦  «        ¦  «        dt          d¦  «        z
  k    r@|dd…         }t          |                     d¦  «        ¦  «        dt          d¦  «        z
  k    °@Y nOw xY wt          t           | t          ddt          t          t          z   d	z   ¦  «        ¬
¦  «        ¦  «        ¦  «        }	 t          |¦  «         n# t          $ r t          d¦  «         Y nw xY w|S )zÀ
        A strategy which generates host name labels.

        @param allow_idn: Whether to allow non-ASCII characters as allowed by
            internationalized domain names (IDNs).
        r   é?   ©rP   rQ   ÚasciiÚpunycodezxn--Néÿÿÿÿr3   rO   F)r   r   r#   r   ÚUnicodeEncodeErrorr?   r   r   r   r   ÚUnicodeErrorr   )rT   Ú	allow_idnÚlabels      r-   r!   r!   Ÿ   sg  € ð ð 	Ý�˜t˜t¥I°qÀ2Ð$FÑ$FÔ$FÑGÔGÑHÔHˆEð
'Ø—’˜WÑ%Ô%Ð%Ð%øÝ%ð 'ð 'ð 'õ ˜%Ÿ,š, zÑ2Ô2Ñ3Ô3°b½3¸v¹;¼;Ñ6FÒFÐFð " # 2 #œJ�Eõ	 ˜%Ÿ,š, zÑ2Ô2Ñ3Ô3°b½3¸v¹;¼;Ñ6FÒFÐFøøð	'øøøõ ÝØ�ÝØ!"Ø!#Ý!%¥mµfÑ&<¸tÑ&CÑ!DÔ!Dðñ ô ñô ñ	ô 	ˆEð	Ý˜ÑÔÐÐøÝð 	ð 	ð 	Ý�5‰MŒMˆMˆMˆMð	øøøð ˆs$   ±A ÁB C
Ã	C
ÄD) Ä)EÅEc                 ó  ‡— t          t           | t          |¬¦  «                             ˆfd„¦  «        ¦  «        ¦  «        g}|t          t          t                    | t          t          |¬¦  «        dd¬¦  «        ¦  «        ¦  «        z  }t          d„ |D ¦   «         ¦  «        t          |¦  «        z   dz
  dk    r:|dd	…         }t          d„ |D ¦   «         ¦  «        t          |¦  «        z   dz
  dk    °:d
                     |¦  «        S )aD  
        A strategy which generates host names.

        @param allow_leading_digit: Whether to allow a leading digit in host
            names; they were not allowed prior to RFC 1123.

        @param allow_idn: Whether to allow non-ASCII characters as allowed by
            internationalized domain names (IDNs).
        )ra   c                 ó*   •— ‰rdn| d         t           vS )NTr   )r   )ÚlÚallow_leading_digits    €r-   ú<lambda>zhostnames.<locals>.<lambda>ß   s   ø€ Ø$7ÐO˜D˜D¸Q¸q¼TÍÐ=Oð r/   r   é   r[   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S )N)r?   )r+   rb   s     r-   r.   zhostnames.<locals>.<genexpr>ô   s(   è è € Ð1Ð1 •#�e‘*”*Ð1Ð1Ð1Ð1Ð1Ð1r/   éü   Nr^   ú.)	r   r   r!   Úfilterr   r   Úsumr?   r   )rT   rf   ra   Úlabelss    `  r-   r"   r"   Í   s:  ø€ õ ÝØ�Ý#¨iÐ8Ñ8Ô8×?Ò?ðð ð ð ñô ñô ñ	ô 	ð
ˆð 	•$Ý•ŒJØˆDÝÝ#¨iÐ8Ñ8Ô8ØØðñ ô ñô ñ	
ô 	
ñ 		
ˆõ Ð1Ð1¨&Ð1Ñ1Ô1Ñ1Ô1µC¸±K´KÑ?À!ÑCÀcÒIÐIØ˜C˜R˜C”[ˆFõ Ð1Ð1¨&Ð1Ñ1Ô1Ñ1Ô1µC¸±K´KÑ?À!ÑCÀcÒIÐIð �yŠy˜Ñ Ô Ð r/   c                  ó^   — t           € d„ } d                      | ¦   «         ¦  «        a t           S )zH
        Returns a string containing valid URL path characters.
        Nc               3   ó¶   K  — t          t          ¦  «        D ]A} t          | ¦  «        }|dv rŒ	 |                     d¦  «         n# t          $ r Y Œ9w xY w|V — ŒBd S )Nz#/?r)   )rA   r	   rB   r   r_   )r7   Úcs     r-   Úcharszpath_characters.<locals>.chars  s‡   è è € å�zÑ*Ô*ð ð �AÝ˜q™	œ	�Að ˜E�z�zØ ð!ØŸš Ñ)Ô)Ð)Ð)øÝ-ð !ð !ð !Ø ˜ð!øøøð �G�G�G�Gðð s   ®AÁ
AÁAr8   )Ú_path_charactersr   )rr   s    r-   Úpath_charactersrt   ù   s9   € õ Ð#ðð ð ð"  "Ÿwšw u u¡w¤wÑ/Ô/ÐåÐr/   c                 ó¨   — t          t          t                    | t          t	          dt          ¦   «         ¬¦  «        d¬¦  «        ¦  «        ¦  «        S )Nr   )rP   rR   é
   )rQ   )r   r   r   r   r   rt   ©rT   s    r-   r$   r$     sO   € õ Ý•ŒJØˆDÝ•d AµÑ0AÔ0AÐBÑBÔBÈRÐPÑPÔPñô ñ
ô 
ð 	
r/   c           
      ó¶  — t          t          t                    | t          d¬¦  «        ¦  «        ¦  «        }t          t           | t          ¦   «         ¦  «        ¦  «        }t          t          t                    | t          ¦   «         ¦  «        ¦  «        }|dk    rd}t          t          t           | t          d¦  «        ¦  «        ¦  «        |||¬¦  «        S )z£
        A strategy which generates L{EncodedURL}s.
        Call the L{EncodedURL.to_uri} method on each URL to get an HTTP
        protocol-friendly URI.
        T)rX   r   N)ÚhttpÚhttps)ÚschemeÚhostÚportÚpath)
r   r   r6   r%   r   r"   r   r$   r   r   )rT   r}   r|   r~   s       r-   r    r    #  s¶   € õ •H�S”M 4 4­ÀÐ(EÑ(EÔ(EÑ#FÔ#FÑGÔGˆÝ•D˜$˜$�y™{œ{Ñ+Ô+Ñ,Ô,ˆÝ•H�T”N D D­©¬¡M¤MÑ2Ô2ˆà�1Š9ˆ9ØˆDåÝ�˜d˜d¥<Ð0CÑ#DÔ#DÑEÔEÑFÔFØØØð	
ñ 
ô 
ð 	
r/   c                 óJ   — t           | t          ¦   «         ¦  «        ¦  «        S )z£
        A strategy which generates L{DecodedURL}s.
        Call the L{EncodedURL.to_uri} method on each URL to get an HTTP
        protocol-friendly URI.
        )r   r    rw   s    r-   r   r   9  s    € õ ˜$˜$�|™~œ~Ñ.Ô.Ñ/Ô/Ð/r/   )ÚTuple© )r   N)F)T)TT)=Ú__doc__Ú
__future__r   Ú
hypothesisÚcsvr   r<   Úos.pathr   r   Ústringr   r   Úsysr	   Útypingr
   r   r   r   r   r   r   r   Úgzipr   r;   r8   r   r   r   Úhypothesis.strategiesr   r   r   r   r   Úidnar   r   r   rS   Ú__all__r&   ÚDrawCallablerB   Ú	NameErrorÚchrrM   r9   r#   r%   r!   r"   rt   rs   r$   r    r   ÚImportErrorr€   r�   r/   r-   ú<module>r’      s?  ððð ð 'Ð &Ð &Ð &Ð &Ð &ðz0ØÐÐÐàð )Ð(Ð(Ð(Ð(Ð(Ø%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÐÐÐÐÐð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 'Ð&Ð&Ð&Ð&Ð&à(Ð(Ð(Ð(Ð(Ð(Ð(Ð(à!Ð!Ð!Ð!Ð!Ð!ðð ð ð ð ð ð ð ð ð ð ð ð ð ð CÐBÐBÐBÐBÐBÐBÐBÐBÐBð€Gð 	ˆ�‰Œ€AØ˜X c¨1 fÔ-Ð.°Ð1Ô2€LðØˆˆøØð ð ð Øˆˆˆðøøøð,ð ,ð ,ð\ €Oàðð ð ñ „Yðð@ ðOð Oð Oñ „YðOð ð+ð +ð +ñ „Yð+ðZ ð)!ð )!ð )!ñ „Yð)!ðV ð  ð  ð< Ðàð
ð 
ñ „Yð
ð ð
ð 
ñ „Yð
ð* ð0ð 0ñ „Yð0ð 0ð 0øð_	 ð ð ð ØÐÐÐÐÐà€G€G€G€Gðøøøs#   ŠC9 ÂB ÂBÂBÃ9D
Ä	D
