=Og dZddlTdZdZedZedZedZedZed Z ee e e hZ eeeeeeehZeed feed feed feed feedfeedfeedfeedfdZeefeefeefeeefgfeeefgfeeefgfeeefgfeeefgfeee fgfee!fd Z"e#e$e%e&e'e(e)e*dZ+e(e$ze*zZ,e-e)zZ.dZ/GddZ0GddZ1GddZ2dZ3dZ4dZ5dZ6d)d!Z7d"Z8d#Z9d*d&Z:d'Z;d(Z%%dD11D+.2C$-?@AAA#&DN4  r&c>||j|<dSr()getwidthr)r#r1ps r$ closegroupzState.closegroupbs ! r&c6||jko|j|duSr()r*r)r#r1s r$ checkgroupzState.checkgroupds!T[ FT%5c%:$%FFr&c|jJ||s|d||jkr|ddSdS)Ncannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)r r9r.)r#r1sources r$checklookbehindgroupzState.checklookbehindgroupgsl  ,??3'' Dll#BCCCd+++ll$;<<< - ,,+r&r() __name__ __module__ __qualname__r%propertyr*r3r7r9r=r&r$rrKs %%X%    ---GGG<<<<|d\}}t ||}t ||}nd}||z}||z}|t urnt |tt |tf|_|jS)Nrr)rHrGrTMAXWIDTHr5minmax ATOMIC_GROUP SUBPATTERN _REPEATCODES MAXREPEAT _UNITCODESGROUPREFrFrrWSUCCESS) r#lohir[r\rjlhs r$r5zSubPattern.getwidths` : !:  Ri+ + FBV||Q%""B;;==DAqAq AAq AA!V!V|##{{}}1!V!Vz!!"v((1!V!V|##!u~~''1!be)^a5I%%!%!BBa"Q%iBBz!!!V!Vxz-b11!V!V&&!u~~''1a5$a5>>++DAqAq AAq AAA!V!VwX&&B(9(99 zr&r(r) r>r?r@r%rVrcrerjrmrqrsr,r5rBr&r$rDrDos))))T      &&&22222r&rDcbeZdZdZdZdZdZdZdZe dZ dZ d Z dd Z d Zd S) Tokenizerct|t|_||_|jst|d}||_d|_d|_|dS)Nlatin1r)rXrRistextstringdecoded_stringrinext_Tokenizer__next)r#rs r$r%zTokenizer.__init__sZ --  { +**F$   r&c2|j} |j|}n#t$r d|_YdSwxYw|dkrQ|dz } ||j|z }n:#t$r-t d|jt |jdz dwxYw|dz|_||_dS)Nrrzbad escape (end of pattern))rir IndexErrorrr.rr))r#richars r$__nextzTokenizer.__nexts  &u-DD   DI FF  4<< QJE I+E22 I I I9 KT[)9)9A)=??DHI IQY  s ,,A 7BcH||jkr|dSdS)NTFrr)r#rs r$matchzTokenizer.matchs& 49   KKMMM4ur&c<|j}||Sr(r)r#thiss r$r/z Tokenizer.getsy  r&czd}t|D](}|j}||vrn||z }|)|SNrJ)rangerr)r#ncharsetresult_cs r$getwhilezTokenizer.getwhile sPq  A A aKF KKMMMM r&cd} |j}||@|s|d|z|d|zt|||kr|s|d|zdn||z }|S)NrJTzmissing zmissing %s, unterminated namer)rrr.r))r# terminatorr0rrs r$getuntilzTokenizer.getuntils  A KKMMMy8**Z$%6777jj!@:!M!$V...J;**Z$%6::: aKF  r&c>|jt|jpdz Srrir)rr"s r$posz Tokenizer.pos"szC R0000r&c>|jt|jpdz Srrr"s r$tellzTokenizer.tell%szC R0000r&c<||_|dSr()rirrhs r$seekzTokenizer.seek's  r&rc|js)|ddd}t||j||z S)Nasciibackslashreplace)rencodedecoder.rr)r#msgoffsets r$r.zTokenizer.error+sP{ J**W&899@@IICS$+tyy{{V';<<r?r@r%rrr/rrrArrrr.rrBr&r$rrs   11X1111====     r&rct|}|r|St|}|r|dtur|S |dd}|dkrv||dt z }t |dkr&|d|zt |tt|dddfS|dkr}|j rv||dt z }t |d kr&|d|zt |tt|dddfS|d kr|j r||d t z }t |d kr&|d|zt |t|ddd}t|t|fS|d kr|j rddl }| ds|d|dd} t||}nL#t"t$f$r8|d|zt |t dzdwxYwt|fS|t&vrk||dt&z }t|ddd }|dkr&|d|zt |t|fS|t(vrt*t |dkrK|t,vr&|d|zt |tt|dfSn#t*$rYnwxYw|d|zt |)Nrrrwrincomplete escape %srU N{ missing {}character nameundefined character name %r\N{}.octal escape value %s outside of range 0-0o377 bad escape %s)ESCAPESr/ CATEGORIESrSr HEXDIGITSr)r.LITERALintrchr unicodedatarrordlookupKeyError TypeError OCTDIGITSDIGITS ValueError ASCIILETTERS)r<escaperprrcharnames r$ _class_escaper<s ;;v  D  >>& ! !D Q2  1 1Q3K 88 fooa33 3F6{{all#9F#BCKKPPPCqrr B/// / #XX&-X fooa33 3F6{{all#9F#BCKKPPPCqrr B/// / #XX&-X fooa33 3F6{{b  ll#9F#BCKKPPPF122J##A FFFA:  #XX&-X    <<$$ 0ll;///s,<==H K **84455i( K K Kll#@8#K#&x==3w<<#?AAFJK KA:  )^^ fooa33 3FF122J""A5yyll$35;$<=@[[JJJA:  &[[  v;;!  L  ll?V#;S[[IIICq NN* *       ,,/V = ==sO BNBNBN*AN<"INA J(( N4A3N(A-N N$#N$c t|}|r|St|}|r|S |dd}|dkrv||dtz }t |dkr&|d|zt |tt|dddfS|dkr}|j rv||dtz }t |dkr&|d|zt |tt|dddfS|d kr|j r||d tz }t |d kr&|d|zt |t|ddd}t|t|fS|d kr|j rd dl }| ds|d| dd} t||}nL#t t"f$r8|d|zt |t dzdwxYwt|fS|dkr=||dt$z }tt|ddd fS|t&vrW|jt&vr||z }|dt$vr|dt$vrr|jt$vrd||z }t|ddd }|dkr&|d|zt |t|fSt|dd}||jkrW||s#|dt ||||t0|fS|d|zt |dz t |dkrK|t2vr&|d|zt |tt|dfSn#t4$rYnwxYw|d|zt |)Nrrwrrrrrrrrrrrrrrrrr0rrr;invalid group reference %dr)rr/rrrr)r.rrrrrrrrrrrrrrr*r9r=rrr)r<rrFrprrrgroups r$_escaperxs >>& ! !D  ;;v  D  B 1Q3K 88 fooa33 3F6{{all#9F#BCKKPPPCqrr B/// / #XX&-X fooa33 3F6{{all#9F#BCKKPPPCqrr B/// / #XX&-X fooa33 3F6{{b  ll#9F#BCKKPPPF122J##A FFFA:  #XX&-X    <<$$ 0ll;///s,<==H K **84455i( K K Kll#@8#K#&x==3w<<#?AAFJK KA:  #XX fooa33 3FCqrr A... . &[[{f$$&**,,&1I**vayI/E/EK9,,fjjll*FF122J**A5yy$ll,;=C,D+.v;;888#A:%qrr OOEu|##''..4 ,,'F'*6{{444**5&999&,,;eCS[[ST_UU U v;;!  L  ll?V#;S[[IIICq NN* *       ,,/V = ==s\BR(BR(BR(AR(-"IR(A J R(%AR((B>R('A8R( BR(( R54R5cPtt|Sr()rPdictfromkeys)itemss r$_uniqrs  e$$ % %%r&c :g}|j}|j}|} |t||||dz| o| |dsn|s|jt z}At |dkr|dSt|} d} |D]} | sn8| | d} | d| krn |D]} | d=|| C g} |D]x} t | dkrn| d\} } | tur| | | fC| tur+| ddtur| | wn+|tt| f|S|td|ff|S)NTr|r)r,rr_parserSRE_FLAG_VERBOSEr)rDrrSNEGATEextendrrT)r<rFverboserr itemsappend sourcematchstart subpatternprefixitemsetr[r\s r$ _parse_subrs E,K,K KKMME5 F65'6A:%:3e)55 6 6 6{3   5k$44G 5 5zzQQxE""J  D ~aaF""#   GG   f % % %   C t99>> EaB == JJBx 2XX"Q%(&00 JJrNNNN E 2uSzz*+++ve}-... r&Fct|}|j}|j}|j}t} t } |j} | nZ| dvrnT||r&| tvr(| dkr |} | | dkrnD| ddkrt|| |} || n| tvr|t| | fn| dkr| dz } g}|j}|jdkr9ddl }| d | zt|d z |d } |} | +|d | | z | dkr|rn| ddkrt!|| }ny|re| dvra|j| krVddl }| d| dkrdn| dkrdn | dkrdnd| dz fzt|d z t| | f}|dr|}|+|d | | z |dkrE|dt"ur|dd}|||t| dfnd|ddkrt!||}nT|dkrd| d|}||t | dzt |z|d}|d}||kr>d| d|}||t | dzt |z|t$||ffn(|dt"ur|dd}||t'|}| |dkrJ|ddtur5|r |t(|ddf n;||d n(|r|dt,df|t"|f n| t.vr| } | dkrd\}}n| dkr dt0}}n| dkr dt0}}ns| dkrZ|jd kr|t| | fdt0}}d!x}}|jt2vr||z }|jt2v|d"r*|jt2vr||z }|jt2vn|}|d s2|t| | f|| |r)t7|}|t0krt9d#|rZt7|}|t0krt9d#||kr+|d$| | z nt;d%||r |d&d}nd}|r|ddt<ur;|d'| | z t | z|ddt>vr;|d(| | z t | z|ddt@ur|dd\}}}}||s|s|}|drtB|||ff|d&<n8|drtD|||ff|d&<ntF|||ff|d&<n | d)kr|tHdfn| d*kr| dz } d}!d+}"d}#d}d}|drf|}||d,|d-krh|d.r/|%d/d0}#|&|#d|n|d1r|%d2d0}#|&|#d||j'|#}$|$+d3|#z}||t |#dz|(|$s&|d4t |#dz|)|$||tT|$f|}||d,|d5|zt |dz|d6krd+}!n|dkrE |j+|d7| | z |d2krnB |d8vrd}%|d.kre|}||d,|d9vr)|d:|zt |dzd&}%|j+}&|& |j,|_+t[||||dz}|%dkr |&d|_+|d2s+|d;| | z |d1kr|t\|%|ffn|t^|%|ff |d*kr|%d2d0}'|'0r`|&|'d||j'|'}(|(+d3|'z}||t |'dzn t7|'}(|(dkrtbn:#tb$r-d<|'z}||t |'dzdwxYw|(s&|d=t |'dz|(tdkr+d>|(z}||t |'dz|(|j3vr/| t |'z dz |j3|(<|'4r|'5sqddl }| d?|j6rto|'ntq|'| t |'z dz fztr|d z |)|(|tu||||dz})|d@r6tu||||dz}*|jd@kr|dAnd}*|d2s+|d;| | z |tv|(|)|*ff o|d/krd+}!d}"n|txvs|dkr[t{|||}+|+@|r|r+|dB| | z |j>t~z} |+\}}d+}!n)|dC|zt |dz|!rU |@|#}n@#t$r1},||,jAt |#dzdd},~,wwxYwd}|s |t~zo |t~z }-t[|||-|dz}|d2s+|d;| | z ||B|||"r|t|fne|t@||||ffnN| d kr|t<tfn0| dDkr|t<tfnt;dE|ett |ddd&D]-}.||.\}/}0|/t@ur|0\}}}}||s |s |||.|.dz<.|S)FNTz|)#r rr[rz"Possible nested set at position %drr^zunterminated character set]z-&~|zPossible set %s at position %d- difference& intersection~zsymmetric differenceunionz&Possible set difference at position %drwzbad character range ?)rrr+rrrJ,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier rvznothing to repeatzmultiple repeat.(Fzunexpected end of patternP<> group name=)unknown group name %rr;zunknown extension ?P:zmissing ), unterminated commentz=!#++ 6 6 ' &  1 @33 *fqj&$TT$ZZ/E;s###%$9;;D|$ll+G+1;;==4+?AAAs{{ 8r>>$)!HQKE! %(((! 7DDII"6777Aw$ -fd ; ;3;;+OOO$MM H$*KKMMA$5!7 -&1** !(d 3Qx7**eAh'.A.A=ATT44H$ll3D A D 0IJJJqBqBBwww=ATT44H$ll3D A D 0IJJJIur2h/0000Qx2~~ %a Ie$$$s9 %v**CtCyyA~~#a&)w"6"6-$$k3q6!9%=>>>>$$SV,,,,2JJq64.111! "c++++ \ ! !;;==Ds{{SSiSiS;#%%$$gttDzz%:;;;iS RkV++))++%BkV++;s## +//iikk)!+//B"{3''$$gttDzz%:;;;KK%%%Rb''Ci''+,PQQQAb''Ci''+,PQQQSyy$ll+O+1;;==4+?AAA%nDD%JKKK !"## E471:++ll#6#);;==4#7#d))#CEEEAwqz\))ll#4#);;==4#7#d))#CEEEAwqzZ''15a.y)Q==9=D{3 @",sC.>!? 2S!! @"3c35E!F 2#-sC.>!? 2 S[[  c4[ ) ) ) ) S[[KKMMA%EGFDII{3L 6 y{{< ,,'BCCC3;;"{3'':%sLAA--dAv>>>>$S)):%sLAA--dAv>>>#o11$77;"9D"@C"(,,sCIIM"B"BB$//44>"(,,/N/24yy1}#>#>>223???(((C999  )y{{<"(,,/J"K"KK$ll+AD+H+.t99q=:::S[[#GGS[["!;."(,,/P/5{{}}u/D#F#FF$9;;#--! " U]]Cs{{(y{{<"(,,/J"K"KKt++"(,,/E/L/24yy1}#>#>> +0+A(+35:\E2"65'6A:FFAQww+359E2&;s++B$ll+O+1;;==5+@BBBs{{((&3();<<<<((*sAh)?@@@S[[%sLAAH,,..--h6BBB$)O$7$7$A$A $,"9H"DC"(,,sCMMA4E"F"FF-Q(+H I(1}}&0 0 -)QQQ"BX"MC"(,,sCMMA4E"F"FDPQ )B"(,,/A/28}}q/@#B#BB$ 11">"JC"(,,sCMMA4E"F"FF$E,=== & H = A"-i8!) 2 2 4 49I9I9K9K+OOO$MM O39=!UheHoo!'X!>!B!D!D!3vz * ..y&AAA%feWfqjIIH||C(('"(!"L"L!;#--"(,,/`"a"aa.#'!<<,,B$ll+O+1;;==5+@BBB$$o 8W7U%VWWWS[[#G!FFU]]dckk(==E}$F F"(,,0C/5{{}}u/D#F#FF#(+0@"@ +0(Iy#GG ,,'>DHI#E 4D(D> ),< <= 65+vzBBA<<$$ :ll#G#);;==5#8:::   *** Q  ,!23333  *uiA.N!OPPPP S[[  b,/ 0 0 0 0 S[[  b&\ * * * *!.tt!MNN NY lO^ 3z?? # #DDbD )''AB   -/ *E9i}Y}y}%& 1ac6" s$ m**7n!y z#,zzc |j}d}d}|dkr t|}|jr|dkrd}||n|dkrd}||||z}|tzr%|tz|krd}|||}||d |d vrnE|tvr;|rd nd }||t ||d kr|xj|zc_dS|tzr|d d|dkr|}||d|tvr;|rd nd}||t | t|}|tzrd}||||z}|}||d|dkrnE|tvr;|rd nd}||t ||tzr|dd||zr|dd||fS)NrrTrz8bad inline flags: cannot use 'L' flag with a str patternrz:bad inline flags: cannot use 'u' flag with a bytes patternz9bad inline flags: flags 'a', 'u' and 'L' are incompatiblezmissing -, : or )z)-:z unknown flagrz,bad inline flags: cannot turn on global flagrz missing flagz8bad inline flags: cannot turn off flags 'a', 'u' and 'L'z missing :rz-bad inline flags: cannot turn off global flagz(bad inline flags: flag turned on and off) r/r'rr. TYPE_FLAGSisalphar)r GLOBAL_FLAGS)r<rFrr-r6r7flagrs r$r(r(s III s{{ 3;D} ,3;;TC ,,s+++3;;VC ,,s+++  Iz! ( J(>4'G'GQll3'''9;;D|ll#6777u}}5  (, Onn>Ac17=11AGM {ll3444 W ::   .2CS!'"5a"899 9  ~  Hr&c  t|j}g gg j} fd}j} |}|n|ddkr|d}|dkrՉdsdd d }|rC|dd  ||} nA#t$rtd |zdwxYw t|} | dkrtn8#t$r+d |zt|dzdwxYw| tkr)d| zt|dz|r|snddl} | djrt)|nt+|t|z dz fzt.d|| t|dzn|dkrijt2vr(||z }jt2vr ||z }|t5t|ddddznd|t6vrd} jt6vr||z }|t2vr|dt2vryjt2vrk||z }d} t|ddd}|dkr&d|zt||t5|| s1|t|ddt|dz ny t5t8|d}n@#t$r3|t:vr'd|zt|dYnwxYw||n ||ԉ r(d t?|t@s dD fS)Nc |jkrd|z|r-ddd=t |fddS)NrrJ)r*r.r,joinr))rirr*literalliteralsrrFs r$addgroupz parse_template..addgroups 5<  ''6>DD D   OOBGGG,, - - -  s8}}e,---r&TrrrrKrz missing z"parse_template..Hs,QQQ1AIDD188I+>+>QQQr&)!rr/r, groupindexrr.rrrrrrrr)r-r&rrrrrbrrrrrrrrrrOrXrR)r<rFsgetlappendrRrWrrr0ririsoctalr*rPrQrs ` @@@@r$parse_templater[s &A 5D FHGnG!JBtvv <  7d??QACxxwws||/''+...zz#|44$$&&$$T1b111S *4 0#SSS()@4)GHHdRS? #D  199",,%%???gg&F&M&)$ii!m55:>?? ))gg&BU&J&)$ii!m555 NN,,' K+,8DT$ZZZtVVXXD 1A577/1 & D A ....c6Y&&DDFFNDv**CQRR!,,t3445555f6V##DDFFNDY47i+?+?)++"&QRR!,,u99"#''+:<@+ABEd))#M#MMA;HSabb]]CIIM:::Swt}Q/00DDSSSL((ggo&rrsT&%  <  Ij ! ! I. / / yOPP Y} % % y*j2CDEE YUBhG H H  SSYY  SSYY  SSYY  SSYY  SSYY  SSYY  SSYY  SSYY    # $    (N+, - (./0 1 (N+, - (./0 1 (M*+ , (-./ 0               o -0@ @  11  "<"<"<"<"<"<"<":>:>xK>K>K>Z&&&:::xAAAAF : : : x     6[[[z      r&