;ELC   
;;; compiled by too@cardhu.cs.hut.fi on Mon Mar 10 16:03:38 1997
;;; from file /u/users19/too/irchat/irchat2.el
;;; emacs version 19.28.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "`/u/users19/too/irchat/irchat2.el' was compiled for Emacs 19"))

(defconst irchat-client-version-major "3" "\
Major version number. Major functional changes change this number.")
(defconst irchat-client-version-minor "00" "\
Minor version number. Server Protocol changes and bug fixes change this number.")
(defconst irchat-client-version-beta-p nil "\
Is this version a beta version?")
(defconst irchat-client-version-alpha-p nil "\
Is this version an alpha version?")
(defconst irchat-client-version-release "$Date: 1997/03/10 13:30:10 $" "\
version release date")
(defconst irchat-client-name "Irchat" "\
*Name of this program.")
(defconst irchat-version (byte-code "\n\f Ƃ  Ȃ \f\", \fΔΕOQ- &" [format "%s %s.%s%s %s" irchat-client-name irchat-client-version-major irchat-client-version-minor irchat-client-version-alpha-p "alpha" irchat-client-version-beta-p "beta" "" string-match ".*: \\([^ ]*\\) .*" irchat-client-version-release "(" 1 ")"] 10) "\
The version of irchat you are using.")
(byte-code "!!" [provide irchat-version require] 2)
(defconst irchat-author-nickname "tml" "\
The nickname used by the author of IRCHAT.")
(defvar irchat-emacs-version (byte-code "	O!" [string-to-int emacs-version 0 2] 4) "\
*Emacs major version number.")
(byte-code "! ! " [boundp irchat-server-process nil irchat-status-message-string] 2)
(defalias 'irchat-buffer-disable-undo #[(buffer) "!\n \n!\n!" [fboundp buffer-disable-undo buffer buffer-flush-undo] 2 "\
Disabling UNDO"])
(defalias 'irchat-get-buffer-window #[(buffer) "U \"!" [irchat-emacs-version 19 get-buffer-window buffer t] 3 "\
Getting the window for a buffer"])
(defconst irchat-client-error-msg "Unrecognized command: '%s'" "\
*Error message given to anyone asking wrong CLIENT data.")
(defvar irchat-channel-filter "" "\
*Enables use of \\[universal-argument] with NAMES and TOPIC.")
(byte-code "" [nil irchat-invited-channel] 1)
(defvar irchat-old-nickname nil "\
A place to keep old nickname in case it returs thas
we cannot change to new nick")
(defvar irchat-current-channel nil "\
The channel you currently have joined.")
(defvar irchat-current-topic nil "\
The topic of current channel.")
(defvar irchat-current-channels nil "\
The channels you have currently joined.")
(defvar irchat-channel-indicator "No channel" "\
The current channel, \"pretty-printed.\"")
(defvar irchat-private-indicator nil "\
A string displayed in the mode line indicating that user is
currently engaged in a one-to-one conversation.")
(defvar irchat-polling 0 "\
T when we are automatically polling the server.")
(defvar irchat-ownfreeze nil "\
If non-nil the Dialogue window will not be scrolled automatically to bring
new entries into view when the user sends messages.")
(defvar irchat-privmsg-partner nil "\
The person who got your last private message.")
(defvar irchat-current-chat-partner nil "\
The person you are in a private conversation with.")
(defvar irchat-current-chat-partners nil "\
An list containing nics user is chatting with.")
(defvar irchat-chat-partner-alist nil "\
An alist containing nics user is chatting with.")
(defvar irchat-command-buffer-mode (quote channel) "\
symbol chat or channel depending on which is current mode at 
command buffer.")
(defvar irchat-nick-alist nil "\
An alist containing the nicknames of users known to currently be on IRC.
Each element in the list is a list containing a nickname.")
(defvar irchat-channel-alist nil "\
An alist containing the channels on IRC.  Each element in the list is 
a list containing a channel name.")
(defvar irchat-greet-author nil "\
T until we notice that the author of IRCHAT is present, and send him
a greeting telling what version of IRCHAT this is.")
(defvar irchat-save-vars-is-dirty nil "\
Non nil if irchat_vars.el is changed but not saved.")
(defvar irchat-userathost "" "\
The user@host for the current line.")
(defvar irchat-awaymsg "" "\
Current away message.")
(byte-code "! ! ! !  !) !2 !; 	!D \n\f!Y " [boundp irchat-debug-buffer nil irchat-server-buffer irchat-server-name irchat-away-indicator "-" irchat-freeze-indicator irchat-ownfreeze-indicator irchat-crypt-indicator irchat-names-timer msg irchat-msg privmsg irchat-privmsg kill irchat-killmsg ignore irchat-ignoredmsg irchat-nick-accepted] 2)
(defconst irchat-obarray-size 1327 "\
*The size of obarray used by irchat on channelname and username space.
For efficiency this should be prime. See documentation of intern and 
make-vector for more information. Here is a list of some small primes...    

13, 29, 37, 47, 59, 71, 89, 107, 131, 163, 197, 239, 293, 353, 431, 521, 
631, 761, 919, 1103, 1327, 1597, 1931, 2333, 2801, 3371, 4049, 4861, 5839, 
7013, 8419, 10103, 12143, 14591, 17519, 21023, 25229, 30293, 36353, 
43627, 52361, 62851, 75431, 90523, 108631, 130363, 156437, 187751, 
225307, 270371, 324449, 389357, 467237, 560689, 672827, 807403, 968897,
1162687, 1395263, 1674319, 2009191, 2411033, 2893249.")
(byte-code "! \"! ƉEć" [boundp irchat-obarray make-vector irchat-obarray-size nil irchat-ctcp-ping-time 0] 3)
(defvar irchat-query-client-lastcommand nil "\
*Place to keep last entered command")
(defvar irchat-query-client-nick nil "\
*Place to keep last queried nick")
(byte-code "! \fP\fP\fP\n\fP\f\fP\fP!" [boundp irchat-query-client-alist (("VERSION") ("CLIENTINFO") ("HELP") ("DCC") ("USERINFO") ("PING") ("X-FACE")) "" irchat-query-client-insert-to-generic "VERSION" irchat-query-client-version "USERINFO" irchat-query-client-userinfo "HELP" irchat-query-client-help "CLIENTINFO" irchat-query-client-clientinfo "PING" irchat-query-client-ping "X-FACE" irchat-query-client-x-face provide irchat-globals] 2)
(defvar irchat-saved-forms (purecopy (quote (irchat-kill-nickname))) "\
*Variables whose values are saved via command irchat-Command-save-vars")
(defvar irchat-command-window-height 4 "\
*How large should Command window be on startup.")
(defvar irchat-use-full-window t "\
*If non-nil, IRCHAT will use whole emacs window. Annoying for GNUS-
users, therefore added by nam.")
(defvar irchat-want-traditional nil "\
*Do we want /commands.")
(defvar irchat-command-window-on-top nil "\
*If non-nil, the Command window will be put at the top of the screen.")
(defvar irchat-one-buffer-mode nil "\
*When non-nil, irchat will put up only a dialogue-buffer (on the
screen). Useful for those (perverts) who use 24 line terminals.")
(defvar irchat-variables-file "~/.irchat_vars.el" "\
*Where to look for variables. Helps to remove clutter from your .emacs.
This feature is most likely to dissappear in near future. The preferred 
way is to put irchat variables on .emacs or file loaded from there.")
(defvar irchat-server (byte-code "! " [getenv "IRCSERVER" "ircd.eunet.fi"] 2) "\
*Name of the host running the IRC server. 
Value initialized from the IRCSERVER environment variable if one is set")
(defvar irchat-service (byte-code "! \n!V \n! \n )" [getenv "IRCPORT" ircport-env string-to-int 0 6667] 3) "\
*IRC service name or (port) number.")
(defvar irchat-nickname (byte-code "!  " [getenv "IRCNICK" user-real-login-name] 2) "\
*The nickname you want to use in IRC.
Default is the environment variable IRCNICK, or your login name.")
(defvar irchat-real-nickname nil "\
Internal IRCHAT nickname.")
(defvar irchat-startup-channel nil "\
*The channel to join automatically at startup.
If nil, do not join any channel.")
(defvar irchat-reconnect-automagic t "\
*Automatic reconnection, default is disabled")
(defvar irchat-ask-for-nickname t "\
*Ask for nickname if irchat was entered with \\[universal-argument].")
(defvar irchat-grow-tail "_" "\
*Add irchat-grow-tail to nick when reconnecting. Otherwise you might get
killed again if automagic reconnect is too fast.")
(defvar irchat-Command-mode-hook nil "\
*A hook for IRCHAT Command mode.")
(defvar irchat-Dialogue-mode-hook nil "\
*A hook for IRCHAT Dialogue mode.")
(defvar irchat-Exit-hook nil "\
*A hook executed when signing off IRC.")
(defvar irchat-dcc-program (byte-code "\n@4 	4 \f!\fP!  * \fP!* A@ 	+" [nil result exec-path list path file-name-as-directory file-executable-p "dcc" "dcc.perl"] 4) "\
*Name of the external dcc-program.")
(defvar irchat-dcc-directory "~/tmp" "\
*Directory where irchat-dcc puts its files.")
(defvar irchat-dcc-port 1200 "\
*Default port for DCC operations.")
(defvar irchat-myformat-string ">" "\
*Format for own messages.")
(defvar irchat-format-string "-> *%s*" "\
*Format string for private messages being sent.")
(defvar irchat-format-string0 "-%s-" "\
*Format string for arriving NOTICE messages.")
(defvar irchat-format-string1 "*%s*" "\
*Format string for arriving private messages.")
(defvar irchat-format-string2 "<%s>" "\
*Format string for arriving messages to current channel.")
(defvar irchat-format-string3 "<%s:%s>" "\
*Format string for arriving messages to current channel from outside the channel.")
(defvar irchat-format-string4 "(%s)" "\
*Format string for arriving messages to other channel from outside the channel.")
(defvar irchat-format-string5 ">%s:%s<" "\
*Format string for arriving messages to other channel from outside the channel.")
(defvar irchat-myformat-string-e ">>" "\
*Format for own messages. (encrypted)")
(defvar irchat-format-string-e "-> **%s**" "\
*Format string for private messages being sent. (encrypted)")
(defvar irchat-format-string0-e "--%s--" "\
*Format string for arriving NOTICE messages. (encrypted)")
(defvar irchat-format-string1-e "**%s**" "\
*Format string for arriving private messages. (encrypted)")
(defvar irchat-format-string2-e "<<%s>>" "\
*Format string for arriving messages to current channel. (encrypted)")
(defvar irchat-format-string3-e "<<%s:%s>>" "\
*Format string for arriving messages to current channel from outside the channel. (encrypted)")
(defvar irchat-format-string4-e "((%s))" "\
*Format string for arriving messages to other channel from outside the channel. (encrypted)")
(defvar irchat-format-string5-e ">>%s:%s<<" "\
*Format string for arriving messages to other channel from outside the channel. (encrypted)")
(defvar irchat-change-prefix "*** Change: " "\
*String to add before any change msg, used for customisation of
IRCHAT to suit old users of the irc-loser-client.")
(defvar irchat-notice-prefix "*** Notice: " "\
*String to add before any notice message.")
(defvar irchat-broadcast-prefix "*** Broadcast: " "\
*String to add before any Broadcast message")
(defvar irchat-wallops-prefix "*** Notice: " "\
*String to add before any WALLOPS message")
(defvar irchat-info-prefix "" "\
*String to add before any informational message")
(defvar irchat-Command-buffer "*IRC Commands*" "\
*Name of Command input buffer")
(defvar irchat-Dialogue-buffer "*IRC Dialogue*" "\
*Name of Dialogue output buffer")
(defvar irchat-Private-buffer "*IRC Private*" "\
*Name of Private message buffer*")
(byte-code "! ! ! !! " [boundp irchat-KILLS-buffer "*IRC KILLS*" irchat-IGNORED-buffer "*IRC IGNORED*" irchat-WALLOPS-buffer "*IRC WALLOPS*" irchat-CRYPT-buffer "*IRC CRYPT*"] 2)
(defvar irchat-blink-parens nil "\
*Should we blink matching parenthesis in irchat command buffer?")
(defvar irchat-show-wallops t "\
*Show wallops messages if usermode +ws")
(defvar irchat-ignore-extra-notices t "\
*Don't show NOTICEs with \"as being away\" unless they come from
the local server.")
(defvar irchat-shorten-kills t "\
*Shorten KILL messages to about one line.")
(defvar irchat-ignore-changes nil "\
*Ignore changes? Good in topic-wars/link troubles.")
(defvar irchat-ignore-fakes nil "\
*If non nil, ignore fake notices if receiving them.")
(defvar irchat-signoff-msg "" "\
*Default signoff message")
(defvar irchat-beep-on-bells (quote always) "\
*If non-nil, and the IRC Dialogue buffer is not selected in a window,
an IRC message arriving containing a bell character, will cause you
to be notified.
If value is 'always, an arriving bell will always cause a beep (or flash).")
(defvar irchat-system-fqdname (system-name) "\
*The fully qualified domain name of the system.
Default is what (system-name) returns.")
(defvar irchat-file-accept nil "\
*Do we accept files.")
(defvar irchat-file-confirm-save nil "\
*Do we want confirmation on saving files.")
(defvar irchat-client-userinfo "No user information given." "\
*Userinfo message given to anyone asking.")
(defvar irchat-client-x-face "" "\
*X-Face message given to anyone asking.  Proper form is \"X-Face: ....\".")
(defvar irchat-keepalive-interval nil "\
*Interval on seconds the existence of server connection is checked")
(defvar irchat-pollnames-interval nil "\
*Interval the names are polled from server")
(defvar irchat-timestamp-interval 600 "\
*Interval in seconds between timestamps in dialogue-buffer, nil for none.")
(defvar irchat-timestamp-format "*** Time: %s" "\
*Format-string for timestamp.")
(defvar irchat-crypt-known-keys nil "\
String list containing encryption keys.  e.g. '(\"foo\" \"bar\")")
(defvar irchat-crypt-default-keys nil "\
List containing pairs of addresses and associated default keys.  e.g '((\"#42\" . \"foo\") (\"#xyz\" . \"zappa\"))")
(defvar irchat-crypt-timestamp-tolerance 300 "\
Allow incoming messages to have N seconds old timestamp.")
(defvar irchat-crypt-ignore-suspicious nil "\
If t, ignore messages with invalid nick or timestamp.")
(defvar irchat-crypt-mode-active t "\
If t, irchat encrypts all messages it has a default key for.")
(defvar irchat-crypt-ignore-defected nil "\
If t, ignore encrypted messages that cannot be opened.")
(defvar irchat-crypt-secure-passphrase-read nil "\
If t, read passphrases with secured keyboard (if possible).")
(defvar irchat-send-convert-list nil "\
*Convert characters before sending to server.")
(defvar irchat-receive-convert-list nil "\
*Convert characters after receiving from server.")
(defvar irchat-kill-nickname nil "\
*A list of nicknames, as symbols, to ignore.  Messages from these people
won't be displayed.")
(defvar irchat-kill-realname nil "\
*A list of real names of people to ignore. Messages from them
won't be displayed.")
(defvar irchat-kill-logon nil "\
*A list of logon names (user@host.dom.ain). Messages from them
won't be displayed.")
(defvar irchat-no-ignore-buffers nil "\
*A list of buffers that don't adhere to ignore-list.")
(defvar irchat-ignore-list nil "\
*A list of lists that contain ignore-info.
It is list of lists that contain two elements,
first element may be two item list of
(match-for-messagetype match-for-string-in-message)
match-for-messagetype may be nil,
match-for-string-in-message may be nil,
or
name of function that returns this list, the function takes
one argument, the string we are asked to ignore.
The other argument is
(list-of-users) 
list-of-users may be nil (in case it does not match),
or 
name of function returning that returns similar list, the
function takes one argument, the string we are asked to ignore.

(setq irchat-ignore-list
      (list
       (list (list \"msg\" nil) (list \"!user\" \"@host\"))
       (list (list \"privmsg\" nil) 'irchat-own-ignore-who)
       (list 'irchat-own-ignore-check (list \"com\"))
       (list (list nil \"fuck\") (list \".*\"))
       )
      )
The previous ignores normal msg`s (not used so much anymore)
from username matching 'user' or from host 'host'.
Then any privmsg from list that irchat-own-ignore-who return.
Then if the user is from .com (or has com somewhere in name
and the irchat-own-ignore-check returns message-type and/or string.
The last ignores all messages that contain the word `fuck`.
")
(defvar irchat-buffer-list nil "\
*A list of buffers used in displaying messages.")
(defvar irchat-D-buffer (list irchat-Dialogue-buffer) "\
*A list of buffer where normal Dialogue is sent.")
(defvar irchat-P-buffer (list irchat-Dialogue-buffer irchat-Private-buffer) "\
*A list of buffers where private messages to me are sent.")
(defvar irchat-I-buffer (list irchat-IGNORED-buffer) "\
*A list of buffers where private messages to me are sent.")
(defvar irchat-W-buffer (list irchat-WALLOPS-buffer) "\
*A list of buffers where WALLOPS messages to me are sent.")
(defvar irchat-K-buffer (list irchat-KILLS-buffer) "\
*A list of buffers where KILL messages to me are sent.")
(defvar irchat-C-buffer (list irchat-CRYPT-buffer) "\
*A list of buffers where messages that were not decrypted are sent.")
(defvar irchat-000-buffer (list irchat-Dialogue-buffer) "\
*A list of buffers where 000 messages to me are sent.")
(defvar irchat-200-buffer (list irchat-Dialogue-buffer) "\
*A list of buffers where 200 messages to me are sent.")
(defvar irchat-300-buffer (list irchat-Dialogue-buffer) "\
*A list of buffers where 300 messages to me are sent.")
(defvar irchat-400-buffer (list irchat-Dialogue-buffer) "\
*A list of buffers where 400 messages to me are sent.")
(defvar irchat-500-buffer (list irchat-Dialogue-buffer) "\
*A list of buffers where 500 messages to me are sent.")
(defvar irchat-debugmsg nil "\
*Message to front of debug info.")
(defvar irchat-compress-changes t "\
*Set to t if we want instant compressed messages in the old format.")
(defvar irchat-compress-treshold 1 "\
*Number of lines to search back for a previous matching join/part/quit/mode.")
(defvar irchat-buffer-maxsize 1000000 "\
*Maximum size (in bytes) of any irchat buffer.")
(defvar irchat-buffer-defsize 900000 "\
*Size to shrink buffer if it grows too big.")
(defvar irchat-checkbuffer-interval 600 "\
*Interval between buffer-size checks.")
(defvar irchat-private-window-height 4 "\
*How tall is the window for private messages when shown.")
(defvar irchat-format-time-function (quote irchat-compose-servertimestring) "\
*Function to convert result of (current-time-string) to human readable 
form. If you like to have the short format, set this to nil or to a 
funtion (defun my-format (s) s).")
(defvar irchat-keep-buffers t "\
*When starting IRC process, instructs whether to erase contents of old
buffers if NIL or to keep them if T.")
(defvar irchat-ownfreeze nil "\
*Set this to t if you don't want your own messages to scroll the
Dialogue window.")
(defvar irchat-scroll-step 1 "\
*Set this to the number of lines you want to have empty when irchat scrolls. If nil, scrolls half a page.")
(defvar irchat-swap-private nil "\
*When showing private is it between under Dialogue or not.")
(defvar irchat-buffer-preferences (byte-code "	DC" [".*" irchat-D-buffer] 2) "\
*List of lists that contain regexp to match and buffer-list to
insert. Setting this as 
(list 
 (list \"#report\" (list \"*report-buffer*\")) 
 (list \".*\" irchat-D-buffer))
would cause messages from and to channel #report to be displayed on
buffer named *report-buffer* and all other messages are displayed on
Dialogue-buffer.")
(byte-code "!!!\"#\"#" [provide irchat-vars require irchat-globals defalias matching-substring #[(string arg) "		O" [string arg] 3] put byte-optimizer byte-compile-inline-expand string-ci-equal #[(s1 s2) "	" [s1 s2] 2]] 4)
(defalias 'string-list-ci-memberp #[(thing list) "@	 \n @A *" [list thing uthing item] 2 "\
returns t if thing is member of list, not funcallable"])
(put (quote string-list-ci-memberp) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'string-list-memberp #[(thing list) "@	 \n	 @A 	)" [list item thing] 2 "\
returns t if thing is member of list, not funcallable"])
(byte-code "#\"#\"#\"#\"#" [put string-list-memberp byte-optimizer byte-compile-inline-expand defalias string-list-ci-delete #[(thing list) "	@\f7 \f<! \f@- \fC- \f- \fC	A@\f +" [thing list nil result item uthing] 4] string-list-delete #[(thing list) "@2 < @\f( \nC( \f( \nCA@	 \n*" [list nil result item thing] 3] list-to-assoclist #[(list) "	@\n \nCB	A@	 *" [nil list item result] 3] assoc-ci-string #[(key lst) "\n\"" [assoc-if #[(x) "	\n*" [x key s2 s1] 3] lst] 3]] 4)
(defalias 'assoc-ci-regexp #[(key lst) "\n\"" [assoc-if #[(x) "\nQ\f\"??" [string-match "^" key "$" x] 4] lst] 3 "\
Assoc with REGEXP-KEY from LIST."])
(put (quote assoc-ci-regexp) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'assoc-ci-regexp-rev #[(key lst) "\n\"" [assoc-if #[(x) "\nQ\f\"??" [string-match "^" x "$" key] 4] lst] 3 "\
Assoc with KEY from LIST, in which keys are regexps."])
(byte-code "#\"#" [put assoc-ci-regexp-rev byte-optimizer byte-compile-inline-expand defalias irchat-scan-channels #[(chnl) "	\n\" \n 	C\nB" [assoc chnl irchat-channel-alist] 3]] 4)
(defalias 'irchat-user-on-this-channel #[(user chnl) "	\n\"\fN@- - @A -" [intern user irchat-obarray u chnl list thing uthing item] 3 "\
return T if USER is on channel CHNL"])
(put (quote irchat-user-on-this-channel) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'irchat-update-user #[(chnl user) "? OĘ GO\"! \"N	N5 \"\fD D  !\"Y !CB	@  @Ak ,? 	C#*" [user "" 0 1 "@" intern irchat-obarray u chnl chnls irchat-waited-for irchat-greet-user irchat-greet-author irchat-author-nickname assoc prin1-to-string irchat-nick-alist list thing uthing item put] 6 "\
Add CHNL to list of channels USER belongs to"])
(put (quote irchat-update-user) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'irchat-add-to-channel #[(user chnl) "		? 	OŘ  		GO\"% 	\"N	N8 	\"\fG 	G  !\"\\ !CB	@  @Am ,? 	C#**" [chnl user "" 0 1 "@" intern irchat-obarray u chnls irchat-waited-for irchat-greet-user irchat-greet-author irchat-author-nickname assoc prin1-to-string irchat-nick-alist list thing uthing item put] 6 "\
Add users info to his chnl"])
(put (quote irchat-add-to-channel) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'irchat-remove-from-thischannel #[(user chnl) "	\n\"N@	\n\nZ \n<< \n@M 	\nC	M \nM 	\nC	A@\n! 	-#)" [intern user irchat-obarray u put chnl list thing nil result item uthing] 8 "\
Remove users info from his chnl"])
(put (quote irchat-remove-from-thischannel) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'irchat-update-thischannel #[(chnl origusers) "	\" \f	O*ɘ O˘; GO\"A \"NNU \f\"e e  !\"z !CB\f@  @A ,? \fC#**	O* \f	ɘ?oO˘ GO\" \"NN\f\f\" !\"1!CB\f@]]@AB,?n\fC#*+" [origusers users string-match "^\\([^ ]*\\) \\(.*\\)" chnl 1 arg string user "" 0 "@" intern irchat-obarray u chnls irchat-waited-for irchat-greet-user irchat-greet-author irchat-author-nickname assoc prin1-to-string irchat-nick-alist list thing uthing item put 2] 7 "\
Update our copy of users on channel chnl."])
(byte-code "#\"#\"#!\"#" [put irchat-update-thischannel byte-optimizer byte-compile-inline-expand defalias irchat-next-line #[(&optional n) "`dU	  	y" [newline n] 2] irchat-Dialogue-insert #[(msg) "	\f\"\")" [irchat-w-insert irchat-D-buffer format "%s\n" msg] 5] provide irchat-inlines irchat-handle-msg-msg #[(prefix rest) " \n\" \f\" ? \fŘ?  \"N	N 	@O̘E 	@O͘S 	A	1 C		@m \"\f#\"~ 	@#\f#\")\f\"  ! !\"= !" [prefix irchat-ignore-this-p irchat-userathost irchat-msg-from-ignored rest "> " intern irchat-obarray chnl oma 0 1 "#" "&" irchat-current-channel irchat-w-insert irchat-D-buffer format "%s %s\n" irchat-format-string2 irchat-format-string3 string-match "" irchat-beep-on-bells irchat-get-buffer-window irchat-Dialogue-buffer beep t message "IRCHAT: %s is trying to get attention" always] 9]] 4)
(defalias 'irchat-run-message-hook-types #[(hook prefix rest-of-line) "9 ! ! ! 9$ !0 <: @=: E!j <j 		g 	@#^ 	E 	A	J *)" [hook boundp fboundp eval lambda prefix rest-of-line nil r hooks irchat-run-message-hook-types t] 5 "\
Run either old fashion irchat hook variable or hook list."])
(defalias 'irchat-handle-message-2 #[(prefix message rest-of-line) "\nQ!\nQ!ŉ		\f#?S\n͘ \fF \"F \" R Ҙ  \"N @Oؘ{ @O٘ Ag C@ \"#\"  @##\")\" # %! !\"#= !*K\nQ!!\fD\"K\n!/1/V31\"Q!!3/\fE\"J\n\f$\n\f$\"*\f#," [intern "irchat-" message "-hook" "irchat-after-" nil fun buffer-read-only after-hook hook irchat-run-message-hook-types prefix rest-of-line "msg" rest irchat-ignore-this-p irchat-userathost irchat-msg-from-ignored "> " irchat-obarray chnl oma 0 1 "#" "&" irchat-current-channel irchat-w-insert irchat-D-buffer format "%s %s\n" irchat-format-string2 irchat-format-string3 string-match "" irchat-beep-on-bells irchat-get-buffer-window irchat-Dialogue-buffer beep t "IRCHAT: %s is trying to get attention" always fboundp "irchat-handle-" "-msg" apply string-to-int message-number 100 default-number "%d00" "-msgs" "IRCHAT: Unknown IRC message \":%s %s %s\"" "MESSAGE: %s, %s, %s\n"] 10 "\
Helper function (actually a macro) for irchat-handle-message."])
(put (quote irchat-handle-message-2) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'irchat-handle-message #[nil "p!% !% !% !̔̕͔6 ͔T͕{ΔΕ{ДЕ{єѕ{q\nD\n	\nQ!\nQ!	#?\nݘ3	 \" \"/ ᘄ/\"\"N$ $@O嘄 $@O昃 $A$ 'C$$@' ),\"#\")-$@##\")\"/0/!$!\"0=/!*\nQ!!L	D\"\n!;=;V|=\"Q!!|;	E\"@ \n	$)A \n	$\"*	#,+B Dq\f| ." [nil rest-of-line message prefix end beg obuf looking-at "\\(:[^! \n]*\\)!\\([^ \n]*\\) \\([^ \n]+\\) :?\\(.*\\)\n" "\\(:[^ \n]*\\)?\\(\\) *\\([^ \n]+\\) :?\\(.*\\)\n" "\\(:[^! \n]*\\)!\\([^ \n]*\\) \\([^ \n]+\\) :?\\(.*\\)\n" "\\(:[^ \n]*\\)?\\(\\) *\\([^ \n]+\\) :?\\(.*\\)\n" 0 1 2 irchat-userathost 4 3 irchat-Dialogue-buffer irchat-current-function intern "irchat-" "-hook" "irchat-after-" fun buffer-read-only after-hook hook irchat-run-message-hook-types "msg" rest irchat-ignore-this-p irchat-msg-from-ignored "> " irchat-obarray chnl oma "#" "&" irchat-current-channel irchat-w-insert irchat-D-buffer format "%s %s\n" irchat-format-string2 irchat-format-string3 string-match "" irchat-beep-on-bells irchat-get-buffer-window beep t "IRCHAT: %s is trying to get attention" always fboundp "irchat-handle-" "-msg" apply string-to-int message-number 100 default-number "%d00" "-msgs" "IRCHAT: Unknown IRC message \":%s %s %s\"" "MESSAGE: %s, %s, %s\n" ""] 10 "\
Called when we have at least one line of output from the IRC server."])
(put (quote irchat-handle-message) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'irchat-filter #[(process output) "p G !G q!! !\nddb#c)\nF \nYF !+!qdb  @@A@;x } !;  !#A-T )cebd# ! eb\"p#$%&'! ! ! !'&T{%{0{#{$3q%$D4%$##$%$Q!$Q!9:;<<%##?$8%#?%~@ %0\"~A %?\"4%?B 4%%C\"D NEE@OF E@OG EAEHCEE@HI J́K L%\"?#\" I J́K M%E@#?#\")N ?\"4O43!%P !Q %\"OR =4P !*S T $U Q!9!\\V 9%#D\"W $!XY ZXVS T ́[ Z\"\\ Q!9!V 9X%#E\"] %$#$I J́^ %$#$\"*;%##,+_ D4\fq'&| .\fq` !+" [match-data nil bol data obuf irchat-debug-buffer get-buffer irchat-get-buffer-window dbgwin window-point wp pm format "%s%s\n" irchat-debugmsg output irchat-scroll-if-visible process-buffer process irchat-receive-convert-list conv-list irchat-polling i f s s1 s2 irchat-replace-in-string re-search-forward "\n\n" t delete-char -1 string-match "\n" rest-of-line message prefix end beg looking-at "\\(:[^! \n]*\\)!\\([^ \n]*\\) \\([^ \n]+\\) :?\\(.*\\)\n" "\\(:[^ \n]*\\)?\\(\\) *\\([^ \n]+\\) :?\\(.*\\)\n" "\\(:[^! \n]*\\)!\\([^ \n]*\\) \\([^ \n]+\\) :?\\(.*\\)\n" "\\(:[^ \n]*\\)?\\(\\) *\\([^ \n]+\\) :?\\(.*\\)\n" 0 1 2 irchat-userathost 4 3 irchat-Dialogue-buffer irchat-current-function intern "irchat-" "-hook" "irchat-after-" fun buffer-read-only after-hook hook irchat-run-message-hook-types "msg" rest irchat-ignore-this-p irchat-msg-from-ignored "> " irchat-obarray chnl oma "#" "&" irchat-current-channel irchat-w-insert irchat-D-buffer "%s %s\n" irchat-format-string2 irchat-format-string3 "" irchat-beep-on-bells beep "IRCHAT: %s is trying to get attention" always fboundp "irchat-handle-" "-msg" apply string-to-int message-number 100 default-number "%d00" "-msgs" "IRCHAT: Unknown IRC message \":%s %s %s\"" "MESSAGE: %s, %s, %s\n" "" store-match-data] 11 "\
Filter function for IRC server process."])
(defalias 'irchat-sentinel #[(proc status) " Ïŏ !" [irchat-reconnect-automagic err (set-process-filter irchat-server-process nil) ((wrong-type-argument)) (set-process-sentinel irchat-server-process nil) ((wrong-type-argument)) nil irchat-server-process irchat message "IRCHAT: Connection closed."] 3 "\
Sentinel function for Irchat process."])
(byte-code "!!\f ! \"" [provide irchat-filter boundp irchat-dcc-receive-list nil irchat-dcc-receive-direct t defalias irchat-ctl-a-dcc-msg #[(from chnl rest) "	\f#\"\"{ \fO*!\fO*\fO*\fO*C\"z 	!\" -" [irchat-w-insert irchat-D-buffer format "*** DCC from %s: %s\n" from rest string-match "\\(SEND\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\)" "receive" file-name-nondirectory 2 arg string 3 4 5 size port host filename command append irchat-dcc-receive-list irchat-dcc-receive-direct "*** DCC autoreceive\n" irchat-Command-dcc-receive] 8]] 3)
(defalias 'irchat-Command-dcc-send #[nil "#!	\n\"\f%\f!&\"T)" [expand-file-name read-file-name "File to send: " default-directory nil filename irchat-completing-default-read "To whom: " append irchat-nick-alist irchat-channel-alist (lambda (s) t) irchat-privmsg-partner set-process-filter start-process irchat-dcc-program "send" number-to-string irchat-dcc-port irchat-dcc-send-filter] 8 "\
Send file to user." nil])
(defalias (quote irchat-dcc-send-filter) #[(process output) "\n\" \n\nGSO!!\n\"z \n	\n		O*\n	\n		O*\n	\n		O*\n	\n		O*&$!," [string-match "DCC file [^ ]* sent" output irchat-own-message 0 message "" "DCC send [^ ]*/\\([^ ]*\\) \\([^ ]+\\) \\([^ ]+\\) \\(.+\\)" 1 arg string 2 3 4 size machine port filename irchat-send "PRIVMSG %s :DCC SEND %s %s %s %s" irchat-privmsg-partner format "*** Sending file %s (%s bytes) to %s"] 8])
(defalias 'irchat-Command-dcc-receive #[(&optional number) "@A	H 	@	A@	8	8	8	#!\"	&\".)" [irchat-dcc-receive-list dcc-object 2 3 4 default size port host command irchat-own-message format "*** Getting file %s (%s bytes)" expand-file-name irchat-dcc-directory filename set-process-filter start-process irchat-dcc-program nil irchat-dcc-receive-filter] 10 "\
Receive next file from list." "P"])
(defalias (quote irchat-dcc-receive-filter) #[(process output) "\n\" \n\nGSO!\n\nGSO\"" [string-match "DCC file [^ ]* received" output irchat-own-message 0 message "%s"] 5])
(defalias 'irchat-Command-dcc-list #[nil "	& 	@	AAAAAAAA@\f#!* *" [irchat-dcc-receive-list dcc-list nil dcc-object size filename irchat-own-message format "*** DCC file %s (%s bytes)"] 5 "\
List files in receive queue." nil])
(defalias 'irchat-dcc-compare-hostnames #[(h1 h2) "	\n* ćp !ȉ	\n	&qebed{\n\n\"f \nO*\nO*f 	)!	+	\n*" [h1 h2 s2 s1 t irchat-dcc-program get-buffer-create "*IRC DCC resolve*" nil domatch output pob call-process "resolve" string-match "\\([^ ]+\\)\n\\([^ ]+\\)\n" 1 arg string 2 kill-buffer] 9 "\
Compare two internet domain hostnames. Return true iff they resolve to the 
same IP-address."])
(byte-code "!!" [provide irchat-dcc irchat-caesar] 2)
(defalias 'irchat-caesar-region #[(&optional n &optional japanese) "\n  W [æZ æU?\f !: H\\U \n\f!\"\fWd \fI\fT\fO P\n\fW \f\\\f\\HI\f\\\n\f\\HI\fT\fr !+\fx! H\\Ux\n\f!\"\fW \fI\fT\f P\n\fW\f\\\f\\HI\f\\\n\f\\HI\fT\f \f\fWr\f\fHXUWNf\\fXdZf)I\fT\f*+!+\f  ɉ !\f\"#$#\"{!G \f W!\f$!\fHHI\fT\f#b#\"|!c." [n 13 0 26 japanese boundp caesar-translate-table-1 97 "abcdefghijklmnopqrstuvwxyz" nil upper lower i message "Building caesar-translate-table-1..." make-vector 256 65 "Building caesar-translate-table 1... done" caesar-translate-table-2 "Building caesar-translate-table-2..." 161 207 254 t3 t2 t1 v 47 "Building caesar-translate-table 2... done" region-beginning region-end len str to from caesar-translate-table] 7 "\
Caesar rotation of region by N, default 13, for decrypting netnews.
ROT47 will be performed for Japanese text in any case." (byte-code "	 !CD" [current-prefix-arg prefix-numeric-value nil] 2)])
(byte-code "\"\"\"" [defalias irchat-handle-000-msgs #[(number prefix rest) "\f\"r \fO*\fO*\fO*\n\f͘N \n\"\"p ͘c \n\f#\"p \f\n$\"+\"" [ok irchat-nick-accepted string-match "[^ ]* \\([^ :]*\\) *\\([^ :]*\\) *:\\(.*\\)" rest 1 arg string 2 3 msg target2 target1 "" irchat-w-insert irchat-000-buffer format "*** %s\n" "*** %s (%s)\n" "*** %s %s (%s)\n" message "IRCHAT: Strange %s reply" number] 8] irchat-handle-004-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "[^ ]* \\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-000-buffer format "*** %s\n" message "IRCHAT: Strange 004 reply"] 6] irchat-handle-200-msgs #[(number prefix rest) "\n\"d \n\f\fO*\n\f\fO*\n\f\fO*	\n˘@ \"\"b 	˘U \n#\"b \n	$\"+\"" [string-match "[^ ]* \\([^ :]*\\) *\\([^ :]*\\) *:\\(.*\\)" rest 1 arg string 2 3 msg target2 target1 "" irchat-w-insert irchat-200-buffer format "*** %s\n" "*** %s %s\n" "*** %s %s (%s)\n" message "IRCHAT: Strange %s reply" number] 8]] 3)
(defalias 'irchat-handle-200-msg #[(prefix rest) "\n\"? \n\f\fO*\n\f\fO*\n\f\fO*	\n\f\n	%\"+!" [string-match "Link \\([^ ]*\\)[ :]*\\([^ ]*\\)[ :]*\\(.*\\)" rest 1 arg string 2 3 next dest version irchat-w-insert irchat-200-buffer format "*** Link %s (%s) ==> %s (next %s)\n" prefix message "IRCHAT: Strange 200 message"] 9 "\
200 TRACELINK Link <version & debug level> <destination> <next server>"])
(defalias 'irchat-handle-201-msg #[(prefix rest) "\n\"0 \n\f\fO*\n\f\fO*\n$\"*!" [string-match "[^ ]* [^ ]* \\([0-9]*\\)[ :]*\\(.*\\)" rest 1 arg string 2 server class irchat-w-insert irchat-200-buffer format "*** %s Trying to connect to %s (class %s)\n" prefix message "IRCHAT: Strange 201 message"] 8 "\
201 TRACECONNECTING Try. <class> <server>"])
(defalias 'irchat-handle-202-msg #[(prefix rest) "\n\"0 \n\f\fO*\n\f\fO*\n$\"*!" [string-match "[^ ]* [^ ]* \\([0-9]*\\)[ :]*\\(.*\\)" rest 1 arg string 2 server class irchat-w-insert irchat-200-buffer format "*** %s Handshaking with %s (class: %s)\n" prefix message "IRCHAT: Strange 202 message"] 8 "\
202 RPL_TRACEHANDSHAKE H.S. <class> <server>"])
(defalias 'irchat-handle-203-msg #[(prefix rest) "\n\"= \n\f\fO*\n\f\fO*\n\f\fO*	\n\f\n	$\"+!" [string-match "\\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\)[ :]+\\(.*\\)" rest 2 arg string 3 4 who class status irchat-w-insert irchat-200-buffer format "*** %s Class[%s] ==> %s\n" message "IRCHAT: Strange 203 message"] 8 "\
203 RPL_TRACEUNKNOWN ???? <class> [<client IP address in dot form>]"])
(defalias 'irchat-handle-204-msg #[(prefix rest) "\n\"= \n\f\fO*\n\f\fO*\n\f\fO*	\n\f\n	$\"+!" [string-match "\\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\)[ :]+\\(.*\\)" rest 2 arg string 3 4 who class status irchat-w-insert irchat-200-buffer format "*** %s Class[%s] ==> %s\n" message "IRCHAT: Strange 204 message"] 8 "\
204 RPL_TRACEOPERATOR Oper <class> <nick>"])
(defalias 'irchat-handle-205-msg #[(prefix rest) "\n\"= \n\f\fO*\n\f\fO*\n\f\fO*	\n\f\n	$\"+!" [string-match "[^ ]* \\([^ ]*\\) \\([0-9]*\\)[ :]*\\(.*\\)" rest 1 arg string 2 3 where hops kind irchat-w-insert irchat-200-buffer format "*** %s Class[%s] ==> %s\n" message "IRCHAT: Strange 205 message"] 8 "\
205 RPL_TRACEUSER User %d %s"])
(defalias 'irchat-handle-206-msg #[(prefix rest) "\n\" \n\f\fO*\n\f\fO*\"C \f\fO*$\" \"~ \f\fO*\f\fO*\f\fO*&\" $\"*!" [string-match "Serv \\([^ ]*\\) \\(.*\\)" rest 1 arg string 2 pars class "^[ :]*\\(.*\\)" irchat-w-insert irchat-200-buffer format "*** Serv %s (%s) ==> %s\n" prefix "[ :]*\\([0-9]*\\)*C \\([0-9]*\\)*S[ :]*\\(.*\\)" "*** Serv %s (%s) ==> %s (%sC, %sS)\n" 3 message "IRCHAT: Strange 206 message"] 12 "\
206 RPL_TRACESERVER Serv %d %dS %dC %s %s!%s@%s"])
(defalias 'irchat-handle-207-msg #[(prefix rest) "\n\". \n\f\fO*\n\f\fO*\n#\"*!" [string-match "[^ ]* Service \\([0-9]*\\) \\(.*\\)" rest 1 arg string 2 service class irchat-w-insert irchat-200-buffer format "*** Service %s (class %s)\n" message "IRCHAT: Strange 207 message"] 7 "\
207 RPL_TRACESERVICE Service %d %s"])
(defalias 'irchat-handle-208-msg #[(prefix rest) "	\f\"\"Ň" [irchat-w-insert irchat-200-buffer format "*** %s: RPL_TRACENEWTYPE: Why this?\n" prefix nil] 5 "\
208 RPL_TRACENEWTYPE <newtype> 0 %s"])
(defalias 'irchat-handle-209-msg #[(prefix rest) "\n\". \n\f\fO*\n\f\fO*\n#\"*!" [string-match "[^ ]* Class \\([0-9]*\\) \\([0-9]*\\)" rest 1 arg string 2 entries class irchat-w-insert irchat-200-buffer format "*** Class %s Entries linked: %s\n" message "IRCHAT: Strange 209 message"] 7 "\
RPL_TRACECLASS Class %d %d"])
(defalias 'irchat-handle-211-msg #[(prefix rest) "\n\"} \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\f\f&	\".!" [string-match "\\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\)[ :]+\\(.*\\)" rest 2 arg string 3 4 5 6 7 8 open rcveb rcvem sendb sendm sendq link irchat-w-insert irchat-200-buffer format "%-35s*** %s: %5s%7s%10s%7s%10s %s\n" prefix message "IRCHAT: Strance 211 message"] 13 "\
NOTICE %s :%-15.15s%5u%7u%10u%7u%10u %s"])
(defalias 'irchat-handle-212-msg #[(prefix rest) "\n\". \n\f\fO*\n\f\fO*\n#\"*!" [string-match "[^ ]* \\([^ ]*\\) \\([0-9]*\\)" rest 1 arg string 2 times cmd irchat-w-insert irchat-200-buffer format "%s has been used %s times after startup\n" message "IRCHAT: Strange 212 message"] 7 "\
212 RPL_STATSCOMMANDS %s %u %u"])
(defalias 'irchat-handle-213-msg #[(prefix rest) "\n\"l \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\f\f&\".!" [string-match "[^ ]* \\(.\\) \\([^ ]*\\) \\(.\\) \\([^ ]*\\) \\([0-9]*\\) \\([0-9]*\\)" rest 1 arg string 2 3 4 5 6 hmmm port name pass canon cn irchat-w-insert irchat-200-buffer format "%s:%s:%s:%s:%s:%s\n" message "IRCHAT: Strange 213 message"] 11 "\
213 RPL_STATSCLINE %c %s * %s %d %d"])
(defalias 'irchat-handle-214-msg #[(prefix rest) "\n\"l \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\f\f&\".!" [string-match "[^ ]* \\(.\\) \\([^ ]*\\) \\(.\\) \\([^ ]*\\) \\([0-9]*\\) \\([0-9]*\\)" rest 1 arg string 2 3 4 5 6 hmmm port name pass canon cn irchat-w-insert irchat-200-buffer format "%s:%s:%s:%s:%s:%s\n" message "IRCHAT: Strange 214 message"] 11 "\
214 RPL_STATSNLINE %c %s * %s %d %d"])
(defalias 'irchat-handle-215-msg #[(prefix rest) "\n\"= \n\f\fO*\n\f\fO*\n\f\fO*	\n\f\n	$\"+!" [string-match "[^ ]* I \\([^ ]*\\) \\(.\\) \\([^ ]*\\)" rest 1 arg string 2 3 redomain passwd domain irchat-w-insert irchat-200-buffer format "*** I:%s:%s:%s\n" message "IRCHAT: Strange 215 message"] 8 "\
215 RPL_STATSILINE k2 I * * * 0 0"])
(defalias 'irchat-handle-216-msg #[(prefix rest) "\n\" \n\"G \nO*\nO*\nO*	\n\n	$\"+!" [string-match "[^ ]* K \\([^ ]*\\) \\(.\\) \\([^ ]*\\) 0 -1" rest "[^ ]* K \\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\) 0 [:]*-1" 1 arg string 2 3 user pass host irchat-w-insert irchat-200-buffer format "*** K:%s:%s:%s\n" message "IRCHAT: Strange 216 message"] 8 "\
216 RPL_STATSKLINE k2 K *.hut.fi * tsh 0 -1"])
(defalias 'irchat-handle-217-msg #[(prefix rest) "\n\"L \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*	\n\f\f\n	%\",!" [string-match "[^ ]* Q \\([^ ]*\\) \\(.\\) \\([^ ]*\\) \\(.*\\)" rest 1 arg string 2 3 4 stuff host star reason irchat-w-insert irchat-200-buffer format "*** Q:%s:%s:%s:%s\n" message "IRCHAT: Strange 217 message"] 9 "\
217 RPL_STATSQLINE k2 Q <NULL> * eris.berkeley.edu 0 -1"])
(defalias 'irchat-handle-218-msg #[(prefix rest) "\n\"L \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*	\n\f\f\n	%\",!" [string-match "[^ ]* Y \\([0-9]*\\) \\([0-9]*\\) \\([0-9]*\\) \\([0-9]*\\)" rest 1 arg string 2 3 4 maxlinks confreq pingfreq class irchat-w-insert irchat-200-buffer format "*** Class %s: PingFreq %s, ConFreq %s, MaxLinks %s\n" message "IRCHAT: Strange 218 message"] 9 "\
218 RPL_STATSYLINE k2 Y 1 90 300 10"])
(defun irchat-handle-219-msg (prefix rest) "\
219 RPL_ENDOFSTATS %c :End of /STATS report" nil)
(defalias 'irchat-handle-221-msg #[(prefix rest) "\n\" \n\f\fO*\"\")\n\"!" [string-match "[^ ]* \\(.*\\)" rest 1 arg string str irchat-w-insert irchat-200-buffer format "*** Mode for you is %s\n" message "IRCHAT: Strange 324 reply '%s'"] 6 "\
221 RPL_UMODEIS %s"])
(defun irchat-handle-231-msg (prefix rest) "\
231 RPL_SERVICEINFO" nil)
(defun irchat-handle-232-msg (prefix rest) "\
232 RPL_ENDOFSERVICES" nil)
(defun irchat-handle-233-msg (prefix rest) "\
233 RPL_SERVICE" nil)
(defun irchat-handle-234-msg (prefix rest) "\
234 RPL_SERVLIST" nil)
(defun irchat-handle-235-msg (prefix rest) "\
235 RPL_SERVLISTEND" nil)
(defalias 'irchat-handle-241-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "[^ ]* \\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-200-buffer format "*** %s\n" message "IRCHAT: Strange 241 reply"] 6 "\
241 RPL_STATSLLINE %c %s * %s %d %d"])
(defalias 'irchat-handle-242-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "[^ ]* \\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-200-buffer format "*** %s\n" message "IRCHAT: Strange 242 reply"] 6 "\
242 RPL_STATSUPTIME :Server Up %d days, %d:%02d:%02d"])
(defalias 'irchat-handle-243-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "[^ ]* \\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-200-buffer format "*** %s\n" message "IRCHAT: Strange 243 reply"] 6 "\
243 RPL_STATSOLINE %c %s * %s %d %d"])
(defalias 'irchat-handle-244-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "[^ ]* \\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-200-buffer format "*** %s\n" message "IRCHAT: Strange 244 reply"] 6 "\
244 RPL_STATSHLINE %c %s * %s %d %d"])
(defalias 'irchat-handle-245-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "[^ ]* \\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-200-buffer format "*** %s\n" message "IRCHAT: Strange 245 reply"] 6 "\
245 RPL_STATSSLINE %c %s * %s %d %d"])
(byte-code "! ! " [boundp irchat-recursing-whois nil irchat-recursing-whowas] 2)
(defalias 'irchat-handle-300-msgs #[(number prefix rest) "\n\"d \n\f\fO*\n\f\fO*\n\f\fO*	\n˘@ \"\"b 	˘U \n#\"b \n	$\"+\"" [string-match "[^ ]* \\([^ :]*\\) *\\([^ :]*\\) *:\\(.*\\)" rest 1 arg string 2 3 msg target2 target1 "" irchat-w-insert irchat-300-buffer format "*** %s\n" "*** %s (%s)\n" "*** %s %s (%s)\n" message "IRCHAT: Strange %s reply" number] 8 "\
Generic handler for 3?? messages. 
This is called if no specific handler exists"])
(defalias 'irchat-handle-301-msg #[(prefix rest) "\n\"4 \n\f\fO*\n\f\fO*	?2 #\"*\"" [string-match "^[^ ]+ \\([^ ]+\\) +:\\(.*\\)" rest 1 arg string 2 iswhat who irchat-recursing-whois irchat-w-insert irchat-300-buffer format "*** %s is marked as being AWAY, but left the message:\n%s\n" "IRCHAT: Strange 301 reply"] 7 "\
Handle the 301 RPL_AWAY."])
(defalias 'irchat-handle-302-msg #[(prefix rest) "\n\"j \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*	\n\f\f	ҘN P\n՘X P&\"\nȕOP,  " [string-match "^[^ ]* :[ ]*\\([^*=]+\\)\\([*]*\\)=\\([+-]\\)\\([^ ]+\\)" rest 1 arg string 2 3 4 who away oper nick irchat-w-insert irchat-300-buffer format "%sNick %s is %s [%s, %s]\n" irchat-info-prefix "" "Not " "Operator" "+" "AWAY" " :" nil] 11 "\
Handle the 302 USERHOST."])
(defalias 'irchat-handle-303-msg #[(prefix rest) "\n\"6 \n\f\fO*Ƙ! \"\"\n\f\fO*#\"\"" [string-match "[^ ]+ :\\(.*\\)" rest 1 arg string "" irchat-w-insert irchat-300-buffer format "%sNo one you requested is on now.\n" irchat-info-prefix "%sFollowing people(s) are on: %s\n" "IRCHAT: Strange 303 reply"] 9 "\
Handle the 303 ISON"])
(defalias 'irchat-handle-305-msg #[(prefix rest) "F  \"A 	O*\n\f\n;  C\"=  #\")\f\"" [irchat-away-indicator "A" "-" irchat-maybe-poll string-match "[^:]:\\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-300-buffer format "*** %s (%s)\n" irchat-format-time-function apply current-time-string "IRCHAT: Strange 305 reply\n"] 9 "\
Handle the 305 UNAWAY"])
(defalias 'irchat-handle-306-msg #[(prefix rest) "\f\"6 \fO*\n0  C\"2  #\")\n\"" ["A" irchat-away-indicator string-match "[^:]:\\(.*\\)" rest 1 arg string msg irchat-w-insert irchat-300-buffer format "*** %s (%s)\n" irchat-format-time-function apply current-time-string "IRCHAT: Strange 306 reply\n"] 9 "\
Handle the 306 NOWAWAY"])
(defalias 'irchat-handle-311-msg #[(prefix rest) "\n\"b \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f?` \n\f&\"-\"" [string-match "[^ ]+ \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) :\\(.*\\)" rest 1 arg string 2 3 4 5 realname channel machine username nick irchat-recursing-whois irchat-w-insert irchat-300-buffer format "%s%s is %s (%s) at %s\n" irchat-info-prefix "IRCHAT: Strange 311 reply"] 10 "\
Handle the 311 WHOISUSER."])
(defalias 'irchat-handle-312-msg #[(prefix rest) "\n\"` \n\f\fO*\n\f\fO*\n\f\fO*	\n	\f\"N N N 	\n#^ 	$\"+\"" [string-match "^[^ ]+ \\(\\([^ ]+\\) \\)?\\([^ ]+\\) :\\(.*\\)" rest 2 arg string 3 4 real server who irchat-dcc-compare-hostnames irchat-server irchat-recursing-whois irchat-recursing-whowas t irchat-send "WHOIS %s %s" nil irchat-w-insert irchat-300-buffer format "%son via server %s (%s)\n" irchat-info-prefix "IRCHAT: Strange 312 reply"] 8 "\
Handle the 312 WHOISSERVER."])
(defalias 'irchat-handle-313-msg #[(prefix rest) "\n\"4 \n\f\fO*\n\f\fO*	?2 #\"*\"" [string-match "^[^ ]+ \\([^ ]+\\) :\\(.*\\)" rest 1 arg string 2 iswhat who irchat-recursing-whois irchat-w-insert irchat-300-buffer format "%sSTATUS: %s\n" irchat-info-prefix "IRCHAT: Strange 313 reply"] 7 "\
Handle the 313 WHOISOPERATOR."])
(defalias 'irchat-handle-316-msg #[(prefix rest) "\n\"2 \n\f\fO*\n\f\fO*	?0 \"\"*\n\"f \n\f\fO*\n\f\fO*	?d #\"*\"" [string-match "^\\([^ ]+\\) :\\(.*\\)" rest 1 arg string 2 iswhat who irchat-recursing-whois irchat-w-insert irchat-300-buffer format "STATUS: %s\n" "^\\([^ ]+\\) \\([^ ]+\\) :\\(.*\\)" 3 "%sSTATUS: %s\n" irchat-info-prefix "IRCHAT: Strange 316 reply"] 7 "\
Handle the 316 WHOISCHANOP."])
(defalias 'irchat-handle-319-msg #[(prefix rest) "\n\"3 \n\f\fO*\n\f\fO*	?2 #\"*" [string-match "^\\([^ ]+\\) \\([^ ]+\\) :\\(.*\\)" rest 2 arg string 3 isonchannels who irchat-recursing-whois irchat-w-insert irchat-300-buffer format "%schannels: %s\n" irchat-info-prefix] 7 "\
Handle the 319 reply (what channels user is on)."])
(defalias 'irchat-handle-314-msg #[(prefix rest) "\n\"p \n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f\fO*\n\f!ؘc قe \n\f&\"-!" [string-match "[^ ]+ \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) :\\(.*\\)" rest 1 arg string 2 3 4 5 realname channel machine username nick message "" t irchat-recursing-whowas irchat-w-insert irchat-300-buffer format "%s%s [%s] was %s (%s) at %s\n" irchat-info-prefix "*" "Priv" "IRCHAT: Strange 314 reply"] 11 "\
Handle the 314 WHOWASUSER."])
(defun irchat-handle-315-msg (prefix rest) "\
Handle the 315 ENDOFWHO." nil)
(defalias 'irchat-handle-317-msg #[(prefix rest) "\n\"! \f\n\n\n\nO*!#\"\n\"B \f\n\n\n\nO*!#\"\n\" \n\n\n\nO*\n\n\n\nO*\n\n\n\nO*\n\n\n\nO*\n\n\n\nO*\f#\"-!" [string-match "^[^ ]+ [^ ]+ \\([0-9]*\\) :\\(.*\\)" rest irchat-w-insert irchat-300-buffer format "%sIDLE for %s\n" irchat-info-prefix irchat-convert-seconds 1 arg string "^[^ ]+ \\([0-9]*\\) :\\(.*\\)" "^\\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) +\\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) :\\(.*\\)" 2 3 4 5 6 year time date month dofw "%sLast input received %s.\n" message "IRCHAT: Strange 317 reply"] 10 "\
Handle the 317 WHOISIDLE."])
(defun irchat-handle-318-msg (prefix rest) "\
Handle the 318 ENDOFWHOIS." nil)
(defalias 'irchat-handle-321-msg #[(prefix rest) "	$\"" [irchat-w-insert irchat-300-buffer format "%-10s%6s  %s\n" "Channel" "Users" "Topic"] 7 "\
Handle the 321 LISTSTART. (first of names)"])
(defalias 'irchat-handle-322-msg #[(prefix rest) "\n\"t \n\f\fO*\n\f\fO*\n\f\fO*	\n\nL ̘L ͘r \nΘr \n\"#\n!\nΘj ւl \n	$\"+!" [string-match "^\\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) :\\(.*\\)" rest 2 arg string 3 4 topic users chnl irchat-channel-filter "" "0" "*" put intern irchat-obarray irchat-w-insert irchat-pick-buffer format "%-10s%6s  %s\n" "Priv" message "IRCHAT: Strange 322 reply"] 8 "\
Handle the 322 LIST.(from NAMES)."])
(defun irchat-handle-323-msg (prefix rest) "\
Handle the 323 RPL_LISTEND. (end of names)" nil)
(defalias 'irchat-handle-324-msg #[(prefix rest) "\n\"0 \n\f\fO*\n\f\fO*!#\"*\n\"!" [string-match "[^ ]* \\([^ ]*\\) \\(.*\\)" rest 1 arg string 2 str chnl irchat-w-insert irchat-pick-buffer format "*** Mode for %s is %s\n" message "IRCHAT: Strange 324 reply '%s'"] 7 "\
Handle the 324 CHANNELMODEIS."])
(defalias 'irchat-handle-331-msg #[(prefix rest) "\n\"& \nO*\"#\")" [string-match "[^ ]* \\([^ ]*\\) \\(.*\\)" rest intern 1 arg string irchat-obarray ichan put topic nil irchat-w-insert irchat-300-buffer "*** IRCHAT: No topic is set\n"] 5 "\
Handle the 331 NOTOPIC"])
(defalias 'irchat-handle-332-msg #[(prefix rest) "\n\": \nO*\"\nO*	\n\n	#	\"\"*!" [string-match "[^ ]* \\([^ ]*\\) +:\\(.*\\)" rest intern 1 arg string irchat-obarray 2 topic ichan put irchat-w-insert irchat-300-buffer format "*** Topic: %s\n" message "IRCHAT: Strange 332 message"] 6 "\
Handle the 332 TOPIC."])
(defalias 'irchat-handle-341-msg #[(prefix rest) "\n\"= \n\f\fO*\n\f\fO*\n\f\fO*	\n!	#\"+!" [string-match "^\\([^ ]+\\) +\\([^ ]+\\) +\\([-#&0-9+][^ ]*\\)" rest 1 arg string 2 3 chnl nick who irchat-w-insert irchat-pick-buffer format "*** Inviting user %s to channel %s\n" message "Strange 341 message"] 7 "\
Handle the 341 INVITING."])
(defalias 'irchat-handle-351-msg #[(prefix rest) "\n\"= \n\f\fO*\n\f\fO*\n\f\fO*	\n\f	\n$\"+!" [string-match "[^ ]+ \\([^ ]+\\) :*\\([^ ]+\\)[ :]*\\(.*\\)" rest 1 arg string 2 3 comments machine version irchat-w-insert irchat-300-buffer format "*** Machine %s is running IRC version %s (%s)\n" message "IRCHAT: Strange 351 reply"] 8 "\
Handle the 351 VERSION."])
(defalias (quote irchat-handle-whoreply-msg) #[(prefix rest) "	\n\"" [irchat-handle-352-msg prefix rest] 3])
(defalias 'irchat-handle-352-msg #[(prefix rest) "\n\" \n\f\fO*\n\f\fO*\n\f\fO*\n\n\f\fO*\f\n\f\fO*\n\f\fO*!֘m ׂz ؘx ׂz \f\n!#&\".!" [string-match "\\([^ ]*\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) :[0-9]* ?\\(.*\\)" rest 1 arg string chnl 2 user 3 host 5 nick 6 oper 7 name irchat-pick-buffer chan-buffer irchat-w-insert format "%3s %10s %9s %-29s%s\n" "*" "Priv" "0" "<%s@%s>" irchat-clean-hostname message "IRCHAT: Strange 352 message"] 13 "\
Handle the 352 WHOREPLY."])
(defalias (quote irchat-handle-namreply-msg) #[(prefix rest) "	\n\"" [irchat-handle-353-msg prefix rest] 3])
(defalias 'irchat-count-words-from-string #[(str) "GZ\nW Ƃ W= H!ɘ3 5 \\5 Z ," [str 1 len i nil seen 0 words char-to-string " " t] 4 "\
count words from a string"])
(defvar irchat-353-nameschnl nil "\
")
(defvar irchat-353-nameslist "" "\
names list reply string")
(defvar irchat-353-namescount 0 "\
")
(defalias 'irchat-handle-353-msg #[(prefix rest) "\n\"\n\f\fO*\n\f\fO*!\nV@ P\n\\\"R X CB)\"3\f\fO*՘!O֘ GO\" \"NN \"   ! \" !C B !\"!@\"#$$#$!@$!A! $,?C#**\f\fO*g ՘?O֘[GO\"a\"NNv\" ! \"!C B !\"!@\"#$$#$!@$!A!$,?C#*.!" [string-match "[^ =*@]?[=*@] \\([^ ]*\\) :\\(.*\\)" rest 1 arg string chnl 2 users irchat-count-words-from-string numusers irchat-polling 0 irchat-353-nameslist irchat-353-nameschnl irchat-353-namescount assoc irchat-channel-alist origusers "^\\([^ ]*\\) \\(.*\\)" user "" "@" intern irchat-obarray u chnls irchat-waited-for irchat-greet-user irchat-greet-author irchat-author-nickname prin1-to-string irchat-nick-alist list thing uthing item put message "IRCHAT: Strange 353 message"] 8 "\
Handle the 353 (NAMREPLY) message.   If we are just polling the server,
don't display anything."])
(defalias 'irchat-handle-361-msg #[(prefix rest) "\n\". \n\f\fO*\n\f\fO*\n#\"*!" [string-match "[^ ]+ \\([^ ]+\\) +:\\(.*\\)" rest 1 arg string 2 message who irchat-w-insert irchat-300-buffer format "You just KILLED %s. %s\n" "IRCHAT: Strange 361 reply"] 7 "\
Handle the 361 KILLDONE."])
(defalias (quote irchat-handle-364-msg) #[(prefix rest) "\n\", \f\n	O*\n	O*#\"!" [string-match "^\\([^ ]+\\) +\\([^ ]*\\) +[^ ]* +:\\(.*\\)" rest irchat-w-insert irchat-300-buffer format "%-30s%s\n" 2 arg string 3 message "IRCHAT: Strange 364 message"] 9])
(defun irchat-handle-365-msg (prefix rest) "\
Handle the 365 ENDOFLINKS." nil)
(defalias 'irchat-handle-366-msg #[(prefix rest) "ZW Â \n!ɘ\" ʂ$ U0 ̂< U; ͂< %\"É)" [irchat-polling 1 level 0 irchat-w-insert irchat-pick-buffer irchat-353-nameschnl format "%9s: (%d user%s): %s\n" "*" "Priv" irchat-353-namescount "s" "" irchat-353-nameslist nil] 9 "\
Handle the 366 ENDOFNAMES."])
(defalias 'irchat-handle-367-msg #[(prefix rest) "\n\"0 \n\f\fO*\n\f\fO*!#\"*!" [string-match "[^ ]* \\([^ ]*\\) \\([^ ]*\\)" rest 1 arg string 2 regexp chnl irchat-w-insert irchat-pick-buffer format "*** %s has been banned on %s\n" message "IRCHAT: Strange 367 message"] 7 "\
Handle the 367 BAN."])
(defun irchat-handle-368-msg (prefix rest) "\
Handle the 368 ???????." nil)
(defalias 'irchat-handle-369-msg #[(prefix rest) "" [nil irchat-recursing-whowas] 1 "\
Handle the 369 WHOWAS."])
(defalias 'irchat-handle-371-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "^\\([^ ]+\\) +:?\\(.*\\)" rest 2 arg string msg irchat-w-insert irchat-300-buffer format "*** %s\n" message "IRCHAT: Strange 371 message"] 6 "\
Handle the 371 INFO."])
(defalias 'irchat-handle-372-msg #[(prefix rest) "\n\"\n\f\fO*\"\")" [string-match "^\\([^ ]+\\) +:?\\(.*\\)" rest 2 arg string msg irchat-w-insert irchat-300-buffer format "*** %s\n"] 6 "\
Handle the 372 MOTD."])
(defalias 'irchat-handle-381-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "^\\([^ ]+\\) +:\\(.*\\)" rest 2 arg string message irchat-w-insert irchat-300-buffer format "OPER: %s\n" "IRCHAT: Strange 381 reply"] 6 "\
Handle the 381 YOUREOPER. ."])
(defalias 'irchat-handle-382-msg #[(prefix rest) "\n\"\n\f\fO*\n\f\fO*\n#\"*" [string-match "^\\([^ ]+\\) +:\\(.*\\)" rest 1 arg string 2 msg name irchat-w-insert irchat-300-buffer format "*** %s: %s\n"] 7 "\
Handle the 382 REHASHING."])
(defalias 'irchat-handle-391-msg #[(prefix rest) "\n\" \n\f\fO*\"\")!" [string-match "^\\([^ ]+\\) +\\(.*\\)" rest 2 arg string time irchat-w-insert irchat-300-buffer format "*** Server time: %s\n" message "IRCHAT: Strange 391 message"] 6 "\
Handle the 391 TIME."])
(defalias 'irchat-handle-400-msgs #[(number prefix rest) "\n\"d \n\f\fO*\n\f\fO*\n\f\fO*	\n˘@ \"\"b 	˘U \n#\"b \n	$\"+\"" [string-match "[^ ]* \\([^ :]*\\) *\\([^ :]*\\) *:\\(.*\\)" rest 1 arg string 2 3 msg target2 target1 "" irchat-w-insert irchat-400-buffer format "*** Error: %s\n" "*** Error: %s (%s)\n" "*** Error: %s %s (%s)\n" message "IRCHAT: Strange %s reply" number] 8 "\
Generic handler for 4?? messages. This is called if no specific handler exists"])
(byte-code "\"\"\"\"" [defalias irchat-handle-401-msg #[(prefix rest) "\n\". \n\f\fO*\n\f\fO*\"\"*!" [string-match "[^ ]+ \\([^ ]+\\) +:\\(.*\\)" rest 1 arg string 2 error name irchat-change-nick-of nil irchat-send "WHOWAS %s" message "IRCHAT: Strange 401 reply"] 5] irchat-handle-406-msg #[(prefix rest) "\n\"  \n\f\fO*\"\")" [string-match "[^ ]+ \\([^ ]+\\) +:\\(.*\\)" rest 1 arg string nickorchan irchat-change-nick-of nil message "IRCHAT: No such user %s"] 4] irchat-handle-412-msg #[(prefix rest) "!" [message "IRCHAT: No text to send"] 2] irchat-iterate-nick #[(nick) "\n\"G^O\n \n\"!  *" [format "%s_" nick fmt 0 9 new irchat-iterate-nick "_%s"] 5]] 3)
(defalias 'irchat-handle-433-msg #[(prefix rest) "= !\"ǉq \n\"; O*W \"V O*W !#*" [irchat-nick-accepted ok irchat-iterate-nick irchat-real-nickname old-irchat-nickname irchat-send "NICK %s" sent irchat-Command-buffer beep irchat-old-nickname string-match "^\\([^ ]+\\) +\\([^ ]+\\) +:\\(.*\\)" rest 2 arg string "^ *\\([^ ]+\\) :.*" 1 "UNKNOWN (Could not figure out, contact developers)" nick message "IRCHAT: Nickname %s already in use.  Choose a new one with %s." substitute-command-keys "\\[irchat-Command-nickname]"] 6 "\
Handle the 433 reply (nickname already in use)"])
(byte-code "\"\"!!\"" [defalias irchat-handle-482-msg #[(prefix rest) "!" [message "IRCHAT: You are not a channel operator"] 2] irchat-handle-500-msgs #[(number prefix rest) "\n\"d \n\f\fO*\n\f\fO*\n\f\fO*	\n˘@ \"\"b 	˘U \n#\"b \n	$\"+\"" [string-match "[^ ]* \\([^ :]*\\) *\\([^ :]*\\) *:\\(.*\\)" rest 1 arg string 2 3 msg target2 target1 "" irchat-w-insert irchat-500-buffer format "*** Error: %s\n" "*** Error: %s (%s)\n" "*** Error: %s %s (%s)\n" message "IRCHAT: Strange %s reply" number] 8] require irchat-dcc irchat-caesar irchat-Command-describe-briefly #[nil "!!" [message substitute-command-keys "Type \\[describe-mode] for help"] 3]] 3)
(defalias 'irchat-Command-redisplay #[(&optional center) "	@!\f 	@!	@! 	@!	!8  3  8 !q!d\"" [irchat-frozen irchat-D-buffer irchat-freeze-toggle irchat-ownfrozen irchat-ownfreeze-toggle "-" irchat-freeze-indicator nil irchat-ownfreeze irchat-ownfreeze-indicator irchat-get-buffer-window irchat-Dialogue-buffer one-window-p irchat-configure-windows display-buffer set-window-point] 3 "\
Un-freezes and re-selects the Dialogue buffer in another window.
   With argument, recenter with that argument." "P"])
(byte-code "\"\"\"\"" [defalias irchat-Command-pollnames #[nil "	G\\	\"" [irchat-polling irchat-channel-alist mapcar #[(channel) "\n@\"" [irchat-send "NAMES %s" channel] 3]] 3] irchat-Command-find-timestamp #[nil "p\f!e#\" `\\		`{\")d#8 `			`{P)	!\n!+" ["" range obuffer switch-to-buffer irchat-Dialogue-buffer re-search-backward "^*** Time: " t 10 start nil format "%s   ---   " re-search-forward message] 4 nil nil] irchat-Command-keepalive #[nil " ?	 !" [irchat-server-opened irchat always] 2] irchat-compose-servertimestring #[(s) "O\nO\n	\"A@\"A@OOO&." [(("Mon" "Monday") ("Tue" "Tuesday") ("Wed" "Wednesday") ("Thu" "Thursday") ("Fri" "Friday") ("Sat" "Saturday") ("Sun" "Sunday")) w (("Jan" "January") ("Feb" "February") ("Mar" "March") ("Apr" "April") ("May" "May") ("Jun" "June") ("Jul" "July") ("Aug" "August") ("Sep" "September") ("Oct" "October") ("Nov" "November") ("Dec" "December")) m nil wdat mnam s 0 3 wabb 4 7 mabb assoc format "%s %s %s %s %s" 8 10 20 24 11 16] 9]] 3)
(defvar irchat-last-timestamp-time nil "\
Last time timestamp was inserted")
(defvar irchat-last-timestamp-no-cons-p nil "\
Last timestamp was no-cons")
(byte-code "\"\"" [defalias irchat-Command-timestamp-if-interval-expired #[(&optional no-cons) " 	?0 \n0 \nV0 \f\" \f \"\nV0 *   " [no-cons irchat-last-timestamp-no-cons-p irchat-timestamp-interval 0 irchat-last-timestamp-time irchat-time-difference current-time irchat-save-vars-is-dirty irchat-Command-save-vars irchat-Command-timestamp] 3 nil nil] irchat-Command-timestamp #[nil "\n  C\"  \"\"		\"\")+ " [format "%s" irchat-timestamp-format irchat-format-time-function apply current-time-string stamp 0 irchat-timestamp-interval msg irchat-w-insert irchat-D-buffer "%s\n" current-time irchat-last-timestamp-time] 7 nil nil]] 3)
(defalias 'irchat-Command-send-message #[(message &optional crypt-type user-defined-key) " GV =  	\n, | \n̚C 	C 	#| \nϚU #| 	x 	#p t )| =  #Չ  \"#! !!  !!! #Չ   \"!\"\"!+͇!ʇ" [irchat-crypt-mode-active cleartext crypt-type message 0 irchat-command-buffer-mode chat irchat-current-chat-partner irchat-current-channel addr nil msg-encrypted-p encrypted t irchat-encrypt-message user-defined-key cipher msg irchat-send "PRIVMSG %s :%s" irchat-own-private-message format "%s %%s" irchat-format-string-e irchat-format-string substitute-command-keys "Type \\[irchat-Command-join] to start private conversation" beep "Type \\[irchat-Command-join] to join a channel" irchat-own-message "%s %%%%s" irchat-myformat-string-e irchat-myformat-string irchat-real-nickname "IRCHAT: NO text to send"] 7 "\
Send MESSAGE to current chat partner of current channel."])
(defalias 'irchat-enter-message #[(crypt-type &optional key) "y`	`{\n#) `dU%  y)*" [nil start message 0 irchat-Command-send-message crypt-type key 1 n newline] 4 "\
Enter the current line as an entry in the IRC dialogue on the
current channel." nil])
(byte-code "\"\"\"\"\"" [defalias irchat-Command-enter-message #[nil "!" [irchat-enter-message nil] 2 nil nil] irchat-Command-enter-message-encrypted #[nil "!)" [t irchat-crypt-mode-active irchat-enter-message encrypted] 2 nil nil] irchat-Command-enter-message-cleartext #[nil "!" [irchat-enter-message cleartext] 2 nil nil] irchat-Command-enter-message-opposite-crypt-mode #[nil "?!)" [irchat-crypt-mode-active irchat-enter-message nil] 2 nil nil] irchat-Command-enter-message-with-key #[(&optional encryption-key) "GV\f \"!" [encryption-key 0 irchat-enter-message user-defined-key cleartext] 3 nil (byte-code "BB\"*C" [nil t completion-ignore-case encryption-key completing-read "Encrypt message with key [RET for none]: " "" irchat-default-idea-key-list] 5)]] 3)
(defalias 'irchat-Dialogue-enter-message #[nil "	? ! 	! )" ["x" message "" read-string "> " irchat-Command-send-message] 3 "\
Ask for a line as an entry in the IRC dialogue on the current channel." nil])
(defalias 'irchat-Command-debug #[nil " ! !    !!!!" [irchat-debug-buffer nil other-window 1 delete-window -1 irchat-use-full-window delete-other-windows irchat-configure-windows split-window-horizontally irchat-get-buffer-create "*IRC Debugging*" switch-to-buffer] 2 "\
Start debugging irchat." nil])
(defalias 'irchat-Command-inline #[nil "y``\n	{ !+" [nil stop start message 0 newline irchat-send] 3 "\
Send current line as a message to the IRC server." nil])
(defalias 'irchat-Command-join #[(join-channel-var) "= C\f@	\n	U 	<9 	@\nJ 	CJ 	\nJ 	CA@	 -\"\f@		~ 	CBA@	k +\f \"    @@ @@* @@\"N@ A *\" \"  !\")" [irchat-command-buffer-mode chat append join-channel-var irchat-current-chat-partners list thing nil result item uthing irchat-current-chat-partner irchat-chat-partner-alist format "Chatting with %s" "No partner" irchat-channel-indicator irchat-set-crypt-indicator irchat-nick-alist found nicks s2 s1 intern irchat-obarray chnl t mapcar #[(elem) "	\n* 	ŉ" [join-channel-var elem s2 s1 irchat-current-channel t found] 3] irchat-current-channels irchat-current-channel "Channel %s" "No channel" irchat-invited-channel irchat-send "JOIN %s"] 7 "\
Join a channel or private conversation.
If user nicname is given, join the same set of channels as 
the specified user. 
If Command-buffer is in chat-mode, start private conversation 
with specified user." (byte-code "\f= \n%# \"%*C" [nil t completion-ignore-case join-channel-var irchat-command-buffer-mode chat irchat-completing-default-read "Start private conversation with: " irchat-nick-alist (lambda (s) t) irchat-privmsg-partner "Join channel: " append irchat-channel-alist (lambda (s) t) irchat-invited-channel] 7)])
(defalias 'irchat-Command-part #[(part-channel-var) "= \n\f@	Q <5 @	F CF 	F C\fA@ -@\n\f@z CB\fA@g +\n \n\"  \n\f@	 	 \f@\fA , \n\n\"" [irchat-command-buffer-mode chat part-channel-var irchat-current-chat-partners list thing nil result item uthing irchat-current-chat-partner irchat-chat-partner-alist format "Chatting with %s" "No partner" irchat-channel-indicator irchat-set-crypt-indicator irchat-current-channels irchat-current-channel irchat-send "PART %s"] 5 "\
Part a channel or private conversation." (byte-code "\f= \n%F \f@> CBA@) +%*C" [nil t completion-ignore-case part-channel-var irchat-command-buffer-mode chat irchat-completing-default-read "End private conversation with: " irchat-chat-partner-alist (lambda (s) t) irchat-current-chat-partner "Part channel: " irchat-current-channels list item result (lambda (s) t) irchat-current-channel] 7)])
(defalias 'irchat-Command-kill #[(kill-nickname-var &optional timeout) "{ pqdb\"	 \fp \f@A3 \f@A\"Υ= V YL \"V WV !\f@@#\"*\fA\f\" *\"\fq*	\"* @	\"	@\"\" V  _\"B	B	\"\"V \" !\")$" [kill-nickname-var "" nil buffer-read-only buf irchat-Dialogue-buffer irchat-w-insert irchat-D-buffer "*** Currently ignoring:" irchat-kill-nickname current-time time mylist irchat-time-difference 60 expiretime 0 format " (%d min)" " expired" expire " %s%s" "\n" lst key assoc-if #[(x) "	\n*" [x key s2 s1] 3] elem remassoc "*** No longer ignoring: %s.\n" timeout irchat-time-add "*** Ignoring %s" " for %d minutes.\n" ".\n" t irchat-save-vars-is-dirty] 7 "\
Ignore messages from this user. Username can be given as case insensitive
regular expression of form \".*@.*.sub.domain\". 
If already ignoring him/her, toggle.
If variable irchat-variables-file is defined and the file is writable, its
contents are updated future sessions." (byte-code "%ɘ+ \f\n\f\"*+ !!\f+D" [nil t completion-ignore-case timeout kill-nickname-var completing-read "Ignore nickname or regexp: " irchat-nick-alist (lambda (s) t) "" irchat-kill-nickname lst key assoc-if #[(x) "	\n*" [x key s2 s1] 3] string-to-int read-from-minibuffer "Timeout [RET for none]: "] 7)])
(defalias 'irchat-Command-send-action #[(&optional private) " \n\"%y``\n=3 !H \n{`dUC  y)T V \f#k \f$!s \f#!," [t nil stop start message completion-ignore-case private irchat-completing-default-read "To whom: " append irchat-nick-alist irchat-channel-alist (lambda (s) t) irchat-privmsg-partner 0 read-string "Action: " 1 n newline irchat-send "PRIVMSG %s :ACTION %s" irchat-current-channel irchat-own-private-message format "*** Action to %s: %s %s" irchat-real-nickname irchat-own-message "*** Action: %s %s"] 6 "\
Send action ctcp - if on empty line, ask for the message" (byte-code " C" [current-prefix-arg] 1)])
(defalias 'irchat-Command-kick #[(kick-nickname-var) "\n#" [irchat-send "KICK %s %s" irchat-current-channel kick-nickname-var] 4 "\
Kick this user out." (byte-code "%*C" [nil t completion-ignore-case kick-nickname-var completing-read "Kick out nickname: " irchat-nick-alist (lambda (s) t)] 7)])
(defalias 'irchat-Command-list #[(&optional channel) "	 \"= !\"" [channel irchat-send "LIST %s" irchat-current-channel - "LIST"] 3 "\
List the given channel and its topics.
If you enter only Control-U as argument, list the current channel.
With - as argument, list all channels." (byte-code " = Cȉ%)C" [current-prefix-arg - t completion-ignore-case completing-read "LIST channel: " irchat-channel-alist (lambda (s) t) nil] 6)])
(defalias 'irchat-Command-lusers #[nil "!" [irchat-send "LUSERS"] 2 "\
List the number of users and servers" nil])
(defalias 'irchat-Command-modec #[(change) "\n#" [irchat-send "MODE %s %s" irchat-current-channel change] 4 "\
Send a MODE command" "sMode for this channel: "])
(defalias 'irchat-Command-message #[(message-nick-var message &optional crypt-type-var &optional own-message-var) "\nÚ\f \fF \nŚ\" \" \f#F C \f#	\f< 	? \f)F \f\n\n#ω	i n \nn p \"} ~ \f#!*" [nil msg-encrypted-p crypt-type-var cleartext message encrypted message-nick-var t irchat-encrypt-message cipher msg irchat-privmsg-partner irchat-send "PRIVMSG %s :%s" irchat-own-private-message format "%s %%s" own-message-var irchat-format-string-e irchat-format-string] 7 "\
Send a private message to another user.  If you send a message that
is already encrypted use 'cleartext flag and put message as a cleartext
into own-message-var" (byte-code "	\"%\f\f\"!F+" [nil t completion-ignore-case crypt-type-var message-nick-var irchat-completing-default-read "Private message to: " append irchat-nick-alist irchat-channel-alist (lambda (s) t) irchat-privmsg-partner read-string format "Private message to %s: "] 6)])
(defalias 'irchat-Command-mta-private #[nil "	\n\"\f%\fy``\n{`dU1  y)\fGVE \f\f\"H !," [t nil stop start message completion-ignore-case irchat-completing-default-read "To whom: " append irchat-nick-alist irchat-channel-alist (lambda (s) t) irchat-privmsg-partner 0 1 n newline irchat-Command-message "IRCHAT: No text to send"] 6 "\
Send a private message (current line) to another user." nil])
(defalias 'irchat-Command-names #[(&optional channel) "	 \"= !\"" [channel irchat-send "NAMES %s" irchat-current-channel - "NAMES"] 3 "\
List the nicknames of the current IRC users on given channel.
With an Control-U as argument, only the current channel is listed.
With - as argument, list all channels." (byte-code " = Cȉ%)C" [current-prefix-arg - t completion-ignore-case completing-read "Names on channel: " irchat-channel-alist (lambda (s) t) nil] 6)])
(defalias 'irchat-Command-nickname #[(nick) "	!GU \f\n	\" \n\")" [irchat-read-nickname nick nickname 0 irchat-real-nickname irchat-old-nickname irchat-send "NICK %s" message "IRCHAT: illegal nickname \"%s\"; not changed"] 4 "\
Set your nickname." "sEnter your nickname: "])
(defalias 'irchat-Command-who #[(&optional expr) "	 \"= !\"" [expr irchat-send "WHO %s" irchat-current-channel - "WHO"] 3 "\
Lists tue users that match the given expression.
If you enter only Control-U as argument, list the current channel.
With - as argument, list all users." (byte-code " = Cȉ%)C" [current-prefix-arg - t completion-ignore-case completing-read "WHO expression: " irchat-channel-alist (lambda (s) t) nil] 6)])
(defalias 'irchat-Command-wait #[(nick &optional greeting) "\n\"# \n\"#" [put intern nick irchat-obarray irchat-waited-for t greeting irchat-greeting] 4 "\
Wait for NICK to enter IRC.  When this person appears, you will
be informed. If the optional argument GREETING is non-nil, it should 
be a string to send NICK upon entering." (byte-code "!\n\"!Ƙ \nD" [read-string "Wait for: " nick format "Message to send %s upon entering: " greeting "" nil] 5)])
(defalias 'irchat-Command-finger #[(finger-nick-var) "\n\"" [irchat-send "WHOIS %s" finger-nick-var] 3 "\
Get information about a specific user." (byte-code "%*C" [nil t completion-ignore-case finger-nick-var completing-read "Finger whom: " irchat-nick-alist (lambda (s) t)] 7)])
(defalias 'irchat-Command-topic #[(topic) "\n#" [irchat-send "TOPIC %s :%s" irchat-current-channel topic] 4 "\
Change topic of channel." "sTopic: "])
(defalias 'irchat-Command-invite #[(&optional invite-channel-var invite-nick-var) " 	\f#" [invite-channel-var irchat-current-channel irchat-send "INVITE %s %s" invite-nick-var] 4 "\
Invite user to channel." (list (if current-prefix-arg (let ((completion-ignore-case t)) (completing-read "Invite channel: " (mapcar (quote (lambda (x) (list x))) irchat-current-channels) (quote (lambda (s) t)) nil nil) nil)) (let ((completion-ignore-case t)) (completing-read "Invite whom: " irchat-nick-alist (quote (lambda (s) t)) nil nil)))])
(defalias 'irchat-Command-away #[(awaymsg) "\n\"\n" [irchat-send "AWAY :%s" awaymsg irchat-awaymsg] 3 "\
Mark/unmark yourself as being away." "sAway message: "])
(defalias 'irchat-Command-scroll-down #[nil "p !!!e! !  \n!!\n!*" [selected-window owindow obuffer select-window irchat-get-buffer-window irchat-Dialogue-buffer pop-to-buffer pos-visible-in-window-p message "Beginning of buffer" scroll-down] 3 "\
Scroll Dialogue-buffer down from Command-buffer." nil])
(defalias 'irchat-Command-scroll-up #[nil "p!!!d! db!  !!!)" [obuffer select-window irchat-get-buffer-window irchat-Dialogue-buffer pop-to-buffer pos-visible-in-window-p recenter 1 scroll-up] 3 "\
Scroll Dialogue-buffer up from Command-buffer." nil])
(defalias (quote irchat-Command-toggle-crypt) #[nil "	   p!" [irchat-crypt-mode-active nil t irchat-set-crypt-indicator switch-to-buffer] 2 nil nil])
(defalias 'irchat-Command-freeze #[nil "	@!\f  p!	@!" [irchat-frozen irchat-D-buffer "-" irchat-freeze-indicator "F" switch-to-buffer irchat-freeze-toggle] 2 "\
Toggle the automatic scrolling of the Dialogue window." nil])
(defalias 'irchat-Command-ownfreeze #[nil "	@!\f  p!?	@!" [irchat-ownfrozen irchat-D-buffer "-" irchat-ownfreeze-indicator "M" switch-to-buffer irchat-ownfreeze irchat-ownfreeze-toggle] 2 "\
Toggle the automatic scrolling of the Dialogue window when user sends messages." nil])
(defalias 'irchat-Command-quit #[(&optional quit-msg) "  	 !m !!<  2 	2 !\n\n\")< : \" I !Q   \\  !ډ" [irchat-server-opened quit-msg y-or-n-p "Quit IRCHAT? " message "" get-buffer-process irchat-server-buffer read-string "Signoff message: " quit-string irchat-send "QUIT :%s" irchat-signoff-msg irchat-clear-system irchat-names-timer irchat-cancel-timer irchat-use-full-window delete-other-windows irchat-close-server irchat-save-vars-is-dirty irchat-Command-save-vars run-hooks irchat-Exit-hook 0 irchat-polling nil irchat-current-channel irchat-obarray irchat-current-channels] 3 "\
Quit IRCHAT." "P"])
(defalias 'irchat-Command-generic #[(message) " !!!\"" [message "?" "*IRC Help*" princ "The following generic IRC messages may be of interest to you:\nTOPIC <new topic>		set the topic of your channel\nINVITE <nickname>		invite another user to join your channel\nLINKS				lists the currently reachable IRC servers\nSUMMON <user@host>		invites an user not currently in IRC\nUSERS <host>			lists the users on a host\nAWAY <reason>			marks you as not really actively using IRC\n				(an empty reason clears it)\nWALL <message>			send to everyone on IRC\nNAMES <channel>			lists users per channel\n" substitute-command-keys "Type \\[irchat-Command-redisplay] to continue" irchat-send "%s"] 4 "\
Enter a generic IRC message, which is sent to the server.
 A ? lists the useful generic messages." "sIRC Command: "])
(defalias 'irchat-Command-irc-compatible #[nil "i=\n !!" [0 call-interactively irchat-Command-generic self-insert-command 1] 2 "\
If entered at column 0, allows you to enter a generic IRC message to
be sent to the server.  For a list of messages, see irchat-Command-generic." nil])
(defalias 'irchat-Command-exec #[(command) "	\"`` W  q \")" [shell-command command t opoint mark irchat-Command-enter-message irchat-Command-buffer push-mark] 3 "\
Execute command, stdout to dialogue." "sShell Command: "])
(defalias 'irchat-Command-client-version #[(client-version-nick-var) "\f#" [client-version-nick-var irchat-query-client-nick irchat-send "PRIVMSG %s :%s" irchat-query-client-version] 4 "\
Ask about someones client version." (byte-code "%*C" [nil t completion-ignore-case client-version-nick-var irchat-completing-default-read "Whose client: " irchat-nick-alist (lambda (s) t) irchat-query-client-nick] 7)])
(defalias 'irchat-Command-client-userinfo #[(client-userinfo-nick-var) "\f#" [client-userinfo-nick-var irchat-query-client-nick irchat-send "PRIVMSG %s :%s" irchat-query-client-userinfo] 4 "\
Ask about someones client userinfo." (byte-code "%*C" [nil t completion-ignore-case client-userinfo-nick-var irchat-completing-default-read "Whose client: " irchat-nick-alist (lambda (s) t) irchat-query-client-nick] 7)])
(defalias 'irchat-Command-client-help #[(client-help-nick-var) "\f#" [client-help-nick-var irchat-query-client-nick irchat-send "PRIVMSG %s :%s" irchat-query-client-help] 4 "\
Ask about someones client help." (byte-code "%*C" [nil t completion-ignore-case client-help-nick-var irchat-completing-default-read "Whose client: " irchat-nick-alist (lambda (s) t) irchat-query-client-nick] 7)])
(defalias 'irchat-Command-client-clientinfo #[(client-clientinfo-nick-var) "\f#" [client-clientinfo-nick-var irchat-query-client-nick irchat-send "PRIVMSG %s :%s" irchat-query-client-clientinfo] 4 "\
Ask about someones client clientinfo." (byte-code "%*C" [nil t completion-ignore-case client-clientinfo-nick-var irchat-completing-default-read "Whose client: " irchat-nick-alist (lambda (s) t) irchat-query-client-nick] 7)])
(defalias 'irchat-Command-client-x-face #[(client-x-face-nick-var) "\f#" [client-x-face-nick-var irchat-query-client-nick irchat-send "PRIVMSG %s :%s" irchat-query-client-x-face] 4 "\
Ask about someones client x-face." (byte-code "%*C" [nil t completion-ignore-case client-x-face-nick-var irchat-completing-default-read "Whose client: " irchat-nick-alist (lambda (s) t) irchat-query-client-nick] 7)])
(defalias 'irchat-Command-client-generic #[(client-generic-nick-var) "\f%	\n	*   \f$" [client-generic-nick-var irchat-query-client-nick irchat-completing-default-read "What info: " irchat-query-client-alist (lambda (s) t) nil irchat-query-client-lastcommand "ping" s2 s1 current-time irchat-ctcp-ping-time irchat-send "PRIVMSG %s :%s%s" irchat-query-client-insert-to-generic] 7 "\
Ask about someones client clientinfo." (byte-code "%*C" [nil t completion-ignore-case client-generic-nick-var irchat-completing-default-read "Whose client: " irchat-nick-alist (lambda (s) t) irchat-query-client-nick] 7)])
(defalias 'irchat-Command-client-userinfo-from-minibuffer #[nil "\n\"" [read-from-minibuffer "New userinfo: " irchat-client-userinfo] 3 "\
Ask about someones client clientinfo." nil])
(defalias 'irchat-Command-client-userinfo-from-commandbuffer #[nil "y``\n	{`dU  y+" [nil stop start 0 irchat-client-userinfo 1 n newline] 2 "\
Ask about someones client clientinfo." nil])
(defalias 'irchat-Command-client-x-face-from-minibuffer #[nil "\n\"" [read-from-minibuffer "New X-Face: " irchat-client-x-face] 3 "\
Ask about someones client clientinfo." nil])
(defalias 'irchat-Command-client-x-face-from-commandbuffer #[nil "y``\n	{`dU  y+" [nil stop start 0 irchat-client-x-face 1 n newline] 2 "\
Ask about someones client clientinfo." nil])
(defalias 'irchat-Command-client-ping #[(client-help-nick-var) " #" [client-help-nick-var irchat-query-client-nick current-time irchat-ctcp-ping-time irchat-send "PRIVMSG %s :%s" irchat-query-client-ping] 4 "\
Ask about someones client help." (byte-code "%*C" [nil t completion-ignore-case client-help-nick-var irchat-completing-default-read "Whose client: " irchat-nick-alist (lambda (s) t) irchat-query-client-nick] 7)])
(defalias 'irchat-Command-send-file #[(name to-who) "\"!qed|! ed|!c)eb`d`\\^{$d`\\^b`dWf `\"UN !`d`\\^{$d`\\^b; #\"!!)" [get-buffer-create format "*IRC S_FILE_%s*" name insert-file nil str buffer-string irchat-quote-encode irchat-send "NOTICE %s :FILE START %s :%s" to-who 80 mod 800 1 sleep-for "NOTICE %s :FILE CONT %s :%s" "NOTICE %s :FILE END %s : " kill-buffer] 8 "\
Send a file to given  user" "fFile name: \nsTo who: "])
(defalias (quote irchat-Command-yank-send) #[(&optional howmany) "`@c`\nb`	W  q *" [nil end beg kill-ring-yank-pointer irchat-Command-enter-message irchat-Command-buffer] 2 nil nil])
(defalias 'irchat-Command-caesar-line #[(&optional n) "y`!\f!" [0 push-mark nil irchat-caesar-region n] 2 "\
*Caesar encrypt current line. Rotate optional N characters." nil])
(defalias 'get-word-left #[nil "`!`	{*" [nil point-now backward-word 1] 2 "\
Return word left from point."])
(defalias 'irchat-Command-complete #[nil "` \"!`\f|\n=( \n=, - \n-c" [t nil result word point-now completion-ignore-case get-word-left try-completion irchat-nick-alist backward-word 1] 4 "\
Complete word before point from userlist." nil])
(defalias 'irchat-Command-load-vars #[nil "	!\n! \f\n! ))" [expand-file-name irchat-variables-file file file-exists-p irchat-real-nickname nick load-file irchat-Command-reconfigure-windows] 2 "\
Load configuration from irchat-variables-file." nil])
(byte-code "\"\"\"" [defalias irchat-Command-save-vars #[nil "\n!!qeb#7 ɔ\nb#- \n\"!\nɕ|)= dbc ̉\f!\"!!,\fÉq +É" [find-file-noselect expand-file-name irchat-variables-file nil output-marker output-buffer re-search-forward "^;; Saved Settings *\n" move 0 p "^;; End of Saved Settings *\\(\n\\|\\'\\)" t error format "can't find END of saved state in %s" "\n" point-marker standard-output print-escape-newlines print-readably princ ";; Saved Settings\n" mapcar #[(var) "9 J>  D)E!R !=F AR @!!A* !* R !!Y !" [var prin1 setq val (t nil) quote eval progn princ "\n" "  " "xx"] 6] irchat-saved-forms ";; End of Saved Settings\n" save-buffer irchat-save-vars-is-dirty] 5 nil nil] irchat-Command-reconfigure-windows #[nil "	!\n!p5 \f5 !\f!!\n!\f![\\\\!*9 \n! G \n!J !+" [irchat-get-buffer-window irchat-Command-buffer irchat-Dialogue-buffer old-buffer dialogue-window command-window window-height d-height c-height delete-window pop-to-buffer enlarge-window irchat-configure-windows irchat-one-buffer-mode] 6 nil nil] irchat-Command-eod-buffer #[nil "p	!	qdb\nd\"q*" [irchat-get-buffer-window irchat-Dialogue-buffer dialogue-window saved-buffer set-window-point] 3 nil nil]] 3)
(defalias 'irchat-Command-private-conversation #[(arg) "=\n   !=) % \"7 Ȃ7 	6 	\"7 \f  !" [irchat-command-buffer-mode chat channel arg irchat-Command-join irchat-current-chat-partner format "Chatting with %s" "No partner" irchat-current-channel "Channel %s" "No channel" irchat-channel-indicator irchat-set-crypt-indicator set-buffer-modified-p buffer-modified-p] 3 "\
Toggle between private conversation mode and channel mode. 
User can then join and part to a private conversation as he would 
join or part to a channel. 

If there are no private conversations or argument is given user is 
prompted the partner/channel (return as partner/channel means toggle 
mode, the current channel and current chat partner are not altered)" (list (if current-prefix-arg (if (eq irchat-command-buffer-mode (quote chat)) (irchat-completing-default-read "Return to channel: " (append irchat-channel-alist irchat-nick-alist) (quote (lambda (s) t)) nil irchat-current-channel) (completing-read "Start private conversation with: " irchat-nick-alist (quote (lambda (s) t)) nil)) (if (eq irchat-command-buffer-mode (quote channel)) (if irchat-current-chat-partner irchat-current-chat-partner (completing-read "Start private conversation with: " irchat-nick-alist (quote (lambda (s) t)) nil)))))])
(defalias 'irchat-Command-push #[nil "= \nP\nGS\n8\n\f@4 4 \f@\fA , \n\f@\n <m @~ \nC\n~ ~ \nC\n\fA@R \n-B \"   !)PGS8\f@  \f@\fA ,K\f@\n2<@'\nC\n''\nC\n\fA@ \n-BE\"F  !)" [irchat-command-buffer-mode chat irchat-current-chat-partners chat-partner list thing uthing item irchat-current-chat-partner nil result format "Chatting with %s" "No partner" irchat-channel-indicator irchat-set-crypt-indicator set-buffer-modified-p buffer-modified-p irchat-current-channels channel irchat-current-channel "Channel %s" "No channel"] 6 "\
Select next channel or chat partner." nil])
(defalias 'irchat-Command-pop #[nil "=z \n@	\n\nY \n<; \n@L 	\nC	L \nL 	\nC	A@\n  	-C\"@n \n\"o   !)@	\n\n \n< \n@ 	\nC	 \n 	\nC	A@\n 	-C\"@\"  !)" [irchat-command-buffer-mode chat irchat-current-chat-partner chat-partner append irchat-current-chat-partners list thing nil result item uthing format "Chatting with %s" "No partner" irchat-channel-indicator irchat-set-crypt-indicator set-buffer-modified-p buffer-modified-p irchat-current-channel channel irchat-current-channels "Channel %s"] 6 "\
Select previous channel or chat partner." nil])
(defalias 'irchat-Command-ison #[(nick) "\n\"" [irchat-send "ISON %s" nick] 3 "\
IsON user." "sIsON: "])
(defalias 'irchat-Command-userhost #[(nick) "\n\"" [irchat-send "USERHOST %s" nick] 3 "\
Ask for userhost." "sUserhost nick(s): "])
(byte-code "\"\"!" [defalias irchat-Command-show-last-kill #[nil "p\fqdby`d{dbqdb	\"db!d\"q," [nil str buffer-read-only buf irchat-KILLS-buffer -1 irchat-Dialogue-buffer irchat-w-insert irchat-D-buffer set-window-point irchat-get-buffer-window] 3 nil nil] irchat-Command-toggle-private #[nil "	GZ	8C@!b t \f!! 	!!!\\\f!E !!Z!Y !!\fZ!	!- !  	!!ҏ	!))\"" [irchat-get-buffer-window irchat-P-buffer 1 irchat-private-window irchat-Command-buffer my-IN-win irchat-Dialogue-buffer my-OUT-win selected-window sw window-height INwh OUTwh delete-window select-window shrink-window err (byte-code " 	&  Z!!	!GZ8!\">  Z!	!GZ8!\"" [split-window-vertically irchat-swap-private shrink-window irchat-private-window-height window-height other-window 1 set-window-buffer irchat-get-buffer-window irchat-Dialogue-buffer irchat-get-buffer-create irchat-P-buffer] 5) ((args-out-of-range (message "IRCHAT: Command-window-toggle with too small window"))) irchat-w-insert irchat-D-buffer ""] 4 nil nil] provide irchat-commands] 3)
(defvar irchat-copyright "\n    $Id: irchat-copyright.el,v 3.2 1997/02/27 10:19:14 jsl Exp $\n    Internet Relay CHAT interface for GNU Emacs\n    Copyright (C) 1989 Tor Lillqvist\n \n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 1, or (at your option)\n    any later version.\n  \n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n  \n    You should have received a copy of the GNU General Public License\n    along with GNU Emacs; if not, write to the Free Software\n    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n  \n    Author's email address is <tml@hemuli.atk.vtt.fi>\n  \n    Following people have made major improvements to irchat. Also there\n    are numerous people who have given suggestions and improvements. If \n    you think your name should be included here, give us a note...\n	   Kai Keinnen		<kmk@iki.fi>\n	   Markku Jrvinen	<mta@cc.tut.fi>\n	   Jukka Partanen      	<jtp@iki.fi>\n	   Kim Nyberg          	<kny@iki.fi>\n	   Tero T. Mononen     	<tmo@iki.fi>\n\n    You can ftp the latest version from cs.hut.fi:/pub/irchat\n\n    There is a mailing list, irchat@cc.tut.fi for those interested\n    in developments in irchat. Mail irchat-request@cc.tut.fi if you\n    are interested in joining.\n\n    Current team is:\n	   Janne Liimatainen	<jsl@iki.fi>\n	   Tero T. Mononen     	<tmo@iki.fi>\n	   Kim Nyberg          	<kny@iki.fi>\n           Tomi Ollila          <too@iki.fi>\n	   Jukka Partanen      	<jtp@iki.fi>\n	   Timo J. Rinne	<tri@iki.fi>\n" "\
Basically GPL")
(byte-code "\"\"\"" [defalias irchat-quote-decode #[(string-to-decode) "!qed|\nceb\"eb\"eb\"eb\"ed{)" [get-buffer-create "*IRC DECODE*" string-to-decode replace-string "\\\\" "\\" "\\a" "" "\\n" "\n" "\\r" ""] 4 nil nil] irchat-quote-encode #[(string) "!qed|\nceb# c eb#3 !c! eb#H !c6 eb#] !cK eb#r !c` ed{)" [get-buffer-create "*IRC ENCODE*" string search-forward "\\" nil 1 "" delete-char -1 "\\a" "" "\\0" "\n" "\\n" "" "\\r"] 5 nil nil] irchat-ctl-a-action-msg #[(from chnl rest) "	\n* 	#\"	$\"" [chnl irchat-current-channel s2 s1 irchat-w-insert irchat-D-buffer format "*** Action: %s %s\n" from rest "*** Action to %s: %s %s\n"] 8]] 3)
(defalias 'irchat-ctl-a-msg #[(from chnl rest) "	\" 	\fO*	\fO*	\fO*	P	\n\"x \n\fO*\n\fO* \n\" \n\fO* \fQ!! ! E!= \fQ!! F! \f#!	." [nil left now right message rest-of-line hook string-match "^\\([^]*\\)\\([^]*\\)\\(.*\\)" rest 1 arg string 2 3 "^\\([^ ]*\\) \\(.*\\)" "^\\([^ ]*\\)" "errmsg" "Couldn't figure out what was said." boundp intern "irchat-ctl-a-" "-msg-hook" eval from t fboundp "-msg" fun chnl format "CLIENT %s query from %s (ignored)."] 6 "\
It's ctl-a request, act on it."])
(byte-code "\"\"\"\"\"\"\"\"\"" [defalias irchat-ctl-a-client-msg #[(from chnl rest) "\f \f\"5 \f	O*\f	O*V \f\"R \f	O*V 	Q!!r !r \nE!=? 	Q!! \nE! 	#!+" [nil message rest-of-line hook rest string-match "^\\([^ ]*\\) \\(.*\\)" 1 arg string 2 "^\\([^ ]*\\)" "errmsg" "Couldn't figure out what was said." boundp intern "irchat-ctl-a-" "-msg-hook" eval from t fboundp "-msg" fun format "IRCHAT: Unknown CLIENT message from %s \"%s\""] 6] irchat-ctl-a-version-msg #[(from chnl rest) " \"@ \fO*\"\f\"> \f\fO*\"@ \f&!*k \"!t #!+" [emacs-version nil "GNU-emacs" emacs-subtype m1 emacs-type string-match "\\(.*\\) of .*" format "%s" 1 arg string "\\(.*\\) (.*)" irchat-send "NOTICE %s :VERSION %s %s :%s for %s" from irchat-version chnl irchat-real-nickname s2 s1 message "CLIENT VERSION query from %s." "CLIENT VERSION query from %s (%s)."] 9] irchat-ctl-a-userinfo-msg #[(from chnl rest) "\n#\n\"!" [irchat-send "NOTICE %s :USERINFO %s" from irchat-client-userinfo message format "CLIENT USERINFO query from %s."] 4] irchat-ctl-a-clientinfo-msg #[(from chnl rest) "\"!\"!" [irchat-send format "NOTICE %s :CLIENTINFO :VERSION USERINFO CLIENTINFO X-FACE HELP ERRMSG" from message "CLIENT CLIENTINFO query from %s."] 4] irchat-ctl-a-help-msg #[(from chnl rest) "\"!\"!\"!\"!\"!\"!\"!" [irchat-send format "NOTICE %s :HELP :VERSION gives version of this client" from "NOTICE %s :HELP :USERINFO gives user supplied info (if any)" "NOTICE %s :HELP :CLIENTINFO gives commands this client knows" "NOTICE %s :HELP :X-FACE gives you user supplied X-Face (if exists)" "NOTICE %s :HELP :HELP gives this help message" "NOTICE %s :HELP :ERRMSG tells you your command was not valid" message "CLIENT HELP query from %s."] 4] irchat-ctl-a-comment-msg #[(from chnl rest) "\"!" [message format "CLIENT COMMENT query from %s." from] 4] irchat-ctl-a-xyzzy-msg #[(from chnl rest) "\n\"\n\"!" [irchat-send "NOTICE %s :Nothing happens.(xyzzy inactive)" from message format "CLIENT XYZZY query from %s."] 4] irchat-ctl-a-ping-msg #[(from chnl rest) " \f#\f\"!" [rest "" irchat-send "NOTICE %s :PING %s" from message format "CLIENT PING query from %s."] 4] irchat-ctl-a-x-face-msg #[(from chnl rest) "\n#\n\"!" [irchat-send "NOTICE %s :X-FACE %s" from irchat-client-x-face message format "CLIENT X-FACE query from %s."] 4]] 3)
(defalias 'irchat-ctl-a-notice #[(prefix rest) "\"4 	O*	O*W \"S 	O*W 	Q!!s !s \nE!=? 	Q!! \nE! 	\n$!+" [nil message rest-of-line hook string-match "\\([^ ]*\\) \\(.*\\)" rest 1 arg string 2 "\\([^ ]*\\)" "errmsg" "Couldn't figure out what was said." boundp intern "irchat-ctl-a-" "-notice-hook" eval prefix t fboundp "-notice" fun format "IRCHAT: Unknown ctl-a notice \":%s %s %s\""] 7 "\
Ctl-a notice."])
(byte-code "\"\"\"\"\"" [defalias irchat-ctl-a-file-notice #[(prefix rest) " \"\n\n\nO*\n\n\nO*\n\n\nO*\nQ!!c !c \fF!=? \nP!! \fF! \n\f%!,\"!" [irchat-file-accept nil message file-name rest-of-line hook string-match "^\\([^ ]*\\) \\([^ ]*\\) :\\(.*\\)" rest 1 arg string 2 3 boundp intern "irchat-file-" "-hook" eval prefix t fboundp fun format "IRCHAT: Unknown FILE message \":%s %s %s %s\"" "FILE: %s sending, set irchat-file-accept and ask to resend"] 8] irchat-file-start #[(prefix name data) "\"!qed|\fc)" [get-buffer-create format "*IRC R_FILE_%s*" name data] 4] irchat-file-cont #[(prefix name data) "\"!qdb\fc)" [get-buffer-create format "*IRC R_FILE_%s*" name data] 4] irchat-file-end #[(prefix name data) "\"!qdb\fc ed|!c)eb	- !??Y !A \"\"!ed#!\"#\"!!)" [get-buffer-create format "*IRC R_FILE_%s*" name data nil str buffer-string irchat-quote-decode irchat-file-confirm-save y-or-n-p "Save file?" file-exists-p "~/.irchat" shell-command "mkdir %s" expand-file-name ".irchat" "$HOME" write-region file-name-nondirectory "%s(%s)" prefix kill-buffer] 9] irchat-ctl-a-client-notice #[(prefix rest) "\"4 	O*	O*W \"S 	O*W 	Q!!s !s \nE!=? 	Q!! \nE! 	\n$!+" [nil message rest-of-line hook string-match "^\\([^ ]*\\) \\(.*\\)" rest 1 arg string 2 "^\\([^ ]*\\)" "errmsg" "Couldn't figure out what was said." boundp intern "irchat-client-" "-notice-hook" eval prefix t fboundp "-notice" fun format "IRCHAT: Unknown CLIENT notice \":%s %s %s %s\""] 7]] 3)
(defvar irchat-client-message "CLIENT@%s: %s\n" "\
*Message in which info of other clients is displayed.")
(byte-code "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"!\"\"\"\"\"\"\"\"\"" [defalias irchat-client-version-notice #[(prefix rest) "/ \"$ \f	\n		O*#\"\f#\"\"!" [rest string-match "^\\([^:]*\\):\\(.*\\)" irchat-w-insert irchat-D-buffer format irchat-client-message prefix 1 arg string message "Empty CLIENT version notice from \"%s\"."] 9] irchat-client-clientinfo-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-client-userinfo-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-client-help-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-client-x-face-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-client-errmsg-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-client-comment-notice #[(from rest) "\"!" [message format "CLIENT COMMENT query from %s." from] 4] irchat-client-ping-notice #[(from rest) " 	@@Z_	A@A@Z\\#\")" [current-time timenow irchat-w-insert irchat-Dialogue-buffer format "PING time from %s: %ds\n" from irchat-ctcp-ping-time 65536] 8] irchat-ctl-a-version-notice #[(prefix rest) " \"$ \f	\n		O*#\"\"t \f	\n		O*	\n		O*	\n		O*	\n		O*%#\"\f#\"\"!" [rest string-match "^\\([^:]*\\):\\(.*\\)" irchat-w-insert irchat-D-buffer format irchat-client-message prefix 1 arg string "^\\([^ ]*\\) \\([^ ]*\\) \\([^ ]*\\) \\(.*\\)" "%s %s for %s: %s" 2 3 4 message "Empty CLIENT version notice from \"%s\"."] 14] irchat-ctl-a-clientinfo-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-ctl-a-userinfo-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-ctl-a-help-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-ctl-a-errmsg-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-ctl-a-x-face-notice #[(prefix rest) "	\f#\"" [irchat-w-insert irchat-D-buffer format irchat-client-message prefix rest] 6] irchat-ctl-a-comment-notice #[(from rest) "\"!" [message format "CLIENT COMMENT query from %s." from] 4] irchat-ctl-a-ping-notice #[(from rest) " 	@@Z_	A@A@Z\\#\")" [current-time timenow irchat-w-insert irchat-Dialogue-buffer format "PING time from %s: %ds\n" from irchat-ctcp-ping-time 65536] 8] require irchat-filter irchat-handle-error-msg #[(prefix rest) "\n\"" [message "IRC error: %s" rest] 3] irchat-ifrest #[(rest &optional quote) "GU	  \"!\"" [rest 0 "" quote regexp-quote format " (%s)"] 4] irchat-handle-channel-msg #[(prefix rest) "\f \n Ƃ \"	 \n4 D #\"D D #\"\")" [rest "0" ispart prefix irchat-real-nickname irchat-current-channel "No channel" format "Channel %s" irchat-channel-indicator irchat-set-crypt-indicator irchat-ignore-changes irchat-w-insert irchat-D-buffer "%s%s has left this channel\n" irchat-change-prefix "%s%s has joined this channel\n" irchat-change-nick-of] 6] irchat-handle-nick-msg #[(prefix rest) "	\n\"\n\"	\"N#	\"#	& \n\n	\n$\"" [irchat-change-nick-of prefix rest put intern irchat-obarray chnl nil irchat-real-nickname irchat-w-insert irchat-D-buffer format "%s%s is now known as %s\n" irchat-change-prefix] 7] irchat-handle-notice-msg #[(prefix rest) "i \"i O*O*O*p	\n\fqdb\"\"	q\f\nGUc ւe \n%\",\"?O*O*!:!\"@#\"A@$\"8%\"8'\"8(*(%#욃 %.\" *P*#욃$0121**$0#P*#욄+40'$\"'*#P.;*@7S0S\"?0\"g0\";w\"w\"0O*$\"0#@ \"ЁA O*#\"." [irchat-shorten-kills string-match "Notice[: -]*Received KILL message for \\([^.]*\\)\\. From \\([^ ]*\\) Path: \\([^ ]*\\) ?\\(.*\\)" rest 1 arg string 2 4 buf reason killer killed irchat-KILLS-buffer irchat-w-insert irchat-K-buffer format "%s\n" irchat-D-buffer "%s%s KILLed %s %s\n" irchat-notice-prefix 0 "-No reason supplied-" nil msg-encrypted-p msg-suspicious-p msg-garbled-p msg-fingerprint msg-timestamp "^\\([^:][^:]*:\\)\\(.*\\)$" tail head irchat-encrypted-message-p irchat-decrypt-message clear stat nick time 3 msg fprint "" warn t success irchat-hex-timestamp-valid irchat-crypt-timestamp-tolerance " [Invalid timestamp!]" prefix s2 s1 " [Invalid sender \"%s\" != \"%s\"]" irchat-C-buffer "-%s- %s [%s]\n" "%s%s" irchat-ignore-extra-notices "as being away" "\\(.*\\)" irchat-ctl-a-notice irchat-ignore-fakes ".*Notice.*Fake:.*" ".*Notice -- \\(.*\\)" "%s%s: %s\n" irchat-handle-privmsglike-msg "^\\([^ ]*\\) :\\(.*\\)" "%s%s\n"] 10] irchat-handle-ping-msg #[(prefix rest) "!! " [irchat-send "PONG yourself" irchat-Command-timestamp-if-interval-expired t irchat-maybe-poll] 2] irchat-handle-pong-msg (lambda (prefix rest)) irchat-handle-privmsg-msg #[(prefix rest) " \n\" \f\"?%\f\"# # !\f\"\f\fO*\fO*!k \f !@A@888!#\f!䚃 &\" #P#䚃 ()(* ##P#䚄 -%\"##.\f0Q\"#\f4424Q\"#\f3456Q#,?#\"d#?#;=()(*?@ ?A  C\"A  #=()(*BC \fDE\"#\" F()(*tGH GI\"JJNKLK@LMNN)MN)K@NKAKN.RO !C \fFPHQ\"#\" O !C \fhRjS\"#\" GH GI\"JJNKLK@LMNNMNK@NKAKN.O !C \fTU##\" O !C \fVW##\"X p!#=()(*?#Y Z \".	" [prefix irchat-ignore-this-p irchat-userathost irchat-msg-from-ignored rest string-match "" irchat-beep-on-bells beep t "^\\([^ ]+\\) :\\(.*\\)" nil msg-encrypted-p msg-suspicious-p msg-garbled-p msg-fingerprint msg-timestamp 1 arg string chnl 2 temp case-fold-search irchat-encrypted-message-p irchat-decrypt-message clear stat nick time 3 msg 4 fprint "" warn success irchat-hex-timestamp-valid irchat-crypt-timestamp-tolerance " [Invalid timestamp!]" s2 s1 format " [Invalid sender \"%s\" != \"%s\"]" irchat-w-insert irchat-C-buffer "<%s -> %s> %s [%s]\n" "%s%s" irchat-crypt-ignore-defected " :" irchat-crypt-ignore-suspicious irchat-current-message-timestamp irchat-current-message-fingerprint irchat-current-message-suspicious-p irchat-current-message-encrypted-p irchat-run-message-hook-types irchat-privmsg-cleartext-hook "\\(.*\\)" irchat-ctl-a-msg irchat-away-indicator "A" irchat-real-nickname "%s (%s)" irchat-format-time-function apply current-time-string irchat-P-buffer "%s %s\n" irchat-format-string1-e irchat-format-string1 irchat-current-channel user intern irchat-obarray u list thing uthing item irchat-pick-buffer irchat-format-string2-e irchat-format-string2 irchat-format-string4-e irchat-format-string4 irchat-format-string3-e irchat-format-string3 irchat-format-string5-e irchat-format-string5 irchat-get-buffer-window message "IRCHAT: A private message has arrived from %s"] 9] irchat-handle-privmsglike-msg #[(prefix rest &optional msg-encrypted-p) " \n\" \f\"?\f\"\f	O*\f	O*\f\"N #ј?* x z \"#\" *\"  N!\"!@\"#$$ #$ !@$!A! $. ! & '\"#\"!()\"#\"\"  N!\"!@\"#$$V#$V!@$!A!;$.|!o*q+##\"!,-##\"+" [prefix irchat-ignore-this-p irchat-userathost irchat-msg-from-ignored rest string-match "^\\([^ ]+\\) :\\(.*\\)" 1 arg string 2 t case-fold-search temp chnl "\\(.*\\)" irchat-ctl-a-msg "" irchat-real-nickname s2 s1 irchat-w-insert irchat-D-buffer format "%s %s\n" msg-encrypted-p irchat-format-string0-e irchat-format-string0 irchat-current-channel user intern irchat-obarray u list thing uthing item irchat-pick-buffer irchat-format-string2-e irchat-format-string2 irchat-format-string4-p irchat-format-string4 irchat-format-string3-p irchat-format-string3 irchat-format-string5-e irchat-format-string5] 9]] 3)
(defalias 'irchat-handle-wall-msg #[(prefix rest) "	\f P $\"" [irchat-w-insert irchat-D-buffer format "%s%s %s\n" irchat-broadcast-prefix prefix "from " "" rest] 7 "\
Handle the WALL message."])
(defalias 'irchat-handle-wallops-msg #[(prefix rest) " \n  $\"p	\nqdb5 P6 $\"	q)" [irchat-show-wallops irchat-w-insert irchat-D-buffer format "%s%s: %s\n" irchat-wallops-prefix prefix "UNKNOWN" rest buf irchat-WALLOPS-buffer irchat-W-buffer "%s%s %s\n" "from " ""] 7 "\
Handle the WALLOPS message."])
(defalias 'irchat-handle-quit-msg #[(prefix rest) "N 	? \"\"\n!#\n!$!#%+N \n!$\"\"" [irchat-ignore-changes irchat-compress-changes format " \\(has\\|have\\) left IRC%s" irchat-ifrest rest t text "^%s.*%s$" regexp-quote irchat-change-prefix match "%s%s has left IRC%s\n" prefix default irchat-w-replace irchat-D-buffer ", %s have left IRC%s" irchat-w-insert irchat-change-nick-of nil] 10 "\
Handle the QUIT message."])
(defalias 'irchat-handle-topic-msg #[(prefix rest) "\n\": \n\f\fO*\n\f\fO*	?8 !%\"*!" [string-match "\\([^ :]*\\)[: ]*\\(.*\\)" rest 1 arg string 2 topic chnl irchat-ignore-changes irchat-w-insert irchat-pick-buffer format "%sNew topic on channel %s set by %s: %s\n" irchat-change-prefix prefix message "IRCHAT: Strange TOPIC"] 9 "\
Handle the TOPIC message."])
(defalias 'irchat-handle-mode-msg #[(prefix rest) "? \"J 	\n		O*	\n		O*GSHUD OE g \" 	\n		O*  \"!\f$\f%\f!\"%+ \f!\f%\" !*" [irchat-ignore-changes " " "" str chnl string-match "\\([^ ]*\\) :*\\(.*\\)" rest 1 arg string 2 32 0 -1 " :\\(.*\\)" irchat-compress-changes format "\n" text "^%sNew mode for %s set by %s: " regexp-quote irchat-change-prefix prefix match "%sNew mode for %s set by %s: %s\n" default irchat-w-replace irchat-pick-buffer ", %s\n" irchat-w-insert message "IRCHAT: Strange MODE"] 9 "\
Handle the MODE message."])
(defalias 'irchat-handle-kick-msg #[(prefix rest) "\n\"I\n\f\fO*\n\f\fO*\n\f\fO*	\n	%\n!\n%\"\n@ <| @ C  CA@a -@ \"  \n!\"\"\"\"N@< @CCA@ -#+G$	6\n@E\n\"%\"+!" [string-match "^\\([^ ]*\\) \\([^ ]*\\) *:\\(.*$\\)" rest 1 arg string 2 3 match3 match2 match1 irchat-real-nickname irchat-w-insert irchat-pick-buffer format "%sYou were kicked off channel %s by %s (%s).\n" irchat-change-prefix prefix irchat-current-channels list thing nil result item uthing irchat-current-channel "Channel %s" "No channel" irchat-channel-indicator irchat-set-crypt-indicator chnl user intern irchat-obarray u put irchat-D-buffer "%s%s has kicked %s out%s\n" "" " from channel %s" message "IRCHAT: Strange KICK."] 11 "\
Handle the KICK message."])
(byte-code "\"\"\"\"\"!\"\"\"\"" [defalias irchat-handle-invite-msg #[(prefix rest) "\n\"' \n\f\fO*#\"\f)!" [string-match " :\\([^ ]+\\)" rest 1 arg string chnl irchat-w-insert irchat-D-buffer format "*** %s invites you to channel %s\n" prefix irchat-invited-channel message "IRCHAT: Strange INVITE"] 7] irchat-handle-kill-msg #[(prefix rest) "\n\"$ \n\f\fO*#\")( ! " [string-match "[^ ]+ +:\\(.*\\)" rest 1 arg string path irchat-w-insert irchat-D-buffer format "*** IRCHAT: You were killed by %s. Path: %s. RIP\n" prefix message "IRCHAT: strange KILL" "No channel" irchat-channel-indicator irchat-set-crypt-indicator] 7] irchat-handle-join-msg #[(prefix rest) "\n\" \n\f\fO*0 \n	B	\n\"\f  \nИ? OҘ_ GO\"e \"NNz \"   !\" !CB@ !!  ! @!A !,? C#***#3$#\n!\"')!'#*),\n%-\n!*-',\n$%+3\n!),\n%\"\"" [string-match "\\([^ ]*\\) .*" rest 1 arg string prefix irchat-real-nickname irchat-current-channel irchat-current-channels format "Channel %s" irchat-channel-indicator irchat-set-crypt-indicator chnl user "" 0 "@" intern irchat-obarray u chnls irchat-waited-for irchat-greet-user irchat-greet-author irchat-author-nickname assoc prin1-to-string irchat-nick-alist list thing uthing item put irchat-ignore-changes irchat-compress-changes " \\(has\\|have\\) joined channel %s" regexp-quote text "^%s.* .*%s$" irchat-change-prefix match "%s%s (%s) has joined channel %s\n" irchat-userathost default irchat-w-replace irchat-pick-buffer ", %s (%s) have joined channel %s" irchat-w-insert irchat-change-nick-of] 11] irchat-handle-part-msg #[(prefix rest) "\n\" \n\f\fO* \n	\n	@\fl <N @_ \fC\f_ _ \fC\f	A	@3 \f-@ \"    \n!\"!#\n$\n!\n#%+ \n!\n$\"\n#$$&\"''#'N	\n	@\f9<@,\fC\f,,\fC\f	A	@ \f-#)*\"" [string-match "\\([^ ]*\\) .*" rest 1 arg string prefix irchat-real-nickname irchat-current-channels list thing nil result item uthing irchat-current-channel format "Channel %s" "No channel" irchat-channel-indicator irchat-set-crypt-indicator irchat-ignore-changes irchat-compress-changes " \\(has\\|have\\) left channel %s" regexp-quote text "^%s.*%s$" irchat-change-prefix match "%s%s has left channel %s\n" default irchat-w-replace irchat-pick-buffer ", %s have left channel %s" irchat-w-insert chnl user intern irchat-obarray u put irchat-change-nick-of] 10] irchat-pick-buffer #[(chnl) "( ( \f( \f@@\"\" \f@A@\fA \n0 \n2 +" [irchat-buffer-preferences nil result found mylist chnl string-match t irchat-D-buffer] 3] require irchat-filter irchat-ignore-this-p #[(nick uah) " = @A \n@A\" ŉW6 @@\"\n\f@@\"\"A) *\"P \")" [irchat-kill-nickname current-time time mylist irchat-time-difference 1 expiretime 0 remassoc t irchat-save-vars-is-dirty irchat-w-insert irchat-D-buffer format "*** Ignore timeout for %s expired.\n" nil killit mapcar #[(kill) "	@\n\" É" [string-match kill nick t killit] 3] #[(kill) "	@\n\" É" [string-match kill uah t killit] 3]] 6] irchat-own-message #[(message) "\n!\"\"?' \n!@!\"@!)" [irchat-w-insert irchat-pick-buffer irchat-current-channel format "%s\n" message irchat-ownfreeze chan-buffer irchat-freeze-toggle ""] 5] irchat-own-private-message #[(message) "	\f\"\"" [irchat-w-insert irchat-P-buffer format "%s\n" message] 5] irchat-send #[(&rest args) "\n\"% @@@A@#A )P\nGVF \nG\"!F  \n\"*\f\"y \f\"u \fO*y ډ*" [apply format args nil ditem item irchat-send-convert-list conv-list irchat-replace-in-string "" sndstr len 512 message "Protocol message too long (%d).  Truncated." irchat-beep-on-bells beep process-send-string irchat-server-process string-match "^list" "\\(^list\\) \\(.+\\)" 2 arg string irchat-channel-filter ""] 5]] 3)
(defalias 'irchat-clean-hostname #[(hostname) " \" Q *" [match-data data ((store-match-data data)) string-match "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+" hostname "[" "]"] 3 "\
Return the arg HOSTNAME, but if is a dotted-quad, put brackets around it."])
(defun irchat-current-nickname nil "\
Our current nickname." irchat-real-nickname)
(byte-code "\"\"" [defalias irchat-replace-in-string #[(str regexp newtext) "\n\" \f$!\fq \fceb#6 ǉ#$ ed\"\f!+" [string-match "XEmacs" emacs-version replace-in-string str regexp newtext t get-buffer-create "*replace-in-string*" nil res buf erase-buffer re-search-forward replace-match buffer-substring-no-properties kill-buffer] 6] irchat-scroll-if-visible #[(window) " d\"" [window set-window-point] 3]] 3)
(defalias 'irchat-completing-default-read #[(prompt table predicate require-match initial-input) "	 \f	# \f\"%\n˘) 	) 	+ \n)" [completing-read initial-input format "%s(default %s) " prompt "%s" table predicate require-match nil default-read ""] 7 "\
completing-read w/ default argument like in 'kill-buffer'"])
(byte-code "\"\"\"" [defalias irchat-greet-user #[(user chnl) "	\n\"N6 !		ʘ ˂! 	P#	N###)" [intern user irchat-obarray u irchat-greeting beep t message "IRCHAT: %s has entered! (%s)" chnl "0" "on no channel yet" "on channel " irchat-send "PRIVMSG %s :%s" put irchat-waited-for nil] 6] irchat-greet-author #[nil "\f  &" [nil irchat-greet-author irchat-send "PRIVMSG %s :%s <%s@%s> is using irchat version %s" irchat-author-nickname user-full-name user-login-name irchat-system-fqdname irchat-version] 7] irchat-change-nick-of #[(old new) "	\n\"\f  \fr \fB\nBr 	\n@	\n	m 	<O 	@\n` 	C` 	\n` 	CA@	4 -)" [assoc old irchat-nick-alist pair new nil list thing result item uthing] 5]] 3)
(defalias 'irchat-convert-seconds #[(time) "	!å \næ \n\få\" \fæ# \fƥ3 Ʀ4 U?M VK ̂L #U?e Vc ̂d #\fU?} \fV{ ̂| #\n\"\n  R." [string-to-int time seconds 60 minutes hours 24 days 0 format "%d day%s, " 1 "s" "" ds "%d hour%s, " hs "%d minute%s " ms "%d seconds" ss] 6 "\
Convert seconds to printable string."])
(defalias (quote irchat-msg-from-ignored) #[(prefix rest) "p\n#\"*Ǉ" [buf irchat-w-insert irchat-I-buffer format "%s::%s\n" prefix rest t] 6])
(defalias 'irchat-window-height #[(win) "!\n \n!\n!" [fboundp window-displayed-height win window-height] 2 "\
Get the visible window height portably with GNU-Emacs and XEmacs."])
(defalias 'irchat-time-difference #[(t0 t1) "@	@Z_A@	A@Z\\" [t1 t0 65536] 3 "\
Difference in seconds of two `three integer lists' returned by current-time function."])
(defalias 'irchat-time-add #[(t0 t1) "@A@	\\¥\\A@	\\¦E" [t0 t1 65536 0] 3 "\
Add t1 seconds to time t0. t0 is in `three integer lists'-format returned by current-time function."])
(defalias 'irchat-generate-hex-timestamp #[(&optional time) " \n  \n@\nA@#)" [time current-time x format "%04x%04x"] 4 "\
Generate timestamp string as hexadecimal"])
(defalias 'irchat-hex-timestamp-valid #[(timestamp limit) ";	 \"??H O!O!E \"\fVF \fWG \f[VG ͂G +" [timestamp string-match "^[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$" irchat-hex-to-int 0 4 t1 8 t2 irchat-time-difference current-time diff limit t] 4 "\
Is TIMESTAMP valid within LIMIT?"])
(defalias 'irchat-hex-to-int #[(x) "\n\"- \nGW* \f_\n!\\\\ \f+ʇ" [string-match "^[0-9a-fA-F][0-9a-fA-F]*$" x 0 r l i 16 irchat-hex-digit-to-int 1 -1] 5 "\
Convert a HEX-STRING like ffff to the decimal integer"])
(defalias 'irchat-hex-digit-to-int #[(x) "U U ćU ƇU  ȇU( ʇU0 ̇U8 ·U@ ЇUH ҇UP ԇU\\ U^ ׇUj Ul ڇUx Uz ݇U U U U U U 瘃 蘃 ć阃 Ƈꘃ ȇ똃 ʇ옃 ̇혃 · Ї ҇ ԇ ׇڇ݇*,8:FH" [x 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 97 65 10 98 66 11 99 67 12 100 68 13 101 69 14 102 70 15 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "a" "A" "b" "B" "c" "C" "d" "D" "e" "E" "f" "F" -1] 2 "\
Convert single HEX-DIGIT (char or string) to integer"])
(byte-code "!\n M! M! M!( M!!; O!\f\fUM MMh  \"` MMh MM!" [fboundp remassoc #[(key lst) "	G\nV% \nZ	8@! B) *" [nil lst i r 0 1 current key] 3] assoc-if #[(pred lst) "\n  \f\n@@D! \n@ \nA 	)" [nil r lst eval pred] 4] << #[(x n) "V \n\\Z \n" [n 0 x 1] 3] >> #[(x n) "V \nåZ \n" [n 0 x 2 1] 3] provide irchat-misc boundp irchat-emacs-major-version string-to-number emacs-version 0 2 18 irchat-start-timer (lambda (function interval) "Timers are not supported under emacs 18." nil) irchat-cancel-timer (lambda (timer) "Timers are not supported under emacs 18." nil) string-match ".*Lucid.*" #[(timer) "	!" [delete-itimer timer] 2 "Cancel timer."] #[(function interval) "\n $" [interval start-itimer "IRCHAT" function] 5 "Add timer function." nil] #[(timer) "	!" [cancel-timer timer] 2 "Cancel timer."] #[(func interval) "\n \n\"\n$" [t timer-dont-exit interval run-at-time format "%d sec" (lambda (f) (run-at-time "1 sec" nil f)) func] 5 "Add timer function." nil] require irchat-filter] 4)
(defvar irchat-msg-list (quote (channel error invite linreply msg namreply nick ping pong privmsg quit topic wall whoreply kill wallops mode kick part join 200 203 204 205 206 209 211 212 213 214 215 216 217 218 219 301 311 312 313 314 315 317 318 321 322 323 331 332 341 351 352 353 361 364 365 366 367 368 371 372 381 382 391 401 402 403 411 412 421 431 432 433 441 451 461 462 463 464 465 471 472 473 474 481 482 491)) "\
A list of the IRC messages and numeric reply codes irchat can handle.")
(byte-code "\n\"! ! ! !( ##" [mapcar #[(sym) "!Q!!RF!!Q!!RF!" [eval defvar intern "irchat-" prin1-to-string sym "-hook" nil "*A hook that is executed when the IRC " "message \"" "\" is received.\nThe hook function is called with two arguments, PREFIX and REST-OF-LINE.\nIt should return non NIL if no further processing of the message is to be\ncarried out." "irchat-after-" "*A hook that is executed after the IRC " "\" has been received and handled.\nThe hook function is called with two arguments, PREFIX and REST-OF-LINE.\nIt should return non NIL if no further processing of the hook is to be\ncarried out."] 8] irchat-msg-list boundp irchat-Command-mode-map nil irchat-Dialogue-mode-map irchat-Client-query-map irchat-Crypt-map put irchat-Command-mode mode-class special irchat-Dialogue-mode] 4)
(defvar irchat-Client-query-keys (quote (("v" irchat-Command-client-version) ("u" irchat-Command-client-userinfo) ("h" irchat-Command-client-help) ("c" irchat-Command-client-clientinfo) ("g" irchat-Command-client-generic) ("p" irchat-Command-client-ping) ("x" irchat-Command-client-x-face) ("X" irchat-Command-client-x-face-from-minibuffer) ("" irchat-Command-client-x-face-from-commandbuffer) ("U" irchat-Command-client-userinfo-from-minibuffer) ("" irchat-Command-client-userinfo-from-commandbuffer))) "\
Key definition table for Client-query-map")
(defvar irchat-Dialogue-keys (quote (("" scroll-down) (" " scroll-up) ("$" end-of-buffer) ("/" irchat-Command-generic) (">" end-of-buffer) ("<" beginning-of-buffer) ("a" irchat-Command-away) ("f" irchat-Dialogue-freeze) ("M" irchat-Dialogue-ownfreeze) ("i" irchat-Command-invite) ("j" irchat-Command-join) ("l" irchat-Command-load-vars) ("s" irchat-Command-save-vars) ("m" irchat-Dialogue-enter-message) ("n" irchat-Command-names) ("o" other-window) ("p" irchat-Command-part) ("P" irchat-Command-toggle-private) ("r" irchat-Command-reconfigure-windows) ("x" irchat-Dialogue-tag-line) ("t" irchat-Command-find-timestamp) ("T" irchat-Command-timestamp) ("w" irchat-Command-who) ("" irchat-Command-message))) "\
Key definition table for Dialogue mode")
(defvar irchat-Crypt-keys (quote (("t" irchat-Command-toggle-crypt) ("k" irchat-Command-set-default-key) ("a" irchat-Command-add-new-key) ("d" irchat-Command-delete-key))) "\
Key definition table for crypt keys (Dialogue and Command mode).")
(defvar irchat-Command-keys (quote (("g" irchat-Command-dcc-receive) ("" irchat-Command-send-action) ("s" irchat-Command-dcc-send) ("G" irchat-Command-dcc-list) ("" irchat-Command-enter-message) ("\n" irchat-Command-enter-message) ("" irchat-Command-enter-message-opposite-crypt-mode) ("" irchat-Command-enter-message-opposite-crypt-mode) ("F" irchat-Command-send-file) ("" irchat-Client-query-prefix) ("" irchat-Command-debug) ("	" irchat-Command-ison) ("\f" irchat-Command-redisplay) ("" irchat-Command-names) ("" irchat-Command-caesar-line) ("" irchat-Command-userhost) ("" irchat-Command-yank-send) ("" irchat-Command-scroll-down) (" " irchat-Command-scroll-up) ("!" irchat-Command-exec) ("2" irchat-Command-private-conversation) ("a" irchat-Command-away) ("c" irchat-Command-inline) ("f" irchat-Command-finger) ("" irchat-Command-freeze) ("M" irchat-Command-ownfreeze) ("i" irchat-Command-invite) ("j" irchat-Command-join) ("" irchat-Command-part) ("k" irchat-Command-kill) ("" irchat-Command-kick) ("l" irchat-Command-list) ("L" irchat-Command-load-vars) ("S" irchat-Command-save-vars) ("m" irchat-Command-message) ("" irchat-Command-modec) ("n" irchat-Command-nickname) ("p" irchat-Command-mta-private) ("q" irchat-Command-quit) ("r" irchat-Command-reconfigure-windows) ("t" irchat-Command-topic) ("T" irchat-Command-timestamp) ("" irchat-Command-find-timestamp) ("P" irchat-Command-toggle-private) ("u" irchat-Command-lusers) ("" irchat-Command-scroll-up) ("w" irchat-Command-who) ("W" irchat-Command-wait) ("" irchat-Command-scroll-down) ("|" irchat-Command-show-last-kill) ("/" irchat-Command-generic) ("	" irchat-Command-complete) ("	" lisp-complete-symbol) ("$" irchat-Command-eod-buffer) (">" irchat-Command-push) ("<" irchat-Command-pop))) "\
Key definition table for Command mode")
(byte-code "\" ! \"M/  !\n\"G  \"#k  \"#k #\"" [defalias irchat-define-keys #[(map keys) "\n\"" [mapcar #[(keydef) "	\n@\nA@#" [define-key map keydef] 4] keys] 3] irchat-Client-query-map define-prefix-command make-keymap irchat-Client-query-keys irchat-Client-query-prefix irchat-Dialogue-mode-map suppress-keymap irchat-Dialogue-keys irchat-Crypt-map make-sparse-keymap irchat-Crypt-keys define-key "%" irchat-Command-mode-map irchat-Command-keys "%" irchat-want-traditional "/" irchat-Command-irc-compatible irchat-read-nickname #[(str) "G^O" [str 0 9] 4]] 4)
(defalias 'irchat-start-server #[(&optional confirm) " ?m 	 	=  \"	1 	=1 1 	\"!		=@ 	\nP!	˘I  \"\"m ;i GVi !\"" [irchat-server-opened confirm always irchat-server read-string "IRC server: " irchat-ask-for-nickname irchat-read-nickname "Enter your nickname: " irchat-nickname irchat-grow-tail "" system-name message "Connecting to IRC server on %s..." irchat-open-server irchat-service irchat-status-message-string 0 error "Cannot open IRC server on %s"] 4 "\
Open network stream to remote irc server.
If optional argument CONFIRM is non-nil, ask the host that the server
is running on."])
(defalias 'irchat-open-server #[(host &optional service) " ! \" !#  !+ !; !;  %I _ \"^ \\O)\"! \"\"\"\"    \f*" [host getenv "IRCSERVER" nil status "" irchat-status-message-string irchat-open-server-internal service irchat-send "USER %s %s %s :%s" "IRCUSER" user-real-login-name "IRCHOST" irchat-system-fqdname irchat-server "IRCNAME" "NAME" user-full-name irchat-real-nickname irchat-nickname string-match "[^_]_+$" match 0 1 irchat-old-nickname sent irchat-nick-accepted "NICK %s" t irchat-wait-for-response ".*" set-process-sentinel irchat-server-process irchat-sentinel set-process-filter irchat-filter irchat-close-server-internal "IRC server is not specified."] 8 "\
Open chat server on HOST.
If HOST is nil, use value of environment variable \"IRCSERVER\".
If optional argument SERVICE is non-nil, open by the service name."])
(defalias 'irchat-server-opened #[nil "	 !>" [irchat-server-process process-status (open run)] 2 "\
Return server process status, T or NIL.
If the stream is opened, return T, otherwise return NIL."])
(defalias 'irchat-open-server-internal #[(host &optional service) "" [err (byte-code "!q p! p	 $\f!)" [get-buffer-create " *IRC*" irchat-server-buffer kill-all-local-variables buffer-disable-undo erase-buffer open-network-stream "IRC" host service "irc" irchat-server-process irchat-server-name run-hooks irchat-server-hook] 6) ((error (byte-code "	A@!" [message err nil] 2)))] 3 "\
Open connection to chat server on HOST by SERVICE (default is irc)."])
(defalias 'irchat-close-server #[nil "	 	!= 	\"  !)" [((irchat-close-server-internal)) irchat-server-process irchat-sentinel process-sentinel set-process-sentinel nil irchat-server-opened irchat-send "QUIT"] 3 "\
Close chat server."])
(defalias 'irchat-close-server-internal #[nil " !\n \n!ĉ" [irchat-server-process delete-process irchat-server-buffer kill-buffer nil] 2 "\
Close connection to chat server."])
(defvar irchat-timers (byte-code "\nE\fED" [nil irchat-Command-pollnames irchat-pollnames-interval irchat-Command-keepalive irchat-keepalive-interval] 4) "\
Symbol name to store timer, timer-function and timer-interval.")
(defalias 'irchat #[(&optional confirm) "\n!! \n!!   Ǝ	!! \f!)" [file-exists-p expand-file-name irchat-variables-file load irchat-server-opened irchat-configure-windows ((byte-code "    \f\"  !)@!1 @!         \\ !f f !ߘr !!$\"%(\"(   Ƈ" [irchat-server-opened irchat-Command-quit format " {%s}" irchat-server mode-line-process nil buffer-read-only irchat-keep-buffers erase-buffer sit-for 0 irchat-frozen irchat-D-buffer "-" irchat-freeze-indicator irchat-freeze-toggle irchat-set-crypt-indicator irchat-init-crypt irchat-Dialogue-setup-buffer irchat-Private-setup-buffer irchat-KILLS-setup-buffer irchat-IGNORED-setup-buffer irchat-WALLOPS-setup-buffer irchat-CRYPT-setup-buffer irchat-configure-windows irchat-current-channels irchat-current-channel irchat-Command-join irchat-startup-channel irchat-awaymsg "" irchat-Command-away run-hooks irchat-Startup-hook make-vector irchat-obarray-size irchat-obarray mapcar #[(timer) "@\n @!A@8\"C" [timer irchat-cancel-timer irchat-start-timer 2] 4] irchat-timers irchat-maybe-poll irchat-Command-timestamp irchat-Command-describe-briefly] 3)) switch-to-buffer irchat-get-buffer-create irchat-Command-buffer irchat-Command-mode irchat-start-server confirm] 3 "\
Connect to the IRC server and start chatting.
If optional argument CONFIRM is non-nil, ask which IRC server to connect.
If already connected, just pop up the windows." "P"])
(defalias 'irchat-Command-mode #[nil "  \nCC	\f@!2 @!!H !\"!" [kill-all-local-variables irchat-set-crypt-indicator irchat-nickname irchat-nick-alist "--- " mode-line-modified irchat-Command-mode major-mode "IRCHAT Commands" mode-name nil irchat-privmsg-partner irchat-private-indicator "-" irchat-away-indicator irchat-freeze-indicator irchat-ownfreeze-indicator ("--- IRCHAT: Commands " irchat-private-indicator "{" irchat-channel-indicator "} " irchat-away-indicator irchat-crypt-indicator irchat-freeze-indicator irchat-ownfreeze-indicator "- " irchat-real-nickname "@" irchat-server " %-") mode-line-format irchat-frozen irchat-D-buffer irchat-freeze-toggle use-local-map irchat-Command-mode-map irchat-blink-parens make-variable-buffer-local blink-matching-paren set-default t run-hooks irchat-Command-mode-hook] 3 "\
Major mode for IRCHAT.  Normal edit function are available.
Typing Return or Linefeed enters the current line in the dialogue.
The following special commands are available:
For a list of the generic commands type \\[irchat-Command-generic] ? RET.
\\{irchat-Command-mode-map}" nil])
(defalias 'irchat-Dialogue-mode #[nil " \n!p!\f  q!" [kill-all-local-variables "--- " mode-line-modified irchat-Dialogue-mode major-mode "IRCHAT Dialogue" mode-name ("--- IRCHAT: Dialogue " "{" irchat-channel-indicator "} " irchat-away-indicator irchat-crypt-indicator irchat-freeze-indicator irchat-ownfreeze-indicator "-" (-3 . "%p") "-%-") mode-line-format use-local-map irchat-Dialogue-mode-map buffer-disable-undo irchat-keep-buffers erase-buffer irchat-Dialogue-buffer t buffer-read-only run-hooks irchat-Dialogue-mode-hook] 2 "\
Major mode for displaying the IRC dialogue.
All normal editing commands are turned off.
Instead, these commands are available:
\\{irchat-Dialogue-mode-map}"])
(defalias 'irchat-configure-windows #[nil "! ! \f!?d @ !#  	, \f!\f]!!\f!!\f!L  	?d  \f]Z!!!" [one-window-p t irchat-get-buffer-window irchat-Command-buffer irchat-Dialogue-buffer irchat-command-window-on-top switch-to-buffer irchat-use-full-window delete-other-windows irchat-one-buffer-mode split-window-vertically window-min-height irchat-command-window-height other-window 1 window-height] 4 "\
Configure Command mode and Dialogue mode windows.
One is for entering commands and text, the other displays the IRC dialogue."])
(byte-code "MM" [irchat-Dialogue-freeze irchat-Command-freeze irchat-Dialogue-ownfreeze irchat-Command-ownfreeze] 2)
(defalias 'irchat-Dialogue-tag-line #[nil "y`	`\"*" [nil start 0 kill-ring-save] 3 "\
Move current line to kill-ring." nil])
(defalias 'irchat-set-crypt-indicator #[nil " 	 	! Â  Ă ŉ" [irchat-crypt-mode-active irchat-current-channel irchat-crypt-address-has-default-key-p "C" "c" "-" irchat-crypt-indicator] 2 "\
Set crypt mode indicator"])
(defalias 'irchat-Dialogue-setup-buffer #[nil "	! 	!q )" [get-buffer irchat-Dialogue-buffer get-buffer-create irchat-Dialogue-mode] 2 "\
Initialize Dialogue mode buffer."])
(defalias 'irchat-Private-setup-buffer #[nil "	! 	!q )" [get-buffer irchat-Private-buffer get-buffer-create irchat-Dialogue-mode] 2 "\
Initialize Dialogue mode buffer for private messages."])
(defalias 'irchat-KILLS-setup-buffer #[nil "	!\f 	!q)" [get-buffer irchat-KILLS-buffer irchat-get-buffer-create] 2 "\
Initialize KILLS buffer."])
(defalias 'irchat-IGNORED-setup-buffer #[nil "	!\f 	!q)" [get-buffer irchat-IGNORED-buffer irchat-get-buffer-create] 2 "\
Initialize IGNORED buffer."])
(defalias 'irchat-WALLOPS-setup-buffer #[nil "	!\f 	!q)" [get-buffer irchat-WALLOPS-buffer irchat-get-buffer-create] 2 "\
Initialize WALLOPS buffer."])
(defalias 'irchat-CRYPT-setup-buffer #[nil "	! 	!q )" [get-buffer irchat-CRYPT-buffer irchat-get-buffer-create irchat-Dialogue-mode] 2 "\
Initialize CRYPT buffer."])
(defalias 'irchat-clear-system #[nil " ! ! ! !\f* \f!* \f!8 !8 !I !I !Z !Z !ɉ\n" [irchat-Command-buffer get-buffer bury-buffer irchat-Dialogue-buffer irchat-KILLS-buffer irchat-IGNORED-buffer irchat-WALLOPS-buffer irchat-debug-buffer nil "No channel" irchat-channel-indicator] 2 "\
Clear all IRCHAT variables and buffers." nil])
(defalias 'irchat-wait-for-response #[(regexp) "q 	2 eb!  ǉ\f !, ǉ\f   e`{	\nf 	e dby!W ǉA ! !@ +" [t wait status irchat-server-buffer irchat-accept-response looking-at "ERROR" nil "." irchat-status-message-string -1 regexp message "IRCHAT: Reading..." ""] 3 "\
Wait for server response which matches REGEXP."])
(defalias 'irchat-accept-response #[nil "	!>\"  !\"  !\"  ˏ" [process-status irchat-server-process (open run) irchat-reconnect-automagic error "IRCHAT: Connection closed." irchat-grow-tail irchat always errorcode (accept-process-output irchat-server-process) ((error (byte-code "A@\n @A\"" [errorcode "select error: Invalid argument" nil signal] 3)))] 3 "\
Read response of server. Only used at startup time"])
(byte-code "\"\"\"" [defalias irchat-maybe-poll #[nil " \"" [irchat-send "PING %s" system-name] 3] irchat-w-replace #[(buffer match defstring oldstring newstring) "	 < ~ @\n\f%A\n p!\"\"\f!!qdbD !\n#y \n#Q y\f#m #r \"\"} \"," [buffer irchat-w-replace match defstring oldstring newstring obuf intern format "%s" irchat-get-buffer-create irchat-obarray bufintern irchat-frozen frozen nil spoint get-buffer buffer-read-only previous-line irchat-compress-treshold re-search-forward t 0 replace-match irchat-w-insert ""] 7] irchat-w-insert #[(buffer string) "	 <  @\n\"A\n p!	\n  G !q )![ !!\n!!\"\"!q`	db} \n\" \nc	b!!  d\" db !ू S\\!Z\"`\"db)q !  !\n\"!\"b." [buffer irchat-w-insert string obuf nil bufintern get-buffer nbuf frozen spoint oldwstart oldwpoint irchat-check-buffers-if-interval-expired irchat-Command-timestamp-if-interval-expired irchat-get-buffer-create irchat-Dialogue-mode irchat-get-buffer-window window-start window-point intern format "%s" irchat-obarray irchat-frozen buffer-read-only irchat-is-message-ignored t win pos-visible-in-window-p vertical-motion irchat-scroll-step irchat-window-height 2 1 set-window-start set-window-point] 5]] 3)
(defalias 'irchat-get-buffer-create #[(name) "	\f C	\"!" [name irchat-buffer-list append get-buffer-create] 3 "\
Get or create buffer, keep track on its name so we can kill it."])
(byte-code "\"\"\"\"" [defalias irchat-freeze-toggle #[(buffer) "\f!\"\"N ## #*" [intern format "%s" get-buffer buffer irchat-obarray intern-buffer frozen buffer-frozen put nil t] 6 nil "b"] irchat-frozen #[(buffer) "\f!\"\"N)" [intern format "%s" get-buffer buffer irchat-obarray intern-buffer frozen] 6 nil "b"] irchat-ownfreeze-toggle #[(buffer) "\f!\"\"N ## #*" [intern format "%s" get-buffer buffer irchat-obarray intern-buffer ownfrozen buffer-ownfrozen put nil t] 6 nil "b"] irchat-ownfrozen #[(buffer) "\f!\"\"N)" [intern format "%s" get-buffer buffer irchat-obarray intern-buffer ownfrozen] 6 nil "b"]] 3)
(defvar irchat-last-checkbuffer-time nil "\
Last time buffers were checked.")
(byte-code "\"\"\"!!" [defalias irchat-check-buffers-if-interval-expired #[nil " V \n \n \"V  Ƈ" [irchat-checkbuffer-interval 0 irchat-last-checkbuffer-time irchat-time-difference current-time irchat-check-buffers t] 3] irchat-check-buffers #[nil "\nV: p6 @!q\n W/ 	 \nZbye`|)A \fq*) " [0 irchat-checkbuffer-interval irchat-buffer-maxsize irchat-buffer-list obuf buflist irchat-get-buffer-create buffer-size nil buffer-read-only irchat-buffer-defsize -1 current-time irchat-last-checkbuffer-time] 3] irchat-is-message-ignored #[(string buffer) "Ǎ\f+" [irchat-ignore-list nil t case-fold-search found mylist ignore (byte-code "	 \" Ɖ@	\n@<3 @@\n@A@	W @!S @C\"@\nA@	)W !A@<h A@ A@! A@C\" A@ !\n 	 \n \nA@\" 	 	\"  @@\" \"A ),A Ƈ" [buffer irchat-no-ignore-buffers throw ignore t mylist nil mymylist who str msg fboundp apply string msgstr message "Malformed ignore-list, no msg+str function." "Malformed ignore-list, no user function." string-match irchat-current-function mywho found] 5)] 3] provide irchat b64] 3)
(defconst b64-alphabet "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" "\
Alphabet used in b64 encoding")
(defvar b64-decode-vector nil "\
Vector used in b64 decoding.  Generated in run-time.")
(defalias 'b64-build-decode-vector #[nil "\"GW# I\\ I+" [make-vector 256 -1 b64-alphabet 0 i l v 1 61 -2] 4 "\
Generate b64-decode-vector from b64-alphabet"])
(defalias 'b64-encode-string #[(str) "G¥W __\\\n_\\\f\"\"\"\n\"\"\n\"\"\f\"\"\f\"!!!!\\.\f 	¦U __\\\n\"\"\"\n\"\"\n\"\"!!!ڰ-	¦U_\"\"\"!!R+," [str l 3 n 0 i "" r c0 1 c1 2 c2 >> e0 logior logand << 4 63 e1 6 e2 e3 char-to-string b64-alphabet "=" "=="] 8 "\
B64 encode STR"])
(defalias 'b64-decode-string #[(str) "  \nGĥ	ĦV  !WN\n_\n_\\\n_\\\n_\\Y Y Y Y \"\"\"\"\"\"\"\"\"\"\"	!!!R	+DYYYU\"\"\"\"\"\"\"\"	!!Q	*DY>Y>U>U>\"\"\"\"	!P	)D	\\,  	," [b64-decode-vector b64-build-decode-vector str l 4 n 0 i "" r message "b64-decode: Trailing garbage ignored" 1 2 3 e3 e2 e1 e0 logior logand << 255 >> 6 c2 c1 c0 char-to-string -2 nil] 8 "\
B64 decode STR"])
(provide (quote crc32))
(defalias 'crc32-region #[nil "  `{\n!\nG\f#\f*!" [mark-active mark s crc32-string crc message "Length = %d, CRC32 = %s" error "Mark is not set"] 4 "\
Calculate crc32 of the current region" nil])
(defalias 'crc32-buffer #[nil "ed{!G\n#\n*" [s crc32-string crc message "Length = %d, CRC32 = %s"] 4 "\
Calculate crc32 of the current buffer" nil])
(defconst crc32-lookup-table [(0 . 0) (30471 . 12438) (60942 . 24876) (39177 . 20922) (1901 . 50201) (28778 . 62607) (59747 . 42293) (40548 . 38307) (3803 . 34866) (31196 . 47268) (57557 . 59678) (38866 . 55688) (2486 . 19499) (32433 . 31933) (59320 . 11527) (37055 . 7569) (7607 . 4196) (27312 . 8434) (62393 . 29000) (33982 . 16862) (6874 . 54397) (28125 . 58603) (62676 . 46417) (33747 . 34247) (4972 . 38998) (25707 . 43200) (64866 . 63866) (35429 . 51692) (5121 . 23631) (25350 . 27865) (64015 . 15715) (36104 . 3573) (15214 . 8392) (19561 . 4190) (54624 . 16868) (41575 . 29042) (15363 . 58577) (19204 . 54343) (53773 . 34301) (42250 . 46443) (13749 . 43258) (17074 . 39020) (56251 . 51670) (44220 . 63808) (13016 . 27875) (17887 . 23669) (56534 . 3535) (43985 . 15705) (9945 . 12460) (20958 . 58) (51415 . 20864) (49104 . 24854) (8628 . 62645) (22195 . 50211) (53178 . 38297) (47293 . 42255) (10242 . 47262) (24325 . 34824) (50700 . 55730) (45323 . 59684) (12143 . 31879) (22632 . 19473) (49505 . 7595) (46694 . 11581) (30428 . 16784) (475 . 28934) (39122 . 8380) (61397 . 4138) (29105 . 34185) (1718 . 46367) (40895 . 58533) (59576 . 54323) (30727 . 51618) (3840 . 63796) (38409 . 43150) (57614 . 38936) (32618 . 3515) (2157 . 15661) (37220 . 27799) (58979 . 23553) (27499 . 20980) (7276 . 24930) (34149 . 12504) (62050 . 78) (27654 . 38381) (6913 . 42363) (33288 . 62657) (62735 . 50263) (26032 . 55750) (4791 . 59728) (35774 . 47338) (64697 . 34940) (25309 . 7647) (5594 . 11593) (36051 . 31987) (64468 . 19557) (19890 . 24920) (15029 . 20942) (41916 . 116) (54459 . 12514) (19167 . 42305) (15832 . 38359) (42193 . 50285) (54230 . 62715) (17257 . 59754) (13422 . 55804) (44391 . 34886) (55904 . 47312) (17412 . 11635) (13059 . 7653) (43530 . 19551) (56589 . 31945) (20485 . 28988) (9986 . 16810) (48651 . 4112) (51468 . 8326) (22376 . 46373) (8303 . 34227) (47462 . 54281) (52833 . 58527) (24286 . 63758) (10713 . 51608) (45264 . 38946) (51159 . 43188) (22963 . 15639) (11956 . 3457) (47037 . 23611) (49338 . 27821) (60856 . 33568) (39615 . 46006) (950 . 57868) (29873 . 53914) (60117 . 18233) (40402 . 30639) (1243 . 9749) (29660 . 5763) (58211 . 2834) (37988 . 15236) (3437 . 27198) (31338 . 23208) (58382 . 53003) (37641 . 65437) (2560 . 44583) (32007 . 40625) (61455 . 37700) (34568 . 41938) (7681 . 62056) (26886 . 49918) (63330 . 22365) (32869 . 26571) (6508 . 13937) (28267 . 1767) (65236 . 7030) (35283 . 11232) (4314 . 31322) (26589 . 19148) (63929 . 57199) (36542 . 61433) (6071 . 48707) (24752 . 36565) (54998 . 41960) (41425 . 37758) (14552 . 49860) (20447 . 62034) (53691 . 26609) (42684 . 22375) (16309 . 1757) (18610 . 13899) (55309 . 11226) (44810 . 6988) (13827 . 19190) (16644 . 31328) (57184 . 61379) (43111 . 57173) (12654 . 36591) (18025 . 48761) (52065 . 45964) (48230 . 33562) (9583 . 53920) (21096 . 57910) (52236 . 30613) (47883 . 18179) (8706 . 5817) (21765 . 9775) (50618 . 15294) (45757 . 2856) (11188 . 23186) (23731 . 27140) (49879 . 65447) (46544 . 53041) (11481 . 40587) (23518 . 44573) (39780 . 49840) (60515 . 61990) (30058 . 41884) (621 . 37642) (39945 . 1705) (60174 . 13887) (29191 . 26501) (1280 . 22291) (38335 . 19074) (58040 . 31252) (31665 . 11182) (3254 . 6968) (37586 . 36507) (58837 . 48653) (31964 . 61367) (3035 . 57121) (34515 . 53972) (61908 . 57922) (26845 . 46072) (8154 . 33646) (33214 . 5837) (63161 . 9819) (28592 . 30689) (6327 . 18295) (34824 . 23270) (65295 . 27248) (26118 . 15306) (4353 . 2908) (36709 . 40703) (63586 . 44649) (24939 . 65491) (5740 . 53061) (40970 . 57976) (55053 . 53998) (19972 . 33620) (14595 . 46018) (42855 . 9825) (53344 . 5879) (18793 . 18253) (15982 . 30683) (44753 . 27210) (55766 . 23260) (16607 . 2918) (14296 . 15344) (43452 . 44627) (57019 . 40645) (18354 . 53119) (12469 . 65513) (48573 . 61980) (51898 . 49802) (21427 . 37680) (9396 . 41894) (47824 . 13829) (52695 . 1683) (21726 . 22313) (9177 . 26559) (45926 . 31278) (50273 . 19128) (23912 . 6914) (10863 . 11156) (46091 . 48695) (49932 . 36513) (23045 . 57115) (11522 . 61325)] "\
Lookup table for crc32 routines")
(defalias 'crc32-^ #[(x1 x2) ":	 \f B\n: \n \nB\f@@\"\fAA\"*B" [x1 0 x2 b a logxor] 4 "\
Bitwise xor for crc32 routine"])
(defalias 'crc32-& #[(x1 x2) ":	 \f B\n: \n \nB\f@@\"\fAA\"*B" [x1 0 x2 b a logand] 4 "\
Bitwise xor for crc32 routine"])
(defalias 'crc32-mask-8bit #[(x) "	A\"" [logand x 255] 3 "\
Mask crc32 PAIR to 8bit integer"])
(defalias 'crc32-shr-8 #[(x) "@A	å	æ_\nå\"*B" [x h l 256 logior] 5 "\
Shift crc32 PAIR left 8 bits"])
(defalias 'crc32-string #[(str) "B	G\nW, \f	\n\"!\f!\"\n\\)	 \f@\fA#+" [0 str j l r crc32-mask-8bit crc32-^ i crc32-lookup-table crc32-shr-8 1 format "%04.4x%04.4x"] 5 "\
Calculate 32bit crc of STRING"])
(byte-code "!!!" [require b64 crc32 provide idea] 2)
(defalias 'idea-mask-16bit #[(x) "	\"" [logand x 65535] 3 "\
Mask X with 0xffff"])
(defalias 'idea-+ #[(a b) "	\n\\!" [idea-mask-16bit a b] 3 "\
16 bit add A and B.  Ignore overflow."])
(defalias 'idea-- #[(a b) "	\nZ!" [idea-mask-16bit a b] 3 "\
16 bit add A and B.  Ignore overflow."])
(defalias 'idea-/ #[(a b) "	\n!" [idea-mask-16bit a b] 3 "\
16 bit add A and B.  Ignore overflow."])
(defalias 'idea-% #[(a b) "	\n!" [idea-mask-16bit a b] 3 "\
16 bit add A and B.  Ignore overflow."])
(defalias 'idea-* #[(a b) "	\"	ĥ\"\"ĥ\"_	__\\\n	\n_\\!." [logand a 255 al 256 ah b bl bh r1 r2 idea-mask-16bit] 5 "\
16 bit multiply A and B.  Ignore overflow."])
(defalias 'idea-xor-blocks #[(a b) "	@\n@\"	A@\nA@\"	8\n8\"	8\n8\"F" [idea-^ a b 2 3] 7 "\
Perform logical xor operation between encryption blocks A and B"])
(defalias 'idea-& #[(a b) "\n!!\"" [logand idea-mask-16bit a b] 4 "\
16 bit AND A and B.  Ignore overflow."])
(defalias 'idea-| #[(a b) "\n!!\"" [logior idea-mask-16bit a b] 4 "\
16 bit OR A and B.  Ignore overflow."])
(defalias 'idea-^ #[(a b) "\n!!\"" [logxor idea-mask-16bit a b] 4 "\
16 bit XOR A and B.  Ignore overflow."])
(defalias 'idea-mul #[(a b) "	\"	ĥ\"\"ĥ\"_	__\\\n_	\n\"_\\\f\nĥ\fͥ\\\\\f!\fU` Uz \f\"\fWt ӂu \"! 	U \"! 	\"!.\n" [logand a 255 al 256 ah b bl bh r1 r2 r3 l 65536 h idea-mask-16bit 0 idea-+ idea-- 1] 6 "\
A * B in idea style."])
(defalias 'idea-random #[nil " !!" [idea-mask-16bit abs random] 3 "\
Generate 16 bit random value"])
(defalias 'idea-random-char #[nil " \"" [idea-& 255 idea-random] 3 "\
Generate 8 bit random value"])
(defalias 'idea-<< #[(x n) "V !W, W, V, \\!Z " [n 16 idea-mask-16bit x 0 1] 4 "\
Shift integer X left N bits"])
(defalias 'idea->> #[(x n) "V !W* W* V* ťZ " [n 16 idea-mask-16bit x 0 2 1] 3 "\
Shift integer X right N bits"])
(defalias (quote idea-additive-inverse) #[(x) "	[!" [idea-mask-16bit x] 2])
(defalias 'idea-multiplicative-inverse #[(n) "	!W \n \n\"\n\"	\n	U. \n\"! ǉ \n	\"\n	\"\n\"\"\nUh !҉9 	\n\"	\n\"	\n\"\"\n	U7 \n\"!҉< ++)" [idea-mask-16bit n x 2 idea-/ 65537 idea-% nil do-brk y hlp2 1 idea-- ret q hlp1 idea-+ idea-* t] 6 "\
16 bit multiplicative inverse of N"])
(defalias 'idea-shift-key-25bits-left #[(key) "\nA@\"\n8\"\"\n8\"\n8\"\"\n8\"\n8\"\"\n8\"\n8\"\"\n8\"\n8\"\"\n8\"\n8\"\"\n8\"\n@\"\"\n@\"\nA@\"\"" [idea-| idea-<< key 9 idea->> 2 7 3 4 5 6] 12 "\
Shift expanded (128bit) idea key left 25 bits"])
(defalias 'idea-expand-string-to-key #[(string) "GU	 GWF \f!P\f!P\f!P\f!P\f!P\f!P\f!P\f!P.G GPGɥ\nɥ_\fɥ_O!\nO!\fO!O!O!O!O!O!O!O!O!O!." [string 0 (0 0 0 0 0 0 0 0) 64 ss crc32-string s l x1 4 x2 2 x3 3 x4 v1 v2 v3 v4 idea-4hex-to-int k1 8 k2 k3 k4 k5 k6 k7 k8] 9 "\
Expand string to full 128bit key (list of 8 16bit ints)"])
(defalias 'idea-random-key #[nil "        " [idea-random] 8 "\
Generate random IDEA key (list of 8 16bit values)"])
(defalias 'idea-build-encryption-key #[(passphrase) "; ! <  !\f\"\f!		!\n\n!!\f\f!!\f@\fA@\f8\f8\f8\f8\f8\f8	@	A@	8	8	8	8	8	8\n@\nA@\n8\n8\n8\n8\n8\n8@A@888888\f@\fA@\f8\f8\f8\f8\f8\f8@A@888888@A@88F\n." [passphrase idea-expand-string-to-key error "IDEA key can be built from string or keylist." s1 idea-build-key-annotation "e" annotation idea-shift-key-25bits-left s2 s3 s4 s5 s6 s7 2 3 4 5 r1 6 7 r2 r3 r4 r5 r6 r7 r8 r9] 10 "\
Build idea encryption context from string or keylist (list of 8 16bit ints)"])
(defalias 'idea-build-decryption-key #[(passphrase) "	!\n@@\n@A@\n@8\n@8\n@8\n@8\nA@@\nA@A@\"	\n8@!\n8A@!\n88!\n88!\n88\n88\n8@!\n88!\n8A@!\n88!\n88\n88\n8@!\n88!\n8A@!\n88!\n88ǉ\n88\n8@!\n88!\n8A@!\n88!Ɖ\n88\n88\n8@!\n88!\n8A@!\n88!\n88\n88\n8@!\n88!\n8A@!ŉ\n88!\n88\n88\n8@!ĉ\n88!\n8A@!\n88!\nA@8\nA@8\nA@@!\nA@8!\nA@A@!\nA@8!\n@8\n@8\n@@!\n@A@!\n@8!\n@8!F	\n*" [idea-build-encryption-key passphrase k idea-build-key-annotation 2 3 4 5 "d" annotation idea-multiplicative-inverse 8 idea-additive-inverse 7 6] 14 "\
Build idea decryption context from string or keylist (list of 8 16bit ints)"])
(defalias 'idea-encryption-round #[(data subkey) "	@\n@\"	A@\nA@\"	8\n8\"	8\n8\"	\"	\"\f\n8\"\f\"\n8\"\"\"\"\"	\"F." [idea-mul data subkey v1 idea-+ v2 2 v3 3 v4 idea-^ v5 v6 4 v7 v8 5 v9 v10 v11 v12 v13 v14] 4 "\
Basic round of IDEA encryption.  Method 1."])
(defalias 'idea-final-transform #[(data subkey) "	@\n@\"	8\nA@\"	A@\n8\"	8\n8\"		F," [idea-mul data subkey v1 idea-+ 2 v2 v3 3 v4] 4 "\
Final transformation round of IDEA encryption."])
(defalias 'idea-hex-to-key #[(h) "	O!	O!	O!	O!	O!	O!	O!	O!\fV V V V V V \fV V \f ." [idea-4hex-to-int h 0 4 8 12 16 20 24 28 32 h8 h7 h6 h5 h4 h3 h2 h1 -1] 12 "\
Expand 32 character HEXSTRING to idea key."])
(defalias 'idea-4hex-to-int #[(hex) "	!	Ĝ!	Ɯ!	Ȝ!	VF VF VF 	VF __	_\\\\\\G ," [idea-hex-char-to-int hex 3 x0 2 x1 1 x2 0 x3 -1 16 256 4096] 5 "\
Convert four character long HEXSTRING to int"])
(defalias 'idea-crypt-transform-block #[(data key) "\n@\"A@\"8\"8\"8\"8\"8\"8\"8\"" [idea-final-transform idea-encryption-round data key 2 3 4 5 6 7 8] 11 "\
Make IDEA decryption transformation to DATA with key context KEY"])
(defalias 'idea-encrypt-block #[(data key) "<	  ; ! !\f\")" [key idea-build-encryption-key error "IDEA key has to be key-context or string." my-key idea-crypt-transform-block data] 3 "\
Encrypt single data block (4 * 16bits) with key"])
(defalias 'idea-decrypt-block #[(data key) "<	  ; ! !\f\")" [key idea-build-decryption-key error "IDEA key has to be key-context or string." my-key idea-crypt-transform-block data] 3 "\
Decrypt single data block (4 * 16bits) with key"])
(defalias 'idea-fixed-string-to-block #[(str) "\nÜ\"\nŜ\"\nƜ\"\nǜ\"\nȜ\"\nɜ\"\nʜ\"\n˜\"F" [idea-| idea-<< str 0 8 1 2 3 4 5 6 7] 7 "\
Convert 8 byte STRING to idea block"])
(defalias 'idea-block-to-fixed-string #[(block) "	@\"	@\"	A@\"	A@\"	8\"	8\"	8\"	8\"	\n\f!!\f!!\n!	!!!." [idea->> block 8 idea-& 255 2 3 c8 c7 c6 c5 c4 c3 c2 c1 char-to-string] 10 "\
Convert idea BLOCK to 8 byte string"])
(defalias 'idea-add-padding #[(str rndpad) "G	¦ZV  !  \" \"Z\"\"7  8 D  E Q  R ^  _ k  l x  y    !!!!!!!!OP." [str len 8 pad 0 idea-| idea-& rndpad idea-random-char 31 idea-<< 1 5 p1 p2 p3 p4 p5 p6 p7 p8 char-to-string ps] 10 "\
Add block padding to the STRING."])
(defalias 'idea-remove-padding #[(str) "GW? Ĝ\"\\	O)" [str len 8 idea->> 0 5 1] 5 "\
Remove block padding from the STRING"])
(defalias 'idea-cleartext-string-to-block-list #[(str &optional rndpad) "\n!\"G\fƥ\"	\fW6 	ƥ\n	\\O!I	\\	 ," [idea-add-padding idea-add-crc str rndpad l make-vector 8 0 r i idea-fixed-string-to-block] 8 "\
Convert cleartext STRING the list of encryption blocks (CLEARTEXT)"])
(defalias 'idea-ciphertext-string-to-block-list #[(str) "G	å\"	W- å\\O!I\\ +" [str l make-vector 8 0 r i idea-fixed-string-to-block] 8 "\
Convert ciphertext STRING the list of encryption blocks (CIPHERTEXT)"])
(defalias 'idea-ecb-encrypt-string #[(str key) "	!Ú !/ \nƚ 	/ \nǚ& \nȚ, 	!/ !\"G_\"W \"!_ӜI\\ڜI\\ۜI\\ܜI\\ݜI\\ޜI\\ߜI\\I*\\I !." [idea-legal-key key my-key-type key-complete-decryption error "KEY is not an encryption key." key-complete-encryption key-string key-intlist idea-build-encryption-key "Invalid key." my-key idea-cleartext-string-to-block-list str nil data l make-string 8 0 r i idea-block-to-fixed-string idea-encrypt-block so b 1 2 3 4 5 6 7 b64-encode-string] 5 "\
Encrypt STRING with KEY (either key context or string)"])
(defalias 'idea-ecb-decrypt-string #[(cipstr key) "	! \nGæU !Ț# !G ˚/ G ̚= ͚D !G !\n!G_\"W \"!_ĜI\\ۜI\\ܜI\\ݜI\\ޜI\\ߜI\\I\\I*\\_ !!$ $.)" [b64-decode-string cipstr str 8 0 idea-legal-key key my-key-type key-complete-encryption error "KEY is not an decryption key." key-complete-decryption key-string key-intlist idea-build-decryption-key "Invalid key." my-key idea-ciphertext-string-to-block-list data l make-string r i idea-block-to-fixed-string idea-encrypt-block so b 1 2 3 4 5 6 7 idea-check-crc idea-remove-padding ret] 5 "\
Decrypt STRING with KEY (either key context or string)"])
(defalias 'idea-cbc-encrypt-string #[(str key) "	!Ú !/ \nƚ 	/ \nǚ& \nȚ, 	!/ !\"G_\"W \"\"!_՜I\\ޜI\\ߜI\\I\\I\\I\\I\\I+\\M !." [idea-legal-key key my-key-type key-complete-decryption error "KEY is not an encryption key." key-complete-encryption key-string key-intlist idea-build-encryption-key "Invalid key." my-key idea-cleartext-string-to-block-list str t data (0 0 0 0) context l make-string 8 0 r i idea-encrypt-block idea-xor-blocks c idea-block-to-fixed-string b so 1 2 3 4 5 6 7 b64-encode-string] 5 "\
Encrypt STRING with KEY (either key context or string) cbc mode."])
(defalias 'idea-cbc-decrypt-string #[(cipstr key) "	!\nGæU!Ț# !G ˚/ G ̚= ͚D !G !\n!G_\"W \"\"!_ĜI\\ߜI\\I\\I\\I\\I\\I\\I+\\c !!( (.)" [b64-decode-string cipstr str 8 0 idea-legal-key key my-key-type key-complete-encryption error "KEY is not an decryption key." key-complete-decryption key-string key-intlist idea-build-decryption-key "Invalid key." my-key idea-ciphertext-string-to-block-list data (0 0 0 0) context l make-string r i c idea-block-to-fixed-string idea-xor-blocks idea-encrypt-block b so 1 2 3 4 5 6 7 idea-check-crc idea-remove-padding ret] 6 "\
Decrypt STRING with KEY (either key context or string) cbc mode."])
(defalias 'idea-add-crc #[(str) "	!	P" [crc32-string str] 2 "\
Add 32bit crc to STRING"])
(defalias 'idea-check-crc #[(str) "GW? GOO\n! \n)" [str 8 realstr 0 crc32-string] 3 "\
Check crc of the STRING.  Return string without crc if ok, otherwise '()"])
(defalias (quote idea-hex-char-to-int) #[(x) "Y X ZY\" X\" Z\\Y4 X4 Z\\ȇ" [x 48 57 97 102 10 65 70 -1] 2])
(defalias 'idea-build-key-annotation #[(key type) "\"@\"I@\"\"IA@\"IA@\"\"I8\"I8\"\"I8\"I8\"\"I8\"I8\"\"I8\"I8\"\"I8\"I8\"\"I8\"I8\"\"I!Q)" [make-string 16 0 r 15 idea-& key 255 14 idea->> 8 13 12 11 2 10 9 3 7 4 6 5 1 type ":" crc32-string] 7 "\
Build annotation table of KEY that is of TYPE \"e\" or \"\"."])
(defalias 'idea-legal-subkey-p #[(subkey) "< GU @ A@ 8 8 8 8 @X @Y A@X A@Y 8X 8Y 8X 8Y 8X 8Y 8X 8Y ȇ" [subkey 6 2 3 4 5 0 65535 t] 3 "\
Is SUBKEY a legal subkey structure?"])
(defalias 'idea-legal-finalkey-p #[(finalkey) "<f GUf @f A@f 8f 8f @Xf @Yf A@Xf A@Yf 8Xf 8Yf 8Xf 8Yf Ƈ" [finalkey 4 2 3 0 65535 t] 3 "\
Is FINALKEY a legal finalkey structure?"])
(defalias 'idea-legal-key #[(key) "; < GU @ A@ 8 8 8 8 8 8 @X @Y A@X A@Y 8X 8Y 8X 8Y 8X 8Y 8X 8Y 8X 8Y 8X 8Y ˇ<)GU)@!)A@!)8!)8!)8!)8!)8!)8!)8!)!К'ч҇Ӈ" [key key-string 8 2 3 4 5 6 7 0 65535 key-intlist 10 idea-legal-subkey-p idea-legal-finalkey-p idea-key-type encryption key-complete-encryption key-complete-decryption nil] 3 "\
Is KEY a idea key or can one be generated from it?"])
(defalias 'idea-key-fingerprint #[(key) "	!Ú 	+ \nĚ 	+ \nŚ$ \nƚ* 	!+ ȉ	 	8;A GU?? ͜ΜU Ӝ!Y Ԝ!Y ՜!Y ֜!Y ל!Y ؜!Y ٜ!Y ʜ!Y U U O*)*" [idea-legal-key key my-key-type key-complete-decryption key-complete-encryption key-string key-intlist idea-build-encryption-key nil my-key 9 annotation 10 0 1 de ty 58 idea-hex-char-to-int 2 3 4 5 6 7 8 101 100] 4 "\
Get an IDEA-KEY fingerprint."])
(defalias 'idea-key-type #[(key) "< 8; \nGU?? \nĜ\nŜU \nʜ!Y \n˜!Y \n̜!Y \n͜!Y \nΜ!Y \nϜ!Y \nМ!Y \n!Y U ҂ U *)" [key 9 annotation 10 0 1 de ty 58 idea-hex-char-to-int 2 3 4 5 6 7 8 101 encryption 100 decryption] 4 "\
Is idea KEY encryption or decryption key?"])
(byte-code "!!!" [require irchat-vars irchat-misc idea] 2)
(defvar irchat-default-idea-key-list nil "\
List to save ADDRESS KEY pairs")
(byte-code "! \"" [boundp irchat-known-idea-key-list nil "|*E*|IDEA|1.0|%s|%s|" irchat-idea-encrypt-msg-format defalias irchat-encrypted-message-p #[(message) "\n\" Ç" [string-match "^|\\*E\\*|[^|]*|[0-9][0-9]*\\.[0-9][0-9]*|[^|]*|[^|]*|$" message t] 3]] 3)
(defalias 'irchat-crypt-address-has-default-key-p #[(address) "	\n\"* Ƈ" [address irchat-default-idea-key-list lst key assoc-if #[(x) "\nQ\f\"??" [string-match "^" x "$" key] 4] t] 3 "\
Is there a default key for ADDRESS."])
(defalias 'irchat-init-crypt #[nil " 	 \n@!\nA\n )\f?4 3 \n@@\n@A\"\nA\" )" [irchat-known-idea-key-list irchat-crypt-known-keys lst irchat-Command-add-new-key irchat-default-idea-key-list irchat-crypt-default-keys irchat-Command-set-default-key nil] 4 "\
Initialize crypt variables"])
(defalias 'irchat-read-passphrase #[(&optional prompt) " ! \f !!" [prompt "" fboundp read-passwd irchat-crypt-secure-passphrase-read read-from-minibuffer] 2 "\
PROMPT for passphrase.  Use secure keyboard if possible."])
(defalias 'irchat-Command-add-new-key #[(key-var &optional interactive-p) "	!Ú !/ \nƚ 	/ \nǚ& \nȚ, 	!/ !!B\"BP \"!+" [idea-legal-key key-var my-key-type key-complete-encryption error "KEY is not an decryption key." key-complete-decryption key-string key-intlist idea-build-decryption-key "Invalid key." my-key idea-key-fingerprint fingerprint remassoc irchat-known-idea-key-list interactive-p message format "Added new decryption key (%s)."] 5 "\
Add new KEY to known decryption keys list" (list (irchat-read-passphrase "Add passphrase: ") t)])
(defalias 'irchat-Command-delete-key #[(key-var &optional interactive-p) "	!\n\f\" \n\"!)" [idea-key-fingerprint key-var fingerprint remassoc irchat-known-idea-key-list interactive-p message format "Removed decryption key (%s)."] 4 "\
Delete a KEY from known decryption keys list" (list (irchat-read-passphrase "Delete passphrase: ") t)])
(defalias 'irchat-get-idea-decryption-key #[(fingerprint) "	\n\" A)" [assoc fingerprint irchat-known-idea-key-list k] 4 "\
Find decryption key associated with FINGERPRINT"])
(defalias 'irchat-Command-set-default-key #[(addr-var pass-var) " 		\"	\"!)	!!\n\n!\f\n!	\f\nF	\"B	\"!," [pass-var addr-var remassoc irchat-default-idea-key-list message format "Removed a default key from \"%s\"." idea-build-encryption-key e-key idea-build-decryption-key d-key idea-key-fingerprint print irchat-Command-add-new-key "Added a default key for \"%s\"."] 4 "\
Set a default key for ADDRESS (channel/nick) to be KEY" (byte-code "\"	%!̘ \n	*D" [nil pass-var addr-var irchat-completing-default-read "Default key for channel/user: " append irchat-nick-alist irchat-channel-alist (lambda (s) t) irchat-privmsg-partner irchat-read-passphrase "Passphrase: " ""] 7)])
(defalias 'irchat-make-encrypted-message #[(message key) "	!\"#" [format irchat-idea-encrypt-msg-format idea-key-fingerprint key idea-cbc-encrypt-string message] 6 "\
Build an encrypted message from MESSAGE with KEY"])
(defalias 'irchat-crypt-valid-version-p #[(method major minor) " \nU \fY" [method "IDEA" major 1 minor 0] 2 "\
Is METHOD, MAJOR, MINOR a valid encryption method?"])
(defalias 'irchat-encrypt-message #[(message address &optional no-clear-text) "	\n\"*AA@  \"!5 ( \n5 \f \n\")" [address irchat-default-idea-key-list lst key assoc-if #[(x) "\nQ\f\"??" [string-match "^" x "$" key] 4] no-clear-text error format "No default key associated with \"%s\"." message irchat-make-encrypted-message irchat-real-nickname "" irchat-generate-hex-timestamp] 6 "\
Encrypt MESSAGE to ADDRESS.  NO-CLEAR-TEXT prohibits cleartext output"])
(defalias 'irchat-decrypt-message #[(message) "\n\" \nÔÕO\nŔŕO!\nƔƕO!\nǔǕO\nȔȕO	\n\f\f# \n! 	\" \" ÔÕOŔŕOƔƕO		\n+ ؉\n ؉\n) ؉\n) ؉\n-؉د" [string-match "^|\\*E\\*|\\([^|]*\\)|\\([0-9][0-9]*\\)\\.\\([0-9][0-9]*\\)|\\([^|]*\\)|\\([^|]*\\)|$" message 1 string-to-number 2 3 4 5 msg fingerprint version-minor version-major method irchat-crypt-valid-version-p irchat-get-idea-decryption-key key idea-cbc-decrypt-string r "^\\([^][^]*\\)\\([^][^]*\\)\\(.*\\)$" time nick success error nil "** Unable to decrypt: Invalid cleartext format!" "** Unable to decrypt: Decryption failed!" "** Unable to decrypt: No key!" "** Unable to decrypt: Unknown version!" "** Unable to decrypt: Invalid message!"] 8 "\
Decrypt MESSAGE"])
(provide (quote irchat-crypt))
