a  zeP@sVddlZddlZddlZgdZdjZdjZdjZGdddeZ ej ej dZ e d Z d d eed eeee DZeed deddiedee jZddZedZedZddZgdZgdZdeefddZGdddeZ dZ!e!dZ"ed e!d!e"d"ej#ej$BZ%Gd#d$d$eZ&Gd%d&d&e&Z'dS)'N) CookieError BaseCookie SimpleCookiez;  c@s eZdZdS)rN)__name__ __module__ __qualname__r r @/opt/bitninja-python-dojo/embedded/lib/python3.9/http/cookies.pyrsrz!#$%&'*+-.^_`|~:z ()/<=>?@[]{}cCsi|]}|d|qS)z\%03or ).0nr r r sr"\"\z\\z[%s]+cCs*|dust|r|Sd|tdSdS)Nr) _is_legal_key translate _Translatorstrr r r _quotesrz\\[0-3][0-7][0-7]z[\\].cCsN|dust|dkr|S|ddks0|ddkr4|S|dd}d}t|}g}d|krf|krFnnt||}t||}|s|s|||dqFd}}|r|d}|r|d}|r|r||kr|||||||d|d}qP|||||tt||d|dd|d}qPt|S)Nrr) len _OctalPattsearch _QuotePattappendstartchrint _nulljoin)rir resZo_matchZq_matchjkr r r _unquotes6      $ r+)ZMonZTueZWedZThuZFriZSatZSun) NZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecc CsRddlm}m}|}|||\ }}}} } } } } }d|| ||||| | | fS)Nr)gmtimetimez#%s, %02d %3s %4d %02d:%02d:%02d GMT)r-r,)futureZ weekdaynameZ monthnamer,r-ZnowZyearZmonthZdayZhhZmmssZwdyzr r r _getdates r2c @seZdZddddddddd d Zd d hZd dZeddZeddZeddZ ddZ d1ddZ ddZ e jZddZddZd d!Zd"d#Zd$d%Zd&d'Zd2d)d*ZeZd+d,Zd3d-d.Zd4d/d0ZeejZdS)5MorselexpiresPathCommentZDomainzMax-AgeZSecureZHttpOnlyZVersionZSameSite) r4pathcommentdomainmax-agesecurehttponlyversionZsamesiter;r<cCs0d|_|_|_|jD]}t||dqdS)Nr)_key_value _coded_value _reserveddict __setitem__)selfkeyr r r __init__!s zMorsel.__init__cCs|jSN)r>rDr r r rE)sz Morsel.keycCs|jSrG)r?rHr r r value-sz Morsel.valuecCs|jSrG)r@rHr r r coded_value1szMorsel.coded_valuecCs2|}||jvr td|ft|||dSNzInvalid attribute %r)lowerrArrBrC)rDKVr r r rC5s zMorsel.__setitem__NcCs.|}||jvr td|ft|||SrK)rLrArrB setdefault)rDrEvalr r r rO;s zMorsel.setdefaultcCs>t|tstSt||o<|j|jko<|j|jko<|j|jkSrG) isinstancer3NotImplementedrB__eq__r?r>r@rDZmorselr r r rSAs     z Morsel.__eq__cCs$t}t|||j|j|SrG)r3rBupdate__dict__rTr r r copyKs z Morsel.copycCsRi}t|D]0\}}|}||jvr8td|f|||<qt||dSrK)rBitemsrLrArrU)rDvaluesdatarErPr r r rUQs  z Morsel.updatecCs||jvSrG)rLrA)rDrMr r r isReservedKeyZszMorsel.isReservedKeycCsH||jvrtd|ft|s2td|f||_||_||_dS)Nz Attempt to set a reserved key %rzIllegal key %r)rLrArrr>r?r@)rDrErPZ coded_valr r r set]sz Morsel.setcCs|j|j|jdS)N)rErIrJr>r?r@rHr r r __getstate__hszMorsel.__getstate__cCs"|d|_|d|_|d|_dS)NrErIrJr])rDstater r r __setstate__os  zMorsel.__setstate__ Set-Cookie:cCsd|||fS)Nz%s %s) OutputString)rDattrsheaderr r r outputtsz Morsel.outputcCsd|jj|fS)N<%s: %s>) __class__rrbrHr r r __repr__yszMorsel.__repr__cCsd||ddS)Nz rr)rbreplace)rDrcr r r js_output|szMorsel.js_outputcCs$g}|j}|d|j|jf|dur,|j}t|}|D]\}}|dkrNq<||vrXq<|dkrt|tr|d|j|t|fq<|dkrt|tr|d|j||fq<|dkrt|t r|d|j|t |fq<||j vr|r|t |j|q<|d|j||fq<@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=z\[\]z \s* # Optional whitespace at start of cookie (?P # Start of group 'key' [a ]+? # Any word of at least one letter ) # End of group 'key' ( # Optional group: there may not be a value. \s*=\s* # Equal Sign (?P # Start of group 'val' "(?:[^\\"]|\\.)*" # Any doublequoted string | # or \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT # Special case for "expires" attr | # or [a-]* # Any word or empty string ) # End of group 'val' )? # End of optional value group \s* # Any number of spaces. (\s+|;|$) # Ending either at space, semicolon, or EOS. c@sjeZdZddZddZdddZdd Zd d ZdddZeZ ddZ dddZ ddZ e fddZdS)rcCs||fSrGr rDrPr r r value_decodeszBaseCookie.value_decodecCst|}||fSrGrrDrPZstrvalr r r value_encodeszBaseCookie.value_encodeNcCs|r||dSrG)load)rDinputr r r rFszBaseCookie.__init__cCs.||t}||||t|||dSrG)getr3r\rBrC)rDrEZ real_valuerJMr r r Z__setszBaseCookie.__setcCs:t|trt|||n||\}}||||dSrG)rQr3rBrCr{_BaseCookie__set)rDrErIrvalcvalr r r rCs zBaseCookie.__setitem__ra cCs:g}t|}|D]\}}||||q||SrG)rlrXr"rejoin)rDrcrdseprorXrErIr r r res   zBaseCookie.outputcCsJg}t|}|D] \}}|d|t|jfqd|jjt|fS)Nrkrf)rlrXr"reprrIrgr _spacejoin)rDlrXrErIr r r rhs   zBaseCookie.__repr__cCs6g}t|}|D]\}}|||qt|SrG)rlrXr"rjr&)rDrcrorXrErIr r r rjs   zBaseCookie.js_outputcCs4t|tr||n|D]\}}|||<qdSrG)rQr_BaseCookie__parse_stringrX)rDZrawdatarErIr r r r| s    zBaseCookie.loadcCshd}t|}g}d}d}d}d|kr2|krnn|||} | sJq| d| d} } | d}| ddkr|s|q||| dd| fq| tjvr|sdS| dur| tjvr||| dfqdSn||| t | fq| dur||| | | fd}qdSqd} |D]>\} } } | |krB| | | <n| \}}| | |||| } q$dS) NrFrrrErP$T) rmatchgroupendr"rLr3rArmr+ryr)rDrZpattr'r Z parsed_itemsZ morsel_seenZTYPE_ATTRIBUTEZ TYPE_KEYVALUErrErIrtprrr r r Z__parse_stringsF      zBaseCookie.__parse_string)N)Nrar)N)rrr ryr{rFrrCrersrhrjr|_CookiePatternrr r r r rs    rc@seZdZddZddZdS)rcCs t||fSrG)r+rxr r r ry_szSimpleCookie.value_decodecCst|}|t|fSrG)rrrzr r r r{bszSimpleCookie.value_encodeN)rrr ryr{r r r r rXsr)(restringru__all__rr&rnr Exceptionr ascii_lettersdigitsZ _LegalCharsZ_UnescapedCharsr\rangemapordrrUcompileescape fullmatchrrrr!r+Z _weekdaynameZ _monthnamer2rBr3Z_LegalKeyCharsZ_LegalValueCharsASCIIVERBOSErrrr r r r sT  26