ó
    €Ï×  ã                   óÚ  • S r SSKJr  SSKrSrSrSrS\" 5       -  rS\" 5       -  r	S	r
S
rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  r S \" 5       -  r!S!r"S"\" 5       -  r#S#\" 5       -  r$S#\" 5       -  r%S$\" 5       -  r&S%\" 5       -  r'S&\" 5       -  r(S'\" 5       -  r)S(\" 5       -  r*S)\" 5       -  r+S* r,S+ r-S, r.g)-a   Regex for URIs

These regex are directly derived from the collected ABNF in RFC3986
(except for DIGIT, ALPHA and HEXDIG, defined by RFC2234).

They should be processed with re.VERBOSE.

Thanks Mark Nottingham for this code - https://gist.github.com/138549
é    )Úunicode_literalsNz[\x30-\x39]z[\x41-\x5A\x61-\x7A]z[\x30-\x39A-Fa-f]z %% %(HEXDIG)s %(HEXDIG)sz-(?: %(ALPHA)s | %(DIGIT)s | \- | \. | _ | ~ )z#(?: : | / | \? | \# | \[ | \] | @ )zI(?: ! | \$ | & | ' | \( | \) |
                     \* | \+ | , | ; | = )z?(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : | @ )z%(?: %(gen_delims)s | %(sub_delims)s )z5%(ALPHA)s (?: %(ALPHA)s | %(DIGIT)s | \+ | \- | \. )*zÄ(?: %(DIGIT)s |
                    [\x31-\x39] %(DIGIT)s |
                    1 %(DIGIT)s{2} |
                    2 [\x30-\x34] %(DIGIT)s |
                    25 [\x30-\x35]
                )
z@%(dec_octet)s \. %(dec_octet)s \. %(dec_octet)s \. %(dec_octet)sz(?: %(HEXDIG)s ){1,4}z/(?: (?: %(h16)s : %(h16)s ) | %(IPv4address)s )aá  (?:                                  (?: %(h16)s : ){6} %(ls32)s |
                                                    :: (?: %(h16)s : ){5} %(ls32)s |
                                            %(h16)s :: (?: %(h16)s : ){4} %(ls32)s |
                         (?: %(h16)s : )    %(h16)s :: (?: %(h16)s : ){3} %(ls32)s |
                         (?: %(h16)s : ){2} %(h16)s :: (?: %(h16)s : ){2} %(ls32)s |
                         (?: %(h16)s : ){3} %(h16)s ::     %(h16)s :      %(ls32)s |
                         (?: %(h16)s : ){4} %(h16)s ::                    %(ls32)s |
                         (?: %(h16)s : ){5} %(h16)s ::                    %(h16)s  |
                         (?: %(h16)s : ){6} %(h16)s ::
                  )
z;v %(HEXDIG)s+ \. (?: %(unreserved)s | %(sub_delims)s | : )+z+\[ (?: %(IPv6address)s | %(IPvFuture)s ) \]z8(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s )*z;(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : )z5(?: %(IP_literal)s | %(IPv4address)s | %(reg_name)s )z(?: %(DIGIT)s )*z.(?: %(userinfo)s @)? %(host)s (?: : %(port)s)?z
%(pchar)s*z
%(pchar)s+z<(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | @ )+z(?: / %(segment)s )*z,/ (?: %(segment_nz)s (?: / %(segment)s )* )?z&%(segment_nz_nc)s (?: / %(segment)s )*z#%(segment_nz)s (?: / %(segment)s )*Ú z¬(?: %(path_abempty)s |
               %(path_absolute)s |
               %(path_noscheme)s |
               %(path_rootless)s |
               %(path_empty)s
            )
z(?: %(pchar)s | / | \? )*z³(?: (?: // %(authority)s %(path_abempty)s ) |
                    %(path_absolute)s |
                    %(path_rootless)s |
                    %(path_empty)s
                )
zÃ(?: (?: // %(authority)s %(path_abempty)s ) |
                        %(path_absolute)s |
                        %(path_noscheme)s |
                        %(path_empty)s
                    )
z:%(relative_part)s (?: \? %(query)s)? (?: \# %(fragment)s)?zM^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? (?: \# %(fragment)s )? )$z"^(?: %(URI)s | %(relative_ref)s )$z6^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? )$c                 óV   • [         R                  " [        U [         R                  5      $ ©N)ÚreÚmatchÚURIÚVERBOSE©Úuris    Ú(lib/third_party/oauthlib/uri_validate.pyÚis_urir   Ñ   s   € Ü	Š”#sœBŸJ™JÓ	'Ð'ó    c                 óV   • [         R                  " [        U [         R                  5      $ r   )r   r   ÚURI_referencer
   r   s    r   Úis_uri_referencer   Õ   s   € Ü	Š”- ¤b§j¡jÓ	1Ð1r   c                 óV   • [         R                  " [        U [         R                  5      $ r   )r   r   Úabsolute_URIr
   r   s    r   Úis_absolute_urir   Ù   s   € Ü	Š”, ¤R§Z¡ZÓ	0Ð0r   )/Ú__doc__Ú
__future__r   r   ÚDIGITÚALPHAÚHEXDIGÚlocalsÚpct_encodedÚ
unreservedÚ
gen_delimsÚ
sub_delimsÚpcharÚreservedÚschemeÚ	dec_octetÚIPv4addressÚh16Úls32ÚIPv6addressÚ	IPvFutureÚ
IP_literalÚreg_nameÚuserinfoÚhostÚportÚ	authorityÚsegmentÚ
segment_nzÚsegment_nz_ncÚpath_abemptyÚpath_absoluteÚpath_noschemeÚpath_rootlessÚ
path_emptyÚpathÚqueryÚfragmentÚ	hier_partÚrelative_partÚrelative_refr	   r   r   r   r   r   © r   r   Ú<module>r>      so  ðñõ (ã 	ð 	€à€à	€ð +©V«XÑ5€ð >ÁÃÑH€
ð 4€
ð.€
ð 	KÉVó Nñ 	€ð 4±f³hÑ>€ð
 
BÁFÃHÑ	L€ðñ ƒhñ€	ð Ù#)ó $ñ€ð
 ¡£Ñ)€ð :¹F»HÑD€ð
ñ ƒhñ
€ð KÉVó Nñ €	ð <¹f»hÑF€
ð GÉó Jñ €ð JÉFó Mñ €ð @Á&Ã(ÑJ€ð ™V›XÑ%€ð >ÁÃÑH€	ð
 ™&›(Ñ
"€ð ™V›XÑ%€
ð PÑRXó Sñ €ð '©«Ñ1€ð @Á&Ã(ÑJ€ð :¹F»HÑD€ð 7¹»ÑA€ð €
ðñ ƒhñ€ð 	%¡v£xÑ/€ð (©&«(Ñ2€ðñ
 ƒhñ€	ðñ
 ƒhñ€ð MÉvó Pñ €ðÙ &ó !ñ€ð
 6¹»Ñ@€ð IÉ6ó Lñ €ò(ò2ó1r   