;ELC   
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\300\301!\210\302\303\304\305\306\307%\207" [require help-mode custom-declare-group quail nil "Quail: multilingual input method." :group leim] 6)
#@134 The current Quail package, which depends on the current input method.
See the documentation of `quail-package-alist' for the format.
(defvar quail-current-package nil (#$ . 243))
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local quail-current-package put permanent-local t] 4)
(defvar quail-guidance-str nil nil)
(make-variable-buffer-local 'quail-guidance-str)
(defvar quail-completion-buf nil)
(defvar quail-guidance-buf nil)
(defvar quail-guidance-frame nil)
(put 'quail-guidance-str 'permanent-local t)
#@63 Overlay which covers the current translation region of Quail.
(defvar quail-overlay nil (#$ . 782))
(make-variable-buffer-local 'quail-overlay)
#@62 Overlay which covers the text to be converted in Quail mode.
(defvar quail-conv-overlay nil (#$ . 932))
(make-variable-buffer-local 'quail-conv-overlay)
#@44 Current key for translation in Quail mode.
(defvar quail-current-key nil (#$ . 1091))
(make-variable-buffer-local 'quail-current-key)
#@52 Currently selected translation of the current key.
(defvar quail-current-str nil (#$ . 1231))
(make-variable-buffer-local 'quail-current-str)
#@331 Cons of indices and vector of possible translations of the current key.
Indices is a list of (CURRENT START END BLOCK BLOCKS), where
CURRENT is an index of the current translation,
START and END are indices of the start and end of the current block,
BLOCK is the current block index,
BLOCKS is a number of  blocks of translation.
(defvar quail-current-translations nil (#$ . 1380))
(make-variable-buffer-local 'quail-current-translations)
#@268 Any Lisp object holding information of current translation status.
When a key sequence is mapped to TRANS and TRANS is a cons
of actual translation and some Lisp object to be referred
for translating the longer key sequence, this variable is set
to that Lisp object.
(defvar quail-current-data nil (#$ . 1826))
(make-variable-buffer-local 'quail-current-data)
#@567 List of Quail packages.
A Quail package is a list of these elements:
  NAME, TITLE, QUAIL-MAP, GUIDANCE, DOCSTRING, TRANSLATION-KEYS,
  FORGET-LAST-SELECTION, DETERMINISTIC, KBD-TRANSLATE, SHOW-LAYOUT,
  DECODE-MAP, MAXIMUM-SHORTEST, OVERLAY-PLIST, UPDATE-TRANSLATION-FUNCTION,
  CONVERSION-KEYS, SIMPLE.

QUAIL-MAP is a data structure to map key strings to translations.  For
the format, see the documentation of `quail-map-p'.

DECODE-MAP is an alist of translations and corresponding keys.

See the documentation of `quail-define-package' for the other elements.
(defvar quail-package-alist nil (#$ . 2193))
#@47 Return the name of the current Quail package.
(defalias 'quail-name #[0 "@\207" [quail-current-package] 1 (#$ . 2810)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-name speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn COL)
(defalias 'quail-indent-to #[257 "\211j\210`\212\300\301x\302U?\205 \303`\304\305\306E$)\207" ["	 " nil 0 put-text-property display space :align-to] 9 (#$ . 3073)])
#@48 Return the title of the current Quail package.
(defalias 'quail-title #[0 "A@\211;\203	 \207\3011 \302\303\304#0\207\210\304\207" [quail-current-package (error) mapconcat #[257 "\211;\203 \207\211<\203& \211@9\203& \211G\300U\203& \211@J\203\" \211A@\207\3018\207\302\207" [3 2 #1=""] 3 "\n\n(fn X)"] #1#] 5 (#$ . 3259)])
#@58 Return the translation map of the current Quail package.
(defalias 'quail-map #[0 "\3018\207" [quail-current-package 2] 2 (#$ . 3592)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-map speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@130 Return an object used for `guidance' feature of the current Quail package.
See also the documentation of `quail-define-package'.
(defalias 'quail-guidance #[0 "\3018\207" [quail-current-package 3] 2 (#$ . 3871)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-guidance speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@63 Return the documentation string of the current Quail package.
(defalias 'quail-docstring #[0 "\3018\207" [quail-current-package 4] 2 (#$ . 4231)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-docstring speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@129 Return translation keymap in the current Quail package.
Translation keymap is a keymap used while translation region is active.
(defalias 'quail-translation-keymap #[0 "\3018\207" [quail-current-package 5] 2 (#$ . 4527)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-translation-keymap speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@121 Return `forget-last-selection' flag of the current Quail package.
See also the documentation of `quail-define-package'.
(defalias 'quail-forget-last-selection #[0 "\3018\207" [quail-current-package 6] 2 (#$ . 4907)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-forget-last-selection speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@113 Return `deterministic' flag of the current Quail package.
See also the documentation of `quail-define-package'.
(defalias 'quail-deterministic #[0 "\3018\207" [quail-current-package 7] 2 (#$ . 5285)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-deterministic speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@113 Return `kbd-translate' flag of the current Quail package.
See also the documentation of `quail-define-package'.
(defalias 'quail-kbd-translate #[0 "\3018\207" [quail-current-package 8] 2 (#$ . 5639)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-kbd-translate speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@111 Return `show-layout' flag of the current Quail package.
See also the documentation of `quail-define-package'.
(defalias 'quail-show-layout #[0 "\3018\207" [quail-current-package 9] 2 (#$ . 5993)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-show-layout speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@104 Return decode map of the current Quail package.
It is an alist of translations and corresponding keys.
(defalias 'quail-decode-map #[0 "\3018\207" [quail-current-package 10] 2 (#$ . 6341)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-decode-map speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@116 Return `maximum-shortest' flag of the current Quail package.
See also the documentation of `quail-define-package'.
(defalias 'quail-maximum-shortest #[0 "\3018\207" [quail-current-package 11] 2 (#$ . 6681)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-maximum-shortest speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@71 Return property list of an overlay used in the current Quail package.
(defalias 'quail-overlay-plist #[0 "\3018\207" [quail-current-package 12] 2 (#$ . 7044)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-overlay-plist speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@74 Return a function for updating translation in the current Quail package.
(defalias 'quail-update-translation-function #[0 "\3018\207" [quail-current-package 13] 2 (#$ . 7356)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-update-translation-function speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@164 Return conversion keymap in the current Quail package.
Conversion keymap is a keymap used while conversion region is active
 but translation region is not active.
(defalias 'quail-conversion-keymap #[0 "\3018\207" [quail-current-package 14] 2 (#$ . 7700)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-conversion-keymap speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@50 Return t if the current Quail package is simple.
(defalias 'quail-simple #[0 "\3018\207" [quail-current-package 15] 2 (#$ . 8113)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-simple speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@45 Return Quail package named NAME.

(fn NAME)
(defalias 'quail-package #[257 "\301\"\207" [quail-package-alist assoc] 4 (#$ . 8390)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-package speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@67 Add Quail package PACKAGE to `quail-package-alist'.

