eh'%dZddlmZ ddlZ[ddlmZddlmZm Z ddl m Z m Z ddl mZddlmZmZmZmZmZmZmZmZdd lmZd d lmZmZdd lmZdd lm Z m!Z!m"Z"m#Z#m$Z$ddl%m&Z&m'Z'm(Z)dZ*edZ+eede+fge+fZ, e-n #e.$re/Z-YnwxYwdZ0da1e d dZ2e d!dZ3e d"dZ4e d#dZ5dZ6da7e dZ8e dZ9e dZ:dS#e;$r ddlm Returns a string containing IDNA characters. zidna-tables-properties.csv.gzc3@K|]}|dVdS)utf-8N)decode).0lines d/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/hyperlink/hypothesis.py z"idna_characters..Qs.??dT[[))??????,) delimiterPVALIDr-rc36K|]}t|dVdS)N)int)r+is r-r.z"idna_characters..bs*!?!?#a**!?!?!?!?!?!?r/N) _idnaCharactersrr__file__ open_gzip csv_readernextsplitlenappendranger unichr) result dataFileNamedataFilerrowcodesprop descriptionstartEndstartendr7s r-idna_charactersrM?s# /F  !!#BL<(( 1H#??h???!V !11C/2,E4x''!"1v||C33H8}}))  444!?!?h!?!?!?JE3"5#'2211z>>!E fQii0000%1  1 1 1 1 1 1 1 1 1 1 1 1 1 1 14"hhv..OsCD$$D(+D(r8c t}|dksJ||dksJtt|t|||} t |n#t $rt dYnwxYw|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. rNmin_sizemax_sizealphabetF)rMrrr idna_encoderr)drawrPrQrRrCs r-r#r#os#$$1}}}}  q====  Dx(XNNN O O            5MMMMM  sA A<;A<Fc j|rd}nd}tt|t|dS)z A strategy which generates port numbers. @param allow_zero: Whether to allow port C{0} as a possible value. rri) min_value max_value)rr6r)rT allow_zerorVs r-r%r%s?  IIICheLLLMMNNNr/Tc |rtt|tdd} |dn#t$ryt |ddt dz kr@|dd}t |ddt dz k@YnOwxYwtt|t ddtttzd z } t|n#t$rtd YnwxYw|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?rPrQasciipunycodezxn--Nr3rOF) rrr#rUnicodeEncodeErrorr?rrrr UnicodeErrorr)rT allow_idnlabels r-r!r!sg  ttIq2$F$F$FGGHHE ' W%%%%% ' ' '%,,z2233b3v;;6FFF"#2#JE %,,z2233b3v;;6FFF  '!"!#!%mf&zhostnames..s$7ODDQqT=Or/rr[c34K|]}t|VdS)N)r?)r+rbs r-r.zhostnames..s(11#e**111111r/Nr^.) rrr!filterr rsumr?r)rTrfralabelss ` r-r"r"s: #i888??     $ J D#i888     11&11111CKK?!CcIICRC[F11&11111CKK?!CcIIyy   r/c^t d}d|atS)zH Returns a string containing valid URL path characters. Nc3KttD]A}t|}|dvr |dn#t$rY9wxYw|VBdS)Nz#/?r))rAr rBrr_)r7cs r-charszpath_characters..charssz**  Aq AEzz !))))-!!! !GGGG  sA AAr8)_path_charactersr)rrs r-path_charactersrts9  #   " "wwuuww// r/c ttt|tt dt dS)Nr)rPrR )rQ)rr rrrrtrTs r-r$r$sO J DdA0A0ABBBRPPP     r/c ttt|td}tt|t }tt t|t}|dkrd}ttt|td|||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)rXrN)httphttps)schemehostportpath) rr r6r%rr"rr$rr)rTr}r|r~s r-r r #sHSM44 (E(E(E#F#FGGD$$y{{++,,HTNDDMM22 199Ddd<0C#D#DEEFF     r/cJt|tS)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. )rr rws r-rr9s $$|~~..///r/)Tuple)rN)F)T)TT)=__doc__ __future__r hypothesiscsvrr<os.pathrrstringrrsysr typingr r r r rrrrgziprr;r8rrrhypothesis.strategiesrrrrridnarrrrS__all__r& DrawCallablerB NameErrorchrrMr9r#r%r!r"rtrsr$r r ImportErrorrrr/r-rs?'&&&&&z0 )(((((%%%%%%%%,,,,,,,,                    '&&&&&((((((((!!!!!!CBBBBBBBBBG  AXc1f-.12L ,,,\OY@ O O OY O+++Y+Z)!)!)!Y)!V   <  Y   Y *00Y000_ GGGGs#C9 BBB9 D  D