1 '  C         C                 ) ) ) )      s   ?  )    !" #$ %&' O()* #+ , -./ 012 Y3 45 6 789 _ :; <=> ?@ hA BCD #E FG H IJ KLM sN OP OQ R #ST UV WX Y Z [\] ^ [_` a Bbcd e Bf gh gij [kl mno p Bqr 0st u \v  w [x yz { |} ~     #      )      [               )      Bf    [    0 0 0    [        [       0 K  B   0 0 0    !  InnerClasses ContentRange BUFFER_LENGTHI ConstantValue@inStreamLjava/io/InputStream;replyContentRange5Lphex/download/handler/HttpFileDownload$ContentRange;replyContentLengthJisDownloadSuccessfulZ$assertionsDisabled!(Lphex/download/DownloadEngine;)VCodeLineNumberTableLocalVariableTablethis(Lphex/download/handler/HttpFileDownload;engineLphex/download/DownloadEngine; preProcess()V downloadSet&Lphex/download/swarming/SWDownloadSet;segment*Lphex/download/swarming/SWDownloadSegment; ExceptionsprocessHandshakeexp!Ljava/lang/NumberFormatException;ipLphex/common/address/IpAddress;address!Lphex/common/address/DestAddress;remoteIP[BavailableRangesLphex/http/HTTPRangeSet;deltaxQueueParametersLphex/http/XQueueParameters; connection Lphex/net/connection/Connection;serventLphex/servent/Servent;securityService#Lphex/security/PhexSecurityManager; candidate,Lphex/download/swarming/SWDownloadCandidate; downloadFile'Lphex/download/swarming/SWDownloadFile;downloadOffsetwriterLjava/io/OutputStreamWriter; requestUrlLjava/lang/String;requestLphex/http/HTTPRequest;segmentEndOffset localAdressmyIphttpRequestStrresponseLphex/http/HTTPResponse;headerLphex/http/HTTPHeader;contentURNHeadersLjava/util/List;headers[Lphex/http/HTTPHeader;httpCodedownloadFileURNLphex/common/URN; altLocList altLocTmpListiteratorLjava/util/Iterator;LocalVariableTypeTable(Ljava/util/List;1Ljava/util/List;5Ljava/util/Iterator;processDownloadtmpCheckLength byteBufferLphex/io/buffer/ByteBuffer; dataScope!Lphex/download/DataDownloadScope;downloadLengthLeftsegmentDataSizeLeft memoryFileLphex/download/MemoryFile; fileOffsetlengthDownloadedlenbufferisAcceptingNextSegmentsnapshotOfSegmentdownloadStream%Lphex/utils/LengthLimitedInputStream; postProcessdownloadSegment stopDownloadisAcceptingNextRequest()ZhandleContentUrnHeaders:(Lphex/download/swarming/SWDownloadFile;Ljava/util/List;)VthexVerificationData$Lphex/download/ThexVerificationData;expectedRootHash contentURN contentURNStr urnHeaderi$ headerList SignatureR(Lphex/download/swarming/SWDownloadFile;Ljava/util/List;)VhandleThexUriHeaderl(Lphex/download/swarming/SWDownloadFile;Lphex/download/swarming/SWDownloadCandidate;Lphex/http/HTTPHeader;)VvalueidxthexUrirootbuildAltLocRequestHeader(Lphex/download/swarming/SWDownloadFile;Lphex/download/swarming/SWDownloadCandidate;Lphex/http/HTTPRequest;Lphex/common/address/DestAddress;Z)V newAltLocLphex/common/AlternateLocation;serventAddress isFirewalledaltLocContainerLphex/common/AltLocContainer;handlePushProxyHeadersi(Lphex/download/swarming/SWDownloadCandidate;[Lphex/http/HTTPHeader;Lphex/security/PhexSecurityManager;)V3Lphex/common/address/MalformedDestAddressException; addressStr tokenizerLjava/util/StringTokenizer;i proxyListpushProxyAddresses"[Lphex/common/address/DestAddress;3Ljava/util/List;parseContentRangeI(Ljava/lang/String;)Lphex/download/handler/HttpFileDownload$ContentRange; fileLengthdashIdxstartOffsetStr startOffset endOffsetStr endOffsetrangelinerangeStrslashIdx leadingPart trailingPart%Ljava/lang/IndexOutOfBoundsException;contentRangeLine SourceFileHttpFileDownload.java 9: A  'phex/download/swarming/SWDownloadWorkerNo segment to allocate found.        .phex/download/handler/DownloadHandlerExceptionNo segment found to allocate. 9 67       !java/io/OutputStreamWriter" #$ 9% &' 01 ()phex/http/HTTPRequestGET 9*phex/http/HTTPHeaderHost +, -) 9. /0 1!Rangejava/lang/StringBuilder 9Cbytes= 23 24- 5)X-Queue0.1 Connection Keep-Alive 6 X-Featuresg2/1.0 7,   89 :X-Node; <=> ?@java/lang/Boolean AChat B)phex/download/DownloadEngineHTTP Request to: 2C HTTP Request: D ECF GH IJHTTP Response from: K L)M N=java/lang/Integer OPHTTP Response: Server QR S) TTransfer-EncodingchunkedU VW0org/apache/commons/httpclient/ChunkedInputStream 9X 23 Content-Range  Y5java/io/IOException%Invalid 'CONTENT-RANGE' start offset. 45Content-Length Z!java/lang/NumberFormatException X-Thex-URI java/util/ArrayListX-Gnutella-Content-URN[ \W X-Content-URN ]^_ `a  bc Remote-IPd efphex/common/address/IpAddress 9gh ij kl mn oPX-Available-Ranges pq&Failed to parse X-Available-Ranges in r) request: s tuv w!phex/http/HTTPRangeSet 9x yz Alt-Location {| `}X-Gnutella-Alternate-LocationX-Alt ~ y  @phex/common/AlternateLocation  X-Pushproxies X-Push-Proxies X-Push-Proxy  P /uri-res/N2R? =Response to uri-res request without valid Content-URN header. 87java/lang/AssertionError 5  C phex/download/ReconnectExceptionHTTP Handshake successfull.  7%phex/download/RemotelyQueuedException 9 Retry-After phex/download/HostBusyException 9Network Disabled )phex/host/UnusableHostExceptionRequest Forbidden c'phex/download/FileNotAvailableException'phex/download/RangeUnavailableExceptionInternal Server ErrorUnknown HTTP code: 2 Download Engine starts download. C  !#phex/utils/LengthLimitedInputStream 9  ! !  Reading in bytes.-TransferredDataSize would be going down! ll  l  ld  gtds  seg:  originally: (TransferredDataSize would be going down! !6TransferredDataSize would be larger then segment! ll 1TransferredDataSize would be larger then segment!   phex/download/DataDownloadScope 9 Buffering  Buffering in   Buffered    C Is accepting next segment: 2 CNo download segment available.&phex/download/handler/HttpFileDownload%Completed a segment which started at ! and was downloaded at a rate of PReleasing DownloadSegment:  - C X phex/common/URN   ) ).Required TTR and content URN TTR do not match: V*Required URN and content URN do not match.;     .phex/common/AltLocContainer 9   =  9    X-NAltjava/util/StringTokenizer,  ) ) 1phex/common/address/MalformedDestAddressExceptionMalformed alt-location URL: )phex/common/address/DestAddress  3phex/download/handler/HttpFileDownload$ContentRange 9 )bytes    5 &phex/download/WrongHTTPHeaderException*Number error while parsing content range: #java/lang/IndexOutOfBoundsException#Error while parsing content range:  *phex/download/handler/AbstractHttpDownload(phex/download/handler/HttpFileDownload$1phex/http/HTTPMessageExceptiondownloadEnginegetDownloadSet(()Lphex/download/swarming/SWDownloadSet;$phex/download/swarming/SWDownloadSetallocateSegment,()Lphex/download/swarming/SWDownloadSegment;phex/common/log/NLoggerdebug&(Ljava/lang/Class;Ljava/lang/Object;)V getCandidate.()Lphex/download/swarming/SWDownloadCandidate;*phex/download/swarming/SWDownloadCandidateaddToCandidateLog(Ljava/lang/String;)V:phex/download/swarming/SWDownloadCandidate$CandidateStatusCandidateStatusWAITING*+< bc=>?@ABC;7*L+M,(+ + Y <"kl mop"r,s6u= 7>?/DE *FGH IC; **L*M,N-:,:,:,:7Y+: *+: Y :  Y !"#$%7  &- Y()Y*+,-.,/#$/ Y()Y*+,-., -/#$ Y01#$ Y23#$4 Y56#$ -7-89-7:::-8I ;< Y<"#$=>?@ YA"#$ B:C)Y*D,!EF,,/)Y*G,,/  H I+J:CK-C)Y*L,!EF,M,/N>OP)Y*Q,M,/ RS: TUVS:TWX*YY+Z*[\S:5**T][*[^&*[^ _Y`a*&bcS:*db:fS:ghYi:jS: kWlm:noAS: pqS:.Tr:sYt:uv:-wx6yS:GTz:-C)Y*{,|,},M,/~3ȡ+,#&Y  e:hYi:m::Wm::Wm::W:Wm:m:m:*ȡ,}  _Ya&J& Y*[)*[&*[*YC`0S:: T:* YS:6 YY =X&4 YY,Y Y  Y/S:6 YY Y_Y)Y*,/ae<nz| }~ &,29FNUc{ *09Mbq!=FKU^cp #*1:?E N S ]bmx~ %&'+/12 3)537<8E:O<X=c?mCvDFGKLMNPQSUY^c g#i8lDoHpPuXwYza|j}m~r|(08AFMR\dlv=L!JKmLMxNO]!PQ6RST-mQUVMT->? WX}DExYZ r[\&l]^,f_`2`FG9Ya5FLbc U=de c/fg h5 0biO9YjMkelmFLnopq#ors t-uv{wq)ixqvyz{*p|{w})ix}vy~H_C;*L+M+N+:C::7*[*[& *[7*b&*b77  &  7Y*:-: a7 7@:@Y66CK?C)Y*ƶ,Ƕ,/,)Y*ƶ,Ƕ,/ Y:a7Ĕ\C)Y*ȶ,-ɶ,ʶ,-˶,Ķ-̶,EͶ,,/~_Yηa&gϔ\C)Y*ж,-ɶ,ʶ,-˶,Ķ-̶,EͶ,,/~_Yѷa:WWY  a e:CK?C)Y*׶,Ƕ,/,)Y*ض,Ƕ,/  CK?C)Y*ڶ,Ƕ,/,)Y*ڶ,Ƕ,/  a7 a7,7  & 7ç :*-&&& Y-Ķ*6,)Y*,/  *A:*6,)Y*,/  * #(ddfd<.K  #(/4IR]hox  oy  !>"[$b%k'(,-./235689:=AB(G-H3IKKUOZP]SaUdGkHqIKOPSUV=545o5  5 ~5i-wQ3.7q.7>?DE ]^_`FG/te#H_C;*L+M+N,- Q-)Y*,,ö-,,/ )Y*,,ö-,,/)Y*,+,,*E/+<2 [\ ]_ab$c'fMiumqr=*>?DE G]^C;_**L++ޱ<vwxz|=>? FG;I***b&<= >? ;i *M,+N--:T:qY:K*::9X,_Y)Y*,,,,/a, _Yao<> $+3>FLSe=\ LBS;e>cv+ve$}oz_`quv{ |H_ ; M,,TN-6-:-`:*:: +<: !+18=DL=\ M_`M]^Mno Ce;-!,e+"e18e ;J*:Y:*.>?@-Y-:+!+: ,$* : +!+: ,$<F   4=IPaflr=\ I_`]^fgO7uvya/no ; ++hYiN6+j+2: YT  :E:,:-kW#: C)Y*, ,/--:-W*EWZ<V  "3; ENWZ\z} !=p \J E5eN,NO"[no3Pn-]^rs[\q{ ;IY*M+N-`6-:/6:`:* ,&7 , *,&^,,;-6  :  7  `:  7, ^,,MC,, !Y)Y*",+,/#M!Y)Y*%,+,/#e$<v9 :<=&?/@9ADDOFVGYJ`KfOqRxSTXYZ[\]^`bdehj=`5 /- %e 5 e 5 3e-&e/-9eDye$JKJ>?eH!C;*&<T*(+@