o ?OgEm@sdZddlZddlZddlTeehZeee hZ e e hZ eehZeeehBZdZddeDZejfddZd d Zd d Zd,d dZejdZde>dZdZeefddZ ddZ!ddZ"ddZ#ddZ$ddZ%ddZ&d d!Z'd"d#Z(d$d%Z)d&d'Z*d(d)Z+d-d*d+Z,dS).zInternal support module for sreN)*))ii1)si)i)iEii)ii)ii)ii)ii)ii)ii)ii)ii)ii)ii)i2i)i4i)i>i)iAi)iBii)iJi)ici)iiK)iai)iics.i|]}|D]tfdd|DqqS)c3s|] }|kr|VqdSN).0jir2/opt/alt/python310/lib64/python3.10/sre_compile.py Nsz.)tuple)rtrr r Ns rcCs ||@r ||M}||B|@Srr)flags add_flags del_flags TYPE_FLAGSrrr _combine_flagsQs rcCs|j}t}t}t}t}t}d} d} d} |t@r.|t@s.|t@r(t j } t j } t } nt j } t j} |D]4\} } | |vr|t@sF|| || q0|t@rU|t| || q0| | sb|| || q0| | }| ss|t| ||q0|| vr|t| ||q0|t||}|d| tur|t|f| |D] }|t||q|t|||||<q0| turt| | | | \}}|t@r|t@r|tn|s|tn | s|tn|t||}|dt||||||||<q0| tur |t@r|tq0|tq0| |vr|t@rt d| ft!| dr[| t"ur.|t#n|t$||}|d|| d|| dt%|| d||t&|||||<q0|t'||}|d|| d|| dt%|| d||||||<| t"ur|t(q0|t)q0| t*ur| \}}}}|r|t+||ddt%||t,||||r|t+||dddq0| |vr|| q0| |vr|| ||}|d| ddkr|dn| d-\}}||krt d||t%|| d||t&|||||<q0| t.ur=|| ||}|dt%|| ||t&|||||<q0| t/urm|| |t0@rQt12| | } |t@r]t32| | } n |t@rht42| | } || q0| t5ur|| g}|j}| dD]'} ||}|dt%|| ||t6||||d|||||<q|t|D] }|||||<qq0| t7ur|| |t@rt8| } n |t@rt9| } || q0| t:ur|t@s|| n|t@r|t;n | s|t<n|t=|| dq0| t>ur_|| || dd||}|dt%|| d|| drT|t6||}|d|||d||<t%|| d||||||<q0|||d||<q0t d| fdS)Nrz*internal: unsupported template operator %rz(look-behind requires fixed-width patternz%internal: unsupported operand type %r)?appendlen_LITERAL_CODES_REPEATING_CODES_SUCCESS_CODES _ASSERT_CODESSRE_FLAG_IGNORECASESRE_FLAG_LOCALESRE_FLAG_UNICODE_sreunicode_iscasedunicode_tolower_ignorecase_fixes ascii_iscased ascii_tolowerOP_LOCALE_IGNORE OP_IGNOREOP_UNICODE_IGNORE IN_UNI_IGNORE NOT_LITERALNEGATELITERALFAILUREIN_optimize_charset IN_LOC_IGNORE IN_IGNORE_compile_charsetANYSRE_FLAG_DOTALLANY_ALLSRE_FLAG_TEMPLATEerror_simple MAX_REPEAT REPEAT_ONEMIN_REPEAT_ONE_compileSUCCESSREPEAT MAX_UNTIL MIN_UNTIL SUBPATTERNMARKrgetwidthCALLATSRE_FLAG_MULTILINE AT_MULTILINEget AT_LOCALE AT_UNICODEBRANCHJUMPCATEGORY CH_LOCALE CH_UNICODEGROUPREFGROUPREF_LOC_IGNOREGROUPREF_IGNOREGROUPREF_UNI_IGNOREGROUPREF_EXISTS)codepatternremit_len LITERAL_CODESREPEATING_CODES SUCCESS_CODES ASSERT_CODESiscasedtolowerfixesopavloskipkcharsethascasedgrouprrphitail tailappendskipyesskipnorrr r=WsJ                                                            r=cCs|j}|D]d\}}|||turq|tur||q|tus#|tur0||d||dq|tur:||q|turD||q|turc|t @rS|t |q|t @r^|t |q||qt d|f|tdS)Nrrz%internal: unsupported set operator %r)rr,r-RANGERANGE_UNI_IGNORECHARSETextend BIGCHARSETrNrrOr rPr8r.)rfrrVrXrarbrrr r3 s,       r3c Csxg}g}td}d}|D]\}} z|tur?|r:|| } d|| <|r1| |vr1|| D]} d|| <q*|s9|| r9d}ngd|| <nb|turt| d| dd} |r|rnt|| D]} d|| <| |vrl|| D]} d|| <qeqWn t|| D]} d|| <qs|stt|| }n| D]} d|| <qn|tur||| fn||| fWn(tyt |dkr|dd7}Yq|rd}|turt }||| fYnw q g}d} | d|}|dkrn%t |dkrd}n| d|}|dkr||t |fn|||fq|durB|D] \}}||dkr|t|fq |t||dffq ||7}|s:t |t |kr>||fS||fSt |dkr\t |}|t |f||7}||fSt|}i}td}d}t}tdd dD],} || | d}||vr|||| d<qq||| d<||<|d7}||7}qqt |}|gt||dd<|t|f||7}||fS) NFTrriri) bytearrayr-rorangemapanyr,r IndexErrorrrpfind _mk_bitmaprqbytes_bytes_to_codesrs)rfr^fixupr`outrkcharmaprgrarbrcrerr runsqridatacompsmappingblockchunkrrr r0$s                    r0rs0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111cs8|tdddfddttd DS)Ncs"g|] }||dqS)rr)rr  _CODEBITS_intsrr sz_mk_bitmap..r) translate _BITS_TRANSrwr)bitsrrrrr r|sr|cCst|d}|S)NI) memoryviewcasttolist)barrr r~sr~cCsDt|dkrdS|d\}}|tur|dduot|dS|tvS)NrFrr)rrBr9 _UNIT_CODES)rirarbrrr r9s  r9cCs|dgt|}tdt|D]-}||d}||||kr5|dkr'd||<n||d}||||ks|d||<q|S)aj Generate an overlap table for the following prefix. An overlap table is a table of the same size as the prefix which informs about the potential self-overlap for each index in the prefix: - if overlap[i] == 0, prefix[i:] can't overlap prefix[0:...] - if overlap[i] == k with 0 < k <= i, prefix[i-k+1:i+1] overlaps with prefix[0:k] rr)rrw)prefixtabler idxrrr _generate_overlap_tables    rcCs |t@sdS|t@r tjStjSr)rr r!r"r%)rrrr _get_iscaseds rcCsg}|j}d}t|}|jD]Y\}}|tur#|r||rnO||q|turf|\}} } } t|| | } | t@r=| t@r=n0t| | \} }}|dur\|durRt |}n |dur\t ||}| | |senqn||dfS||dfS)NTF) rrrr-rBrrr_get_literal_prefixrrr)rWrr prefixappend prefix_skipr^rarbrhrrriflags1prefix1 prefix_skip1got_allrrr rs6         rc CsZ |jsdS|jd\}}|turn|\}}}}t|||}|t@r(|t@r(dSqt|}|tur>|r9||r9dS||fgS|turng}|j} |dD] } | sRdS| d\}}|turi|rb||si| ||fqKdS|S|t ur|}|r|D]0\}}|tur||rdSqx|t ur|ddkrdSt t |t |d|ddrdSqx|SdS)NTrri)rrBrrrrr-rLrr/roryrxrw) rWrrarbrhrrr^rf charsetappendrirrr _get_charset_prefixsV          rc Csl|\}}|tkr t}|dkr|tdd||gdSg}d}g}|t@r*|t@s9t||\}}}|s9t||}|j} | tt |} | dd} |rYt } |durX|rX| t B} n|r_| t B} | | |tkrl| |n | t|dt}| t |t|r| t ||durt |}| ||||t|n|rt|\}} t|||t || || <dS)Nr)rDMAXCODErrINFOrrrrrrSRE_INFO_PREFIXSRE_INFO_LITERALSRE_INFO_CHARSETminrr0r3) rVrWrrcrjrrrfrrXrdmaskrgrrr _compile_info0sR         rcCst|ttfSr) isinstancestrr})objrrr isstringksrcCs8|jj|B}g}t|||t||j||t|Sr)staterrr=rrr>)rirrVrrr _codens   rcCsdddd|DS)N[%s], css&|]}dtjdd|fVqdS)z%#0*xrN)r!CODESIZErxrrr r ~s$z_hex_code..)joinrVrrr _hex_code}srcsNddltdtttdfdddtdS)Nrrc sddfdd }fdd}d7}||kr||}|d7}t|}|tttttttfvr=||n|tt t t t t ttfvr^|}|d7}||d|t|fnz|tur{|}|d7}tt|}|||ddn]|tur|}|d7}tt|}|||d dn@|ttttfvr|}|||||d|d||||7}n|ttfvr||d \}} |d 7}||d || t|t| fn|tur||t||d t|d t7}n|turS|}|d7}t d !fdd||d t"j#D} |||| |d t"j#7}d7t$|D]} |t||d t|d t7}q5d8n|t%t&t't(t)fvrl|}|d7}|||nl|t*ur|}|||||d|d7}nT|t+urƈ|}|||||d|r|d||||7}||}|r|d|||dn|t|s|d7}n|t,t-t.fvr||d\}} } | t/krd} |||| | ||d|d||||7}n|t0ur||d \}}||||||d|d 7}n|t1t2fvr@||d \}}||||||d|d ||||7}n|t3urԈ||d\}}} } | t/krXd} |||t4|| | ||d|d|t5@r|d|d\}}|d||d|}|ddd!dd|Ddd!t6t||7|d||7|t7@rψd7|d||d8||7}nt8|||ksd8dS)N)tocsX|dur||d|ff7}tdvrdndfdddt|dS)Nz(to %d)z%*d%s :.z rend)addprint)rargs)labelslevel offset_widthstartrr print_s   z!dis..dis_..print_cs"tdddt|dS)N rr)r)r)rrrr print_2s z"dis..dis_..print_2rz %#02x (%r) rz%#02x %#02x (%r-%r)rtc3s |] }|tjjVqdSr)to_bytesr!r byteorderr)sysrr r sz$dis..dis_..branch MAXREPEATrz prefix_skipz prefixrrcss|]}d|VqdS)z%#02xNrrrrr r sz(%r)z overlapin)9OPCODESr>r.r4r6r@rAr,r-r+LITERAL_IGNORENOT_LITERAL_IGNORELITERAL_UNI_IGNORENOT_LITERAL_UNI_IGNORELITERAL_LOC_IGNORENOT_LITERAL_LOC_IGNOREchrrFrATCODESrNCHCODESr/r2r*r1rorprqrrrslistrr!rrwrCrQrSrTrRrMrLr?r;r<rrUASSERT ASSERT_NOTrbinrrxr ValueError)rrrrr raargrdrcrjrr rmaxr prefix_lenrrrVdis_rrrr)rr rs       "                     szdis..dis_)rsetrrrrrr dissrc Cst|r |}t||}nd}t||}|t@rtt||jj}dg|jj }| D]\}}|||<q.t |||jj B||jj d|t|S)Nr)r sre_parseparserSRE_FLAG_DEBUGrrr groupdictgroupsitemsr!compilerr)rirrWrV groupindex indexgrouprer rrr rs"   r)NNN)r)-__doc__r!r sre_constantsr-r+rr? MIN_REPEATr:rr>r.rrrrr4r/r _equivalencesr$rrr=r3r0rrrrintr|r~r9rrrrrrrrrrrrrr sJ   4 3   ,;