diff options
115 files changed, 8555 insertions, 4273 deletions
diff --git a/Makefile.am b/Makefile.am index 14eeb75..0fcd28f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ AUTOMAKE_OPTIONS = foreign -SUBDIRS = tools libltdl doc help modules src +SUBDIRS = tools libltdl doc help messages modules src install-data-local: $(INSTALL) -d $(DESTDIR)${localstatedir}/log diff --git a/Makefile.in b/Makefile.in index 9f677f1..45cf067 100644 --- a/Makefile.in +++ b/Makefile.in @@ -307,7 +307,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign -SUBDIRS = tools libltdl doc help modules src +SUBDIRS = tools libltdl doc help messages modules src all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -14443,7 +14443,7 @@ _ACEOF test "$exec_prefix_NONE" && exec_prefix=NONE -ac_config_files="$ac_config_files Makefile src/Makefile libltdl/Makefile modules/Makefile modules/core/Makefile doc/Makefile help/Makefile help/opers/Makefile help/users/Makefile tools/Makefile" +ac_config_files="$ac_config_files Makefile src/Makefile libltdl/Makefile messages/Makefile modules/Makefile modules/core/Makefile doc/Makefile help/Makefile help/opers/Makefile help/users/Makefile tools/Makefile" cat >confcache <<\_ACEOF @@ -15488,6 +15488,7 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "libltdl/Makefile") CONFIG_FILES="$CONFIG_FILES libltdl/Makefile" ;; + "messages/Makefile") CONFIG_FILES="$CONFIG_FILES messages/Makefile" ;; "modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; "modules/core/Makefile") CONFIG_FILES="$CONFIG_FILES modules/core/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; diff --git a/configure.ac b/configure.ac index 8efde04..fdec15c 100644 --- a/configure.ac +++ b/configure.ac @@ -175,6 +175,7 @@ AC_CONFIG_FILES( \ Makefile \ src/Makefile \ libltdl/Makefile \ + messages/Makefile \ modules/Makefile \ modules/core/Makefile \ doc/Makefile \ diff --git a/doc/index.txt b/doc/index.txt index e086941..d43a112 100644 --- a/doc/index.txt +++ b/doc/index.txt @@ -13,6 +13,8 @@ ircd.8 - The new revised manpage, read with the following man -M . ircd kline.txt - Outline of the remote K-line protocol for both opers and servers +messages.txt - A general help file for users and admins to + customize ircd's messages. modeg.txt - An in depth description of the server side silence user mode (+g) modes.txt - A list of all user and channel modes diff --git a/doc/messages.txt b/doc/messages.txt new file mode 100644 index 0000000..06fc967 --- /dev/null +++ b/doc/messages.txt @@ -0,0 +1,54 @@ + Message Customization Overview + + $Id$ + + Copyright (c) 2005-2012 by ircd-hybrid team + + ---------------------------------------------------------------------- + + Hybrid now supports its own .lang format for i18n'd IRC status messages. + + This document is split into two parts, using message files, and creating + your own. + + ---------------------------------------------------------------------- + + Using Provided or Pre-made Message Files + + There are a number of message files provided with ircd-hybrid. These can + be found in the source tree in messages/. + + These files are automatically installed by `make install'. + + These message files can be used in ircd once they are installed. Try the + installed message file with /quote SET MSGLOCALE <locale> first. The + locale will be 'standard' for the plain messages that are Hybrid's + default. + + If the desired message file works without any issues, it can be set to be + the default message file in the ircd.conf file. Refer to reference.conf's + documentation on the message_locale setting. + + ---------------------------------------------------------------------- + + Creating Your Own Messages + + This process is a little more complicated. The easiest way to start + editing messages is to take ircd-standard.example.lang, make a copy, + and change whichever status lines you wish. + + Once you have your customized message file ready, just copy it into the + same place as the rest of the messages, typically $PREFIX/messages. + + If you think your .lang file deserves to be in the official distribution, + submit it to us at bugs@ircd-hybrid.org. It must be complete and as error- + free as you can make it since it is subject to public consumption. Providing + a translation will be a way that nearly anyone who knows multiple languages + to contribute to ircd, and get their name in the translation credits. + + When making such a translation, you should base it off + ircd-standard.example.lang, which is a conversion of our base (English) + messages.tab into the .lang format. You should edit it from there into your + own language, and of course give credit to yourself and whoever else you + may have done the translation with. Then, send it off to us, and we'll see + what we can do. diff --git a/doc/reference.conf b/doc/reference.conf index 918193a..3269694 100644 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -1112,6 +1112,14 @@ general { max_targets = 4; /* + * message_locale: the default message locale + * Use "standard" for the compiled in defaults. + * To install the translated messages, go into messages/ in the + * source directory and run `make install'. + */ + message_locale = "standard"; + + /* * usermodes configurable: a list of usermodes for the options below * * +b - bots - See bot and drone flooding notices diff --git a/include/channel.h b/include/channel.h index 88cb5a0..a922715 100644 --- a/include/channel.h +++ b/include/channel.h @@ -117,7 +117,7 @@ extern dlink_list global_channel_list; extern int check_channel_name(const char *, int); extern int can_send(struct Channel *, struct Client *, struct Membership *); extern int is_banned(const struct Channel *, const struct Client *); -extern const char *can_join(struct Client *, struct Channel *, const char *); +extern int can_join(struct Client *, struct Channel *, const char *); extern int has_member_flags(struct Membership *, unsigned int); extern void remove_ban(struct Ban *, dlink_list *); diff --git a/include/numeric.h b/include/numeric.h index d1ad106..558b7e5 100644 --- a/include/numeric.h +++ b/include/numeric.h @@ -25,222 +25,459 @@ #ifndef INCLUDED_numeric_h #define INCLUDED_numeric_h +#define LOCALE_LENGTH 64 /* maximum length of locale name + 1 */ + +struct NumericInfo +{ + const char *name; /* common name of the numeric */ + const char *standard; /* standard numeric text */ + char *translated; /* translated numeric text */ +}; + +/* form_str - return a format string for a message number + * messages are defined below + */ +extern const char *form_str(int); +extern void set_locale(const char *); +extern const char *get_locale(void); + /* * Reserve numerics 000-099 for server-client connections where the client * is local to the server. If any server is passed a numeric in this range * from another server then it is remapped to 100-199. -avalon */ -#define RPL_WELCOME ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s" -#define RPL_YOURHOST ":%s 002 %s :Your host is %s, running version %s" -#define RPL_CREATED ":%s 003 %s :This server was created %s" -#ifdef HALFOPS -#define RPL_MYINFO ":%s 004 %s %s %s %s biklmnoprstveIhORS bkloveIh" -#else -#define RPL_MYINFO ":%s 004 %s %s %s %s biklmnoprstveIORS bkloveI" -#endif -#define RPL_ISUPPORT ":%s 005 %s %s :are supported by this server" -#define RPL_REDIR ":%s 010 %s %s %d :Please use this Server/Port instead" -#define RPL_MAP ":%s 015 %s :%s" -#define RPL_MAPEND ":%s 017 %s :End of /MAP" -#define RPL_YOURID ":%s 042 %s %s :your unique ID" +#define RPL_WELCOME 001 +#define RPL_YOURHOST 002 +#define RPL_CREATED 003 +#define RPL_MYINFO 004 +#define RPL_ISUPPORT 005 + /* RPL_BOUNCE IRCnet extension */ +/* RPL_MAP 6 unreal */ +/* RPL_MAPEND 7 unreal */ +/* RPL_SNOMASK 8 Undernet extension */ +/* RPL_STATMEMTOT 9 Undernet extension */ +/* RPL_STATMEM 10 Undernet extension */ + +#define RPL_REDIR 10 +#define RPL_MAP 15 /* Undernet extension */ +#define RPL_MAPMORE 16 /* Undernet extension */ +#define RPL_MAPEND 17 /* Undernet extension */ + +#define RPL_YOURID 42 /* IRCnet extension */ +/* RPL_ATTEMPTINGJUNC 50 aircd extension */ +/* RPL_ATTEMPTINGREROUTE 51 aircd extension */ /* * Numeric replies from server commands. * These are currently in the range 200-399. */ -#define RPL_TRACELINK ":%s 200 %s Link %s %s %s" -#define RPL_TRACECONNECTING ":%s 201 %s Try. %s %s" -#define RPL_TRACEHANDSHAKE ":%s 202 %s H.S. %s %s" -#define RPL_TRACEUNKNOWN ":%s 203 %s ???? %s %s (%s) %d" -#define RPL_TRACEOPERATOR ":%s 204 %s Oper %s %s (%s) %lu %lu" -#define RPL_TRACEUSER ":%s 205 %s User %s %s (%s) %lu %lu" -#define RPL_TRACESERVER ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu" -#define RPL_TRACENEWTYPE ":%s 208 %s <newtype> 0 %s" -#define RPL_TRACECLASS ":%s 209 %s Class %s %d" -#define RPL_STATSLINKINFO ":%s 211 %s %s %u %u %llu %u %llu :%u %u %s" -#define RPL_STATSCOMMANDS ":%s 212 %s %s %u %llu :%u" -#define RPL_STATSCLINE ":%s 213 %s %c %s %s %s %d %s" -#define RPL_STATSNLINE ":%s 214 %s %c %s * %s %d %s" -#define RPL_STATSILINE ":%s 215 %s %c %s * %s@%s %d %s" -#define RPL_STATSKLINE ":%s 216 %s %s %s * %s :%s" -#define RPL_STATSQLINE ":%s 217 %s %c %u %s :%s" -#define RPL_STATSYLINE ":%s 218 %s %c %s %u %u %u %u %u %u %u/%u %u/%u %s" -#define RPL_ENDOFSTATS ":%s 219 %s %c :End of /STATS report" +#define RPL_TRACELINK 200 +#define RPL_TRACECONNECTING 201 +#define RPL_TRACEHANDSHAKE 202 +#define RPL_TRACEUNKNOWN 203 +#define RPL_TRACEOPERATOR 204 +#define RPL_TRACEUSER 205 +#define RPL_TRACESERVER 206 +#define RPL_TRACENEWTYPE 208 +#define RPL_TRACECLASS 209 -/* - * note ircu uses 217 for STATSPLINE frip. conflict +/* RPL_STATS 210 aircd extension, used instead of having + multiple stats numerics */ +/* RPL_TRACERECONNECT 210 IRCnet extension */ + +#define RPL_STATSLINKINFO 211 +#define RPL_STATSCOMMANDS 212 +#define RPL_STATSCLINE 213 +#define RPL_STATSNLINE 214 +/* RPL_STATSOLDNLINE 214 unreal */ +#define RPL_STATSILINE 215 +#define RPL_STATSKLINE 216 +#define RPL_STATSQLINE 217 +#define RPL_STATSYLINE 218 +#define RPL_ENDOFSTATS 219 +/* note ircu uses 217 for STATSPLINE frip. conflict * as RPL_STATSQLINE was used in old 2.8 for Q line * I'm going to steal 220 for now *sigh* * -Dianora */ -#define RPL_STATSPLINE ":%s 220 %s %c %d %s %d %s :%s" -#define RPL_UMODEIS ":%s 221 %s %s" -#define RPL_STATSDLINE ":%s 225 %s %c %s :%s" -#define RPL_STATSALINE ":%s 226 %s %s" -#define RPL_STATSLLINE ":%s 241 %s %c %s * %s %d %s" -#define RPL_STATSUPTIME ":%s 242 %s :Server Up %d days, %d:%02d:%02d" -#define RPL_STATSOLINE ":%s 243 %s %c %s@%s * %s %s %s" -#define RPL_STATSHLINE ":%s 244 %s %c %s * %s %d %s" -#define RPL_STATSSERVICE ":%s 246 %s %c %s * %s %d %d" -#define RPL_STATSXLINE ":%s 247 %s %s %d %s :%s" -#define RPL_STATSULINE ":%s 248 %s U %s %s@%s %s" -#define RPL_STATSCONN ":%s 250 %s :Highest connection count: %d (%d clients) (%llu connections received)" -#define RPL_LUSERCLIENT ":%s 251 %s :There are %d users and %d invisible on %d servers" -#define RPL_LUSEROP ":%s 252 %s %d :IRC Operators online" -#define RPL_LUSERUNKNOWN ":%s 253 %s %d :unknown connection(s)" -#define RPL_LUSERCHANNELS ":%s 254 %s %d :channels formed" -#define RPL_LUSERME ":%s 255 %s :I have %d clients and %d servers" -#define RPL_ADMINME ":%s 256 %s :Administrative info about %s" -#define RPL_ADMINLOC1 ":%s 257 %s :%s" -#define RPL_ADMINLOC2 ":%s 258 %s :%s" -#define RPL_ADMINEMAIL ":%s 259 %s :%s" -#define RPL_ENDOFTRACE ":%s 262 %s %s :End of TRACE" -#define RPL_LOAD2HI ":%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again." -#define RPL_LOCALUSERS ":%s 265 %s :Current local users: %d Max: %d" -#define RPL_GLOBALUSERS ":%s 266 %s :Current global users: %d Max: %d" -#define RPL_ACCEPTLIST ":%s 281 %s :%s" -#define RPL_ENDOFACCEPT ":%s 282 %s :End of /ACCEPT list." -#define RPL_AWAY ":%s 301 %s %s :%s" -#define RPL_USERHOST ":%s 302 %s :%s" -#define RPL_ISON ":%s 303 %s :" -#define RPL_UNAWAY ":%s 305 %s :You are no longer marked as being away" -#define RPL_NOWAWAY ":%s 306 %s :You have been marked as being away" -#define RPL_WHOISREGNICK ":%s 307 %s %s :has identified for this nick" -#define RPL_WHOISADMIN ":%s 313 %s %s :is a Server Administrator" -#define RPL_WHOISUSER ":%s 311 %s %s %s %s * :%s" -#define RPL_WHOISSERVER ":%s 312 %s %s %s :%s" -#define RPL_WHOISOPERATOR ":%s 313 %s %s :is an IRC Operator" -#define RPL_WHOWASUSER ":%s 314 %s %s %s %s * :%s" -#define RPL_ENDOFWHO ":%s 315 %s %s :End of /WHO list." -#define RPL_WHOISIDLE ":%s 317 %s %s %u %d :seconds idle, signon time" -#define RPL_ENDOFWHOIS ":%s 318 %s %s :End of /WHOIS list." -#define RPL_WHOISCHANNELS ":%s 319 %s %s :%s" -#define RPL_LISTSTART ":%s 321 %s Channel :Users Name" -#define RPL_LIST ":%s 322 %s %s %d :%s" -#define RPL_LISTEND ":%s 323 %s :End of /LIST" -#define RPL_CHANNELMODEIS ":%s 324 %s %s %s %s" -#define RPL_CREATIONTIME ":%s 329 %s %s %lu" -#define RPL_NOTOPIC ":%s 331 %s %s :No topic is set." -#define RPL_TOPIC ":%s 332 %s %s :%s" -#define RPL_TOPICWHOTIME ":%s 333 %s %s %s %lu" -#define RPL_WHOISACTUALLY ":%s 338 %s %s %s :actually using host" -#define RPL_INVITING ":%s 341 %s %s %s" -#define RPL_INVITELIST ":%s 346 %s %s %s!%s@%s %s %lu" -#define RPL_ENDOFINVITELIST ":%s 347 %s %s :End of Channel Invite List" -#define RPL_EXCEPTLIST ":%s 348 %s %s %s!%s@%s %s %lu" -#define RPL_ENDOFEXCEPTLIST ":%s 349 %s %s :End of Channel Exception List" -#define RPL_VERSION ":%s 351 %s %s(%s). %s :%s%s" -#define RPL_WHOREPLY ":%s 352 %s %s %s %s %s %s %s :%d %s" -#define RPL_NAMREPLY ":%s 353 %s %s %s :" -#define RPL_CLOSING ":%s 362 %s %s :Closed. Status = %d" -#define RPL_CLOSEEND ":%s 363 %s %d: Connections Closed" -#define RPL_LINKS ":%s 364 %s %s %s :%d %s" -#define RPL_ENDOFLINKS ":%s 365 %s %s :End of /LINKS list." -#define RPL_ENDOFNAMES ":%s 366 %s %s :End of /NAMES list." -#define RPL_BANLIST ":%s 367 %s %s %s!%s@%s %s %lu" -#define RPL_ENDOFBANLIST ":%s 368 %s %s :End of Channel Ban List" -#define RPL_ENDOFWHOWAS ":%s 369 %s %s :End of WHOWAS" -#define RPL_INFO ":%s 371 %s :%s" -#define RPL_MOTD ":%s 372 %s :- %s" -#define RPL_INFOSTART ":%s 373 %s :Server INFO" -#define RPL_ENDOFINFO ":%s 374 %s :End of /INFO list." -#define RPL_MOTDSTART ":%s 375 %s :- %s Message of the Day - " -#define RPL_ENDOFMOTD ":%s 376 %s :End of /MOTD command." -#define RPL_YOUREOPER ":%s 381 %s :You have entered... the Twilight Zone!" -#define RPL_REHASHING ":%s 382 %s %s :Rehashing" -#define RPL_TIME ":%s 391 %s %s :%s" -#define RPL_HOSTHIDDEN ":%s 396 %s %s :is now your hidden host" + +#define RPL_STATSPLINE 220 +#define RPL_UMODEIS 221 + +/* RPL_SQLINE_NICK 222 Numerics List: Dalnet */ +/* RPL_STATSELINE 223 dalnet */ +/* RPL_STATSGLINE 223 unreal */ +/* RPL_STATSFLINE 224 Hybrid extension,Dalnet */ +/* RPL_STATSTLINE 224 unreal */ +/* RPL_STATSDLINE 225 Hybrid extension */ +/* RPL_STATSZLINE 225 Dalnet + RPL_STATSELINE 225 unreal + RPL_STATSCOUNT 226 Dalnet + RPL_STATSNLINE 226 unreal + RPL_STATSGLINE 227 Dalnet + RPL_STATSVLINE 227 unreal */ + +#define RPL_STATSFLINE 224 +#define RPL_STATSDLINE 225 +#define RPL_STATSALINE 226 + +/* RPL_RULES 232 unreal */ + +/* RPL_STATSIAUTH 239 IRCnet extension */ +/* RPL_STATSVLINE 240 IRCnet extension */ +/* RPL_STATSXLINE 240 austnet */ + +#define RPL_STATSLLINE 241 +#define RPL_STATSUPTIME 242 +#define RPL_STATSOLINE 243 +#define RPL_STATSHLINE 244 +/* 245 No longer used in ircd-hybrid */ +#define RPL_STATSSLINE 245 +#define RPL_STATSSERVICE 246 +#define RPL_STATSXLINE 247 +#define RPL_STATSULINE 248 +#define RPL_STATSDEBUG 249 +#define RPL_STATSCONN 250 +/* RPL_STATSDLINE 250 Numerics List: IRCnet */ +#define RPL_LUSERCLIENT 251 +#define RPL_LUSEROP 252 +#define RPL_LUSERUNKNOWN 253 +#define RPL_LUSERCHANNELS 254 +#define RPL_LUSERME 255 +#define RPL_ADMINME 256 +#define RPL_ADMINLOC1 257 +#define RPL_ADMINLOC2 258 +#define RPL_ADMINEMAIL 259 + +#define RPL_ENDOFTRACE 262 +#define RPL_LOAD2HI 263 + +/* RPL_TRYAGAIN 263 Numerics List: IRCnet */ +/* RPL_LOAD2HI 263 Dalnet */ +/* RPL_CURRENT_LOCAL 265 aircd/efnet/hybrid/dalnet*/ +/* RPL_CURRENT_GLOBAL 266 aircd/efnet/hybrid/dalnet */ +/* RPL_START_NETSTAT 267 aircd */ +/* RPL_NETSTAT 268 aircd */ +/* RPL_END_NETSTAT 269 aircd */ + +#define RPL_LOCALUSERS 265 +#define RPL_GLOBALUSERS 266 + +#define RPL_ACCEPTLIST 281 +#define RPL_ENDOFACCEPT 282 + +/* RPL_GLIST 280 Undernet extension */ +/* RPL_ENDOFGLIST 281 Undernet extension */ +/* RPL_JUPELIST 282 Undernet extension - jupe -Kev */ +/* RPL_ENDOFJUPELIST 283 Undernet extension - jupe -Kev */ +/* RPL_FEATURE 284 Undernet extension - features */ +/* RPL_CHANINFO_HANDLE 285 aircd */ +/* RPL_CHANINFO_USERS 286 aircd */ +/* RPL_CHANINFO_CHOPS 287 aircd */ +/* RPL_CHANINFO_VOICES 288 aircd */ +/* RPL_CHANINFO_AWAY 289 aircd */ +/* RPL_CHANINFO_OPERS 290 aircd */ +/* RPL_HELPHDR 290 Numeric List: Dalnet */ +/* RPL_CHANINFO_BANNED 291 aircd */ +/* RPL_HELPOP 291 Numeric List: Dalnet */ +/* RPL_CHANINFO_BANS 292 aircd */ +/* RPL_HELPTLR 292 Numeric List: Dalnet */ +/* RPL_CHANINFO_INVITE 293 aircd */ +/* RPL_HELPHLP 293 Numeric List: Dalnet */ +/* RPL_CHANINFO_INVITES 294 aircd */ +/* RPL_HELPFWD 294 Numeric List: Dalnet */ +/* RPL_CHANINFO_KICK 295 aircd */ +/* RPL_HELPIGN 295 Numeric List: Dalnet */ +/* RPL_CHANINFO_KICKS 296 aircd */ + +/* RPL_END_CHANINFO 299 aircd */ + +/* numeric_replies */ +#define RPL_AWAY 301 +#define RPL_USERHOST 302 +#define RPL_ISON 303 +#define RPL_TEXT 304 +#define RPL_UNAWAY 305 +#define RPL_NOWAWAY 306 +/* RPL_USERIP 307 Undernet extension */ +#define RPL_WHOISREGNICK 307 +/* RPL_SUSERHOST 307 austnet */ +/* RPL_NOTIFYACTION 308 aircd */ +#define RPL_WHOISADMIN 308 /* Numeric List: Dalnet */ +/* RPL_RULESSTART 308 unreal */ +/* RPL_NICKTRACE 309 aircd */ +/* RPL_WHOISSADMIN 309 Numeric List: Dalnet */ +/* RPL_ENDOFRULES 309 unreal */ +/* RPL_WHOISHELPER 309 austnet */ +/* RPL_WHOISSVCMSG 310 Dalnet */ +/* RPL_WHOISHELPOP 310 unreal */ +/* RPL_WHOISSERVICE 310 austnet */ + +#define RPL_WHOISUSER 311 +#define RPL_WHOISSERVER 312 +#define RPL_WHOISOPERATOR 313 + +#define RPL_WHOWASUSER 314 +/* rpl_endofwho below (315) */ +#define RPL_ENDOFWHOWAS 369 + +#define RPL_WHOISCHANOP 316 /* redundant and not needed but reserved */ +#define RPL_WHOISIDLE 317 + +#define RPL_ENDOFWHOIS 318 +#define RPL_WHOISCHANNELS 319 +/* RPL_WHOIS_HIDDEN 320 Anothernet +h, ick! */ +/* RPL_WHOISSPECIAL 320 unreal */ +#define RPL_LISTSTART 321 +#define RPL_LIST 322 +#define RPL_LISTEND 323 +#define RPL_CHANNELMODEIS 324 +/* RPL_CHANNELPASSIS 325 IRCnet extension */ +/* RPL_UNIQOPIS 325 IRCnet extension */ +/* RPL_NOCHANPASS 326 IRCnet extension */ +/* RPL_CHPASSUNKNOWN 327 IRCnet extension */ +/* RPL_CHANNEL_URL 328 dalnet, anothernet */ +#define RPL_CREATIONTIME 329 +/* RPL_WHOWAS_TIME 330 ? */ +#define RPL_NOTOPIC 331 +#define RPL_TOPIC 332 +#define RPL_TOPICWHOTIME 333 +/* RPL_COMMANDSYNTAX 334 Dalnet */ +/* RPL_LISTSYNTAX 334 unreal */ +/* RPL_CHANPASSOK 338 IRCnet extension (?)*/ +#define RPL_WHOISACTUALLY 338 /* dalnet */ +/* RPL_WHOISACTUALLY 338 Undernet extension, dalnet */ +/* RPL_BADCHANPASS 339 IRCnet extension (?)*/ +/* RPL_USERIP 340 (old) Undernet extension */ +#define RPL_INVITING 341 +/* RPL_SUMMONING 342 removed from RFC1459 */ + +#define RPL_INVITELIST 346 +#define RPL_ENDOFINVITELIST 347 /* IRCnet, Undernet extension */ +#define RPL_EXCEPTLIST 348 +#define RPL_ENDOFEXCEPTLIST 349 + +#define RPL_VERSION 351 + +#define RPL_WHOREPLY 352 +#define RPL_ENDOFWHO 315 +#define RPL_NAMREPLY 353 +#define RPL_ENDOFNAMES 366 + +#define RPL_CLOSING 362 +#define RPL_CLOSEEND 363 +#define RPL_LINKS 364 +#define RPL_ENDOFLINKS 365 +/* rpl_endofnames above (366) */ +#define RPL_BANLIST 367 +#define RPL_ENDOFBANLIST 368 +/* rpl_endofwhowas above (369) */ + +#define RPL_INFO 371 +#define RPL_MOTD 372 +#define RPL_INFOSTART 373 +#define RPL_ENDOFINFO 374 +#define RPL_MOTDSTART 375 +#define RPL_ENDOFMOTD 376 + +/* RPL_KICKEXPIRED 377 aircd */ +/* RPL_SPAM 377 austnet */ +/* RPL_BANEXPIRED 378 aircd */ +/* RPL_KICKLINKED 379 aircd */ +/* RPL_BANLINKED 380 aircd */ + +#define RPL_YOUREOPER 381 +#define RPL_REHASHING 382 +/* RPL_YOURSERVICE 383 Numeric List: various */ +#define RPL_RSACHALLENGE 386 + +/* RPL_QLIST 386 unreal */ +/* RPL_ENDOFQLIST 387 unreal */ +/* RPL_ALIST 388 unreal */ +/* RPL_ENDOFALIST 389 unreal */ + +#define RPL_TIME 391 +#define RPL_USERSSTART 392 +#define RPL_USERS 393 +#define RPL_ENDOFUSERS 394 +#define RPL_NOUSERS 395 +#define RPL_HOSTHIDDEN 396 /* * Errors are in the range from 400-599 currently and are grouped by what * commands they come from. */ -#define ERR_NOSUCHNICK ":%s 401 %s %s :No such nick/channel" -#define ERR_NOSUCHSERVER ":%s 402 %s %s :No such server" -#define ERR_NOSUCHCHANNEL ":%s 403 %s %s :No such channel" -#define ERR_CANNOTSENDTOCHAN ":%s 404 %s %s :Cannot send to channel" -#define ERR_TOOMANYCHANNELS ":%s 405 %s %s :You have joined too many channels" -#define ERR_WASNOSUCHNICK ":%s 406 %s %s :There was no such nickname" -#define ERR_TOOMANYTARGETS ":%s 407 %s %s :Too many recipients. Only %d processed" -#define ERR_NOORIGIN ":%s 409 %s :No origin specified" -#define ERR_INVALIDCAPCMD ":%s 410 %s %s :Invalid CAP subcommand" -#define ERR_NORECIPIENT ":%s 411 %s :No recipient given (%s)" -#define ERR_NOTEXTTOSEND ":%s 412 %s :No text to send" -#define ERR_NOTOPLEVEL ":%s 413 %s %s :No toplevel domain specified" -#define ERR_WILDTOPLEVEL ":%s 414 %s %s :Wildcard in toplevel Domain" -#define ERR_UNKNOWNCOMMAND ":%s 421 %s %s :Unknown command" -#define ERR_NOMOTD ":%s 422 %s :MOTD File is missing" -#define ERR_NOADMININFO ":%s 423 %s %s :No administrative info available" -#define ERR_NONICKNAMEGIVEN ":%s 431 %s :No nickname given" -#define ERR_ERRONEUSNICKNAME ":%s 432 %s %s :Erroneous Nickname" -#define ERR_NICKNAMEINUSE ":%s 433 %s %s :Nickname is already in use." -#define ERR_NICKCOLLISION ":%s 436 %s %s :Nickname collision KILL" -#define ERR_UNAVAILRESOURCE ":%s 437 %s %s :Nick/channel is temporarily unavailable" -#define ERR_NICKTOOFAST ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds." -#define ERR_SERVICESDOWN ":%s 440 %s %s :Services is currently down." -#define ERR_USERNOTINCHANNEL ":%s 441 %s %s %s :They aren't on that channel" -#define ERR_NOTONCHANNEL ":%s 442 %s %s :You're not on that channel" -#define ERR_USERONCHANNEL ":%s 443 %s %s %s :is already on channel" -#define ERR_NOTREGISTERED ":%s 451 %s :You have not registered" -#define ERR_ACCEPTFULL ":%s 456 %s :Accept list is full" -#define ERR_ACCEPTEXIST ":%s 457 %s %s!%s@%s :is already on your accept list" -#define ERR_ACCEPTNOT ":%s 458 %s %s!%s@%s :is not on your accept list" -#define ERR_NEEDMOREPARAMS ":%s 461 %s %s :Not enough parameters" -#define ERR_ALREADYREGISTRED ":%s 462 %s :You may not reregister" -#define ERR_PASSWDMISMATCH ":%s 464 %s :Password Incorrect" -#define ERR_YOUREBANNEDCREEP ":%s 465 %s :You are banned from this server- %s" -#define ERR_ONLYSERVERSCANCHANGE ":%s 468 %s %s :Only servers can change that mode" -#define ERR_OPERONLYCHAN ":%s 470 %s %s :Cannot join channel (+O)" -#define ERR_CHANNELISFULL ":%s 471 %s %s :Cannot join channel (+l)" -#define ERR_UNKNOWNMODE ":%s 472 %s %c :is unknown mode char to me" -#define ERR_INVITEONLYCHAN ":%s 473 %s %s :Cannot join channel (+i)" -#define ERR_BANNEDFROMCHAN ":%s 474 %s %s :Cannot join channel (+b)" -#define ERR_BADCHANNELKEY ":%s 475 %s %s :Cannot join channel (+k)" -#define ERR_NEEDREGGEDNICK ":%s 477 %s %s :You need to identify to a registered nick to join or speak in that channel." -#define ERR_BANLISTFULL ":%s 478 %s %s %s :Channel ban list is full" -#define ERR_BADCHANNAME ":%s 479 %s %s :Illegal channel name" -#define ERR_SSLONLYCHAN ":%s 480 %s %s :Cannot join channel (+S)" -#define ERR_NOPRIVILEGES ":%s 481 %s :Permission Denied - You're not an IRC operator" -#define ERR_CHANOPRIVSNEEDED ":%s 482 %s %s :You're not channel operator" -#define ERR_CANTKILLSERVER ":%s 483 %s :You can't kill a server!" -#define ERR_RESTRICTED ":%s 484 %s :You are restricted" -#define ERR_NONONREG ":%s 486 %s %s :You must identify to a registered nick to private message that person" -#define ERR_NOOPERHOST ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone" -#define ERR_UMODEUNKNOWNFLAG ":%s 501 %s :Unknown MODE flag" -#define ERR_USERSDONTMATCH ":%s 502 %s :Can't change mode for other users" -#define ERR_GHOSTEDCLIENT ":%s 503 %s :Message could not be delivered to %s" -#define ERR_USERNOTONSERV ":%s 504 %s %s :User is not on this server" -#define ERR_TOOMANYWATCH ":%s 512 %s %s :Maximum size for WATCH-list is %d entries" -#define ERR_WRONGPONG ":%s 513 %s :To connect type /QUOTE PONG %u" -#define ERR_LISTSYNTAX ":%s 521 %s :Bad list syntax, type /QUOTE HELP LIST" -#define ERR_HELPNOTFOUND ":%s 524 %s %s :Help not found" -#define RPL_LOGON ":%s 600 %s %s %s %s %d :logged online" -#define RPL_LOGOFF ":%s 601 %s %s %s %s %d :logged offline" -#define RPL_WATCHOFF ":%s 602 %s %s %s %s %d :stopped watching" -#define RPL_WATCHSTAT ":%s 603 %s :You have %u and are on %u WATCH entries" -#define RPL_NOWON ":%s 604 %s %s %s %s %d :is online" -#define RPL_NOWOFF ":%s 605 %s %s %s %s %d :is offline" -#define RPL_WATCHLIST ":%s 606 %s :%s" -#define RPL_ENDOFWATCHLIST ":%s 607 %s :End of WATCH %c" -#define RPL_WHOISSECURE ":%s 671 %s %s :is connected via SSL (secure link)" -#define RPL_MODLIST ":%s 702 %s %s %p %s %s" -#define RPL_ENDOFMODLIST ":%s 703 %s :End of /MODLIST." -#define RPL_HELPSTART ":%s 704 %s %s :%s" -#define RPL_HELPTXT ":%s 705 %s %s :%s" -#define RPL_ENDOFHELP ":%s 706 %s %s :End of /HELP." -#define RPL_ETRACE_FULL ":%s 708 %s %s %s %s %s %s %s %s %s :%s" -#define RPL_ETRACE ":%s 709 %s %s %s %s %s %s %s :%s" -#define RPL_KNOCK ":%s 710 %s %s %s!%s@%s :has asked for an invite." -#define RPL_KNOCKDLVR ":%s 711 %s %s :Your KNOCK has been delivered." -#define ERR_TOOMANYKNOCK ":%s 712 %s %s :Too many KNOCKs (%s)." -#define ERR_CHANOPEN ":%s 713 %s %s :Channel is open." -#define ERR_KNOCKONCHAN ":%s 714 %s %s :You are already on that channel." -#define RPL_TARGUMODEG ":%s 716 %s %s :is in +g mode (server side ignore)" -#define RPL_TARGNOTIFY ":%s 717 %s %s :has been informed that you messaged them." -#define RPL_UMODEGMSG ":%s 718 %s %s :is messaging you, and you are umode +g." -#define ERR_NOPRIVS ":%s 723 %s %s :Insufficient oper privs." -#define RPL_TESTMASK ":%s 724 %s %s!%s@%s %u %u :Local/remote clients match." -#define RPL_TESTLINE ":%s 725 %s %c %ld %s :%s" -#define RPL_NOTESTLINE ":%s 726 %s %s :No matches" -#define RPL_STATSDEBUG 249 /* XXX */ -#endif +#define ERR_NOSUCHNICK 401 +#define ERR_NOSUCHSERVER 402 +#define ERR_NOSUCHCHANNEL 403 +#define ERR_CANNOTSENDTOCHAN 404 +#define ERR_TOOMANYCHANNELS 405 +#define ERR_WASNOSUCHNICK 406 +#define ERR_TOOMANYTARGETS 407 +#define ERR_NOORIGIN 409 +#define ERR_INVALIDCAPCMD 410 + +#define ERR_NORECIPIENT 411 +#define ERR_NOTEXTTOSEND 412 +#define ERR_NOTOPLEVEL 413 +#define ERR_WILDTOPLEVEL 414 +/* ERR_BADMASK 415 IRCnet extension */ +#define ERR_UNKNOWNCOMMAND 421 +#define ERR_NOMOTD 422 +#define ERR_NOADMININFO 423 + +/* ERR_TOOMANYAWAY 429 Dalnet */ + +#define ERR_NONICKNAMEGIVEN 431 +#define ERR_ERRONEUSNICKNAME 432 +#define ERR_NICKNAMEINUSE 433 + +/* ERR_SERVICENAMEINUSE 434 ? */ +/* ERR_NORULES 434 unreal */ +/* ERR_SERVICECONFUSED 435 ? */ +/* ERR_BANONCHAN 435 dalnet */ + +#define ERR_NICKCOLLISION 436 +#define ERR_UNAVAILRESOURCE 437 +#define ERR_NICKTOOFAST 438 /* We did it first Undernet! ;) db */ + +#define ERR_SERVICESDOWN 440 + +#define ERR_USERNOTINCHANNEL 441 +#define ERR_NOTONCHANNEL 442 +#define ERR_USERONCHANNEL 443 + +#define ERR_NOTREGISTERED 451 + +/* ERR_IDCOLLISION 452 IRCnet extension ? */ +/* ERR_NICKLOST 453 IRCnet extension ? */ + +/* ERR_HOSTILENAME 455 unreal */ + +/* ERR_NOHIDING 459 unreal */ +/* ERR_NOTFORHALFOPS 460 unreal */ + +#define ERR_ACCEPTFULL 456 +#define ERR_ACCEPTEXIST 457 +#define ERR_ACCEPTNOT 458 + +#define ERR_NEEDMOREPARAMS 461 +#define ERR_ALREADYREGISTRED 462 +#define ERR_PASSWDMISMATCH 464 +#define ERR_YOUREBANNEDCREEP 465 +#define ERR_ONLYSERVERSCANCHANGE 468 +/* ERR_LINKSET 469 unreal */ +/* ERR_LINKCHANNEL 470 unreal */ +/* ERR_KICKEDFROMCHAN 470 aircd */ +#define ERR_OPERONLYCHAN 470 +#define ERR_CHANNELISFULL 471 +#define ERR_UNKNOWNMODE 472 +#define ERR_INVITEONLYCHAN 473 +#define ERR_BANNEDFROMCHAN 474 +#define ERR_BADCHANNELKEY 475 +#define ERR_NEEDREGGEDNICK 477 +#define ERR_BANLISTFULL 478 /* I stole the numeric from ircu -db */ +#define ERR_BADCHANNAME 479 +/* ERR_LINKFAIL 479 unreal */ +#define ERR_SSLONLYCHAN 480 +#define ERR_NOPRIVILEGES 481 +#define ERR_CHANOPRIVSNEEDED 482 +#define ERR_CANTKILLSERVER 483 +#define ERR_RESTRICTED 484 +/* ERR_DESYNC 484 Dalnet,PTlink */ +/* ERR_ATTACKDENY 484 unreal */ +/* ERR_RESTRICTED 484 IRCnet extension */ +/* ERR_UNIQOPRIVSNEEDED 485 IRCnet extension */ +/* ERR_KILLDENY 485 unreal */ +/* ERR_CANTKICKADMIN 485 PTlink */ +#define ERR_NONONREG 486 +/* ERR_CHANTOORECENT 487 IRCnet extension (?) */ +/* ERR_TSLESSCHAN 488 IRCnet extension (?) */ +/* ERR_VOICENEEDED 489 Undernet extension */ +#define ERR_NOOPERHOST 491 +/* ERR_NOSERVICEHOST 492 IRCnet extension */ + +#define ERR_UMODEUNKNOWNFLAG 501 +#define ERR_USERSDONTMATCH 502 + +#define ERR_GHOSTEDCLIENT 503 +/* ERR_VWORLDWARN 503 austnet */ + +#define ERR_USERNOTONSERV 504 + +/* #define ERR_LAST_ERR_MSG 505 + * moved to 999 + */ + + +#define ERR_TOOMANYWATCH 512 +#define ERR_WRONGPONG 513 +/* ERR_TOOMANYDCC 514 dalnet */ +/* ERR_NOINVITE 518 unreal */ +#define ERR_LONGMASK 518 /* Undernet extension -Kev */ +/* ERR_ADMONLY 519 unreal */ +/* ERR_TOOMANYUSERS 519 Undernet extension -Kev */ +/* ERR_OPERONLY 520 unreal */ +/* ERR_MASKTOOWIDE 520 Undernet extension -Kev */ +/* ERR_WHOTRUNC 520 austnet */ +/* ERR_LASTERROR 521 Undernet extension -Kev */ +#define ERR_LISTSYNTAX 521 +/* ERR_WHOSYNTAX 522 dalnet */ +/* ERR_WHOLIMEXCEED 523 dalnet */ + +#define ERR_HELPNOTFOUND 524 + +#define RPL_LOGON 600 +#define RPL_LOGOFF 601 +#define RPL_WATCHOFF 602 +#define RPL_WATCHSTAT 603 +#define RPL_NOWON 604 +#define RPL_NOWOFF 605 +#define RPL_WATCHLIST 606 +#define RPL_ENDOFWATCHLIST 607 + +/* RPL_MAPMORE 610 unreal + + RPL_MAPMORE 615 PTlink + + RPL_DCCSTATUS 617 dalnet + RPL_DCCLIST 618 dalnet + RPL_ENDOFDCCLIST 619 dalnet + RPL_DCCINFO 620 dalnet + + RPL_DUMPING 640 unreal + RPL_DUMPRPL 641 unreal + RPL_EODUMP 642 unreal +*/ + +#define RPL_WHOISSECURE 671 +#define RPL_MODLIST 702 +#define RPL_ENDOFMODLIST 703 + +#define RPL_HELPSTART 704 +#define RPL_HELPTXT 705 +#define RPL_ENDOFHELP 706 + +#define RPL_ETRACE_FULL 708 +#define RPL_ETRACE 709 + +#define RPL_KNOCK 710 +#define RPL_KNOCKDLVR 711 + +#define ERR_TOOMANYKNOCK 712 +#define ERR_CHANOPEN 713 +#define ERR_KNOCKONCHAN 714 + +#define RPL_TARGUMODEG 716 +#define RPL_TARGNOTIFY 717 +#define RPL_UMODEGMSG 718 + +#define ERR_NOPRIVS 723 + +#define RPL_TESTMASK 724 +#define RPL_TESTLINE 725 +#define RPL_NOTESTLINE 726 + +#define ERR_LAST_ERR_MSG 999 + +#endif /* INCLUDED_numeric_h */ diff --git a/include/stdinc.h b/include/stdinc.h index 421a866..4596f8a 100644 --- a/include/stdinc.h +++ b/include/stdinc.h @@ -93,10 +93,10 @@ #define HYB_PATH_MAX 4096 #endif -//#if 0 && __GNUC__ +#if 0 && __GNUC__ #define AFP(a,b) __attribute__((format (printf, a, b))) -//#else -//#define AFP(a,b) -//#endif +#else +#define AFP(a,b) +#endif #endif diff --git a/include/watch.h b/include/watch.h index b1ca22a..2d14818 100644 --- a/include/watch.h +++ b/include/watch.h @@ -41,7 +41,7 @@ struct Watch extern void watch_init(void); extern void watch_add_to_hash_table(const char *, struct Client *); extern void watch_del_from_hash_table(const char *, struct Client *); -extern void watch_check_hash(struct Client *, const char *); +extern void watch_check_hash(struct Client *, int); extern void watch_del_watch_list(struct Client *); extern void watch_count_memory(unsigned int *const, uint64_t *const); extern struct Watch *watch_find_hash(const char *); diff --git a/messages/Makefile.am b/messages/Makefile.am new file mode 100644 index 0000000..5490cc5 --- /dev/null +++ b/messages/Makefile.am @@ -0,0 +1,21 @@ +AUTOMAKE_OPTIONS = foreign +messagesdir = $(pkgdatadir)/messages + +dist_messages_DATA = ayb.lang \ + custom.lang \ + ircd-brazilian_pt.lang \ + ircd-bulgarian.lang \ + ircd-croatian.lang \ + ircd-danish.lang \ + ircd-dutch.lang \ + ircd-french.lang \ + ircd-german.lang \ + ircd-italian.lang \ + ircd-norwegian.lang \ + ircd-polish.lang \ + ircd-romanian.lang \ + ircd-russian.lang \ + ircd-spanish.lang \ + ircd-swedish.lang + +messages: $(dist_messages_DATA) diff --git a/messages/Makefile.in b/messages/Makefile.in new file mode 100644 index 0000000..4264836 --- /dev/null +++ b/messages/Makefile.in @@ -0,0 +1,495 @@ +# Makefile.in generated by automake 1.13.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = messages +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(dist_messages_DATA) README +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(messagesdir)" +DATA = $(dist_messages_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +ARGZ_H = @ARGZ_H@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIR = @DATADIR@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INCLTDL = @INCLTDL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBADD_DL = @LIBADD_DL@ +LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ +LIBADD_DLOPEN = @LIBADD_DLOPEN@ +LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ +LIBDIR = @LIBDIR@ +LIBLTDL = @LIBLTDL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALSTATEDIR = @LOCALSTATEDIR@ +LTDLDEPS = @LTDLDEPS@ +LTDLINCL = @LTDLINCL@ +LTDLOPEN = @LTDLOPEN@ +LTLIBOBJS = @LTLIBOBJS@ +LT_CONFIG_H = @LT_CONFIG_H@ +LT_DLLOADERS = @LT_DLLOADERS@ +LT_DLPREOPEN = @LT_DLPREOPEN@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PREFIX = @PREFIX@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SYSCONFDIR = @SYSCONFDIR@ +VERSION = @VERSION@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +ltdl_LIBOBJS = @ltdl_LIBOBJS@ +ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sys_symbol_underscore = @sys_symbol_underscore@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign +messagesdir = $(pkgdatadir)/messages +dist_messages_DATA = ayb.lang \ + custom.lang \ + ircd-brazilian_pt.lang \ + ircd-bulgarian.lang \ + ircd-croatian.lang \ + ircd-danish.lang \ + ircd-dutch.lang \ + ircd-french.lang \ + ircd-german.lang \ + ircd-italian.lang \ + ircd-norwegian.lang \ + ircd-polish.lang \ + ircd-romanian.lang \ + ircd-russian.lang \ + ircd-spanish.lang \ + ircd-swedish.lang + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign messages/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign messages/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dist_messagesDATA: $(dist_messages_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_messages_DATA)'; test -n "$(messagesdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(messagesdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(messagesdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(messagesdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(messagesdir)" || exit $$?; \ + done + +uninstall-dist_messagesDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_messages_DATA)'; test -n "$(messagesdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(messagesdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(messagesdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-dist_messagesDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_messagesDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-dist_messagesDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-dist_messagesDATA + + +messages: $(dist_messages_DATA) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/messages/README b/messages/README new file mode 100644 index 0000000..b62a162 --- /dev/null +++ b/messages/README @@ -0,0 +1,45 @@ +Translated message files (user/admin submitted) + +There are user submitted message files for ircd-hybrid-8. Read the +example file in this directory (ircd-standard.example.lang) and the file +doc/messages.txt to learn how to create, install, and possibly submit +your own .lang files. + +At the present time, the following languages are supported: + +brazilian portuguese - maintained by Marcelo Lipienski <und3rl1n3d@gmail.com> +swedish - maintained by trbz - Chris C <chris@mircscripter.com> +croatian - maintained by Martin - Vid Strpic <strpic@bofhlet.net> +french - maintained by joshk - Joshua Kwan <joshk@triplehelix.org> +german - maintained by dmalloc - Darian Lanx <bio@gmx.net> +italian - maintained by Afaa - Federico Giovannini <afaa@ircd-hybrid.it> +norwegian - maintained by inglish - Stephen Olsen <inglish@sol.no> +danish - maintained by Xride - Soren Straarup Andersen <xride@eit.ihk-edu.dk> +spanish - maintained by ermak - anonymous <ermak@cyberdude.com> +dutch - maintained by Riedel - Dennis Vink <vink@vuurwerk.nl> +polish - maintained by adx - Piotr Nizynski <adx@irc7.pl> +russian - maintained by Ilya - Ilya Shtift <ishtift@tagil.svrw.ru> +romanian - maintained by Bogdan Mintoi <bogdomania@yahoo.com> + +All of the files are installed into the prefix directory, under messages. +Each is installed into a different directory, prefixed by ircd-. + +The message locale is settable at runtime with /quote SET MSGLOCALE language, +ex. /quote SET MSGLOCALE ircd-german + +and via the message_locale="language"; in the general block of the ircd.conf. +ex. message_locale="ircd-german"; + +-- +The ircd-hybrid team is not accountable for any mistakes, mistranslations, or +accidental insults from the use of one of the included translations. All +translations are done by individuals who have given their time and skills to +provide localized users with pre-built translations. The ircd-hybrid team +will try, but cannot guarantee that the translations are up to date with the +rest of the source tree, and with the "customized" messages. + +Contributions are welcome, at present time please send contributed translations +to bugs@ircd-hybrid.org, hybrid@ircd-hybrid.org, or directly to one of the people +who work with the translations. + +$Id$ diff --git a/messages/ayb.lang b/messages/ayb.lang new file mode 100644 index 0000000..4dfc928 --- /dev/null +++ b/messages/ayb.lang @@ -0,0 +1,29 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2000 +; David Taylor <davidt@yadt.co.uk>, 2000. +; $Id$ + +RPL_WELCOME: :%s 001 %s :ALL YOUR BASE ARE BELONG TO %s, %s!!! +RPL_CREATED: :%s 003 %s :Someone set up us the server %s +RPL_ISUPPORT: :%s 005 %s %s :are moved for great justice +RPL_REDIR: :%s 010 %s %s %d :You have no chance to survive make this Server/Port instead. Ha ha ha. +RPL_STATSUPTIME: :%s 242 %s :Someone set up us the bomb %d days, %d:%02d:%02d ago +RPL_LUSERCLIENT: :%s 251 %s :There are %d minor Zigs and %d invisible on %d servers +RPL_LUSEROP: :%s 252 %s %d :Zigs online +RPL_LUSERME: :%s 255 %s :%d clients and %d servers are belong to me +RPL_LOAD2HI: :%s 263 %s :What you say!?? The server is moving too many zigs.. +RPL_LOCALUSERS: :%s 265 %s :%d users (max %d) are belong to me +RPL_GLOBALUSERS: :%s 266 %s :%d users (max %d) are belong to the network +RPL_UNAWAY: :%s 305 %s :OK, you're not /away anymore. Did you move Zig for great justice? +RPL_NOWAWAY: :%s 306 %s :OK, you're /away now. Hurry back! +RPL_YOUREOPER: :%s 381 %s :SOMEONE SET YOU UP THE /KILL FOR GREAT JUSTICE! +ERR_NOSUCHNICK: :%s 401 %s %s :No such Zig +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Too many channels are belong to you +ERR_WASNOSUCHNICK: :%s 406 %s %s :There was no such Zig +ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Your message is only belong to %d +ERR_NORECIPIENT: :%s 411 %s :No Zigs Moved (%s) +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :THAT COMMAND IS NOT BELONG TO ME!!! +ERR_NOMOTD: :%s 422 %s :MOTD file is not belong to me +ERR_NICKNAMEINUSE: :%s 433 %s %s :Zig is belong to someone else. +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You know what you doing, you need +o +ERR_CANTKILLSERVER: :%s 483 %s :You have no chance to kill a SERVER make your time. diff --git a/messages/custom.lang b/messages/custom.lang new file mode 100644 index 0000000..c644d97 --- /dev/null +++ b/messages/custom.lang @@ -0,0 +1,20 @@ +; A compilation of original h5/h6/bsdnet numerics +; $Id$ + +RPL_CREATED: :%s 003 %s :This server rose from the ashes %s +RPL_STATSUPTIME: :%s 242 %s :Dianora hasn't messed with the server code now in %d days, %d:%02d:%02d +RPL_LUSEROP: :%s 252 %s %d :Smurf Targets (IRC Operators) online +RPL_LOAD2HI: :%s 263 %s :Hold your horses... the server load is temporarily too heavy. Try again later, ok? +RPL_UNAWAY: :%s 305 %s :OK, you're not /away anymore. Did you have fun? +RPL_NOWAWAY: :%s 306 %s :OK, you're /away now. Hurry back! +RPL_WHOISOPERATOR: :%s 313 %s %s :is a Smurf Target (IRC Operator) +RPL_WHOISADMIN: :%s 313 %s %s :is a Smurf Magnet (IRC Administrator) +RPL_YOUREOPER: :%s 381 %s :You have the phorce. Use it wisely. +RPL_REHASHING: :%s 382 %s %s :it slices, dices, and even reloads config files! Rehashing config file, mang. +ERR_PASSWDMISMATCH: :%s 464 %s :BZZZT!! Wrong password, dewd. Are you sure you know what you're doing? +ERR_YOUREBANNEDCREEP: :%s 465 %s :You are BANNED from this server - %s +ERR_NOPRIVILEGES: :%s 481 %s :UHHH, I don't THINK so, dewd... you ain't got those mad l33+ sk1llz. (IRC Operator) +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You can't do that thing, when you don't have that swing (You're not channel operator) +ERR_CANTKILLSERVER: :%s 483 %s :Don't be an idiot - you can't kill a SERVER, fool. +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Unknown MODE flag - you smokin' something? +ERR_USERSDONTMATCH: :%s 502 %s :You can't change user modes for other users, silly - check that nickname again. diff --git a/messages/ircd-brazilian_pt.lang b/messages/ircd-brazilian_pt.lang new file mode 100644 index 0000000..204b0de --- /dev/null +++ b/messages/ircd-brazilian_pt.lang @@ -0,0 +1,127 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2003 +; Marcelo Lipienski <und3rl1n3d@gmail.com> +; $Id$ + +RPL_WELCOME: :%s 001 %s :Bem-vindo a %s Internet Relay Chat Network %s +RPL_YOURHOST: :%s 002 %s :Você está no servidor %s, rodando a versão %s +RPL_CREATED: :%s 003 %s :Este servidor foi criado %s +RPL_ISUPPORT: :%s 005 %s %s :são suportados por este servidor +RPL_REDIR: :%s 010 %s %s %d :Por favor use este Servidor/Porta +RPL_MAPEND: :%s 017 %s :Fim do /MAP +RPL_YOURID: :%s 042 %s %s :seu ID +RPL_TRACELINK: :%s 200 %s Link %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Tente. %s %s +RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s +RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d +RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s Usuário %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <novo tipo> 0 %s +RPL_TRACECLASS: :%s 209 %s Classe %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Fim do relatório do /STATS +RPL_STATSUPTIME: :%s 242 %s :Servidor ligado %d dias, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Máximo de conexões: %d (%d clientes) (%llu conexões recebidas) +RPL_LUSERCLIENT: :%s 251 %s :Existem %d usuários e %d invisíveis em %d servidores +RPL_LUSEROP: :%s 252 %s %d :Operadores do IRC conectados +RPL_LUSERUNKNOWN: :%s 253 %s %d :conexão(ões) desconhecidas +RPL_LUSERCHANNELS: :%s 254 %s %d :canais criados +RPL_LUSERME: :%s 255 %s :Eu tenho %d clientes e %d servidores +RPL_ADMINME: :%s 256 %s :Informações administrativas sobre %s +RPL_ENDOFTRACE: :%s 262 %s %s :Fim do /TRACE +RPL_LOAD2HI: :%s 263 %s :O servidor está temporariamente sobrecarregado. Por favor aguarde e tente novamente. +RPL_LOCALUSERS: :%s 265 %s :Usuários locais atualmente: %d Máximo: %d +RPL_GLOBALUSERS: :%s 266 %s :Usuários globais atualmente: %d Máximo: %d +RPL_ENDOFACCEPT: :%s 282 %s :Fim da lista /ACCEPT. +RPL_UNAWAY: :%s 305 %s :Você não está mais marcado como away +RPL_NOWAWAY: :%s 306 %s :Você foi marcado como estando away +RPL_WHOISADMIN: :%s 313 %s %s :é um Administrador do Servidor +RPL_WHOISOPERATOR: :%s 313 %s %s :é um Operador do IRC +RPL_ENDOFWHO: :%s 315 %s %s :Fim do /WHO. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :segundos inativo +RPL_ENDOFWHOIS: :%s 318 %s %s :Fim do /WHOIS. +RPL_LISTSTART: :%s 321 %s Canal :Usuário Nome +RPL_LISTEND: :%s 323 %s :Fim do /LIST +RPL_NOTOPIC: :%s 331 %s %s :Nenhum tópico setado. +RPL_WHOISACTUALLY: :%s 338 %s %s %s :servidor atualmente sendo usado +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fim da lista de convidados do canal +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fim da lista de exceções do canal +RPL_CLOSING: :%s 362 %s %s :Fechado. Status = %d +RPL_CLOSEEND: :%s 363 %s %d: Conexões fechadas +RPL_ENDOFLINKS: :%s 365 %s %s :Fim do /LINKS. +RPL_ENDOFNAMES: :%s 366 %s %s :Fim do /NAMES. +RPL_ENDOFBANLIST: :%s 368 %s %s :Fim da lista de banidos do canal +RPL_ENDOFWHOWAS: :%s 369 %s %s :Fim do /WHOWAS +RPL_INFOSTART: :%s 373 %s :Informações do servidor +RPL_ENDOFINFO: :%s 374 %s :Fim do /INFO +RPL_MOTDSTART: :%s 375 %s :- %s Mensagem do dia - +RPL_ENDOFMOTD: :%s 376 %s :Fim do /MOTD. +RPL_YOUREOPER: :%s 381 %s :Você entrou... na Zona do Crepúsculo! +RPL_REHASHING: :%s 382 %s %s :Recarregando +RPL_HOSTHIDDEN: :%s 396 %s :agora seu host está escondido +ERR_NOSUCHNICK: :%s 401 %s %s :Nenhum canal/nick +ERR_NOSUCHSERVER: :%s 402 %s %s :Nenhum servidor +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nenhum canal +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Não pode enviar para o canal +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Você está em muitos canais +ERR_WASNOSUCHNICK: :%s 406 %s %s :Não existe este nick +ERR_TOOMANYTARGETS: :%s 407 %s %s :Muitos destinos. Somente %d processados +ERR_NOORIGIN: :%s 409 %s :Nenhuma origem especificada +ERR_NORECIPIENT: :%s 411 %s :Nenhum destino especificado (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Nenhum texto para mandar +ERR_NOTOPLEVEL: :%s 413 %s %s :Nenhum domínio de nível auto especificado +ERR_WILDTOPLEVEL: :%s 414 %s %s :Coringa no domínio de nível auto +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comando desconhecido +ERR_NOMOTD: :%s 422 %s :Arquivo MOTD faltando +ERR_NOADMININFO: :%s 423 %s %s :Nenhuma informação administrativa +ERR_NONICKNAMEGIVEN: :%s 431 %s :Nenhum nick informado +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nick errado +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick já está em uso. +ERR_NICKCOLLISION: :%s 436 %s %s :Colisão de nicks KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/canal está temporariamente indisponível +ERR_NICKTOOFAST: :%s 438 %s %s %s :Mudança de nick muito rápida. Por favor, espere %d segundos. +ERR_SERVICESDOWN: :%s 440 %s :Serviços estão atualmente fora do ar. +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Eles não estão naquele canal +ERR_NOTONCHANNEL: :%s 442 %s %s :Você não está naquele canal +ERR_USERONCHANNEL: :%s 443 %s %s %s :já está no canal +ERR_NOTREGISTERED: :%s 451 %s :Você não está registrado +ERR_ACCEPTFULL: :%s 456 %s :Lista de aceitos está cheia +ERR_ACCEPTEXIST: :%s 457 %s %s :já está na sua lista de aceitos +ERR_ACCEPTNOT: :%s 458 %s %s :não está em sua lista de aceitos +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parâmetros insuficientes +ERR_ALREADYREGISTRED: :%s 462 %s :Você não deve se re-registrar +ERR_PASSWDMISMATCH: :%s 464 %s :Senha incorreta +ERR_YOUREBANNEDCREEP: :%s 465 %s :Você está banido deste servidor- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Não pode entrar no canal (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :é um modo desconhecido para mim +ERR_INVITEONLYCHAN: :%s 473 %s %s :Não pode entrar no canal (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Não pode entrar no canal (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Não pode entrar no canal (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Lista de banidos do canal está cheia +ERR_BADCHANNAME: :%s 479 %s %s :Nome de canal ilegal +ERR_NOPRIVILEGES: :%s 481 %s :Permissão negada - Você não é um Operador de IRC +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Você não é um operador do canal +ERR_CANTKILLSERVER: :%s 483 %s :Você não pode dar KILL em um servidor! +ERR_RESTRICTED: :%s 484 %s :Você está restrito +ERR_NOOPERHOST: :%s 491 %s :Só alguns meros mortais devem tentar entrar na Zona do Crepúsculo +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Parâmetro do MODE desconhecida +ERR_USERSDONTMATCH: :%s 502 %s :Não pode alterar os modos de outros usuários +ERR_GHOSTEDCLIENT: :%s 503 %s :Mensagem não pode ser entregue para %s +ERR_USERNOTONSERV: :%s 504 %s %s :Usuário não está neste servidor +ERR_WRONGPONG: :%s 513 %s :Para conectar, digite /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Sintaxe má formada para lista +ERR_HELPNOTFOUND: :%s 524 %s %s :Ajuda não encontrada +RPL_WHOISSECURE: :%s 671 %s %s :é conectado via SSL (link seguro) +RPL_ENDOFMODLIST: :%s 703 %s :Fim de /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :Fim de /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :pediu por um convite. +RPL_KNOCKDLVR: :%s 711 %s %s :Seu KNOCK foi enviado. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Muitos KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :Canal está aberto. +ERR_KNOCKONCHAN: :%s 714 %s %s :Você já está no canal. +RPL_TARGUMODEG: :%s 716 %s :%s está com o modo +g (lado do servidor ignora.) +RPL_TARGNOTIFY: :%s 717 %s :%s foram informados que você enviou uma mensagem para eles. +RPL_UMODEGMSG: :%s 718 %s %s :está mandando uma mensagem para você, e você está com o modo +g. +ERR_NOPRIVS: :%s 723 %s %s :Privilégios de oper insuficientes. +RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Clientes local/remote batem. +RPL_NOTESTLINE: :%s 726 %s %s :Não encontrado diff --git a/messages/ircd-bulgarian.lang b/messages/ircd-bulgarian.lang new file mode 100644 index 0000000..45b39af --- /dev/null +++ b/messages/ircd-bulgarian.lang @@ -0,0 +1,99 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2010 Bulgarian interface +; Borislav Borisov <VoodooServ@mail.bg>, 2010. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Äîáðe äîøúë â %s ìðåæàòà %s +RPL_YOURHOST: :%s 002 %s :Âàøèÿ ñúðâúð %s, âåðñèÿ %s +RPL_CREATED: :%s 003 %s :Ñúðâúðà å ñúçäàäåí %s +RPL_ISUPPORT: :%s 005 %s %s :ñúâìåñòèì +RPL_REDIR: :%s 010 %s %s %d :Æåëàòåëíî å äà ïîëçâàòå òîçè ñúðâúð/ïîðò +RPL_MAPEND: :%s 017 %s :Êðàé íà /MAP +RPL_YOURID: :%s 042 %s %s :âàøèÿò óíèêàëåí ID +RPL_ENDOFSTATS: :%s 219 %s %c :Êðàé íà îò÷åòà /STATS +RPL_STATSUPTIME: :%s 242 %s :Ñúðâúðà ðàáîòè %d äåíà, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Íàé ãîëÿìî êîëè÷åñòâî ñâúðçàíè: %d (%d êëèåíòè) (%llu âõîäÿùè ñâúðçâàíèÿ) +RPL_LUSERCLIENT: :%s 251 %s : ìîìåíòà èìà %d ïîòðåáèòåëÿ %d íåâèäèìè íà %d ñúðâúðà +RPL_LUSEROP: :%s 252 %s %d :IRC Îïúðè íà ëèíèÿ +RPL_LUSERUNKNOWN: :%s 253 %s %d :íåèçâåñòíè ñâðúçêè +RPL_LUSERCHANNELS: :%s 254 %s %d :ñôîðìèðàíè êàíàëè +RPL_LUSERME: :%s 255 %s :Ñúðâúðà èìà %d êëèåíòè è %d ñúðâúðè +RPL_ADMINME: :%s 256 %s :Èíôîðìàöèÿ çà àäìèíèñòðàòîðà íà %s +RPL_ENDOFTRACE: :%s 262 %s %s :Çàâúðøâàíå íà TRACE +RPL_LOAD2HI: :%s 263 %s :Ñúðâúðà âðåìåííî å ïðåòîâàðåí. Ìîëÿ èç÷àêàéòå ìîìåíò è îïèòàèòå îòíîâî. +RPL_LOCALUSERS: :%s 265 %s :Òåêóùî êîëè÷åñòâî ëîêàëíè ïîòðåáèòåëè: %d Ìàêñèìàëíî: %d +RPL_GLOBALUSERS: :%s 266 %s :Òåêóùî êîëè÷åñòâî ãëîáàëíè ïîòðåáèòåëè: %d Ìàêñèìàëíî: %d +RPL_UNAWAY: :%s 305 %s :Âå÷å íå ñòå ìàðêèðàí êàòî away +RPL_NOWAWAY: :%s 306 %s :Ìàðêèðàí ñòå êàòî away +RPL_WHOISADMIN: :%s 313 %s %s :å Ñúðâúð Àäìèíèñòðàòîð +RPL_ENDOFWHO: :%s 315 %s %s :Êðàé íà ñïèñúêà /WHO +RPL_WHOISIDLE: :%s 317 %s %s %d %d :ñåêóíäè ìúë÷è (IDLE). +RPL_ENDOFWHOIS: :%s 318 %s %s :Êðàé íà ñïèñúêà /WHOIS. +RPL_LISTEND: :%s 323 %s :Êðàé íà ñïèñúêà /LIST +RPL_NOTOPIC: :%s 331 %s %s :Íÿìà ïîñòàâåí òîïèê. +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Êðàé íà ñïèñúêà íà ïîêàíåíè â êàíàëà. +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Êðàé íà ñïèñúêà ñ èçêëþ÷åíèÿ â êàíàëà. +RPL_CLOSING: :%s 362 %s %s :Çàòâîðåí. Ñòàòóñ = %d +RPL_CLOSEEND: :%s 363 %s %d :Âðúçêàòà çàòâîðåíà +RPL_ENDOFLINKS: :%s 365 %s %s :Êðàé íà ñïèñúêà /LINKS. +RPL_ENDOFNAMES: :%s 366 %s %s :Êðàé íà ñïèñúêà /NAMES. +RPL_ENDOFBANLIST: :%s 368 %s %s :Êðàé íà ñïèñúêà íà áàííàòè â Êàíàëà +RPL_ENDOFWHOWAS: :%s 369 %s %s :Êðàé íà WHOWAS +RPL_ENDOFINFO: :%s 374 %s :Êðàé íà ñïèñúêà /INFO +RPL_MOTDSTART: :%s 375 %s :- %s Èíôî çà äåíÿ - +RPL_ENDOFMOTD: :%s 376 %s :Êðàé íà /MOTD. +RPL_YOUREOPER: :%s 381 %s :Âèå âëåçíàõòå â ... Çîíàòà Íà Çäðà÷à! +RPL_REHASHING: :%s 382 %s %s :Ïðåïðî÷èòàíå íà ôàéëà ñ íàñòðîéêè íà ñúðâúðà. +ERR_NOSUCHNICK: :%s 401 %s %s :Íèê/êàíàë íå å íàìåðåí +ERR_NOSUCHSERVER: :%s 402 %s %s :Ñúðâúðà íå å íàìåðåí +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Êàíàëà íå å íàìåðåí +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Íåâúçìîæíî äà ñå ïðàòè â êàíàëà +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Âèå ñòå âëåçëè â ïðåêàëåíî ãîëÿìî êîëè÷åñòâî êàíàëè +ERR_WASNOSUCHNICK: :%s 406 %s %s :Íå å îòêðèò òàêúâ íèê +ERR_NOORIGIN: :%s 409 %s :Èñòî÷íèêà íå å èçâåñòåí +ERR_NOTEXTTOSEND: :%s 412 %s :Íÿìà òåêñò çà ïðàùàíå +ERR_NOTOPLEVEL: :%s 413 %s %s :Íå å óêàçàí äîìåí... +ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard ñèìâîë â äîìåíà íå ñúîòâåòñòâà +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Íåèçâåñíà êîìàíäà +ERR_NOMOTD: :%s 422 %s :Ôàéë MOTD íå å íàìåðåí +ERR_NOADMININFO: :%s 423 %s %s :Èíôîðìàöèÿ çà àäìèíà íå å äîñòúïíà +ERR_NONICKNAMEGIVEN: :%s 431 %s :Íÿìà èíôî çà íèêà +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Íåâåðåí íèê +ERR_NICKNAMEINUSE: :%s 433 %s %s :Òîçè íèê â ìîìåíòà ñå ïîëçâà. +ERR_NICKCOLLISION: :%s 436 %s %s :Ñúâïàäåíèå íà íèêà KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Íèê/êàíàë âðåìåííî íåäîñòúïåí +ERR_SERVICESDOWN: :%s 440 %s :Services âðåìåíî íå ñà íà ëèíèÿ. +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Ïîòðåáèòåëÿ íå ñå íàìèðà â òîçè êàíàë +ERR_NOTONCHANNEL: :%s 442 %s %s :Íå ñòå â òîçè êàíàë +ERR_USERONCHANNEL: :%s 443 %s %s %s :âèå âå÷å ñòå â òîçè êàíàë +ERR_NOTREGISTERED: :%s 451 %s :Âèå íå ñòå ðåãèñòðèðàí +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Íåäîñòàòú÷íî ïàðàìåòðè +ERR_ALREADYREGISTRED: :%s 462 %s :Âèå íå ìîæåòå äà ñå ðåãèñòðèðàòå +ERR_PASSWDMISMATCH: :%s 464 %s :Íåâÿðíà ïàðîëà +ERR_YOUREBANNEDCREEP: :%s 465 %s :Íà âàñ âè å çàáàíåí òîçè ñúðâúð- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :íåèçâåñòåí ñèìâîë íà ðåæèì +ERR_INVITEONLYCHAN: :%s 473 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Íåâúçìîæíî å âëèçàíåòî â êàíàëà (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Áàí ëèñòà â êàíàëà å ïåðåïúëíåí +ERR_BADCHANNAME: :%s 479 %s %s :Íåäîïóñòèìî èìå íà êàíàëà +ERR_NOPRIVILEGES: :%s 481 %s :Äîñòúï îòêàçàí - Âèå íÿìàòå ñòàòóò íà IRC îïåðàòîð +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Âèå íå ñòå îïåðàòîð íà êàíàëà +ERR_CANTKILLSERVER: :%s 483 %s :Âèå íå ìîæåòå äà óáèåòå ñúðâúðà! +ERR_RESTRICTED: :%s 484 %s :Âèå ñòå îãðàíè÷åí (RESTRICTED). +ERR_NOOPERHOST: :%s 491 %s :Ñàìî ìàëöèíà ñìúðòíè ìîãàò äà ñå îïèòàò äà âëåçíàò â çîíàòà íà çäðà÷à +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Íåèçâåñòåí MODE ôëàã +ERR_USERSDONTMATCH: :%s 502 %s :Íå ìîæåòå äà ïðîìåíÿòå ðåæèìà íà äðóãèòå ïîòðåáèòåëè +ERR_GHOSTEDCLIENT: :%s 503 %s :Èíôîòî íå ìîæå äà ñå äîñòàâè äî %s +ERR_USERNOTONSERV: :%s 504 %s %s :Ïîòðåáèòåëÿ íå ñå íàìèðà íà òîçè ñúðâúð +ERR_WRONGPONG: :%s 513 %s :Çà äà ñå ñâúðæèø íàïèøè /QUOTE PONG %lu +ERR_HELPNOTFOUND: :%s 524 %s %s :Ôàéëà ñ ïîìîùíà èíôîðìàöèÿ íå å íàìåðåí +RPL_WHOISSECURE: :%s 671 %s %s :å ñâúçðàí ïðåç SSL (øèôðîâàíà âðúçêà) +RPL_ENDOFMODLIST: :%s 703 %s :Êðàé íà ëèñòà /MODLIST. +RPL_ENDOFHELP :%s 706 %s %s :Êðàé íà ëèñò-à /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :ïèòà çà ïîêàíà. +RPL_KNOCKDLVR: :%s 711 %s %s :Âàøèÿ KNOCK å äîñòàâåí. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Òâúðäå ìíîãî KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :Êàíàëà å îòâîðåí. +ERR_KNOCKONCHAN: :%s 714 %s %s :Âèå âå÷å ñòå â òîçè êàíàë. diff --git a/messages/ircd-croatian.lang b/messages/ircd-croatian.lang new file mode 100644 index 0000000..d18f665 --- /dev/null +++ b/messages/ircd-croatian.lang @@ -0,0 +1,94 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2000 +; David Taylor <davidt@yadt.co.uk>, 2000. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Dobro do¹li na %s Internet Relay Chat Network %s +RPL_YOURHOST: :%s 002 %s :Va¹ host je %s, i koristi verziju %s +RPL_CREATED: :%s 003 %s :Ovaj server je postavljen %s +RPL_ISUPPORT: :%s 005 %s %s :su podr¾ani na ovom serveru +RPL_REDIR: :%s 010 %s %s %d :Molim Vas, koristite ovaj server/port +RPL_TRACECONNECTING: :%s 201 %s Poku¹ajte. %s %s +RPL_TRACEUSER: :%s 205 %s Korisnik %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <novi tip> 0 %s +RPL_TRACECLASS: :%s 209 %s Klasa %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Kraj /STATS izvje¹taja +RPL_STATSUPTIME: :%s 242 %s :Server radi %d dana, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Najveæi broj veza: %d (%d klijenata) (%llu veza zaprimljeno)) +RPL_LUSERCLIENT: :%s 251 %s :Ima %d korisnika i %d nevidljivih na %d servera +RPL_LUSEROP: :%s 252 %s %d :IRC Operatora na vezi +RPL_LUSERUNKNOWN: :%s 253 %s %d :nepoznatih veza +RPL_LUSERCHANNELS: :%s 254 %s %d :kanala formirano +RPL_LUSERME: :%s 255 %s :Imam %d klijenata i %d servera +RPL_ADMINME: :%s 256 %s :Administrativne informacije o %s +RPL_ENDOFTRACE: :%s 262 %s %s :Kraj TRACEa +RPL_LOAD2HI: :%s 263 %s :Prièekajte, server je trenutno preoptereæen. +RPL_LOCALUSERS: :%s 265 %s :Trenutno lokalnih korisnika: %d Maks: %d +RPL_GLOBALUSERS: :%s 266 %s :Trenutno globalnih korisnika: %d Maks: %d +RPL_UNAWAY: :%s 305 %s :OK, nisi vi¹e /away. Je li bilo zabavno? +RPL_NOWAWAY: :%s 306 %s :OK, sad si /away. Po¾uri!! +RPL_ENDOFWHO: :%s 315 %s %s :Kraj /WHO liste. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekundi neaktivan, vrijeme prijave +RPL_ENDOFWHOIS: :%s 318 %s %s :Kraj /WHOIS liste. +RPL_LISTSTART: :%s 321 %s Kanal :Korisnici Ime +RPL_LISTEND: :%s 323 %s :Kraj /LIST-a +RPL_NOTOPIC: :%s 331 %s %s :Topic nije postavljen. +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Kraj liste pozvanih na kanal +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Kraj liste iznimaka za kanal +RPL_CLOSING: :%s 362 %s %s :Zatvoren. Status = %d +RPL_CLOSEEND: :%s 363 %s %d: Zatvorenih veza +RPL_ENDOFLINKS: :%s 365 %s %s :Kraj /LINKS liste. +RPL_ENDOFNAMES: :%s 366 %s %s :Kraj /NAMES liste. +RPL_ENDOFBANLIST: :%s 368 %s %s :Kraj liste banova za kanal +RPL_ENDOFWHOWAS: :%s 369 %s %s :Kraj WHOWAS-a +RPL_ENDOFINFO: :%s 374 %s :Kraj /INFO liste. +RPL_MOTDSTART: :%s 375 %s :- %s Poruka dana - +RPL_ENDOFMOTD: :%s 376 %s :Kraj /MOTD komande. +RPL_YOUREOPER: :%s 381 %s :Au, sad si veliki jebaè! :). +RPL_REHASHING: :%s 382 %s %s :Uèitavam promijenjenu konfiguraciju +ERR_NOSUCHNICK: :%s 401 %s %s :Nema takvog nicka/kanala +ERR_NOSUCHSERVER: :%s 402 %s %s :Nema takvog servera +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nema takvog kanala +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Ne mo¾e¹ poslati ni¹ta na kanal +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Joinao si se na previ¹e kanala +ERR_WASNOSUCHNICK: :%s 406 %s %s :Nije bilo takvog nicka. +ERR_TOOMANYTARGETS: :%s 407 %s %s :Previ¹e odredi¹ta - samo %d procesirano +ERR_NOORIGIN: :%s 409 %s :Izvori¹te nije specificirano +ERR_NORECIPIENT: :%s 411 %s :Nije specificiran primatelj (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Nema teksta koji bih poslao. +ERR_NOTOPLEVEL: :%s 413 %s %s :Nije specificirana vr¹na domena +ERR_WILDTOPLEVEL: :%s 414 %s %s :Nedovoljno precizno definirana vr¹na domena +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Nepoznata komanda +ERR_NOMOTD: :%s 422 %s :MOTD spis ne postoji +ERR_NOADMININFO: :%s 423 %s %s :Nema administrativnih informacija +ERR_NONICKNAMEGIVEN: :%s 431 %s :Nisi naveo nick +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Pogre¹an nick. +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick je veæ u upotrebi. +ERR_NICKCOLLISION: :%s 436 %s %s :Nick kolizija, KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kanal trenutno nije na raspolaganju +ERR_NICKTOOFAST: :%s 438 %s %s %s :Prebrza promjena nicka. Molim, prièekaj %d sekundi +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nije na tom kanalu +ERR_NOTONCHANNEL: :%s 442 %s %s :Nisi na tom kanalu +ERR_USERONCHANNEL: :%s 443 %s %s %s :je veæ na kanalu +ERR_NOTREGISTERED: :%s 451 %s :Nisi se registrirao/la +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Nedovoljno parametara +ERR_ALREADYREGISTRED: :%s 462 %s :Ne mo¾e¹ se ponovo registrirati +ERR_PASSWDMISMATCH: :%s 464 %s :Kriva lozinka - poku¹aj ponovo! +ERR_YOUREBANNEDCREEP: :%s 465 %s :Zabranjen ti je pristup ovom serveru- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Ne mo¾e¹ uæi na kanal (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :je meni nepoznata oznaka moda +ERR_INVITEONLYCHAN: :%s 473 %s %s :Ne mo¾e¹ uæi na kanal (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Ne mo¾e¹ uæi na kanal (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Ne mo¾e¹ uæi na kanal (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Lista banova na kanalu je puna +ERR_BADCHANNAME: :%s 479 %s %s :Krivo ime kanala +ERR_NOPRIVILEGES: :%s 481 %s :Nije ti dozvoljeno, ¾ao mi je, nisi IRC operator +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Ne mo¾e¹ to napraviti, nisi operator na kanalu. +ERR_CANTKILLSERVER: :%s 483 %s :Ne budi blesav, ne mo¾e¹ /KILL-ati server :) +ERR_RESTRICTED: :%s 484 %s :Na ogranièenoj si vezi +ERR_NOOPERHOST: :%s 491 %s :®ao mi je, ne mo¾e¹ se /OPER-ati ovdje. +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Nepoznata MODE oznaka +ERR_USERSDONTMATCH: :%s 502 %s :Ne mo¾e¹ mijenjati modove drugim korisnicima +ERR_GHOSTEDCLIENT: :%s 503 %s :Poruku nije moguæe dostaviti na %s +ERR_USERNOTONSERV: :%s 504 %s %s :Korisnik nije na ovom serveru diff --git a/messages/ircd-danish.lang b/messages/ircd-danish.lang new file mode 100644 index 0000000..0bdb497 --- /dev/null +++ b/messages/ircd-danish.lang @@ -0,0 +1,93 @@ +; ircd-hybrid-7 custom message file for danish use +; Copyright (C) YEAR Free Software Foundation, Inc. +; Xride +; Soren Straarup <xride@x12.dk>, 2001. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Velkommen til %s Internet Rel‘ Netv‘rket %s +RPL_YOURHOST: :%s 002 %s :Din v‘rt er %s, k›rer version %s +RPL_CREATED: :%s 003 %s :Denne server var lavet %s +RPL_ISUPPORT: :%s 005 %s %s :er supporteret af denne server +RPL_REDIR: :%s 010 %s %s %d :Brug venligst denne Server/Port isteddet +RPL_TRACELINK: :%s 200 %s Forbindelse %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Pr›v. %s %s +RPL_TRACEUSER: :%s 205 %s Bruger %s %s (%s) %lu %lu +RPL_TRACECLASS: :%s 209 %s Klasse %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Slutningen p† /STATS rapporten +RPL_STATSUPTIME: :%s 242 %s :Server oppe %d dag(e), %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :H›jeste forbindelser antal: %d (%d brugere) (%llu forbindelser modtaget) +RPL_LUSERCLIENT: :%s 251 %s :Der er %d brugere og %d usynlige p† %d servere +RPL_LUSEROP: :%s 252 %s %d :IRC Operatorer er her +RPL_LUSERUNKNOWN: :%s 253 %s %d :ukendt forbindelse(r) +RPL_LUSERCHANNELS: :%s 254 %s %d :rum er etableret +RPL_LUSERME: :%s 255 %s :Jeg har %d brugere og %d serverer +RPL_ADMINME: :%s 256 %s :Adminstrativ info om %s +RPL_ENDOFTRACE: :%s 262 %s %s :Slutningen p† TRACE +RPL_LOAD2HI: :%s 263 %s :Server forbruget er midlertidigt for stort. Vent venligst lidt og pr›v s† igen. +RPL_LOCALUSERS: :%s 265 %s :Nuv†rende lokale brugere: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Nuv†rende globale brugere: %d Max: %d +RPL_UNAWAY: :%s 305 %s :Du er ikke l‘ngere markeret som v‘rende v‘k +RPL_NOWAWAY: :%s 306 %s :Du er markeret som v‘rende v‘k +RPL_ENDOFWHO: :%s 315 %s %s :Slutningen p† /WHO listen. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunders stilhed, ankomst tidspunkt +RPL_ENDOFWHOIS: :%s 318 %s %s :Slutningen p† /WHOIS listen. +RPL_LISTSTART: :%s 321 %s Rum :Brugers Navne +RPL_LISTEND: :%s 323 %s :Slutnigen p† /LIST +RPL_NOTOPIC: :%s 331 %s %s :Ingen overskrift er bestemt. +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slutningen p† Rummets Invitations Liste +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slutningen p† Rummets Undtagelses Liste +RPL_CLOSING: :%s 362 %s %s :Lukket. Status = %d +RPL_CLOSEEND: :%s 365 %s %d: Forbindelser afbrudt +RPL_ENDOFLINKS: :%s 365 %s %s :Slutningen p† /LINKS listen. +RPL_ENDOFNAMES: :%s 366 %s %s :Slutningen p† /NAMES listen. +RPL_ENDOFBANLIST: :%s 368 %s %s :Slutningen p† Rummets Ban liste +RPL_ENDOFWHOWAS: :%s 369 %s %s :Slutningen p† WHOWAS +RPL_ENDOFINFO: :%s 374 %s :Slutningen p† /INFO listen. +RPL_MOTDSTART: :%s 375 %s :- %s Dagens besked - +RPL_ENDOFMOTD: :%s 376 %s :Slutningen p† /MOTD kommandoen +RPL_YOUREOPER: :%s 381 %s :Du har tr†dt ind i .. tusm›rket.. +RPL_REHASHING: :%s 382 %s %s :Genindldser konfigurations filerne +ERR_NOSUCHNICK: :%s 401 %s %s :Intet nick/rum blev fundet +ERR_NOSUCHSERVER: :%s 402 %s %s :Igen s†dan server blev fundet +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Rummet findes ikke +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ikke sende til Rummet +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du er i for mange rum +ERR_WASNOSUCHNICK: :%s 406 %s %s :nicket findes ikke +ERR_TOOMANYTARGETS: :%s 407 %s %s :For mange modtagere. kun %d blev udf›rt +ERR_NOORIGIN: :%s 409 %s :Intet start punkt er angivet +ERR_NORECIPIENT: :%s 411 %s :Ingen modtagere er (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Ingen tekst til at sende +ERR_NOTOPLEVEL: :%s 413 %s %s :Intet toplevel domain er specificeret +ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard i toplevel Domain +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Ukendt kommando +ERR_NOMOTD: :%s 422 %s :MOTD Filen findes ikke +ERR_NOADMININFO: :%s 423 %s %s :Ingen adminstrative info er tilg‘ngelige +ERR_NONICKNAMEGIVEN: :%s 431 %s :Intet nick er angivet +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Fejl i nick +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick allerede i brug. +ERR_NICKCOLLISION: :%s 436 %s %s :Nick kollition KILL (drabt) +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/rum er midlertidig ikke tilg‘ngelig +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De er ikke i rummet +ERR_NOTONCHANNEL: :%s 442 %s %s :Du er ikke i det rum +ERR_USERONCHANNEL: :%s 443 %s %s %s :er allerede i rummet +ERR_NOTREGISTERED: :%s 451 %s :Du er ikke registreret +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ikke nok paramtre +ERR_ALREADYREGISTRED: :%s 462 %s :Du m† ikke genregistrerer +ERR_PASSWDMISMATCH: :%s 464 %s :Forkert kodeord +ERR_YOUREBANNEDCREEP: :%s 456 %s :Du er udelukket fra denne server- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Kan ikke deltage i rummet (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :er ukendt mode bogstav for mig +ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ikke deltage i rummet (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ikke deltage i rummet (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ikke deltage i rummet (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Rummets ban liste er fuld +ERR_BADCHANNAME: :%s 479 %s %s :Illegalt navn for et Rum +ERR_NOPRIVILEGES: :%s 481 %s :Udf›relse N‘gtet - Du er ikke en IRC operator +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du er ikke operator i dette rum +ERR_CANTKILLSERVER: :%s 483 %s :Du kan ikke KILL (dr‘be) en server! +ERR_RESTRICTED: :%s 484 %s :Du er begr‘nset +ERR_NOOPERHOST: :%s 491 %s :Kun f† d›delige kan pr›ve at tr‘de ind i tudsm›rket +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Ukendt MODE flag +ERR_USERSDONTMATCH: :%s 502 %s :Kan ikke ‘ndre mode for andre brugere +ERR_GHOSTEDCLIENT: :%s 503 %s :Beskeden kunne ikke blive leveret til %s +ERR_USERNOTONSERV: :%s 504 %s %s :Brugeren er ikke p† denne server diff --git a/messages/ircd-dutch.lang b/messages/ircd-dutch.lang new file mode 100644 index 0000000..0056e90 --- /dev/null +++ b/messages/ircd-dutch.lang @@ -0,0 +1,123 @@ +; ircd-hybrid-7 standard message file - Dutch language +; Copyright (C) 2005 Kenneth Pang <nexu.jin@gmail.com> +; $Id$ + +RPL_WELCOME: :%s 001 %s :Welkom op het %s Internet Relay Netwerk %s +RPL_YOURHOST: :%s 002 %s :Jouw host is %s, werkend met versie %s +RPL_CREATED: :%s 003 %s :Deze server is gecreerd op %s +RPL_ISUPPORT: :%s 005 %s %s :zijn ondersteund door deze server +RPL_REDIR: :%s 010 %s %s %d :Gebruik deze Server/Poort A.U.B. +RPL_MAPEND: :%s 017 %s :Einde van /MAP +RPL_YOURID: :%s 042 %s %s :jouw unieke ID +RPL_TRACELINK: :%s 200 %s Link %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Probeer. %s %s +RPL_TRACEOPERATOR: :%s 204 %s Operator %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s Gebruiker %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <nieuwtype> 0 %s +RPL_TRACECLASS: :%s 209 %s Klasse %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Einde van /STATS rapportage +RPL_STATSUPTIME: :%s 242 %s :Server is al %d dagen up, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Hoogst aantal connecties: %d (%d clients) (%llu connecties ontvangen) +RPL_LUSERCLIENT: :%s 251 %s :Er zijn %d zichtbare -en %d onzichtbare gebruikers op %d servers +RPL_LUSEROP: :%s 252 %s %d :IRC Operators verbonden +RPL_LUSERUNKNOWN: :%s 253 %s %d :onbekende connectie(s) +RPL_LUSERCHANNELS: :%s 254 %s %d :kanalen gevormd +RPL_LUSERME: :%s 255 %s :Ik heb %d gebruikers en %d servers +RPL_ADMINME: :%s 256 %s :Administratieve informatie over %s +RPL_ENDOFTRACE: :%s 262 %s %s :Einde van TRACE +RPL_LOAD2HI: :%s 263 %s :Server is tijdelijk overbelast. Wacht even en probeer het opnieuw. +RPL_LOCALUSERS: :%s 265 %s :Huidige lokale gebruikers: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Huidige globale gebruikers: %d Max: %d +RPL_ENDOFACCEPT: :%s 282 %s :Einde van /ACCEPT lijst. +RPL_UNAWAY: :%s 305 %s :Je bent niet langer gemarkeerd als afwezig +RPL_NOWAWAY: :%s 306 %s :Je bent nu gemarkeerd als afwezig +RPL_WHOISADMIN: :%s 313 %s %s :is een Server Administrator +RPL_WHOISOPERATOR: :%s 313 %s %s :is een IRC Operator +RPL_ENDOFWHO: :%s 315 %s %s :Einde van /WHO lijst. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconden niks uitgevoerd +RPL_ENDOFWHOIS: :%s 318 %s %s :Einde van /WHOIS lijst. +RPL_LISTSTART: :%s 321 %s Kanaal :Gebruikers Naam +RPL_LISTEND: :%s 323 %s :Einde van /LIST +RPL_NOTOPIC: :%s 331 %s %s :Er is geen onderwerp gezet +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Einde van Kanaal Uitnodigings-lijst +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Einde van Kanaal Uitzondering-lijst +RPL_CLOSING: :%s 362 %s %s :Gesloten. Status = %d +RPL_CLOSEEND: :%s 363 :%s %d: Verbindingen Gesloten +RPL_ENDOFLINKS: :%s 365 %s %s :Einde van /LINKS lijst. +RPL_ENDOFNAMES: :%s 366 %s %s :Einde van /NAMES lijst. +RPL_ENDOFBANLIST: :%s 368 %s %s :Einde van Kanaal Verbannen Lijst +RPL_ENDOFWHOWAS: :%s 369 %s %s :Einde van WHOWAS +RPL_INFOSTART: :%s 373 %s :Server INFO +RPL_ENDOFINFO: :%s 374 %s :Einde van /INFO lijst +RPL_MOTDSTART: :%s 375 %s :- %s Bericht van de Dag - +RPL_ENDOFMOTD: :%s 376 %s :Einde van /MOTD commando. +RPL_YOUREOPER: :%s 381 %s :Je bent nu volwaardig lid van De Harde Kern!. +RPL_REHASHING: :%s 382 %s %s :Rehasjing +RPL_HOSTHIDDEN: :%s 396 %s :is nu jouw verborgen host +ERR_NOSUCHNICK: :%s 401 %s %s :Onbekende nick/kanaal +ERR_NOSUCHSERVER: :%s 402 %s %s :Onbekende server +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Onbekende kanaal +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan niets naar het kanaal verzenden +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Je zit al in te veel kanalen +ERR_WASNOSUCHNICK: :%s 406 %s %s :Die nicknaam bestaat niet +ERR_TOOMANYTARGETS: :%s 407 %s %s :Te veel ontvangers. Slechts %d verwerkt +ERR_NOORIGIN: :%s 409 %s :Geen bron vermeld +ERR_NORECIPIENT: :%s 411 %s :Geen ontvanger gespecificeerd (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Geen tekst om te verzenden +ERR_NOTOPLEVEL: :%s 413 %s %s :Geen toplevel domein gespecificeerd +ERR_WILDTOPLEVEL: :%s 414 %s %s :Joker in toplevel Domein +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Onbekende commando +ERR_NOMOTD: :%s 422 %s :MOTD bestand bestaat niet +ERR_NOADMININFO: :%s 423 %s %s :Geen administratieve informatie beschikbaar +ERR_NONICKNAMEGIVEN: :%s 431 %s :Geen nicknaam gespecificeerd +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nicknaam bevat foutieve tekens +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nicknaam is reeds bezet +ERR_NICKCOLLISION: :%s 436 %s %s :Nicknaam botsing KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kanaal is tijdelijk niet beschikbaar +ERR_NICKTOOFAST: :%s 438 %s %s %s :Nicknaam veranderingen te snel. Wacht A.U.B. %d seconden. +ERR_SERVICESDOWN: :%s 440 %s :Diensten zijn momenteel niet beschikbaar. +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Die is/zijn niet in dat kanaal +ERR_NOTONCHANNEL: :%s 442 %s %s :Jij bent niet in dat kanaal +ERR_USERONCHANNEL: :%s 443 %s %s %s :is reeds op het kanaal +ERR_NOTREGISTERED: :%s 451 %s :Je bent niet geregistreerd +ERR_ACCEPTFULL: :%s 456 %s :Accepteer lijst is vol +ERR_ACCEPTEXIST: :%s 457 %s %s :is al op jouw accepteer lijst +ERR_ACCEPTNOT: :%s 458 %s %s :is niet op jouw accepteer lijst +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Niet genoeg parameters +ERR_ALREADYREGISTRED: :%s 462 %s :Je mag niet opnieuw registreren +ERR_PASSWDMISMATCH: :%s 464 %s :Foutief Wachtwoord +ERR_YOUREBANNEDCREEP: :%s 465 %s :Je bent verbannen van deze server- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Kan kanaal niet joinen (het zit vol (+l)) +ERR_UNKNOWNMODE: :%s 472 %s %c :is een onbekende mode voor me +ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan het kanaal niet joinen (uitnodiging vereist (+i)) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan kanaal niet joinen (verbannen (+b)) +ERR_BADCHANNELKEY: :%s 475 %s %s :Kan kanaal niet joinen (versleuteld (+k)) +ERR_BANLISTFULL: :%s 478 %s %s %s :Kanaal verbannen-lijst zit vol +ERR_BADCHANNAME: :%s 479 %s %s :Foutief kanaal-naam +ERR_NOPRIVILEGES: :%s 481 %s :Toestemming geweigerd - Je bent geen IRC operator +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Je bent geen operator in dit kanaal +ERR_CANTKILLSERVER: :%s 483 %s :Je kunt een server niet killen! +ERR_RESTRICTED: :%s 484 %s :Je mogelijkheden zijn beperkt +ERR_NOOPERHOST: :%s 491 %s :Slechts weinigen van de stervelijken mogen de Harde Kern betreden +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Onbekende MODE flag +ERR_USERSDONTMATCH: :%s 502 %s :Je kunt een mode niet veranderen voor een andere gebruiker +ERR_GHOSTEDCLIENT: :%s 503 %s :Bericht kon niet worden afgeleverd aan %s +ERR_USERNOTONSERV: :%s 504 %s %s :Gebruiker zit niet op deze server +ERR_WRONGPONG: :%s 513 %s :Om te verbinden type /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Foutieve lijst syntaxis +ERR_HELPNOTFOUND: :%s 524 %s %s :Hulp niet gevonden en/of beschikbaar +RPL_WHOISSECURE: :%s 671 %s %s :is verbonden via SSL (beveiligd link) +RPL_ENDOFMODLIST: :%s 703 %s :Einde van /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :Einde van /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :heeft gevraagd om een uitnodiging. +RPL_KNOCKDLVR: :%s 711 %s %s :Jouw KNOCK is afgeleverd. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Te veel KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :Kanaal is open. +ERR_KNOCKONCHAN: :%s 714 %s %s :Jij bent al in dat kanaal. +RPL_TARGUMODEG: :%s 716 %s %s :is in +g mode (server kant negeer) +RPL_TARGNOTIFY: :%s 717 %s %s :is op het hoogte gesteld van jouw bericht. +RPL_UMODEGMSG: :%s 718 %s %s :stuurde jou een bericht, maar jij bent momenteel in umode +g. +ERR_NOPRIVS: :%s 723 %s %s :Niet voldoende operator privileges. +RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Lokaal/remote clienten zijn gelijk. +RPL_NOTESTLINE: :%s 726 %s %s :Geen gelijken diff --git a/messages/ircd-french.lang b/messages/ircd-french.lang new file mode 100644 index 0000000..91d8b9a --- /dev/null +++ b/messages/ircd-french.lang @@ -0,0 +1,112 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2003 +; Joshua Kwan <joshk@triplehelix.org> +; $Id$ + +RPL_LUSEROP: :%s 252 %s %d :opérateurs IRC en ligne +RPL_LOAD2HI: :%s 263 %s :Veuillez patienter, le serveur est trop occupé +RPL_UNAWAY: :%s 305 %s :Vous n'êtes plus marqué 'absent' +RPL_NOWAWAY: :%s 306 %s :Vous êtes maintenant marqué 'absent' +RPL_YOUREOPER: :%s 381 %s :Vous êtes maintenant un opérateur IRC +RPL_REHASHING: :%s 382 %s %s :Le serveur relit le fichier de configuration +RPL_WELCOME: :%s 001 %s :Bienvenue au réseau IRC %s %s +RPL_YOURHOST: :%s 002 %s :Votre serveur est %s, version %s +RPL_CREATED: :%s 003 %s :Ce serveur a été crée %s +RPL_ISUPPORT: :%s 005 %s %s :sont supportés par ce serveur +RPL_REDIR: :%s 010 %s %s %d :Veuillez utiliser ce serveur +RPL_MAPEND: :%s 017 %s :Fin de /MAP +RPL_TRACELINK: :%s 200 %s Lien %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Essai. %s %s +RPL_TRACEOPERATOR: :%s 204 %s Opér %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s Client %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Serv. %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <nouvelletype> 0 %s +RPL_TRACECLASS: :%s 209 %s Classe %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Fin de reportage /STATS +RPL_STATSUPTIME: :%s 242 %s :Le serveur fonctionne depuis %d jours, %dh %dm %ds +RPL_STATSCONN: :%s 250 %s :Plus grand nombre de connexions simultanées: %d (%d clients) (%llu connexions reçues) +RPL_LUSERCLIENT: :%s 251 %s :Il y a %d clients et %d invisibles sur %d serveurs +RPL_LUSERUNKNOWN: :%s 253 %s %d :connexion(s) inconnue(s) +RPL_LUSERCHANNELS: :%s 254 %s %d :chaînes crées +RPL_LUSERME: :%s 255 %s :J'ai %d clients et %d serveurs +RPL_ADMINME: :%s 256 %s :Renseignements administratives %s +RPL_ENDOFTRACE: :%s 262 %s %s :Fin de TRACE +RPL_LOCALUSERS: :%s 265 %s :Clients locaux: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Clients globaux: %d Max: %d +RPL_ENDOFACCEPT: :%s 282 %s :Fin de liste /ACCEPT. +RPL_ENDOFWHO: :%s 315 %s %s :Fin de liste /WHO. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :silent seconds +RPL_ENDOFWHOIS: :%s 318 %s %s :Fin de liste /WHOIS. +RPL_LISTSTART: :%s 321 %s Chaîne :Clients Nom +RPL_LISTEND: :%s 323 %s :Fin de /LIST +RPL_NOTOPIC: :%s 331 %s %s :Il n'y a pas de sujet +RPL_WHOISACTUALLY: :%s 338 %s %s %s :utilise vraiment l'addresse +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fin de liste des invités +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fin de liste des exceptionnés +RPL_CLOSING: :%s 362 %s %s :Fermé. Etat = %d +RPL_CLOSEEND: :%s 363 %s %d: Connexions fermées +RPL_ENDOFLINKS: :%s 365 %s %s :Fin de liste /LINKS. +RPL_ENDOFNAMES: :%s 366 %s %s :Fin de liste /NAMES. +RPL_ENDOFBANLIST: :%s 368 %s %s :Fin de liste des interdits de la chaîne +RPL_ENDOFWHOWAS: :%s 369 %s %s :Fin de WHOWAS +RPL_INFOSTART: :%s 373 %s :INFO Serveur +RPL_ENDOFINFO: :%s 374 %s :Fin de liste /INFO. +RPL_MOTDSTART: :%s 375 %s :- %s Message du jour - +RPL_ENDOFMOTD: :%s 376 %s :Fin de commande /MOTD. +ERR_PASSWDMISMATCH: :%s 464 %s :Faux mot de passe +ERR_NOPRIVILEGES: :%s 481 %s :Vous n'avez pas ce droit puisque vous n'êtes pas un opérateur +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Vous n'avez pas assez de pouvoir dans cette chaîne IRC pour faire ça +ERR_CANTKILLSERVER: :%s 483 %s :Impossible de /KILLer un serveur! +ERR_NOOPERHOST: :%s 491 %s :Vous manquez la bonne addresse ou le bon mot de passe pour devenir un opérateur IRC +ERR_NOSUCHNICK: :%s 401 %s %s :Aucun(e) client/chaîne. +ERR_NOSUCHSERVER: :%s 402 %s %s :Aucun serveur +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Aucune chaîne +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Impossible d'envoyer à la chaîne +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Vous êtes dans trop de chaînes +ERR_WASNOSUCHNICK: :%s 406 %s %s :Il n'y avait pas un tel nom +ERR_TOOMANYTARGETS: :%s 407 %s %s :Trop de destinations. Seulement %d ont été lus. +ERR_NOORIGIN: :%s 409 %s :Vous n'avez pas marqué d'origine +ERR_NORECIPIENT: :%s 411 %s :Vous n'avez pas marqué de destination (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Pas de texte à envoyer +ERR_NOTOPLEVEL: :%s 413 %s %s :Aucune domaine marqué +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Commande inconnue +ERR_NOMOTD: :%s 422 %s :Fichier de message du jour manquant +ERR_NOADMININFO: :%s 423 %s %s :Il n'y a pas de renseignements administratives +ERR_NONICKNAMEGIVEN: :%s 431 %s :Aucun nom donné +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nom inapproprié +ERR_NICKNAMEINUSE: :%s 433 %s %s :Ce nom est déjà utilisé. +ERR_NICKCOLLISION: :%s 436 %s %s :Collision de noms KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Client/chaîne temporairement indisponible +ERR_NICKTOOFAST: :%s 438 %s %s %s :Attendez %d secondes avant de changer votre nom encore. +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Il n'est pas sur cette chaîne +ERR_NOTONCHANNEL: :%s 442 %s %s :Vous n'êtes pas sur cette chaîne +ERR_USERONCHANNEL: :%s 443 %s %s %s :est déjà sur chaîne +ERR_NOTREGISTERED: :%s 451 %s :Vous ne vous êtes pas enregistré +ERR_ACCEPTFULL: :%s 456 %s :Liste d'acceptance pleine +ERR_ACCEPTEXIST: :%s 457 %s %s :est déjà sur votre liste d'acceptance +ERR_ACCEPTNOT: :%s 458 %s %s :n'est pas sur votre liste d'acceptance +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Pas assez de paramètres +ERR_ALREADYREGISTRED: :%s 462 %s :Vous ne pouvez pas vous enregistrer à nouveau +ERR_YOUREBANNEDCREEP: :%s 465 %s :Vous êtes interdit d'utiliser ce serveur %s +ERR_CHANNELISFULL: :%s 471 %s %s :Impossible de joindre (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :m'est inconnu +ERR_INVITEONLYCHAN: :%s 473 %s %s :Impossible de joindre (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Impossible de joindre (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Impossible de joindre (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Liste d'interdits est plein +ERR_BADCHANNAME: :%s 479 %s %s :Nom de chaîne illégale +ERR_RESTRICTED: :%s 484 %s :Vous êtes restraint +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :MODE client inconnue +ERR_USERSDONTMATCH: :%s 502 %s :Impossible de modifier la mode des autres clients +ERR_GHOSTEDCLIENT: :%s 503 %s :Le message n'est pas parvenu à %s +ERR_USERNOTONSERV: :%s 504 %s %s :Client n'est pas sur ce serveur +ERR_WRONGPONG: :%s 513 %s :Pour connecter tapez /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Mauvaise syntaxe /LIST +ERR_HELPNOTFOUND: :%s 524 %s %s :Ce renseignement n'existe pas +RPL_ENDOFMODLIST: :%s 703 %s :Fin de /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :Fin de /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :a demandé d'être invité +RPL_KNOCKDLVR: :%s 711 %s %s :Votre KNOCK a été envoyé. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Trop de KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :La chaîne est ouverte. +ERR_KNOCKONCHAN: :%s 714 %s %s :Vous êtes déjà sur cette chaîne. diff --git a/messages/ircd-german.lang b/messages/ircd-german.lang new file mode 100644 index 0000000..ee2cc5c --- /dev/null +++ b/messages/ircd-german.lang @@ -0,0 +1,126 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2000-2005 +; David Taylor <davidt@yadt.co.uk>, 2000. +; Markus R. <mxr@chatjunkies.org>, 2005. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Wilkommen im %s Internet Relay Chat Netzwerk, %s! +RPL_YOURHOST: :%s 002 %s :Du bist verbunden mit %s, version %s +RPL_CREATED: :%s 003 %s :Dieser Server wurde erstellt: %s +RPL_ISUPPORT: :%s 005 %s %s :werden von diesem Server unterstützt. +RPL_REDIR: :%s 010 %s %s %d :Bitte benutze stattdessen diesen Server/Port. +RPL_MAPEND: :%s 017 %s :Ende von /MAP. +RPL_YOURID: :%s 042 %s %s :deine eindeutige ID +RPL_TRACELINK: :%s 200 %s verbunden %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Versuche. %s %s +RPL_TRACEOPERATOR: :%s 204 %s Operator %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s Benutzer %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <neuer Typ> 0 %s +RPL_TRACECLASS: :%s 209 %s Klasse %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Ende von /STATS. +RPL_STATSUPTIME: :%s 242 %s :Server läuft seit %d Tagen, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Rekord an gleichzeitigen Verbindungen: %d (davon %d Benutzer) (%llu Verbindungen) +RPL_LUSERCLIENT: :%s 251 %s :Hier gibt es %d Benutzer, davon %d unsichtbar, auf %d Servern. +RPL_LUSEROP: :%s 252 %s %d :IRC Operatorn sind online. +RPL_LUSERUNKNOWN: :%s 253 %s %d :Unbekannte Verbindungen. +RPL_LUSERCHANNELS: :%s 254 %s %d :Chaträume existieren. +RPL_LUSERME: :%s 255 %s :Ich habe %d Benutzer und %d verbundene Server. +RPL_ADMINME: :%s 256 %s :Administrative Informationen über %s +RPL_ENDOFTRACE: :%s 262 %s %s :Ende von TRACE. +RPL_LOAD2HI: :%s 263 %s :Zur Zeit kann Ihre Anfrage nicht bearbeitet werden. Der Server ist überlastet. +RPL_LOCALUSERS: :%s 265 %s :Anzahl der lokalen User, zur Zeit: %d Maximum: %d +RPL_GLOBALUSERS: :%s 266 %s :Anzahl der globalen User, zur Zeit: %d Maximum: %d +RPL_ENDOFACCEPT: :%s 282 %s :Ende der /ACCEPT-Liste. +RPL_UNAWAY: :%s 305 %s :Du bist nun nicht mehr abwesend (away). +RPL_NOWAWAY: :%s 306 %s :Du bist nun abwesend (away). +RPL_WHOISADMIN: :%s 313 %s %s :ist ein Server Administrator. +RPL_WHOISOPERATOR: :%s 313 %s %s :ist ein IRC Operator. +RPL_ENDOFWHO: :%s 315 %s %s :Ende der /WHO-Liste. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :Sekunden inaktiv +RPL_ENDOFWHOIS: :%s 318 %s %s :Ende der /WHOIS-Liste. +RPL_LISTSTART: :%s 321 %s Raum :Besucher Name +RPL_LISTEND: :%s 323 %s :End von /LIST +RPL_NOTOPIC: :%s 331 %s %s :Kein Thema für diesen Raum gesetzt. +RPL_WHOISACTUALLY: :%s 338 %s %s %s :wirklicher Host: +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Ende der Liste von Einladungen für diesen Raum. +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Ende der Liste von Sperr-Ausnahmen für diesen Raum. +RPL_CLOSING: :%s 362 %s %s :Geschlossen. Status = %d +RPL_CLOSEEND: :%s 363 %s %d:Verbindung getrennt. +RPL_ENDOFLINKS: :%s 365 %s %s :Ende der /LINKS-Liste. +RPL_ENDOFNAMES: :%s 366 %s %s :Ende der /NAMES-Liste. +RPL_ENDOFBANLIST: :%s 368 %s %s :Ende der Sperr-Liste für diesen Raum +RPL_ENDOFWHOWAS: :%s 369 %s %s :Ende von WHOWAS. +RPL_INFOSTART: :%s 373 %s :Server INFO +RPL_ENDOFINFO: :%s 374 %s :Ende der /INFO-Liste. +RPL_MOTDSTART: :%s 375 %s :- %s Nachricht des Tages - +RPL_ENDOFMOTD: :%s 376 %s :Ende von /MOTD. +RPL_YOUREOPER: :%s 381 %s :ich mag starke Persönlichkeiten.. besorgs mir! +RPL_REHASHING: :%s 382 %s %s :Konfiguration wurde erneut eingelesen +RPL_HOSTHIDDEN: :%s 396 %s :ist nun dein sichtbarer Host +ERR_NOSUCHNICK: :%s 401 %s %s :Dieser Benutzer/Raum existiert nicht +ERR_NOSUCHSERVER: :%s 402 %s %s :Dieser Server existiert nicht +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Dieser Raum existiert nicht +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Senden der Nachricht nicht möglich. +ERR_TOOMANYCHANNELS: :%s 405 %s %s :zuviele gleichzeitige Räume +ERR_WASNOSUCHNICK: :%s 406 %s %s :Diesen Benutzer gab es nicht +ERR_TOOMANYTARGETS: :%s 407 %s %s :Die Nachricht wurde an zu viele Benutzer geschickt. Nur %d wurden weitergeleitet +ERR_NOORIGIN: :%s 409 %s :von wem kommt diese Nachricht? +ERR_NORECIPIENT: :%s 411 %s :An wen soll diese Nachricht geschickt werden? (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Es gibt keine Nachricht zu senden +ERR_NOTOPLEVEL: :%s 413 %s %s :keine TLD (top level domain) angegeben. +ERR_WILDTOPLEVEL: :%s 414 %s %s :Platzhalter in der TLD (top level domain) +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :unbekannter Befehl +ERR_NOMOTD: :%s 422 %s :Keine MOTD Datei gefunden. +ERR_NOADMININFO: :%s 423 %s %s :Es stehen keine Administrativen Informationen zur Verfügung +ERR_NONICKNAMEGIVEN: :%s 431 %s :Kein Benutzer angegeben +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Fehlerhafter Benutzername +ERR_NICKNAMEINUSE: :%s 433 %s %s :Benutzername bereits in verwendung +ERR_NICKCOLLISION: :%s 436 %s %s :Benutzernamen-Kollision, KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Benutzername/Raum vorübergehend nicht verfügbar +ERR_NICKTOOFAST: :%s 438 %s %s %s :Du hast zu schnell Benutzername gewechselt. Bitte warte %d Sekunden. +ERR_SERVICESDOWN: :%s 440 %s :Services sind momentan nicht verfügbar +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Diese Benutzer sind nicht in diesem Raum +ERR_NOTONCHANNEL: :%s 442 %s %s :Du bist nicht in diesem Raum +ERR_USERONCHANNEL: :%s 443 %s %s %s :ist schon in diesem Raum +ERR_NOTREGISTERED: :%s 451 %s :Du hast Dich noch nicht registriert +ERR_ACCEPTFULL: :%s 456 %s :Accept-Liste ist voll. +ERR_ACCEPTEXIST: :%s 457 %s %s :ist bereits auf Deiner Accept-Liste. +ERR_ACCEPTNOT: :%s 458 %s %s :ist nicht auf Deiner Accept-Liste. +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Nicht genug Parameter +ERR_ALREADYREGISTRED: :%s 462 %s :Erneute Registrierung nicht möglich +ERR_PASSWDMISMATCH: :%s 464 %s :Passwort falsch +ERR_YOUREBANNEDCREEP: :%s 465 %s :Zutritt zu diesem Server verweigert - %s. +ERR_CHANNELISFULL: :%s 471 %s %s :Zutritt zu diesem Raum verweigert - Raum voll (+l). +ERR_UNKNOWNMODE: :%s 472 %s %c :unbekannter Modus +ERR_INVITEONLYCHAN: :%s 473 %s %s :Zutritt zu diesem Raum nur mit Einladung möglich (+i). +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Zutritt zu diesem Raum durch Sperr-Liste verweigert (+b). +ERR_BADCHANNELKEY: :%s 475 %s %s :Zutritt zu diesem Raum nur mit richtigem Passwort möglich (+k). +ERR_BANLISTFULL: :%s 478 %s %s %s :Sperr-Liste des Raums voll. +ERR_BADCHANNAME: :%s 479 %s %s :Raum-Name nicht zulässig. +ERR_NOPRIVILEGES: :%s 481 %s :Zugriff verweigert - nur für IRC Operatoren. +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Zugriff verweigert - nur für Raum-Operatoren. +ERR_CANTKILLSERVER: :%s 483 %s :Ein Server reagiert nicht auf das KILL Kommando. +ERR_RESTRICTED: :%s 484 %s :Verbindung unterliegt Restriktionen. +ERR_NOOPERHOST: :%s 491 %s :netter Versuch - aber nur für IRC Operatoren! +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :unbekannter Modus +ERR_USERSDONTMATCH: :%s 502 %s :Modus-Änderung an anderen Benutzern nicht möglich. +ERR_GHOSTEDCLIENT: :%s 503 %s :Nachricht konnte %s nicht zugestellt werden. +ERR_USERNOTONSERV: :%s 504 %s %s :Benutzer ist nicht auf diesem Server. +ERR_WRONGPONG: :%s 513 %s :Um den Verbindungsaufbau abzuschliessen, gib ein: /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :falscher LIST-Syntax. +ERR_HELPNOTFOUND: :%s 524 %s %s :keine Hilfe verfügbar. +RPL_WHOISSECURE: :%s 671 %s %s :ist über SSL verbunden (verschlüsselt). +RPL_ENDOFMODLIST: :%s 703 %s :Ende von /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :Ende von /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :fragt nach einer Einladung. +RPL_KNOCKDLVR: :%s 711 %s %s :Dein KNOCK wurde zugestellt. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Zuviele KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :Raum ist offen. +ERR_KNOCKONCHAN: :%s 714 %s %s :Du bist bereits in diesem Raum. +RPL_TARGUMODEG: :%s 716 %s %s :ist im +g Modus (Serverseitiges Ignorieren) +RPL_TARGNOTIFY: :%s 717 %s %s :wurde über Deine Nachricht informiert. +RPL_UMODEGMSG: :%s 718 %s %s :will Dir eine Nachricht schreiben, Du hast aber Benutzer-Modus +g gesetzt. +ERR_NOPRIVS: :%s 723 %s %s :Operator-Privilegien nicht ausreichend. +RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :lokale/entfernte Benutzer stimmen überein. +RPL_NOTESTLINE: :%s 726 %s %s :keine Übereinstimmungen gefunden. diff --git a/messages/ircd-italian.lang b/messages/ircd-italian.lang new file mode 100644 index 0000000..5beccfe --- /dev/null +++ b/messages/ircd-italian.lang @@ -0,0 +1,127 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2007 Afaa (http://www.ircd-hybrid.it) +; Federico Giovannini <afaa@ircd-hybrid.it> +; $Id$ + +RPL_WELCOME: :%s 001 %s :Benvenuto su %s Internet Relay Chat Network %s +RPL_YOURHOST: :%s 002 %s :Hostname del server è %s, versione corrente %s +RPL_CREATED: :%s 003 %s :Questo server è stato creato il %s +RPL_ISUPPORT: :%s 005 %s %s :Sono supportati da questo server. +RPL_REDIR: :%s 010 %s %s %d :Per favore usa questo Server/Porta invece +RPL_MAPEND: :%s 017 %s :Fine del /MAP +RPL_YOURID: :%s 042 %s %s :Proprio ID univoco +RPL_TRACELINK: :%s 200 %s Link %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Prova. %s %s +RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s +RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d +RPL_TRACEOPERATOR: :%s 204 %s Operatore %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s Utente %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <nuovotipo> 0 %s +RPL_TRACECLASS: :%s 209 %s Classe %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Fine del rapporto /STATS +RPL_STATSUPTIME: :%s 242 %s :Server Up %d Giorni, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Connessioni massime: %d (%d clients) (%llu connessioni ricevute) +RPL_LUSERCLIENT: :%s 251 %s :Sono presenti %d utenti e %d invisibili su %d servers +RPL_LUSEROP: :%s 252 %s %d :Operatori IRC Online +RPL_LUSERUNKNOWN: :%s 253 %s %d :Connessione(i) sconosciuta(e) +RPL_LUSERCHANNELS: :%s 254 %s %d :Canali presenti +RPL_LUSERME: :%s 255 %s :Sono presenti %d clients e %d servers +RPL_ADMINME: :%s 256 %s :Informazioni di Amministrazione %s +RPL_ENDOFTRACE: :%s 262 %s %s :Fine del TRACE +RPL_LOAD2HI: :%s 263 %s :Server temporaneamente occupato. Per favore attendi un momento e riprova di nuovo. +RPL_LOCALUSERS: :%s 265 %s :Utenti locali correnti: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Utenti globali correnti: %d Max: %d +RPL_ENDOFACCEPT: :%s 282 %s :Fine della lista /ACCEPT. +RPL_UNAWAY: :%s 305 %s :Non siete più contrassegnati come assenti. +RPL_NOWAWAY: :%s 306 %s :Siete contrassegnati come assenti. +RPL_WHOISADMIN: :%s 313 %s %s :è un Amministratore di Server +RPL_WHOISOPERATOR: :%s 313 %s %s :è un Operatore di IRC +RPL_ENDOFWHO: :%s 315 %s %s :Fine della lista /WHO. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :Secondi di idle. +RPL_ENDOFWHOIS: :%s 318 %s %s :Fine della lista /WHOIS. +RPL_LISTSTART: :%s 321 %s Canale :Utente Nome +RPL_LISTEND: :%s 323 %s :Fine della /LIST (Lista) +RPL_NOTOPIC: :%s 331 %s %s :Nessun topic settato. +RPL_WHOISACTUALLY: :%s 338 %s %s %s :attualmente usa l'host: +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fine della lista dei canali ad invito (invite). +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fine della lista dei canali ad eccezione (exception). +RPL_CLOSING: :%s 362 %s %s :Chiuso. Status = %d +RPL_CLOSEEND: :%s 363 %s %d: Connessione chiusa. +RPL_ENDOFLINKS: :%s 365 %s %s :Fine della lista dei /LINKS. +RPL_ENDOFNAMES: :%s 366 %s %s :Fine della lista dei /NAMES. +RPL_ENDOFBANLIST: :%s 368 %s %s :Fine della lista dei ban di canale. +RPL_ENDOFWHOWAS: :%s 369 %s %s :Fine del WHOWAS +RPL_INFOSTART: :%s 373 %s :Informazioni Server +RPL_ENDOFINFO: :%s 374 %s :Fine della lista /INFO. +RPL_MOTDSTART: :%s 375 %s :- %s Messaggio del giorno - +RPL_ENDOFMOTD: :%s 376 %s :Fine del comando /MOTD. +RPL_YOUREOPER: :%s 381 %s :Sei entrato nella... Twilight Zone! (zona crepuscolare) +RPL_REHASHING: :%s 382 %s %s :Aggiornamento +RPL_HOSTHIDDEN: :%s 396 %s :Ora il tuo host è nascosto. +ERR_NOSUCHNICK: :%s 401 %s %s :nick e/o canale non presente. +ERR_NOSUCHSERVER: :%s 402 %s %s :server non presente. +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Canale non presente. +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Impossibile inviare al canale. +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Sei entrato in troppi canali. +ERR_WASNOSUCHNICK: :%s 406 %s %s :Non c'e alcun nickname +ERR_TOOMANYTARGETS: :%s 407 %s %s :Troppi destinatari. Solamente %d processato. +ERR_NOORIGIN: :%s 409 %s :Non è specificata l'origine +ERR_NORECIPIENT: :%s 411 %s :Nessun destinatario specificato (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Impossibile inviare il testo. +ERR_NOTOPLEVEL: :%s 413 %s %s :Nessun dominio toplevel è stato specificato. +ERR_WILDTOPLEVEL: :%s 414 %s %s :Carattere jolly nel dominio toplevel +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comando sconosciuto +ERR_NOMOTD: :%s 422 %s :Non è presente il file di MOTD +ERR_NOADMININFO: :%s 423 %s %s :Informazioni amministratrive indisponibili +ERR_NONICKNAMEGIVEN: :%s 431 %s :Nessun nickname specificato. +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nickname errato. +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nickname già in uso. +ERR_NICKCOLLISION: :%s 436 %s %s :Collisione di Nickname KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Il nick/canale è temporaneamente indisponibile +ERR_NICKTOOFAST: :%s 438 %s %s %s :Cambio di nick troppo veloce. Per favore attendi %d secondi. +ERR_SERVICESDOWN: :%s 440 %s :I Servizi sono attualmente non disponibili (Down) +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :L'utente non è su quel canale. +ERR_NOTONCHANNEL: :%s 442 %s %s :Non sei presente nel canale. +ERR_USERONCHANNEL: :%s 443 %s %s %s :è già presente nel canale +ERR_NOTREGISTERED: :%s 451 %s :Non sei registrato. +ERR_ACCEPTFULL: :%s 456 %s :Lista Accept è piena. +ERR_ACCEPTEXIST: :%s 457 %s %s :è già presente nella tua lista accept. +ERR_ACCEPTNOT: :%s 458 %s %s :non è presente nella tua lista accept. +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parametri non sufficenti. +ERR_ALREADYREGISTRED: :%s 462 %s :Non è possibile registrarsi nuovamente. +ERR_PASSWDMISMATCH: :%s 464 %s :La Password non è corretta. +ERR_YOUREBANNEDCREEP: :%s 465 %s :Sei stato bannato da questo server- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Non puoi entrare nel canale (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :Questo è una modalità (mode) sconosciuto per me. +ERR_INVITEONLYCHAN: :%s 473 %s %s :Impossibile entrare nel canale (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Impossibile entrare nel canale (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Impossibile entrare nel canale (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :La lista dei ban del canale e piena. +ERR_BADCHANNAME: :%s 479 %s %s :Nome canale illegale. +ERR_NOPRIVILEGES: :%s 481 %s :Permesso negato - non sei un operatore di IRC +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Non sei un operatore di canale. +ERR_CANTKILLSERVER: :%s 483 %s :Non puoi killare il server! +ERR_RESTRICTED: :%s 484 %s :Sei ristretto. +ERR_NOOPERHOST: :%s 491 %s :Solo pochi mortali meritevoli possono provare ad entrare nella twilight zone (zona crepuscolare) +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Flag MODE sconosciuta. +ERR_USERSDONTMATCH: :%s 502 %s :Non puoi cambiare i modi di altri utenti +ERR_GHOSTEDCLIENT: :%s 503 %s :Il messaggio non è stato possibile consegnarlo a: %s +ERR_USERNOTONSERV: :%s 504 %s %s :L'utente non è presente su questo server. +ERR_WRONGPONG: :%s 513 %s :Tipo di connessione /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Sintassi errata Bad list syntax +ERR_HELPNOTFOUND: :%s 524 %s %s :Aiuto non trovato. +RPL_WHOISSECURE: :%s 671 %s %s :è connesso tramite SSL (Collegamento Sicuro) +RPL_ENDOFMODLIST: :%s 703 %s :Fine del /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :Fine del /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :ha richiesto un invito. +RPL_KNOCKDLVR: :%s 711 %s %s :Il tuo messaggio è stato consegnato. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Troppi messaggi (%s). +ERR_CHANOPEN: :%s 713 %s %s :Il canale è aperto. +ERR_KNOCKONCHAN: :%s 714 %s %s :Sei già presente nel canale. +RPL_TARGUMODEG: :%s 716 %s %s :è in modalità +g (Lato server ignorato) +RPL_TARGNOTIFY: :%s 717 %s %s :siete informati che avete inviato un messaggio a loro. +RPL_UMODEGMSG: :%s 718 %s %s :Vi è arrivato un messaggio e voi siete senza modalita +g. +ERR_NOPRIVS: :%s 723 %s %s :Privilegi di Oper insufficienti. +RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Locale/remoto clients corrispondente. +RPL_NOTESTLINE: :%s 726 %s %s :Nessuna corrispondenza diff --git a/messages/ircd-norwegian.lang b/messages/ircd-norwegian.lang new file mode 100644 index 0000000..e70168c --- /dev/null +++ b/messages/ircd-norwegian.lang @@ -0,0 +1,90 @@ +; SOME DESCRIPTIVE TITLE. +; Copyright (C) YEAR Free Software Foundation, Inc. +; FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Velkommen til %s Internet Relay Nettverket %s +RPL_YOURHOST: :%s 002 %s :Verten din er %s, som bruker versjon %s +RPL_CREATED: :%s 003 %s :Serveren ble kompilert %s +RPL_ISUPPORT: :%s 005 %s %s :er gyldig for denne serveren +RPL_REDIR: :%s 010 %s %s %d :Vennligst bruk Server/Port istedenfor +RPL_TRACECONNECTING: :%s 201 %s Prøv. %s %s +RPL_TRACEHANDSHAKE: :%s 202 %s T.S. %s %s +RPL_TRACEUSER: :%s 205 %s Bruker %s %s (%s) %lu %lu +RPL_TRACENEWTYPE: :%s 208 %s <nytype> 0 %s +RPL_TRACECLASS: :%s 209 %s Klasse %s %d +RPL_STATSUPTIME: :%s 242 %s :Serveren har vært oppe %d dager, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Høyeste tilkoblings telling: %d (%d klienter) (%llu tilkoblinger received) +RPL_LUSERCLIENT: :%s 251 %s :Det er %d brukere og %d usynlige på %d serverere +RPL_LUSEROP: :%s 252 %s %d :IRC Operatører online +RPL_LUSERUNKNOWN: :%s 253 %s %d :ukjente tilkoblinger +RPL_LUSERCHANNELS: :%s 254 %s %d :kanaler laget +RPL_LUSERME: :%s 255 %s :Jeg har %d klienter og %d serverere +RPL_ADMINME: :%s 256 %s :Administrativ informasjon om %s +RPL_ENDOFTRACE: :%s 262 %s %s :Slutten av TRACE +RPL_LOAD2HI: :%s 263 %s :Server lasten er for tiden for høy. Vennligst vent litt og prøv igjen. +RPL_LOCALUSERS: :%s 265 %s :Lokale brukere nå: %d Maks: %d +RPL_GLOBALUSERS: :%s 266 %s :Globale brukere nå: %d Maks: %d +RPL_UNAWAY: :%s 305 %s :Du er ikke lenger markert som vekke (away) +RPL_NOWAWAY: :%s 306 %s :Du har blitt markert som vekke (away) +RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunder uaktiv, påloggings tid +RPL_ENDOFWHOIS: :%s 318 %s %s :Slutten av /WHOIS listen. +RPL_LISTSTART: :%s 321 %s Kanal :Bruker Navn +RPL_LISTEND: :%s 323 %s :Slutten av /LIST +RPL_NOTOPIC: :%s 331 %s %s :Ingen topic (overskrift) er satt. +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slutten av Kanal Invite List (Inviterte Listen) +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slutten av Kanal Exception List (Unntaks Listen) +RPL_CLOSING: :%s 362 %s %s :Lukket. Status = %d +RPL_CLOSEEND: :%s 363 %s %d: Tilkobling Stengt +RPL_ENDOFLINKS: :%s 365 %s %s :Slutten av /LINKS listen. +RPL_ENDOFNAMES: :%s 366 %s %s :Slutten av /NAMES listen. +RPL_ENDOFBANLIST: :%s 368 %s %s :Slutten av Kanal Ban List (Utestengt Listen) +RPL_ENDOFWHOWAS: :%s 369 %s %s :Slutten av WHOWAS +RPL_ENDOFINFO: :%s 374 %s :Slutten av /INFO listen. +RPL_MOTDSTART: :%s 375 %s :- %s Beskjed for Dagen - +RPL_ENDOFMOTD: :%s 376 %s :Slutten av /MOTD kommandoen. +RPL_YOUREOPER: :%s 381 %s :Du har nå kommet inn i... det Forbudte Området! (Twilight Zone!). +ERR_NOSUCHNICK: :%s 401 %s %s :Ikke noen slik bruker/kanal +ERR_NOSUCHSERVER: :%s 402 %s %s :Ikke noen slik server +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ikke noen slik kanal +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ikke sende til kanalen +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du har gått på (joined) for mange kanaler +ERR_WASNOSUCHNICK: :%s 406 %s %s :Det var ikke noen slik kallenavn (nickname) +ERR_TOOMANYTARGETS: :%s 407 %s %s :For mange mottakere. Bare %d gikk gjennom +ERR_NOORIGIN: :%s 409 %s :Ingen opprinnelse spesifisert +ERR_NORECIPIENT: :%s 411 %s :Ingen mottaker definert (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Ingen tekst å sende +ERR_NOTOPLEVEL: :%s 413 %s %s :Ingen øverste-nivå domene (toplevel domain) spesifisert +ERR_WILDTOPLEVEL: :%s 414 %s %s :Uspesifisert i øverste-nivå domene (toplevel domain) +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Ukjent kommando +ERR_NOMOTD: :%s 422 %s :MOTD Filen mangler +ERR_NOADMININFO: :%s 423 %s %s :Ingen administrativ info tilgjengelig +ERR_NONICKNAMEGIVEN: :%s 431 %s :Ingen kallenavn (nickname) definert +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Feilaktig Kallenavn (Nickname) +ERR_NICKNAMEINUSE: :%s 433 %s %s :Kallenavnet (Nickname) er allered i bruk. +ERR_NICKCOLLISION: :%s 436 %s %s :Kallenavn (Nickname) kollisjon KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Kallenavnet/Kanalen er midlertidig utilgjengelig +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De er ikke på den kanalen +ERR_NOTONCHANNEL: :%s 442 %s %s :Du er ikke på den kanalen +ERR_USERONCHANNEL: :%s 443 %s %s %s :er allered på kanalen +ERR_NOTREGISTERED: :%s 451 %s :Du har ikke registrert +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ikke nok verdier (parameters) +ERR_ALREADYREGISTRED: :%s 462 %s :Du kan ikke registrere +ERR_PASSWDMISMATCH: :%s 464 %s :Passordet var inkorrekt +ERR_YOUREBANNEDCREEP: :%s 465 %s :Du er utestengt fra denne serveren- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Kan ikke komme inn i kanalen (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :er en ukjent modus tegn for meg +ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ikke komme inn i kanalen (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ikke komme inn i kanalen (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ikke komme inn i kanalen (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Kanalens utestengings liste er full +ERR_BADCHANNAME: :%s 479 %s %s :Ulovlig kanal navn +ERR_NOPRIVILEGES: :%s 481 %s :Tillatelse nektet - Du er ikke en IRC operatør +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du er ikke en kanal operatør +ERR_CANTKILLSERVER: :%s 483 %s :Du kan ikke drepe (kill) en server! +ERR_RESTRICTED: :%s 484 %s :Du er begrenset +ERR_NOOPERHOST: :%s 491 %s :Kun få dødelige kan prøve å komme inn i det forbudte området (twilight zone) +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Ukjent MODE flag +ERR_USERSDONTMATCH: :%s 502 %s :Kan ikke forandre modus på andre brukere +ERR_GHOSTEDCLIENT: :%s 503 %s :Beskjeden kunne ikke bli levert til %s +ERR_USERNOTONSERV: :%s 504 %s %s :Bruker er ikke på denne serveren diff --git a/messages/ircd-polish.lang b/messages/ircd-polish.lang new file mode 100644 index 0000000..f84e19d --- /dev/null +++ b/messages/ircd-polish.lang @@ -0,0 +1,108 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2003-2005, Piotr Ni¿yñski <nizynski@sysplex.pl> +; Coding: ISO-8859-2 * CP-1250 +; $Id$ + +RPL_WELCOME: :%s 001 %s :Witaj w sieci IRC %s, %s +RPL_YOURHOST: :%s 002 %s :Twój host to %s, obecna wersja %s +RPL_CREATED: :%s 003 %s :Ten serwer zosta³ utworzony %s +RPL_ISUPPORT: :%s 005 %s %s :sa obs³ugiwane przez ten serwer +RPL_REDIR: :%s 010 %s %s %d :Proszê u¿ywaæ tego serwera/portu +RPL_MAPEND: :%s 017 %s :Koniec /MAP +RPL_YOURID: :%s 042 %s %s :Twój unikalny ID +RPL_ENDOFSTATS: :%s 219 %s %c :Koniec raportu /STATS +RPL_STATSUPTIME: :%s 242 %s :Serwer dzia³a %d dni, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Najwy¿sza liczba po³aczeñ: %d (%d klientów) (%llu od startu serwera) +RPL_LUSERCLIENT: :%s 251 %s :Jest %d u¿ytkowników i %d niewidzialnych na %d serwerach +RPL_LUSEROP: :%s 252 %s %d :aktywnych IRC Operatorów +RPL_LUSERUNKNOWN: :%s 253 %s %d :- liczba niezarejestrowanych po³aczeñ +RPL_LUSERCHANNELS: :%s 254 %s %d :- liczba utworzonych kana³ów +RPL_LUSERME: :%s 255 %s :Mam %d po³aczonych klientów, serwerów: %d +RPL_ADMINME: :%s 256 %s :Informacje administracyjne o %s +RPL_LOAD2HI: :%s 263 %s :Obcia¿enie serwera jest chwilowo zbyt du¿e. Proszê zaczekaæ chwilê i spróbowaæ ponownie. +RPL_LOCALUSERS: :%s 265 %s :Liczba lokalnych u¿ytkowników: %d Rekord: %d +RPL_GLOBALUSERS: :%s 266 %s :Liczba globalnych u¿ytkowników: %d Rekord: %d +RPL_ENDOFACCEPT: :%s 282 %s :Koniec listy /ACCEPT. +RPL_UNAWAY: :%s 305 %s :Zdjêto flagê nieobecnosci +RPL_NOWAWAY: :%s 306 %s :Ustawiono flagê nieobecnosci +RPL_WHOISADMIN: :%s 313 %s %s :jest administratorem serwera +RPL_WHOISOPERATOR: :%s 313 %s %s :jest operatorem IRC +RPL_ENDOFWHO: :%s 315 %s %s :Koniec listy /WHO. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekund bezczynnosci, czas zalogowania +RPL_ENDOFWHOIS: :%s 318 %s %s :Koniec listy /WHOIS. +RPL_LISTSTART: :%s 321 %s Kana³ :U¿ytkownicy Temat +RPL_LISTEND: :%s 323 %s :Koniec /LIST +RPL_NOTOPIC: :%s 331 %s %s :Brak ustawionego tematu. +RPL_WHOISACTUALLY: :%s 338 %s %s %s :w rzeczywistosci u¿ywa hosta +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Koniec listy zaproszeñ kana³owych +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Koniec listy wyjatków kana³owych +RPL_ENDOFLINKS: :%s 365 %s %s :Koniec listy /LINKS. +RPL_ENDOFNAMES: :%s 366 %s %s :Koniec listy /NAMES. +RPL_ENDOFBANLIST: :%s 368 %s %s :Koniec listy banów kana³owych +RPL_ENDOFWHOWAS: :%s 369 %s %s :Koniec /WHOWAS +RPL_INFOSTART: :%s 373 %s :Informacje o serwerze +RPL_ENDOFINFO: :%s 374 %s :Koniec listy /INFO. +RPL_ENDOFMOTD: :%s 376 %s :Koniec komendy /MOTD. +RPL_HOSTHIDDEN: :%s 396 %s %s :zastêpuje teraz Twój host +ERR_NOSUCHNICK: :%s 401 %s %s :Nie ma takiego nicka/kana³u +ERR_NOSUCHSERVER: :%s 402 %s %s :Nie ma takiego serwera +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nie ma takiego kana³u +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Nie mo¿na wys³aæ na kana³ +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Masz zbyt du¿o otwartych kana³ów +ERR_WASNOSUCHNICK: :%s 406 %s %s :Nie by³o takiego nicka +ERR_TOOMANYTARGETS: :%s 407 %s %s :Zbyt wiele adresatów. Obs³u¿ono tylko %d +ERR_NOORIGIN: :%s 409 %s :Nie podano zród³a +ERR_NORECIPIENT: :%s 411 %s :Nie podano adresata (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Brak tekstu do wys³ania +ERR_NOTOPLEVEL: :%s 413 %s %s :Nie podano TLD +ERR_WILDTOPLEVEL: :%s 414 %s %s :W TLD nie mo¿e byæ znaków maskujacych +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Nieznana komenda +ERR_NOMOTD: :%s 422 %s :Brakuje pliku MOTD +ERR_NOADMININFO: :%s 423 %s %s :Brak dostêpnych informacji administracyjnych +ERR_NONICKNAMEGIVEN: :%s 431 %s :Nie podano nicka +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nieprawid³owy nick +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick jest zajêty. +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kana³ jest tymczasowo niedostêpny +ERR_NICKTOOFAST: :%s 438 %s %s %s :Zbyt szybka zmiana nicka. Proszê odczekaæ %d sekund. +ERR_SERVICESDOWN: :%s 440 %s :Serwisy sa obecnie niedostêpne +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nie ma takiego u¿ytkownika na tym kanale +ERR_NOTONCHANNEL: :%s 442 %s %s :Nie jestes na tym kanale +ERR_USERONCHANNEL: :%s 443 %s %s %s :jest ju¿ na kanale +ERR_NOTREGISTERED: :%s 451 %s :Twoje po³aczenie nie jest jeszcze zarejestrowane +ERR_ACCEPTFULL: :%s 456 %s :Lista ACCEPT jest przepe³niona +ERR_ACCEPTEXIST: :%s 457 %s %s :jest ju¿ na Twojej liscie ACCEPT +ERR_ACCEPTNOT: :%s 458 %s %s :nie jest na Twojej liscie ACCEPT +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Za ma³o parametrów +ERR_ALREADYREGISTRED: :%s 462 %s :Nie mo¿esz zarejestrowaæ siê ponownie +ERR_PASSWDMISMATCH: :%s 464 %s :Nieprawid³owe has³o +ERR_CHANNELISFULL: :%s 471 %s %s :Nie mo¿na wejsc na kana³ (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :to dla mnie nieznany tryb +ERR_INVITEONLYCHAN: :%s 473 %s %s :Nie mo¿na wejsc na kana³ (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Nie mo¿na wejsc na kana³ (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Nie mo¿na wejsc na kana³ (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Lista banów kana³owych jest przepe³niona +ERR_BADCHANNAME: :%s 479 %s %s :Niedopuszczalna nazwa kana³u +ERR_NOPRIVILEGES: :%s 481 %s :Brak uprawnieñ - nie jestes IRC Operatorem +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Nie jestes operatorem kana³u +ERR_RESTRICTED: :%s 484 %s :Twoje po³aczenie jest objête restrykcja +ERR_NOOPERHOST: :%s 491 %s :Tylko nieliczni smiertelnicy moga uzyskaæ prawa IRC Operatora +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Nieznana flaga MODE +ERR_USERSDONTMATCH: :%s 502 %s :Nie mo¿esz zmieniaæ trybów innych u¿ytkowników +ERR_GHOSTEDCLIENT: :%s 503 %s :Wiadomosc dla %s nie mo¿e byæ dostarczona +ERR_USERNOTONSERV: :%s 504 %s %s :U¿ytkownik nie korzysta z tego serwera +ERR_WRONGPONG: :%s 513 %s :Aby siê po³aczyæ, wpisz /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Z³a sk³adnia dla LIST, wpisz /QUOTE HELP LIST +ERR_HELPNOTFOUND: :%s 524 %s %s :Nie odnaleziono pomocy +RPL_WHOISSECURE: :%s 671 %s %s :u¿ywa SSL (bezpiecznego po³aczenia) +RPL_ENDOFHELP: :%s 706 %s %s :Koniec /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :prosi o zaproszenie. +RPL_KNOCKDLVR: :%s 711 %s %s :Twój KNOCK zosta³ dostarczony. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Zbyt wiele KNOCK (%s). +ERR_CHANOPEN: :%s 713 %s %s :Kana³ jest otwarty. +ERR_KNOCKONCHAN: :%s 714 %s %s :Jestes ju¿ na tym kanale. +RPL_TARGUMODEG: :%s 716 %s %s :jest w trybie +g (server side ignore) +RPL_TARGNOTIFY: :%s 717 %s %s :U¿ytkownik zosta³ poinformowany, ¿e do niego pisano. +RPL_UMODEGMSG: :%s 718 %s %s :pisze do Ciebie, ale jestes w trybie +g. +ERR_NOPRIVS: :%s 723 %s %s :Za ma³e uprawnienia operatora. +RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Lokalnych/zdalnych pasujacych klientów. +RPL_NOTESTLINE: :%s 726 %s %s :Brak pasujacych diff --git a/messages/ircd-romanian.lang b/messages/ircd-romanian.lang new file mode 100644 index 0000000..682a621 --- /dev/null +++ b/messages/ircd-romanian.lang @@ -0,0 +1,126 @@ +; ircd-hybrid-7 standard message file - for Romanian +; Copyright (C) 2007 Bogdan Mintoi <bogdomania@yahoo.com> +; $Id$ +; + +RPL_WELCOME: :%s 001 %s :Bine ai venit pe reteaua ValceaNet %s +RPL_YOURHOST: :%s 002 %s :Gazda ta este %s, ruland versiunea %s +RPL_CREATED: :%s 003 %s :Acest server a fost creat la data/ora %s +RPL_ISUPPORT: :%s 005 %s %s :sunt suportate de acest server +RPL_REDIR: :%s 010 %s %s %d :Foloseste acest Server/Port in schimb +RPL_MAPEND: :%s 017 %s :Sfarsitul /MAP +RPL_YOURID: :%s 042 %s %s :ID tau unic +RPL_TRACELINK: :%s 200 %s Link %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Try. %s %s +RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s +RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d +RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s User %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <noultip> 0 %s +RPL_TRACECLASS: :%s 209 %s Clasa %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Sfarsitul /STATS report +RPL_STATSUPTIME: :%s 242 %s :Server Up %d days, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Numarul maxim de conexiuni: %d (%d clienti) (%llu conexiuni primite) +RPL_LUSERCLIENT: :%s 251 %s :Exista %d utilizatori si %d invizibili pe %d servere +RPL_LUSEROP: :%s 252 %s %d :IRC Operatori prezenti +RPL_LUSERUNKNOWN: :%s 253 %s %d :conexiuni necunoscute +RPL_LUSERCHANNELS: :%s 254 %s %d :canale formate +RPL_LUSERME: :%s 255 %s :Exista %d clienti si %d servere +RPL_ADMINME: :%s 256 %s :Informatii administrative despre %s +RPL_ENDOFTRACE: :%s 262 %s %s :Sfarsitul TRACE +RPL_LOAD2HI: :%s 263 %s :Serverul este momentan prea incarcat. Reancearca mai tarziu. +RPL_LOCALUSERS: :%s 265 %s :Utilizatori locali actuali: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Utilizatori globali actuali: %d Max: %d +RPL_ENDOFACCEPT: :%s 282 %s :Sfarsitul listei /ACCEPT +RPL_UNAWAY: :%s 305 %s :Nu mai esti marcat(a) ca fiind away. +RPL_NOWAWAY: :%s 306 %s :Esti marcat(a) ca fiind away. +RPL_WHOISADMIN: :%s 313 %s %s :este un Administrator de Server +RPL_WHOISOPERATOR: :%s 313 %s %s :este un IRC Operator +RPL_ENDOFWHO: :%s 315 %s %s :Sfarsitul listei /WHO +RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle +RPL_ENDOFWHOIS: :%s 318 %s %s :Sfarsitul listei /WHOIS +RPL_LISTSTART: :%s 321 %s Canal :Useri Nume +RPL_LISTEND: :%s 323 %s :Sfarsitul /LIST +RPL_NOTOPIC: :%s 331 %s %s :Nu este setat nici un topic. +RPL_WHOISACTUALLY: :%s 338 %s %s %s :in prezent folosind host-ul +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Sfarsitul Liestei de Invite a Canalului +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Sfarsitul Listei de Exceptii a Canalului +RPL_CLOSING: :%s 362 %s %s :Inchis. Status = %d +RPL_CLOSEEND: :%s 363 %s %d: Conexiuni inchise +RPL_ENDOFLINKS: :%s 365 %s %s :Sfarsitul listei /LINKS +RPL_ENDOFNAMES: :%s 366 %s %s :Sfarsitul listei /NAMES +RPL_ENDOFBANLIST: :%s 368 %s %s :Sfarsitul Listei de Ban-uri a Canalului +RPL_ENDOFWHOWAS: :%s 369 %s %s :Sfarsitul WHOWAS +RPL_INFOSTART: :%s 373 %s :Server INFO +RPL_ENDOFINFO: :%s 374 %s :Sfarsitul listei /INFO +RPL_MOTDSTART: :%s 375 %s :- %s Mesajul zilei - +RPL_ENDOFMOTD: :%s 376 %s :Sfarsitul /MOTD +RPL_YOUREOPER: :%s 381 %s :Moduri setate-esti un IRCop +RPL_REHASHING: :%s 382 %s %s :Se executa comanda Rehash +RPL_HOSTHIDDEN: :%s 396 %s :este acum noul tau host +ERR_NOSUCHNICK: :%s 401 %s %s :Nu exista acel nick sau canal +ERR_NOSUCHSERVER: :%s 402 %s %s :Nu exista acel server +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nu exista acel canal +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Nu poti trimite pe canal +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Te-ai alaturat prea multor canale +ERR_WASNOSUCHNICK: :%s 406 %s %s :Nu a existat un asemenea nickname +ERR_TOOMANYTARGETS: :%s 407 %s %s :Prea multe recipiente date. Doar %d procesate +ERR_NOORIGIN: :%s 409 %s :Nu a fost specificata nici o origine +ERR_NORECIPIENT: :%s 411 %s :Nu a fost specificat nici un recipient (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Nu exista text de trimis +ERR_NOTOPLEVEL: :%s 413 %s %s :Nici un domeniu TopLevel specificat +ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in Domeniul TopLevel +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comanda nerecunoscuta +ERR_NOMOTD: :%s 422 %s :Fisierul MOTD lipseste sau nu este activat +ERR_NOADMININFO: :%s 423 %s %s :Nu este disponibila nici o informatie administrativa +ERR_NONICKNAMEGIVEN: :%s 431 %s :Nici un nickname specificat +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nickname gresit +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nickname ales este deja folosit.Alege un alt nickname. +ERR_NICKCOLLISION: :%s 436 %s %s :Coliziune de nickname - KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nickul sau canalul specificat este indisponibil temporar +ERR_NICKTOOFAST: :%s 438 %s %s %s :Incercare de a schimba nick-ul prea rapida. Asteapta %d secunde. +ERR_SERVICESDOWN: :%s 440 %s :Serviciile sunt dezactivate temporar. +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nu se afla pe acel canal +ERR_NOTONCHANNEL: :%s 442 %s %s :Nu te afli pe acel canal +ERR_USERONCHANNEL: :%s 443 %s %s %s :este deja pe canal +ERR_NOTREGISTERED: :%s 451 %s :Nu esti autentificat(a) +ERR_ACCEPTFULL: :%s 456 %s :Lista de accepturi este plina +ERR_ACCEPTEXIST: :%s 457 %s %s :se afla deja in lista ta de accepturi +ERR_ACCEPTNOT: :%s 458 %s %s :nu se afla in lista ta de accepturi +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parametri insuficienti +ERR_ALREADYREGISTRED: :%s 462 %s :Esti deja autentificat(a) +ERR_PASSWDMISMATCH: :%s 464 %s :Parola incorecta +ERR_YOUREBANNEDCREEP: :%s 465 %s :Esti momentan banat(a) pe acest server- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Nu poti intra pe canal (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :este un caracter nerecunoscut de sistem +ERR_INVITEONLYCHAN: :%s 473 %s %s :Nu poti intra pe canal (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Nu poti intra pe canal (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Nu poti intra pe canal (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Lista de banuri a canalului este plina +ERR_BADCHANNAME: :%s 479 %s %s :Nume de canal ilegal +ERR_NOPRIVILEGES: :%s 481 %s :Imposibil de executat - Nu esti un IRCop +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Nu esti un operator de canal +ERR_CANTKILLSERVER: :%s 483 %s :Nu poti efectua kill unui server! +ERR_RESTRICTED: :%s 484 %s :parametri limitati pentru host-ul tau +ERR_NOOPERHOST: :%s 491 %s :Incercare de autentificare ca IRCop esuata. +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :MODE necunoscut +ERR_USERSDONTMATCH: :%s 502 %s :Nu se pot modifica modurile pentru alti utilizatori +ERR_GHOSTEDCLIENT: :%s 503 %s :Mesajul nu a fost trimis catre %s +ERR_USERNOTONSERV: :%s 504 %s %s :Userul nu se afla pe acest server +ERR_WRONGPONG: :%s 513 %s :Pentru a te conecta tasteaza /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Sintaxa eronata +ERR_HELPNOTFOUND: :%s 524 %s %s :Help- nu a fost gasit +RPL_WHOISSECURE: :%s 671 %s %s :este conectat prin SSL (conexiune securizata) +RPL_ENDOFMODLIST: :%s 703 %s :Sfarsitul /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :Sfarsitul /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :a cerut invite. +RPL_KNOCKDLVR: :%s 711 %s %s :KNOCK-ul tau a fost livrat. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Prea multe KNOCK (%s). +ERR_CHANOPEN: :%s 713 %s %s :Canalul este deschis. +ERR_KNOCKONCHAN: :%s 714 %s %s :Te afli deja pe acel canal. +RPL_TARGUMODEG: :%s 716 %s %s :se afla in modul +g (server side ignore) +RPL_TARGNOTIFY: :%s 717 %s %s :has been informed that you messaged them. +RPL_UMODEGMSG: :%s 718 %s %s :iti trimite mesaj,si tu ai setat umode +g. +ERR_NOPRIVS: :%s 723 %s %s :privilegii de operator insuficiente. +RPL_NOTESTLINE: :%s 726 %s %s :Nu exista potriviri diff --git a/messages/ircd-russian.lang b/messages/ircd-russian.lang new file mode 100644 index 0000000..dbbbb5c --- /dev/null +++ b/messages/ircd-russian.lang @@ -0,0 +1,93 @@ +; ircd-hybrid-7 custom message file +; Copyright (C) 2003 +; Ilya Shtift <ishtift@tagil.svrw.ru>, 2003. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Äîáðî ïîæàëîâàòü â %s Internet Relay Chat Network %s +RPL_YOURHOST: :%s 002 %s :Âàø ñåðâåð %s, âåðñèÿ %s +RPL_CREATED: :%s 003 %s :Ýòîò ñåðâåð áûë ñîçäàí %s +RPL_ISUPPORT: :%s 005 %s %s :ïîääåðæèâàåòñÿ ýòèì ñåðâåðîì +RPL_REDIR: :%s 010 %s %s %d :Ïîæàëóéñòà èñïîëüçóéòå ýòîò ñåðâåð/ïîðò +RPL_MAPEND: :%s 017 %s :Çàâåðøåíèå /MAP +RPL_ENDOFSTATS: :%s 219 %s %c :Çàâåðøåíèå âûâîäà îò÷åòà /STATS +RPL_STATSUPTIME: :%s 242 %s :Ñåðâåð ðàáîòàåò %d äíåé, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Íàèáîëüøåå êîëè÷åñòâî ñîåäèíåíèé: %d (%d êëèåíòîâ) (%llu âõîäÿùèõ ñîåäèíåíèé) +RPL_LUSERCLIENT: :%s 251 %s :Çäåñü %d ïîëüçîâàòåëåé è %d íåâèäèìûõ íà %d ñåðâåðàõ +RPL_LUSEROP: :%s 252 %s %d :IRC Îïåðàòîðîâ â íàøåé ñåòè +RPL_LUSERUNKNOWN: :%s 253 %s %d :íåèçâåñòíûõ ñîåäèíåíèé +RPL_LUSERCHANNELS: :%s 254 %s %d :ñôîðìèðîâàíî êàíàëîâ +RPL_LUSERME: :%s 255 %s :Ê ñåðâåðó ïîäêëþ÷åííî %d êëèåíòîâ è %d ñåðâåðîâ +RPL_ADMINME: :%s 256 %s :Èíôîðìàöèÿ îá àäìèíèñòðàòîðå %s +RPL_ENDOFTRACE: :%s 262 %s %s :Çàâåðøåíèå TRACE +RPL_LOAD2HI: :%s 263 %s :Ñåðâåð âðåìåííî ïåðåãðóæåí. Ïîïðîáóéòå ïîâòîðèòü ïîïûòêó åùå ðàç íåìíîãî ïîçæå. +RPL_LOCALUSERS: :%s 265 %s :Òåêóùèå êîëè÷åñòâî ëîêàëüíûõ ïîëüçîâàòåëåé: %d Ìàêñèìàëüíîå: %d +RPL_GLOBALUSERS: :%s 266 %s :Òåêóùèå êîëè÷åñòâî ãëîáàëüíûõ ïîëüçîâàòåëåé: %d Ìàêñèìàëüíîå: %d +RPL_UNAWAY: :%s 305 %s :Òåïåðü Âû íå îòìå÷åíû êàê away +RPL_NOWAWAY: :%s 306 %s :Òåïåðü Âû îòìå÷åíû êàê away +RPL_ENDOFWHO: :%s 315 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /WHO +RPL_WHOISIDLE: :%s 317 %s %s %d %d :ñåêóíä ìîë÷èò, âðåìÿ ïîäêëþ÷åíèÿ +RPL_ENDOFWHOIS: :%s 318 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /WHOIS. +RPL_LISTEND: :%s 323 %s :Çàâåðøåíèå âûâîäà /LIST +RPL_NOTOPIC: :%s 331 %s %s :Òîïèê íå óñòàíîâëåí. +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà Ïðèãëàøåíèÿ Êàíàëà +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà Èñêëþ÷åíèÿ Êàíàëà +RPL_CLOSING: :%s 362 %s %s :Çàêðûòî. Ñòàòóñ = %d +RPL_CLOSEEND: :%s 363 %s %d :Ñîåäèíåíèÿ çàêðûòû +RPL_ENDOFLINKS: :%s 365 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /LINKS. +RPL_ENDOFNAMES: :%s 366 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà /NAMES. +RPL_ENDOFBANLIST: :%s 368 %s %s :Çàâåðøåíèå âûâîäà ñïèñêà Áàíîâ Êàíàëà +RPL_ENDOFWHOWAS: :%s 369 %s %s :Çàâåðøåíèå âûâîäà WHOWAS +RPL_ENDOFINFO: :%s 374 %s :Çàâåðøåíèå âûâîäà ñïèñêà /INFO +RPL_MOTDSTART: :%s 375 %s :- %s Ñîîáùåíèå äíÿ - +RPL_ENDOFMOTD: :%s 376 %s :Çàâåðøåíèå âûâîäà êîìàíäû /MOTD. +RPL_REHASHING: :%s 382 %s %s :Ïåðå÷èòûâàåòñÿ ôàéë êîíôèãóðàöèè +ERR_NOSUCHNICK: :%s 401 %s %s :Íèê/êàíàë íå íàéäåí +ERR_NOSUCHSERVER: :%s 402 %s %s :Ñåðâåð íå íàéäåí +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Êàíàë íå íàéäåí +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Íåâîçìîæíî ïåðåäàòü íà êàíàë +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Âû óæå çàøëè íà ìàêñèìàëüíî âîçìîæíîå êîëè÷åñòâî êàíàëîâ +ERR_WASNOSUCHNICK: :%s 406 %s %s :Çäåñü íå íàõîäèëñÿ ýòîò íèê +ERR_NOORIGIN: :%s 409 %s :Èñòî÷íèê íå áûë îïåðåäåëåí +ERR_NOTEXTTOSEND: :%s 412 %s :Âû íå óêàçàëè òåêñò äëÿ îòïðàâêè +ERR_NOTOPLEVEL: :%s 413 %s %s :Íå óêàçàí äîìåí âåðõíåãî óðîâíÿ +ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard ñèìâîë â äîìåíå âåðõíåãî óðîâíÿ +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Íåèçâåñòíàÿ êîìàíäà +ERR_NOMOTD: :%s 422 %s :Ôàéë MOTD íå íàéäåí +ERR_NOADMININFO: :%s 423 %s %s :Èíôîðìàöèÿ îá àäìèíèñòðàòîðå íå äîñòóïíà +ERR_NONICKNAMEGIVEN: :%s 431 %s :Âû íå óêàçàëè íèê +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Íåâåðíûé íèê +ERR_NICKNAMEINUSE: :%s 433 %s %s :Ýòîò íèê óæå èñïîëüçóåòñÿ. +ERR_NICKCOLLISION: :%s 436 %s %s :Êîëëèçèÿ íèêà KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Íèê/êàíàë âðåìåííî íåäîñòóïåí +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Îí íå íàõîäèòñÿ íà ýòîì êàíàëå +ERR_NOTONCHANNEL: :%s 442 %s %s :Âû íå íàõîäèòåñü íà ýòîì êàíàëå +ERR_USERONCHANNEL: :%s 443 %s %s %s :âû óæå íàõîäèòåñü íà êàíàëå +ERR_NOTREGISTERED: :%s 451 %s :Âû íå çàðåãèñòðèðîâàëèñü +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ñëèøêîì ìàëî ïàðàìåòðîâ +ERR_ALREADYREGISTRED: :%s 462 %s :Âû íå ìîæåòå çàðåãèñòðèðîâàòñÿ +ERR_PASSWDMISMATCH: :%s 464 %s :Íåâåðíûé ïàðîëü +ERR_YOUREBANNEDCREEP: :%s 465 %s :Âû çàáàíåíû íà ýòîì ñåðâåðå- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :íåèçâåñòíûé ñèìâîë ðåæèìà +ERR_INVITEONLYCHAN: :%s 473 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Íåâîçìîæíî çàéòè íà êàíàë (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Áàí ëèñò êàíàëà ïåðåïîëíåí +ERR_BADCHANNAME: :%s 479 %s %s :Íåäîïóñòèìîå èìÿ êàíàëà +ERR_NOPRIVILEGES: :%s 481 %s : äîñòóïå îòêàçàíî - Âû íå IRC Îïåðàòîð +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Âû íå îïåðàòîð êàíàëà +ERR_CANTKILLSERVER: :%s 483 %s :Âû íå ìîæåòå óáèòü ñåðâåð! +ERR_RESTRICTED: :%s 484 %s :Âû îãðàíè÷åíû +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Íåèçâåñòíûé MODE ôëàã +ERR_USERSDONTMATCH: :%s 502 %s :Âû íå ìîæåòå èçìåíèòü ðåæèì äðóãîãî ïîëüçîâàòåëÿ +ERR_GHOSTEDCLIENT: :%s 503 %s :Íåâîçìîæíî äîñòàâèòü ñîîáùåíèå äëÿ %s +ERR_USERNOTONSERV: :%s 504 %s %s :Ïîëüçîâàòåëü íå íàõîäèòñÿ íà ýòîì ñåðâåðå +ERR_WRONGPONG: :%s 513 %s :Äëÿ ñîåäèíåíèÿ ââåäèòå /QUOTE PONG %lu +ERR_HELPNOTFOUND: :%s 524 %s %s :Ôàéë ïîìîùè íå íàéäåí +RPL_ENDOFMODLIST: :%s 703 %s :Çàâåðøåíèå âûâîäà /MODLIST. +RPL_ENDOFHELP :%s 706 %s %s :Çàâåðøåíèå âûâîäà /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :îïîâåùåí î ïðèãëàøåíèè. +RPL_KNOCKDLVR: :%s 711 %s %s :Âàø KNOCK áûë äîñòàâëåí. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Ñëèøêîì ìíîãî KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :Êàíàë îòêðûò. +ERR_KNOCKONCHAN: :%s 714 %s %s :Âû óæå íàõîäèòåñü íà ýòîì êàíàëå. diff --git a/messages/ircd-spanish.lang b/messages/ircd-spanish.lang new file mode 100644 index 0000000..4faa99b --- /dev/null +++ b/messages/ircd-spanish.lang @@ -0,0 +1,97 @@ +; SOME DESCRIPTIVE TITLE. +; Copyright (C) YEAR Free Software Foundation, Inc. +; FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Bienvenido al %s Internet Relay Chat Network %s +RPL_YOURHOST: :%s 002 %s :Estas en el servidor %s, corriendo la version %s +RPL_CREATED: :%s 003 %s :Este servidor fue creado el %s +RPL_ISUPPORT: :%s 005 %s %s :estan disponibles en servidor +RPL_REDIR: :%s 010 %s %s %d :Porfavor usa este puerto del servidor/envez +RPL_TRACELINK: :%s 200 %s Link %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Trata. %s %s +RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s +RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s Usuario %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <nuevotipo> 0 %s +RPL_TRACECLASS: :%s 209 %s Clase %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Fin del Reporte de /STATS +RPL_STATSUPTIME: :%s 242 %s :Servidor Activo %d dias, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Cuenta Maxima de Conexiones: %d (%d clientes) (%llu conexiones resivida) +RPL_LUSERCLIENT: :%s 251 %s :Hay %d usuarios y %d son invisibles en %d servidores +RPL_LUSEROP: :%s 252 %s %d :Operadores de IRC en linea +RPL_LUSERUNKNOWN: :%s 253 %s %d :Conexion Desconosida(s) +RPL_LUSERCHANNELS: :%s 254 %s %d :canales formados +RPL_LUSERME: :%s 255 %s :Tengo %d clientes en %d servidor(es) +RPL_ADMINME: :%s 256 %s :Informacion Administrativa de %s +RPL_ENDOFTRACE: :%s 262 %s %s :Fin de TRACE +RPL_LOAD2HI: :%s 263 %s :Servidor actualmente muy cargado. Porfavor espere un momento y trate otra vez. +RPL_LOCALUSERS: :%s 265 %s :Usuarios locales actuales: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Usuarios globales actuales: %d Max: %d +RPL_UNAWAY: :%s 305 %s :Ahora ya no estas marcado como Ausente (away) +RPL_NOWAWAY: :%s 306 %s :Ahora estas marcado como Ausente (away) +RPL_ENDOFWHO: :%s 315 %s %s :Fin de la lista de /WHO +RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle, tiempo de entrada +RPL_ENDOFWHOIS: :%s 318 %s %s :Fin de la lista de /WHOIS +RPL_LISTSTART: :%s 321 %s Canal :Nombre de Usuarios +RPL_LISTEND: :%s 323 %s :Fin de /LIST +RPL_NOTOPIC: :%s 331 %s %s :Topico no establecido. +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fin de la lista de invitados del canal +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fin de la lista de Excepciones del canal +RPL_CLOSING: :%s 362 %s %s :Cerrado. Estado = %d +RPL_CLOSEEND: :%s 363 %s %d: Conexiones Cerradas +RPL_ENDOFLINKS: :%s 365 %s %s :Fin de la lista de /LINKS +RPL_ENDOFNAMES: :%s 366 %s %s :Fin de la lista de /NAMES +RPL_ENDOFBANLIST: :%s 368 %s %s :Fin de la lista de banned(s) del canal +RPL_ENDOFWHOWAS: :%s 369 %s %s :Fin de WHOWAS +RPL_INFOSTART: :%s 373 %s :INFO del Servidor +RPL_ENDOFINFO: :%s 374 %s :Fin de la lista de /INFO +RPL_MOTDSTART: :%s 375 %s :- %s Mensaje del dia - +RPL_ENDOFMOTD: :%s 376 %s :Fin del comando de /MOTD +RPL_YOUREOPER: :%s 381 %s :Has entrado a... Twilight Zone!. +RPL_REHASHING: :%s 382 %s %s :Actualizando +ERR_NOSUCHNICK: :%s 401 %s %s :Ese nick/canal no existe +ERR_NOSUCHSERVER: :%s 402 %s %s :Ese servidor no existe +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ese canal no existe +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :No se pueden enviar mensajes al canal +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Has entrado a muchos canales +ERR_WASNOSUCHNICK: :%s 406 %s %s :No habia nadie con ese nick +ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Only %d processed +ERR_NOORIGIN: :%s 409 %s :Origen no especificado +ERR_NORECIPIENT: :%s 411 %s :No recipient given (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :No texto para enviar +ERR_NOTOPLEVEL: :%s 413 %s %s :No toplevel domain specified +ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in toplevel Domain +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comando desconosido +ERR_NOMOTD: :%s 422 %s :El Mensaje del dia MOTD no esta presente +ERR_NOADMININFO: :%s 423 %s %s :Informacion administrativa no disponible +ERR_NONICKNAMEGIVEN: :%s 431 %s :No nickname dado +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nick Invalido/Erroneo +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick actualmente en uso +ERR_NICKCOLLISION: :%s 436 %s %s :Colision de nicks KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/Canal no esta disponible temporalmente +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :No estan en el canal +ERR_NOTONCHANNEL: :%s 442 %s %s :Tu no estas en ese canal +ERR_USERONCHANNEL: :%s 443 %s %s %s :Ya esta en el canal +ERR_NOTREGISTERED: :%s 451 %s :No te has registrado +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parametros insuficientes +ERR_ALREADYREGISTRED: :%s 462 %s :No puedes ser registrado +ERR_PASSWDMISMATCH: :%s 464 %s :Password Incorrecto +ERR_YOUREBANNEDCREEP: :%s 465 %s :Tu estas banned de este servidor- %s +ERR_CHANNELISFULL: :%s 471 %s %s :No puedes entrar al canal (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :Es un mode desconosido para mi +ERR_INVITEONLYCHAN: :%s 473 %s %s :No puedes entrar al canal (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :No puedes entrar al canal (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :No puedes entrar al canal (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :La lista de ban en el canal esta llena +ERR_BADCHANNAME: :%s 479 %s %s :El nombre del canal es Ilegal o invalido +ERR_NOPRIVILEGES: :%s 481 %s :Permiso Negado - Tu no eres un Operador de IRC +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Tu no eres un operador del canal +ERR_CANTKILLSERVER: :%s 483 %s :Tu no puedes matar un servidor! +ERR_RESTRICTED: :%s 484 %s :Estas Restringido +ERR_NOOPERHOST: :%s 491 %s :Solamente algunos mortales pueden tratar de entrar al mundo de.. twilight zone +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Flag MODE desconosida +ERR_USERSDONTMATCH: :%s 502 %s :No puedes cambiar los modes de otros usuarios +ERR_GHOSTEDCLIENT: :%s 503 %s :Mensaje no puede ser entregado a %s +ERR_USERNOTONSERV: :%s 504 %s %s :Usuario no esta en este servidor diff --git a/messages/ircd-standard.example.lang b/messages/ircd-standard.example.lang new file mode 100644 index 0000000..9ec8833 --- /dev/null +++ b/messages/ircd-standard.example.lang @@ -0,0 +1,137 @@ +; ircd-hybrid-7 standard message file - for reference only +; Copyright (C) 2003 Joshua Kwan <joshk@triplehelix.org> +; $Id$ + +; Use this file as a starting point for translating everything into the +; language you need. This file contains all of the defined events in +; messages.tab. + +; You will probably be able to leave out many of these, but in the +; event that you need some, they're ALL here. Even the very mundane +; ones - except where there is NULL. + +; Please replace my name with yours, the title with your language, +; remove these lines, etc. when creating your own file. + +RPL_WELCOME: :%s 001 %s :Welcome to the %s Internet Relay Chat Network %s +RPL_YOURHOST: :%s 002 %s :Your host is %s, running version %s +RPL_CREATED: :%s 003 %s :This server was created %s +RPL_ISUPPORT: :%s 005 %s %s :are supported by this server +RPL_REDIR: :%s 010 %s %s %d :Please use this Server/Port instead +RPL_MAPEND: :%s 017 %s :End of /MAP +RPL_YOURID: :%s 042 %s %s :your unique ID +RPL_TRACELINK: :%s 200 %s Link %s %s %s +RPL_TRACECONNECTING: :%s 201 %s Try. %s %s +RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s +RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d +RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu +RPL_TRACEUSER: :%s 205 %s User %s %s (%s) %lu %lu +RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu +RPL_TRACENEWTYPE: :%s 208 %s <newtype> 0 %s +RPL_TRACECLASS: :%s 209 %s Class %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :End of /STATS report +RPL_STATSUPTIME: :%s 242 %s :Server Up %d days, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Highest connection count: %d (%d clients) (%llu connections received) +RPL_LUSERCLIENT: :%s 251 %s :There are %d users and %d invisible on %d servers +RPL_LUSEROP: :%s 252 %s %d :IRC Operators online +RPL_LUSERUNKNOWN: :%s 253 %s %d :unknown connection(s) +RPL_LUSERCHANNELS: :%s 254 %s %d :channels formed +RPL_LUSERME: :%s 255 %s :I have %d clients and %d servers +RPL_ADMINME: :%s 256 %s :Administrative info about %s +RPL_ENDOFTRACE: :%s 262 %s %s :End of TRACE +RPL_LOAD2HI: :%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again. +RPL_LOCALUSERS: :%s 265 %s :Current local users: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Current global users: %d Max: %d +RPL_ENDOFACCEPT: :%s 282 %s :End of /ACCEPT list. +RPL_UNAWAY: :%s 305 %s :You are no longer marked as being away +RPL_NOWAWAY: :%s 306 %s :You have been marked as being away +RPL_WHOISADMIN: :%s 313 %s %s :is a Server Administrator +RPL_WHOISOPERATOR: :%s 313 %s %s :is an IRC Operator +RPL_ENDOFWHO: :%s 315 %s %s :End of /WHO list. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle +RPL_ENDOFWHOIS: :%s 318 %s %s :End of /WHOIS list. +RPL_LISTSTART: :%s 321 %s Channel :Users Name +RPL_LISTEND: :%s 323 %s :End of /LIST +RPL_NOTOPIC: :%s 331 %s %s :No topic is set. +RPL_WHOISACTUALLY: :%s 338 %s %s %s :actually using host +RPL_ENDOFINVEXLIST: :%s 347 %s %s :End of Channel Invite List +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :End of Channel Exception List +RPL_CLOSING: :%s 362 %s %s :Closed. Status = %d +RPL_CLOSEEND: :%s 363 %s %d: Connections Closed +RPL_ENDOFLINKS: :%s 365 %s %s :End of /LINKS list. +RPL_ENDOFNAMES: :%s 366 %s %s :End of /NAMES list. +RPL_ENDOFBANLIST: :%s 368 %s %s :End of Channel Ban List +RPL_ENDOFWHOWAS: :%s 369 %s %s :End of WHOWAS +RPL_INFOSTART: :%s 373 %s :Server INFO +RPL_ENDOFINFO: :%s 374 %s :End of /INFO list. +RPL_MOTDSTART: :%s 375 %s :- %s Message of the Day - +RPL_ENDOFMOTD: :%s 376 %s :End of /MOTD command. +RPL_YOUREOPER: :%s 381 %s :You have entered... the Twilight Zone! +RPL_REHASHING: :%s 382 %s %s :Rehashing +RPL_HOSTHIDDEN: :%s 396 %s :is now your hidden host +ERR_NOSUCHNICK: :%s 401 %s %s :No such nick/channel +ERR_NOSUCHSERVER: :%s 402 %s %s :No such server +ERR_NOSUCHCHANNEL: :%s 403 %s %s :No such channel +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Cannot send to channel +ERR_TOOMANYCHANNELS: :%s 405 %s %s :You have joined too many channels +ERR_WASNOSUCHNICK: :%s 406 %s %s :There was no such nickname +ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Only %d processed +ERR_NOORIGIN: :%s 409 %s :No origin specified +ERR_NORECIPIENT: :%s 411 %s :No recipient given (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :No text to send +ERR_NOTOPLEVEL: :%s 413 %s %s :No toplevel domain specified +ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in toplevel Domain +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Unknown command +ERR_NOMOTD: :%s 422 %s :MOTD File is missing +ERR_NOADMININFO: :%s 423 %s %s :No administrative info available +ERR_NONICKNAMEGIVEN: :%s 431 %s :No nickname given +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Erroneous Nickname +ERR_NICKNAMEINUSE: :%s 433 %s %s :Nickname is already in use. +ERR_NICKCOLLISION: :%s 436 %s %s :Nickname collision KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/channel is temporarily unavailable +ERR_NICKTOOFAST: :%s 438 %s %s %s :Nick change too fast. Please wait %d seconds. +ERR_SERVICESDOWN: :%s 440 %s :Services is currently down. +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :They aren't on that channel +ERR_NOTONCHANNEL: :%s 442 %s %s :You're not on that channel +ERR_USERONCHANNEL: :%s 443 %s %s %s :is already on channel +ERR_NOTREGISTERED: :%s 451 %s :You have not registered +ERR_ACCEPTFULL: :%s 456 %s :Accept list is full +ERR_ACCEPTEXIST: :%s 457 %s %s :is already on your accept list +ERR_ACCEPTNOT: :%s 458 %s %s :is not on your accept list +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Not enough parameters +ERR_ALREADYREGISTRED: :%s 462 %s :You may not reregister +ERR_PASSWDMISMATCH: :%s 464 %s :Password Incorrect +ERR_YOUREBANNEDCREEP: :%s 465 %s :You are banned from this server- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Cannot join channel (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :is unknown mode char to me +ERR_INVITEONLYCHAN: :%s 473 %s %s :Cannot join channel (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Cannot join channel (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Cannot join channel (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Channel ban list is full +ERR_BADCHANNAME: :%s 479 %s %s :Illegal channel name +ERR_NOPRIVILEGES: :%s 481 %s :Permission Denied - You're not an IRC operator +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You're not channel operator +ERR_CANTKILLSERVER: :%s 483 %s :You can't kill a server! +ERR_RESTRICTED: :%s 484 %s :You are restricted +ERR_NOOPERHOST: :%s 491 %s :Only few of mere mortals may try to enter the twilight zone +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Unknown MODE flag +ERR_USERSDONTMATCH: :%s 502 %s :Can't change mode for other users +ERR_GHOSTEDCLIENT: :%s 503 %s :Message could not be delivered to %s +ERR_USERNOTONSERV: :%s 504 %s %s :User is not on this server +ERR_WRONGPONG: :%s 513 %s :To connect type /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Bad list syntax +ERR_HELPNOTFOUND: :%s 524 %s %s :Help not found +RPL_WHOISSECURE: :%s 671 %s %s :is connected via SSL (secure link) +RPL_ENDOFMODLIST: :%s 703 %s :End of /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :End of /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :has asked for an invite. +RPL_KNOCKDLVR: :%s 711 %s %s :Your KNOCK has been delivered. +ERR_TOOMANYKNOCK: :%s 712 %s %s :Too many KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :Channel is open. +ERR_KNOCKONCHAN: :%s 714 %s %s :You are already on that channel. +RPL_TARGUMODEG: :%s 716 %s %s :is in +g mode (server side ignore) +RPL_TARGNOTIFY: :%s 717 %s %s :has been informed that you messaged them. +RPL_UMODEGMSG: :%s 718 %s %s :is messaging you, and you are umode +g. +ERR_NOPRIVS: :%s 723 %s %s :Insufficient oper privs. +RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Local/remote clients match. +RPL_NOTESTLINE: :%s 726 %s %s :No matches diff --git a/messages/ircd-swedish.lang b/messages/ircd-swedish.lang new file mode 100644 index 0000000..a4b522f --- /dev/null +++ b/messages/ircd-swedish.lang @@ -0,0 +1,108 @@ +; ircd-hybrid-7 swedish message file +; Copyright (C) 2000-2005 +; David Taylor <davidt@yadt.co.uk>, 2000. +; Rickard Åberg <shelter@chatjunkies.org>, 2005. +; $Id$ + +RPL_WELCOME: :%s 001 %s :Välkommen till %s Internet Relay Chat Network %s +RPL_YOURHOST: :%s 002 %s :Din värd är %s, som kör version %s +RPL_CREATED: :%s 003 %s :Denna server skapades %s +RPL_ISUPPORT: :%s 005 %s %s :stödjs av denna server +RPL_REDIR: :%s 010 %s %s %d :Vänligen använd denna Server/Port i stället +RPL_TRACECONNECTING: :%s 201 %s Försök. %s %s +RPL_TRACEUSER: :%s 205 %s Användare %s %s (%s) %lu %lu +RPL_TRACENEWTYPE: :%s 208 %s <nytyp> 0 %s +RPL_TRACECLASS: :%s 209 %s Klass %s %d +RPL_ENDOFSTATS: :%s 219 %s %c :Slut på /STATS rapport +RPL_STATSUPTIME: :%s 242 %s :Server Upptid %d dagar, %d:%02d:%02d +RPL_STATSCONN: :%s 250 %s :Högsta anslutning antal: %d (%d klienter) (%llu anslutningar mottagna) +RPL_LUSERCLIENT: :%s 251 %s :Det finns %d användare och %d osynliga på %d servrar +RPL_LUSEROP: :%s 252 %s %d :IRC Operatörer online +RPL_LUSERUNKNOWN: :%s 253 %s %d :okänd(a) anslutning(ar) +RPL_LUSERCHANNELS: :%s 254 %s %d :kanaler skapade +RPL_LUSERME: :%s 255 %s :Jag har %d klienter och %d servrar +RPL_ADMINME: :%s 256 %s :Administrativ info om %s +RPL_ENDOFTRACE: :%s 262 %s %s :Slut på TRACE +RPL_LOAD2HI: :%s 263 %s :Servern är för tillfället överbelastad. Vänligen vänta en stund och försök igen senare. +RPL_LOCALUSERS: :%s 265 %s :Antal lokala användare: %d Max: %d +RPL_GLOBALUSERS: :%s 266 %s :Antal globala användare: %d Max: %d +RPL_UNAWAY: :%s 305 %s :Du är inte längre markerad som borta +RPL_NOWAWAY: :%s 306 %s :Du har blivit markerad som borta +RPL_ENDOFWHO: :%s 315 %s %s :Slut på /WHO lista. +RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunder overksam, login tid +RPL_ENDOFWHOIS: :%s 318 %s %s :Slut på /WHOIS lista. +RPL_LISTSTART: :%s 321 %s Kanaler :Användare Namn +RPL_LISTEND: :%s 323 %s :Slut på /LIST +RPL_NOTOPIC: :%s 331 %s %s :Ingen topic är satt. +RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slut på Kanal Inbjudningslista +RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slut på Kanal Undantagslista +RPL_CLOSING: :%s 362 %s %s :Stängd. Status = %d +RPL_CLOSEEND: :%s 363 %s %d: Anslutningar Stängda +RPL_ENDOFLINKS: :%s 365 %s %s :Slut på /LINKS lista. +RPL_ENDOFNAMES: :%s 366 %s %s :Slut på /NAMES lista. +RPL_ENDOFBANLIST: :%s 368 %s %s :Slut på Kanal Banlista +RPL_ENDOFWHOWAS: :%s 369 %s %s :Slut på WHOWAS +RPL_ENDOFINFO: :%s 374 %s :Slut på /INFO lista. +RPL_MOTDSTART: :%s 375 %s :- %s Dagens Meddelande - +RPL_ENDOFMOTD: :%s 376 %s :Slut på /MOTD. +RPL_YOUREOPER: :%s 381 %s :Du är nu i... Skymmningstimmen!. +RPL_REHASHING: :%s 382 %s %s :Laddar om +ERR_NOSUCHNICK: :%s 401 %s %s :Ej existerande smeknamn/kanal +ERR_NOSUCHSERVER: :%s 402 %s %s :Ej existerande server +ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ej existerande kanal +ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ej skicka till kanal +ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du befinner dig i för många kanaler +ERR_WASNOSUCHNICK: :%s 406 %s %s :Det fanns inget sådant smeknamn +ERR_TOOMANYTARGETS: :%s 407 %s %s :För många mottagare. Bara %d bearbetade +ERR_NOORIGIN: :%s 409 %s :Ingen mottagare specificerad +ERR_NORECIPIENT: :%s 411 %s :Ingen mottagare specificerad (%s) +ERR_NOTEXTTOSEND: :%s 412 %s :Ingen text att skicka +ERR_NOTOPLEVEL: :%s 413 %s %s :Ingen topp domän specificerad +ERR_WILDTOPLEVEL: :%s 414 %s %s :Jokertecken i toppdomän +ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Okänt kommando +ERR_NOMOTD: :%s 422 %s :MOTD fil saknas +ERR_NOADMININFO: :%s 423 %s %s :Ingen administrativ info tillgänglig +ERR_NONICKNAMEGIVEN: :%s 431 %s :Inget smeknamn specificerat +ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Felaktigt Smeknamn +ERR_NICKNAMEINUSE: :%s 433 %s %s :Smeknamnet används redan. +ERR_NICKCOLLISION: :%s 436 %s %s :Smeknamn kollision KILL +ERR_UNAVAILRESOURCE: :%s 437 %s %s :Smeknamn/kanal är temporärt inte tillgänglig +ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De är inte i den kanalen +ERR_NOTONCHANNEL: :%s 442 %s %s :Du är inte i den kanalen +ERR_USERONCHANNEL: :%s 443 %s %s %s :är redan i kanalen +ERR_NOTREGISTERED: :%s 451 %s :Du har inte registrerat dig +ERR_NEEDMOREPARAMS: :%s 461 %s %s :Otillräckliga parametrar +ERR_ALREADYREGISTRED: :%s 462 %s :Du får inte registrera dig +ERR_PASSWDMISMATCH: :%s 464 %s :Felaktigt Lösenord +ERR_YOUREBANNEDCREEP: :%s 465 %s :Du är bannad från denna server- %s +ERR_CHANNELISFULL: :%s 471 %s %s :Kan inte öppna kanal (+l) +ERR_UNKNOWNMODE: :%s 472 %s %c :är okänd mode parameter för mig +ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ej öppna kanal (+i) +ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ej öppna kanal (+b) +ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ej öppna kanal (+k) +ERR_BANLISTFULL: :%s 478 %s %s %s :Kanalens ban lista är full +ERR_BADCHANNAME: :%s 479 %s %s :Felaktigt kanalnamn +ERR_NOPRIVILEGES: :%s 481 %s :Tillträde förbjuden - Du är inte en IRC operatör +ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du är inte en operatör +ERR_CANTKILLSERVER: :%s 483 %s :Man kan inte /KILL en server! +ERR_NOOPERHOST: :%s 491 %s :Tyvärr, du har inte vad som krävs för att vara en Operatör här. +ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Okänd MODE flagga +ERR_USERSDONTMATCH: :%s 502 %s :Kan inte ändra mode for andra användare +ERR_GHOSTEDCLIENT: :%s 503 %s :Meddelandet kunde inte levereras till %s +ERR_USERNOTONSERV: :%s 504 %s %s :Användaren är inte på denna server +ERR_WRONGPONG: :%s 513 %s :För att ansluta, skriv /QUOTE PONG %lu +ERR_LISTSYNTAX: :%s 521 %s :Felaktig listning. +ERR_HELPNOTFOUND: :%s 524 %s %s :Hjälp ej funnen. +RPL_ENDOFMODLIST: :%s 703 %s :Slut på /MODLIST. +RPL_ENDOFHELP: :%s 706 %s %s :Slut på /HELP. +RPL_KNOCK: :%s 710 %s %s %s!%s@%s :har frågat efter inbjudan. +RPL_KNOCKDLVR: :%s 711 %s %s :Din KNOCK har blivit skickad. +ERR_TOOMANYKNOCK: :%s 712 %s %s :För många KNOCKs (%s). +ERR_CHANOPEN: :%s 713 %s %s :Kanalen är öppen. +ERR_KNOCKONCHAN: :%s 714 %s %s :Du är redan i den kanalen. +RPL_TARGUMODEG: :%s 716 %s %s :är i +g läge (server-side ignorering) +RPL_TARGNOTIFY: :%s 717 %s %s :har blivit informerad om att du skickat ett meddelande. +RPL_UMODEGMSG: :%s 718 %s %s :skriver till dig, och du har umode +g aktiverat. +ERR_NOPRIVS: :%s 723 %s %s :Otillräckliga oper privilegier. +RPL_TESTMASK: :%s 724 %s %s!%s@%s %u %u :Lokal/fjärr klient matchar. +RPL_NOTESTLINE: :%s 726 %s %s :Ingen match/träff. diff --git a/modules/Makefile.am b/modules/Makefile.am index 2b81b97..21eadb4 100644 --- a/modules/Makefile.am +++ b/modules/Makefile.am @@ -50,6 +50,8 @@ modules_LTLIBRARIES = m_accept.la \ m_svsmode.la \ m_svsnick.la \ m_tburst.la \ + m_testline.la \ + m_testmask.la \ m_time.la \ m_topic.la \ m_trace.la \ @@ -111,6 +113,8 @@ m_svinfo_la_LDFLAGS = $(MODULE_FLAGS) m_svsmode_la_LDFLAGS = $(MODULE_FLAGS) m_svsnick_la_LDFLAGS = $(MODULE_FLAGS) m_tburst_la_LDFLAGS = $(MODULE_FLAGS) +m_testline_la_LDFLAGS = $(MODULE_FLAGS) +m_testmask_la_LDFLAGS = $(MODULE_FLAGS) m_time_la_LDFLAGS = $(MODULE_FLAGS) m_topic_la_LDFLAGS = $(MODULE_FLAGS) m_trace_la_LDFLAGS = $(MODULE_FLAGS) @@ -171,6 +175,8 @@ m_svinfo_la_SOURCES = m_svinfo.c m_svsmode_la_SOURCES = m_svsmode.c m_svsnick_la_SOURCES = m_svsnick.c m_tburst_la_SOURCES = m_tburst.c +m_testline_la_SOURCES = m_testline.c +m_testmask_la_SOURCES = m_testmask.c m_time_la_SOURCES = m_time.c m_topic_la_SOURCES = m_topic.c m_trace_la_SOURCES = m_trace.c diff --git a/modules/Makefile.in b/modules/Makefile.in index 93b1a14..43e7ec2 100644 --- a/modules/Makefile.in +++ b/modules/Makefile.in @@ -366,6 +366,18 @@ m_tburst_la_OBJECTS = $(am_m_tburst_la_OBJECTS) m_tburst_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(m_tburst_la_LDFLAGS) $(LDFLAGS) -o $@ +m_testline_la_LIBADD = +am_m_testline_la_OBJECTS = m_testline.lo +m_testline_la_OBJECTS = $(am_m_testline_la_OBJECTS) +m_testline_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(m_testline_la_LDFLAGS) $(LDFLAGS) -o $@ +m_testmask_la_LIBADD = +am_m_testmask_la_OBJECTS = m_testmask.lo +m_testmask_la_OBJECTS = $(am_m_testmask_la_OBJECTS) +m_testmask_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(m_testmask_la_LDFLAGS) $(LDFLAGS) -o $@ m_time_la_LIBADD = am_m_time_la_OBJECTS = m_time.lo m_time_la_OBJECTS = $(am_m_time_la_OBJECTS) @@ -505,7 +517,8 @@ SOURCES = $(m_accept_la_SOURCES) $(m_admin_la_SOURCES) \ $(m_services_la_SOURCES) $(m_set_la_SOURCES) \ $(m_stats_la_SOURCES) $(m_svinfo_la_SOURCES) \ $(m_svsmode_la_SOURCES) $(m_svsnick_la_SOURCES) \ - $(m_tburst_la_SOURCES) $(m_time_la_SOURCES) \ + $(m_tburst_la_SOURCES) $(m_testline_la_SOURCES) \ + $(m_testmask_la_SOURCES) $(m_time_la_SOURCES) \ $(m_topic_la_SOURCES) $(m_trace_la_SOURCES) \ $(m_user_la_SOURCES) $(m_userhost_la_SOURCES) \ $(m_users_la_SOURCES) $(m_version_la_SOURCES) \ @@ -534,7 +547,8 @@ DIST_SOURCES = $(m_accept_la_SOURCES) $(m_admin_la_SOURCES) \ $(m_services_la_SOURCES) $(m_set_la_SOURCES) \ $(m_stats_la_SOURCES) $(m_svinfo_la_SOURCES) \ $(m_svsmode_la_SOURCES) $(m_svsnick_la_SOURCES) \ - $(m_tburst_la_SOURCES) $(m_time_la_SOURCES) \ + $(m_tburst_la_SOURCES) $(m_testline_la_SOURCES) \ + $(m_testmask_la_SOURCES) $(m_time_la_SOURCES) \ $(m_topic_la_SOURCES) $(m_trace_la_SOURCES) \ $(m_user_la_SOURCES) $(m_userhost_la_SOURCES) \ $(m_users_la_SOURCES) $(m_version_la_SOURCES) \ @@ -800,6 +814,8 @@ modules_LTLIBRARIES = m_accept.la \ m_svsmode.la \ m_svsnick.la \ m_tburst.la \ + m_testline.la \ + m_testmask.la \ m_time.la \ m_topic.la \ m_trace.la \ @@ -860,6 +876,8 @@ m_svinfo_la_LDFLAGS = $(MODULE_FLAGS) m_svsmode_la_LDFLAGS = $(MODULE_FLAGS) m_svsnick_la_LDFLAGS = $(MODULE_FLAGS) m_tburst_la_LDFLAGS = $(MODULE_FLAGS) +m_testline_la_LDFLAGS = $(MODULE_FLAGS) +m_testmask_la_LDFLAGS = $(MODULE_FLAGS) m_time_la_LDFLAGS = $(MODULE_FLAGS) m_topic_la_LDFLAGS = $(MODULE_FLAGS) m_trace_la_LDFLAGS = $(MODULE_FLAGS) @@ -919,6 +937,8 @@ m_svinfo_la_SOURCES = m_svinfo.c m_svsmode_la_SOURCES = m_svsmode.c m_svsnick_la_SOURCES = m_svsnick.c m_tburst_la_SOURCES = m_tburst.c +m_testline_la_SOURCES = m_testline.c +m_testmask_la_SOURCES = m_testmask.c m_time_la_SOURCES = m_time.c m_topic_la_SOURCES = m_topic.c m_trace_la_SOURCES = m_trace.c @@ -1092,6 +1112,10 @@ m_svsnick.la: $(m_svsnick_la_OBJECTS) $(m_svsnick_la_DEPENDENCIES) $(EXTRA_m_svs $(AM_V_CCLD)$(m_svsnick_la_LINK) -rpath $(modulesdir) $(m_svsnick_la_OBJECTS) $(m_svsnick_la_LIBADD) $(LIBS) m_tburst.la: $(m_tburst_la_OBJECTS) $(m_tburst_la_DEPENDENCIES) $(EXTRA_m_tburst_la_DEPENDENCIES) $(AM_V_CCLD)$(m_tburst_la_LINK) -rpath $(modulesdir) $(m_tburst_la_OBJECTS) $(m_tburst_la_LIBADD) $(LIBS) +m_testline.la: $(m_testline_la_OBJECTS) $(m_testline_la_DEPENDENCIES) $(EXTRA_m_testline_la_DEPENDENCIES) + $(AM_V_CCLD)$(m_testline_la_LINK) -rpath $(modulesdir) $(m_testline_la_OBJECTS) $(m_testline_la_LIBADD) $(LIBS) +m_testmask.la: $(m_testmask_la_OBJECTS) $(m_testmask_la_DEPENDENCIES) $(EXTRA_m_testmask_la_DEPENDENCIES) + $(AM_V_CCLD)$(m_testmask_la_LINK) -rpath $(modulesdir) $(m_testmask_la_OBJECTS) $(m_testmask_la_LIBADD) $(LIBS) m_time.la: $(m_time_la_OBJECTS) $(m_time_la_DEPENDENCIES) $(EXTRA_m_time_la_DEPENDENCIES) $(AM_V_CCLD)$(m_time_la_LINK) -rpath $(modulesdir) $(m_time_la_OBJECTS) $(m_time_la_LIBADD) $(LIBS) m_topic.la: $(m_topic_la_OBJECTS) $(m_topic_la_DEPENDENCIES) $(EXTRA_m_topic_la_DEPENDENCIES) @@ -1172,6 +1196,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_svsmode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_svsnick.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_tburst.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_testline.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_testmask.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_time.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_topic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_trace.Plo@am__quote@ diff --git a/modules/core/m_die.c b/modules/core/m_die.c index 7c466dc..b47c92c 100644 --- a/modules/core/m_die.c +++ b/modules/core/m_die.c @@ -45,7 +45,7 @@ mo_die(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_DIE)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "die"); return; } diff --git a/modules/core/m_join.c b/modules/core/m_join.c index 730385f..c5b21e4 100644 --- a/modules/core/m_join.c +++ b/modules/core/m_join.c @@ -96,7 +96,6 @@ m_join(struct Client *client_p, struct Client *source_p, char *key_list = NULL; char *chan_list = NULL; char *chan = NULL; - const char *s = NULL; struct Channel *chptr = NULL; struct MaskItem *conf = NULL; int i = 0; @@ -104,7 +103,7 @@ m_join(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "JOIN"); return; } @@ -129,7 +128,7 @@ m_join(struct Client *client_p, struct Client *source_p, if (!check_channel_name(chan, 1)) { - sendto_one(source_p, ERR_BADCHANNAME, + sendto_one(source_p, form_str(ERR_BADCHANNAME), me.name, source_p->name, chan); continue; } @@ -140,7 +139,7 @@ m_join(struct Client *client_p, struct Client *source_p, { if (conf) ++conf->count; - sendto_one(source_p, ERR_BADCHANNAME, + sendto_one(source_p, form_str(ERR_BADCHANNAME), me.name, source_p->name, chan); sendto_realops_flags(UMODE_SPY, L_ALL, SEND_NOTICE, "Forbidding reserved channel [%s] from user %s", @@ -153,7 +152,7 @@ m_join(struct Client *client_p, struct Client *source_p, ConfigChannel.max_chans_per_oper : ConfigChannel.max_chans_per_user)) { - sendto_one(source_p, ERR_TOOMANYCHANNELS, + sendto_one(source_p, form_str(ERR_TOOMANYCHANNELS), me.name, source_p->name, chan); break; } @@ -166,7 +165,7 @@ m_join(struct Client *client_p, struct Client *source_p, if (splitmode && !HasUMode(source_p, UMODE_OPER) && ConfigChannel.no_join_on_split) { - sendto_one(source_p, ERR_UNAVAILRESOURCE, + sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE), me.name, source_p->name, chan); continue; } @@ -174,9 +173,9 @@ m_join(struct Client *client_p, struct Client *source_p, /* * can_join checks for +i key, bans. */ - if ((s = can_join(source_p, chptr, key))) + if ((i = can_join(source_p, chptr, key))) { - sendto_one(source_p, s, me.name, + sendto_one(source_p, form_str(i), me.name, source_p->name, chptr->chname); continue; } @@ -195,7 +194,7 @@ m_join(struct Client *client_p, struct Client *source_p, if (splitmode && !HasUMode(source_p, UMODE_OPER) && (ConfigChannel.no_create_on_split || ConfigChannel.no_join_on_split)) { - sendto_one(source_p, ERR_UNAVAILRESOURCE, + sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE), me.name, source_p->name, chan); continue; } @@ -266,10 +265,10 @@ m_join(struct Client *client_p, struct Client *source_p, if (chptr->topic[0]) { - sendto_one(source_p, RPL_TOPIC, me.name, + sendto_one(source_p, form_str(RPL_TOPIC), me.name, source_p->name, chptr->chname, chptr->topic); - sendto_one(source_p, RPL_TOPICWHOTIME, + sendto_one(source_p, form_str(RPL_TOPICWHOTIME), me.name, source_p->name, chptr->chname, chptr->topic_info, chptr->topic_time); } diff --git a/modules/core/m_kick.c b/modules/core/m_kick.c index ef4d464..f800136 100644 --- a/modules/core/m_kick.c +++ b/modules/core/m_kick.c @@ -72,7 +72,7 @@ m_kick(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[2])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), from, to, "KICK"); return; } @@ -95,7 +95,7 @@ m_kick(struct Client *client_p, struct Client *source_p, if ((chptr = hash_find_channel(name)) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), from, to, name); return; } @@ -106,7 +106,7 @@ m_kick(struct Client *client_p, struct Client *source_p, { if (MyConnect(source_p)) { - sendto_one(source_p, ERR_NOTONCHANNEL, + sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name, source_p->name, name); return; } @@ -118,7 +118,7 @@ m_kick(struct Client *client_p, struct Client *source_p, if (MyConnect(source_p)) { /* user on _my_ server, with no chanops.. so go away */ - sendto_one(source_p, ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, source_p->name, name); return; } @@ -126,7 +126,7 @@ m_kick(struct Client *client_p, struct Client *source_p, if (chptr->channelts == 0) { /* If its a TS 0 channel, do it the old way */ - sendto_one(source_p, ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), from, to, name); return; } @@ -177,7 +177,7 @@ m_kick(struct Client *client_p, struct Client *source_p, if (((chptr->mode.mode & MODE_PRIVATE) && has_member_flags(ms_target, CHFL_CHANOP|CHFL_HALFOP)) || has_member_flags(ms_target, CHFL_CHANOP)) { - sendto_one(source_p, ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, source_p->name, name); return; } @@ -209,7 +209,7 @@ m_kick(struct Client *client_p, struct Client *source_p, remove_user_from_channel(ms_target); } else - sendto_one(source_p, ERR_USERNOTINCHANNEL, + sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL), from, to, user, name); } diff --git a/modules/core/m_kill.c b/modules/core/m_kill.c index 73968b9..434c906 100644 --- a/modules/core/m_kill.c +++ b/modules/core/m_kill.c @@ -87,14 +87,14 @@ mo_kill(struct Client *client_p, struct Client *source_p, if (*user == '\0') { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "KILL"); return; } if (!HasOFlag(source_p, OPER_FLAG_GLOBAL_KILL|OPER_FLAG_K)) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), me.name, source_p->name); return; } @@ -118,7 +118,7 @@ mo_kill(struct Client *client_p, struct Client *source_p, (time_t)ConfigFileEntry.kill_chase_time_limit)) == NULL) { - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, source_p->name, user); return; } @@ -129,7 +129,7 @@ mo_kill(struct Client *client_p, struct Client *source_p, if (IsServer(target_p) || IsMe(target_p)) { - sendto_one(source_p, ERR_CANTKILLSERVER, + sendto_one(source_p, form_str(ERR_CANTKILLSERVER), me.name, source_p->name); return; } @@ -195,7 +195,7 @@ ms_kill(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "KILL"); return; } @@ -234,7 +234,7 @@ ms_kill(struct Client *client_p, struct Client *source_p, (time_t)ConfigFileEntry.kill_chase_time_limit)) == NULL) { - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, source_p->name, user); return; } @@ -245,7 +245,7 @@ ms_kill(struct Client *client_p, struct Client *source_p, if (IsServer(target_p) || IsMe(target_p)) { - sendto_one(source_p, ERR_CANTKILLSERVER, + sendto_one(source_p, form_str(ERR_CANTKILLSERVER), me.name, source_p->name); return; } diff --git a/modules/core/m_message.c b/modules/core/m_message.c index 4414c36..7fadaba 100644 --- a/modules/core/m_message.c +++ b/modules/core/m_message.c @@ -146,7 +146,7 @@ m_message(int p_or_n, const char *command, struct Client *client_p, if (parc < 2 || EmptyString(parv[1])) { if (p_or_n != NOTICE) - sendto_one(source_p, ERR_NORECIPIENT, + sendto_one(source_p, form_str(ERR_NORECIPIENT), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), command); return; @@ -155,7 +155,7 @@ m_message(int p_or_n, const char *command, struct Client *client_p, if (parc < 3 || EmptyString(parv[2])) { if (p_or_n != NOTICE) - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), ID_or_name(&me, client_p), ID_or_name(source_p, client_p)); return; @@ -238,7 +238,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, { if (ntargets >= ConfigFileEntry.max_targets) { - sendto_one(source_p, ERR_TOOMANYTARGETS, + sendto_one(source_p, form_str(ERR_TOOMANYTARGETS), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick, ConfigFileEntry.max_targets); @@ -251,7 +251,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, else { if (p_or_n != NOTICE) - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick); } @@ -265,7 +265,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, { if (ntargets >= ConfigFileEntry.max_targets) { - sendto_one(source_p, ERR_TOOMANYTARGETS, + sendto_one(source_p, form_str(ERR_TOOMANYTARGETS), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick, ConfigFileEntry.max_targets); @@ -303,7 +303,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, /* suggested by Mortiis */ if (*nick == '\0') /* if its a '\0' dump it, there is no recipient */ { - sendto_one(source_p, ERR_NORECIPIENT, + sendto_one(source_p, form_str(ERR_NORECIPIENT), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), command); continue; @@ -320,7 +320,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, if (!has_member_flags(find_channel_link(source_p, chptr), CHFL_CHANOP|CHFL_HALFOP|CHFL_VOICE)) { - sendto_one(source_p, ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), with_prefix); return(-1); @@ -331,7 +331,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, { if (ntargets >= ConfigFileEntry.max_targets) { - sendto_one(source_p, ERR_TOOMANYTARGETS, + sendto_one(source_p, form_str(ERR_TOOMANYTARGETS), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick, ConfigFileEntry.max_targets); @@ -345,7 +345,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, else { if (p_or_n != NOTICE) - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick); } @@ -361,7 +361,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, if (p_or_n != NOTICE) { if (!IsDigit(*nick) || MyClient(source_p)) - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick); } @@ -429,7 +429,7 @@ msg_channel(int p_or_n, const char *command, struct Client *client_p, else { if (p_or_n != NOTICE) - sendto_one(source_p, ERR_CANNOTSENDTOCHAN, + sendto_one(source_p, form_str(ERR_CANNOTSENDTOCHAN), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), chptr->chname); } @@ -505,7 +505,7 @@ msg_client(int p_or_n, const char *command, struct Client *source_p, source_p->localClient->last_privmsg = CurrentTime; if ((p_or_n != NOTICE) && target_p->away[0]) - sendto_one(source_p, RPL_AWAY, me.name, + sendto_one(source_p, form_str(RPL_AWAY), me.name, source_p->name, target_p->name, target_p->away); if (HasUMode(target_p, UMODE_REGONLY) && target_p != source_p) @@ -513,7 +513,7 @@ msg_client(int p_or_n, const char *command, struct Client *source_p, if (!HasUMode(source_p, UMODE_REGISTERED|UMODE_OPER)) { if (p_or_n != NOTICE) - sendto_one(source_p, ERR_NONONREG, me.name, source_p->name, + sendto_one(source_p, form_str(ERR_NONONREG), me.name, source_p->name, target_p->name); return; } @@ -536,7 +536,7 @@ msg_client(int p_or_n, const char *command, struct Client *source_p, { /* check for accept, flag recipient incoming message */ if (p_or_n != NOTICE) - sendto_one(source_p, RPL_TARGUMODEG, + sendto_one(source_p, form_str(RPL_TARGUMODEG), ID_or_name(&me, source_p->from), ID_or_name(source_p, source_p->from), target_p->name); @@ -544,11 +544,11 @@ msg_client(int p_or_n, const char *command, struct Client *source_p, ConfigFileEntry.caller_id_wait) < CurrentTime) { if (p_or_n != NOTICE) - sendto_one(source_p, RPL_TARGNOTIFY, + sendto_one(source_p, form_str(RPL_TARGNOTIFY), ID_or_name(&me, source_p->from), ID_or_name(source_p, source_p->from), target_p->name); - sendto_one(target_p, RPL_UMODEGMSG, + sendto_one(target_p, form_str(RPL_UMODEGMSG), me.name, target_p->name, get_client_name(source_p, HIDE_IP)); @@ -738,7 +738,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p, if ((host = strchr(nick, '%')) && !HasUMode(source_p, UMODE_OPER)) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), ID_or_name(&me, client_p), ID_or_name(source_p, client_p)); return; @@ -787,18 +787,18 @@ handle_special(int p_or_n, const char *command, struct Client *client_p, source_p->localClient->last_privmsg = CurrentTime; } else - sendto_one(source_p, ERR_TOOMANYTARGETS, + sendto_one(source_p, form_str(ERR_TOOMANYTARGETS), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick, ConfigFileEntry.max_targets); } } else if (server && *(server+1) && (target_p == NULL)) - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), server+1); else if (server && (target_p == NULL)) - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick); return; @@ -806,7 +806,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p, if (!HasUMode(source_p, UMODE_OPER)) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), ID_or_name(&me, client_p), ID_or_name(source_p, client_p)); return; @@ -832,7 +832,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p, if ((s = strrchr(nick, '.')) == NULL) { - sendto_one(source_p, ERR_NOTOPLEVEL, + sendto_one(source_p, form_str(ERR_NOTOPLEVEL), me.name, source_p->name, nick); return; } @@ -843,7 +843,7 @@ handle_special(int p_or_n, const char *command, struct Client *client_p, if (*s == '*' || *s == '?') { - sendto_one(source_p, ERR_WILDTOPLEVEL, + sendto_one(source_p, form_str(ERR_WILDTOPLEVEL), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), nick); return; diff --git a/modules/core/m_mode.c b/modules/core/m_mode.c index 6e115b8..897ce59 100644 --- a/modules/core/m_mode.c +++ b/modules/core/m_mode.c @@ -56,7 +56,7 @@ m_mode(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "MODE"); return; } @@ -71,7 +71,7 @@ m_mode(struct Client *client_p, struct Client *source_p, if ((chptr = hash_find_channel(parv[1])) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), ID_or_name(&me, source_p->from), ID_or_name(source_p, source_p->from), parv[1]); @@ -82,9 +82,9 @@ m_mode(struct Client *client_p, struct Client *source_p, if (parc < 3) { channel_modes(chptr, source_p, modebuf, parabuf); - sendto_one(source_p, RPL_CHANNELMODEIS, + sendto_one(source_p, form_str(RPL_CHANNELMODEIS), me.name, source_p->name, chptr->chname, modebuf, parabuf); - sendto_one(source_p, RPL_CREATIONTIME, + sendto_one(source_p, form_str(RPL_CREATIONTIME), me.name, source_p->name, chptr->chname, chptr->channelts); } /* bounce all modes from people we deop on sjoin @@ -133,7 +133,7 @@ ms_tmode(struct Client *client_p, struct Client *source_p, int parc, char *parv[ if ((chptr = hash_find_channel(parv[2])) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), parv[2]); return; } diff --git a/modules/core/m_nick.c b/modules/core/m_nick.c index 747b479..a490292 100644 --- a/modules/core/m_nick.c +++ b/modules/core/m_nick.c @@ -171,7 +171,7 @@ change_local_nick(struct Client *source_p, const char *nick) fd_note(&source_p->localClient->fd, "Nick: %s", nick); } else - sendto_one(source_p, ERR_NICKTOOFAST, + sendto_one(source_p, form_str(ERR_NICKTOOFAST), me.name, source_p->name, source_p->name, nick, ConfigFileEntry.max_nick_time); } @@ -201,7 +201,7 @@ mr_nick(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NONICKNAMEGIVEN, me.name, + sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, source_p->name[0] ? source_p->name : "*"); return; } @@ -216,7 +216,7 @@ mr_nick(struct Client *client_p, struct Client *source_p, /* check the nickname is ok */ if (!valid_nickname(nick, 1)) { - sendto_one(source_p, ERR_ERRONEUSNICKNAME, me.name, + sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name, source_p->name[0] ? source_p->name : "*", parv[1]); return; } @@ -225,7 +225,7 @@ mr_nick(struct Client *client_p, struct Client *source_p, if ((conf = find_matching_name_conf(CONF_NRESV, nick, NULL, NULL, 0))) { ++conf->count; - sendto_one(source_p, ERR_ERRONEUSNICKNAME, me.name, + sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name, source_p->name[0] ? source_p->name : "*", nick); sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE, "Forbidding reserved nick [%s] from user %s", @@ -238,7 +238,7 @@ mr_nick(struct Client *client_p, struct Client *source_p, else if (source_p == target_p) strlcpy(source_p->name, nick, sizeof(source_p->name)); else - sendto_one(source_p, ERR_NICKNAMEINUSE, me.name, "*", nick); + sendto_one(source_p, form_str(ERR_NICKNAMEINUSE), me.name, "*", nick); } @@ -268,7 +268,7 @@ m_nick(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NONICKNAMEGIVEN, + sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, source_p->name); return; } @@ -283,7 +283,7 @@ m_nick(struct Client *client_p, struct Client *source_p, /* check the nickname is ok */ if (!valid_nickname(nick, 1)) { - sendto_one(source_p, ERR_ERRONEUSNICKNAME, + sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name, source_p->name, nick); return; } @@ -294,7 +294,7 @@ m_nick(struct Client *client_p, struct Client *source_p, (conf = find_matching_name_conf(CONF_NRESV, nick, NULL, NULL, 0))) { ++conf->count; - sendto_one(source_p, ERR_ERRONEUSNICKNAME, + sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name, source_p->name, nick); sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE, "Forbidding reserved nick [%s] from user %s", @@ -325,7 +325,7 @@ m_nick(struct Client *client_p, struct Client *source_p, change_local_nick(source_p, nick); } else - sendto_one(source_p, ERR_NICKNAMEINUSE, me.name, + sendto_one(source_p, form_str(ERR_NICKNAMEINUSE), me.name, source_p->name, nick); } @@ -803,7 +803,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p, "%s (Nick collision (new))", me.name); ++ServerStats.is_kill; - sendto_one(target_p, ERR_NICKCOLLISION, + sendto_one(target_p, form_str(ERR_NICKCOLLISION), me.name, target_p->name, target_p->name); AddFlag(target_p, FLAGS_KILLED); @@ -842,7 +842,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p, client_p->name); ++ServerStats.is_kill; - sendto_one(target_p, ERR_NICKCOLLISION, + sendto_one(target_p, form_str(ERR_NICKCOLLISION), me.name, target_p->name, target_p->name); /* if it came from a LL server, itd have been source_p, @@ -873,7 +873,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p, source_p->name, target_p->name, target_p->from->name, client_p->name); - sendto_one(target_p, ERR_NICKCOLLISION, me.name, + sendto_one(target_p, form_str(ERR_NICKCOLLISION), me.name, target_p->name, target_p->name); ++ServerStats.is_kill; @@ -941,7 +941,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p, me.name); ++ServerStats.is_kill; - sendto_one(target_p, ERR_NICKCOLLISION, + sendto_one(target_p, form_str(ERR_NICKCOLLISION), me.name, target_p->name, target_p->name); AddFlag(target_p, FLAGS_KILLED); diff --git a/modules/core/m_part.c b/modules/core/m_part.c index 2a8b27e..3d1e83a 100644 --- a/modules/core/m_part.c +++ b/modules/core/m_part.c @@ -56,14 +56,14 @@ part_one_client(struct Client *client_p, struct Client *source_p, if ((chptr = hash_find_channel(name)) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), me.name, source_p->name, name); return; } if ((ms = find_channel_link(source_p, chptr)) == NULL) { - sendto_one(source_p, ERR_NOTONCHANNEL, + sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name, source_p->name, name); return; } @@ -122,7 +122,7 @@ m_part(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "PART"); return; } diff --git a/modules/core/m_squit.c b/modules/core/m_squit.c index 122794e..6fef291 100644 --- a/modules/core/m_squit.c +++ b/modules/core/m_squit.c @@ -55,7 +55,7 @@ mo_squit(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "SQUIT"); return; } @@ -81,14 +81,14 @@ mo_squit(struct Client *client_p, struct Client *source_p, if ((target_p == NULL) || IsMe(target_p)) { - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), me.name, source_p->name, server); return; } if (!MyConnect(target_p) && !HasOFlag(source_p, OPER_FLAG_REMOTE)) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), me.name, source_p->name); return; } diff --git a/modules/m_accept.c b/modules/m_accept.c index c6dc26e..84cec49 100644 --- a/modules/m_accept.c +++ b/modules/m_accept.c @@ -63,7 +63,7 @@ list_accepts(struct Client *source_p) if ((t - nicks) + masklen + len > IRCD_BUFSIZE) { *(t - 1) = '\0'; - sendto_one(source_p, RPL_ACCEPTLIST, + sendto_one(source_p, form_str(RPL_ACCEPTLIST), me.name, source_p->name, nicks); t = nicks; } @@ -76,11 +76,11 @@ list_accepts(struct Client *source_p) if (nicks[0] != '\0') { *(t - 1) = '\0'; - sendto_one(source_p, RPL_ACCEPTLIST, + sendto_one(source_p, form_str(RPL_ACCEPTLIST), me.name, source_p->name, nicks); } - sendto_one(source_p, RPL_ENDOFACCEPT, + sendto_one(source_p, form_str(RPL_ENDOFACCEPT), me.name, source_p->name); } @@ -153,7 +153,7 @@ m_accept(struct Client *client_p, struct Client *source_p, if ((accept_p = find_accept(nick, user, host, source_p, 0)) == NULL) { - sendto_one(source_p, ERR_ACCEPTNOT, + sendto_one(source_p, form_str(ERR_ACCEPTNOT), me.name, source_p->name, nick, user, host); continue; } @@ -165,7 +165,7 @@ m_accept(struct Client *client_p, struct Client *source_p, if (dlink_list_length(&source_p->localClient->acceptlist) >= ConfigFileEntry.max_accept) { - sendto_one(source_p, ERR_ACCEPTFULL, + sendto_one(source_p, form_str(ERR_ACCEPTFULL), me.name, source_p->name); return; } @@ -183,7 +183,7 @@ m_accept(struct Client *client_p, struct Client *source_p, if ((accept_p = find_accept(nick, user, host, source_p, 0)) != NULL) { - sendto_one(source_p, ERR_ACCEPTEXIST, + sendto_one(source_p, form_str(ERR_ACCEPTEXIST), me.name, source_p->name, nick, user, host); continue; } diff --git a/modules/m_admin.c b/modules/m_admin.c index cf13149..9db6fa9 100644 --- a/modules/m_admin.c +++ b/modules/m_admin.c @@ -52,17 +52,17 @@ do_admin(struct Client *source_p) source_p->name, source_p->username, source_p->host, source_p->servptr->name); - sendto_one(source_p, RPL_ADMINME, + sendto_one(source_p, form_str(RPL_ADMINME), me_name, nick, me.name); if (AdminInfo.name != NULL) - sendto_one(source_p, RPL_ADMINLOC1, + sendto_one(source_p, form_str(RPL_ADMINLOC1), me_name, nick, AdminInfo.name); if (AdminInfo.description != NULL) - sendto_one(source_p, RPL_ADMINLOC2, + sendto_one(source_p, form_str(RPL_ADMINLOC2), me_name, nick, AdminInfo.description); if (AdminInfo.email != NULL) - sendto_one(source_p, RPL_ADMINEMAIL, + sendto_one(source_p, form_str(RPL_ADMINEMAIL), me_name, nick, AdminInfo.email); } @@ -88,7 +88,7 @@ m_admin(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p,form_str(RPL_LOAD2HI), me.name, source_p->name); return; } diff --git a/modules/m_away.c b/modules/m_away.c index f2f3060..644d1d5 100644 --- a/modules/m_away.c +++ b/modules/m_away.c @@ -65,20 +65,20 @@ m_away(struct Client *client_p, struct Client *source_p, source_p->host); } - sendto_one(source_p, RPL_UNAWAY, + sendto_one(source_p, form_str(RPL_UNAWAY), me.name, source_p->name); return; } if ((CurrentTime - source_p->localClient->last_away) < ConfigFileEntry.pace_wait) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } source_p->localClient->last_away = CurrentTime; - sendto_one(source_p, RPL_NOWAWAY, me.name, source_p->name); + sendto_one(source_p, form_str(RPL_NOWAWAY), me.name, source_p->name); if (!strncmp(source_p->away, parv[1], sizeof(source_p->away) - 1)) return; diff --git a/modules/m_cap.c b/modules/m_cap.c index a7a9aad..842c1c9 100644 --- a/modules/m_cap.c +++ b/modules/m_cap.c @@ -396,7 +396,7 @@ m_cap(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) sizeof(cmdlist) / sizeof(struct subcmd), sizeof(struct subcmd), (bqcmp)subcmd_search))) { - sendto_one(source_p, ERR_INVALIDCAPCMD, me.name, + sendto_one(source_p, form_str(ERR_INVALIDCAPCMD), me.name, source_p->name[0] ? source_p->name : "*", subcmd); return; } diff --git a/modules/m_challenge.c b/modules/m_challenge.c index 8b9fcfb..9965b8e 100644 --- a/modules/m_challenge.c +++ b/modules/m_challenge.c @@ -82,7 +82,7 @@ m_challenge(struct Client *client_p, struct Client *source_p, if (irccmp(source_p->localClient->response, ++parv[1])) { - sendto_one(source_p, ERR_PASSWDMISMATCH, me.name, + sendto_one(source_p, form_str(ERR_PASSWDMISMATCH), me.name, source_p->name); failed_challenge_notice(source_p, source_p->localClient->auth_oper, "challenge failed"); @@ -94,7 +94,7 @@ m_challenge(struct Client *client_p, struct Client *source_p, if (conf == NULL) { /* XXX: logging */ - sendto_one (source_p, ERR_NOOPERHOST, me.name, source_p->name); + sendto_one (source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name); return; } @@ -128,7 +128,7 @@ m_challenge(struct Client *client_p, struct Client *source_p, if (!conf) { - sendto_one (source_p, ERR_NOOPERHOST, me.name, source_p->name); + sendto_one (source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name); conf = find_exact_name_conf(CONF_OPER, NULL, parv[1], NULL, NULL); failed_challenge_notice(source_p, parv[1], (conf != NULL) ? "host mismatch" : "no oper {} block"); @@ -145,7 +145,7 @@ m_challenge(struct Client *client_p, struct Client *source_p, if (!generate_challenge(&challenge, &(source_p->localClient->response), conf->rsa_public_key)) - sendto_one(source_p, RPL_RSACHALLENGE, + sendto_one(source_p, form_str(RPL_RSACHALLENGE), me.name, source_p->name, challenge); source_p->localClient->auth_oper = xstrdup(conf->name); @@ -156,7 +156,7 @@ static void mo_challenge(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { - sendto_one(source_p, RPL_YOUREOPER, + sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name); } diff --git a/modules/m_close.c b/modules/m_close.c index 929f16b..4395935 100644 --- a/modules/m_close.c +++ b/modules/m_close.c @@ -48,7 +48,7 @@ mo_close(struct Client *client_p, struct Client *source_p, { struct Client *target_p = ptr->data; - sendto_one(source_p, RPL_CLOSING, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_CLOSING), me.name, source_p->name, get_client_name(target_p, SHOW_IP), target_p->status); /* @@ -58,7 +58,7 @@ mo_close(struct Client *client_p, struct Client *source_p, exit_client(target_p, target_p, "Oper Closing"); } - sendto_one(source_p, RPL_CLOSEEND, + sendto_one(source_p, form_str(RPL_CLOSEEND), me.name, source_p->name, closed); } diff --git a/modules/m_connect.c b/modules/m_connect.c index 4e67cd6..1d27f53 100644 --- a/modules/m_connect.c +++ b/modules/m_connect.c @@ -60,7 +60,7 @@ mo_connect(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "CONNECT"); return; } @@ -69,7 +69,7 @@ mo_connect(struct Client *client_p, struct Client *source_p, { if (!HasOFlag(source_p, OPER_FLAG_REMOTE)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "connect"); return; } @@ -189,7 +189,7 @@ ms_connect(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "CONNECT"); return; } diff --git a/modules/m_dline.c b/modules/m_dline.c index dba9323..b1d4ab4 100644 --- a/modules/m_dline.c +++ b/modules/m_dline.c @@ -154,7 +154,7 @@ mo_dline(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_DLINE)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "dline"); return; } @@ -408,14 +408,14 @@ mo_undline(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_UNDLINE)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "undline"); return; } if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "UNDLINE"); return; } diff --git a/modules/m_etrace.c b/modules/m_etrace.c index 123a169..d7d0efa 100644 --- a/modules/m_etrace.c +++ b/modules/m_etrace.c @@ -94,7 +94,7 @@ do_etrace(struct Client *source_p, int parc, char *parv[]) if (target_p && MyClient(target_p)) report_this_status(source_p, target_p, full_etrace); - sendto_one(source_p, RPL_ENDOFTRACE, me.name, + sendto_one(source_p, form_str(RPL_ENDOFTRACE), me.name, source_p->name, tname); return; } @@ -112,7 +112,7 @@ do_etrace(struct Client *source_p, int parc, char *parv[]) report_this_status(source_p, target_p, full_etrace); } - sendto_one(source_p, RPL_ENDOFTRACE, me.name, + sendto_one(source_p, form_str(RPL_ENDOFTRACE), me.name, source_p->name, tname); } @@ -144,7 +144,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, if (full_etrace) { if (ConfigFileEntry.hide_spoof_ips) - sendto_one(source_p, RPL_ETRACE_FULL, + sendto_one(source_p, form_str(RPL_ETRACE_FULL), me.name, source_p->name, HasUMode(target_p, UMODE_OPER) ? "Oper" : "User", @@ -157,7 +157,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, IsIPSpoof(target_p) ? "<hidden>" : target_p->localClient->client_server, target_p->info); else - sendto_one(source_p, RPL_ETRACE_FULL, + sendto_one(source_p, form_str(RPL_ETRACE_FULL), me.name, source_p->name, HasUMode(target_p, UMODE_OPER) ? "Oper" : "User", @@ -173,7 +173,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, else { if (ConfigFileEntry.hide_spoof_ips) - sendto_one(source_p, RPL_ETRACE, + sendto_one(source_p, form_str(RPL_ETRACE), me.name, source_p->name, HasUMode(target_p, UMODE_OPER) ? "Oper" : "User", @@ -184,7 +184,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost, target_p->info); else - sendto_one(source_p, RPL_ETRACE, + sendto_one(source_p, form_str(RPL_ETRACE), me.name, source_p->name, HasUMode(target_p, UMODE_OPER) ? "Oper" : "User", diff --git a/modules/m_gline.c b/modules/m_gline.c index 78d861b..2bec753 100644 --- a/modules/m_gline.c +++ b/modules/m_gline.c @@ -343,7 +343,7 @@ mo_gline(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_GLINE)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "gline"); return; } @@ -510,7 +510,7 @@ mo_gungline(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_GLINE)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "gline"); return; } diff --git a/modules/m_globops.c b/modules/m_globops.c index 24be8ff..8cf3ed7 100644 --- a/modules/m_globops.c +++ b/modules/m_globops.c @@ -47,14 +47,14 @@ mo_globops(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_GLOBOPS)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "globops"); return; } if (EmptyString(message)) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "GLOBOPS"); return; } diff --git a/modules/m_help.c b/modules/m_help.c index 4601860..c104f0c 100644 --- a/modules/m_help.c +++ b/modules/m_help.c @@ -52,7 +52,7 @@ m_help(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime) { /* safe enough to give this on a local connect only */ - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p,form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -101,14 +101,14 @@ dohelp(struct Client *source_p, const char *hpath, char *topic) if (strpbrk(topic, "/\\")) { - sendto_one(source_p, ERR_HELPNOTFOUND, + sendto_one(source_p, form_str(ERR_HELPNOTFOUND), me.name, source_p->name, topic); return; } if (strlen(hpath) + strlen(topic) + 1 > HYB_PATH_MAX) { - sendto_one(source_p, ERR_HELPNOTFOUND, + sendto_one(source_p, form_str(ERR_HELPNOTFOUND), me.name, source_p->name, topic); return; } @@ -117,14 +117,14 @@ dohelp(struct Client *source_p, const char *hpath, char *topic) if (stat(path, &sb) < 0) { - sendto_one(source_p, ERR_HELPNOTFOUND, + sendto_one(source_p, form_str(ERR_HELPNOTFOUND), me.name, source_p->name, topic); return; } if (!S_ISREG(sb.st_mode)) { - sendto_one(source_p, ERR_HELPNOTFOUND, + sendto_one(source_p, form_str(ERR_HELPNOTFOUND), me.name, source_p->name, topic); return; } @@ -140,32 +140,32 @@ sendhelpfile(struct Client *source_p, const char *path, const char *topic) if ((file = fopen(path, "r")) == NULL) { - sendto_one(source_p, ERR_HELPNOTFOUND, + sendto_one(source_p, form_str(ERR_HELPNOTFOUND), me.name, source_p->name, topic); return; } if (fgets(line, sizeof(line), file) == NULL) { - sendto_one(source_p, ERR_HELPNOTFOUND, + sendto_one(source_p, form_str(ERR_HELPNOTFOUND), me.name, source_p->name, topic); return; } line[strlen(line) - 1] = '\0'; - sendto_one(source_p, RPL_HELPSTART, + sendto_one(source_p, form_str(RPL_HELPSTART), me.name, source_p->name, topic, line); while (fgets(line, sizeof(line), file)) { line[strlen(line) - 1] = '\0'; - sendto_one(source_p, RPL_HELPTXT, + sendto_one(source_p, form_str(RPL_HELPTXT), me.name, source_p->name, topic, line); } fclose(file); - sendto_one(source_p, RPL_ENDOFHELP, + sendto_one(source_p, form_str(RPL_ENDOFHELP), me.name, source_p->name, topic); } diff --git a/modules/m_info.c b/modules/m_info.c index 8eafc1f..cab6f84 100644 --- a/modules/m_info.c +++ b/modules/m_info.c @@ -633,7 +633,7 @@ send_conf_options(struct Client *source_p) } } - sendto_one(source_p, RPL_INFO, + sendto_one(source_p, form_str(RPL_INFO), from, to, ""); } @@ -667,7 +667,7 @@ send_info_text(struct Client *source_p) if (*line == '\0') line = " "; - sendto_one(source_p, RPL_INFO, + sendto_one(source_p, form_str(RPL_INFO), source, target, line); } @@ -676,7 +676,7 @@ send_info_text(struct Client *source_p) send_birthdate_online_time(source_p); - sendto_one(source_p, RPL_ENDOFINFO, + sendto_one(source_p, form_str(RPL_ENDOFINFO), me.name, source_p->name); } @@ -694,7 +694,7 @@ m_info(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime) { /* safe enough to give this on a local connect only */ - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } diff --git a/modules/m_invite.c b/modules/m_invite.c index 6cceded..21c9ac9 100644 --- a/modules/m_invite.c +++ b/modules/m_invite.c @@ -59,7 +59,7 @@ m_invite(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[2])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "INVITE"); return; } @@ -69,46 +69,46 @@ m_invite(struct Client *client_p, struct Client *source_p, if ((target_p = find_person(client_p, parv[1])) == NULL) { - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, source_p->name, parv[1]); return; } if ((chptr = hash_find_channel(parv[2])) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), me.name, source_p->name, parv[2]); return; } if (MyConnect(source_p) && (ms = find_channel_link(source_p, chptr)) == NULL) { - sendto_one(source_p, ERR_NOTONCHANNEL, + sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name, source_p->name, chptr->chname); return; } if (MyConnect(source_p) && !has_member_flags(ms, CHFL_CHANOP)) { - sendto_one(source_p, ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chptr->chname); return; } if (IsMember(target_p, chptr)) { - sendto_one(source_p, ERR_USERONCHANNEL, + sendto_one(source_p, form_str(ERR_USERONCHANNEL), me.name, source_p->name, target_p->name, chptr->chname); return; } if (MyConnect(source_p)) { - sendto_one(source_p, RPL_INVITING, me.name, + sendto_one(source_p, form_str(RPL_INVITING), me.name, source_p->name, target_p->name, chptr->chname); if (target_p->away[0]) - sendto_one(source_p, RPL_AWAY, + sendto_one(source_p, form_str(RPL_AWAY), me.name, source_p->name, target_p->name, target_p->away); } diff --git a/modules/m_ison.c b/modules/m_ison.c index 88158b4..0e67287 100644 --- a/modules/m_ison.c +++ b/modules/m_ison.c @@ -45,7 +45,7 @@ do_ison(struct Client *client_p, struct Client *source_p, int i; int done = 0; - len = snprintf(buf, sizeof(buf), RPL_ISON, me.name, source_p->name); + len = snprintf(buf, sizeof(buf), form_str(RPL_ISON), me.name, source_p->name); current_insert_point = buf + len; /* diff --git a/modules/m_kline.c b/modules/m_kline.c index 8ef3785..b41e21c 100644 --- a/modules/m_kline.c +++ b/modules/m_kline.c @@ -75,7 +75,7 @@ mo_kline(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_K)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "kline"); return; } @@ -308,14 +308,14 @@ mo_unkline(struct Client *client_p,struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_UNKLINE)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "unkline"); return; } if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "UNKLINE"); return; } diff --git a/modules/m_knock.c b/modules/m_knock.c index 54ebf61..51bb53d 100644 --- a/modules/m_knock.c +++ b/modules/m_knock.c @@ -61,14 +61,14 @@ m_knock(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "KNOCK"); return; } if ((chptr = hash_find_channel(parv[1])) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), me.name, source_p->name, parv[1]); return; } @@ -76,7 +76,7 @@ m_knock(struct Client *client_p, struct Client *source_p, /* Normal channel, just be sure they aren't on it */ if (IsMember(source_p, chptr)) { - sendto_one(source_p, ERR_KNOCKONCHAN, me.name, + sendto_one(source_p, form_str(ERR_KNOCKONCHAN), me.name, source_p->name, chptr->chname); return; } @@ -85,7 +85,7 @@ m_knock(struct Client *client_p, struct Client *source_p, (chptr->mode.limit && dlink_list_length(&chptr->members) >= chptr->mode.limit))) { - sendto_one(source_p, ERR_CHANOPEN, me.name, + sendto_one(source_p, form_str(ERR_CHANOPEN), me.name, source_p->name, chptr->chname); return; } @@ -97,7 +97,7 @@ m_knock(struct Client *client_p, struct Client *source_p, */ if (PrivateChannel(chptr) || is_banned(chptr, source_p)) { - sendto_one(source_p, ERR_CANNOTSENDTOCHAN, + sendto_one(source_p, form_str(ERR_CANNOTSENDTOCHAN), me.name, source_p->name, chptr->chname); return; } @@ -112,21 +112,21 @@ m_knock(struct Client *client_p, struct Client *source_p, if ((source_p->localClient->last_knock + ConfigChannel.knock_delay) > CurrentTime) { - sendto_one(source_p, ERR_TOOMANYKNOCK, me.name, + sendto_one(source_p, form_str(ERR_TOOMANYKNOCK), me.name, source_p->name, chptr->chname, "user"); return; } if ((chptr->last_knock + ConfigChannel.knock_delay_channel) > CurrentTime) { - sendto_one(source_p, ERR_TOOMANYKNOCK, me.name, + sendto_one(source_p, form_str(ERR_TOOMANYKNOCK), me.name, source_p->name, chptr->chname, "channel"); return; } source_p->localClient->last_knock = CurrentTime; - sendto_one(source_p, RPL_KNOCKDLVR, me.name, + sendto_one(source_p, form_str(RPL_KNOCKDLVR), me.name, source_p->name, chptr->chname); } diff --git a/modules/m_links.c b/modules/m_links.c index fc9dbd7..631d1d1 100644 --- a/modules/m_links.c +++ b/modules/m_links.c @@ -69,13 +69,13 @@ do_links(struct Client *source_p, int parc, char *parv[]) * We just send the reply, as if they are here there's either no SHIDE, * or they're an oper.. */ - sendto_one(source_p, RPL_LINKS, + sendto_one(source_p, form_str(RPL_LINKS), me_name, nick, target_p->name, target_p->servptr->name, target_p->hopcount, target_p->info); } - sendto_one(source_p, RPL_ENDOFLINKS, + sendto_one(source_p, form_str(RPL_ENDOFLINKS), me_name, nick, EmptyString(mask) ? "*" : mask); } @@ -85,12 +85,12 @@ do_links(struct Client *source_p, int parc, char *parv[]) * Print our own info so at least it looks like a normal links * then print out the file (which may or may not be empty) */ - sendto_one(source_p, RPL_LINKS, + sendto_one(source_p, form_str(RPL_LINKS), ID_or_name(&me, source_p->from), ID_or_name(source_p, source_p->from), me.name, me.name, 0, me.info); send_message_file(source_p, &ConfigFileEntry.linksfile); - sendto_one(source_p, RPL_ENDOFLINKS, + sendto_one(source_p, form_str(RPL_ENDOFLINKS), ID_or_name(&me, source_p->from), ID_or_name(source_p, source_p->from), "*"); } @@ -126,7 +126,7 @@ m_links(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } diff --git a/modules/m_list.c b/modules/m_list.c index ec6638e..c2a33b8 100644 --- a/modules/m_list.c +++ b/modules/m_list.c @@ -49,7 +49,7 @@ do_list(struct Client *source_p, int parc, char *parv[]) if (source_p->localClient->list_task != NULL) { free_list_task(source_p->localClient->list_task, source_p); - sendto_one(source_p, RPL_LISTEND, me.name, source_p->name); + sendto_one(source_p, form_str(RPL_LISTEND), me.name, source_p->name); return; } @@ -141,7 +141,7 @@ do_list(struct Client *source_p, int parc, char *parv[]) if (errors) { free_list_task(lt, source_p); - sendto_one(source_p, ERR_LISTSYNTAX, + sendto_one(source_p, form_str(ERR_LISTSYNTAX), me.name, source_p->name); return; } @@ -150,7 +150,7 @@ do_list(struct Client *source_p, int parc, char *parv[]) dlinkAdd(source_p, make_dlink_node(), &listing_client_list); - sendto_one(source_p, RPL_LISTSTART, + sendto_one(source_p, form_str(RPL_LISTSTART), me.name, source_p->name); safe_list_channels(source_p, lt, no_masked_channels && lt->show_mask.head != NULL); diff --git a/modules/m_locops.c b/modules/m_locops.c index 013040d..fd40ef3 100644 --- a/modules/m_locops.c +++ b/modules/m_locops.c @@ -50,7 +50,7 @@ mo_locops(struct Client *client_p, struct Client *source_p, if (EmptyString(message)) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "LOCOPS"); return; } diff --git a/modules/m_lusers.c b/modules/m_lusers.c index 2b9ed22..c7c41c5 100644 --- a/modules/m_lusers.c +++ b/modules/m_lusers.c @@ -53,7 +53,7 @@ m_lusers(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime) { /* safe enough to give this on a local connect only */ - sendto_one(source_p, RPL_LOAD2HI, me.name, source_p->name); + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } diff --git a/modules/m_map.c b/modules/m_map.c index 58497ba..4d5c9ab 100644 --- a/modules/m_map.c +++ b/modules/m_map.c @@ -76,7 +76,7 @@ dump_map(struct Client *client_p, const struct Client *root_p, sprintf(pb, " Users: %5d (%1.1f%%)", users, 100 * (float)users / (float)Count.total); - sendto_one(client_p, RPL_MAP, me.name, client_p->name, buf); + sendto_one(client_p, form_str(RPL_MAP), me.name, client_p->name, buf); if (root_p->serv->server_list.head) { @@ -133,7 +133,7 @@ m_map(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime) { /* safe enough to give this on a local connect only */ - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -141,7 +141,7 @@ m_map(struct Client *client_p, struct Client *source_p, last_used = CurrentTime; dump_map(source_p, &me, 0, buf); - sendto_one(source_p, RPL_MAPEND, me.name, source_p->name); + sendto_one(source_p, form_str(RPL_MAPEND), me.name, source_p->name); } /* mo_map() @@ -152,7 +152,7 @@ mo_map(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { dump_map(source_p, &me, 0, buf); - sendto_one(source_p, RPL_MAPEND, me.name, source_p->name); + sendto_one(source_p, form_str(RPL_MAPEND), me.name, source_p->name); } static struct Message map_msgtab = { diff --git a/modules/m_module.c b/modules/m_module.c index 913ae0c..b8ec8dd 100644 --- a/modules/m_module.c +++ b/modules/m_module.c @@ -64,14 +64,14 @@ mo_module(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_MODULE)) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), me.name, source_p->name); return; } if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "MODULE"); return; } @@ -80,7 +80,7 @@ mo_module(struct Client *client_p, struct Client *source_p, { if (EmptyString(parv[2])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "MODULE"); return; } @@ -100,7 +100,7 @@ mo_module(struct Client *client_p, struct Client *source_p, { if (EmptyString(parv[2])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "MODULE"); return; } @@ -138,7 +138,7 @@ mo_module(struct Client *client_p, struct Client *source_p, { if (EmptyString(parv[2])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "MODULE"); return; } @@ -220,12 +220,12 @@ mo_module(struct Client *client_p, struct Client *source_p, if (!EmptyString(parv[2]) && match(parv[2], modp->name)) continue; - sendto_one(source_p, RPL_MODLIST, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_MODLIST), me.name, source_p->name, modp->name, modp->handle, modp->version, (modp->flags & MODULE_FLAG_CORE) ?"(core)":""); } - sendto_one(source_p, RPL_ENDOFMODLIST, + sendto_one(source_p, form_str(RPL_ENDOFMODLIST), me.name, source_p->name); return; } diff --git a/modules/m_motd.c b/modules/m_motd.c index 6943867..805840f 100644 --- a/modules/m_motd.c +++ b/modules/m_motd.c @@ -59,7 +59,7 @@ m_motd(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime) { /* safe enough to give this on a local connect only */ - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } diff --git a/modules/m_names.c b/modules/m_names.c index 7947d77..f1b9409 100644 --- a/modules/m_names.c +++ b/modules/m_names.c @@ -74,7 +74,7 @@ names_non_public_non_secret(struct Client *source_p) char buf[IRCD_BUFSIZE]; char *t; - mlen = snprintf(buf, sizeof(buf), RPL_NAMREPLY, + mlen = snprintf(buf, sizeof(buf), form_str(RPL_NAMREPLY), me.name, source_p->name, "*", "*"); cur_len = mlen; t = buf + mlen; @@ -155,14 +155,14 @@ m_names(struct Client *client_p, struct Client *source_p, if ((chptr = hash_find_channel(para)) != NULL) channel_member_names(source_p, chptr, 1); else - sendto_one(source_p, RPL_ENDOFNAMES, + sendto_one(source_p, form_str(RPL_ENDOFNAMES), me.name, source_p->name, para); } else { names_all_visible_channels(source_p); names_non_public_non_secret(source_p); - sendto_one(source_p, RPL_ENDOFNAMES, + sendto_one(source_p, form_str(RPL_ENDOFNAMES), me.name, source_p->name, "*"); } } diff --git a/modules/m_oper.c b/modules/m_oper.c index c76117f..9aef1bc 100644 --- a/modules/m_oper.c +++ b/modules/m_oper.c @@ -77,7 +77,7 @@ m_oper(struct Client *client_p, struct Client *source_p, if (EmptyString(password)) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "OPER"); return; } @@ -88,7 +88,7 @@ m_oper(struct Client *client_p, struct Client *source_p, if ((conf = find_exact_name_conf(CONF_OPER, source_p, name, NULL, NULL)) == NULL) { - sendto_one(source_p, ERR_NOOPERHOST, me.name, source_p->name); + sendto_one(source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name); conf = find_exact_name_conf(CONF_OPER, NULL, name, NULL, NULL); failed_oper_notice(source_p, name, (conf != NULL) ? "host mismatch" : "no oper {} block"); @@ -112,7 +112,7 @@ m_oper(struct Client *client_p, struct Client *source_p, } else { - sendto_one(source_p, ERR_PASSWDMISMATCH, me.name, source_p->name); + sendto_one(source_p, form_str(ERR_PASSWDMISMATCH), me.name, source_p->name); failed_oper_notice(source_p, name, "password mismatch"); } } @@ -127,7 +127,7 @@ static void mo_oper(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { - sendto_one(source_p, RPL_YOUREOPER, + sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name); } diff --git a/modules/m_operwall.c b/modules/m_operwall.c index 6a8b277..4d81f1c 100644 --- a/modules/m_operwall.c +++ b/modules/m_operwall.c @@ -48,14 +48,14 @@ mo_operwall(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_OPERWALL)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "operwall"); return; } if (EmptyString(message)) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "OPERWALL"); return; } diff --git a/modules/m_pass.c b/modules/m_pass.c index 4c6907b..eda2ad0 100644 --- a/modules/m_pass.c +++ b/modules/m_pass.c @@ -53,7 +53,7 @@ mr_pass(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, me.name, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name[0] ? source_p->name : "*", "PASS"); return; } diff --git a/modules/m_ping.c b/modules/m_ping.c index 9976078..520b00a 100644 --- a/modules/m_ping.c +++ b/modules/m_ping.c @@ -50,7 +50,7 @@ m_ping(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOORIGIN, + sendto_one(source_p, form_str(ERR_NOORIGIN), me.name, source_p->name); return; } @@ -77,7 +77,7 @@ m_ping(struct Client *client_p, struct Client *source_p, } else { - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), me.name, source_p->name, destination); return; } @@ -96,7 +96,7 @@ ms_ping(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOORIGIN, + sendto_one(source_p, form_str(ERR_NOORIGIN), me.name, source_p->name); return; } @@ -111,7 +111,7 @@ ms_ping(struct Client *client_p, struct Client *source_p, origin, destination); else { - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), ID_or_name(&me, client_p), source_p->name, destination); return; } diff --git a/modules/m_pong.c b/modules/m_pong.c index e68cbd7..6d472f7 100644 --- a/modules/m_pong.c +++ b/modules/m_pong.c @@ -44,7 +44,7 @@ ms_pong(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOORIGIN, + sendto_one(source_p, form_str(ERR_NOORIGIN), me.name, source_p->name); return; } @@ -67,7 +67,7 @@ ms_pong(struct Client *client_p, struct Client *source_p, source_p->name, origin, destination); else { - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), me.name, source_p->name, destination); return; } @@ -95,7 +95,7 @@ mr_pong(struct Client *client_p, struct Client *source_p, } else { - sendto_one(source_p, ERR_WRONGPONG, me.name, + sendto_one(source_p, form_str(ERR_WRONGPONG), me.name, source_p->name, source_p->localClient->random_ping); return; } @@ -103,7 +103,7 @@ mr_pong(struct Client *client_p, struct Client *source_p, } } else - sendto_one(source_p, ERR_NOORIGIN, + sendto_one(source_p, form_str(ERR_NOORIGIN), me.name, source_p->name); } diff --git a/modules/m_rehash.c b/modules/m_rehash.c index 5e36fe7..77f5633 100644 --- a/modules/m_rehash.c +++ b/modules/m_rehash.c @@ -48,7 +48,7 @@ mo_rehash(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_REHASH)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "rehash"); return; } @@ -57,7 +57,7 @@ mo_rehash(struct Client *client_p, struct Client *source_p, { if (irccmp(parv[1], "DNS") == 0) { - sendto_one(source_p, RPL_REHASHING, me.name, source_p->name, "DNS"); + sendto_one(source_p, form_str(RPL_REHASHING), me.name, source_p->name, "DNS"); sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, "%s is rehashing DNS", get_oper_name(source_p)); @@ -90,7 +90,7 @@ mo_rehash(struct Client *client_p, struct Client *source_p, } else { - sendto_one(source_p, RPL_REHASHING, + sendto_one(source_p, form_str(RPL_REHASHING), me.name, source_p->name, ConfigFileEntry.configfile); sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, "%s is rehashing server config file", diff --git a/modules/m_restart.c b/modules/m_restart.c index 16361b2..50e91ea 100644 --- a/modules/m_restart.c +++ b/modules/m_restart.c @@ -46,7 +46,7 @@ mo_restart(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_RESTART)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "restart"); return; } diff --git a/modules/m_services.c b/modules/m_services.c index 12b52f5..d8881f4 100644 --- a/modules/m_services.c +++ b/modules/m_services.c @@ -56,7 +56,7 @@ m_nickserv(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name); return; } @@ -68,7 +68,7 @@ m_nickserv(struct Client *client_p, struct Client *source_p, return; } - sendto_one(source_p, ERR_SERVICESDOWN, + sendto_one(source_p, form_str(ERR_SERVICESDOWN), me.name, source_p->name, "NickServ"); } @@ -83,7 +83,7 @@ m_chanserv(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name); return; } @@ -95,7 +95,7 @@ m_chanserv(struct Client *client_p, struct Client *source_p, return; } - sendto_one(source_p, ERR_SERVICESDOWN, + sendto_one(source_p, form_str(ERR_SERVICESDOWN), me.name, source_p->name, "ChanServ"); } @@ -110,7 +110,7 @@ m_memoserv(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name); return; } @@ -122,7 +122,7 @@ m_memoserv(struct Client *client_p, struct Client *source_p, return; } - sendto_one(source_p, ERR_SERVICESDOWN, + sendto_one(source_p, form_str(ERR_SERVICESDOWN), me.name, source_p->name, "MemoServ"); } @@ -137,7 +137,7 @@ m_operserv(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name); return; } @@ -149,7 +149,7 @@ m_operserv(struct Client *client_p, struct Client *source_p, return; } - sendto_one(source_p, ERR_SERVICESDOWN, + sendto_one(source_p, form_str(ERR_SERVICESDOWN), me.name, source_p->name, "OperServ"); } @@ -164,7 +164,7 @@ m_statserv(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name); return; } @@ -176,7 +176,7 @@ m_statserv(struct Client *client_p, struct Client *source_p, return; } - sendto_one(source_p, ERR_SERVICESDOWN, + sendto_one(source_p, form_str(ERR_SERVICESDOWN), me.name, source_p->name, "StatServ"); } @@ -191,7 +191,7 @@ m_helpserv(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name); return; } @@ -203,7 +203,7 @@ m_helpserv(struct Client *client_p, struct Client *source_p, return; } - sendto_one(source_p, ERR_SERVICESDOWN, + sendto_one(source_p, form_str(ERR_SERVICESDOWN), me.name, source_p->name, "HelpServ"); } @@ -218,7 +218,7 @@ m_botserv(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NOTEXTTOSEND, + sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name); return; } @@ -230,7 +230,7 @@ m_botserv(struct Client *client_p, struct Client *source_p, return; } - sendto_one(source_p, ERR_SERVICESDOWN, + sendto_one(source_p, form_str(ERR_SERVICESDOWN), me.name, source_p->name, "BotServ"); } diff --git a/modules/m_set.c b/modules/m_set.c index fbbf932..4fa1970 100644 --- a/modules/m_set.c +++ b/modules/m_set.c @@ -58,6 +58,7 @@ static void quote_autoconnall(struct Client *, int); static void quote_floodcount(struct Client *, int); static void quote_identtimeout(struct Client *, int); static void quote_max(struct Client *, int); +static void quote_msglocale(struct Client *, char *); static void quote_spamnum(struct Client *, int); static void quote_spamtime(struct Client *, int); static void quote_splitmode(struct Client *, char *); @@ -84,6 +85,7 @@ static const struct SetStruct set_cmd_table[] = { "FLOODCOUNT", quote_floodcount, 0, 1 }, { "IDENTTIMEOUT", quote_identtimeout, 0, 1 }, { "MAX", quote_max, 0, 1 }, + { "MSGLOCALE", quote_msglocale, 1, 0 }, { "SPAMNUM", quote_spamnum, 0, 1 }, { "SPAMTIME", quote_spamtime, 0, 1 }, { "SPLITMODE", quote_splitmode, 1, 0 }, @@ -206,7 +208,7 @@ quote_identtimeout(struct Client *source_p, int newval) { if (!HasUMode(source_p, UMODE_ADMIN)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "set"); return; } @@ -256,6 +258,22 @@ quote_max(struct Client *source_p, int newval) me.name, source_p->name, ServerInfo.max_clients, Count.local); } +/* SET MSGLOCALE */ +static void +quote_msglocale(struct Client *source_p, char *locale) +{ + if (locale != NULL) + { + set_locale(locale); + rebuild_isupport_message_line(); + sendto_one(source_p, ":%s NOTICE %s :Set MSGLOCALE to '%s'", + me.name, source_p->name, get_locale()); + } + else + sendto_one(source_p, ":%s NOTICE %s :MSGLOCALE is currently '%s'", + me.name, source_p->name, get_locale()); +} + /* SET SPAMNUM */ static void quote_spamnum(struct Client *source_p, int newval) @@ -459,7 +477,7 @@ mo_set(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_SET)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "set"); return; } @@ -503,7 +521,7 @@ mo_set(struct Client *client_p, struct Client *source_p, if (!strcmp(tab->name, "AUTOCONN") && (parc < 4)) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "SET"); return; } diff --git a/modules/m_stats.c b/modules/m_stats.c index b7f2fd5..1edeba0 100644 --- a/modules/m_stats.c +++ b/modules/m_stats.c @@ -411,7 +411,7 @@ stats_deny(struct Client *source_p, int parc, char *parv[]) if (conf->until) continue; - sendto_one(source_p, RPL_STATSDLINE, + sendto_one(source_p, form_str(RPL_STATSDLINE), from, to, 'D', conf->host, conf->reason); } } @@ -446,7 +446,7 @@ stats_tdeny(struct Client *source_p, int parc, char *parv[]) if (!conf->until) continue; - sendto_one(source_p, RPL_STATSDLINE, + sendto_one(source_p, form_str(RPL_STATSDLINE), from, to, 'd', conf->host, conf->reason); } } @@ -467,11 +467,12 @@ stats_exempt(struct Client *source_p, int parc, char *parv[]) if (ConfigFileEntry.stats_e_disabled) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); return; } + for (i = 0; i < ATABLE_SIZE; ++i) { DLINK_FOREACH(ptr, atable[i].head) @@ -483,7 +484,7 @@ stats_exempt(struct Client *source_p, int parc, char *parv[]) conf = arec->conf; - sendto_one(source_p, RPL_STATSDLINE, + sendto_one(source_p, form_str(RPL_STATSDLINE), from, to, 'e', conf->host, conf->reason /* XXX */); } } @@ -613,7 +614,7 @@ stats_glines(struct Client *source_p, int parc, char *parv[]) { const struct MaskItem *conf = arec->conf; - sendto_one(source_p, RPL_STATSKLINE, + sendto_one(source_p, form_str(RPL_STATSKLINE), from, to, "G", conf->host ? conf->host : "*", conf->user ? conf->user : "*", @@ -700,7 +701,7 @@ report_auth(struct Client *client_p, int parc, char *parv[]) * sender, so prepare the strings for comparing --fl_ */ if (ConfigFileEntry.hide_spoof_ips) - sendto_one(client_p, RPL_STATSILINE, me.name, + sendto_one(client_p, form_str(RPL_STATSILINE), me.name, client_p->name, 'I', conf->name == NULL ? "*" : conf->name, show_iline_prefix(client_p, conf), @@ -709,7 +710,7 @@ report_auth(struct Client *client_p, int parc, char *parv[]) conf->class ? conf->class->name : "<default>"); else - sendto_one(client_p, RPL_STATSILINE, me.name, + sendto_one(client_p, form_str(RPL_STATSILINE), me.name, client_p->name, 'I', conf->name == NULL ? "*" : conf->name, show_iline_prefix(client_p, conf), @@ -724,7 +725,7 @@ stats_auth(struct Client *source_p, int parc, char *parv[]) { /* Oper only, if unopered, return ERR_NOPRIVILEGES */ if ((ConfigFileEntry.stats_i_oper_only == 2) && !HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); /* If unopered, Only return matching auth blocks */ @@ -746,7 +747,7 @@ stats_auth(struct Client *source_p, int parc, char *parv[]) if (conf == NULL) return; - sendto_one(source_p, RPL_STATSILINE, from, + sendto_one(source_p, form_str(RPL_STATSILINE), from, to, 'I', "*", show_iline_prefix(source_p, conf), conf->host, conf->port, @@ -793,11 +794,11 @@ report_Klines(struct Client *client_p, int tkline) continue; if (HasUMode(client_p, UMODE_OPER)) - sendto_one(client_p, RPL_STATSKLINE, me.name, + sendto_one(client_p, form_str(RPL_STATSKLINE), me.name, client_p->name, p, conf->host, conf->user, conf->reason); else - sendto_one(client_p, RPL_STATSKLINE, me.name, + sendto_one(client_p, form_str(RPL_STATSKLINE), me.name, client_p->name, p, conf->host, conf->user, conf->reason); } @@ -809,7 +810,7 @@ stats_tklines(struct Client *source_p, int parc, char *parv[]) { /* Oper only, if unopered, return ERR_NOPRIVILEGES */ if ((ConfigFileEntry.stats_k_oper_only == 2) && !HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); /* If unopered, Only return matching klines */ @@ -834,7 +835,7 @@ stats_tklines(struct Client *source_p, int parc, char *parv[]) if (!conf->until) return; - sendto_one(source_p, RPL_STATSKLINE, from, + sendto_one(source_p, form_str(RPL_STATSKLINE), from, to, "k", conf->host, conf->user, conf->reason); } /* Theyre opered, or allowed to see all klines */ @@ -848,7 +849,7 @@ stats_klines(struct Client *source_p, int parc, char *parv[]) { /* Oper only, if unopered, return ERR_NOPRIVILEGES */ if ((ConfigFileEntry.stats_k_oper_only == 2) && !HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); /* If unopered, Only return matching klines */ @@ -874,7 +875,7 @@ stats_klines(struct Client *source_p, int parc, char *parv[]) if (conf->until) return; - sendto_one(source_p, RPL_STATSKLINE, from, + sendto_one(source_p, form_str(RPL_STATSKLINE), from, to, "K", conf->host, conf->user, conf->reason); } /* Theyre opered, or allowed to see all klines */ @@ -894,7 +895,7 @@ static void stats_oper(struct Client *source_p, int parc, char *parv[]) { if (!HasUMode(source_p, UMODE_OPER) && ConfigFileEntry.stats_o_oper_only) - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); else report_confitem_types(source_p, CONF_OPER); @@ -941,7 +942,7 @@ static void stats_ports(struct Client *source_p, int parc, char *parv[]) { if (!HasUMode(source_p, UMODE_OPER) && ConfigFileEntry.stats_P_oper_only) - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); else show_ports(source_p); @@ -1035,11 +1036,11 @@ stats_uptime(struct Client *source_p, int parc, char *parv[]) { time_t now = CurrentTime - me.localClient->since; - sendto_one(source_p, RPL_STATSUPTIME, from, to, + sendto_one(source_p, form_str(RPL_STATSUPTIME), from, to, now / 86400, (now / 3600) % 24, (now / 60) % 60, now % 60); if (!ConfigFileEntry.disable_remote || HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, RPL_STATSCONN, from, to, + sendto_one(source_p, form_str(RPL_STATSCONN), from, to, Count.max_loc_con, Count.max_loc_cli, Count.totalrestartcount); } @@ -1096,7 +1097,7 @@ stats_servlinks(struct Client *source_p, int parc, char *parv[]) if (ConfigServerHide.flatten_links && !HasUMode(source_p, UMODE_OPER)) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); return; } @@ -1109,7 +1110,7 @@ stats_servlinks(struct Client *source_p, int parc, char *parv[]) recvB += target_p->localClient->recv.bytes; /* ":%s 211 %s %s %u %u %llu %u %llu :%u %u %s" */ - sendto_one(source_p, RPL_STATSLINKINFO, + sendto_one(source_p, form_str(RPL_STATSLINKINFO), from, to, get_client_name(target_p, HasUMode(source_p, UMODE_ADMIN) ? SHOW_IP : MASK_IP), dbuf_length(&target_p->localClient->buf_sendq), @@ -1216,7 +1217,7 @@ stats_L_list(struct Client *source_p,char *name, int doall, int wilds, (!IsServer(target_p) && !HasUMode(target_p, UMODE_ADMIN) && !IsHandshake(target_p) && !IsConnecting(target_p)))) { - sendto_one(source_p, RPL_STATSLINKINFO, + sendto_one(source_p, form_str(RPL_STATSLINKINFO), from, to, (IsUpper(statchar)) ? get_client_name(target_p, SHOW_IP) : @@ -1235,7 +1236,7 @@ stats_L_list(struct Client *source_p,char *name, int doall, int wilds, /* If its a hidden ip, an admin, or a server, mask the real IP */ if(IsIPSpoof(target_p) || IsServer(target_p) || HasUMode(target_p, UMODE_ADMIN) || IsHandshake(target_p) || IsConnecting(target_p)) - sendto_one(source_p, RPL_STATSLINKINFO, + sendto_one(source_p, form_str(RPL_STATSLINKINFO), from, to, get_client_name(target_p, MASK_IP), dbuf_length(&target_p->localClient->buf_sendq), @@ -1247,7 +1248,7 @@ stats_L_list(struct Client *source_p,char *name, int doall, int wilds, (CurrentTime > target_p->localClient->since) ? (unsigned)(CurrentTime - target_p->localClient->since):0, IsServer(target_p) ? show_capabilities(target_p) : "-"); else /* show the real IP */ - sendto_one(source_p, RPL_STATSLINKINFO, + sendto_one(source_p, form_str(RPL_STATSLINKINFO), from, to, (IsUpper(statchar)) ? get_client_name(target_p, SHOW_IP) : @@ -1297,7 +1298,7 @@ stats_ltrace(struct Client *source_p, int parc, char *parv[]) stats_L(source_p, name, doall, wilds, statchar); } else - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), from, to, "STATS"); } @@ -1362,7 +1363,7 @@ do_stats(struct Client *source_p, int parc, char *parv[]) if (statchar == '\0') { - sendto_one(source_p, RPL_ENDOFSTATS, + sendto_one(source_p, form_str(RPL_ENDOFSTATS), from, to, '*'); return; } @@ -1375,7 +1376,7 @@ do_stats(struct Client *source_p, int parc, char *parv[]) if ((tab->need_admin && !HasUMode(source_p, UMODE_ADMIN)) || (tab->need_oper && !HasUMode(source_p, UMODE_OPER))) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), from, to); break; } @@ -1389,7 +1390,7 @@ do_stats(struct Client *source_p, int parc, char *parv[]) } } - sendto_one(source_p, RPL_ENDOFSTATS, + sendto_one(source_p, form_str(RPL_ENDOFSTATS), from, to, statchar); } @@ -1428,7 +1429,7 @@ m_stats(struct Client *client_p, struct Client *source_p, /* Check the user is actually allowed to do /stats, and isnt flooding */ if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p,form_str(RPL_LOAD2HI), from, to); return; } diff --git a/modules/m_testline.c b/modules/m_testline.c new file mode 100644 index 0000000..b79665c --- /dev/null +++ b/modules/m_testline.c @@ -0,0 +1,248 @@ +/* + * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd). + * m_testline.c: Tests a hostmask to see what will happen to it. + * + * Copyright (C) 2002 by the past and present ircd coders, and others. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * $Id$ + */ + +#include "stdinc.h" +#include "client.h" +#include "irc_string.h" +#include "ircd_defs.h" +#include "ircd.h" +#include "restart.h" +#include "conf.h" +#include "send.h" +#include "hostmask.h" +#include "numeric.h" +#include "parse.h" +#include "resv.h" +#include "hash.h" +#include "modules.h" + + +/* mo_testline() + * + * inputs - pointer to physical connection request is coming from + * - pointer to source connection request is coming from + * - parc arg count + * - parv actual arguments + * + * output - NONE + * side effects - command to test I/K lines on server + * + * i.e. /quote testline user@host,ip [password] + * + */ +static void +mo_testline(struct Client *client_p, struct Client *source_p, + int parc, char *parv[]) +{ + /* IRCD_BUFSIZE to allow things like *u*s*e*r*n*a*m*e* etc. */ + char given_name[IRCD_BUFSIZE]; + char given_host[IRCD_BUFSIZE]; + char parv1_copy[IRCD_BUFSIZE]; + struct MaskItem *conf = NULL; + struct irc_ssaddr ip; + int host_mask; + enum hostmask_type t; + int matches = 0; + char userhost[HOSTLEN + USERLEN + 2]; + struct split_nuh_item nuh; + + if (EmptyString(parv[1])) + { + sendto_one(source_p, ":%s NOTICE %s :usage: user@host|ip [password]", + me.name, source_p->name); + return; + } + + if (IsChanPrefix(*parv[1])) /* Might be channel resv */ + { + const struct MaskItem *chptr = NULL; + + if ((chptr = match_find_resv(parv[1]))) + { + sendto_one(source_p, form_str(RPL_TESTLINE), + me.name, source_p->name, 'Q', 0, chptr->name, + chptr->reason ? chptr->reason : CONF_NOREASON); + return; + } + } + + strlcpy(parv1_copy, parv[1], sizeof(parv1_copy)); + + nuh.nuhmask = parv[1]; + nuh.nickptr = NULL; + nuh.userptr = given_name; + nuh.hostptr = given_host; + + nuh.nicksize = 0; + nuh.usersize = sizeof(given_name); + nuh.hostsize = sizeof(given_host); + + split_nuh(&nuh); + + t = parse_netmask(given_host, &ip, &host_mask); + + if (t != HM_HOST) + { + conf = find_dline_conf(&ip, +#ifdef IPV6 + (t == HM_IPV6) ? AF_INET6 : AF_INET +#else + AF_INET +#endif + ); + if (conf != NULL) + { + ++matches; + if (conf->type == CONF_EXEMPT) + sendto_one(source_p, + ":%s NOTICE %s :Exempt D-line host [%s] reason [%s]", + me.name, source_p->name, conf->host, conf->reason); + else + sendto_one(source_p, form_str(RPL_TESTLINE), + me.name, source_p->name, + conf->until ? 'd' : 'D', + conf->until ? ((conf->until - CurrentTime) / 60) + : 0L, + conf->host, conf->reason); + } + } + + if (t != HM_HOST) + conf = find_address_conf(given_host, given_name, &ip, +#ifdef IPV6 + (t == HM_IPV6) ? AF_INET6 : AF_INET, +#else + AF_INET, +#endif + parv[2]); + else + conf = find_address_conf(given_host, given_name, NULL, 0, parv[2]); + + if (conf != NULL) + { + snprintf(userhost, sizeof(userhost), "%s@%s", conf->user, conf->host); + + if (conf->type == CONF_CLIENT) + { + sendto_one(source_p, form_str(RPL_TESTLINE), + me.name, source_p->name, 'I', 0L, userhost, + conf->class ? conf->class->name : "<default>"); + ++matches; + } + else if (conf->type == CONF_KLINE) + { + sendto_one(source_p, form_str(RPL_TESTLINE), + me.name, source_p->name, + conf->until ? 'k' : 'K', + conf->until ? ((conf->until - CurrentTime) / 60) + : 0L, + userhost, conf->reason? conf->reason : CONF_NOREASON); + ++matches; + } + } + + conf = find_matching_name_conf(CONF_NRESV, given_name, NULL, NULL, 0); + + if (conf != NULL) + { + sendto_one(source_p, form_str(RPL_TESTLINE), + me.name, source_p->name, 'Q', 0L, + conf->name, + conf->reason ? conf->reason : CONF_NOREASON); + ++matches; + } + + if (matches == 0) + sendto_one(source_p, form_str(RPL_NOTESTLINE), + me.name, source_p->name, parv1_copy); +} + +/* mo_testgecos() + * + * inputs - pointer to physical connection request is coming from + * - pointer to source connection request is coming from + * - parc arg count + * - parv actual arguments + * + * output - always 0 + * side effects - command to test X lines on server + * + * i.e. /quote testgecos gecos + * + */ +static void +mo_testgecos(struct Client *client_p, struct Client *source_p, + int parc, char *parv[]) +{ + struct MaskItem *conf = NULL; + + if (EmptyString(parv[1])) + { + sendto_one(source_p, ":%s NOTICE %s :usage: gecos", + me.name, source_p->name); + return; + } + + if ((conf = find_matching_name_conf(CONF_XLINE, parv[1], NULL, NULL, 0))) + sendto_one(source_p, form_str(RPL_TESTLINE), + me.name, source_p->name, 'X', 0L, + conf->name, conf->reason ? conf->reason : CONF_NOREASON); + else + sendto_one(source_p, form_str(RPL_NOTESTLINE), + me.name, source_p->name, parv[1]); +} + +static struct Message testline_msgtab = { + "TESTLINE", 0, 0, 0, MAXPARA, MFLG_SLOW, 0, + { m_unregistered, m_not_oper, m_ignore, m_ignore, mo_testline, m_ignore } +}; + +struct Message testgecos_msgtab = { + "TESTGECOS", 0, 0, 0, MAXPARA, MFLG_SLOW, 0, + { m_unregistered, m_not_oper, m_ignore, m_ignore, mo_testgecos, m_ignore } +}; + +static void +module_init(void) +{ + mod_add_cmd(&testline_msgtab); + mod_add_cmd(&testgecos_msgtab); +} + +static void +module_exit(void) +{ + mod_del_cmd(&testline_msgtab); + mod_del_cmd(&testgecos_msgtab); +} + +struct module module_entry = { + .node = { NULL, NULL, NULL }, + .name = NULL, + .version = "$Revision$", + .handle = NULL, + .modinit = module_init, + .modexit = module_exit, + .flags = 0 +}; diff --git a/modules/m_testmask.c b/modules/m_testmask.c new file mode 100644 index 0000000..78d02d5 --- /dev/null +++ b/modules/m_testmask.c @@ -0,0 +1,131 @@ +/* + * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd). + * m_testmask.c: Counts the birdies err local and remote clients. + * + * Copyright (C) 2005 by Diane Bruce + * Coypright (C) 2005 ircd-hybrid team + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1.Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2.Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3.The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * $Id$ + */ + +#include "stdinc.h" +#include "client.h" +#include "irc_string.h" +#include "ircd_defs.h" +#include "ircd.h" +#include "restart.h" +#include "conf.h" +#include "send.h" +#include "hostmask.h" +#include "numeric.h" +#include "parse.h" +#include "modules.h" + + +/* mo_testmask() + * + * inputs - pointer to physical connection request is coming from + * - pointer to source connection request is coming from + * - parc arg count + * - parv actual arguments + * output - NONE + * side effects - count up clients matching mask + * i.e. /quote testmask user@host + */ +static void +mo_testmask(struct Client *client_p, struct Client *source_p, + int parc, char *parv[]) +{ + struct split_nuh_item nuh; + char given_nick[IRCD_BUFSIZE]; + char given_user[IRCD_BUFSIZE]; + char given_host[IRCD_BUFSIZE]; + unsigned int count[2] = { 0, 0 }; + const dlink_node *ptr = NULL; + + if (EmptyString(parv[1])) + { + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), + me.name, source_p->name, "TESTMASK"); + return; + } + + nuh.nuhmask = parv[1]; + nuh.nickptr = given_nick; + nuh.userptr = given_user; + nuh.hostptr = given_host; + + nuh.nicksize = sizeof(given_nick); + nuh.usersize = sizeof(given_user); + nuh.hostsize = sizeof(given_host); + + split_nuh(&nuh); + + DLINK_FOREACH(ptr, global_client_list.head) + { + const struct Client *target_p = ptr->data; + + if (!IsClient(target_p) || match(given_nick, target_p->name)) + continue; + + if (!match(given_user, target_p->username)) + if (!match(given_host, target_p->host) || !match(given_host, target_p->sockhost)) + ++count[!MyConnect(target_p)]; + } + + sendto_one(source_p, form_str(RPL_TESTMASK), me.name, + source_p->name, + given_nick, given_user, + given_host, count[0], count[1]); +} + +static struct Message testmask_msgtab = { + "TESTMASK", 0, 0, 2, MAXPARA, MFLG_SLOW, 0, + {m_unregistered, m_not_oper, m_ignore, m_ignore, mo_testmask, m_ignore} +}; + +static void +module_init(void) +{ + mod_add_cmd(&testmask_msgtab); +} + +static void +module_exit(void) +{ + mod_del_cmd(&testmask_msgtab); +} + +struct module module_entry = { + .node = { NULL, NULL, NULL }, + .name = NULL, + .version = "$Revision$", + .handle = NULL, + .modinit = module_init, + .modexit = module_exit, + .flags = 0 +}; diff --git a/modules/m_time.c b/modules/m_time.c index e240c9d..14705c6 100644 --- a/modules/m_time.c +++ b/modules/m_time.c @@ -53,7 +53,7 @@ m_time(struct Client *client_p, struct Client *source_p, if (hunt_server(client_p, source_p, ":%s TIME :%s", 1, parc, parv) != HUNTED_ISME) return; - sendto_one(source_p, RPL_TIME, me.name, + sendto_one(source_p, form_str(RPL_TIME), me.name, source_p->name, me.name, date(0)); } @@ -67,7 +67,7 @@ mo_time(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { if (hunt_server(client_p, source_p, ":%s TIME :%s", 1, parc, parv) == HUNTED_ISME) - sendto_one(source_p, RPL_TIME, me.name, + sendto_one(source_p, form_str(RPL_TIME), me.name, source_p->name, me.name, date(0)); } diff --git a/modules/m_topic.c b/modules/m_topic.c index aa17b01..75b3294 100644 --- a/modules/m_topic.c +++ b/modules/m_topic.c @@ -51,7 +51,7 @@ m_topic(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "TOPIC"); return; } @@ -61,7 +61,7 @@ m_topic(struct Client *client_p, struct Client *source_p, if ((chptr = hash_find_channel(parv[1])) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), me.name, source_p->name, parv[1]); return; } @@ -73,7 +73,7 @@ m_topic(struct Client *client_p, struct Client *source_p, if ((ms = find_channel_link(source_p, chptr)) == NULL) { - sendto_one(source_p, ERR_NOTONCHANNEL, me.name, + sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name, source_p->name, parv[1]); return; } @@ -103,7 +103,7 @@ m_topic(struct Client *client_p, struct Client *source_p, chptr->chname, chptr->topic); } else - sendto_one(source_p, ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chptr->chname); } else /* only asking for topic */ @@ -111,21 +111,21 @@ m_topic(struct Client *client_p, struct Client *source_p, if (!SecretChannel(chptr) || IsMember(source_p, chptr)) { if (chptr->topic[0] == '\0') - sendto_one(source_p, RPL_NOTOPIC, + sendto_one(source_p, form_str(RPL_NOTOPIC), me.name, source_p->name, chptr->chname); else { - sendto_one(source_p, RPL_TOPIC, + sendto_one(source_p, form_str(RPL_TOPIC), me.name, source_p->name, chptr->chname, chptr->topic); - sendto_one(source_p, RPL_TOPICWHOTIME, + sendto_one(source_p, form_str(RPL_TOPICWHOTIME), me.name, source_p->name, chptr->chname, chptr->topic_info, chptr->topic_time); } } else - sendto_one(source_p, ERR_NOTONCHANNEL, + sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name, source_p->name, chptr->chname); } } @@ -146,14 +146,14 @@ ms_topic(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[1])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), from, to, "TOPIC"); return; } if ((chptr = hash_find_channel(parv[1])) == NULL) { - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), from, to, parv[1]); return; } diff --git a/modules/m_trace.c b/modules/m_trace.c index 03f277b..3c1be75 100644 --- a/modules/m_trace.c +++ b/modules/m_trace.c @@ -71,7 +71,7 @@ m_trace(struct Client *client_p, struct Client *source_p, else tname = me.name; - sendto_one(source_p, RPL_ENDOFTRACE, + sendto_one(source_p, form_str(RPL_ENDOFTRACE), me.name, source_p->name, tname); } @@ -128,10 +128,10 @@ mo_trace(struct Client *client_p, struct Client *source_p, } if (ac2ptr != NULL) - sendto_one(source_p, RPL_TRACELINK, from, to, + sendto_one(source_p, form_str(RPL_TRACELINK), from, to, ircd_version, tname, ac2ptr->from->name); else - sendto_one(source_p, RPL_TRACELINK, from, to, + sendto_one(source_p, form_str(RPL_TRACELINK), from, to, ircd_version, tname, "ac2ptr_is_NULL!!"); return; } @@ -214,7 +214,7 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[]) if (HasUMode(target_p, UMODE_OPER)) { - sendto_one(source_p, RPL_TRACEOPERATOR, + sendto_one(source_p, form_str(RPL_TRACEOPERATOR), from, to, get_client_class(&target_p->localClient->confs), name, IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost, CurrentTime - target_p->localClient->lasttime, @@ -222,7 +222,7 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[]) } else { - sendto_one(source_p, RPL_TRACEUSER, + sendto_one(source_p,form_str(RPL_TRACEUSER), from, to, get_client_class(&target_p->localClient->confs), name, IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost, CurrentTime - target_p->localClient->lasttime, @@ -230,7 +230,7 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[]) } } - sendto_one(source_p, RPL_ENDOFTRACE, + sendto_one(source_p, form_str(RPL_ENDOFTRACE), from, to, tname); return; } @@ -282,11 +282,11 @@ do_actual_trace(struct Client *source_p, int parc, char *parv[]) const struct ClassItem *class = ptr->data; if (class->ref_count > 0) - sendto_one(source_p, RPL_TRACECLASS, + sendto_one(source_p, form_str(RPL_TRACECLASS), from, to, class->name, class->ref_count); } - sendto_one(source_p, RPL_ENDOFTRACE, from, to, tname); + sendto_one(source_p, form_str(RPL_ENDOFTRACE), from, to, tname); } /* report_this_status() @@ -322,12 +322,12 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow) switch (target_p->status) { case STAT_CONNECTING: - sendto_one(source_p, RPL_TRACECONNECTING, + sendto_one(source_p, form_str(RPL_TRACECONNECTING), from, to, class_name, HasUMode(source_p, UMODE_ADMIN) ? name : target_p->name); break; case STAT_HANDSHAKE: - sendto_one(source_p, RPL_TRACEHANDSHAKE, + sendto_one(source_p, form_str(RPL_TRACEHANDSHAKE), from, to, class_name, HasUMode(source_p, UMODE_ADMIN) ? name : target_p->name); break; @@ -335,7 +335,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow) break; case STAT_UNKNOWN: /* added time -Taner */ - sendto_one(source_p, RPL_TRACEUNKNOWN, + sendto_one(source_p, form_str(RPL_TRACEUNKNOWN), from, to, class_name, name, target_p->sockhost, target_p->localClient->firsttime ? /* TBD: can't be 0 */ CurrentTime - target_p->localClient->firsttime : -1); @@ -350,7 +350,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow) || !dow || HasUMode(target_p, UMODE_OPER)) { if (HasUMode(target_p, UMODE_ADMIN) && !ConfigFileEntry.hide_spoof_ips) - sendto_one(source_p, RPL_TRACEOPERATOR, + sendto_one(source_p, form_str(RPL_TRACEOPERATOR), from, to, class_name, name, HasUMode(source_p, UMODE_ADMIN) ? target_p->sockhost : "255.255.255.255", CurrentTime - target_p->localClient->lasttime, @@ -359,13 +359,13 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow) else if (HasUMode(target_p, UMODE_OPER)) { if (ConfigFileEntry.hide_spoof_ips) - sendto_one(source_p, RPL_TRACEOPERATOR, + sendto_one(source_p, form_str(RPL_TRACEOPERATOR), from, to, class_name, name, IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost, CurrentTime - target_p->localClient->lasttime, idle_time_get(source_p, target_p)); else - sendto_one(source_p, RPL_TRACEOPERATOR, + sendto_one(source_p, form_str(RPL_TRACEOPERATOR), from, to, class_name, name, MyOper(source_p) ? target_p->sockhost : (IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost), @@ -375,13 +375,13 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow) else { if (ConfigFileEntry.hide_spoof_ips) - sendto_one(source_p, RPL_TRACEUSER, + sendto_one(source_p, form_str(RPL_TRACEUSER), from, to, class_name, name, IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost, CurrentTime - target_p->localClient->lasttime, idle_time_get(source_p, target_p)); else - sendto_one(source_p, RPL_TRACEUSER, + sendto_one(source_p, form_str(RPL_TRACEUSER), from, to, class_name, name, MyOper(source_p) ? target_p->sockhost : (IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost), @@ -400,7 +400,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow) if (!HasUMode(source_p, UMODE_ADMIN)) name = get_client_name(target_p, MASK_IP); - sendto_one(source_p, RPL_TRACESERVER, + sendto_one(source_p, form_str(RPL_TRACESERVER), from, to, class_name, servers, clients, name, *(target_p->serv->by) ? target_p->serv->by : "*", "*", @@ -409,7 +409,7 @@ report_this_status(struct Client *source_p, struct Client *target_p, int dow) } default: /* ...we actually shouldn't come here... --msa */ - sendto_one(source_p, RPL_TRACENEWTYPE, + sendto_one(source_p, form_str(RPL_TRACENEWTYPE), from, to, name); break; } diff --git a/modules/m_user.c b/modules/m_user.c index d12f92f..9db36b4 100644 --- a/modules/m_user.c +++ b/modules/m_user.c @@ -94,7 +94,7 @@ mr_user(struct Client *client_p, struct Client *source_p, if (EmptyString(parv[4])) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, me.name, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name[0] ? source_p->name : "*", "USER"); return; } diff --git a/modules/m_userhost.c b/modules/m_userhost.c index 46490f5..1f7c604 100644 --- a/modules/m_userhost.c +++ b/modules/m_userhost.c @@ -50,7 +50,7 @@ m_userhost(struct Client *client_p, struct Client *source_p, int cur_len; int rl; - cur_len = snprintf(buf, sizeof(buf), RPL_USERHOST, me.name, source_p->name, ""); + cur_len = snprintf(buf, sizeof(buf), form_str(RPL_USERHOST), me.name, source_p->name, ""); t = buf + cur_len; for (nick = strtoken(&p, parv[1], " "); nick && i++ < 5; diff --git a/modules/m_users.c b/modules/m_users.c index 90615fa..14ab296 100644 --- a/modules/m_users.c +++ b/modules/m_users.c @@ -46,7 +46,7 @@ m_users(struct Client *client_p, struct Client *source_p, if (last_used + ConfigFileEntry.pace_wait_simple > CurrentTime) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -58,13 +58,13 @@ m_users(struct Client *client_p, struct Client *source_p, parc, parv) != HUNTED_ISME) return; - sendto_one(source_p, RPL_LOCALUSERS, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_LOCALUSERS), me.name, source_p->name, ConfigServerHide.hide_servers ? Count.total : Count.local, ConfigServerHide.hide_servers ? Count.max_tot : Count.max_loc, ConfigServerHide.hide_servers ? Count.total : Count.local, ConfigServerHide.hide_servers ? Count.max_tot : Count.max_loc); - sendto_one(source_p, RPL_GLOBALUSERS, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_GLOBALUSERS), me.name, source_p->name, Count.total, Count.max_tot, Count.total, Count.max_tot); } @@ -82,13 +82,13 @@ mo_users(struct Client *client_p, struct Client *source_p, return; if (!HasUMode(source_p, UMODE_OPER) && ConfigServerHide.hide_servers) - sendto_one(source_p, RPL_LOCALUSERS, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_LOCALUSERS), me.name, source_p->name, Count.total, Count.max_tot, Count.total, Count.max_tot); else - sendto_one(source_p, RPL_LOCALUSERS, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_LOCALUSERS), me.name, source_p->name, Count.local, Count.max_loc, Count.local, Count.max_loc); - sendto_one(source_p, RPL_GLOBALUSERS, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_GLOBALUSERS), me.name, source_p->name, Count.total, Count.max_tot, Count.total, Count.max_tot); } diff --git a/modules/m_version.c b/modules/m_version.c index 41cea48..5a9d9cc 100644 --- a/modules/m_version.c +++ b/modules/m_version.c @@ -101,7 +101,7 @@ m_version(struct Client *client_p, struct Client *source_p, if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime) { /* safe enough to give this on a local connect only */ - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -113,7 +113,7 @@ m_version(struct Client *client_p, struct Client *source_p, 1, parc, parv) != HUNTED_ISME) return; - sendto_one(source_p, RPL_VERSION, + sendto_one(source_p, form_str(RPL_VERSION), me.name, source_p->name, ircd_version, serno, me.name, confopts(source_p), serveropts); show_isupport(source_p); @@ -133,7 +133,7 @@ mo_version(struct Client *client_p, struct Client *source_p, 1, parc, parv) != HUNTED_ISME) return; - sendto_one(source_p, RPL_VERSION, me.name, + sendto_one(source_p, form_str(RPL_VERSION), me.name, source_p->name, ircd_version, serno, me.name, confopts(source_p), serveropts); @@ -152,7 +152,7 @@ ms_version(struct Client *client_p, struct Client *source_p, if (hunt_server(client_p, source_p, ":%s VERSION :%s", 1, parc, parv) == HUNTED_ISME) { - sendto_one(source_p, RPL_VERSION, + sendto_one(source_p, form_str(RPL_VERSION), ID_or_name(&me, client_p), ID_or_name(source_p, client_p), ircd_version, serno, diff --git a/modules/m_wallops.c b/modules/m_wallops.c index af98c48..c05a56d 100644 --- a/modules/m_wallops.c +++ b/modules/m_wallops.c @@ -47,7 +47,7 @@ mo_wallops(struct Client *client_p, struct Client *source_p, if (EmptyString(message)) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "WALLOPS"); return; } diff --git a/modules/m_watch.c b/modules/m_watch.c index 4e0aa55..fb75aa4 100644 --- a/modules/m_watch.c +++ b/modules/m_watch.c @@ -44,16 +44,16 @@ */ static void show_watch(struct Client *client_p, const char *name, - const char *rpl1, const char *rpl2) + unsigned int rpl1, unsigned int rpl2) { const struct Client *target_p = NULL; if ((target_p = find_person(client_p, name))) - sendto_one(client_p, rpl1, me.name, client_p->name, + sendto_one(client_p, form_str(rpl1), me.name, client_p->name, target_p->name, target_p->username, target_p->host, target_p->tsinfo); else - sendto_one(client_p, rpl2, me.name, client_p->name, + sendto_one(client_p, form_str(rpl2), me.name, client_p->name, name, "*", "*", 0); } @@ -96,7 +96,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[] if (dlink_list_length(&source_p->localClient->watches) >= ConfigFileEntry.max_watch) { - sendto_one(source_p, ERR_TOOMANYWATCH, me.name, + sendto_one(source_p, form_str(ERR_TOOMANYWATCH), me.name, source_p->name, s + 1, ConfigFileEntry.max_watch); continue; } @@ -152,7 +152,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[] if ((anptr = watch_find_hash(source_p->name))) count = dlink_list_length(&anptr->watched_by); - sendto_one(source_p, RPL_WATCHSTAT, + sendto_one(source_p, form_str(RPL_WATCHSTAT), me.name, source_p->name, dlink_list_length(&source_p->localClient->watches), count); @@ -162,7 +162,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[] */ if ((ptr = source_p->localClient->watches.head) == NULL) { - sendto_one(source_p, RPL_ENDOFWATCHLIST, + sendto_one(source_p, form_str(RPL_ENDOFWATCHLIST), me.name, source_p->name, *s); continue; } @@ -179,7 +179,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[] if (count + strlen(anptr->nick) + 1 > IRCD_BUFSIZE - 2) { - sendto_one(source_p, RPL_WATCHLIST, + sendto_one(source_p, form_str(RPL_WATCHLIST), me.name, source_p->name, buf); buf[0] = '\0'; count = strlen(source_p->name) + strlen(me.name) + 10; @@ -190,9 +190,9 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[] count += (strlen(anptr->nick) + 1); } - sendto_one(source_p, RPL_WATCHLIST, + sendto_one(source_p, form_str(RPL_WATCHLIST), me.name, source_p->name, buf); - sendto_one(source_p, RPL_ENDOFWATCHLIST, + sendto_one(source_p, form_str(RPL_ENDOFWATCHLIST), me.name, source_p->name, *s); continue; } @@ -216,7 +216,7 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[] const struct Watch *anptr = ptr->data; if ((target_p = find_person(source_p, anptr->nick))) - sendto_one(source_p, RPL_NOWON, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_NOWON), me.name, source_p->name, target_p->name, target_p->username, target_p->host, target_p->tsinfo); /* @@ -224,12 +224,12 @@ m_watch(struct Client *client_p, struct Client *source_p, int parc, char *parv[] * 'L' (full list wanted). */ else if (*s == 'L') - sendto_one(source_p, RPL_NOWOFF, me.name, + sendto_one(source_p, form_str(RPL_NOWOFF), me.name, source_p->name, anptr->nick, "*", "*", anptr->lasttime); } - sendto_one(source_p, RPL_ENDOFWATCHLIST, + sendto_one(source_p, form_str(RPL_ENDOFWATCHLIST), me.name, source_p->name, *s); continue; } diff --git a/modules/m_who.c b/modules/m_who.c index 7939eeb..09a5495 100644 --- a/modules/m_who.c +++ b/modules/m_who.c @@ -63,7 +63,7 @@ m_who(struct Client *client_p, struct Client *source_p, if (EmptyString(mask)) { who_global(source_p, mask, server_oper); - sendto_one(source_p, RPL_ENDOFWHO, + sendto_one(source_p, form_str(RPL_ENDOFWHO), me.name, source_p->name, "*"); return; } @@ -81,7 +81,7 @@ m_who(struct Client *client_p, struct Client *source_p, server_oper); } - sendto_one(source_p, RPL_ENDOFWHO, + sendto_one(source_p, form_str(RPL_ENDOFWHO), me.name, source_p->name, "*"); return; } @@ -98,7 +98,7 @@ m_who(struct Client *client_p, struct Client *source_p, do_who_on_channel(source_p, chptr, chptr->chname, 0, server_oper); } - sendto_one(source_p, RPL_ENDOFWHO, + sendto_one(source_p, form_str(RPL_ENDOFWHO), me.name, source_p->name, mask); return; } @@ -120,7 +120,7 @@ m_who(struct Client *client_p, struct Client *source_p, else do_who(source_p, target_p, NULL, ""); - sendto_one(source_p, RPL_ENDOFWHO, + sendto_one(source_p, form_str(RPL_ENDOFWHO), me.name, source_p->name, mask); return; } @@ -132,7 +132,7 @@ m_who(struct Client *client_p, struct Client *source_p, who_global(source_p, mask, server_oper); /* Wasn't a nick, wasn't a channel, wasn't a '*' so ... */ - sendto_one(source_p, RPL_ENDOFWHO, + sendto_one(source_p, form_str(RPL_ENDOFWHO), me.name, source_p->name, mask); } @@ -213,7 +213,7 @@ who_global(struct Client *source_p, char *mask, int server_oper) if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime) { /* safe enough to give this on a local connect only */ - sendto_one(source_p, RPL_LOAD2HI, me.name, source_p->name); + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -324,7 +324,7 @@ do_who(struct Client *source_p, struct Client *target_p, if (ConfigServerHide.hide_servers) { - sendto_one(source_p, RPL_WHOREPLY, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_WHOREPLY), me.name, source_p->name, (chname) ? (chname) : "*", target_p->username, target_p->host, HasUMode(source_p, UMODE_OPER) ? target_p->servptr->name : "*", @@ -332,7 +332,7 @@ do_who(struct Client *source_p, struct Client *target_p, } else { - sendto_one(source_p, RPL_WHOREPLY, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_WHOREPLY), me.name, source_p->name, (chname) ? (chname) : "*", target_p->username, target_p->host, target_p->servptr->name, target_p->name, status, target_p->hopcount, target_p->info); diff --git a/modules/m_whois.c b/modules/m_whois.c index 3cc9fb0..6b6d247 100644 --- a/modules/m_whois.c +++ b/modules/m_whois.c @@ -58,7 +58,7 @@ m_whois(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NONICKNAMEGIVEN, + sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, source_p->name); return; } @@ -68,7 +68,7 @@ m_whois(struct Client *client_p, struct Client *source_p, /* seeing as this is going across servers, we should limit it */ if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -103,7 +103,7 @@ mo_whois(struct Client *client_p, struct Client *source_p, { if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NONICKNAMEGIVEN, + sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, source_p->name); return; } @@ -165,7 +165,7 @@ do_whois(struct Client *source_p, int parc, char *parv[]) { if ((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -181,11 +181,11 @@ do_whois(struct Client *source_p, int parc, char *parv[]) if (!found) { if (!IsDigit(*nick)) - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, source_p->name, nick); } - sendto_one(source_p, RPL_ENDOFWHOIS, + sendto_one(source_p, form_str(RPL_ENDOFWHOIS), me.name, source_p->name, parv[1]); } @@ -293,11 +293,11 @@ whois_person(struct Client *source_p, struct Client *target_p) server_p = target_p->servptr; - sendto_one(source_p, RPL_WHOISUSER, + sendto_one(source_p, form_str(RPL_WHOISUSER), me.name, source_p->name, target_p->name, target_p->username, target_p->host, target_p->info); - cur_len = mlen = snprintf(buf, sizeof(buf), RPL_WHOISCHANNELS, + cur_len = mlen = snprintf(buf, sizeof(buf), form_str(RPL_WHOISCHANNELS), me.name, source_p->name, target_p->name, ""); t = buf + mlen; @@ -330,32 +330,32 @@ whois_person(struct Client *source_p, struct Client *target_p) } if (HasUMode(source_p, UMODE_OPER) || !ConfigServerHide.hide_servers || target_p == source_p) - sendto_one(source_p, RPL_WHOISSERVER, + sendto_one(source_p, form_str(RPL_WHOISSERVER), me.name, source_p->name, target_p->name, server_p->name, server_p->info); else - sendto_one(source_p, RPL_WHOISSERVER, + sendto_one(source_p, form_str(RPL_WHOISSERVER), me.name, source_p->name, target_p->name, ConfigServerHide.hidden_name, ServerInfo.network_desc); if (HasUMode(target_p, UMODE_REGISTERED)) - sendto_one(source_p, RPL_WHOISREGNICK, + sendto_one(source_p, form_str(RPL_WHOISREGNICK), me.name, source_p->name, target_p->name); if (target_p->away[0]) - sendto_one(source_p, RPL_AWAY, + sendto_one(source_p, form_str(RPL_AWAY), me.name, source_p->name, target_p->name, target_p->away); if (HasUMode(target_p, UMODE_CALLERID) && !HasUMode(target_p, UMODE_SOFTCALLERID)) - sendto_one(source_p, RPL_TARGUMODEG, + sendto_one(source_p, form_str(RPL_TARGUMODEG), me.name, source_p->name, target_p->name); if (HasUMode(target_p, UMODE_OPER)) if (!HasUMode(target_p, UMODE_HIDDEN) || HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, HasUMode(target_p, UMODE_ADMIN) ? RPL_WHOISADMIN : - RPL_WHOISOPERATOR, + sendto_one(source_p, form_str(HasUMode(target_p, UMODE_ADMIN) ? RPL_WHOISADMIN : + RPL_WHOISOPERATOR), me.name, source_p->name, target_p->name); if (target_p->sockhost[0] && strcmp(target_p->sockhost, "0")) @@ -367,7 +367,7 @@ whois_person(struct Client *source_p, struct Client *target_p) else show_ip = 1; - sendto_one(source_p, RPL_WHOISACTUALLY, + sendto_one(source_p, form_str(RPL_WHOISACTUALLY), me.name, source_p->name, target_p->name, show_ip ? target_p->sockhost : "255.255.255.255"); } @@ -376,10 +376,10 @@ whois_person(struct Client *source_p, struct Client *target_p) { #ifdef HAVE_LIBCRYPTO if (target_p->localClient->fd.ssl) - sendto_one(source_p, RPL_WHOISSECURE, + sendto_one(source_p, form_str(RPL_WHOISSECURE), me.name, source_p->name, target_p->name); #endif - sendto_one(source_p, RPL_WHOISIDLE, + sendto_one(source_p, form_str(RPL_WHOISIDLE), me.name, source_p->name, target_p->name, idle_time_get(source_p, target_p), target_p->localClient->firsttime); diff --git a/modules/m_whowas.c b/modules/m_whowas.c index 21c4cde..2f6da27 100644 --- a/modules/m_whowas.c +++ b/modules/m_whowas.c @@ -75,17 +75,17 @@ whowas_do(struct Client *client_p, struct Client *source_p, if (!irccmp(nick, temp->name)) { - sendto_one(source_p, RPL_WHOWASUSER, + sendto_one(source_p, form_str(RPL_WHOWASUSER), me.name, source_p->name, temp->name, temp->username, temp->hostname, temp->realname); if (ConfigServerHide.hide_servers && !HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, RPL_WHOISSERVER, + sendto_one(source_p, form_str(RPL_WHOISSERVER), me.name, source_p->name, temp->name, ServerInfo.network_name, myctime(temp->logoff)); else - sendto_one(source_p, RPL_WHOISSERVER, + sendto_one(source_p, form_str(RPL_WHOISSERVER), me.name, source_p->name, temp->name, temp->servername, myctime(temp->logoff)); ++cur; @@ -96,10 +96,10 @@ whowas_do(struct Client *client_p, struct Client *source_p, } if (!cur) - sendto_one(source_p, ERR_WASNOSUCHNICK, + sendto_one(source_p, form_str(ERR_WASNOSUCHNICK), me.name, source_p->name, nick); - sendto_one(source_p, RPL_ENDOFWHOWAS, + sendto_one(source_p, form_str(RPL_ENDOFWHOWAS), me.name, source_p->name, parv[1]); } @@ -116,14 +116,14 @@ m_whowas(struct Client *client_p, struct Client *source_p, if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NONICKNAMEGIVEN, + sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, source_p->name); return; } if ((last_used + ConfigFileEntry.pace_wait) > CurrentTime) { - sendto_one(source_p, RPL_LOAD2HI, + sendto_one(source_p,form_str(RPL_LOAD2HI), me.name, source_p->name); return; } @@ -139,7 +139,7 @@ mo_whowas(struct Client *client_p, struct Client *source_p, { if (parc < 2 || EmptyString(parv[1])) { - sendto_one(source_p, ERR_NONICKNAMEGIVEN, + sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, source_p->name); return; } diff --git a/modules/m_xline.c b/modules/m_xline.c index 2841b6d..9127b08 100644 --- a/modules/m_xline.c +++ b/modules/m_xline.c @@ -74,7 +74,7 @@ mo_xline(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_X)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "xline"); return; } @@ -232,7 +232,7 @@ mo_unxline(struct Client *client_p, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_X)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "unxline"); return; } @@ -298,7 +298,7 @@ valid_xline(struct Client *source_p, char *gecos, char *reason, int warn) if (EmptyString(reason)) { if (warn) - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "XLINE"); return 0; } diff --git a/src/Makefile.am b/src/Makefile.am index 65d16db..ae67d4b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -38,6 +38,7 @@ ircd_SOURCES = channel.c \ modules.c \ motd.c \ rng_mt.c \ + numeric.c \ packet.c \ parse.c \ s_bsd_epoll.c \ diff --git a/src/Makefile.in b/src/Makefile.in index 6ab4f01..32c567a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -76,14 +76,14 @@ am_ircd_OBJECTS = channel.$(OBJEXT) channel_mode.$(OBJEXT) \ list.$(OBJEXT) listener.$(OBJEXT) log.$(OBJEXT) \ match.$(OBJEXT) memory.$(OBJEXT) mempool.$(OBJEXT) \ modules.$(OBJEXT) motd.$(OBJEXT) rng_mt.$(OBJEXT) \ - packet.$(OBJEXT) parse.$(OBJEXT) s_bsd_epoll.$(OBJEXT) \ - s_bsd_poll.$(OBJEXT) s_bsd_devpoll.$(OBJEXT) \ - s_bsd_kqueue.$(OBJEXT) s_bsd_select.$(OBJEXT) \ - restart.$(OBJEXT) resv.$(OBJEXT) rsa.$(OBJEXT) \ - s_auth.$(OBJEXT) s_bsd.$(OBJEXT) s_gline.$(OBJEXT) \ - s_misc.$(OBJEXT) s_serv.$(OBJEXT) s_user.$(OBJEXT) \ - send.$(OBJEXT) version.$(OBJEXT) watch.$(OBJEXT) \ - whowas.$(OBJEXT) + numeric.$(OBJEXT) packet.$(OBJEXT) parse.$(OBJEXT) \ + s_bsd_epoll.$(OBJEXT) s_bsd_poll.$(OBJEXT) \ + s_bsd_devpoll.$(OBJEXT) s_bsd_kqueue.$(OBJEXT) \ + s_bsd_select.$(OBJEXT) restart.$(OBJEXT) resv.$(OBJEXT) \ + rsa.$(OBJEXT) s_auth.$(OBJEXT) s_bsd.$(OBJEXT) \ + s_gline.$(OBJEXT) s_misc.$(OBJEXT) s_serv.$(OBJEXT) \ + s_user.$(OBJEXT) send.$(OBJEXT) version.$(OBJEXT) \ + watch.$(OBJEXT) whowas.$(OBJEXT) ircd_OBJECTS = $(am_ircd_OBJECTS) am__DEPENDENCIES_1 = AM_V_lt = $(am__v_lt_@AM_V@) @@ -349,6 +349,7 @@ ircd_SOURCES = channel.c \ modules.c \ motd.c \ rng_mt.c \ + numeric.c \ packet.c \ parse.c \ s_bsd_epoll.c \ @@ -494,6 +495,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modules.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/motd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/numeric.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/packet.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/restart.Po@am__quote@ diff --git a/src/channel.c b/src/channel.c index c3e201e..ac31a36 100644 --- a/src/channel.c +++ b/src/channel.c @@ -444,7 +444,7 @@ channel_member_names(struct Client *source_p, struct Channel *chptr, if (PubChannel(chptr) || is_member) { - t = lbuf + sprintf(lbuf, RPL_NAMREPLY, + t = lbuf + sprintf(lbuf, form_str(RPL_NAMREPLY), me.name, source_p->name, channel_pub_or_secret(chptr), chptr->chname); @@ -494,7 +494,7 @@ channel_member_names(struct Client *source_p, struct Channel *chptr, } if (show_eon) - sendto_one(source_p, RPL_ENDOFNAMES, + sendto_one(source_p, form_str(RPL_ENDOFNAMES), me.name, source_p->name, chptr->chname); } @@ -648,7 +648,7 @@ is_banned(const struct Channel *chptr, const struct Client *who) * \return ERR_BANNEDFROMCHAN, ERR_INVITEONLYCHAN, ERR_CHANNELISFULL * or 0 if allowed to join. */ -const char * +int can_join(struct Client *source_p, struct Channel *chptr, const char *key) { if (is_banned(chptr, source_p)) @@ -677,7 +677,7 @@ can_join(struct Client *source_p, struct Channel *chptr, const char *key) chptr->mode.limit) return ERR_CHANNELISFULL; - return NULL; + return 0; } int @@ -720,7 +720,7 @@ can_send(struct Channel *chptr, struct Client *source_p, struct Membership *ms) if (MyClient(source_p) && !IsExemptResv(source_p)) if (!(HasUMode(source_p, UMODE_OPER) && ConfigFileEntry.oper_pass_resv)) if (!match_find_resv(chptr->chname) == ConfigChannel.restrict_channels) - return CAN_SEND_NO; + return ERR_CANNOTSENDTOCHAN; if (ms != NULL || (ms = find_channel_link(source_p, chptr))) { @@ -731,14 +731,14 @@ can_send(struct Channel *chptr, struct Client *source_p, struct Membership *ms) if (ConfigChannel.quiet_on_ban && MyClient(source_p)) { if (ms->flags & CHFL_BAN_SILENCED) - return CAN_SEND_NO; + return ERR_CANNOTSENDTOCHAN; if (!(ms->flags & CHFL_BAN_CHECKED)) { if (is_banned(chptr, source_p)) { ms->flags |= (CHFL_BAN_CHECKED|CHFL_BAN_SILENCED); - return CAN_SEND_NO; + return ERR_CANNOTSENDTOCHAN; } ms->flags |= CHFL_BAN_CHECKED; @@ -746,10 +746,10 @@ can_send(struct Channel *chptr, struct Client *source_p, struct Membership *ms) } } else if (chptr->mode.mode & MODE_NOPRIVMSGS) - return CAN_SEND_NO; + return ERR_CANNOTSENDTOCHAN; if (chptr->mode.mode & MODE_MODERATED) - return CAN_SEND_NO; + return ERR_CANNOTSENDTOCHAN; return CAN_SEND_NONOP; } diff --git a/src/channel_mode.c b/src/channel_mode.c index 7d82913..2a21b76 100644 --- a/src/channel_mode.c +++ b/src/channel_mode.c @@ -168,7 +168,7 @@ add_id(struct Client *client_p, struct Channel *chptr, char *banid, int type) if (num_mask >= ConfigChannel.max_bans) { - sendto_one(client_p, ERR_BANLISTFULL, + sendto_one(client_p, form_str(ERR_BANLISTFULL), me.name, client_p->name, chptr->chname, banid); return 0; } @@ -546,7 +546,7 @@ chm_nosuch(struct Client *client_p, struct Client *source_p, return; *errors |= SM_ERR_UNKNOWN; - sendto_one(source_p, ERR_UNKNOWNMODE, me.name, + sendto_one(source_p, form_str(ERR_UNKNOWNMODE), me.name, source_p->name, c); } @@ -563,8 +563,8 @@ chm_simple(struct Client *client_p, struct Client *source_p, struct Channel *chp ((mode_type == MODE_PRIVATE) && (alev < CHACCESS_CHANOP))) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -625,8 +625,8 @@ chm_registered(struct Client *client_p, struct Client *source_p, struct Channel if (!IsServer(source_p) && !HasFlag(source_p, FLAGS_SERVICE)) { if (!(*errors & SM_ERR_ONLYSERVER)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_ONLYSERVERSCANCHANGE, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_ONLYSERVERSCANCHANGE), me.name, source_p->name, chname); *errors |= SM_ERR_ONLYSERVER; return; @@ -687,8 +687,8 @@ chm_operonly(struct Client *client_p, struct Client *source_p, struct Channel *c ((mode_type == MODE_PRIVATE) && (alev < CHACCESS_CHANOP))) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -698,10 +698,10 @@ chm_operonly(struct Client *client_p, struct Client *source_p, struct Channel *c if (!(*errors & SM_ERR_NOTOPER)) { if (alev == CHACCESS_NOTONCHAN) - sendto_one(source_p, ERR_NOTONCHANNEL, + sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name, source_p->name, chname); else - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), me.name, source_p->name); } @@ -764,13 +764,13 @@ chm_ban(struct Client *client_p, struct Client *source_p, DLINK_FOREACH(ptr, chptr->banlist.head) { const struct Ban *banptr = ptr->data; - sendto_one(client_p, RPL_BANLIST, + sendto_one(client_p, form_str(RPL_BANLIST), me.name, client_p->name, chname, banptr->name, banptr->username, banptr->host, banptr->who, banptr->when); } - sendto_one(source_p, RPL_ENDOFBANLIST, me.name, + sendto_one(source_p, form_str(RPL_ENDOFBANLIST), me.name, source_p->name, chname); return; } @@ -778,8 +778,8 @@ chm_ban(struct Client *client_p, struct Client *source_p, if (alev < CHACCESS_HALFOP) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -830,8 +830,8 @@ chm_except(struct Client *client_p, struct Client *source_p, if (alev < CHACCESS_HALFOP) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -849,13 +849,13 @@ chm_except(struct Client *client_p, struct Client *source_p, DLINK_FOREACH(ptr, chptr->exceptlist.head) { const struct Ban *banptr = ptr->data; - sendto_one(client_p, RPL_EXCEPTLIST, + sendto_one(client_p, form_str(RPL_EXCEPTLIST), me.name, client_p->name, chname, banptr->name, banptr->username, banptr->host, banptr->who, banptr->when); } - sendto_one(source_p, RPL_ENDOFEXCEPTLIST, me.name, + sendto_one(source_p, form_str(RPL_ENDOFEXCEPTLIST), me.name, source_p->name, chname); return; } @@ -905,8 +905,8 @@ chm_invex(struct Client *client_p, struct Client *source_p, if (alev < CHACCESS_HALFOP) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -924,13 +924,13 @@ chm_invex(struct Client *client_p, struct Client *source_p, DLINK_FOREACH(ptr, chptr->invexlist.head) { const struct Ban *banptr = ptr->data; - sendto_one(client_p, RPL_INVITELIST, me.name, + sendto_one(client_p, form_str(RPL_INVITELIST), me.name, client_p->name, chname, banptr->name, banptr->username, banptr->host, banptr->who, banptr->when); } - sendto_one(source_p, RPL_ENDOFINVITELIST, me.name, + sendto_one(source_p, form_str(RPL_ENDOFINVITELIST), me.name, source_p->name, chname); return; } @@ -1014,8 +1014,8 @@ chm_op(struct Client *client_p, struct Client *source_p, if (alev < CHACCESS_CHANOP) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -1034,7 +1034,7 @@ chm_op(struct Client *client_p, struct Client *source_p, if ((member = find_channel_link(targ_p, chptr)) == NULL) { if (!(*errors & SM_ERR_NOTONCHANNEL)) - sendto_one(source_p, ERR_USERNOTINCHANNEL, + sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL), me.name, source_p->name, opnick, chname); *errors |= SM_ERR_NOTONCHANNEL; return; @@ -1120,8 +1120,8 @@ chm_hop(struct Client *client_p, struct Client *source_p, ((chptr->mode.mode & MODE_PRIVATE) ? CHACCESS_CHANOP : CHACCESS_HALFOP)) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -1140,7 +1140,7 @@ chm_hop(struct Client *client_p, struct Client *source_p, if ((member = find_channel_link(targ_p, chptr)) == NULL) { if (!(*errors & SM_ERR_NOTONCHANNEL)) - sendto_one(source_p, ERR_USERNOTINCHANNEL, + sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL), me.name, source_p->name, opnick, chname); *errors |= SM_ERR_NOTONCHANNEL; return; @@ -1196,8 +1196,8 @@ chm_voice(struct Client *client_p, struct Client *source_p, if (alev < CHACCESS_HALFOP) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -1216,7 +1216,7 @@ chm_voice(struct Client *client_p, struct Client *source_p, if ((member = find_channel_link(targ_p, chptr)) == NULL) { if (!(*errors & SM_ERR_NOTONCHANNEL)) - sendto_one(source_p, ERR_USERNOTINCHANNEL, + sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL), me.name, source_p->name, opnick, chname); *errors |= SM_ERR_NOTONCHANNEL; return; @@ -1258,8 +1258,8 @@ chm_limit(struct Client *client_p, struct Client *source_p, if (alev < CHACCESS_HALFOP) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; @@ -1323,8 +1323,8 @@ chm_key(struct Client *client_p, struct Client *source_p, if (alev < CHACCESS_HALFOP) { if (!(*errors & SM_ERR_NOOPS)) - sendto_one(source_p, alev == CHACCESS_NOTONCHAN ? - ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED, + sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ? + ERR_NOTONCHANNEL : ERR_CHANOPRIVSNEEDED), me.name, source_p->name, chname); *errors |= SM_ERR_NOOPS; return; diff --git a/src/client.c b/src/client.c index 3962e0e..17e5b34 100644 --- a/src/client.c +++ b/src/client.c @@ -462,7 +462,7 @@ ban_them(struct Client *client_p, struct MaskItem *conf) type_string, get_client_name(client_p, HIDE_IP)); if (IsClient(client_p)) - sendto_one(client_p, ERR_YOUREBANNEDCREEP, + sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP), me.name, client_p->name, user_reason); exit_client(client_p, &me, user_reason); @@ -546,7 +546,7 @@ find_chasing(struct Client *client_p, struct Client *source_p, const char *user, (time_t)ConfigFileEntry.kill_chase_time_limit)) == NULL) { - sendto_one(source_p, ERR_NOSUCHNICK, + sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, source_p->name, user); return NULL; } @@ -251,7 +251,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) { conf = ptr->data; - sendto_one(source_p, RPL_STATSXLINE, + sendto_one(source_p, form_str(RPL_STATSXLINE), me.name, source_p->name, conf->until ? "x": "X", conf->count, conf->name, conf->reason); @@ -264,7 +264,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) { conf = ptr->data; - sendto_one(source_p, RPL_STATSXLINE, + sendto_one(source_p, form_str(RPL_STATSXLINE), me.name, source_p->name, "XR", conf->count, conf->name, conf->reason); @@ -276,7 +276,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) { conf = ptr->data; - sendto_one(source_p, RPL_STATSKLINE, me.name, + sendto_one(source_p, form_str(RPL_STATSKLINE), me.name, source_p->name, "KR", conf->host, conf->user, conf->reason); } @@ -298,7 +298,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) else *p++ = ToLower(shared->letter); - sendto_one(source_p, RPL_STATSULINE, + sendto_one(source_p, form_str(RPL_STATSULINE), me.name, source_p->name, conf->name, conf->user?conf->user: "*", conf->host?conf->host: "*", buf); @@ -318,7 +318,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) else *p++ = ToLower(shared->letter); - sendto_one(source_p, RPL_STATSULINE, + sendto_one(source_p, form_str(RPL_STATSULINE), me.name, source_p->name, conf->name, "*", "*", buf); } @@ -332,12 +332,12 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) /* Don't allow non opers to see oper privs */ if (HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, RPL_STATSOLINE, + sendto_one(source_p, form_str(RPL_STATSOLINE), me.name, source_p->name, 'O', conf->user, conf->host, conf->name, oper_privs_as_string(conf->port), conf->class ? conf->class->name : "<default>"); else - sendto_one(source_p, RPL_STATSOLINE, + sendto_one(source_p, form_str(RPL_STATSOLINE), me.name, source_p->name, 'O', conf->user, conf->host, conf->name, "0", conf->class ? conf->class->name : "<default>"); @@ -348,7 +348,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) DLINK_FOREACH(ptr, class_get_list()->head) { class = ptr->data; - sendto_one(source_p, RPL_STATSYLINE, + sendto_one(source_p, form_str(RPL_STATSYLINE), me.name, source_p->name, 'Y', class->name, class->ping_freq, class->con_freq, @@ -365,7 +365,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) DLINK_FOREACH(ptr, service_items.head) { conf = ptr->data; - sendto_one(source_p, RPL_STATSSERVICE, + sendto_one(source_p, form_str(RPL_STATSSERVICE), me.name, source_p->name, 'S', "*", conf->name, 0, 0); } break; @@ -391,12 +391,12 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) * Allow admins to see actual ips unless hide_server_ips is enabled */ if (!ConfigServerHide.hide_server_ips && HasUMode(source_p, UMODE_ADMIN)) - sendto_one(source_p, RPL_STATSCLINE, + sendto_one(source_p, form_str(RPL_STATSCLINE), me.name, source_p->name, 'C', conf->host, buf, conf->name, conf->port, conf->class ? conf->class->name : "<default>"); else - sendto_one(source_p, RPL_STATSCLINE, + sendto_one(source_p, form_str(RPL_STATSCLINE), me.name, source_p->name, 'C', "*@127.0.0.1", buf, conf->name, conf->port, conf->class ? conf->class->name : "<default>"); @@ -409,7 +409,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) conf = ptr->data; DLINK_FOREACH(dptr, conf->hub_list.head) - sendto_one(source_p, RPL_STATSHLINE, me.name, + sendto_one(source_p, form_str(RPL_STATSHLINE), me.name, source_p->name, 'H', dptr->data, conf->name, 0, "*"); } @@ -418,7 +418,7 @@ report_confitem_types(struct Client *source_p, enum maskitem_type type) conf = ptr->data; DLINK_FOREACH(dptr, conf->leaf_list.head) - sendto_one(source_p, RPL_STATSLLINE, me.name, + sendto_one(source_p, form_str(RPL_STATSLLINE), me.name, source_p->name, 'L', dptr->data, conf->name, 0, "*"); } @@ -549,7 +549,7 @@ verify_access(struct Client *client_p) { if (IsConfRedir(conf)) { - sendto_one(client_p, RPL_REDIR, + sendto_one(client_p, form_str(RPL_REDIR), me.name, client_p->name, conf->name ? conf->name : "", conf->port); @@ -2146,7 +2146,7 @@ parse_aline(const char *cmd, struct Client *source_p, if (parc == 0) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, cmd); return -1; } @@ -2181,14 +2181,14 @@ parse_aline(const char *cmd, struct Client *source_p, if (!HasOFlag(source_p, OPER_FLAG_REMOTEBAN)) { - sendto_one(source_p, ERR_NOPRIVS, + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "remoteban"); return -1; } if (parc == 0 || EmptyString(*parv)) { - sendto_one(source_p, ERR_NEEDMOREPARAMS, + sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, cmd); return -1; } diff --git a/src/conf_lexer.c b/src/conf_lexer.c index a1e3a9f..ea3bd39 100644 --- a/src/conf_lexer.c +++ b/src/conf_lexer.c @@ -364,8 +364,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 247 -#define YY_END_OF_BUFFER 248 +#define YY_NUM_RULES 248 +#define YY_END_OF_BUFFER 249 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -373,24 +373,24 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1586] = +static yyconst flex_int16_t yy_accept[1598] = { 0, - 4, 4, 248, 246, 4, 3, 246, 5, 246, 246, - 6, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 4, 3, 0, 7, - 5, 245, 0, 2, 5, 6, 0, 0, 0, 0, + 4, 4, 249, 247, 4, 3, 247, 5, 247, 247, + 6, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 4, 3, 0, 7, + 5, 246, 0, 2, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 0, 239, 0, 0, 0, 0, 0, 0, - 0, 244, 0, 0, 0, 0, 0, 0, 0, 100, + 0, 69, 0, 240, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, @@ -398,157 +398,159 @@ static yyconst flex_int16_t yy_accept[1586] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 0, 0, 0, 0, 0, 147, 0, 0, 150, 0, - 0, 0, 0, 210, 132, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 0, 0, 0, 0, 0, 0, 148, 0, 0, 151, + 0, 0, 0, 0, 211, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, - 0, 0, 0, 13, 0, 200, 234, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 203, 0, 0, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, + 0, 0, 0, 0, 13, 0, 201, 235, 0, 0, + 0, 0, 0, 0, 0, 0, 226, 204, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 206, 0, 0, 0, 0, + + 0, 0, 0, 64, 229, 0, 0, 0, 70, 71, + 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, + 0, 0, 0, 99, 0, 0, 0, 0, 0, 108, + 0, 0, 195, 0, 115, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 165, 0, 0, 0, 0, 0, 225, + 0, 221, 0, 0, 9, 0, 0, 0, 234, 0, + + 0, 202, 0, 0, 21, 0, 0, 205, 0, 0, + 0, 34, 0, 0, 37, 0, 0, 0, 0, 0, + 42, 0, 44, 0, 46, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 0, 239, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 0, 0, 205, 0, 0, 0, 0, 0, - - 0, 0, 64, 228, 0, 0, 0, 70, 71, 0, - 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, - 0, 98, 0, 0, 0, 0, 0, 107, 0, 0, - 194, 0, 114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, - 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, - 0, 164, 0, 0, 0, 0, 0, 224, 0, 220, - 0, 0, 9, 0, 0, 0, 233, 0, 0, 201, - - 0, 0, 21, 0, 0, 204, 0, 0, 0, 34, - 0, 0, 37, 0, 0, 0, 0, 0, 42, 0, - 44, 0, 46, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 238, 0, 0, 76, 0, 0, + 0, 0, 0, 0, 0, 244, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 243, 0, 0, 0, 0, 0, 222, + 0, 0, 0, 120, 0, 123, 0, 0, 0, 0, + 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, + + 207, 0, 153, 139, 0, 0, 0, 0, 0, 0, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 166, 0, 0, 0, 224, 169, 220, + 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 58, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 0, 0, 0, 0, 79, 219, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 119, 0, 122, 0, 0, 0, 0, 0, 0, 0, - 141, 0, 0, 0, 0, 0, 0, 206, 0, 152, + 243, 0, 0, 231, 0, 0, 194, 222, 0, 0, - 138, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 165, 0, 0, 0, 223, 168, 219, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, - 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, - 0, 0, 79, 218, 81, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 242, 0, 230, - 0, 0, 193, 221, 0, 0, 0, 0, 0, 0, - + 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, + 0, 0, 119, 0, 0, 124, 125, 0, 0, 0, + 0, 0, 233, 0, 143, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 110, 0, 0, 0, 0, 0, 0, 118, 0, - 0, 123, 124, 0, 0, 0, 0, 0, 232, 0, - 142, 0, 0, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 209, - 0, 0, 0, 197, 0, 0, 0, 166, 215, 0, - 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 18, 0, 22, 23, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 210, 0, 0, 0, 198, 0, 0, + 0, 167, 216, 0, 168, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 22, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 192, 207, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, + 193, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 126, 0, 0, 0, 0, 231, 0, 0, - 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, + 0, 0, 232, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 158, 0, 196, 161, 0, 0, 0, 0, - 0, 0, 0, 14, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 159, 0, 197, + 162, 0, 0, 0, 0, 0, 0, 0, 14, 217, - 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 0, 0, 0, 236, 0, 0, - 0, 0, 0, 191, 0, 0, 0, 0, 84, 0, - 0, 0, 0, 0, 0, 241, 85, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 0, 109, 0, 212, - 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 0, 237, 0, 0, 0, 0, 0, 192, 0, + 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, + 242, 0, 85, 0, 0, 0, 0, 0, 0, 0, + 0, 105, 0, 110, 0, 213, 0, 0, 0, 0, + 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 214, 0, 0, 235, 0, 0, 78, 0, 0, 0, - 0, 0, 83, 86, 0, 0, 0, 0, 91, 240, + 0, 0, 0, 0, 0, 0, 215, 0, 0, 236, + 0, 0, 78, 0, 0, 0, 0, 0, 83, 86, + 0, 0, 0, 0, 91, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 113, 0, 0, 0, - 120, 121, 125, 0, 0, 0, 0, 0, 0, 0, + 0, 188, 0, 114, 0, 0, 0, 121, 122, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 0, 0, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, + 0, 1, 0, 1, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 171, 0, 0, 87, 0, - 0, 0, 88, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 115, 0, 0, 0, 0, 0, 0, 0, 143, - 144, 0, 213, 149, 0, 0, 0, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 0, 0, 87, 0, 0, 0, 88, + 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 144, 145, 0, + 214, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, - 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 0, 59, 0, - 0, 0, 0, 0, 0, 0, 0, 189, 180, 0, - 82, 0, 0, 0, 195, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, - 112, 0, 117, 0, 129, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 59, 0, 0, 0, + 0, 0, 0, 0, 0, 190, 181, 0, 82, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 200, 0, 113, + 0, 118, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, - 36, 39, 0, 0, 0, 47, 48, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 97, - 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 0, 0, 0, 0, 0, 217, 153, 0, 0, + + 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 0, 0, 0, 36, + 39, 0, 0, 0, 47, 48, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, + 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 117, 0, 0, 0, 0, 0, 218, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 0, 0, 0, 10, 0, 0, 0, 0, + 0, 179, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 175, 0, 0, 95, 0, 0, 103, - 0, 106, 0, 0, 0, 0, 0, 0, 0, 140, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 163, 0, 0, 179, 181, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 49, 51, 0, 0, - 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 176, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, - - 61, 67, 0, 0, 73, 0, 0, 0, 0, 0, - 89, 0, 92, 0, 0, 105, 0, 0, 0, 0, - 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, - 0, 0, 0, 0, 57, 0, 0, 72, 0, 0, - 0, 0, 172, 90, 0, 0, 102, 0, 198, 188, - 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, + 0, 0, 0, 176, 0, 0, 0, 96, 0, 0, + 104, 0, 107, 0, 0, 0, 0, 0, 0, 0, + 141, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 164, 0, 0, 180, 182, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 49, 51, 0, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, + 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 177, + + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 0, 61, 67, 0, 0, 73, 0, 0, 0, + 0, 0, 89, 0, 93, 0, 0, 106, 0, 0, + 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 19, 20, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 72, + 0, 0, 0, 0, 173, 90, 0, 0, 103, 0, + 199, 189, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 127, 0, 0, 0, 134, 136, 135, 185, 184, - 183, 186, 0, 0, 0, 25, 0, 0, 0, 0, - 170, 0, 0, 0, 0, 0, 173, 174, 0, 101, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 190, 0, 0, 0, 131, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 68, - 0, 0, 0, 130, 133, 0, 0, 0, 0, 32, - 0, 0, 75, 0, 17, 154, 0, 0, 0, 0, - 50, 93, 0, 0, 0, 33, 0, 0, 27, 0, - 0, 0, 26, 177, 0 + 0, 0, 0, 128, 0, 0, 0, 135, 137, 136, + 186, 185, 184, 187, 0, 0, 0, 25, 0, 0, + 0, 0, 171, 0, 0, 0, 0, 0, 174, 175, + 0, 102, 0, 0, 0, 0, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, + 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 68, 0, 0, 0, 131, 134, 0, 0, 0, + 0, 32, 0, 0, 75, 0, 17, 155, 0, 0, + 0, 0, 50, 94, 0, 0, 0, 33, 0, 0, + 27, 0, 0, 0, 26, 178, 0 + } ; static yyconst flex_int32_t yy_ec[256] = @@ -594,363 +596,369 @@ static yyconst flex_int32_t yy_meta[69] = 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1591] = +static yyconst flex_int16_t yy_base[1603] = { 0, - 0, 0, 3039, 3040, 3036, 0, 66, 0, 64, 66, + 0, 0, 3062, 3063, 3059, 0, 66, 0, 64, 66, 66, 98, 43, 146, 75, 58, 85, 76, 117, 109, 51, 154, 155, 197, 239, 53, 177, 57, 143, 283, - 323, 190, 122, 168, 128, 175, 3035, 0, 86, 3040, - 0, 3040, 170, 3040, 0, 220, 191, 188, 188, 198, + 323, 190, 122, 168, 128, 175, 3058, 0, 86, 3063, + 0, 3063, 170, 3063, 0, 220, 191, 188, 188, 198, 200, 202, 203, 204, 220, 223, 240, 239, 245, 231, 227, 276, 278, 244, 237, 254, 261, 271, 308, 287, 288, 305, 300, 329, 335, 298, 332, 330, 335, 331, 324, 330, 344, 329, 344, 348, 345, 364, 371, 379, - 369, 342, 367, 375, 391, 378, 388, 394, 394, 2994, - - 385, 395, 416, 388, 385, 430, 392, 466, 406, 441, - 436, 434, 412, 439, 465, 438, 453, 438, 445, 449, - 454, 2993, 473, 476, 518, 488, 483, 487, 506, 495, - 509, 510, 509, 512, 498, 3040, 515, 519, 514, 534, - 531, 2992, 530, 531, 529, 533, 534, 544, 540, 556, - 543, 564, 542, 565, 3040, 572, 561, 557, 561, 569, - 563, 577, 570, 579, 575, 583, 586, 578, 581, 592, - 584, 597, 596, 608, 587, 598, 2991, 603, 610, 137, - 607, 602, 615, 615, 628, 626, 624, 616, 622, 3040, - 627, 2990, 621, 641, 623, 626, 631, 647, 652, 651, - - 637, 650, 674, 664, 652, 667, 654, 667, 669, 661, - 665, 680, 682, 671, 669, 683, 690, 695, 3040, 683, - 685, 2989, 686, 702, 687, 3040, 696, 697, 3040, 715, - 712, 706, 712, 3040, 708, 709, 716, 728, 716, 734, - 727, 738, 740, 724, 734, 736, 740, 747, 743, 741, - 741, 749, 748, 754, 758, 760, 760, 3040, 768, 765, - 769, 768, 2988, 3040, 782, 3040, 772, 787, 787, 780, - 781, 2987, 778, 778, 794, 3040, 3040, 793, 781, 3040, - 785, 802, 801, 2986, 794, 801, 789, 810, 800, 799, - 818, 3040, 809, 812, 3040, 815, 817, 832, 837, 831, - - 834, 2985, 3040, 827, 834, 830, 830, 3040, 3040, 2984, - 846, 2983, 851, 849, 845, 2982, 838, 855, 847, 862, - 894, 866, 875, 862, 877, 873, 880, 3040, 875, 2981, - 877, 2980, 875, 884, 884, 893, 900, 920, 2979, 884, - 3040, 2978, 3040, 909, 891, 910, 916, 919, 922, 918, - 926, 926, 950, 2977, 933, 936, 937, 948, 950, 936, - 3040, 947, 957, 955, 3007, 971, 946, 951, 965, 3007, - 2974, 984, 990, 3040, 988, 974, 987, 988, 986, 981, - 994, 3040, 999, 985, 992, 2973, 990, 990, 1005, 994, - 993, 995, 1007, 1014, 1014, 1007, 3040, 1007, 1017, 2972, - - 1034, 1042, 3040, 1040, 1044, 3040, 1036, 1041, 1039, 3040, - 1044, 1039, 3040, 1041, 1054, 1039, 1047, 1058, 3040, 1058, - 3040, 1063, 2971, 1053, 1051, 1048, 1060, 1056, 1064, 3040, - 1075, 1074, 1073, 1081, 1074, 1095, 1074, 2970, 2969, 1088, - 2968, 1088, 1085, 1101, 1104, 1107, 1103, 1100, 1109, 1101, - 1109, 1118, 1116, 1102, 1097, 1118, 1120, 1112, 1131, 1118, - 1134, 1143, 1129, 1150, 1150, 1147, 1153, 1149, 1144, 1145, - 2967, 1165, 1154, 1144, 1169, 1175, 1157, 2966, 1159, 1162, - 3040, 1171, 3040, 1169, 1176, 1173, 1192, 1201, 1189, 1205, - 3040, 1196, 1195, 1212, 1201, 1215, 2965, 3040, 1219, 2964, - - 3040, 1218, 1213, 1219, 2963, 1205, 1221, 3040, 1215, 1207, - 1214, 1216, 1230, 1227, 1230, 1236, 1227, 1241, 1253, 1246, - 2991, 1247, 1250, 1263, 3040, 3040, 3040, 1263, 2961, 1250, - 3040, 1261, 1257, 1260, 1268, 1260, 1272, 1267, 1271, 1263, - 1263, 1264, 1269, 1281, 1275, 1280, 1278, 2960, 3040, 1298, - 2959, 1289, 1297, 1310, 2958, 1298, 2957, 1314, 2956, 1316, - 1316, 1303, 2955, 1322, 1315, 3040, 1321, 1311, 1328, 1330, - 1334, 1333, 3040, 3040, 3040, 1335, 1325, 1339, 1334, 1331, - 1363, 1349, 1350, 1344, 1345, 1353, 1351, 3040, 1352, 1355, - 1364, 1363, 1359, 3040, 1376, 1378, 1382, 1374, 1378, 1386, - - 1374, 1371, 1387, 2954, 1377, 1391, 1382, 1383, 1399, 1393, - 1406, 3040, 1393, 1402, 1413, 1403, 1410, 2953, 3040, 1411, - 1423, 3040, 1427, 1410, 1428, 1408, 1426, 1434, 1418, 1438, - 1432, 1437, 1423, 3040, 1432, 1434, 1433, 1430, 1435, 1445, - 2952, 1442, 1474, 1449, 2951, 1450, 2950, 1457, 3040, 3040, - 1471, 1472, 1460, 3040, 1477, 1480, 1479, 3040, 3040, 1476, - 3040, 1488, 1478, 1475, 1493, 1496, 1485, 1496, 1492, 1487, - 1484, 3040, 1488, 3040, 1508, 2949, 1495, 2948, 2947, 2946, - 1514, 1513, 1518, 1516, 2945, 3040, 1512, 1520, 1527, 1532, - 1527, 3040, 1521, 1535, 1529, 1533, 1529, 1533, 1538, 1548, - - 1539, 1538, 1553, 1550, 1532, 1554, 1543, 1563, 1564, 1554, - 1565, 1579, 1583, 1573, 1583, 1589, 1580, 1590, 1586, 1585, - 1594, 1593, 3040, 1594, 1578, 3040, 3040, 1597, 1584, 2944, - 1603, 1585, 2943, 2942, 1602, 1592, 1591, 1585, 1601, 1604, - 1603, 1608, 1618, 1629, 1623, 1626, 1632, 1628, 1635, 1627, - 1628, 1646, 3040, 1628, 1646, 1630, 1641, 3040, 1636, 1647, - 1643, 1639, 1650, 1646, 1650, 1648, 1644, 1659, 1665, 1660, - 1655, 2941, 2940, 2939, 2938, 2937, 1676, 1682, 2936, 1688, - 2935, 3040, 3040, 1688, 3040, 3040, 1688, 2934, 90, 1695, - 1680, 1688, 1687, 3040, 3040, 1697, 1698, 1693, 1694, 1689, - - 1705, 1700, 1712, 1701, 1696, 1711, 1707, 3040, 1701, 1709, - 1713, 1734, 1736, 1732, 1730, 1740, 1745, 1738, 1752, 1749, - 1733, 1741, 3040, 1744, 1755, 1746, 1744, 1745, 1760, 1754, - 1756, 1757, 1754, 3040, 1752, 1758, 1774, 1758, 3040, 1772, - 2933, 1780, 1784, 1792, 1792, 1782, 3040, 1794, 1790, 1787, - 1803, 1794, 1804, 1795, 1807, 3040, 1809, 3040, 1799, 3040, - 1793, 1800, 1816, 1801, 3040, 1812, 1819, 1811, 2932, 1822, - 1809, 1810, 1824, 2931, 1826, 1842, 1840, 1835, 1851, 1851, - 2930, 1855, 1840, 1856, 1842, 1854, 1859, 1853, 1867, 1864, - 1867, 1857, 1858, 1859, 1860, 2929, 1853, 1863, 1874, 1876, - - 1879, 1877, 1878, 453, 2966, 2954, 1874, 1896, 2926, 2925, - 2924, 3040, 1891, 1903, 1904, 1899, 1896, 1899, 1894, 1915, - 1912, 1914, 1920, 3040, 1909, 1918, 1916, 1925, 1925, 1915, - 2923, 1908, 1919, 1931, 1913, 1921, 2922, 1932, 1934, 1939, - 2921, 1943, 1946, 3040, 1944, 1961, 3040, 1962, 1945, 2920, - 1946, 1956, 3040, 3040, 1967, 1951, 1951, 2919, 3040, 3040, - 1960, 1955, 1953, 1972, 1979, 1974, 2918, 1968, 1971, 1967, - 1985, 2917, 2916, 1983, 2915, 1982, 3040, 1989, 1998, 1989, - 3040, 3040, 3040, 2002, 1995, 1996, 2014, 1996, 2015, 2007, - 2009, 2019, 2021, 2008, 2020, 2024, 2013, 2013, 2016, 2017, - - 2027, 2021, 2023, 2024, 2025, 2022, 2029, 2032, 2042, 2050, - 3040, 2045, 2053, 2949, 2948, 2936, 2935, 2051, 2051, 2067, - 2069, 2053, 3040, 2063, 2061, 2064, 2068, 2069, 2064, 2074, - 2074, 2083, 2069, 2081, 2073, 2079, 2074, 2083, 2080, 2096, - 2097, 2096, 2105, 3040, 2108, 2113, 2106, 2907, 2104, 2112, - 2902, 2896, 2112, 2105, 2106, 3040, 2116, 2114, 3040, 2126, - 2132, 2129, 3040, 2120, 2129, 2138, 3040, 2128, 2125, 2132, - 2142, 2133, 2892, 2134, 2891, 2131, 2132, 2138, 2143, 2144, - 2162, 3040, 2172, 2173, 2171, 2161, 2177, 843, 2169, 3040, - 3040, 2184, 3040, 3040, 2177, 2184, 2179, 842, 841, 2190, - - 640, 2173, 2188, 2190, 2191, 2192, 2189, 2190, 2196, 2182, - 2191, 2197, 2198, 2187, 2201, 2205, 2197, 2226, 488, 3040, - 2217, 2224, 3040, 2227, 2231, 2223, 2225, 2232, 2221, 482, - 2231, 2236, 2241, 2227, 2240, 2231, 3040, 465, 3040, 2233, - 2234, 2243, 2236, 2242, 2255, 2237, 2244, 426, 3040, 2265, - 3040, 2270, 2267, 2273, 3040, 2282, 2285, 2271, 2287, 2287, - 2274, 2280, 2276, 2281, 2296, 2281, 2288, 2298, 3040, 2295, - 3040, 2292, 3040, 2306, 3040, 422, 2298, 2292, 2298, 2308, - 2313, 2321, 2313, 2316, 2322, 2327, 2340, 2324, 2325, 2326, - 2328, 2334, 2330, 2331, 2349, 2333, 3040, 2340, 2340, 2339, - - 2343, 2350, 2351, 2352, 2359, 2344, 3040, 420, 2345, 2346, - 3040, 3040, 2358, 2359, 2364, 3040, 3040, 2379, 2369, 2391, - 2380, 3040, 2387, 2381, 416, 401, 2383, 2391, 2392, 3040, - 2399, 2385, 2390, 2400, 2403, 2395, 2410, 2408, 3040, 3040, - 3040, 384, 2397, 2410, 2406, 2401, 383, 2403, 2400, 2407, - 3040, 2412, 2421, 2428, 2433, 2438, 3040, 3040, 2447, 2440, - 2445, 381, 2446, 2450, 377, 339, 289, 287, 2449, 2450, - 281, 3040, 2455, 2452, 2440, 3040, 2446, 2442, 2443, 2449, - 2463, 280, 2464, 2463, 3040, 2454, 3040, 2457, 2454, 259, - 2458, 2461, 2464, 2467, 2467, 2488, 2476, 2489, 2490, 2496, - - 249, 2498, 2486, 3040, 2501, 2491, 3040, 2491, 2499, 3040, - 2508, 3040, 2512, 2512, 2495, 2503, 2506, 2516, 2497, 3040, - 3040, 2503, 2506, 2506, 2521, 2508, 2522, 2525, 2526, 2530, - 2536, 3040, 237, 2550, 3040, 3040, 2553, 2554, 236, 3040, - 2537, 2545, 2543, 2555, 229, 2545, 3040, 257, 2562, 2555, - 200, 2551, 3040, 2552, 2558, 2560, 2570, 2571, 2576, 2567, - 2574, 2572, 2561, 2590, 2579, 2590, 2587, 2609, 2606, 3040, - 2600, 2608, 2589, 152, 2611, 2597, 2610, 2610, 2612, 2618, - 2610, 2611, 2613, 2614, 2615, 2618, 3040, 3040, 2618, 144, - 2612, 2629, 2616, 2635, 2639, 2639, 3040, 2628, 2647, 2644, - - 3040, 3040, 2650, 2645, 3040, 150, 2652, 2651, 2649, 2651, - 3040, 2663, 145, 2660, 2653, 3040, 2662, 2658, 2673, 2667, - 124, 2675, 109, 3040, 2667, 2671, 2669, 2681, 2675, 2676, - 2677, 2678, 2681, 2687, 2698, 3040, 3040, 2693, 2695, 2713, - 2705, 2705, 2718, 2704, 3040, 2708, 2711, 3040, 2714, 2713, - 2723, 2726, 3040, 3040, 2713, 2724, 3040, 2723, 3040, 3040, - 2717, 2731, 2729, 2733, 2737, 2737, 2739, 3040, 2719, 2725, - 2731, 2732, 2741, 2752, 2753, 2753, 2752, 2757, 2762, 2765, - 2774, 2779, 2776, 2777, 2776, 2781, 2769, 2771, 2781, 2771, - 2787, 3040, 2784, 2783, 2787, 3040, 3040, 3040, 3040, 3040, - - 3040, 3040, 2788, 2794, 2785, 3040, 2805, 100, 2806, 2802, - 3040, 2801, 2808, 2824, 2815, 2817, 3040, 3040, 2817, 3040, - 2814, 2821, 2829, 2823, 2833, 3040, 2838, 2822, 2838, 2831, - 2843, 2836, 2827, 2827, 2840, 3040, 2834, 2842, 2847, 3040, - 2853, 2859, 2858, 95, 2854, 2856, 2866, 2866, 3040, 3040, - 2862, 2871, 2880, 3040, 3040, 2867, 2882, 2885, 2868, 3040, - 2886, 2879, 3040, 2889, 3040, 3040, 93, 2880, 2883, 2879, - 3040, 3040, 2879, 2879, 2881, 3040, 2894, 2890, 3040, 2892, - 2886, 2907, 3040, 3040, 3040, 105, 2954, 97, 84, 81 + 369, 342, 382, 377, 391, 383, 389, 394, 395, 3017, + + 387, 397, 416, 389, 386, 433, 392, 469, 409, 471, + 438, 434, 412, 434, 429, 439, 455, 439, 447, 449, + 454, 3016, 474, 477, 519, 489, 483, 493, 522, 498, + 507, 510, 509, 513, 503, 3063, 520, 531, 514, 531, + 530, 3015, 530, 531, 530, 533, 540, 547, 543, 559, + 546, 567, 549, 573, 3063, 576, 564, 561, 565, 573, + 565, 579, 572, 582, 578, 586, 586, 584, 582, 593, + 585, 598, 597, 611, 593, 601, 3014, 606, 613, 137, + 614, 610, 619, 618, 632, 630, 626, 618, 624, 3063, + 630, 3013, 624, 644, 628, 629, 630, 632, 648, 653, + + 656, 644, 658, 673, 668, 655, 670, 663, 676, 678, + 666, 671, 685, 687, 673, 673, 689, 694, 700, 3063, + 689, 685, 3012, 691, 704, 692, 3063, 703, 705, 3063, + 719, 715, 709, 715, 3063, 715, 716, 723, 730, 718, + 738, 732, 739, 742, 726, 737, 740, 744, 753, 747, + 742, 742, 750, 754, 766, 766, 764, 763, 3063, 771, + 768, 776, 775, 3011, 3063, 789, 3063, 774, 789, 790, + 783, 784, 3010, 780, 780, 796, 3063, 3063, 796, 785, + 3063, 789, 807, 807, 3009, 798, 802, 790, 811, 806, + 811, 826, 3063, 813, 815, 3063, 818, 820, 839, 845, + + 834, 840, 3008, 3063, 828, 837, 833, 833, 3063, 3063, + 3007, 848, 3006, 852, 850, 846, 3005, 844, 861, 851, + 863, 895, 871, 881, 884, 866, 891, 877, 884, 3063, + 885, 3004, 886, 3003, 888, 893, 895, 905, 912, 920, + 3002, 899, 3063, 3001, 3063, 929, 917, 925, 931, 933, + 933, 928, 934, 934, 954, 3000, 940, 944, 942, 979, + 955, 942, 3063, 951, 962, 962, 3030, 972, 952, 954, + 980, 3030, 2997, 995, 996, 3063, 995, 984, 996, 997, + 994, 989, 1000, 3063, 1005, 992, 998, 2996, 996, 997, + 1014, 1003, 1004, 1006, 1019, 1024, 1028, 1015, 3063, 1020, + + 1033, 2995, 1043, 1048, 3063, 1046, 1051, 3063, 1046, 1050, + 1048, 3063, 1052, 1047, 3063, 1047, 1060, 1046, 1053, 1064, + 3063, 1065, 3063, 1070, 2994, 1061, 1060, 1059, 1071, 1068, + 1083, 3063, 1082, 1079, 1087, 1093, 1082, 1101, 1080, 2993, + 2992, 1095, 2991, 1098, 1094, 1110, 1112, 1115, 1109, 1106, + 1116, 1107, 1115, 1137, 1126, 1111, 1108, 1127, 1132, 1142, + 1135, 1148, 1136, 1149, 1150, 1140, 1159, 1162, 1159, 1164, + 1158, 1153, 1152, 2990, 1173, 1160, 1155, 1196, 1184, 1174, + 2989, 1177, 1177, 3063, 1190, 3063, 1184, 1202, 1192, 1203, + 1208, 1202, 1212, 3063, 1205, 1204, 1221, 1210, 1222, 2988, + + 3063, 1227, 2987, 3063, 1249, 1221, 1225, 2986, 1212, 1230, + 3063, 1227, 1218, 1226, 1226, 1238, 1246, 1249, 1255, 1243, + 1252, 1260, 1255, 3014, 1258, 1261, 1273, 3063, 3063, 3063, + 1273, 2984, 1259, 3063, 1270, 1264, 1268, 1286, 1268, 1278, + 1277, 1287, 1280, 1279, 1280, 1292, 1307, 1300, 1303, 1297, + 2983, 3063, 1317, 2982, 1305, 1308, 1325, 2981, 1302, 2980, + 1320, 2979, 1324, 1344, 1312, 2978, 1330, 1322, 3063, 1328, + 1317, 1335, 1346, 1351, 1349, 3063, 3063, 3063, 1351, 1348, + 1365, 1359, 1354, 1366, 1369, 1370, 1361, 1357, 1366, 1363, + 3063, 1364, 1380, 1367, 1376, 1376, 1372, 3063, 1387, 1390, + + 1396, 1392, 1396, 1405, 1393, 1390, 1410, 2977, 1401, 1418, + 1410, 1409, 1424, 1413, 1426, 3063, 1410, 1414, 1423, 1416, + 1422, 2976, 3063, 1423, 1434, 3063, 1438, 1422, 1441, 1421, + 1437, 1446, 1432, 1456, 1452, 1453, 1442, 3063, 1455, 1458, + 1460, 1458, 1461, 1470, 2975, 1462, 1500, 1469, 2974, 1468, + 2973, 1472, 3063, 3063, 1485, 1486, 1472, 3063, 1488, 1490, + 1489, 3063, 3063, 1483, 3063, 1494, 1484, 1482, 1509, 1513, + 1508, 1520, 1519, 1515, 1510, 3063, 1513, 3063, 1528, 2972, + 1515, 2971, 2970, 2969, 1532, 1528, 1532, 1530, 2968, 3063, + 1525, 1539, 1538, 1543, 1539, 3063, 1534, 1549, 1542, 1547, + + 1547, 1551, 1557, 1567, 1558, 1561, 1577, 1577, 1560, 1580, + 1568, 1583, 1584, 1572, 1580, 1593, 1597, 1586, 1596, 1601, + 1593, 1604, 1600, 1599, 1607, 1608, 2967, 3063, 1612, 1596, + 3063, 3063, 1615, 1603, 2966, 1622, 1604, 2965, 2964, 1625, + 1616, 1618, 1613, 1627, 1629, 1623, 1628, 1636, 1644, 1637, + 1640, 1645, 1641, 1647, 1640, 1642, 1660, 3063, 1642, 1659, + 1645, 1659, 3063, 1654, 1665, 1662, 1658, 1669, 1669, 1674, + 1675, 1672, 1685, 1690, 1680, 1675, 2963, 2962, 2961, 2960, + 2959, 1694, 1697, 2958, 1702, 2957, 3063, 3063, 1702, 3063, + 3063, 1701, 2956, 90, 1708, 1692, 1701, 1701, 3063, 3063, + + 1711, 1712, 1706, 1709, 1707, 1721, 1719, 1743, 1721, 1715, + 1728, 1729, 3063, 1730, 1735, 1732, 1750, 1748, 1742, 1743, + 1753, 1758, 1750, 1765, 1763, 1747, 1755, 3063, 1757, 1770, + 1764, 1762, 1763, 1779, 1773, 1775, 1780, 1778, 3063, 1779, + 1786, 1800, 1783, 3063, 1792, 2955, 1800, 1802, 1807, 1806, + 1796, 1804, 3063, 1808, 1804, 1801, 1819, 1808, 1819, 1811, + 1823, 3063, 1830, 3063, 1820, 3063, 1813, 1820, 1836, 1826, + 3063, 1837, 1847, 1840, 2954, 1851, 1837, 1836, 1845, 2953, + 1848, 1863, 1859, 1850, 1866, 1865, 2952, 1869, 1854, 1871, + 1857, 1869, 1875, 1869, 1886, 1884, 1886, 1877, 1878, 1879, + + 1885, 2951, 1878, 1891, 1903, 1905, 1907, 1903, 1899, 456, + 2985, 2973, 1896, 1917, 2945, 2943, 2942, 3063, 1910, 1918, + 1919, 1913, 1910, 1913, 1909, 1930, 1927, 1930, 1936, 3063, + 1928, 1938, 1935, 1945, 1945, 1935, 2940, 1933, 1944, 1959, + 1942, 1950, 2936, 1960, 1960, 1960, 2933, 1965, 1967, 3063, + 1963, 1976, 3063, 1977, 1959, 2931, 1960, 1970, 3063, 3063, + 1988, 1966, 1965, 2930, 3063, 3063, 1971, 1976, 1975, 1974, + 1993, 2000, 1995, 2929, 1996, 2002, 1998, 2016, 2927, 2925, + 2014, 2924, 2011, 3063, 2016, 2021, 2014, 3063, 3063, 3063, + 2027, 2015, 2012, 2030, 2011, 2031, 2023, 2025, 2035, 2038, + + 2027, 2040, 2045, 2034, 2034, 2037, 2038, 2053, 2048, 2052, + 2054, 2055, 2053, 2058, 2059, 2065, 2075, 3063, 2070, 2073, + 2961, 1493, 1333, 1286, 2067, 2067, 2082, 2085, 2069, 3063, + 2079, 2077, 2081, 2087, 2089, 2085, 2095, 2095, 2104, 2090, + 2107, 2100, 2108, 2104, 2113, 2111, 2125, 2124, 2119, 2130, + 3063, 2133, 2133, 2122, 1157, 2120, 2127, 1098, 934, 2128, + 2121, 2122, 3063, 2132, 2131, 3063, 2145, 2152, 2150, 3063, + 2141, 2150, 2160, 2160, 3063, 2155, 2153, 2163, 2173, 2164, + 893, 2166, 864, 2163, 2162, 2167, 2169, 2173, 2188, 3063, + 2193, 2190, 2188, 2178, 2195, 861, 2186, 3063, 3063, 2201, + + 3063, 3063, 2195, 2204, 2202, 843, 842, 2212, 483, 2195, + 2211, 2212, 2213, 2219, 2217, 2221, 2227, 2213, 2223, 2229, + 2228, 2216, 2227, 2234, 2223, 2247, 469, 3063, 2234, 2241, + 3063, 2244, 2249, 2240, 2242, 2250, 2241, 466, 2254, 2258, + 2263, 2250, 2262, 2253, 3063, 437, 3063, 2260, 2274, 2271, + 2265, 2272, 2284, 2269, 2270, 431, 3063, 2286, 3063, 2295, + 2286, 2289, 3063, 2298, 2305, 2305, 2291, 2307, 2307, 2296, + 2305, 2302, 2307, 2323, 2305, 2312, 2323, 3063, 2325, 3063, + 2324, 3063, 2339, 3063, 425, 2330, 2325, 2331, 2341, 2342, + 2347, 2342, 2343, 2344, 2345, 2359, 2344, 2345, 2346, 2348, + + 2356, 2355, 2357, 2375, 2358, 3063, 2365, 2365, 2364, 2371, + 2379, 2383, 2385, 2391, 2377, 3063, 423, 2378, 2379, 3063, + 3063, 2387, 2385, 2393, 3063, 3063, 2406, 2391, 2409, 2399, + 3063, 2407, 2401, 422, 420, 2403, 2411, 2414, 3063, 2424, + 2411, 2416, 2425, 2428, 2420, 2424, 2439, 2438, 3063, 3063, + 3063, 384, 2430, 2444, 2440, 2435, 381, 2437, 2434, 2442, + 3063, 2444, 2451, 2459, 2461, 2461, 3063, 3063, 2467, 2461, + 2466, 380, 2467, 2472, 347, 339, 289, 287, 2472, 2476, + 281, 3063, 2482, 2479, 2468, 3063, 2472, 2468, 2470, 2478, + 2493, 280, 2497, 2497, 3063, 2488, 3063, 2491, 2488, 259, + + 2492, 2496, 2496, 2497, 2498, 2516, 2499, 2509, 2511, 2517, + 249, 2519, 2508, 3063, 2524, 2530, 2519, 3063, 2519, 2528, + 3063, 2537, 3063, 2539, 2540, 2526, 2534, 2540, 2551, 2532, + 3063, 3063, 2539, 2541, 2541, 2557, 2546, 2558, 2557, 2558, + 2559, 2561, 3063, 237, 2572, 3063, 3063, 2575, 2576, 236, + 3063, 2560, 2570, 2570, 2584, 229, 2574, 3063, 257, 2591, + 2582, 200, 2579, 3063, 2583, 2589, 2594, 2605, 2606, 2612, + 2599, 2610, 2609, 2604, 3063, 2622, 2611, 2619, 2612, 2631, + 2628, 3063, 2622, 2631, 2614, 152, 2638, 2625, 2638, 2639, + 2641, 2645, 2638, 2642, 2644, 2648, 2650, 2653, 3063, 3063, + + 2654, 144, 2647, 2664, 2652, 2673, 2675, 2671, 3063, 2660, + 2676, 2669, 3063, 3063, 2672, 2667, 3063, 150, 2674, 2674, + 2674, 2678, 3063, 2691, 145, 2688, 2682, 3063, 2691, 2685, + 2701, 2698, 124, 2706, 109, 3063, 2701, 2706, 2704, 2717, + 2710, 2711, 2713, 2716, 2717, 2719, 2730, 3063, 3063, 2722, + 2720, 2735, 2727, 2727, 2741, 2729, 3063, 2735, 2739, 3063, + 2742, 2742, 2752, 2753, 3063, 3063, 2741, 2755, 3063, 2754, + 3063, 3063, 2751, 2766, 2764, 2769, 2772, 2772, 2775, 3063, + 2757, 2761, 2763, 2764, 2770, 2777, 2775, 2775, 2774, 2780, + 2787, 2792, 2802, 2807, 2805, 2806, 2803, 2809, 2800, 2802, + + 2815, 2806, 2822, 3063, 2820, 2818, 2822, 3063, 3063, 3063, + 3063, 3063, 3063, 3063, 2824, 2832, 2821, 3063, 2837, 100, + 2838, 2831, 3063, 2826, 2830, 2846, 2837, 2840, 3063, 3063, + 2842, 3063, 2841, 2849, 2857, 2852, 2862, 3063, 2865, 2850, + 2869, 2862, 2877, 2871, 2862, 2863, 2875, 3063, 2869, 2878, + 2885, 3063, 2889, 2891, 2890, 95, 2883, 2881, 2888, 2888, + 3063, 3063, 2884, 2894, 2905, 3063, 3063, 2894, 2910, 2913, + 2897, 3063, 2915, 2906, 3063, 2917, 3063, 3063, 93, 2911, + 2914, 2913, 3063, 3063, 2914, 2914, 2917, 3063, 2929, 2925, + 3063, 2928, 2924, 2943, 3063, 3063, 3063, 105, 2990, 97, + + 84, 81 } ; -static yyconst flex_int16_t yy_def[1591] = +static yyconst flex_int16_t yy_def[1603] = { 0, - 1585, 1, 1585, 1585, 1585, 1586, 1587, 1588, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1586, 1587, 1585, - 1588, 1585, 1585, 1585, 1588, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1589, 1590, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1589, 1589, 1590, 1590, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 0, 1585, 1585, 1585, 1585, 1585 + 1597, 1, 1597, 1597, 1597, 1598, 1599, 1600, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1598, 1599, 1597, + 1600, 1597, 1597, 1597, 1600, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1601, 1602, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1601, 1601, 1602, 1602, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 0, 1597, 1597, 1597, + + 1597, 1597 } ; -static yyconst flex_int16_t yy_nxt[3109] = +static yyconst flex_int16_t yy_nxt[3132] = { 0, 4, 5, 6, 7, 8, 4, 9, 10, 11, 11, 11, 11, 11, 4, 4, 12, 13, 14, 15, 16, @@ -960,343 +968,346 @@ static yyconst flex_int16_t yy_nxt[3109] = 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 4, 40, 40, 42, 44, 53, 45, 46, 46, 46, 46, 46, 66, - 83, 1016, 54, 102, 1014, 67, 68, 43, 40, 40, - 61, 904, 106, 905, 62, 74, 69, 41, 63, 53, + 83, 1023, 54, 102, 1021, 67, 68, 43, 40, 40, + 61, 910, 106, 911, 62, 74, 69, 41, 63, 53, - 70, 64, 75, 906, 65, 38, 66, 83, 71, 54, + 70, 64, 75, 912, 65, 38, 66, 83, 71, 54, 102, 72, 67, 68, 43, 47, 48, 61, 49, 106, 73, 62, 74, 69, 50, 63, 51, 70, 64, 75, - 80, 65, 76, 52, 1573, 71, 1558, 81, 72, 82, - 77, 1529, 47, 48, 127, 49, 78, 73, 308, 309, - 1464, 50, 79, 51, 130, 1436, 1437, 80, 107, 76, - 52, 55, 108, 56, 81, 1462, 82, 77, 57, 58, + 80, 65, 76, 52, 1585, 71, 1570, 81, 72, 82, + 77, 1541, 47, 48, 127, 49, 78, 73, 309, 310, + 1476, 50, 79, 51, 130, 1448, 1449, 80, 107, 76, + 52, 55, 108, 56, 81, 1474, 82, 77, 57, 58, 84, 127, 59, 78, 88, 60, 109, 85, 89, 79, - 86, 130, 87, 128, 90, 107, 1455, 129, 55, 108, - 56, 1449, 103, 1422, 131, 57, 58, 84, 132, 59, + 86, 130, 87, 128, 90, 107, 1467, 129, 55, 108, + 56, 1461, 103, 1434, 131, 57, 58, 84, 132, 59, 104, 88, 60, 109, 85, 89, 105, 86, 133, 87, 128, 90, 91, 92, 129, 134, 93, 124, 125, 103, 94, 131, 135, 126, 136, 132, 95, 104, 46, 46, 46, 46, 46, 105, 137, 133, 138, 139, 140, 91, - 92, 1400, 134, 93, 124, 125, 141, 94, 142, 135, + 92, 1412, 134, 93, 124, 125, 141, 94, 142, 135, 126, 136, 143, 95, 96, 144, 97, 145, 98, 148, - 146, 137, 99, 138, 139, 140, 149, 157, 100, 1397, - 1395, 158, 159, 141, 101, 142, 160, 1389, 1385, 143, + 146, 137, 99, 138, 139, 140, 149, 157, 100, 1409, + 1407, 158, 159, 141, 101, 142, 160, 1401, 1397, 143, 147, 96, 144, 97, 145, 98, 148, 146, 161, 99, - 1360, 150, 151, 149, 157, 100, 152, 155, 158, 159, + 1371, 150, 151, 149, 157, 100, 152, 155, 158, 159, - 1349, 101, 110, 160, 153, 111, 112, 147, 113, 154, + 1360, 101, 110, 160, 153, 111, 112, 147, 113, 154, 165, 156, 114, 115, 166, 161, 116, 117, 150, 151, - 167, 1343, 1334, 152, 155, 162, 168, 163, 1331, 110, - 1330, 153, 111, 112, 173, 113, 154, 165, 156, 114, + 167, 1354, 1345, 152, 155, 162, 168, 163, 1342, 110, + 1341, 153, 111, 112, 173, 113, 154, 165, 156, 114, 115, 166, 164, 116, 117, 118, 169, 167, 119, 120, 174, 177, 162, 168, 163, 121, 122, 170, 171, 178, 179, 173, 123, 175, 172, 176, 180, 181, 182, 164, 183, 184, 118, 169, 185, 119, 120, 174, 177, 186, - 1329, 193, 121, 122, 170, 171, 178, 179, 194, 123, + 1340, 193, 121, 122, 170, 171, 178, 179, 1339, 123, 175, 172, 176, 180, 181, 182, 189, 183, 184, 187, - 190, 185, 191, 195, 188, 198, 186, 192, 193, 196, - 199, 202, 204, 200, 205, 194, 209, 210, 1328, 197, - 213, 222, 1325, 189, 1313, 1308, 187, 190, 201, 191, - 195, 188, 198, 206, 192, 231, 196, 199, 202, 204, - 200, 205, 1296, 209, 210, 211, 197, 213, 222, 207, - 208, 227, 229, 212, 904, 201, 905, 1295, 223, 232, - 206, 1283, 231, 1253, 235, 228, 906, 1231, 236, 224, - 237, 238, 211, 225, 230, 226, 207, 208, 227, 229, - 212, 214, 239, 215, 216, 223, 232, 217, 218, 240, - 219, 235, 228, 220, 233, 236, 224, 237, 238, 221, - - 225, 230, 226, 242, 234, 243, 1220, 250, 214, 239, - 215, 216, 251, 252, 217, 218, 240, 219, 256, 253, - 220, 233, 254, 1213, 257, 255, 221, 259, 260, 1204, - 242, 234, 243, 244, 250, 261, 245, 262, 263, 251, - 252, 264, 258, 246, 247, 256, 253, 266, 265, 254, - 248, 257, 255, 267, 259, 260, 249, 268, 270, 271, - 244, 272, 261, 245, 262, 263, 273, 274, 264, 258, - 246, 247, 275, 276, 266, 265, 277, 248, 278, 279, - 267, 280, 281, 249, 268, 270, 271, 282, 272, 283, - 284, 285, 286, 273, 274, 287, 288, 289, 290, 275, - - 276, 291, 292, 277, 295, 278, 279, 293, 280, 281, - 296, 297, 298, 299, 282, 300, 283, 284, 285, 286, - 294, 303, 287, 288, 289, 290, 301, 302, 291, 292, - 304, 295, 306, 307, 293, 310, 311, 296, 297, 298, - 299, 312, 300, 314, 313, 315, 316, 294, 303, 317, - 318, 319, 320, 301, 302, 322, 323, 304, 324, 306, - 307, 326, 310, 311, 325, 327, 328, 329, 312, 330, - 314, 313, 315, 316, 331, 332, 317, 318, 319, 320, - 337, 1186, 322, 323, 338, 324, 339, 340, 326, 341, - 342, 333, 327, 328, 329, 343, 330, 344, 334, 345, - - 346, 331, 332, 335, 347, 348, 349, 337, 336, 350, - 351, 338, 352, 339, 340, 356, 341, 342, 333, 353, - 357, 354, 343, 358, 344, 334, 345, 346, 359, 360, - 335, 347, 348, 349, 361, 336, 350, 351, 362, 352, - 363, 364, 356, 367, 365, 368, 353, 357, 354, 366, - 358, 369, 370, 371, 372, 359, 360, 374, 375, 376, - 377, 361, 378, 379, 373, 362, 380, 363, 364, 381, - 367, 365, 368, 382, 384, 385, 386, 387, 369, 370, - 371, 372, 383, 388, 374, 375, 376, 377, 389, 378, - 379, 373, 390, 380, 391, 392, 381, 393, 394, 396, - - 382, 384, 385, 386, 387, 397, 398, 399, 400, 401, - 388, 403, 404, 405, 406, 389, 407, 408, 409, 390, - 410, 391, 392, 412, 393, 394, 396, 413, 414, 415, - 416, 417, 397, 398, 399, 400, 401, 418, 403, 404, - 405, 406, 419, 407, 408, 409, 420, 410, 421, 422, - 412, 423, 424, 428, 413, 414, 415, 416, 417, 426, - 430, 431, 432, 433, 418, 435, 425, 437, 438, 419, - 439, 441, 427, 420, 442, 421, 422, 443, 423, 424, - 428, 444, 1184, 1183, 1177, 454, 426, 430, 431, 432, - 433, 455, 435, 425, 437, 438, 456, 439, 441, 459, - - 457, 442, 460, 461, 443, 458, 463, 465, 444, 445, - 446, 447, 454, 466, 467, 448, 468, 449, 455, 469, - 450, 475, 451, 456, 477, 478, 459, 457, 452, 460, - 461, 453, 458, 463, 465, 470, 445, 446, 447, 479, - 466, 467, 448, 468, 449, 480, 469, 450, 475, 451, - 481, 477, 478, 471, 482, 452, 483, 472, 453, 484, - 485, 473, 470, 489, 490, 486, 479, 493, 491, 496, - 497, 494, 480, 498, 499, 500, 495, 481, 492, 505, - 471, 482, 487, 483, 472, 506, 484, 485, 502, 503, - 489, 490, 486, 507, 493, 491, 496, 497, 494, 510, - - 498, 499, 500, 495, 504, 511, 505, 512, 513, 487, - 514, 515, 506, 516, 517, 502, 503, 518, 519, 521, - 507, 522, 524, 525, 526, 520, 510, 527, 528, 529, - 530, 504, 511, 531, 512, 513, 534, 514, 515, 535, - 516, 517, 532, 536, 518, 519, 521, 533, 522, 524, - 525, 526, 520, 538, 527, 528, 529, 530, 539, 540, - 531, 541, 542, 534, 543, 544, 535, 545, 546, 532, - 536, 547, 548, 549, 533, 550, 551, 552, 553, 555, - 538, 556, 557, 558, 559, 539, 540, 560, 541, 542, - 562, 543, 544, 563, 545, 546, 564, 561, 547, 548, - - 549, 565, 550, 551, 552, 553, 555, 566, 556, 557, - 558, 559, 567, 568, 560, 571, 573, 562, 574, 575, - 563, 576, 577, 564, 561, 578, 580, 581, 565, 579, - 582, 587, 583, 585, 566, 588, 589, 590, 591, 567, - 568, 592, 571, 573, 584, 574, 575, 586, 576, 577, - 593, 594, 578, 580, 581, 595, 579, 582, 587, 583, - 585, 598, 588, 589, 590, 591, 596, 599, 592, 600, - 601, 584, 602, 597, 586, 603, 604, 593, 594, 605, - 607, 611, 595, 608, 609, 616, 618, 612, 598, 610, - 619, 622, 614, 596, 599, 623, 600, 601, 613, 602, - - 597, 620, 603, 604, 621, 624, 605, 607, 611, 615, - 608, 609, 616, 618, 612, 625, 610, 619, 622, 614, - 626, 627, 623, 629, 628, 613, 630, 631, 620, 632, - 633, 621, 624, 634, 636, 641, 615, 638, 642, 644, - 645, 639, 625, 646, 640, 647, 648, 626, 627, 649, - 629, 628, 650, 630, 631, 651, 632, 633, 652, 653, - 634, 636, 641, 654, 638, 642, 644, 645, 639, 655, - 646, 640, 647, 648, 656, 657, 649, 659, 660, 650, - 661, 662, 651, 664, 665, 652, 653, 666, 667, 670, - 654, 668, 671, 672, 673, 674, 655, 675, 676, 677, - - 678, 656, 657, 679, 659, 660, 680, 661, 662, 669, - 664, 665, 681, 683, 666, 667, 670, 685, 668, 671, - 672, 673, 674, 686, 675, 676, 677, 678, 687, 688, - 679, 692, 694, 680, 696, 697, 699, 689, 701, 681, - 683, 702, 690, 703, 685, 704, 698, 705, 706, 707, - 686, 708, 709, 710, 711, 687, 688, 712, 692, 694, - 713, 696, 697, 699, 689, 701, 716, 717, 702, 690, - 703, 718, 704, 698, 705, 706, 707, 719, 708, 709, - 710, 711, 714, 720, 712, 721, 722, 713, 723, 715, - 724, 725, 726, 716, 717, 727, 728, 729, 718, 730, - - 731, 732, 733, 734, 719, 735, 737, 738, 739, 714, - 720, 740, 721, 722, 741, 723, 715, 724, 725, 726, - 742, 743, 727, 728, 729, 744, 730, 731, 732, 733, - 734, 745, 735, 737, 738, 739, 746, 747, 740, 748, - 750, 741, 751, 752, 753, 754, 755, 742, 743, 756, - 757, 758, 744, 759, 760, 761, 762, 763, 745, 764, - 765, 766, 767, 746, 747, 768, 748, 750, 769, 751, - 752, 753, 754, 755, 771, 777, 756, 757, 758, 779, - 759, 760, 761, 762, 763, 781, 764, 765, 766, 767, - 782, 783, 768, 772, 784, 769, 785, 773, 786, 774, - - 787, 771, 777, 775, 776, 788, 779, 789, 790, 791, - 792, 793, 781, 794, 795, 796, 797, 782, 783, 798, - 772, 784, 799, 785, 773, 786, 774, 787, 800, 802, - 775, 776, 788, 806, 789, 790, 791, 792, 793, 807, - 794, 795, 796, 797, 808, 809, 798, 811, 812, 799, - 814, 815, 816, 817, 818, 800, 802, 819, 813, 820, - 806, 821, 822, 823, 824, 825, 807, 826, 827, 828, - 829, 808, 809, 830, 811, 812, 831, 814, 815, 816, - 817, 818, 832, 833, 819, 813, 820, 834, 821, 822, - 823, 824, 825, 835, 826, 827, 828, 829, 836, 837, - - 830, 838, 839, 831, 840, 841, 842, 843, 844, 832, - 833, 845, 846, 847, 834, 848, 849, 850, 852, 853, - 835, 856, 857, 858, 859, 836, 837, 860, 838, 839, - 861, 840, 841, 842, 843, 844, 862, 863, 845, 846, - 847, 864, 848, 849, 850, 852, 853, 865, 856, 857, - 858, 859, 866, 867, 860, 868, 869, 861, 870, 871, - 872, 873, 874, 862, 863, 875, 876, 877, 864, 878, - 879, 880, 881, 882, 865, 883, 884, 885, 886, 866, - 867, 887, 868, 869, 888, 870, 871, 872, 873, 874, - 889, 890, 875, 876, 877, 896, 878, 879, 880, 881, - - 882, 897, 883, 884, 885, 886, 899, 901, 887, 902, - 907, 888, 908, 909, 910, 911, 912, 889, 890, 913, - 914, 915, 896, 918, 922, 916, 923, 919, 897, 924, - 925, 926, 920, 899, 901, 927, 902, 907, 917, 908, - 909, 910, 911, 912, 921, 928, 913, 914, 915, 929, - 918, 922, 916, 923, 919, 930, 924, 925, 926, 920, - 931, 932, 927, 933, 934, 917, 935, 936, 937, 938, - 939, 921, 928, 940, 941, 942, 929, 943, 944, 945, - 946, 947, 930, 948, 949, 950, 951, 931, 932, 952, - 933, 934, 953, 935, 936, 937, 938, 939, 954, 956, - - 940, 941, 942, 957, 943, 944, 945, 946, 947, 958, - 948, 949, 950, 951, 959, 960, 952, 961, 962, 953, - 963, 964, 966, 967, 968, 954, 956, 969, 970, 971, - 957, 965, 972, 973, 974, 975, 958, 976, 977, 978, - 980, 959, 960, 981, 961, 962, 982, 963, 964, 966, - 967, 968, 983, 985, 969, 970, 971, 986, 965, 972, - 973, 974, 975, 987, 976, 977, 978, 980, 988, 989, - 981, 990, 992, 982, 993, 994, 995, 996, 997, 983, - 985, 998, 999, 1000, 986, 1001, 1002, 1003, 1004, 1005, - 987, 1007, 1008, 1009, 1010, 988, 989, 1011, 990, 992, - - 1012, 993, 994, 995, 996, 997, 1013, 1018, 998, 999, - 1000, 1019, 1001, 1002, 1003, 1004, 1005, 1023, 1007, 1008, - 1009, 1010, 1024, 1025, 1011, 1026, 1027, 1012, 1028, 1029, - 1030, 1031, 1032, 1013, 1018, 1033, 1034, 1035, 1019, 1036, - 1037, 1038, 1039, 1041, 1023, 1042, 1043, 1044, 1045, 1024, - 1025, 1047, 1026, 1027, 1048, 1028, 1029, 1030, 1031, 1032, - 1049, 1051, 1033, 1034, 1035, 1052, 1036, 1037, 1038, 1039, - 1041, 1053, 1042, 1043, 1044, 1045, 1054, 1055, 1047, 1056, - 1058, 1048, 1059, 1063, 1060, 1064, 1066, 1049, 1051, 1067, - 1068, 1069, 1052, 1061, 1070, 1071, 1073, 1074, 1053, 1075, - - 1076, 1062, 1079, 1054, 1055, 1081, 1056, 1058, 1082, 1059, - 1063, 1060, 1064, 1066, 1083, 1084, 1067, 1068, 1069, 1085, - 1061, 1070, 1071, 1073, 1074, 1086, 1075, 1076, 1062, 1079, - 1087, 1088, 1081, 1089, 1090, 1082, 1091, 1092, 1093, 1094, - 1095, 1083, 1084, 1096, 1097, 1098, 1085, 1099, 1100, 1101, - 1102, 1103, 1086, 1104, 1105, 1106, 1107, 1087, 1088, 1108, - 1089, 1090, 1109, 1091, 1092, 1093, 1094, 1095, 1110, 1111, - 1096, 1097, 1098, 1112, 1099, 1100, 1101, 1102, 1103, 1113, - 1104, 1105, 1106, 1107, 1114, 1115, 1108, 1116, 1117, 1109, - 1118, 1119, 1120, 1121, 1122, 1110, 1111, 1123, 1124, 1125, - - 1112, 1126, 1127, 1128, 1129, 1130, 1113, 1131, 1132, 1133, - 1134, 1114, 1115, 1135, 1116, 1117, 1136, 1118, 1119, 1120, - 1121, 1122, 1137, 1138, 1123, 1124, 1125, 1139, 1126, 1127, - 1128, 1129, 1130, 1140, 1131, 1132, 1133, 1134, 1141, 1143, - 1135, 1144, 1147, 1136, 1148, 1149, 1150, 1151, 1152, 1137, - 1138, 1153, 1154, 1155, 1139, 1156, 1157, 1158, 1159, 1160, - 1140, 1161, 1162, 1164, 1166, 1141, 1143, 1167, 1144, 1147, - 1168, 1148, 1149, 1150, 1151, 1152, 1169, 1170, 1153, 1154, - 1155, 1171, 1156, 1157, 1158, 1159, 1160, 1172, 1161, 1162, - 1164, 1166, 1173, 1174, 1167, 1175, 1176, 1168, 1178, 1179, - - 1180, 1181, 1182, 1169, 1170, 1185, 1187, 1188, 1171, 1189, - 1190, 1191, 1192, 1193, 1172, 1194, 1195, 1196, 1197, 1173, - 1174, 1198, 1175, 1176, 1199, 1178, 1179, 1180, 1181, 1182, - 1200, 1201, 1185, 1187, 1188, 1202, 1189, 1190, 1191, 1192, - 1193, 1203, 1194, 1195, 1196, 1197, 1205, 1206, 1198, 1207, - 1208, 1199, 1209, 1210, 1211, 1212, 1214, 1200, 1201, 1215, - 1216, 1217, 1202, 1218, 1219, 1221, 1224, 1222, 1203, 1225, - 1226, 1229, 1227, 1205, 1206, 1223, 1207, 1208, 1230, 1209, - 1210, 1211, 1212, 1214, 1232, 1233, 1215, 1216, 1217, 1228, - 1218, 1219, 1221, 1224, 1222, 1234, 1225, 1226, 1229, 1227, - - 1235, 1236, 1237, 1238, 1239, 1230, 1240, 1241, 1242, 1243, - 1244, 1232, 1233, 1245, 1247, 1248, 1228, 1249, 1250, 1246, - 1251, 1252, 1234, 1254, 1255, 1256, 1257, 1235, 1236, 1237, - 1238, 1239, 1258, 1240, 1241, 1242, 1243, 1244, 1259, 1260, - 1245, 1247, 1248, 1261, 1249, 1250, 1246, 1251, 1252, 1262, - 1254, 1255, 1256, 1257, 1263, 1264, 1265, 1266, 1267, 1258, - 1268, 1269, 1270, 1271, 1272, 1259, 1260, 1273, 1274, 1275, - 1261, 1276, 1277, 1278, 1279, 1280, 1262, 1281, 1282, 1284, - 1285, 1263, 1264, 1265, 1266, 1267, 1286, 1268, 1269, 1270, - 1271, 1272, 1287, 1288, 1273, 1274, 1275, 1289, 1276, 1277, - - 1278, 1279, 1280, 1290, 1281, 1282, 1284, 1285, 1291, 1292, - 1293, 1294, 1297, 1286, 1298, 1299, 1300, 1301, 1302, 1287, - 1288, 1303, 1304, 1305, 1289, 1306, 1307, 1309, 1310, 1311, - 1290, 1312, 1314, 1315, 1316, 1291, 1292, 1293, 1294, 1297, - 1317, 1298, 1299, 1300, 1301, 1302, 1318, 1319, 1303, 1304, - 1305, 1320, 1306, 1307, 1309, 1310, 1311, 1321, 1312, 1314, - 1315, 1316, 1322, 1323, 1324, 1326, 1327, 1317, 1332, 1333, - 1335, 1336, 1337, 1318, 1319, 1338, 1339, 1340, 1320, 1341, - 1342, 1344, 1345, 1346, 1321, 1347, 1348, 1350, 1351, 1322, - 1323, 1324, 1326, 1327, 1352, 1332, 1333, 1335, 1336, 1337, - - 1353, 1354, 1338, 1339, 1340, 1355, 1341, 1342, 1344, 1345, - 1346, 1356, 1347, 1348, 1350, 1351, 1357, 1358, 1359, 1361, - 1362, 1352, 1363, 1364, 1365, 1366, 1367, 1353, 1354, 1368, - 1369, 1370, 1355, 1371, 1372, 1373, 1374, 1375, 1356, 1376, - 1377, 1378, 1379, 1357, 1358, 1359, 1361, 1362, 1380, 1363, - 1364, 1365, 1366, 1367, 1381, 1382, 1368, 1369, 1370, 1383, - 1371, 1372, 1373, 1374, 1375, 1384, 1376, 1377, 1378, 1379, - 1386, 1387, 1388, 1390, 1391, 1380, 1392, 1394, 1393, 1396, - 1398, 1381, 1382, 1399, 1401, 1402, 1383, 1403, 1404, 1405, - 1406, 1407, 1384, 1410, 1411, 1412, 1408, 1386, 1387, 1388, - - 1390, 1391, 1409, 1392, 1394, 1393, 1396, 1398, 1413, 1414, - 1399, 1401, 1402, 1415, 1403, 1404, 1405, 1406, 1407, 1416, - 1410, 1411, 1412, 1408, 1417, 1418, 1419, 1420, 1421, 1409, - 1423, 1424, 1425, 1426, 1427, 1413, 1414, 1428, 1429, 1430, - 1415, 1431, 1432, 1433, 1434, 1435, 1416, 1438, 1439, 1440, - 1441, 1417, 1418, 1419, 1420, 1421, 1442, 1423, 1424, 1425, - 1426, 1427, 1443, 1444, 1428, 1429, 1430, 1445, 1431, 1432, - 1433, 1434, 1435, 1446, 1438, 1439, 1440, 1441, 1447, 1448, - 1450, 1451, 1452, 1442, 1453, 1454, 1456, 1457, 1458, 1443, - 1444, 1459, 1460, 1461, 1445, 1463, 1465, 1466, 1467, 1468, - - 1446, 1469, 1470, 1471, 1472, 1447, 1448, 1450, 1451, 1452, - 1473, 1453, 1454, 1456, 1457, 1458, 1474, 1475, 1459, 1460, - 1461, 1476, 1463, 1465, 1466, 1467, 1468, 1477, 1469, 1470, - 1471, 1472, 1478, 1479, 1480, 1481, 1482, 1473, 1483, 1484, - 1485, 1486, 1487, 1474, 1475, 1488, 1489, 1490, 1476, 1491, - 1492, 1493, 1494, 1495, 1477, 1496, 1497, 1498, 1499, 1478, - 1479, 1480, 1481, 1482, 1500, 1483, 1484, 1485, 1486, 1487, - 1501, 1502, 1488, 1489, 1490, 1503, 1491, 1492, 1493, 1494, - 1495, 1504, 1496, 1497, 1498, 1499, 1505, 1506, 1507, 1508, - 1509, 1500, 1510, 1511, 1512, 1513, 1514, 1501, 1502, 1515, - - 1516, 1517, 1503, 1518, 1519, 1520, 1521, 1522, 1504, 1523, - 1524, 1525, 1526, 1505, 1506, 1507, 1508, 1509, 1527, 1510, - 1511, 1512, 1513, 1514, 1528, 1530, 1515, 1516, 1517, 1531, - 1518, 1519, 1520, 1521, 1522, 1532, 1523, 1524, 1525, 1526, - 1533, 1534, 1535, 1536, 1537, 1527, 1538, 1539, 1540, 1541, - 1542, 1528, 1530, 1543, 1544, 1545, 1531, 1546, 1547, 1548, - 1549, 1550, 1532, 1551, 1552, 1553, 1554, 1533, 1534, 1535, - 1536, 1537, 1555, 1538, 1539, 1540, 1541, 1542, 1556, 1557, - 1543, 1544, 1545, 1559, 1546, 1547, 1548, 1549, 1550, 1560, - 1551, 1552, 1553, 1554, 1561, 1562, 1563, 1564, 1565, 1555, - - 1566, 1567, 1568, 1569, 1570, 1556, 1557, 1571, 1572, 1574, - 1559, 1575, 1576, 1577, 1578, 1579, 1560, 1580, 1581, 1582, - 1583, 1561, 1562, 1563, 1564, 1565, 1584, 1566, 1567, 1568, - 1569, 1570, 1165, 1163, 1571, 1572, 1574, 1146, 1575, 1576, - 1577, 1578, 1579, 1145, 1580, 1581, 1582, 1583, 1142, 1017, - 1017, 1015, 1015, 1584, 39, 39, 1080, 1078, 1077, 1072, - 1065, 1057, 1050, 1046, 1040, 1022, 1021, 1020, 1017, 1015, - 1006, 991, 984, 979, 955, 903, 900, 898, 895, 894, - 893, 892, 891, 855, 854, 851, 810, 805, 804, 803, - 801, 780, 778, 770, 749, 736, 700, 695, 693, 691, - - 684, 682, 663, 658, 643, 637, 635, 617, 606, 572, - 570, 569, 554, 537, 523, 509, 508, 501, 488, 476, - 474, 464, 462, 440, 436, 434, 429, 411, 402, 395, - 355, 321, 305, 269, 241, 203, 37, 37, 1585, 3, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585 + 190, 185, 191, 194, 188, 196, 186, 192, 193, 197, + 199, 200, 203, 201, 205, 195, 206, 210, 211, 198, + 214, 1336, 1324, 189, 223, 1319, 187, 190, 202, 191, + 194, 188, 196, 207, 192, 232, 197, 199, 200, 203, + 201, 205, 195, 206, 210, 211, 198, 214, 212, 208, + 209, 223, 230, 228, 233, 202, 213, 910, 234, 911, + 207, 1306, 232, 1305, 1293, 236, 1263, 229, 235, 912, + 237, 238, 1240, 239, 231, 212, 208, 209, 1229, 230, + 228, 233, 240, 213, 215, 234, 216, 217, 224, 241, + 218, 219, 236, 220, 229, 235, 221, 237, 238, 225, + + 239, 231, 222, 226, 243, 227, 244, 1222, 251, 240, + 1213, 215, 252, 216, 217, 224, 241, 218, 219, 253, + 220, 257, 258, 221, 1195, 254, 225, 260, 261, 222, + 226, 243, 227, 244, 245, 251, 262, 246, 255, 252, + 259, 256, 263, 264, 247, 248, 253, 267, 257, 258, + 268, 249, 254, 265, 260, 261, 269, 250, 271, 272, + 266, 245, 273, 262, 246, 255, 274, 259, 256, 263, + 264, 247, 248, 275, 267, 276, 277, 268, 249, 278, + 265, 279, 280, 269, 250, 271, 272, 266, 281, 273, + 282, 283, 284, 274, 285, 286, 287, 288, 289, 290, + + 275, 291, 276, 277, 292, 293, 278, 294, 279, 280, + 296, 297, 298, 299, 300, 281, 301, 282, 283, 284, + 295, 285, 286, 287, 288, 289, 290, 304, 291, 302, + 303, 292, 293, 305, 294, 307, 308, 296, 297, 298, + 299, 300, 311, 301, 312, 313, 315, 295, 314, 316, + 317, 318, 319, 320, 304, 321, 302, 303, 323, 324, + 305, 325, 307, 308, 326, 328, 329, 330, 331, 311, + 327, 312, 313, 315, 332, 314, 316, 317, 318, 319, + 320, 333, 321, 334, 339, 323, 324, 340, 325, 341, + 335, 326, 328, 329, 330, 331, 342, 336, 343, 344, + + 345, 332, 337, 346, 347, 348, 349, 338, 333, 350, + 334, 339, 351, 352, 340, 353, 341, 335, 354, 355, + 358, 356, 359, 342, 336, 343, 344, 345, 360, 337, + 346, 347, 348, 349, 338, 361, 350, 362, 363, 351, + 352, 364, 353, 365, 366, 354, 355, 358, 356, 359, + 369, 367, 370, 371, 372, 360, 368, 373, 376, 374, + 377, 378, 361, 379, 362, 363, 380, 381, 364, 375, + 365, 366, 382, 383, 384, 386, 387, 369, 367, 370, + 371, 372, 388, 385, 373, 376, 374, 377, 378, 389, + 379, 390, 391, 380, 381, 392, 375, 393, 394, 382, + + 383, 384, 386, 387, 395, 396, 398, 399, 400, 388, + 401, 402, 403, 405, 406, 407, 389, 408, 390, 391, + 409, 410, 392, 411, 393, 394, 412, 414, 415, 416, + 417, 395, 396, 398, 399, 400, 418, 401, 402, 403, + 405, 406, 407, 419, 408, 420, 421, 409, 410, 422, + 411, 423, 424, 412, 414, 415, 416, 417, 425, 430, + 426, 432, 428, 418, 433, 434, 435, 437, 439, 440, + 419, 441, 420, 421, 427, 429, 422, 443, 423, 424, + 444, 445, 446, 1193, 1192, 425, 430, 426, 432, 428, + 456, 433, 434, 435, 437, 439, 440, 457, 441, 458, + + 459, 427, 1186, 462, 443, 1174, 463, 444, 445, 446, + 447, 448, 449, 464, 460, 466, 450, 456, 451, 461, + 468, 452, 469, 453, 457, 470, 458, 459, 471, 454, + 462, 472, 455, 463, 1172, 473, 478, 447, 448, 449, + 464, 460, 466, 450, 480, 451, 461, 468, 452, 469, + 453, 481, 470, 474, 482, 471, 454, 475, 472, 455, + 483, 476, 473, 478, 484, 485, 486, 487, 488, 489, + 492, 480, 493, 494, 499, 1154, 500, 501, 481, 502, + 474, 482, 503, 495, 475, 508, 490, 483, 509, 505, + 506, 484, 485, 486, 487, 488, 489, 492, 496, 493, + + 494, 499, 497, 500, 501, 507, 502, 498, 510, 503, + 513, 514, 508, 490, 515, 509, 505, 506, 516, 517, + 518, 519, 520, 521, 522, 496, 524, 525, 527, 497, + 528, 523, 507, 529, 498, 510, 530, 513, 514, 531, + 532, 515, 533, 534, 537, 516, 517, 518, 519, 520, + 521, 522, 538, 524, 525, 527, 535, 528, 523, 539, + 529, 536, 541, 530, 542, 543, 531, 532, 544, 533, + 534, 537, 545, 546, 547, 548, 549, 550, 551, 538, + 552, 553, 554, 535, 555, 556, 539, 558, 536, 541, + 559, 542, 543, 560, 561, 544, 562, 565, 566, 545, + + 546, 547, 548, 549, 550, 551, 563, 552, 553, 554, + 567, 555, 556, 568, 558, 569, 564, 559, 570, 571, + 560, 561, 574, 562, 565, 566, 576, 577, 578, 579, + 580, 581, 583, 563, 584, 582, 585, 567, 586, 1153, + 568, 590, 569, 564, 591, 570, 571, 592, 593, 574, + 587, 594, 588, 576, 577, 578, 579, 580, 581, 583, + 595, 584, 582, 585, 596, 586, 589, 597, 590, 598, + 599, 591, 602, 600, 592, 593, 603, 587, 594, 588, + 601, 604, 605, 606, 607, 608, 609, 595, 611, 612, + 613, 596, 615, 589, 597, 614, 598, 599, 1150, 602, + + 600, 618, 620, 603, 622, 623, 626, 601, 604, 605, + 606, 607, 608, 609, 616, 611, 612, 613, 619, 615, + 624, 627, 614, 625, 628, 617, 629, 630, 618, 620, + 633, 622, 623, 626, 631, 634, 635, 632, 636, 637, + 638, 616, 640, 645, 646, 619, 648, 624, 627, 649, + 625, 628, 617, 629, 630, 650, 651, 633, 652, 653, + 654, 631, 634, 635, 632, 636, 637, 638, 642, 640, + 645, 646, 643, 648, 655, 644, 649, 656, 657, 658, + 659, 660, 650, 651, 661, 652, 653, 654, 663, 664, + 665, 666, 668, 669, 670, 642, 671, 674, 675, 643, + + 1024, 655, 644, 676, 656, 657, 658, 659, 660, 672, + 677, 661, 678, 679, 680, 663, 664, 665, 666, 668, + 669, 670, 681, 671, 674, 675, 682, 673, 683, 684, + 676, 685, 687, 689, 690, 696, 672, 677, 698, 678, + 679, 680, 700, 691, 692, 703, 705, 1024, 706, 681, + 707, 708, 693, 682, 709, 683, 684, 694, 685, 687, + 689, 690, 696, 701, 710, 698, 711, 712, 713, 700, + 691, 692, 703, 705, 702, 706, 714, 707, 708, 693, + 715, 709, 716, 717, 694, 718, 720, 721, 722, 723, + 701, 710, 719, 711, 712, 713, 724, 725, 726, 727, + + 728, 702, 729, 714, 730, 731, 732, 715, 733, 716, + 717, 734, 718, 720, 721, 722, 723, 735, 736, 719, + 737, 738, 739, 724, 725, 726, 727, 728, 740, 729, + 742, 730, 731, 732, 743, 733, 744, 745, 734, 746, + 747, 748, 749, 750, 735, 736, 751, 737, 738, 739, + 752, 753, 755, 756, 757, 740, 758, 742, 759, 760, + 761, 743, 762, 744, 745, 763, 746, 747, 748, 749, + 750, 764, 767, 751, 765, 766, 768, 752, 753, 755, + 756, 757, 769, 758, 770, 759, 760, 761, 771, 762, + 772, 773, 763, 774, 776, 782, 1022, 784, 764, 767, + + 786, 765, 766, 768, 787, 788, 789, 790, 791, 769, + 792, 770, 793, 794, 795, 771, 796, 772, 773, 777, + 774, 776, 782, 778, 784, 779, 797, 786, 798, 780, + 781, 787, 788, 789, 790, 791, 799, 792, 800, 793, + 794, 795, 801, 796, 802, 803, 777, 804, 805, 807, + 778, 811, 779, 797, 812, 798, 780, 781, 813, 814, + 816, 819, 820, 799, 821, 800, 822, 817, 823, 801, + 824, 802, 803, 825, 804, 805, 807, 818, 811, 826, + 827, 812, 828, 829, 830, 813, 814, 816, 819, 820, + 831, 821, 832, 822, 817, 823, 833, 824, 834, 835, + + 825, 836, 837, 838, 818, 839, 826, 827, 840, 828, + 829, 830, 841, 842, 843, 844, 845, 831, 846, 832, + 847, 848, 849, 833, 850, 834, 835, 851, 836, 837, + 838, 853, 839, 854, 855, 840, 856, 858, 859, 841, + 842, 843, 844, 845, 862, 846, 863, 847, 848, 849, + 864, 850, 865, 866, 851, 867, 868, 869, 853, 870, + 854, 855, 871, 856, 858, 859, 872, 873, 874, 875, + 876, 862, 877, 863, 878, 879, 880, 864, 881, 865, + 866, 882, 867, 868, 869, 883, 870, 884, 885, 871, + 886, 887, 888, 872, 873, 874, 875, 876, 889, 877, + + 890, 878, 879, 880, 891, 881, 892, 893, 882, 894, + 895, 896, 883, 902, 884, 885, 903, 886, 887, 888, + 905, 907, 908, 913, 914, 889, 915, 890, 916, 917, + 918, 891, 919, 892, 893, 920, 894, 895, 896, 921, + 902, 922, 924, 903, 928, 929, 930, 905, 907, 908, + 913, 914, 931, 915, 923, 916, 917, 918, 925, 919, + 932, 933, 920, 926, 934, 935, 921, 936, 922, 924, + 937, 928, 929, 930, 938, 927, 939, 940, 941, 931, + 942, 923, 943, 944, 945, 925, 946, 932, 933, 947, + 926, 934, 935, 948, 936, 949, 950, 937, 951, 952, + + 953, 938, 927, 939, 940, 941, 954, 942, 955, 943, + 944, 945, 956, 946, 957, 958, 947, 959, 960, 962, + 948, 963, 949, 950, 964, 951, 952, 953, 965, 966, + 967, 968, 969, 954, 970, 955, 973, 971, 974, 956, + 975, 957, 958, 976, 959, 960, 962, 972, 963, 977, + 978, 964, 979, 980, 981, 965, 966, 967, 968, 969, + 982, 970, 983, 973, 971, 974, 984, 975, 985, 987, + 976, 988, 989, 990, 972, 992, 977, 978, 993, 979, + 980, 981, 994, 995, 996, 997, 999, 982, 1000, 983, + 1001, 1002, 1003, 984, 1004, 985, 987, 1005, 988, 989, + + 990, 1006, 992, 1007, 1008, 993, 1009, 1010, 1011, 994, + 995, 996, 997, 999, 1012, 1000, 1014, 1001, 1002, 1003, + 1015, 1004, 1016, 1017, 1005, 1018, 1019, 1020, 1006, 1025, + 1007, 1008, 1026, 1009, 1010, 1011, 1030, 1031, 1032, 1033, + 1034, 1012, 1035, 1014, 1036, 1037, 1038, 1015, 1039, 1016, + 1017, 1040, 1018, 1019, 1020, 1041, 1025, 1042, 1043, 1026, + 1044, 1045, 1046, 1030, 1031, 1032, 1033, 1034, 1048, 1035, + 1049, 1036, 1037, 1038, 1050, 1039, 1051, 1052, 1040, 1054, + 1055, 1056, 1041, 1058, 1042, 1043, 1059, 1044, 1045, 1046, + 1060, 1061, 1062, 1063, 1065, 1048, 1066, 1049, 1070, 1071, + + 1073, 1050, 1074, 1051, 1052, 1067, 1054, 1055, 1056, 1075, + 1058, 1076, 1077, 1059, 1068, 1078, 1079, 1060, 1061, 1062, + 1063, 1065, 1069, 1066, 1081, 1070, 1071, 1073, 1082, 1074, + 1083, 1084, 1067, 1087, 1089, 1090, 1075, 1091, 1076, 1077, + 1092, 1068, 1078, 1079, 1093, 1094, 1095, 1096, 1097, 1069, + 1098, 1081, 1099, 1100, 1101, 1082, 1102, 1083, 1084, 1103, + 1087, 1089, 1090, 1104, 1091, 1105, 1106, 1092, 1107, 1108, + 1109, 1093, 1094, 1095, 1096, 1097, 1110, 1098, 1111, 1099, + 1100, 1101, 1112, 1102, 1113, 1114, 1103, 1115, 1116, 1117, + 1104, 1118, 1105, 1106, 1119, 1107, 1108, 1109, 1120, 1121, + + 1122, 1123, 1124, 1110, 1125, 1111, 1126, 1127, 1128, 1112, + 1129, 1113, 1114, 1130, 1115, 1116, 1117, 1131, 1118, 1132, + 1133, 1119, 1134, 1135, 1136, 1120, 1121, 1122, 1123, 1124, + 1137, 1125, 1138, 1126, 1127, 1128, 1139, 1129, 1140, 1141, + 1130, 1142, 1143, 1144, 1131, 1145, 1132, 1133, 1146, 1134, + 1135, 1136, 1147, 1148, 1149, 1151, 1152, 1137, 1155, 1138, + 1156, 1157, 1158, 1139, 1159, 1140, 1141, 1160, 1142, 1143, + 1144, 1161, 1145, 1162, 1163, 1146, 1164, 1165, 1166, 1147, + 1148, 1149, 1151, 1152, 1167, 1155, 1168, 1156, 1157, 1158, + 1169, 1159, 1170, 1171, 1160, 1173, 1175, 1176, 1161, 1177, + + 1162, 1163, 1178, 1164, 1165, 1166, 1179, 1180, 1181, 1182, + 1183, 1167, 1184, 1168, 1185, 1187, 1188, 1169, 1189, 1170, + 1171, 1190, 1173, 1175, 1176, 1191, 1177, 1194, 1196, 1178, + 1197, 1198, 1199, 1179, 1180, 1181, 1182, 1183, 1200, 1184, + 1201, 1185, 1187, 1188, 1202, 1189, 1203, 1204, 1190, 1205, + 1206, 1207, 1191, 1208, 1194, 1196, 1209, 1197, 1198, 1199, + 1210, 1211, 1212, 1214, 1215, 1200, 1216, 1201, 1217, 1218, + 1219, 1202, 1220, 1203, 1204, 1221, 1205, 1206, 1207, 1223, + 1208, 1224, 1225, 1209, 1226, 1227, 1228, 1210, 1211, 1212, + 1214, 1215, 1230, 1216, 1233, 1217, 1218, 1219, 1234, 1220, + + 1235, 1236, 1221, 1238, 1239, 1241, 1223, 1231, 1224, 1225, + 1242, 1226, 1227, 1228, 1243, 1232, 1244, 1245, 1237, 1230, + 1246, 1233, 1247, 1248, 1249, 1234, 1250, 1235, 1236, 1251, + 1238, 1239, 1241, 1252, 1231, 1253, 1254, 1242, 1257, 1258, + 1255, 1243, 1259, 1244, 1245, 1237, 1256, 1246, 1260, 1247, + 1248, 1249, 1261, 1250, 1262, 1264, 1251, 1265, 1266, 1267, + 1252, 1268, 1253, 1254, 1269, 1257, 1258, 1255, 1270, 1259, + 1271, 1272, 1273, 1256, 1274, 1260, 1275, 1276, 1277, 1261, + 1278, 1262, 1264, 1279, 1265, 1266, 1267, 1280, 1268, 1281, + 1282, 1269, 1283, 1284, 1285, 1270, 1286, 1271, 1272, 1273, + + 1287, 1274, 1288, 1275, 1276, 1277, 1289, 1278, 1290, 1291, + 1279, 1292, 1294, 1295, 1280, 1296, 1281, 1282, 1297, 1283, + 1284, 1285, 1298, 1286, 1299, 1300, 1301, 1287, 1302, 1288, + 1303, 1304, 1307, 1289, 1308, 1290, 1291, 1309, 1292, 1294, + 1295, 1310, 1296, 1311, 1312, 1297, 1313, 1314, 1315, 1298, + 1316, 1299, 1300, 1301, 1317, 1302, 1318, 1303, 1304, 1307, + 1320, 1308, 1321, 1322, 1309, 1323, 1325, 1326, 1310, 1327, + 1311, 1312, 1328, 1313, 1314, 1315, 1329, 1316, 1330, 1331, + 1332, 1317, 1333, 1318, 1334, 1335, 1337, 1320, 1338, 1321, + 1322, 1343, 1323, 1325, 1326, 1344, 1327, 1346, 1347, 1328, + + 1348, 1349, 1350, 1329, 1351, 1330, 1331, 1332, 1352, 1333, + 1353, 1334, 1335, 1337, 1355, 1338, 1356, 1357, 1343, 1358, + 1359, 1361, 1344, 1362, 1346, 1347, 1363, 1348, 1349, 1350, + 1364, 1351, 1365, 1366, 1367, 1352, 1368, 1353, 1369, 1370, + 1372, 1355, 1373, 1356, 1357, 1374, 1358, 1359, 1361, 1375, + 1362, 1376, 1377, 1363, 1378, 1379, 1380, 1364, 1381, 1365, + 1366, 1367, 1382, 1368, 1383, 1369, 1370, 1372, 1384, 1373, + 1385, 1386, 1374, 1387, 1388, 1389, 1375, 1390, 1376, 1377, + 1391, 1378, 1379, 1380, 1392, 1381, 1393, 1394, 1395, 1382, + 1396, 1383, 1398, 1399, 1400, 1384, 1402, 1385, 1386, 1403, + + 1387, 1388, 1389, 1404, 1390, 1405, 1406, 1391, 1408, 1410, + 1411, 1392, 1413, 1393, 1394, 1395, 1414, 1396, 1415, 1398, + 1399, 1400, 1416, 1402, 1417, 1418, 1403, 1419, 1420, 1422, + 1404, 1423, 1405, 1406, 1421, 1408, 1410, 1411, 1424, 1413, + 1425, 1426, 1427, 1414, 1428, 1415, 1429, 1430, 1431, 1416, + 1432, 1417, 1418, 1433, 1419, 1420, 1422, 1435, 1423, 1436, + 1437, 1421, 1438, 1439, 1440, 1424, 1441, 1425, 1426, 1427, + 1442, 1428, 1443, 1429, 1430, 1431, 1444, 1432, 1445, 1446, + 1433, 1447, 1450, 1451, 1435, 1452, 1436, 1437, 1453, 1438, + 1439, 1440, 1454, 1441, 1455, 1456, 1457, 1442, 1458, 1443, + + 1459, 1460, 1462, 1444, 1463, 1445, 1446, 1464, 1447, 1450, + 1451, 1465, 1452, 1466, 1468, 1453, 1469, 1470, 1471, 1454, + 1472, 1455, 1456, 1457, 1473, 1458, 1475, 1459, 1460, 1462, + 1477, 1463, 1478, 1479, 1464, 1480, 1481, 1482, 1465, 1483, + 1466, 1468, 1484, 1469, 1470, 1471, 1485, 1472, 1486, 1487, + 1488, 1473, 1489, 1475, 1490, 1491, 1492, 1477, 1493, 1478, + 1479, 1494, 1480, 1481, 1482, 1495, 1483, 1496, 1497, 1484, + 1498, 1499, 1500, 1485, 1501, 1486, 1487, 1488, 1502, 1489, + 1503, 1490, 1491, 1492, 1504, 1493, 1505, 1506, 1494, 1507, + 1508, 1509, 1495, 1510, 1496, 1497, 1511, 1498, 1499, 1500, + + 1512, 1501, 1513, 1514, 1515, 1502, 1516, 1503, 1517, 1518, + 1519, 1504, 1520, 1505, 1506, 1521, 1507, 1508, 1509, 1522, + 1510, 1523, 1524, 1511, 1525, 1526, 1527, 1512, 1528, 1513, + 1514, 1515, 1529, 1516, 1530, 1517, 1518, 1519, 1531, 1520, + 1532, 1533, 1521, 1534, 1535, 1536, 1522, 1537, 1523, 1524, + 1538, 1525, 1526, 1527, 1539, 1528, 1540, 1542, 1543, 1529, + 1544, 1530, 1545, 1546, 1547, 1531, 1548, 1532, 1533, 1549, + 1534, 1535, 1536, 1550, 1537, 1551, 1552, 1538, 1553, 1554, + 1555, 1539, 1556, 1540, 1542, 1543, 1557, 1544, 1558, 1545, + 1546, 1547, 1559, 1548, 1560, 1561, 1549, 1562, 1563, 1564, + + 1550, 1565, 1551, 1552, 1566, 1553, 1554, 1555, 1567, 1556, + 1568, 1569, 1571, 1557, 1572, 1558, 1573, 1574, 1575, 1559, + 1576, 1560, 1561, 1577, 1562, 1563, 1564, 1578, 1565, 1579, + 1580, 1566, 1581, 1582, 1583, 1567, 1584, 1568, 1569, 1571, + 1586, 1572, 1587, 1573, 1574, 1575, 1588, 1576, 1589, 1590, + 1577, 1591, 1592, 1593, 1578, 1594, 1579, 1580, 1595, 1581, + 1582, 1583, 1596, 1584, 1022, 1088, 1086, 1586, 1085, 1587, + 1080, 1072, 1064, 1588, 1057, 1589, 1590, 1053, 1591, 1592, + 1593, 1047, 1594, 1029, 1028, 1595, 1027, 1024, 1022, 1596, + 39, 39, 1013, 998, 991, 986, 961, 909, 906, 904, + + 901, 900, 899, 898, 897, 861, 860, 857, 852, 815, + 810, 809, 808, 806, 785, 783, 775, 754, 741, 704, + 699, 697, 695, 688, 686, 667, 662, 647, 641, 639, + 621, 610, 575, 573, 572, 557, 540, 526, 512, 511, + 504, 491, 479, 477, 467, 465, 442, 438, 436, 431, + 413, 404, 397, 357, 322, 306, 270, 242, 204, 37, + 37, 1597, 3, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597 } ; -static yyconst flex_int16_t yy_chk[3109] = +static yyconst flex_int16_t yy_chk[3132] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1306,340 +1317,343 @@ static yyconst flex_int16_t yy_chk[3109] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 9, 10, 13, 10, 11, 11, 11, 11, 11, 16, - 21, 1590, 13, 26, 1589, 16, 16, 9, 39, 39, - 15, 789, 28, 789, 15, 18, 16, 1588, 15, 13, + 21, 1602, 13, 26, 1601, 16, 16, 9, 39, 39, + 15, 794, 28, 794, 15, 18, 16, 1600, 15, 13, - 17, 15, 18, 789, 15, 1586, 16, 21, 17, 13, + 17, 15, 18, 794, 15, 1598, 16, 21, 17, 13, 26, 17, 16, 16, 9, 12, 12, 15, 12, 28, 17, 15, 18, 16, 12, 15, 12, 17, 15, 18, - 20, 15, 19, 12, 1567, 17, 1544, 20, 17, 20, - 19, 1508, 12, 12, 33, 12, 19, 17, 180, 180, - 1423, 12, 19, 12, 35, 1390, 1390, 20, 29, 19, - 12, 14, 29, 14, 20, 1421, 20, 19, 14, 14, + 20, 15, 19, 12, 1579, 17, 1556, 20, 17, 20, + 19, 1520, 12, 12, 33, 12, 19, 17, 180, 180, + 1435, 12, 19, 12, 35, 1402, 1402, 20, 29, 19, + 12, 14, 29, 14, 20, 1433, 20, 19, 14, 14, 22, 33, 14, 19, 23, 14, 29, 22, 23, 19, - 22, 35, 22, 34, 23, 29, 1413, 34, 14, 29, - 14, 1406, 27, 1374, 36, 14, 14, 22, 43, 14, + 22, 35, 22, 34, 23, 29, 1425, 34, 14, 29, + 14, 1418, 27, 1386, 36, 14, 14, 22, 43, 14, 27, 23, 14, 29, 22, 23, 27, 22, 47, 22, 34, 23, 24, 24, 34, 48, 24, 32, 32, 27, 24, 36, 49, 32, 50, 43, 24, 27, 46, 46, 46, 46, 46, 27, 51, 47, 52, 53, 54, 24, - 24, 1351, 48, 24, 32, 32, 55, 24, 55, 49, + 24, 1362, 48, 24, 32, 32, 55, 24, 55, 49, 32, 50, 56, 24, 25, 57, 25, 58, 25, 60, - 59, 51, 25, 52, 53, 54, 61, 64, 25, 1348, - 1345, 65, 66, 55, 25, 55, 67, 1339, 1333, 56, + 59, 51, 25, 52, 53, 54, 61, 64, 25, 1359, + 1356, 65, 66, 55, 25, 55, 67, 1350, 1344, 56, 59, 25, 57, 25, 58, 25, 60, 59, 68, 25, - 1301, 62, 62, 61, 64, 25, 62, 63, 65, 66, + 1311, 62, 62, 61, 64, 25, 62, 63, 65, 66, - 1290, 25, 30, 67, 62, 30, 30, 59, 30, 62, + 1300, 25, 30, 67, 62, 30, 30, 59, 30, 62, 70, 63, 30, 30, 71, 68, 30, 30, 62, 62, - 72, 1282, 1271, 62, 63, 69, 73, 69, 1268, 30, - 1267, 62, 30, 30, 76, 30, 62, 70, 63, 30, + 72, 1292, 1281, 62, 63, 69, 73, 69, 1278, 30, + 1277, 62, 30, 30, 76, 30, 62, 70, 63, 30, 30, 71, 69, 30, 30, 31, 74, 72, 31, 31, 77, 79, 69, 73, 69, 31, 31, 74, 75, 80, 81, 76, 31, 78, 75, 78, 82, 83, 84, 69, 85, 86, 31, 74, 87, 31, 31, 77, 79, 88, - 1266, 92, 31, 31, 74, 75, 80, 81, 93, 31, + 1276, 92, 31, 31, 74, 75, 80, 81, 1275, 31, 78, 75, 78, 82, 83, 84, 90, 85, 86, 89, - 90, 87, 91, 94, 89, 96, 88, 91, 92, 95, - 97, 99, 101, 98, 102, 93, 104, 105, 1265, 95, - 107, 109, 1262, 90, 1247, 1242, 89, 90, 98, 91, - 94, 89, 96, 103, 91, 113, 95, 97, 99, 101, - 98, 102, 1226, 104, 105, 106, 95, 107, 109, 103, - 103, 111, 112, 106, 904, 98, 904, 1225, 110, 114, - 103, 1208, 113, 1176, 116, 111, 904, 1148, 117, 110, - 118, 119, 106, 110, 112, 110, 103, 103, 111, 112, - 106, 108, 120, 108, 108, 110, 114, 108, 108, 121, - 108, 116, 111, 108, 115, 117, 110, 118, 119, 108, - - 110, 112, 110, 123, 115, 124, 1138, 126, 108, 120, - 108, 108, 127, 128, 108, 108, 121, 108, 130, 128, - 108, 115, 129, 1130, 131, 129, 108, 132, 133, 1119, - 123, 115, 124, 125, 126, 134, 125, 135, 137, 127, - 128, 138, 131, 125, 125, 130, 128, 139, 138, 129, - 125, 131, 129, 140, 132, 133, 125, 141, 143, 144, - 125, 145, 134, 125, 135, 137, 146, 147, 138, 131, - 125, 125, 148, 149, 139, 138, 150, 125, 151, 152, - 140, 153, 154, 125, 141, 143, 144, 156, 145, 157, - 158, 159, 160, 146, 147, 161, 162, 163, 164, 148, - - 149, 165, 166, 150, 168, 151, 152, 167, 153, 154, - 169, 170, 171, 172, 156, 173, 157, 158, 159, 160, - 167, 175, 161, 162, 163, 164, 174, 174, 165, 166, - 176, 168, 178, 179, 167, 181, 182, 169, 170, 171, - 172, 183, 173, 184, 183, 185, 186, 167, 175, 187, - 188, 189, 191, 174, 174, 193, 194, 176, 195, 178, - 179, 196, 181, 182, 195, 197, 198, 199, 183, 200, - 184, 183, 185, 186, 201, 202, 187, 188, 189, 191, - 204, 1101, 193, 194, 205, 195, 206, 207, 196, 208, - 209, 203, 197, 198, 199, 210, 200, 211, 203, 212, - - 213, 201, 202, 203, 214, 215, 216, 204, 203, 217, - 218, 205, 220, 206, 207, 223, 208, 209, 203, 221, - 224, 221, 210, 225, 211, 203, 212, 213, 227, 228, - 203, 214, 215, 216, 230, 203, 217, 218, 231, 220, - 232, 233, 223, 236, 235, 237, 221, 224, 221, 235, - 225, 238, 239, 240, 241, 227, 228, 242, 243, 244, - 245, 230, 246, 247, 241, 231, 248, 232, 233, 249, - 236, 235, 237, 250, 251, 252, 253, 254, 238, 239, - 240, 241, 250, 255, 242, 243, 244, 245, 256, 246, - 247, 241, 257, 248, 259, 260, 249, 261, 262, 265, - - 250, 251, 252, 253, 254, 267, 268, 269, 270, 271, - 255, 273, 274, 275, 278, 256, 279, 281, 282, 257, - 283, 259, 260, 285, 261, 262, 265, 286, 287, 288, - 289, 290, 267, 268, 269, 270, 271, 291, 273, 274, - 275, 278, 293, 279, 281, 282, 294, 283, 296, 297, - 285, 298, 299, 301, 286, 287, 288, 289, 290, 300, - 304, 305, 306, 307, 291, 311, 299, 313, 314, 293, - 315, 317, 300, 294, 318, 296, 297, 319, 298, 299, - 301, 320, 1099, 1098, 1088, 322, 300, 304, 305, 306, - 307, 323, 311, 299, 313, 314, 324, 315, 317, 326, - - 325, 318, 327, 329, 319, 325, 331, 333, 320, 321, - 321, 321, 322, 334, 335, 321, 336, 321, 323, 337, - 321, 340, 321, 324, 344, 345, 326, 325, 321, 327, - 329, 321, 325, 331, 333, 338, 321, 321, 321, 346, - 334, 335, 321, 336, 321, 347, 337, 321, 340, 321, - 348, 344, 345, 338, 349, 321, 350, 338, 321, 351, - 352, 338, 338, 355, 356, 353, 346, 358, 357, 359, - 360, 358, 347, 362, 363, 364, 358, 348, 357, 367, - 338, 349, 353, 350, 338, 368, 351, 352, 366, 366, - 355, 356, 353, 369, 358, 357, 359, 360, 358, 372, - - 362, 363, 364, 358, 366, 373, 367, 375, 376, 353, - 377, 378, 368, 379, 380, 366, 366, 381, 383, 384, - 369, 385, 387, 388, 389, 383, 372, 390, 391, 392, - 393, 366, 373, 394, 375, 376, 396, 377, 378, 398, - 379, 380, 395, 399, 381, 383, 384, 395, 385, 387, - 388, 389, 383, 401, 390, 391, 392, 393, 402, 404, - 394, 405, 407, 396, 408, 409, 398, 411, 412, 395, - 399, 414, 415, 416, 395, 417, 418, 420, 422, 424, - 401, 425, 426, 427, 428, 402, 404, 429, 405, 407, - 431, 408, 409, 432, 411, 412, 433, 429, 414, 415, - - 416, 434, 417, 418, 420, 422, 424, 435, 425, 426, - 427, 428, 436, 437, 429, 440, 442, 431, 443, 444, - 432, 445, 446, 433, 429, 447, 448, 449, 434, 447, - 450, 453, 451, 452, 435, 454, 455, 456, 457, 436, - 437, 458, 440, 442, 451, 443, 444, 452, 445, 446, - 459, 460, 447, 448, 449, 461, 447, 450, 453, 451, - 452, 463, 454, 455, 456, 457, 462, 464, 458, 465, - 466, 451, 467, 462, 452, 468, 469, 459, 460, 470, - 472, 474, 461, 473, 473, 477, 479, 475, 463, 473, - 480, 484, 476, 462, 464, 485, 465, 466, 475, 467, - - 462, 482, 468, 469, 482, 486, 470, 472, 474, 476, - 473, 473, 477, 479, 475, 487, 473, 480, 484, 476, - 488, 489, 485, 490, 489, 475, 492, 493, 482, 494, - 495, 482, 486, 496, 499, 503, 476, 502, 504, 506, - 507, 502, 487, 509, 502, 510, 511, 488, 489, 512, - 490, 489, 513, 492, 493, 514, 494, 495, 515, 516, - 496, 499, 503, 517, 502, 504, 506, 507, 502, 518, - 509, 502, 510, 511, 519, 520, 512, 522, 523, 513, - 524, 528, 514, 530, 532, 515, 516, 533, 534, 536, - 517, 535, 537, 538, 539, 540, 518, 541, 542, 543, - - 544, 519, 520, 545, 522, 523, 546, 524, 528, 535, - 530, 532, 547, 550, 533, 534, 536, 552, 535, 537, - 538, 539, 540, 553, 541, 542, 543, 544, 554, 554, - 545, 556, 558, 546, 560, 561, 562, 554, 564, 547, - 550, 565, 554, 567, 552, 568, 561, 569, 570, 571, - 553, 572, 576, 577, 578, 554, 554, 579, 556, 558, - 580, 560, 561, 562, 554, 564, 582, 583, 565, 554, - 567, 584, 568, 561, 569, 570, 571, 585, 572, 576, - 577, 578, 581, 586, 579, 587, 589, 580, 590, 581, - 591, 592, 593, 582, 583, 595, 596, 597, 584, 598, - - 599, 600, 601, 602, 585, 603, 605, 606, 607, 581, - 586, 608, 587, 589, 609, 590, 581, 591, 592, 593, - 610, 611, 595, 596, 597, 613, 598, 599, 600, 601, - 602, 614, 603, 605, 606, 607, 615, 616, 608, 617, - 620, 609, 621, 623, 624, 625, 626, 610, 611, 627, - 628, 629, 613, 630, 631, 631, 632, 633, 614, 635, - 636, 637, 638, 615, 616, 639, 617, 620, 640, 621, - 623, 624, 625, 626, 642, 644, 627, 628, 629, 646, - 630, 631, 631, 632, 633, 648, 635, 636, 637, 638, - 651, 652, 639, 643, 653, 640, 655, 643, 656, 643, - - 657, 642, 644, 643, 643, 660, 646, 662, 663, 664, - 665, 666, 648, 667, 668, 669, 670, 651, 652, 671, - 643, 653, 673, 655, 643, 656, 643, 657, 675, 677, - 643, 643, 660, 681, 662, 663, 664, 665, 666, 682, - 667, 668, 669, 670, 683, 684, 671, 687, 688, 673, - 689, 690, 691, 693, 694, 675, 677, 695, 688, 696, - 681, 697, 698, 699, 700, 701, 682, 702, 703, 704, - 705, 683, 684, 706, 687, 688, 707, 689, 690, 691, - 693, 694, 708, 709, 695, 688, 696, 710, 697, 698, - 699, 700, 701, 711, 702, 703, 704, 705, 712, 713, - - 706, 714, 715, 707, 716, 717, 718, 719, 720, 708, - 709, 721, 722, 724, 710, 725, 728, 729, 731, 732, - 711, 735, 736, 737, 738, 712, 713, 739, 714, 715, - 740, 716, 717, 718, 719, 720, 741, 742, 721, 722, - 724, 743, 725, 728, 729, 731, 732, 744, 735, 736, - 737, 738, 745, 746, 739, 747, 748, 740, 749, 750, - 751, 752, 754, 741, 742, 755, 756, 757, 743, 759, - 760, 761, 762, 763, 744, 764, 765, 766, 767, 745, - 746, 768, 747, 748, 769, 749, 750, 751, 752, 754, - 770, 771, 755, 756, 757, 777, 759, 760, 761, 762, - - 763, 778, 764, 765, 766, 767, 780, 784, 768, 787, - 790, 769, 791, 792, 793, 796, 797, 770, 771, 798, - 799, 800, 777, 802, 804, 801, 805, 803, 778, 806, - 807, 809, 803, 780, 784, 810, 787, 790, 801, 791, - 792, 793, 796, 797, 803, 811, 798, 799, 800, 812, - 802, 804, 801, 805, 803, 813, 806, 807, 809, 803, - 814, 815, 810, 816, 817, 801, 818, 819, 820, 821, - 822, 803, 811, 824, 825, 826, 812, 827, 828, 829, - 830, 831, 813, 832, 833, 835, 836, 814, 815, 837, - 816, 817, 838, 818, 819, 820, 821, 822, 840, 842, - - 824, 825, 826, 843, 827, 828, 829, 830, 831, 844, - 832, 833, 835, 836, 845, 846, 837, 848, 849, 838, - 850, 851, 852, 853, 854, 840, 842, 855, 857, 859, - 843, 851, 861, 862, 863, 864, 844, 866, 867, 868, - 870, 845, 846, 871, 848, 849, 872, 850, 851, 852, - 853, 854, 873, 875, 855, 857, 859, 876, 851, 861, - 862, 863, 864, 877, 866, 867, 868, 870, 878, 879, - 871, 880, 882, 872, 883, 884, 885, 886, 887, 873, - 875, 888, 889, 890, 876, 891, 892, 893, 894, 895, - 877, 897, 898, 899, 900, 878, 879, 901, 880, 882, - - 902, 883, 884, 885, 886, 887, 903, 907, 888, 889, - 890, 908, 891, 892, 893, 894, 895, 913, 897, 898, - 899, 900, 914, 915, 901, 916, 917, 902, 918, 919, - 920, 921, 922, 903, 907, 923, 925, 926, 908, 927, - 928, 929, 930, 932, 913, 933, 934, 935, 936, 914, - 915, 938, 916, 917, 939, 918, 919, 920, 921, 922, - 940, 942, 923, 925, 926, 943, 927, 928, 929, 930, - 932, 945, 933, 934, 935, 936, 946, 948, 938, 949, - 951, 939, 952, 956, 955, 957, 961, 940, 942, 962, - 963, 964, 943, 955, 965, 966, 968, 969, 945, 970, - - 971, 955, 974, 946, 948, 976, 949, 951, 978, 952, - 956, 955, 957, 961, 979, 980, 962, 963, 964, 984, - 955, 965, 966, 968, 969, 985, 970, 971, 955, 974, - 986, 987, 976, 988, 989, 978, 990, 991, 992, 993, - 994, 979, 980, 995, 996, 997, 984, 998, 999, 1000, - 1001, 1002, 985, 1003, 1004, 1005, 1006, 986, 987, 1007, - 988, 989, 1008, 990, 991, 992, 993, 994, 1009, 1010, - 995, 996, 997, 1012, 998, 999, 1000, 1001, 1002, 1013, - 1003, 1004, 1005, 1006, 1018, 1019, 1007, 1020, 1021, 1008, - 1022, 1024, 1025, 1026, 1027, 1009, 1010, 1028, 1029, 1030, - - 1012, 1031, 1032, 1033, 1034, 1035, 1013, 1036, 1037, 1038, - 1039, 1018, 1019, 1040, 1020, 1021, 1041, 1022, 1024, 1025, - 1026, 1027, 1042, 1043, 1028, 1029, 1030, 1045, 1031, 1032, - 1033, 1034, 1035, 1046, 1036, 1037, 1038, 1039, 1047, 1049, - 1040, 1050, 1053, 1041, 1054, 1055, 1057, 1058, 1060, 1042, - 1043, 1061, 1062, 1064, 1045, 1065, 1066, 1068, 1069, 1070, - 1046, 1071, 1072, 1074, 1076, 1047, 1049, 1077, 1050, 1053, - 1078, 1054, 1055, 1057, 1058, 1060, 1079, 1080, 1061, 1062, - 1064, 1081, 1065, 1066, 1068, 1069, 1070, 1083, 1071, 1072, - 1074, 1076, 1084, 1085, 1077, 1086, 1087, 1078, 1089, 1092, - - 1095, 1096, 1097, 1079, 1080, 1100, 1102, 1103, 1081, 1104, - 1105, 1106, 1107, 1108, 1083, 1109, 1110, 1111, 1112, 1084, - 1085, 1113, 1086, 1087, 1114, 1089, 1092, 1095, 1096, 1097, - 1115, 1116, 1100, 1102, 1103, 1117, 1104, 1105, 1106, 1107, - 1108, 1118, 1109, 1110, 1111, 1112, 1121, 1122, 1113, 1124, - 1125, 1114, 1126, 1127, 1128, 1129, 1131, 1115, 1116, 1132, - 1133, 1134, 1117, 1135, 1136, 1140, 1142, 1141, 1118, 1143, - 1144, 1146, 1145, 1121, 1122, 1141, 1124, 1125, 1147, 1126, - 1127, 1128, 1129, 1131, 1150, 1152, 1132, 1133, 1134, 1145, - 1135, 1136, 1140, 1142, 1141, 1153, 1143, 1144, 1146, 1145, - - 1154, 1156, 1157, 1158, 1159, 1147, 1160, 1161, 1162, 1163, - 1164, 1150, 1152, 1165, 1166, 1167, 1145, 1168, 1170, 1165, - 1172, 1174, 1153, 1177, 1178, 1179, 1180, 1154, 1156, 1157, - 1158, 1159, 1181, 1160, 1161, 1162, 1163, 1164, 1182, 1183, - 1165, 1166, 1167, 1184, 1168, 1170, 1165, 1172, 1174, 1185, - 1177, 1178, 1179, 1180, 1186, 1187, 1188, 1189, 1190, 1181, - 1191, 1192, 1193, 1194, 1195, 1182, 1183, 1196, 1198, 1199, - 1184, 1200, 1201, 1202, 1203, 1204, 1185, 1205, 1206, 1209, - 1210, 1186, 1187, 1188, 1189, 1190, 1213, 1191, 1192, 1193, - 1194, 1195, 1214, 1215, 1196, 1198, 1199, 1218, 1200, 1201, - - 1202, 1203, 1204, 1219, 1205, 1206, 1209, 1210, 1220, 1221, - 1223, 1224, 1227, 1213, 1228, 1229, 1231, 1232, 1233, 1214, - 1215, 1234, 1235, 1236, 1218, 1237, 1238, 1243, 1244, 1245, - 1219, 1246, 1248, 1249, 1250, 1220, 1221, 1223, 1224, 1227, - 1252, 1228, 1229, 1231, 1232, 1233, 1253, 1254, 1234, 1235, - 1236, 1255, 1237, 1238, 1243, 1244, 1245, 1256, 1246, 1248, - 1249, 1250, 1259, 1260, 1261, 1263, 1264, 1252, 1269, 1270, - 1273, 1274, 1275, 1253, 1254, 1277, 1278, 1279, 1255, 1280, - 1281, 1283, 1284, 1286, 1256, 1288, 1289, 1291, 1292, 1259, - 1260, 1261, 1263, 1264, 1293, 1269, 1270, 1273, 1274, 1275, - - 1294, 1295, 1277, 1278, 1279, 1296, 1280, 1281, 1283, 1284, - 1286, 1297, 1288, 1289, 1291, 1292, 1298, 1299, 1300, 1302, - 1303, 1293, 1305, 1306, 1308, 1309, 1311, 1294, 1295, 1313, - 1314, 1315, 1296, 1316, 1317, 1318, 1319, 1322, 1297, 1323, - 1324, 1325, 1326, 1298, 1299, 1300, 1302, 1303, 1327, 1305, - 1306, 1308, 1309, 1311, 1328, 1329, 1313, 1314, 1315, 1330, - 1316, 1317, 1318, 1319, 1322, 1331, 1323, 1324, 1325, 1326, - 1334, 1337, 1338, 1341, 1342, 1327, 1343, 1344, 1343, 1346, - 1349, 1328, 1329, 1350, 1352, 1354, 1330, 1355, 1356, 1357, - 1358, 1359, 1331, 1361, 1362, 1363, 1360, 1334, 1337, 1338, - - 1341, 1342, 1360, 1343, 1344, 1343, 1346, 1349, 1364, 1365, - 1350, 1352, 1354, 1366, 1355, 1356, 1357, 1358, 1359, 1367, - 1361, 1362, 1363, 1360, 1368, 1369, 1371, 1372, 1373, 1360, - 1375, 1376, 1377, 1378, 1379, 1364, 1365, 1380, 1381, 1382, - 1366, 1383, 1384, 1385, 1386, 1389, 1367, 1391, 1392, 1393, - 1394, 1368, 1369, 1371, 1372, 1373, 1395, 1375, 1376, 1377, - 1378, 1379, 1396, 1398, 1380, 1381, 1382, 1399, 1383, 1384, - 1385, 1386, 1389, 1400, 1391, 1392, 1393, 1394, 1403, 1404, - 1407, 1408, 1409, 1395, 1410, 1412, 1414, 1415, 1417, 1396, - 1398, 1418, 1419, 1420, 1399, 1422, 1425, 1426, 1427, 1428, - - 1400, 1429, 1430, 1431, 1432, 1403, 1404, 1407, 1408, 1409, - 1433, 1410, 1412, 1414, 1415, 1417, 1434, 1435, 1418, 1419, - 1420, 1438, 1422, 1425, 1426, 1427, 1428, 1439, 1429, 1430, - 1431, 1432, 1440, 1441, 1442, 1443, 1444, 1433, 1446, 1447, - 1449, 1450, 1451, 1434, 1435, 1452, 1455, 1456, 1438, 1458, - 1461, 1462, 1463, 1464, 1439, 1465, 1466, 1467, 1469, 1440, - 1441, 1442, 1443, 1444, 1470, 1446, 1447, 1449, 1450, 1451, - 1471, 1472, 1452, 1455, 1456, 1473, 1458, 1461, 1462, 1463, - 1464, 1474, 1465, 1466, 1467, 1469, 1475, 1476, 1477, 1478, - 1479, 1470, 1480, 1481, 1482, 1483, 1484, 1471, 1472, 1485, - - 1486, 1487, 1473, 1488, 1489, 1490, 1491, 1493, 1474, 1494, - 1495, 1503, 1504, 1475, 1476, 1477, 1478, 1479, 1505, 1480, - 1481, 1482, 1483, 1484, 1507, 1509, 1485, 1486, 1487, 1510, - 1488, 1489, 1490, 1491, 1493, 1512, 1494, 1495, 1503, 1504, - 1513, 1514, 1515, 1516, 1519, 1505, 1521, 1522, 1523, 1524, - 1525, 1507, 1509, 1527, 1528, 1529, 1510, 1530, 1531, 1532, - 1533, 1534, 1512, 1535, 1537, 1538, 1539, 1513, 1514, 1515, - 1516, 1519, 1541, 1521, 1522, 1523, 1524, 1525, 1542, 1543, - 1527, 1528, 1529, 1545, 1530, 1531, 1532, 1533, 1534, 1546, - 1535, 1537, 1538, 1539, 1547, 1548, 1551, 1552, 1553, 1541, - - 1556, 1557, 1558, 1559, 1561, 1542, 1543, 1562, 1564, 1568, - 1545, 1569, 1570, 1573, 1574, 1575, 1546, 1577, 1578, 1580, - 1581, 1547, 1548, 1551, 1552, 1553, 1582, 1556, 1557, 1558, - 1559, 1561, 1075, 1073, 1562, 1564, 1568, 1052, 1569, 1570, - 1573, 1574, 1575, 1051, 1577, 1578, 1580, 1581, 1048, 1017, - 1016, 1015, 1014, 1582, 1587, 1587, 975, 973, 972, 967, - 958, 950, 941, 937, 931, 911, 910, 909, 906, 905, - 896, 881, 874, 869, 841, 788, 781, 779, 776, 775, - 774, 773, 772, 734, 733, 730, 685, 680, 679, 678, - 676, 647, 645, 641, 618, 604, 563, 559, 557, 555, - - 551, 548, 529, 521, 505, 500, 497, 478, 471, 441, - 439, 438, 423, 400, 386, 371, 370, 365, 354, 342, - 339, 332, 330, 316, 312, 310, 302, 284, 272, 263, - 222, 192, 177, 142, 122, 100, 37, 5, 3, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, - - 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585 + 90, 87, 91, 93, 89, 94, 88, 91, 92, 95, + 96, 97, 99, 98, 101, 93, 102, 104, 105, 95, + 107, 1272, 1257, 90, 109, 1252, 89, 90, 98, 91, + 93, 89, 94, 103, 91, 113, 95, 96, 97, 99, + 98, 101, 93, 102, 104, 105, 95, 107, 106, 103, + 103, 109, 112, 111, 114, 98, 106, 910, 115, 910, + 103, 1235, 113, 1234, 1217, 116, 1185, 111, 115, 910, + 117, 118, 1156, 119, 112, 106, 103, 103, 1146, 112, + 111, 114, 120, 106, 108, 115, 108, 108, 110, 121, + 108, 108, 116, 108, 111, 115, 108, 117, 118, 110, + + 119, 112, 108, 110, 123, 110, 124, 1138, 126, 120, + 1127, 108, 127, 108, 108, 110, 121, 108, 108, 128, + 108, 130, 131, 108, 1109, 128, 110, 132, 133, 108, + 110, 123, 110, 124, 125, 126, 134, 125, 129, 127, + 131, 129, 135, 137, 125, 125, 128, 139, 130, 131, + 140, 125, 128, 138, 132, 133, 141, 125, 143, 144, + 138, 125, 145, 134, 125, 129, 146, 131, 129, 135, + 137, 125, 125, 147, 139, 148, 149, 140, 125, 150, + 138, 151, 152, 141, 125, 143, 144, 138, 153, 145, + 154, 156, 157, 146, 158, 159, 160, 161, 162, 163, + + 147, 164, 148, 149, 165, 166, 150, 167, 151, 152, + 168, 169, 170, 171, 172, 153, 173, 154, 156, 157, + 167, 158, 159, 160, 161, 162, 163, 175, 164, 174, + 174, 165, 166, 176, 167, 178, 179, 168, 169, 170, + 171, 172, 181, 173, 182, 183, 184, 167, 183, 185, + 186, 187, 188, 189, 175, 191, 174, 174, 193, 194, + 176, 195, 178, 179, 196, 197, 198, 199, 200, 181, + 196, 182, 183, 184, 201, 183, 185, 186, 187, 188, + 189, 202, 191, 203, 205, 193, 194, 206, 195, 207, + 204, 196, 197, 198, 199, 200, 208, 204, 209, 210, + + 211, 201, 204, 212, 213, 214, 215, 204, 202, 216, + 203, 205, 217, 218, 206, 219, 207, 204, 221, 222, + 224, 222, 225, 208, 204, 209, 210, 211, 226, 204, + 212, 213, 214, 215, 204, 228, 216, 229, 231, 217, + 218, 232, 219, 233, 234, 221, 222, 224, 222, 225, + 237, 236, 238, 239, 240, 226, 236, 241, 243, 242, + 244, 245, 228, 246, 229, 231, 247, 248, 232, 242, + 233, 234, 249, 250, 251, 252, 253, 237, 236, 238, + 239, 240, 254, 251, 241, 243, 242, 244, 245, 255, + 246, 256, 257, 247, 248, 258, 242, 260, 261, 249, + + 250, 251, 252, 253, 262, 263, 266, 268, 269, 254, + 270, 271, 272, 274, 275, 276, 255, 279, 256, 257, + 280, 282, 258, 283, 260, 261, 284, 286, 287, 288, + 289, 262, 263, 266, 268, 269, 290, 270, 271, 272, + 274, 275, 276, 291, 279, 292, 294, 280, 282, 295, + 283, 297, 298, 284, 286, 287, 288, 289, 299, 302, + 300, 305, 301, 290, 306, 307, 308, 312, 314, 315, + 291, 316, 292, 294, 300, 301, 295, 318, 297, 298, + 319, 320, 321, 1107, 1106, 299, 302, 300, 305, 301, + 323, 306, 307, 308, 312, 314, 315, 324, 316, 325, + + 326, 300, 1096, 328, 318, 1083, 329, 319, 320, 321, + 322, 322, 322, 331, 327, 333, 322, 323, 322, 327, + 335, 322, 336, 322, 324, 337, 325, 326, 338, 322, + 328, 339, 322, 329, 1081, 340, 342, 322, 322, 322, + 331, 327, 333, 322, 346, 322, 327, 335, 322, 336, + 322, 347, 337, 340, 348, 338, 322, 340, 339, 322, + 349, 340, 340, 342, 350, 351, 352, 353, 354, 355, + 357, 346, 358, 359, 361, 1059, 362, 364, 347, 365, + 340, 348, 366, 359, 340, 369, 355, 349, 370, 368, + 368, 350, 351, 352, 353, 354, 355, 357, 360, 358, + + 359, 361, 360, 362, 364, 368, 365, 360, 371, 366, + 374, 375, 369, 355, 377, 370, 368, 368, 378, 379, + 380, 381, 382, 383, 385, 360, 386, 387, 389, 360, + 390, 385, 368, 391, 360, 371, 392, 374, 375, 393, + 394, 377, 395, 396, 398, 378, 379, 380, 381, 382, + 383, 385, 400, 386, 387, 389, 397, 390, 385, 401, + 391, 397, 403, 392, 404, 406, 393, 394, 407, 395, + 396, 398, 409, 410, 411, 413, 414, 416, 417, 400, + 418, 419, 420, 397, 422, 424, 401, 426, 397, 403, + 427, 404, 406, 428, 429, 407, 430, 433, 434, 409, + + 410, 411, 413, 414, 416, 417, 431, 418, 419, 420, + 435, 422, 424, 436, 426, 437, 431, 427, 438, 439, + 428, 429, 442, 430, 433, 434, 444, 445, 446, 447, + 448, 449, 450, 431, 451, 449, 452, 435, 453, 1058, + 436, 455, 437, 431, 456, 438, 439, 457, 458, 442, + 453, 459, 454, 444, 445, 446, 447, 448, 449, 450, + 460, 451, 449, 452, 461, 453, 454, 462, 455, 463, + 464, 456, 466, 465, 457, 458, 467, 453, 459, 454, + 465, 468, 469, 470, 471, 472, 473, 460, 475, 476, + 476, 461, 477, 454, 462, 476, 463, 464, 1055, 466, + + 465, 479, 480, 467, 482, 483, 487, 465, 468, 469, + 470, 471, 472, 473, 478, 475, 476, 476, 479, 477, + 485, 488, 476, 485, 489, 478, 490, 491, 479, 480, + 493, 482, 483, 487, 492, 495, 496, 492, 497, 498, + 499, 478, 502, 506, 507, 479, 509, 485, 488, 510, + 485, 489, 478, 490, 491, 512, 513, 493, 514, 515, + 516, 492, 495, 496, 492, 497, 498, 499, 505, 502, + 506, 507, 505, 509, 517, 505, 510, 518, 519, 520, + 521, 522, 512, 513, 523, 514, 515, 516, 525, 526, + 527, 531, 533, 535, 536, 505, 537, 539, 540, 505, + + 1024, 517, 505, 541, 518, 519, 520, 521, 522, 538, + 542, 523, 543, 544, 545, 525, 526, 527, 531, 533, + 535, 536, 546, 537, 539, 540, 547, 538, 548, 549, + 541, 550, 553, 555, 556, 559, 538, 542, 561, 543, + 544, 545, 563, 557, 557, 565, 567, 1023, 568, 546, + 570, 571, 557, 547, 572, 548, 549, 557, 550, 553, + 555, 556, 559, 564, 573, 561, 574, 575, 579, 563, + 557, 557, 565, 567, 564, 568, 580, 570, 571, 557, + 581, 572, 582, 583, 557, 584, 585, 586, 587, 588, + 564, 573, 584, 574, 575, 579, 589, 590, 592, 593, + + 594, 564, 595, 580, 596, 597, 599, 581, 600, 582, + 583, 601, 584, 585, 586, 587, 588, 602, 603, 584, + 604, 605, 606, 589, 590, 592, 593, 594, 607, 595, + 609, 596, 597, 599, 610, 600, 611, 612, 601, 613, + 614, 615, 617, 618, 602, 603, 619, 604, 605, 606, + 620, 621, 624, 625, 627, 607, 628, 609, 629, 630, + 631, 610, 632, 611, 612, 633, 613, 614, 615, 617, + 618, 634, 636, 619, 635, 635, 637, 620, 621, 624, + 625, 627, 639, 628, 640, 629, 630, 631, 641, 632, + 642, 643, 633, 644, 646, 648, 1022, 650, 634, 636, + + 652, 635, 635, 637, 655, 656, 657, 659, 660, 639, + 661, 640, 664, 666, 667, 641, 668, 642, 643, 647, + 644, 646, 648, 647, 650, 647, 669, 652, 670, 647, + 647, 655, 656, 657, 659, 660, 671, 661, 672, 664, + 666, 667, 673, 668, 674, 675, 647, 677, 679, 681, + 647, 685, 647, 669, 686, 670, 647, 647, 687, 688, + 691, 693, 694, 671, 695, 672, 697, 692, 698, 673, + 699, 674, 675, 700, 677, 679, 681, 692, 685, 701, + 702, 686, 703, 704, 705, 687, 688, 691, 693, 694, + 706, 695, 707, 697, 692, 698, 708, 699, 709, 710, + + 700, 711, 712, 713, 692, 714, 701, 702, 715, 703, + 704, 705, 716, 717, 718, 719, 720, 706, 721, 707, + 722, 723, 724, 708, 725, 709, 710, 726, 711, 712, + 713, 729, 714, 730, 733, 715, 734, 736, 737, 716, + 717, 718, 719, 720, 740, 721, 741, 722, 723, 724, + 742, 725, 743, 744, 726, 745, 746, 747, 729, 748, + 730, 733, 749, 734, 736, 737, 750, 751, 752, 753, + 754, 740, 755, 741, 756, 757, 759, 742, 760, 743, + 744, 761, 745, 746, 747, 762, 748, 764, 765, 749, + 766, 767, 768, 750, 751, 752, 753, 754, 769, 755, + + 770, 756, 757, 759, 771, 760, 772, 773, 761, 774, + 775, 776, 762, 782, 764, 765, 783, 766, 767, 768, + 785, 789, 792, 795, 796, 769, 797, 770, 798, 801, + 802, 771, 803, 772, 773, 804, 774, 775, 776, 805, + 782, 806, 807, 783, 809, 810, 811, 785, 789, 792, + 795, 796, 812, 797, 806, 798, 801, 802, 808, 803, + 814, 815, 804, 808, 816, 817, 805, 818, 806, 807, + 819, 809, 810, 811, 820, 808, 821, 822, 823, 812, + 824, 806, 825, 826, 827, 808, 829, 814, 815, 830, + 808, 816, 817, 831, 818, 832, 833, 819, 834, 835, + + 836, 820, 808, 821, 822, 823, 837, 824, 838, 825, + 826, 827, 840, 829, 841, 842, 830, 843, 845, 847, + 831, 848, 832, 833, 849, 834, 835, 836, 850, 851, + 852, 854, 855, 837, 856, 838, 858, 857, 859, 840, + 860, 841, 842, 861, 843, 845, 847, 857, 848, 863, + 865, 849, 867, 868, 869, 850, 851, 852, 854, 855, + 870, 856, 872, 858, 857, 859, 873, 860, 874, 876, + 861, 877, 878, 879, 857, 881, 863, 865, 882, 867, + 868, 869, 883, 884, 885, 886, 888, 870, 889, 872, + 890, 891, 892, 873, 893, 874, 876, 894, 877, 878, + + 879, 895, 881, 896, 897, 882, 898, 899, 900, 883, + 884, 885, 886, 888, 901, 889, 903, 890, 891, 892, + 904, 893, 905, 906, 894, 907, 908, 909, 895, 913, + 896, 897, 914, 898, 899, 900, 919, 920, 921, 922, + 923, 901, 924, 903, 925, 926, 927, 904, 928, 905, + 906, 929, 907, 908, 909, 931, 913, 932, 933, 914, + 934, 935, 936, 919, 920, 921, 922, 923, 938, 924, + 939, 925, 926, 927, 940, 928, 941, 942, 929, 944, + 945, 946, 931, 948, 932, 933, 949, 934, 935, 936, + 951, 952, 954, 955, 957, 938, 958, 939, 962, 963, + + 967, 940, 968, 941, 942, 961, 944, 945, 946, 969, + 948, 970, 971, 949, 961, 972, 973, 951, 952, 954, + 955, 957, 961, 958, 975, 962, 963, 967, 976, 968, + 977, 978, 961, 981, 983, 985, 969, 986, 970, 971, + 987, 961, 972, 973, 991, 992, 993, 994, 995, 961, + 996, 975, 997, 998, 999, 976, 1000, 977, 978, 1001, + 981, 983, 985, 1002, 986, 1003, 1004, 987, 1005, 1006, + 1007, 991, 992, 993, 994, 995, 1008, 996, 1009, 997, + 998, 999, 1010, 1000, 1011, 1012, 1001, 1013, 1014, 1015, + 1002, 1016, 1003, 1004, 1017, 1005, 1006, 1007, 1019, 1020, + + 1025, 1026, 1027, 1008, 1028, 1009, 1029, 1031, 1032, 1010, + 1033, 1011, 1012, 1034, 1013, 1014, 1015, 1035, 1016, 1036, + 1037, 1017, 1038, 1039, 1040, 1019, 1020, 1025, 1026, 1027, + 1041, 1028, 1042, 1029, 1031, 1032, 1043, 1033, 1044, 1045, + 1034, 1046, 1047, 1048, 1035, 1049, 1036, 1037, 1050, 1038, + 1039, 1040, 1052, 1053, 1054, 1056, 1057, 1041, 1060, 1042, + 1061, 1062, 1064, 1043, 1065, 1044, 1045, 1067, 1046, 1047, + 1048, 1068, 1049, 1069, 1071, 1050, 1072, 1073, 1074, 1052, + 1053, 1054, 1056, 1057, 1076, 1060, 1077, 1061, 1062, 1064, + 1078, 1065, 1079, 1080, 1067, 1082, 1084, 1085, 1068, 1086, + + 1069, 1071, 1087, 1072, 1073, 1074, 1088, 1089, 1091, 1092, + 1093, 1076, 1094, 1077, 1095, 1097, 1100, 1078, 1103, 1079, + 1080, 1104, 1082, 1084, 1085, 1105, 1086, 1108, 1110, 1087, + 1111, 1112, 1113, 1088, 1089, 1091, 1092, 1093, 1114, 1094, + 1115, 1095, 1097, 1100, 1116, 1103, 1117, 1118, 1104, 1119, + 1120, 1121, 1105, 1122, 1108, 1110, 1123, 1111, 1112, 1113, + 1124, 1125, 1126, 1129, 1130, 1114, 1132, 1115, 1133, 1134, + 1135, 1116, 1136, 1117, 1118, 1137, 1119, 1120, 1121, 1139, + 1122, 1140, 1141, 1123, 1142, 1143, 1144, 1124, 1125, 1126, + 1129, 1130, 1148, 1132, 1150, 1133, 1134, 1135, 1151, 1136, + + 1152, 1153, 1137, 1154, 1155, 1158, 1139, 1149, 1140, 1141, + 1160, 1142, 1143, 1144, 1161, 1149, 1162, 1164, 1153, 1148, + 1165, 1150, 1166, 1167, 1168, 1151, 1169, 1152, 1153, 1170, + 1154, 1155, 1158, 1171, 1149, 1172, 1173, 1160, 1175, 1176, + 1174, 1161, 1177, 1162, 1164, 1153, 1174, 1165, 1179, 1166, + 1167, 1168, 1181, 1169, 1183, 1186, 1170, 1187, 1188, 1189, + 1171, 1190, 1172, 1173, 1191, 1175, 1176, 1174, 1192, 1177, + 1193, 1194, 1195, 1174, 1196, 1179, 1197, 1198, 1199, 1181, + 1200, 1183, 1186, 1201, 1187, 1188, 1189, 1202, 1190, 1203, + 1204, 1191, 1205, 1207, 1208, 1192, 1209, 1193, 1194, 1195, + + 1210, 1196, 1211, 1197, 1198, 1199, 1212, 1200, 1213, 1214, + 1201, 1215, 1218, 1219, 1202, 1222, 1203, 1204, 1223, 1205, + 1207, 1208, 1224, 1209, 1227, 1228, 1229, 1210, 1230, 1211, + 1232, 1233, 1236, 1212, 1237, 1213, 1214, 1238, 1215, 1218, + 1219, 1240, 1222, 1241, 1242, 1223, 1243, 1244, 1245, 1224, + 1246, 1227, 1228, 1229, 1247, 1230, 1248, 1232, 1233, 1236, + 1253, 1237, 1254, 1255, 1238, 1256, 1258, 1259, 1240, 1260, + 1241, 1242, 1262, 1243, 1244, 1245, 1263, 1246, 1264, 1265, + 1266, 1247, 1269, 1248, 1270, 1271, 1273, 1253, 1274, 1254, + 1255, 1279, 1256, 1258, 1259, 1280, 1260, 1283, 1284, 1262, + + 1285, 1287, 1288, 1263, 1289, 1264, 1265, 1266, 1290, 1269, + 1291, 1270, 1271, 1273, 1293, 1274, 1294, 1296, 1279, 1298, + 1299, 1301, 1280, 1302, 1283, 1284, 1303, 1285, 1287, 1288, + 1304, 1289, 1305, 1306, 1307, 1290, 1308, 1291, 1309, 1310, + 1312, 1293, 1313, 1294, 1296, 1315, 1298, 1299, 1301, 1316, + 1302, 1317, 1319, 1303, 1320, 1322, 1324, 1304, 1325, 1305, + 1306, 1307, 1326, 1308, 1327, 1309, 1310, 1312, 1328, 1313, + 1329, 1330, 1315, 1333, 1334, 1335, 1316, 1336, 1317, 1319, + 1337, 1320, 1322, 1324, 1338, 1325, 1339, 1340, 1341, 1326, + 1342, 1327, 1345, 1348, 1349, 1328, 1352, 1329, 1330, 1353, + + 1333, 1334, 1335, 1354, 1336, 1354, 1355, 1337, 1357, 1360, + 1361, 1338, 1363, 1339, 1340, 1341, 1365, 1342, 1366, 1345, + 1348, 1349, 1367, 1352, 1368, 1369, 1353, 1370, 1371, 1372, + 1354, 1373, 1354, 1355, 1371, 1357, 1360, 1361, 1374, 1363, + 1376, 1377, 1378, 1365, 1379, 1366, 1380, 1381, 1383, 1367, + 1384, 1368, 1369, 1385, 1370, 1371, 1372, 1387, 1373, 1388, + 1389, 1371, 1390, 1391, 1392, 1374, 1393, 1376, 1377, 1378, + 1394, 1379, 1395, 1380, 1381, 1383, 1396, 1384, 1397, 1398, + 1385, 1401, 1403, 1404, 1387, 1405, 1388, 1389, 1406, 1390, + 1391, 1392, 1407, 1393, 1408, 1410, 1411, 1394, 1412, 1395, + + 1415, 1416, 1419, 1396, 1420, 1397, 1398, 1421, 1401, 1403, + 1404, 1422, 1405, 1424, 1426, 1406, 1427, 1429, 1430, 1407, + 1431, 1408, 1410, 1411, 1432, 1412, 1434, 1415, 1416, 1419, + 1437, 1420, 1438, 1439, 1421, 1440, 1441, 1442, 1422, 1443, + 1424, 1426, 1444, 1427, 1429, 1430, 1445, 1431, 1446, 1447, + 1450, 1432, 1451, 1434, 1452, 1453, 1454, 1437, 1455, 1438, + 1439, 1456, 1440, 1441, 1442, 1458, 1443, 1459, 1461, 1444, + 1462, 1463, 1464, 1445, 1467, 1446, 1447, 1450, 1468, 1451, + 1470, 1452, 1453, 1454, 1473, 1455, 1474, 1475, 1456, 1476, + 1477, 1478, 1458, 1479, 1459, 1461, 1481, 1462, 1463, 1464, + + 1482, 1467, 1483, 1484, 1485, 1468, 1486, 1470, 1487, 1488, + 1489, 1473, 1490, 1474, 1475, 1491, 1476, 1477, 1478, 1492, + 1479, 1493, 1494, 1481, 1495, 1496, 1497, 1482, 1498, 1483, + 1484, 1485, 1499, 1486, 1500, 1487, 1488, 1489, 1501, 1490, + 1502, 1503, 1491, 1505, 1506, 1507, 1492, 1515, 1493, 1494, + 1516, 1495, 1496, 1497, 1517, 1498, 1519, 1521, 1522, 1499, + 1524, 1500, 1525, 1526, 1527, 1501, 1528, 1502, 1503, 1531, + 1505, 1506, 1507, 1533, 1515, 1534, 1535, 1516, 1536, 1537, + 1539, 1517, 1540, 1519, 1521, 1522, 1541, 1524, 1542, 1525, + 1526, 1527, 1543, 1528, 1544, 1545, 1531, 1546, 1547, 1549, + + 1533, 1550, 1534, 1535, 1551, 1536, 1537, 1539, 1553, 1540, + 1554, 1555, 1557, 1541, 1558, 1542, 1559, 1560, 1563, 1543, + 1564, 1544, 1545, 1565, 1546, 1547, 1549, 1568, 1550, 1569, + 1570, 1551, 1571, 1573, 1574, 1553, 1576, 1554, 1555, 1557, + 1580, 1558, 1581, 1559, 1560, 1563, 1582, 1564, 1585, 1586, + 1565, 1587, 1589, 1590, 1568, 1592, 1569, 1570, 1593, 1571, + 1573, 1574, 1594, 1576, 1021, 982, 980, 1580, 979, 1581, + 974, 964, 956, 1582, 947, 1585, 1586, 943, 1587, 1589, + 1590, 937, 1592, 917, 916, 1593, 915, 912, 911, 1594, + 1599, 1599, 902, 887, 880, 875, 846, 793, 786, 784, + + 781, 780, 779, 778, 777, 739, 738, 735, 727, 689, + 684, 683, 682, 680, 651, 649, 645, 622, 608, 566, + 562, 560, 558, 554, 551, 532, 524, 508, 503, 500, + 481, 474, 443, 441, 440, 425, 402, 388, 373, 372, + 367, 356, 344, 341, 334, 332, 317, 313, 311, 303, + 285, 273, 264, 223, 192, 177, 142, 122, 100, 37, + 5, 3, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597 } ; static yy_state_type yy_last_accepting_state; @@ -1722,7 +1736,7 @@ conf_yy_fatal_error(const char *msg) return 0; } -#line 1726 "conf_lexer.c" +#line 1740 "conf_lexer.c" #define INITIAL 0 @@ -1904,7 +1918,7 @@ YY_DECL #line 78 "conf_lexer.l" -#line 1908 "conf_lexer.c" +#line 1922 "conf_lexer.c" if ( !(yy_init) ) { @@ -1963,13 +1977,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1586 ) + if ( yy_current_state >= 1598 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 1585 ); + while ( yy_current_state != 1597 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2492,97 +2506,97 @@ YY_RULE_SETUP case 92: YY_RULE_SETUP #line 218 "conf_lexer.l" -{ return MIN_NONWILDCARD; } +{ return MESSAGE_LOCALE; } YY_BREAK case 93: YY_RULE_SETUP #line 219 "conf_lexer.l" -{ return MIN_NONWILDCARD_SIMPLE; } +{ return MIN_NONWILDCARD; } YY_BREAK case 94: YY_RULE_SETUP #line 220 "conf_lexer.l" -{ return NAME; } +{ return MIN_NONWILDCARD_SIMPLE; } YY_BREAK case 95: YY_RULE_SETUP #line 221 "conf_lexer.l" -{ return NEED_PASSWORD; } +{ return NAME; } YY_BREAK case 96: YY_RULE_SETUP #line 222 "conf_lexer.l" -{ return NETWORK_DESC; } +{ return NEED_PASSWORD; } YY_BREAK case 97: YY_RULE_SETUP #line 223 "conf_lexer.l" -{ return NETWORK_NAME; } +{ return NETWORK_DESC; } YY_BREAK case 98: YY_RULE_SETUP #line 224 "conf_lexer.l" -{ return NICK; } +{ return NETWORK_NAME; } YY_BREAK case 99: YY_RULE_SETUP #line 225 "conf_lexer.l" -{ return NICK_CHANGES; } +{ return NICK; } YY_BREAK case 100: YY_RULE_SETUP #line 226 "conf_lexer.l" -{ yylval.number = 0; return TBOOL; } +{ return NICK_CHANGES; } YY_BREAK case 101: YY_RULE_SETUP #line 227 "conf_lexer.l" -{ return NO_CREATE_ON_SPLIT; } +{ yylval.number = 0; return TBOOL; } YY_BREAK case 102: YY_RULE_SETUP #line 228 "conf_lexer.l" -{ return NO_JOIN_ON_SPLIT; } +{ return NO_CREATE_ON_SPLIT; } YY_BREAK case 103: YY_RULE_SETUP #line 229 "conf_lexer.l" -{ return NO_OPER_FLOOD; } +{ return NO_JOIN_ON_SPLIT; } YY_BREAK case 104: YY_RULE_SETUP #line 230 "conf_lexer.l" -{ return NO_TILDE; } +{ return NO_OPER_FLOOD; } YY_BREAK case 105: YY_RULE_SETUP #line 231 "conf_lexer.l" -{ return NUMBER_PER_CIDR; } +{ return NO_TILDE; } YY_BREAK case 106: YY_RULE_SETUP #line 232 "conf_lexer.l" -{ return NUMBER_PER_IP; } +{ return NUMBER_PER_CIDR; } YY_BREAK case 107: YY_RULE_SETUP #line 233 "conf_lexer.l" -{ return OPERATOR; } +{ return NUMBER_PER_IP; } YY_BREAK case 108: YY_RULE_SETUP #line 234 "conf_lexer.l" -{ return OPER_PASS_RESV; } +{ return OPERATOR; } YY_BREAK case 109: YY_RULE_SETUP #line 235 "conf_lexer.l" -{ return OPERATOR; } +{ return OPER_PASS_RESV; } YY_BREAK case 110: YY_RULE_SETUP #line 236 "conf_lexer.l" -{ return PASSWORD; } +{ return OPERATOR; } YY_BREAK case 111: YY_RULE_SETUP @@ -2592,542 +2606,542 @@ YY_RULE_SETUP case 112: YY_RULE_SETUP #line 238 "conf_lexer.l" -{ return PING_COOKIE; } +{ return PASSWORD; } YY_BREAK case 113: YY_RULE_SETUP #line 239 "conf_lexer.l" -{ return PING_TIME; } +{ return PING_COOKIE; } YY_BREAK case 114: YY_RULE_SETUP #line 240 "conf_lexer.l" -{ return PORT; } +{ return PING_TIME; } YY_BREAK case 115: YY_RULE_SETUP #line 241 "conf_lexer.l" -{ return RESV; } +{ return PORT; } YY_BREAK case 116: YY_RULE_SETUP #line 242 "conf_lexer.l" -{ return QUIET_ON_BAN; } +{ return RESV; } YY_BREAK case 117: YY_RULE_SETUP #line 243 "conf_lexer.l" -{ return RANDOM_IDLE; } +{ return QUIET_ON_BAN; } YY_BREAK case 118: YY_RULE_SETUP #line 244 "conf_lexer.l" -{ return REASON; } +{ return RANDOM_IDLE; } YY_BREAK case 119: YY_RULE_SETUP #line 245 "conf_lexer.l" -{ return T_RECVQ; } +{ return REASON; } YY_BREAK case 120: YY_RULE_SETUP #line 246 "conf_lexer.l" -{ return REDIRPORT; } +{ return T_RECVQ; } YY_BREAK case 121: YY_RULE_SETUP #line 247 "conf_lexer.l" -{ return REDIRSERV; } +{ return REDIRPORT; } YY_BREAK case 122: YY_RULE_SETUP #line 248 "conf_lexer.l" -{ return REGEX_T; } +{ return REDIRSERV; } YY_BREAK case 123: YY_RULE_SETUP #line 249 "conf_lexer.l" -{ return REHASH; } +{ return REGEX_T; } YY_BREAK case 124: YY_RULE_SETUP #line 250 "conf_lexer.l" -{ return REMOTE; } +{ return REHASH; } YY_BREAK case 125: YY_RULE_SETUP #line 251 "conf_lexer.l" -{ return REMOTEBAN; } +{ return REMOTE; } YY_BREAK case 126: YY_RULE_SETUP #line 252 "conf_lexer.l" -{ return T_RESTART; } +{ return REMOTEBAN; } YY_BREAK case 127: YY_RULE_SETUP #line 253 "conf_lexer.l" -{ return RESTRICT_CHANNELS; } +{ return T_RESTART; } YY_BREAK case 128: YY_RULE_SETUP #line 254 "conf_lexer.l" -{ return RESV; } +{ return RESTRICT_CHANNELS; } YY_BREAK case 129: YY_RULE_SETUP #line 255 "conf_lexer.l" -{ return RESV_EXEMPT; } +{ return RESV; } YY_BREAK case 130: YY_RULE_SETUP #line 256 "conf_lexer.l" -{ return RSA_PRIVATE_KEY_FILE; } +{ return RESV_EXEMPT; } YY_BREAK case 131: YY_RULE_SETUP #line 257 "conf_lexer.l" -{ return RSA_PUBLIC_KEY_FILE; } +{ return RSA_PRIVATE_KEY_FILE; } YY_BREAK case 132: YY_RULE_SETUP #line 258 "conf_lexer.l" -{ return T_SSL; } +{ return RSA_PUBLIC_KEY_FILE; } YY_BREAK case 133: YY_RULE_SETUP #line 259 "conf_lexer.l" -{ return SSL_CERTIFICATE_FILE; } +{ return T_SSL; } YY_BREAK case 134: YY_RULE_SETUP #line 260 "conf_lexer.l" -{ return T_SSL_CLIENT_METHOD; } +{ return SSL_CERTIFICATE_FILE; } YY_BREAK case 135: YY_RULE_SETUP #line 261 "conf_lexer.l" -{ return T_SSL_SERVER_METHOD; } +{ return T_SSL_CLIENT_METHOD; } YY_BREAK case 136: YY_RULE_SETUP #line 262 "conf_lexer.l" -{ return SSL_DH_PARAM_FILE; } +{ return T_SSL_SERVER_METHOD; } YY_BREAK case 137: YY_RULE_SETUP #line 263 "conf_lexer.l" -{ return T_SSL_CIPHER_LIST; } +{ return SSL_DH_PARAM_FILE; } YY_BREAK case 138: YY_RULE_SETUP #line 264 "conf_lexer.l" -{ return T_SSLV3; } +{ return T_SSL_CIPHER_LIST; } YY_BREAK case 139: YY_RULE_SETUP #line 265 "conf_lexer.l" -{ return T_TLSV1; } +{ return T_SSLV3; } YY_BREAK case 140: YY_RULE_SETUP #line 266 "conf_lexer.l" -{ return SEND_PASSWORD; } +{ return T_TLSV1; } YY_BREAK case 141: YY_RULE_SETUP #line 267 "conf_lexer.l" -{ return SENDQ; } +{ return SEND_PASSWORD; } YY_BREAK case 142: YY_RULE_SETUP #line 268 "conf_lexer.l" -{ return T_SERVER; } +{ return SENDQ; } YY_BREAK case 143: YY_RULE_SETUP #line 269 "conf_lexer.l" -{ return SERVERHIDE; } +{ return T_SERVER; } YY_BREAK case 144: YY_RULE_SETUP #line 270 "conf_lexer.l" -{ return SERVERINFO; } +{ return SERVERHIDE; } YY_BREAK case 145: YY_RULE_SETUP #line 271 "conf_lexer.l" -{ return T_SERVICE; } +{ return SERVERINFO; } YY_BREAK case 146: YY_RULE_SETUP #line 272 "conf_lexer.l" -{ return T_SERVICES_NAME; } +{ return T_SERVICE; } YY_BREAK case 147: YY_RULE_SETUP #line 273 "conf_lexer.l" -{ return T_SET; } +{ return T_SERVICES_NAME; } YY_BREAK case 148: YY_RULE_SETUP #line 274 "conf_lexer.l" -{ return T_SHARED; } +{ return T_SET; } YY_BREAK case 149: YY_RULE_SETUP #line 275 "conf_lexer.l" -{ return SHORT_MOTD; } +{ return T_SHARED; } YY_BREAK case 150: YY_RULE_SETUP #line 276 "conf_lexer.l" -{ return IRCD_SID; } +{ return SHORT_MOTD; } YY_BREAK case 151: YY_RULE_SETUP #line 277 "conf_lexer.l" -{ return T_SIZE; } +{ return IRCD_SID; } YY_BREAK case 152: YY_RULE_SETUP #line 278 "conf_lexer.l" -{ return SPOOF; } +{ return T_SIZE; } YY_BREAK case 153: YY_RULE_SETUP #line 279 "conf_lexer.l" -{ return SPOOF_NOTICE; } +{ return SPOOF; } YY_BREAK case 154: YY_RULE_SETUP #line 280 "conf_lexer.l" -{ return TKLINE_EXPIRE_NOTICES; } +{ return SPOOF_NOTICE; } YY_BREAK case 155: YY_RULE_SETUP #line 281 "conf_lexer.l" -{ return TYPE; } +{ return TKLINE_EXPIRE_NOTICES; } YY_BREAK case 156: YY_RULE_SETUP #line 282 "conf_lexer.l" -{ return TRUE_NO_OPER_FLOOD; } +{ return TYPE; } YY_BREAK case 157: YY_RULE_SETUP #line 283 "conf_lexer.l" -{ return T_UMODES; } +{ return TRUE_NO_OPER_FLOOD; } YY_BREAK case 158: YY_RULE_SETUP #line 284 "conf_lexer.l" -{ return UNKLINE; } +{ return T_UMODES; } YY_BREAK case 159: YY_RULE_SETUP #line 285 "conf_lexer.l" -{ return T_UNDLINE; } +{ return UNKLINE; } YY_BREAK case 160: YY_RULE_SETUP #line 286 "conf_lexer.l" -{ return T_UNLIMITED; } +{ return T_UNDLINE; } YY_BREAK case 161: YY_RULE_SETUP #line 287 "conf_lexer.l" -{ return USE_EGD; } +{ return T_UNLIMITED; } YY_BREAK case 162: YY_RULE_SETUP #line 288 "conf_lexer.l" -{ return USE_LOGGING; } +{ return USE_EGD; } YY_BREAK case 163: YY_RULE_SETUP #line 289 "conf_lexer.l" -{ return THROTTLE_TIME; } +{ return USE_LOGGING; } YY_BREAK case 164: YY_RULE_SETUP #line 290 "conf_lexer.l" -{ return USER; } +{ return THROTTLE_TIME; } YY_BREAK case 165: YY_RULE_SETUP #line 291 "conf_lexer.l" -{ return VHOST; } +{ return USER; } YY_BREAK case 166: YY_RULE_SETUP #line 292 "conf_lexer.l" -{ return VHOST6; } +{ return VHOST; } YY_BREAK case 167: YY_RULE_SETUP #line 293 "conf_lexer.l" -{ return T_WEBIRC; } +{ return VHOST6; } YY_BREAK case 168: YY_RULE_SETUP #line 294 "conf_lexer.l" -{ return XLINE; } +{ return T_WEBIRC; } YY_BREAK case 169: YY_RULE_SETUP #line 295 "conf_lexer.l" -{ yylval.number = 1; return TBOOL; } +{ return XLINE; } YY_BREAK case 170: YY_RULE_SETUP -#line 297 "conf_lexer.l" -{ return FAILED_OPER_NOTICE; } +#line 296 "conf_lexer.l" +{ yylval.number = 1; return TBOOL; } YY_BREAK case 171: YY_RULE_SETUP #line 298 "conf_lexer.l" -{ return MAX_ACCEPT; } +{ return FAILED_OPER_NOTICE; } YY_BREAK case 172: YY_RULE_SETUP #line 299 "conf_lexer.l" -{ return MAX_NICK_CHANGES; } +{ return MAX_ACCEPT; } YY_BREAK case 173: YY_RULE_SETUP #line 300 "conf_lexer.l" -{ return MAX_CHANS_PER_OPER; } +{ return MAX_NICK_CHANGES; } YY_BREAK case 174: YY_RULE_SETUP #line 301 "conf_lexer.l" -{ return MAX_CHANS_PER_USER; } +{ return MAX_CHANS_PER_OPER; } YY_BREAK case 175: YY_RULE_SETUP #line 302 "conf_lexer.l" -{ return MAX_NICK_TIME; } +{ return MAX_CHANS_PER_USER; } YY_BREAK case 176: YY_RULE_SETUP #line 303 "conf_lexer.l" -{ return ANTI_NICK_FLOOD; } +{ return MAX_NICK_TIME; } YY_BREAK case 177: YY_RULE_SETUP #line 304 "conf_lexer.l" -{ return ANTI_SPAM_EXIT_MESSAGE_TIME; } +{ return ANTI_NICK_FLOOD; } YY_BREAK case 178: YY_RULE_SETUP #line 305 "conf_lexer.l" -{ return TS_MAX_DELTA; } +{ return ANTI_SPAM_EXIT_MESSAGE_TIME; } YY_BREAK case 179: YY_RULE_SETUP #line 306 "conf_lexer.l" -{ return TS_WARN_DELTA; } +{ return TS_MAX_DELTA; } YY_BREAK case 180: YY_RULE_SETUP #line 307 "conf_lexer.l" -{ return LINKS_DELAY; } +{ return TS_WARN_DELTA; } YY_BREAK case 181: YY_RULE_SETUP #line 308 "conf_lexer.l" -{ return WARN_NO_NLINE; } +{ return LINKS_DELAY; } YY_BREAK case 182: YY_RULE_SETUP -#line 310 "conf_lexer.l" -{ return STATS_E_DISABLED; } +#line 309 "conf_lexer.l" +{ return WARN_NO_NLINE; } YY_BREAK case 183: YY_RULE_SETUP #line 311 "conf_lexer.l" -{ return STATS_O_OPER_ONLY; } +{ return STATS_E_DISABLED; } YY_BREAK case 184: YY_RULE_SETUP #line 312 "conf_lexer.l" -{ return STATS_K_OPER_ONLY; } +{ return STATS_O_OPER_ONLY; } YY_BREAK case 185: YY_RULE_SETUP #line 313 "conf_lexer.l" -{ return STATS_I_OPER_ONLY; } +{ return STATS_K_OPER_ONLY; } YY_BREAK case 186: YY_RULE_SETUP #line 314 "conf_lexer.l" -{ return STATS_P_OPER_ONLY; } +{ return STATS_I_OPER_ONLY; } YY_BREAK case 187: YY_RULE_SETUP #line 315 "conf_lexer.l" -{ return PACE_WAIT; } +{ return STATS_P_OPER_ONLY; } YY_BREAK case 188: YY_RULE_SETUP #line 316 "conf_lexer.l" -{ return PACE_WAIT_SIMPLE; } +{ return PACE_WAIT; } YY_BREAK case 189: YY_RULE_SETUP #line 317 "conf_lexer.l" -{ return KNOCK_DELAY; } +{ return PACE_WAIT_SIMPLE; } YY_BREAK case 190: YY_RULE_SETUP #line 318 "conf_lexer.l" -{ return KNOCK_DELAY_CHANNEL; } +{ return KNOCK_DELAY; } YY_BREAK case 191: YY_RULE_SETUP #line 319 "conf_lexer.l" -{ return MAX_BANS; } +{ return KNOCK_DELAY_CHANNEL; } YY_BREAK case 192: YY_RULE_SETUP #line 320 "conf_lexer.l" -{ return MODULES; } +{ return MAX_BANS; } YY_BREAK case 193: YY_RULE_SETUP #line 321 "conf_lexer.l" -{ return MODULE; } +{ return MODULES; } YY_BREAK case 194: YY_RULE_SETUP #line 322 "conf_lexer.l" -{ return PATH; } +{ return MODULE; } YY_BREAK case 195: YY_RULE_SETUP #line 323 "conf_lexer.l" -{ return MAX_TARGETS; } +{ return PATH; } YY_BREAK case 196: YY_RULE_SETUP -#line 325 "conf_lexer.l" -{ return T_UNXLINE; } +#line 324 "conf_lexer.l" +{ return MAX_TARGETS; } YY_BREAK case 197: YY_RULE_SETUP #line 326 "conf_lexer.l" -{ return T_UNRESV; } +{ return T_UNXLINE; } YY_BREAK case 198: YY_RULE_SETUP -#line 328 "conf_lexer.l" -{ return OPER_ONLY_UMODES; } +#line 327 "conf_lexer.l" +{ return T_UNRESV; } YY_BREAK case 199: YY_RULE_SETUP #line 329 "conf_lexer.l" -{ return OPER_UMODES; } +{ return OPER_ONLY_UMODES; } YY_BREAK case 200: YY_RULE_SETUP #line 330 "conf_lexer.l" -{ return T_BOTS; } +{ return OPER_UMODES; } YY_BREAK case 201: YY_RULE_SETUP #line 331 "conf_lexer.l" -{ return T_CCONN; } +{ return T_BOTS; } YY_BREAK case 202: YY_RULE_SETUP #line 332 "conf_lexer.l" -{ return T_CCONN_FULL; } +{ return T_CCONN; } YY_BREAK case 203: YY_RULE_SETUP #line 333 "conf_lexer.l" -{ return T_DEAF; } +{ return T_CCONN_FULL; } YY_BREAK case 204: YY_RULE_SETUP #line 334 "conf_lexer.l" -{ return T_DEBUG; } +{ return T_DEAF; } YY_BREAK case 205: YY_RULE_SETUP #line 335 "conf_lexer.l" -{ return T_FULL; } +{ return T_DEBUG; } YY_BREAK case 206: YY_RULE_SETUP #line 336 "conf_lexer.l" -{ return T_SKILL; } +{ return T_FULL; } YY_BREAK case 207: YY_RULE_SETUP #line 337 "conf_lexer.l" -{ return T_NCHANGE; } +{ return T_SKILL; } YY_BREAK case 208: YY_RULE_SETUP #line 338 "conf_lexer.l" -{ return T_REJ; } +{ return T_NCHANGE; } YY_BREAK case 209: YY_RULE_SETUP #line 339 "conf_lexer.l" -{ return T_UNAUTH; } +{ return T_REJ; } YY_BREAK case 210: YY_RULE_SETUP #line 340 "conf_lexer.l" -{ return T_SPY; } +{ return T_UNAUTH; } YY_BREAK case 211: YY_RULE_SETUP #line 341 "conf_lexer.l" -{ return T_EXTERNAL; } +{ return T_SPY; } YY_BREAK case 212: YY_RULE_SETUP #line 342 "conf_lexer.l" -{ return T_OPERWALL; } +{ return T_EXTERNAL; } YY_BREAK case 213: YY_RULE_SETUP #line 343 "conf_lexer.l" -{ return T_SERVNOTICE; } +{ return T_OPERWALL; } YY_BREAK case 214: YY_RULE_SETUP #line 344 "conf_lexer.l" -{ return T_INVISIBLE; } +{ return T_SERVNOTICE; } YY_BREAK case 215: YY_RULE_SETUP #line 345 "conf_lexer.l" -{ return T_WALLOP; } +{ return T_INVISIBLE; } YY_BREAK case 216: YY_RULE_SETUP #line 346 "conf_lexer.l" -{ return T_CALLERID; } +{ return T_WALLOP; } YY_BREAK case 217: YY_RULE_SETUP #line 347 "conf_lexer.l" -{ return T_SOFTCALLERID; } +{ return T_CALLERID; } YY_BREAK case 218: YY_RULE_SETUP #line 348 "conf_lexer.l" -{ return T_LOCOPS; } +{ return T_SOFTCALLERID; } YY_BREAK case 219: YY_RULE_SETUP -#line 350 "conf_lexer.l" -{ return YEARS; } +#line 349 "conf_lexer.l" +{ return T_LOCOPS; } YY_BREAK case 220: YY_RULE_SETUP @@ -3137,7 +3151,7 @@ YY_RULE_SETUP case 221: YY_RULE_SETUP #line 352 "conf_lexer.l" -{ return MONTHS; } +{ return YEARS; } YY_BREAK case 222: YY_RULE_SETUP @@ -3147,7 +3161,7 @@ YY_RULE_SETUP case 223: YY_RULE_SETUP #line 354 "conf_lexer.l" -{ return WEEKS; } +{ return MONTHS; } YY_BREAK case 224: YY_RULE_SETUP @@ -3157,7 +3171,7 @@ YY_RULE_SETUP case 225: YY_RULE_SETUP #line 356 "conf_lexer.l" -{ return DAYS; } +{ return WEEKS; } YY_BREAK case 226: YY_RULE_SETUP @@ -3167,7 +3181,7 @@ YY_RULE_SETUP case 227: YY_RULE_SETUP #line 358 "conf_lexer.l" -{ return HOURS; } +{ return DAYS; } YY_BREAK case 228: YY_RULE_SETUP @@ -3177,7 +3191,7 @@ YY_RULE_SETUP case 229: YY_RULE_SETUP #line 360 "conf_lexer.l" -{ return MINUTES; } +{ return HOURS; } YY_BREAK case 230: YY_RULE_SETUP @@ -3187,7 +3201,7 @@ YY_RULE_SETUP case 231: YY_RULE_SETUP #line 362 "conf_lexer.l" -{ return SECONDS; } +{ return MINUTES; } YY_BREAK case 232: YY_RULE_SETUP @@ -3196,8 +3210,8 @@ YY_RULE_SETUP YY_BREAK case 233: YY_RULE_SETUP -#line 365 "conf_lexer.l" -{ return BYTES; } +#line 364 "conf_lexer.l" +{ return SECONDS; } YY_BREAK case 234: YY_RULE_SETUP @@ -3207,7 +3221,7 @@ YY_RULE_SETUP case 235: YY_RULE_SETUP #line 367 "conf_lexer.l" -{ return KBYTES; } +{ return BYTES; } YY_BREAK case 236: YY_RULE_SETUP @@ -3232,7 +3246,7 @@ YY_RULE_SETUP case 240: YY_RULE_SETUP #line 372 "conf_lexer.l" -{ return MBYTES; } +{ return KBYTES; } YY_BREAK case 241: YY_RULE_SETUP @@ -3257,23 +3271,28 @@ YY_RULE_SETUP case 245: YY_RULE_SETUP #line 377 "conf_lexer.l" -{ return TWODOTS; } +{ return MBYTES; } YY_BREAK case 246: YY_RULE_SETUP -#line 379 "conf_lexer.l" +#line 378 "conf_lexer.l" +{ return TWODOTS; } + YY_BREAK +case 247: +YY_RULE_SETUP +#line 380 "conf_lexer.l" { return yytext[0]; } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 380 "conf_lexer.l" +#line 381 "conf_lexer.l" { if (ieof()) yyterminate(); } YY_BREAK -case 247: +case 248: YY_RULE_SETUP -#line 382 "conf_lexer.l" +#line 383 "conf_lexer.l" ECHO; YY_BREAK -#line 3277 "conf_lexer.c" +#line 3296 "conf_lexer.c" case YY_END_OF_BUFFER: { @@ -3564,7 +3583,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1586 ) + if ( yy_current_state >= 1598 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3592,11 +3611,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1586 ) + if ( yy_current_state >= 1598 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1585); + yy_is_jam = (yy_current_state == 1597); return yy_is_jam ? 0 : yy_current_state; } @@ -4229,7 +4248,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 382 "conf_lexer.l" +#line 383 "conf_lexer.l" diff --git a/src/conf_lexer.l b/src/conf_lexer.l index 3235a6d..8eebcd1 100644 --- a/src/conf_lexer.l +++ b/src/conf_lexer.l @@ -215,6 +215,7 @@ max_number { return MAX_NUMBER; } max_nick_length { return MAX_NICK_LENGTH; } max_topic_length { return MAX_TOPIC_LENGTH; } max_watch { return MAX_WATCH; } +message_locale { return MESSAGE_LOCALE; } min_nonwildcard { return MIN_NONWILDCARD; } min_nonwildcard_simple { return MIN_NONWILDCARD_SIMPLE; } name { return NAME; } diff --git a/src/conf_parser.c b/src/conf_parser.c index c217f88..3a7ca94 100644 --- a/src/conf_parser.c +++ b/src/conf_parser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.7.12-4996" +#define YYBISON_VERSION "2.7" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -296,142 +296,143 @@ extern int yydebug; MAX_TARGETS = 338, MAX_TOPIC_LENGTH = 339, MAX_WATCH = 340, - MIN_NONWILDCARD = 341, - MIN_NONWILDCARD_SIMPLE = 342, - MIN_IDLE = 343, - MAX_IDLE = 344, - RANDOM_IDLE = 345, - HIDE_IDLE_FROM_OPERS = 346, - MODULE = 347, - MODULES = 348, - NAME = 349, - NEED_PASSWORD = 350, - NETWORK_DESC = 351, - NETWORK_NAME = 352, - NICK = 353, - NICK_CHANGES = 354, - NO_CREATE_ON_SPLIT = 355, - NO_JOIN_ON_SPLIT = 356, - NO_OPER_FLOOD = 357, - NO_TILDE = 358, - NUMBER = 359, - NUMBER_PER_CIDR = 360, - NUMBER_PER_IP = 361, - OPERATOR = 362, - OPERS_BYPASS_CALLERID = 363, - OPER_ONLY_UMODES = 364, - OPER_PASS_RESV = 365, - OPER_SPY_T = 366, - OPER_UMODES = 367, - JOIN_FLOOD_COUNT = 368, - JOIN_FLOOD_TIME = 369, - PACE_WAIT = 370, - PACE_WAIT_SIMPLE = 371, - PASSWORD = 372, - PATH = 373, - PING_COOKIE = 374, - PING_TIME = 375, - PORT = 376, - QSTRING = 377, - QUIET_ON_BAN = 378, - REASON = 379, - REDIRPORT = 380, - REDIRSERV = 381, - REGEX_T = 382, - REHASH = 383, - REMOTE = 384, - REMOTEBAN = 385, - RESTRICT_CHANNELS = 386, - RSA_PRIVATE_KEY_FILE = 387, - RSA_PUBLIC_KEY_FILE = 388, - SSL_CERTIFICATE_FILE = 389, - SSL_DH_PARAM_FILE = 390, - T_SSL_CLIENT_METHOD = 391, - T_SSL_SERVER_METHOD = 392, - T_SSLV3 = 393, - T_TLSV1 = 394, - RESV = 395, - RESV_EXEMPT = 396, - SECONDS = 397, - MINUTES = 398, - HOURS = 399, - DAYS = 400, - WEEKS = 401, - MONTHS = 402, - YEARS = 403, - SENDQ = 404, - SEND_PASSWORD = 405, - SERVERHIDE = 406, - SERVERINFO = 407, - IRCD_SID = 408, - TKLINE_EXPIRE_NOTICES = 409, - T_SHARED = 410, - T_CLUSTER = 411, - TYPE = 412, - SHORT_MOTD = 413, - SPOOF = 414, - SPOOF_NOTICE = 415, - STATS_E_DISABLED = 416, - STATS_I_OPER_ONLY = 417, - STATS_K_OPER_ONLY = 418, - STATS_O_OPER_ONLY = 419, - STATS_P_OPER_ONLY = 420, - TBOOL = 421, - TMASKED = 422, - TS_MAX_DELTA = 423, - TS_WARN_DELTA = 424, - TWODOTS = 425, - T_ALL = 426, - T_BOTS = 427, - T_SOFTCALLERID = 428, - T_CALLERID = 429, - T_CCONN = 430, - T_CCONN_FULL = 431, - T_SSL_CIPHER_LIST = 432, - T_DEAF = 433, - T_DEBUG = 434, - T_DLINE = 435, - T_EXTERNAL = 436, - T_FULL = 437, - T_INVISIBLE = 438, - T_IPV4 = 439, - T_IPV6 = 440, - T_LOCOPS = 441, - T_MAX_CLIENTS = 442, - T_NCHANGE = 443, - T_OPERWALL = 444, - T_RECVQ = 445, - T_REJ = 446, - T_SERVER = 447, - T_SERVNOTICE = 448, - T_SET = 449, - T_SKILL = 450, - T_SPY = 451, - T_SSL = 452, - T_UMODES = 453, - T_UNAUTH = 454, - T_UNDLINE = 455, - T_UNLIMITED = 456, - T_UNRESV = 457, - T_UNXLINE = 458, - T_GLOBOPS = 459, - T_WALLOP = 460, - T_WEBIRC = 461, - T_RESTART = 462, - T_SERVICE = 463, - T_SERVICES_NAME = 464, - THROTTLE_TIME = 465, - TRUE_NO_OPER_FLOOD = 466, - UNKLINE = 467, - USER = 468, - USE_EGD = 469, - USE_LOGGING = 470, - VHOST = 471, - VHOST6 = 472, - XLINE = 473, - WARN_NO_NLINE = 474, - T_SIZE = 475, - T_FILE = 476 + MESSAGE_LOCALE = 341, + MIN_NONWILDCARD = 342, + MIN_NONWILDCARD_SIMPLE = 343, + MIN_IDLE = 344, + MAX_IDLE = 345, + RANDOM_IDLE = 346, + HIDE_IDLE_FROM_OPERS = 347, + MODULE = 348, + MODULES = 349, + NAME = 350, + NEED_PASSWORD = 351, + NETWORK_DESC = 352, + NETWORK_NAME = 353, + NICK = 354, + NICK_CHANGES = 355, + NO_CREATE_ON_SPLIT = 356, + NO_JOIN_ON_SPLIT = 357, + NO_OPER_FLOOD = 358, + NO_TILDE = 359, + NUMBER = 360, + NUMBER_PER_CIDR = 361, + NUMBER_PER_IP = 362, + OPERATOR = 363, + OPERS_BYPASS_CALLERID = 364, + OPER_ONLY_UMODES = 365, + OPER_PASS_RESV = 366, + OPER_SPY_T = 367, + OPER_UMODES = 368, + JOIN_FLOOD_COUNT = 369, + JOIN_FLOOD_TIME = 370, + PACE_WAIT = 371, + PACE_WAIT_SIMPLE = 372, + PASSWORD = 373, + PATH = 374, + PING_COOKIE = 375, + PING_TIME = 376, + PORT = 377, + QSTRING = 378, + QUIET_ON_BAN = 379, + REASON = 380, + REDIRPORT = 381, + REDIRSERV = 382, + REGEX_T = 383, + REHASH = 384, + REMOTE = 385, + REMOTEBAN = 386, + RESTRICT_CHANNELS = 387, + RSA_PRIVATE_KEY_FILE = 388, + RSA_PUBLIC_KEY_FILE = 389, + SSL_CERTIFICATE_FILE = 390, + SSL_DH_PARAM_FILE = 391, + T_SSL_CLIENT_METHOD = 392, + T_SSL_SERVER_METHOD = 393, + T_SSLV3 = 394, + T_TLSV1 = 395, + RESV = 396, + RESV_EXEMPT = 397, + SECONDS = 398, + MINUTES = 399, + HOURS = 400, + DAYS = 401, + WEEKS = 402, + MONTHS = 403, + YEARS = 404, + SENDQ = 405, + SEND_PASSWORD = 406, + SERVERHIDE = 407, + SERVERINFO = 408, + IRCD_SID = 409, + TKLINE_EXPIRE_NOTICES = 410, + T_SHARED = 411, + T_CLUSTER = 412, + TYPE = 413, + SHORT_MOTD = 414, + SPOOF = 415, + SPOOF_NOTICE = 416, + STATS_E_DISABLED = 417, + STATS_I_OPER_ONLY = 418, + STATS_K_OPER_ONLY = 419, + STATS_O_OPER_ONLY = 420, + STATS_P_OPER_ONLY = 421, + TBOOL = 422, + TMASKED = 423, + TS_MAX_DELTA = 424, + TS_WARN_DELTA = 425, + TWODOTS = 426, + T_ALL = 427, + T_BOTS = 428, + T_SOFTCALLERID = 429, + T_CALLERID = 430, + T_CCONN = 431, + T_CCONN_FULL = 432, + T_SSL_CIPHER_LIST = 433, + T_DEAF = 434, + T_DEBUG = 435, + T_DLINE = 436, + T_EXTERNAL = 437, + T_FULL = 438, + T_INVISIBLE = 439, + T_IPV4 = 440, + T_IPV6 = 441, + T_LOCOPS = 442, + T_MAX_CLIENTS = 443, + T_NCHANGE = 444, + T_OPERWALL = 445, + T_RECVQ = 446, + T_REJ = 447, + T_SERVER = 448, + T_SERVNOTICE = 449, + T_SET = 450, + T_SKILL = 451, + T_SPY = 452, + T_SSL = 453, + T_UMODES = 454, + T_UNAUTH = 455, + T_UNDLINE = 456, + T_UNLIMITED = 457, + T_UNRESV = 458, + T_UNXLINE = 459, + T_GLOBOPS = 460, + T_WALLOP = 461, + T_WEBIRC = 462, + T_RESTART = 463, + T_SERVICE = 464, + T_SERVICES_NAME = 465, + THROTTLE_TIME = 466, + TRUE_NO_OPER_FLOOD = 467, + UNKLINE = 468, + USER = 469, + USE_EGD = 470, + USE_LOGGING = 471, + VHOST = 472, + VHOST6 = 473, + XLINE = 474, + WARN_NO_NLINE = 475, + T_SIZE = 476, + T_FILE = 477 }; #endif /* Tokens. */ @@ -518,142 +519,143 @@ extern int yydebug; #define MAX_TARGETS 338 #define MAX_TOPIC_LENGTH 339 #define MAX_WATCH 340 -#define MIN_NONWILDCARD 341 -#define MIN_NONWILDCARD_SIMPLE 342 -#define MIN_IDLE 343 -#define MAX_IDLE 344 -#define RANDOM_IDLE 345 -#define HIDE_IDLE_FROM_OPERS 346 -#define MODULE 347 -#define MODULES 348 -#define NAME 349 -#define NEED_PASSWORD 350 -#define NETWORK_DESC 351 -#define NETWORK_NAME 352 -#define NICK 353 -#define NICK_CHANGES 354 -#define NO_CREATE_ON_SPLIT 355 -#define NO_JOIN_ON_SPLIT 356 -#define NO_OPER_FLOOD 357 -#define NO_TILDE 358 -#define NUMBER 359 -#define NUMBER_PER_CIDR 360 -#define NUMBER_PER_IP 361 -#define OPERATOR 362 -#define OPERS_BYPASS_CALLERID 363 -#define OPER_ONLY_UMODES 364 -#define OPER_PASS_RESV 365 -#define OPER_SPY_T 366 -#define OPER_UMODES 367 -#define JOIN_FLOOD_COUNT 368 -#define JOIN_FLOOD_TIME 369 -#define PACE_WAIT 370 -#define PACE_WAIT_SIMPLE 371 -#define PASSWORD 372 -#define PATH 373 -#define PING_COOKIE 374 -#define PING_TIME 375 -#define PORT 376 -#define QSTRING 377 -#define QUIET_ON_BAN 378 -#define REASON 379 -#define REDIRPORT 380 -#define REDIRSERV 381 -#define REGEX_T 382 -#define REHASH 383 -#define REMOTE 384 -#define REMOTEBAN 385 -#define RESTRICT_CHANNELS 386 -#define RSA_PRIVATE_KEY_FILE 387 -#define RSA_PUBLIC_KEY_FILE 388 -#define SSL_CERTIFICATE_FILE 389 -#define SSL_DH_PARAM_FILE 390 -#define T_SSL_CLIENT_METHOD 391 -#define T_SSL_SERVER_METHOD 392 -#define T_SSLV3 393 -#define T_TLSV1 394 -#define RESV 395 -#define RESV_EXEMPT 396 -#define SECONDS 397 -#define MINUTES 398 -#define HOURS 399 -#define DAYS 400 -#define WEEKS 401 -#define MONTHS 402 -#define YEARS 403 -#define SENDQ 404 -#define SEND_PASSWORD 405 -#define SERVERHIDE 406 -#define SERVERINFO 407 -#define IRCD_SID 408 -#define TKLINE_EXPIRE_NOTICES 409 -#define T_SHARED 410 -#define T_CLUSTER 411 -#define TYPE 412 -#define SHORT_MOTD 413 -#define SPOOF 414 -#define SPOOF_NOTICE 415 -#define STATS_E_DISABLED 416 -#define STATS_I_OPER_ONLY 417 -#define STATS_K_OPER_ONLY 418 -#define STATS_O_OPER_ONLY 419 -#define STATS_P_OPER_ONLY 420 -#define TBOOL 421 -#define TMASKED 422 -#define TS_MAX_DELTA 423 -#define TS_WARN_DELTA 424 -#define TWODOTS 425 -#define T_ALL 426 -#define T_BOTS 427 -#define T_SOFTCALLERID 428 -#define T_CALLERID 429 -#define T_CCONN 430 -#define T_CCONN_FULL 431 -#define T_SSL_CIPHER_LIST 432 -#define T_DEAF 433 -#define T_DEBUG 434 -#define T_DLINE 435 -#define T_EXTERNAL 436 -#define T_FULL 437 -#define T_INVISIBLE 438 -#define T_IPV4 439 -#define T_IPV6 440 -#define T_LOCOPS 441 -#define T_MAX_CLIENTS 442 -#define T_NCHANGE 443 -#define T_OPERWALL 444 -#define T_RECVQ 445 -#define T_REJ 446 -#define T_SERVER 447 -#define T_SERVNOTICE 448 -#define T_SET 449 -#define T_SKILL 450 -#define T_SPY 451 -#define T_SSL 452 -#define T_UMODES 453 -#define T_UNAUTH 454 -#define T_UNDLINE 455 -#define T_UNLIMITED 456 -#define T_UNRESV 457 -#define T_UNXLINE 458 -#define T_GLOBOPS 459 -#define T_WALLOP 460 -#define T_WEBIRC 461 -#define T_RESTART 462 -#define T_SERVICE 463 -#define T_SERVICES_NAME 464 -#define THROTTLE_TIME 465 -#define TRUE_NO_OPER_FLOOD 466 -#define UNKLINE 467 -#define USER 468 -#define USE_EGD 469 -#define USE_LOGGING 470 -#define VHOST 471 -#define VHOST6 472 -#define XLINE 473 -#define WARN_NO_NLINE 474 -#define T_SIZE 475 -#define T_FILE 476 +#define MESSAGE_LOCALE 341 +#define MIN_NONWILDCARD 342 +#define MIN_NONWILDCARD_SIMPLE 343 +#define MIN_IDLE 344 +#define MAX_IDLE 345 +#define RANDOM_IDLE 346 +#define HIDE_IDLE_FROM_OPERS 347 +#define MODULE 348 +#define MODULES 349 +#define NAME 350 +#define NEED_PASSWORD 351 +#define NETWORK_DESC 352 +#define NETWORK_NAME 353 +#define NICK 354 +#define NICK_CHANGES 355 +#define NO_CREATE_ON_SPLIT 356 +#define NO_JOIN_ON_SPLIT 357 +#define NO_OPER_FLOOD 358 +#define NO_TILDE 359 +#define NUMBER 360 +#define NUMBER_PER_CIDR 361 +#define NUMBER_PER_IP 362 +#define OPERATOR 363 +#define OPERS_BYPASS_CALLERID 364 +#define OPER_ONLY_UMODES 365 +#define OPER_PASS_RESV 366 +#define OPER_SPY_T 367 +#define OPER_UMODES 368 +#define JOIN_FLOOD_COUNT 369 +#define JOIN_FLOOD_TIME 370 +#define PACE_WAIT 371 +#define PACE_WAIT_SIMPLE 372 +#define PASSWORD 373 +#define PATH 374 +#define PING_COOKIE 375 +#define PING_TIME 376 +#define PORT 377 +#define QSTRING 378 +#define QUIET_ON_BAN 379 +#define REASON 380 +#define REDIRPORT 381 +#define REDIRSERV 382 +#define REGEX_T 383 +#define REHASH 384 +#define REMOTE 385 +#define REMOTEBAN 386 +#define RESTRICT_CHANNELS 387 +#define RSA_PRIVATE_KEY_FILE 388 +#define RSA_PUBLIC_KEY_FILE 389 +#define SSL_CERTIFICATE_FILE 390 +#define SSL_DH_PARAM_FILE 391 +#define T_SSL_CLIENT_METHOD 392 +#define T_SSL_SERVER_METHOD 393 +#define T_SSLV3 394 +#define T_TLSV1 395 +#define RESV 396 +#define RESV_EXEMPT 397 +#define SECONDS 398 +#define MINUTES 399 +#define HOURS 400 +#define DAYS 401 +#define WEEKS 402 +#define MONTHS 403 +#define YEARS 404 +#define SENDQ 405 +#define SEND_PASSWORD 406 +#define SERVERHIDE 407 +#define SERVERINFO 408 +#define IRCD_SID 409 +#define TKLINE_EXPIRE_NOTICES 410 +#define T_SHARED 411 +#define T_CLUSTER 412 +#define TYPE 413 +#define SHORT_MOTD 414 +#define SPOOF 415 +#define SPOOF_NOTICE 416 +#define STATS_E_DISABLED 417 +#define STATS_I_OPER_ONLY 418 +#define STATS_K_OPER_ONLY 419 +#define STATS_O_OPER_ONLY 420 +#define STATS_P_OPER_ONLY 421 +#define TBOOL 422 +#define TMASKED 423 +#define TS_MAX_DELTA 424 +#define TS_WARN_DELTA 425 +#define TWODOTS 426 +#define T_ALL 427 +#define T_BOTS 428 +#define T_SOFTCALLERID 429 +#define T_CALLERID 430 +#define T_CCONN 431 +#define T_CCONN_FULL 432 +#define T_SSL_CIPHER_LIST 433 +#define T_DEAF 434 +#define T_DEBUG 435 +#define T_DLINE 436 +#define T_EXTERNAL 437 +#define T_FULL 438 +#define T_INVISIBLE 439 +#define T_IPV4 440 +#define T_IPV6 441 +#define T_LOCOPS 442 +#define T_MAX_CLIENTS 443 +#define T_NCHANGE 444 +#define T_OPERWALL 445 +#define T_RECVQ 446 +#define T_REJ 447 +#define T_SERVER 448 +#define T_SERVNOTICE 449 +#define T_SET 450 +#define T_SKILL 451 +#define T_SPY 452 +#define T_SSL 453 +#define T_UMODES 454 +#define T_UNAUTH 455 +#define T_UNDLINE 456 +#define T_UNLIMITED 457 +#define T_UNRESV 458 +#define T_UNXLINE 459 +#define T_GLOBOPS 460 +#define T_WALLOP 461 +#define T_WEBIRC 462 +#define T_RESTART 463 +#define T_SERVICE 464 +#define T_SERVICES_NAME 465 +#define THROTTLE_TIME 466 +#define TRUE_NO_OPER_FLOOD 467 +#define UNKLINE 468 +#define USER 469 +#define USE_EGD 470 +#define USE_LOGGING 471 +#define VHOST 472 +#define VHOST6 473 +#define XLINE 474 +#define WARN_NO_NLINE 475 +#define T_SIZE 476 +#define T_FILE 477 @@ -668,7 +670,7 @@ typedef union YYSTYPE /* Line 387 of yacc.c */ -#line 672 "conf_parser.c" +#line 674 "conf_parser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -696,7 +698,7 @@ int yyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 700 "conf_parser.c" +#line 702 "conf_parser.c" #ifdef short # undef short @@ -757,14 +759,6 @@ typedef short int yytype_int16; # endif #endif -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if (! defined __GNUC__ || __GNUC__ < 2 \ - || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) -# define __attribute__(Spec) /* empty */ -# endif -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -772,7 +766,6 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif - /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(N) (N) @@ -925,20 +918,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1201 +#define YYLAST 1211 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 227 +#define YYNTOKENS 228 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 289 +#define YYNNTS 290 /* YYNRULES -- Number of rules. */ -#define YYNRULES 641 +#define YYNRULES 643 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1254 +#define YYNSTATES 1259 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 476 +#define YYMAXUTOK 477 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -950,15 +943,15 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 226, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 222, - 2, 225, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 227, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 223, + 2, 226, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 224, 2, 223, 2, 2, 2, 2, + 2, 2, 2, 225, 2, 224, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -993,7 +986,7 @@ static const yytype_uint8 yytranslate[] = 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221 + 215, 216, 217, 218, 219, 220, 221, 222 }; #if YYDEBUG @@ -1050,293 +1043,293 @@ static const yytype_uint16 yyprhs[] = 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1422, - 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1445, - 1450, 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495, - 1500, 1505, 1510, 1515, 1520, 1525, 1530, 1535, 1540, 1545, - 1550, 1555, 1560, 1565, 1570, 1575, 1580, 1585, 1590, 1595, - 1600, 1605, 1610, 1615, 1620, 1625, 1630, 1635, 1640, 1645, - 1650, 1655, 1660, 1665, 1666, 1672, 1676, 1678, 1680, 1682, - 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698, 1700, 1702, - 1704, 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1719, 1725, - 1729, 1731, 1733, 1735, 1737, 1739, 1741, 1743, 1745, 1747, - 1749, 1751, 1753, 1755, 1757, 1759, 1761, 1763, 1765, 1767, - 1769, 1771, 1776, 1781, 1786, 1792, 1795, 1797, 1799, 1801, - 1803, 1805, 1807, 1809, 1811, 1813, 1815, 1817, 1819, 1821, - 1823, 1825, 1827, 1832, 1837, 1842, 1847, 1852, 1857, 1862, - 1867, 1872, 1877, 1882, 1887, 1892, 1897, 1903, 1906, 1908, - 1910, 1912, 1914, 1916, 1918, 1920, 1922, 1927, 1932, 1937, - 1942, 1947 + 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1442, + 1447, 1452, 1457, 1462, 1467, 1472, 1477, 1482, 1487, 1492, + 1497, 1502, 1507, 1512, 1517, 1522, 1527, 1532, 1537, 1542, + 1547, 1552, 1557, 1562, 1567, 1572, 1577, 1582, 1587, 1592, + 1597, 1602, 1607, 1612, 1617, 1622, 1627, 1632, 1637, 1642, + 1647, 1652, 1657, 1662, 1667, 1672, 1673, 1679, 1683, 1685, + 1687, 1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1705, + 1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1725, + 1726, 1732, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750, + 1752, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770, + 1772, 1774, 1776, 1778, 1783, 1788, 1793, 1799, 1802, 1804, + 1806, 1808, 1810, 1812, 1814, 1816, 1818, 1820, 1822, 1824, + 1826, 1828, 1830, 1832, 1834, 1839, 1844, 1849, 1854, 1859, + 1864, 1869, 1874, 1879, 1884, 1889, 1894, 1899, 1904, 1910, + 1913, 1915, 1917, 1919, 1921, 1923, 1925, 1927, 1929, 1934, + 1939, 1944, 1949, 1954 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 228, 0, -1, -1, 228, 229, -1, 263, -1, 269, - -1, 283, -1, 490, -1, 301, -1, 324, -1, 338, - -1, 239, -1, 507, -1, 353, -1, 360, -1, 364, - -1, 374, -1, 383, -1, 403, -1, 413, -1, 419, - -1, 433, -1, 423, -1, 234, -1, 1, 222, -1, - 1, 223, -1, -1, 231, -1, 104, 230, -1, 104, - 142, 230, -1, 104, 143, 230, -1, 104, 144, 230, - -1, 104, 145, 230, -1, 104, 146, 230, -1, 104, - 147, 230, -1, 104, 148, 230, -1, -1, 233, -1, - 104, 232, -1, 104, 9, 232, -1, 104, 10, 232, - -1, 104, 11, 232, -1, 93, 224, 235, 223, 222, - -1, 235, 236, -1, 236, -1, 237, -1, 238, -1, - 1, 222, -1, 92, 225, 122, 222, -1, 118, 225, - 122, 222, -1, 152, 224, 240, 223, 222, -1, 240, - 241, -1, 241, -1, 252, -1, 257, -1, 262, -1, - 254, -1, 255, -1, 256, -1, 259, -1, 260, -1, - 261, -1, 250, -1, 249, -1, 258, -1, 253, -1, - 248, -1, 242, -1, 243, -1, 251, -1, 1, 222, - -1, 136, 225, 244, 222, -1, 137, 225, 246, 222, - -1, 244, 226, 245, -1, 245, -1, 138, -1, 139, - -1, 246, 226, 247, -1, 247, -1, 138, -1, 139, - -1, 134, 225, 122, 222, -1, 132, 225, 122, 222, - -1, 135, 225, 122, 222, -1, 177, 225, 122, 222, - -1, 94, 225, 122, 222, -1, 153, 225, 122, 222, - -1, 24, 225, 122, 222, -1, 97, 225, 122, 222, - -1, 96, 225, 122, 222, -1, 216, 225, 122, 222, - -1, 217, 225, 122, 222, -1, 187, 225, 104, 222, - -1, 80, 225, 104, 222, -1, 84, 225, 104, 222, - -1, 57, 225, 166, 222, -1, 4, 224, 264, 223, - 222, -1, 264, 265, -1, 265, -1, 266, -1, 268, - -1, 267, -1, 1, 222, -1, 94, 225, 122, 222, - -1, 31, 225, 122, 222, -1, 24, 225, 122, 222, - -1, 71, 224, 270, 223, 222, -1, 270, 271, -1, - 271, -1, 272, -1, 273, -1, 1, 222, -1, 215, - 225, 166, 222, -1, -1, 274, 221, 224, 275, 223, - 222, -1, 275, 276, -1, 276, -1, 277, -1, 279, - -1, 278, -1, 1, 222, -1, 94, 225, 122, 222, - -1, 220, 225, 233, 222, -1, 220, 225, 201, 222, - -1, -1, 157, 280, 225, 281, 222, -1, 281, 226, - 282, -1, 282, -1, 213, -1, 107, -1, 40, -1, - 180, -1, 64, -1, 62, -1, 179, -1, -1, 107, - 284, 224, 285, 223, 222, -1, 285, 286, -1, 286, - -1, 287, -1, 288, -1, 289, -1, 293, -1, 292, - -1, 290, -1, 291, -1, 297, -1, 1, 222, -1, - 94, 225, 122, 222, -1, 213, 225, 122, 222, -1, - 117, 225, 122, 222, -1, 32, 225, 166, 222, -1, - 133, 225, 122, 222, -1, 17, 225, 122, 222, -1, - -1, 198, 294, 225, 295, 222, -1, 295, 226, 296, - -1, 296, -1, 172, -1, 175, -1, 176, -1, 178, - -1, 179, -1, 182, -1, 51, -1, 195, -1, 188, - -1, 191, -1, 199, -1, 196, -1, 181, -1, 189, - -1, 193, -1, 183, -1, 205, -1, 173, -1, 174, - -1, 186, -1, -1, 36, 298, 225, 299, 222, -1, - 299, 226, 300, -1, 300, -1, 47, -1, 129, -1, - 64, -1, 212, -1, 180, -1, 200, -1, 218, -1, - 40, -1, 25, -1, 207, -1, 128, -1, 4, -1, - 99, -1, 189, -1, 204, -1, 111, -1, 130, -1, - 194, -1, 92, -1, -1, 17, 302, 224, 303, 223, - 222, -1, 303, 304, -1, 304, -1, 305, -1, 315, - -1, 316, -1, 306, -1, 317, -1, 307, -1, 308, - -1, 309, -1, 310, -1, 311, -1, 312, -1, 313, - -1, 314, -1, 318, -1, 319, -1, 320, -1, 1, - 222, -1, 94, 225, 122, 222, -1, 120, 225, 231, - 222, -1, 106, 225, 104, 222, -1, 19, 225, 231, - 222, -1, 82, 225, 104, 222, -1, 76, 225, 104, - 222, -1, 78, 225, 104, 222, -1, 77, 225, 104, - 222, -1, 149, 225, 233, 222, -1, 190, 225, 233, - 222, -1, 15, 225, 104, 222, -1, 16, 225, 104, - 222, -1, 105, 225, 104, 222, -1, 88, 225, 231, - 222, -1, 89, 225, 231, 222, -1, -1, 36, 321, - 225, 322, 222, -1, 322, 226, 323, -1, 323, -1, - 90, -1, 91, -1, -1, 70, 325, 224, 330, 223, - 222, -1, -1, 36, 327, 225, 328, 222, -1, 328, - 226, 329, -1, 329, -1, 197, -1, 51, -1, 192, - -1, 330, 331, -1, 331, -1, 332, -1, 326, -1, - 336, -1, 337, -1, 1, 222, -1, -1, 121, 225, - 334, 333, 222, -1, 334, 226, 335, -1, 335, -1, - 104, -1, 104, 170, 104, -1, 61, 225, 122, 222, - -1, 56, 225, 122, 222, -1, -1, 48, 339, 224, - 340, 223, 222, -1, 340, 341, -1, 341, -1, 342, - -1, 343, -1, 344, -1, 346, -1, 350, -1, 351, - -1, 352, -1, 345, -1, 1, 222, -1, 213, 225, - 122, 222, -1, 117, 225, 122, 222, -1, 17, 225, - 122, 222, -1, 32, 225, 166, 222, -1, -1, 36, - 347, 225, 348, 222, -1, 348, 226, 349, -1, 349, - -1, 160, -1, 33, -1, 65, -1, 49, -1, 13, - -1, 103, -1, 43, -1, 141, -1, 206, -1, 95, - -1, 159, 225, 122, 222, -1, 126, 225, 122, 222, - -1, 125, 225, 104, 222, -1, -1, 140, 354, 224, - 355, 223, 222, -1, 355, 356, -1, 356, -1, 357, - -1, 358, -1, 359, -1, 1, 222, -1, 124, 225, - 122, 222, -1, 14, 225, 122, 222, -1, 98, 225, - 122, 222, -1, 208, 224, 361, 223, 222, -1, 361, - 362, -1, 362, -1, 363, -1, 1, -1, 94, 225, - 122, 222, -1, -1, 155, 365, 224, 366, 223, 222, - -1, 366, 367, -1, 367, -1, 368, -1, 369, -1, - 370, -1, 1, 222, -1, 94, 225, 122, 222, -1, - 213, 225, 122, 222, -1, -1, 157, 371, 225, 372, - 222, -1, 372, 226, 373, -1, 373, -1, 64, -1, - 212, -1, 180, -1, 200, -1, 218, -1, 203, -1, - 140, -1, 202, -1, 186, -1, 171, -1, -1, 156, - 375, 224, 376, 223, 222, -1, 376, 377, -1, 377, - -1, 378, -1, 379, -1, 1, 222, -1, 94, 225, - 122, 222, -1, -1, 157, 380, 225, 381, 222, -1, - 381, 226, 382, -1, 382, -1, 64, -1, 212, -1, - 180, -1, 200, -1, 218, -1, 203, -1, 140, -1, - 202, -1, 186, -1, 171, -1, -1, 18, 384, 224, - 385, 223, 222, -1, 385, 386, -1, 386, -1, 387, - -1, 388, -1, 389, -1, 390, -1, 391, -1, 393, - -1, 392, -1, 402, -1, 394, -1, 399, -1, 400, - -1, 401, -1, 398, -1, 1, 222, -1, 94, 225, - 122, 222, -1, 56, 225, 122, 222, -1, 216, 225, - 122, 222, -1, 150, 225, 122, 222, -1, 3, 225, - 122, 222, -1, 121, 225, 104, 222, -1, 5, 225, - 184, 222, -1, 5, 225, 185, 222, -1, -1, 36, - 395, 225, 396, 222, -1, 396, 226, 397, -1, 397, - -1, 8, -1, 197, -1, 32, 225, 166, 222, -1, - 58, 225, 122, 222, -1, 68, 225, 122, 222, -1, - 17, 225, 122, 222, -1, 177, 225, 122, 222, -1, - -1, 62, 404, 224, 409, 223, 222, -1, -1, 157, - 406, 225, 407, 222, -1, 407, 226, 408, -1, 408, - -1, 127, -1, 409, 410, -1, 410, -1, 411, -1, - 412, -1, 405, -1, 1, -1, 213, 225, 122, 222, - -1, 124, 225, 122, 222, -1, -1, 23, 414, 224, - 415, 223, 222, -1, 415, 416, -1, 416, -1, 417, - -1, 418, -1, 1, -1, 61, 225, 122, 222, -1, - 124, 225, 122, 222, -1, 34, 224, 420, 223, 222, - -1, 420, 421, -1, 421, -1, 422, -1, 1, -1, - 61, 225, 122, 222, -1, -1, 38, 424, 224, 429, - 223, 222, -1, -1, 157, 426, 225, 427, 222, -1, - 427, 226, 428, -1, 428, -1, 127, -1, 429, 430, - -1, 430, -1, 431, -1, 432, -1, 425, -1, 1, - -1, 94, 225, 122, 222, -1, 124, 225, 122, 222, - -1, 39, 224, 434, 223, 222, -1, 434, 435, -1, - 435, -1, 444, -1, 445, -1, 447, -1, 448, -1, - 449, -1, 450, -1, 451, -1, 452, -1, 453, -1, - 454, -1, 443, -1, 456, -1, 457, -1, 471, -1, - 459, -1, 461, -1, 463, -1, 462, -1, 466, -1, - 460, -1, 467, -1, 468, -1, 469, -1, 470, -1, - 483, -1, 472, -1, 473, -1, 474, -1, 479, -1, - 464, -1, 465, -1, 489, -1, 487, -1, 488, -1, - 446, -1, 478, -1, 455, -1, 476, -1, 477, -1, - 442, -1, 437, -1, 438, -1, 439, -1, 440, -1, - 441, -1, 458, -1, 436, -1, 475, -1, 1, -1, - 85, 225, 104, 222, -1, 42, 225, 166, 222, -1, - 41, 225, 231, 222, -1, 44, 225, 231, 222, -1, - 45, 225, 104, 222, -1, 46, 225, 104, 222, -1, - 154, 225, 166, 222, -1, 63, 225, 231, 222, -1, - 55, 225, 166, 222, -1, 59, 225, 166, 222, -1, - 28, 225, 166, 222, -1, 35, 225, 166, 222, -1, - 6, 225, 166, 222, -1, 81, 225, 231, 222, -1, - 79, 225, 104, 222, -1, 72, 225, 104, 222, -1, - 7, 225, 231, 222, -1, 169, 225, 231, 222, -1, - 168, 225, 231, 222, -1, 50, 225, 104, 222, -1, - 60, 225, 166, 222, -1, 219, 225, 166, 222, -1, - 161, 225, 166, 222, -1, 164, 225, 166, 222, -1, - 165, 225, 166, 222, -1, 163, 225, 166, 222, -1, - 163, 225, 167, 222, -1, 162, 225, 166, 222, -1, - 162, 225, 167, 222, -1, 115, 225, 231, 222, -1, - 12, 225, 231, 222, -1, 108, 225, 166, 222, -1, - 116, 225, 231, 222, -1, 158, 225, 166, 222, -1, - 102, 225, 166, 222, -1, 211, 225, 166, 222, -1, - 110, 225, 166, 222, -1, 29, 225, 104, 222, -1, - 83, 225, 104, 222, -1, 214, 225, 166, 222, -1, - 30, 225, 122, 222, -1, 209, 225, 122, 222, -1, - 119, 225, 166, 222, -1, 26, 225, 166, 222, -1, - 210, 225, 231, 222, -1, -1, 112, 480, 225, 481, - 222, -1, 481, 226, 482, -1, 482, -1, 172, -1, - 175, -1, 176, -1, 178, -1, 179, -1, 182, -1, - 51, -1, 195, -1, 188, -1, 191, -1, 199, -1, - 196, -1, 181, -1, 189, -1, 193, -1, 183, -1, - 205, -1, 173, -1, 174, -1, 186, -1, -1, 109, - 484, 225, 485, 222, -1, 485, 226, 486, -1, 486, - -1, 172, -1, 175, -1, 176, -1, 178, -1, 179, - -1, 182, -1, 195, -1, 51, -1, 188, -1, 191, - -1, 199, -1, 196, -1, 181, -1, 189, -1, 193, - -1, 183, -1, 205, -1, 173, -1, 174, -1, 186, - -1, 86, 225, 104, 222, -1, 87, 225, 104, 222, - -1, 20, 225, 104, 222, -1, 14, 224, 491, 223, - 222, -1, 491, 492, -1, 492, -1, 500, -1, 495, - -1, 496, -1, 497, -1, 498, -1, 499, -1, 501, - -1, 502, -1, 503, -1, 494, -1, 504, -1, 505, - -1, 506, -1, 493, -1, 1, -1, 27, 225, 166, - 222, -1, 131, 225, 166, 222, -1, 66, 225, 231, - 222, -1, 67, 225, 231, 222, -1, 75, 225, 104, - 222, -1, 74, 225, 104, 222, -1, 123, 225, 166, - 222, -1, 73, 225, 104, 222, -1, 22, 225, 104, - 222, -1, 21, 225, 104, 222, -1, 100, 225, 166, - 222, -1, 101, 225, 166, 222, -1, 113, 225, 104, - 222, -1, 114, 225, 231, 222, -1, 151, 224, 508, - 223, 222, -1, 508, 509, -1, 509, -1, 510, -1, - 511, -1, 513, -1, 514, -1, 512, -1, 515, -1, - 1, -1, 37, 225, 166, 222, -1, 54, 225, 166, - 222, -1, 52, 225, 122, 222, -1, 69, 225, 231, - 222, -1, 51, 225, 166, 222, -1, 53, 225, 166, - 222, -1 + 229, 0, -1, -1, 229, 230, -1, 264, -1, 270, + -1, 284, -1, 492, -1, 302, -1, 325, -1, 339, + -1, 240, -1, 509, -1, 354, -1, 361, -1, 365, + -1, 375, -1, 384, -1, 404, -1, 414, -1, 420, + -1, 434, -1, 424, -1, 235, -1, 1, 223, -1, + 1, 224, -1, -1, 232, -1, 105, 231, -1, 105, + 143, 231, -1, 105, 144, 231, -1, 105, 145, 231, + -1, 105, 146, 231, -1, 105, 147, 231, -1, 105, + 148, 231, -1, 105, 149, 231, -1, -1, 234, -1, + 105, 233, -1, 105, 9, 233, -1, 105, 10, 233, + -1, 105, 11, 233, -1, 94, 225, 236, 224, 223, + -1, 236, 237, -1, 237, -1, 238, -1, 239, -1, + 1, 223, -1, 93, 226, 123, 223, -1, 119, 226, + 123, 223, -1, 153, 225, 241, 224, 223, -1, 241, + 242, -1, 242, -1, 253, -1, 258, -1, 263, -1, + 255, -1, 256, -1, 257, -1, 260, -1, 261, -1, + 262, -1, 251, -1, 250, -1, 259, -1, 254, -1, + 249, -1, 243, -1, 244, -1, 252, -1, 1, 223, + -1, 137, 226, 245, 223, -1, 138, 226, 247, 223, + -1, 245, 227, 246, -1, 246, -1, 139, -1, 140, + -1, 247, 227, 248, -1, 248, -1, 139, -1, 140, + -1, 135, 226, 123, 223, -1, 133, 226, 123, 223, + -1, 136, 226, 123, 223, -1, 178, 226, 123, 223, + -1, 95, 226, 123, 223, -1, 154, 226, 123, 223, + -1, 24, 226, 123, 223, -1, 98, 226, 123, 223, + -1, 97, 226, 123, 223, -1, 217, 226, 123, 223, + -1, 218, 226, 123, 223, -1, 188, 226, 105, 223, + -1, 80, 226, 105, 223, -1, 84, 226, 105, 223, + -1, 57, 226, 167, 223, -1, 4, 225, 265, 224, + 223, -1, 265, 266, -1, 266, -1, 267, -1, 269, + -1, 268, -1, 1, 223, -1, 95, 226, 123, 223, + -1, 31, 226, 123, 223, -1, 24, 226, 123, 223, + -1, 71, 225, 271, 224, 223, -1, 271, 272, -1, + 272, -1, 273, -1, 274, -1, 1, 223, -1, 216, + 226, 167, 223, -1, -1, 275, 222, 225, 276, 224, + 223, -1, 276, 277, -1, 277, -1, 278, -1, 280, + -1, 279, -1, 1, 223, -1, 95, 226, 123, 223, + -1, 221, 226, 234, 223, -1, 221, 226, 202, 223, + -1, -1, 158, 281, 226, 282, 223, -1, 282, 227, + 283, -1, 283, -1, 214, -1, 108, -1, 40, -1, + 181, -1, 64, -1, 62, -1, 180, -1, -1, 108, + 285, 225, 286, 224, 223, -1, 286, 287, -1, 287, + -1, 288, -1, 289, -1, 290, -1, 294, -1, 293, + -1, 291, -1, 292, -1, 298, -1, 1, 223, -1, + 95, 226, 123, 223, -1, 214, 226, 123, 223, -1, + 118, 226, 123, 223, -1, 32, 226, 167, 223, -1, + 134, 226, 123, 223, -1, 17, 226, 123, 223, -1, + -1, 199, 295, 226, 296, 223, -1, 296, 227, 297, + -1, 297, -1, 173, -1, 176, -1, 177, -1, 179, + -1, 180, -1, 183, -1, 51, -1, 196, -1, 189, + -1, 192, -1, 200, -1, 197, -1, 182, -1, 190, + -1, 194, -1, 184, -1, 206, -1, 174, -1, 175, + -1, 187, -1, -1, 36, 299, 226, 300, 223, -1, + 300, 227, 301, -1, 301, -1, 47, -1, 130, -1, + 64, -1, 213, -1, 181, -1, 201, -1, 219, -1, + 40, -1, 25, -1, 208, -1, 129, -1, 4, -1, + 100, -1, 190, -1, 205, -1, 112, -1, 131, -1, + 195, -1, 93, -1, -1, 17, 303, 225, 304, 224, + 223, -1, 304, 305, -1, 305, -1, 306, -1, 316, + -1, 317, -1, 307, -1, 318, -1, 308, -1, 309, + -1, 310, -1, 311, -1, 312, -1, 313, -1, 314, + -1, 315, -1, 319, -1, 320, -1, 321, -1, 1, + 223, -1, 95, 226, 123, 223, -1, 121, 226, 232, + 223, -1, 107, 226, 105, 223, -1, 19, 226, 232, + 223, -1, 82, 226, 105, 223, -1, 76, 226, 105, + 223, -1, 78, 226, 105, 223, -1, 77, 226, 105, + 223, -1, 150, 226, 234, 223, -1, 191, 226, 234, + 223, -1, 15, 226, 105, 223, -1, 16, 226, 105, + 223, -1, 106, 226, 105, 223, -1, 89, 226, 232, + 223, -1, 90, 226, 232, 223, -1, -1, 36, 322, + 226, 323, 223, -1, 323, 227, 324, -1, 324, -1, + 91, -1, 92, -1, -1, 70, 326, 225, 331, 224, + 223, -1, -1, 36, 328, 226, 329, 223, -1, 329, + 227, 330, -1, 330, -1, 198, -1, 51, -1, 193, + -1, 331, 332, -1, 332, -1, 333, -1, 327, -1, + 337, -1, 338, -1, 1, 223, -1, -1, 122, 226, + 335, 334, 223, -1, 335, 227, 336, -1, 336, -1, + 105, -1, 105, 171, 105, -1, 61, 226, 123, 223, + -1, 56, 226, 123, 223, -1, -1, 48, 340, 225, + 341, 224, 223, -1, 341, 342, -1, 342, -1, 343, + -1, 344, -1, 345, -1, 347, -1, 351, -1, 352, + -1, 353, -1, 346, -1, 1, 223, -1, 214, 226, + 123, 223, -1, 118, 226, 123, 223, -1, 17, 226, + 123, 223, -1, 32, 226, 167, 223, -1, -1, 36, + 348, 226, 349, 223, -1, 349, 227, 350, -1, 350, + -1, 161, -1, 33, -1, 65, -1, 49, -1, 13, + -1, 104, -1, 43, -1, 142, -1, 207, -1, 96, + -1, 160, 226, 123, 223, -1, 127, 226, 123, 223, + -1, 126, 226, 105, 223, -1, -1, 141, 355, 225, + 356, 224, 223, -1, 356, 357, -1, 357, -1, 358, + -1, 359, -1, 360, -1, 1, 223, -1, 125, 226, + 123, 223, -1, 14, 226, 123, 223, -1, 99, 226, + 123, 223, -1, 209, 225, 362, 224, 223, -1, 362, + 363, -1, 363, -1, 364, -1, 1, -1, 95, 226, + 123, 223, -1, -1, 156, 366, 225, 367, 224, 223, + -1, 367, 368, -1, 368, -1, 369, -1, 370, -1, + 371, -1, 1, 223, -1, 95, 226, 123, 223, -1, + 214, 226, 123, 223, -1, -1, 158, 372, 226, 373, + 223, -1, 373, 227, 374, -1, 374, -1, 64, -1, + 213, -1, 181, -1, 201, -1, 219, -1, 204, -1, + 141, -1, 203, -1, 187, -1, 172, -1, -1, 157, + 376, 225, 377, 224, 223, -1, 377, 378, -1, 378, + -1, 379, -1, 380, -1, 1, 223, -1, 95, 226, + 123, 223, -1, -1, 158, 381, 226, 382, 223, -1, + 382, 227, 383, -1, 383, -1, 64, -1, 213, -1, + 181, -1, 201, -1, 219, -1, 204, -1, 141, -1, + 203, -1, 187, -1, 172, -1, -1, 18, 385, 225, + 386, 224, 223, -1, 386, 387, -1, 387, -1, 388, + -1, 389, -1, 390, -1, 391, -1, 392, -1, 394, + -1, 393, -1, 403, -1, 395, -1, 400, -1, 401, + -1, 402, -1, 399, -1, 1, 223, -1, 95, 226, + 123, 223, -1, 56, 226, 123, 223, -1, 217, 226, + 123, 223, -1, 151, 226, 123, 223, -1, 3, 226, + 123, 223, -1, 122, 226, 105, 223, -1, 5, 226, + 185, 223, -1, 5, 226, 186, 223, -1, -1, 36, + 396, 226, 397, 223, -1, 397, 227, 398, -1, 398, + -1, 8, -1, 198, -1, 32, 226, 167, 223, -1, + 58, 226, 123, 223, -1, 68, 226, 123, 223, -1, + 17, 226, 123, 223, -1, 178, 226, 123, 223, -1, + -1, 62, 405, 225, 410, 224, 223, -1, -1, 158, + 407, 226, 408, 223, -1, 408, 227, 409, -1, 409, + -1, 128, -1, 410, 411, -1, 411, -1, 412, -1, + 413, -1, 406, -1, 1, -1, 214, 226, 123, 223, + -1, 125, 226, 123, 223, -1, -1, 23, 415, 225, + 416, 224, 223, -1, 416, 417, -1, 417, -1, 418, + -1, 419, -1, 1, -1, 61, 226, 123, 223, -1, + 125, 226, 123, 223, -1, 34, 225, 421, 224, 223, + -1, 421, 422, -1, 422, -1, 423, -1, 1, -1, + 61, 226, 123, 223, -1, -1, 38, 425, 225, 430, + 224, 223, -1, -1, 158, 427, 226, 428, 223, -1, + 428, 227, 429, -1, 429, -1, 128, -1, 430, 431, + -1, 431, -1, 432, -1, 433, -1, 426, -1, 1, + -1, 95, 226, 123, 223, -1, 125, 226, 123, 223, + -1, 39, 225, 435, 224, 223, -1, 435, 436, -1, + 436, -1, 445, -1, 446, -1, 448, -1, 449, -1, + 450, -1, 451, -1, 452, -1, 453, -1, 454, -1, + 455, -1, 444, -1, 457, -1, 458, -1, 473, -1, + 460, -1, 462, -1, 464, -1, 463, -1, 467, -1, + 461, -1, 468, -1, 469, -1, 470, -1, 471, -1, + 472, -1, 485, -1, 474, -1, 475, -1, 476, -1, + 481, -1, 465, -1, 466, -1, 491, -1, 489, -1, + 490, -1, 447, -1, 480, -1, 456, -1, 478, -1, + 479, -1, 443, -1, 438, -1, 439, -1, 440, -1, + 441, -1, 442, -1, 459, -1, 437, -1, 477, -1, + 1, -1, 85, 226, 105, 223, -1, 42, 226, 167, + 223, -1, 41, 226, 232, 223, -1, 44, 226, 232, + 223, -1, 45, 226, 105, 223, -1, 46, 226, 105, + 223, -1, 155, 226, 167, 223, -1, 63, 226, 232, + 223, -1, 55, 226, 167, 223, -1, 59, 226, 167, + 223, -1, 28, 226, 167, 223, -1, 35, 226, 167, + 223, -1, 6, 226, 167, 223, -1, 81, 226, 232, + 223, -1, 79, 226, 105, 223, -1, 72, 226, 105, + 223, -1, 7, 226, 232, 223, -1, 170, 226, 232, + 223, -1, 169, 226, 232, 223, -1, 50, 226, 105, + 223, -1, 60, 226, 167, 223, -1, 220, 226, 167, + 223, -1, 162, 226, 167, 223, -1, 165, 226, 167, + 223, -1, 166, 226, 167, 223, -1, 164, 226, 167, + 223, -1, 164, 226, 168, 223, -1, 163, 226, 167, + 223, -1, 163, 226, 168, 223, -1, 116, 226, 232, + 223, -1, 12, 226, 232, 223, -1, 109, 226, 167, + 223, -1, 117, 226, 232, 223, -1, 159, 226, 167, + 223, -1, 103, 226, 167, 223, -1, 212, 226, 167, + 223, -1, 111, 226, 167, 223, -1, 86, 226, 123, + 223, -1, 29, 226, 105, 223, -1, 83, 226, 105, + 223, -1, 215, 226, 167, 223, -1, 30, 226, 123, + 223, -1, 210, 226, 123, 223, -1, 120, 226, 167, + 223, -1, 26, 226, 167, 223, -1, 211, 226, 232, + 223, -1, -1, 113, 482, 226, 483, 223, -1, 483, + 227, 484, -1, 484, -1, 173, -1, 176, -1, 177, + -1, 179, -1, 180, -1, 183, -1, 51, -1, 196, + -1, 189, -1, 192, -1, 200, -1, 197, -1, 182, + -1, 190, -1, 194, -1, 184, -1, 206, -1, 174, + -1, 175, -1, 187, -1, -1, 110, 486, 226, 487, + 223, -1, 487, 227, 488, -1, 488, -1, 173, -1, + 176, -1, 177, -1, 179, -1, 180, -1, 183, -1, + 196, -1, 51, -1, 189, -1, 192, -1, 200, -1, + 197, -1, 182, -1, 190, -1, 194, -1, 184, -1, + 206, -1, 174, -1, 175, -1, 187, -1, 87, 226, + 105, 223, -1, 88, 226, 105, 223, -1, 20, 226, + 105, 223, -1, 14, 225, 493, 224, 223, -1, 493, + 494, -1, 494, -1, 502, -1, 497, -1, 498, -1, + 499, -1, 500, -1, 501, -1, 503, -1, 504, -1, + 505, -1, 496, -1, 506, -1, 507, -1, 508, -1, + 495, -1, 1, -1, 27, 226, 167, 223, -1, 132, + 226, 167, 223, -1, 66, 226, 232, 223, -1, 67, + 226, 232, 223, -1, 75, 226, 105, 223, -1, 74, + 226, 105, 223, -1, 124, 226, 167, 223, -1, 73, + 226, 105, 223, -1, 22, 226, 105, 223, -1, 21, + 226, 105, 223, -1, 101, 226, 167, 223, -1, 102, + 226, 167, 223, -1, 114, 226, 105, 223, -1, 115, + 226, 232, 223, -1, 152, 225, 510, 224, 223, -1, + 510, 511, -1, 511, -1, 512, -1, 513, -1, 515, + -1, 516, -1, 514, -1, 517, -1, 1, -1, 37, + 226, 167, 223, -1, 54, 226, 167, 223, -1, 52, + 226, 123, 223, -1, 69, 226, 232, 223, -1, 51, + 226, 167, 223, -1, 53, 226, 167, 223, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 363, 363, 364, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 392, 392, 393, 397, - 401, 405, 409, 413, 417, 421, 427, 427, 428, 429, - 430, 431, 438, 441, 441, 442, 442, 442, 444, 450, - 457, 459, 459, 460, 460, 461, 461, 462, 462, 463, - 463, 464, 464, 465, 465, 466, 466, 467, 467, 468, - 469, 472, 473, 475, 475, 476, 482, 490, 490, 491, - 497, 505, 547, 606, 634, 642, 657, 672, 681, 695, - 704, 732, 762, 787, 809, 831, 840, 842, 842, 843, - 843, 844, 844, 846, 855, 864, 876, 877, 877, 879, - 879, 880, 882, 889, 889, 902, 903, 905, 905, 906, - 906, 908, 916, 919, 925, 924, 930, 930, 931, 935, - 939, 943, 947, 951, 955, 966, 965, 1042, 1042, 1043, - 1043, 1043, 1044, 1044, 1044, 1045, 1045, 1045, 1047, 1053, - 1059, 1065, 1076, 1082, 1089, 1088, 1094, 1094, 1095, 1099, - 1103, 1107, 1111, 1115, 1119, 1123, 1127, 1131, 1135, 1139, - 1143, 1147, 1151, 1155, 1159, 1163, 1167, 1171, 1178, 1177, - 1183, 1183, 1184, 1188, 1192, 1196, 1200, 1204, 1208, 1212, - 1216, 1220, 1224, 1228, 1232, 1236, 1240, 1244, 1248, 1252, - 1256, 1267, 1266, 1327, 1327, 1328, 1329, 1329, 1330, 1331, - 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1338, 1339, 1340, - 1341, 1342, 1344, 1350, 1356, 1362, 1368, 1374, 1380, 1386, - 1392, 1398, 1405, 1411, 1417, 1423, 1432, 1442, 1441, 1447, - 1447, 1448, 1452, 1463, 1462, 1469, 1468, 1473, 1473, 1474, - 1478, 1482, 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1491, - 1491, 1493, 1493, 1495, 1509, 1529, 1535, 1545, 1544, 1586, - 1586, 1587, 1587, 1587, 1587, 1588, 1588, 1588, 1589, 1589, - 1591, 1597, 1603, 1609, 1621, 1620, 1626, 1626, 1627, 1631, - 1635, 1639, 1643, 1647, 1651, 1655, 1659, 1663, 1669, 1683, - 1692, 1706, 1705, 1720, 1720, 1721, 1721, 1721, 1721, 1723, - 1729, 1735, 1744, 1746, 1746, 1747, 1747, 1749, 1765, 1764, - 1789, 1789, 1790, 1790, 1790, 1790, 1792, 1798, 1818, 1817, - 1823, 1823, 1824, 1828, 1832, 1836, 1840, 1844, 1848, 1852, - 1856, 1860, 1870, 1869, 1890, 1890, 1891, 1891, 1891, 1893, - 1900, 1899, 1905, 1905, 1906, 1910, 1914, 1918, 1922, 1926, - 1930, 1934, 1938, 1942, 1952, 1951, 2017, 2017, 2018, 2018, - 2018, 2019, 2019, 2020, 2020, 2020, 2021, 2021, 2021, 2022, - 2022, 2023, 2025, 2031, 2037, 2043, 2056, 2069, 2075, 2079, - 2088, 2087, 2092, 2092, 2093, 2097, 2103, 2114, 2120, 2126, - 2132, 2148, 2147, 2210, 2209, 2215, 2215, 2216, 2222, 2222, - 2223, 2223, 2223, 2223, 2225, 2245, 2255, 2254, 2281, 2281, - 2282, 2282, 2282, 2284, 2290, 2299, 2301, 2301, 2302, 2302, - 2304, 2322, 2321, 2367, 2366, 2372, 2372, 2373, 2379, 2379, - 2380, 2380, 2380, 2380, 2382, 2388, 2397, 2400, 2400, 2401, - 2401, 2402, 2402, 2403, 2403, 2404, 2404, 2405, 2405, 2406, - 2407, 2408, 2408, 2409, 2409, 2410, 2410, 2411, 2411, 2412, - 2412, 2413, 2413, 2414, 2414, 2415, 2415, 2416, 2416, 2417, - 2417, 2418, 2418, 2419, 2420, 2420, 2421, 2422, 2423, 2423, - 2424, 2424, 2425, 2426, 2427, 2428, 2428, 2429, 2432, 2437, - 2443, 2449, 2455, 2460, 2465, 2470, 2475, 2480, 2485, 2490, - 2495, 2500, 2505, 2510, 2515, 2520, 2525, 2531, 2542, 2547, - 2552, 2557, 2562, 2567, 2570, 2575, 2578, 2583, 2588, 2593, - 2598, 2603, 2608, 2613, 2618, 2623, 2628, 2633, 2638, 2647, - 2656, 2661, 2666, 2672, 2671, 2676, 2676, 2677, 2680, 2683, - 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713, - 2716, 2719, 2722, 2725, 2728, 2731, 2734, 2740, 2739, 2744, - 2744, 2745, 2748, 2751, 2754, 2757, 2760, 2763, 2766, 2769, - 2772, 2775, 2778, 2781, 2784, 2787, 2790, 2793, 2796, 2799, - 2802, 2807, 2812, 2817, 2826, 2829, 2829, 2830, 2831, 2831, - 2832, 2832, 2833, 2833, 2834, 2835, 2835, 2836, 2837, 2837, - 2838, 2838, 2840, 2845, 2850, 2855, 2860, 2865, 2870, 2875, - 2880, 2885, 2890, 2895, 2900, 2905, 2913, 2916, 2916, 2917, - 2917, 2918, 2919, 2919, 2920, 2921, 2923, 2929, 2935, 2944, - 2958, 2964 + 0, 364, 364, 365, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 393, 393, 394, 398, + 402, 406, 410, 414, 418, 422, 428, 428, 429, 430, + 431, 432, 439, 442, 442, 443, 443, 443, 445, 451, + 458, 460, 460, 461, 461, 462, 462, 463, 463, 464, + 464, 465, 465, 466, 466, 467, 467, 468, 468, 469, + 470, 473, 474, 476, 476, 477, 483, 491, 491, 492, + 498, 506, 548, 607, 635, 643, 658, 673, 682, 696, + 705, 733, 763, 788, 810, 832, 841, 843, 843, 844, + 844, 845, 845, 847, 856, 865, 877, 878, 878, 880, + 880, 881, 883, 890, 890, 903, 904, 906, 906, 907, + 907, 909, 917, 920, 926, 925, 931, 931, 932, 936, + 940, 944, 948, 952, 956, 967, 966, 1043, 1043, 1044, + 1044, 1044, 1045, 1045, 1045, 1046, 1046, 1046, 1048, 1054, + 1060, 1066, 1077, 1083, 1090, 1089, 1095, 1095, 1096, 1100, + 1104, 1108, 1112, 1116, 1120, 1124, 1128, 1132, 1136, 1140, + 1144, 1148, 1152, 1156, 1160, 1164, 1168, 1172, 1179, 1178, + 1184, 1184, 1185, 1189, 1193, 1197, 1201, 1205, 1209, 1213, + 1217, 1221, 1225, 1229, 1233, 1237, 1241, 1245, 1249, 1253, + 1257, 1268, 1267, 1328, 1328, 1329, 1330, 1330, 1331, 1332, + 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1339, 1340, 1341, + 1342, 1343, 1345, 1351, 1357, 1363, 1369, 1375, 1381, 1387, + 1393, 1399, 1406, 1412, 1418, 1424, 1433, 1443, 1442, 1448, + 1448, 1449, 1453, 1464, 1463, 1470, 1469, 1474, 1474, 1475, + 1479, 1483, 1489, 1489, 1490, 1490, 1490, 1490, 1490, 1492, + 1492, 1494, 1494, 1496, 1510, 1530, 1536, 1546, 1545, 1587, + 1587, 1588, 1588, 1588, 1588, 1589, 1589, 1589, 1590, 1590, + 1592, 1598, 1604, 1610, 1622, 1621, 1627, 1627, 1628, 1632, + 1636, 1640, 1644, 1648, 1652, 1656, 1660, 1664, 1670, 1684, + 1693, 1707, 1706, 1721, 1721, 1722, 1722, 1722, 1722, 1724, + 1730, 1736, 1745, 1747, 1747, 1748, 1748, 1750, 1766, 1765, + 1790, 1790, 1791, 1791, 1791, 1791, 1793, 1799, 1819, 1818, + 1824, 1824, 1825, 1829, 1833, 1837, 1841, 1845, 1849, 1853, + 1857, 1861, 1871, 1870, 1891, 1891, 1892, 1892, 1892, 1894, + 1901, 1900, 1906, 1906, 1907, 1911, 1915, 1919, 1923, 1927, + 1931, 1935, 1939, 1943, 1953, 1952, 2018, 2018, 2019, 2019, + 2019, 2020, 2020, 2021, 2021, 2021, 2022, 2022, 2022, 2023, + 2023, 2024, 2026, 2032, 2038, 2044, 2057, 2070, 2076, 2080, + 2089, 2088, 2093, 2093, 2094, 2098, 2104, 2115, 2121, 2127, + 2133, 2149, 2148, 2211, 2210, 2216, 2216, 2217, 2223, 2223, + 2224, 2224, 2224, 2224, 2226, 2246, 2256, 2255, 2282, 2282, + 2283, 2283, 2283, 2285, 2291, 2300, 2302, 2302, 2303, 2303, + 2305, 2323, 2322, 2368, 2367, 2373, 2373, 2374, 2380, 2380, + 2381, 2381, 2381, 2381, 2383, 2389, 2398, 2401, 2401, 2402, + 2402, 2403, 2403, 2404, 2404, 2405, 2405, 2406, 2406, 2407, + 2408, 2409, 2409, 2410, 2410, 2411, 2411, 2412, 2412, 2413, + 2413, 2414, 2414, 2415, 2416, 2416, 2417, 2417, 2418, 2418, + 2419, 2419, 2420, 2420, 2421, 2422, 2422, 2423, 2424, 2425, + 2425, 2426, 2426, 2427, 2428, 2429, 2430, 2430, 2431, 2434, + 2439, 2445, 2451, 2457, 2462, 2467, 2472, 2477, 2482, 2487, + 2492, 2497, 2502, 2507, 2512, 2517, 2522, 2527, 2533, 2544, + 2549, 2554, 2559, 2564, 2569, 2572, 2577, 2580, 2585, 2590, + 2595, 2600, 2605, 2610, 2615, 2620, 2625, 2636, 2641, 2646, + 2651, 2660, 2669, 2674, 2679, 2685, 2684, 2689, 2689, 2690, + 2693, 2696, 2699, 2702, 2705, 2708, 2711, 2714, 2717, 2720, + 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2753, + 2752, 2757, 2757, 2758, 2761, 2764, 2767, 2770, 2773, 2776, + 2779, 2782, 2785, 2788, 2791, 2794, 2797, 2800, 2803, 2806, + 2809, 2812, 2815, 2820, 2825, 2830, 2839, 2842, 2842, 2843, + 2844, 2844, 2845, 2845, 2846, 2846, 2847, 2848, 2848, 2849, + 2850, 2850, 2851, 2851, 2853, 2858, 2863, 2868, 2873, 2878, + 2883, 2888, 2893, 2898, 2903, 2908, 2913, 2918, 2926, 2929, + 2929, 2930, 2930, 2931, 2932, 2932, 2933, 2934, 2936, 2942, + 2948, 2957, 2971, 2977 }; #endif @@ -1364,10 +1357,10 @@ static const char *const yytname[] = "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", - "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_NONWILDCARD", - "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE", "RANDOM_IDLE", - "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME", "NEED_PASSWORD", - "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES", + "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MESSAGE_LOCALE", + "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE", + "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME", + "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES", "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV", @@ -1466,17 +1459,17 @@ static const char *const yytname[] = "general_opers_bypass_callerid", "general_pace_wait_simple", "general_short_motd", "general_no_oper_flood", "general_true_no_oper_flood", "general_oper_pass_resv", - "general_dots_in_ident", "general_max_targets", "general_use_egd", - "general_egdpool_path", "general_services_name", "general_ping_cookie", - "general_disable_auth", "general_throttle_time", "general_oper_umodes", - "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes", - "$@26", "umode_items", "umode_item", "general_min_nonwildcard", - "general_min_nonwildcard_simple", "general_default_floodcount", - "channel_entry", "channel_items", "channel_item", - "channel_disable_fake_channels", "channel_restrict_channels", - "channel_knock_delay", "channel_knock_delay_channel", - "channel_max_chans_per_user", "channel_max_chans_per_oper", - "channel_quiet_on_ban", "channel_max_bans", + "general_message_locale", "general_dots_in_ident", "general_max_targets", + "general_use_egd", "general_egdpool_path", "general_services_name", + "general_ping_cookie", "general_disable_auth", "general_throttle_time", + "general_oper_umodes", "$@25", "umode_oitems", "umode_oitem", + "general_oper_only_umodes", "$@26", "umode_items", "umode_item", + "general_min_nonwildcard", "general_min_nonwildcard_simple", + "general_default_floodcount", "channel_entry", "channel_items", + "channel_item", "channel_disable_fake_channels", + "channel_restrict_channels", "channel_knock_delay", + "channel_knock_delay_channel", "channel_max_chans_per_user", + "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans", "channel_default_split_user_count", "channel_default_split_server_count", "channel_no_create_on_split", "channel_no_join_on_split", "channel_jflood_count", "channel_jflood_time", "serverhide_entry", @@ -1514,78 +1507,78 @@ static const yytype_uint16 yytoknum[] = 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 59, 125, 123, 61, 44 + 475, 476, 477, 59, 125, 123, 61, 44 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 227, 228, 228, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 230, 230, 231, 231, - 231, 231, 231, 231, 231, 231, 232, 232, 233, 233, - 233, 233, 234, 235, 235, 236, 236, 236, 237, 238, - 239, 240, 240, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 242, 243, 244, 244, 245, 245, 246, 246, 247, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 264, 265, - 265, 265, 265, 266, 267, 268, 269, 270, 270, 271, - 271, 271, 272, 274, 273, 275, 275, 276, 276, 276, - 276, 277, 278, 278, 280, 279, 281, 281, 282, 282, - 282, 282, 282, 282, 282, 284, 283, 285, 285, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 287, 288, - 289, 290, 291, 292, 294, 293, 295, 295, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, 298, 297, - 299, 299, 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, - 300, 302, 301, 303, 303, 304, 304, 304, 304, 304, - 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, - 304, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 321, 320, 322, - 322, 323, 323, 325, 324, 327, 326, 328, 328, 329, - 329, 329, 330, 330, 331, 331, 331, 331, 331, 333, - 332, 334, 334, 335, 335, 336, 337, 339, 338, 340, - 340, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 342, 343, 344, 345, 347, 346, 348, 348, 349, 349, - 349, 349, 349, 349, 349, 349, 349, 349, 350, 351, - 352, 354, 353, 355, 355, 356, 356, 356, 356, 357, - 358, 359, 360, 361, 361, 362, 362, 363, 365, 364, - 366, 366, 367, 367, 367, 367, 368, 369, 371, 370, - 372, 372, 373, 373, 373, 373, 373, 373, 373, 373, - 373, 373, 375, 374, 376, 376, 377, 377, 377, 378, - 380, 379, 381, 381, 382, 382, 382, 382, 382, 382, - 382, 382, 382, 382, 384, 383, 385, 385, 386, 386, - 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, - 386, 386, 387, 388, 389, 390, 391, 392, 393, 393, - 395, 394, 396, 396, 397, 397, 398, 399, 400, 401, - 402, 404, 403, 406, 405, 407, 407, 408, 409, 409, - 410, 410, 410, 410, 411, 412, 414, 413, 415, 415, - 416, 416, 416, 417, 418, 419, 420, 420, 421, 421, - 422, 424, 423, 426, 425, 427, 427, 428, 429, 429, - 430, 430, 430, 430, 431, 432, 433, 434, 434, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 435, 436, 437, + 0, 228, 229, 229, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 231, 231, 232, 232, + 232, 232, 232, 232, 232, 232, 233, 233, 234, 234, + 234, 234, 235, 236, 236, 237, 237, 237, 238, 239, + 240, 241, 241, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 243, 244, 245, 245, 246, 246, 247, 247, 248, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 265, 266, + 266, 266, 266, 267, 268, 269, 270, 271, 271, 272, + 272, 272, 273, 275, 274, 276, 276, 277, 277, 277, + 277, 278, 279, 279, 281, 280, 282, 282, 283, 283, + 283, 283, 283, 283, 283, 285, 284, 286, 286, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 288, 289, + 290, 291, 292, 293, 295, 294, 296, 296, 297, 297, + 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, + 297, 297, 297, 297, 297, 297, 297, 297, 299, 298, + 300, 300, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 303, 302, 304, 304, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 322, 321, 323, + 323, 324, 324, 326, 325, 328, 327, 329, 329, 330, + 330, 330, 331, 331, 332, 332, 332, 332, 332, 334, + 333, 335, 335, 336, 336, 337, 338, 340, 339, 341, + 341, 342, 342, 342, 342, 342, 342, 342, 342, 342, + 343, 344, 345, 346, 348, 347, 349, 349, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 351, 352, + 353, 355, 354, 356, 356, 357, 357, 357, 357, 358, + 359, 360, 361, 362, 362, 363, 363, 364, 366, 365, + 367, 367, 368, 368, 368, 368, 369, 370, 372, 371, + 373, 373, 374, 374, 374, 374, 374, 374, 374, 374, + 374, 374, 376, 375, 377, 377, 378, 378, 378, 379, + 381, 380, 382, 382, 383, 383, 383, 383, 383, 383, + 383, 383, 383, 383, 385, 384, 386, 386, 387, 387, + 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, + 387, 387, 388, 389, 390, 391, 392, 393, 394, 394, + 396, 395, 397, 397, 398, 398, 399, 400, 401, 402, + 403, 405, 404, 407, 406, 408, 408, 409, 410, 410, + 411, 411, 411, 411, 412, 413, 415, 414, 416, 416, + 417, 417, 417, 418, 419, 420, 421, 421, 422, 422, + 423, 425, 424, 427, 426, 428, 428, 429, 430, 430, + 431, 431, 431, 431, 432, 433, 434, 435, 435, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 461, 462, 462, 463, 464, 465, + 458, 459, 460, 461, 462, 462, 463, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 480, 479, 481, 481, 482, 482, 482, - 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, - 482, 482, 482, 482, 482, 482, 482, 484, 483, 485, - 485, 486, 486, 486, 486, 486, 486, 486, 486, 486, - 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, - 486, 487, 488, 489, 490, 491, 491, 492, 492, 492, - 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, - 492, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 508, 509, - 509, 509, 509, 509, 509, 509, 510, 511, 512, 513, - 514, 515 + 476, 477, 478, 479, 480, 482, 481, 483, 483, 484, + 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, + 484, 484, 484, 484, 484, 484, 484, 484, 484, 486, + 485, 487, 487, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 489, 490, 491, 492, 493, 493, 494, + 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, + 494, 494, 494, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 510, 511, 511, 511, 511, 511, 511, 511, 512, 513, + 514, 515, 516, 517 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1640,22 +1633,22 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 0, 5, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 5, 3, + 4, 4, 4, 4, 4, 0, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 5, 2, 1, 1, 1, 1, + 1, 1, 1, 4, 4, 4, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 5, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, - 4, 4 + 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 5, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, + 4, 4, 4, 4 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1670,326 +1663,326 @@ static const yytype_uint16 yydefact[] = 20, 22, 21, 7, 12, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 98, 99, 101, 100, 611, 0, 0, 0, + 0, 0, 98, 99, 101, 100, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 596, 610, 606, 598, 599, 600, 601, 602, - 597, 603, 604, 605, 607, 608, 609, 0, 0, 0, - 429, 0, 0, 427, 428, 0, 497, 0, 0, 0, + 0, 0, 598, 612, 608, 600, 601, 602, 603, 604, + 599, 605, 606, 607, 609, 610, 611, 0, 0, 0, + 429, 0, 0, 427, 428, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 567, 0, 543, 0, 0, + 0, 0, 0, 0, 0, 0, 569, 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 448, 495, 489, 490, - 491, 492, 493, 488, 459, 449, 450, 483, 451, 452, - 453, 454, 455, 456, 457, 458, 485, 460, 461, 494, - 463, 468, 464, 466, 465, 478, 479, 467, 469, 470, - 471, 472, 462, 474, 475, 476, 496, 486, 487, 484, - 477, 473, 481, 482, 480, 0, 0, 0, 0, 0, - 0, 108, 109, 110, 0, 0, 0, 0, 0, 44, - 45, 46, 0, 0, 635, 0, 0, 0, 0, 0, - 0, 0, 628, 629, 630, 633, 631, 632, 634, 0, + 0, 0, 0, 0, 0, 0, 0, 448, 496, 490, + 491, 492, 493, 494, 489, 459, 449, 450, 484, 451, + 452, 453, 454, 455, 456, 457, 458, 486, 460, 461, + 495, 463, 468, 464, 466, 465, 479, 480, 467, 469, + 470, 471, 472, 473, 462, 475, 476, 477, 497, 487, + 488, 485, 478, 474, 482, 483, 481, 0, 0, 0, + 0, 0, 0, 108, 109, 110, 0, 0, 0, 0, + 0, 44, 45, 46, 0, 0, 637, 0, 0, 0, + 0, 0, 0, 0, 630, 631, 632, 635, 633, 634, + 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, - 68, 66, 63, 62, 69, 53, 65, 56, 57, 58, - 54, 64, 59, 60, 61, 55, 0, 0, 316, 0, - 0, 314, 315, 102, 0, 0, 0, 0, 97, 0, + 52, 67, 68, 66, 63, 62, 69, 53, 65, 56, + 57, 58, 54, 64, 59, 60, 61, 55, 0, 0, + 316, 0, 0, 314, 315, 102, 0, 0, 0, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 0, + 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 204, 205, 208, 210, 211, + 212, 213, 214, 215, 216, 217, 206, 207, 209, 218, + 219, 220, 0, 0, 0, 0, 0, 390, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 367, 368, 369, + 370, 371, 372, 374, 373, 376, 380, 377, 378, 379, + 375, 422, 0, 0, 0, 419, 420, 421, 0, 0, + 426, 443, 0, 0, 433, 442, 0, 439, 440, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 595, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 208, 210, 211, 212, 213, - 214, 215, 216, 217, 206, 207, 209, 218, 219, 220, - 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 367, 368, 369, 370, 371, - 372, 374, 373, 376, 380, 377, 378, 379, 375, 422, - 0, 0, 0, 419, 420, 421, 0, 0, 426, 443, - 0, 0, 433, 442, 0, 439, 440, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 447, 0, 0, 0, 284, 0, 0, 0, 0, 0, + 0, 270, 271, 272, 273, 278, 274, 275, 276, 277, + 413, 0, 403, 0, 412, 0, 409, 410, 411, 0, + 245, 0, 0, 0, 255, 0, 253, 254, 256, 257, + 111, 0, 0, 107, 0, 47, 0, 0, 0, 43, + 0, 0, 0, 178, 0, 0, 0, 154, 0, 0, + 138, 139, 140, 141, 144, 145, 143, 142, 146, 0, + 0, 0, 0, 0, 304, 305, 306, 307, 0, 0, + 0, 0, 0, 0, 0, 629, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 447, 0, 0, - 0, 284, 0, 0, 0, 0, 0, 0, 270, 271, - 272, 273, 278, 274, 275, 276, 277, 413, 0, 403, - 0, 412, 0, 409, 410, 411, 0, 245, 0, 0, - 0, 255, 0, 253, 254, 256, 257, 111, 0, 0, - 107, 0, 47, 0, 0, 0, 43, 0, 0, 0, - 178, 0, 0, 0, 154, 0, 0, 138, 139, 140, - 141, 144, 145, 143, 142, 146, 0, 0, 0, 0, - 0, 304, 305, 306, 307, 0, 0, 0, 0, 0, - 0, 0, 627, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 0, 328, 0, + 0, 321, 322, 323, 324, 0, 0, 350, 0, 345, + 346, 347, 0, 0, 313, 0, 0, 0, 96, 0, + 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 596, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 0, 0, 328, 0, 0, 321, 322, - 323, 324, 0, 0, 350, 0, 345, 346, 347, 0, - 0, 313, 0, 0, 0, 96, 0, 0, 0, 26, + 0, 0, 0, 203, 381, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 0, 0, 418, 0, 425, 0, 0, 0, 0, + 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 594, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 203, 381, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, - 418, 0, 425, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 446, 279, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 269, 0, 0, 0, 0, 408, 258, + 0, 0, 0, 0, 0, 252, 0, 106, 0, 0, + 0, 42, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 308, 0, 0, 0, 0, 303, 0, + 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 76, 0, 74, + 79, 80, 0, 78, 0, 0, 0, 0, 0, 50, + 325, 0, 0, 0, 0, 320, 348, 0, 0, 0, + 344, 0, 312, 105, 104, 103, 623, 622, 614, 26, + 26, 26, 26, 26, 26, 26, 28, 27, 616, 617, + 621, 619, 618, 624, 625, 626, 627, 620, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 446, 279, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, - 0, 0, 0, 0, 408, 258, 0, 0, 0, 0, - 0, 252, 0, 106, 0, 0, 0, 42, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 137, 308, - 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, - 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 76, 0, 74, 79, 80, 0, 78, - 0, 0, 0, 0, 0, 50, 325, 0, 0, 0, - 0, 320, 348, 0, 0, 0, 344, 0, 312, 105, - 104, 103, 621, 620, 612, 26, 26, 26, 26, 26, - 26, 26, 28, 27, 614, 615, 619, 617, 616, 622, - 623, 624, 625, 618, 613, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, - 417, 430, 0, 0, 0, 432, 510, 514, 528, 593, - 541, 508, 535, 538, 509, 500, 499, 501, 502, 503, - 517, 506, 507, 518, 505, 513, 512, 511, 536, 498, - 591, 592, 532, 529, 578, 571, 588, 589, 572, 573, - 574, 575, 583, 576, 586, 590, 579, 584, 580, 585, - 577, 582, 581, 587, 0, 570, 534, 553, 547, 564, - 565, 548, 549, 550, 551, 559, 552, 562, 566, 555, - 560, 556, 561, 554, 558, 557, 563, 0, 546, 527, - 530, 540, 504, 531, 520, 525, 526, 523, 524, 521, - 522, 516, 515, 539, 542, 533, 537, 519, 0, 0, - 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, - 402, 0, 0, 0, 263, 259, 262, 244, 112, 0, - 0, 124, 0, 0, 116, 117, 119, 118, 48, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, - 0, 0, 302, 636, 640, 638, 641, 637, 639, 87, - 95, 93, 94, 85, 89, 88, 82, 81, 83, 71, - 0, 72, 0, 86, 84, 92, 90, 91, 0, 0, - 0, 319, 0, 0, 343, 317, 29, 30, 31, 32, - 33, 34, 35, 232, 233, 225, 241, 242, 0, 240, - 227, 229, 228, 226, 235, 236, 222, 234, 224, 223, - 36, 36, 36, 38, 37, 230, 231, 386, 388, 389, - 399, 396, 394, 395, 0, 393, 383, 397, 398, 382, - 387, 385, 400, 384, 423, 424, 444, 445, 437, 0, - 436, 568, 0, 544, 0, 282, 283, 292, 289, 294, - 291, 290, 297, 293, 295, 288, 296, 0, 287, 281, - 300, 299, 298, 280, 415, 407, 0, 406, 414, 250, - 251, 249, 0, 248, 266, 265, 0, 0, 0, 120, - 0, 0, 0, 0, 115, 153, 151, 193, 190, 189, - 182, 184, 200, 194, 197, 192, 183, 198, 186, 195, - 199, 187, 196, 191, 185, 188, 0, 181, 148, 150, - 152, 164, 158, 175, 176, 159, 160, 161, 162, 170, - 163, 173, 177, 166, 171, 167, 172, 165, 169, 168, - 174, 0, 157, 149, 310, 311, 309, 73, 77, 326, - 332, 338, 341, 334, 340, 335, 339, 337, 333, 336, - 0, 331, 327, 349, 354, 360, 363, 356, 362, 357, - 361, 359, 355, 358, 0, 353, 238, 0, 39, 40, - 41, 391, 0, 434, 0, 569, 545, 285, 0, 404, - 0, 246, 0, 264, 261, 260, 0, 0, 0, 0, - 114, 179, 0, 155, 0, 329, 0, 351, 0, 239, - 392, 435, 286, 405, 247, 121, 130, 133, 132, 129, - 134, 131, 128, 0, 127, 123, 122, 180, 156, 330, - 352, 125, 0, 126 + 0, 365, 0, 0, 417, 430, 0, 0, 0, 432, + 511, 515, 529, 595, 543, 509, 537, 540, 510, 501, + 500, 502, 503, 504, 518, 507, 508, 519, 506, 514, + 513, 512, 538, 499, 536, 593, 594, 533, 530, 580, + 573, 590, 591, 574, 575, 576, 577, 585, 578, 588, + 592, 581, 586, 582, 587, 579, 584, 583, 589, 0, + 572, 535, 555, 549, 566, 567, 550, 551, 552, 553, + 561, 554, 564, 568, 557, 562, 558, 563, 556, 560, + 559, 565, 0, 548, 528, 531, 542, 505, 532, 521, + 526, 527, 524, 525, 522, 523, 517, 516, 541, 544, + 534, 539, 520, 0, 0, 0, 0, 0, 0, 0, + 0, 268, 0, 0, 0, 402, 0, 0, 0, 263, + 259, 262, 244, 112, 0, 0, 124, 0, 0, 116, + 117, 119, 118, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 136, 0, 0, 0, 302, 638, 642, + 640, 643, 639, 641, 87, 95, 93, 94, 85, 89, + 88, 82, 81, 83, 71, 0, 72, 0, 86, 84, + 92, 90, 91, 0, 0, 0, 319, 0, 0, 343, + 317, 29, 30, 31, 32, 33, 34, 35, 232, 233, + 225, 241, 242, 0, 240, 227, 229, 228, 226, 235, + 236, 222, 234, 224, 223, 36, 36, 36, 38, 37, + 230, 231, 386, 388, 389, 399, 396, 394, 395, 0, + 393, 383, 397, 398, 382, 387, 385, 400, 384, 423, + 424, 444, 445, 437, 0, 436, 570, 0, 546, 0, + 282, 283, 292, 289, 294, 291, 290, 297, 293, 295, + 288, 296, 0, 287, 281, 300, 299, 298, 280, 415, + 407, 0, 406, 414, 250, 251, 249, 0, 248, 266, + 265, 0, 0, 0, 120, 0, 0, 0, 0, 115, + 153, 151, 193, 190, 189, 182, 184, 200, 194, 197, + 192, 183, 198, 186, 195, 199, 187, 196, 191, 185, + 188, 0, 181, 148, 150, 152, 164, 158, 175, 176, + 159, 160, 161, 162, 170, 163, 173, 177, 166, 171, + 167, 172, 165, 169, 168, 174, 0, 157, 149, 310, + 311, 309, 73, 77, 326, 332, 338, 341, 334, 340, + 335, 339, 337, 333, 336, 0, 331, 327, 349, 354, + 360, 363, 356, 362, 357, 361, 359, 355, 358, 0, + 353, 238, 0, 39, 40, 41, 391, 0, 434, 0, + 571, 547, 285, 0, 404, 0, 246, 0, 264, 261, + 260, 0, 0, 0, 0, 114, 179, 0, 155, 0, + 329, 0, 351, 0, 239, 392, 435, 286, 405, 247, + 121, 130, 133, 132, 129, 134, 131, 128, 0, 127, + 123, 122, 180, 156, 330, 352, 125, 0, 126 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 24, 792, 793, 1043, 1044, 25, 228, 229, - 230, 231, 26, 267, 268, 269, 270, 754, 755, 758, - 759, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 27, 71, 72, 73, - 74, 75, 28, 220, 221, 222, 223, 224, 963, 964, - 965, 966, 967, 1111, 1243, 1244, 29, 60, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 725, 1161, 1162, - 515, 721, 1136, 1137, 30, 49, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 596, 1028, 1029, 31, 57, 481, - 706, 1102, 1103, 482, 483, 484, 1108, 955, 956, 485, - 486, 32, 55, 457, 458, 459, 460, 461, 462, 463, - 692, 1087, 1088, 464, 465, 466, 33, 61, 520, 521, - 522, 523, 524, 34, 290, 291, 292, 35, 64, 557, - 558, 559, 560, 561, 768, 1180, 1181, 36, 65, 565, - 566, 567, 568, 774, 1194, 1195, 37, 50, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 616, 1054, - 1055, 374, 375, 376, 377, 378, 38, 56, 471, 701, - 1096, 1097, 472, 473, 474, 475, 39, 51, 382, 383, - 384, 385, 40, 112, 113, 114, 41, 53, 393, 635, - 1069, 1070, 394, 395, 396, 397, 42, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 428, 917, 918, 211, 426, 894, 895, - 212, 213, 214, 43, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 44, 241, 242, 243, 244, 245, 246, 247, 248 + -1, 1, 24, 796, 797, 1048, 1049, 25, 230, 231, + 232, 233, 26, 269, 270, 271, 272, 758, 759, 762, + 763, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 27, 71, 72, 73, + 74, 75, 28, 222, 223, 224, 225, 226, 968, 969, + 970, 971, 972, 1116, 1248, 1249, 29, 60, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 729, 1166, 1167, + 518, 725, 1141, 1142, 30, 49, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 599, 1033, 1034, 31, 57, 484, + 710, 1107, 1108, 485, 486, 487, 1113, 960, 961, 488, + 489, 32, 55, 460, 461, 462, 463, 464, 465, 466, + 696, 1092, 1093, 467, 468, 469, 33, 61, 523, 524, + 525, 526, 527, 34, 292, 293, 294, 35, 64, 560, + 561, 562, 563, 564, 772, 1185, 1186, 36, 65, 568, + 569, 570, 571, 778, 1199, 1200, 37, 50, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 619, 1059, + 1060, 376, 377, 378, 379, 380, 38, 56, 474, 705, + 1101, 1102, 475, 476, 477, 478, 39, 51, 384, 385, + 386, 387, 40, 112, 113, 114, 41, 53, 395, 638, + 1074, 1075, 396, 397, 398, 399, 42, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 431, 922, 923, 213, 429, 899, + 900, 214, 215, 216, 43, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 44, 243, 244, 245, 246, 247, 248, 249, 250 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -820 +#define YYPACT_NINF -954 static const yytype_int16 yypact[] = { - -820, 585, -820, -131, -219, -213, -820, -820, -820, -202, - -820, -195, -820, -820, -820, -178, -151, -820, -820, -149, - -146, -820, -820, -130, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, 31, 836, -121, - -118, -109, 27, -83, 358, -77, -68, -62, 63, 206, - -59, -42, 495, 405, -37, -11, 18, -185, -155, -98, - -9, 30, -820, -820, -820, -820, -820, 41, 43, 45, - 56, 60, 67, 78, 80, 83, 88, 104, 107, 112, - 129, 151, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, 629, 423, 59, - -820, 133, 19, -820, -820, 11, -820, 138, 141, 142, - 143, 147, 148, 150, 155, 157, 158, 160, 165, 169, - 170, 171, 172, 180, 184, 185, 186, 187, 189, 190, - 194, 195, 198, 200, 202, -820, 207, -820, 208, 210, - 211, 217, 223, 224, 226, 227, 228, 229, 231, 232, - 233, 236, 239, 240, 244, 125, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, 321, 176, 295, 14, 250, - 76, -820, -820, -820, 105, 23, 251, 253, 25, -820, - -820, -820, 471, 65, -820, 257, 258, 259, 262, 267, - 272, 5, -820, -820, -820, -820, -820, -820, -820, 39, - 273, 275, 279, 281, 283, 284, 286, 288, 289, 290, - 293, 299, 300, 305, 306, 308, 310, 175, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, 7, 17, -820, 318, - 40, -820, -820, -820, 254, 309, 428, 128, -820, 297, - 447, 386, 449, 449, 450, 452, 455, 394, 396, 459, - 449, 400, 404, 349, -820, 356, 354, 355, 359, -820, - 362, 365, 368, 369, 370, 371, 373, 376, 380, 381, - 382, 384, 8, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - 361, 385, 387, 389, 390, -820, 391, 392, 393, 395, - 402, 403, 407, 409, 313, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - 411, 413, 20, -820, -820, -820, 489, 419, -820, -820, - 417, 424, -820, -820, 24, -820, -820, -820, 463, 449, - 449, 521, 486, 488, 553, 537, 494, 449, 497, 449, - 557, 562, 563, 502, 504, 506, 449, 570, 571, 449, - 572, 575, 576, 577, 516, 517, 460, 520, 462, 449, - 449, 524, 529, 530, 531, -45, 174, 532, 533, 449, - 449, 578, 449, 536, 538, 544, 490, -820, 492, 496, - 499, -820, 508, 513, 514, 518, 522, 33, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, 523, -820, - 525, -820, 37, -820, -820, -820, 493, -820, 526, 527, - 528, -820, 15, -820, -820, -820, -820, -820, 547, 498, - -820, 539, -820, 594, 597, 500, -820, 534, 541, 545, - -820, 546, 551, 555, -820, 558, 16, -820, -820, -820, - -820, -820, -820, -820, -820, -820, 535, 559, 561, 564, - 81, -820, -820, -820, -820, 579, 580, 620, 589, 607, - 449, 565, -820, -820, 666, 624, 688, 695, 684, 685, - 687, 690, 692, 694, 64, 204, 708, 712, 698, 713, - 718, 625, -820, 626, 617, -820, 619, 44, -820, -820, - -820, -820, 628, 627, -820, 52, -820, -820, -820, 731, - 632, -820, 634, 637, 639, -820, 640, 642, 643, 584, - 652, 653, 654, 655, 656, 657, 659, 662, 663, 664, - 665, -820, -820, 784, 785, 449, 668, 786, 787, 790, - 791, 449, 449, 774, 793, 795, 449, 796, 796, 679, - -820, -820, 782, 162, 783, 740, 682, 792, 794, 797, - 798, 804, 799, 800, 801, 691, -820, 802, 803, 693, - -820, 696, -820, 805, 806, 701, 707, -820, 709, 710, - 711, 716, 717, 719, 720, 721, 722, 723, 724, 725, - 726, 729, 730, 732, 733, 734, 735, 736, 738, 739, - 741, 742, 743, 744, 746, 747, 586, 748, 622, 749, - 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, -820, -820, - 808, 768, 715, 813, 849, 840, 868, 869, 770, -820, - 871, 769, 873, 775, -820, -820, 771, 876, 877, 896, - 779, -820, 780, -820, 29, 781, 788, -820, -820, 882, - 839, 789, 884, 885, 886, 807, 887, 809, -820, -820, - 889, 890, 891, 811, -820, 812, 814, 815, 816, 817, - 818, -820, 819, 820, 821, 822, 823, 824, 825, 826, - 827, 828, -820, -820, -187, -820, -820, -820, -186, -820, - 829, 830, 831, 832, 833, -820, -820, 893, 810, 894, - 834, -820, -820, 895, 835, 837, -820, 841, -820, -820, - -820, -820, -820, -820, -820, 449, 449, 449, 449, 449, - 449, 449, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, 842, 843, 844, 270, 845, - 846, 847, 848, 850, 851, 852, 853, 854, 855, 4, - 856, 857, -820, 858, 859, 860, 861, 862, -4, 863, - 864, 865, 866, 867, 870, 872, 874, -820, 875, 878, - -820, -820, 879, 880, 892, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -179, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -159, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, 881, 883, - 548, 888, 897, 898, 899, 900, -820, 901, 902, 903, - -820, -2, 904, 905, 920, 686, -820, -820, -820, 906, - 907, -820, 908, 97, -820, -820, -820, -820, -820, -820, - 909, 912, 446, 913, 914, 915, 650, 916, -820, 917, - 918, 919, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - 64, -820, 204, -820, -820, -820, -820, -820, 921, 491, - 922, -820, 923, 680, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -154, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - 796, 796, 796, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -139, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -133, - -820, -820, 586, -820, 622, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -26, -820, -820, - -820, -820, -820, -820, -820, -820, -7, -820, -820, -820, - -820, -820, 36, -820, -820, -820, 924, 896, 925, -820, - 935, 926, -97, 927, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, 51, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, 54, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - 93, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, 99, -820, -820, 270, -820, -820, - -820, -820, -4, -820, 892, -820, -820, -820, 548, -820, - 902, -820, -2, -820, -820, -820, 928, 315, 930, 931, - -820, -820, 446, -820, 650, -820, 491, -820, 680, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, 101, -820, -820, -820, -820, -820, -820, - -820, -820, 315, -820 + -954, 667, -954, -157, -216, -210, -954, -954, -954, -202, + -954, -199, -954, -954, -954, -196, -188, -954, -954, -183, + -169, -954, -954, -161, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, 23, 794, -150, + -147, -145, 12, -121, 408, -115, -105, -100, 50, 89, + -91, -75, 332, 324, -52, -45, 6, -53, -39, -19, + -3, 19, -954, -954, -954, -954, -954, 34, 37, 39, + 62, 69, 80, 83, 85, 97, 112, 118, 125, 131, + 142, 292, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, 621, 526, 7, + -954, 153, 18, -954, -954, 31, -954, 156, 161, 162, + 163, 165, 166, 169, 170, 171, 172, 174, 176, 177, + 179, 184, 186, 187, 197, 199, 200, 201, 203, 204, + 206, 209, 214, 215, 216, 218, -954, 219, -954, 220, + 221, 222, 239, 243, 247, 249, 250, 251, 255, 256, + 257, 258, 259, 260, 262, 264, 116, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, 438, 185, 27, + -14, 271, 45, -954, -954, -954, 17, 74, 272, 273, + 81, -954, -954, -954, 338, 123, -954, 275, 277, 278, + 279, 282, 283, 33, -954, -954, -954, -954, -954, -954, + -954, 92, 287, 288, 294, 297, 300, 304, 306, 307, + 308, 309, 310, 312, 314, 325, 327, 328, 329, 154, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, 10, 11, + -954, 331, 20, -954, -954, -954, 343, 387, 436, 157, + -954, 456, 461, 244, 471, 471, 474, 476, 478, 418, + 419, 483, 471, 422, 424, 369, -954, 370, 371, 373, + 375, -954, 376, 377, 381, 382, 384, 385, 388, 390, + 391, 399, 400, 404, 240, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, 372, 407, 409, 412, 413, -954, 416, 420, + 423, 427, 429, 433, 434, 435, 13, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, 437, 440, 4, -954, -954, -954, 490, 411, + -954, -954, 443, 446, -954, -954, 38, -954, -954, -954, + 460, 471, 471, 539, 487, 495, 540, 527, 497, 471, + 506, 471, 569, 570, 574, 511, 515, 519, 471, 582, + 586, 471, 587, 588, 572, 591, 595, 535, 542, 486, + 546, 488, 471, 471, 550, 551, 552, 553, -55, -15, + 554, 555, 471, 471, 600, 471, 557, 558, 559, 507, + -954, 508, 509, 510, -954, 513, 514, 518, 525, 532, + 21, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, 533, -954, 538, -954, 40, -954, -954, -954, 522, + -954, 548, 562, 566, -954, 16, -954, -954, -954, -954, + -954, 565, 543, -954, 516, -954, 610, 645, 549, -954, + 575, 567, 576, -954, 579, 580, 583, -954, 584, 59, + -954, -954, -954, -954, -954, -954, -954, -954, -954, 577, + 592, 596, 599, 60, -954, -954, -954, -954, 609, 611, + 654, 618, 647, 471, 594, -954, -954, 703, 660, 723, + 729, 714, 718, 721, 724, 726, 731, 181, 223, 732, + 735, 754, 740, 741, 642, -954, 643, 644, -954, 646, + 110, -954, -954, -954, -954, 652, 651, -954, 88, -954, + -954, -954, 755, 657, -954, 658, 659, 661, -954, 662, + 663, 664, 401, 665, 668, 669, 671, 674, 675, 676, + 677, 678, 679, 680, -954, -954, 774, 785, 471, 681, + 788, 799, 800, 801, 471, 471, 787, 806, 807, 471, + 808, 808, 691, -954, -954, 792, 35, 793, 750, 693, + 797, 798, 802, 804, 817, 805, 809, 810, 700, -954, + 811, 812, 701, -954, 706, -954, 813, 814, 704, 708, + -954, 715, 716, 717, 719, 720, 722, 725, 727, 728, + 730, 733, 734, 736, 737, 738, 739, 742, 743, 744, + 745, 746, 747, 748, 749, 751, 752, 753, 756, 757, + 573, 758, 607, 759, 760, 761, 762, 763, 764, 765, + 766, 767, 768, 769, 770, 771, 772, 773, 775, 776, + 777, 778, -954, -954, 818, 779, 780, 821, 842, 826, + 829, 831, 781, -954, 832, 782, 835, 784, -954, -954, + 783, 840, 841, 868, 789, -954, 790, -954, 32, 791, + 795, -954, -954, 854, 830, 796, 855, 879, 880, 803, + 882, 815, -954, -954, 887, 888, 892, 816, -954, 819, + 820, 822, 823, 824, 825, -954, 827, 828, 833, 834, + 836, 837, 838, 839, 843, 844, -954, -954, -192, -954, + -954, -954, -187, -954, 845, 846, 847, 848, 849, -954, + -954, 893, 850, 894, 851, -954, -954, 896, 852, 856, + -954, 857, -954, -954, -954, -954, -954, -954, -954, 471, + 471, 471, 471, 471, 471, 471, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, 858, + 859, 860, 284, 861, 862, 863, 864, 865, 866, 867, + 869, 870, 871, 87, 872, 873, -954, 874, 875, 876, + 877, 878, -4, 881, 883, 884, 885, 886, 889, 890, + 891, -954, 895, 897, -954, -954, 898, 899, 900, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -179, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -168, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, 901, 902, 547, 903, 904, 905, 906, + 907, -954, 908, 909, 910, -954, -26, 911, 912, 853, + 913, -954, -954, -954, 914, 915, -954, 916, 26, -954, + -954, -954, -954, -954, -954, 920, 921, 475, 922, 923, + 924, 656, 925, -954, 926, 927, 928, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, 181, -954, 223, -954, -954, + -954, -954, -954, 929, 428, 930, -954, 931, 670, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -165, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, 808, 808, 808, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -17, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, 47, -954, -954, 573, -954, 607, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, 71, -954, -954, -954, -954, -954, -954, -954, + -954, 77, -954, -954, -954, -954, -954, 114, -954, -954, + -954, 918, 868, 932, -954, 917, 933, -99, 934, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, 126, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, 127, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, 129, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, 137, + -954, -954, 284, -954, -954, -954, -954, -4, -954, 900, + -954, -954, -954, 547, -954, 909, -954, -26, -954, -954, + -954, 935, 237, 937, 938, -954, -954, 475, -954, 656, + -954, 428, -954, 670, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, 150, -954, + -954, -954, -954, -954, -954, -954, -954, 237, -954 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -820, -820, -820, 82, -300, -819, -607, -820, -820, 689, - -820, -820, -820, -820, 910, -820, -820, -820, 21, -820, - 22, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, 947, -820, - -820, -820, -820, -820, 838, -820, -820, -820, -820, 57, - -820, -820, -820, -820, -820, -230, -820, -820, -820, 519, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -201, - -820, -820, -820, -196, -820, -820, -820, 772, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -170, -820, -820, -820, - -820, -820, -182, -820, 609, -820, -820, -820, -46, -820, - -820, -820, -820, -820, 605, -820, -820, -820, -820, -820, - -820, -820, -137, -820, -820, -820, -820, -820, -820, 573, - -820, -820, -820, -820, -820, 911, -820, -820, -820, -820, - 542, -820, -820, -820, -820, -820, -128, -820, -820, -820, - 543, -820, -820, -820, -820, -122, -820, -820, -820, 745, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -107, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -103, -820, 641, -820, -820, -820, -820, -820, 773, - -820, -820, -820, -820, 999, -820, -820, -820, -820, -820, - -820, -92, -820, 776, -820, -820, -820, -820, 949, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, -820, -820, -820, 42, -820, -820, -820, 46, - -820, -820, -820, -820, -820, 1024, -820, -820, -820, -820, - -820, -820, -820, -820, -820, -820, -820, -820, -820, -820, - -820, -820, 932, -820, -820, -820, -820, -820, -820 + -954, -954, -954, -577, -302, -953, -610, -954, -954, 936, + -954, -954, -954, -954, 786, -954, -954, -954, 15, -954, + 14, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, 954, -954, + -954, -954, -954, -954, 940, -954, -954, -954, -954, 58, + -954, -954, -954, -954, -954, -230, -954, -954, -954, 521, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -198, + -954, -954, -954, -195, -954, -954, -954, 699, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -167, -954, -954, -954, + -954, -954, -181, -954, 556, -954, -954, -954, -78, -954, + -954, -954, -954, -954, 589, -954, -954, -954, -954, -954, + -954, -954, -160, -954, -954, -954, -954, -954, -954, 529, + -954, -954, -954, -954, -954, 919, -954, -954, -954, -954, + 484, -954, -954, -954, -954, -954, -177, -954, -954, -954, + 496, -954, -954, -954, -954, -175, -954, -954, -954, 697, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -142, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -140, -954, 598, -954, -954, -954, -954, -954, 707, + -954, -954, -954, -954, 965, -954, -954, -954, -954, -954, + -954, -107, -954, 709, -954, -954, -954, -954, 944, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, -954, -954, -954, 24, -954, -954, -954, + 42, -954, -954, -954, -954, -954, 1020, -954, -954, -954, + -954, -954, -954, -954, -954, -954, -954, -954, -954, -954, + -954, -954, -954, 939, -954, -954, -954, -954, -954, -954 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1998,390 +1991,392 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -114 static const yytype_int16 yytable[] = { - 820, 821, 580, 581, 1052, 47, 234, 819, 553, 315, - 588, 48, 389, 1040, 1041, 1042, 476, 497, 562, 288, - 110, 379, 52, 316, 317, 389, 225, 318, 110, 54, - 959, 67, 67, 498, 448, 999, 1001, 293, 467, 1000, - 1002, 288, 235, 1071, 319, 553, 58, 1072, 499, 1099, - 449, 477, 500, 562, 68, 68, 236, 237, 238, 239, - 379, 69, 69, 1073, 218, 450, 516, 1074, 1196, 451, - 294, 478, 1197, 59, 240, 62, 479, 218, 63, 517, - 111, 380, 516, 1201, 320, 321, 322, 1202, 111, 1203, - 323, 45, 46, 1204, 66, 517, 324, 325, 959, 639, - 640, 554, 326, 107, 1218, 390, 108, 647, 819, 649, - 501, 563, 289, 327, 328, 109, 656, 226, 390, 659, - 380, 675, 676, 960, 70, 70, 116, 295, 329, 669, - 670, 117, 118, 502, 289, 391, 480, 119, 554, 681, - 682, 115, 684, 227, 381, 120, 563, 215, 391, 503, - 452, 121, 76, 122, 123, 124, 216, 330, 453, 454, - 125, 468, 217, 518, 555, 232, 126, 127, 392, 128, - 129, 130, 77, 78, 564, 131, 249, 467, 79, 518, - 132, 392, 233, 381, 133, 134, 961, 286, 135, 519, - 1100, 960, 455, 1053, 469, 1101, 1207, 136, 331, 250, - 1208, 555, 752, 753, 137, 519, 138, 225, 139, 564, - 140, 141, 142, 287, 504, 1209, 296, 80, 81, 1210, - 556, 1198, 1199, 1200, 82, 83, 84, 143, 531, 505, - 740, 609, 251, 144, 145, 146, 487, 147, 710, 727, - 148, 149, 387, 629, 150, 492, 456, 636, 495, 962, - 470, 85, 86, 297, 961, 252, 698, 556, 1211, 253, - 703, 533, 1212, 570, 87, 88, 299, 770, 300, 254, - 301, 255, 256, 1221, 89, 775, 1223, 1222, 219, 151, - 1224, 302, 90, 152, -113, 303, 153, 154, 155, 156, - 157, 219, 304, 158, 159, 807, 476, -113, 226, 489, - 468, 813, 814, 305, 733, 306, 818, 257, 307, 258, - 259, 260, 261, 308, 350, 1225, 351, 962, 352, 1226, - 1113, 1227, 448, 1251, 227, 1228, 491, 1252, 262, 309, - 353, 477, 310, 469, 160, 161, 162, 311, 449, 163, - 677, 678, 756, 757, 164, 354, 824, 825, 446, 355, - 575, 478, 263, 450, 312, 1236, 479, 451, 386, 116, - 1026, 1027, 264, 398, 117, 118, 399, 400, 401, 356, - 119, 357, 402, 403, 313, 404, 572, 1237, 120, 1238, - 405, 358, 406, 407, 121, 408, 122, 123, 124, 470, - 409, 265, 266, 125, 410, 411, 412, 413, 551, 126, - 127, 576, 128, 129, 130, 414, 249, 359, 131, 415, - 416, 417, 418, 132, 419, 420, 480, 133, 134, 421, - 422, 135, 1239, 423, 350, 424, 351, 425, 352, 250, - 136, 573, 427, 429, 360, 430, 431, 137, 452, 138, - 353, 139, 432, 140, 141, 142, 453, 454, 433, 434, - 1117, 435, 436, 437, 438, 354, 439, 440, 441, 355, - 143, 442, 251, 361, 443, 444, 144, 145, 146, 445, - 147, 1118, 497, 148, 149, 488, 493, 150, 494, 356, - 455, 357, 525, 526, 527, 252, 1119, 528, 498, 253, - 362, 358, 529, 1120, 1240, 1241, 234, 530, 534, 254, - 535, 255, 256, 499, 536, 1219, 537, 500, 538, 539, - 1121, 540, 151, 541, 542, 543, 152, 359, 544, 153, - 154, 155, 156, 157, 545, 546, 158, 159, 1242, 363, - 547, 548, 235, 549, 456, 550, 625, 257, 1122, 258, - 259, 260, 261, 569, 360, 1123, 236, 237, 238, 239, - 574, 577, 578, 579, 582, 1170, 583, 1124, 262, 584, - 585, 1077, 586, 587, 240, 501, 589, 160, 161, 162, - 590, 591, 163, 361, 1125, 1126, 1127, 164, 592, 593, - 594, 1078, 263, 611, 595, 2, 3, 597, 502, 4, - 598, 1079, 264, 599, 600, 601, 602, 1080, 603, 5, - 362, 604, 6, 7, 503, 605, 606, 607, 8, 608, - 612, 631, 613, 1081, 614, 615, 617, 618, 619, 9, - 620, 265, 266, 10, 11, 641, 1128, 621, 622, 638, - 315, 1171, 623, 12, 624, 1129, 627, 874, 628, 363, - 1130, 632, 633, 1082, 316, 317, 1131, 13, 318, 634, - 1132, 1083, 642, 1133, 643, 14, 15, 644, 1134, 645, - 646, 650, 1172, 648, 1135, 319, 651, 652, 653, 504, - 654, 1173, 655, 897, 657, 658, 660, 1174, 16, 661, - 662, 663, 664, 665, 505, 666, 667, 668, 579, 1084, - 671, 1175, 17, 1176, 1177, 672, 673, 674, 679, 680, - 683, 1141, 685, 1178, 686, 320, 321, 322, 1085, 1179, - 687, 323, 688, 712, 689, 705, 715, 324, 325, 716, - 713, 690, 717, 326, 691, 18, 785, 786, 787, 788, - 789, 790, 791, 693, 327, 328, 19, 20, 694, 695, - 21, 22, 737, 696, 1184, 735, 736, 697, 700, 329, - 702, 707, 708, 709, 1086, 738, 718, 729, 875, 876, - 877, 878, 879, 714, 880, 881, 719, 882, 883, 884, - 720, 722, 885, 739, 886, 887, 723, 888, 330, 889, - 724, 890, 891, 726, 730, 892, 731, 741, 742, 732, - 743, 893, 744, 23, 898, 899, 900, 901, 902, 745, - 903, 904, 762, 905, 906, 907, 746, 747, 908, 748, - 909, 910, 749, 911, 750, 912, 751, 913, 914, 331, - 1185, 915, 1142, 1143, 1144, 1145, 1146, 916, 1147, 1148, - 760, 1149, 1150, 1151, 761, 763, 1152, 76, 1153, 1154, - 764, 1155, 767, 1156, 769, 1157, 1158, 765, 766, 1159, - 772, 1186, 773, 777, 778, 1160, 779, 77, 78, 780, - 1187, 781, 782, 79, 783, 784, 1188, 1016, 1017, 1018, - 1019, 1020, 1021, 1022, 794, 795, 796, 797, 798, 799, - 1189, 800, 1190, 1191, 801, 802, 803, 804, 805, 806, - 809, 810, 1192, 808, 811, 812, 815, 816, 1193, 817, - 819, 822, 80, 81, 823, 826, 827, 828, 833, 82, - 83, 84, 1107, 837, 829, 840, 830, 496, 841, 831, - 832, 834, 835, 836, 838, 839, 844, 842, 843, 845, - 938, 846, 847, 848, 939, 941, 85, 86, 849, 850, - 940, 851, 852, 853, 854, 855, 856, 857, 858, 87, - 88, 859, 860, 942, 861, 862, 863, 864, 865, 89, - 866, 867, 943, 868, 869, 870, 871, 90, 872, 873, - 896, 919, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, - 944, 945, 946, 947, 948, 949, 951, 950, 952, 953, - 954, 957, 958, 968, 970, 971, 973, 974, 975, 977, - 969, 979, 980, 981, 972, 1008, 1010, 1012, 298, 1068, - 1114, 1167, 1253, 1248, 1168, 728, 1247, 1229, 1213, 1095, - 1234, 978, 976, 982, 983, 1009, 984, 985, 986, 987, - 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, - 998, 1003, 1004, 1005, 1006, 1007, 1011, 1216, 490, 1014, - 1013, 1214, 699, 1015, 1023, 1024, 1025, 1030, 1031, 1032, - 1033, 1232, 1034, 1035, 1036, 1037, 1038, 1039, 1045, 1046, - 1047, 1048, 1049, 1050, 1051, 1056, 1057, 1058, 1059, 1060, - 1106, 711, 1061, 734, 1062, 1230, 1063, 1064, 1249, 771, - 1065, 1066, 1067, 1075, 610, 1076, 1250, 1233, 776, 626, - 1089, 388, 1231, 704, 447, 314, 1206, 0, 1205, 1090, - 1091, 1092, 1093, 1094, 0, 1098, 1104, 1105, 1109, 0, - 0, 1115, 1110, 1112, 1116, 1138, 1139, 1140, 1163, 1164, - 1165, 1166, 0, 1169, 1182, 1183, 0, 1215, 0, 1220, - 1235, 1217, 1245, 1246, 0, 630, 0, 0, 0, 0, + 824, 825, 583, 584, 1057, 381, 823, 290, 381, 47, + 591, 556, 565, 110, 352, 48, 353, 479, 354, 110, + 67, 290, 451, 52, 67, 1104, 54, 964, 479, 58, + 355, 1004, 391, 964, 236, 1005, 1006, 59, 452, 391, + 1007, 470, 62, 68, 1076, 356, 220, 68, 1077, 357, + 69, 220, 480, 453, 69, 1078, 63, 454, 1201, 1079, + 500, 519, 1202, 480, 66, 382, 45, 46, 382, 358, + 237, 359, 481, 111, 520, 107, 501, 482, 108, 111, + 109, 360, 227, 481, 238, 239, 240, 241, 482, 565, + 227, 502, 1203, 1204, 1205, 503, 1045, 1046, 1047, 642, + 643, 291, 242, 1223, 115, 557, 566, 650, 361, 652, + 217, 556, 679, 680, 70, 291, 659, 116, 70, 662, + 218, 965, 117, 118, 519, 219, 392, 965, 119, 383, + 673, 674, 383, 392, 234, 362, 120, 520, 483, 455, + 685, 686, 121, 688, 122, 123, 124, 456, 457, 483, + 235, 125, 681, 682, 504, 251, 393, 126, 127, 521, + 128, 129, 130, 393, 363, 471, 131, 1105, 558, 567, + 295, 132, 1106, 288, 228, 133, 134, 505, 252, 135, + 289, 458, 228, 566, 966, 522, 470, 296, 136, 394, + 966, 364, 823, 506, 1058, 137, 394, 138, 472, 139, + 229, 140, 141, 142, 143, 557, 1206, 297, 229, 490, + 1207, 253, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 144, + 828, 829, 521, 298, 559, 145, 146, 147, 632, 148, + 365, 744, 149, 150, 254, 459, 151, 628, 255, 494, + 714, 317, 389, 299, 573, 702, 567, 967, 522, 256, + 1118, 257, 258, 967, 473, 318, 319, 534, 507, 320, + 301, 221, 639, 302, 707, 303, 221, -113, 558, 492, + 1208, 152, -113, 508, 1209, 153, 321, 1241, 154, 155, + 156, 157, 158, 731, 737, 159, 160, 259, 304, 260, + 261, 262, 263, 76, 1212, 305, 811, 495, 1213, 1242, + 1214, 1243, 817, 818, 1215, 498, 306, 822, 264, 307, + 471, 308, 779, 77, 78, 536, 322, 323, 324, 79, + 756, 757, 325, 309, 559, 251, 161, 162, 163, 326, + 327, 164, 265, 236, 774, 328, 165, 1216, 310, 500, + 449, 1217, 266, 472, 311, 1244, 329, 330, 252, 1226, + 1228, 312, 1230, 1227, 1229, 501, 1231, 313, 80, 81, + 1232, 331, 760, 761, 1233, 82, 83, 84, 314, 237, + 502, 267, 268, 1256, 503, 1031, 1032, 1257, 554, 388, + 578, 253, 400, 238, 239, 240, 241, 401, 402, 403, + 332, 404, 405, 85, 86, 406, 407, 408, 409, 473, + 410, 242, 411, 412, 254, 413, 87, 88, 255, 116, + 414, 581, 415, 416, 117, 118, 89, 1245, 1246, 256, + 119, 257, 258, 417, 90, 418, 419, 420, 120, 421, + 422, 333, 423, 504, 121, 424, 122, 123, 124, 451, + 425, 426, 427, 125, 428, 430, 432, 433, 434, 126, + 127, 1247, 128, 129, 130, 452, 505, 259, 131, 260, + 261, 262, 263, 132, 612, 435, 575, 133, 134, 436, + 453, 135, 506, 437, 454, 438, 439, 440, 264, 1122, + 136, 441, 442, 443, 444, 445, 446, 137, 447, 138, + 448, 139, 1175, 140, 141, 142, 143, 491, 496, 497, + 1123, 528, 265, 529, 530, 531, 582, 1224, 532, 533, + 576, 144, 266, 537, 538, 1124, 315, 145, 146, 147, + 539, 148, 1125, 540, 149, 150, 541, 352, 151, 353, + 542, 354, 543, 544, 545, 546, 547, 507, 548, 1126, + 549, 267, 268, 355, 789, 790, 791, 792, 793, 794, + 795, 550, 508, 551, 552, 553, 455, 572, 356, 577, + 1082, 579, 357, 152, 456, 457, 580, 153, 1127, 1176, + 154, 155, 156, 157, 158, 1128, 582, 159, 160, 585, + 1083, 586, 358, 587, 359, 588, 589, 1129, 590, 592, + 1084, 593, 594, 595, 360, 614, 1085, 596, 458, 597, + 1177, 598, 600, 601, 1130, 1131, 1132, 602, 603, 1178, + 604, 605, 1086, 634, 606, 1179, 607, 608, 161, 162, + 163, 361, 317, 164, 879, 609, 610, 641, 165, 1180, + 611, 1181, 1182, 615, 635, 616, 318, 319, 617, 618, + 320, 1183, 620, 1087, 644, 647, 621, 1184, 362, 622, + 648, 1088, 459, 623, 645, 624, 1133, 321, 902, 625, + 626, 627, 646, 630, 649, 1134, 631, 2, 3, 636, + 1135, 4, 637, 651, 653, 654, 1136, 363, 656, 655, + 1137, 5, 657, 1138, 6, 7, 658, 660, 1139, 1089, + 8, 661, 663, 664, 1140, 665, 666, 322, 323, 324, + 667, 9, 668, 325, 364, 10, 11, 1146, 1090, 669, + 326, 327, 670, 671, 672, 12, 328, 675, 676, 677, + 678, 683, 684, 687, 689, 690, 691, 329, 330, 13, + 692, 693, 716, 719, 1189, 694, 695, 14, 15, 697, + 698, 718, 331, 365, 699, 709, 880, 881, 882, 883, + 884, 700, 885, 886, 1091, 887, 888, 889, 701, 704, + 890, 16, 891, 892, 706, 893, 717, 894, 720, 895, + 896, 332, 721, 897, 711, 17, 739, 741, 740, 898, + 903, 904, 905, 906, 907, 742, 908, 909, 712, 910, + 911, 912, 713, 723, 913, 76, 914, 915, 722, 916, + 733, 917, 724, 918, 919, 726, 727, 920, 18, 728, + 730, 1190, 333, 921, 743, 77, 78, 745, 734, 19, + 20, 79, 735, 21, 22, 736, 746, 747, 748, 1147, + 1148, 1149, 1150, 1151, 749, 1152, 1153, 750, 1154, 1155, + 1156, 751, 1191, 1157, 752, 1158, 1159, 753, 1160, 754, + 1161, 1192, 1162, 1163, 755, 764, 1164, 1193, 765, 766, + 80, 81, 1165, 767, 768, 769, 770, 82, 83, 84, + 771, 1194, 773, 1195, 1196, 776, 23, 777, 781, 809, + 782, 783, 784, 1197, 785, 786, 787, 788, 798, 1198, + 810, 799, 800, 813, 801, 85, 86, 802, 803, 804, + 805, 806, 807, 808, 814, 815, 816, 812, 87, 88, + 819, 820, 821, 823, 826, 827, 830, 831, 89, 832, + 833, 834, 837, 841, 844, 835, 90, 836, 838, 845, + 848, 849, 839, 840, 842, 843, 846, 847, 850, 851, + 852, 943, 853, 854, 946, 855, 944, 947, 856, 948, + 857, 858, 949, 859, 950, 952, 860, 861, 954, 862, + 863, 864, 865, 957, 958, 866, 867, 868, 869, 870, + 871, 872, 873, 959, 874, 875, 876, 975, 978, 877, + 878, 901, 924, 925, 926, 927, 928, 929, 930, 931, + 932, 933, 934, 935, 936, 937, 938, 976, 939, 940, + 941, 942, 979, 980, 951, 982, 945, 955, 953, 956, + 984, 985, 962, 963, 973, 986, 1013, 1015, 974, 1017, + 1172, 1173, 977, 1218, 1111, 300, 1119, 1258, 1073, 981, + 732, 1253, 1252, 613, 1219, 1234, 1239, 1100, 983, 987, + 1221, 715, 988, 989, 775, 990, 991, 992, 993, 703, + 994, 995, 738, 1237, 1254, 555, 996, 997, 1255, 998, + 999, 1000, 1001, 629, 780, 1235, 1002, 1003, 1008, 1009, + 1010, 1011, 1012, 708, 1016, 1238, 1014, 390, 1018, 1019, + 1020, 1028, 1029, 1030, 1035, 1036, 1037, 1038, 1039, 1040, + 1041, 633, 1042, 1043, 1044, 1050, 1051, 1052, 1053, 1054, + 1055, 1056, 1236, 1211, 1061, 640, 1062, 1063, 1064, 1065, + 450, 316, 1066, 1067, 1068, 0, 0, 0, 1069, 1210, + 1070, 1071, 1072, 0, 1080, 1081, 1094, 1095, 1096, 1097, + 1098, 1099, 0, 1103, 1109, 1110, 0, 1114, 0, 0, + 1112, 1115, 1117, 1120, 1121, 1143, 1144, 1145, 1168, 1169, + 1170, 1171, 1174, 1187, 1188, 1220, 0, 1225, 1240, 1222, + 1250, 1251, 493, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 637, 0, 0, 532, 0, 0, 0, 552, 0, 0, + 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 571 + 0, 574 }; #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-820))) + (!!((Yystate) == (-954))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int16 yycheck[] = { - 607, 608, 302, 303, 8, 224, 1, 104, 1, 1, - 310, 224, 1, 9, 10, 11, 1, 1, 1, 1, - 1, 1, 224, 15, 16, 1, 1, 19, 1, 224, - 1, 1, 1, 17, 1, 222, 222, 222, 1, 226, - 226, 1, 37, 222, 36, 1, 224, 226, 32, 51, - 17, 36, 36, 1, 24, 24, 51, 52, 53, 54, - 1, 31, 31, 222, 1, 32, 1, 226, 222, 36, - 225, 56, 226, 224, 69, 224, 61, 1, 224, 14, - 61, 61, 1, 222, 76, 77, 78, 226, 61, 222, - 82, 222, 223, 226, 224, 14, 88, 89, 1, 399, - 400, 94, 94, 224, 201, 94, 224, 407, 104, 409, - 94, 94, 94, 105, 106, 224, 416, 92, 94, 419, - 61, 166, 167, 94, 94, 94, 1, 225, 120, 429, - 430, 6, 7, 117, 94, 124, 121, 12, 94, 439, - 440, 224, 442, 118, 124, 20, 94, 224, 124, 133, - 117, 26, 1, 28, 29, 30, 224, 149, 125, 126, - 35, 124, 224, 98, 157, 224, 41, 42, 157, 44, - 45, 46, 21, 22, 157, 50, 1, 1, 27, 98, - 55, 157, 224, 124, 59, 60, 157, 224, 63, 124, - 192, 94, 159, 197, 157, 197, 222, 72, 190, 24, - 226, 157, 138, 139, 79, 124, 81, 1, 83, 157, - 85, 86, 87, 224, 198, 222, 225, 66, 67, 226, - 213, 1040, 1041, 1042, 73, 74, 75, 102, 223, 213, - 530, 223, 57, 108, 109, 110, 222, 112, 223, 223, - 115, 116, 223, 223, 119, 222, 213, 223, 223, 220, - 213, 100, 101, 223, 157, 80, 223, 213, 222, 84, - 223, 222, 226, 223, 113, 114, 225, 223, 225, 94, - 225, 96, 97, 222, 123, 223, 222, 226, 215, 154, - 226, 225, 131, 158, 221, 225, 161, 162, 163, 164, - 165, 215, 225, 168, 169, 595, 1, 221, 92, 223, - 124, 601, 602, 225, 223, 225, 606, 132, 225, 134, - 135, 136, 137, 225, 1, 222, 3, 220, 5, 226, - 223, 222, 1, 222, 118, 226, 221, 226, 153, 225, - 17, 36, 225, 157, 209, 210, 211, 225, 17, 214, - 166, 167, 138, 139, 219, 32, 184, 185, 223, 36, - 222, 56, 177, 32, 225, 40, 61, 36, 225, 1, - 90, 91, 187, 225, 6, 7, 225, 225, 225, 56, - 12, 58, 225, 225, 223, 225, 122, 62, 20, 64, - 225, 68, 225, 225, 26, 225, 28, 29, 30, 213, - 225, 216, 217, 35, 225, 225, 225, 225, 223, 41, - 42, 104, 44, 45, 46, 225, 1, 94, 50, 225, - 225, 225, 225, 55, 225, 225, 121, 59, 60, 225, - 225, 63, 107, 225, 1, 225, 3, 225, 5, 24, - 72, 122, 225, 225, 121, 225, 225, 79, 117, 81, - 17, 83, 225, 85, 86, 87, 125, 126, 225, 225, - 4, 225, 225, 225, 225, 32, 225, 225, 225, 36, - 102, 225, 57, 150, 225, 225, 108, 109, 110, 225, - 112, 25, 1, 115, 116, 225, 225, 119, 225, 56, - 159, 58, 225, 225, 225, 80, 40, 225, 17, 84, - 177, 68, 225, 47, 179, 180, 1, 225, 225, 94, - 225, 96, 97, 32, 225, 1112, 225, 36, 225, 225, - 64, 225, 154, 225, 225, 225, 158, 94, 225, 161, - 162, 163, 164, 165, 225, 225, 168, 169, 213, 216, - 225, 225, 37, 225, 213, 225, 223, 132, 92, 134, - 135, 136, 137, 225, 121, 99, 51, 52, 53, 54, - 122, 104, 166, 104, 104, 64, 104, 111, 153, 104, - 166, 13, 166, 104, 69, 94, 166, 209, 210, 211, - 166, 222, 214, 150, 128, 129, 130, 219, 222, 225, - 225, 33, 177, 222, 225, 0, 1, 225, 117, 4, - 225, 43, 187, 225, 225, 225, 225, 49, 225, 14, - 177, 225, 17, 18, 133, 225, 225, 225, 23, 225, - 225, 122, 225, 65, 225, 225, 225, 225, 225, 34, - 225, 216, 217, 38, 39, 104, 180, 225, 225, 166, - 1, 140, 225, 48, 225, 189, 225, 51, 225, 216, - 194, 222, 225, 95, 15, 16, 200, 62, 19, 225, - 204, 103, 166, 207, 166, 70, 71, 104, 212, 122, - 166, 104, 171, 166, 218, 36, 104, 104, 166, 198, - 166, 180, 166, 51, 104, 104, 104, 186, 93, 104, - 104, 104, 166, 166, 213, 225, 166, 225, 104, 141, - 166, 200, 107, 202, 203, 166, 166, 166, 166, 166, - 122, 51, 166, 212, 166, 76, 77, 78, 160, 218, - 166, 82, 222, 166, 222, 222, 122, 88, 89, 122, - 222, 225, 222, 94, 225, 140, 142, 143, 144, 145, - 146, 147, 148, 225, 105, 106, 151, 152, 225, 225, - 155, 156, 122, 225, 64, 166, 166, 225, 225, 120, - 225, 225, 225, 225, 206, 166, 222, 222, 172, 173, - 174, 175, 176, 224, 178, 179, 225, 181, 182, 183, - 225, 225, 186, 166, 188, 189, 225, 191, 149, 193, - 225, 195, 196, 225, 225, 199, 225, 222, 122, 225, - 166, 205, 104, 208, 172, 173, 174, 175, 176, 104, - 178, 179, 104, 181, 182, 183, 122, 122, 186, 122, - 188, 189, 122, 191, 122, 193, 122, 195, 196, 190, - 140, 199, 172, 173, 174, 175, 176, 205, 178, 179, - 122, 181, 182, 183, 122, 122, 186, 1, 188, 189, - 122, 191, 225, 193, 225, 195, 196, 222, 222, 199, - 222, 171, 225, 122, 222, 205, 222, 21, 22, 222, - 180, 222, 222, 27, 222, 222, 186, 785, 786, 787, - 788, 789, 790, 791, 222, 222, 222, 222, 222, 222, - 200, 222, 202, 203, 222, 222, 222, 222, 104, 104, - 104, 104, 212, 225, 104, 104, 122, 104, 218, 104, - 104, 222, 66, 67, 122, 122, 166, 225, 104, 73, - 74, 75, 226, 222, 122, 222, 122, 228, 222, 122, - 122, 122, 122, 122, 122, 122, 225, 122, 122, 222, - 122, 222, 222, 222, 166, 122, 100, 101, 222, 222, - 225, 222, 222, 222, 222, 222, 222, 222, 222, 113, - 114, 222, 222, 104, 222, 222, 222, 222, 222, 123, - 222, 222, 122, 222, 222, 222, 222, 131, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 122, 122, 222, 122, 225, 122, 225, 222, 122, 122, - 104, 222, 222, 222, 122, 166, 122, 122, 122, 122, - 222, 122, 122, 122, 225, 122, 122, 122, 71, 127, - 963, 1000, 1252, 1224, 1002, 506, 1222, 1197, 104, 127, - 1212, 222, 225, 222, 222, 225, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 122, 220, 222, - 225, 1107, 457, 222, 222, 222, 222, 222, 222, 222, - 222, 1208, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 170, 482, 222, 520, 222, 1202, 222, 222, 1226, 557, - 222, 222, 222, 222, 332, 222, 1228, 1210, 565, 364, - 222, 112, 1204, 472, 165, 91, 1074, -1, 1072, 222, - 222, 222, 222, 222, -1, 222, 222, 222, 222, -1, - -1, 222, 225, 225, 222, 222, 222, 222, 222, 222, - 222, 222, -1, 222, 222, 222, -1, 222, -1, 222, - 222, 225, 222, 222, -1, 382, -1, -1, -1, -1, + 610, 611, 304, 305, 8, 1, 105, 1, 1, 225, + 312, 1, 1, 1, 1, 225, 3, 1, 5, 1, + 1, 1, 1, 225, 1, 51, 225, 1, 1, 225, + 17, 223, 1, 1, 1, 227, 223, 225, 17, 1, + 227, 1, 225, 24, 223, 32, 1, 24, 227, 36, + 31, 1, 36, 32, 31, 223, 225, 36, 223, 227, + 1, 1, 227, 36, 225, 61, 223, 224, 61, 56, + 37, 58, 56, 61, 14, 225, 17, 61, 225, 61, + 225, 68, 1, 56, 51, 52, 53, 54, 61, 1, + 1, 32, 1045, 1046, 1047, 36, 9, 10, 11, 401, + 402, 95, 69, 202, 225, 95, 95, 409, 95, 411, + 225, 1, 167, 168, 95, 95, 418, 1, 95, 421, + 225, 95, 6, 7, 1, 225, 95, 95, 12, 125, + 432, 433, 125, 95, 225, 122, 20, 14, 122, 118, + 442, 443, 26, 445, 28, 29, 30, 126, 127, 122, + 225, 35, 167, 168, 95, 1, 125, 41, 42, 99, + 44, 45, 46, 125, 151, 125, 50, 193, 158, 158, + 223, 55, 198, 225, 93, 59, 60, 118, 24, 63, + 225, 160, 93, 95, 158, 125, 1, 226, 72, 158, + 158, 178, 105, 134, 198, 79, 158, 81, 158, 83, + 119, 85, 86, 87, 88, 95, 223, 226, 119, 223, + 227, 57, 789, 790, 791, 792, 793, 794, 795, 103, + 185, 186, 99, 226, 214, 109, 110, 111, 224, 113, + 217, 533, 116, 117, 80, 214, 120, 224, 84, 222, + 224, 1, 224, 224, 224, 224, 158, 221, 125, 95, + 224, 97, 98, 221, 214, 15, 16, 224, 199, 19, + 226, 216, 224, 226, 224, 226, 216, 222, 158, 224, + 223, 155, 222, 214, 227, 159, 36, 40, 162, 163, + 164, 165, 166, 224, 224, 169, 170, 133, 226, 135, + 136, 137, 138, 1, 223, 226, 598, 223, 227, 62, + 223, 64, 604, 605, 227, 224, 226, 609, 154, 226, + 125, 226, 224, 21, 22, 223, 76, 77, 78, 27, + 139, 140, 82, 226, 214, 1, 210, 211, 212, 89, + 90, 215, 178, 1, 224, 95, 220, 223, 226, 1, + 224, 227, 188, 158, 226, 108, 106, 107, 24, 223, + 223, 226, 223, 227, 227, 17, 227, 226, 66, 67, + 223, 121, 139, 140, 227, 73, 74, 75, 226, 37, + 32, 217, 218, 223, 36, 91, 92, 227, 224, 226, + 223, 57, 226, 51, 52, 53, 54, 226, 226, 226, + 150, 226, 226, 101, 102, 226, 226, 226, 226, 214, + 226, 69, 226, 226, 80, 226, 114, 115, 84, 1, + 226, 167, 226, 226, 6, 7, 124, 180, 181, 95, + 12, 97, 98, 226, 132, 226, 226, 226, 20, 226, + 226, 191, 226, 95, 26, 226, 28, 29, 30, 1, + 226, 226, 226, 35, 226, 226, 226, 226, 226, 41, + 42, 214, 44, 45, 46, 17, 118, 133, 50, 135, + 136, 137, 138, 55, 224, 226, 123, 59, 60, 226, + 32, 63, 134, 226, 36, 226, 226, 226, 154, 4, + 72, 226, 226, 226, 226, 226, 226, 79, 226, 81, + 226, 83, 64, 85, 86, 87, 88, 226, 226, 226, + 25, 226, 178, 226, 226, 226, 105, 1117, 226, 226, + 123, 103, 188, 226, 226, 40, 224, 109, 110, 111, + 226, 113, 47, 226, 116, 117, 226, 1, 120, 3, + 226, 5, 226, 226, 226, 226, 226, 199, 226, 64, + 226, 217, 218, 17, 143, 144, 145, 146, 147, 148, + 149, 226, 214, 226, 226, 226, 118, 226, 32, 123, + 13, 105, 36, 155, 126, 127, 105, 159, 93, 141, + 162, 163, 164, 165, 166, 100, 105, 169, 170, 105, + 33, 105, 56, 105, 58, 167, 167, 112, 105, 167, + 43, 167, 223, 223, 68, 223, 49, 226, 160, 226, + 172, 226, 226, 226, 129, 130, 131, 226, 226, 181, + 226, 226, 65, 123, 226, 187, 226, 226, 210, 211, + 212, 95, 1, 215, 51, 226, 226, 167, 220, 201, + 226, 203, 204, 226, 223, 226, 15, 16, 226, 226, + 19, 213, 226, 96, 105, 105, 226, 219, 122, 226, + 123, 104, 214, 226, 167, 226, 181, 36, 51, 226, + 226, 226, 167, 226, 167, 190, 226, 0, 1, 226, + 195, 4, 226, 167, 105, 105, 201, 151, 167, 105, + 205, 14, 167, 208, 17, 18, 167, 105, 213, 142, + 23, 105, 105, 105, 219, 123, 105, 76, 77, 78, + 105, 34, 167, 82, 178, 38, 39, 51, 161, 167, + 89, 90, 226, 167, 226, 48, 95, 167, 167, 167, + 167, 167, 167, 123, 167, 167, 167, 106, 107, 62, + 223, 223, 167, 123, 64, 226, 226, 70, 71, 226, + 226, 225, 121, 217, 226, 223, 173, 174, 175, 176, + 177, 226, 179, 180, 207, 182, 183, 184, 226, 226, + 187, 94, 189, 190, 226, 192, 223, 194, 123, 196, + 197, 150, 223, 200, 226, 108, 167, 123, 167, 206, + 173, 174, 175, 176, 177, 167, 179, 180, 226, 182, + 183, 184, 226, 226, 187, 1, 189, 190, 223, 192, + 223, 194, 226, 196, 197, 226, 226, 200, 141, 226, + 226, 141, 191, 206, 167, 21, 22, 223, 226, 152, + 153, 27, 226, 156, 157, 226, 123, 167, 105, 173, + 174, 175, 176, 177, 105, 179, 180, 123, 182, 183, + 184, 123, 172, 187, 123, 189, 190, 123, 192, 123, + 194, 181, 196, 197, 123, 123, 200, 187, 123, 105, + 66, 67, 206, 123, 123, 223, 223, 73, 74, 75, + 226, 201, 226, 203, 204, 223, 209, 226, 123, 105, + 223, 223, 223, 213, 223, 223, 223, 223, 223, 219, + 105, 223, 223, 105, 223, 101, 102, 223, 223, 223, + 223, 223, 223, 223, 105, 105, 105, 226, 114, 115, + 123, 105, 105, 105, 223, 123, 123, 167, 124, 226, + 123, 123, 105, 223, 223, 123, 132, 123, 123, 223, + 226, 223, 123, 123, 123, 123, 123, 123, 223, 223, + 223, 123, 223, 223, 123, 223, 167, 105, 223, 123, + 223, 223, 123, 223, 123, 123, 223, 223, 123, 223, + 223, 223, 223, 123, 123, 223, 223, 223, 223, 223, + 223, 223, 223, 105, 223, 223, 223, 123, 123, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 167, 223, 223, + 223, 223, 123, 123, 223, 123, 226, 223, 226, 226, + 123, 123, 223, 223, 223, 123, 123, 123, 223, 123, + 1005, 1007, 226, 105, 171, 71, 968, 1257, 128, 226, + 509, 1229, 1227, 334, 1112, 1202, 1217, 128, 223, 223, + 123, 485, 223, 223, 560, 223, 223, 223, 223, 460, + 223, 223, 523, 1213, 1231, 269, 223, 223, 1233, 223, + 223, 223, 223, 366, 568, 1207, 223, 223, 223, 223, + 223, 223, 223, 475, 223, 1215, 226, 112, 226, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 384, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 1209, 1079, 223, 396, 223, 223, 223, 223, + 166, 91, 223, 223, 223, -1, -1, -1, 223, 1077, + 223, 223, 223, -1, 223, 223, 223, 223, 223, 223, + 223, 223, -1, 223, 223, 223, -1, 223, -1, -1, + 227, 226, 226, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, -1, 223, 223, 226, + 223, 223, 222, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 394, -1, -1, 241, -1, -1, -1, 267, -1, -1, + -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 290 + -1, 292 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 228, 0, 1, 4, 14, 17, 18, 23, 34, - 38, 39, 48, 62, 70, 71, 93, 107, 140, 151, - 152, 155, 156, 208, 229, 234, 239, 263, 269, 283, - 301, 324, 338, 353, 360, 364, 374, 383, 403, 413, - 419, 423, 433, 490, 507, 222, 223, 224, 224, 302, - 384, 414, 224, 424, 224, 339, 404, 325, 224, 224, - 284, 354, 224, 224, 365, 375, 224, 1, 24, 31, - 94, 264, 265, 266, 267, 268, 1, 21, 22, 27, - 66, 67, 73, 74, 75, 100, 101, 113, 114, 123, - 131, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 224, 224, 224, - 1, 61, 420, 421, 422, 224, 1, 6, 7, 12, + 0, 229, 0, 1, 4, 14, 17, 18, 23, 34, + 38, 39, 48, 62, 70, 71, 94, 108, 141, 152, + 153, 156, 157, 209, 230, 235, 240, 264, 270, 284, + 302, 325, 339, 354, 361, 365, 375, 384, 404, 414, + 420, 424, 434, 492, 509, 223, 224, 225, 225, 303, + 385, 415, 225, 425, 225, 340, 405, 326, 225, 225, + 285, 355, 225, 225, 366, 376, 225, 1, 24, 31, + 95, 265, 266, 267, 268, 269, 1, 21, 22, 27, + 66, 67, 73, 74, 75, 101, 102, 114, 115, 124, + 132, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 225, 225, 225, + 1, 61, 421, 422, 423, 225, 1, 6, 7, 12, 20, 26, 28, 29, 30, 35, 41, 42, 44, 45, 46, 50, 55, 59, 60, 63, 72, 79, 81, 83, - 85, 86, 87, 102, 108, 109, 110, 112, 115, 116, - 119, 154, 158, 161, 162, 163, 164, 165, 168, 169, - 209, 210, 211, 214, 219, 434, 435, 436, 437, 438, + 85, 86, 87, 88, 103, 109, 110, 111, 113, 116, + 117, 120, 155, 159, 162, 163, 164, 165, 166, 169, + 170, 210, 211, 212, 215, 220, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 483, 487, 488, 489, 224, 224, 224, 1, 215, - 270, 271, 272, 273, 274, 1, 92, 118, 235, 236, - 237, 238, 224, 224, 1, 37, 51, 52, 53, 54, - 69, 508, 509, 510, 511, 512, 513, 514, 515, 1, - 24, 57, 80, 84, 94, 96, 97, 132, 134, 135, - 136, 137, 153, 177, 187, 216, 217, 240, 241, 242, - 243, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 224, 224, 1, 94, - 361, 362, 363, 222, 225, 225, 225, 223, 265, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 223, 492, 1, 15, 16, 19, 36, - 76, 77, 78, 82, 88, 89, 94, 105, 106, 120, - 149, 190, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 1, 3, 5, 17, 32, 36, 56, 58, 68, 94, - 121, 150, 177, 216, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 398, 399, 400, 401, 402, 1, - 61, 124, 415, 416, 417, 418, 225, 223, 421, 1, - 94, 124, 157, 425, 429, 430, 431, 432, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 484, 225, 480, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 223, 435, 1, 17, - 32, 36, 117, 125, 126, 159, 213, 340, 341, 342, - 343, 344, 345, 346, 350, 351, 352, 1, 124, 157, - 213, 405, 409, 410, 411, 412, 1, 36, 56, 61, - 121, 326, 330, 331, 332, 336, 337, 222, 225, 223, - 271, 221, 222, 225, 225, 223, 236, 1, 17, 32, - 36, 94, 117, 133, 198, 213, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 297, 1, 14, 98, 124, - 355, 356, 357, 358, 359, 225, 225, 225, 225, 225, - 225, 223, 509, 222, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 223, 241, 1, 94, 157, 213, 366, 367, 368, - 369, 370, 1, 94, 157, 376, 377, 378, 379, 225, - 223, 362, 122, 122, 122, 222, 104, 104, 166, 104, - 231, 231, 104, 104, 104, 166, 166, 104, 231, 166, - 166, 222, 222, 225, 225, 225, 321, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 223, - 304, 222, 225, 225, 225, 225, 395, 225, 225, 225, - 225, 225, 225, 225, 225, 223, 386, 225, 225, 223, - 416, 122, 222, 225, 225, 426, 223, 430, 166, 231, - 231, 104, 166, 166, 104, 122, 166, 231, 166, 231, - 104, 104, 104, 166, 166, 166, 231, 104, 104, 231, - 104, 104, 104, 104, 166, 166, 225, 166, 225, 231, - 231, 166, 166, 166, 166, 166, 167, 166, 167, 166, - 166, 231, 231, 122, 231, 166, 166, 166, 222, 222, - 225, 225, 347, 225, 225, 225, 225, 225, 223, 341, - 225, 406, 225, 223, 410, 222, 327, 225, 225, 225, - 223, 331, 166, 222, 224, 122, 122, 222, 222, 225, - 225, 298, 225, 225, 225, 294, 225, 223, 286, 222, - 225, 225, 225, 223, 356, 166, 166, 122, 166, 166, - 231, 222, 122, 166, 104, 104, 122, 122, 122, 122, - 122, 122, 138, 139, 244, 245, 138, 139, 246, 247, - 122, 122, 104, 122, 122, 222, 222, 225, 371, 225, - 223, 367, 222, 225, 380, 223, 377, 122, 222, 222, - 222, 222, 222, 222, 222, 142, 143, 144, 145, 146, - 147, 148, 230, 231, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 104, 104, 231, 225, 104, - 104, 104, 104, 231, 231, 122, 104, 104, 231, 104, - 233, 233, 222, 122, 184, 185, 122, 166, 225, 122, - 122, 122, 122, 104, 122, 122, 122, 222, 122, 122, - 222, 222, 122, 122, 225, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 51, 172, 173, 174, 175, 176, - 178, 179, 181, 182, 183, 186, 188, 189, 191, 193, - 195, 196, 199, 205, 485, 486, 222, 51, 172, 173, - 174, 175, 176, 178, 179, 181, 182, 183, 186, 188, - 189, 191, 193, 195, 196, 199, 205, 481, 482, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 122, 166, - 225, 122, 104, 122, 122, 122, 222, 122, 225, 122, - 222, 225, 122, 122, 104, 334, 335, 222, 222, 1, - 94, 157, 220, 275, 276, 277, 278, 279, 222, 222, - 122, 166, 225, 122, 122, 122, 225, 122, 222, 122, - 122, 122, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 226, 222, 226, 222, 222, 222, 222, 222, 122, 225, - 122, 222, 122, 225, 222, 222, 230, 230, 230, 230, - 230, 230, 230, 222, 222, 222, 90, 91, 322, 323, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 9, 10, 11, 232, 233, 222, 222, 222, 222, 222, - 222, 222, 8, 197, 396, 397, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 127, 427, - 428, 222, 226, 222, 226, 222, 222, 13, 33, 43, - 49, 65, 95, 103, 141, 160, 206, 348, 349, 222, - 222, 222, 222, 222, 222, 127, 407, 408, 222, 51, - 192, 197, 328, 329, 222, 222, 170, 226, 333, 222, - 225, 280, 225, 223, 276, 222, 222, 4, 25, 40, - 47, 64, 92, 99, 111, 128, 129, 130, 180, 189, - 194, 200, 204, 207, 212, 218, 299, 300, 222, 222, - 222, 51, 172, 173, 174, 175, 176, 178, 179, 181, - 182, 183, 186, 188, 189, 191, 193, 195, 196, 199, - 205, 295, 296, 222, 222, 222, 222, 245, 247, 222, - 64, 140, 171, 180, 186, 200, 202, 203, 212, 218, - 372, 373, 222, 222, 64, 140, 171, 180, 186, 200, - 202, 203, 212, 218, 381, 382, 222, 226, 232, 232, - 232, 222, 226, 222, 226, 486, 482, 222, 226, 222, - 226, 222, 226, 104, 335, 222, 122, 225, 201, 233, - 222, 222, 226, 222, 226, 222, 226, 222, 226, 323, - 397, 428, 349, 408, 329, 222, 40, 62, 64, 107, - 179, 180, 213, 281, 282, 222, 222, 300, 296, 373, - 382, 222, 226, 282 + 479, 480, 481, 485, 489, 490, 491, 225, 225, 225, + 1, 216, 271, 272, 273, 274, 275, 1, 93, 119, + 236, 237, 238, 239, 225, 225, 1, 37, 51, 52, + 53, 54, 69, 510, 511, 512, 513, 514, 515, 516, + 517, 1, 24, 57, 80, 84, 95, 97, 98, 133, + 135, 136, 137, 138, 154, 178, 188, 217, 218, 241, + 242, 243, 244, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 225, 225, + 1, 95, 362, 363, 364, 223, 226, 226, 226, 224, + 266, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 224, 494, 1, 15, 16, + 19, 36, 76, 77, 78, 82, 89, 90, 95, 106, + 107, 121, 150, 191, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 1, 3, 5, 17, 32, 36, 56, 58, + 68, 95, 122, 151, 178, 217, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 399, 400, 401, 402, + 403, 1, 61, 125, 416, 417, 418, 419, 226, 224, + 422, 1, 95, 125, 158, 426, 430, 431, 432, 433, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 486, + 226, 482, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 224, + 436, 1, 17, 32, 36, 118, 126, 127, 160, 214, + 341, 342, 343, 344, 345, 346, 347, 351, 352, 353, + 1, 125, 158, 214, 406, 410, 411, 412, 413, 1, + 36, 56, 61, 122, 327, 331, 332, 333, 337, 338, + 223, 226, 224, 272, 222, 223, 226, 226, 224, 237, + 1, 17, 32, 36, 95, 118, 134, 199, 214, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 298, 1, + 14, 99, 125, 356, 357, 358, 359, 360, 226, 226, + 226, 226, 226, 226, 224, 511, 223, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 224, 242, 1, 95, 158, 214, + 367, 368, 369, 370, 371, 1, 95, 158, 377, 378, + 379, 380, 226, 224, 363, 123, 123, 123, 223, 105, + 105, 167, 105, 232, 232, 105, 105, 105, 167, 167, + 105, 232, 167, 167, 223, 223, 226, 226, 226, 322, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 224, 305, 223, 226, 226, 226, 226, 396, + 226, 226, 226, 226, 226, 226, 226, 226, 224, 387, + 226, 226, 224, 417, 123, 223, 226, 226, 427, 224, + 431, 167, 232, 232, 105, 167, 167, 105, 123, 167, + 232, 167, 232, 105, 105, 105, 167, 167, 167, 232, + 105, 105, 232, 105, 105, 123, 105, 105, 167, 167, + 226, 167, 226, 232, 232, 167, 167, 167, 167, 167, + 168, 167, 168, 167, 167, 232, 232, 123, 232, 167, + 167, 167, 223, 223, 226, 226, 348, 226, 226, 226, + 226, 226, 224, 342, 226, 407, 226, 224, 411, 223, + 328, 226, 226, 226, 224, 332, 167, 223, 225, 123, + 123, 223, 223, 226, 226, 299, 226, 226, 226, 295, + 226, 224, 287, 223, 226, 226, 226, 224, 357, 167, + 167, 123, 167, 167, 232, 223, 123, 167, 105, 105, + 123, 123, 123, 123, 123, 123, 139, 140, 245, 246, + 139, 140, 247, 248, 123, 123, 105, 123, 123, 223, + 223, 226, 372, 226, 224, 368, 223, 226, 381, 224, + 378, 123, 223, 223, 223, 223, 223, 223, 223, 143, + 144, 145, 146, 147, 148, 149, 231, 232, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 105, + 105, 232, 226, 105, 105, 105, 105, 232, 232, 123, + 105, 105, 232, 105, 234, 234, 223, 123, 185, 186, + 123, 167, 226, 123, 123, 123, 123, 105, 123, 123, + 123, 223, 123, 123, 223, 223, 123, 123, 226, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 51, + 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, + 187, 189, 190, 192, 194, 196, 197, 200, 206, 487, + 488, 223, 51, 173, 174, 175, 176, 177, 179, 180, + 182, 183, 184, 187, 189, 190, 192, 194, 196, 197, + 200, 206, 483, 484, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 123, 167, 226, 123, 105, 123, 123, + 123, 223, 123, 226, 123, 223, 226, 123, 123, 105, + 335, 336, 223, 223, 1, 95, 158, 221, 276, 277, + 278, 279, 280, 223, 223, 123, 167, 226, 123, 123, + 123, 226, 123, 223, 123, 123, 123, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 227, 223, 227, 223, 223, + 223, 223, 223, 123, 226, 123, 223, 123, 226, 223, + 223, 231, 231, 231, 231, 231, 231, 231, 223, 223, + 223, 91, 92, 323, 324, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 9, 10, 11, 233, 234, + 223, 223, 223, 223, 223, 223, 223, 8, 198, 397, + 398, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 128, 428, 429, 223, 227, 223, 227, + 223, 223, 13, 33, 43, 49, 65, 96, 104, 142, + 161, 207, 349, 350, 223, 223, 223, 223, 223, 223, + 128, 408, 409, 223, 51, 193, 198, 329, 330, 223, + 223, 171, 227, 334, 223, 226, 281, 226, 224, 277, + 223, 223, 4, 25, 40, 47, 64, 93, 100, 112, + 129, 130, 131, 181, 190, 195, 201, 205, 208, 213, + 219, 300, 301, 223, 223, 223, 51, 173, 174, 175, + 176, 177, 179, 180, 182, 183, 184, 187, 189, 190, + 192, 194, 196, 197, 200, 206, 296, 297, 223, 223, + 223, 223, 246, 248, 223, 64, 141, 172, 181, 187, + 201, 203, 204, 213, 219, 373, 374, 223, 223, 64, + 141, 172, 181, 187, 201, 203, 204, 213, 219, 382, + 383, 223, 227, 233, 233, 233, 223, 227, 223, 227, + 488, 484, 223, 227, 223, 227, 223, 227, 105, 336, + 223, 123, 226, 202, 234, 223, 223, 227, 223, 227, + 223, 227, 223, 227, 324, 398, 429, 350, 409, 330, + 223, 40, 62, 64, 108, 180, 181, 214, 282, 283, + 223, 223, 301, 297, 374, 383, 223, 227, 283 }; #define yyerrok (yyerrstatus = 0) @@ -2499,7 +2494,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) # else YYUSE (yyoutput); # endif - YYUSE (yytype); + switch (yytype) + { + default: + break; + } } @@ -2889,7 +2888,12 @@ yydestruct (yymsg, yytype, yyvaluep) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - YYUSE (yytype); + switch (yytype) + { + + default: + break; + } } @@ -3173,108 +3177,108 @@ yyreduce: switch (yyn) { case 26: -/* Line 1787 of yacc.c */ -#line 392 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 393 "conf_parser.y" { (yyval.number) = 0; } break; case 28: -/* Line 1787 of yacc.c */ -#line 394 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 395 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); } break; case 29: -/* Line 1787 of yacc.c */ -#line 398 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 399 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); } break; case 30: -/* Line 1787 of yacc.c */ -#line 402 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 403 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number); } break; case 31: -/* Line 1787 of yacc.c */ -#line 406 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 407 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number); } break; case 32: -/* Line 1787 of yacc.c */ -#line 410 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 411 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number); } break; case 33: -/* Line 1787 of yacc.c */ -#line 414 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 415 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number); } break; case 34: -/* Line 1787 of yacc.c */ -#line 418 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 419 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number); } break; case 35: -/* Line 1787 of yacc.c */ -#line 422 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 423 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number); } break; case 36: -/* Line 1787 of yacc.c */ -#line 427 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 428 "conf_parser.y" { (yyval.number) = 0; } break; case 38: -/* Line 1787 of yacc.c */ -#line 428 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 429 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); } break; case 39: -/* Line 1787 of yacc.c */ -#line 429 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 430 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); } break; case 40: -/* Line 1787 of yacc.c */ -#line 430 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 431 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); } break; case 41: -/* Line 1787 of yacc.c */ -#line 431 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 432 "conf_parser.y" { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); } break; case 48: -/* Line 1787 of yacc.c */ -#line 445 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 446 "conf_parser.y" { if (conf_parser_ctx.pass == 2) add_conf_module(libio_basename(yylval.string)); @@ -3282,8 +3286,8 @@ yyreduce: break; case 49: -/* Line 1787 of yacc.c */ -#line 451 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 452 "conf_parser.y" { if (conf_parser_ctx.pass == 2) mod_add_path(yylval.string); @@ -3291,8 +3295,8 @@ yyreduce: break; case 75: -/* Line 1787 of yacc.c */ -#line 477 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 478 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx) @@ -3302,8 +3306,8 @@ yyreduce: break; case 76: -/* Line 1787 of yacc.c */ -#line 483 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 484 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx) @@ -3313,8 +3317,8 @@ yyreduce: break; case 79: -/* Line 1787 of yacc.c */ -#line 492 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 493 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx) @@ -3324,8 +3328,8 @@ yyreduce: break; case 80: -/* Line 1787 of yacc.c */ -#line 498 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 499 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx) @@ -3335,8 +3339,8 @@ yyreduce: break; case 81: -/* Line 1787 of yacc.c */ -#line 506 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 507 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx) @@ -3380,8 +3384,8 @@ yyreduce: break; case 82: -/* Line 1787 of yacc.c */ -#line 548 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 549 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 1) @@ -3442,8 +3446,8 @@ yyreduce: break; case 83: -/* Line 1787 of yacc.c */ -#line 607 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 608 "conf_parser.y" { /* TBD - XXX: error reporting */ #ifdef HAVE_LIBCRYPTO @@ -3473,8 +3477,8 @@ yyreduce: break; case 84: -/* Line 1787 of yacc.c */ -#line 635 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 636 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx) @@ -3484,8 +3488,8 @@ yyreduce: break; case 85: -/* Line 1787 of yacc.c */ -#line 643 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 644 "conf_parser.y" { /* this isn't rehashable */ if (conf_parser_ctx.pass == 2 && !ServerInfo.name) @@ -3502,8 +3506,8 @@ yyreduce: break; case 86: -/* Line 1787 of yacc.c */ -#line 658 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 659 "conf_parser.y" { /* this isn't rehashable */ if (conf_parser_ctx.pass == 2 && !ServerInfo.sid) @@ -3520,8 +3524,8 @@ yyreduce: break; case 87: -/* Line 1787 of yacc.c */ -#line 673 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 674 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -3532,8 +3536,8 @@ yyreduce: break; case 88: -/* Line 1787 of yacc.c */ -#line 682 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 683 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -3549,8 +3553,8 @@ yyreduce: break; case 89: -/* Line 1787 of yacc.c */ -#line 696 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 697 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -3561,8 +3565,8 @@ yyreduce: break; case 90: -/* Line 1787 of yacc.c */ -#line 705 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 706 "conf_parser.y" { if (conf_parser_ctx.pass == 2 && *yylval.string != '*') { @@ -3592,8 +3596,8 @@ yyreduce: break; case 91: -/* Line 1787 of yacc.c */ -#line 733 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 734 "conf_parser.y" { #ifdef IPV6 if (conf_parser_ctx.pass == 2 && *yylval.string != '*') @@ -3625,8 +3629,8 @@ yyreduce: break; case 92: -/* Line 1787 of yacc.c */ -#line 763 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 764 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -3653,8 +3657,8 @@ yyreduce: break; case 93: -/* Line 1787 of yacc.c */ -#line 788 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 789 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -3678,8 +3682,8 @@ yyreduce: break; case 94: -/* Line 1787 of yacc.c */ -#line 810 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 811 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -3703,8 +3707,8 @@ yyreduce: break; case 95: -/* Line 1787 of yacc.c */ -#line 832 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 833 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ServerInfo.hub = yylval.number; @@ -3712,8 +3716,8 @@ yyreduce: break; case 103: -/* Line 1787 of yacc.c */ -#line 847 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 848 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -3724,8 +3728,8 @@ yyreduce: break; case 104: -/* Line 1787 of yacc.c */ -#line 856 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 857 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -3736,8 +3740,8 @@ yyreduce: break; case 105: -/* Line 1787 of yacc.c */ -#line 865 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 866 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -3748,8 +3752,8 @@ yyreduce: break; case 112: -/* Line 1787 of yacc.c */ -#line 883 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 884 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigLoggingEntry.use_logging = yylval.number; @@ -3757,8 +3761,8 @@ yyreduce: break; case 113: -/* Line 1787 of yacc.c */ -#line 889 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 890 "conf_parser.y" { if (conf_parser_ctx.pass == 2) reset_block_state(); @@ -3766,8 +3770,8 @@ yyreduce: break; case 114: -/* Line 1787 of yacc.c */ -#line 893 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 894 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -3779,8 +3783,8 @@ yyreduce: break; case 121: -/* Line 1787 of yacc.c */ -#line 909 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 910 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -3790,24 +3794,24 @@ yyreduce: break; case 122: -/* Line 1787 of yacc.c */ -#line 917 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 918 "conf_parser.y" { block_state.size.value = (yyvsp[(3) - (4)].number); } break; case 123: -/* Line 1787 of yacc.c */ -#line 920 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 921 "conf_parser.y" { block_state.size.value = 0; } break; case 124: -/* Line 1787 of yacc.c */ -#line 925 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 926 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = 0; @@ -3815,8 +3819,8 @@ yyreduce: break; case 128: -/* Line 1787 of yacc.c */ -#line 932 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 933 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_USER; @@ -3824,8 +3828,8 @@ yyreduce: break; case 129: -/* Line 1787 of yacc.c */ -#line 936 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 937 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_OPER; @@ -3833,8 +3837,8 @@ yyreduce: break; case 130: -/* Line 1787 of yacc.c */ -#line 940 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 941 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_GLINE; @@ -3842,8 +3846,8 @@ yyreduce: break; case 131: -/* Line 1787 of yacc.c */ -#line 944 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 945 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_DLINE; @@ -3851,8 +3855,8 @@ yyreduce: break; case 132: -/* Line 1787 of yacc.c */ -#line 948 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 949 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_KLINE; @@ -3860,8 +3864,8 @@ yyreduce: break; case 133: -/* Line 1787 of yacc.c */ -#line 952 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 953 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_KILL; @@ -3869,8 +3873,8 @@ yyreduce: break; case 134: -/* Line 1787 of yacc.c */ -#line 956 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 957 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_DEBUG; @@ -3878,8 +3882,8 @@ yyreduce: break; case 135: -/* Line 1787 of yacc.c */ -#line 966 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 967 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -3890,8 +3894,8 @@ yyreduce: break; case 136: -/* Line 1787 of yacc.c */ -#line 973 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 974 "conf_parser.y" { dlink_node *ptr = NULL; @@ -3963,8 +3967,8 @@ yyreduce: break; case 148: -/* Line 1787 of yacc.c */ -#line 1048 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1049 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); @@ -3972,8 +3976,8 @@ yyreduce: break; case 149: -/* Line 1787 of yacc.c */ -#line 1054 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1055 "conf_parser.y" { if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list); @@ -3981,8 +3985,8 @@ yyreduce: break; case 150: -/* Line 1787 of yacc.c */ -#line 1060 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1061 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); @@ -3990,8 +3994,8 @@ yyreduce: break; case 151: -/* Line 1787 of yacc.c */ -#line 1066 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1067 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -4004,8 +4008,8 @@ yyreduce: break; case 152: -/* Line 1787 of yacc.c */ -#line 1077 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1078 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf)); @@ -4013,8 +4017,8 @@ yyreduce: break; case 153: -/* Line 1787 of yacc.c */ -#line 1083 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1084 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); @@ -4022,8 +4026,8 @@ yyreduce: break; case 154: -/* Line 1787 of yacc.c */ -#line 1089 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1090 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value = 0; @@ -4031,8 +4035,8 @@ yyreduce: break; case 158: -/* Line 1787 of yacc.c */ -#line 1096 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1097 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_BOTS; @@ -4040,8 +4044,8 @@ yyreduce: break; case 159: -/* Line 1787 of yacc.c */ -#line 1100 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1101 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_CCONN; @@ -4049,8 +4053,8 @@ yyreduce: break; case 160: -/* Line 1787 of yacc.c */ -#line 1104 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1105 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_CCONN_FULL; @@ -4058,8 +4062,8 @@ yyreduce: break; case 161: -/* Line 1787 of yacc.c */ -#line 1108 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1109 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_DEAF; @@ -4067,8 +4071,8 @@ yyreduce: break; case 162: -/* Line 1787 of yacc.c */ -#line 1112 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1113 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_DEBUG; @@ -4076,8 +4080,8 @@ yyreduce: break; case 163: -/* Line 1787 of yacc.c */ -#line 1116 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1117 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_FULL; @@ -4085,8 +4089,8 @@ yyreduce: break; case 164: -/* Line 1787 of yacc.c */ -#line 1120 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1121 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_HIDDEN; @@ -4094,8 +4098,8 @@ yyreduce: break; case 165: -/* Line 1787 of yacc.c */ -#line 1124 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1125 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SKILL; @@ -4103,8 +4107,8 @@ yyreduce: break; case 166: -/* Line 1787 of yacc.c */ -#line 1128 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1129 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_NCHANGE; @@ -4112,8 +4116,8 @@ yyreduce: break; case 167: -/* Line 1787 of yacc.c */ -#line 1132 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1133 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_REJ; @@ -4121,8 +4125,8 @@ yyreduce: break; case 168: -/* Line 1787 of yacc.c */ -#line 1136 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1137 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_UNAUTH; @@ -4130,8 +4134,8 @@ yyreduce: break; case 169: -/* Line 1787 of yacc.c */ -#line 1140 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1141 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SPY; @@ -4139,8 +4143,8 @@ yyreduce: break; case 170: -/* Line 1787 of yacc.c */ -#line 1144 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1145 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_EXTERNAL; @@ -4148,8 +4152,8 @@ yyreduce: break; case 171: -/* Line 1787 of yacc.c */ -#line 1148 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1149 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_OPERWALL; @@ -4157,8 +4161,8 @@ yyreduce: break; case 172: -/* Line 1787 of yacc.c */ -#line 1152 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1153 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SERVNOTICE; @@ -4166,8 +4170,8 @@ yyreduce: break; case 173: -/* Line 1787 of yacc.c */ -#line 1156 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1157 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_INVISIBLE; @@ -4175,8 +4179,8 @@ yyreduce: break; case 174: -/* Line 1787 of yacc.c */ -#line 1160 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1161 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_WALLOP; @@ -4184,8 +4188,8 @@ yyreduce: break; case 175: -/* Line 1787 of yacc.c */ -#line 1164 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1165 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SOFTCALLERID; @@ -4193,8 +4197,8 @@ yyreduce: break; case 176: -/* Line 1787 of yacc.c */ -#line 1168 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1169 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_CALLERID; @@ -4202,8 +4206,8 @@ yyreduce: break; case 177: -/* Line 1787 of yacc.c */ -#line 1172 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1173 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_LOCOPS; @@ -4211,8 +4215,8 @@ yyreduce: break; case 178: -/* Line 1787 of yacc.c */ -#line 1178 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1179 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value = 0; @@ -4220,8 +4224,8 @@ yyreduce: break; case 182: -/* Line 1787 of yacc.c */ -#line 1185 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1186 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_GLOBAL_KILL; @@ -4229,8 +4233,8 @@ yyreduce: break; case 183: -/* Line 1787 of yacc.c */ -#line 1189 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1190 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_REMOTE; @@ -4238,8 +4242,8 @@ yyreduce: break; case 184: -/* Line 1787 of yacc.c */ -#line 1193 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1194 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_K; @@ -4247,8 +4251,8 @@ yyreduce: break; case 185: -/* Line 1787 of yacc.c */ -#line 1197 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1198 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_UNKLINE; @@ -4256,8 +4260,8 @@ yyreduce: break; case 186: -/* Line 1787 of yacc.c */ -#line 1201 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1202 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_DLINE; @@ -4265,8 +4269,8 @@ yyreduce: break; case 187: -/* Line 1787 of yacc.c */ -#line 1205 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1206 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_UNDLINE; @@ -4274,8 +4278,8 @@ yyreduce: break; case 188: -/* Line 1787 of yacc.c */ -#line 1209 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1210 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_X; @@ -4283,8 +4287,8 @@ yyreduce: break; case 189: -/* Line 1787 of yacc.c */ -#line 1213 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1214 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_GLINE; @@ -4292,8 +4296,8 @@ yyreduce: break; case 190: -/* Line 1787 of yacc.c */ -#line 1217 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1218 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_DIE; @@ -4301,8 +4305,8 @@ yyreduce: break; case 191: -/* Line 1787 of yacc.c */ -#line 1221 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1222 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_RESTART; @@ -4310,8 +4314,8 @@ yyreduce: break; case 192: -/* Line 1787 of yacc.c */ -#line 1225 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1226 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_REHASH; @@ -4319,8 +4323,8 @@ yyreduce: break; case 193: -/* Line 1787 of yacc.c */ -#line 1229 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1230 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_ADMIN; @@ -4328,8 +4332,8 @@ yyreduce: break; case 194: -/* Line 1787 of yacc.c */ -#line 1233 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1234 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_N; @@ -4337,8 +4341,8 @@ yyreduce: break; case 195: -/* Line 1787 of yacc.c */ -#line 1237 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1238 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_OPERWALL; @@ -4346,8 +4350,8 @@ yyreduce: break; case 196: -/* Line 1787 of yacc.c */ -#line 1241 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1242 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_GLOBOPS; @@ -4355,8 +4359,8 @@ yyreduce: break; case 197: -/* Line 1787 of yacc.c */ -#line 1245 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1246 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_OPER_SPY; @@ -4364,8 +4368,8 @@ yyreduce: break; case 198: -/* Line 1787 of yacc.c */ -#line 1249 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1250 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_REMOTEBAN; @@ -4373,8 +4377,8 @@ yyreduce: break; case 199: -/* Line 1787 of yacc.c */ -#line 1253 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1254 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_SET; @@ -4382,8 +4386,8 @@ yyreduce: break; case 200: -/* Line 1787 of yacc.c */ -#line 1257 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1258 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_MODULE; @@ -4391,8 +4395,8 @@ yyreduce: break; case 201: -/* Line 1787 of yacc.c */ -#line 1267 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1268 "conf_parser.y" { if (conf_parser_ctx.pass != 1) break; @@ -4408,8 +4412,8 @@ yyreduce: break; case 202: -/* Line 1787 of yacc.c */ -#line 1279 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1280 "conf_parser.y" { struct ClassItem *class = NULL; @@ -4460,8 +4464,8 @@ yyreduce: break; case 222: -/* Line 1787 of yacc.c */ -#line 1345 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1346 "conf_parser.y" { if (conf_parser_ctx.pass == 1) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); @@ -4469,8 +4473,8 @@ yyreduce: break; case 223: -/* Line 1787 of yacc.c */ -#line 1351 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1352 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.ping_freq.value = (yyvsp[(3) - (4)].number); @@ -4478,8 +4482,8 @@ yyreduce: break; case 224: -/* Line 1787 of yacc.c */ -#line 1357 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1358 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.max_perip.value = (yyvsp[(3) - (4)].number); @@ -4487,8 +4491,8 @@ yyreduce: break; case 225: -/* Line 1787 of yacc.c */ -#line 1363 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1364 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.con_freq.value = (yyvsp[(3) - (4)].number); @@ -4496,8 +4500,8 @@ yyreduce: break; case 226: -/* Line 1787 of yacc.c */ -#line 1369 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1370 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.max_total.value = (yyvsp[(3) - (4)].number); @@ -4505,8 +4509,8 @@ yyreduce: break; case 227: -/* Line 1787 of yacc.c */ -#line 1375 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1376 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.max_global.value = (yyvsp[(3) - (4)].number); @@ -4514,8 +4518,8 @@ yyreduce: break; case 228: -/* Line 1787 of yacc.c */ -#line 1381 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1382 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.max_local.value = (yyvsp[(3) - (4)].number); @@ -4523,8 +4527,8 @@ yyreduce: break; case 229: -/* Line 1787 of yacc.c */ -#line 1387 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1388 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.max_ident.value = (yyvsp[(3) - (4)].number); @@ -4532,8 +4536,8 @@ yyreduce: break; case 230: -/* Line 1787 of yacc.c */ -#line 1393 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1394 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.max_sendq.value = (yyvsp[(3) - (4)].number); @@ -4541,8 +4545,8 @@ yyreduce: break; case 231: -/* Line 1787 of yacc.c */ -#line 1399 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1400 "conf_parser.y" { if (conf_parser_ctx.pass == 1) if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX) @@ -4551,8 +4555,8 @@ yyreduce: break; case 232: -/* Line 1787 of yacc.c */ -#line 1406 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1407 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number); @@ -4560,8 +4564,8 @@ yyreduce: break; case 233: -/* Line 1787 of yacc.c */ -#line 1412 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1413 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number); @@ -4569,8 +4573,8 @@ yyreduce: break; case 234: -/* Line 1787 of yacc.c */ -#line 1418 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1419 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number); @@ -4578,8 +4582,8 @@ yyreduce: break; case 235: -/* Line 1787 of yacc.c */ -#line 1424 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1425 "conf_parser.y" { if (conf_parser_ctx.pass != 1) break; @@ -4590,8 +4594,8 @@ yyreduce: break; case 236: -/* Line 1787 of yacc.c */ -#line 1433 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1434 "conf_parser.y" { if (conf_parser_ctx.pass != 1) break; @@ -4602,8 +4606,8 @@ yyreduce: break; case 237: -/* Line 1787 of yacc.c */ -#line 1442 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1443 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE; @@ -4611,8 +4615,8 @@ yyreduce: break; case 241: -/* Line 1787 of yacc.c */ -#line 1449 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1450 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE; @@ -4620,8 +4624,8 @@ yyreduce: break; case 242: -/* Line 1787 of yacc.c */ -#line 1453 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1454 "conf_parser.y" { if (conf_parser_ctx.pass == 1) block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS; @@ -4629,8 +4633,8 @@ yyreduce: break; case 243: -/* Line 1787 of yacc.c */ -#line 1463 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1464 "conf_parser.y" { if (conf_parser_ctx.pass == 2) reset_block_state(); @@ -4638,16 +4642,16 @@ yyreduce: break; case 245: -/* Line 1787 of yacc.c */ -#line 1469 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1470 "conf_parser.y" { block_state.flags.value = 0; } break; case 249: -/* Line 1787 of yacc.c */ -#line 1475 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1476 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_SSL; @@ -4655,8 +4659,8 @@ yyreduce: break; case 250: -/* Line 1787 of yacc.c */ -#line 1479 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1480 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_HIDDEN; @@ -4664,8 +4668,8 @@ yyreduce: break; case 251: -/* Line 1787 of yacc.c */ -#line 1483 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1484 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_SERVER; @@ -4673,14 +4677,14 @@ yyreduce: break; case 259: -/* Line 1787 of yacc.c */ -#line 1491 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1492 "conf_parser.y" { block_state.flags.value = 0; } break; case 263: -/* Line 1787 of yacc.c */ -#line 1496 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1497 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -4698,8 +4702,8 @@ yyreduce: break; case 264: -/* Line 1787 of yacc.c */ -#line 1510 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1511 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -4721,8 +4725,8 @@ yyreduce: break; case 265: -/* Line 1787 of yacc.c */ -#line 1530 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1531 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf)); @@ -4730,8 +4734,8 @@ yyreduce: break; case 266: -/* Line 1787 of yacc.c */ -#line 1536 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1537 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf)); @@ -4739,8 +4743,8 @@ yyreduce: break; case 267: -/* Line 1787 of yacc.c */ -#line 1545 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1546 "conf_parser.y" { if (conf_parser_ctx.pass == 2) reset_block_state(); @@ -4748,8 +4752,8 @@ yyreduce: break; case 268: -/* Line 1787 of yacc.c */ -#line 1549 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1550 "conf_parser.y" { dlink_node *ptr = NULL; @@ -4789,8 +4793,8 @@ yyreduce: break; case 280: -/* Line 1787 of yacc.c */ -#line 1592 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1593 "conf_parser.y" { if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list); @@ -4798,8 +4802,8 @@ yyreduce: break; case 281: -/* Line 1787 of yacc.c */ -#line 1598 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1599 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); @@ -4807,8 +4811,8 @@ yyreduce: break; case 282: -/* Line 1787 of yacc.c */ -#line 1604 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1605 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); @@ -4816,8 +4820,8 @@ yyreduce: break; case 283: -/* Line 1787 of yacc.c */ -#line 1610 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1611 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -4830,8 +4834,8 @@ yyreduce: break; case 284: -/* Line 1787 of yacc.c */ -#line 1621 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1622 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value &= CONF_FLAGS_ENCRYPTED; @@ -4839,8 +4843,8 @@ yyreduce: break; case 288: -/* Line 1787 of yacc.c */ -#line 1628 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1629 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE; @@ -4848,8 +4852,8 @@ yyreduce: break; case 289: -/* Line 1787 of yacc.c */ -#line 1632 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1633 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NOLIMIT; @@ -4857,8 +4861,8 @@ yyreduce: break; case 290: -/* Line 1787 of yacc.c */ -#line 1636 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1637 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE; @@ -4866,8 +4870,8 @@ yyreduce: break; case 291: -/* Line 1787 of yacc.c */ -#line 1640 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1641 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NEED_IDENTD; @@ -4875,8 +4879,8 @@ yyreduce: break; case 292: -/* Line 1787 of yacc.c */ -#line 1644 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1645 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_CAN_FLOOD; @@ -4884,8 +4888,8 @@ yyreduce: break; case 293: -/* Line 1787 of yacc.c */ -#line 1648 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1649 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NO_TILDE; @@ -4893,8 +4897,8 @@ yyreduce: break; case 294: -/* Line 1787 of yacc.c */ -#line 1652 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1653 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE; @@ -4902,8 +4906,8 @@ yyreduce: break; case 295: -/* Line 1787 of yacc.c */ -#line 1656 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1657 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_EXEMPTRESV; @@ -4911,8 +4915,8 @@ yyreduce: break; case 296: -/* Line 1787 of yacc.c */ -#line 1660 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1661 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_WEBIRC; @@ -4920,8 +4924,8 @@ yyreduce: break; case 297: -/* Line 1787 of yacc.c */ -#line 1664 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1665 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD; @@ -4929,8 +4933,8 @@ yyreduce: break; case 298: -/* Line 1787 of yacc.c */ -#line 1670 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1671 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -4946,8 +4950,8 @@ yyreduce: break; case 299: -/* Line 1787 of yacc.c */ -#line 1684 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1685 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -4958,8 +4962,8 @@ yyreduce: break; case 300: -/* Line 1787 of yacc.c */ -#line 1693 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1694 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -4970,8 +4974,8 @@ yyreduce: break; case 301: -/* Line 1787 of yacc.c */ -#line 1706 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1707 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -4982,8 +4986,8 @@ yyreduce: break; case 302: -/* Line 1787 of yacc.c */ -#line 1713 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1714 "conf_parser.y" { if (IsChanPrefix(block_state.name.buf[0])) create_channel_resv(block_state.name.buf, block_state.rpass.buf); @@ -4993,8 +4997,8 @@ yyreduce: break; case 309: -/* Line 1787 of yacc.c */ -#line 1724 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1725 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); @@ -5002,8 +5006,8 @@ yyreduce: break; case 310: -/* Line 1787 of yacc.c */ -#line 1730 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1731 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); @@ -5011,8 +5015,8 @@ yyreduce: break; case 311: -/* Line 1787 of yacc.c */ -#line 1736 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1737 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); @@ -5020,8 +5024,8 @@ yyreduce: break; case 317: -/* Line 1787 of yacc.c */ -#line 1750 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1751 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -5035,8 +5039,8 @@ yyreduce: break; case 318: -/* Line 1787 of yacc.c */ -#line 1765 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1766 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -5051,8 +5055,8 @@ yyreduce: break; case 319: -/* Line 1787 of yacc.c */ -#line 1776 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1777 "conf_parser.y" { struct MaskItem *conf = NULL; @@ -5068,8 +5072,8 @@ yyreduce: break; case 326: -/* Line 1787 of yacc.c */ -#line 1793 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1794 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); @@ -5077,8 +5081,8 @@ yyreduce: break; case 327: -/* Line 1787 of yacc.c */ -#line 1799 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1800 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -5099,8 +5103,8 @@ yyreduce: break; case 328: -/* Line 1787 of yacc.c */ -#line 1818 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1819 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value = 0; @@ -5108,8 +5112,8 @@ yyreduce: break; case 332: -/* Line 1787 of yacc.c */ -#line 1825 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1826 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_KLINE; @@ -5117,8 +5121,8 @@ yyreduce: break; case 333: -/* Line 1787 of yacc.c */ -#line 1829 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1830 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNKLINE; @@ -5126,8 +5130,8 @@ yyreduce: break; case 334: -/* Line 1787 of yacc.c */ -#line 1833 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1834 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_DLINE; @@ -5135,8 +5139,8 @@ yyreduce: break; case 335: -/* Line 1787 of yacc.c */ -#line 1837 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1838 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNDLINE; @@ -5144,8 +5148,8 @@ yyreduce: break; case 336: -/* Line 1787 of yacc.c */ -#line 1841 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1842 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_XLINE; @@ -5153,8 +5157,8 @@ yyreduce: break; case 337: -/* Line 1787 of yacc.c */ -#line 1845 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1846 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNXLINE; @@ -5162,8 +5166,8 @@ yyreduce: break; case 338: -/* Line 1787 of yacc.c */ -#line 1849 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1850 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_RESV; @@ -5171,8 +5175,8 @@ yyreduce: break; case 339: -/* Line 1787 of yacc.c */ -#line 1853 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1854 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNRESV; @@ -5180,8 +5184,8 @@ yyreduce: break; case 340: -/* Line 1787 of yacc.c */ -#line 1857 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1858 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_LOCOPS; @@ -5189,8 +5193,8 @@ yyreduce: break; case 341: -/* Line 1787 of yacc.c */ -#line 1861 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1862 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value = SHARED_ALL; @@ -5198,8 +5202,8 @@ yyreduce: break; case 342: -/* Line 1787 of yacc.c */ -#line 1870 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1871 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -5212,8 +5216,8 @@ yyreduce: break; case 343: -/* Line 1787 of yacc.c */ -#line 1879 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1880 "conf_parser.y" { struct MaskItem *conf = NULL; @@ -5227,8 +5231,8 @@ yyreduce: break; case 349: -/* Line 1787 of yacc.c */ -#line 1894 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1895 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); @@ -5236,8 +5240,8 @@ yyreduce: break; case 350: -/* Line 1787 of yacc.c */ -#line 1900 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1901 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value = 0; @@ -5245,8 +5249,8 @@ yyreduce: break; case 354: -/* Line 1787 of yacc.c */ -#line 1907 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1908 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_KLINE; @@ -5254,8 +5258,8 @@ yyreduce: break; case 355: -/* Line 1787 of yacc.c */ -#line 1911 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1912 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNKLINE; @@ -5263,8 +5267,8 @@ yyreduce: break; case 356: -/* Line 1787 of yacc.c */ -#line 1915 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1916 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_DLINE; @@ -5272,8 +5276,8 @@ yyreduce: break; case 357: -/* Line 1787 of yacc.c */ -#line 1919 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1920 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNDLINE; @@ -5281,8 +5285,8 @@ yyreduce: break; case 358: -/* Line 1787 of yacc.c */ -#line 1923 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1924 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_XLINE; @@ -5290,8 +5294,8 @@ yyreduce: break; case 359: -/* Line 1787 of yacc.c */ -#line 1927 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1928 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNXLINE; @@ -5299,8 +5303,8 @@ yyreduce: break; case 360: -/* Line 1787 of yacc.c */ -#line 1931 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1932 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_RESV; @@ -5308,8 +5312,8 @@ yyreduce: break; case 361: -/* Line 1787 of yacc.c */ -#line 1935 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1936 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNRESV; @@ -5317,8 +5321,8 @@ yyreduce: break; case 362: -/* Line 1787 of yacc.c */ -#line 1939 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1940 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_LOCOPS; @@ -5326,8 +5330,8 @@ yyreduce: break; case 363: -/* Line 1787 of yacc.c */ -#line 1943 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1944 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value = SHARED_ALL; @@ -5335,8 +5339,8 @@ yyreduce: break; case 364: -/* Line 1787 of yacc.c */ -#line 1952 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1953 "conf_parser.y" { if (conf_parser_ctx.pass != 2) @@ -5348,8 +5352,8 @@ yyreduce: break; case 365: -/* Line 1787 of yacc.c */ -#line 1960 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 1961 "conf_parser.y" { struct MaskItem *conf = NULL; struct addrinfo hints, *res; @@ -5409,8 +5413,8 @@ yyreduce: break; case 382: -/* Line 1787 of yacc.c */ -#line 2026 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2027 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); @@ -5418,8 +5422,8 @@ yyreduce: break; case 383: -/* Line 1787 of yacc.c */ -#line 2032 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2033 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf)); @@ -5427,8 +5431,8 @@ yyreduce: break; case 384: -/* Line 1787 of yacc.c */ -#line 2038 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2039 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf)); @@ -5436,8 +5440,8 @@ yyreduce: break; case 385: -/* Line 1787 of yacc.c */ -#line 2044 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2045 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -5452,8 +5456,8 @@ yyreduce: break; case 386: -/* Line 1787 of yacc.c */ -#line 2057 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2058 "conf_parser.y" { if (conf_parser_ctx.pass != 2) break; @@ -5468,8 +5472,8 @@ yyreduce: break; case 387: -/* Line 1787 of yacc.c */ -#line 2070 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2071 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value = (yyvsp[(3) - (4)].number); @@ -5477,8 +5481,8 @@ yyreduce: break; case 388: -/* Line 1787 of yacc.c */ -#line 2076 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2077 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.aftype.value = AF_INET; @@ -5486,8 +5490,8 @@ yyreduce: break; case 389: -/* Line 1787 of yacc.c */ -#line 2080 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2081 "conf_parser.y" { #ifdef IPV6 if (conf_parser_ctx.pass == 2) @@ -5497,16 +5501,16 @@ yyreduce: break; case 390: -/* Line 1787 of yacc.c */ -#line 2088 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2089 "conf_parser.y" { block_state.flags.value &= CONF_FLAGS_ENCRYPTED; } break; case 394: -/* Line 1787 of yacc.c */ -#line 2094 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2095 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN; @@ -5514,8 +5518,8 @@ yyreduce: break; case 395: -/* Line 1787 of yacc.c */ -#line 2098 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2099 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_SSL; @@ -5523,8 +5527,8 @@ yyreduce: break; case 396: -/* Line 1787 of yacc.c */ -#line 2104 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2105 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -5537,8 +5541,8 @@ yyreduce: break; case 397: -/* Line 1787 of yacc.c */ -#line 2115 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2116 "conf_parser.y" { if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list); @@ -5546,8 +5550,8 @@ yyreduce: break; case 398: -/* Line 1787 of yacc.c */ -#line 2121 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2122 "conf_parser.y" { if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list); @@ -5555,8 +5559,8 @@ yyreduce: break; case 399: -/* Line 1787 of yacc.c */ -#line 2127 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2128 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); @@ -5564,8 +5568,8 @@ yyreduce: break; case 400: -/* Line 1787 of yacc.c */ -#line 2133 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2134 "conf_parser.y" { #ifdef HAVE_LIBCRYPTO if (conf_parser_ctx.pass == 2) @@ -5578,8 +5582,8 @@ yyreduce: break; case 401: -/* Line 1787 of yacc.c */ -#line 2148 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2149 "conf_parser.y" { if (conf_parser_ctx.pass == 2) reset_block_state(); @@ -5587,8 +5591,8 @@ yyreduce: break; case 402: -/* Line 1787 of yacc.c */ -#line 2152 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2153 "conf_parser.y" { struct MaskItem *conf = NULL; @@ -5648,8 +5652,8 @@ yyreduce: break; case 403: -/* Line 1787 of yacc.c */ -#line 2210 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2211 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value = 0; @@ -5657,8 +5661,8 @@ yyreduce: break; case 407: -/* Line 1787 of yacc.c */ -#line 2217 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2218 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value = 1; @@ -5666,8 +5670,8 @@ yyreduce: break; case 414: -/* Line 1787 of yacc.c */ -#line 2226 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2227 "conf_parser.y" { if (conf_parser_ctx.pass == 2) @@ -5689,8 +5693,8 @@ yyreduce: break; case 415: -/* Line 1787 of yacc.c */ -#line 2246 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2247 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); @@ -5698,8 +5702,8 @@ yyreduce: break; case 416: -/* Line 1787 of yacc.c */ -#line 2255 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2256 "conf_parser.y" { if (conf_parser_ctx.pass == 2) reset_block_state(); @@ -5707,8 +5711,8 @@ yyreduce: break; case 417: -/* Line 1787 of yacc.c */ -#line 2259 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2260 "conf_parser.y" { struct MaskItem *conf = NULL; @@ -5733,8 +5737,8 @@ yyreduce: break; case 423: -/* Line 1787 of yacc.c */ -#line 2285 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2286 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf)); @@ -5742,8 +5746,8 @@ yyreduce: break; case 424: -/* Line 1787 of yacc.c */ -#line 2291 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2292 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); @@ -5751,8 +5755,8 @@ yyreduce: break; case 430: -/* Line 1787 of yacc.c */ -#line 2305 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2306 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -5768,8 +5772,8 @@ yyreduce: break; case 431: -/* Line 1787 of yacc.c */ -#line 2322 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2323 "conf_parser.y" { if (conf_parser_ctx.pass == 2) reset_block_state(); @@ -5777,8 +5781,8 @@ yyreduce: break; case 432: -/* Line 1787 of yacc.c */ -#line 2326 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2327 "conf_parser.y" { struct MaskItem *conf = NULL; @@ -5821,8 +5825,8 @@ yyreduce: break; case 433: -/* Line 1787 of yacc.c */ -#line 2367 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2368 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value = 0; @@ -5830,8 +5834,8 @@ yyreduce: break; case 437: -/* Line 1787 of yacc.c */ -#line 2374 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2375 "conf_parser.y" { if (conf_parser_ctx.pass == 2) block_state.port.value = 1; @@ -5839,8 +5843,8 @@ yyreduce: break; case 444: -/* Line 1787 of yacc.c */ -#line 2383 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2384 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); @@ -5848,173 +5852,173 @@ yyreduce: break; case 445: -/* Line 1787 of yacc.c */ -#line 2389 "conf_parser.y" +/* Line 1792 of yacc.c */ +#line 2390 "conf_parser.y" { if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } break; - case 498: -/* Line 1787 of yacc.c */ -#line 2433 "conf_parser.y" + case 499: +/* Line 1792 of yacc.c */ +#line 2435 "conf_parser.y" { ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number); } break; - case 499: -/* Line 1787 of yacc.c */ -#line 2438 "conf_parser.y" + case 500: +/* Line 1792 of yacc.c */ +#line 2440 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigFileEntry.glines = yylval.number; } break; - case 500: -/* Line 1787 of yacc.c */ -#line 2444 "conf_parser.y" + case 501: +/* Line 1792 of yacc.c */ +#line 2446 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number); } break; - case 501: -/* Line 1787 of yacc.c */ -#line 2450 "conf_parser.y" + case 502: +/* Line 1792 of yacc.c */ +#line 2452 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number); } break; - case 502: -/* Line 1787 of yacc.c */ -#line 2456 "conf_parser.y" + case 503: +/* Line 1792 of yacc.c */ +#line 2458 "conf_parser.y" { ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number); } break; - case 503: -/* Line 1787 of yacc.c */ -#line 2461 "conf_parser.y" + case 504: +/* Line 1792 of yacc.c */ +#line 2463 "conf_parser.y" { ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number); } break; - case 504: -/* Line 1787 of yacc.c */ -#line 2466 "conf_parser.y" + case 505: +/* Line 1792 of yacc.c */ +#line 2468 "conf_parser.y" { ConfigFileEntry.tkline_expire_notices = yylval.number; } break; - case 505: -/* Line 1787 of yacc.c */ -#line 2471 "conf_parser.y" + case 506: +/* Line 1792 of yacc.c */ +#line 2473 "conf_parser.y" { ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number); } break; - case 506: -/* Line 1787 of yacc.c */ -#line 2476 "conf_parser.y" + case 507: +/* Line 1792 of yacc.c */ +#line 2478 "conf_parser.y" { ConfigFileEntry.hide_spoof_ips = yylval.number; } break; - case 507: -/* Line 1787 of yacc.c */ -#line 2481 "conf_parser.y" + case 508: +/* Line 1792 of yacc.c */ +#line 2483 "conf_parser.y" { ConfigFileEntry.ignore_bogus_ts = yylval.number; } break; - case 508: -/* Line 1787 of yacc.c */ -#line 2486 "conf_parser.y" + case 509: +/* Line 1792 of yacc.c */ +#line 2488 "conf_parser.y" { ConfigFileEntry.disable_remote = yylval.number; } break; - case 509: -/* Line 1787 of yacc.c */ -#line 2491 "conf_parser.y" + case 510: +/* Line 1792 of yacc.c */ +#line 2493 "conf_parser.y" { ConfigFileEntry.failed_oper_notice = yylval.number; } break; - case 510: -/* Line 1787 of yacc.c */ -#line 2496 "conf_parser.y" + case 511: +/* Line 1792 of yacc.c */ +#line 2498 "conf_parser.y" { ConfigFileEntry.anti_nick_flood = yylval.number; } break; - case 511: -/* Line 1787 of yacc.c */ -#line 2501 "conf_parser.y" + case 512: +/* Line 1792 of yacc.c */ +#line 2503 "conf_parser.y" { ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number); } break; - case 512: -/* Line 1787 of yacc.c */ -#line 2506 "conf_parser.y" + case 513: +/* Line 1792 of yacc.c */ +#line 2508 "conf_parser.y" { ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number); } break; - case 513: -/* Line 1787 of yacc.c */ -#line 2511 "conf_parser.y" + case 514: +/* Line 1792 of yacc.c */ +#line 2513 "conf_parser.y" { ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number); } break; - case 514: -/* Line 1787 of yacc.c */ -#line 2516 "conf_parser.y" + case 515: +/* Line 1792 of yacc.c */ +#line 2518 "conf_parser.y" { ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number); } break; - case 515: -/* Line 1787 of yacc.c */ -#line 2521 "conf_parser.y" + case 516: +/* Line 1792 of yacc.c */ +#line 2523 "conf_parser.y" { ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number); } break; - case 516: -/* Line 1787 of yacc.c */ -#line 2526 "conf_parser.y" + case 517: +/* Line 1792 of yacc.c */ +#line 2528 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number); } break; - case 517: -/* Line 1787 of yacc.c */ -#line 2532 "conf_parser.y" + case 518: +/* Line 1792 of yacc.c */ +#line 2534 "conf_parser.y" { if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1) { @@ -6026,169 +6030,183 @@ yyreduce: } break; - case 518: -/* Line 1787 of yacc.c */ -#line 2543 "conf_parser.y" + case 519: +/* Line 1792 of yacc.c */ +#line 2545 "conf_parser.y" { ConfigFileEntry.invisible_on_connect = yylval.number; } break; - case 519: -/* Line 1787 of yacc.c */ -#line 2548 "conf_parser.y" + case 520: +/* Line 1792 of yacc.c */ +#line 2550 "conf_parser.y" { ConfigFileEntry.warn_no_nline = yylval.number; } break; - case 520: -/* Line 1787 of yacc.c */ -#line 2553 "conf_parser.y" + case 521: +/* Line 1792 of yacc.c */ +#line 2555 "conf_parser.y" { ConfigFileEntry.stats_e_disabled = yylval.number; } break; - case 521: -/* Line 1787 of yacc.c */ -#line 2558 "conf_parser.y" + case 522: +/* Line 1792 of yacc.c */ +#line 2560 "conf_parser.y" { ConfigFileEntry.stats_o_oper_only = yylval.number; } break; - case 522: -/* Line 1787 of yacc.c */ -#line 2563 "conf_parser.y" + case 523: +/* Line 1792 of yacc.c */ +#line 2565 "conf_parser.y" { ConfigFileEntry.stats_P_oper_only = yylval.number; } break; - case 523: -/* Line 1787 of yacc.c */ -#line 2568 "conf_parser.y" + case 524: +/* Line 1792 of yacc.c */ +#line 2570 "conf_parser.y" { ConfigFileEntry.stats_k_oper_only = 2 * yylval.number; } break; - case 524: -/* Line 1787 of yacc.c */ -#line 2571 "conf_parser.y" + case 525: +/* Line 1792 of yacc.c */ +#line 2573 "conf_parser.y" { ConfigFileEntry.stats_k_oper_only = 1; } break; - case 525: -/* Line 1787 of yacc.c */ -#line 2576 "conf_parser.y" + case 526: +/* Line 1792 of yacc.c */ +#line 2578 "conf_parser.y" { ConfigFileEntry.stats_i_oper_only = 2 * yylval.number; } break; - case 526: -/* Line 1787 of yacc.c */ -#line 2579 "conf_parser.y" + case 527: +/* Line 1792 of yacc.c */ +#line 2581 "conf_parser.y" { ConfigFileEntry.stats_i_oper_only = 1; } break; - case 527: -/* Line 1787 of yacc.c */ -#line 2584 "conf_parser.y" + case 528: +/* Line 1792 of yacc.c */ +#line 2586 "conf_parser.y" { ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number); } break; - case 528: -/* Line 1787 of yacc.c */ -#line 2589 "conf_parser.y" + case 529: +/* Line 1792 of yacc.c */ +#line 2591 "conf_parser.y" { ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number); } break; - case 529: -/* Line 1787 of yacc.c */ -#line 2594 "conf_parser.y" + case 530: +/* Line 1792 of yacc.c */ +#line 2596 "conf_parser.y" { ConfigFileEntry.opers_bypass_callerid = yylval.number; } break; - case 530: -/* Line 1787 of yacc.c */ -#line 2599 "conf_parser.y" + case 531: +/* Line 1792 of yacc.c */ +#line 2601 "conf_parser.y" { ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number); } break; - case 531: -/* Line 1787 of yacc.c */ -#line 2604 "conf_parser.y" + case 532: +/* Line 1792 of yacc.c */ +#line 2606 "conf_parser.y" { ConfigFileEntry.short_motd = yylval.number; } break; - case 532: -/* Line 1787 of yacc.c */ -#line 2609 "conf_parser.y" + case 533: +/* Line 1792 of yacc.c */ +#line 2611 "conf_parser.y" { ConfigFileEntry.no_oper_flood = yylval.number; } break; - case 533: -/* Line 1787 of yacc.c */ -#line 2614 "conf_parser.y" + case 534: +/* Line 1792 of yacc.c */ +#line 2616 "conf_parser.y" { ConfigFileEntry.true_no_oper_flood = yylval.number; } break; - case 534: -/* Line 1787 of yacc.c */ -#line 2619 "conf_parser.y" + case 535: +/* Line 1792 of yacc.c */ +#line 2621 "conf_parser.y" { ConfigFileEntry.oper_pass_resv = yylval.number; } break; - case 535: -/* Line 1787 of yacc.c */ -#line 2624 "conf_parser.y" + case 536: +/* Line 1792 of yacc.c */ +#line 2626 "conf_parser.y" + { + if (conf_parser_ctx.pass == 2) + { + if (strlen(yylval.string) > LOCALE_LENGTH-2) + yylval.string[LOCALE_LENGTH-1] = '\0'; + + set_locale(yylval.string); + } +} + break; + + case 537: +/* Line 1792 of yacc.c */ +#line 2637 "conf_parser.y" { ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number); } break; - case 536: -/* Line 1787 of yacc.c */ -#line 2629 "conf_parser.y" + case 538: +/* Line 1792 of yacc.c */ +#line 2642 "conf_parser.y" { ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number); } break; - case 537: -/* Line 1787 of yacc.c */ -#line 2634 "conf_parser.y" + case 539: +/* Line 1792 of yacc.c */ +#line 2647 "conf_parser.y" { ConfigFileEntry.use_egd = yylval.number; } break; - case 538: -/* Line 1787 of yacc.c */ -#line 2639 "conf_parser.y" + case 540: +/* Line 1792 of yacc.c */ +#line 2652 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -6198,9 +6216,9 @@ yyreduce: } break; - case 539: -/* Line 1787 of yacc.c */ -#line 2648 "conf_parser.y" + case 541: +/* Line 1792 of yacc.c */ +#line 2661 "conf_parser.y" { if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string)) { @@ -6210,523 +6228,523 @@ yyreduce: } break; - case 540: -/* Line 1787 of yacc.c */ -#line 2657 "conf_parser.y" + case 542: +/* Line 1792 of yacc.c */ +#line 2670 "conf_parser.y" { ConfigFileEntry.ping_cookie = yylval.number; } break; - case 541: -/* Line 1787 of yacc.c */ -#line 2662 "conf_parser.y" + case 543: +/* Line 1792 of yacc.c */ +#line 2675 "conf_parser.y" { ConfigFileEntry.disable_auth = yylval.number; } break; - case 542: -/* Line 1787 of yacc.c */ -#line 2667 "conf_parser.y" + case 544: +/* Line 1792 of yacc.c */ +#line 2680 "conf_parser.y" { ConfigFileEntry.throttle_time = yylval.number; } break; - case 543: -/* Line 1787 of yacc.c */ -#line 2672 "conf_parser.y" + case 545: +/* Line 1792 of yacc.c */ +#line 2685 "conf_parser.y" { ConfigFileEntry.oper_umodes = 0; } break; - case 547: -/* Line 1787 of yacc.c */ -#line 2678 "conf_parser.y" + case 549: +/* Line 1792 of yacc.c */ +#line 2691 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_BOTS; } break; - case 548: -/* Line 1787 of yacc.c */ -#line 2681 "conf_parser.y" + case 550: +/* Line 1792 of yacc.c */ +#line 2694 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_CCONN; } break; - case 549: -/* Line 1787 of yacc.c */ -#line 2684 "conf_parser.y" + case 551: +/* Line 1792 of yacc.c */ +#line 2697 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL; } break; - case 550: -/* Line 1787 of yacc.c */ -#line 2687 "conf_parser.y" + case 552: +/* Line 1792 of yacc.c */ +#line 2700 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_DEAF; } break; - case 551: -/* Line 1787 of yacc.c */ -#line 2690 "conf_parser.y" + case 553: +/* Line 1792 of yacc.c */ +#line 2703 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_DEBUG; } break; - case 552: -/* Line 1787 of yacc.c */ -#line 2693 "conf_parser.y" + case 554: +/* Line 1792 of yacc.c */ +#line 2706 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_FULL; } break; - case 553: -/* Line 1787 of yacc.c */ -#line 2696 "conf_parser.y" + case 555: +/* Line 1792 of yacc.c */ +#line 2709 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_HIDDEN; } break; - case 554: -/* Line 1787 of yacc.c */ -#line 2699 "conf_parser.y" + case 556: +/* Line 1792 of yacc.c */ +#line 2712 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_SKILL; } break; - case 555: -/* Line 1787 of yacc.c */ -#line 2702 "conf_parser.y" + case 557: +/* Line 1792 of yacc.c */ +#line 2715 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_NCHANGE; } break; - case 556: -/* Line 1787 of yacc.c */ -#line 2705 "conf_parser.y" + case 558: +/* Line 1792 of yacc.c */ +#line 2718 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_REJ; } break; - case 557: -/* Line 1787 of yacc.c */ -#line 2708 "conf_parser.y" + case 559: +/* Line 1792 of yacc.c */ +#line 2721 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_UNAUTH; } break; - case 558: -/* Line 1787 of yacc.c */ -#line 2711 "conf_parser.y" + case 560: +/* Line 1792 of yacc.c */ +#line 2724 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_SPY; } break; - case 559: -/* Line 1787 of yacc.c */ -#line 2714 "conf_parser.y" + case 561: +/* Line 1792 of yacc.c */ +#line 2727 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL; } break; - case 560: -/* Line 1787 of yacc.c */ -#line 2717 "conf_parser.y" + case 562: +/* Line 1792 of yacc.c */ +#line 2730 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_OPERWALL; } break; - case 561: -/* Line 1787 of yacc.c */ -#line 2720 "conf_parser.y" + case 563: +/* Line 1792 of yacc.c */ +#line 2733 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE; } break; - case 562: -/* Line 1787 of yacc.c */ -#line 2723 "conf_parser.y" + case 564: +/* Line 1792 of yacc.c */ +#line 2736 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE; } break; - case 563: -/* Line 1787 of yacc.c */ -#line 2726 "conf_parser.y" + case 565: +/* Line 1792 of yacc.c */ +#line 2739 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_WALLOP; } break; - case 564: -/* Line 1787 of yacc.c */ -#line 2729 "conf_parser.y" + case 566: +/* Line 1792 of yacc.c */ +#line 2742 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID; } break; - case 565: -/* Line 1787 of yacc.c */ -#line 2732 "conf_parser.y" + case 567: +/* Line 1792 of yacc.c */ +#line 2745 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_CALLERID; } break; - case 566: -/* Line 1787 of yacc.c */ -#line 2735 "conf_parser.y" + case 568: +/* Line 1792 of yacc.c */ +#line 2748 "conf_parser.y" { ConfigFileEntry.oper_umodes |= UMODE_LOCOPS; } break; - case 567: -/* Line 1787 of yacc.c */ -#line 2740 "conf_parser.y" + case 569: +/* Line 1792 of yacc.c */ +#line 2753 "conf_parser.y" { ConfigFileEntry.oper_only_umodes = 0; } break; - case 571: -/* Line 1787 of yacc.c */ -#line 2746 "conf_parser.y" + case 573: +/* Line 1792 of yacc.c */ +#line 2759 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_BOTS; } break; - case 572: -/* Line 1787 of yacc.c */ -#line 2749 "conf_parser.y" + case 574: +/* Line 1792 of yacc.c */ +#line 2762 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_CCONN; } break; - case 573: -/* Line 1787 of yacc.c */ -#line 2752 "conf_parser.y" + case 575: +/* Line 1792 of yacc.c */ +#line 2765 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL; } break; - case 574: -/* Line 1787 of yacc.c */ -#line 2755 "conf_parser.y" + case 576: +/* Line 1792 of yacc.c */ +#line 2768 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_DEAF; } break; - case 575: -/* Line 1787 of yacc.c */ -#line 2758 "conf_parser.y" + case 577: +/* Line 1792 of yacc.c */ +#line 2771 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG; } break; - case 576: -/* Line 1787 of yacc.c */ -#line 2761 "conf_parser.y" + case 578: +/* Line 1792 of yacc.c */ +#line 2774 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_FULL; } break; - case 577: -/* Line 1787 of yacc.c */ -#line 2764 "conf_parser.y" + case 579: +/* Line 1792 of yacc.c */ +#line 2777 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_SKILL; } break; - case 578: -/* Line 1787 of yacc.c */ -#line 2767 "conf_parser.y" + case 580: +/* Line 1792 of yacc.c */ +#line 2780 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN; } break; - case 579: -/* Line 1787 of yacc.c */ -#line 2770 "conf_parser.y" + case 581: +/* Line 1792 of yacc.c */ +#line 2783 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE; } break; - case 580: -/* Line 1787 of yacc.c */ -#line 2773 "conf_parser.y" + case 582: +/* Line 1792 of yacc.c */ +#line 2786 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_REJ; } break; - case 581: -/* Line 1787 of yacc.c */ -#line 2776 "conf_parser.y" + case 583: +/* Line 1792 of yacc.c */ +#line 2789 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH; } break; - case 582: -/* Line 1787 of yacc.c */ -#line 2779 "conf_parser.y" + case 584: +/* Line 1792 of yacc.c */ +#line 2792 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_SPY; } break; - case 583: -/* Line 1787 of yacc.c */ -#line 2782 "conf_parser.y" + case 585: +/* Line 1792 of yacc.c */ +#line 2795 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL; } break; - case 584: -/* Line 1787 of yacc.c */ -#line 2785 "conf_parser.y" + case 586: +/* Line 1792 of yacc.c */ +#line 2798 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL; } break; - case 585: -/* Line 1787 of yacc.c */ -#line 2788 "conf_parser.y" + case 587: +/* Line 1792 of yacc.c */ +#line 2801 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE; } break; - case 586: -/* Line 1787 of yacc.c */ -#line 2791 "conf_parser.y" + case 588: +/* Line 1792 of yacc.c */ +#line 2804 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE; } break; - case 587: -/* Line 1787 of yacc.c */ -#line 2794 "conf_parser.y" + case 589: +/* Line 1792 of yacc.c */ +#line 2807 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP; } break; - case 588: -/* Line 1787 of yacc.c */ -#line 2797 "conf_parser.y" + case 590: +/* Line 1792 of yacc.c */ +#line 2810 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID; } break; - case 589: -/* Line 1787 of yacc.c */ -#line 2800 "conf_parser.y" + case 591: +/* Line 1792 of yacc.c */ +#line 2813 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID; } break; - case 590: -/* Line 1787 of yacc.c */ -#line 2803 "conf_parser.y" + case 592: +/* Line 1792 of yacc.c */ +#line 2816 "conf_parser.y" { ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS; } break; - case 591: -/* Line 1787 of yacc.c */ -#line 2808 "conf_parser.y" + case 593: +/* Line 1792 of yacc.c */ +#line 2821 "conf_parser.y" { ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number); } break; - case 592: -/* Line 1787 of yacc.c */ -#line 2813 "conf_parser.y" + case 594: +/* Line 1792 of yacc.c */ +#line 2826 "conf_parser.y" { ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number); } break; - case 593: -/* Line 1787 of yacc.c */ -#line 2818 "conf_parser.y" + case 595: +/* Line 1792 of yacc.c */ +#line 2831 "conf_parser.y" { ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number); } break; - case 612: -/* Line 1787 of yacc.c */ -#line 2841 "conf_parser.y" + case 614: +/* Line 1792 of yacc.c */ +#line 2854 "conf_parser.y" { ConfigChannel.disable_fake_channels = yylval.number; } break; - case 613: -/* Line 1787 of yacc.c */ -#line 2846 "conf_parser.y" + case 615: +/* Line 1792 of yacc.c */ +#line 2859 "conf_parser.y" { ConfigChannel.restrict_channels = yylval.number; } break; - case 614: -/* Line 1787 of yacc.c */ -#line 2851 "conf_parser.y" + case 616: +/* Line 1792 of yacc.c */ +#line 2864 "conf_parser.y" { ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number); } break; - case 615: -/* Line 1787 of yacc.c */ -#line 2856 "conf_parser.y" + case 617: +/* Line 1792 of yacc.c */ +#line 2869 "conf_parser.y" { ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number); } break; - case 616: -/* Line 1787 of yacc.c */ -#line 2861 "conf_parser.y" + case 618: +/* Line 1792 of yacc.c */ +#line 2874 "conf_parser.y" { ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number); } break; - case 617: -/* Line 1787 of yacc.c */ -#line 2866 "conf_parser.y" + case 619: +/* Line 1792 of yacc.c */ +#line 2879 "conf_parser.y" { ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number); } break; - case 618: -/* Line 1787 of yacc.c */ -#line 2871 "conf_parser.y" + case 620: +/* Line 1792 of yacc.c */ +#line 2884 "conf_parser.y" { ConfigChannel.quiet_on_ban = yylval.number; } break; - case 619: -/* Line 1787 of yacc.c */ -#line 2876 "conf_parser.y" + case 621: +/* Line 1792 of yacc.c */ +#line 2889 "conf_parser.y" { ConfigChannel.max_bans = (yyvsp[(3) - (4)].number); } break; - case 620: -/* Line 1787 of yacc.c */ -#line 2881 "conf_parser.y" + case 622: +/* Line 1792 of yacc.c */ +#line 2894 "conf_parser.y" { ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number); } break; - case 621: -/* Line 1787 of yacc.c */ -#line 2886 "conf_parser.y" + case 623: +/* Line 1792 of yacc.c */ +#line 2899 "conf_parser.y" { ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number); } break; - case 622: -/* Line 1787 of yacc.c */ -#line 2891 "conf_parser.y" + case 624: +/* Line 1792 of yacc.c */ +#line 2904 "conf_parser.y" { ConfigChannel.no_create_on_split = yylval.number; } break; - case 623: -/* Line 1787 of yacc.c */ -#line 2896 "conf_parser.y" + case 625: +/* Line 1792 of yacc.c */ +#line 2909 "conf_parser.y" { ConfigChannel.no_join_on_split = yylval.number; } break; - case 624: -/* Line 1787 of yacc.c */ -#line 2901 "conf_parser.y" + case 626: +/* Line 1792 of yacc.c */ +#line 2914 "conf_parser.y" { GlobalSetOptions.joinfloodcount = yylval.number; } break; - case 625: -/* Line 1787 of yacc.c */ -#line 2906 "conf_parser.y" + case 627: +/* Line 1792 of yacc.c */ +#line 2919 "conf_parser.y" { GlobalSetOptions.joinfloodtime = yylval.number; } break; - case 636: -/* Line 1787 of yacc.c */ -#line 2924 "conf_parser.y" + case 638: +/* Line 1792 of yacc.c */ +#line 2937 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigServerHide.flatten_links = yylval.number; } break; - case 637: -/* Line 1787 of yacc.c */ -#line 2930 "conf_parser.y" + case 639: +/* Line 1792 of yacc.c */ +#line 2943 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigServerHide.hide_servers = yylval.number; } break; - case 638: -/* Line 1787 of yacc.c */ -#line 2936 "conf_parser.y" + case 640: +/* Line 1792 of yacc.c */ +#line 2949 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -6736,9 +6754,9 @@ yyreduce: } break; - case 639: -/* Line 1787 of yacc.c */ -#line 2945 "conf_parser.y" + case 641: +/* Line 1792 of yacc.c */ +#line 2958 "conf_parser.y" { if (conf_parser_ctx.pass == 2) { @@ -6753,18 +6771,18 @@ yyreduce: } break; - case 640: -/* Line 1787 of yacc.c */ -#line 2959 "conf_parser.y" + case 642: +/* Line 1792 of yacc.c */ +#line 2972 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigServerHide.hidden = yylval.number; } break; - case 641: -/* Line 1787 of yacc.c */ -#line 2965 "conf_parser.y" + case 643: +/* Line 1792 of yacc.c */ +#line 2978 "conf_parser.y" { if (conf_parser_ctx.pass == 2) ConfigServerHide.hide_server_ips = yylval.number; @@ -6772,8 +6790,8 @@ yyreduce: break; -/* Line 1787 of yacc.c */ -#line 6777 "conf_parser.c" +/* Line 1792 of yacc.c */ +#line 6795 "conf_parser.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires diff --git a/src/conf_parser.h b/src/conf_parser.h index a8d45f6..b60977e 100644 --- a/src/conf_parser.h +++ b/src/conf_parser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -129,142 +129,143 @@ extern int yydebug; MAX_TARGETS = 338, MAX_TOPIC_LENGTH = 339, MAX_WATCH = 340, - MIN_NONWILDCARD = 341, - MIN_NONWILDCARD_SIMPLE = 342, - MIN_IDLE = 343, - MAX_IDLE = 344, - RANDOM_IDLE = 345, - HIDE_IDLE_FROM_OPERS = 346, - MODULE = 347, - MODULES = 348, - NAME = 349, - NEED_PASSWORD = 350, - NETWORK_DESC = 351, - NETWORK_NAME = 352, - NICK = 353, - NICK_CHANGES = 354, - NO_CREATE_ON_SPLIT = 355, - NO_JOIN_ON_SPLIT = 356, - NO_OPER_FLOOD = 357, - NO_TILDE = 358, - NUMBER = 359, - NUMBER_PER_CIDR = 360, - NUMBER_PER_IP = 361, - OPERATOR = 362, - OPERS_BYPASS_CALLERID = 363, - OPER_ONLY_UMODES = 364, - OPER_PASS_RESV = 365, - OPER_SPY_T = 366, - OPER_UMODES = 367, - JOIN_FLOOD_COUNT = 368, - JOIN_FLOOD_TIME = 369, - PACE_WAIT = 370, - PACE_WAIT_SIMPLE = 371, - PASSWORD = 372, - PATH = 373, - PING_COOKIE = 374, - PING_TIME = 375, - PORT = 376, - QSTRING = 377, - QUIET_ON_BAN = 378, - REASON = 379, - REDIRPORT = 380, - REDIRSERV = 381, - REGEX_T = 382, - REHASH = 383, - REMOTE = 384, - REMOTEBAN = 385, - RESTRICT_CHANNELS = 386, - RSA_PRIVATE_KEY_FILE = 387, - RSA_PUBLIC_KEY_FILE = 388, - SSL_CERTIFICATE_FILE = 389, - SSL_DH_PARAM_FILE = 390, - T_SSL_CLIENT_METHOD = 391, - T_SSL_SERVER_METHOD = 392, - T_SSLV3 = 393, - T_TLSV1 = 394, - RESV = 395, - RESV_EXEMPT = 396, - SECONDS = 397, - MINUTES = 398, - HOURS = 399, - DAYS = 400, - WEEKS = 401, - MONTHS = 402, - YEARS = 403, - SENDQ = 404, - SEND_PASSWORD = 405, - SERVERHIDE = 406, - SERVERINFO = 407, - IRCD_SID = 408, - TKLINE_EXPIRE_NOTICES = 409, - T_SHARED = 410, - T_CLUSTER = 411, - TYPE = 412, - SHORT_MOTD = 413, - SPOOF = 414, - SPOOF_NOTICE = 415, - STATS_E_DISABLED = 416, - STATS_I_OPER_ONLY = 417, - STATS_K_OPER_ONLY = 418, - STATS_O_OPER_ONLY = 419, - STATS_P_OPER_ONLY = 420, - TBOOL = 421, - TMASKED = 422, - TS_MAX_DELTA = 423, - TS_WARN_DELTA = 424, - TWODOTS = 425, - T_ALL = 426, - T_BOTS = 427, - T_SOFTCALLERID = 428, - T_CALLERID = 429, - T_CCONN = 430, - T_CCONN_FULL = 431, - T_SSL_CIPHER_LIST = 432, - T_DEAF = 433, - T_DEBUG = 434, - T_DLINE = 435, - T_EXTERNAL = 436, - T_FULL = 437, - T_INVISIBLE = 438, - T_IPV4 = 439, - T_IPV6 = 440, - T_LOCOPS = 441, - T_MAX_CLIENTS = 442, - T_NCHANGE = 443, - T_OPERWALL = 444, - T_RECVQ = 445, - T_REJ = 446, - T_SERVER = 447, - T_SERVNOTICE = 448, - T_SET = 449, - T_SKILL = 450, - T_SPY = 451, - T_SSL = 452, - T_UMODES = 453, - T_UNAUTH = 454, - T_UNDLINE = 455, - T_UNLIMITED = 456, - T_UNRESV = 457, - T_UNXLINE = 458, - T_GLOBOPS = 459, - T_WALLOP = 460, - T_WEBIRC = 461, - T_RESTART = 462, - T_SERVICE = 463, - T_SERVICES_NAME = 464, - THROTTLE_TIME = 465, - TRUE_NO_OPER_FLOOD = 466, - UNKLINE = 467, - USER = 468, - USE_EGD = 469, - USE_LOGGING = 470, - VHOST = 471, - VHOST6 = 472, - XLINE = 473, - WARN_NO_NLINE = 474, - T_SIZE = 475, - T_FILE = 476 + MESSAGE_LOCALE = 341, + MIN_NONWILDCARD = 342, + MIN_NONWILDCARD_SIMPLE = 343, + MIN_IDLE = 344, + MAX_IDLE = 345, + RANDOM_IDLE = 346, + HIDE_IDLE_FROM_OPERS = 347, + MODULE = 348, + MODULES = 349, + NAME = 350, + NEED_PASSWORD = 351, + NETWORK_DESC = 352, + NETWORK_NAME = 353, + NICK = 354, + NICK_CHANGES = 355, + NO_CREATE_ON_SPLIT = 356, + NO_JOIN_ON_SPLIT = 357, + NO_OPER_FLOOD = 358, + NO_TILDE = 359, + NUMBER = 360, + NUMBER_PER_CIDR = 361, + NUMBER_PER_IP = 362, + OPERATOR = 363, + OPERS_BYPASS_CALLERID = 364, + OPER_ONLY_UMODES = 365, + OPER_PASS_RESV = 366, + OPER_SPY_T = 367, + OPER_UMODES = 368, + JOIN_FLOOD_COUNT = 369, + JOIN_FLOOD_TIME = 370, + PACE_WAIT = 371, + PACE_WAIT_SIMPLE = 372, + PASSWORD = 373, + PATH = 374, + PING_COOKIE = 375, + PING_TIME = 376, + PORT = 377, + QSTRING = 378, + QUIET_ON_BAN = 379, + REASON = 380, + REDIRPORT = 381, + REDIRSERV = 382, + REGEX_T = 383, + REHASH = 384, + REMOTE = 385, + REMOTEBAN = 386, + RESTRICT_CHANNELS = 387, + RSA_PRIVATE_KEY_FILE = 388, + RSA_PUBLIC_KEY_FILE = 389, + SSL_CERTIFICATE_FILE = 390, + SSL_DH_PARAM_FILE = 391, + T_SSL_CLIENT_METHOD = 392, + T_SSL_SERVER_METHOD = 393, + T_SSLV3 = 394, + T_TLSV1 = 395, + RESV = 396, + RESV_EXEMPT = 397, + SECONDS = 398, + MINUTES = 399, + HOURS = 400, + DAYS = 401, + WEEKS = 402, + MONTHS = 403, + YEARS = 404, + SENDQ = 405, + SEND_PASSWORD = 406, + SERVERHIDE = 407, + SERVERINFO = 408, + IRCD_SID = 409, + TKLINE_EXPIRE_NOTICES = 410, + T_SHARED = 411, + T_CLUSTER = 412, + TYPE = 413, + SHORT_MOTD = 414, + SPOOF = 415, + SPOOF_NOTICE = 416, + STATS_E_DISABLED = 417, + STATS_I_OPER_ONLY = 418, + STATS_K_OPER_ONLY = 419, + STATS_O_OPER_ONLY = 420, + STATS_P_OPER_ONLY = 421, + TBOOL = 422, + TMASKED = 423, + TS_MAX_DELTA = 424, + TS_WARN_DELTA = 425, + TWODOTS = 426, + T_ALL = 427, + T_BOTS = 428, + T_SOFTCALLERID = 429, + T_CALLERID = 430, + T_CCONN = 431, + T_CCONN_FULL = 432, + T_SSL_CIPHER_LIST = 433, + T_DEAF = 434, + T_DEBUG = 435, + T_DLINE = 436, + T_EXTERNAL = 437, + T_FULL = 438, + T_INVISIBLE = 439, + T_IPV4 = 440, + T_IPV6 = 441, + T_LOCOPS = 442, + T_MAX_CLIENTS = 443, + T_NCHANGE = 444, + T_OPERWALL = 445, + T_RECVQ = 446, + T_REJ = 447, + T_SERVER = 448, + T_SERVNOTICE = 449, + T_SET = 450, + T_SKILL = 451, + T_SPY = 452, + T_SSL = 453, + T_UMODES = 454, + T_UNAUTH = 455, + T_UNDLINE = 456, + T_UNLIMITED = 457, + T_UNRESV = 458, + T_UNXLINE = 459, + T_GLOBOPS = 460, + T_WALLOP = 461, + T_WEBIRC = 462, + T_RESTART = 463, + T_SERVICE = 464, + T_SERVICES_NAME = 465, + THROTTLE_TIME = 466, + TRUE_NO_OPER_FLOOD = 467, + UNKLINE = 468, + USER = 469, + USE_EGD = 470, + USE_LOGGING = 471, + VHOST = 472, + VHOST6 = 473, + XLINE = 474, + WARN_NO_NLINE = 475, + T_SIZE = 476, + T_FILE = 477 }; #endif /* Tokens. */ @@ -351,157 +352,158 @@ extern int yydebug; #define MAX_TARGETS 338 #define MAX_TOPIC_LENGTH 339 #define MAX_WATCH 340 -#define MIN_NONWILDCARD 341 -#define MIN_NONWILDCARD_SIMPLE 342 -#define MIN_IDLE 343 -#define MAX_IDLE 344 -#define RANDOM_IDLE 345 -#define HIDE_IDLE_FROM_OPERS 346 -#define MODULE 347 -#define MODULES 348 -#define NAME 349 -#define NEED_PASSWORD 350 -#define NETWORK_DESC 351 -#define NETWORK_NAME 352 -#define NICK 353 -#define NICK_CHANGES 354 -#define NO_CREATE_ON_SPLIT 355 -#define NO_JOIN_ON_SPLIT 356 -#define NO_OPER_FLOOD 357 -#define NO_TILDE 358 -#define NUMBER 359 -#define NUMBER_PER_CIDR 360 -#define NUMBER_PER_IP 361 -#define OPERATOR 362 -#define OPERS_BYPASS_CALLERID 363 -#define OPER_ONLY_UMODES 364 -#define OPER_PASS_RESV 365 -#define OPER_SPY_T 366 -#define OPER_UMODES 367 -#define JOIN_FLOOD_COUNT 368 -#define JOIN_FLOOD_TIME 369 -#define PACE_WAIT 370 -#define PACE_WAIT_SIMPLE 371 -#define PASSWORD 372 -#define PATH 373 -#define PING_COOKIE 374 -#define PING_TIME 375 -#define PORT 376 -#define QSTRING 377 -#define QUIET_ON_BAN 378 -#define REASON 379 -#define REDIRPORT 380 -#define REDIRSERV 381 -#define REGEX_T 382 -#define REHASH 383 -#define REMOTE 384 -#define REMOTEBAN 385 -#define RESTRICT_CHANNELS 386 -#define RSA_PRIVATE_KEY_FILE 387 -#define RSA_PUBLIC_KEY_FILE 388 -#define SSL_CERTIFICATE_FILE 389 -#define SSL_DH_PARAM_FILE 390 -#define T_SSL_CLIENT_METHOD 391 -#define T_SSL_SERVER_METHOD 392 -#define T_SSLV3 393 -#define T_TLSV1 394 -#define RESV 395 -#define RESV_EXEMPT 396 -#define SECONDS 397 -#define MINUTES 398 -#define HOURS 399 -#define DAYS 400 -#define WEEKS 401 -#define MONTHS 402 -#define YEARS 403 -#define SENDQ 404 -#define SEND_PASSWORD 405 -#define SERVERHIDE 406 -#define SERVERINFO 407 -#define IRCD_SID 408 -#define TKLINE_EXPIRE_NOTICES 409 -#define T_SHARED 410 -#define T_CLUSTER 411 -#define TYPE 412 -#define SHORT_MOTD 413 -#define SPOOF 414 -#define SPOOF_NOTICE 415 -#define STATS_E_DISABLED 416 -#define STATS_I_OPER_ONLY 417 -#define STATS_K_OPER_ONLY 418 -#define STATS_O_OPER_ONLY 419 -#define STATS_P_OPER_ONLY 420 -#define TBOOL 421 -#define TMASKED 422 -#define TS_MAX_DELTA 423 -#define TS_WARN_DELTA 424 -#define TWODOTS 425 -#define T_ALL 426 -#define T_BOTS 427 -#define T_SOFTCALLERID 428 -#define T_CALLERID 429 -#define T_CCONN 430 -#define T_CCONN_FULL 431 -#define T_SSL_CIPHER_LIST 432 -#define T_DEAF 433 -#define T_DEBUG 434 -#define T_DLINE 435 -#define T_EXTERNAL 436 -#define T_FULL 437 -#define T_INVISIBLE 438 -#define T_IPV4 439 -#define T_IPV6 440 -#define T_LOCOPS 441 -#define T_MAX_CLIENTS 442 -#define T_NCHANGE 443 -#define T_OPERWALL 444 -#define T_RECVQ 445 -#define T_REJ 446 -#define T_SERVER 447 -#define T_SERVNOTICE 448 -#define T_SET 449 -#define T_SKILL 450 -#define T_SPY 451 -#define T_SSL 452 -#define T_UMODES 453 -#define T_UNAUTH 454 -#define T_UNDLINE 455 -#define T_UNLIMITED 456 -#define T_UNRESV 457 -#define T_UNXLINE 458 -#define T_GLOBOPS 459 -#define T_WALLOP 460 -#define T_WEBIRC 461 -#define T_RESTART 462 -#define T_SERVICE 463 -#define T_SERVICES_NAME 464 -#define THROTTLE_TIME 465 -#define TRUE_NO_OPER_FLOOD 466 -#define UNKLINE 467 -#define USER 468 -#define USE_EGD 469 -#define USE_LOGGING 470 -#define VHOST 471 -#define VHOST6 472 -#define XLINE 473 -#define WARN_NO_NLINE 474 -#define T_SIZE 475 -#define T_FILE 476 +#define MESSAGE_LOCALE 341 +#define MIN_NONWILDCARD 342 +#define MIN_NONWILDCARD_SIMPLE 343 +#define MIN_IDLE 344 +#define MAX_IDLE 345 +#define RANDOM_IDLE 346 +#define HIDE_IDLE_FROM_OPERS 347 +#define MODULE 348 +#define MODULES 349 +#define NAME 350 +#define NEED_PASSWORD 351 +#define NETWORK_DESC 352 +#define NETWORK_NAME 353 +#define NICK 354 +#define NICK_CHANGES 355 +#define NO_CREATE_ON_SPLIT 356 +#define NO_JOIN_ON_SPLIT 357 +#define NO_OPER_FLOOD 358 +#define NO_TILDE 359 +#define NUMBER 360 +#define NUMBER_PER_CIDR 361 +#define NUMBER_PER_IP 362 +#define OPERATOR 363 +#define OPERS_BYPASS_CALLERID 364 +#define OPER_ONLY_UMODES 365 +#define OPER_PASS_RESV 366 +#define OPER_SPY_T 367 +#define OPER_UMODES 368 +#define JOIN_FLOOD_COUNT 369 +#define JOIN_FLOOD_TIME 370 +#define PACE_WAIT 371 +#define PACE_WAIT_SIMPLE 372 +#define PASSWORD 373 +#define PATH 374 +#define PING_COOKIE 375 +#define PING_TIME 376 +#define PORT 377 +#define QSTRING 378 +#define QUIET_ON_BAN 379 +#define REASON 380 +#define REDIRPORT 381 +#define REDIRSERV 382 +#define REGEX_T 383 +#define REHASH 384 +#define REMOTE 385 +#define REMOTEBAN 386 +#define RESTRICT_CHANNELS 387 +#define RSA_PRIVATE_KEY_FILE 388 +#define RSA_PUBLIC_KEY_FILE 389 +#define SSL_CERTIFICATE_FILE 390 +#define SSL_DH_PARAM_FILE 391 +#define T_SSL_CLIENT_METHOD 392 +#define T_SSL_SERVER_METHOD 393 +#define T_SSLV3 394 +#define T_TLSV1 395 +#define RESV 396 +#define RESV_EXEMPT 397 +#define SECONDS 398 +#define MINUTES 399 +#define HOURS 400 +#define DAYS 401 +#define WEEKS 402 +#define MONTHS 403 +#define YEARS 404 +#define SENDQ 405 +#define SEND_PASSWORD 406 +#define SERVERHIDE 407 +#define SERVERINFO 408 +#define IRCD_SID 409 +#define TKLINE_EXPIRE_NOTICES 410 +#define T_SHARED 411 +#define T_CLUSTER 412 +#define TYPE 413 +#define SHORT_MOTD 414 +#define SPOOF 415 +#define SPOOF_NOTICE 416 +#define STATS_E_DISABLED 417 +#define STATS_I_OPER_ONLY 418 +#define STATS_K_OPER_ONLY 419 +#define STATS_O_OPER_ONLY 420 +#define STATS_P_OPER_ONLY 421 +#define TBOOL 422 +#define TMASKED 423 +#define TS_MAX_DELTA 424 +#define TS_WARN_DELTA 425 +#define TWODOTS 426 +#define T_ALL 427 +#define T_BOTS 428 +#define T_SOFTCALLERID 429 +#define T_CALLERID 430 +#define T_CCONN 431 +#define T_CCONN_FULL 432 +#define T_SSL_CIPHER_LIST 433 +#define T_DEAF 434 +#define T_DEBUG 435 +#define T_DLINE 436 +#define T_EXTERNAL 437 +#define T_FULL 438 +#define T_INVISIBLE 439 +#define T_IPV4 440 +#define T_IPV6 441 +#define T_LOCOPS 442 +#define T_MAX_CLIENTS 443 +#define T_NCHANGE 444 +#define T_OPERWALL 445 +#define T_RECVQ 446 +#define T_REJ 447 +#define T_SERVER 448 +#define T_SERVNOTICE 449 +#define T_SET 450 +#define T_SKILL 451 +#define T_SPY 452 +#define T_SSL 453 +#define T_UMODES 454 +#define T_UNAUTH 455 +#define T_UNDLINE 456 +#define T_UNLIMITED 457 +#define T_UNRESV 458 +#define T_UNXLINE 459 +#define T_GLOBOPS 460 +#define T_WALLOP 461 +#define T_WEBIRC 462 +#define T_RESTART 463 +#define T_SERVICE 464 +#define T_SERVICES_NAME 465 +#define THROTTLE_TIME 466 +#define TRUE_NO_OPER_FLOOD 467 +#define UNKLINE 468 +#define USER 469 +#define USE_EGD 470 +#define USE_LOGGING 471 +#define VHOST 472 +#define VHOST6 473 +#define XLINE 474 +#define WARN_NO_NLINE 475 +#define T_SIZE 476 +#define T_FILE 477 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 2053 of yacc.c */ +/* Line 2058 of yacc.c */ #line 138 "conf_parser.y" int number; char *string; -/* Line 2053 of yacc.c */ -#line 505 "conf_parser.h" +/* Line 2058 of yacc.c */ +#line 507 "conf_parser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/src/conf_parser.y b/src/conf_parser.y index 5c38e45..3112e24 100644 --- a/src/conf_parser.y +++ b/src/conf_parser.y @@ -221,6 +221,7 @@ reset_block_state(void) %token MAX_TARGETS %token MAX_TOPIC_LENGTH %token MAX_WATCH +%token MESSAGE_LOCALE %token MIN_NONWILDCARD %token MIN_NONWILDCARD_SIMPLE %token MIN_IDLE @@ -2411,6 +2412,7 @@ general_item: general_hide_spoof_ips | general_ignore_bogus_ts | general_pace_wait_simple | general_stats_P_oper_only | general_short_motd | general_no_oper_flood | general_true_no_oper_flood | general_oper_pass_resv | + general_message_locale | general_oper_only_umodes | general_max_targets | general_use_egd | general_egdpool_path | general_oper_umodes | general_caller_id_wait | @@ -2620,6 +2622,17 @@ general_oper_pass_resv: OPER_PASS_RESV '=' TBOOL ';' ConfigFileEntry.oper_pass_resv = yylval.number; }; +general_message_locale: MESSAGE_LOCALE '=' QSTRING ';' +{ + if (conf_parser_ctx.pass == 2) + { + if (strlen(yylval.string) > LOCALE_LENGTH-2) + yylval.string[LOCALE_LENGTH-1] = '\0'; + + set_locale(yylval.string); + } +}; + general_dots_in_ident: DOTS_IN_IDENT '=' NUMBER ';' { ConfigFileEntry.dots_in_ident = $3; @@ -780,7 +780,7 @@ list_one_channel(struct Client *source_p, struct Channel *chptr, if (!list_allow_channel(chptr->chname, list_task)) return; - sendto_one(source_p, RPL_LIST, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_LIST), me.name, source_p->name, chptr->chname, dlink_list_length(&chptr->members), chptr->topic); } @@ -831,6 +831,6 @@ safe_list_channels(struct Client *source_p, struct ListTask *list_task, } free_list_task(list_task, source_p); - sendto_one(source_p, RPL_LISTEND, + sendto_one(source_p, form_str(RPL_LISTEND), me.name, source_p->name); } diff --git a/src/irc_res.c b/src/irc_res.c index 8db1fa6..c7577c3 100644 --- a/src/irc_res.c +++ b/src/irc_res.c @@ -830,7 +830,7 @@ report_dns_servers(struct Client *source_p) getnameinfo((struct sockaddr *)&(irc_nsaddr_list[i]), irc_nsaddr_list[i].ss_len, ipaddr, sizeof(ipaddr), NULL, 0, NI_NUMERICHOST); - sendto_one(source_p, RPL_STATSALINE, + sendto_one(source_p, form_str(RPL_STATSALINE), me.name, source_p->name, ipaddr); } } diff --git a/src/listener.c b/src/listener.c index bac4c9a..bd577a7 100644 --- a/src/listener.c +++ b/src/listener.c @@ -104,7 +104,7 @@ show_ports(struct Client *source_p) if (listener->flags & LISTENER_SSL) *p++ = 's'; *p = '\0'; - sendto_one(source_p, RPL_STATSPLINE, + sendto_one(source_p, form_str(RPL_STATSPLINE), me.name, source_p->name, 'P', listener->port, HasUMode(source_p, UMODE_ADMIN) ? listener->name : me.name, listener->ref_count, buf, diff --git a/src/messages.tab b/src/messages.tab new file mode 100644 index 0000000..5a292f6 --- /dev/null +++ b/src/messages.tab @@ -0,0 +1,1029 @@ +/************************************************************************ + * IRC - Internet Relay Chat, src/messages.tab + * Copyright (C) 1992 Darren Reed + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 1, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * $Id$ + */ + +static struct NumericInfo replies[] = { +/* 000 */ {NULL, NULL, NULL}, +/* 001 */ {"RPL_WELCOME", ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s", NULL}, +/* 002 */ {"RPL_YOURHOST", ":%s 002 %s :Your host is %s, running version %s", NULL}, +/* 003 */ {"RPL_CREATED", ":%s 003 %s :This server was created %s", NULL}, +#ifdef HALFOPS +/* 004 */ {"RPL_MYINFO", ":%s 004 %s %s %s %s biklmnoprstveIhORS bkloveIh", NULL}, +#else +/* 004 */ {"RPL_MYINFO", ":%s 004 %s %s %s %s biklmnoprstveIORS bkloveI", NULL}, +#endif +/* 005 */ {"RPL_ISUPPORT", ":%s 005 %s %s :are supported by this server", NULL}, +/* 006 */ {NULL, NULL, NULL}, +/* 007 */ {NULL, NULL, NULL}, +/* 008 */ {NULL, NULL, NULL}, +/* 009 */ {NULL, NULL, NULL}, +/* 010 */ {"RPL_REDIR", ":%s 010 %s %s %d :Please use this Server/Port instead", NULL}, +/* 011 */ {NULL, NULL, NULL}, +/* 012 */ {NULL, NULL, NULL}, +/* 013 */ {NULL, NULL, NULL}, +/* 014 */ {NULL, NULL, NULL}, +/* 015 */ {"RPL_MAP", ":%s 015 %s :%s", NULL}, +/* 016 */ {NULL, NULL, NULL}, +/* 017 */ {"RPL_MAPEND", ":%s 017 %s :End of /MAP", NULL}, +/* 018 */ {NULL, NULL, NULL}, +/* 019 */ {NULL, NULL, NULL}, +/* 020 */ {NULL, NULL, NULL}, +/* 021 */ {NULL, NULL, NULL}, +/* 022 */ {NULL, NULL, NULL}, +/* 023 */ {NULL, NULL, NULL}, +/* 024 */ {NULL, NULL, NULL}, +/* 025 */ {NULL, NULL, NULL}, +/* 026 */ {NULL, NULL, NULL}, +/* 027 */ {NULL, NULL, NULL}, +/* 028 */ {NULL, NULL, NULL}, +/* 029 */ {NULL, NULL, NULL}, +/* 030 */ {NULL, NULL, NULL}, +/* 031 */ {NULL, NULL, NULL}, +/* 032 */ {NULL, NULL, NULL}, +/* 033 */ {NULL, NULL, NULL}, +/* 034 */ {NULL, NULL, NULL}, +/* 035 */ {NULL, NULL, NULL}, +/* 036 */ {NULL, NULL, NULL}, +/* 037 */ {NULL, NULL, NULL}, +/* 038 */ {NULL, NULL, NULL}, +/* 039 */ {NULL, NULL, NULL}, +/* 040 */ {NULL, NULL, NULL}, +/* 041 */ {NULL, NULL, NULL}, +/* 042 */ {"RPL_YOURID", ":%s 042 %s %s :your unique ID", NULL}, +/* 043 */ {NULL, NULL, NULL}, +/* 044 */ {NULL, NULL, NULL}, +/* 045 */ {NULL, NULL, NULL}, +/* 046 */ {NULL, NULL, NULL}, +/* 047 */ {NULL, NULL, NULL}, +/* 048 */ {NULL, NULL, NULL}, +/* 049 */ {NULL, NULL, NULL}, +/* 050 */ {NULL, NULL, NULL}, +/* 051 */ {NULL, NULL, NULL}, +/* 052 */ {NULL, NULL, NULL}, +/* 053 */ {NULL, NULL, NULL}, +/* 054 */ {NULL, NULL, NULL}, +/* 055 */ {NULL, NULL, NULL}, +/* 056 */ {NULL, NULL, NULL}, +/* 057 */ {NULL, NULL, NULL}, +/* 058 */ {NULL, NULL, NULL}, +/* 059 */ {NULL, NULL, NULL}, +/* 060 */ {NULL, NULL, NULL}, +/* 061 */ {NULL, NULL, NULL}, +/* 062 */ {NULL, NULL, NULL}, +/* 063 */ {NULL, NULL, NULL}, +/* 064 */ {NULL, NULL, NULL}, +/* 065 */ {NULL, NULL, NULL}, +/* 066 */ {NULL, NULL, NULL}, +/* 067 */ {NULL, NULL, NULL}, +/* 068 */ {NULL, NULL, NULL}, +/* 069 */ {NULL, NULL, NULL}, +/* 070 */ {NULL, NULL, NULL}, +/* 071 */ {NULL, NULL, NULL}, +/* 072 */ {NULL, NULL, NULL}, +/* 073 */ {NULL, NULL, NULL}, +/* 074 */ {NULL, NULL, NULL}, +/* 075 */ {NULL, NULL, NULL}, +/* 076 */ {NULL, NULL, NULL}, +/* 077 */ {NULL, NULL, NULL}, +/* 078 */ {NULL, NULL, NULL}, +/* 079 */ {NULL, NULL, NULL}, +/* 080 */ {NULL, NULL, NULL}, +/* 081 */ {NULL, NULL, NULL}, +/* 082 */ {NULL, NULL, NULL}, +/* 083 */ {NULL, NULL, NULL}, +/* 084 */ {NULL, NULL, NULL}, +/* 085 */ {NULL, NULL, NULL}, +/* 086 */ {NULL, NULL, NULL}, +/* 087 */ {NULL, NULL, NULL}, +/* 088 */ {NULL, NULL, NULL}, +/* 089 */ {NULL, NULL, NULL}, +/* 090 */ {NULL, NULL, NULL}, +/* 091 */ {NULL, NULL, NULL}, +/* 092 */ {NULL, NULL, NULL}, +/* 093 */ {NULL, NULL, NULL}, +/* 094 */ {NULL, NULL, NULL}, +/* 095 */ {NULL, NULL, NULL}, +/* 096 */ {NULL, NULL, NULL}, +/* 097 */ {NULL, NULL, NULL}, +/* 098 */ {NULL, NULL, NULL}, +/* 099 */ {NULL, NULL, NULL}, +/* 100 */ {NULL, NULL, NULL}, +/* 101 */ {NULL, NULL, NULL}, +/* 102 */ {NULL, NULL, NULL}, +/* 103 */ {NULL, NULL, NULL}, +/* 104 */ {NULL, NULL, NULL}, +/* 105 */ {NULL, NULL, NULL}, +/* 106 */ {NULL, NULL, NULL}, +/* 107 */ {NULL, NULL, NULL}, +/* 108 */ {NULL, NULL, NULL}, +/* 109 */ {NULL, NULL, NULL}, +/* 110 */ {NULL, NULL, NULL}, +/* 111 */ {NULL, NULL, NULL}, +/* 112 */ {NULL, NULL, NULL}, +/* 113 */ {NULL, NULL, NULL}, +/* 114 */ {NULL, NULL, NULL}, +/* 115 */ {NULL, NULL, NULL}, +/* 116 */ {NULL, NULL, NULL}, +/* 117 */ {NULL, NULL, NULL}, +/* 118 */ {NULL, NULL, NULL}, +/* 119 */ {NULL, NULL, NULL}, +/* 120 */ {NULL, NULL, NULL}, +/* 121 */ {NULL, NULL, NULL}, +/* 122 */ {NULL, NULL, NULL}, +/* 123 */ {NULL, NULL, NULL}, +/* 124 */ {NULL, NULL, NULL}, +/* 125 */ {NULL, NULL, NULL}, +/* 126 */ {NULL, NULL, NULL}, +/* 127 */ {NULL, NULL, NULL}, +/* 128 */ {NULL, NULL, NULL}, +/* 129 */ {NULL, NULL, NULL}, +/* 130 */ {NULL, NULL, NULL}, +/* 131 */ {NULL, NULL, NULL}, +/* 132 */ {NULL, NULL, NULL}, +/* 133 */ {NULL, NULL, NULL}, +/* 134 */ {NULL, NULL, NULL}, +/* 135 */ {NULL, NULL, NULL}, +/* 136 */ {NULL, NULL, NULL}, +/* 137 */ {NULL, NULL, NULL}, +/* 138 */ {NULL, NULL, NULL}, +/* 139 */ {NULL, NULL, NULL}, +/* 140 */ {NULL, NULL, NULL}, +/* 141 */ {NULL, NULL, NULL}, +/* 142 */ {NULL, NULL, NULL}, +/* 143 */ {NULL, NULL, NULL}, +/* 144 */ {NULL, NULL, NULL}, +/* 145 */ {NULL, NULL, NULL}, +/* 146 */ {NULL, NULL, NULL}, +/* 147 */ {NULL, NULL, NULL}, +/* 148 */ {NULL, NULL, NULL}, +/* 149 */ {NULL, NULL, NULL}, +/* 150 */ {NULL, NULL, NULL}, +/* 151 */ {NULL, NULL, NULL}, +/* 152 */ {NULL, NULL, NULL}, +/* 153 */ {NULL, NULL, NULL}, +/* 154 */ {NULL, NULL, NULL}, +/* 155 */ {NULL, NULL, NULL}, +/* 156 */ {NULL, NULL, NULL}, +/* 157 */ {NULL, NULL, NULL}, +/* 158 */ {NULL, NULL, NULL}, +/* 159 */ {NULL, NULL, NULL}, +/* 160 */ {NULL, NULL, NULL}, +/* 161 */ {NULL, NULL, NULL}, +/* 162 */ {NULL, NULL, NULL}, +/* 163 */ {NULL, NULL, NULL}, +/* 164 */ {NULL, NULL, NULL}, +/* 165 */ {NULL, NULL, NULL}, +/* 166 */ {NULL, NULL, NULL}, +/* 167 */ {NULL, NULL, NULL}, +/* 168 */ {NULL, NULL, NULL}, +/* 169 */ {NULL, NULL, NULL}, +/* 170 */ {NULL, NULL, NULL}, +/* 171 */ {NULL, NULL, NULL}, +/* 172 */ {NULL, NULL, NULL}, +/* 173 */ {NULL, NULL, NULL}, +/* 174 */ {NULL, NULL, NULL}, +/* 175 */ {NULL, NULL, NULL}, +/* 176 */ {NULL, NULL, NULL}, +/* 177 */ {NULL, NULL, NULL}, +/* 178 */ {NULL, NULL, NULL}, +/* 179 */ {NULL, NULL, NULL}, +/* 180 */ {NULL, NULL, NULL}, +/* 181 */ {NULL, NULL, NULL}, +/* 182 */ {NULL, NULL, NULL}, +/* 183 */ {NULL, NULL, NULL}, +/* 184 */ {NULL, NULL, NULL}, +/* 185 */ {NULL, NULL, NULL}, +/* 186 */ {NULL, NULL, NULL}, +/* 187 */ {NULL, NULL, NULL}, +/* 188 */ {NULL, NULL, NULL}, +/* 189 */ {NULL, NULL, NULL}, +/* 190 */ {NULL, NULL, NULL}, +/* 191 */ {NULL, NULL, NULL}, +/* 192 */ {NULL, NULL, NULL}, +/* 193 */ {NULL, NULL, NULL}, +/* 194 */ {NULL, NULL, NULL}, +/* 195 */ {NULL, NULL, NULL}, +/* 196 */ {NULL, NULL, NULL}, +/* 197 */ {NULL, NULL, NULL}, +/* 198 */ {NULL, NULL, NULL}, +/* 199 */ {NULL, NULL, NULL}, +/* 200 */ {"RPL_TRACELINK", ":%s 200 %s Link %s %s %s", NULL}, +/* 201 */ {"RPL_TRACECONNECTING", ":%s 201 %s Try. %s %s", NULL}, +/* 202 */ {"RPL_TRACEHANDSHAKE", ":%s 202 %s H.S. %s %s", NULL}, +/* 203 */ {"RPL_TRACEUNKNOWN", ":%s 203 %s ???? %s %s (%s) %d", NULL}, +/* 204 */ {"RPL_TRACEOPERATOR", ":%s 204 %s Oper %s %s (%s) %lu %lu", NULL}, +/* 205 */ {"RPL_TRACEUSER", ":%s 205 %s User %s %s (%s) %lu %lu", NULL}, +/* 206 */ {"RPL_TRACESERVER", ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu", NULL}, +/* 207 */ {NULL, NULL, NULL}, +/* 208 */ {"RPL_TRACENEWTYPE", ":%s 208 %s <newtype> 0 %s", NULL}, +/* 209 */ {"RPL_TRACECLASS", ":%s 209 %s Class %s %d", NULL}, +/* 210 */ {NULL, NULL, NULL}, +/* 211 */ {"RPL_STATSLINKINFO", ":%s 211 %s %s %u %u %llu %u %llu :%u %u %s", NULL}, +/* 212 */ {"RPL_STATSCOMMANDS", ":%s 212 %s %s %u %llu :%u", NULL}, +/* 213 */ {"RPL_STATSCLINE", ":%s 213 %s %c %s %s %s %d %s", NULL}, +/* 214 */ {"RPL_STATSNLINE", ":%s 214 %s %c %s * %s %d %s", NULL}, +/* 215 */ {"RPL_STATSILINE", ":%s 215 %s %c %s * %s@%s %d %s", NULL}, +/* 216 */ {"RPL_STATSKLINE", ":%s 216 %s %s %s * %s :%s", NULL}, +/* 217 */ {"RPL_STATSQLINE", ":%s 217 %s %c %u %s :%s", NULL}, +/* 218 */ {"RPL_STATSYLINE", ":%s 218 %s %c %s %u %u %u %u %u %u %u/%u %u/%u %s", NULL}, +/* 219 */ {"RPL_ENDOFSTATS", ":%s 219 %s %c :End of /STATS report", NULL}, +/* 220 */ {"RPL_STATSPLINE", ":%s 220 %s %c %d %s %d %s :%s", NULL}, +/* 221 */ {"RPL_UMODEIS", ":%s 221 %s %s", NULL}, +/* 222 */ {NULL, NULL, NULL}, +/* 223 */ {NULL, NULL, NULL}, +/* 224 */ {NULL, NULL, NULL}, +/* 225 */ {"RPL_STATSDLINE", ":%s 225 %s %c %s :%s", NULL}, +/* 226 */ {"RPL_STATSALINE", ":%s 226 %s %s", NULL}, +/* 227 */ {NULL, NULL, NULL}, +/* 228 */ {NULL, NULL, NULL}, +/* 229 */ {NULL, NULL, NULL}, +/* 230 */ {NULL, NULL, NULL}, +/* 231 */ {NULL, NULL, NULL}, +/* 232 */ {NULL, NULL, NULL}, +/* 233 */ {NULL, NULL, NULL}, +/* 234 */ {NULL, NULL, NULL}, +/* 235 */ {NULL, NULL, NULL}, +/* 236 */ {NULL, NULL, NULL}, +/* 237 */ {NULL, NULL, NULL}, +/* 238 */ {NULL, NULL, NULL}, +/* 239 */ {NULL, NULL, NULL}, +/* 240 */ {NULL, NULL, NULL}, +/* 241 */ {"RPL_STATSLLINE", ":%s 241 %s %c %s * %s %d %s", NULL}, +/* 242 */ {"RPL_STATSUPTIME", ":%s 242 %s :Server Up %d days, %d:%02d:%02d", NULL}, +/* 243 */ {"RPL_STATSOLINE", ":%s 243 %s %c %s@%s * %s %s %s", NULL}, +/* 244 */ {"RPL_STATSHLINE", ":%s 244 %s %c %s * %s %d %s", NULL}, +/* 245 */ {"RPL_STATSSLINE", NULL, NULL}, +/* 246 */ {"RPL_STATSSERVICE", ":%s 246 %s %c %s * %s %d %d", NULL}, +/* 247 */ {"RPL_STATSXLINE", ":%s 247 %s %s %d %s :%s", NULL}, +/* 248 */ {"RPL_STATSULINE", ":%s 248 %s U %s %s@%s %s", NULL}, +/* 249 */ {NULL, NULL, NULL}, +/* 250 */ {"RPL_STATSCONN", ":%s 250 %s :Highest connection count: %d (%d clients) (%llu connections received)", NULL}, +/* 251 */ {"RPL_LUSERCLIENT", ":%s 251 %s :There are %d users and %d invisible on %d servers", NULL}, +/* 252 */ {"RPL_LUSEROP", ":%s 252 %s %d :IRC Operators online", NULL}, +/* 253 */ {"RPL_LUSERUNKNOWN", ":%s 253 %s %d :unknown connection(s)", NULL}, +/* 254 */ {"RPL_LUSERCHANNELS", ":%s 254 %s %d :channels formed", NULL}, +/* 255 */ {"RPL_LUSERME", ":%s 255 %s :I have %d clients and %d servers", NULL}, +/* 256 */ {"RPL_ADMINME", ":%s 256 %s :Administrative info about %s", NULL}, +/* 257 */ {"RPL_ADMINLOC1", ":%s 257 %s :%s", NULL}, +/* 258 */ {"RPL_ADMINLOC2", ":%s 258 %s :%s", NULL}, +/* 259 */ {"RPL_ADMINEMAIL", ":%s 259 %s :%s", NULL}, +/* 260 */ {NULL, NULL, NULL}, +/* 261 */ {NULL, NULL, NULL}, +/* 262 */ {"RPL_ENDOFTRACE", ":%s 262 %s %s :End of TRACE", NULL}, +/* 263 */ {"RPL_LOAD2HI", ":%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again.", NULL}, +/* 264 */ {NULL, NULL, NULL}, +/* 265 */ {"RPL_LOCALUSERS", ":%s 265 %s :Current local users: %d Max: %d", NULL}, +/* 266 */ {"RPL_GLOBALUSERS", ":%s 266 %s :Current global users: %d Max: %d", NULL}, +/* 267 */ {NULL, NULL, NULL}, +/* 268 */ {NULL, NULL, NULL}, +/* 269 */ {NULL, NULL, NULL}, +/* 270 */ {NULL, NULL, NULL}, +/* 271 */ {NULL, NULL, NULL}, +/* 272 */ {NULL, NULL, NULL}, +/* 273 */ {NULL, NULL, NULL}, +/* 274 */ {NULL, NULL, NULL}, +/* 275 */ {NULL, NULL, NULL}, +/* 276 */ {NULL, NULL, NULL}, +/* 277 */ {NULL, NULL, NULL}, +/* 278 */ {NULL, NULL, NULL}, +/* 279 */ {NULL, NULL, NULL}, +/* 280 */ {NULL, NULL, NULL}, +/* 281 */ {"RPL_ACCEPTLIST", ":%s 281 %s :%s", NULL}, +/* 282 */ {"RPL_ENDOFACCEPT", ":%s 282 %s :End of /ACCEPT list.", NULL}, +/* 283 */ {NULL, NULL, NULL}, +/* 284 */ {NULL, NULL, NULL}, +/* 285 */ {NULL, NULL, NULL}, +/* 286 */ {NULL, NULL, NULL}, +/* 287 */ {NULL, NULL, NULL}, +/* 288 */ {NULL, NULL, NULL}, +/* 289 */ {NULL, NULL, NULL}, +/* 290 */ {NULL, NULL, NULL}, +/* 291 */ {NULL, NULL, NULL}, +/* 292 */ {NULL, NULL, NULL}, +/* 293 */ {NULL, NULL, NULL}, +/* 294 */ {NULL, NULL, NULL}, +/* 295 */ {NULL, NULL, NULL}, +/* 296 */ {NULL, NULL, NULL}, +/* 297 */ {NULL, NULL, NULL}, +/* 298 */ {NULL, NULL, NULL}, +/* 299 */ {NULL, NULL, NULL}, +/* 300 */ {NULL, NULL, NULL}, +/* 301 */ {"RPL_AWAY", ":%s 301 %s %s :%s", NULL}, +/* 302 */ {"RPL_USERHOST", ":%s 302 %s :%s", NULL}, +/* 303 */ {"RPL_ISON", ":%s 303 %s :", NULL}, +/* 304 */ {"RPL_TEXT", NULL, NULL}, +/* 305 */ {"RPL_UNAWAY", ":%s 305 %s :You are no longer marked as being away", NULL}, +/* 306 */ {"RPL_NOWAWAY", ":%s 306 %s :You have been marked as being away", NULL}, +/* 307 */ {"RPL_WHOISREGNICK", ":%s 307 %s %s :has identified for this nick", NULL}, +/* 308 */ {"RPL_WHOISADMIN", ":%s 313 %s %s :is a Server Administrator", NULL}, +/* 309 */ {NULL, NULL, NULL}, +/* 310 */ {NULL, NULL, NULL}, +/* 311 */ {"RPL_WHOISUSER", ":%s 311 %s %s %s %s * :%s", NULL}, +/* 312 */ {"RPL_WHOISSERVER", ":%s 312 %s %s %s :%s", NULL}, +/* 313 */ {"RPL_WHOISOPERATOR", ":%s 313 %s %s :is an IRC Operator", NULL}, +/* 314 */ {"RPL_WHOWASUSER", ":%s 314 %s %s %s %s * :%s", NULL}, +/* 315 */ {"RPL_ENDOFWHO", ":%s 315 %s %s :End of /WHO list.", NULL}, +/* 316 */ {"RPL_WHOISCHANOP", NULL, NULL}, +/* 317 */ {"RPL_WHOISIDLE", ":%s 317 %s %s %u %d :seconds idle, signon time", NULL}, +/* 318 */ {"RPL_ENDOFWHOIS", ":%s 318 %s %s :End of /WHOIS list.", NULL}, +/* 319 */ {"RPL_WHOISCHANNELS", ":%s 319 %s %s :%s", NULL}, +/* 320 */ {NULL, NULL, NULL}, +/* 321 */ {"RPL_LISTSTART", ":%s 321 %s Channel :Users Name", NULL}, +/* 322 */ {"RPL_LIST", ":%s 322 %s %s %d :%s", NULL}, +/* 323 */ {"RPL_LISTEND", ":%s 323 %s :End of /LIST", NULL}, +/* 324 */ {"RPL_CHANNELMODEIS", ":%s 324 %s %s %s %s", NULL}, +/* 325 */ {NULL, NULL, NULL}, +/* 326 */ {NULL, NULL, NULL}, +/* 327 */ {NULL, NULL, NULL}, +/* 328 */ {NULL, NULL, NULL}, +/* 329 */ {"RPL_CREATIONTIME", ":%s 329 %s %s %lu", NULL}, +/* 330 */ {NULL, NULL, NULL}, +/* 331 */ {"RPL_NOTOPIC", ":%s 331 %s %s :No topic is set.", NULL}, +/* 332 */ {"RPL_TOPIC", ":%s 332 %s %s :%s", NULL}, +/* 333 */ {"RPL_TOPICWHOTIME", ":%s 333 %s %s %s %lu", NULL}, +/* 334 */ {NULL, NULL, NULL}, +/* 335 */ {NULL, NULL, NULL}, +/* 336 */ {NULL, NULL, NULL}, +/* 337 */ {NULL, NULL, NULL}, +/* 338 */ {"RPL_WHOISACTUALLY", ":%s 338 %s %s %s :actually using host", NULL}, +/* 339 */ {NULL, NULL, NULL}, +/* 340 */ {NULL, NULL, NULL}, +/* 341 */ {"RPL_INVITING", ":%s 341 %s %s %s", NULL}, +/* 342 */ {NULL, NULL, NULL}, +/* 343 */ {NULL, NULL, NULL}, +/* 344 */ {NULL, NULL, NULL}, +/* 345 */ {NULL, NULL, NULL}, +/* 346 */ {"RPL_INVEXLIST", ":%s 346 %s %s %s!%s@%s %s %lu", NULL}, +/* 347 */ {"RPL_ENDOFINVEXLIST", ":%s 347 %s %s :End of Channel Invite List", NULL}, +/* 348 */ {"RPL_EXCEPTLIST", ":%s 348 %s %s %s!%s@%s %s %lu", NULL}, +/* 349 */ {"RPL_ENDOFEXCEPTLIST", ":%s 349 %s %s :End of Channel Exception List", NULL}, +/* 350 */ {NULL, NULL, NULL}, +/* 351 */ {"RPL_VERSION", ":%s 351 %s %s(%s). %s :%s%s", NULL}, +/* 352 */ {"RPL_WHOREPLY", ":%s 352 %s %s %s %s %s %s %s :%d %s", NULL}, +/* 353 */ {"RPL_NAMREPLY", ":%s 353 %s %s %s :", NULL}, +/* 354 */ {NULL, NULL, NULL}, +/* 355 */ {NULL, NULL, NULL}, +/* 356 */ {NULL, NULL, NULL}, +/* 357 */ {NULL, NULL, NULL}, +/* 358 */ {NULL, NULL, NULL}, +/* 359 */ {NULL, NULL, NULL}, +/* 360 */ {NULL, NULL, NULL}, +/* 361 */ {NULL, NULL, NULL}, +/* 362 */ {"RPL_CLOSING", ":%s 362 %s %s :Closed. Status = %d", NULL}, +/* 363 */ {"RPL_CLOSEEND", ":%s 363 %s %d: Connections Closed", NULL}, +/* 364 */ {"RPL_LINKS", ":%s 364 %s %s %s :%d %s", NULL}, +/* 365 */ {"RPL_ENDOFLINKS", ":%s 365 %s %s :End of /LINKS list.", NULL}, +/* 366 */ {"RPL_ENDOFNAMES", ":%s 366 %s %s :End of /NAMES list.", NULL}, +/* 367 */ {"RPL_BANLIST", ":%s 367 %s %s %s!%s@%s %s %lu", NULL}, +/* 368 */ {"RPL_ENDOFBANLIST", ":%s 368 %s %s :End of Channel Ban List", NULL}, +/* 369 */ {"RPL_ENDOFWHOWAS", ":%s 369 %s %s :End of WHOWAS", NULL}, +/* 370 */ {NULL, NULL, NULL}, +/* 371 */ {"RPL_INFO", ":%s 371 %s :%s", NULL}, +/* 372 */ {"RPL_MOTD", ":%s 372 %s :- %s", NULL}, +/* 373 */ {"RPL_INFOSTART", ":%s 373 %s :Server INFO", NULL}, +/* 374 */ {"RPL_ENDOFINFO", ":%s 374 %s :End of /INFO list.", NULL}, +/* 375 */ {"RPL_MOTDSTART", ":%s 375 %s :- %s Message of the Day - ", NULL}, +/* 376 */ {"RPL_ENDOFMOTD", ":%s 376 %s :End of /MOTD command.", NULL}, +/* 377 */ {NULL, NULL, NULL}, +/* 378 */ {NULL, NULL, NULL}, +/* 379 */ {NULL, NULL, NULL}, +/* 380 */ {NULL, NULL, NULL}, +/* 381 */ {"RPL_YOUREOPER", ":%s 381 %s :You have entered... the Twilight Zone!", NULL}, +/* 382 */ {"RPL_REHASHING", ":%s 382 %s %s :Rehashing", NULL}, +/* 383 */ {NULL, NULL, NULL}, +/* 384 */ {NULL, NULL, NULL}, +/* 385 */ {NULL, NULL, NULL}, +/* 386 */ {NULL, ":%s 386 %s :%s", NULL}, +/* 387 */ {NULL, NULL, NULL}, +/* 388 */ {NULL, NULL, NULL}, +/* 389 */ {NULL, NULL, NULL}, +/* 390 */ {NULL, NULL, NULL}, +/* 391 */ {"RPL_TIME", ":%s 391 %s %s :%s", NULL}, +/* 392 */ {NULL, NULL, NULL}, +/* 393 */ {NULL, NULL, NULL}, +/* 394 */ {NULL, NULL, NULL}, +/* 395 */ {NULL, NULL, NULL}, +/* 396 */ {"RPL_HOSTHIDDEN", ":%s 396 %s %s :is now your hidden host", NULL}, +/* 397 */ {NULL, NULL, NULL}, +/* 398 */ {NULL, NULL, NULL}, +/* 399 */ {NULL, NULL, NULL}, +/* 400 */ {NULL, NULL, NULL}, +/* 401 */ {"ERR_NOSUCHNICK", ":%s 401 %s %s :No such nick/channel", NULL}, +/* 402 */ {"ERR_NOSUCHSERVER", ":%s 402 %s %s :No such server", NULL}, +/* 403 */ {"ERR_NOSUCHCHANNEL", ":%s 403 %s %s :No such channel", NULL}, +/* 404 */ {"ERR_CANNOTSENDTOCHAN", ":%s 404 %s %s :Cannot send to channel", NULL}, +/* 405 */ {"ERR_TOOMANYCHANNELS", ":%s 405 %s %s :You have joined too many channels", NULL}, +/* 406 */ {"ERR_WASNOSUCHNICK", ":%s 406 %s %s :There was no such nickname", NULL}, +/* 407 */ {"ERR_TOOMANYTARGETS", ":%s 407 %s %s :Too many recipients. Only %d processed", NULL}, +/* 408 */ {NULL, NULL, NULL}, +/* 409 */ {"ERR_NOORIGIN", ":%s 409 %s :No origin specified", NULL}, +/* 410 */ {"ERR_INVALIDCAPCMD", ":%s 410 %s %s :Invalid CAP subcommand", NULL}, +/* 411 */ {"ERR_NORECIPIENT", ":%s 411 %s :No recipient given (%s)", NULL}, +/* 412 */ {"ERR_NOTEXTTOSEND", ":%s 412 %s :No text to send", NULL}, +/* 413 */ {"ERR_NOTOPLEVEL", ":%s 413 %s %s :No toplevel domain specified", NULL}, +/* 414 */ {"ERR_WILDTOPLEVEL", ":%s 414 %s %s :Wildcard in toplevel Domain", NULL}, +/* 415 */ {NULL, NULL, NULL}, +/* 416 */ {NULL, NULL, NULL}, +/* 417 */ {NULL, NULL, NULL}, +/* 418 */ {NULL, NULL, NULL}, +/* 419 */ {NULL, NULL, NULL}, +/* 420 */ {NULL, NULL, NULL}, +/* 421 */ {"ERR_UNKNOWNCOMMAND", ":%s 421 %s %s :Unknown command", NULL}, +/* 422 */ {"ERR_NOMOTD", ":%s 422 %s :MOTD File is missing", NULL}, +/* 423 */ {"ERR_NOADMININFO", ":%s 423 %s %s :No administrative info available", NULL}, +/* 424 */ {NULL, NULL, NULL}, +/* 425 */ {NULL, NULL, NULL}, +/* 426 */ {NULL, NULL, NULL}, +/* 427 */ {NULL, NULL, NULL}, +/* 428 */ {NULL, NULL, NULL}, +/* 429 */ {NULL, NULL, NULL}, +/* 430 */ {NULL, NULL, NULL}, +/* 431 */ {"ERR_NONICKNAMEGIVEN", ":%s 431 %s :No nickname given", NULL}, +/* 432 */ {"ERR_ERRONEUSNICKNAME", ":%s 432 %s %s :Erroneous Nickname", NULL}, +/* 433 */ {"ERR_NICKNAMEINUSE", ":%s 433 %s %s :Nickname is already in use.", NULL}, +/* 434 */ {NULL, NULL, NULL}, +/* 435 */ {NULL, NULL, NULL}, +/* 436 */ {"ERR_NICKCOLLISION", ":%s 436 %s %s :Nickname collision KILL", NULL}, +/* 437 */ {"ERR_UNAVAILRESOURCE", ":%s 437 %s %s :Nick/channel is temporarily unavailable", NULL}, +/* 438 */ {"ERR_NICKTOOFAST", ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds.", NULL}, +/* 439 */ {NULL, NULL, NULL}, +/* 440 */ {"ERR_SERVICESDOWN", ":%s 440 %s %s :Services is currently down.", NULL}, +/* 441 */ {"ERR_USERNOTINCHANNEL", ":%s 441 %s %s %s :They aren't on that channel", NULL}, +/* 442 */ {"ERR_NOTONCHANNEL", ":%s 442 %s %s :You're not on that channel", NULL}, +/* 443 */ {"ERR_USERONCHANNEL", ":%s 443 %s %s %s :is already on channel", NULL}, +/* 444 */ {NULL, NULL, NULL}, +/* 445 */ {NULL, NULL, NULL}, +/* 446 */ {NULL, NULL, NULL}, +/* 447 */ {NULL, NULL, NULL}, +/* 448 */ {NULL, NULL, NULL}, +/* 449 */ {NULL, NULL, NULL}, +/* 450 */ {NULL, NULL, NULL}, +/* 451 */ {"ERR_NOTREGISTERED", ":%s 451 %s :You have not registered", NULL}, +/* 452 */ {NULL, NULL, NULL}, +/* 453 */ {NULL, NULL, NULL}, +/* 454 */ {NULL, NULL, NULL}, +/* 455 */ {NULL, NULL, NULL}, +/* 456 */ {"ERR_ACCEPTFULL", ":%s 456 %s :Accept list is full", NULL}, +/* 457 */ {"ERR_ACCEPTEXIST", ":%s 457 %s %s!%s@%s :is already on your accept list", NULL}, +/* 458 */ {"ERR_ACCEPTNOT", ":%s 458 %s %s!%s@%s :is not on your accept list", NULL}, +/* 459 */ {NULL, NULL, NULL}, +/* 460 */ {NULL, NULL, NULL}, +/* 461 */ {"ERR_NEEDMOREPARAMS", ":%s 461 %s %s :Not enough parameters", NULL}, +/* 462 */ {"ERR_ALREADYREGISTRED", ":%s 462 %s :You may not reregister", NULL}, +/* 463 */ {NULL, NULL, NULL}, +/* 464 */ {"ERR_PASSWDMISMATCH", ":%s 464 %s :Password Incorrect", NULL}, +/* 465 */ {"ERR_YOUREBANNEDCREEP", ":%s 465 %s :You are banned from this server- %s", NULL}, +/* 466 */ {NULL, NULL, NULL}, +/* 467 */ {NULL, NULL, NULL}, +/* 468 */ {"ERR_ONLYSERVERSCANCHANGE", ":%s 468 %s %s :Only servers can change that mode", NULL}, +/* 469 */ {NULL, NULL, NULL}, +/* 470 */ {"ERR_OPERONLYCHAN", ":%s 470 %s %s :Cannot join channel (+O)", NULL}, +/* 471 */ {"ERR_CHANNELISFULL", ":%s 471 %s %s :Cannot join channel (+l)", NULL}, +/* 472 */ {"ERR_UNKNOWNMODE", ":%s 472 %s %c :is unknown mode char to me", NULL}, +/* 473 */ {"ERR_INVITEONLYCHAN", ":%s 473 %s %s :Cannot join channel (+i)", NULL}, +/* 474 */ {"ERR_BANNEDFROMCHAN", ":%s 474 %s %s :Cannot join channel (+b)", NULL}, +/* 475 */ {"ERR_BADCHANNELKEY", ":%s 475 %s %s :Cannot join channel (+k)", NULL}, +/* 476 */ {NULL, NULL, NULL}, +/* 477 */ {"ERR_NEEDREGGEDNICK", ":%s 477 %s %s :You need to identify to a registered nick to join or speak in that " + "channel.", NULL}, +/* 478 */ {"ERR_BANLISTFULL", ":%s 478 %s %s %s :Channel ban list is full", NULL}, +/* 479 */ {"ERR_BADCHANNAME", ":%s 479 %s %s :Illegal channel name", NULL}, +/* 480 */ {"ERR_SSLONLYCHAN", ":%s 480 %s %s :Cannot join channel (+S)", NULL}, +/* 481 */ {"ERR_NOPRIVILEGES", ":%s 481 %s :Permission Denied - You're not an IRC operator", NULL}, +/* 482 */ {"ERR_CHANOPRIVSNEEDED", ":%s 482 %s %s :You're not channel operator", NULL}, +/* 483 */ {"ERR_CANTKILLSERVER", ":%s 483 %s :You can't kill a server!", NULL}, +/* 484 */ {"ERR_RESTRICTED", ":%s 484 %s :You are restricted", NULL}, +/* 485 */ {NULL, NULL, NULL}, +/* 486 */ {"ERR_NONONREG", ":%s 486 %s %s :You must identify to a registered " + "nick to private message that person", NULL}, +/* 487 */ {NULL, NULL, NULL}, +/* 488 */ {NULL, NULL, NULL}, +/* 489 */ {NULL, NULL, NULL}, +/* 490 */ {NULL, NULL, NULL}, +/* 491 */ {"ERR_NOOPERHOST", ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone", NULL}, +/* 492 */ {NULL, NULL, NULL}, +/* 493 */ {NULL, NULL, NULL}, +/* 494 */ {NULL, NULL, NULL}, +/* 495 */ {NULL, NULL, NULL}, +/* 496 */ {NULL, NULL, NULL}, +/* 497 */ {NULL, NULL, NULL}, +/* 498 */ {NULL, NULL, NULL}, +/* 499 */ {NULL, NULL, NULL}, +/* 500 */ {NULL, NULL, NULL}, +/* 501 */ {"ERR_UMODEUNKNOWNFLAG", ":%s 501 %s :Unknown MODE flag", NULL}, +/* 502 */ {"ERR_USERSDONTMATCH", ":%s 502 %s :Can't change mode for other users", NULL}, +/* 503 */ {"ERR_GHOSTEDCLIENT", ":%s 503 %s :Message could not be delivered to %s", NULL}, +/* 504 */ {"ERR_USERNOTONSERV", ":%s 504 %s %s :User is not on this server", NULL}, +/* 505 */ {NULL, NULL, NULL}, +/* 506 */ {NULL, NULL, NULL}, +/* 507 */ {NULL, NULL, NULL}, +/* 508 */ {NULL, NULL, NULL}, +/* 509 */ {NULL, NULL, NULL}, +/* 510 */ {NULL, NULL, NULL}, +/* 511 */ {NULL, NULL, NULL}, +/* 512 */ {"ERR_TOOMANYWATCH", ":%s 512 %s %s :Maximum size for WATCH-list is %d entries", NULL}, +/* 513 */ {"ERR_WRONGPONG", ":%s 513 %s :To connect type /QUOTE PONG %u", NULL}, +/* 514 */ {NULL, NULL, NULL}, +/* 515 */ {NULL, NULL, NULL}, +/* 516 */ {NULL, NULL, NULL}, +/* 517 */ {NULL, NULL, NULL}, +/* 518 */ {NULL, NULL, NULL}, +/* 519 */ {NULL, NULL, NULL}, +/* 520 */ {NULL, NULL, NULL}, +/* 521 */ {"ERR_LISTSYNTAX", ":%s 521 %s :Bad list syntax, type /QUOTE HELP LIST", NULL}, +/* 522 */ {NULL, NULL, NULL}, +/* 523 */ {NULL, NULL, NULL}, +/* 524 */ {"ERR_HELPNOTFOUND", ":%s 524 %s %s :Help not found", NULL}, +/* 525 */ {NULL, NULL, NULL}, +/* 526 */ {NULL, NULL, NULL}, +/* 527 */ {NULL, NULL, NULL}, +/* 528 */ {NULL, NULL, NULL}, +/* 529 */ {NULL, NULL, NULL}, +/* 530 */ {NULL, NULL, NULL}, +/* 531 */ {NULL, NULL, NULL}, +/* 532 */ {NULL, NULL, NULL}, +/* 533 */ {NULL, NULL, NULL}, +/* 534 */ {NULL, NULL, NULL}, +/* 535 */ {NULL, NULL, NULL}, +/* 536 */ {NULL, NULL, NULL}, +/* 537 */ {NULL, NULL, NULL}, +/* 538 */ {NULL, NULL, NULL}, +/* 539 */ {NULL, NULL, NULL}, +/* 540 */ {NULL, NULL, NULL}, +/* 541 */ {NULL, NULL, NULL}, +/* 542 */ {NULL, NULL, NULL}, +/* 543 */ {NULL, NULL, NULL}, +/* 544 */ {NULL, NULL, NULL}, +/* 545 */ {NULL, NULL, NULL}, +/* 546 */ {NULL, NULL, NULL}, +/* 547 */ {NULL, NULL, NULL}, +/* 548 */ {NULL, NULL, NULL}, +/* 549 */ {NULL, NULL, NULL}, +/* 550 */ {NULL, NULL, NULL}, +/* 551 */ {NULL, NULL, NULL}, +/* 552 */ {NULL, NULL, NULL}, +/* 553 */ {NULL, NULL, NULL}, +/* 554 */ {NULL, NULL, NULL}, +/* 555 */ {NULL, NULL, NULL}, +/* 556 */ {NULL, NULL, NULL}, +/* 557 */ {NULL, NULL, NULL}, +/* 558 */ {NULL, NULL, NULL}, +/* 559 */ {NULL, NULL, NULL}, +/* 560 */ {NULL, NULL, NULL}, +/* 561 */ {NULL, NULL, NULL}, +/* 562 */ {NULL, NULL, NULL}, +/* 563 */ {NULL, NULL, NULL}, +/* 564 */ {NULL, NULL, NULL}, +/* 565 */ {NULL, NULL, NULL}, +/* 566 */ {NULL, NULL, NULL}, +/* 567 */ {NULL, NULL, NULL}, +/* 568 */ {NULL, NULL, NULL}, +/* 569 */ {NULL, NULL, NULL}, +/* 570 */ {NULL, NULL, NULL}, +/* 571 */ {NULL, NULL, NULL}, +/* 572 */ {NULL, NULL, NULL}, +/* 573 */ {NULL, NULL, NULL}, +/* 574 */ {NULL, NULL, NULL}, +/* 575 */ {NULL, NULL, NULL}, +/* 576 */ {NULL, NULL, NULL}, +/* 577 */ {NULL, NULL, NULL}, +/* 578 */ {NULL, NULL, NULL}, +/* 579 */ {NULL, NULL, NULL}, +/* 580 */ {NULL, NULL, NULL}, +/* 581 */ {NULL, NULL, NULL}, +/* 582 */ {NULL, NULL, NULL}, +/* 583 */ {NULL, NULL, NULL}, +/* 584 */ {NULL, NULL, NULL}, +/* 585 */ {NULL, NULL, NULL}, +/* 586 */ {NULL, NULL, NULL}, +/* 587 */ {NULL, NULL, NULL}, +/* 588 */ {NULL, NULL, NULL}, +/* 589 */ {NULL, NULL, NULL}, +/* 590 */ {NULL, NULL, NULL}, +/* 591 */ {NULL, NULL, NULL}, +/* 592 */ {NULL, NULL, NULL}, +/* 593 */ {NULL, NULL, NULL}, +/* 594 */ {NULL, NULL, NULL}, +/* 595 */ {NULL, NULL, NULL}, +/* 596 */ {NULL, NULL, NULL}, +/* 597 */ {NULL, NULL, NULL}, +/* 598 */ {NULL, NULL, NULL}, +/* 599 */ {NULL, NULL, NULL}, +/* 600 */ {"RPL_LOGON", ":%s 600 %s %s %s %s %d :logged online", NULL}, +/* 601 */ {"RPL_LOGOFF", ":%s 601 %s %s %s %s %d :logged offline", NULL}, +/* 602 */ {"RPL_WATCHOFF", ":%s 602 %s %s %s %s %d :stopped watching", NULL}, +/* 603 */ {"RPL_WATCHSTAT", ":%s 603 %s :You have %u and are on %u WATCH entries", NULL}, +/* 604 */ {"RPL_NOWON", ":%s 604 %s %s %s %s %d :is online", NULL}, +/* 605 */ {"RPL_NOWOFF", ":%s 605 %s %s %s %s %d :is offline", NULL}, +/* 606 */ {"RPL_WATCHLIST", ":%s 606 %s :%s", NULL}, +/* 607 */ {"RPL_ENDOFWATCHLIST", ":%s 607 %s :End of WATCH %c", NULL}, +/* 608 */ {NULL, NULL, NULL}, +/* 609 */ {NULL, NULL, NULL}, +/* 610 */ {NULL, NULL, NULL}, +/* 611 */ {NULL, NULL, NULL}, +/* 612 */ {NULL, NULL, NULL}, +/* 613 */ {NULL, NULL, NULL}, +/* 614 */ {NULL, NULL, NULL}, +/* 615 */ {NULL, NULL, NULL}, +/* 616 */ {NULL, NULL, NULL}, +/* 617 */ {NULL, NULL, NULL}, +/* 618 */ {NULL, NULL, NULL}, +/* 619 */ {NULL, NULL, NULL}, +/* 620 */ {NULL, NULL, NULL}, +/* 621 */ {NULL, NULL, NULL}, +/* 622 */ {NULL, NULL, NULL}, +/* 623 */ {NULL, NULL, NULL}, +/* 624 */ {NULL, NULL, NULL}, +/* 625 */ {NULL, NULL, NULL}, +/* 626 */ {NULL, NULL, NULL}, +/* 627 */ {NULL, NULL, NULL}, +/* 628 */ {NULL, NULL, NULL}, +/* 629 */ {NULL, NULL, NULL}, +/* 630 */ {NULL, NULL, NULL}, +/* 631 */ {NULL, NULL, NULL}, +/* 632 */ {NULL, NULL, NULL}, +/* 633 */ {NULL, NULL, NULL}, +/* 634 */ {NULL, NULL, NULL}, +/* 635 */ {NULL, NULL, NULL}, +/* 636 */ {NULL, NULL, NULL}, +/* 637 */ {NULL, NULL, NULL}, +/* 638 */ {NULL, NULL, NULL}, +/* 639 */ {NULL, NULL, NULL}, +/* 640 */ {NULL, NULL, NULL}, +/* 641 */ {NULL, NULL, NULL}, +/* 642 */ {NULL, NULL, NULL}, +/* 643 */ {NULL, NULL, NULL}, +/* 644 */ {NULL, NULL, NULL}, +/* 645 */ {NULL, NULL, NULL}, +/* 646 */ {NULL, NULL, NULL}, +/* 647 */ {NULL, NULL, NULL}, +/* 648 */ {NULL, NULL, NULL}, +/* 649 */ {NULL, NULL, NULL}, +/* 650 */ {NULL, NULL, NULL}, +/* 651 */ {NULL, NULL, NULL}, +/* 652 */ {NULL, NULL, NULL}, +/* 653 */ {NULL, NULL, NULL}, +/* 654 */ {NULL, NULL, NULL}, +/* 655 */ {NULL, NULL, NULL}, +/* 656 */ {NULL, NULL, NULL}, +/* 657 */ {NULL, NULL, NULL}, +/* 658 */ {NULL, NULL, NULL}, +/* 659 */ {NULL, NULL, NULL}, +/* 660 */ {NULL, NULL, NULL}, +/* 661 */ {NULL, NULL, NULL}, +/* 662 */ {NULL, NULL, NULL}, +/* 663 */ {NULL, NULL, NULL}, +/* 664 */ {NULL, NULL, NULL}, +/* 665 */ {NULL, NULL, NULL}, +/* 666 */ {NULL, NULL, NULL}, +/* 667 */ {NULL, NULL, NULL}, +/* 668 */ {NULL, NULL, NULL}, +/* 669 */ {NULL, NULL, NULL}, +/* 670 */ {NULL, NULL, NULL}, +/* 671 */ {"RPL_WHOISSECURE", ":%s 671 %s %s :is connected via SSL (secure link)", NULL}, +/* 672 */ {NULL, NULL, NULL}, +/* 673 */ {NULL, NULL, NULL}, +/* 674 */ {NULL, NULL, NULL}, +/* 675 */ {NULL, NULL, NULL}, +/* 676 */ {NULL, NULL, NULL}, +/* 677 */ {NULL, NULL, NULL}, +/* 678 */ {NULL, NULL, NULL}, +/* 679 */ {NULL, NULL, NULL}, +/* 680 */ {NULL, NULL, NULL}, +/* 681 */ {NULL, NULL, NULL}, +/* 682 */ {NULL, NULL, NULL}, +/* 683 */ {NULL, NULL, NULL}, +/* 684 */ {NULL, NULL, NULL}, +/* 685 */ {NULL, NULL, NULL}, +/* 686 */ {NULL, NULL, NULL}, +/* 687 */ {NULL, NULL, NULL}, +/* 688 */ {NULL, NULL, NULL}, +/* 689 */ {NULL, NULL, NULL}, +/* 690 */ {NULL, NULL, NULL}, +/* 691 */ {NULL, NULL, NULL}, +/* 692 */ {NULL, NULL, NULL}, +/* 693 */ {NULL, NULL, NULL}, +/* 694 */ {NULL, NULL, NULL}, +/* 695 */ {NULL, NULL, NULL}, +/* 696 */ {NULL, NULL, NULL}, +/* 697 */ {NULL, NULL, NULL}, +/* 698 */ {NULL, NULL, NULL}, +/* 699 */ {NULL, NULL, NULL}, +/* 700 */ {NULL, NULL, NULL}, +/* 701 */ {NULL, NULL, NULL}, +/* 702 */ {"RPL_MODLIST", ":%s 702 %s %s %p %s %s", NULL}, +/* 703 */ {"RPL_ENDOFMODLIST", ":%s 703 %s :End of /MODLIST.", NULL}, +/* 704 */ {"RPL_HELPSTART", ":%s 704 %s %s :%s", NULL}, +/* 705 */ {"RPL_HELPTXT", ":%s 705 %s %s :%s", NULL}, +/* 706 */ {"RPL_ENDOFHELP", ":%s 706 %s %s :End of /HELP.", NULL}, +/* 707 */ {NULL, NULL, NULL}, +/* 708 */ {"RPL_ETRACE_FULL", ":%s 708 %s %s %s %s %s %s %s %s %s :%s", NULL}, +/* 709 */ {"RPL_ETRACE", ":%s 709 %s %s %s %s %s %s %s :%s", NULL}, +/* 710 */ {"RPL_KNOCK", ":%s 710 %s %s %s!%s@%s :has asked for an invite.", NULL}, +/* 711 */ {"RPL_KNOCKDLVR", ":%s 711 %s %s :Your KNOCK has been delivered.", NULL}, +/* 712 */ {"ERR_TOOMANYKNOCK", ":%s 712 %s %s :Too many KNOCKs (%s).", NULL}, +/* 713 */ {"ERR_CHANOPEN", ":%s 713 %s %s :Channel is open.", NULL}, +/* 714 */ {"ERR_KNOCKONCHAN", ":%s 714 %s %s :You are already on that channel.", NULL}, +/* 715 */ {NULL, NULL, NULL}, +/* 716 */ {"RPL_TARGUMODEG", ":%s 716 %s %s :is in +g mode (server side ignore)", NULL}, +/* 717 */ {"RPL_TARGNOTIFY", ":%s 717 %s %s :has been informed that you messaged them.", NULL}, +/* 718 */ {"RPL_UMODEGMSG", ":%s 718 %s %s :is messaging you, and you are umode +g.", NULL}, +/* 719 */ {NULL, NULL, NULL}, +/* 720 */ {NULL, NULL, NULL}, +/* 721 */ {NULL, NULL, NULL}, +/* 722 */ {NULL, NULL, NULL}, +/* 723 */ {"ERR_NOPRIVS", ":%s 723 %s %s :Insufficient oper privs.", NULL }, +/* 724 */ {"RPL_TESTMASK", ":%s 724 %s %s!%s@%s %u %u :Local/remote clients match.", NULL }, +/* 725 */ {"RPL_TESTLINE", ":%s 725 %s %c %ld %s :%s", NULL }, +/* 726 */ {"RPL_NOTESTLINE", ":%s 726 %s %s :No matches", NULL }, +/* 727 */ {NULL, NULL, NULL}, +/* 728 */ {NULL, NULL, NULL}, +/* 729 */ {NULL, NULL, NULL}, +/* 730 */ {NULL, NULL, NULL}, +/* 731 */ {NULL, NULL, NULL}, +/* 732 */ {NULL, NULL, NULL}, +/* 733 */ {NULL, NULL, NULL}, +/* 734 */ {NULL, NULL, NULL}, +/* 735 */ {NULL, NULL, NULL}, +/* 736 */ {NULL, NULL, NULL}, +/* 737 */ {NULL, NULL, NULL}, +/* 738 */ {NULL, NULL, NULL}, +/* 739 */ {NULL, NULL, NULL}, +/* 740 */ {NULL, NULL, NULL}, +/* 741 */ {NULL, NULL, NULL}, +/* 742 */ {NULL, NULL, NULL}, +/* 743 */ {NULL, NULL, NULL}, +/* 744 */ {NULL, NULL, NULL}, +/* 745 */ {NULL, NULL, NULL}, +/* 746 */ {NULL, NULL, NULL}, +/* 747 */ {NULL, NULL, NULL}, +/* 748 */ {NULL, NULL, NULL}, +/* 749 */ {NULL, NULL, NULL}, +/* 750 */ {NULL, NULL, NULL}, +/* 751 */ {NULL, NULL, NULL}, +/* 752 */ {NULL, NULL, NULL}, +/* 753 */ {NULL, NULL, NULL}, +/* 754 */ {NULL, NULL, NULL}, +/* 755 */ {NULL, NULL, NULL}, +/* 756 */ {NULL, NULL, NULL}, +/* 757 */ {NULL, NULL, NULL}, +/* 758 */ {NULL, NULL, NULL}, +/* 759 */ {NULL, NULL, NULL}, +/* 760 */ {NULL, NULL, NULL}, +/* 761 */ {NULL, NULL, NULL}, +/* 762 */ {NULL, NULL, NULL}, +/* 763 */ {NULL, NULL, NULL}, +/* 764 */ {NULL, NULL, NULL}, +/* 765 */ {NULL, NULL, NULL}, +/* 766 */ {NULL, NULL, NULL}, +/* 767 */ {NULL, NULL, NULL}, +/* 768 */ {NULL, NULL, NULL}, +/* 769 */ {NULL, NULL, NULL}, +/* 770 */ {NULL, NULL, NULL}, +/* 771 */ {NULL, NULL, NULL}, +/* 772 */ {NULL, NULL, NULL}, +/* 773 */ {NULL, NULL, NULL}, +/* 774 */ {NULL, NULL, NULL}, +/* 775 */ {NULL, NULL, NULL}, +/* 776 */ {NULL, NULL, NULL}, +/* 777 */ {NULL, NULL, NULL}, +/* 778 */ {NULL, NULL, NULL}, +/* 779 */ {NULL, NULL, NULL}, +/* 780 */ {NULL, NULL, NULL}, +/* 781 */ {NULL, NULL, NULL}, +/* 782 */ {NULL, NULL, NULL}, +/* 783 */ {NULL, NULL, NULL}, +/* 784 */ {NULL, NULL, NULL}, +/* 785 */ {NULL, NULL, NULL}, +/* 786 */ {NULL, NULL, NULL}, +/* 787 */ {NULL, NULL, NULL}, +/* 788 */ {NULL, NULL, NULL}, +/* 789 */ {NULL, NULL, NULL}, +/* 790 */ {NULL, NULL, NULL}, +/* 791 */ {NULL, NULL, NULL}, +/* 792 */ {NULL, NULL, NULL}, +/* 793 */ {NULL, NULL, NULL}, +/* 794 */ {NULL, NULL, NULL}, +/* 795 */ {NULL, NULL, NULL}, +/* 796 */ {NULL, NULL, NULL}, +/* 797 */ {NULL, NULL, NULL}, +/* 798 */ {NULL, NULL, NULL}, +/* 799 */ {NULL, NULL, NULL}, +/* 800 */ {NULL, NULL, NULL}, +/* 801 */ {NULL, NULL, NULL}, +/* 802 */ {NULL, NULL, NULL}, +/* 803 */ {NULL, NULL, NULL}, +/* 804 */ {NULL, NULL, NULL}, +/* 805 */ {NULL, NULL, NULL}, +/* 806 */ {NULL, NULL, NULL}, +/* 807 */ {NULL, NULL, NULL}, +/* 808 */ {NULL, NULL, NULL}, +/* 809 */ {NULL, NULL, NULL}, +/* 810 */ {NULL, NULL, NULL}, +/* 811 */ {NULL, NULL, NULL}, +/* 812 */ {NULL, NULL, NULL}, +/* 813 */ {NULL, NULL, NULL}, +/* 814 */ {NULL, NULL, NULL}, +/* 815 */ {NULL, NULL, NULL}, +/* 816 */ {NULL, NULL, NULL}, +/* 817 */ {NULL, NULL, NULL}, +/* 818 */ {NULL, NULL, NULL}, +/* 819 */ {NULL, NULL, NULL}, +/* 820 */ {NULL, NULL, NULL}, +/* 821 */ {NULL, NULL, NULL}, +/* 822 */ {NULL, NULL, NULL}, +/* 823 */ {NULL, NULL, NULL}, +/* 824 */ {NULL, NULL, NULL}, +/* 825 */ {NULL, NULL, NULL}, +/* 826 */ {NULL, NULL, NULL}, +/* 827 */ {NULL, NULL, NULL}, +/* 828 */ {NULL, NULL, NULL}, +/* 829 */ {NULL, NULL, NULL}, +/* 830 */ {NULL, NULL, NULL}, +/* 831 */ {NULL, NULL, NULL}, +/* 832 */ {NULL, NULL, NULL}, +/* 833 */ {NULL, NULL, NULL}, +/* 834 */ {NULL, NULL, NULL}, +/* 835 */ {NULL, NULL, NULL}, +/* 836 */ {NULL, NULL, NULL}, +/* 837 */ {NULL, NULL, NULL}, +/* 838 */ {NULL, NULL, NULL}, +/* 839 */ {NULL, NULL, NULL}, +/* 840 */ {NULL, NULL, NULL}, +/* 841 */ {NULL, NULL, NULL}, +/* 842 */ {NULL, NULL, NULL}, +/* 843 */ {NULL, NULL, NULL}, +/* 844 */ {NULL, NULL, NULL}, +/* 845 */ {NULL, NULL, NULL}, +/* 846 */ {NULL, NULL, NULL}, +/* 847 */ {NULL, NULL, NULL}, +/* 848 */ {NULL, NULL, NULL}, +/* 849 */ {NULL, NULL, NULL}, +/* 850 */ {NULL, NULL, NULL}, +/* 851 */ {NULL, NULL, NULL}, +/* 852 */ {NULL, NULL, NULL}, +/* 853 */ {NULL, NULL, NULL}, +/* 854 */ {NULL, NULL, NULL}, +/* 855 */ {NULL, NULL, NULL}, +/* 856 */ {NULL, NULL, NULL}, +/* 857 */ {NULL, NULL, NULL}, +/* 858 */ {NULL, NULL, NULL}, +/* 859 */ {NULL, NULL, NULL}, +/* 860 */ {NULL, NULL, NULL}, +/* 861 */ {NULL, NULL, NULL}, +/* 862 */ {NULL, NULL, NULL}, +/* 863 */ {NULL, NULL, NULL}, +/* 864 */ {NULL, NULL, NULL}, +/* 865 */ {NULL, NULL, NULL}, +/* 866 */ {NULL, NULL, NULL}, +/* 867 */ {NULL, NULL, NULL}, +/* 868 */ {NULL, NULL, NULL}, +/* 869 */ {NULL, NULL, NULL}, +/* 870 */ {NULL, NULL, NULL}, +/* 871 */ {NULL, NULL, NULL}, +/* 872 */ {NULL, NULL, NULL}, +/* 873 */ {NULL, NULL, NULL}, +/* 874 */ {NULL, NULL, NULL}, +/* 875 */ {NULL, NULL, NULL}, +/* 876 */ {NULL, NULL, NULL}, +/* 877 */ {NULL, NULL, NULL}, +/* 878 */ {NULL, NULL, NULL}, +/* 879 */ {NULL, NULL, NULL}, +/* 880 */ {NULL, NULL, NULL}, +/* 881 */ {NULL, NULL, NULL}, +/* 882 */ {NULL, NULL, NULL}, +/* 883 */ {NULL, NULL, NULL}, +/* 884 */ {NULL, NULL, NULL}, +/* 885 */ {NULL, NULL, NULL}, +/* 886 */ {NULL, NULL, NULL}, +/* 887 */ {NULL, NULL, NULL}, +/* 888 */ {NULL, NULL, NULL}, +/* 889 */ {NULL, NULL, NULL}, +/* 890 */ {NULL, NULL, NULL}, +/* 891 */ {NULL, NULL, NULL}, +/* 892 */ {NULL, NULL, NULL}, +/* 893 */ {NULL, NULL, NULL}, +/* 894 */ {NULL, NULL, NULL}, +/* 895 */ {NULL, NULL, NULL}, +/* 896 */ {NULL, NULL, NULL}, +/* 897 */ {NULL, NULL, NULL}, +/* 898 */ {NULL, NULL, NULL}, +/* 899 */ {NULL, NULL, NULL}, +/* 900 */ {NULL, NULL, NULL}, +/* 901 */ {NULL, NULL, NULL}, +/* 902 */ {NULL, NULL, NULL}, +/* 903 */ {NULL, NULL, NULL}, +/* 904 */ {NULL, NULL, NULL}, +/* 905 */ {NULL, NULL, NULL}, +/* 906 */ {NULL, NULL, NULL}, +/* 907 */ {NULL, NULL, NULL}, +/* 908 */ {NULL, NULL, NULL}, +/* 909 */ {NULL, NULL, NULL}, +/* 910 */ {NULL, NULL, NULL}, +/* 911 */ {NULL, NULL, NULL}, +/* 912 */ {NULL, NULL, NULL}, +/* 913 */ {NULL, NULL, NULL}, +/* 914 */ {NULL, NULL, NULL}, +/* 915 */ {NULL, NULL, NULL}, +/* 916 */ {NULL, NULL, NULL}, +/* 917 */ {NULL, NULL, NULL}, +/* 918 */ {NULL, NULL, NULL}, +/* 919 */ {NULL, NULL, NULL}, +/* 920 */ {NULL, NULL, NULL}, +/* 921 */ {NULL, NULL, NULL}, +/* 922 */ {NULL, NULL, NULL}, +/* 923 */ {NULL, NULL, NULL}, +/* 924 */ {NULL, NULL, NULL}, +/* 925 */ {NULL, NULL, NULL}, +/* 926 */ {NULL, NULL, NULL}, +/* 927 */ {NULL, NULL, NULL}, +/* 928 */ {NULL, NULL, NULL}, +/* 929 */ {NULL, NULL, NULL}, +/* 930 */ {NULL, NULL, NULL}, +/* 931 */ {NULL, NULL, NULL}, +/* 932 */ {NULL, NULL, NULL}, +/* 933 */ {NULL, NULL, NULL}, +/* 934 */ {NULL, NULL, NULL}, +/* 935 */ {NULL, NULL, NULL}, +/* 936 */ {NULL, NULL, NULL}, +/* 937 */ {NULL, NULL, NULL}, +/* 938 */ {NULL, NULL, NULL}, +/* 939 */ {NULL, NULL, NULL}, +/* 940 */ {NULL, NULL, NULL}, +/* 941 */ {NULL, NULL, NULL}, +/* 942 */ {NULL, NULL, NULL}, +/* 943 */ {NULL, NULL, NULL}, +/* 944 */ {NULL, NULL, NULL}, +/* 945 */ {NULL, NULL, NULL}, +/* 946 */ {NULL, NULL, NULL}, +/* 947 */ {NULL, NULL, NULL}, +/* 948 */ {NULL, NULL, NULL}, +/* 949 */ {NULL, NULL, NULL}, +/* 950 */ {NULL, NULL, NULL}, +/* 951 */ {NULL, NULL, NULL}, +/* 952 */ {NULL, NULL, NULL}, +/* 953 */ {NULL, NULL, NULL}, +/* 954 */ {NULL, NULL, NULL}, +/* 955 */ {NULL, NULL, NULL}, +/* 956 */ {NULL, NULL, NULL}, +/* 957 */ {NULL, NULL, NULL}, +/* 958 */ {NULL, NULL, NULL}, +/* 959 */ {NULL, NULL, NULL}, +/* 960 */ {NULL, NULL, NULL}, +/* 961 */ {NULL, NULL, NULL}, +/* 962 */ {NULL, NULL, NULL}, +/* 963 */ {NULL, NULL, NULL}, +/* 964 */ {NULL, NULL, NULL}, +/* 965 */ {NULL, NULL, NULL}, +/* 966 */ {NULL, NULL, NULL}, +/* 967 */ {NULL, NULL, NULL}, +/* 968 */ {NULL, NULL, NULL}, +/* 969 */ {NULL, NULL, NULL}, +/* 970 */ {NULL, NULL, NULL}, +/* 971 */ {NULL, NULL, NULL}, +/* 972 */ {NULL, NULL, NULL}, +/* 973 */ {NULL, NULL, NULL}, +/* 974 */ {NULL, NULL, NULL}, +/* 975 */ {NULL, NULL, NULL}, +/* 976 */ {NULL, NULL, NULL}, +/* 977 */ {NULL, NULL, NULL}, +/* 978 */ {NULL, NULL, NULL}, +/* 979 */ {NULL, NULL, NULL}, +/* 980 */ {NULL, NULL, NULL}, +/* 981 */ {NULL, NULL, NULL}, +/* 982 */ {NULL, NULL, NULL}, +/* 983 */ {NULL, NULL, NULL}, +/* 984 */ {NULL, NULL, NULL}, +/* 985 */ {NULL, NULL, NULL}, +/* 986 */ {NULL, NULL, NULL}, +/* 987 */ {NULL, NULL, NULL}, +/* 988 */ {NULL, NULL, NULL}, +/* 989 */ {NULL, NULL, NULL}, +/* 990 */ {NULL, NULL, NULL}, +/* 991 */ {NULL, NULL, NULL}, +/* 992 */ {NULL, NULL, NULL}, +/* 993 */ {NULL, NULL, NULL}, +/* 994 */ {NULL, NULL, NULL}, +/* 995 */ {NULL, NULL, NULL}, +/* 996 */ {NULL, NULL, NULL}, +/* 997 */ {NULL, NULL, NULL}, +/* 998 */ {NULL, NULL, NULL}, +/* 999 */ {NULL, NULL, NULL} +}; @@ -74,20 +74,20 @@ send_message_file(struct Client *source_p, MessageFile *motdToPrint) { case USER_MOTD: if (motdToPrint->contentsOfFile == NULL) - sendto_one(source_p, ERR_NOMOTD, from, to); + sendto_one(source_p, form_str(ERR_NOMOTD), from, to); else { - sendto_one(source_p, RPL_MOTDSTART, + sendto_one(source_p, form_str(RPL_MOTDSTART), from, to, me.name); for (linePointer = motdToPrint->contentsOfFile; linePointer; linePointer = linePointer->next) { - sendto_one(source_p, RPL_MOTD, + sendto_one(source_p, form_str(RPL_MOTD), from, to, linePointer->line); } - sendto_one(source_p, RPL_ENDOFMOTD, from, to); + sendto_one(source_p, form_str(RPL_ENDOFMOTD), from, to); } break; @@ -109,7 +109,7 @@ send_message_file(struct Client *source_p, MessageFile *motdToPrint) for (linePointer = motdToPrint->contentsOfFile; linePointer; linePointer = linePointer->next) { - sendto_one(source_p, RPL_ISUPPORT, + sendto_one(source_p, form_str(RPL_ISUPPORT), me.name, source_p->name, linePointer->line); } } diff --git a/src/numeric.c b/src/numeric.c index e08c48d..21c574e 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -30,3 +30,198 @@ #include "log.h" #include "send.h" #include "client.h" +#include "messages.tab" + +static char used_locale[LOCALE_LENGTH] = "standard"; + +/* + * form_str + * + * inputs - numeric + * output - corresponding string + * side effects - NONE + */ +const char* form_str(int numeric) +{ + assert(-1 < numeric); + assert(numeric < ERR_LAST_ERR_MSG); + + if (numeric > ERR_LAST_ERR_MSG) + numeric = ERR_LAST_ERR_MSG; + if (numeric < 0) + numeric = ERR_LAST_ERR_MSG; + + assert(replies[numeric].standard != NULL); + + return (replies[numeric].translated != NULL ? replies[numeric].translated : + replies[numeric].standard); +} + +/* Attempts to change a numeric with index "reply" to "new_reply". + * Returns 1 if ok, 0 otherwise. + */ +static int +change_reply(const char *locale, int linecnt, int reply, char *new_reply) +{ + int found; + char *new = new_reply; + const char *old = replies[reply].standard; + + for (; *new; new++) + { + if (*new == '%') + { + if (!*++new) break; + if (*new != '%') + { + /* We've just found a format symbol. Check if it is the next format + * symbol in the original reply. + */ + for (; *new >= '0' && *new <= '9'; new++); /* skip size prefix */ + found = 0; + for (; *old; old++) + { + if (*old == '%') + { + if (!*++old) break; /* shouldn't happen */ + if (*old != '%') + { + for (; *old >= '0' && *old <= '9'; old++); /* skip size prefix */ + if (*new != *old++) + { + ilog(LOG_TYPE_IRCD, "Incompatible format symbols (%s.lang, %d)", + locale, linecnt); + return 0; + } + found = 1; + break; + } + } + } + if (!found) + { + ilog(LOG_TYPE_IRCD, "Too many format symbols (%s.lang, %d)", locale, linecnt); + return(0); + } + } + } + } + + MyFree(replies[reply].translated); + replies[reply].translated = xstrdup(new_reply); + return(1); +} + +/* Loads a language file. Errors are logged into the log file. */ +void +set_locale(const char *locale) +{ + int i, res = 1, linecnt = 0; + char buffer[IRCD_BUFSIZE + 1]; + char *ident, *reply; + FILE *f; + + /* Restore standard replies */ + for (i = 0; i <= ERR_LAST_ERR_MSG; i++) /* 0 isn't a magic number! ;> */ + { + if (replies[i].translated != NULL) + { + MyFree(replies[i].translated); + replies[i].translated = NULL; + } + } + + if (strchr(locale, '/') != NULL) + { + strlcpy(used_locale, "standard", sizeof(used_locale)); /* XXX paranoid */ + return; + } + + /* yes, I know - the slash isn't necessary. But I have to be sure + * that it'll work even if some lame admin won't put "/" at the end + * of MSGPATH. + */ + snprintf(buffer, sizeof(buffer), "%s/%s.lang", MSGPATH, locale); + if ((f = fopen(buffer, "r")) == NULL) + { + strlcpy(used_locale, "standard", sizeof(used_locale)); /* XXX */ + return; + } + + /* Process the language file */ + while (fgets(buffer, sizeof(buffer), f)) + { + ++linecnt; + if (buffer[0] == ';') + continue; /* that's a comment */ + + if ((ident = strpbrk(buffer, "\r\n")) != NULL) + *ident = '\0'; + + /* skip spaces if there are any */ + for (ident = buffer; *ident == ' ' || *ident == '\t'; ident++)/* null */; + if (*ident == '\0') + continue; /* empty line */ + + /* skip after the reply identificator */ + for (reply = ident; *reply != ' ' && *reply != '\t' && *reply != ':'; + reply++) + if (*reply == '\0') goto error; + + if (*reply == ' ' || *reply == '\t') + { + for (*reply++ = '\0'; *reply == ' ' || *reply == '\t'; reply++); + if (*reply != ':') + { + error: + ilog(LOG_TYPE_IRCD, "Invalid line in language file (%s.lang, %d)", + locale, linecnt); + res = 0; + continue; + } + } + else + *reply++ = '\0'; + if (*ident == '\0') + goto error; + + /* skip to the beginning of reply */ + while (*reply == ' ' || *reply == '\t') reply++; + if (*reply == '\0') + goto error; + + for (i = 0; i <= ERR_LAST_ERR_MSG; i++) + { + if (replies[i].name != NULL) + { + if (irccmp(replies[i].name, ident) == 0) + { + if (!change_reply(locale, linecnt, i, reply)) res = 0; + i = -1; + break; + } + } + } + if (i != -1) + { + ilog(LOG_TYPE_IRCD, + "Unknown numeric %s (%s.lang, %d)", ident, locale, linecnt); + res = 0; + } + } + fclose(f); + + strlcpy(used_locale, locale, sizeof(used_locale)); + if (!res) + sendto_realops_flags(UMODE_ALL, L_ADMIN, SEND_NOTICE, + "Language file [%s] contains " + "errors, check server log file for more details", + used_locale); +} + +/* Returns the name of current locale. */ +const char * +get_locale(void) +{ + return used_locale; +} diff --git a/src/parse.c b/src/parse.c index 31b9268..019d861 100644 --- a/src/parse.c +++ b/src/parse.c @@ -223,7 +223,7 @@ parse(struct Client *client_p, char *pbuffer, char *bufend) if (*pbuffer != '\0') { if (IsClient(from)) - sendto_one(from, ERR_UNKNOWNCOMMAND, + sendto_one(from, form_str(ERR_UNKNOWNCOMMAND), me.name, from->name, ch); } @@ -315,7 +315,7 @@ handle_command(struct Message *mptr, struct Client *client_p, { if (!IsServer(client_p)) { - sendto_one(client_p, ERR_NEEDMOREPARAMS, me.name, + sendto_one(client_p, form_str(ERR_NEEDMOREPARAMS), me.name, EmptyString(hpara[0]) ? "*" : hpara[0], mptr->cmd); } else @@ -512,7 +512,7 @@ recurse_report_messages(struct Client *source_p, const struct MessageTree *mtree unsigned int i; if (mtree->msg != NULL) - sendto_one(source_p, RPL_STATSCOMMANDS, + sendto_one(source_p, form_str(RPL_STATSCOMMANDS), me.name, source_p->name, mtree->msg->cmd, mtree->msg->count, mtree->msg->bytes, mtree->msg->rcount); @@ -723,7 +723,7 @@ void m_not_oper(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { - sendto_one(source_p, ERR_NOPRIVILEGES, + sendto_one(source_p, form_str(ERR_NOPRIVILEGES), me.name, source_p->name); } @@ -731,7 +731,7 @@ void m_unregistered(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { - sendto_one(source_p, ERR_NOTREGISTERED, me.name, + sendto_one(source_p, form_str(ERR_NOTREGISTERED), me.name, source_p->name[0] ? source_p->name : "*"); } @@ -739,7 +739,7 @@ void m_registered(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { - sendto_one(source_p, ERR_ALREADYREGISTRED, + sendto_one(source_p, form_str(ERR_ALREADYREGISTRED), me.name, source_p->name); } @@ -133,7 +133,7 @@ report_resv(struct Client *source_p) DLINK_FOREACH(ptr, resv_channel_list.head) { conf = ptr->data; - sendto_one(source_p, RPL_STATSQLINE, + sendto_one(source_p, form_str(RPL_STATSQLINE), me.name, source_p->name, conf->until ? 'q' : 'Q', conf->count, conf->name, conf->reason); @@ -142,7 +142,7 @@ report_resv(struct Client *source_p) DLINK_FOREACH(ptr, nresv_items.head) { conf = ptr->data; - sendto_one(source_p, RPL_STATSQLINE, + sendto_one(source_p, form_str(RPL_STATSQLINE), me.name, source_p->name, conf->until ? 'q' : 'Q', conf->count, conf->name, conf->reason); diff --git a/src/s_serv.c b/src/s_serv.c index f7785a5..7d57988 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -201,7 +201,7 @@ hunt_server(struct Client *client_p, struct Client *source_p, const char *comman { if (!(target_p = hash_find_server(parv[server]))) { - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), me.name, source_p->name, parv[server]); return(HUNTED_NOSUCH); } @@ -229,7 +229,7 @@ hunt_server(struct Client *client_p, struct Client *source_p, const char *comman { if(!IsRegistered(target_p)) { - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), me.name, source_p->name, parv[server]); return HUNTED_NOSUCH; } @@ -252,7 +252,7 @@ hunt_server(struct Client *client_p, struct Client *source_p, const char *comman return(HUNTED_PASS); } - sendto_one(source_p, ERR_NOSUCHSERVER, + sendto_one(source_p, form_str(ERR_NOSUCHSERVER), me.name, source_p->name, parv[server]); return(HUNTED_NOSUCH); } diff --git a/src/s_user.c b/src/s_user.c index f237755..3ec002c 100644 --- a/src/s_user.c +++ b/src/s_user.c @@ -189,48 +189,48 @@ show_lusers(struct Client *source_p) } if (!ConfigServerHide.hide_servers || HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, RPL_LUSERCLIENT, + sendto_one(source_p, form_str(RPL_LUSERCLIENT), from, to, (Count.total-Count.invisi), Count.invisi, dlink_list_length(&global_serv_list)); else - sendto_one(source_p, RPL_LUSERCLIENT, from, to, + sendto_one(source_p, form_str(RPL_LUSERCLIENT), from, to, (Count.total-Count.invisi), Count.invisi, 1); if (Count.oper > 0) - sendto_one(source_p, RPL_LUSEROP, + sendto_one(source_p, form_str(RPL_LUSEROP), from, to, Count.oper); if (dlink_list_length(&unknown_list) > 0) - sendto_one(source_p, RPL_LUSERUNKNOWN, + sendto_one(source_p, form_str(RPL_LUSERUNKNOWN), from, to, dlink_list_length(&unknown_list)); if (dlink_list_length(&global_channel_list) > 0) - sendto_one(source_p, RPL_LUSERCHANNELS, + sendto_one(source_p, form_str(RPL_LUSERCHANNELS), from, to, dlink_list_length(&global_channel_list)); if (!ConfigServerHide.hide_servers || HasUMode(source_p, UMODE_OPER)) { - sendto_one(source_p, RPL_LUSERME, + sendto_one(source_p, form_str(RPL_LUSERME), from, to, Count.local, Count.myserver); - sendto_one(source_p, RPL_LOCALUSERS, + sendto_one(source_p, form_str(RPL_LOCALUSERS), from, to, Count.local, Count.max_loc, Count.local, Count.max_loc); } else { - sendto_one(source_p, RPL_LUSERME, + sendto_one(source_p, form_str(RPL_LUSERME), from, to, Count.total, 0); - sendto_one(source_p, RPL_LOCALUSERS, + sendto_one(source_p, form_str(RPL_LOCALUSERS), from, to, Count.total, Count.max_tot, Count.total, Count.max_tot); } - sendto_one(source_p, RPL_GLOBALUSERS, + sendto_one(source_p, form_str(RPL_GLOBALUSERS), from, to, Count.total, Count.max_tot, Count.total, Count.max_tot); if (!ConfigServerHide.hide_servers || HasUMode(source_p, UMODE_OPER)) - sendto_one(source_p, RPL_STATSCONN, from, to, + sendto_one(source_p, form_str(RPL_STATSCONN), from, to, Count.max_loc_con, Count.max_loc_cli, Count.totalrestartcount); if (Count.local > Count.max_loc_cli) @@ -358,7 +358,7 @@ register_local_user(struct Client *source_p) if (!match_conf_password(pass, conf)) { ++ServerStats.is_ref; - sendto_one(source_p, ERR_PASSWDMISMATCH, + sendto_one(source_p, form_str(ERR_PASSWDMISMATCH), me.name, source_p->name); exit_client(source_p, &me, "Bad Password"); return; @@ -841,14 +841,14 @@ set_user_mode(struct Client *client_p, struct Client *source_p, if ((target_p = find_person(client_p, parv[1])) == NULL) { if (MyConnect(source_p)) - sendto_one(source_p, ERR_NOSUCHCHANNEL, + sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), me.name, source_p->name, parv[1]); return; } if (source_p != target_p) { - sendto_one(source_p, ERR_USERSDONTMATCH, + sendto_one(source_p, form_str(ERR_USERSDONTMATCH), me.name, source_p->name); return; } @@ -863,7 +863,7 @@ set_user_mode(struct Client *client_p, struct Client *source_p, *m++ = (char)i; *m = '\0'; - sendto_one(source_p, RPL_UMODEIS, + sendto_one(source_p, form_str(RPL_UMODEIS), me.name, source_p->name, buf); return; } @@ -954,7 +954,7 @@ set_user_mode(struct Client *client_p, struct Client *source_p, } if (badflag) - sendto_one(source_p, ERR_UMODEUNKNOWNFLAG, + sendto_one(source_p, form_str(ERR_UMODEUNKNOWNFLAG), me.name, source_p->name); if (HasUMode(source_p, UMODE_NCHANGE) && !HasOFlag(source_p, OPER_FLAG_N)) @@ -1122,18 +1122,18 @@ user_welcome(struct Client *source_p) ssl_get_cipher(source_p->localClient->fd.ssl)); #endif - sendto_one(source_p, RPL_WELCOME, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_WELCOME), me.name, source_p->name, ServerInfo.network_name, source_p->name); - sendto_one(source_p, RPL_YOURHOST, me.name, source_p->name, + sendto_one(source_p, form_str(RPL_YOURHOST), me.name, source_p->name, get_listener_name(source_p->localClient->listener), ircd_version); - sendto_one(source_p, RPL_CREATED, + sendto_one(source_p, form_str(RPL_CREATED), me.name, source_p->name, built_date); - sendto_one(source_p, RPL_MYINFO, + sendto_one(source_p, form_str(RPL_MYINFO), me.name, source_p->name, me.name, ircd_version, umode_buffer); show_isupport(source_p); if (source_p->id[0] != '\0') - sendto_one(source_p, RPL_YOURID, me.name, + sendto_one(source_p, form_str(RPL_YOURID), me.name, source_p->name, source_p->id); show_lusers(source_p); @@ -1145,12 +1145,12 @@ user_welcome(struct Client *source_p) sendto_one(source_p, ":%s NOTICE %s :*** Notice -- Please read the motd if you haven't " "read it", me.name, source_p->name); - sendto_one(source_p, RPL_MOTDSTART, + sendto_one(source_p, form_str(RPL_MOTDSTART), me.name, source_p->name, me.name); - sendto_one(source_p, RPL_MOTD, + sendto_one(source_p, form_str(RPL_MOTD), me.name, source_p->name, "*** This is the short motd ***"); - sendto_one(source_p, RPL_ENDOFMOTD, + sendto_one(source_p, form_str(RPL_ENDOFMOTD), me.name, source_p->name); } else @@ -1235,7 +1235,7 @@ oper_up(struct Client *source_p) sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, "%s is now an operator", get_oper_name(source_p)); send_umode_out(source_p, source_p, old); - sendto_one(source_p, RPL_YOUREOPER, me.name, source_p->name); + sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name); } static char new_uid[TOTALSIDUID + 1]; /* allow for \0 */ @@ -1443,7 +1443,7 @@ rebuild_isupport_message_line(void) int n = 0; int tokens = 0; size_t len = 0; - size_t reserve = strlen(me.name) + HOSTLEN + strlen(RPL_ISUPPORT); + size_t reserve = strlen(me.name) + HOSTLEN + strlen(form_str(RPL_ISUPPORT)); destroy_MessageLine(isupportFile); @@ -172,7 +172,7 @@ send_message_remote(struct Client *to, struct Client *from, AddFlag(to, FLAGS_KILLED); if (IsClient(from)) - sendto_one(from, ERR_GHOSTEDCLIENT, + sendto_one(from, form_str(ERR_GHOSTEDCLIENT), me.name, from->name, to->name, to->username, to->host, to->from); diff --git a/src/watch.c b/src/watch.c index ecc9268..2384849 100644 --- a/src/watch.c +++ b/src/watch.c @@ -82,7 +82,7 @@ watch_count_memory(unsigned int *const count, uint64_t *const memory) * \param reply numeric to send. Either RPL_LOGON or RPL_LOGOFF */ void -watch_check_hash(struct Client *client_p, const char *reply) +watch_check_hash(struct Client *client_p, int reply) { struct Watch *anptr = NULL; dlink_node *ptr = NULL; @@ -97,8 +97,8 @@ watch_check_hash(struct Client *client_p, const char *reply) DLINK_FOREACH(ptr, anptr->watched_by.head) { struct Client *target_p = ptr->data; -/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ - sendto_one(target_p, reply, + + sendto_one(target_p, form_str(reply), me.name, target_p->name, client_p->name, client_p->username, client_p->host, anptr->lasttime, client_p->info); |