;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:51:02 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/gnus/mm-decode.el
;;; in Emacs version 23.4.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!\204 \302\301\303\"\210\304\305!\210\304\306!\210\304\307!\210\304\310!\210\311\312\313\"\210\311\314\315\"\210\311\316\315\"\210\311\317\320\"\210\321\322\323\"\210\324\325\326\327\330\331\332\333\334\335\334\336\334\337&\210\324\340\326\341\330\342\334\335\334\336\334\337&\207" [fboundp declare-function defalias (macro . #[(&rest r) "\300\207" [nil] 1]) require mail-parse mailcap mm-bodies gnus-util autoload mm-inline-partial "mm-partial" mm-inline-external-body "mm-extern" mm-extern-cache-contents mm-insert-inline "mm-view" add-hook gnus-exit-gnus-hook mm-destroy-postponed-undisplay-list custom-declare-group mime-display nil "Display of MIME in mail and news articles." :link (custom-manual "(emacs-mime)Display Customization") :version "21.1" :group mail news multimedia mime-security "MIME security in mail and news articles." (custom-manual "(emacs-mime)Display Customization")] 14)
(defalias 'mm-handle-buffer '(macro . #[(handle) "\301\302E\207" [handle nth 0] 3]))
(defalias 'mm-handle-type '(macro . #[(handle) "\301\302E\207" [handle nth 1] 3]))
(defalias 'mm-handle-media-type #[(handle) "@;\203	 @\207A@@\207" [handle] 1])
(put 'mm-handle-media-type 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-media-supertype #[(handle) "\301\211@;\203 @\202 A@@)\302\"@\207" [handle split-string "/"] 4])
(put 'mm-handle-media-supertype 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-media-subtype #[(handle) "\302\211@;\203 @\202 A@@)\303\"\211A@)\207" [handle x split-string "/"] 4])
(put 'mm-handle-media-subtype 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-encoding '(macro . #[(handle) "\301\302E\207" [handle nth 2] 3]))
(defalias 'mm-handle-undisplayer '(macro . #[(handle) "\301\302E\207" [handle nth 3] 3]))
(defalias 'mm-handle-set-undisplayer '(macro . #[(handle function) "\302\303\304E	E\207" [handle function setcar nthcdr 3] 4]))
(defalias 'mm-handle-disposition '(macro . #[(handle) "\301\302E\207" [handle nth 4] 3]))
(defalias 'mm-handle-description '(macro . #[(handle) "\301\302E\207" [handle nth 5] 3]))
(defalias 'mm-handle-cache '(macro . #[(handle) "\301\302E\207" [handle nth 6] 3]))
(defalias 'mm-handle-set-cache '(macro . #[(handle contents) "\302\303\304E	E\207" [handle contents setcar nthcdr 6] 4]))
(defalias 'mm-handle-id '(macro . #[(handle) "\301\302E\207" [handle nth 7] 3]))
(defalias 'mm-handle-multipart-original-buffer '(macro . #[(handle) "\301\302\303\304DF\207" [handle get-text-property 0 'buffer car] 5]))
(defalias 'mm-handle-multipart-from '(macro . #[(handle) "\301\302\303\304DF\207" [handle get-text-property 0 'from car] 5]))
(defalias 'mm-handle-multipart-ctl-parameter '(macro . #[(handle parameter) "\302\303\304	DF\207" [parameter handle get-text-property 0 car] 5]))
(defalias 'mm-make-handle '(macro . #[(&optional buffer type encoding undisplayer disposition description cache id) "\306	\n\f\257	\207" [buffer type encoding undisplayer disposition description list cache id] 9]))
#@314 Render of HTML contents.
It is one of defined renderer types, or a rendering function.
The defined renderer types are:
`w3m'  : use emacs-w3m;
`w3m-standalone': use w3m;
`links': use links;
`lynx' : use lynx;
`w3'   : use Emacs/W3;
`html2text' : use html2text;
nil    : use external viewer (default web browser).
(custom-declare-variable 'mm-text-html-renderer '(cond ((executable-find "w3m") (if (locate-library "w3m") 'w3m 'w3m-standalone)) ((executable-find "links") 'links) ((executable-find "lynx") 'lynx) ((locate-library "w3") 'w3) ((locate-library "html2text") 'html2text) (t nil)) '(#$ . 3611) :version "23.0" :type '(choice (const w3) (const w3m :tag "emacs-w3m") (const w3m-standalone :tag "standalone w3m") (const links) (const lynx) (const html2text) (const nil :tag "External viewer") (function)) :group 'mime-display)
#@113 Function used for rendering inline HTML contents.
It is suggested to customize `mm-text-html-renderer' instead.
(defvar mm-inline-text-html-renderer nil (#$ . 4451))
#@187 If non-nil, Gnus will allow retrieving images in HTML contents with
the <img> tags.  It has no effect on Emacs/w3.  See also the
documentation for the `mm-w3m-safe-url-regexp' variable.
(custom-declare-variable 'mm-inline-text-html-with-images 'nil '(#$ . 4624) :version "22.1" :type 'boolean :group 'mime-display)
#@728 Regexp matching URLs which are considered to be safe.
Some HTML mails might contain a nasty trick used by spammers, using
the <img> tag which is far more evil than the [Click Here!] button.
It is most likely intended to check whether the ominous spam mail has
reached your eyes or not, in which case the spammer knows for sure
that your email address is valid.  It is done by embedding an
identifier string into a URL that you might automatically retrieve
when displaying the image.  The default value is "\\`cid:" which only
matches parts embedded to the Multipart/Related type MIME contents and
Gnus will never connect to the spammer's site arbitrarily.  You may
set this variable to nil if you consider all urls to be safe.
(custom-declare-variable 'mm-w3m-safe-url-regexp '"\\`cid:" '(#$ . 4946) :version "22.1" :type '(choice (regexp :tag "Regexp") (const :tag "All URLs are safe" nil)) :group 'mime-display)
#@63 If non-nil, use emacs-w3m command keys in the article buffer.
(custom-declare-variable 'mm-inline-text-html-with-w3m-keymap 't '(#$ . 5866) :version "22.1" :type 'boolean :group 'mime-display)
#@255 Indicate whether external MIME handlers should be used.

If t, all defined external MIME handlers are used.  If nil, files are saved by
`mailcap-save-binary-file'.  If it is the symbol `ask', you are prompted
before the external MIME handler is invoked.
(custom-declare-variable 'mm-enable-external 't '(#$ . 6066) :version "22.1" :type '(choice (const :tag "Always" t) (const :tag "Never" nil) (const :tag "Ask" ask)) :group 'mime-display)
#@74 Alist of media types/tests saying whether types can be displayed inline.
(custom-declare-variable 'mm-inline-media-tests ''(("image/p?jpeg" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'jpeg handle))) ("image/png" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'png handle))) ("image/gif" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'gif handle))) ("image/tiff" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'tiff handle))) ("image/xbm" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xbm handle))) ("image/x-xbitmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xbm handle))) ("image/xpm" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xpm handle))) ("image/x-xpixmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xpm handle))) ("image/bmp" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'bmp handle))) ("image/x-portable-bitmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'pbm handle))) ("text/plain" mm-inline-text identity) ("text/enriched" mm-inline-text identity) ("text/richtext" mm-inline-text identity) ("text/x-patch" mm-display-patch-inline (lambda (handle) (fboundp 'diff-mode))) ("text/x-diff" mm-display-patch-inline (lambda (handle) (fboundp 'diff-mode))) ("application/emacs-lisp" mm-display-elisp-inline identity) ("application/x-emacs-lisp" mm-display-elisp-inline identity) ("text/dns" mm-display-dns-inline identity) ("text/html" mm-inline-text-html (lambda (handle) (or mm-inline-text-html-renderer mm-text-html-renderer))) ("text/x-vcard" mm-inline-text-vcard (lambda (handle) (or (featurep 'vcard) (locate-library "vcard")))) ("message/delivery-status" mm-inline-text identity) ("message/rfc822" mm-inline-message identity) ("message/partial" mm-inline-partial identity) ("message/external-body" mm-inline-external-body identity) ("text/.*" mm-inline-text identity) ("audio/wav" mm-inline-audio (lambda (handle) (and (or (featurep 'nas-sound) (featurep 'native-sound)) (device-sound-enabled-p)))) ("audio/au" mm-inline-audio (lambda (handle) (and (or (featurep 'nas-sound) (featurep 'native-sound)) (device-sound-enabled-p)))) ("application/pgp-signature" ignore identity) ("application/x-pkcs7-signature" ignore identity) ("application/pkcs7-signature" ignore identity) ("application/x-pkcs7-mime" ignore identity) ("application/pkcs7-mime" ignore identity) ("multipart/alternative" ignore identity) ("multipart/mixed" ignore identity) ("multipart/related" ignore identity) ("audio/.*" ignore ignore) ("image/.*" ignore ignore) (".*" mm-inline-text mm-readable-p)) '(#$ . 6513) :type '(repeat (list (regexp :tag "MIME type") (function :tag "Display function") (function :tag "Display test"))) :group 'mime-display)
#@135 List of media types that are to be displayed inline.
See also `mm-inline-media-tests', which says how to display a media
type inline.
(custom-declare-variable 'mm-inlined-types ''("image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp") '(#$ . 9296) :type '(repeat regexp) :group 'mime-display)
#@106 List of media types for which the external viewer will not be killed
when selecting a different article.
(custom-declare-variable 'mm-keep-viewer-alive-types ''("application/postscript" "application/msword" "application/vnd.ms-excel" "application/pdf" "application/x-dvi") '(#$ . 9860) :version "22.1" :type '(repeat regexp) :group 'mime-display)
#@53 A list of MIME types to be displayed automatically.
(custom-declare-variable 'mm-automatic-display ''("text/plain" "text/enriched" "text/richtext" "text/html" "text/x-verbatim" "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "text/dns" "application/pgp-signature" "application/emacs-lisp" "application/x-emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp\\'") '(#$ . 10213) :type '(repeat regexp) :group 'mime-display)
#@69 Types to have "attachment" ignored if they can be displayed inline.
(custom-declare-variable 'mm-attachment-override-types ''("text/x-vcard" "application/pkcs7-mime" "application/x-pkcs7-mime" "application/pkcs7-signature" "application/x-pkcs7-signature") '(#$ . 10781) :type '(repeat regexp) :group 'mime-display)
#@74 Types to be treated as attachments even if they can be displayed inline.
(custom-declare-variable 'mm-inline-override-types 'nil '(#$ . 11102) :type '(repeat regexp) :group 'mime-display)
#@76 List of MIME type regexps that will be displayed externally automatically.
(custom-declare-variable 'mm-automatic-external-display 'nil '(#$ . 11296) :type '(repeat regexp) :group 'mime-display)
#@726 List of MIME types that are discouraged when viewing multipart/alternative.
Viewing agents are supposed to view the last possible part of a message,
as that is supposed to be the richest.  However, users may prefer other
types instead, and this list says what types are most unwanted.  If,
for instance, text/html parts are very unwanted, and text/richtext are
somewhat unwanted, then the value of this variable should be set
to:

 ("text/html" "text/richtext")

Adding "image/.*" might also be useful.  Spammers use it as the
prefered part of multipart/alternative messages.  See also
`gnus-buttonized-mime-types', to which adding "multipart/alternative"
enables you to choose manually one of two types those mails include.
(custom-declare-variable 'mm-discouraged-alternatives 'nil '(#$ . 11498) :type '(repeat regexp) :group 'mime-display)
#@42 Where mm will store its temporary files.
(custom-declare-variable 'mm-tmp-directory '(if (fboundp 'temp-directory) (temp-directory) (if (boundp 'temporary-file-directory) temporary-file-directory "/tmp/")) '(#$ . 12347) :type 'directory :group 'mime-display)
#@48 If non-nil, then all images fit in the buffer.
(custom-declare-variable 'mm-inline-large-images 'nil '(#$ . 12612) :type 'boolean :group 'mime-display)
#@462 List of functions used for rewriting file names of MIME parts.
Each function takes a file name as input and returns a file name.

Ready-made functions include `mm-file-name-delete-control',
`mm-file-name-delete-gotchas' (you should not remove these two
functions), `mm-file-name-delete-whitespace',
`mm-file-name-trim-whitespace', `mm-file-name-collapse-whitespace',
`mm-file-name-replace-whitespace', `capitalize', `downcase',
`upcase', and `upcase-initials'.
(custom-declare-variable 'mm-file-name-rewrite-functions ''(mm-file-name-delete-control mm-file-name-delete-gotchas) '(#$ . 12771) :type '(list (set :inline t (const mm-file-name-delete-control) (const mm-file-name-delete-gotchas) (const mm-file-name-delete-whitespace) (const mm-file-name-trim-whitespace) (const mm-file-name-collapse-whitespace) (const mm-file-name-replace-whitespace) (const capitalize) (const downcase) (const upcase) (const upcase-initials) (repeat :inline t :tag "Function" function))) :version "23.1" :group 'mime-display)
#@295 *List of functions for rewriting the full file names of MIME parts.
This is used when viewing parts externally, and is meant for
transforming the absolute name so that non-compliant programs can find
the file where it's saved.

Each function takes a file name as input and returns a file name.
(defvar mm-path-name-rewrite-functions nil (#$ . -13786))
#@68 String used for replacing whitespace characters; default is `"_"'.
(defvar mm-file-name-replace-whitespace nil (#$ . 14144))
#@95 The default directory where mm will save files.
If not set, `default-directory' will be used.
(custom-declare-variable 'mm-default-directory 'nil '(#$ . 14275) :type '(choice directory (const :tag "Default" nil)) :group 'mime-display)
#@57 Set the mode bits of saved attachments to this integer.
(custom-declare-variable 'mm-attachment-file-modes '384 '(#$ . 14516) :version "22.1" :type 'integer :group 'mime-display)
#@44 The program to start an external terminal.
(custom-declare-variable 'mm-external-terminal-program '"xterm" '(#$ . 14701) :version "22.1" :type 'string :group 'mime-display)
(byte-code "\301B\302\301!\204 \303\301\304\"\210\305B\302\305!\204 \303\305\306\"\210\307B\302\307!\204- \303\307\306\"\210\310B\302\310!\204< \303\310\311\"\210\312\313\314\"\210\312\315\314\"\210\312\316\317\"\210\312\320\317\"\210\321B\302\321!\204_ \303\321\322\"\210\306\207" [current-load-list mm-last-shell-command default-boundp set-default "" mm-content-id-alist nil mm-postponed-undisplay-list mm-dissect-default-type "text/plain" autoload mml2015-verify "mml2015" mml2015-verify-test mml-smime-verify "mml-smime" mml-smime-verify-test mm-verify-function-alist (("application/pgp-signature" mml2015-verify "PGP" mml2015-verify-test) ("application/x-gnus-pgp-signature" mm-uu-pgp-signed-extract-1 "PGP" mm-uu-pgp-signed-test) ("application/pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test) ("application/x-pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test))] 3)
#@276 Option of verifying signed parts.
`never', not verify; `always', always verify;
`known', only verify known protocols.  Otherwise, ask user.

When set to `always' or `known', you should add
"multipart/signed" to `gnus-buttonized-mime-types' to see
result of the verification.
(custom-declare-variable 'mm-verify-option ''never '(#$ . 15796) :version "22.1" :type '(choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group 'mime-security)
(byte-code "\301\302\303\"\210\301\304\303\"\210\305B\306\305!\204 \307\305\310\"\210\301\207" [current-load-list autoload mml2015-decrypt "mml2015" mml2015-decrypt-test mm-decrypt-function-alist default-boundp set-default (("application/pgp-encrypted" mml2015-decrypt "PGP" mml2015-decrypt-test) ("application/x-gnus-pgp-encrypted" mm-uu-pgp-encrypted-extract-1 "PGP" mm-uu-pgp-encrypted-test))] 3)
#@148 Option of decrypting encrypted parts.
`never', not decrypt; `always', always decrypt;
`known', only decrypt known protocols.  Otherwise, ask user.
(custom-declare-variable 'mm-decrypt-option 'nil '(#$ . 16691) :version "22.1" :type '(choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group 'mime-security)
#@42 Keymap for input viewer with completion.
(defvar mm-viewer-completion-map (byte-code "\302\303!\304	\"\210\305\306\307#\210)\207" [map minibuffer-local-completion-map make-sparse-keymap mm-viewer-completion-map set-keymap-parent define-key " " self-insert-command] 4) (#$ . 17052))
#@42 Keymap for input viewer with completion.
(defvar mm-viewer-completion-map (byte-code "\302\303!\304	\"\210\305\306\307#\210)\207" [map minibuffer-local-completion-map make-sparse-keymap mm-viewer-completion-map set-keymap-parent define-key " " self-insert-command] 4) (#$ . 17344))
#@240 Convert association list ALIST into the equivalent property-list form.
The plist is returned.  This converts from

((a . 1) (b . 2) (c . 3))

into

(a 1 b 2 c 3)

The original alist is not modified.  See also `destructive-alist-to-plist'.
(defalias 'mm-alist-to-plist #[(alist) "\303	\203 	@\211A\n@BB)	A\211\204 \237)\207" [plist alist el nil] 4 (#$ . 17637)])
#@59 Say whether external viewer for HANDLE should stay alive.
(defalias 'mm-keep-viewer-alive-p #[(handle) "	\211@;\203 	@\202 	A@@)\305\306\307\215+\207" [mm-keep-viewer-alive-types handle ty type types nil found (byte-code "\211A@\211\205 \303	\n\"\203  \304\305\306\"\210\202  \207" [types ty type string-match throw found t] 3)] 4 (#$ . 18013)])
#@121 Set the undisplayer for HANDLE to FUNCTION.
Postpone undisplaying of viewers for types in
`mm-keep-viewer-alive-types'.
(defalias 'mm-handle-set-external-undisplayer #[(handle function) "\304!\203 \305!\306	\233\n\240\210\306\233\307\240\210	B\211)\207\306\233\n\240\207" [handle new-handle function mm-postponed-undisplay-list mm-keep-viewer-alive-p copy-sequence 3 nil] 2 (#$ . 18377)])
(defalias 'mm-destroy-postponed-undisplay-list #[nil "\205 \301\302!\210\303!\207" [mm-postponed-undisplay-list message "Destroying external MIME viewers" mm-destroy-parts] 2])
#@63 Dissect the current buffer and return a list of MIME handles.
(defalias 'mm-dissect-buffer #[(&optional no-strict-mime loose-mime from) "\212\306\211\211\211\211\211\211\211\211+,-\214\307 \210.\204* /\204* \310\311!\203l \310\312!\211-\2057 \313-!,\310\314!\310\315!\316\317!\310\320!%\204S \310\321!%%\203d \322%!\2110A@)%\n\203l \323\n!),\203{ \324\325,@\"\204\227 \3261C\f\205\211 \327\330\f!\227!.\205\222 \331!\n%\2023\332,@\325\"\211+\2110A@)+@\211+\333\232\203\373 \334\232\203\274 \335\202\275 \336\337,A\236A1\340\341,@G\342,A!,@$\210\340\341,@G\343\344 \345%\337\257,@$\210,@\346,%\"*B\202\347\326,\f\205	\327\330\f!\227!.\205\331!\n	&,\"	\2032\324\350	\"\203*\351\352	\"	B2B2.\n\207" [result id description cd cte subtype nil mail-narrow-to-head mail-fetch-field "mime-version" "content-type" mail-header-parse-content-type "content-transfer-encoding" "content-disposition" message-fetch-field "content-description" "content-id" "from" mail-extract-address-components mail-decode-encoded-word-string string-match "/" mm-dissect-singlepart intern mail-header-strip mail-header-parse-content-disposition split-string "multipart" "digest" "message/rfc822" "text/plain" start add-text-properties 0 mm-alist-to-plist buffer mm-copy-to-buffer from mm-dissect-multipart mm-possibly-verify-or-decrypt " *<\\(.*\\)> *" match-string 1 type ctl ct no-strict-mime loose-mime x mm-dissect-default-type mm-content-id-alist] 10 (#$ . 18960)])
(defalias 'mm-dissect-singlepart #[(ctl cte &optional force cdl description id) "\204 	@\306\232\203 \307\310	\"\202 \311\205! \312 	\n\313\f\313\257\207" [force ctl cte cdl description id "text/plain" assoc format t mm-copy-to-buffer nil] 8])
(defalias 'mm-dissect-multipart #[(ctl from) "eb\210\306\307\301\"P\310	!\311P\312\211\212db\210\313\n\312\314#\203% \315\224\202& d)\310	!\316P`W\203f \317	\314#\203f \315\224b\210\203U \212\214`}\210\320\314\312#C\f\244*\321\210\322	!\204a \323y\210`\202. \203\201 W\203\201 \212\214}\210\320\314\312#C\f\244*\324\f\237\"-\207" [ctl boundary close-delimiter start parts end "\n--" mail-content-type-get regexp-quote "--[ 	]*$" nil re-search-backward t 0 "[ 	]*$" re-search-forward mm-dissect-buffer 2 looking-at 1 mm-possibly-verify-or-decrypt from] 5])
#@60 Copy the contents of the current buffer to a fresh buffer.
(defalias 'mm-copy-to-buffer #[nil "p\303 \304eb\210\305\306\304\307#\210`r\310\311!q\210\312	!\210\313\n\"\210p,\207" [beg mb obuf mm-multibyte-p nil search-forward-regexp "^\n" t generate-new-buffer " *mm*" mm-set-buffer-multibyte insert-buffer-substring] 4 (#$ . 21312)])
(defalias 'mm-display-parts #[(handle &optional no-default) "@;\203\f \301\302A\"\207\303@!\203  \214``}\210\304!\210db)\207\301\302\"\207" [handle mapcar mm-display-parts bufferp mm-display-part] 3])
#@142 Display the MIME part represented by HANDLE.
Returns nil if the part is removed; inline if displayed inline;
external if displayed external.
(defalias 'mm-display-part #[(handle &optional no-default) "\212\306 \210\307!\203 \310!\202\347 \211@;\203 @\202! A@@)\311\232\2037 \3128\2041 \313!\210\3128\2028 \211\211@;\203F @\202J A@@)\314\n!\315\3168\304\"\206c \315A@\317\"\206c \320'\321	!\203~ \322	!\203~ \323y\210\324!\210\325\202\346 \204\210 (?\205\346 \204\244 \326\n\327\"@\330\232\203\244 \323y\210\331\332!\"\210\325\202\346 \205\321 ;\205\321 \333=\206\321 \334=\205\321 \335\336\n\337;\203\314 \340\341\f\"\342Q\202\315 \343\344\260!\211'\203\342 \345\206\336 \346\"\202\346 \345\346\"-)\207" [handle ehandle type method filename mm-enable-external mailcap-parse-mailcaps mm-handle-displayed-p mm-remove-part "message/external-body" 6 mm-extern-cache-contents mailcap-mime-info mail-content-type-get 4 name "<file>" mm-inlinable-p mm-inlined-p 1 mm-display-inline inline split-string "/" "text" mm-insert-inline mm-get-part t ask y-or-n-p "Display part (" ") using external program" " \"" format "\"" "" "? " mm-display-external mailcap-save-binary-file external no-default] 9 (#$ . 21864)])
#@30 Display HANDLE using METHOD.
(defalias 'mm-display-external #[(handle method) "p\306\307!r	q\210\310\216\311 \210\312\n!\203\211 p\n\313=\203' \306\314!q\210\315\202C \316\f!\210\317\f!\210\320\321\"\211\203< \322!\210)\323\306\314!!\210\324 \210\325@!\210\326!\210eb\210\n\203[ \327\330\n\"\210p\331\332\f\211@;\203k \f@\202o \fA@@)\321\"\236A\333\216\n\203\202 \n \202\205 \334\f!,\202\316\f!\210\317\f!\210\335\336\337B\"\340\" \341\342\f8\343\"\206\252 \341\fA@\344\"#\332\f\211@;\203\272 \f@\202\276 \fA@@)\321\"C\345\346C\"\206\320 \345\347C\"D\345\350C\"E\315\211FG\351 \352\"\210#\203\373 \336\353H\354#!\" \"F\202?\345\355C\"A\211I\203\356\357I\"\203\360\361I\"I\2022\362\f\211@;\203'\f@\202+\fA@@)J\"@I\335\336\363 \"\315I#F)@K\364edF\315\365%\210)\351F\366\"\210\327\330\n\"\210D\203\336\367\nF\fA@#L\370\216M\203\200\371\372\315N\373OPL&\210\202\316\374\375!\210\374\376!\210\377\201V O\315PL%\211Gq\210\201W  \210\201X  \210\201Y \201Z G!\201[ \201\\ \201] \201^ \201_ \201` QDDEE\"\210\201_ \201a !\210)\327\201b L\"\210)\201c \202E\203)rq\210\361y\210\201d \f\201e \216\201f O\315\306\314!\211G\315P\367\nF\fA@#&\210\201g G!\205rGq\210\201h  ))\"\210)\201i \202\367\nF\fA@#L\201j \216\371\372\306\314!\211GOPL%\210\201Y \201Z G!\201k \201l !\201k \201m !\201k \201n !\201k \201o !RST\211U\201[ \315\201p \315\201q FD\201r BBB\201p \315\201s \201t F!D\201u BBBFL\210T\201v \201w GD\201x \201y \201` \fD\315E!EL\210S\201z \201{ L\"L\210R\201| \201} \315\201~ #L\210\201[ \201 \201\200 \201\201 \201` RD\201` SD\201` TD\201` UD\201\202 \257E,\"\210)\327\201b L\"\210)\201c .,\207" [outbuf #1=#:temp-buffer method cur handle win generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte functionp mailcap-save-binary-file " *mm*" nil mm-insert-part mm-add-meta-html-tag get-buffer-window t select-window switch-to-buffer buffer-disable-undo mm-set-buffer-file-coding-system insert-buffer-substring message "Viewing with %s" non-viewer mailcap-mime-info ((byte-code "\204 	\203 \304\n\233\240\210\304\207" [non-viewer method handle mm 3] 2)) mm-save-part mm-make-temp-file expand-file-name "emm." dir mail-content-type-get 4 filename name assoc "needsterm" "needsterminal" "copiousoutput" set-file-modes 448 gnus-map-function file-name-nondirectory "nametemplate" string-match "\\`%s\\(\\..+\\)\\'" match-string 1 rassoc "mm." write-region nomesg 256 mm-mailcap-command ((byte-code "\303	\nB\"\207" [handle file buffer mm-handle-set-external-undisplayer] 4)) start-process "*display*" "-e" require term gnus-win make-term mm-binary-coding-system mm mm-tmp-directory mime-info needsterm copiousoutput file buffer mm-file-name-rewrite-functions suffix mailcap-mime-extensions coding-system-for-write command window-system mm-external-terminal-program shell-file-name shell-command-switch gnus-current-window-configuration #2=#:--cl-timer-- #3=#:--cl-done-- #4=#:--cl-fm-- #5=#:--cl-fn-- "display" term-mode term-char-mode set-process-sentinel get-buffer-process lambda (process state) if (eq 'exit (process-status process)) gnus-configure-windows quote display-term "Displaying %s..." external mm-insert-inline ((byte-code "\300\301\302\217\210\300\303\304\217\210\300\305\306\217\207" [nil (delete-file file) ((error)) (byte-code "\301\302!!\207" [file delete-directory file-name-directory] 3) ((error)) (kill-buffer buffer) ((error))] 3)) call-process buffer-live-p buffer-string inline ((byte-code "\303	\nB\"\207" [handle file buffer mm-handle-set-external-undisplayer] 4)) make-symbol "--fn--" "--fm--" "--done--" "--timer--" condition-case delete-file ((error)) delete-directory file-name-directory ((error)) progn kill-buffer macroexpand mm-handle-set-undisplayer format "Displaying %s...done" run-at-time 2.0 ignore (&rest --cl-rest--) apply #[(#6=#:G47004 #7=#:G47005 #8=#:G47006 #9=#:G47007 process state) "\305!\306=\205' 	J\n>\203 \307	JJ\"\210\202 J \210\310\311\312\217\210\313\314\fJ\"\207" [process #6# timer-list #9# #7# process-status exit timer-set-function nil (byte-code "\301J!\207" [#8# eval] 2) ((error)) message "%s"] 3] --cl-rest--] 13 (#$ . 23113)])
(defalias 'mm-mailcap-command #[(method file type-list) "A\306\307\310\211\211\311\312#\203\201 \306\224OB\306\225\313\306\"\313\314\"	\315\230\203< \316B\202 	\317\230\204N 	\320\230\204N 	\321\230\203^ \310\322\323\"!B\202 	\324\230\203n \322@!B\202 \322\325\n!\236A\206z \326!B\202 GOB\f\203\236 \327B\322\323\"!B\330\331\237\326#.\207" [type-list total sub out uses-stdin beg 0 t nil string-match "%{\\([^}]+\\)}\\|'%s'\\|\"%s\"\\|%s\\|%t\\|%%" match-string 1 "%%" "%" "%s" "'%s'" "\"%s\"" shell-quote-argument gnus-map-function "%t" intern "" "<" mapconcat identity ctl method mm-path-name-rewrite-functions file] 6])
#@57 Remove the displayed MIME parts represented by HANDLES.
(defalias 'mm-remove-parts #[(handles) "<\203 \302@!\203 \303!\207\304\211A@\211\205P 	;\2036 \305\306\307\310	#!\203 \311\306\307\310	#!\210\202 	<\203I 	@;\203I \312	A!\210\202 \303	!\210\202 )\207" [handles handle bufferp mm-remove-part nil buffer-live-p get-text-property 0 buffer kill-buffer mm-remove-parts] 5 (#$ . 28090)])
#@57 Remove the displayed MIME parts represented by HANDLES.
(defalias 'mm-destroy-parts #[(handles) "<\203 \302@!\203 \303!\207\304\211A@\211\205O 	;\2036 \305\306\307\310	#!\203 \311\306\307\310	#!\210\202 	<\203H 	@;\203H \312	!\210\202 \303	!\210\202 )\207" [handles handle bufferp mm-destroy-part nil buffer-live-p get-text-property 0 buffer kill-buffer mm-destroy-parts] 5 (#$ . 28496)])
#@55 Remove the displayed MIME part represented by HANDLE.
(defalias 'mm-remove-part #[(handle) "<\205 \3028\303\304\305\217\210\302\233\303\240)\207" [handle object 3 nil (byte-code "\301!\204N \302!\204 <\203 @\303=\203  \210\202N :\203> \304\305\306\217\210\304\307\310\217\210\311\312!\210\304\313\314\217\210\304\315\316\217\210\202N \317!\203N \320!\203N \321!\210\304\207" [object mm-annotationp functionp lambda nil (byte-code "\301A!\203 \302\301A!!\210\303\304!\210\305\306!\210\202  \301\207" [object get-buffer-process interrupt-process message "Waiting for external displayer to die..." sit-for 1] 3) ((quit) (error)) (byte-code "A\203\n \301A!\210\301\207" [object kill-buffer] 2) ((error)) message "Waiting for external displayer to die...done" (byte-code "\301@!\207" [object delete-file] 2) ((error)) (byte-code "\301\302@!!\207" [object delete-directory file-name-directory] 3) ((error)) bufferp buffer-live-p kill-buffer] 3) ((error))] 3 (#$ . 28904)])
(defalias 'mm-display-inline #[(handle) "\211@;\203 @\202 A@@)\305\n	\"\211A@)\211!\210eb*\207" [handle type mm-inline-media-tests x function mm-assoc-string-match] 4])
(defalias 'mm-assoc-string-match #[(alist type) "\300\301\215\207" [--cl-block-nil-- (byte-code "\304\211\203 \n@\305	@\"\203 \306\307	\"\210\nA\211\204 *\304\207" [alist elem #1=#:--cl-dolist-temp-- type nil string-match throw --cl-block-nil--] 4)] 2])
#@66 Say whether the user wants HANDLE to be displayed automatically.
(defalias 'mm-automatic-display-p #[(handle) "	\211@;\203 	@\202 	A@@)\306\211\211A@\211\2038 \307	!\204 \310\f\"\203 \311\306\211\202 \n,\207" [mm-automatic-display handle result method type methods nil mm-inline-override-p string-match t] 5 (#$ . 30343)])
#@122 Say whether HANDLE can be displayed inline.
TYPE is the mime-type of the object; it defaults to the one given
in HANDLE.
(defalias 'mm-inlinable-p #[(handle &optional type) "\204 	\211@;\203 	@\202 	A@@)\n\306\f\203C \307\f\211@@)\"\203: \f\211@A)A@\306	!\f\211A@\210\202 *\207" [type handle mm-inline-media-tests test alist x nil string-match] 4 (#$ . 30690)])
#@59 Say whether the user wants HANDLE to be displayed inline.
(defalias 'mm-inlined-p #[(handle) "	\211@;\203 	@\202 	A@@)\306\211\211A@\211\2038 \307	!\204 \310\f\"\203 \311\306\211\202 \n,\207" [mm-inlined-types handle result method type methods nil mm-inline-override-p string-match t] 5 (#$ . 31076)])
#@64 Say whether HANDLE should have attachment behavior overridden.
(defalias 'mm-attachment-override-p #[(handle) "	\211@;\203 	@\202 	A@@)\305\306\307\215+\207" [mm-attachment-override-types handle ty type types nil found (byte-code "\211A@\211\205 \304	\n\"\203  \305!\203  \306\307\310\"\210\202  \207" [types ty type handle string-match mm-inlinable-p throw found t] 3)] 4 (#$ . 31401)])
#@60 Say whether HANDLE should have inline behavior overridden.
(defalias 'mm-inline-override-p #[(handle) "	\211@;\203 	@\202 	A@@)\305\306\307\215+\207" [mm-inline-override-types handle ty type types nil found (byte-code "\211A@\211\205 \303	\n\"\203  \304\305\306\"\210\202  \207" [types ty type string-match throw found t] 3)] 4 (#$ . 31807)])
#@42 Return the user-defined method for TYPE.
(defalias 'mm-automatic-external-display-p #[(type) "\305\211\211A@\211\203 \306\n\f\"\203 \307\305\211\202 	+\207" [mm-automatic-external-display result method methods type nil string-match t] 4 (#$ . 32167)])
#@50 Destroy the data structures connected to HANDLE.
(defalias 'mm-destroy-part #[(handle) "<\205 \301!\210\302@!\205 \303@!\207" [handle mm-remove-part buffer-live-p kill-buffer] 2 (#$ . 32437)])
#@41 Say whether HANDLE is displayed or not.
(defalias 'mm-handle-displayed-p #[(handle) "\3018\207" [handle 3] 2 (#$ . 32642)])
#@65 Run FORMS in the temp buffer containing the contents of HANDLE.
(defalias 'mm-with-part '(macro . #[(handle &rest forms) "\302\300DC\303\304\305\306	BBBBE\207" [handle forms let* with-temp-buffer (mm-disable-multibyte) (insert-buffer-substring (mm-handle-buffer handle)) (mm-decode-content-transfer-encoding (mm-handle-encoding handle) (mm-handle-media-type handle))] 7 (#$ . 32773)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put mm-with-part lisp-indent-function 1 edebug-form-spec (body)] 4)
#@129 Return the contents of HANDLE as a string.
If NO-CACHE is non-nil, cached contents of a message/external-body part
are ignored.
(defalias 'mm-get-part #[(handle &optional no-cache) "\2040 	\211@;\203 	@\202 	A@@)\303\232\2030 \304	8\204% \305	!\210r\304	8@q\210\306 )\207	\307\310!r\nq\210\311\216\312 \210\313	@!\210\314\315	8	\211@;\203U 	@\202Y 	A@@)\"\210\306 ,\207" [no-cache handle #1=#:temp-buffer "message/external-body" 6 mm-extern-cache-contents buffer-string generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte insert-buffer-substring mm-decode-content-transfer-encoding 2] 4 (#$ . 33292)])
#@139 Insert the contents of HANDLE in the current buffer.
If NO-CACHE is non-nil, cached contents of a message/external-body part
are ignored.
(defalias 'mm-insert-part #[(handle &optional no-cache) "\303A@\304\"\305=\203 r@q\210\306 )\202( \307 \203$ \310\311	\"!\202( \311	\"\214~\210`\312e`S]\313\"\314=\203K \312\315\313\n#\314=\203K \316\n\261\210\202N \nc\210b*\207" [handle no-cache text mail-content-type-get charset gnus-decoded buffer-string mm-multibyte-p mm-string-to-multibyte mm-get-part get-char-property face mm-uu-extract 0 "\n"] 5 (#$ . 33987)])
#@50 Remove all whitespace characters from FILE-NAME.
(defalias 'mm-file-name-delete-whitespace #[(file-name) "\301\302\"\203 \303\304\305\211$\202  \207" [file-name string-match "\\s-+" replace-match "" t] 5 (#$ . 34559)])
#@67 Remove leading and trailing whitespace characters from FILE-NAME.
(defalias 'mm-file-name-trim-whitespace #[(file-name) "\301\302\"\203 \303\225\304O\301\305\"\203 \303\211\224O\207" [file-name string-match "\\`\\s-+" 0 nil "\\s-+\\'"] 3 (#$ . 34789)])
#@55 Collapse multiple whitespace characters in FILE-NAME.
(defalias 'mm-file-name-collapse-whitespace #[(file-name) "\301\302\"\203 \303\304\305\211$\202  \207" [file-name string-match "\\s-\\s-+" replace-match " " t] 5 (#$ . 35057)])
#@163 Replace whitespace characters in FILE-NAME with underscores.
Set the option `mm-file-name-replace-whitespace' to any other
string if you do not like underscores.
(defalias 'mm-file-name-replace-whitespace #[(file-name) "\206 \303\304\305\n\"\203 \306	\307\211\n$\202 )\n\207" [mm-file-name-replace-whitespace s file-name "_" string-match "\\s-" replace-match t] 5 (#$ . 35300)])
#@42 Delete control characters from FILENAME.
(defalias 'mm-file-name-delete-control #[(filename) "\301\302\303#\207" [filename gnus-replace-in-string "[ -]" ""] 4 (#$ . 35691)])
#@37 Delete shell gotchas from FILENAME.
(defalias 'mm-file-name-delete-gotchas #[(filename) "\301\302\303#\301\304\303#\207" [filename gnus-replace-in-string "[<>|]" "" "^[.-]+"] 4 (#$ . 35874)])
#@92 Write HANDLE to a file.
PROMPT overrides the default one used to ask user for a file name.
(defalias 'mm-save-part #[(handle &optional prompt) "\306\3078\302\"\206 \306A@\310\"\311\211\203 \312\313\n!\"\314\f\206# \315\206) \311\211\n\2060 \316%\317	!\320	!\203E \321\322\323	\"!\205K \324	\"\210	*\207" [handle file filename mm-file-name-rewrite-functions prompt mm-default-directory mail-content-type-get 4 name nil gnus-map-function file-name-nondirectory read-file-name "Save MIME part to: " "" file-name-directory file-exists-p yes-or-no-p format "File %s already exists; overwrite? " mm-save-part-to-file default-directory] 7 (#$ . 36075)])
#@225 Add meta html tag to specify CHARSET of HANDLE in the current buffer.
CHARSET defaults to the one HANDLE specifies.  Existing meta tag that
specifies charset will not be modified.  Return t if meta tag is added
or replaced.
(defalias 'mm-add-meta-html-tag #[(handle &optional charset) "\211@;\203 @\202 A@@)\303\232\205m 	\204& \304A@\301\"\211\205m \305\306	\"\307eb\210\310\311\312\307#\203O \313\224\205C \314\315\316\317!\"?\205l \320	!\210\307\202l \310\321\312\307#\203_ 	\322\261\210\202k \310\323\312\307#\210\324	\325\261\210\307)\207" [handle charset case-fold-search "text/html" mail-content-type-get format "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">" t re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\(\\sw+\\)\\(?:;\\s-*charset=\\(.+\\)\\)?[\"'][^>]*>" nil 2 string-match "\\`html\\'" match-string 1 replace-match "<head>\\s-*" "\n" "<html\\(?:\\s-+[^>]+\\|\\s-*\\)>\\s-*" "<head>\n" "\n</head>\n"] 5 (#$ . 36743)])
(defalias 'mm-save-part-to-file #[(handle file) "\305\306!rq\210\307\216\310 \210\311	!\210\312	!\210\313 \314!\210\315\216\316ed\f\317\211\211\320\321&-\207" [#1=#:temp-buffer handle current-file-modes mm-attachment-file-modes file generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part mm-add-meta-html-tag default-file-modes set-default-file-modes ((set-default-file-modes current-file-modes)) mm-write-region nil binary t] 9])
#@27 Pipe HANDLE to a process.
(defalias 'mm-pipe-part #[(handle) "\306A@\301\"\307\310\n\"\311\312!r\fq\210\313\216\314 \210\315!\210\316!\210\317\320ed\321$.\207" [handle name mm-last-shell-command command #1=#:temp-buffer coding-system-for-write mail-content-type-get gnus-read-shell-command "Shell command on MIME part: " generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part mm-add-meta-html-tag binary shell-command-on-region nil] 5 (#$ . 38285)])
#@30 Display HANDLE using METHOD.
(defalias 'mm-interactively-view-part #[(handle) "\211@;\203 @\202 A@@)\306\307\310	\311\"\"\312\313\n\")\211\314\230\203- \315\316!\210\317\320\"\2038 \321P\322\"+\207" [handle type methods mm-viewer-completion-map minibuffer-local-completion-map method mapcar #[(i) "\301\302\"AC\207" [i assoc viewer] 3] mailcap-mime-info all completing-read "Viewer: " "" error "No method given" string-match "^[^% 	]+$" " %s" mm-display-external] 6 (#$ . 38841)])
#@37 Say which of HANDLES are preferred.
(defalias 'mm-preferred-alternative #[(handles &optional preferred) "\203	 C\202\f \306	!\307\211\211\211\211\f\f\211A\f@\211\203t 	\203 @\211\211@;\203< \n@\202@ \nA@@)\232\203k \310\n!\203k \n@;\204d \311\n8\203d \311\n8@\312\232\203k \n\307\211\f\211A@\210\202( \f.\207" [preferred handles handle type result h mm-preferred-alternative-precedence nil mm-automatic-display-p 4 "inline" p prec] 7 (#$ . 39345)])
#@75 Return the precedence based on HANDLES and `mm-discouraged-alternatives'.
(defalias 'mm-preferred-alternative-precedence #[(handles) "\306\307\"\237\310\n!\311\211\203B \f@\312	!\311\211\203: @\313\"\2031 \314	\"C\244A\211\204 *\fA\211\204 *	)\207" [handles seq mm-discouraged-alternatives disc #1=#:--cl-dolist-temp-- elem mapcar mm-handle-media-type reverse nil copy-sequence string-match delete #2=#:--cl-dolist-temp--] 5 (#$ . 39829)])
#@41 Return the handle(s) referred to by ID.
(defalias 'mm-get-content-id #[(id) "\302	\"A\207" [id mm-content-id-alist assoc] 3 (#$ . 40298)])
#@169 Alist of (REGEXP . IMAGE-TYPE) pairs used to auto-detect image types.
When the first bytes of an image file match REGEXP, it is assumed to
be of image type IMAGE-TYPE.
(defconst mm-image-type-regexps '(("/\\*.*XPM.\\*/" . xpm) ("P[1-6]" . pbm) ("GIF8" . gif) ("\377\330" . jpeg) ("\211PNG\n" . png) ("#define" . xbm) ("\\(MM \\*\\)\\|\\(II\\* \\)" . tiff) ("%!PS" . postscript)) (#$ . 40445))
#@140 Determine the image type from data in the current buffer.
Value is a symbol specifying the image type or nil if type cannot
be determined.
(defalias 'mm-image-type-from-buffer #[nil "\305eb\210\n\203& 	\204& \n@@\n@A\306\f!\203 \nA*\202 	*\207" [mm-image-type-regexps type types image-type regexp nil looking-at] 2 (#$ . 40846)])
#@43 Return an image instance based on HANDLE.
(defalias 'mm-get-image #[(handle) "\305\211@;\203 @\202 A@@)\306\"\211A@*\307\211\310\232\203) \311\202> \312\232\2033 \313\202> \314\232\203= \315\202> \3168\206c \317\320!r\fq\210\321\216\322 \210\323!\210\307\324\325\217\211\316\233\n\240\210+*\207" [handle x spec type #1=#:temp-buffer split-string "/" nil "x-pixmap" "xpm" "x-xbitmap" "xbm" "x-portable-bitmap" "pbm" 6 generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part (byte-code "\301\302!\203 \302\303 \304 \206 \305!\306#\207\307!\207" [type fboundp create-image buffer-string mm-image-type-from-buffer intern data-p mm-create-image-xemacs] 4) ((error))] 5 (#$ . 41192)])
(defalias 'mm-create-image-xemacs #[(type) "\300\207" [nil] 1])
#@62 Say whether the image in HANDLE will fit the current window.
(defalias 'mm-image-fit-p #[(handle) "\306!\211?\206$ \307	!\211@\nA\206# \f\310 SX\205# \311 X+)\207" [handle image size w h mm-inline-large-images mm-get-image image-size window-height window-width] 3 (#$ . 42055)])
#@56 Say whether FORMAT can be displayed natively by Emacs.
(defalias 'mm-valid-image-format-p #[(format) "\301\302!\203\n \302!\207\301\303!\203 \304 \205 \303!\207\305\207" [format fboundp valid-image-instantiator-format-p image-type-available-p display-graphic-p nil] 2 (#$ . 42347)])
#@74 Say whether FORMAT can be displayed natively and HANDLE fits the window.
(defalias 'mm-valid-and-fit-image-p #[(format handle) "\302!\205	 \303	!\207" [format handle mm-valid-image-format-p mm-image-fit-p] 2 (#$ . 42640)])
#@115 Search in HANDLES for part with TYPE.
If NOTP, returns first non-matching part.
If RECURSIVE, search recursively.
(defalias 'mm-find-part-by-type #[(handles type &optional notp recursive) "\306	\203j \n\203) 	\211@@);\203) \307	\211@A)\f\n$\211\203c \306\202c \203F 	@\211@;\203; @\202? A@@)\f\232?\202[ 	@\211@;\203T @\202X A@@)\f\232\203c 	@\306	A\211\204 )\207" [handle handles recursive x type notp nil mm-find-part-by-type] 6 (#$ . 42871)])
(defalias 'mm-find-raw-part-by-type #[(ctl type &optional notp) "eb\210\306\307\310\301@#P\311\312	!\313Q\314\212db\210\315\n\314\316#\203& \310\224\202' d)\314\311\312	!\317Q\204~ \320	\f\316#\203~ \310\224b\210\203v \212\214`S}\210\321\322!\211\205Z \323!\203i @\232?\202n @\232*\203u \324 *\325y\210`\2022 \204\265 \203\265 \212\214\f}\210\321\322!\211\205\231 \323!\203\250 @\232?\202\255 @\232*\203\264 \324 *-\207" [ctl boundary close-delimiter start end result "--" get-text-property 0 "^" regexp-quote "--[ 	]*$" nil re-search-backward t "[ 	]*$" re-search-forward mail-fetch-field "content-type" mail-header-parse-content-type buffer-string 1 ct notp type] 6])
(byte-code "\301B\302\301!\204 \303\301\304\"\210\304\207" [current-load-list mm-security-handle default-boundp set-default nil] 3)
(defalias 'mm-set-handle-multipart-parameter #[(handle parameter value) "\205 \303\304@G	\n@%\207" [handle parameter value put-text-property 0] 6])
(byte-code "\300\301\302\303#\210\304\305\306\"\207" [put mm-set-handle-multipart-parameter byte-optimizer byte-compile-inline-expand autoload mm-view-pkcs7 "mm-view"] 4)
(defalias 'mm-possibly-verify-or-decrypt #[(parts ctl) "@\306@\307\"\211A@)\310\211\211'\211(\311\232\204% (\312\232\203^ \313\314!)r)q\210\315\216*\316=\204Z *\317=\204N *\320=\204N \321\322\323!!\203Z \324+!\203Z \325\326!++\202'\327\232\2037\330\331\304@#\211\203v \f\332\232\203\271 ,\211-\203\270 \333-@8\211\203\220 \n+\"\203\257 \334+-\211@@)\310\326$\203\257 -\211@@)\310\211-\202{ -A\211-\204~ )\335\f,\"A@.\316=\204.\317=\204.\320=\203\356 \203\333\335\f,\"8\211\203\n+\"\202\321\322\336\337\335\f,\"8\206\377 \322\340\f\"\"!\203\212\203+\"+\2023\341\322\342\f\"/0\2111\2032\343\3311@G0/1@%\210+)\202'\344\232\203\330\331\304@#\211\204\230+\211+\203\227\335+@\2111@;\203c1@\202h1A@@)2\"\203\216+@\2111@;\203\2001@\202\2051A@@)\310\211+\202N+A\211+\204Q)\335\f2\"A@*\316=\204*\317=\204\343*\320=\203\315\203\333\335\f2\"8\211\203\343\n+\"\202\340\321\322\345\337\335\f2\"8\206\336\322\340\f\"\"!\203\212\203\362+\"+\202\341\322\346\f\"/0\2111\203\343\3311@G0/1@%\210+)+.\207" [ctl x functest func protocol mm-security-handle split-string "/" nil "application/x-pkcs7-mime" "application/pkcs7-mime" generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) never always known y-or-n-p format "Decrypt (S/MIME) part? " mm-view-pkcs7 mm-dissect-buffer t "signed" get-text-property 0 "multipart/mixed" 3 mm-find-part-by-type assoc "Verify signed (%s) part? " 2 "protocol=%s" gnus-details "Unknown sign protocol (%s)" put-text-property "encrypted" "Decrypt (%s) part? " "Unknown encrypt protocol (%s)" subtype type #1# mm-decrypt-option parts mm-verify-function-alist protocols mm-verify-option value parameter handle mm-decrypt-function-alist] 8])
(defalias 'mm-multiple-handles #[(handles) "<\205 G\301V\205 @<\206 @;\207" [handles 1] 2])
(defalias 'mm-complicated-handles #[(handles) "@<\205\n G\301V\207" [handles 1] 2])
(defalias 'mm-merge-handles #[(handles1 handles2) "\302@<\203 \202 C	@<\203 	\202 	C\"\207" [handles1 handles2 append] 3])
#@48 Say whether the content of HANDLE is readable.
(defalias 'mm-readable-p #[(handle) "r@q\210\302 )\303W\205* \304\305!r	q\210\306\216\307 \210\310!\210\311 \312=\205) \313\314!?+\207" [handle #1=#:temp-buffer buffer-size 10000 generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte mm-insert-part mm-body-7-or-8 7bit mm-long-lines-p 76] 2 (#$ . 46697)])
(provide 'mm-decode)
