HOME


sh-3ll 1.0
DIR:/proc/self/root/usr/share/emacs/26.1/lisp/url/
Upload File :
Current File : //proc/self/root/usr/share/emacs/26.1/lisp/url/url-http.elc
;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\312\313\314\"\207" [require cl-lib puny nsm url-gw url-parse url-cookie mail-parse url-auth url autoload url-cache-create-filename "url-cache"] 3)
#@20 Default HTTP port.
(defconst url-http-default-port 80 (#$ . 685))
#@35 HTTP retrievals are asynchronous.
(defconst url-http-asynchronous-p t (#$ . 757))
(defalias 'url-http-expand-file-name 'url-default-expander)
(defvar url-http-real-basic-auth-storage nil)
(defvar url-http-proxy-basic-auth-storage nil)
#@47 A hash table of all open network connections.
(defvar url-http-open-connections (make-hash-table :test 'equal :size 17) (#$ . 998))
#@241 What version of HTTP we advertise, as a string.
Valid values are 1.1 and 1.0.
This is only useful when debugging the HTTP subsystem.

Setting this to 1.0 will tell servers not to send chunked encoding,
and other HTTP/1.1 specific features.
(defvar url-http-version "1.1" (#$ . 1137))
#@207 Whether to use a single TCP connection multiple times in HTTP.
This is only useful when debugging the HTTP subsystem.  Setting to
nil will explicitly close the connection to the server after every
request.
(defvar url-http-attempt-keepalives t (#$ . 1428))
#@39 The HTTP return codes and their text.
(defconst url-http-codes '((100 continue "Continue with request") (101 switching-protocols "Switching protocols") (102 processing "Processing (Added by DAV)") (200 OK "OK") (201 created "Created") (202 accepted "Accepted") (203 non-authoritative "Non-authoritative information") (204 no-content "No content") (205 reset-content "Reset content") (206 partial-content "Partial content") (207 multi-status "Multi-status (Added by DAV)") (300 multiple-choices "Multiple choices") (301 moved-permanently "Moved permanently") (302 found "Found") (303 see-other "See other") (304 not-modified "Not modified") (305 use-proxy "Use proxy") (307 temporary-redirect "Temporary redirect") (400 bad-request "Bad Request") (401 unauthorized "Unauthorized") (402 payment-required "Payment required") (403 forbidden "Forbidden") (404 not-found "Not found") (405 method-not-allowed "Method not allowed") (406 not-acceptable "Not acceptable") (407 proxy-authentication-required "Proxy authentication required") (408 request-timeout "Request time-out") (409 conflict "Conflict") (410 gone "Gone") (411 length-required "Length required") (412 precondition-failed "Precondition failed") (413 request-entity-too-large "Request entity too large") (414 request-uri-too-large "Request-URI too large") (415 unsupported-media-type "Unsupported media type") (416 requested-range-not-satisfiable "Requested range not satisfiable") (417 expectation-failed "Expectation failed") (422 unprocessable-entity "Unprocessable Entity (Added by DAV)") (423 locked "Locked") (424 failed-Dependency "Failed Dependency") (451 unavailable-for-legal-reasons "Unavailable for legal reasons") (500 internal-server-error "Internal server error") (501 not-implemented "Not implemented") (502 bad-gateway "Bad gateway") (503 service-unavailable "Service unavailable") (504 gateway-timeout "Gateway time-out") (505 http-version-not-supported "HTTP version not supported") (507 insufficient-storage "Insufficient storage")) (#$ . 1691))
#@21 Default HTTPS port.
(defconst url-https-default-port 443 (#$ . 3720))
#@19 

(fn &rest ARGS)
(defalias 'url-http-debug #[128 "\203\301p!\211\203\302\303\"\210\304\303\"\210\305\306!\266\307\310\311#\207" [quit-flag get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http] 5 (#$ . 3796)])
(put 'url-http-debug 'byte-optimizer 'byte-compile-inline-expand)
#@23 

(fn HOST PORT PROC)
(defalias 'url-http-mark-connection-as-busy #[771 "\302F\203\303p!\211\203\304\305\"\210\306\305\"\210\307\310!\266\311\312\313#\266\314\315\"\210\316B\317\320B	\"\"	#\210\207" [quit-flag url-http-open-connections "Marking connection as busy: %s:%d %S" get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http set-process-query-on-exit-flag t puthash delq gethash] 10 (#$ . 4148)])
#@23 

(fn HOST PORT PROC)
(defalias 'url-http-mark-connection-as-free #[771 "\302F\203\303p!\211\203\304\305\"\210\306\305\"\210\307\310!\266\311\312\313#\266\314!\315>\203N\316\305\"\210\304\317\"\210\320\305\"\210\321B\322B	\"B	#\210\305\207" [quit-flag url-http-open-connections "Marking connection as free: %s:%d %S" get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http process-status (open run connect) set-process-buffer url-http-idle-sentinel set-process-query-on-exit-flag puthash gethash] 9 (#$ . 4636)])
#@43 

(fn HOST PORT &optional GATEWAY-METHOD)
(defalias 'url-http-find-free-connection #[770 "\304B\"\305\203{\211\204{\306@!\307>\204H\310@F	\2038\311p!\211\2033\312\305\"\210\313\305\"\210\314\315!\266\316\317\320#\266\321@\305\"\210\202r@\262\322F	\203k\311p!\211\203f\312\305\"\210\313\305\"\210\314\315!\266\316\317\320#\266\211A\262\210\202\211\203\247\323E	\203\235\311p!\211\203\230\312\305\"\210\313\305\"\210\314\315!\266\316\317\320#\266\202\314\324E	\203\305\311p!\211\203\300\312\305\"\210\313\305\"\210\314\315!\266\316\317\320#\266\325\324#\210\211\204e\326\327!\330\331\332\333\334!\335\"\336$\216\337\n\203\340\n!>\204\376\341\342\343\nD\"\210\n\344H\202\n\203O\n\340!>\204\341\342\343D\"\210\211\345H\206J\340!>\204/\341\342\343D\"\210\211\346H\205J\347\340!>\204E\341\342\343D\"\210\346H\350\"\262\202Q%\351!\203b\352\305\"\210\211\262\210)\210\211\205n\353#\207" [url-http-open-connections quit-flag url-using-proxy cl-struct-url-tags gethash nil process-status (run open connect) "Cleaning up dead process: %s:%d %S" get-buffer-process set-process-sentinel set-process-filter error "Transfer interrupted!" apply url-debug http url-http-idle-sentinel "Found existing connection: %s:%d %S" "Reusing existing connection: %s:%d" "Contacting host: %s:%d" url-lazy-message generate-new-buffer " *url-http-temp*" make-byte-code 0 "\301\300!\203
\302\301\300!\303\"\210\304\300!\207" vconcat vector [get-buffer-process set-process-query-on-exit-flag nil kill-buffer] 3 url-open-stream type-of signal wrong-type-argument url 4 5 1 url-scheme-get-property default-port processp set-process-buffer url-http-mark-connection-as-busy] 16 (#$ . 5238)])
#@67 Compute a default User-Agent string based on `url-privacy-level'.
(defalias 'url-http--user-agent-default-string #[0 "\205	\306\307	#\n<\205\310\n>?\205\306\311\"\n<\205!\312\n>?\205*\306\313\f
#\306\314\"\315\316F\"\317\320\321#\266\202\207" [url-package-name url-package-version url-privacy-level emacs-version url-system-type url-os-type format "%s/%s" emacs "Emacs/%s" os "(%s; %s)" "URL/%s" delq nil " " mapconcat identity url-version] 10 (#$ . 7004)])
#@95 Compute a User-Agent string.
The string is based on `url-privacy-level' and `url-user-agent'.
(defalias 'url-http-user-agent-string #[0 "\302=\206<\205\303>\211?\205/\304	!\203	 \202/	;\203'	\202/	\305=\205/\306 \211\203w\307\310\311\211\312\313\206A\314\315Q\"\203S\316\317\320\211$\266\202\202V\266\202\312\321\206^\314\322Q\"\203p\316\317\320\211$\266\205\202s\266\205\"\202x\317\207" [url-privacy-level url-user-agent paranoid agent functionp default url-http--user-agent-default-string format "User-Agent: %s
\n" nil string-match "\\(?:" "[ 	\n
]+" "\\)\\'" replace-match "" t "\\`\\(?:" "\\)"] 14 (#$ . 7488)])
#@99 Create an HTTP request for `url-http-target-url', referred to by REF-URL.

(fn &optional REF-URL)
(defalias 'url-http-create-request #[256 "\306\211\307\310\"\243	\307\311\"\243\206\211??\205\312\313	\306\314\306$)\315!\f>\204.\316\317\320D\"\210\321H\322\315!\f>\204A\316\317\320D\"\210\323H!\307\324\"\243?\205^\313\325\305!\203Y
\206Z\306\314\306$\326\232\203g\327\262\205p\330\331\"\262\211\203|\332\333Q\262\203\206\334\333Q\262\203\242;\203\242\335\230\204\237\326\230\203\242\306\262	@\336>\204\266@<\203\271\337@>\203\271\306\262	\340\341\333#\262\326\232\204\315\333P\262A\206\323\342\343\322\203\340\344!\202\341!\345B\333\346\347\f\204\362C\204\366\350\202\367\351\333D\205\352\353D\"\315!\f>\204\316\317\320D\"\210\211\354H\206B\315!\f>\204'\316\317\320D\"\210\211\355H\205B\356\315!\f>\204=\316\317\320D\"\210\355H\357\"\262\356\315!\f>\204T\316\317\320D\"\210\355H\357\"U\204\251\352\360\361!\315!\f>\204s\316\317\320D\"\210\211\354H\206\243\315!\f>\204\210\316\317\320D\"\210\211\355H\205\243\356\315!\f>\204\236\316\317\320D\"\210\355H\357\"\262#\202\260\352\362\361!\"E\205\272\363E\333QF\205\304\364F\333QG\205\320\365\322G!\333QH\205\332\366H\333Q\367I\206\341\370\333\371 \315!\f>\204\367\316\317\320D\"\210\372H\205\322\373\315!\f>\204\316\317\320D\"\210\355H\374\232#!?\2057A\375\235\2057\376!\211\2055\377\201L!\333Q\262 \205C\201M!\333Q J\205V\201N\201OJG!\333Q\333J\260\262\201P!GU\204t\201Q\201R\"\210\201SDK\203\237\201Tp!\211\203\226\201U\306\"\210\201V\306\"\210\201Q\201W!\266\201X\201Y\201Z#\266\207" [url-http-extra-headers url-http-proxy url-basic-auth-storage url-http-target-url cl-struct-url-tags proxy-info nil assoc "Pragma" "Proxy-Authorization" url-http-proxy-basic-auth-storage url-get-authentication any type-of signal wrong-type-argument url 6 url-http--encode-string 4 "Authorization" boundp "" "/" string-match "no-cache" "Authorization: " "
\n" "Proxy-Authorization: " "file:nil" (low high paranoid) lastloc mapconcat #[257 "\211@\300AQ\207" [": "] 4 "\n\n(fn X)"] "GET" " " url-recreate-url " HTTP/" "MIME-Version: 1.0
\n" "Connection: " "close" "keep-alive" format "Extension: %s
\n" 5 1 url-scheme-get-property default-port "Host: %s:%d
\n" puny-encode-domain "Host: %s
\n" "From: " "Accept-encoding: " "Accept-charset: " "Accept-language: " "Accept: " "*/*" url-http-user-agent-string 11 url-cookie-generate-header-lines "https" ("GET" nil) url-is-cached "If-modified-since: " url-privacy-level url-http-method url-http-version url-http-attempt-keepalives url-extensions-header url-personal-mail-address url-mime-encoding-string url-mime-charset-string url-mime-language-string url-mime-accept-string url-http-data quit-flag url-get-normalized-date "Referer: " "Content-length: " number-to-string string-bytes error "Multibyte text in HTTP request: %s" "Request is: \n%s" get-buffer-process set-process-sentinel set-process-filter "Transfer interrupted!" apply url-debug http] 39 (#$ . 8145)])
#@10 

(fn S)
(defalias 'url-http--encode-string #[257 "\300!\203\301\302\"\207\207" [multibyte-string-p encode-coding-string us-ascii] 4 (#$ . 11301)])
#@126 Remove trailing 
 from header lines.
This allows us to use `mail-fetch-field', etc.
Return the number of characters removed.
(defalias 'url-http-clean-headers #[0 "\301!eb\210\302\303\304#\203\305\306!\210\202\211Z\207" [url-http-end-of-headers marker-position re-search-forward "
$" t replace-match ""] 5 (#$ . 11460)])
#@14 

(fn PROXY)
(defalias 'url-http-handle-authentication #[257 "\306\203	\307\202\n\310D\203%\311p!\211\203 \312\313\"\210\314\313\"\210\315\316!\266\317\320\321#\266\322\2035\323\2026\324\313\211\325$\237\206?\326\313\327	!\327\203R\330\302!\203R\n\202S	!\203\\\331\202]\332\313\333\211\203\244\211@\334\335!!\262\336\337\"\203\211\333\211\224O\202\200\211\227\340!\211AA\203\233\211V\203\233\262\262\211\262\266A\266\202\202c\210\340!\204\311~\210db\210\341\206\300\206\300\206\300\342\343\344\261\210\313\202\n\345\346\347\350#!\351\352\353\"\243	\325%\211\204\344\325\202	\203\355\354\202\356\355B\fB
/\f012\35634#\210+\313\266\202)\207" [quit-flag url-current-object url-http-proxy url-basic-auth-storage url-http-extra-headers url-http-method "Handling %s authentication" "proxy" "normal" get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http mail-fetch-field "proxy-authenticate" "www-authenticate" t ("basic") url-recreate-url boundp url-http-proxy-basic-auth-storage url-http-real-basic-auth-storage 0 url-eat-trailing-space url-strip-leading-spaces string-match "[ 	]" url-auth-registered "<hr>Sorry, but I do not know how to handle " "" " authentication.  If you'd like to write it," " please use M-x report-emacs-bug RET.<hr>" url-parse-args subst-char-in-string 44 59 url-get-authentication assoc "realm" "Proxy-Authorization" "Authorization" url-retrieve-internal url-http-data url-request-extra-headers url-request-data url-request-method url-callback-function url-callback-arguments] 15 (#$ . 11794)])
#@31 Parse just the response code.
(defalias 'url-http-parse-response #[0 "\204\n\304\305\306 \"\210\307\306 D	\203(\310p!\211\203#\311\312\"\210\313\312\"\210\304\314!\266\315\316\317#\266eb\210\320\312w\210\321\312w\210`\322\312w\210`{\323p!\211\207" [url-http-end-of-headers quit-flag url-http-response-version url-http-response-status error "Trying to parse HTTP response code in odd buffer: %s" buffer-name "url-http-parse-response called in (%s)" get-buffer-process set-process-sentinel nil set-process-filter "Transfer interrupted!" apply url-debug http " 	\n" "HTTP/" "[0-9]." read] 5 (#$ . 13456)])
#@161 Handle all set-cookie / set-cookie2 headers in an HTTP response.
The buffer must already be narrowed to the headers, so `mail-fetch-field' will
work correctly.
(defalias 'url-http-handle-cookies #[0 "\301\302\303\211\304$\237\301\305\303\211\304$\237\2037\306GD\2030\307p!\211\203+\310\303\"\210\311\303\"\210\312\313!\266\314\315\316#\266\211\203`\317GD\203Y\307p!\211\203T\310\303\"\210\311\303\"\210\312\313!\266\314\315\316#\266\205p\320\211A\262\242!\210\202`\207" [quit-flag mail-fetch-field "Set-Cookie" nil t "Set-Cookie2" "Found %d Set-Cookie headers" get-buffer-process set-process-sentinel set-process-filter error "Transfer interrupted!" apply url-debug http "Found %d Set-Cookie2 headers" url-cookie-handle-set-cookie] 7 (#$ . 14077)])
#@133 Parse and handle HTTP specific headers.
Return t if and only if the current buffer is still active and
should be shown to the user.
(defalias 'url-http-parse-headers #[0 "\306\307!	>\204\310\311\312D\"\210\313H\307!	>\204#\310\311\312D\"\210\211\314H\206S\307!	>\2048\310\311\312D\"\210\211\315H\205S\316\307!	>\204N\310\311\312D\"\210\315H\317\"\262\n#\210\320 \203v\321\n!\211\204l\322@\323\"\203u\324@\323#\240\210\210\325\304!\203\200\f\204\206\326\327\330 \"\210eb\210\331\330 D
\203\247\332p!\211\203\242\333\334\"\210\335\334\"\210\326\336!\266\337\340\341#\266\342 \210\343 \210\344\345!@\346\230\203\320\211\203\311\211\227\347\230\204\337\350\n!\210\202\337\211\203\337\211\227\351\230\203\337\350\n!\210\210pA\352\245\334AB\236A@\353AE
\203\f\332p!\211\203\333\334\"\210\335\334\"\210\326\336!\266\337\340\341#\266\307C!	>\204$\310\311\312CD\"\210C\354H\203.\355 \210\356\267\202\375\357!\210\326\360A\"\210\202\211\361>\203N\357!\210\202`~\210D\203`E\362\232\203`\363!\210\364\262\202\344\365!\206o\344\366!\367=\204\302\370\267\202\302\362E\334F\202\302\371\372\373\364!!D
\203\245\332p!\211\203\240\333\334\"\210\335\334\"\210\326\336!\266\337\340\341#\266\374\372\373\364!!!\210\334\262\364\262\202\302\326\375\"\210\211\203\343\376\377\"\203\325\201O\315\"\262\376\201P\"\203\346\201O\315\"\262\376G\"\204\367\201QC\"\262\201R\201SH\201T\201U\201V\201W&HEFHIJKL\201XW\204[L\201XV\203\250@\201X\203R@\201Y=\203C\211T\262A\211\262\2032A\262\2022\211LW\266\202\203\250\211\201YD@\244\240\266\201Z\201N!\210\201[M\307!	>\204\206\310\311\312D\"\210\201\\H\307!	>\204\232\310\311\312D\"\210\354H?%N\357!\210\202\342\201]C
\203\306\332p!\211\203\301\333\334\"\210\335\334\"\210\326\336!\266\337\340\341#\266\211\201^\326\201_ED@\244\240\266\364\262+\210\202\211\201`=\203\367\201a\334!\202\230\211\201b=\203\357!\210\326\201c!\202\230\211\201d=\203\364\202\230\211\201e=\203#\364\202\230\211\201f=\203/\364\202\230\211\201g=\203;\364\202\230\211\201h=\203K\201a\364!\202\230\211\201i=\204\223\211\201j=\204\223\211\201k=\204\223\211\201l=\204\223\211\201m=\204\223\211\201n>\204\223\211\201o=\204\223\211\201p=\204\223\211\201q=\203\227\364\202\230\364\262\203\211\201^\326\341AED@\244\240\266\202\364\262A\201r=\204\345A\201s=\204\345A\201t=\204\345A\201u=\204\345A\201v=\204\345A\210\203\211\201^\326\341AED@\244\240\266\202\326\201wA#\210\204\357!\210\202\201x \210\201yD
\2035\332p!\211\2030\333\334\"\210\335\334\"\210\326\336!\266\337\340\341#\266~\210eb\210\207" [url-current-object cl-struct-url-tags url-http-process url-callback-arguments url-http-end-of-headers quit-flag url-http-mark-connection-as-free type-of signal wrong-type-argument url 4 5 1 url-scheme-get-property default-port gnutls-available-p gnutls-peer-status plist-get :peer plist-put boundp error "Trying to parse headers in odd buffer: %s" buffer-name "url-http-parse-headers called in (%s)" get-buffer-process set-process-sentinel nil set-process-filter "Transfer interrupted!" apply url-debug http url-http-parse-response mail-narrow-to-head mail-fetch-field "Connection" "1.0" "keep-alive" delete-process "close" 100 "Parsed HTTP headers: class=%d status=%d" 11 url-http-handle-cookies #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (1 308 2 321 3 358 4 743 5 946)) url-mark-buffer-as-dead "HTTP responses in class 1xx not supported (%d)" (reset-content no-content) "GET" url-store-in-cache t "Location" "URI" multiple-choices #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (see-other 379 not-modified 388 use-proxy 445)) "Extracting document from cache... (%s)" url-cache-create-filename url-view-url url-cache-extract "Redirection thru a proxy server not supported: %s" string-match "\\([^ 	]+\\)[ 	]" url-http-response-version url-http-response-status url-http-codes url-http-target-url url-automatic-caching url-http-method url-http-data url-nonrelative-link url-http-extra-headers url-request-extra-headers url-request-data url-request-method url-max-redirections url-callback-function url-redirect-buffer match-string "^<\\(.*\\)>$" url-expand-file-name cl-remove "Authorization" :key car :test equal 0 :redirect make-local-variable url-retrieve-internal 10 "Maximum redirections reached" :error http-redirect-limit unauthorized url-http-handle-authentication payment-required "Somebody wants you to give them money" forbidden not-found method-not-allowed not-acceptable proxy-authentication-required request-timeout conflict gone length-required precondition-failed (request-uri-too-large request-entity-too-large) unsupported-media-type requested-range-not-satisfiable expectation-failed not-implemented bad-gateway service-unavailable gateway-timeout http-version-not-supported "Unknown class of HTTP response code: %d (%d)" url-handle-content-transfer-encoding "Finished parsing HTTP headers: %S"] 14 (#$ . 14859)])
(defalias 'url-handle-content-transfer-encoding #[0 "\300\301!\211\205*\302\303!\205*\303 \205*\211\227\304\232\205*\214~\210eb\210\305\306!\205)\307`d\")\207" [mail-fetch-field "content-encoding" fboundp zlib-available-p "gzip" search-forward "\n\n" zlib-decompress-region] 4])
#@59 Activate callback specified when this buffer was created.
(defalias 'url-http-activate-callback #[0 "\306\307!	>\204\310\311\312D\"\210\313H\307!	>\204#\310\311\312D\"\210\211\314H\206S\307!	>\2048\310\311\312D\"\210\211\315H\205S\316\307!	>\204N\310\311\312D\"\210\315H\317\"\262\n#\210\320\321 \fF
\203x\322p!\211\203s\323\324\"\210\325\324\"\210\326\327!\266\330\331\332#\266\330\f\"\207" [url-current-object cl-struct-url-tags url-http-process url-callback-function url-callback-arguments quit-flag url-http-mark-connection-as-free type-of signal wrong-type-argument url 4 5 1 url-scheme-get-property default-port "Activating callback in buffer (%s): %S %S" buffer-name get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http] 8 (#$ . 20338)])
#@85 Remove (now defunct) process PROC from the list of open connections.

(fn PROC WHY)
(defalias 'url-http-idle-sentinel #[514 "\301\302\303\304\305\306!\307\"\310\311%\"\207" [url-http-open-connections maphash make-byte-code 514 "\300>\205\302\303\300\"	#\207" vconcat vector [url-http-open-connections puthash delq] 7 "\n\n(fn KEY VAL)"] 9 (#$ . 21178)])
#@17 

(fn PROC WHY)
(defalias 'url-http-end-of-document-sentinel #[514 "\306\307!D\203\310p!\211\203\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\321\"\210\322\307!!\205\216r\307!q\210eb\210\323\324!\204\206	\203K\325 \202\215\326 \210\n\f\327
\330
! >\204c\331\332\333
D\"\210
\334H\"!\"#$!\203z\335!!!\336
%&p$,\202\215\337 \205\215\325 )\207" [quit-flag url-http-no-retry url-http-method url-http-extra-headers url-http-data url-current-object "url-http-end-of-document-sentinel in buffer (%s)" process-buffer get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http url-http-idle-sentinel buffer-name looking-at "HTTP/" url-http-activate-callback erase-buffer url-find-proxy-for-url type-of signal wrong-type-argument url 4 url-generic-parse-url url-http url-http-parse-headers cl-struct-url-tags url-using-proxy url-request-data url-request-extra-headers url-request-method url-callback-function url-callback-arguments] 11 (#$ . 21546)])
#@21 

(fn ST ND LENGTH)
(defalias 'url-http-simple-after-change-function #[771 "\300\301\302\303 !\"\207" [url-lazy-message "Reading %s..." file-size-human-readable buffer-size] 7 (#$ . 22595)])
#@231 Function used when we DO know how long the document is going to be.
More sophisticated percentage downloaded, etc.
Also does minimal parsing of HTTP headers and will actually cause
the callback to be triggered.

(fn ST ND LENGTH)
(defalias 'url-http-content-length-after-change-function #[771 "\203#\303\304\305	Z\n\"\306	Z!\306\n!\305	Z\n\"&\210\202<\303\307\305	Z\n\"\306	Z!\306\n!\305	Z\n\"%\210	Z\nV\205T\303\310\211\"\210\311\312!\210\313 \205T\314 \207" [url-http-content-type url-http-end-of-headers url-http-content-length url-display-percentage "Reading [%s]... %s of %s (%d%%)" url-percentage file-size-human-readable "Reading... %s of %s (%d%%)" nil url-lazy-message "Reading... done." url-http-parse-headers url-http-activate-callback] 12 (#$ . 22793)])
#@222 Function used when dealing with chunked encoding.
Cannot give a sophisticated percentage, but we need a different
function to look for the special 0-length chunk that signifies
the end of the document.

(fn ST ND LENGTH)
(defalias 'url-http-chunked-encoding-after-change-function #[771 "\212b\210\306\211\307\211\205	\310U\262\n\203!\311\307\312\n	$\210\202'\311\307\313	#\210\314	\257\203K\315p!\211\203F\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\211\203Z\325\202[\326\262\f\203\301\f
\\V\203\225\327	D\203\206\315p!\211\203\201\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\f
\\b\210\202\301\330\f
\\ZD\203\267\315p!\211\203\262\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\307\262\204\353\331C\203\341\315p!\211\203\334\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\202\n\211\203\363\332\307w\210\333!\204#\334`D\203\315p!\211\203\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\307\262\202\n\335\310\224\310\225\336\306\337\306\340\306\341\342\343\306\257\n#\210\344\345\224\345\225{\346\"	T\f\206H\347 \310\225\307\223\310\224\310\225|\210\350	
\351\f!F\203t\315p!\211\203o\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266
\310U\203\n\352C\203\235\315p!\211\203\230\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\307\262\311\307\211\"\210\333\353!\203\333\354C\203\316\315p!\211\203\311\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\310\224\310\225|\210\355\356\307\306#\203\357C\203\377\315p!\211\203\372\316\307\"\210\317\307\"\210\320\321!\266\322\323\324#\266\360 \203\n\361 \210\202\n)\266\204)\207" [case-fold-search url-http-chunked-counter url-http-content-type quit-flag url-http-chunked-start url-http-chunked-length t nil 0 url-display-percentage "Reading [%s]... chunk #%d" "Reading... chunk #%d" "Reading chunk %d (%d %d %d)" get-buffer-process set-process-sentinel set-process-filter error "Transfer interrupted!" apply url-debug http "\\([0-9a-z]+\\).*
?\n" "
?\n\\([0-9a-z]+\\).*
?\n" "Got to the end of chunk #%d!" "Still need %d bytes to hit end of chunk" "Still spinning for next chunk..." "
\n" looking-at "Did not see start of chunk @ %d!" add-text-properties start-open end-open chunked-encoding face cursor invisible string-to-number 1 16 make-marker "Saw start of chunk %d (length=%d, start=%d" marker-position "Saw end of stream chunk!" "
?\n" "Removing terminator of last chunk" re-search-forward "^
?\n" "Saw end of trailers..." url-http-parse-headers url-http-activate-callback] 20 (#$ . 23583)])
#@21 

(fn ST ND LENGTH)
(defalias 'url-http-wait-for-headers-change-function #[771 "\306\307 D\203\310p!\211\203\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\312\211po\204\300eb\210\321\322!\203F\321\323!\204F\324\262\325\324\262\202\205\326\327\312\324#\203\205\330u\210\331\307 D\203o\310p!\211\203j\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\332 `\312\223\324\262\333 Z\262\203\300\204\251\334 \210\335 \210\336\337!\336\340!\336\341!\203\247\342\336\341!!~\210\n\203\260\n\227
\204\272\343 \210\202\300
\344U\204\306
\345U\203\367\346
\307 E\203\345\310p!\211\203\340\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\347 \203\300\343 \210\202\300:\350\230\203.\351\307 D\203\310p!\211\203\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\347 \203\300\343 \210\202\300:\352\230\203c\353C\203Q\310p!\211\203L\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\347 \203\300\343 \210\202\300
\354\232\203t\347 \203\300\343 \210\202\300\203\241\355C\203\224\310p!\211\203\217\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\356;\202\300\n\357\232\203\360C\203\303\310p!\211\203\276\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\361;	V\203\300\362C\203\357\310p!\211\203\352\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\361\363	!\211	Z#\210\202\300\f\250\203\232\364C\203%\310p!\211\203 \311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\365;\f\325U\203c\366C\203Q\310p!\211\203L\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\347 \203\300\343 \210\202\300	V\203\300\367C\203\205\310p!\211\203\200\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\365\363	!\211	Z#\210\202\300\370C\203\266\310p!\211\203\261\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\356;\371C\203\334\310p!\211\203\327\311\312\"\210\313\312\"\210\314\315!\266\316\317\320#\266\211p=\205\353db\207" [quit-flag url-http-end-of-headers url-http-transfer-encoding url-http-content-type url-http-content-length url-http-response-status "url-http-wait-for-headers-change-function (%s)" buffer-name get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http looking-at ".*\n" "^HTTP/[1-9]\\.[0-9]" t 0 re-search-forward "^
?\n" -1 "Saw end of headers... (%s)" make-marker url-http-clean-headers url-http-parse-response mail-narrow-to-head mail-fetch-field "transfer-encoding" "content-type" "content-length" string-to-number url-http-activate-callback 204 205 "%d response must have headers only (%s)." url-http-parse-headers "HEAD" "HEAD request must have headers only (%s)." "CONNECT" "CONNECT request must have headers only." 304 "Saw HTTP/0.9 response, connection closed means end of document." url-http-simple-after-change-function "chunked" "Saw chunked encoding." url-http-chunked-encoding-after-change-function "Calling initial chunked-encoding for extra data at end of headers" marker-position "Got a content-length, being smart about document end." url-http-content-length-after-change-function "Got 0-length content-length, activating callback immediately." "Calling initial content-length for extra data at end of headers" "No content-length, being dumb." "Spinning waiting for headers..." url-http-method url-http-after-change-function] 11 (#$ . 26233)])
#@824 Retrieve URL via HTTP asynchronously.
URL must be a parsed URL.  See `url-generic-parse-url' for details.

When retrieval is completed, execute the function CALLBACK,
passing it an updated value of CBARGS as arguments.  The first
element in CBARGS should be a plist describing what has happened
so far during the request, as described in the docstring of
`url-retrieve' (if in doubt, specify nil).  The current buffer
then CALLBACK is executed is the retrieval buffer.

Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a
previous `url-http' call, which is being re-attempted.

Optional arg GATEWAY-METHOD specifies the gateway to be used,
overriding the value of `url-gateway-method'.

The return value of this function is the retrieval buffer.

(fn URL CALLBACK CBARGS &optional RETRY-BUFFER GATEWAY-METHOD)
(defalias 'url-http #[1283 "\306!>\204\307\310\311\312E\"\210	\206\313\302!\205\n\314\306!>\2041\307\310\312D\"\210\315H\306!>\204E\307\310\312D\"\210\211\316H\206u\306!>\204Z\307\310\312D\"\210\211\317H\205u\320\306!>\204p\307\310\312D\"\210\317H\321\"\262#
\206\333\322\323\324\306\n!>\204\222\307\310\312\fD\"\210	\315H\n\306!>\204\247\307\310\312D\"\210\211\316H\206\327\306!>\204\274\307\310\312D\"\210\211\317H\205\327\320\306!>\204\322\307\310\312D\"\210\317H\321\"\262#!\204E\325!\210\326\262\327\330\306\n!>\204\371\307\310\312\fD\"\210	\315H\n\306!>\204\307\310\312D\"\210\211\316H\206>\306!>\204#\307\310\312D\"\210\211\317H\205>\320\306!>\2049\307\310\312D\"\210\317H\321\"\262#\210\202Hr\211q\210\331 \210\332,\333\211\203f\211@\334!\326L\210A\266\202\202S\210-\206m\335./0	123\326\21145\336678\3379\f:;\326<=>\340\"\210\341\342\"\210\343!\211\344\267\202\345\346\"\210\202F\327\330\306!>\204\314\307\310\312
D\"\210\n\315H\306!>\204\341\307\310\312D\"\210\211\316H\206\306!>\204\366\307\310\312D\"\210\211\317H\205\320\306!>\204\f\307\310\312D\"\210\317H\321\"\262#\210\202F>\203;\306\f!>\204,\307\310\312\fD\"\210\f\317H\347\230\203;\350!\210\202F\345\351\"\210\352\353 \"\210\210)*\207" [cl-struct-url-tags url-request-noninteractive url-http-noninteractive nsm-noninteractive url-current-object url-mime-accept-string type-of signal wrong-type-argument "Need a pre-parsed URL." url boundp url-http-find-free-connection 4 5 1 url-scheme-get-property default-port generate-new-buffer format " *http %s:%d*" kill-buffer nil error "Could not create connection to %s:%d" mm-disable-multibyte "%b [%s]" (url-http-end-of-headers url-http-content-type url-http-content-length url-http-transfer-encoding url-http-after-change-function url-http-response-version url-http-response-status url-http-chunked-length url-http-chunked-counter url-http-chunked-start url-callback-function url-callback-arguments url-show-status url-http-process url-http-method url-http-extra-headers url-http-noninteractive url-http-data url-http-target-url url-http-no-retry url-http-connection-opened url-mime-accept-string url-http-proxy) make-local-variable "GET" 0 url-http-wait-for-headers-change-function set-process-buffer set-process-filter url-http-generic-filter process-status #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (connect 433 failed 441)) set-process-sentinel url-http-async-sentinel "https" url-https-proxy-connect url-http-end-of-document-sentinel process-send-string url-http-create-request mode-line-format url-request-method url-http-method url-request-extra-headers url-http-extra-headers url-request-data url-http-data url-http-process url-http-chunked-length url-http-chunked-start url-http-chunked-counter url-callback-function url-callback-arguments url-http-after-change-function url-http-target-url url-http-no-retry url-http-connection-opened url-using-proxy url-http-proxy] 19 (#$ . 29719)])
#@19 

(fn CONNECTION)
(defalias 'url-https-proxy-connect #[257 "\304\305\306\307\310	!\n>\204\311\312\313	D\"\210	\314H	\310!\n>\204(\311\312\313D\"\210\211\315H\206X\310!\n>\204=\311\312\313D\"\210\211\316H\205X\317\310!\n>\204S\311\312\313D\"\210\316H\320\"\262\206^\310	!\n>\204m\311\312\313	D\"\210	\314H$\"\207" [url-http-after-change-function url-current-object cl-struct-url-tags url-https-default-port url-https-proxy-after-change-function process-send-string format "CONNECT %s:%d HTTP/1.1
\nHost: %s
\n
\n" type-of signal wrong-type-argument url 4 5 1 url-scheme-get-property default-port] 12 (#$ . 33668)])
#@21 

(fn ST ND LENGTH)
(defalias 'url-https-proxy-after-change-function #[771 "p\306!eb\210\307\310\311\312#\205\313u\210\314 `\311\223\315 \210	\204(\316 \210\317\320!\202	\321U\203\355\322 \203\347\3231\333\3241\316\325\326\327\330\n!>\204N\331\332\333\nD\"\210\n\334H\335\311&\336\330\n!>\204f\331\332\333\nD\"\210\n\334H\n\330!>\204y\331\332\333D\"\210\211\337H\206\251\330!>\204\216\331\332\333D\"\210\211\340H\205\251\341\330!>\204\244\331\332\333D\"\210\340H\342\"\262#\262rq\210\343 \210)\344\"\210\345\346\347\"\210\350\351 \"\26200\2020\316 \210\317\352\"\262\202\316 \210\317\353\"\262\202\317\354!\202\355	D
\203\n\306p!\211\203\356\311\"\210\346\311\"\210\317\357!\266\360\361\362#\266\316 \207" [url-http-end-of-headers url-http-response-status url-current-object cl-struct-url-tags url-http-after-change-function quit-flag get-buffer-process re-search-forward "^
?\n" nil t -1 make-marker url-http-parse-response url-http-activate-callback error "Malformed response from proxy, fail!" 200 gnutls-available-p (error) (gnutls-error) gnutls-negotiate :process :hostname type-of signal wrong-type-argument url 4 :verify-error nsm-verify-connection 5 1 url-scheme-get-property default-port erase-buffer set-process-buffer url-http-wait-for-headers-change-function set-process-filter url-http-generic-filter process-send-string url-http-create-request "gnutls-error: %s" "error: %s" "error: gnutls support needed!" "error response: %d" set-process-sentinel "Transfer interrupted!" apply url-debug http] 15 (#$ . 34308)])
#@17 

(fn PROC WHY)
(defalias 'url-http-async-sentinel #[514 "\306\307!!\205\327r\307!q\210\203\310\311\"\202\326\211\312\313O\314\230\203_\310\n\203G\315!\f>\2049\316\317\320D\"\210\321H\322\230\203G\323!\202\326\3241T\325\326 \"0\202\326\327\330\331\"\262\202\326
\211\332\333\334\335\315\n\206l!\f>\204}\316\317\320\n\206zD\"\210\n\206\202\313H\336\n\206\212\315!\f>\204\231\316\317\320D\"\210\211\337H\206\311\315!\f>\204\256\316\317\320D\"\210\211\321H\205\311\340\315!\f>\204\304\316\317\320D\"\210\321H\341\"\262\257D
@\244\240\266\342 )\207" [url-http-connection-opened url-http-no-retry url-http-proxy url-current-object cl-struct-url-tags url-callback-arguments buffer-name process-buffer t url-http-end-of-document-sentinel 0 4 "open" type-of signal wrong-type-argument url 1 "https" url-https-proxy-connect (file-error) process-send-string url-http-create-request nil message "HTTP error: %s" :error error connection-failed :host :service 5 url-scheme-get-property default-port url-http-activate-callback] 17 (#$ . 35903)])
#@18 

(fn PROC DATA)
(defalias 'url-http-generic-filter #[514 "\302!\205F\211G\303U?\205Fr\302!q\210\304E	\2032\305p!\211\203-\306\307\"\210\310\307\"\210\311\312!\266\313\314\315#\266ddb\210c\210dG#)\207" [url-http-after-change-function quit-flag process-buffer 0 "Calling after change function `%s' for `%S'" get-buffer-process set-process-sentinel nil set-process-filter error "Transfer interrupted!" apply url-debug http] 7 (#$ . 36993)])
(byte-code "\300\301\302\303!\203\f\303\202
\304\"\207" [defalias url-http-symbol-value-in-buffer fboundp symbol-value-in-buffer #[770 "rq\210\300!\204\211\202J)\207" [boundp] 5 "Return the value of SYMBOL in BUFFER, or UNBOUND-VALUE if it is unbound.\n\n(fn SYMBOL BUFFER &optional UNBOUND-VALUE)"]] 4)
#@12 

(fn URL)
(defalias 'url-http-head #[257 "\302\303\304!*\207" [url-request-data url-request-method "HEAD" nil url-retrieve-synchronously] 3 (#$ . 37767)])
#@12 

(fn URL)
(defalias 'url-http-file-exists-p #[257 "\300!\211\205 \301\302\303#\211\250\205\211\304Y\205\211\305W\306!\210\262\207" [url-http-head url-http-symbol-value-in-buffer url-http-response-status 500 200 300 kill-buffer] 6 (#$ . 37932)])
(defalias 'url-http-file-readable-p 'url-http-file-exists-p)
#@32 

(fn URL &optional ID-FORMAT)
(defalias 'url-http-head-file-attributes #[513 "\300!\211\205\301\302\303\211\301\211\211\304\305	\306#\307\301\211\211\257\f\310!\210\207" [url-http-head nil 1 0 url-http-symbol-value-in-buffer url-http-content-length -1 "----------" kill-buffer] 15 (#$ . 38254)])
#@32 

(fn URL &optional ID-FORMAT)
(defalias 'url-http-file-attributes #[513 "\300!\203\301\"\207\302\"\207" [url-dav-supported-p url-dav-file-attributes url-http-head-file-attributes] 5 (#$ . 38562)])
#@687 Return a property list describing options available for URL.
This list is retrieved using the `OPTIONS' HTTP method.

Property list members:

methods
  A list of symbols specifying what HTTP methods the resource
  supports.

dav
  A list of numbers specifying what DAV protocol/schema versions are
  supported.

dasl
  A list of supported DASL search types supported (string form)

ranges
  A list of the units available for use in partial document fetches.

p3p
  The `Platform For Privacy Protection' description for the resource.
  Currently this is just the raw header contents.  This is likely to
  change once P3P is formally supported by the URL package or
  Emacs/W3.

(fn URL)
(defalias 'url-http-options #[257 "\302\303\304!\303\211\203\241\305\306\307#\310\245\311U\203\241rq\210\214\312 \313\307\314\315\316!\317\"\320$\216\321 \210\322\323!\211\262\203F\324\325\326\327\330\331\"\"#\262\322\332!\211\262\203`\324\333\334\307\326\335\330\n\336\"\"\"#\262\322\337!\211\262\203t\324\340\330\336\"#\262\322\341!\211\262\203\204\324\342#\262\322\343!\211\262\203\236\324\344\334\345\326\327\330\n\336\"\"\"#\262)\210*\203\251\346!\210*\207" [url-request-method url-request-data "OPTIONS" nil url-retrieve-synchronously url-http-symbol-value-in-buffer url-http-response-status 0 100 2 match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 mail-narrow-to-head mail-fetch-field "allow" plist-put methods mapcar intern split-string "[ ,]+" "dav" dav delq string-to-number "[, ]+" "dasl" dasl "p3p" p3p "accept-ranges" ranges none kill-buffer] 15 (#$ . 38774)])
(require 'tls)
#@36 HTTPS retrievals are asynchronous.
(defconst url-https-asynchronous-p t (#$ . 40436))
(defalias 'url-https-expand-file-name 'url-default-expander)
#@20 

(fn METHOD ARGS)
(defalias 'url-https-create-secure-wrapper '(macro . #[514 "\300\301\302\203\303\202\f\304\"!\302\305\206\306\"\301\302\203$\307\202%\306\"!\310\311\310\312\313\n\f?\2057\314\"\"\"B\257\207" [defun intern format "url-https-%s" "url-https" "HTTPS wrapper around `%s' call." "url-http" "url-http-%s" remove &rest &optional append (nil 'tls)] 14 (#$ . 40589)]))
#@65 HTTPS wrapper around `url-http' call.

(fn URL CALLBACK CBARGS)
(defalias 'url-https #[771 "\300\301\302%\207" [url-http nil tls] 9 (#$ . 40993)])
#@54 HTTPS wrapper around `file-exists-p' call.

(fn URL)
(defalias 'url-https-file-exists-p #[257 "\300!\207" [url-http-file-exists-p] 3 (#$ . 41149)])
#@56 HTTPS wrapper around `file-readable-p' call.

(fn URL)
(defalias 'url-https-file-readable-p #[257 "\300!\207" [url-http-file-readable-p] 3 (#$ . 41304)])
#@76 HTTPS wrapper around `file-attributes' call.

(fn URL &optional ID-FORMAT)
(defalias 'url-https-file-attributes #[513 "\300\"\207" [url-http-file-attributes] 5 (#$ . 41465)])
(provide 'url-http)