a  ze@spddlZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddZ dd Z Gd d d eZdS) N)msgpack)CaseInsensitiveDict) HTTPResponsepickle text_typecCst|dS)Nascii)base64 b64decodeencode)br d/opt/bitninja-python-dojo/embedded/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py_b64_decode_bytes srcCst|dS)Nutf8)rdecode)sr r r_b64_decode_strsrc@sNeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ dS) SerializerNc Cst|j}|dur*|jdd}t||_d|tdd|jD|j|j t |j |j |j di}i|d<d|vr|dd}|D]:}t |}|j|d}|durt |}||d|<qd d tj|d d gS) NF)decode_contentresponsecss"|]\}}t|t|fVqdSN)r.0kvr r r 2sz#Serializer.dumps..)bodyheadersstatusversionreasonstrictrvary,,scc=4T) use_bin_type)rrreadioBytesIO_fpdictitemsrr rr!r"rsplitstripgetjoinrdumps) selfrequestrrresponse_headersdatavaried_headersheader header_valuer r rr1s4   zSerializer.dumpscCs|sdSz|dd\}}Wnty2d}Yn0|dddkrP||}d}|dddd}zt|d |||WStyYdS0dS) Nr%rscc=0scc==rz _loads_v{})r- ValueErrorrgetattrformatAttributeError)r2r3r5verr r rloadsJs   zSerializer.loadscCsd|divrdS|diD] \}}|j|d|kr$dSq$|dd}t|ddd}|dd d kr|d||dd<zt|}Wn"tyt|d }Yn0t f|d d |dS)z`Verify our vary headers match and construct a real urllib3 HTTPResponse object. *r#Nrrr)r5ztransfer-encodingchunkedrF)rpreload_content) r/r,rpoprr(r) TypeErrorr r)r2r3cachedr7valuebody_rawrrr r rprepare_responsehs   zSerializer.prepare_responsecCsdSrr r2r3r5r r r _loads_v0szSerializer._loads_v0cCs0zt|}Wnty"YdS0|||Sr)rrAr<rKr2r3r5rHr r r _loads_v1s  zSerializer._loads_v1c Csztt|d}Wnttjfy4YdS0t|dd|dd<tdd|dd D|dd<t |dd|dd<tdd|d  D|d <| ||S) Nrrrcss"|]\}}t|t|fVqdSrrrr r rrsz'Serializer._loads_v2..rr!css.|]&\}}t||dur t|n|fVqdSrrPrr r rrsr#) jsonrAzlib decompressrr<errorrr+r,rrKrNr r r _loads_v2s zSerializer._loads_v2cCsdSrr rLr r r _loads_v3szSerializer._loads_v3cCs4ztj|dd}Wnty&YdS0|||S)NF)raw)rrAr<rKrNr r r _loads_v4s  zSerializer._loads_v4)N) __name__ __module__ __qualname__r1rArKrMrOrUrVrXr r r rrs 4&r)r r(rQrR pip._vendorrZpip._vendor.requests.structuresrcompatrrrrrobjectrr r r rs