bitmap-mule-200308250433/BITMAP-CFG0100644000227700000120000000256007236532672014277 0ustar yamaoka;;; -*-Emacs-Lisp-*- ;; BITMAP-CFG: installation setting about BITMAP-MULE. ;;; Code: (defvar default-load-path load-path) (require 'poe);; Pickup `add-to-list' for old mule. (add-to-list 'load-path (expand-file-name "../../site-lisp/apel" data-directory)) (if (boundp 'LISPDIR) (progn (add-to-list 'default-load-path LISPDIR) (add-to-list 'load-path LISPDIR) (add-to-list 'load-path (expand-file-name "apel" LISPDIR)))) (if (boundp 'VERSION_SPECIFIC_LISPDIR) (add-to-list 'load-path VERSION_SPECIFIC_LISPDIR)) (require 'install) (add-latest-path "custom") (add-path default-directory) ;;; @ Please specify prefix of install directory. ;;; ;; Please specify install path prefix. ;; If it is omitted, shared directory (maybe /usr/local is used). (defvar PREFIX install-prefix) ;;(setq PREFIX "~/") ;; Please specify prefix for ``BITMAP-MULE'' [optional] (setq BITMAP_PREFIX "bitmap") ;;; @ optional settings ;;; ;; It is generated by automatically. Please set variable `PREFIX'. ;; If you don't like default directory tree, please set it. (defvar LISPDIR (install-detect-elisp-directory PREFIX)) ;; (setq install-default-elisp-directory "~/lib/emacs/lisp") (defvar VERSION_SPECIFIC_LISPDIR (install-detect-elisp-directory PREFIX nil 'version-specific)) (setq BITMAP_DIR (expand-file-name BITMAP_PREFIX LISPDIR)) ;;; BITMAP-CFG ends here bitmap-mule-200308250433/BITMAP-ELS0100644000227700000120000000140507077030167014313 0ustar yamaoka;;; -*-Emacs-Lisp-*- ;; BITMAP-ELS: list of bitmap-mule modules to install (setq bitmap-modules (if (featurep 'mule) (if (featurep 'xemacs) nil (append (if (and (fboundp 'set-buffer-multibyte) (subrp (symbol-function 'set-buffer-multibyte))) '(bitmap-ci) '(bitmap-bi)) '(bitmap x-face-mule smiley-mule po) (if (>= emacs-major-version 19) '(bm-utils gnus-bitmap vm-bitmap) '(x-face-18)))))) (setq bitmap-modules-to-compile (copy-sequence bitmap-modules)) (or (<= emacs-major-version 18) (module-installed-p 'vm-macro) (module-installed-p 'vm/vm-macro) (module-installed-p 'vm-misc) (module-installed-p 'vm/vm-misc) (delq 'vm-bitmap bitmap-modules-to-compile)) ;;; BITMAP-ELS ends here bitmap-mule-200308250433/BITMAP-MK0100644000227700000120000000231207130512604014164 0ustar yamaoka;;; -*-Emacs-Lisp-*- ;; BITMAP-MK: installer for bitmap-mule. ;;; Code: (defun config-bitmap () (let (prefix lisp-dir version-specific-lisp-dir) (and (setq prefix (car command-line-args-left)) (or (string-equal "NONE" prefix) (defvar PREFIX prefix))) (setq command-line-args-left (cdr command-line-args-left)) (and (setq lisp-dir (car command-line-args-left)) (or (string-equal "NONE" lisp-dir) (defvar LISPDIR lisp-dir))) (setq command-line-args-left (cdr command-line-args-left)) (and (setq version-specific-lisp-dir (car command-line-args-left)) (or (string-equal "NONE" version-specific-lisp-dir) (progn (defvar VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir) (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n" VERSION_SPECIFIC_LISPDIR))))) (setq command-line-args-left (cdr command-line-args-left))) (load-file "BITMAP-CFG") (load-file "BITMAP-ELS") (princ (format "PREFIX=%s\nLISPDIR=%s\n" PREFIX LISPDIR))) (defun compile-bitmap () (config-bitmap) (compile-elisp-modules bitmap-modules-to-compile ".")) (defun install-bitmap () (config-bitmap) (install-elisp-modules bitmap-modules "./" BITMAP_DIR)) ;;; BITMAP-MK ends here bitmap-mule-200308250433/ChangeLog0100644000227700000120000007004307722310422014541 0ustar yamaoka2003-08-25 Katsumi Yamaoka * gnus-bitmap.el (gnus-treat-display-x-face): Bind it when compiling. (gnus-bitmap-redefine): Modify the value for the `gnus-treat-display-x-face' variable as well as `g-t-d-xface'. 2002-11-10 TAKAHASHI Kaoru * x-face-mule.el (Commentary): Add setting for Wanderlust 2.7.0 and later. 2001-12-21 Katsumi Yamaoka * BITMAP-MULE: Version 8.5 was released. 2001-12-19 Katsumi Yamaoka * x-face-mule.el (x-face-mule-view-cache): New command. (x-face-mule-save-cache-file): Don't inhibit to work with Emacs 21; don't use `prin1-to-string' for X-Face images. (x-face-mule-load-cache-file): Make it can load a cache file using Emacs 21 as well. 2001-12-18 Katsumi Yamaoka * bitmap-ci.el (defining the charset `bitmap'): Set the preferred coding-system of `bitmap' to `iso-2022-7bit'; advise the functions `find-charset-string' and `find-charset-region' to replace the altered charset to `bitmap' in the return value if the altered charset is used; don't invalidate the altered charset; call `update-coding-systems-internal' after defining the charset `bitmap' for the existing Emacs 21.1; ignore `bitmap-alterable-charset' when Emacs 21+ is running. * emacs-21.1-composite.patch: New file. 2001-09-20 Katsumi Yamaoka * x-face-mule.el (bbdb-change-records-state-and-redisplay): Advice it not to show X-Face images if BBDB records are made elided. (bbdb-elide-record-internal): Ditto. (bbdb-elide-all-records-internal): Ditto. (bbdb-display-records-1): Be silent if `x-face-mule-BBDB-verbose' is nil. (x-face-mule-BBDB-one-record): Use overlays instead of text properties to highlight X-Face images; modify a position to show X-Face images; iconify raw X-Face data instead of to hide them. (x-face-mule-BBDB-buffer): Simplify. (x-face-mule-BBDB-verbose): New variable. (x-face-mule-BBDB-icon): New variable. (x-face-mule-BBDB-display): Modify the default value to `t' or nil, not a string. (x-face-mule-highlight-header): Use `x-face-mule-overlay-put'. (x-face-mule-x-face-decode-message-header-1, x-face-mule-analyze-x-face-type, x-face-mule-x-face-allocate-lines, x-face-mule-convert-icon-to-rectangle, x-face-mule-convert-vector-to-rectangle): Don't use `incf' or `decf'. (x-face-mule-convert-x-face-to-rectangle): Use `car' and `cdr' instead of `cadr'. (x-face-mule-overlay-put): New macro. (x-face-mule-most-positive-fixnum): New constant. 2001-09-10 Katsumi Yamaoka * x-face-mule.el (bbdb-display-records-1): Don't call `x-face-mule-BBDB-one-record'. (x-face-mule-BBDB-one-record): Rewrite to make it work with BBDB v2.33 and later. (x-face-mule-BBDB-buffer): Ditto. 2001-08-31 Katsumi Yamaoka * bitmap-ci.el (TopLevel): Don't use `dolist'. (bitmap-use-alterable-charset-anyway): New variable; if it is non-nil, use `bitmap-alterable-charset' for a substitute for the charset `bitmap' unconditionally. 2001-05-31 Katsumi Yamaoka * x-face-mule.el: Add a comment that the setting (put 'face 'field-separator "\n") is needed for collecting X-Face fields using BBDB. 2001-04-13 Katsumi Yamaoka * BITMAP-MULE: Version 8.4 was released. 2001-02-23 Katsumi Yamaoka * bitmap-ci.el: Require `poem' instead of `emu'. * bitmap-bi.el: Ditto. 2001-02-16 Tatsuya Yagi * gnus-pointer.xbm: "gnus-pointer" -> "gnus_pointer". 2001-02-15 Katsumi Yamaoka * bitmap-ci.el: Remove elements from `global-fontset-alist' whose `car' is `eq' to the value of `bitmap-alterable-charset' if it is requisitioned. 2001-02-15 Katsumi Yamaoka * bitmap-ci.el: Use `declare-equiv-charset' for the charset `bitmap' when `bitmap-alterable-charset' is requisitioned. (cf. [mule-ja:07991]) 2001-02-07 Katsumi Yamaoka * font/bitmap16.el: Fix the author and the copyright holder. (generate-bitmap-bdf-font): Don't generate space patterns. It is suggested by Tatsuya Yagi . 2001-02-02 Katsumi Yamaoka * font/bmp16-etl.bdf: Remove. Instead, the font file for 8x16 bitmap will be generated by `make'. * font/bitmap16.el: New file. * font/Makefile: Rename bmpH-etl.bdf to bitmapH.bdf. (bitmap16.bdf): New rule for generating 8x16 bitmap font file. (EMACS): New variable. * bitmap-ci.el: Replace "-etl-" with "-*-" in XLFD forms. * bitmap-bi.el: Ditto. 2001-01-31 Katsumi Yamaoka * font/Makefile: Rename etlWxH-bitmap.bdf to bmpH-etl.bdf. * font/bmp16-etl.bdf: Imported from intlfonts-1.2. * font/etl8x16-bitmap.bdf: Remove. 2001-01-30 Katsumi Yamaoka * bitmap-ci.el: Attempt to divert `bitmap-alterable-charset' to the charset `bitmap' when there is no room for a new private charset. (bitmap-alterable-charset): New variable. 2000-12-15 Katsumi Yamaoka * x-face-mule.el (x-face-mule-BBDB-one-record): Fix a bug in `while' loop. (x-face-mule-convert-x-face-to-bitmap): Treat the return value of `bitmap-compose' as a vector, not a list. 2000-12-14 Katsumi Yamaoka * x-face-mule.el (x-face-mule-BBDB-one-record): Don't use `mapcar'. (x-face-mule-x-face-decode-message-header): Remove obsolete alias. (x-face-mule-highlight-header): Make overlays evaporatable. (x-face-mule-convert-x-face-to-bitmap): Don't use `mapcar'. (TopLevel): Don't use `mapcar' for adding the function `x-face-mule-save-cache-file' to some hooks. (x-face-mule-load-cache-file): Don't use `mapcar'. (TopLevel): Don't use `mapcar' for binding non-existent functions. * bm-utils.el (bitmap-string-to-special-symbols): Use `dolist' instead of `mapcar'. (bitmap-load-average-data): Ditto. * bitmap-ci.el (TopLevel): Remove the redundancy in the setting of fontset fonts. * bitmap-bi.el: Ditto. * bitmap-ci.el (fontset-pixel-size): No need to redefine it for Emacs 21, remove. 2000-12-13 Katsumi Yamaoka * smiley-mule.el (smiley-face-bitmap-list): Use `bitmap-compose' with the optional arg instead of `bitmap-recompose'. * bitmap.el (bitmap-recompose): Remove. * bitmap-ci.el (bitmap-compose): Allow the optional arg `rotation'. (bitmap-rotate-string, bitmap-pad-string): New macros. (bitmap-space): New variable. (TopLevel): Don't use `mapcar' to set fontset fonts. (TopLevel): Don't make new charset if it already exists. * bitmap-bi.el: Ditto. 2000-10-05 Katsumi Yamaoka * bm-utils.el (bitmap-progress-backgrounds): Remove variable. (bitmap-progress-data): Ditto. 2000-10-04 Katsumi Yamaoka * bitmap.el: Autoload "bm-utils" for `progress-feedback-with-label' as well as `lprogress-display'; make obsolete the old one. * bm-utils.el (lprogress-display): Make obsolete. (bitmap-progress-feedback-with-label): Rename from `bitmap-lprogress-display' (bitmap-progress-backgrounds): Rename from `bitmap-lprogress-backgrounds' (bitmap-progress-data): Rename from `bitmap-lprogress-data'. (bitmap-progress-feedback-use-clear-bar): Rename from `bitmap-lprogress-diaplay-use-clear-bar'. (bitmap-progress-backgrounds-for-opaque-bar): Rename from `bitmap-lprogress-backgrounds-for-opaque-bar'. (bitmap-progress-data-for-opaque-bar): Rename from `bitmap-lprogress-data-for-opaque-bar'. (bitmap-progress-backgrounds-for-clear-bar): Rename from `bitmap-lprogress-backgrounds-for-clear-bar'. (bitmap-progress-data-for-clear-bar): Rename from `bitmap-lprogress-data-for-clear-bar'. (bitmap-progress-feedback-textual): Rename from `bitmap-lprogress-display-textual'. 2000-09-21 Katsumi Yamaoka * bitmap.el (bitmap-recompose): To work with Mule 2.3 or Emacs 21 as well. 2000-09-21 Katsumi Yamaoka * smiley-mule.el (smiley-encode-buffer): Do nothing with text properties. (smiley-buffer): Don't add any text properties. (smiley-face-bitmap-list): Use `bitmap-recompose'. * bm-utils.el (bitmap-lprogress-backgrounds): Don't refer to the variable `bitmap-lprogress-backgrounds'. (bitmap-lprogress-data): Don't refer to `bitmap-lprogress-data'. (bitmap-lprogress-backgrounds, bitmap-lprogress-data): Remove. * bitmap.el (bitmap-recompose): New function. 2000-09-20 Hideyuki SHIRAI * smiley-mule.el (smiley-buffer): Put on `invisible' and `smiley-text' properties to original face text instead of removing. (smiley-encode-buffer): If exist `smiley-text' property on original face text, remove its properties. 2000-09-19 Katsumi Yamaoka * smiley-mule.el (smiley-encode-buffer): Check for a text property first. (smiley-buffer): Save the original text as a text property as well. 2000-07-26 Katsumi Yamaoka * x-face-mule.el (Commentary): Note that some settings are needed for the use of the recent EMY, EMIKO or REMI. 2000-07-05 Katsumi Yamaoka * x-face-mule.el (x-face-mule-save-cache-file, x-face-mule-load-cache-file): Don't use them under Emacs 21+. * bm-utils.el (bitmap-lprogress-diaplay-use-clear-bar): Use `bitmap-make-string' instead of `make-string' for composite string. (bitmap-string-to-special-symbols): Don't use `mapconcat' for composite string. (bitmap-lprogress-backgrounds-for-opaque-bar, bitmap-lprogress-backgrounds-for-clear-bar): Don't convert composite string to char. * bitmap.el (bitmap-make-string): New function. * bitmap-ci.el (fontset-pixel-size): Redefine the function when Emacs 21+ is used. * README.en, NEWS: Take back an announcement about FSF Emacs 21+. 2000-05-31 Katsumi Yamaoka * x-face-mule.el (x-face-mule-convert-x-face-to-rectangle): Set `uncompface-program-can-generate-xbm' to nil and retry the traditional way when `x-face-mule-convert-x-face-to-bitmap' failed. (uncompface-program-can-generate-xbm): Default to t. 2000-05-25 Tanaka Akira * README.en: Update for CVS via SSH. 2000-05-18 Katsumi Yamaoka * x-face-mule.el, README.en, NEWS: Use of compface-1.3 package is recommended. * compface-1.2.patch: Remove. * README.en, NEWS: BITMAP-MULE does not support FSF Emacs 21+. * gnus-bitmap.el (gnus-bitmap-redefine): Replace `(>= emacs-major-version 20)' with `(eq emacs-major-version 20)'. * bm-utils.el (Commentary): Ditto. 2000-04-26 Katsumi Yamaoka * font/etl12x24-bitmap.bdf: Remove. * font/etl7x14-bitmap.bdf: Remove. * font/etl6x12-bitmap.bdf: Remove. * Makefile (invoice): Output to stdout. (tar): Output invoice to stdout; create separated fonts archive; use max compression; comment out CVS procedures. (MKDIR, BITMAP_FONTS): New variables. 2000-04-22 Jun Sawataishi * font/Makefile (etl10x20-bitmap.bdf): New entry. (bdf, PCFS): Add etl10x20-bitmap. * bitmap-bi.el: Add 10x20 to fontset fonts. * bitmap-ci.el: Ditto. 2000-04-18 Katsumi Yamaoka * BITMAP-MULE: Version 8.3 was released. 2000-04-18 Katsumi Yamaoka * smiley-mule.el (smiley-manga-face): Add the group `bitmap-mule'. (smiley-face): Ditto. * gnus-bitmap.el (gnus-bitmap-modeline-image): Add the group `bitmap-mule'. (gnus-bitmap-splash-image): Ditto. * bm-utils.el (bitmap-lprogress-display): Use the macros `bitmap-lprogress-data' and `bitmap-lprogress-backgrounds' instead of the variables; use `truncate-string-to-width' if it exists. (bitmap-lprogress-backgrounds): New macro. (bitmap-lprogress-data): New macro. (bitmap-lprogress-backgrounds): Default to nil. (bitmap-lprogress-data): Default to nil. (bitmap-lprogress-diaplay-use-clear-bar): New user option. (bitmap-lprogress-backgrounds-for-clear-bar): New variable copy from `bitmap-lprogress-backgrounds'. (bitmap-lprogress-data-for-clear-bar): New variable copy from `bitmap-lprogress-data'. (bitmap-lprogress-display-textual): Use `defcostom'. (TopLevel): Require `static' and `pcostom'. * bitmap.el (bitmap-mule): New group. (TopLevel): Require `pcustom'. * BITMAP-ELS (bitmap-modules): Don't add `bm-utils' if `emacs-major-version' is less than 19. * BITMAP-CFG: Require `poe' to pickup `add-to-list' for old mule. 2000-04-18 Yoshitsugu Mito * bm-utils.el (bitmap-lprogress-backgrounds-for-opaque-bar): New variable. (bitmap-lprogress-data-for-opaque-bar): New variable. 2000-04-17 Katsumi Yamaoka * x-face-mule.el (x-face-mule-BBDB-one-record): Bind `beg' as a local var.; don't reauire `bbdb-com'. (bbdb-buffer-name): Bind it for avoiding byte-compiler warning. (TopLevel): Autoload "bbdb-com" and "bbdb". (x-face-mule): Add the group `bitmap-mule'. * bm-utils.el (bitmap-full-mailbox-data): Don't use `concat'. (bitmap-empty-mailbox-data): Ditto. (bitmap-load-average-data): Ditto. 2000-04-16 KOSEKI Yoshinori * x-face-mule.el (x-face-mule-BBDB-buffer): Add save-excursion. (x-face-mule-BBDB-one-record): Add moving `name' position. Fix, field (following `face: field') invisible problem. 2000-03-31 Katsumi Yamaoka * bm-utils.el (bitmap-load-average-to-bitmap): New function. (bitmap-full-mailbox-data): New variable. (bitmap-empty-mailbox-data): New variable. (bitmap-load-average-data): New variable. (bitmap-lprogress-data): Don't use `mapcar'. (bitmap-special-symbol-alist): Add a head crest to "7". (Commentary): Add how to use `display-time' with XEmacs style. 2000-03-30 Katsumi Yamaoka * bm-utils.el (bitmap-lprogress-display): Allow all integers. (bitmap-special-symbol-alist): Add " " and "%". 2000-03-29 Yuuichi Teranishi * x-face-mule.el (x-face-mule-BBDB-one-record): Put `x-face-mule-highlight-x-face-face' overlay on x-face images. Require 'bbdb-com for `bbdb-current-record'. Fix problem when multiple x-face was recorded. Check existence of a bbdb record. Eliminate needless let. 2000-03-29 Katsumi Yamaoka * bm-utils.el (bitmap-lprogress-display): Show percentage. (bitmap-string-to-special-symbols): New function. (bitmap-special-symbol-alist): New variable. 2000-03-28 Katsumi Yamaoka * BITMAP-ELS (bitmap-modules): Add `bm-utils'. * bitmap.el: Autoload "bm-utils" for `lprogress-display'. * bm-utils.el: New file. 2000-03-15 KOSEKI Yoshinori * x-face-mule.el (x-face-mule-BBDB-display): New user option. (x-face-mule-BBDB-buffer): New function. (x-face-mule-BBDB-one-record): Ditto. 2000-02-11 Akitada Koyama * bitmap-ci.el, bitmap-bi.el: Use 16-dot font in default. 2000-01-17 Katsumi Yamaoka * BITMAP-MULE: Version 8.2 was released. 2000-01-17 Katsumi Yamaoka * x-face-mule.el: Rewrite the evaluating procedure for `gnus-bitmap-redefine'. * gnus-bitmap.el (gnus-bitmap-splash): Use `gnus-bitmap-redefine' with the arg `t'. (gnus-bitmap-redefine): Allow the optional arg `splash'; don't redefine the function `gnus-group-startup-message' if it is nil. (gnus-splash): Autoload "gnus" when compiling. 2000-01-05 Katsumi Yamaoka * Makefile: Update for the new CVS server. 1999-12-24 Katsumi Yamaoka * x-face-mule.el (x-face-mule-convert-x-face-to-rectangle): Use `x-face-mule-convert-x-face-to-bitmap' if the value of `uncompface-program-can-generate-xbm' is non-nil, otherwise as in the past. (uncompface-program-can-generate-xbm): New user option. * compface-1.2.patch: New file for fixing a bug in compface-1.2. 1999-12-22 OKUNISHI -GTO- Fujikazu * x-face-mule.el (x-face-mule-convert-x-face-to-bitmap): New function using "uncompface" program with the option "-X". (x-face-mule-convert-x-face-to-rectangle): Use it. 1999-12-16 Katsumi Yamaoka * BITMAP-MULE: Version 8.1 was released. 1999-12-16 Katsumi Yamaoka * font/README.ja: Sync up with font/README.en. 1999-12-16 Keisuke Nishida * font/README.en: New file. * font/Makefile (install-nogzip): New target. 1999-12-15 Katsumi Yamaoka * README.en, NEWS: Update for multi-size fonts. * bitmap-bi.el: Set fontset fonts for 6x12, 7x14 and 12x24. 1999-12-15 Keisuke Nishida * bitmap-ci.el: Set fontset fonts for 6x12, 7x14 and 12x24. * font/etl6x12-bitmap.bdf * font/etl7x14-bitmap.bdf * font/etl12x24-bitmap.bdf * font/Makefile * font/README.ja: New files. 1999-11-15 Katsumi Yamaoka * x-face-mule.el (x-face-mule-x-face-decode-message-header-1): Protect against the wrong number of X-Face fields. 1999-11-11 Katsumi Yamaoka * gnus-bitmap.el (gnus-bitmap-xbm-to-bitmap): Protect against the absence of xbm files. 1999-11-11 Katsumi Yamaoka * gnus-bitmap.el (gnus-bitmap-modeline-image-internal): Save decoded xbm data instead of composed characters in .elc file. (gnus-bitmap-splash-image-internal): Likewise. (gnus-bitmap-xbm-to-bitmap): Rearrange. 1999-11-10 Jun'ichi Shiono * smiley-mule.el: '(T_T' face change to 'T_T' because of fit into other faces. 1999-11-04 Katsumi Yamaoka * BITMAP-CFG: Don't add "flim" to `load-path'. 1999-11-04 Katsumi Yamaoka * BITMAP-MULE: Version 8.0 was released. 1999-11-04 Katsumi Yamaoka * x-face-18.el: Don't use the module `std11'. * smiley-mule.el (smiley-toggle-buffer): Allow the optional arguments `buffer', `start' and `end'. (smiley-buffer): Likewise. 1999-11-02 Mikio Nakajima * smiley-mule.el (smiley-face-bitmap-list): Add ">_<". 1999-11-02 Katsumi Yamaoka * x-face-mule.el (TopLevel): Don't setup for gnus nor VM under Emacs v18. (x-face-decode-message-header): Redefine function by `x-face-18' if Emacs v18 is used. (x-face-mule-save-cache-file): Don't use it under Emacs v18. (x-face-mule-highlight-x-face-face): Don't set its color. * x-face-18.el: New file for Emacs v18 which is copied from the old version of x-face-mule.el. * bitmap.el: Require `poe'. * bitmap-bi.el (TopLevel): Use `x-set-font' instead of `set-fontset-font' under Emacs v18. (lc-bitmap): Don't specify the 8th arg for the function `new-private-character-set' if Emacs v18 is used. * BITMAP-ELS (bitmap-modules): Add `gnus-bitmap' and `vm-bitmap' when Emacs v19 or later is used; add `x-face-18' for Emacs v18; don't check for VM libraries under Emacs v18. 1999-11-01 Katsumi Yamaoka * x-face-mule.el (x-face-mule-version, x-face-mule-version-number): Remove variables and function. * po.el: Remove RCS magic cookie. * gnus-bitmap.el: Change directory to "../bitmap-mule/" when compiling in tm-8 package. 1999-10-29 Katsumi Yamaoka * x-face-mule.el (vm-bitmap-redefine, gnus-bitmap-redefine): Don't use them for TTY. (x-face-mule-highlight-header, x-face-mule-change-highlight-x-face-method-by-alist): Add doc string. (x-face-mule-toggle-x-face-style, x-face-mule-toggle-x-face-position, x-face-decode-message-header, x-face-mule-save-cache-file): Not to work under TTY. (Commentary): Fix usages. * vm-bitmap.el (vm-smiley-display): Not to work under TTY. (vm-bitmap-redefine): Use `defadvice' for replacing the function `vm-energize-headers-and-xfaces'. * smiley-mule.el, (smiley-encode-buffer): Not to work under TTY; restore the original text if possible. (smiley-toggle-buffer, smiley-region): Not to work under TTY. (smiley-buffer): Not to work under TTY; save the original text as an overlay property. * gnus-bitmap.el (x-face-mule-gnus-highlight-headers-if-no-mime): Don't check for `window-system'. (gnus-smiley-display, gnus-bitmap-splash, x-face-mule-save-cache-file, x-face-mule-gnus-article-display-x-face): Not to work under TTY. 1999-10-26 Katsumi Yamaoka * gnus-bitmap.el (Commentary): Don't use it if `window-system' is nil. 1999-10-26 Katsumi Yamaoka * vm-bitmap.el (vm-smiley-display): New function. (TopLevel): Autoload "smiley-mule" for `smiley-toggle-buffer'. * gnus-bitmap.el (gnus-smiley-display): New function. (TopLevel): Autoload "smiley-mule" for `smiley-toggle-buffer'. * smiley-mule.el (smiley-toggle-buffer): New function. (smiley-face-bitmap-list): Fix typo. 1999-10-25 Katsumi Yamaoka * smiley-mule.el (smiley-encode-buffer): Add doc string and autoload cookie. (smiley-region): Likewise. (smiley-buffer): Likewise. (smiley-face-bitmap-list): Add doc string. 1999-10-21 Katsumi Yamaoka * x-face-mule.el: (Commentary): Modify usage for Wanderlust; replace `x-face-mule-x-face-decode-message-header' with `x-face-decode-message-header'. 1999-10-19 Katsumi Yamaoka * gnus-bitmap.el (gnus-bitmap-redefine): Don't touch any user options if `gnus-article-x-face-command' is not a string. * x-face-mule.el: Autoload "gnus-bitmap" for the function `x-face-mule-gnus-article-display-x-face' for backward compatibility. * smiley-mule.el: Update commentary for SEMI. 1999-10-01 Katsumi Yamaoka * gnus-bitmap.el (x-face-mule-gnus-highlight-headers-if-no-mime): Use `x-face-decode-message-header'. * x-face-mule.el (x-face-decode-message-header): Rename from `x-face-mule-x-face-decode-message-header'; don't define obsolete alias. (uncompface-program): Rename from `x-face-mule-uncompface-program'; default to "uncompface"; don't define obsolete alias. (x-face-mule-convert-x-face-to-icon): Use it. 1999-09-02 Katsumi Yamaoka * NEWS: New file. * README.en: Reflect the actual state. 1999-08-31 Katsumi Yamaoka * x-face-mule.el (x-face-decode-message-header): Make obsolete. (uncompface-program): Make obsolete. (x-face-mule:x-face-decode-message-header): Remove function. (x-face-mule-convert-x-face-to-icon): Use `as-binary-process'. (x-face-mule-save-cache-file): Indent to make visible images. (x-face-mule-load-cache-file): Remove text properties. (x-face-mule-highlight-x-face-refresh-method-alist): Remove `mime-view-mode'. (Toplevel): Don't check for `xemacs' or `mule' features. (Usage): Update. 1999-08-24 Katsumi Yamaoka * gnus-bitmap.el (gnus-bitmap-splash): Do nothing if the feature `gnus' is provided; modify the way to arrange `after-load-alist'. * bitmap.el (TopLevel): Require `bitmap-ci' or `bitmap-bi' at the compile time as well. * bitmap-ci.el (TopLevel): Autoload "bitmap" and "fontset" for avoiding byte compile warnings. * bitmap-bi.el (TopLevel): Autoload "bitmap" and "fontset" for avoiding byte compile warnings. (TopLevel): Use `static-cond' instead of `cond' for defining `lc-bitmap'. (TopLevel): Require `static'. * BITMAP-MK (compile-bitmap): Use `bitmap-modules-to-compile' instead of `bitmap-modules'. * BITMAP-ELS (bitmap-modules-to-compile): New variable. Delete `vm-bitmap' from its value if neither `vm-macro' nor `vm-misc' is not installed. 1999-08-24 Katsumi Yamaoka * x-face-mule..el (TopLevel): Don't add `gnus-bitmap-redefine' to `after-load-alist' if the variable `gnus-bitmap-redefine-will-be-evaluated-after-gnus-is-loaded' is bound. * gnus-bitmap.el (gnus-bitmap-splash): New function. The variable `gnus-bitmap-redefine-will-be-evaluated-after-gnus-is-loaded' is set t. (gnus-bitmap-startup-message): Use `insert-char' instead of `insert'. (gnus-bitmap-original-gnus-group-startup-message): Rename from `gnus-bitmap-group-startup-message'. (How to use): Update for the use of `gnus-load-hook'. 1999-08-20 Katsumi Yamaoka * po.el (po-bdf-current-encoding, po-bdf-original-buffer): Bind before they are referred to. * Makefile (invoice): New target. * BITMAP-ELS (bitmap-modules): Add `gnus-bitmap' and `vm-bitmap'. * vm-bitmap.el: New file separated from x-face-mule.el. * gnus.xbm: New file which is copied from etc-0.27, invert and modify a size. * gnus-pointer.xbm: New file which is copied from etc-0.27 and modify a size. * gnus-bitmap.el: New file separated from x-face-mule.el; import the splashing functions from BITMAP-DECOR 0.05. * x-face-mule.el: Replace with a file with the same name of X-Face-Mule v0.27; move gnus related functions to gnus-bitmap.el; move VM related functions to vm-bitmap.el. 1999-07-28 Katsumi Yamaoka * smiley-mule.el (smiley-manga-face, smiley-face): Use `defface'. (TopLevel): Require `pcustom'. (TopLevel): Modify author's mail address. * ftp.in: New file. * Makefile (release, tar): New implementation. (clean): Use the variables `RM' and `GOMI'. (install, elc): Accept the arguments `PREFIX', `LISPDIR' and `VERSION_SPECIFIC_LISPDIR'. (VERSION): Depend on the values of `API' and `RELEASE'. (ARC_DIR, FILES, GOMI, VERSION_SPECIFIC_LISPDIR, CP, RM, RELEASE, API, PACKAGE): New variables. * BITMAP-MK (config-bitmap): Extract the values of `LISPDIR' and `VERSION_SPECIFIC_LISPDIR' from the command line arguments. (TopLevel): Remove RCS magic cookie. * BITMAP-ELS (TopLevel): Remove RCS magic cookie. * BITMAP-CFG (VERSION_SPECIFIC_LISPDIR): New variable. (load-path): Modernize the way of adding the paths of APEL, FLIM, LISPDIR, VERSION_SPECIFIC_LISPDIR, CUSTOM and `default-directory'. (TopLevel): Remove RCS magic cookie. 1999-07-15 NAKAJI Hiroyuki * BITMAP-CFG (load-path): Add the directory where flim is installed. 1998-04-17 MORIOKA Tomohiko * smiley-mule.el (smiley-buffer): fixed. 1998-04-17 MORIOKA Tomohiko * bitmap-ci.el, bitmap-bi.el, BITMAP-ELS: Add bitmap-bi.el and bitmap-ci.el. * bitmap.el: Separate byte-indexing Emacs depended definitions to bitmap-bi.el. 1998-03-23 MORIOKA Tomohiko * bitmap.el: Rename 'charset-bitmap -> 'lc-bitmap again. 1998-03-23 MORIOKA Tomohiko * po.el (po-bdf-edit): Edit at point. 1998-03-09 Shuhei KOBAYASHI * README.en (Bug reports): Modify description of tm mailing list. 1997-07-01 MORIOKA Tomohiko * bitmap-mule: Version 7.18 was released. * README.en (Installation): Add description about `LISPDIR'. 1997-07-01 MORIOKA Tomohiko * Makefile (LISPDIR): New variable. * BITMAP-MK (config-bitmap): Set `LISPDIR' if specified. * BITMAP-CFG: Setting for load-path is modified. Thu May 22 04:42:16 1997 MORIOKA Tomohiko * bitmap.el: Use `make-char' instead of `make-character'. 1997-03-14 MORIOKA Tomohiko * bitmap-mule: Version 7.17 was released. Wed Mar 12 07:38:21 1997 MORIOKA Tomohiko * BITMAP-CFG: Variables about other modules were abolished. * BITMAP-CFG (load-path): Add "../apel". * BITMAP-MK: Compile and install only MU files. 1997-02-10 MORIOKA Tomohiko * bitmap.el (bitmap-compose): Fixed. 1997-01-16 MORIOKA Tomohiko * bitmap-mule: Version 7.16 was released. * bitmap.el: modified for GNU MULE 19.34.91. Wed Dec 28 13:57:22 1996 Martin Buchholz * BITMAP-CFG: Use variable `default-directory' instead of `(getenv "PWD")'. (cf. [tm-en:1084]) Wed Nov 27 15:38:38 1996 MORIOKA Tomohiko * bitmap-mule: Version 7.15 was released. * Makefile, README.en: New file. Wed Nov 27 15:07:15 1996 MORIOKA Tomohiko * BITMAP-MK, BITMAP-CFG: Add ../mu/. Wed Nov 27 13:44:46 1996 MORIOKA Tomohiko * bitmap.el: Modify to share font setting code between MULE and Emacs/mule. * bitmap.el (charset-bitmap): Definition for Emacs/mule was simplified. * bitmap.el: `fontset-list' occurs error when byte-compile modules require bitmap. * BITMAP-MK, BITMAP-ELS, BITMAP-CFG: New file. Wed Nov 27 11:14:21 1996 MORIOKA Tomohiko * po.el: New module. Wed Nov 27 11:10:17 1996 Kenichi Handa * bitmap.el (bitmap-compose): Don't compose-string for one character. (cf. [mule-jp:6201]) bitmap-mule-200308250433/Makefile0100644000227700000120000000331107410566772014440 0ustar yamaoka# # Makefile for BITMAP-MULE. # PACKAGE = bitmap-mule API = 8 RELEASE = 5 BITMAP_FONTS = bitmap-fonts-1.0 TAR = tar RM = /bin/rm -f CP = /bin/cp -p MKDIR = /bin/mkdir EMACS = emacs FLAGS = -batch -q -no-site-file -l BITMAP-MK PREFIX = NONE LISPDIR = NONE VERSION_SPECIFIC_LISPDIR = NONE GOMI = *.elc \ *.cp *.cps *.ky *.kys *.fn *.fns *.vr *.vrs \ *.pg *.pgs *.tp *.tps *.toc *.aux *.log VERSION = $(API).$(RELEASE) ARC_DIR = /pub/elisp/bitmap elc: $(EMACS) $(FLAGS) -f compile-bitmap $(PREFIX) $(LISPDIR) \ $(VERSION_SPECIFIC_LISPDIR) install: elc $(EMACS) $(FLAGS) -f install-bitmap $(PREFIX) $(LISPDIR) \ $(VERSION_SPECIFIC_LISPDIR) clean: -$(RM) $(GOMI) tar: # cvs commit # sh -c 'cvs tag -RF $(PACKAGE)-`echo $(VERSION) | tr . _`; \ # cd /tmp; \ # cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root \ # export -d $(PACKAGE)-$(VERSION) \ # -r $(PACKAGE)-`echo $(VERSION) | tr . _` \ # bitmap-mule' $(RM) -r /tmp/$(PACKAGE)-$(VERSION); \ $(MKDIR) /tmp/$(PACKAGE)-$(VERSION); \ $(TAR) cf - . | $(TAR) xf - -C /tmp/$(PACKAGE)-$(VERSION); \ cd /tmp/$(PACKAGE)-$(VERSION); \ $(RM) -r CVS font/CVS cd /tmp; $(RM) $(PACKAGE)-$(VERSION)/ftp.in; \ GZIP=-9; export GZIP; \ $(TAR) czf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION) cd /tmp; cd $(PACKAGE)-$(VERSION)/font; \ make bdf; \ GZIP=-9; export GZIP; \ $(TAR) czf /tmp/$(BITMAP_FONTS).tar.gz *.bdf cd /tmp; $(RM) -r $(PACKAGE)-$(VERSION) sed -e "s/VERSION/$(VERSION)/" -e "s/API/$(API)/" \ -e "s/PACKAGE/$(PACKAGE)/" < ftp.in invoice: sed -e "s/VERSION/$(VERSION)/" -e "s/API/$(API)/" \ -e "s/PACKAGE/$(PACKAGE)/" < ftp.in release: -$(RM) $(ARC_DIR)/$(PACKAGE)-$(VERSION).tar.gz mv /tmp/$(PACKAGE)-$(VERSION).tar.gz $(ARC_DIR) bitmap-mule-200308250433/NEWS0100644000227700000120000001106407410072457013473 0ustar yamaokaBITMAP-MULE NEWS -- history of major-changes. Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. * Changes in BITMAP-MULE 8.5 ============================ ** X-Face-Mule now supports a cache file also for Emacs 21. In addition, you can browse the cached X-Face images using the new command `x-face-mule-view-cache'. ** A patch for the released version of Emacs 21.1 is now available. It is included in the BITMAP-MULE distribution, named: emacs-21.1-composite.patch It makes Emacs 21.1 can load bitmap images from a file or save bitmap images to a file with automatic code conversion correctly. ** The preferred coding-system for the charset `bitmap' is now set to `iso-2022-7bit'. ** New variable `bitmap-use-alterable-charset-anyway' now controls whether to substitute `indian-1-column' or `tibetan-1-column' for the new private charset `bitmap' unconditionally. You can load "bitmap" before "un-define" by setting this to non-nil. Don't forget to set the value of the variable `bitmap-alterable-charset'. For example: (setq bitmap-alterable-charset 'indian-1-column) (setq bitmap-use-alterable-charset-anyway t) (require 'bitmap) (require 'un-define) * Changes in BITMAP-MULE 8.4 ============================ ** IMPORTANT notice to Mule-UCS on Emacs 20 users !! If you are using Emacs 20 and Mule-UCS version 0.84 or later, you have to set the value of the variable `bitmap-alterable-charset' explicitly, and furthermore, you have to load un-define.elc before bitmap.elc. The valid values for the variable `bitmap-alterable-charset' are `indian-1-column' and `tibetan-1-column'. Here is an example for the startup (normally .emacs) file: (require 'un-define) (setq bitmap-alterable-charset 'tibetan-1-column) (require 'bitmap) We must apologize that the charset used in `bitmap-alterable-charset' becomes totally unserviceable to the inconvenience of Indian or Tibetan. ** Font files are no longer distributed with BITMAP-MULE. Instead, they will be generated by make, named bitmap16.bdf, etc. See font/README.{en,ja} for more information. Note that the generated font files will have "Misc" foundry in XLFD form which was formerly "ETL". ** BITMAP-MULE now supports Emacs 21. But using BITMAP-MULE is not the best choice if your Emacs can display images inline. It should be replaced with the modern programs. ** The obsolete function `x-face-mule-x-face-decode-message-header' has been abolished. Use `x-face-decode-message-header' without argument from now on. ** Function `bitmap-compose' now has an optional arg `rotation'. It can make a different string even if which has the same representation. ** Rename `lprogress-display' to `progress-feedback-with-label'. It has been done in XEmacs 21.2.36. The old function is now obsolete. You can turn off showing the bargraph by setting the option `bitmap-progress-feedback-textual' to non-nil. ** Use of compface package v1.3 or later is recommended. These versions of `uncompface' can generate XBM format directly. It makes X-Face-Mule display X-Face a little bit faster. ** You can now use 10x20 font if you like. * Changes in BITMAP-MULE 8.3 ============================ ** New function `lprogress-display'. Emulates the function which comes from XEmacs 21.2.32. ** BBDB(Big Brother Database) is supported. Display the `X-Face' images, In *BBDB* mode. * Changes in BITMAP-MULE 8.2 ============================ ** Bug fixes related with `gnus-bitmap' Don't redefine the function `gnus-group-startup-message' if the function `gnus-bitmap-splash' is not added to `gnus-load-hook'. ** Use `-X' option of uncompafce program It becomes a little faster if you use compface-1.2. However, compface-1.2 has a bug. Please apply the patch named "compface-1.2.patch", which is included in this distribution, before installing it. * Changes in BITMAP-MULE 8.1 ============================ ** Multi-size fonts are now supported (except for Mule 1.*) Besides 8x16, contains 6x12, 7x14 and 12x24 fonts generated by bdfresize. Note that Emacs is not always a good image viewer if you use the fonts except for 8x16. :-< * Changes in BITMAP-MULE 8.0 ============================ ** Mule 1.1 PL04 based on Emacs 18.59 is now supported ** Requires APEL 9.22 or later ** X-Face-Mule (x-face-mule.el) has been replaced with KORIYAMA-san's version It is based on X-Face-Mule v0.27 and modified for the use of APEL, to separate Gnus/gnus or VM related functions into the optional modules. ** BITMAP-DECOR's splash function for Gnus/gnus is included in gnus-bitmap.el Local variables: mode: outline paragraph-separate: "[ ]*$" end: bitmap-mule-200308250433/README.en0100644000227700000120000001376307534565633014277 0ustar yamaoka[README for BITMAP-MULE (English Version)] by MORIOKA Tomohiko and Katsumi YAMAOKA IMPORTANT notice to Mule-UCS on Emacs 20 users !! ================================================= If you are using Emacs 20 and Mule-UCS version 0.84 or later, you have to set the value of the variable `bitmap-alterable-charset' explicitly, and furthermore, you have to load un-define.elc before bitmap.elc. The valid values for the variable `bitmap-alterable-charset' are `indian-1-column' and `tibetan-1-column'. Here is an example for the startup (normally .emacs) file: (require 'un-define) (setq bitmap-alterable-charset 'tibetan-1-column) (require 'bitmap) Otherwise, you can load "bitmap" before "un-define" by setting the variable `bitmap-use-alterable-charset-anyway' to non-nil as follows: (setq bitmap-alterable-charset 'indian-1-column) (setq bitmap-use-alterable-charset-anyway t) (require 'bitmap) (require 'un-define) In addition, you also need to change the font database for the ps-print utility if you would like to use it. The following form is for the use of `tibetan-1-column', you should change it to `indian-1-column' if you have specified `bitmap-alterable-charset' to it. (eval-after-load "ps-mule" '(let ((elem (assq 'tibetan-1-column ps-mule-font-info-database-bdf))) (if elem (setcar (cdr (cdr (car (cdr elem)))) '("bmp16-etl.bdf" "bitmap16.bdf"))))) Note that the variable `bitmap-alterable-charset' did not exist in BITMAP-MULE versions earlier than 8.4, and the variable `bitmap-use-alterable-charset-anyway' did not exist in BITMAP-MULE versions prior to 8.5. Notice to Emacs 21.1 users ========================== The released version of Emacs 21.1 has a bug in decoding composite chars. It might come out when reading a file which contains composite chars (encoded with `iso-2022-7bit', etc.). You can fix this by applying the patch and rebuilding Emacs. The patch is included in the BITMAP-MULE distribution. What's BITMAP-MULE? =================== BITMAP-MULE is a package to use bitmap in MULE or Emacs/mule. BITMAP-MULE has following modules: - bitmap.el: kernel of BITMAP-MULE - bitmap-bi.el: functions for Emacs 20.2 or earlier - bitmap-ci.el: functions for Emacs 20.3 or later - bm-utils.el: utility functions. - po.el: tiny BDF font editor - smiley-mule.el: smiley faces encoder/decoder - x-face-mule.el: inline X-Face decoder - x-face-18.el: X-Face decoder for Emacs 18 - gnus-bitmap.el: Gnus/gnus related functions - vm-bitmap.el: VM related functions The following image files will be integrated into gnus-bitmap.el at the complile time. - gnus.xbm: big gnu for splashing the startup screen - gnus-pointer.xbm: small gnu for the modeline identification Installation ============ (0) Before installing it, please install APEL (9.22 or later) package, font for BITMAP 8x16 and uncompface program. If you would like to use 6x12, 7x14, 10x20 or 12x24 size fonts, please install them as well. They can be generated with running `make' in the font/ directory, or you can get the ready-made fonts from the same place of the BITMAP-MULE distribution. See font/README.{en,ja} for more information. APEL package is available from: ftp://ftp.m17n.org/pub/mule/apel/ uncompface program is included in compface package which is available from: ftp://ftp.win.ne.jp/pub/misc/compface-1.4.tar.gz (1-a) Run in expanded place If you don't want to install other directories, please do only following: % make You can specify the emacs command name, for example % make EMACS=emacs-20.7 If `EMACS=...' is omitted, EMACS=emacs is used. (1-b) Install If you want to install other directories, please do following: % make install You can specify the emacs command name, for example % make install EMACS=emacs-20.7 If `EMACS=...' is omitted, EMACS=emacs is used. You can specify the prefix of the directory tree for Emacs Lisp programs and shell scripts, for example: % make install PREFIX=~/ If `PREFIX=...' is omitted, the prefix of the directory tree of the specified emacs command is used (perhaps /usr/local). For example, if PREFIX=/usr/local is specified, it will create the following directory: /usr/local/share/emacs/site-lisp/bitmap/ --- BITMAP-MULE You can specify site-lisp directory, for example % make install LISPDIR=~/share/emacs/lisp If `LISPDIR=...' is omitted, site-lisp directory of the specified emacs command is used (perhaps /usr/local/share/emacs/site-lisp). If the emu modules (included in APEL package) have been installed in the non-standard directory, you should specify where they will be found, for example: % make install VERSION_SPECIFIC_LISPDIR=~/elisp You can specify other optional settings by editing the file bitmap-mule/BITMAP-CFG. Please read comments in bitmap-mule/BITMAP-CFG. (2) More useful informations can be found at the following web sites: http://www.NetLaputa.ne.jp/~kose/Emacs/ http://web.kyoto-inet.or.jp/people/fuji0924/x-face.html http://www.ki.nu/software/emacs-20/x-face.shtml Bug reports =========== If you write bug-reports and/or suggestions for improvement, please send them to Elips Mailing List: Elips@eos.hokudai.ac.jp Elips mailing list is for discussing all sorts of Emacsen, mainly in Japanese. To join Elips ML, please introduce yourself briefly in an e-mail to Elips-request@eos.hokudai.ac.jp Via Elips ML, you can report BITMAP-MULE related bugs, obtain the latest release of BITMAP-MULE, and discuss future enhancements to BITMAP-MULE. CVS based development ===================== If you would like to join CVS based development, please send mail to cvs@cvs.m17n.org with your account name and your public key for ssh. cvsroot is :ext:cvs@cvs.m17n.org:/cvs/root. If you cannot use ssh, please send UNIX /etc/passwd style crypted password. you can commit with the cvsroot :pserver:@cvs.m17n.org:/cvs/root. We hope you will join the open development. bitmap-mule-200308250433/bitmap-bi.el0100644000227700000120000001357307245450422015167 0ustar yamaoka;; bitmap-bi.el -- bitmap handler for MULE 1.*, 2.*, Emacs 20.1 and 20.2. ;; Copyright (C) 1992 Electrotechnical Laboratory, JAPAN. ;; Copyright (C) 1996,1997,1998 MORIOKA Tomohiko ;; Author: Ken'ichi HANDA ;; MORIOKA Tomohiko ;; Keywords: bitmap, xbm, MULE ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;; Code: (require 'poem) (eval-when-compile (require 'static)) (static-cond ((and (boundp 'MULE) (<= emacs-major-version 18)) (defvar lc-bitmap (new-private-character-set 2 1 3 0 ?0 0 "BITMAP 8x16") "Leading character for BITMAP.8x16.")) ((boundp 'MULE) (defvar lc-bitmap (new-private-character-set 2 1 3 0 ?0 0 "BITMAP 8x16" "bitmap") "Leading character for BITMAP.8x16.")) (t (if (not (memq 'bitmap charset-list)) (define-charset nil 'bitmap [2 96 1 0 ?0 0 "BITMAP" "BITMAP.8x16" "8x16 bitmap elements"])) (defconst lc-bitmap 'bitmap))) ;; Avoid byte compile warning (eval-when-compile (autoload 'fontset-list "fontset");; for Emacs 20.1 or later (autoload 'read-hexa "bitmap")) (if window-system (static-if (<= emacs-major-version 18) (x-set-font "-*-fixed-medium-r-*--16-*-100-100-m-*-bitmap.8x16-0" lc-bitmap 0) (let ((fontsets (fontset-list)) fontset size) (while fontsets (setq fontset (car fontsets) fontsets (cdr fontsets) size (fontset-pixel-size fontset)) (cond ((eq size 12) (set-fontset-font fontset lc-bitmap "-*-fixed-medium-r-*--12-*-100-100-m-*-bitmap.6x12-0")) ((eq size 14) (set-fontset-font fontset lc-bitmap "-*-fixed-medium-r-*--14-*-100-100-m-*-bitmap.7x14-0")) ((eq size 20) (set-fontset-font fontset lc-bitmap "-*-fixed-medium-r-*--20-*-100-100-m-*-bitmap.10x20-0")) ((eq size 24) (set-fontset-font fontset lc-bitmap "-*-fixed-medium-r-*--24-*-100-100-m-*-bitmap.12x24-0")) (t (set-fontset-font fontset lc-bitmap "-*-fixed-medium-r-*--16-*-100-100-m-*-bitmap.8x16-0"))))))) ;; Block (all bits set) character (defvar bitmap-block (make-char lc-bitmap 32 33)) ;; Space (all bits cleared) character (defvar bitmap-space (make-char lc-bitmap 32 32)) (eval-when-compile (defmacro bitmap-pad-string (string padding right) (` (let ((padding (mapconcat (function char-to-string) (make-list (, padding) bitmap-space) ""))) (if (, right) (concat (, string) padding) (concat padding (, string))))))) (eval-when-compile (defmacro bitmap-rotate-string (string length rotation left bytes) (` (let ((length (/ (, length) (, bytes)))) (if (<= (+ length (, rotation)) 16) (bitmap-pad-string (, string) (, rotation) (, left)) (let ((string (, string)) (rotation (, rotation))) (if (< length 16) (setq string (bitmap-pad-string string (- 16 length) (, left)) rotation (+ rotation length -16))) (if (, left) (progn (setq rotation (* rotation (, bytes))) (concat (substring string rotation) (substring string 0 rotation))) (setq rotation (* (- 16 rotation) (, bytes))) (concat (substring string rotation) (substring string 0 rotation))))))))) (defun bitmap-compose (hex &optional rotation) "Return a string of composite characters which represents the bitmap- pattern HEX. HEX is a string of hexa decimal for 8x16 dot-pattern(s). For example, the pattern \"00818142422424181824244242818100\" is for a bitmap of shape something like 'X' character. Elements of each character will be rotated left by the number ROTATION, if it is specified, before composing. If ROTATION is negative, rotating is actually to the right. It is useful to make a different string even though which has the same representation." (let* ((len (/ (length hex) 2)) (bytes (charset-bytes lc-bitmap)) (cmpstr "") (buf (make-string (* 16 bytes) 0)) (block-flag t) (i 0) (j 0) left row code) (if (numberp rotation) (progn (setq left (natnump rotation) rotation (% (abs rotation) 16)) (if (zerop rotation) (setq rotation nil)))) (while (< i len) (setq row (read-hexa (substring hex (* i 2) (+ (* i 2) 2)))) (if block-flag (setq block-flag (eq row 255))) (if (zerop row) nil (setq code (+ (* (% i 16) 255) row -1)) (sset buf j (make-char lc-bitmap (+ (/ code 96) 33) (+ (% code 96) 32))) (setq j (+ j bytes))) (setq i (1+ i)) (if (or (zerop (% i 16)) (>= i len)) (setq cmpstr (concat cmpstr (if rotation (compose-string (cond ((and block-flag (eq j (* 16 bytes))) (bitmap-pad-string (char-to-string bitmap-block) rotation left)) ((zerop j) (bitmap-pad-string (char-to-string bitmap-space) rotation left)) ((eq j bytes) (bitmap-pad-string (substring buf 0 bytes) rotation left)) (t (bitmap-rotate-string (substring buf 0 j) j rotation left bytes)))) (cond ((and block-flag (eq j (* 16 bytes))) (char-to-string bitmap-block)) ((zerop j) " ") ((eq j bytes) (substring buf 0 bytes)) (t (compose-string (substring buf 0 j)))))) block-flag t j 0))) cmpstr)) ;;; @ end ;;; (provide 'bitmap-bi) ;;; bitmap-bi.el ends here bitmap-mule-200308250433/bitmap-ci.el0100644000227700000120000001717707407601703015174 0ustar yamaoka;; bitmap-ci.el -- bitmap handler for Emacs 20.3 and later ;; Copyright (C) 1992 Electrotechnical Laboratory, JAPAN. ;; Copyright (C) 1996,1997,1998 MORIOKA Tomohiko ;; Author: Ken'ichi HANDA ;; MORIOKA Tomohiko ;; Keywords: bitmap, xbm, MULE ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;; Code: (require 'poem) (defvar bitmap-alterable-charset nil "*A symbol of a charset which will be used to a substitute for `bitmap' only when there is no room for a new private charset. It is useless for Emacs 21. The valid alterable charsets for Emacs 20 are `indian-1-column' and `tibetan-1-column'. You should set the value of this variable before loading the BITMAP-MULE library.") (defvar bitmap-use-alterable-charset-anyway nil "*If non-nil, use `bitmap-alterable-charset' for a substitute for the charset `bitmap' unconditionally. You should set the value of this variable before loading the BITMAP-MULE library.") ;; Defining the charset `bitmap'. (if (charsetp 'bitmap) nil (if (>= emacs-major-version 21) (progn (define-charset nil 'bitmap [2 96 1 0 ?0 0 "BITMAP" "BITMAP.8x16" "8x16 bitmap elements"]) ;; `define-charset' won't call `update-coding-systems-internal' ;; if the released version of Emacs 21.1 is running. (update-coding-systems-internal)) (let ((alterable (and (charsetp bitmap-alterable-charset) (eq 2 (charset-dimension bitmap-alterable-charset)) (eq 1 (charset-width bitmap-alterable-charset))))) (if (or (and alterable bitmap-use-alterable-charset-anyway) (condition-case code (progn (define-charset nil 'bitmap [2 96 1 0 ?0 0 "BITMAP" "BITMAP.8x16" "8x16 bitmap elements"]) nil) (error (or alterable (error "%s" (error-message-string code)))))) (progn (setcar (memq bitmap-alterable-charset charset-list) 'bitmap) (let ((info (charset-info bitmap-alterable-charset))) (aset info 3 96);; chars (aset info 8 ?0);; iso-final-char (aset info 11 "BITMAP");; short-name (aset info 12 "BITMAP.8x16");; long-name (aset info 13 "8x16 bitmap elements");; description (aset info 14 nil);; plist (put 'bitmap 'charset info)) (declare-equiv-charset 2 96 ?0 'bitmap) (if (and window-system (boundp 'global-fontset-alist)) (let ((fontsets (symbol-value 'global-fontset-alist)) fontset) (while fontsets (setq fontset (car fontsets) fontsets (cdr fontsets)) (setcdr fontset (delq (assq bitmap-alterable-charset (cdr fontset)) (cdr fontset)))))) (let ((name (intern (format "replace-%s-to-bitmap" bitmap-alterable-charset))) (doc-string (format "Advised by BITMAP-MULE. Replace `%s' to `bitmap' in the return value of this function." bitmap-alterable-charset)) (form `(setcar (or (memq (quote ,bitmap-alterable-charset) ad-return-value) '(nil)) 'bitmap))) (eval `(defadvice find-charset-string (after ,name activate) ,doc-string ,form)) (eval `(defadvice find-charset-region (after ,name activate) ,doc-string ,form))))))) (put-charset-property 'bitmap 'preferred-coding-system 'iso-2022-7bit)) ;; Avoid byte compile warning (eval-when-compile (autoload 'fontset-list "fontset");; for Emacs 20 (autoload 'read-hexa "bitmap")) (if window-system (let ((fontsets (fontset-list)) fontset size) (while fontsets (setq fontset (car fontsets) fontsets (cdr fontsets) size (fontset-pixel-size fontset)) (cond ((eq size 12) (set-fontset-font fontset 'bitmap "-*-fixed-medium-r-*--12-*-100-100-m-*-bitmap.6x12-0")) ((eq size 14) (set-fontset-font fontset 'bitmap "-*-fixed-medium-r-*--14-*-100-100-m-*-bitmap.7x14-0")) ((eq size 20) (set-fontset-font fontset 'bitmap "-*-fixed-medium-r-*--20-*-100-100-m-*-bitmap.10x20-0")) ((eq size 24) (set-fontset-font fontset 'bitmap "-*-fixed-medium-r-*--24-*-100-100-m-*-bitmap.12x24-0")) (t (set-fontset-font fontset 'bitmap "-*-fixed-medium-r-*--16-*-100-100-m-*-bitmap.8x16-0")))))) ;; Block (all bits set) character (defvar bitmap-block (make-char 'bitmap 32 33)) ;; Space (all bits cleared) character (defvar bitmap-space (make-char 'bitmap 32 32)) (eval-when-compile (defmacro bitmap-pad-string (string padding right) `(if ,right (concat ,string (make-string ,padding ?\ )) (concat (make-string ,padding ?\ ) ,string)))) (eval-when-compile (defmacro bitmap-rotate-string (string length rotation left) `(if (<= (+ ,length ,rotation) 16) (bitmap-pad-string ,string ,rotation ,left) (let ((string ,string) (rotation ,rotation)) (if (< ,length 16) (setq string (bitmap-pad-string string (- 16 ,length) ,left) rotation (+ rotation ,length -16))) (if ,left (concat (substring string rotation) (substring string 0 rotation)) (setq rotation (- 16 rotation)) (concat (substring string rotation) (substring string 0 rotation))))))) (defun bitmap-compose (hex &optional rotation) "Return a string of composite characters which represents the bitmap- pattern HEX. HEX is a string of hexa decimal for 8x16 dot-pattern(s). For example, the pattern \"00818142422424181824244242818100\" is for a bitmap of shape something like 'X' character. Elements of each character will be rotated left by the number ROTATION, if it is specified, before composing. If ROTATION is negative, rotating is actually to the right. It is useful to make a different string even though which has the same representation." (let ((len (/ (length hex) 2)) (cmpstr "") (buf (make-string 16 bitmap-block)) (block-flag t) (i 0) (j 0) left row code) (if (numberp rotation) (progn (setq left (natnump rotation) rotation (% (abs rotation) 16)) (if (zerop rotation) (setq rotation nil)))) (while (< i len) (setq row (read-hexa (substring hex (* i 2) (+ (* i 2) 2)))) (if block-flag (setq block-flag (eq row 255))) (if (zerop row) nil (setq code (+ (* (% i 16) 255) row -1)) (sset buf j (make-char 'bitmap (+ (/ code 96) 33) (+ (% code 96) 32))) (setq j (1+ j))) (setq i (1+ i)) (if (or (zerop (% i 16)) (>= i len)) (setq cmpstr (concat cmpstr (if rotation (compose-string (cond ((and block-flag (eq j 16)) (bitmap-pad-string (char-to-string bitmap-block) rotation left)) ((zerop j) (bitmap-pad-string (char-to-string bitmap-space) rotation left)) ((eq j 1) (bitmap-pad-string (substring buf 0 1) rotation left)) (t (bitmap-rotate-string (substring buf 0 j) j rotation left)))) (cond ((and block-flag (eq j 16)) (char-to-string bitmap-block)) ((zerop j) " ") ((eq j 1) (substring buf 0 1)) (t (compose-string (substring buf 0 j)))))) block-flag t j 0))) cmpstr)) ;;; @ end ;;; (provide 'bitmap-ci) ;;; bitmap-ci.el ends here bitmap-mule-200308250433/bitmap.el0100644000227700000120000001413607343561047014600 0ustar yamaoka;; bitmap.el -- bitmap file handler on MULE. ;; Copyright (C) 1992 Electrotechnical Laboratory, JAPAN. ;; Copyright (C) 1996,1997,1998 MORIOKA Tomohiko ;; Author: Ken'ichi HANDA ;; MORIOKA Tomohiko ;; Keywords: bitmap, xbm, MULE ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;; Code: ;; Simple examples: ;; (bitmap-compose "00FF00FF00FF00FF00FF00FF00FF00FF") ;; (bitmap-compose ;; "FF00FF00FF00FF00FF00FF00FF00FF00AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") (require 'poe) (require 'pcustom) (defgroup bitmap-mule nil "A package to use bitmap in Emacs/Mule.") (defun read-hexa (str) (let ((result 0) (i 0) (max (length str))) (while (< i max) (let ((ch (aref str i))) (cond((and (<= ?0 ch) (<= ch ?9)) (setq result (+ (* result 16) (- ch ?0)))) ((and (<= ?a ch) (<= ch ?f)) (setq result (+ (* result 16) (+ (- ch ?a) 10)))) ((and (<= ?A ch) (<= ch ?F)) (setq result (+ (* result 16) (+ (- ch ?A) 10))))) (setq i (1+ i)))) result)) (eval-and-compile (cond ((and (fboundp 'set-buffer-multibyte) (subrp (symbol-function 'set-buffer-multibyte))) ;; for Emacs 20.3 or later (require 'bitmap-ci)) (t ;; for MULE 1.*, MULE 2.*, Emacs 20.1 and 20.2 (require 'bitmap-bi)))) (defun bitmap-make-string (length init) "Return a new string of length LENGTH, with each element being INIT. LENGTH must be an integer and INIT must be a string." (let ((n length) (s "")) (while (> n 0) (setq s (concat s init) n (1- n))) s)) ;;; @ BDF ;;; ;; Internal variables -- declared here to reduce garbage collection. (defconst *hex* (vector (make-string 96 0) (make-string 96 0))) (defconst *hex-len* (length *hex*)) (defconst *cmp* (make-vector *hex-len* nil)) (defun bdf-to-bitmap (bdf) "Set *cmp* a vector of string for BDF. BDF is a vector of string, each elements corresponds to a line of bitmap of difinition of a character glyph in bdf file." (let ((width (length (aref bdf 0))) (height (length bdf)) i j) (if (or (/= (/ (+ height 15) 16) *hex-len*) (/= width (length (aref *hex* 0)))) (progn (setq *hex-len* (/ (+ height 15) 16)) (setq *hex* (make-vector *hex-len* nil)) (setq *cmp* (make-vector *hex-len* nil)) (setq i 0) (while (< i *hex-len*) (aset *hex* i (make-string 96 0)) (setq i (1+ i))))) (setq j 0) (while (< j width) (setq i 0) (while (< i (* *hex-len* 16)) (aset (aref *hex* (/ i 16)) (+ (* (/ j 2) 32) (* (% i 16) 2) (% j 2)) (if (< i height) (aref (aref bdf i) j) 0)) (setq i (1+ i))) (setq j (1+ j))) (setq i 0) (while (< i *hex-len*) (aset *cmp* i (bitmap-compose (aref *hex* i))) (setq i (1+ i))) *cmp*)) ;;; @ XBM ;;; (defun bitmap-decode-xbm (xbm) (let ((hexa-string "0123456789ABCDEF") (reverse-bit '[0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15]) w h i j i2 i2+2 bitmap cmp c temp line) (setq w (car xbm) xbm (cdr xbm) h (car xbm) xbm (cdr xbm)) (setq bitmap (make-vector h 0)) (setq cmp (make-vector (/ (+ h 15) 16) nil)) (setq w (/ (+ w 7) 8)) (setq j 0) (while (< j h) (setq i 0 line (car xbm) i2 0 i2+2 2) (aset bitmap j (make-vector w 0)) (while (< i w) (setq temp (substring line i2 i2+2)) (aset (aref bitmap j) i temp) (setq c (read-hexa temp)) (aset temp 0 (aref hexa-string (aref reverse-bit (% c 16)))) (aset temp 1 (aref hexa-string (aref reverse-bit (/ c 16)))) (setq i (1+ i) i2 i2+2 i2+2 (+ i2+2 2))) (setq j (1+ j) xbm (cdr xbm))) (setq i 0) (while (< i w) (setq j 0) (while (< j h) (aset cmp (/ j 16) (concat (aref cmp (/ j 16)) (aref (aref bitmap j) i))) (setq j (1+ j))) (if (> (% h 16) 0) (aset cmp (/ h 16) (concat (aref cmp (/ h 16)) (make-string (* (- 16 (% h 16)) 2) ?0)))) (setq i (1+ i))) cmp)) (defun bitmap-read-xbm-buffer (buf) (save-excursion (let (width height dest) (save-excursion (set-buffer buf) (goto-char (point-min)) (search-forward "width ") (setq width (read (current-buffer))) (goto-char (point-min)) (search-forward "height ") (setq height (read (current-buffer))) (let ((w (/ (+ width 7) 8)) i (j 0) line) (while (< j height) (setq i 0 line "") (while (< i w) (search-forward "0x") (setq line (concat line (buffer-substring (point) (+ (point) 2)))) (setq i (1+ i)) ) (setq dest (cons line dest) j (1+ j)))) (cons width (cons height (nreverse dest))))))) (defun bitmap-read-xbm-file (file) (bitmap-read-xbm-buffer (find-file-noselect (expand-file-name file)))) (defun bitmap-insert-xbm-buffer (buffer) "Insert xbm bitmap from BUFFER. Very slow! [bitmap.el]" (let* ((cmp (bitmap-decode-xbm (bitmap-read-xbm-buffer buffer))) (len (length cmp)) (i 0)) (while (< i len) (insert (bitmap-compose (aref cmp i)) ?\n) (setq i (1+ i))))) (defun bitmap-insert-xbm-file (file &optional no-kill) "Insert xbm bitmap from FILE. Very slow! [bitmap.el]" (interactive "fxbm file: ") (let ((buf (find-file-noselect (expand-file-name file)))) (bitmap-insert-xbm-buffer buf) (or no-kill (kill-buffer buf)))) ;;; @ utilities ;;; (autoload 'progress-feedback-with-label "bm-utils") (autoload 'lprogress-display "bm-utils") (make-obsolete 'lprogress-display 'progress-feedback-with-label) ;;; @ end ;;; (provide 'bitmap) ;;; bitmap.el ends here bitmap-mule-200308250433/bm-utils.el0100644000227700000120000002204107236532672015055 0ustar yamaoka;; bm-utils.el -- utility functions on BITMAP-MULE. ;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. ;; Author: Katsumi Yamaoka ;; Yoshitsugu Mito ;; Created: 2000/03/28 ;; Revised: 2001/02/02 ;; Keywords: bitmap, progress-feedback-with-label, display-time ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; If you would like to use `display-time' with XEmacs style, ;; for example, put the following lines in your .emacs file. ;; ;;(if (and (not (featurep 'xemacs)) ;; window-system ;; (>= emacs-major-version 20)) ;; (progn ;; (require 'bm-utils) ;; (setq display-time-interval 1) ;; (setq display-time-string-forms ;; '((bitmap-string-to-special-symbols ;; (format-time-string "%T" now)) ;; (bitmap-load-average-to-bitmap load) ;; ;; If you have another biff, remove the following 3 lines. ;; (if mail ;; bitmap-full-mailbox-data ;; bitmap-empty-mailbox-data) ;; )) ;; (display-time-mode 1))) ;;; Code: (eval-when-compile (require 'cl) ;; `dolist' may be defined in egg.el, we should use the proper one. (if (<= emacs-major-version 20) (load "cl-macs" nil t))) (eval-when-compile (require 'static)) (require 'pcustom) (require 'bitmap) (defcustom bitmap-progress-feedback-textual nil "If it is non-nil, progress display will be textual." :type 'boolean :group 'bitmap-mule) (defvar bitmap-special-symbol-alist (list '(? . " ") (cons ?% (bitmap-compose "00000000007A4A4C4C781E3232525E00")) (cons ?- (bitmap-compose "000000000000003C7800000000000000")) (cons ?0 (bitmap-compose "007CBAC6C6C6C2800286C6C6C6BA7C00")) (cons ?1 (bitmap-compose "00000206060602000206060606020000")) (cons ?2 (bitmap-compose "007C3A060606023C7880C0C0C0B87C00")) (cons ?3 (bitmap-compose "007C3A060606023C7A060606063A7C00")) (cons ?4 (bitmap-compose "000082C6C6C6C2BC7A06060606020000")) (cons ?5 (bitmap-compose "007CB8C0C0C0C0BC7A060606063A7C00")) (cons ?6 (bitmap-compose "007CB8C0C0C0C0BC7A86C6C6C6BA7C00")) (cons ?7 (bitmap-compose "007CBAC6C6C6C2800206060606020000")) (cons ?8 (bitmap-compose "007CBAC6C6C6C2BC7A86C6C6C6BA7C00")) (cons ?9 (bitmap-compose "007CBAC6C6C6C2BC7A060606063A7C00"))) "Alist of char and special symbol bitmap.") (defvar bitmap-progress-data-for-clear-bar (list (bitmap-compose "55AA552A152A152A152A152A15AA55AA") (bitmap-compose "55AA550A050A050A050A050A05AA55AA") (bitmap-compose "55AA5502010201020102010201AA55AA")) "Bitmaps for progress guage with clear bar.") (defvar bitmap-progress-backgrounds-for-clear-bar (list (bitmap-compose "05020502050205020502050205020502") (bitmap-compose "55AA5500000000000000000000AA55AA") (bitmap-compose "55AA55AA55AA55AA55AA55AA55AA55AA") (bitmap-compose "40A040A040A040A040A040A040A040A0")) "Bitmaps for progress guage background with clear bar.") (defvar bitmap-progress-data-for-opaque-bar (list (bitmap-compose "55AA55EAF5EAF5EAF5EAF5EAF5AA55AA") (bitmap-compose "55AA55FAF5FAF5FAF5FAF5FAF5AA55AA") (bitmap-compose "55AA55FEFDFEFDFEFDFEFDFEFDAA55AA")) "Bitmaps for progress guage with opaque bar.") (defvar bitmap-progress-backgrounds-for-opaque-bar (list (bitmap-compose "05020502050205020502050205020502") (bitmap-compose "55AA55FFFFFFFFFFFFFFFFFFFFAA55AA") (bitmap-compose "55AA55AA55AA55AA55AA55AA55AA55AA") (bitmap-compose "40A040A040A040A040A040A040A040A0")) "Bitmaps for progress guage background with opaque bar.") (defcustom bitmap-progress-feedback-use-clear-bar t "Non-nil means progress bar will be displayed clearly, otherwise opaquely." :type (` (radio (const :format (, (concat "%{" (car bitmap-progress-backgrounds-for-clear-bar) (bitmap-make-string 20 (nth 1 bitmap-progress-backgrounds-for-clear-bar)) (bitmap-make-string 5 (nth 2 bitmap-progress-backgrounds-for-clear-bar)) (nth 3 bitmap-progress-backgrounds-for-clear-bar) "%} ")) t) (const :tag (, (concat (car bitmap-progress-backgrounds-for-opaque-bar) (bitmap-make-string 20 (nth 1 bitmap-progress-backgrounds-for-opaque-bar)) (bitmap-make-string 5 (nth 2 bitmap-progress-backgrounds-for-opaque-bar)) (nth 3 bitmap-progress-backgrounds-for-opaque-bar))) nil))) :group 'bitmap-mule) (eval-when-compile (defmacro bitmap-progress-data () '(if bitmap-progress-feedback-use-clear-bar bitmap-progress-data-for-clear-bar bitmap-progress-data-for-opaque-bar)) (defmacro bitmap-progress-backgrounds () '(if bitmap-progress-feedback-use-clear-bar bitmap-progress-backgrounds-for-clear-bar bitmap-progress-backgrounds-for-opaque-bar))) (defvar bitmap-load-average-data (let (rest) (dolist (data '("00000000000101030307070F0F1F0000007878F8F8F8F8F8F8F8F8F8F8F80000" "00000000000101030307070F001F0000007878F8F8F8F8F8F8F8F8F800F80000" "00000000000101030307000F001F0000007878F8F8F8F8F8F8F800F800F80000" "00000000000101030007000F001F0000007878F8F8F8F8F800F800F800F80000" "00000000000100030007000F001F0000007878F8F8F800F800F800F800F80000" "00000000000100030007000F001F0000007878F800F800F800F800F800F80000" "00000000000100030007000F001F0000007800F800F800F800F800F800F80000") rest) (setq rest (nconc rest (list (bitmap-compose data)))))) "Bitmaps for load average 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0.") (defvar bitmap-empty-mailbox-data (bitmap-compose "000000003F202824222528203F00000000000000FE020A1222528A02FE000000") "Bitmap for empty mailbox.") (defvar bitmap-full-mailbox-data (bitmap-compose "000000003F2F373B3D3A372F3F00000000000000FEFAF6EEDEAE76FAFE000000") "Bitmap for full mailbox.") (defun bitmap-string-to-special-symbols (string) "Convert STRING to a special symbols." (let ((rest "")) (dolist (char (append string nil) rest) (setq rest (concat rest (or (cdr (assq char bitmap-special-symbol-alist)) (char-to-string char))))))) (defun bitmap-progress-feedback-with-label (label fmt &optional value &rest args) "Print a progress gauge and message in the echo area. First argument LABEL is ignored. The rest of the arguments are the same as to `format'. [XEmacs 21.2.36 emulating function]" (if (and (integerp value) fmt) (let ((msg (apply 'format fmt args)) (val (abs value))) (if (> val 100) (if (zerop (setq val (% val 100))) (setq val 100))) (if (or (not window-system) (< emacs-major-version 20) bitmap-progress-feedback-textual) (message "%s%s%s" msg (make-string (/ val 5) ?.) (if (eq 100 value) "done" "")) (let ((msgmax (max 0 (- (window-width (minibuffer-window)) 29 (max 3 (string-width (number-to-string value)))))) (cursor-in-echo-area t)) (message (concat "%-" (number-to-string msgmax) "s%s%s%s%s%s%s") (cond ((zerop msgmax) "") ((> (string-width msg) msgmax) (if (<= msgmax 3) "" (concat (static-if (fboundp 'truncate-string-to-width) (truncate-string-to-width msg (- msgmax 3)) (truncate-string msg (- msgmax 3))) "..."))) (t msg)) (car (bitmap-progress-backgrounds)) (bitmap-make-string (/ val 4) (nth 1 (bitmap-progress-backgrounds))) (if (zerop (% val 4)) "" (nth (1- (% val 4)) (bitmap-progress-data))) (bitmap-make-string (- 25 (/ (+ 3 val) 4)) (nth 2 (bitmap-progress-backgrounds))) (nth 3 (bitmap-progress-backgrounds)) (bitmap-string-to-special-symbols (format "%3d%%" value)))))) (message ""))) (defalias 'progress-feedback-with-label 'bitmap-progress-feedback-with-label) (defalias 'lprogress-display 'bitmap-progress-feedback-with-label) (make-obsolete 'lprogress-display 'progress-feedback-with-label) ;;(defun progress-feedback-with-label-test () ;; (interactive) ;; (let ((bitmap-progress-feedback-textual nil) ;; (n -20) ;; (textual (not (and window-system (>= emacs-major-version 20))))) ;; (while (< n 120) ;; (if textual ;; (progress-feedback-with-label nil "Processing" n) ;; (progress-feedback-with-label nil "Processing..." n)) ;; (sleep-for 0.1) ;; (setq n (1+ n))) ;; (if textual ;; (progress-feedback-with-label nil "Processing" n) ;; (progress-feedback-with-label nil "Processing...done" n)))) (defun bitmap-load-average-to-bitmap (load) "Convert load average data to bitmap." (nth (min 6 (round (* 2 (string-to-number load)))) bitmap-load-average-data)) (provide 'bm-utils) ;;; bm-utiles.el ends here bitmap-mule-200308250433/emacs-21.1-composite.patch0100644000227700000120000000321407407604167017467 0ustar yamaoka2001-12-17 Sam Steingold * coding.c (DECODE_COMPOSITION_END): Fixed a typo in the last patch (COMPOSING_P, not COMPOSING). 2001-12-17 Richard M. Stallman * coding.c (code_convert_region): Update coding->cmp_data->char_offset before calling decode_coding. * charset.c (Fdefine_charset): Call Fupdate_coding_systems_internal. * coding.c (DECODE_COMPOSITION_END): Check for ! COMPOSING_P (coding) instead of only for COMPOSITION_DISABLED. --- emacs-21.1/src/charset.c~ Fri Jul 13 09:30:42 2001 +++ emacs-21.1/src/charset.c Mon Dec 17 15:33:12 2001 @@ -710,6 +710,7 @@ Fput (charset_symbol, Qcharset, CHARSET_TABLE_ENTRY (XINT (charset_id))); CHARSET_SYMBOL (XINT (charset_id)) = charset_symbol; Vcharset_list = Fcons (charset_symbol, Vcharset_list); + Fupdate_coding_systems_internal (); return Qnil; } --- emacs-21.1/src/coding.c~ Mon Jul 23 09:26:46 2001 +++ emacs-21.1/src/coding.c Mon Dec 17 15:33:12 2001 @@ -1665,7 +1665,7 @@ #define DECODE_COMPOSITION_END(c1) \ do { \ - if (coding->composing == COMPOSITION_DISABLED) \ + if (! COMPOSING_P (coding)) \ { \ *dst++ = ISO_CODE_ESC; \ *dst++ = c1; \ @@ -5518,7 +5518,11 @@ if (encodep) result = encode_coding (coding, src, dst, len_byte, 0); else - result = decode_coding (coding, src, dst, len_byte, 0); + { + if (coding->composing != COMPOSITION_DISABLED) + coding->cmp_data->char_offset = from + inserted; + result = decode_coding (coding, src, dst, len_byte, 0); + } /* The buffer memory is now: +--------+-------converted-text----+--+------original-text----+---+ bitmap-mule-200308250433/font/0040755000227700000120000000000007722310612013735 5ustar yamaokabitmap-mule-200308250433/font/bitmap16.el0100644000227700000120000001015007240235207015675 0ustar yamaoka;;; bitmap16.el --- a font file generator for 8x16 bitmap patterns ;; Copyright (C) 2001 Katsumi Yamaoka ;; Author: Katsumi Yamaoka ;; Keywords: bitmap, bdf, font ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; All files generated by this program can be distributed under the ;; GNU General Public License. See the beginning of those files. ;;; Code: (defun generate-bitmap-bdf-font () "Generate a bdf font file in the current directory for 8x16 bitmap patterns. The name of the file will be \"bitmap16.bdf\"." (let ((buffer (get-buffer-create "bitmap16.bdf"))) (save-excursion (set-buffer buffer) (erase-buffer) (setq buffer-file-name (expand-file-name (buffer-name))) (insert "STARTFONT 2.1 COMMENT This font was automatically generated by BITMAP-MULE. COMMENT Font for BITMAP 8x16. COMMENT Whole bitmap patterns of 8x16 can be displayed by COMMENT overwriting 16 characters of this font (one char per one row). ") (insert "COMMENT COMMENT Copyright (C) 2001 Katsumi Yamaoka COMMENT COMMENT This font is free data; you can redistribute it and/or modify COMMENT it under the terms of the GNU General Public License as published by COMMENT the Free Software Foundation; either version 2, or (at your option) COMMENT any later version. COMMENT COMMENT This font is distributed in the hope that it will be useful, COMMENT but WITHOUT ANY WARRANTY; without even the implied warranty of COMMENT MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the COMMENT GNU General Public License for more details. COMMENT COMMENT You should have received a copy of the GNU General Public License COMMENT along with this font; see the file COPYING. If not, write to the COMMENT Free Software Foundation, Inc., 59 Temple Place - Suite 330, COMMENT Boston, MA 02111-1307, USA. ") (insert "COMMENT FONT -Misc-Fixed-Medium-R-Normal--16-120-100-100-M-80-BITMAP.8x16-0 SIZE 16 100 100 FONTBOUNDINGBOX 8 16 0 -2 STARTPROPERTIES 21 FOUNDRY \"Misc\" FAMILY_NAME \"Fixed\" WEIGHT_NAME \"Medium\" SLANT \"R\" SETWIDTH_NAME \"Normal\" ADD_STYLE_NAME \"\" PIXEL_SIZE 16 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING \"M\" AVERAGE_WIDTH 80 CHARSET_REGISTRY \"BITMAP.8x16\" CHARSET_ENCODING \"0\" STRIKEOUT_ASCENT 14 STRIKEOUT_DESCENT 2 X_HEIGHT 16 DEFAULT_CHAR 8224 FONT_DESCENT 2 FONT_ASCENT 14 FACE_NAME \"8x16 BITMAP\" ENDPROPERTIES CHARS 4082 ") ;; Space (all bits cleared) character (insert "STARTCHAR C000 ENCODING 8224 SWIDTH 480 0 DWIDTH 8 0 BBX 0 0 0 0 BITMAP ENDCHAR ") ;; Block (all bits set) character (insert "STARTCHAR CFFFFF ENCODING 8225 SWIDTH 480 0 DWIDTH 8 0 BBX 8 16 0 -2 BITMAP FF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF\nFF ENDCHAR ") (let ((index 0) (row 0) column) (while (< row 16) (setq column 0) (while (< column 255) (setq column (1+ column)) (insert (format "STARTCHAR C%x%02x\n" row column) (format "ENCODING %d\n" (+ 8448 (* (/ index 96) 256) (% index 96) 32)) "SWIDTH 480 0\n" "DWIDTH 8 0\n" (format "BBX 8 1 0 %d\n" (- 13 row)) "BITMAP\n" (format "%02x\n" column) "ENDCHAR\n") (setq index (1+ index))) (setq row (1+ row)))) (insert "ENDFONT\n") ;; Force the line-break codes to be LF. (let ((file-coding-system '*noconv*) (buffer-file-coding-system 'binary)) (save-buffer))))) ;; bitmap16.el ends here bitmap-mule-200308250433/font/Makefile0100644000227700000120000000203307236532672015404 0ustar yamaokaFONTDIR = /usr/X11R6/lib/X11/fonts/misc EMACS = emacs PCFS = bitmap12.pcf bitmap14.pcf \ bitmap16.pcf bitmap20.pcf bitmap24.pcf all: bdf $(PCFS) clean:: rm -f $(PCFS) install: all for f in $(PCFS); do \ install -m 644 $$f $(FONTDIR); \ gzip -f $(FONTDIR)/$$f; \ done (cd $(FONTDIR); mkfontdir) xset fp rehash install-nogzip: all for f in $(PCFS); do \ install -m 644 $$f $(FONTDIR); \ done (cd $(FONTDIR); mkfontdir) xset fp rehash bdf: bitmap16.bdf bitmap12.bdf bitmap14.bdf bitmap20.bdf bitmap24.bdf bitmap16.bdf: $(EMACS) -batch -q -no-site-file \ -l bitmap16.el -f generate-bitmap-bdf-font bitmap12.bdf: bitmap16.bdf bdfresize -f 12/16 bitmap16.bdf | sed "s/8x16/6x12/g" > bitmap12.bdf bitmap14.bdf: bitmap16.bdf bdfresize -f 14/16 bitmap16.bdf | sed "s/8x16/7x14/g" > bitmap14.bdf bitmap20.bdf: bitmap16.bdf bdfresize -f 20/16 bitmap16.bdf | sed "s/8x16/10x20/g" > bitmap20.bdf bitmap24.bdf: bitmap16.bdf bdfresize -f 24/16 bitmap16.bdf | sed "s/8x16/12x24/g" > bitmap24.bdf %.pcf: %.bdf bdftopcf $< > $@ bitmap-mule-200308250433/font/README.en0100644000227700000120000000213207236532672015225 0ustar yamaokaThis directory is for making some bdf fonts used by BITMAP-MULE. The file bitmap16.bdf will be generated first, and then the rest of files will be generated automatically using `bdfresize'(*1). If you don't have `bdfresize', you can use the ready-made fonts which is available from: ftp://ftp.jpl.org/pub/elisp/bitmap/bitmap-fonts-${VERSION}.tar.gz Note that it should be extracted in *this* directory. How to Install -------------- 1) Make sure of a directory where the font files are installed and what Emacs you wish to use for generating the file bitmap16.bdf. The default values are: FONTDIR=/usr/X11R6/lib/X11/fonts/misc EMACS=emacs 2) Type `su' to become the root. 3) Run make. make install Or you can specify FONTDIR or EMACS as such as follows. make install FONTDIR=/usr/local/lib/X11/fonts/misc EMACS=mule On such a system as gzipped pcf files are not recognized properly, you should type `install-nogzip' instead of `install'. (*1) ftp://ftp.kondara.org/pub/Jirai/SOURCES/bdfresize-1.5.tar.gz ftp://ftp.cs.titech.ac.jp/pub/X11/contrib/Local/bdfresize-1.4.tar.Z bitmap-mule-200308250433/font/README.ja0100644000227700000120000000237107236532672015222 0ustar yamaoka$B$3$N%G%#%l%/%H%j$G$O(B BITMAP-MULE $B$G;H$&$?$a$N$$$/$D$+$N(B bdf $B%U%)%s%H$r(B $B:n@.$7$^$9!#:G=i$K(B bitmap16.bdf $B$,:n$i$l!"B>$N%U%!%$%k$O(B `bdfresize'(*1) $B$r;H$C$F<+F0@8@.$7$^$9!#(B $B$b$7(B `bdfresize' $B$r$*;}$A$G$J$$$J$i!"4{@=$N0J2<$N%U%)%s%H$r;H$&$3$H$b(B $B$G$-$^$9!#(B ftp://ftp.jpl.org/pub/elisp/bitmap/bitmap-fonts-${VERSION}.tar.gz $B$J$*!"$3$l$O(B *$B$3$N(B* $B%G%#%l%/%H%j$GE83+$9$kI,MW$,$"$j$^$9!#(B $B%$%s%9%H!<%k$N$d$jJ}(B -------------------- 1) $B%U%)%s%H%U%!%$%k$,%$%s%9%H!<%k$5$l$k%G%#%l%/%H%j$H!"(Bbitmap16.bdf $B$r(B $B:n$k$?$a$K;H$&(B Emacs $B$,2?$G$"$k$+$r3NG'$7$F2<$5$$!#%G%U%)%k%H$O(B FONTDIR=/usr/X11R6/lib/X11/fonts/misc EMACS=emacs $B$G$9!#(B 2) `su' $B$r%?%$%W$7$F(B root $B$K$J$C$F2<$5$$!#(B 3) make $B$7$^$9!#(B make install $B0J2<$N$h$&$K(B FONTDIR $B$d(B EMACS $B$r;XDj$9$k$3$H$b$G$-$^$9!#(B make install FONTDIR=/usr/local/lib/X11/fonts/misc EMACS=mule gzip $B$G05=L$5$l$?(B pcf $B%U%!%$%k$,;H$($J$$%7%9%F%`$G$O!"(B`install' $B$N(B $BBe$o$j$K(B `install-nogzip' $B$H%?%$%W$9$kI,MW$,$"$j$^$9!#(B (*1) ftp://ftp.kondara.org/pub/Jirai/SOURCES/bdfresize-1.5.tar.gz ftp://ftp.cs.titech.ac.jp/pub/X11/contrib/Local/bdfresize-1.4.tar.Z bitmap-mule-200308250433/gnus-bitmap.el0100644000227700000120000003607007722310423015542 0ustar yamaoka;; gnus-bitmap.el -- bitmap utilities for gnus. ;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. ;; Author: KORIYAMA Naohiro ;; Katsumi Yamaoka ;; Tatsuya Ichikawa ;; Created: 1999/08/20 ;; Revised: 2001/02/02 ;; Keywords: bitmap, x-face, splash, gnus ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; How to use: ;; If you would like to splash the startup screen with bitmap image, ;; put the following lines in your .emacs file before gnus is loaded. ;; ;; ;; It must be placed in .emacs file before gnus.el(c) is loaded. ;; (if window-system ;; (progn ;; (autoload 'gnus-bitmap-splash "gnus-bitmap") ;; (add-hook 'gnus-load-hook 'gnus-bitmap-splash))) ;; ;; Or you can inhibit the use of bitmap images (except for X-Face) as ;; follows. ;; ;; (setq gnus-bitmap-splash-image nil ;; gnus-bitmap-modeline-image nil) ;;; Code: (eval-when-compile (require 'cl) (require 'static)) (require 'pcustom) (require 'alist) (require 'bitmap) (require 'x-face-mule) ;;; Internal variables and the related functions. ;; (eval-when-compile (defmacro gnus-bitmap-splash-image-internal () (let ((file (expand-file-name "gnus.xbm" (if (string-match "/tm/$" default-directory) "../bitmap-mule/";; tm-8 "./")))) (if (file-exists-p file) (progn (message " ++ decoding internal image for splashing...") (bitmap-decode-xbm (bitmap-read-xbm-file file))) (byte-compile-warn "Warning: file \"gnus.xbm\" not found.") nil))) (defmacro gnus-bitmap-modeline-image-internal () (let ((file (expand-file-name "gnus-pointer.xbm" (if (string-match "/tm/$" default-directory) "../bitmap-mule/";; tm-8 "./")))) (if (file-exists-p file) (progn (message " ++ decoding internal image for modeline identifier...") (bitmap-decode-xbm (bitmap-read-xbm-file file))) (byte-compile-warn "Warning: file \"gnus-pointer.xbm\" not found.") nil))) (defmacro gnus-bitmap-xbm-to-bitmap (cmp) (` (let ((cmp (, cmp))) (if cmp (let ((len (length cmp)) (bitmap (bitmap-compose (aref cmp 0))) (i 1)) (while (< i len) (setq bitmap (concat bitmap "\n" (bitmap-compose (aref cmp i))) i (1+ i))) bitmap)))))) (defconst gnus-bitmap-splash-image-internal (gnus-bitmap-xbm-to-bitmap (gnus-bitmap-splash-image-internal))) (defconst gnus-bitmap-modeline-image-internal (gnus-bitmap-xbm-to-bitmap (gnus-bitmap-modeline-image-internal))) (defvar gnus-bitmap-splash-image-data nil) (defvar gnus-bitmap-modeline-identifier nil) (eval-when-compile (makunbound 'gnus-bitmap-broken-facility-check) (defcustom gnus-bitmap-broken-facility-check t "The value t means `:set' does not work at the loading time. For instance it will be occurred under Mule 2.3 based on Emacs 19.34 using custom-1.9962." :set (function (lambda (symbol value) (set-default symbol nil))))) (static-if gnus-bitmap-broken-facility-check (progn (defun gnus-bitmap-set-splash-image-data (arg) (setq gnus-bitmap-splash-image-data (cond ((eq 'internal arg) gnus-bitmap-splash-image-internal) ((and (stringp arg) (file-exists-p arg)) (gnus-bitmap-xbm-to-bitmap arg))))) (defun gnus-bitmap-set-modeline-image-data (arg) (setq gnus-bitmap-modeline-identifier (cond ((eq 'internal arg) gnus-bitmap-modeline-image-internal) ((and (stringp arg) (file-exists-p arg)) (gnus-bitmap-xbm-to-bitmap arg)))))) (defmacro gnus-bitmap-set-splash-image-data (arg) (` (setq gnus-bitmap-splash-image-data (cond ((eq 'internal (, arg)) gnus-bitmap-splash-image-internal) ((and (stringp (, arg)) (file-exists-p (, arg))) (gnus-bitmap-xbm-to-bitmap (, arg))))))) (defmacro gnus-bitmap-set-modeline-image-data (arg) (` (setq gnus-bitmap-modeline-identifier (cond ((eq 'internal (, arg)) gnus-bitmap-modeline-image-internal) ((and (stringp (, arg)) (file-exists-p (, arg))) (gnus-bitmap-xbm-to-bitmap (, arg)))))))) ;;; Options. ;; (defcustom x-face-mule-gnus-force-decode-headers nil "If non-nil, display X-Face even if `gnus-show-mime' is nil." :type 'boolean :group 'x-face-mule) (defcustom gnus-bitmap-splash-image 'internal "If it is the symbol `internal', use the internal image for splashing the startup screen. It can also be a name of XBM file. If it is nil, bitmap image is not used." :type (list 'radio (list 'const :tag (concat "Internal image\n" gnus-bitmap-splash-image-internal) 'internal) '(file :tag "XBM file") '(const :tag "Off" nil)) :set (function (lambda (symbol value) (gnus-bitmap-set-splash-image-data value) (set-default symbol value))) :group 'bitmap-mule :group 'gnus-start) (defcustom gnus-bitmap-modeline-image 'internal "If it is the symbol `internal', use the internal image for displaying a nifty image in the modeline. It can also be a name of XBM file. If it is nil or the value of `emacs-major-version' is less than 20, bitmap image is not used." :type (list 'radio (list 'const :tag (concat "Internal image [" gnus-bitmap-modeline-image-internal "]") 'internal) '(file :tag "XBM file") '(const :tag "Off" nil)) :set (function (lambda (symbol value) (gnus-bitmap-set-modeline-image-data value) (set-default symbol value))) :group 'bitmap-mule :group 'gnus-start) (static-when gnus-bitmap-broken-facility-check (gnus-bitmap-set-splash-image-data gnus-bitmap-splash-image) (gnus-bitmap-set-modeline-image-data gnus-bitmap-modeline-image)) ;;; Avoid byte compile warnings. ;; (defvar gnus-article-buffer) (defvar gnus-article-display-hook) (defvar gnus-article-x-face-command) (defvar gnus-ignored-headers) (defvar gnus-mule-bitmap-image-file) (defvar gnus-simple-splash) (defvar gnus-strict-mime) (defvar gnus-treat-display-x-face) (defvar gnus-treat-display-xface) (defvar gnus-treat-hide-headers) (defvar gnus-version) (defvar gnus-visible-headers) (defvar last) (eval-when-compile (fset 'gnus-bitmap-original-gnus-group-startup-message 'ignore) (autoload 'article-goto-body "gnus-art") (autoload 'gnus-indent-rigidly "gnus") (autoload 'gnus-splash "gnus") (autoload 'gnus-summary-select-article "gnus-sum")) ;;; X-Face functions. ;; ;;;###autoload (defun x-face-mule-gnus-article-display-x-face (&rest args) "Decode and show X-Face. The buffer is expected to be narrowed to just the headers of the article. If `gnus-article-x-face-command' is set to the symbol of this function, gnus will call it for each X-Face fields. So we set the bound variable `last' to T in order to make good use of time." (when window-system (let ((x-face-mule-highlight-x-face-style (if (and (eq x-face-mule-highlight-x-face-style 'xmas) (memq this-command '(gnus-summary-toggle-mime))) 'default x-face-mule-highlight-x-face-style)) x-face-mule-preserve-original-from-field) (x-face-mule-x-face-decode-message-header-1) (x-face-mule-highlight-header))) (setq last t)) (defun x-face-mule-gnus-highlight-headers-if-no-mime () "Decode and show X-Face even if `gnus-show-mime' is nil. It is controlled by the value of `x-face-mule-gnus-force-decode-headers'." (when (and x-face-mule-gnus-force-decode-headers (eq major-mode 'gnus-article-mode) (memq x-face-mule-highlight-x-face-position '(from x-face))) (x-face-decode-message-header))) ;;; Splash the startup screen. ;; (defun gnus-bitmap-sit-for-0 () (remove-hook 'gnus-startup-hook 'gnus-bitmap-sit-for-0) (sit-for 0)) (defun gnus-bitmap-startup-message (&optional x y) "Insert startup message in current buffer." (if (null gnus-bitmap-splash-image-data) (gnus-bitmap-original-gnus-group-startup-message x y) (erase-buffer) (insert gnus-version "\n") (let ((fill-column (1- (window-width)))) (center-region (point-min) (point-max))) (let ((start (point)) width) ;; Insert an image. (insert gnus-bitmap-splash-image-data) (setq width (current-column)) (insert "\n") ;; And then hack it. (gnus-indent-rigidly start (point) (/ (max (- (window-width) (or x (1- width))) 0) 2)) (goto-char start) (insert-char ?\n (/ (max 0 (- (window-height) (count-lines start (point-max)))) 2))) ;; Fontify some. (put-text-property (point-min) (point-max) 'face 'gnus-splash-face) (goto-char (point-min)) (setq mode-line-buffer-identification gnus-version) (setq gnus-simple-splash nil) (set-buffer-modified-p t) ;; Redisplay after `gnus-startup-hook' is evaluated. (add-hook 'gnus-startup-hook 'gnus-bitmap-sit-for-0 'append))) ;;; Modeline identification. ;; (defun gnus-bitmap-mode-line-buffer-identification (line) (let ((l (car line))) (if (and (stringp l) gnus-bitmap-modeline-identifier) (list gnus-bitmap-modeline-identifier (if (string-match "^Gnus: *" l) (substring l (match-end 0)) l)) line))) ;;; Setup. ;; (set-alist 'x-face-mule-highlight-x-face-refresh-method-alist 'gnus-summary-mode (function (lambda () (gnus-summary-select-article nil t)))) (when window-system (add-hook 'gnus-exit-gnus-hook 'x-face-mule-save-cache-file)) (defun gnus-bitmap-redefine (&optional splash) "Redifine variables and functions for the use of BITMAP-MULE. If SPLASH is non-nil, the function `gnus-group-startup-message' is also redefined and splashing the startup screen with a bitmap image." (require 'gnus-art) (setq gnus-strict-mime nil) ;; Modify `gnus-visible-headers' and `gnus-ignored-headers'. (cond ((stringp gnus-visible-headers) (let ((xf (string-match gnus-visible-headers "X-Face:")) (xfi (string-match gnus-visible-headers "X-Face-Img:"))) (cond ((not (or xf xfi)) (setq gnus-visible-headers (format "\\(%s\\)\\|^X-Face:\\|^X-Face-Img:" gnus-visible-headers))) ((not xf) (setq gnus-visible-headers (format "\\(%s\\)\\|^X-Face:" gnus-visible-headers))) ((not xfi) (setq gnus-visible-headers (format "\\(%s\\)\\|^X-Face-Img:" gnus-visible-headers)))))) ((consp gnus-visible-headers) (unless (member "^X-Face:" gnus-visible-headers) (setq gnus-visible-headers (append gnus-visible-headers '("^X-Face:")))) (unless (member "^X-Face-Img:" gnus-visible-headers) (setq gnus-visible-headers (append gnus-visible-headers '("^X-Face-Img:"))))) ((stringp gnus-ignored-headers) (let ((regexp (format "\\\\|%s\\|%s\\\\|%s" "\\^?X-Face\\(-Img\\)?:" "\\^?X-Face\\(-Img\\)?:" "\\^?X-Face\\(-Img\\)?:"))) (while (string-match regexp gnus-ignored-headers) (setq gnus-ignored-headers (concat (substring gnus-ignored-headers 0 (match-beginning 0)) (substring gnus-ignored-headers (match-end 0))))))) ((consp gnus-ignored-headers) (when (member "^X-Face:" gnus-ignored-headers) (setq gnus-ignored-headers (delete "^X-Face:" gnus-ignored-headers))) (when (member "^X-Face-Img:" gnus-ignored-headers) (setq gnus-ignored-headers (delete "^X-Face-Img:" gnus-ignored-headers))))) (cond ((boundp 'gnus-treat-display-x-face) ;; Gnus v5.10.3, T-gnus 6.16.3 or later. (setq gnus-treat-display-x-face (if (and (featurep 'running-pterodactyl-gnus-0_73-or-later); T-gnus (not x-face-mule-gnus-force-decode-headers)) '(and mime head) 'head) gnus-treat-hide-headers 'head gnus-article-x-face-command 'x-face-mule-gnus-article-display-x-face)) ((boundp 'gnus-treat-display-xface) ;; Pterodactyl Gnus, T-gnus 6.10.064 or later. (setq gnus-treat-display-xface (if (and (featurep 'running-pterodactyl-gnus-0_73-or-later); T-gnus (not x-face-mule-gnus-force-decode-headers)) '(and mime head) 'head) gnus-treat-hide-headers 'head gnus-article-x-face-command 'x-face-mule-gnus-article-display-x-face))) ;; Advise the hiding function. (defadvice article-hide-headers (after x-face-mule-highlight-header activate) "Highlight X-Face field(s) after `article-hide-headers' is done." (x-face-mule-highlight-header)) ;; Gnus 5.7, Semi-gnus 6.10, Nana-gnus 6.13 or earlier. (when (and (boundp 'gnus-article-display-hook) (or (memq 'gnus-article-hide-headers-if-wanted gnus-article-display-hook) (memq 'gnus-article-maybe-highlight gnus-article-display-hook))) (remove-hook 'gnus-article-display-hook 'gnus-article-display-x-face) (add-hook 'gnus-article-display-hook 'x-face-mule-gnus-highlight-headers-if-no-mime 'append)) ;; Redifine the splash function. (when splash (unless (fboundp 'gnus-bitmap-original-gnus-group-startup-message) (fset 'gnus-bitmap-original-gnus-group-startup-message (symbol-function 'gnus-group-startup-message))) (fset 'gnus-group-startup-message 'gnus-bitmap-startup-message) ;; Splash the screen when `gnus' is being loaded. (unless (featurep 'gnus) (gnus-splash))) ;; Invalidate the old style splashing feature. (when (boundp 'gnus-mule-bitmap-image-file) (setq gnus-mule-bitmap-image-file nil)) (when (>= emacs-major-version 20) ;; Redifine the modeline identify function. (fset 'gnus-mode-line-buffer-identification 'gnus-bitmap-mode-line-buffer-identification))) ;;;###autoload (defun gnus-bitmap-splash () "Splash the startup screen. This function has only limited use for `gnus-load-hook' which should be set before `gnus' is loaded." (when (and window-system (not (featurep 'gnus)) gnus-bitmap-splash-image-data) ;; Suppress splashing with an ascii picture. (setq this-command nil) (let ((fns (cdr (assoc "gnus" after-load-alist)))) (if fns (put-alist 'gnus-bitmap-redefine '(t) fns) (eval-after-load "gnus" '(gnus-bitmap-redefine 'splash)))))) (eval-and-compile (autoload 'smiley-toggle-buffer "smiley-mule")) ;;;###autoload (defun gnus-smiley-display (&optional arg) "Display \"smileys\" as small graphical icons. With arg, turn displaying on if and only if arg is positive." (interactive "P") (if window-system (save-excursion (set-buffer gnus-article-buffer) (save-restriction (widen) (article-goto-body) (narrow-to-region (point) (point-max)) (let ((inhibit-read-only t) buffer-read-only) (smiley-toggle-buffer arg)))) (when (interactive-p) (message "You're not under window system.")))) (provide 'gnus-bitmap) ;; gnus-bitmap.el ends here bitmap-mule-200308250433/gnus-pointer.xbm0100644000227700000120000000053207244071031016124 0ustar yamaoka#define gnus_pointer_width 24 #define gnus_pointer_height 16 static char gnus-pointer_bits[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x0c,0x00,0xe0,0x1f,0x00,0x92,0x39,0x00, 0x0e,0x71,0x02,0x46,0xe0,0x03,0x20,0xc0,0x01,0x00,0x08,0x00,0x10,0x0d,0x00, 0xc4,0x08,0x00,0x78,0x08,0x00,0x18,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00, 0x00,0x00,0x00}; bitmap-mule-200308250433/gnus.xbm0100644000227700000120000013211206760154232014455 0ustar yamaoka#define gnus_width 264 #define gnus_height 272 static char gnus_bits[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x6a,0xfb,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x56,0x55,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x5a,0xed,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xd5, 0x9a,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x50,0x6b,0xab,0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xa8,0x56,0x75,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0xb5,0x9a,0xed,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x6a,0x6b,0xbb,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0xad, 0x55,0xed,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xd5,0xaa,0xb6,0xba,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xb5,0x1d, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x80,0x6a,0x6d,0xd5,0xe6,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0xaa,0x52,0x00,0x00,0x40,0x55,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x56,0xab,0x5a,0xed,0x0b,0x00,0x00,0x00, 0x00,0x00,0x00,0xa0,0x6d,0xad,0x01,0x00,0xa0,0xb6,0x05,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xb5,0xb5,0xad,0xb5,0x0e, 0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xab,0xb5,0x02,0x00,0xdc,0x6a,0x15,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xad,0xaa, 0xaa,0xea,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xb5,0x5a,0x01,0x00,0x52, 0xad,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xa0,0xaa,0x5a,0x6b,0xdb,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0xaa,0xd5, 0x06,0xc0,0xad,0x55,0x9b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xa0,0xb5,0xb5,0x56,0xd5,0x2b,0x00,0x00,0x00,0x00,0x00,0x00, 0x56,0x5b,0x6d,0x05,0x20,0xd5,0xb6,0x6d,0x05,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xad,0xd6,0xda,0x6a,0x3d,0x00,0x00,0x00, 0x00,0x00,0x00,0xda,0x6a,0xab,0x1a,0xe0,0xb6,0xaa,0xaa,0x0a,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0x6b,0xad,0xaa,0xad,0x37, 0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x56,0xd5,0x16,0xa8,0xaa,0x6a,0x55,0x0b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xfd,0xaa, 0x56,0xb5,0x1d,0x00,0x00,0x00,0x00,0x00,0x80,0x5a,0xad,0xb6,0x6a,0xa8,0xd6, 0xd6,0xb6,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x6c,0xd4,0x69,0x6d,0xab,0x37,0x00,0x00,0x00,0x00,0x00,0x40,0x6b,0x6b,0xab, 0x56,0xb4,0xb5,0x5a,0xd5,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x54,0x7e,0x80,0x55,0xd5,0x3d,0x00,0x00,0x00,0x00,0x00,0xa0, 0xaa,0xda,0x5a,0xad,0xa8,0xaa,0xb5,0xad,0xd5,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x2a,0x80,0xda,0xb6,0x16,0x00,0x00,0x00, 0x00,0x00,0x50,0x5b,0xab,0x6a,0x6b,0xd7,0xb6,0x56,0xb5,0xb6,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x3e,0x00,0xad,0xaa,0x3f, 0x00,0x00,0x00,0x00,0x00,0xa0,0x6a,0x55,0xab,0x5a,0xad,0xaa,0xaa,0xaa,0xaa, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x2b,0x00, 0x6a,0xad,0x35,0x00,0x00,0x00,0x00,0x00,0xb0,0xb5,0xda,0x5a,0xab,0x6a,0xb5, 0xb5,0xad,0xb5,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x2d,0x1e,0x00,0xac,0xb6,0x3f,0x20,0x00,0x00,0x00,0x00,0x6c,0xab,0xb5,0x6a, 0xb5,0xd5,0x56,0x6b,0x5b,0xab,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xb5,0x1b,0x00,0x6a,0xd5,0x2a,0xa0,0x01,0x00,0x00,0x00,0xaa, 0xda,0x56,0xad,0xd6,0x5a,0xdb,0x5a,0xd5,0x5a,0x0b,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0x96,0x0e,0x00,0x54,0xab,0x3f,0x60,0x02,0x00, 0x00,0x00,0xaa,0xd6,0xab,0xd5,0xaa,0x56,0x55,0x55,0xb5,0xb6,0x1a,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xca,0x1b,0x00,0xb4,0xda,0x2a, 0xa8,0x0d,0x00,0x00,0x80,0xb5,0x75,0xdd,0xb6,0x5a,0xab,0x55,0xdb,0x56,0x55, 0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xd5,0x1e,0x00, 0xa8,0xd5,0x3f,0xa8,0x2a,0x00,0x00,0xa0,0x56,0xdd,0xb7,0xaa,0xb5,0x5a,0x6d, 0x55,0xad,0xd5,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, 0x4d,0x0b,0x00,0x50,0x6b,0x2d,0xd0,0x16,0x00,0x00,0xa0,0xda,0xf6,0x7d,0xb5, 0x56,0xad,0xb5,0xd6,0x6a,0x6d,0xb5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x80,0xe6,0x0f,0x00,0xd8,0xda,0x3b,0xa0,0x6d,0x00,0x00,0x58,0xd5, 0x5f,0xf7,0x6b,0x6d,0x6b,0xef,0x5b,0xab,0xaa,0xad,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0x8a,0x0a,0x00,0xa0,0xd6,0x2e,0x60,0x55,0x00, 0x00,0xa8,0x6d,0xf5,0x5d,0xad,0x55,0xd5,0xdb,0xb6,0xda,0xb6,0xaa,0x06,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc5,0x07,0x00,0x60,0xd5,0x1b, 0x50,0xb5,0x00,0x00,0xb5,0xea,0xdf,0xf7,0x57,0xb5,0xba,0x7e,0xdf,0x55,0x55, 0xdb,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x83,0x02,0x00, 0xd0,0xda,0x0e,0x50,0x5b,0x01,0x80,0xda,0x56,0x75,0xbd,0x6d,0xad,0xed,0xd7, 0x77,0x6f,0xdb,0xaa,0x0a,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x02, 0x81,0x01,0x00,0x50,0xad,0x1f,0xa0,0xaa,0x02,0xa0,0x55,0xfd,0x1f,0xf7,0x5e, 0x6b,0xb7,0x7d,0xfd,0x55,0x55,0x6d,0x0b,0x00,0x00,0x00,0x00,0x04,0x00,0x00, 0x00,0x80,0x01,0x00,0x01,0x00,0xa0,0xf5,0x1a,0xa0,0xad,0x01,0x50,0xad,0xd5, 0x0a,0xa8,0xb7,0xaa,0x7c,0xdf,0x57,0xaf,0xaa,0x56,0x35,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0x80,0x02,0x00,0x00,0x00,0xd8,0xaa,0x17,0x40,0xb5,0x16, 0xae,0x5a,0x7d,0x03,0xf0,0xfe,0xd6,0xf6,0x75,0xff,0xbd,0xdd,0xaa,0x2d,0x00, 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x00,0xb0,0xf6,0x1e, 0xc0,0x56,0x55,0x69,0x6b,0xdb,0x00,0xa0,0xd7,0x6a,0x5f,0xdf,0x55,0xdb,0x66, 0x6d,0xd5,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00, 0xa8,0xaa,0x0d,0xa0,0x6a,0x6b,0xab,0x56,0x6f,0x00,0x80,0x7e,0x9b,0xfd,0x7a, 0xff,0x6f,0x55,0xab,0x56,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0xd0,0x00, 0x00,0x00,0x00,0xd0,0xf6,0x17,0x80,0xb5,0x5a,0xb5,0xd5,0x3a,0x00,0x00,0xd5, 0x6b,0x57,0x00,0xb4,0xfa,0x6d,0xb5,0xb5,0x02,0x00,0x00,0x40,0x03,0x00,0x00, 0x00,0xa0,0x00,0x00,0x00,0x00,0xb0,0x6a,0x0d,0x40,0xab,0xd5,0x56,0xed,0x0f, 0x00,0x00,0x7e,0xd5,0x0d,0x00,0xe0,0xaf,0x55,0xad,0x6a,0x05,0x00,0x00,0xb0, 0x02,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x00,0xa8,0xb5,0x0f,0x80,0x5a,0xad, 0x6a,0xb5,0x1a,0x00,0x00,0xac,0x6f,0x07,0x00,0x00,0x7a,0xdb,0x56,0xad,0x06, 0x00,0x00,0x50,0x01,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x00,0x58,0xed,0x06, 0x60,0xb5,0x5a,0xdb,0xda,0x0f,0x00,0x00,0xf0,0xea,0x02,0x00,0x00,0xee,0x57, 0xb5,0xd5,0x1a,0x00,0x00,0x6c,0x01,0x00,0x00,0x00,0x28,0x0e,0x00,0x00,0x00, 0xb0,0xea,0x0b,0xc0,0xd6,0xd6,0xaa,0x76,0x03,0x00,0x00,0x40,0xb7,0x03,0x00, 0x00,0xb8,0xad,0x55,0x6d,0x6b,0x00,0x00,0xa8,0x02,0x00,0x00,0x00,0x54,0x0b, 0x00,0x00,0x00,0x50,0xbb,0x0e,0x70,0xad,0xb5,0x56,0xfd,0x05,0x00,0x00,0xd8, 0xfd,0x00,0x00,0x00,0xd8,0xbe,0xb6,0x55,0x55,0x01,0x00,0x55,0x01,0x00,0x00, 0x00,0x1a,0x07,0x00,0x00,0x00,0x68,0xf5,0x0b,0x70,0xab,0xaa,0xda,0x5e,0x03, 0x00,0x00,0x50,0xaf,0x00,0x00,0x00,0xf0,0xd7,0xaa,0xb6,0x5a,0x15,0xa0,0xba, 0x03,0x00,0x00,0x00,0xaa,0x05,0x00,0x00,0x00,0xb0,0xb6,0x0e,0xd0,0x5a,0x6d, 0x55,0xeb,0x01,0x00,0x00,0xb4,0xfd,0x00,0x00,0x00,0x40,0x7f,0x6d,0xd5,0xb6, 0xad,0x6a,0xab,0x81,0x02,0x00,0x80,0x55,0x07,0x00,0x00,0x00,0xa8,0xf5,0x03, 0xf0,0x6a,0xab,0xb6,0x7f,0x00,0x00,0x00,0x0a,0x2e,0x00,0x00,0x00,0x80,0xab, 0xab,0x5a,0x55,0x55,0x5b,0x55,0x01,0x05,0x00,0x40,0xcd,0x03,0x00,0x00,0x00, 0xa8,0xba,0x06,0x58,0xab,0xda,0xea,0x1a,0x00,0x00,0x00,0x1a,0x7b,0x00,0x00, 0x00,0x00,0xfe,0xda,0xd6,0x6a,0x6b,0xd5,0xb6,0xc1,0x02,0x00,0x40,0xab,0x02, 0x00,0x00,0x00,0xb0,0xf6,0x03,0xfc,0xb5,0x55,0xb5,0x1f,0x00,0x00,0x80,0x25, 0x2e,0x00,0x00,0x00,0x00,0xb6,0x57,0x55,0x5b,0xb5,0xad,0xda,0x40,0x0d,0x00, 0x68,0xe5,0x03,0x00,0x00,0x00,0x58,0xab,0x06,0x54,0xad,0xb6,0xfd,0x0a,0x00, 0x00,0x80,0x16,0x1a,0x00,0x00,0x00,0x00,0xdc,0xb6,0xad,0xd6,0x56,0xb5,0xd5, 0x40,0x03,0x00,0xaa,0xa2,0x01,0x00,0x00,0x00,0xd0,0xfa,0x07,0xfc,0xd5,0xaa, 0xae,0x07,0x00,0x00,0x80,0x72,0x1c,0x00,0x00,0x00,0x00,0xf0,0x5d,0xd5,0xaa, 0xaa,0xaa,0x6a,0x60,0x2d,0x40,0xb5,0xf5,0x00,0x00,0x00,0x00,0x68,0x6d,0x05, 0xd0,0xab,0x6d,0x7b,0x01,0x00,0x00,0x60,0x59,0x08,0x00,0x00,0x00,0x00,0xd0, 0xd7,0x5a,0xb5,0x6d,0x57,0x7b,0xa0,0x5a,0x6d,0xab,0xa6,0x00,0x00,0x00,0x00, 0x54,0xbd,0x03,0xf8,0xb6,0xaa,0xde,0x01,0x00,0x00,0xa0,0x3d,0x04,0x00,0x00, 0x00,0x00,0x60,0x7d,0x6b,0x5b,0x55,0xb5,0x55,0xa0,0xd6,0xb6,0xda,0xfa,0x00, 0x00,0x00,0x00,0x54,0xeb,0x02,0xa0,0x5f,0xf5,0x7b,0x00,0x00,0x00,0x58,0x35, 0x00,0x00,0x00,0x00,0x00,0xc0,0x6b,0x55,0x55,0xdb,0x6a,0x75,0xb0,0x55,0xd5, 0xaa,0x36,0x00,0x00,0x00,0x00,0xd8,0xfa,0x03,0xe0,0xf5,0xbf,0x5d,0x00,0x00, 0x00,0x50,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0xde,0xb6,0xad,0x55,0xad,0x1a, 0x50,0xb5,0x55,0x6d,0x6d,0x00,0x00,0x00,0x00,0x54,0x5d,0x01,0xa0,0xdf,0xf6, 0x36,0x00,0x00,0x00,0xb4,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x55,0xb5, 0x6a,0xab,0x3d,0x68,0xab,0xb6,0xd5,0x3e,0x00,0x00,0x00,0x00,0x58,0xf7,0x01, 0xc0,0xb5,0xaf,0x1f,0x00,0x00,0x00,0x94,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, 0x6e,0xab,0xd6,0x5a,0xd5,0x0e,0xa8,0xda,0xaa,0x5a,0x2f,0x00,0x00,0x00,0x00, 0x6c,0x7d,0x01,0x00,0xff,0xfa,0x0a,0x00,0x00,0x00,0x5a,0x03,0x00,0x00,0x00, 0x00,0x00,0x00,0xbc,0x6f,0x55,0xab,0xad,0x1b,0x6c,0x55,0x6d,0xd5,0x35,0x00, 0x00,0x00,0x00,0xa8,0xea,0x01,0x80,0xad,0xbf,0x03,0x00,0x00,0x00,0xe6,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0x5b,0x6b,0x6d,0xd5,0x1e,0xaa,0xb6,0x56, 0x5b,0x1f,0x00,0x00,0x00,0x00,0xd4,0xbe,0x00,0x00,0xf7,0xea,0x00,0x00,0x00, 0x80,0xd5,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0xde,0x56,0x55,0xdb,0x05, 0xb4,0xd5,0xaa,0xd6,0x0d,0x00,0x00,0x00,0x00,0xac,0xdb,0x00,0x00,0xbc,0xbf, 0x00,0x00,0x00,0x80,0x72,0x01,0x00,0x00,0x00,0x00,0x0a,0x00,0xc0,0x77,0xb5, 0xb6,0x6a,0x0f,0xad,0x5a,0xdb,0x6a,0x0b,0x00,0x00,0x00,0x00,0x6a,0xf6,0x00, 0x00,0xe8,0x3a,0x00,0x00,0x00,0x40,0xe9,0x00,0x00,0x00,0x00,0x00,0x2a,0x00, 0x40,0x5d,0x6d,0xd5,0xfe,0x0d,0x6a,0x55,0xb5,0xfa,0x0f,0x00,0x00,0x00,0x00, 0xaa,0xde,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x40,0x3d,0x00,0x00,0x00,0x00, 0x00,0x2d,0x00,0x80,0xf7,0x55,0x5b,0x55,0x07,0x56,0xdb,0xaa,0x6e,0x05,0x00, 0x00,0x00,0x00,0x5a,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x76,0x00, 0x00,0x00,0x00,0x80,0xda,0x00,0x00,0xdd,0xd7,0xaa,0xff,0x02,0xad,0x56,0x6b, 0xbb,0x07,0x00,0x00,0x00,0x00,0xb4,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xd0,0x2e,0x00,0x00,0x00,0x00,0x40,0xab,0x02,0x00,0x76,0xbd,0x7a,0xab,0x03, 0xd4,0xaa,0x5a,0xef,0x01,0x00,0x00,0x00,0x00,0x56,0x5b,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x50,0x1e,0x00,0x00,0x00,0x00,0x80,0x6a,0x05,0x00,0xdc,0xf7, 0xef,0xfd,0x00,0x5a,0x6d,0xeb,0xbd,0x03,0x00,0x00,0x00,0x00,0x55,0x2e,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x07,0x00,0x00,0x00,0x00,0x60,0xad,0x05, 0x00,0xb0,0xdd,0x7a,0x37,0x00,0xd4,0x56,0x6d,0xef,0x00,0x00,0x00,0x00,0x00, 0x36,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x0e,0x00,0x00,0x00,0x08, 0xa0,0x55,0x0b,0x00,0xf0,0x76,0xef,0x1f,0x00,0xac,0xda,0xba,0xbd,0x00,0x00, 0x00,0x00,0x00,0xd5,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0x03,0x00, 0x00,0x00,0x14,0xa0,0xb6,0x0a,0x00,0xa0,0xdf,0x7b,0x15,0x00,0xb4,0x55,0xed, 0x6b,0x00,0x00,0x00,0x00,0x00,0xaa,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xfb,0x02,0x00,0x00,0x00,0x34,0x58,0xd5,0x36,0x00,0xc0,0x7a,0xef,0x0f,0x00, 0x5e,0xeb,0xbf,0x3f,0x00,0x00,0x00,0x00,0x80,0xad,0x0f,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xa5,0x03,0x00,0x00,0x00,0x0b,0xd4,0x5a,0x15,0x00,0x80,0xdf, 0x5b,0x01,0x00,0xf4,0xba,0xea,0x0a,0x00,0x00,0x00,0x00,0x80,0x96,0x1a,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x00,0x0d,0xa8,0xb5,0x2a, 0x00,0x00,0x6c,0xff,0x01,0x00,0xde,0xef,0xbf,0x0f,0x00,0x00,0x00,0x00,0x00, 0xd5,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xab,0x00,0x00,0x00,0x40,0x05, 0xb6,0xd6,0x36,0x00,0x00,0xf0,0x2b,0x00,0x00,0x76,0x7b,0xeb,0x05,0x00,0x00, 0x00,0x00,0x80,0x95,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x79,0x00,0x00, 0x00,0xb0,0x05,0x6a,0x55,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0xed,0xbd, 0x03,0x00,0x00,0x00,0x00,0x00,0xcd,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x40, 0x5d,0x00,0x00,0x00,0xa8,0x02,0xad,0xb5,0x55,0x00,0x00,0x00,0x00,0x00,0x00, 0x74,0x7f,0x6f,0x00,0x00,0x00,0x00,0x00,0x80,0x56,0x0b,0x00,0x00,0x00,0x00, 0x00,0x00,0xb0,0x36,0x00,0x00,0x00,0x68,0x39,0x55,0xad,0x6a,0x00,0x00,0x00, 0x00,0x00,0x00,0xd8,0xd5,0x7d,0x00,0x00,0x00,0x00,0x00,0xc0,0xea,0x0d,0x00, 0x00,0x00,0x00,0x00,0x00,0xa0,0x1e,0x00,0x00,0x00,0x56,0xad,0xb6,0xd6,0xb6, 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x7f,0x17,0x00,0x00,0x00,0x00,0x00,0x80, 0x4a,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0x15,0x00,0x00,0x00,0xda,0x3a, 0xd4,0xaa,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xed,0x0d,0x00,0x00,0x00, 0x00,0x00,0x40,0xeb,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x0f,0x00,0x00, 0x80,0xaa,0x0e,0xac,0x6a,0x5b,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x7b,0x03, 0x00,0x00,0x00,0x00,0x00,0x80,0x62,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x94, 0x02,0x00,0x00,0x40,0xab,0x0b,0x6c,0x5b,0xb5,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xd3,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0xec,0x07,0x00,0x00,0x60,0xed,0x0e,0x7a,0xad,0xaa,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x75,0x03,0x00, 0x00,0x00,0x00,0x00,0x00,0x9a,0x02,0x00,0x00,0x58,0xd5,0x03,0xaf,0x6a,0x5b, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0, 0xd5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0x01,0x00,0x00,0x54,0xeb,0x02, 0x7a,0xab,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x60,0xf1,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xbd,0x00,0x00,0x00, 0xb4,0xb6,0x83,0xef,0x56,0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x50,0x53,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xe5, 0x00,0x00,0x00,0xd6,0xfa,0x41,0xbb,0xdb,0x6a,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xf9,0x01,0x00,0x00,0x00,0x00, 0x00,0x40,0x3b,0x00,0x00,0x40,0x55,0xad,0x00,0xef,0xaa,0xd5,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xa9,0x01,0x00, 0x00,0x00,0x00,0x00,0xa0,0x7a,0x00,0x00,0xa0,0xb6,0xfe,0x00,0xba,0xb7,0x5a, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8, 0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x2e,0x00,0x00,0xa0,0xd5,0x6b,0x00, 0xe8,0x56,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xd0,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x1a,0x00,0x00,0xd8, 0xda,0x5e,0x00,0xf0,0xad,0xb5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xb4,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x0d, 0x00,0x00,0x55,0x75,0x3b,0x00,0x40,0x6f,0xad,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x74,0x00,0x00,0x00,0x00,0x00, 0x00,0xd0,0x0a,0x00,0x00,0x6d,0xdb,0x1f,0x00,0xc0,0x5b,0x55,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x5c,0x00,0x00, 0x00,0x00,0x00,0x00,0x58,0x0b,0x00,0xa0,0x55,0x6d,0x05,0x00,0x80,0xae,0x6d, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54, 0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x0d,0x00,0xa8,0xb6,0xfa,0x07,0x00, 0x80,0x6f,0x55,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x2a,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x15,0x00,0x68,0xd5, 0xae,0x01,0x00,0x00,0x5a,0xdb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x2a,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x56, 0x81,0xb6,0x5a,0xfb,0x00,0x00,0x00,0x7e,0x55,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x1f,0x00,0x00,0x00,0x00,0x00, 0x00,0xda,0xaa,0x6a,0xd5,0xd6,0x2f,0x00,0x00,0x00,0xca,0xaa,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x1a,0x00,0x00, 0x00,0x00,0x00,0x00,0x54,0x6d,0x5b,0xab,0x6a,0x3b,0x00,0x00,0x00,0xbc,0x76, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d, 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x55,0xd5,0xb6,0xf5,0x0d,0x00,0x00, 0x00,0xb4,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x8a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0xda,0x5a,0x55,0x5d, 0x0f,0x00,0x00,0x00,0xb8,0x5a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x87,0x0f,0x00,0x00,0x00,0x00,0x00,0x80,0xb5,0x56, 0xab,0x5a,0xfb,0x05,0x00,0x00,0x00,0x70,0x55,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x8a,0x0a,0x00,0x00,0x00,0x00,0x00, 0x00,0xad,0x6a,0xd5,0xd6,0x6e,0x01,0x00,0x00,0x00,0xb8,0xad,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x07,0x00,0x00, 0x00,0x00,0x00,0x80,0xaa,0x55,0x5b,0xb5,0xbb,0x00,0x00,0x00,0x00,0xa0,0xda, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x45, 0x05,0x00,0x00,0x00,0x00,0x00,0x40,0xb5,0xb6,0xd5,0xd6,0x6e,0x00,0x00,0x00, 0x00,0x70,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, 0x00,0x40,0xc5,0x07,0x00,0x00,0x00,0x00,0x00,0x80,0x6b,0x55,0xad,0xfa,0x3b, 0x00,0x00,0x00,0x00,0xa0,0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01, 0x00,0x00,0x00,0x00,0x80,0x82,0x06,0x00,0x00,0x00,0x00,0x00,0xc0,0xac,0x6a, 0xb5,0xad,0x1e,0x00,0x00,0x00,0x00,0xa0,0xd6,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x40,0x01,0x00,0x00,0x00,0x00,0xc0,0xc6,0x03,0x00,0x00,0x00,0x00,0x00, 0x80,0xaa,0xad,0x55,0xfd,0x0b,0x00,0x00,0x00,0x00,0x60,0xb5,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0x00,0x00,0x80,0xa1,0x02,0x00,0x00, 0x00,0x00,0x00,0x40,0xdb,0xb6,0xda,0xb6,0x02,0x00,0x00,0x00,0x00,0xa0,0xaa, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x00,0x00,0xa0,0xe2, 0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x56,0x55,0xab,0xdf,0x01,0x00,0x00,0x00, 0x00,0xa0,0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x21,0x00,0x00,0x00, 0x00,0xa0,0x52,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xaa,0xaa,0xed,0xf5,0x00, 0x00,0x00,0x00,0x00,0xa0,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x51, 0x00,0x00,0x00,0x00,0x50,0xf1,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xb5,0x6d, 0xba,0x5f,0x00,0x00,0x00,0x00,0x00,0x60,0x75,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xd0,0x21,0x00,0x00,0x00,0x00,0x60,0x63,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0xdb,0xaa,0xef,0x35,0x00,0x00,0x00,0x00,0x00,0xa0,0x55,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xf0,0x68,0x00,0x00,0x00,0x00,0xb0,0xd8,0x01,0x00,0x00, 0x00,0x00,0x00,0x80,0xab,0xd6,0xb6,0x0f,0x00,0x00,0x00,0x00,0x00,0xa0,0x76, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0x51,0x00,0x00,0x00,0x00,0xd0,0x78, 0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x56,0xf5,0xfd,0x02,0x00,0x00,0x00,0x00, 0x00,0xa0,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x34,0x00,0x00,0x00, 0x00,0x50,0xd1,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xbf,0xdf,0xd7,0x03,0x00, 0x00,0x00,0x00,0x00,0x60,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0x28, 0x00,0x00,0x00,0x00,0x58,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xeb,0x76, 0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x3b,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xbe,0x1a,0x00,0x00,0x00,0x00,0xa8,0xd8,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0xbd,0xdb,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x2d,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x7a,0x34,0x00,0x00,0x00,0x00,0xb4,0xee,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xef,0xfe,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x3a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5e,0x16,0x00,0x00,0x00,0x00,0x58,0x7a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0xab,0x07,0x00,0x00,0x00,0x00,0x00, 0x00,0x60,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2d,0x00,0x00,0x00, 0x00,0xd6,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x7e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xa0,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x9f,0x15, 0x00,0x00,0x00,0x00,0x2a,0x5b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x1b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, 0x40,0x4d,0x1b,0x00,0x00,0x00,0x00,0x34,0x7d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x0b,0x00,0x00,0x00, 0x00,0x00,0x00,0xc0,0x8f,0x0a,0x00,0x00,0x00,0x00,0x5a,0x1f,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x62,0x05,0x00,0x00,0x00,0x00,0x55,0x3a, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xc0,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xa7,0x06,0x00,0x00,0x00, 0x00,0x96,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xa3,0x05, 0x00,0x00,0x00,0x00,0xad,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00, 0xf0,0x51,0x01,0x00,0x00,0x00,0x00,0x95,0x1d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0xa8,0xb0,0x00,0x00,0x00,0x00,0x00,0x95,0x17,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xa8,0x01,0x00,0x00,0x00,0x00,0x1b,0x1d, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0x54,0x00,0x00,0x00,0x00, 0x80,0xca,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xd8,0x00, 0x00,0x00,0x00,0x80,0xd5,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x2a,0x2a,0x00,0x00,0x00,0x00,0x80,0x86,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x3e,0x2c,0x00,0x00,0x00,0x00,0xc0,0xca,0x05,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x35,0x15,0x00,0x00,0x00,0x00,0x80,0xaa,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x16,0x00,0x00,0x00,0x00, 0x80,0xe6,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x85,0x1a,0x00, 0x00,0x00,0x00,0x60,0xa5,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0, 0x0f,0x05,0x00,0x00,0x00,0x00,0x40,0x6b,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x40,0xc5,0x06,0x00,0x00,0x00,0x00,0xa0,0xd6,0x05,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xc0,0x47,0x05,0x00,0x00,0x00,0x00,0xc0,0x72,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x60,0xa1,0x05,0x00,0x00,0x00,0x00, 0xa0,0xe5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xa3,0x02,0x00, 0x00,0x00,0x00,0xa0,0x72,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x50, 0x51,0x01,0x00,0x00,0x00,0x00,0xb0,0xee,0x03,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, 0x00,0x00,0xf0,0xb1,0x01,0x00,0x00,0x00,0x00,0xa0,0x79,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0x00,0xdc,0x68,0x01,0x00,0x00,0x00,0x00,0x50,0xe9,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x74,0x54,0x00,0x00,0x00,0x00,0x00, 0xd0,0x5a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0x00,0x00,0x5e,0xa8,0x00,0x00, 0x00,0x00,0x00,0x58,0xfd,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x77, 0x5a,0x00,0x00,0x00,0x00,0x00,0xa8,0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x04,0x00,0x00, 0x02,0x80,0x1a,0x2a,0x00,0x00,0x00,0x00,0x00,0xb0,0xfc,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50, 0x03,0x00,0x00,0x07,0x80,0x3f,0x35,0x00,0x00,0x00,0x00,0x00,0x58,0xad,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xb0,0x02,0x00,0x80,0x0a,0x40,0x2d,0x2d,0x00,0x00,0x00,0x00,0x00, 0xd0,0xf4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xd0,0x02,0x00,0x80,0x0f,0xc0,0x5b,0x0b,0x00,0x00, 0x00,0x00,0x00,0x54,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x03,0x00,0x40,0x1d,0x70,0x4f, 0x15,0x00,0x00,0x00,0x00,0x00,0x58,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x01,0x00,0xc0, 0x97,0xfc,0xad,0x0a,0x00,0x00,0x00,0x00,0x00,0xac,0xfe,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdb, 0x03,0x00,0x70,0x5b,0xab,0x67,0x0b,0x00,0x00,0x00,0x00,0x00,0x68,0x5a,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xaa,0x00,0x00,0xf8,0x6e,0xfd,0xaa,0x05,0x00,0x00,0x00,0x00,0x00, 0xac,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x80,0xb6,0x01,0x00,0xa8,0xaf,0xd6,0xab,0x02,0x00,0x00, 0x00,0x00,0x00,0xa8,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x55,0x01,0x00,0xf4,0xb5,0x7d,0xb5, 0x02,0x00,0x00,0x00,0x00,0x00,0x68,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xad,0x01,0x00,0xdc, 0x56,0xf5,0x6a,0x01,0x00,0x00,0x00,0x00,0x00,0x56,0x3b,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xd5, 0x01,0x00,0xf6,0x55,0x55,0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x6e,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xa0,0x76,0x00,0x00,0x5a,0xdb,0x56,0xab,0x00,0x00,0x00,0x00,0x00,0x00, 0x54,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xd8,0xda,0x00,0x00,0xfe,0x6d,0xab,0x55,0x00,0x00,0x00, 0x00,0x00,0x00,0x5a,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x75,0x00,0x80,0x6b,0x55,0x6d,0x6d, 0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xdb,0x00,0x80,0xde, 0x56,0x55,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x15,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x56,0x7d, 0x00,0xc0,0x7b,0xb5,0xad,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x3f,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xb4,0x56,0x00,0xe0,0xb6,0x5a,0xd5,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, 0x2d,0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xad,0x3b,0x00,0xc0,0xdf,0xd6,0x5a,0x05,0x00,0x00,0x00, 0x00,0x00,0x00,0x9a,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd5,0x1e,0x00,0xf0,0x5a,0x55,0xad,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xb5,0x0b,0x00,0x50,0xaf, 0xad,0xb5,0x05,0x00,0x00,0x00,0x00,0x00,0x80,0x96,0x3f,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xad,0x0e, 0x00,0xf0,0x6b,0xd5,0x56,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xaa,0x2a,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xa0,0xea,0x05,0x00,0xd8,0x56,0x5b,0xb5,0x02,0x00,0x00,0x00,0x00,0x00,0x80, 0x9a,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xa0,0x56,0x07,0x00,0xbc,0xb7,0x6a,0x55,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0xad,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0xfa,0x01,0x00,0xf4,0x6a,0x55,0xdb,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0x15,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0x55,0x01,0x00,0xbc,0xad, 0xb6,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xca,0x1d,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0xfb,0x00, 0x00,0xf6,0x6a,0x69,0x5b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4b,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xa8,0xb5,0x00,0x00,0x2f,0xad,0x58,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xc5,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xb6,0x5e,0x00,0x00,0x7d,0x55,0xa0,0x2d,0x00,0x00,0x00,0x00, 0x00,0x00,0x80,0x86,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x35,0x00,0x00,0x2f,0x2b,0x60,0x05,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0x3e,0x00,0x80,0xdd,0x16, 0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x82,0x02,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x56,0x0f,0x00, 0xc0,0x97,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x03,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40, 0xb5,0x0d,0x00,0x40,0x5d,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x40,0xab,0x0b,0x00,0xa0,0xaf,0x06,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xa0,0xd6,0x07,0x00,0xe0,0x6a,0x05,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x75,0x01,0x00,0xa0,0x57,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0xea,0x03,0x00, 0xf0,0xa6,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28, 0x7b,0x01,0x00,0xa0,0xb5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xe8,0xda,0x00,0x00,0xf8,0xab,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xac,0x76,0x00,0x00,0x68,0x55,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x5e,0x00,0x00,0xbc,0xb5,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb5,0x35,0x00,0x00, 0xe8,0xa8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xad, 0x1e,0x00,0x00,0xbc,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x80,0x55,0x0f,0x00,0x00,0x6e,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x40,0xb5,0x05,0x00,0x00,0x3a,0x57,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xda,0x07,0x00,0x00,0x3e,0x2a,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0xd5,0x06,0x00,0x00, 0x94,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xb6, 0x03,0x00,0x00,0x1f,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xd0,0xf5,0x00,0x00,0x00,0x85,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xac,0xba,0x01,0x00,0x00,0x8f,0x0a,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0xda,0x00,0x00,0x00,0x46,0x0b,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd6,0x76,0x00,0x00,0x80, 0x43,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x1e, 0x00,0x00,0x80,0x86,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0xb5,0x36,0x00,0x00,0x80,0xc3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xad,0x1f,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x6a,0x05,0x00,0x00,0xc0,0x42,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xab,0x0f,0x00,0x00,0xc0, 0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0xda,0x03, 0x00,0x00,0x40,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xa0,0x76,0x03,0x00,0x00,0xc0,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xa8,0xd5,0x02,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xf5,0x01,0x00,0x00,0x00,0x50,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0x7b,0x00,0x00,0x00,0x00, 0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x56,0xad,0x00, 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x5a,0x7b,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xb5,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0x56,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xb5,0x0f,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xd6,0x0a,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0, 0xaa,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xb0,0xda,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x50,0x6b,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0xf5,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0xb6,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa, 0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xd4,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xbb,0x5a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x3f,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xaa,0x0b,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xb6, 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x40,0xab,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xb0,0xda,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x6b,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0xea,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x7a, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xb4,0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xa8,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x6d,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x1e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x3b, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xad,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xea,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xad,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xea,0x07,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xb6,0x02, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xf5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xc0,0xb6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xda,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x7d,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x37,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xa0,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xa0,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x0d,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xa8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xe8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}; bitmap-mule-200308250433/po.el0100644000227700000120000001722307007261313013730 0ustar yamaoka;; po.el -- a BDF font editor ;; Copyright (C) 1996 MORIOKA Tomohiko ;; Author: MORIOKA Tomohiko ;; Keywords: bitmap, bdf, MULE ;; This file is part of bitmap-mule. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;; Code: (require 'bitmap) (defconst po-block-alist '((?0 . "$B!&!&!&!&(B") (?1 . "$B!&!&!&"#(B") (?2 . "$B!&!&"#!&(B") (?3 . "$B!&!&"#"#(B") (?4 . "$B!&"#!&!&(B") (?5 . "$B!&"#!&"#(B") (?6 . "$B!&"#"#!&(B") (?7 . "$B!&"#"#"#(B") (?8 . "$B"#!&!&!&(B") (?9 . "$B"#!&!&"#(B") (?a . "$B"#!&"#!&(B") (?b . "$B"#!&"#"#(B") (?c . "$B"#"#!&!&(B") (?d . "$B"#"#!&"#(B") (?e . "$B"#"#"#!&(B") (?f . "$B"#"#"#"#(B") (?A . "$B"#!&"#!&(B") (?B . "$B"#!&"#"#(B") (?C . "$B"#"#!&!&(B") (?D . "$B"#"#!&"#(B") (?E . "$B"#"#"#!&(B") (?F . "$B"#"#"#"#(B") )) ;;" (defun po-hex-list-to-block (hex-list) (mapconcat (function (lambda (hex) (mapconcat (function (lambda (chr) (cdr (assq chr po-block-alist)) )) hex "") )) hex-list "\n") ) (defun po-bdf-display-block (encoding buffer) (let (dest char) (save-excursion (set-buffer buffer) (goto-char (point-min)) (if (re-search-forward (format "\nENCODING %d\n" encoding) nil t) (progn (search-forward "\nBITMAP\n") (save-restriction (narrow-to-region (match-end 0) (progn (search-forward "\nENDCHAR\n") (match-beginning 0) )) (goto-char (point-min)) (while (re-search-forward "^[0-9A-F]+$" nil t) (setq dest (vconcat dest (vector (buffer-substring (match-beginning 0)(match-end 0)) ))) ) ) (re-search-backward "^STARTCHAR \\([^\n]+\\)\n") (setq char (buffer-substring (match-beginning 1) (match-end 1))) ))) (if dest (progn (insert (format "%s (%d)\n" char encoding)) (insert (po-hex-list-to-block dest)) (insert "\n") (mapcar (function (lambda (str) (insert str) (insert "\n") )) (bdf-to-bitmap dest)) )))) (defun po-bdf-get-hex-vector () (save-excursion (goto-char (point-min)) (let (dest) (while (= (forward-line) 0) (let (str) (while (not (eolp)) (let ((rest po-block-alist) pair) (while (and (setq pair (car rest)) (not (looking-at (cdr pair))) ) (setq rest (cdr rest)) ) (if pair (progn (setq str (concat str (char-to-string (car pair)))) (forward-char 4) ) (end-of-line) ) )) (if str (setq dest (vconcat dest (vector str))) ) )) dest))) (defvar po-bdf-original-buffer nil) (defvar po-bdf-current-encoding nil) (defun po-bdf-update-char () (let ((str (mapconcat (function identity) (po-bdf-get-hex-vector) "\n")) (encoding po-bdf-current-encoding) ) (save-excursion (set-buffer po-bdf-original-buffer) (goto-char (point-min)) (re-search-forward (format "^ENCODING %d\n" encoding)) (search-forward "\nBITMAP\n") (let* ((beg (match-end 0)) (end (progn (search-forward "\nENDCHAR\n") (match-beginning 0) )) (b0 (buffer-substring beg end)) ) (or (string= str b0) (progn (delete-region beg end) (goto-char beg) (insert str) )))))) (defconst po-bdf-mode-map nil) (if po-bdf-mode-map nil (setq po-bdf-mode-map (make-keymap)) (suppress-keymap po-bdf-mode-map) (define-key po-bdf-mode-map " " 'po-bdf-toggle-dot) (define-key po-bdf-mode-map "p" 'po-bdf-previous-char) (define-key po-bdf-mode-map "n" 'po-bdf-next-char) (define-key po-bdf-mode-map "j" 'po-bdf-goto-char) ) (defun po-bdf-toggle-dot () (interactive) (save-excursion (let ((chr (char-after (point)))) (delete-char 1) (if (eq chr ?$B!&(B) (insert "$B"#(B") (insert "$B!&(B") ) (goto-char (point-max)) (re-search-backward "^[$B!&"#(B]+\n") (delete-region (match-end 0)(point-max)) (goto-char (point-max)) (mapcar (function (lambda (str) (insert str) (insert "\n") )) (bdf-to-bitmap (po-bdf-get-hex-vector)) ) ))) (defun po-bdf-edit () (interactive) (let ((orig-buf (buffer-name))) (switch-to-buffer (get-buffer-create (concat "*edit " orig-buf "*"))) (erase-buffer) (kill-all-local-variables) (make-local-variable 'po-bdf-original-buffer) (make-local-variable 'po-bdf-current-encoding) (setq po-bdf-original-buffer orig-buf) (setq po-bdf-current-encoding (save-excursion (set-buffer orig-buf) ;;(goto-char (point-min)) (re-search-forward "^ENCODING \\([0-9]+\\)\n" nil t) (string-to-number (buffer-substring (match-beginning 1) (match-end 1))) )) ) (po-bdf-display-block po-bdf-current-encoding po-bdf-original-buffer) (goto-char (point-min)) (forward-line) (use-local-map po-bdf-mode-map) ) (defun po-bdf-previous-char () (interactive) (let ((encoding po-bdf-current-encoding) (p (point)) ) (save-excursion (set-buffer po-bdf-original-buffer) (goto-char (point-min)) (re-search-forward (format "^ENCODING %d\n" encoding)) (goto-char (match-beginning 0)) (if (re-search-backward "^ENCODING \\([0-9]+\\)\n" nil t) (setq encoding (string-to-int (buffer-substring (match-beginning 1) (match-end 1)))) )) (if encoding (progn (po-bdf-update-char) (setq po-bdf-current-encoding encoding) (erase-buffer) (po-bdf-display-block encoding po-bdf-original-buffer) (goto-char p) ) (ding) ))) (defun po-bdf-next-char () (interactive) (let ((encoding po-bdf-current-encoding) (p (point)) ) (save-excursion (set-buffer po-bdf-original-buffer) (goto-char (point-min)) (re-search-forward (format "^ENCODING %d\n" encoding)) (if (re-search-forward "^ENCODING \\([0-9]+\\)\n" nil t) (setq encoding (string-to-int (buffer-substring (match-beginning 1) (match-end 1)))) )) (if encoding (progn (po-bdf-update-char) (setq po-bdf-current-encoding encoding) (erase-buffer) (po-bdf-display-block encoding po-bdf-original-buffer) (goto-char p) ) (ding) ))) (defun po-bdf-goto-char (char) (interactive "sCHAR: ") (let ((encoding po-bdf-current-encoding) (p (point)) ) (save-excursion (set-buffer po-bdf-original-buffer) (goto-char (point-min)) (re-search-forward (format "^ENCODING %d\n" encoding)) (if (and (re-search-forward (format "^STARTCHAR %s\n" (regexp-quote char)) nil t) (re-search-forward "^ENCODING \\([0-9]+\\)\n" nil t) ) (setq encoding (string-to-int (buffer-substring (match-beginning 1) (match-end 1)))) )) (if encoding (progn (po-bdf-update-char) (setq po-bdf-current-encoding encoding) (erase-buffer) (po-bdf-display-block encoding po-bdf-original-buffer) (goto-char p) ) (ding) ))) ;;; @ end ;;; (provide 'po) ;;; po.el ends here bitmap-mule-200308250433/smiley-mule.el0100644000227700000120000003456607236532672015602 0ustar yamaoka;;; smiley-mule.el --- smiley faces decoder for MULE ;; Copyright (C) 1996, 1998, 1999 MORIOKA Tomohiko ;; Copyright (C) 1996, 1999, 2000, 2001 Katsumi Yamaoka ;; Author: MORIOKA Tomohiko ;; Katsumi Yamaoka ;; Created: 1996/7/26 ;; Revised: 2001/02/02 ;; Keywords: smiley, face-mark, MULE, bitmap, xbm, fun ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with This program; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; - How to use. ;; If you use tm, put the following lines in your .emacs file: ;; (if window-system ;; (progn ;; (autoload 'smiley-buffer "smiley-mule" nil t) ;; (autoload 'smiley-encode-buffer "smiley-mule" nil t) ;; (add-hook 'mime-viewer/plain-text-preview-hook 'smiley-buffer) ;; (add-hook 'mime-editor/translate-hook 'smiley-encode-buffer) ;; )) ;; Or if you use SEMI, use the following lines instead: ;; (if window-system ;; (progn ;; (autoload 'smiley-buffer "smiley-mule" nil t) ;; (autoload 'smiley-encode-buffer "smiley-mule" nil t) ;; (add-hook 'mime-display-text/plain-hook 'smiley-buffer) ;; (add-hook 'mime-edit-translate-hook 'smiley-encode-buffer) ;; )) ;; Of course, it may be available for other hooks to filter messages. ;;; Code: (require 'bitmap) (require 'pcustom) (defface smiley-face '((t (:background "Yellow" :foreground "Black"))) "Face used for displaying smiley faces." :group 'bitmap-mule :group 'faces) (defface smiley-manga-face '((t (:background "White" :foreground "Black"))) "Face used for displaying smiley manga faces." :group 'bitmap-mule :group 'faces) (defvar smiley-bitmap-for-smile (bitmap-decode-xbm '(24 16 "000000" "f8c10f" "042210" "000000" "f0c007" "68a109" "68a109" "68a109" "f0c007" "000000" "000000" "508004" "000000" "202201" "001c00" "000000")) " oooooo oooooo ' ' ' ' o'MM'o o'MM''o M MM M M MM M '''' ''''' o o o o o o o o ''' ") (defvar smiley-bitmap-for-winking (bitmap-decode-xbm '(24 16 "000000" "f8c10f" "042210" "000000" "00c007" "f0a009" "08a109" "00a009" "00c007" "000000" "000000" "508004" "000000" "202201" "001c00" "000000")) " oooooo oooooo ' ' ' ' oooo o'MM''o ' ' M MM M ''''' o o o o o o o o ''' ") (defvar smiley-bitmap-for-ase (bitmap-decode-xbm '(24 16 "000000" "f8c10f" "042210" "000000" "f0c003" "68a105" "68a105" "68a105" "f0c023" "000020" "000050" "504052" "000050" "209120" "000e00" "000000")) " oooooo oooooo ' ' ' ' o'MM'o o'MM'o M MM M M MM M '''' '''' M o o o o M M o o o o 'o' ''' ") (defvar smiley-bitmap-for-ase2 (bitmap-decode-xbm '(32 16 "00000000" "f0831f00" "08442000" "00000000" "e0810700" "d0420b00" "d0420b00" "d0420b00" "e0818710" "00008010" "00004029" "a0804429" "00004029" "40228110" "001c0000" "00000000")) " oooooo oooooo ' ' ' ' o'MM'o o'MM'o M MM M M MM M '''' '''' M M o o o o M M M M o o o o 'o' 'o' ''' ") (defvar smiley-bitmap-for-ase3 (bitmap-decode-xbm '(24 16 "000000" "f8c10f" "042210" "000000" "180007" "e0e000" "fcf30f" "c0e100" "380027" "000020" "000050" "504052" "000050" "209120" "000e00" "000000")) " oooooo oooooo ' ' ' ' ''ooo ooo''' ''''MMM' 'MMM'''' ''' ''' M o o o o M M o o o o 'o' ''' ") (defvar smiley-bitmap-for-weep (bitmap-decode-xbm '(24 16 "1c003c" "e28043" "006300" "180018" "600007" "80e300" "fcf73f" "80e300" "600007" "58001a" "400002" "a00005" "a00005" "a01c05" "402202" "000000")) " o'''ooo ooo''''o oo '' '' oo ''ooo ooo''' '''''MMM' 'MMM'''''' oo'M 'M'oo o'o o'o M M ooo M M ' ' ' ' ") (defvar smiley-bitmap-FaceAngry (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "17e8" "3ffc" "73ce" "6186" "6186" "0180" "e187" "f3cf" "3ffc" "17e8" "1ff8" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'M M'MMM MM''MMo oMM''MM M MM MM M M oooooo M MMooMM''''MMooMM MMMoM MoMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceGoofy (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "0db0" "fdbf" "ffff" "07e0" "07e0" "1ff8" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M MMooooooooMM M MMM''''''''''MMM MMMoo ooMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceGrinning (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "f99f" "f99f" "33cc" "67e6" "c7e3" "dffb" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M MMMMMMMMMM M MMo 'Mo oM' oMM MMMoo MMMM ooMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceHappy (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "0db0" "fdbf" "f3cf" "e7e7" "c7e3" "1ff8" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M MMooooooooMM M MMo 'MMMMMM' oMM MMMoo '''' ooMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceIronic (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "01b0" "e1bf" "f3cf" "3fe0" "17e0" "1ff8" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M oooooooMM M MMooMM'''''' oMM MMMoM ooMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceKOed (bitmap-decode-xbm '(16 16 "ffff" "1ff8" "1ff8" "07e0" "8ff1" "d99b" "718e" "d99b" "8db1" "0180" "f18f" "f7ef" "07e0" "1ff8" "1ff8" "ffff" )) " MMMMM''''''MMMMM MMM'' ''MMM M''Mo oMMo oM''M M oM'MooM'Mo M M '' '' '' M Moo MMMMMMMM ooM MMMoo ooMMM MMMMMooooooMMMMM ") (defvar smiley-bitmap-FaceNyah (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "07e0" "73ce" "718e" "0180" "0180" "e187" "e3c7" "e7e7" "c7e3" "dffb" "ffff" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' ooo ooo 'MM M ''' ''' M M oooooo M MMo MMMMMM oMM MMMoo MMMM ooMMM MMMMMMMMMMMMMMMM ") (defvar smiley-bitmap-FaceSad (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "0180" "e187" "f3cf" "3ffc" "1ff8" "1ff8" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M oooooo M MMooMM''''MMooMM MMMMM MMMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceStartled (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "e187" "f18f" "3bdc" "3bdc" "f7ef" "eff7" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M oMMMMMMo M MM MMM MMM MM MMMo'MMMMMM'oMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceStraight (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "0180" "e187" "e3c7" "07e0" "07e0" "1ff8" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M oooooo M MMo '''''' oMM MMMoo ooMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceTalking (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "0180" "e19f" "e3df" "07df" "07ef" "1ff6" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M oooooooo M MMo '''MMMMM MM MMMoo 'MM'oMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceTasty (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "27e4" "67e6" "63c6" "6186" "0180" "6180" "f180" "fbc0" "fbef" "f7ef" "1ff8" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM''o o''MMM MM' MM MM 'MM M '' '' M M oMMo M MM MMMMMoooo oMM MMMoM''''''MoMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceWry (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "07e0" "67e6" "63c6" "6186" "0180" "0180" "018f" "c3cf" "e7e0" "c7e7" "1fff" "3ffc" "ffff" )) " MMMMMM''''MMMMMM MMM'' ''MMM MM' MM MM 'MM M '' '' M M oooo M MMo oMM'''' oMM MMMoo ''MMMooMMM MMMMMMooooMMMMMM ") (defvar smiley-bitmap-FaceYukky (bitmap-decode-xbm '(16 16 "ffff" "3ffc" "1ff8" "17e8" "3ffc" "73ce" "6186" "0180" "0180" "f187" "f3c7" "e7e7" "c7e3" "dffb" "ffff" "ffff" )) " MMMMMM''''MMMMMM MMM'M M'MMM MM''MMo oMM''MM M '' '' M M ooooooo M MMo 'MMMMMM oMM MMMoo MMMM ooMMM MMMMMMMMMMMMMMMM ") (defvar smiley-face-bitmap-list (list (vector "^_^;;;" (bitmap-compose (aref smiley-bitmap-for-ase3 0)) 'smiley-manga-face) (vector "^^;;;" (bitmap-compose (aref smiley-bitmap-for-ase3 0) 1) 'smiley-manga-face) (vector "^_^;;" (bitmap-compose (aref smiley-bitmap-for-ase2 0)) 'smiley-manga-face) (vector "^^;;" (bitmap-compose (aref smiley-bitmap-for-ase2 0) 1) 'smiley-manga-face) (vector "^_^;" (bitmap-compose (aref smiley-bitmap-for-ase 0)) 'smiley-manga-face) (vector "^^;" (bitmap-compose (aref smiley-bitmap-for-ase 0) 1) 'smiley-manga-face) (vector ";_;" (bitmap-compose (aref smiley-bitmap-for-weep 0)) 'smiley-manga-face) (vector "T_T" (bitmap-compose (aref smiley-bitmap-for-weep 0) 1) 'smiley-manga-face) (vector ">_<" (bitmap-compose (aref smiley-bitmap-for-weep 0) 2) 'smiley-manga-face) (vector "^_^" (bitmap-compose (aref smiley-bitmap-for-smile 0)) 'smiley-manga-face) (vector "(^^)" (bitmap-compose (aref smiley-bitmap-for-smile 0) 1) 'smiley-manga-face) (vector ":-<" (bitmap-compose (aref smiley-bitmap-FaceAngry 0)) 'smiley-face) (vector ":-]" (bitmap-compose (aref smiley-bitmap-FaceGoofy 0)) 'smiley-face) (vector ":-D" (bitmap-compose (aref smiley-bitmap-FaceGoofy 0) 1) 'smiley-face) (vector ":-)" (bitmap-compose (aref smiley-bitmap-FaceHappy 0)) 'smiley-face) (vector ":-/" (bitmap-compose (aref smiley-bitmap-FaceIronic 0)) 'smiley-face) (vector "8-|" (bitmap-compose (aref smiley-bitmap-FaceKOed 0)) 'smiley-face) (vector ":-#" (bitmap-compose (aref smiley-bitmap-FaceNyah 0)) 'smiley-face) (vector ":-(" (bitmap-compose (aref smiley-bitmap-FaceSad 0)) 'smiley-face) (vector ":-O" (bitmap-compose (aref smiley-bitmap-FaceStartled 0)) 'smiley-face) (vector ":-|" (bitmap-compose (aref smiley-bitmap-FaceStraight 0)) 'smiley-face) (vector ":-p" (bitmap-compose (aref smiley-bitmap-FaceTalking 0)) 'smiley-face) (vector ":-d" (bitmap-compose (aref smiley-bitmap-FaceTasty 0)) 'smiley-face) (vector ";-)" (bitmap-compose (aref smiley-bitmap-for-winking 0)) 'smiley-manga-face) (vector ":-V" (bitmap-compose (aref smiley-bitmap-FaceWry 0)) 'smiley-face) (vector ":-P" (bitmap-compose (aref smiley-bitmap-FaceYukky 0)) 'smiley-face)) "List of smiley face data. Each element looks like [TEXT BITMAP FACE], where TEXT is a smiley face represented by the ordinary text, BITMAP is a string consists of composite bitmap characters and FACE is a face used for highlighting the inline image.") ;;;###autoload (defun smiley-buffer (&optional buffer start end) "Display smiley faces in the buffer." (interactive "*") (if window-system (save-excursion (if buffer (set-buffer buffer)) (save-restriction (narrow-to-region (or start (point-min)) (or end (point-max))) (let ((rest smiley-face-bitmap-list) elem overlay case-fold-search) (while rest (setq elem (car rest) rest (cdr rest)) (goto-char (point-min)) (while (search-forward (aref elem 0) nil t) (replace-match "") (setq overlay (make-overlay (point) (progn (insert (aref elem 1)) (point)))) (overlay-put overlay 'face (aref elem 2)) (overlay-put overlay 'evaporate t)))))) (if (interactive-p) (message "You're not under window system.")))) ;;;###autoload (defun smiley-region (beg end) "Display smiley faces in the region between BEG and END." (interactive "*r") (if window-system (save-restriction (narrow-to-region beg end) (smiley-buffer)) (if (interactive-p) (message "You're not under window system.")))) ;;;###autoload (defun smiley-toggle-buffer (&optional arg buffer start end) "Toggle displaying smiley faces. With arg, turn displaying on if and only if arg is positive." (interactive "*P") (if window-system (save-excursion (if buffer (set-buffer buffer)) (save-restriction (narrow-to-region (or start (point-min)) (or end (point-max))) (goto-char (point-min)) (if (and (not (and (numberp arg) (< arg 0))) (or (and (numberp arg) (> arg 0)) (let (case-fold-search) (re-search-forward (mapconcat (function (lambda (elem) (regexp-quote (aref elem 0)))) smiley-face-bitmap-list "\\|") nil t)))) (smiley-buffer) (smiley-encode-buffer)))) (if (interactive-p) (message "You're not under window system.")))) ;;;###autoload (defun smiley-encode-buffer () "Encode smiley faces to ordinary text in the buffer." (interactive "*") (if window-system (save-excursion (let ((rest smiley-face-bitmap-list) elem) (while rest (setq elem (car rest) rest (cdr rest)) (goto-char (point-min)) (while (search-forward (aref elem 1) nil t) (replace-match "") (insert (aref elem 0)))))) (if (interactive-p) (message "You're not under window system.")))) ;;; @ end ;;; (provide 'smiley-mule) (run-hooks 'smiley-mule-load-hook) ;;; smiley-mule.el ends here bitmap-mule-200308250433/vm-bitmap.el0100644000227700000120000000537507236532672015230 0ustar yamaoka;; vm-bitmap.el -- bitmap utilities for VM. ;; Copyright (C) 1999, 2001 Free Software Foundation, Inc. ;; Author: Katsumi Yamaoka ;; Created: 1999/08/20 ;; Revised: 2001/02/02 ;; Keywords: bitmap, x-face, vm ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Code: (require 'alist) (require 'x-face-mule) ;;; Functions. ;; ;; Avoid byte compile warnings. (defvar vm-mail-buffer) (defvar vm-presentation-buffer) (eval-when-compile (autoload 'vm-preview-current-message "vm-page")) ;; Attempt to pickup the macro `vm-select-folder-buffer'. (eval-when-compile (or (load "vm-macro" t) (load "vm/vm-macro" t) ;; For old VM. (load "vm-misc" t) (load "vm/vm-misc" t))) (defun vm-bitmap-redefine () "Redifine function(s) for the use of BITMAP-MULE." (require 'vm-page) (defadvice vm-energize-headers-and-xfaces (around x-face-mule-highlight-header activate) "Replace with `x-face-mule-highlight-header'." (x-face-mule-highlight-header))) (eval-and-compile (autoload 'smiley-toggle-buffer "smiley-mule")) (defun vm-smiley-display (&optional arg) "Display \"smileys\" as small graphical icons. With arg, turn displaying on if and only if arg is positive." (interactive "P") (if window-system (save-excursion (vm-select-folder-buffer) (if vm-presentation-buffer (progn (set-buffer vm-presentation-buffer) (save-restriction (widen) (goto-char (point-min)) (if (search-forward "\n\n" nil t) (progn (narrow-to-region (point) (point-max)) (let ((modified (buffer-modified-p)) (inhibit-read-only t) buffer-read-only) (smiley-toggle-buffer arg) (set-buffer-modified-p modified)))))))) (if (interactive-p) (message "You're not under window system.")))) ;;; Setup. ;; (set-alist 'x-face-mule-highlight-x-face-refresh-method-alist 'vm-summary-mode (function (lambda () (vm-select-folder-buffer) (vm-preview-current-message)))) (add-hook 'vm-quit-hook 'x-face-mule-save-cache-file) (provide 'vm-bitmap) ;; vm-bitmap.el ends here bitmap-mule-200308250433/x-face-18.el0100644000227700000120000000523007236532672014713 0ustar yamaoka;; x-face-18.el -- X-Face decoder for MULE 1. ;; Copyright (C) 1996, 1999, 2001 Free Software Foundation, Inc. ;; Author: Hiroshi Ueno ;; MORIOKA Tomohiko ;; Keywords: X-Face, bitmap, MULE ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;; Code: (defun x-face-decode-message-header () (save-restriction (narrow-to-region (goto-char (point-min)) (if (search-forward "\n\n" nil t) (1+ (match-beginning 0)) (point-max))) (goto-char (point-min)) (if (re-search-forward "^X-Face:[ \t]*" nil t) (let ((p (match-beginning 0)) (beg (match-end 0)) (end (progn (while (and (not (eobp)) (progn (forward-line) (looking-at "[\t ]")))) (point))) (cur-buf (current-buffer)) ) (save-restriction (narrow-to-region p end) (delete-region p beg) (call-process-region p (point-max) uncompface-program t t nil) (let (i k k+6 cmp temp) (goto-char (point-min)) (search-forward "0x" nil t) (setq cmp (make-vector 18 nil)) (setq i 0) (while (< i 48) (setq k (* (/ i 16) 6)) (setq k+6 (+ k 6)) (while (< k k+6) (setq temp (buffer-substring (point) (+ (point) 2))) (aset cmp k (concat (aref cmp k) temp)) (setq k (1+ k)) (setq temp (buffer-substring (+ (point) 2) (+ (point) 4))) (aset cmp k (concat (aref cmp k) temp)) (setq k (1+ k)) (search-forward "0x" nil t) ) (setq i (1+ i))) (delete-region (point-min)(point-max)) (insert "X-Face: ") (setq k 0) (while (< k 6) (insert (bitmap-compose (aref cmp k))) (setq k (1+ k)) ) (insert ?\n) (setq i 1) (while (< i 3) (insert " ") (setq k (* i 6) k+6 (+ k 6)) (while (< k k+6) (insert (bitmap-compose (aref cmp k))) (setq k (1+ k)) ) (insert ?\n) (setq i (1+ i)) ))))))) ;;; @ end ;;; (provide 'x-face-18) ;;; x-face-18.el ends here bitmap-mule-200308250433/x-face-mule.el0100644000227700000120000011630107563553645015435 0ustar yamaoka;;; x-face-mule.el --- X-Face decoder for MULE ;; Copyright (C) 1997, 1998, 1999, 2000, 2001 ;; Free Software Foundation, Inc. ;; Honorary-Author: Hiroshi Ueno ;; MORIOKA Tomohiko ;; Author: KORIYAMA Naohiro ;; Katsumi Yamaoka ;; OKUNISHI -GTO- Fujikazu ;; KOSEKI Yoshinori ;; Yuuichi Teranishi ;; Maintainer: Katsumi Yamaoka ;; Created: 1997/10/24 ;; Revised: 2001/12/19 ;; Keywords: X-Face, bitmap, Emacs, MULE, BBDB ;; This file is part of BITMAP-MULE. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; - How to use ;; 1. Use of this module and the BITMAP-MULE package is not recommended ;; if you're using Emacs 21 and your Emacs can display images inline. ;; For example, you can use the following file to show X-Face images: ;; ;; ftp://ftp.jpl.org/pub/elisp/x-face-e21.el.gz ;; 2. Build and install `uncompface' program which is available from: ;; ;; ftp://ftp.win.ne.jp/pub/misc/compface-1.4.tar.gz ;; ;; It is one example of many. ;; 3. Setting up ;; ;; [SEMI 1.14 and later] i.e. cmail, gnus, mh-e, VM, etc. ;; You have need to put the following lines in your ~/.emacs file: ;; ;; (if window-system ;; (progn ;; (autoload 'x-face-decode-message-header "x-face-mule") ;; (add-hook 'mime-display-header-hook ;; 'x-face-decode-message-header))) ;; ;; [SEMI 1.13 and earlier, tm-MUA] i.e. cmail, gnus, mh-e, VM, etc. ;; There is nothing to be done. ;; ;; [T-gnus 6.13.3 and later] ;; There is nothing to be done. ;; ;; [Gnus 5.7] ;; Try to put the following line in your ~/.emacs file if X-Face ;; images aren't displayed. ;; ;; (setq x-face-mule-gnus-force-decode-headers t) ;; ;; [before Wanderlust 2.6.1] ;; Add the following code in your ~/.wl file: ;; ;; (if window-system ;; (progn ;; (autoload 'x-face-decode-message-header "x-face-mule") ;; (setq wl-highlight-x-face-func 'x-face-decode-message-header))) ;; ;; [Wanderlust 2.7.0 and later] ;; Add the following code in your ~/.wl file: ;; ;; (if window-system ;; (progn ;; (autoload 'x-face-decode-message-header "x-face-mule") ;; (setq wl-highlight-x-face-function ;; 'x-face-decode-message-header))) ;; ;; [before Mew 1.90] ;; Add the following code in your ~/.emacs: ;; ;; (if window-system ;; (progn ;; (autoload 'x-face-decode-message-header "x-face-mule") ;; (add-hook 'mew-summary-display-message-filter-hook ;; 1.90 ;; 'x-face-decode-message-header) ;; (add-hook 'mew-message-hook ;; 1.70 or older ;; 'x-face-decode-message-header))) ;; ;; [Mew 1.92] ;; Add the following code in your ~/.emacs: ;; ;; (if window-system ;; (progn ;; (autoload 'x-face-decode-message-header "x-face-mule") ;; (setq mew-opt-highlight-x-face t) ;; (setq mew-opt-highlight-x-face-function ;; 'x-face-decode-message-header))) ;; ;; [Mew 1.93 or later] ;; Add the following code in your ~/.emacs: ;; ;; (if window-system ;; (progn ;; (autoload 'x-face-decode-message-header "x-face-mule") ;; (setq mew-use-highlight-x-face t) ;; (setq mew-use-highlight-x-face-function ;; 'x-face-decode-message-header))) ;; ;; [BBDB] ;; Add the following code in your ~/.emacs, to collect `X-Face's: ;; ;; (put 'face 'field-separator "\n") ;; (setq bbdb-auto-notes-alist ;; (nconc bbdb-auto-notes-alist ;; (list (list "x-face" ;; (list (concat ;; "[ \t\n]*\\([^ \t\n]*\\)" ;; "\\([ \t\n]+\\([^ \t\n]+\\)\\)?" ;; "\\([ \t\n]+\\([^ \t\n]+\\)\\)?" ;; "\\([ \t\n]+\\([^ \t\n]+\\)\\)?" ;; "\\([ \t\n]+\\([^ \t\n]+\\)\\)?") ;; 'face ;; "\\1\\3\\5\\7\\9"))))) ;; ;; Visit for related ;; informations. ;; 4. Customization ;; ;; * If you don't want to show X-Face at "From:" field, ;; add the following code in your ~/.emacs: ;; ;; (setq x-face-mule-highlight-x-face-position 'x-face) ;; ;; and you can show X-Face at "X-Face:" field. ;; ;; * If you want to show X-Face like XEmacs style, ;; add the following code in ~/.eamcs: ;; ;; (setq x-face-mule-highlight-x-face-style 'xmas) ;; ;; But, this feature won't work well on some MUA... ;; ;; * Other features, please read this file... ;; 5. User commands ;; ;; `x-face-mule-toggle-x-face-position' ;; toggle show position. from->x-face->nil->from... ;; ;; `x-face-mule-toggle-x-face-style' ;; toggle show style. default->xmas->default->... ;; 6. Known bugs & todo ;; ;; * same x-face saved in cache file. ;; 7. Thanks to the following people have contributed many patches ;; and suggestions: ;; ;; OKUNISHI Fujikazu ;; Yuuichi Teranishi ;; TSUMURA Tomoaki ;; Shiono@FSC ;; Kazuhiro Ohta ;; Tatsuya Ichikawa ;; Shigeyuki FUKUSHIMA ;; Hideyuki SHIRAI ;; Koichiro Ohba ;;; Code: (require 'bitmap) (eval-when-compile (require 'cl)) (require 'poem) (require 'pcustom) (eval-when-compile (when (<= emacs-major-version 19) ;; The following procedure is imported from Emacs 20.2, bytecomp.el. (put 'custom-declare-variable 'byte-hunk-handler 'byte-compile-file-form-custom-declare-variable) (defun byte-compile-file-form-custom-declare-variable (form) (if (memq 'free-vars byte-compile-warnings) (setq byte-compile-bound-variables (cons (nth 1 (nth 1 form)) byte-compile-bound-variables))) form)) ;; Bind functions defined by `defun-maybe'. (put 'defun-maybe 'byte-hunk-handler 'byte-compile-file-form-defun-maybe) (defun byte-compile-file-form-defun-maybe (form) (if (and (not (fboundp (nth 1 form))) (memq 'unresolved byte-compile-warnings)) (setq byte-compile-function-environment (cons (cons (nth 1 form) (cons 'lambda (cdr (cdr form)))) byte-compile-function-environment))) form)) (defun-maybe match-string-no-properties (num &optional string) "Return string of text matched by last search, without text properties. NUM specifies which parenthesized expression in the last regexp. Value is nil if NUMth pair didn't match, or there were less than NUM pairs. Zero means the entire text matched by the whole regexp or whole string. STRING should be given if the last search was by `string-match' on STRING. \[Emacs 20.3 emulating function]" (if (match-beginning num) (if string (let ((result (substring string (match-beginning num) (match-end num)))) (set-text-properties 0 (length result) nil result) result) (buffer-substring-no-properties (match-beginning num) (match-end num))))) ;; Avoid byte compile warnings. (eval-when-compile (defvar gnus-article-buffer) (defvar vm-message-pointer) (defalias-maybe 'cmail-get-page-number-from-summary 'ignore) (defalias-maybe 'cmail-show-contents 'ignore) (defalias-maybe 'emh-show 'ignore) (defalias-maybe 'mew-summary-display 'ignore) (defalias-maybe 'mh-show-msg 'ignore) (defalias-maybe 'mime-entity-header-buffer 'ignore) (defalias-maybe 'tm-mh-e/show 'ignore)) (defgroup x-face-mule nil "Show X-Face inline for Emacs/Mule." :group 'bitmap-mule :group 'news :group 'mail) (defcustom uncompface-program "uncompface" "Program for decoding X-Face string to UNIX icon or possibly XBM data." :group 'x-face-mule :type 'string) (defcustom uncompface-program-can-generate-xbm t "Non-nil declares \"uncompface\" can generate XBM format directly with the option \"-X\"." :group 'x-face-mule :type 'boolean) (defcustom x-face-mule-highlight-x-face-position 'from "This variable says where X-Face is shown. `from' at From: field, `x-face' at X-Face: field, `off' don't show." :group 'x-face-mule :type '(radio (const :format "%v " from) (const :format "%v " x-face) (const off))) (defcustom x-face-mule-highlight-x-face-style 'default "Variable used for setting style for showing X-Face. When `default' is set, show like this: From:xxxxxx xxxxxx xxxxxx Foo Bar When `xmas' is set, show like this: xxxxxx xxxxxx From:xxxxxx Foo Bar " :set (function (lambda (symbol value) (set-default symbol value) (if (eq (symbol-value symbol) 'xmas) (set-default 'x-face-mule-highlight-x-face-position 'from)))) :group 'x-face-mule :type '(radio (const :format "%v " default) (const xmas))) (defcustom x-face-mule-highlight-x-face-position-alist nil "If non-nil, x-face-position is changed by major-mode. A format is like this: \(setq x-face-mule-highlight-x-face-position-alist '((gnus-article-mode . from) (gnus-original-article-mode . off)))" :group 'x-face-mule :type '(repeat (cons :format "%v" (symbol :tag "MAJOR-MODE") (radio :format "POSITION: %v " (const :format "%v " from) (const :format "%v " x-face) (const off))))) (defcustom x-face-mule-highlight-x-face-style-alist nil "If non-nil, x-face-style is changed by major-mode. A format is like this: \(setq x-face-mule-highlight-x-face-style-alist '((mew-message-mode . xmas) (gnus-article-mode . default)))" :group 'x-face-mule :type '(repeat (cons :format "%v" (symbol :tag "MAJOR-MODE") (radio :format "STYLE: %v" (const :format "%v " default) (const xmas))))) (defcustom x-face-mule-highlight-x-face-refresh-method-alist (list (cons 'cmail-summary-mode (function (lambda () (cmail-show-contents (cmail-get-page-number-from-summary))))) (cons 'wl-summary-mode (function wl-summary-redisplay)) (cons 'mew-summary-mode (function (lambda () (condition-case nil ;; 1.94b19 or earlier. (mew-summary-display) (wrong-number-of-arguments ;; 1.94b20 or later. (mew-summary-display t)))))) (cons 'mew-virtual-mode (function (lambda () (condition-case nil ;; 1.94b19 or earlier. (mew-summary-display) (wrong-number-of-arguments ;; 1.94b20 or later. (mew-summary-display t)))))) (cons 'mh-folder-mode (function (lambda () (cond ((fboundp (quote emh-show)) (emh-show)) ((fboundp (quote tm-mh-e/show)) (tm-mh-e/show)) (t (mh-show-msg nil))))))) "Alist for refreshing message-buffer. Format: \ '((MAJOR-MODE . (FUNCTION ARGS)))" :group 'x-face-mule :type '(repeat (cons :format "%v" (symbol :tag "MAJOR-MODE") (function :tag "FUNCTION")))) (defcustom x-face-mule-x-face-decode-message-header-hook nil "A hook called before decoding X-Face field." :group 'x-face-mule :type 'hook) (defcustom x-face-mule-delete-x-face-field 'always "A Variable says When delete X-Face field. (for NOT Gnus or Mew...) `always' delete always, `color' delete when color X-Face comes, `mono' delete when monochrome X-Face comes, `never' never delete." :group 'x-face-mule :type '(radio (const :format "%v " always) (const :format "%v " color) (const :format "%v " mono) (const never))) (defcustom x-face-mule-use-cache-file t "If non-nil, use X-Face cache file." :group 'x-face-mule :type 'boolean) (defcustom x-face-mule-cache-file "~/.x-face-cache" "Filename of saving X-Face bitmap-char cache." :group 'x-face-mule :type 'file) (defcustom x-face-mule-force-save-cache-file nil "If non-nil, save X-Face cache file without asking." :group 'x-face-mule :type 'boolean) (defcustom x-face-mule-preserve-original-from-field t "If non-nil, preserve original From: field." :group 'x-face-mule :type 'boolean) (defcustom x-face-mule-hidden-properties '(invisible t) "Property list to use for hiding text. Is is not recommended that the value includes `intangible' property because some MUAs, e.g. VM, might get hung up with it." :group 'x-face-mule :type 'sexp) (defcustom x-face-mule-highlight-x-face-face 'x-face-mule-highlight-x-face-face "Face used for highlighting X-Face in the article buffer." :group 'x-face-mule :type 'face) (defface x-face-mule-highlight-x-face-face '((((class color) (background dark)) (:foreground "Black" :background "White")) (((class color) (background light)) (:foreground "Black")) (t ())) "X-Face face." :group 'x-face-mule) ;;; Internal variables. ;; (defvar x-face-mule-cache-file-loaded-p nil) (defvar x-face-mule-cache-modified-p nil) (defvar x-face-mule-original-from-field nil) (defvar x-face-mule-original-x-face-fields nil) (defvar x-face-mule-x-face-to-rectangle-cache nil) (defconst x-face-mule-image-file-coding-system (if (> emacs-major-version 19) 'iso-2022-7bit-unix '*junet*unix)) (defconst x-face-mule-most-positive-fixnum (eval '(lsh -1 -1))) ;;; Macros. ;; (defmacro x-face-mule-overlay-put (overlay &rest plist) "Add PLIST, the property `priority' with the value `x-face-mule-most-positive-fixnum' and the property `evaporate' with the value t to OVERLAY." (if (symbolp overlay) (cond ((= 2 (length plist)) (` (progn (apply (function overlay-put) (, overlay) (list (,@ plist))) (overlay-put (, overlay) 'priority x-face-mule-most-positive-fixnum) (overlay-put (, overlay) 'evaporate t)))) ((and (> (length plist) 2) (zerop (% (length plist) 2))) (` (let ((plist (list (,@ plist)))) (while plist (overlay-put (, overlay) (car plist) (car (cdr plist))) (setq plist (cdr (cdr plist)))) (overlay-put (, overlay) 'priority x-face-mule-most-positive-fixnum) (overlay-put (, overlay) 'evaporate t))))) (cond ((= 2 (length plist)) (` (let ((overlay (, overlay))) (apply (function overlay-put) overlay (list (,@ plist))) (overlay-put overlay 'priority x-face-mule-most-positive-fixnum) (overlay-put overlay 'evaporate t)))) ((and (> (length plist) 2) (zerop (% (length plist) 2))) (` (let ((overlay (, overlay)) (plist (list (,@ plist)))) (while plist (overlay-put overlay (car plist) (car (cdr plist))) (setq plist (cdr (cdr plist)))) (overlay-put overlay 'priority x-face-mule-most-positive-fixnum) (overlay-put overlay 'evaporate t))))))) ;;; Internal functions for cache. ;; (defun x-face-mule-load-cache-file () "Load X-Face cache file. Return an alist if succeeded." (setq x-face-mule-x-face-to-rectangle-cache nil) (when (and x-face-mule-use-cache-file (file-exists-p x-face-mule-cache-file)) (with-temp-buffer (set-buffer-multibyte t) (insert-file-contents-as-coding-system x-face-mule-image-file-coding-system x-face-mule-cache-file) (when (string-match "^21\\.\\(?:0\\.\\|1\\.\\(?:[[:digit:]]+$\\|\ \\(?:[[:digit:]]\\|[0-4][[:digit:]]\\|50\\)\\.[[:digit:]]+$\\)\\)" emacs-version) ;; Just one more of the mysteries of this world that we can get ;; the correct data by re-reading a file in the same buffer ;; even if Emacs 21.1 has a bug in coding.c. (erase-buffer) (insert-file-contents-as-coding-system x-face-mule-image-file-coding-system x-face-mule-cache-file)) (when (re-search-forward "^[\t ]*(" nil t) (let ((start (point)) end x-face ;; Mule 2 would fail to search images when `mc-flag' is ;; non-nil. mc-flag) (while (and (setq end (condition-case nil (forward-list 1) (error nil))) (progn (goto-char start) (search-forward "(" end t)) (setq x-face (condition-case nil (read (current-buffer)) (error nil)))) (set-text-properties 0 (length x-face) nil x-face) (setq x-face (list x-face)) (while (re-search-forward "\"\\([^\"]+\\)\"" end t) (push (match-string 1) x-face)) (when (= 4 (length x-face)) (push (nreverse x-face) x-face-mule-x-face-to-rectangle-cache)) (goto-char (setq start end)))) (setq x-face-mule-x-face-to-rectangle-cache (nreverse x-face-mule-x-face-to-rectangle-cache)))))) (defun x-face-mule-save-cache-file () "Save X-Face cache file." (if (and x-face-mule-cache-modified-p x-face-mule-x-face-to-rectangle-cache x-face-mule-use-cache-file x-face-mule-cache-file (or x-face-mule-force-save-cache-file (y-or-n-p "Save X-Face cache now? "))) (let ((name (file-name-nondirectory x-face-mule-cache-file)) (cache x-face-mule-x-face-to-rectangle-cache) eol data) (with-temp-buffer (insert ";; This file is generated automatically by X-Face-Mule.") (setq eol (current-column)) (goto-char (point-min)) (insert ";; " name) (insert-char ?\ (max 1 (- eol 29 (current-column)))) (insert "-*- coding: iso-2022-7bit -*-\n") (goto-char (point-max)) (insert "\n\n(\n ") (while (setq data (pop cache)) (insert "(" (prin1-to-string (car data)) "\n") (while (setq data (cdr data)) (insert " \"" (car data) "\"" (if (> (length data) 1) "\n" ")\n ")))) (insert ")\n\n;; " name " ends here\n") (write-region-as-coding-system x-face-mule-image-file-coding-system (point-min) (point-max) x-face-mule-cache-file) (setq x-face-mule-cache-modified-p nil))) (message ""))) (defun x-face-mule-view-cache () "View cached X-Face images." (interactive) (if (or x-face-mule-x-face-to-rectangle-cache (x-face-mule-load-cache-file)) (let ((cache x-face-mule-x-face-to-rectangle-cache) (buffer (get-buffer-create "*cached X-Face images*")) width xmax yindex xindex) (switch-to-buffer buffer) (erase-buffer) (set-buffer-multibyte t) (delete-other-windows) (setq width (/ (window-width) 8)) (while cache (setq xmax (min width (length cache)) yindex 1) (while (< yindex 4) (setq xindex 0) (while (< xindex xmax) (put-text-property (point) (progn (insert (nth yindex (nth xindex cache))) (point)) 'face 'x-face-mule-highlight-x-face-face) (insert " ") (setq xindex (1+ xindex))) (backward-delete-char 2) (insert "\n") (setq yindex (1+ yindex))) (setq cache (nthcdr xmax cache)) (when cache (insert "\n"))) (set-buffer-modified-p nil)) (message "No images in the cache"))) ;; hooks for saving cache (for Mew, cmail, mh-e, VM, Wanderlust). (when (and window-system (>= emacs-major-version 19)) (add-hook 'cmail-quit-hook 'x-face-mule-save-cache-file) (add-hook 'mew-quit-hook 'x-face-mule-save-cache-file) (add-hook 'mh-quit-hook 'x-face-mule-save-cache-file) (add-hook 'wl-exit-hook 'x-face-mule-save-cache-file) (add-hook 'wl-folder-exit-hook 'x-face-mule-save-cache-file) (add-hook 'kill-emacs-hook 'x-face-mule-save-cache-file)) ;;; Internal functions for decoding and displaying X-Face. ;; (defun x-face-mule-convert-x-face-to-rectangle (string) "Convert x-face string to rectangle using cache." (unless x-face-mule-cache-file-loaded-p (x-face-mule-load-cache-file) (setq x-face-mule-cache-file-loaded-p t)) (let ((data (assoc string x-face-mule-x-face-to-rectangle-cache))) (unless data (setq data (cons string (if uncompface-program-can-generate-xbm ;; Attempt to generate XBM format directly. (condition-case err (x-face-mule-convert-x-face-to-bitmap string) (error ;; Oops. (prog1 (x-face-mule-convert-icon-to-rectangle (x-face-mule-convert-x-face-to-icon string)) (setq uncompface-program-can-generate-xbm nil) (message "%s" (car (cdr err)))))) (x-face-mule-convert-icon-to-rectangle (x-face-mule-convert-x-face-to-icon string))))) (setq x-face-mule-cache-modified-p t) (setq x-face-mule-x-face-to-rectangle-cache (cons data x-face-mule-x-face-to-rectangle-cache))) (cdr data))) (defun x-face-mule-convert-x-face-to-icon (string) "Decode x-face string to UNIX ICON." (with-temp-buffer (insert string) (as-binary-process (call-process-region (point-min) (point-max) uncompface-program t t nil)) (buffer-string))) (defun x-face-mule-convert-x-face-to-bitmap (string) "Decode x-face string to X11 bitmap." (with-temp-buffer (insert string) (call-process-region (point-min) (point-max) uncompface-program t t nil "-X") (goto-char (point-min)) (unless (looking-at "#define") (error "!! \"%s\" can not generate XBM format directly" uncompface-program)) (let* ((lines (bitmap-decode-xbm (bitmap-read-xbm-buffer (current-buffer)))) (len (length lines)) (i 0) rest) (while (> len i) (setq rest (nconc rest (list (bitmap-compose (aref lines i)))) i (1+ i))) rest))) (defun x-face-mule-convert-vector-to-rectangle (vector) "Make x-face rectangle from vector." (let ((i 0) ret) (while (< i 3) (let* ((line "") (k (* i 6)) (k+6 (+ k 6))) (while (< k k+6) (setq line (concat line (bitmap-compose (aref vector k)))) (setq k (1+ k))) (setq ret (nconc ret (list line)))) (setq i (1+ i))) ret)) (defun x-face-mule-convert-icon-to-rectangle (icon) "Decode UNIX ICON to rectangle." (let ((i 0) (cmp (make-vector 18 nil))) (with-temp-buffer (insert icon) (goto-char (point-min)) (search-forward "0x" nil t) (while (< i 48) (let* (temp (k (* (/ i 16) 6)) (k+6 (+ k 6))) (while (< k k+6) (setq temp (buffer-substring (point) (+ (point) 2))) (aset cmp k (concat (aref cmp k) temp)) (setq k (1+ k)) (setq temp (buffer-substring (+ (point) 2) (+ (point) 4))) (aset cmp k (concat (aref cmp k) temp)) (setq k (1+ k)) (search-forward "0x" nil t))) (setq i (1+ i)))) (x-face-mule-convert-vector-to-rectangle cmp))) (defun x-face-mule-x-face-insert-at-point (rectangles last) (let ((beg-point (point)) insertcolumn rectangle) (beginning-of-line) (setq insertcolumn (- beg-point (point))) (while (progn (setq rectangle (pop rectangles)) rectangles) (goto-char (setq beg-point (+ insertcolumn (point)))) (insert rectangle) (put-text-property beg-point (point) 'x-face-mule-bitmap-image t) (forward-line 1)) (if (and last (eq x-face-mule-highlight-x-face-position 'from) (eq x-face-mule-highlight-x-face-style 'xmas)) (goto-char (setq beg-point (+ insertcolumn (point) -5))) (goto-char (setq beg-point (+ insertcolumn (point))))) (insert rectangle) (put-text-property beg-point (point) 'x-face-mule-bitmap-image t))) (defsubst x-face-mule-insert-invisible-from () (insert "From:") (put-text-property (- (point) 5) (point) 'x-face-mule-hidden-from t) (insert " ")) (defun x-face-mule-x-face-allocate-lines (beg end height) "Allocate new lines according to x-face-mule-highlight-x-face-position. returns the begin-point of the x-face rectangle." (let ((n 1) from (mime-entity (get-text-property (point-min) 'mime-view-entity))) (cond ((or (eq x-face-mule-highlight-x-face-position 'x-face) (and (eq x-face-mule-highlight-x-face-position 'from) (progn (goto-char beg) (not (setq from (and (re-search-forward "^From:" end t) (point))))))) (goto-char beg) (insert "X-Face-Img:") (prog1 (point); return the begin-point (insert "\n \n ") (while (< n height) (insert "\n \n \n ") (setq n (1+ n))) (insert "\n") (put-text-property beg (point) 'mime-view-entity mime-entity))) ((and (eq x-face-mule-highlight-x-face-position 'from) (if from (goto-char from) (goto-char beg) (re-search-forward "^From:" end t))) (cond ((eq x-face-mule-highlight-x-face-style 'xmas) (beginning-of-line) (setq beg (point)) (x-face-mule-insert-invisible-from) (prog1 (point); return the begin-point (insert "\n") (x-face-mule-insert-invisible-from) (insert "\n") (while (< n height) (x-face-mule-insert-invisible-from) (insert "\n") (x-face-mule-insert-invisible-from) (insert "\n") (x-face-mule-insert-invisible-from) (insert "\n") (setq n (1+ n))) (put-text-property beg (point) 'mime-view-entity mime-entity))) (t (prog1 (point); return the begin-point (setq beg (- (point) 5)) (insert "\n \n ") (while (< n height) (insert "\n \n \n ") (setq n (1+ n))) (put-text-property beg (point) 'mime-view-entity mime-entity)))))))) (defun x-face-mule-change-highlight-x-face-method-by-alist () "Modify displaying position or style by the following variables: `x-face-mule-highlight-x-face-position-alist' `x-face-mule-highlight-x-face-style-alist'" (when x-face-mule-highlight-x-face-position-alist (let ((position (cdr (assq major-mode x-face-mule-highlight-x-face-position-alist)))) (when (memq position '(from x-face off)) (setq x-face-mule-highlight-x-face-position position)))) (when x-face-mule-highlight-x-face-style-alist (let ((style (cdr (assq major-mode x-face-mule-highlight-x-face-style-alist)))) (when (memq style '(default xmas)) (setq x-face-mule-highlight-x-face-style style))))) (defun x-face-mule-analyze-x-face-type (beg end) "Analyze type of X-Face." (goto-char beg) (if (re-search-forward "^X-Face-Type: \\(RGB; \\)?geometry=\\([0-9]+\\)x\\([0-9]+\\)" end t) (list (if (match-string-no-properties 1) 'color 'mono) (string-to-number (match-string-no-properties 2)) (string-to-number (match-string-no-properties 3))) (let ((i 0) (j 0)) (goto-char beg) (while (re-search-forward "^X-Face: *\\(.*\\(\n[ \t].*\\)*\\)\n" end t) (setq i (1+ i))) (setq j (if (> i 0) 1 0)) (list 'mono i j)))) (defun x-face-mule-save-original-x-face-fields (beg end) "Save original X-Face field." (let ((x-face-type nil) (x-faces nil)) (goto-char beg) (when (re-search-forward "^X-Face-Type: \\(RGB; \\)?geometry=\\([0-9]+\\)x\\([0-9]+\\)" end t) (setq x-face-type (match-string-no-properties 0))) (goto-char beg) (while (re-search-forward "^X-Face: *\\(.*\\(\n[ \t].*\\)*\\)\n" end t) (setq x-faces (nconc x-faces (list (match-string-no-properties 0))))) (make-local-variable 'x-face-mule-original-x-face-fields) (setq x-face-mule-original-x-face-fields (list x-face-type x-faces)))) (defun x-face-mule-save-original-from-field (beg end) "Save original From field." (goto-char beg) (set (make-local-variable 'x-face-mule-original-from-field) (when (re-search-forward "^From: *\\(.*\\(\n[ \t].*\\)*\\)\n" end t) (match-string-no-properties 0)))) (defun x-face-mule-insert-original-from-field () "Insert original From field and make it to be invisible." (when (and x-face-mule-original-from-field x-face-mule-preserve-original-from-field) (goto-char (point-min)) (when (re-search-forward "^From:" nil t) (goto-char (match-beginning 0))) (let ((beg-point (point))) (insert x-face-mule-original-from-field) (put-text-property beg-point ;; Don't include the last newline, if so, ;; gnus will break it after sorting headers. (1- (point)) 'x-face-mule-original-from t)))) (defsubst x-face-mule-x-face-decode-message-header-1 () "Decode and show X-Face. The buffer is expected to be narrowed to just the headers of the article." (run-hooks 'x-face-mule-x-face-decode-message-header-hook) (when (and window-system (memq x-face-mule-highlight-x-face-position '(from x-face))) (x-face-mule-save-original-x-face-fields (point-min) (point-max)) (x-face-mule-save-original-from-field (point-min) (point-max)) (let* ((inhibit-read-only t) faces faces-s (first t) (x-face-type (x-face-mule-analyze-x-face-type (point-min) (point-max))) (col-type (nth 0 x-face-type)) (width (* (nth 1 x-face-type) (if (eq col-type 'color) 3 1))) (height (nth 2 x-face-type)) w) (goto-char (point-min)) (let ((h 0)) (while (<= (setq h (1+ h)) height) (setq faces-s nil) (setq w 0) (while (and (<= (setq w (1+ w)) width) (re-search-forward "^X-Face: *\\(.*\\(\n[ \t].*\\)*\\)\n" nil t)) (setq faces-s (cons (match-string-no-properties 1) faces-s)) (when (or (eq x-face-mule-delete-x-face-field 'always) (eq x-face-mule-delete-x-face-field col-type)) (delete-region (match-beginning 0) (match-end 0)))) (setq faces (nconc faces faces-s)))) (x-face-mule-change-highlight-x-face-method-by-alist) (when faces (while faces (let ((begin-point (if first (progn (setq first nil) (x-face-mule-x-face-allocate-lines (point-min) (point-max) height)) (end-of-line 2) (point)))) (setq w 0) (while (and (<= (setq w (1+ w)) width) faces) (goto-char begin-point) (x-face-mule-x-face-insert-at-point (x-face-mule-convert-x-face-to-rectangle (pop faces)) (< (length faces) width))))) (x-face-mule-insert-original-from-field))))) (defun x-face-mule-highlight-header () "Highlight inline images and hide raw X-Face fields." (let (start (end (point-min))) (while (and (setq start (text-property-any end (point-max) 'x-face-mule-bitmap-image t)) (setq end (text-property-not-all start (point-max) 'x-face-mule-bitmap-image t))) (x-face-mule-overlay-put (make-overlay start end) 'face x-face-mule-highlight-x-face-face)) (setq end (point-min)) (let ((inhibit-read-only t)) (while (and (setq start (text-property-any end (point-max) 'x-face-mule-hidden-from t)) (setq end (text-property-not-all start (point-max) 'x-face-mule-hidden-from t))) (add-text-properties start end x-face-mule-hidden-properties)) (setq end (point-min)) (while (and (setq start (text-property-any end (point-max) 'x-face-mule-original-from t)) (setq end (text-property-not-all start (point-max) 'x-face-mule-original-from t))) (add-text-properties start (1+ end);; Include the last newline. x-face-mule-hidden-properties))))) (defun x-face-decode-message-header (&optional beg end) "Decode and show X-Face." (when window-system (save-restriction (narrow-to-region (goto-char (or beg (point-min))) (or end (if (search-forward "\n\n" nil t) (point) (point-max)))) (x-face-mule-x-face-decode-message-header-1) (unless (or (and (boundp 'gnus-article-buffer) (eq (get-buffer gnus-article-buffer) (current-buffer))) (and (boundp 'vm-message-pointer) (fboundp 'x-face-mule-original-vm-energize-headers-and-xfaces) vm-message-pointer)) (x-face-mule-highlight-header))))) ;; Redefine `x-face-decode-message-header' for MULE 1. (when (<= emacs-major-version 18) (require 'x-face-18)) ;;; Commands. ;; ;;;###autoload (defun x-face-mule-toggle-x-face-position (&optional arg) "Toggle position of showing X-Face." (interactive "P") (if window-system (let ((pos (cond ((eq x-face-mule-highlight-x-face-position 'from) 'x-face) ((eq x-face-mule-highlight-x-face-position 'x-face) 'off) (t 'from))) (table '(("From:" . from) ("X-Face:" . x-face) ("Off" . off))) (method (cdr (assq major-mode x-face-mule-highlight-x-face-refresh-method-alist))) msg) (setq x-face-mule-highlight-x-face-position (if arg (cdr (assoc (completing-read "Show X-Face at> " table nil t (concat (capitalize (symbol-name pos)) (and (memq pos '(from x-face)) ":"))) table)) pos)) (when (interactive-p) (setq msg (cond ((eq x-face-mule-highlight-x-face-position 'from) "Show X-Face at From:") ((eq x-face-mule-highlight-x-face-position 'x-face) "Show X-Face at X-Face-Img:") (t "Don't Show X-Face"))) (message "%s..." msg)) (when method (funcall method)) (when (interactive-p) (message "%s...done" msg))) (when (interactive-p) (message "You're not under window system")))) ;;;###autoload (defun x-face-mule-toggle-x-face-style (&optional arg) "Toggle style of showing X-Face." (interactive "P") (if window-system (let ((style (cond ((eq x-face-mule-highlight-x-face-style 'default) 'xmas) ((eq x-face-mule-highlight-x-face-style 'xmas) 'default))) (table '(("Xmas" . xmas) ("Default" . default))) (method (cdr (assq major-mode x-face-mule-highlight-x-face-refresh-method-alist))) msg) (setq x-face-mule-highlight-x-face-style (if arg (cdr (assoc (completing-read "Show X-Face style> " table nil t (capitalize (symbol-name style))) table)) style)) (when (interactive-p) (setq msg (cond ((eq x-face-mule-highlight-x-face-style 'xmas) "Show X-Face in XEmacs style") ((eq x-face-mule-highlight-x-face-style 'default) "Show X-Face in default style"))) (message "%s..." msg)) (when method (funcall method)) (when (interactive-p) (message "%s...done" msg))) (when (interactive-p) (message "You're not under window system")))) ;;; MUA dependencies. ;; (when (and (>= emacs-major-version 19) window-system) ;; gnus (autoload 'x-face-mule-gnus-article-display-x-face "gnus-bitmap") (unless (assq 'gnus-bitmap-redefine (cdr (assoc "gnus" after-load-alist))) (autoload 'gnus-bitmap-redefine "gnus-bitmap") (eval-after-load "gnus" '(gnus-bitmap-redefine))) ;; VM (autoload 'vm-bitmap-redefine "vm-bitmap") (eval-after-load "vm" '(vm-bitmap-redefine))) ;;; BBDB ;; (defvar x-face-mule-BBDB-display (and (locate-library "bbdb") t) "*If non-nil, display X-Faces in *BBDB* buffer.") (defvar x-face-mule-BBDB-icon (bitmap-compose "\ 0000f87c3e1f0f070205081020400000000002040810a040e0f0f87c3e1f0000") "*Bitmap image used to iconified raw X-Face data.") (defvar x-face-mule-BBDB-verbose t "*Non-nil makes x-face-mule-BBDB- functions talkative.") (eval-and-compile (autoload 'bbdb-current-record "bbdb-com") (autoload 'bbdb-record-getprop "bbdb") (autoload 'bbdb-record-name "bbdb")) ;; Byte-compiler warning. (defvar bbdb-buffer-name) (defun x-face-mule-BBDB-buffer () "Display X-Faces in *BBDB* buffer." (when (and x-face-mule-BBDB-display (get-buffer bbdb-buffer-name)) (save-excursion (set-buffer bbdb-buffer-name) (let ((inhibit-point-motion-hooks t)) (goto-char (point-min)) (while (progn (while (and (not (eobp)) (memq (following-char) '(?\t ?\n ?\ ))) (forward-line 1)) (not (eobp))) (x-face-mule-BBDB-one-record t) (forward-line 1)))))) (defun x-face-mule-BBDB-one-record (&optional beginning-of-record) "Display X-Face in *BBDB* one recode. Optional BEGINNING-OF-RECORD means that the current position is the beginning of a record." (when x-face-mule-BBDB-display (unless beginning-of-record (beginning-of-line) (if (eolp) (progn (forward-line 1) (while (and (not (eobp)) (memq (following-char) '(?\t ?\n ?\ ))) (forward-line 1))) (while (and (not (bobp)) (memq (following-char) '(?\t ?\n ?\ ))) (forward-line -1)))) (let ((record (bbdb-current-record)) (inhibit-read-only t) sfaces home start xface xfaces len (i 0) j pos) (when (and record (setq sfaces (bbdb-record-getprop record 'face))) (when x-face-mule-BBDB-verbose (message "Extracting X-Face(s) for %s..." (bbdb-record-name record))) (forward-line 1) (setq home (point)) (while (and (not (and (looking-at "[\t ]+face:[\t ]+") (setq start (match-end 0)))) (zerop (forward-line 1)))) (while (and (zerop (forward-line 1)) (not (looking-at "[\t ]+[^\t\n ]+:[\t ]\\|[\t ]*$\\|[^\t\n ]")))) (save-restriction (narrow-to-region start (1- (point))) (goto-char (point-min)) (while (re-search-forward "[^\t\n ]+[\t\n ]*" nil t) (replace-match x-face-mule-BBDB-icon))) (setq start 0) (while (string-match "\\([^\t\n\v\f\r ]+\\)[\t\n\v\f\r ]*" sfaces start) (when (setq start (match-end 0) xface (x-face-mule-convert-x-face-to-rectangle (substring sfaces (match-beginning 1) (match-end 1)))) (setq xfaces (nconc xfaces (list xface))))) (setq len (length xfaces)) (goto-char home) (while (> 3 i) (setq j 0) (while (> len j) (insert " ") (setq pos (point)) (insert (format "%s" (nth i (nth j xfaces)))) (x-face-mule-overlay-put (make-overlay pos (point)) 'face x-face-mule-highlight-x-face-face) (setq j (1+ j))) (setq i (1+ i)) (insert "\n")) (forward-line 1) (x-face-mule-overlay-put (make-overlay home (point)) 'intangible t))))) ;;; BBDB Setup. ;; (let (current-load-list) (defadvice bbdb-display-records-1 (around x-face-mule-BBDB-buffer activate) "Advised by X-Face-Mule. Display X-Faces in *BBDB* buffer." (let ((silent (or (not x-face-mule-BBDB-verbose) (and (boundp 'bbdb-gag-messages) (symbol-value 'bbdb-gag-messages)) (and (boundp 'bbdb-silent-running) (symbol-value 'bbdb-silent-running))))) (unless silent (message "Formatting...")) (let ((bbdb-silent-running t) (bbdb-list-hook bbdb-list-hook)) (remove-hook 'bbdb-list-hook 'x-face-mule-BBDB-one-record) ad-do-it) (x-face-mule-BBDB-buffer) (unless silent (message "Formatting...done")))) (defadvice bbdb-elide-all-records-internal (around dont-show-x-faces-if-records-are-made-elided activate) "Advised by X-Face-Mule for BBDB versions prior to 2.33. Don't show X-Faces if records are made elided." (let ((x-face-mule-BBDB-display (cond ((not (ad-get-arg 0)) (and (car (cdr (assq (bbdb-current-record) bbdb-records))) x-face-mule-BBDB-display)) ((eq 0 (ad-get-arg 0)) x-face-mule-BBDB-display) (t nil))) x-face-mule-BBDB-verbose) ad-do-it)) (defadvice bbdb-elide-record-internal (around dont-show-x-faces-if-record-is-made-elided activate) "Advised by X-Face-Mule for BBDB versions prior to 2.33. Don't show X-Face if a record is made elided." (let ((x-face-mule-BBDB-display (cond ((not (ad-get-arg 0)) (and (car (cdr (assq (bbdb-current-record) bbdb-records))) x-face-mule-BBDB-display)) ((eq 0 (ad-get-arg 0)) x-face-mule-BBDB-display) (t nil))) x-face-mule-BBDB-verbose) ad-do-it)) (defadvice bbdb-change-records-state-and-redisplay (around dont-show-x-faces-if-records-are-made-elided activate) "Advised by X-Face-Mule for BBDB versions 2.33 and later. Don't show X-Faces if records are made elided." (let ((x-face-mule-BBDB-display (if (eq 'multi-line (ad-get-arg 0)) x-face-mule-BBDB-display)) x-face-mule-BBDB-verbose) ad-do-it))) (add-hook 'bbdb-list-hook 'x-face-mule-BBDB-one-record) (provide 'x-face-mule) ;; x-face-mule.el ends here