(fn PACKAGE)
(defalias 'quail-add-package #[257 "\211@\301\"\262\211\203 \211A\241\207B\211\207" [quail-package-alist assoc] 5 (#$ . 8669)])
#@74 Select Quail package named NAME as the current Quail package.

(fn NAME)
(defalias 'quail-select-package #[257 "\211\302\"\262\211\204 \303\304\"\210\211\305\301\"\210\207" [quail-package-alist quail-current-package assoc error "No Quail package `%s'" set-default] 5 (#$ . 8877)])
#@246 Start using Quail package PACKAGE-NAME.
The remaining arguments are LIBRARIES to be loaded before using the package.

This activates input method defined by PACKAGE-NAME by running
`quail-activate', which see.

(fn PACKAGE-NAME &rest LIBRARIES)
(defalias 'quail-use-package #[385 "\306\"\262\211\204i \203i \307@\310\"\204b 	r\311\312!q\210p\313 \210\314\211\310\211\310\315 \210\316\317!\210+\211\320\321!\210\320!\210\320\322\323!!\210\320@!\210\320\322\324!!\210\325!\210)\266\326\327\"\210\202 A\262\202 \210\330!\210\331 \332 \210\333\314!\207" [quail-package-alist default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks assoc load t get-buffer-create "*Help*" kill-all-local-variables nil erase-buffer run-hooks temp-buffer-setup-hook princ "Quail package \"" substitute-command-keys "\" can't be activated\n  because library \"" "\" is not in `load-path'.\n\nThe most common case is that you have not yet installed appropriate\nlibraries in LEIM (Libraries of Emacs Input Method) which is\ndistributed separately from Emacs.\n\nLEIM is available from the same ftp directory as Emacs." internal-temp-output-buffer-show error "Can't use the Quail package `%s'" quail-select-package quail-title quail-activate message inhibit-read-only standard-output current-input-method-title] 9 (#$ . 9173)])
#@228 Keymap used processing translation in complex Quail modes.
Only a few especially complex input methods use this map;
most use `quail-simple-translation-keymap' instead.
This map is activated while translation region is active.
(defvar quail-translation-keymap (byte-code "\300 \301\211\302W\203 \303\304!\305#\210\211T\262\202 \211\306W\203- \303\304!\307#\210\211T\262\202 \310\262\211\311W\203E \303\312!\307#\210\211T\262\2020 \303\313\314#\210\303\315\316#\210\303\317\320#\210\303\321\322#\210\303\323\324#\210\303\325\316#\210\303\326\320#\210\303\327\322#\210\303\330\324#\210\303\331\332#\210\303\333\334#\210\303\335\334#\210\303\336\337#\210\303\340\341#\210\303\342\343#\210\303\344\334#\210\303\345\332#\210\303\346\314#\210\303\347\314#\210\207" [make-keymap 0 32 define-key char-to-string quail-other-command 127 quail-self-insert-command 128 256 vector "" quail-delete-last-char "" quail-next-translation "" quail-prev-translation "" quail-next-translation-block "" quail-prev-translation-block [right] [left] [down] [up] "	" quail-completion " " quail-select-current [kp-enter] [mouse-2] quail-mouse-choose-completion [down-mouse-2] nil "" quail-translation-help [67108896] [tab] [delete] [backspace]] 6) (#$ . 10549))
(defvar quail-translation-docstring "When you type keys, the echo area shows the possible characters\nwhich correspond to that key sequence, each preceded by a digit.  You\ncan select one of the characters shown by typing the corresponding\ndigit.  Alternatively, you can use C-f and C-b to move through the\nline to select the character you want, then type a letter to begin\nentering another Chinese character or type a space or punctuation\ncharacter.\n\nIf there are more than ten possible characters for the given spelling,\nthe echo area shows ten characters at a time; you can use C-n to move\nto the next group of ten, and C-p to move back to the previous group\nof ten.")
(byte-code "\300\211\203 \301@@\302@A#\210\211A\262\202 \207" [((quail-other-command . hide) (quail-self-insert-command . hide) (quail-delete-last-char . hide) (quail-next-translation . non-deterministic) (quail-prev-translation . non-deterministic) (quail-next-translation-block . non-deterministic) (quail-prev-translation-block . non-deterministic)) put quail-help] 5)
#@202 Keymap used while processing translation in simple Quail modes.
A few especially complex input methods use `quail-translation-keymap' instead.
This map is activated while translation region is active.
(defvar quail-simple-translation-keymap (byte-code "\300 \301\211\302W\203 \303\304!\305#\210\211T\262\202 \211\306W\203- \303\304!\307#\210\211T\262\202 \310\262\211\311W\203E \303\312!\307#\210\211T\262\2020 \303\313\314#\210\303\315\314#\210\303\316\314#\210\207" [make-keymap 0 32 define-key char-to-string quail-other-command 127 quail-self-insert-command 128 256 vector "" quail-delete-last-char [delete] [backspace]] 6) (#$ . 12888))
#@148 Keymap used for processing conversion in Quail mode.
This map is activated while conversion region is active but translation
region is not active.
(defvar quail-conversion-keymap (byte-code "\300 \301\211\302W\203 \303\304!\305#\210\211T\262\202 \306\262\211\307W\2030 \303\310!\305#\210\211T\262\202 \303\311\312#\210\303\313\314#\210\303\315\316#\210\303\317\320#\210\303\321\322#\210\303\323\324#\210\303\325\326#\210\303\327\330#\210\303\331\330#\210\303\332\330#\210\207" [make-keymap 32 127 define-key char-to-string quail-self-insert-command 128 256 vector "" quail-conversion-backward-char "" quail-conversion-forward-char "" quail-conversion-beginning-of-region "" quail-conversion-end-of-region "" quail-conversion-delete-char "" quail-conversion-delete-tail "" quail-translation-help "" quail-conversion-backward-delete-char [delete] [backspace]] 6) (#$ . 13555))
(defalias 'quail-other-command #[0 "\300\207" [nil] 1 nil nil])
#@4176 Define NAME as a new Quail package for input LANGUAGE.
TITLE is a string to be displayed at mode-line to indicate this package.
Optional arguments are GUIDANCE, DOCSTRING, TRANSLATION-KEYS,
 FORGET-LAST-SELECTION, DETERMINISTIC, KBD-TRANSLATE, SHOW-LAYOUT,
 CREATE-DECODE-MAP, MAXIMUM-SHORTEST, OVERLAY-PLIST,
 UPDATE-TRANSLATION-FUNCTION, CONVERSION-KEYS and SIMPLE.

GUIDANCE specifies how a guidance string is shown in echo area.
If it is t, list of all possible translations for the current key is shown
 with the currently selected translation being highlighted.
If it is an alist, the element has the form (CHAR . STRING).  Each character
 in the current key is searched in the list and the corresponding string is
 shown.
If it is nil, the current key is shown.

DOCSTRING is the documentation string of this package.  The command
`describe-input-method' shows this string while replacing the form
\=\<VAR> in the string by the value of VAR.  That value should be a
string.  For instance, the form \=\<quail-translation-docstring> is
replaced by a description about how to select a translation from a
list of candidates.

TRANSLATION-KEYS specifies additional key bindings used while translation
region is active.  It is an alist of single key character vs. corresponding
command to be called.

FORGET-LAST-SELECTION non-nil means a selected translation is not kept
for the future to translate the same key.  If this flag is nil, a
translation selected for a key is remembered so that it can be the
first candidate when the same key is entered later.

DETERMINISTIC non-nil means the first candidate of translation is
selected automatically without allowing users to select another
translation for a key.  In this case, unselected translations are of
no use for an interactive use of Quail but can be used by some other
programs.  If this flag is non-nil, FORGET-LAST-SELECTION is also set
to t.

KBD-TRANSLATE non-nil means input characters are translated from a
user's keyboard layout to the standard keyboard layout.  See the
documentation of `quail-keyboard-layout' and
`quail-keyboard-layout-standard' for more detail.

SHOW-LAYOUT non-nil means the function `quail-help' (as used by
the command `describe-input-method') should show the user's keyboard
layout visually with translated characters.  If KBD-TRANSLATE is
set, it is desirable to also set this flag, unless this package
defines no translations for single character keys.

CREATE-DECODE-MAP non-nil means decode map is also created.  A decode
map is an alist of translations and corresponding original keys.
Although this map is not used by Quail itself, it can be used by some
other programs.  For instance, Vietnamese supporting needs this map to
convert Vietnamese text to VIQR format which uses only ASCII
characters to represent Vietnamese characters.

MAXIMUM-SHORTEST non-nil means break key sequence to get maximum
length of the shortest sequence.  When we don't have a translation of
key "..ABCD" but have translations of "..AB" and "CD..", break
the key at "..AB" and start translation of "CD..".  Hangul
packages, for instance, use this facility.  If this flag is nil, we
break the key just at "..ABC" and start translation of "D..".

OVERLAY-PLIST if non-nil is a property list put on an overlay which
covers Quail translation region.

UPDATE-TRANSLATION-FUNCTION if non-nil is a function to call to update
the current translation region according to a new translation data.  By
default, a translated text or a user's key sequence (if no translation
for it) is inserted.

CONVERSION-KEYS specifies additional key bindings used while
conversion region is active.  It is an alist of single key character
vs. corresponding command to be called.

If SIMPLE is non-nil, then we do not alter the meanings of
commands such as \[forward-char], \[backward-char], \[next-line], \[previous-line] and \[indent-for-tab-command]; they are treated as
non-Quail commands.

(fn NAME LANGUAGE TITLE &optional GUIDANCE DOCSTRING TRANSLATION-KEYS FORGET-LAST-SELECTION DETERMINISTIC KBD-TRANSLATE SHOW-LAYOUT CREATE-DECODE-MAP MAXIMUM-SHORTEST OVERLAY-PLIST UPDATE-TRANSLATION-FUNCTION CONVERSION-KEYS SIMPLE)
(defalias 'quail-define-package #[4099 "\304\211\n\203\n \305\262\f\f\2037 \306\203 \202 	!\262\f\211\2033 \211@\307@A#\210A\266\202\202 \210\202B \203? \202@ 	\262\203b \306\n!\262\211\203a \211@\307@A#\210A\266\202\202L \210\310\304C\206q \311\205\202 \312C\257!\210\313\"\314F\203\251 \241\266\202\262 BB\266\315!\207" [quail-simple-translation-keymap quail-translation-keymap quail-conversion-keymap input-method-alist nil t copy-keymap define-key quail-add-package "" decode-map assoc quail-use-package quail-select-package] 35 (#$ . 14531)])
#@24 

(fn CONVERSION-MODE)
(defalias 'quail-setup-overlays #[257 "`\304!\203 \305\211#\210\2028 \306\211\"	\203 \307\310\311#\210\312\n8\211\2037 \307@A@#\210\211AA\262\202\" \210\205] \304!\203O \313!?\205] \305\211#\207\306\211\"	\205] \307\310\311#\207" [quail-overlay input-method-highlight-flag quail-current-package quail-conv-overlay overlayp move-overlay make-overlay overlay-put face underline 12 overlay-start] 7 (#$ . 19335)])
(defalias 'quail-delete-overlays #[0 "\302!\203 \303!\203 \304!\210\302	!\205 \303	!\205 \304	!\207" [quail-overlay quail-conv-overlay overlayp overlay-start delete-overlay] 2])
#@93 Deactivate Quail input method.

This function runs the normal hook `quail-deactivate-hook'.
(defalias 'quail-deactivate #[0 "\300\301!\207" [quail-activate -1] 2 (#$ . 19980) nil])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias quail-inactivate quail-deactivate nil make-obsolete "24.3"] 4)
#@362 Activate Quail input method.
With ARG, activate Quail input method if and only if arg is positive.

This function runs `quail-activate-hook' if it activates the input
method, `quail-deactivate-hook' if it deactivates it.

While this input method is active, the variable
`input-method-function' is bound to the function `quail-input-method'.

(fn &optional ARG)
(defalias 'quail-activate #[256 "\211\203! \306!\307W\203! \310\216\311 \210\312\313 \210\314\315\316\317#\210\320\321!)\207	\204; \312\n\2032 \n@@\262\2026 \322\323!\210\324!\266\325\326\311 \210\327\316 \210\330 \331 =\203[ \332\333\334\"\210\332\315\316\312\317$\210\320\335!\210\336\305!\210\337\211\207" [describe-current-input-method-function quail-current-package quail-package-alist deactivate-current-input-method-function quail-guidance-str input-method-function prefix-numeric-value 0 #[0 "\300\301!\207" [kill-local-variable input-method-function] 2] quail-delete-overlays nil quail-hide-guidance remove-hook post-command-hook quail-show-guidance t run-hooks quail-deactivate-hook error "No Quail package loaded" quail-select-package quail-deactivate quail-help "" selected-window minibuffer-window add-hook minibuffer-exit-hook quail-exit-from-minibuffer quail-activate-hook make-local-variable quail-input-method] 6 (#$ . 20297)])
(byte-code "\300\301\302\303#\210\304\211\203( \211@\301N\203! \302N\204! \305\302\301N#\210A\266\202\202 \210\306\301\302\307#\207" [defvaralias quail-inactivate-hook quail-deactivate-hook nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 7)
(defalias 'quail-exit-from-minibuffer #[0 "\300 \210\301 \302X\205 \303\304\305\"\207" [deactivate-input-method minibuffer-depth 1 remove-hook minibuffer-exit-hook quail-exit-from-minibuffer] 3])
#@286 Standard keyboard layout of printable characters Quail assumes.
See the documentation of `quail-keyboard-layout' for this format.
This layout is almost the same as that of VT100,
 but the location of key \ (backslash) is just right of key \=' (single-quote),
 not right of RETURN key.
(defconst quail-keyboard-layout-standard "                                1!2@3#4$5%6^7&8*9(0)-_=+`~    qQwWeErRtTyYuUiIoOpP[{]}      aAsSdDfFgGhHjJkKlL;:'\"\\|      zZxXcCvVbBnNmM,<.>/?                                      " (#$ . 22091))
(defconst quail-keyboard-layout-len 180)
#@145 Alist of keyboard names and corresponding layout strings.
See the documentation of `quail-keyboard-layout' for the format of
the layout string.
(defvar quail-keyboard-layout-alist (byte-code "\301B\302\303\304\305\306\257\207" [quail-keyboard-layout-standard "standard" ("sun-type3" . "                                1!2@3#4$5%6^7&8*9(0)-_=+\\|`~  qQwWeErRtTyYuUiIoOpP[{]}      aAsSdDfFgGhHjJkKlL;:'\"        zZxXcCvVbBnNmM,<.>/?                                      ") ("atari-german" . "                                1!2\"3\2474$5%6&7/8(9)0=\337?'`#^    qQwWeErRtTzZuUiIoOpP\374\334+*      aAsSdDfFgGhHjJkKlL\366\326\344\304~|    <>yYxXcCvVbBnNmM,;.:-_                                      ") ("pc102-de" . "                              ^\2601!2\"3\2474$5%6&7/8(9)0=\337?\264`#'    qQwWeErRtTzZuUiIoOpP\374\334+*      aAsSdDfFgGhHjJkKlL\366\326\344\304      <>yYxXcCvVbBnNmM,;.:-_                                      ") ("jp106" . "                                1!2\"3#4$5%6&7'8(9)0~-=^~\\|    qQwWeErRtTyYuUiIoOpP@`[{      aAsSdDfFgGhHjJkKlL;+:*]}      zZxXcCvVbBnNmM,<.>/?\\_                                    ") ("pc105-uk" . "                              `\2541!2\"3\2434$5%6^7&8*9(0)-_=+      qQwWeErRtTyYuUiIoOpP[{]}      aAsSdDfFgGhHjJkKlL;:'@#~    \\|zZxXcCvVbBnNmM,<.>/?                                      ")] 6) (#$ . 22664))
(byte-code "\301\302\303\304\305DD\306\307\310\311\312\313\314\315\"\316\"B&\207" [quail-keyboard-layout-alist custom-declare-variable quail-keyboard-layout funcall function #[0 "\207" [quail-keyboard-layout-standard] 1 ""] "A string which represents physical key layout of a particular keyboard.\nWe assume there are six rows and each row has 15 keys (columns),\n	the first row is above the `1' - `0' row,\n	the first column of the second row is left of key `1',\n	the first column of the third row is left of key `q',\n	the first column of the fourth row is left of key `a',\n	the first column of the fifth row is left of key `z',\n	the sixth row is below the `z' - `/' row.\nNth (N is even) and (N+1)th characters in the string are non-shifted\nand shifted characters respectively at the same location.\nThe location of Nth character is row (N / 30) and column ((N mod 30) / 2).\nThe command `quail-set-keyboard-layout' usually sets this variable." :group quail :type choice append mapcar #[257 "\300\301@AF\207" [const :tag] 5 "\n\n(fn PAIR)"] ((string :tag "Other"))] 12)
(defvar quail-keyboard-layout-substitution nil)
#@17 

(fn KBD-TYPE)
(defalias 'quail-update-keyboard-layout #[257 "\305\"\211\204 \306\307\"\210\211A\n\310\211\311V\203F S\262	H\312U\2035 H\312U\204 B\262\202 H\312U\203 CB\262\202 \211\211\205p \211@\203` @A\203` A\262\202O \203i @\241\210A\266\202\202I \207" [quail-keyboard-layout-alist quail-keyboard-layout quail-keyboard-layout-len quail-keyboard-layout-standard quail-keyboard-layout-substitution assoc error "Unknown keyboard type `%s'" nil 0 32] 9 (#$ . 25151)])
(byte-code "\301\302\303\304\305DD\306\307\310\311\312\313\314\"B\315\316&	\207" [quail-keyboard-layout-alist custom-declare-variable quail-keyboard-layout-type funcall function #[0 "\300\207" ["standard"] 1 ""] "Type of keyboard layout used in Quail base input method.\nAvailable types are listed in the variable `quail-keyboard-layout-alist'." :group quail :type choice mapcar #[257 "\300@D\207" [const] 3 "\n\n(fn ELT)"] :set #[514 "\300!\210L\207" [quail-update-keyboard-layout] 4 "\n\n(fn SYMBOL VALUE)"]] 11)
#@383 Set the current keyboard layout to the same as keyboard KBD-TYPE.

Since some Quail packages depends on a physical layout of keys (not
characters generated by them), those are created by assuming the
standard layout defined in `quail-keyboard-layout-standard'.  This
function tells Quail system the layout of your keyboard so that what
you type is correctly handled.

(fn KBD-TYPE)
(defalias 'quail-set-keyboard-layout #[257 "\301!\210\211\211\207" [quail-keyboard-layout-type quail-update-keyboard-layout] 3 (#$ . 26181) (byte-code "\302\303\304	\")\211C\207" [completion-ignore-case quail-keyboard-layout-alist t completing-read "Keyboard type: "] 3)])
#@71 Translate CHAR to the one in the standard keyboard layout.

(fn CHAR)
(defalias 'quail-keyboard-translate #[257 "	=\203 \207\304\211\nW\203 HU\204 \211T\262\202 \211\nU\203% \207	H\211\305U\203> \236A\211\262\203< 	H\207\207\207" [quail-keyboard-layout quail-keyboard-layout-standard quail-keyboard-layout-len quail-keyboard-layout-substitution 0 32] 5 (#$ . 26845)])
#@15 

(fn KEYSEQ)
(defalias 'quail-keyseq-translate #[257 "\300\301\302\303\"\"\207" [apply string mapcar #[257 "\300!\207" [quail-keyboard-translate] 3 "\n\n(fn X)"]] 6 (#$ . 27235)])
#@148 Insert the visual keyboard layout table according to KBD-LAYOUT.
The format of KBD-LAYOUT is the same as `quail-keyboard-layout'.

(fn KBD-LAYOUT)
(defalias 'quail-insert-kbd-layout #[257 "\303\211\211\211\304\305!\262\262\306\262	W\203q H\262\307\n8\203' \310!\262\211\311\n8A\236A\211\205: \312@\313!\314#\211\203^ \211:\203U \211AG\306V\203R \211A\306H\202S \315\262\211B\262\202d H\262I\266T\262\202 `\303\211\211\316\306\314\317\320\321%\210\306\262	W\203@\322\246\306U\203\244 \322\245\262\211\314V\203\244 \323\324\211\311Z\311\245\\\"\210H\262TH\262\321c\210;\203\301 \325!\202\304 \326!\311W\203\314 \315c\210\327!\203\357 \330\331\"\332=\203\352 \333\334!\306\314\335\336\"$\202\355 \334!\262\327!\203\330\331\"\332=\203\333\334!\306\314\335\336\"$\202\334!\262\337!\340\315\341\342#\337!\261\210\325!\311W\203+\315c\210\311\\\262\322\246\306U\203\200 \321\343\261\210\202\200 \214`}\210b\210\344\306\303\211m\204\341\345\346!\203^`\306\225|\210\202}\345\347!\203l\350`\306\225\351\324$\210\352\353\354 \342#\203z\306\224`|\210\355 \210l\203\212\262\262\202\254\356\303w\210i\262\303\210i\262W\203\240\262\211V\203\251\211\262\355 \210\306V\203\325\323\324\"\210`\262\357c\210\323\360Z\311Z\"\210\357c\210\316`\317\320$\210\343c\210\262\211\262\314y\210\202L\266\361y\210`\262\362c\210\316`\317\320$\210\363c\210)\266\207" [bidi-paragraph-direction quail-keyboard-layout-len quail-current-package nil left-to-right vconcat 0 8 quail-keyboard-translate 2 quail-get-translation char-to-string 1 " " put-text-property face bold "|" 30 insert-char 32 string-width char-width characterp get-char-code-property general-category Mn compose-string string format "	%c	" bidi-string-mark-left-to-right propertize invisible t "\n" 100 looking-at "[| ‬‭]*$" "‭? *\\(|     \\)+" subst-char-in-region 124 re-search-forward "\\(     |\\)+‬?$" line-end-position beginning-of-line " ‭" "+" 45 -1 "		    +-----------------------------+\n		    |          space bar          |\n		    +-----------------------------+\n" 10] 18 (#$ . 27425)])
#@179 Show the physical layout of the keyboard type KEYBOARD-TYPE.

The variable `quail-keyboard-layout-type' holds the currently selected
keyboard type.

(fn &optional KEYBOARD-TYPE)
(defalias 'quail-show-keyboard-layout #[256 "\211\203 \211G\306V\204 \262\307	\"\211\204 \310\311\"\210\nr\312\313!q\210p\314 \210\315\211\316\211\316\317 \210\320\321!\210+\211rq\210\322\323\261\210\324A!)\325!\210)\207" [quail-keyboard-layout-type quail-keyboard-layout-alist default-directory buffer-read-only buffer-file-name buffer-undo-list 0 assoc error "Unknown keyboard type: %s" get-buffer-create "*Help*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook "Keyboard layout (keyboard type: " ")\n" quail-insert-kbd-layout internal-temp-output-buffer-show inhibit-modification-hooks inhibit-read-only standard-output] 8 (#$ . 29593) (byte-code "\301\302\303\304$C\207" [quail-keyboard-layout-alist completing-read "Keyboard type (default current choice): " nil t] 5)])
#@842 Return t if OBJECT is a Quail map.

A Quail map holds information how a particular key should be translated.
Its format is (TRANSLATION . ALIST).
TRANSLATION is either a character, or a cons (INDEX . VECTOR).
In the latter case, each element of VECTOR is a candidate for the translation,
and INDEX points the currently selected translation.

ALIST is normally a list of elements that look like (CHAR . DEFN),
where DEFN is another Quail map for a longer key (CHAR added to the
current key).  It may also be a symbol of a function which returns an
alist of the above format.

Just after a Quail package is read, TRANSLATION may be a string or a
vector.  Then each element of the string or vector is a candidate for
the translation.  These objects are transformed to cons cells in the
format (INDEX . VECTOR), as described above.

(fn OBJECT)
(defalias 'quail-map-p #[257 "\211:\205A \211@\211\250\206+ \211?\206+ \300!\206+ \211;\206+ \2119\206+ \211:\205+ \300A!?\262\205A \211A\211<\203= \211@:\206? \2119\262\207" [vectorp] 4 (#$ . 30607)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-map-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@1423 Define translation rules of the current Quail package.
Each argument is a list of KEY and TRANSLATION.
KEY is a string meaning a sequence of keystrokes to be translated.
TRANSLATION is a character, a string, a vector, a Quail map, or a function.
If it is a character, it is the sole translation of KEY.
If it is a string, each character is a candidate for the translation.
If it is a vector, each element (string or character) is a candidate
  for the translation.
In these cases, a key specific Quail map is generated and assigned to KEY.

If TRANSLATION is a Quail map or a function symbol which returns a Quail map,
 it is used to handle KEY.

The first argument may be an alist of annotations for the following
rules.  Each element has the form (ANNOTATION . VALUE), where
ANNOTATION is a symbol indicating the annotation type.  Currently
the following annotation types are supported.

  append -- the value non-nil means that the following rules should
	be appended to the rules of the current Quail package.

  face -- the value is a face to use for displaying TRANSLATIONs in
	candidate list.

  advice -- the value is a function to call after one of RULES is
	selected.  The function is called with one argument, the
	selected TRANSLATION string, after the TRANSLATION is
	inserted.

  no-decode-map --- the value non-nil means that decoding map is not
	generated for the following translations.

(fn &rest RULES)
(defalias 'quail-define-rules '(macro . #[128 "\211\300\211\211@@:\203P @\301\236\262\203  \302\"\262A\262\303\236\262\2033 \302\"\262A\262\211\211\203J \211@\211@ABB\262A\266\202\2024 \210A\262\210\203t \304\305\306DD\307\310\311\312\313DED\314\306DD\315BBBB\316BB\207\300C?\205} \310C\300\211\211\203\244 \211@\211@\262\211A@\262\317\320	\f&\210A\266\202\202\201 \210\321\322\323\324\306DDE\325\306DDE\207" [nil append delete no-decode-map let tail quote (map (quail-map)) decode-map and (quail-decode-map) not properties (key trans) ((while tail (setq key (car (car tail)) trans (car (cdr (car tail))) tail (cdr tail)) (quail-defrule-internal key trans map t decode-map properties))) quail-defrule-internal t if prog1 (quail-decode-map) quail-install-map quail-install-decode-map] 18 (#$ . 31799)]))
#@235 Install the Quail map MAP in the current Quail package.

Optional 2nd arg NAME, if non-nil, is a name of Quail package for
which to install MAP.

The installed map can be referred by the function `quail-map'.

(fn MAP &optional NAME)
(defalias 'quail-install-map #[513 "\204 \301\302!\210\211:\205J \211@\211\250\2064 \211?\2064 \303!\2064 \211;\2064 \2119\2064 \211:\2054 \303A!?\262\205J \211A\211<\203F \211@:\206H \2119\262\262\204T \301\304\"\210AA\240\207" [quail-current-package error "No current Quail package" vectorp "Invalid Quail map `%s'"] 6 (#$ . 34079)])
#@270 Install the Quail decode map DECODE-MAP in the current Quail package.

Optional 2nd arg NAME, if non-nil, is a name of Quail package for
which to install MAP.

The installed decode map can be referred by the function `quail-decode-map'.

(fn DECODE-MAP &optional NAME)
(defalias 'quail-install-decode-map #[513 "\204 \301\302!\210:\203 @\303=\202 \304!\203( \305!\306=\203( \307\233\240\207\301\310\"\207" [quail-current-package error "No current Quail package" decode-map char-table-p char-table-subtype quail-decode-map 10 "Invalid Quail decode map `%s'"] 5 (#$ . 34667)])
#@1223 Add one translation rule, KEY to TRANSLATION, in the current Quail package.
KEY is a string meaning a sequence of keystrokes to be translated.
TRANSLATION is a character, a string, a vector, a Quail map,
 a function, or a cons.
If it is a character, it is the sole translation of KEY.
If it is a string, each character is a candidate for the translation.
If it is a vector, each element (string or character) is a candidate
 for the translation.
If it is a cons, the car is one of the above and the cdr is a function
 to call when translating KEY (the return value is assigned to the
 variable `quail-current-data').  If the cdr part is not a function,
 the value itself is assigned to `quail-current-data'.
In these cases, a key specific Quail map is generated and assigned to KEY.

If TRANSLATION is a Quail map or a function symbol which returns a Quail map,
 it is used to handle KEY.

Optional 3rd argument NAME, if specified, says which Quail package
to define this translation rule in.  The default is to define it in the
current Quail package.

Optional 4th argument APPEND, if non-nil, appends TRANSLATION
to the current translations for KEY instead of replacing them.

(fn KEY TRANSLATION &optional NAME APPEND)
(defalias 'quail-defrule #[1026 "\203 \302\"\262\211\204 \303\304\"\210\305\306	8$\207" [quail-package-alist quail-current-package assoc error "No Quail package `%s'" quail-defrule-internal 2] 9 (#$ . 35261)])
#@14 

(fn V1 V2)
(defalias 'quail-vunion #[514 "\300\301\302\303\304\"\303\304\"\244!\"\207" [apply vector delete-dups append nil] 9 (#$ . 36711)])
#@384 Define KEY as TRANS in a Quail map MAP.

If Optional 4th arg APPEND is non-nil, TRANS is appended to the
current translations for KEY instead of replacing them.

Optional 5th arg DECODE-MAP is a Quail decode map.

Optional 6th arg PROPS is a property list annotating TRANS.  See the
function `quail-define-rules' for the detail.

(fn KEY TRANS MAP &optional APPEND DECODE-MAP PROPS)
(defalias 'quail-defrule-internal #[1539 ";\204 \300!\204 \301\302\"\210\247\204y ;\204y \300!\204y :\204y 9\204y \211:\205n \211@\211\250\206X \211?\206X \300!\206X \211;\206X \2119\206X \211:\205X \300A!?\262\205n \211A\211<\203j \211@:\206l \2119\262\262\204y \301\303\"\210\211:\205\273 \211@\211\250\206\245 \211?\206\245 \300!\206\245 \211;\206\245 \2119\206\245 \211:\205\245 \300A!?\262\205\273 \211A\211<\203\267 \211@:\206\271 \2119\262\262\204\305 \301\304\"\210G\305\306\211W\203:\204\334 \301\307\"\210	H\262A\236\262\211\204\374 \306CB\262	AB\241\210\211A\262T\262\202\312 9\203A\203\301\310\"\207\211	\241\207\211:\205a\211@\211\250\206K\211?\206K\300!\206K\211;\206K\2119\206K\211:\205K\300A!?\262\205a\211A\211<\203]\211@:\206_\2119\262\262\203\225A<\204s\301\310\"\207A<\204\213A\203\206\301\310\"\207\211	\241\207\211\311\n\nA\"\241\207\204\235\203:\2049\204\250\203\270\312	!\262	\202\307;\203\307\313!\262\262	G\306\305V\203S\262\nH\262\211\250\203\345\314!\262\nI\210\203\371\315\305G	$\210\203\313B	AB\241\210\202\313\266@\203j\203j\316@#\211\250\203.\312!\2020\211A\n\250\203?\312!\262\202N\n;\203N\n\313!\262\262\317\f\"\211\232\203]\202f\305\211\211\211\306\257B\262\f\266	\240\207" [vectorp error "Invalid Quail key `%s'" "Invalid Quail translation `%s'" "Invalid Quail map `%s'" 0 nil "Quail key %s is too long" "Quail key %s is too short" append vector vconcat char-to-string add-text-properties quail-get-translation quail-vunion] 18 (#$ . 36864)])
#@318 Return the translation specified as DEF for KEY of length LEN.
The translation is either a character or a cons of the form (INDEX . VECTOR),
where VECTOR is a vector of candidates (character or string) for
the translation, and INDEX points into VECTOR to specify the currently
selected translation.

(fn DEF KEY LEN)
(defalias 'quail-get-translation #[771 "\203 9\203 \300!\205 \"\262:\203% \301A!\204% @\262\250\204/ :\2031 \207\2047 \302\207;\203V G\303U\203G \304H\207\304\211\211\211\302\257\305!\262B\207\301!\203| G\303U\203r \304HG\303U\203r \304H\304H\207\304\211\211\211\302\257B\207\306\307\"\207" [functionp vectorp nil 1 0 vconcat error "Invalid object in Quail map: %s"] 8 (#$ . 38927)])
#@171 Lookup KEY of length LEN in the current Quail map and return the definition.
The returned value is a Quail map specific to KEY.

(fn KEY &optional LEN NOT-RESET-INDICES)
(defalias 'quail-lookup-key #[769 "\204 G\262\303\3048\3058\306\211\211\211\203q 	W\203q \203- \307\nH!\2022 	H\262T\262A\203N A9\203N \211A	\"\241\210A\236\262A\203j A9\203j \211A	\"\241\210A\262\202 @\262\306\203\332 \310#\211\262\203\332 \211:\203\262 \311A!\204\262 \211@\232\204\237 \211\240\210\312A!\203\254 \211A \202\256 \211A\202\274 \211\232\204\274 \240\210:\203\332 \311A!\203\332 \204\332 \3138\203\332 	@\303\240\210A\203\361 \312A!\203\361 \211A\"\241\210\207" [quail-current-package quail-current-translations quail-current-data 0 2 8 nil quail-keyboard-translate quail-get-translation vectorp functionp 6] 14 (#$ . 39667)])
(define-error 'quail-error nil)
#@19 

(fn &rest ARGS)
(defalias 'quail-error #[128 "\300\301\302\303\"\"\207" [signal quail-error apply format-message] 6 (#$ . 40591)])
#@147 Convert input string STR to a list of events.
If STR has `advice' text property, append the following special event:
(quail-advice STR)

(fn STR)
(defalias 'quail-input-string-to-events #[257 "\300\301\"\302\303\304#\204 \305\303\304#\203 \211\306DC\244\262\207" [mapcar #[257 "\203\n H\206 \211\207" [translation-table-for-input] 3 "\n\n(fn C)"] get-text-property 0 advice next-single-property-change quail-advice] 6 (#$ . 40732)])
(defvar quail-translating nil)
(defvar quail-converting nil)
(defvar quail-conversion-str nil)
#@12 

(fn KEY)
(defalias 'quail-input-method #[257 "\204 \306`\307\"\203 \306`\310\"\203 	\204 \306`\301\"\2036 \n\2032 \nA@=\2036 \311\n\312!\"\2046 \f\2039 \211C\207\313\3148!\210\315 \316\211\316\317\320\"\216\321\216\3148\203\\ \322!\202_ \323!\324\211;\205} \211G\325V\205} \203z \211\325HC\202} \326!\262-\207" [buffer-read-only inhibit-read-only overriding-terminal-local-map universal-argument-map overriding-local-map quail-current-package get-char-property read-only front-sticky lookup-key vector quail-setup-overlays 14 buffer-modified-p t make-closure #[0 "\300?\205 \301\302!\207" [V0 restore-buffer-modified-p nil] 2] #[0 "\301 \210\3028?\205 \303\304!\207" [quail-current-package quail-delete-overlays 14 run-hooks input-method-after-insert-chunk-hook] 2] quail-start-conversion quail-start-translation "" 0 quail-input-string-to-events buffer-undo-list inhibit-modification-hooks quail-guidance-str input-method-exit-on-first-char] 6 (#$ . 41277)])
#@16 

(fn OVERLAY)
(defalias 'quail-overlay-region-events #[257 "\300!\301!W\205 \302\"\303\304\"\262\207" [overlay-start overlay-end delete-and-extract-region append nil] 7 (#$ . 42271)])
#@61 Delete the text in the current translation region of Quail.
(defalias 'quail-delete-region #[0 "\301!\205 \301!\302!|\207" [quail-overlay overlay-start overlay-end] 3 (#$ . 42471)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-delete-region speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@658 Add KEY to `unread-command-events', but avoid recording it a second time.
If KEY is a character, it is prepended to `unread-command-events' as
a cons cell of the form (no-record . KEY).
If KEY is a vector of events, the events in the vector are prepended
to `unread-command-events', after converting each event to a cons cell
of the form (no-record . EVENT).
If KEY is an event, it is prepended to `unread-command-events' as a cons
cell of the form (no-record . EVENT).
If RESET is non-nil, the events in `unread-command-events' are first
discarded, i.e. in this case KEY will end up being the only key
in `unread-command-events'.

(fn KEY &optional RESET)
(defalias 'quail-add-unread-command-events #[513 "\211\203 \301\302!\203 \303BB\202, \304\305\306\304\307!\203# \202' \310!\301\"\"\"\211\207" [unread-command-events nil characterp no-record append mapcan #[257 "\300BC\207" [no-record] 3 "\n\n(fn E)"] vectorp vector] 8 (#$ . 42809)])
#@111 Start translation of the typed character KEY by the current Quail package.
Return the input string.

(fn KEY)
(defalias 'quail-start-translation #[257 "\211\250\203 \3068\203 \307!\202 \211\3108A\236\204 \211\204\321 \311\312\3138\312\314 \312\211\"\312#\315\211$%\316&\203C \317!\210&\203\273 \320!\210\321 \210'\205a \322\323(\206\\ \315%)$\324\312\211\316$\325\3138\"\203~ \326!\203\256 \211\327=?\202\201 \211\330=\203\256 \211GSH#\"\211#\316\262\3311\241 \332!0\266\202C \333\334A\"\210\335 \266\202C \317\336 !\210\312&\266\202C \337*!\203\314 \337*!\340*!|\210%.\207\3068\203\334 \307!\262\341!\207" [quail-current-package echo-keystrokes help-char overriding-terminal-local-map input-method-function last-command-event 8 quail-keyboard-translate 2 0 nil 5 buffer-modified-p "" t quail-add-unread-command-events set-buffer-modified-p quail-show-guidance format "%s%s %s" read-key-sequence lookup-key commandp quail-other-command quail-self-insert-command (quail-error) call-interactively message "%s" beep this-single-command-raw-keys overlay-start overlay-end char-to-string last-command this-command quail-current-key quail-current-str quail-translating input-method-use-echo-area input-method-previous-message quail-guidance-str quail-overlay] 10 (#$ . 43772)])
#@110 Start conversion of the typed character KEY by the current Quail package.
Return the input string.

(fn KEY)
(defalias 'quail-start-conversion #[257 "\211\250\203 \3068\203 \307!\202 \211\3108A\236\204 \211\204\311\312\3138\312\314 \312\211\"\312#\315\211$%\316\211&'\315(\203I \317!\210'\203\375 \320!\210&\204d \315\211$%\316&\321\312!\210\322 \210)\205{ \323\324*\206t \315(%+%\325\312\211\316$\326\3138\"\203\221 \327!\202\224 \211\330=\203\360 \211GSH#\"\211#\316\262\3311\263 \332!0\210\202\275 \333\334A\"\210\335 \266&\204\370 %\203\333 (%;\203\324 %\202\330 \336%!P(,\204\350 (G\311U\203\353 \312'\266\202I \317\337 !\210\312'\266\202I \312&\340-!\203\340-!\341-!|\210(G\311V\205(.\207\3068\203)\307!\262\336!\207" [quail-current-package echo-keystrokes help-char overriding-terminal-local-map input-method-function last-command-event 8 quail-keyboard-translate 2 0 nil 14 buffer-modified-p "" t quail-add-unread-command-events set-buffer-modified-p quail-setup-overlays quail-show-guidance format "%s%s%s %s" read-key-sequence lookup-key commandp quail-self-insert-command (quail-error) call-interactively message "%s" beep char-to-string this-single-command-raw-keys overlay-start overlay-end last-command this-command quail-current-key quail-current-str quail-translating quail-converting quail-conversion-str input-method-use-echo-area input-method-previous-message quail-guidance-str input-method-exit-on-first-char quail-conv-overlay] 10 (#$ . 45103)])
#@47 Terminate the translation of the current key.
(defalias 'quail-terminate-translation #[0 "\302\303\211\207" [quail-translating quail-guidance-str nil " "] 2 (#$ . 46655)])
#@44 Accept the currently selected translation.
(defalias 'quail-select-current #[0 "\300 \207" [quail-terminate-translation] 1 (#$ . 46835) nil])
#@439 Update the current translation status according to CONTROL-FLAG.
If CONTROL-FLAG is integer value, it is the number of keys in the
head `quail-current-key' which can be translated.  The remaining keys
are put back to `unread-command-events' to be handled again.  If
CONTROL-FLAG is t, terminate the translation for the whole keys in
`quail-current-key'.  If CONTROL-FLAG is nil, proceed the translation
with more keys.

(fn CONTROL-FLAG)
(defalias 'quail-update-translation #[257 "\3068\211\203 \211!\266\202\202j \247\203F 	G\307U\203* \3108\203( \311	!\202) 	\204A \211V\203A \211S\262\312	H!\210\202. \266\202j \204i \n\204i \3108\203Z \311	!\202[ 	\203i \3138\203i \314\262\210\f\204\376 \315\316!\203} \316!\317!|\210`\262\"\204\310 \315C\n;\203\234 \3202\230 \321\322\323\"\n\"0\210\202\252 \324\325\n!!\nU\204\252 \211\n\240\210\211\242\203\307 \326\327\242\"\210\330 \210\331\332!\210\326\315!\210\315\333\334\315\"\210\210\nc\210\335`#\210\336#!\203\375 \316#!\204\352 \335#`#\266\202\376 \317#!`W\203\375 \335#\316#!`#\210\210\315\337 \210)\n;\204\340\n!\211\205\341 \207" [quail-current-package quail-current-key quail-current-str input-method-exit-on-first-char input-method-use-echo-area quail-overlay 13 0 8 quail-keyseq-translate quail-add-unread-command-events 15 t nil overlay-start overlay-end tag mapc make-closure #[257 "\301\302!!U?\205 \300\240\210\303\304\305\"\207" [V0 unibyte-char-to-multibyte multibyte-char-to-unibyte throw tag nil] 4 "\n\n(fn CH)"] unibyte-char-to-multibyte multibyte-char-to-unibyte message "Can't input %c in the current unibyte buffer" ding sit-for 2 throw quail-tag move-overlay overlayp quail-update-guidance char-to-string quail-terminate-translation enable-multibyte-characters quail-conv-overlay] 7 (#$ . 46984)])
#@63 Translate the typed key by the current Quail map, and insert.
(defalias 'quail-self-insert-command #[0 "\303	!P\3042 \305\306 !\210\3070\206 \310\211\207" [quail-current-key last-command-event quail-translating char-to-string quail-tag quail-update-translation quail-translate-key t nil] 3 (#$ . 48804) "*"])
#@63 Return the actual definition part of Quail map MAP.

(fn MAP)
(defalias 'quail-map-definition #[257 "\211@\211:\203 \300A!\204 \211@\262\211\301=\203 \302\262\207" [vectorp t nil] 4 (#$ . 49124)])
#@177 Return string to be shown as current translation of key sequence.
LEN is the length of the sequence.  DEF is a definition part of the
Quail map for the sequence.

(fn LEN DEF)
(defalias 'quail-get-current-str #[514 "\211:\203 \211AG@@V\203 \211A@@H\202 \302\206m \211\206m \303V\205m \304S\305\306S\"!\"SO\307	8\205F \304\303\305\306\303\"!\"\205k ;\203S \202V \310!\203i ;\203c \202j \310!\202j P\266\203\207" [quail-current-key quail-current-package "" 1 quail-get-current-str quail-map-definition quail-lookup-key 7 char-to-string] 10 (#$ . 49334)])
(defvar quail-guidance-translations-starting-column 20)
#@114 Update `quail-current-translations'.
Make RELATIVE-INDEX the current translation.

(fn &optional RELATIVE-INDEX)
(defalias 'quail-update-current-translations #[256 "@\211@A@\3038\304W\203 \304\211\262\240\210\202, AGY\203, AGS\211\262\240\210\211\203< W\204< Y\203AG\305 	Z\3068\307\211\211\211\211\n\nW\203] \304\262\n\304\262\202f \203f \262\n	\262\304\262	\262	\304\262W\203\327 \n	Y\203\327 \211\304U\203\223 \262\n\304\262T\262AH\262\250\203\244 \310!\202\247 \311!\262\\\306\\\262\211T\262\211\304V\203\320 Y\204\307 \211\312V\203\320 \262	\304\262\202t T\262\202t \306\f\233\240\210Y\203\361 \262	\313\f\233\240\210A\n\240\210AA	\240\266	\203\\Y\203S\240\210\202\\\240\210A@H\211;\206,\314\n!\211\207" [quail-current-translations quail-guidance-translations-starting-column quail-current-str 2 0 window-width 3 nil char-width string-width 10 4 char-to-string] 16 (#$ . 49973)])
#@351 Translate the current key sequence according to the current Quail map.
Return t if we can terminate the translation.
Return nil if the current key sequence may be followed by more keys.
Return number if we can't find any translation for the current key
sequence.  The number is the count of valid keys in the current
sequence counting from the head.
(defalias 'quail-translate-key #[0 "G\304\"\305\211\203G \306!\307\"\211:\203! \211AG\310U\205F A?\205F \311\n8?\206F \312W\206F \304S\"?\206F \304\313\314O\310\"?\207\311\n8\203w \312Y\203w \306\304\315Z\"!\211\262\203w \304\313\305O\315\"\203w \307\315Z\"\315Z\207\316V\203\300 \304\316\314O!\203\300 \203\300 \317\n8\204\300 SH\211\262\203\300 \211\320Y\203\300 \211\321X\203\300 \316\314O\211\320U\203\265 \322\202\270 \211\323Z\262\324!\210\325\207\317\n8\203\365 \305\262\204\343 \310V\203\343 S\262\306\304\"!\262\202\311 \203\357 \307\"\202\363 \316H\207\306\304S\"!\262\203	\307S\"S\207" [quail-current-key quail-current-str quail-current-package quail-current-translations quail-lookup-key nil quail-map-definition quail-get-current-str 1 11 3 -2 -1 2 0 7 48 57 9 49 quail-update-current-translations t] 9 (#$ . 50962)])
#@61 Select next translation in the current batch of candidates.
(defalias 'quail-next-translation #[0 "\203  @\211@TAGU\203 \302 \207\211@T\240\210\303 \210\304\305!\207\306	!\210\307 \207" [quail-current-translations last-command-event beep quail-update-current-translations quail-update-translation nil quail-add-unread-command-events quail-terminate-translation] 3 (#$ . 52209) nil])
#@65 Select previous translation in the current batch of candidates.
(defalias 'quail-prev-translation #[0 "\203 @\211@\302U\203 \303 \207\211@S\240\210\304 \210\305\306!\207\307	!\210\310 \207" [quail-current-translations last-command-event 0 beep quail-update-current-translations quail-update-translation nil quail-add-unread-command-events quail-terminate-translation] 3 (#$ . 52603) nil])
#@45 Select from the next block of translations.
(defalias 'quail-next-translation-block #[0 "\203( @\211@A@Z\3028AGY\203 \303 \207\3028\\\240\210\304 \210\305\306!\207\307	!\210\310 \207" [quail-current-translations last-command-event 2 beep quail-update-current-translations quail-update-translation nil quail-add-unread-command-events quail-terminate-translation] 5 (#$ . 53003) nil])
#@57 Select the previous batch of 10 translation candidates.
(defalias 'quail-prev-translation-block #[0 "\203< @\211@A@ZA@\302U\203 \303 \207\211A@S\240\210\304 \210A@\\\3058W\2038 \211A@\\\240\210\304 \210\306\307!\207\310	!\210\311 \207" [quail-current-translations last-command-event 0 beep quail-update-current-translations 2 quail-update-translation nil quail-add-unread-command-events quail-terminate-translation] 5 (#$ . 53401) nil])
#@62 Abort translation and delete the current Quail key sequence.
(defalias 'quail-abort-translation #[0 "\302!\203 \302!\303!|\210\304\305 \207" [quail-overlay quail-current-str overlay-start overlay-end nil quail-terminate-translation] 3 (#$ . 53855) nil])
#@70 Delete the last input character from the current Quail key sequence.
(defalias 'quail-delete-last-char #[0 "G\302U\203\n \303 \207\304\305O\306	!\203 \306	!\307	!|\210\310\311 !\207" [quail-current-key quail-overlay 1 quail-abort-translation 0 -1 overlay-start overlay-end quail-update-translation quail-translate-key] 3 (#$ . 54120) nil])
#@74 Return non-nil value if the point is in conversion region of Quail mode.
(defalias 'quail-point-in-conversion-region #[0 "\301\211\302!\211\262\205 `\211\262Y\205 \211\303!X\207" [quail-conv-overlay nil overlay-start overlay-end] 5 (#$ . 54470)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-point-in-conversion-region speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'quail-conversion-backward-char #[0 "`\302!X\203\f \303\304!\210\305\306u\207" [quail-conv-overlay quail-translating overlay-start quail-error "Beginning of conversion region" nil -1] 3 nil nil])
(defalias 'quail-conversion-forward-char #[0 "`\302!Y\203\f \303\304!\210\305\306u\207" [quail-conv-overlay quail-translating overlay-end quail-error "End of conversion region" nil 1] 3 nil nil])
(defalias 'quail-conversion-beginning-of-region #[0 "\302\303	!b\207" [quail-translating quail-conv-overlay nil overlay-start] 2 nil nil])
(defalias 'quail-conversion-end-of-region #[0 "\302\303	!b\207" [quail-translating quail-conv-overlay nil overlay-end] 2 nil nil])
(defalias 'quail-conversion-delete-char #[0 "\304`\305	!Y\203 \306\307!\210\310\311!\210\312	!\305	!{U\205% \304\211\207" [quail-translating quail-conv-overlay quail-conversion-str quail-converting nil overlay-end quail-error "End of conversion region" delete-char 1 overlay-start] 4 nil nil])
(defalias 'quail-conversion-delete-tail #[0 "`\303!Y\203\f \304\305!\210`\303!|\210\306!\303!{U\205% \307\211\207" [quail-conv-overlay quail-conversion-str quail-converting overlay-end quail-error "End of conversion region" overlay-start nil] 4 nil nil])
(defalias 'quail-conversion-backward-delete-char #[0 "G\304V\203\n \305 \207`\306	!X\203 \307\310!\210\311\312!\210\306	!\313	!{U\205- \314\211\207" [quail-current-key quail-conv-overlay quail-conversion-str quail-converting 0 quail-delete-last-char overlay-start quail-error "Beginning of conversion region" delete-char -1 overlay-end nil] 4 nil nil])
#@121 Call FUNC to convert text in the current conversion region of Quail.
Remaining args are for FUNC.

(fn FUNC &rest ARGS)
(defalias 'quail-do-conversion #[385 "\301!\210\302\"\207" [quail-overlay delete-overlay apply] 5 (#$ . 56495)])
#@61 Do no conversion of the current conversion region of Quail.
(defalias 'quail-no-conversion #[0 "\301\211\207" [quail-converting nil] 2 (#$ . 56737) nil])
#@47 Make a new one-line frame for Quail guidance.
(defalias 'quail-make-guidance-frame #[0 "\300 \301\236A\302\236A\303\236A\304\305 \306_\306_$\211\307W\203) \310\311 $\262\312\313\236\"\262\314\315\316\301BB\"!\207" [frame-parameters top border-width internal-border-width - frame-char-height 2 0 + frame-pixel-height delq parent-id make-frame append ((user-position . t) (height . 1) (minibuffer) (menu-bar-lines . 0) (tool-bar-lines . 0))] 10 (#$ . 56898)])
#@32 Setup Quail completion buffer.
(defalias 'quail-setup-completion-buf #[0 "\304!?\205# 	\305\306!rq\210\307!\210\310\311ee\"\312\313\314#)\262\207" [quail-completion-buf enable-multibyte-characters buffer-read-only quail-overlay buffer-live-p get-buffer-create "*Quail Completions*" set-buffer-multibyte t make-overlay overlay-put face highlight] 5 (#$ . 57381)])
#@73 Return t if the current Quail package requires showing guidance buffer.
(defalias 'quail-require-guidance-buf #[0 "\205# \302=\203 \303 \304 =\205 \305	8?\207\306=\203\" \305	8?\207\307\207" [input-method-verbose-flag quail-current-package default selected-window minibuffer-window 15 complex-only t] 2 (#$ . 57758)])
#@15 

(fn STRING)
(defalias 'quail-minibuffer-message #[257 "\302\303!\210d\304\212\211b\210c\210)\305\306!\210\211d|\210	\205! \303\307\310\304\")\207" [inhibit-quit quit-flag message nil t sit-for 1000000 quail-add-unread-command-events 7] 5 (#$ . 58087)])
#@225 Display a guidance for Quail input method in some window.
The guidance is normally displayed at the echo area,
or in a newly created frame (if the current buffer is a
minibuffer and the selected frame has no other windows).
(defalias 'quail-show-guidance #[0 "\306 \210\307!\210	\310=?\205 \311 \205 \n?\205 ?\205 \f?\205 \312 \203w \313 \314 =\203n \315!\204; \316 \317!\204G \320\321!rq\210\322 \210\323\211c\210)\314!\324\"\210\325\326\"\266\327\330\331 \"!\207\327\330\332 #!\207\323!\333\334\")\207" [quail-completion-buf major-mode input-method-use-echo-area unread-command-events unread-post-input-method-events quail-guidance-str quail-setup-completion-buf bury-buffer minibuffer-inactive-mode quail-require-guidance-buf minibufferp minibuffer-window frame-root-window frame-live-p quail-make-guidance-frame buffer-live-p get-buffer-create " *Quail-guidance*" erase-buffer nil set-window-buffer set-window-dedicated-p t quail-minibuffer-message format " [%s]" "  [%s]\n%s" message "%s" quail-guidance-frame quail-guidance-buf cursor-type current-input-method-title message-log-max] 5 (#$ . 58352)])
#@26 Hide the Quail guidance.
(defalias 'quail-hide-guidance #[0 "\303 \205, \304 \305 =\204 \205, \305 \306 =\205, \307	!\203# \310	!\210\311\n!\205, \312\n!\207" [input-method-use-echo-area quail-guidance-frame quail-guidance-buf quail-require-guidance-buf selected-window minibuffer-window frame-root-window frame-live-p delete-frame buffer-live-p kill-buffer] 2 (#$ . 59497)])
#@76 Update the Quail guidance buffer and completion buffer (if displayed now).
(defalias 'quail-update-guidance #[0 "\306 \203? \3078\211\310=\204 \211:\203 \311 \210\202? \211\204< \n\3128\203* \313!\262\211;\2033 \211\2026 \314!\266\202? \315\210\316!\317\211\211\205\273 \212\f;\203S \f\202[ \f\247\205[ \320\f!\262\n\262q\210eb\210\321\315\322Q\317\310#\204w \323!\202\272 `\262\203\223 \321\324P\317\310#\203\223 \325\326\224T`#\210\202\232 \325\326\224`#\210\327`\"?\205\272 \211b\262\330 \210\331`\"\210\327\"?\205\272 \331\")\207" [quail-current-package quail-guidance-str quail-current-key quail-completion-buf quail-current-str quail-overlay quail-require-guidance-buf 3 t quail-get-translations 8 quail-keyseq-translate string " " get-buffer-window nil char-to-string search-forward ":" delete-overlay "." move-overlay 0 pos-visible-in-window-p beginning-of-line set-window-start] 8 (#$ . 59881)])
#@63 Return a string containing the current possible translations.
(defalias 'quail-get-translations #[0 "\304!\204\n \305!\306\307\310#\311!	\203 \312 \210\313\n8\211<\203F G\314\211W\203D \315H\"A\211\203< \314HI\210\210\211T\262\202$ \266\210G\314V\203d A\203d \316\317\320\321\322A\"\323\"\260#\262	\203\375 \324\n8\204\375 	@\211@A@\3258\326!\324ZW\203\223 \327\324Z\326	!Z\330\"P\262\316\331\3138\332	8\203\254 \316\333\3328\"\202\255 \334$\262\211W\203\373 G	AH\211;\204\306 \335!\262\316\336	Z\337U\203\327 \314\202\334 ZT$\262U\203\364 \340\313\\	G\341\342\f%\210T\266\203\202\260 \266\207" [quail-current-key quail-current-translations quail-current-package quail-guidance-translations-starting-column multibyte-string-p string-to-multibyte quail-lookup-key nil t copy-sequence quail-update-current-translations 3 0 assoc format "%s[%s]" sort mapcar #[257 "\211@\207" [] 2 "\n\n(fn X)"] < 7 2 string-width make-string 32 "%s(%02d/%s)" 4 "%02d" "??" string "%s %d.%s" 9 put-text-property face highlight] 15 (#$ . 60822)])
#@45 The maximum depth of Quail completion list.
(defvar quail-completion-max-depth 5 (#$ . 61917))
#@192 List all completions for the current key.
All possible translations of the current key and whole possible longer keys
are shown (at most to the depth specified `quail-completion-max-depth').
(defalias 'quail-completion #[0 "\306 \210\307\310\"	\311	\312\313#\312rq\210\203< 	\232\203< \n\314=\203< \315d\"\2031 \316e\"\210\202[ \312\317 \210*\202[ \313\320 \210\321c\210\322\323#\210\324\312!\210)eb\210\325p!\210\313\262)\211\203c \326 \210\266\314\211\207" [quail-completion-buf quail-current-key last-command minibuffer-scroll-window other-window-scroll-buffer inhibit-read-only quail-setup-completion-buf get-buffer-window visible quail-lookup-key nil t quail-completion pos-visible-in-window-p set-window-start scroll-other-window erase-buffer "Possible completion and corresponding characters are:\n" quail-completion-1 1 set-buffer-modified-p display-buffer quail-update-guidance this-command] 8 (#$ . 62019) nil])
#@82 List all completions of KEY in MAP with indentation INDENT.

(fn KEY MAP INDENT)
(defalias 'quail-completion-1 #[771 "G\301!\210\302\261\2109\203 \303!\203 \"\262@\203- \304\\T#\210\2020 \305c\210\306\\\262A\205q S\306\245W\205q A\307!\203O \211 \262\310!\211\205m \211@\311\312@!PA#\210A\266\202\202R \262\262\207" [quail-completion-max-depth quail-indent-to ":" fboundp quail-completion-list-translations " -\n" 2 functionp reverse quail-completion-1 string] 11 (#$ . 62965)])
#@98 List all possible translations of KEY in Quail MAP with indentation INDENT.

(fn MAP KEY INDENT)
(defalias 'quail-completion-list-translations #[771 "\300\301@\211G#\211\250\203  \302c\210`\262\211c\210\303`\304\305$\210\306c\207\211A\262\211G\307\211W\203n \211\310\246\307U\203O \211\310Y\203B \306c\210\311!\210\312\313\310\245T\310\245T#c\210\312\314T\310\246\"c\210`\262Hc\210\303`\304\305$\210\211T\262\202' \306c\207" [nil quail-get-translation "(1/1) 1." put-text-property mouse-face highlight "\n" 0 10 quail-indent-to format "(%d/%d)" " %d."] 12 (#$ . 63485)])
#@87 Click on an alternative in the `*Quail Completions*' buffer to choose it.

(fn EVENT)
(defalias 'quail-mouse-choose-completion #[257 "\303\304!\210\305 \306r\305\307!\211@\262!q\210\203 \262\212\310\307!!b\210\306\211m\2046 \311`\312\"\2036 `\262`T\262o\204I \311`S\312\"\203I `S\262`\262\204Q \313\314!\210\315\312\"\262\316\312\"\206_ d\262{\266\203*\317	!\203u \317	!\320	!|\210\211\321\"\210\322 \207" [completion-reference-buffer quail-overlay quail-current-str run-hooks mouse-leave-buffer-hook window-buffer nil event-start posn-point get-text-property mouse-face quail-error "No completion here" previous-single-property-change next-single-property-change overlay-start overlay-end choose-completion-string quail-terminate-translation] 8 (#$ . 64077) "e"])
#@555 Build a decoding map.
Accumulate in the cdr part of DECODE-MAP all pairs of key sequences
vs the corresponding translations defined in the Quail map
specified by the first element MAP-LIST.  Each pair has the form
(KEYSEQ . TRANSLATION).  DECODE-MAP should have the form
(decode-map . ALIST), where ALIST is an alist of length NUM.  KEY
is a key sequence to reach MAP.
Optional 5th arg MAXNUM limits the number of accumulated pairs.
Optional 6th arg IGNORES is a list of translations to ignore.

(fn MAP-LIST KEY DECODE-MAP NUM &optional MAXNUM IGNORES)
(defalias 'quail-build-decode-map #[1540 "@\300@\211G#\301\250\203/ \302V\203] >\204] BAB\241\210T\262\202] :\203] A\262\301C\303\304\305#\"\210\211\242\203\\ 	B	AB\241\210G\\\262\210\203j V\203j [\207A\262\203\260 \306Y\203\260 @\262A\262\211@\250\203n \211A:\203n \211A	>\204n \307A\nB\310\311@#				&\262\202n \207" [quail-get-translation nil 127 mapc make-closure #[257 "\211\250\203 \211\303V\202 \304\305\306\307#)\266\203\205% \211\300\235?\205% \301\306\240\207" [V0 V1 inhibit-changing-match-data 127 "[^[:ascii:]]" nil t string-match] 8 "\n\n(fn X)"] 0 quail-build-decode-map format "%s%c"] 16 (#$ . 64870)])
#@208 Insert pairs of key sequences vs the corresponding translations.
These are stored in DECODE-MAP using the concise format.  DECODE-MAP
should be made by `quail-build-decode-map' (which see).

(fn DECODE-MAP)
(defalias 'quail-insert-decode-map #[257 "\300A\301\"\262\302\303p\304\"!\305\306\211\211\211\203d \211@\211A\262\307!\203. G\310U\203. \311H\262\307!\203< \211B\262\202] \211@BB\262;\203O \312!\202R \313!\211V\203\\ \211\262\210A\266\202\202 \210\203\203G\314\315!@@G]\316\310\310$\245\306\\T\245\311T\311\211W\203\266 \211T_S\f8\206\237 \315\f!@\316\314@G]\310\310$\\\262\210\211T\262\202\211 \266\211\fW\266\202\203\310 T\262\202 \\S\245\262\314S	8@G]\317c\210\320T!\210\321c\210\320\316\310\310\310%!\266\322c\210`\311\323\324\325\\\"\210	\203}b\210\314S8\206\315!@@G]\316\310\310$\326!\210\320!\210\323\327\"\210\330c\210\323\327\"\210\310y\210\311\211W\203t\306\211A\262\242\211\203k\326!\210\320!\210\331@\332\333#c\210\320\\T!\210\211Ac\210\310y\210\266\211T\262\2026\210\\\266\203\202\374 \266db\266\205\340\314\315!@@G]\317c\210\320T!\210\334c\210\323\327\"\210\335c\210\211\203\333\211@\331@\332\333#c\210\320!\210\307A!\203\313\336\337\340\n#A\"\210\202\321\341A\261\210\324c\210A\266\202\202\243\210\324c\262\207" [sort #[514 "@\262\211@\262GGV\206 GGU\205 \231?\207" [] 4 "\n\n(fn X Y)"] window-width get-buffer-window visible 4 nil vectorp 1 0 string-width char-width 3 last + "key" quail-indent-to "char" "[type a key sequence to insert the corresponding character]\n" insert-char 10 2 move-to-column 45 32 propertize face font-lock-comment-face "character(s)  [type a key (sequence) and select one from the list]\n" " ------------\n" mapc make-closure #[257 "\211\250\203 \302!\202 \303!iT\\\300V\203 \304c\210\305\301!\210\306\261\207" [V0 V1 char-width string-width "\n" quail-indent-to " "] 4 "\n\n(fn X)"] " "] 22 (#$ . 66114)])
(byte-code "\300\301\302\303\304\305\306\307\310!&\210\300\311\302\312\306\307\313!%\207" [define-button-type quail-keyboard-layout-button :supertype help-xref help-function #[257 "\300\301D\302\"\210\303!\207" [help-setup-xref quail-keyboard-layout-button nil quail-show-keyboard-layout] 4 "\n\n(fn LAYOUT)"] help-echo purecopy "mouse-2, RET: show keyboard layout" quail-keyboard-customize-button help-customize-variable "mouse-2, RET: customize keyboard layout"] 9)
#@160 Show brief description of the current Quail package.
Optional arg PACKAGE specifies the name of alternative Quail
package to describe.

(fn &optional PACKAGE)
(defalias 'quail-help #[256 "\306\307!\210	\203 \310\n\"\202 \311@r\312\313 !q\210p\314 \210@\311\211AB\315\211C\315DE\316 \210\317\320!\210+\211FrFq\210\321!\210)\322!\210)\266)r\313 q\210\311A\323G\324@\325\326 \327\261\210\214``}\210\330\3318!c\210eb\210\332 p\333\334#\216\335H!\210\336\337\311\315#\203\256 \340\341\224\342\\`S{!\343!\203\252 \211J;\203\252 \344J\315\211#\210\210\202\206 )\266db\210)n\204\274 \345c\210\345c\210\311\3468\203\367 \330\347!c\210\3501\3511#\210\330\352!c\210\353I!\262\330\354!c\210\350\355\351\355#\210\330\356!c\210\350\357\360\361#\210\345c\210\362C\363\3428C\364\341\365&\211\341V\203%\366c\210\3468\203\367c\210\202\370c\210\371c\210\372!\210\266\373\3748\375\"\210\376c\210\3778\203@\373\3778\201J \"\210\311\201K  r\333\201L \"\216\201M \201N p\315\"!\210\317\305!*\262*\207" [help-xref-mule-regexp-template enable-multibyte-characters quail-package-alist quail-current-package help-xref-mule-regexp temp-buffer-show-hook require help-mode assoc nil get-buffer-create help-buffer kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook set-buffer-multibyte internal-temp-output-buffer-show left-to-right "Input method: " " (mode line indicator:" quail-title ")\n\n" substitute-command-keys 4 syntax-table make-closure #[0 "r\301q\210\302\300!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table re-search-forward "\\\\<\\sw\\(\\sw\\|\\s_\\)+>" intern-soft 0 2 boundp replace-match "\n" 9 "\nKEYBOARD LAYOUT\n---------------\nThis input method works by translating individual input characters.\nAssuming that your actual keyboard has the `" help-insert-xref-button quail-keyboard-layout-button "' layout,\ntranslation results in the following \"virtual\" keyboard layout\n(the labels on the keys indicate what character will be produced\nby each key, with and without holding Shift):\n" quail-insert-kbd-layout "If your keyboard has a different layout, rearranged from\n`" "standard" "', the \"virtual\" keyboard you get with this input method\nwill be rearranged in the same way.\n\nYou can set the variable `quail-keyboard-layout-type' to specify\nthe physical layout of your keyboard; the tables shown in\ndocumentation of input methods including this one are based on the\nphysical keyboard layout as specified with that variable.\n" "[customize keyboard layout]" quail-keyboard-customize-button quail-keyboard-layout-type decode-map quail-build-decode-map "" 5120 "\nKEY SEQUENCE\n------------\n" "You can also input more characters" "You can input characters" " by the following key sequences:\n" quail-insert-decode-map quail-help-insert-keymap-description 5 "KEY BINDINGS FOR TRANSLATION\n----------------------------\n" 10 14 default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only standard-output bidi-paragraph-direction emacs-lisp-mode-syntax-table quail-keyboard-layout "KEY BINDINGS FOR CONVERSION\n---------------------------\n" internal--before-save-selected-window #[0 "\301\300!\207" [V0 internal--after-save-selected-window] 2] select-window get-buffer-window] 14 (#$ . 68593)])
#@32 

(fn KEYMAP &optional HEADER)
(defalias 'quail-help-insert-keymap-description #[513 "`\303\203\f c\210\212\304\305!c\210)\306y\210`\262\307 p\310\311#\216\312	!\210\313\314\303\315#\203_ \316\317\224`{!\211\203[ \320!\203[ \211\321N\322=\204T \323\n8\203[ \211\321N\324=\203[ \325 \326 T|\210\210\202& )\266\211b\210m\204~ \327\330!\203x `\326 T|\210\202e \331y\210\202e \211b\210m\203\211 `|\210db)\207" [the-keymap emacs-lisp-mode-syntax-table quail-current-package nil substitute-command-keys "\\{the-keymap}" 3 syntax-table make-closure #[0 "r\301q\210\302\300!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table re-search-forward "\\sw\\(\\sw\\|\\s_\\)+" t intern-soft 0 fboundp quail-help hide 7 non-deterministic line-beginning-position line-end-position looking-at "[ 	]*$" 1] 11 (#$ . 71933)])
#@60 Show help message while translating in Quail input method.
(defalias 'quail-translation-help #[0 "	=\204q \306\211\n\203# G\307U\203# \310\311\f@#\262\3128\262\2020 \310\313@#\262\3148\262+r\315\316!q\210p\317 \210+\306\211,-\320\211.\320/0\321 \210\322\323!\210+\2111r1q\210c\210\324\325\"\210\326 \210)\327!\210)\266\306\330 r\331\332\"\216\333\334\316!!\210	=\203\240 \335 dW\203\223 \336 \210\202\240 \337 eV\203\240 \340\341 e\"\210\335\341 \342\"dW\203\256 \343\202\266 \337 eV\205\266 \344\262*\210\211\205\317 \345\346\347!\"\210\350\351!\210\345\306!\210\352 \207" [this-command last-command quail-converting quail-current-key quail-conversion-str quail-current-package nil 0 format "Converting string %S by input method %S.\n" 14 "Translating key sequence %S by input method %S.\n" 5 get-buffer-create "*Help*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook quail-help-insert-keymap-description "-----------------------\n" help-mode internal-temp-output-buffer-show internal--before-save-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-save-selected-window] 2] select-window get-buffer-window window-end scroll-up window-start set-window-start selected-window up-to-date "Type \\[quail-translation-help] to scroll up the help" "Type \\[quail-translation-help] to see the head of help" message "%s" substitute-command-keys sit-for 1 quail-update-guidance default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only standard-output] 8 (#$ . 72754) nil])
#@23 

(fn TABLE CHAR KEY)
(defalias 'quail-store-decode-map-key #[771 "H\211\203, \211:\203 \235\2041 BI\210\2021 \230\2041 DI\210\2021 I\210\205F H\211\262\205F \301\302#)\207" [translation-table-for-input nil quail-store-decode-map-key] 8 (#$ . 74352)])
#@22 

(fn MAP KEY TABLE)
(defalias 'quail-gen-decode-map1 #[771 ":\205\305 A<\205\305 @\211\250\203 \300#\266\202\211 \211;\203? \211G\301\211W\203: \300H#\210\211T\262\202$ \266\202\211 \302!\204R \211:\203\210 \211A\211\262\203\210 \211G\301\211W\203\206 H\211;\203w \211G\303U\203~ \300\301H#\266\202 \300#\210\210\211T\262\202U \266\210G\303V\203\247 A\211\205\246 \211@\304A#\210A\266\202\202\222 \207A\211\205\303 \211@\304A\305\306@##\210A\266\202\202\251 \262\207" [quail-store-decode-map-key 0 vectorp 1 quail-gen-decode-map1 format "%s%c"] 11 (#$ . 74636)])
(put 'quail-decode-map 'char-table-extra-slots 0)
(defalias 'quail-gen-decode-map #[0 "\301\302\303\"\3048A\211\203 \211@\305A\306@!#\210A\266\202\202 \210\207" [quail-current-package make-char-table quail-decode-map nil 2 quail-gen-decode-map1 string] 7])
#@20 

(fn CHAR TARGET)
(defalias 'quail-char-equal-p #[514 "U\206 \205 H\211\262\205 U\207" [translation-table-for-input] 4 (#$ . 75517)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put quail-char-equal-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@30 

(fn MAP KEY CHAR KEY-LIST)
(defalias 'quail-find-key1 #[1028 "@\301;\2030 G\302U\205+ \303HU\206) \205) H\211\262\205) U\266\202\262\202\335 \304!\204; :\203\274 :\203D A\262\3052\267 G\303\211W\205\264 H\211\250\203\200 \211U\206r \205r H\211\262\205r U\266\202\203\254 \306\305\307\"\266\202\255 \211G\302U\203\254 \211\303HU\206\242 \205\242 H\211\262\205\242 U\266\202\203\254 \306\305\307\"\210\210\211T\262\202K \266\2020\262\202\335 \250\203\335 U\206\331 \205\331 H\211\262\205\331 U\266\202\262\211\203\346 B\262G\302V\203A\211\203\211@\310A\311\312\n@#$\262A\266\202\202\357 \210\207" [translation-table-for-input nil 1 0 vectorp tag throw t quail-find-key1 format "%s%c"] 14 (#$ . 75813)])
(defvar quail-decode-map-generated nil)
#@160 Return a list of keys to type to input CHAR in the current input method.
If CHAR is an ASCII character and can be input by typing itself, return t.

(fn CHAR)
(defalias 'quail-find-key #[257 "\203 @\303	8=\203 A\n\206 \304=\203 \305	8\2063 \306 \303	8\n\206( \304B\305	\233\240\210\211\262\307C:\203K \310!\311\312\313#A\"\266\202p H\211;\203e \314\315\307\304#\307$\240\266\202p \311\312\316#\"\266\211\242\206\202 \317W\205\202 \315\310!\320\"?\207" [quail-decode-map-generated quail-current-package buffer-file-coding-system 2 t 10 quail-gen-decode-map nil string mapc make-closure #[257 "\301@\230\205 \300A\300\242B\240\207" [V0 V1] 4 "\n\n(fn ELT)"] quail-find-key1 quail-lookup-key #[257 "\301\302\303\304\305#\300\301\242$\240\207" [V0 V1 quail-find-key1 quail-lookup-key nil t] 7 "\n\n(fn ELT)"] 128 1] 10 (#$ . 76640)])
#@72 Show a list of key strings to type for inputting a character at point.
(defalias 'quail-show-key #[0 "\204 \302\303!\210\304	\"\204 \302\305!\210g\306!\211:\203& \307\310\311\312\313##\207\211\314=\2033 \307\315\316!\"\207\307\317\"\207" [current-input-method quail-package-alist error "No input method is activated" assoc "The current input method does not use Quail" quail-find-key message "To input `%c', type \"%s\"" mapconcat identity "\", \"" t "To input `%s', just type it" single-key-description "%c can't be input by the current input method"] 9 (#$ . 77512) nil])
#@951 Make quail map from state transition table TABLE.

TABLE is an alist, the form is:
  ((STATE-0 TRANSITION-0-1 TRANSITION-0-2 ...) (STATE-1 ...) ...)

STATE-n are symbols to denote state.  STATE-0 is the initial state.

TRANSITION-n-m are transition rules from STATE-n, and have the form
(RULES . STATE-x) or RULES, where STATE-x is one of STATE-n above,
RULES is a symbol whose value is an alist of keys (string) vs the
corresponding characters or strings.  The format of the symbol value of
RULES is the same as arguments to `quail-define-rules'.

If TRANSITION-n-m has the form (RULES . STATE-x), it means that
STATE-n transits to STATE-x when keys in RULES are input.  Recursive
transition is allowed, i.e. STATE-x may be STATE-n.

If TRANSITION-n-m has the form RULES, the transition terminates
when keys in RULES are input.

The generated map can be set for the current Quail package by the
function `quail-install-map' (which see).

(fn TABLE)
(defalias 'quail-map-from-table #[257 "\300\301\"\302\211\203 \303@\"\210A\262\202 \262\203. @\262A\262\304\"\210\202 @\207" [mapcar #[257 "\211@C\207" [] 2 "\n\n(fn X)"] nil quail-map-from-table-1 quail-map-from-table-2] 7 (#$ . 78102)])
#@31 

(fn STATE-ALIST STATE-INFO)
(defalias 'quail-map-from-table-1 #[514 "\211@\211\236A\300\205n @\262A\262\300\211\211\211:\203* @J\262AC\262\202. J\262\203i @@\262@A\262A\262\211;\203\\ \211G\301U\203T \211\302H\262\202\\ \211\303!\262\262\304	\300%\210\202. \266\202 \207" [nil 1 0 vconcat set-nested-alist] 16 (#$ . 79316)])
#@28 

(fn STATE-ALIST ELEMENT)
(defalias 'quail-map-from-table-2 #[514 "\211A\300A\203 @\262\262A\262\301A\"\210\202 @\262\211:\203, \301A\"\207\236A\241\207" [nil quail-map-from-table-2] 8 (#$ . 79681)])
#@12 

(fn KEY)
(defalias 'quail-lookup-map-and-concat #[257 "\211G\300\211\301V\203? \302\303#\262S\262\211\203 \304!\211:\203* \211A@@H\202+ \211\211\250\2035 \305!\262\211B\262\266\202 \306\307\"\207" [nil 0 quail-lookup-key t quail-map-definition char-to-string apply concat] 8 (#$ . 79908)])
#@99 Name of Quail directory which contains Quail packages.
This is a sub-directory of LEIM directory.
(defvar quail-directory-name "quail" (#$ . 80222))
#@516 Update entries for Quail packages in `LEIM' list file in directory DIRNAME.
DIRNAME is a directory containing Emacs input methods;
normally, it should specify the `leim' subdirectory
of the Emacs source tree.

It searches for Quail packages under `quail' subdirectory of DIRNAME,
and update the file "leim-list.el" in DIRNAME.

When called from a program, the remaining arguments are additional
directory names to search for Quail packages under `quail' subdirectory
of each directory.

(fn DIRNAME &rest DIRNAMES)
(defalias 'quail-update-leim-list-file #[385 "\306!\262\306\"\307\211\211\211\310!\204 \311\312\"\210	\204# \313\314\"\210\315!\262rq\210eb\210\316\317\n!!\203> \320\225b\210\202A \nc\210`\262\321\307\322#\203\227 \320\224b\210\211`W\203Z \211`|\210\321\307\323#\203\227 \320\224b\210`\262\3241\211 \325!\3268\327\232\205\202 l\203 \330y\210`|\2620\210\202Z \210\313\331\"\210\211d|\210\202Z )B\262\211\203\325 \211\306@!\240\210\306\f@\"\262\332!\203\302 B\262\202\316 \313\333@\f#\210\307B\262\211A\262\202\240 \237\262\210\203v@\262\203\332 \334\335\336#\262\203k\337\340\322\"r\211q\210\341\342\"\216\343@!\210eb\210\321\344\307\322#\203b\320\224b\210\307\3451R\325p!\262rq\210\346\347A@\3508\351\3268\352\353\354	8\"\210\355\320\354	8\"\356\357\f@!@\"&c)0\266\202db\210\313\360@$\266\202*\210A\262\202\357 A\262A\262\202\332 rq\210\361\362\320!\210*\363!\210	\206\216\313\364\"\207" [leim-list-file-name noninteractive leim-list-header leim-list-entry-regexp quail-directory-name coding-system-for-write expand-file-name nil file-writable-p error "Can't write to file \"%s\"" message "Updating %s ..." find-file-noselect looking-at regexp-quote 0 re-search-forward t move (error) read 3 'quail-use-package 1 "Garbage in %s deleted" file-readable-p "%s doesn't have `%s' subdirectory, just ignored" directory-files full "\\.el\\'" generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents "^[ 	]*(quail-define-package" (error) format "(register-input-method\n %S %S '%s\n %S %S\n %S)\n" 2 quail-use-package string-match ".*" 5 match-string file-relative-name file-name-sans-extension "Some part of \"%s\" is broken: %s in %s" utf-8 save-buffer kill-buffer "Updating %s ... done"] 19 (#$ . 80378) "FDirectory of LEIM: "])
#@311 Advise users about the characters input by the current Quail package.
The argument is a parameterized event of the form:
   (quail-advice STRING)
where STRING is a string containing the input characters.
If STRING has property `advice' and the value is a function,
call it with one argument STRING.

(fn ARGS)
(defalias 'quail-advice #[257 "\211A@\300\301\302#\303!\205 \211!\207" [get-text-property 0 advice functionp] 6 (#$ . 82792) "e"])
(byte-code "\300\301\302\"\210\303\304!\207" [global-set-key [quail-advice] quail-advice provide quail] 3)
