diff --git a/.gitignore b/.gitignore index 52806ce03..37ee0f2d9 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ config.cache eggdrop EGGMOD.stamp mod.xlibs +__pycache__ diff --git a/AUTHORS b/AUTHORS index dc4275d08..02a5fa5f4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -104,4 +104,4 @@ See also: THANKS, doc/Versions, doc/Changes ------------------------------------------------------------------------------ Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2023 Eggheads Development Team +Copyright (C) 1999 - 2024 Eggheads Development Team diff --git a/CONTENTS b/CONTENTS index 6b5dbc606..5b622bba6 100644 --- a/CONTENTS +++ b/CONTENTS @@ -82,4 +82,4 @@ Last revised: September 21, 2018 Contains information on upgrading from a 1.6 bot to a 1.8 bot. _____________________________________________________________________ - Copyright (C) 2003 - 2023 Eggheads Development Team + Copyright (C) 2003 - 2024 Eggheads Development Team diff --git a/FEATURES b/FEATURES index 4de630f7e..ac5095619 100644 --- a/FEATURES +++ b/FEATURES @@ -44,4 +44,4 @@ Eggdrop Features Copyright (C) 1997 Robey Pointer -Copyright (C) 2000 - 2023 Eggheads Development Team +Copyright (C) 2000 - 2024 Eggheads Development Team diff --git a/Makefile.in b/Makefile.in index 733e3e613..93de77211 100644 --- a/Makefile.in +++ b/Makefile.in @@ -490,6 +490,7 @@ install-doc: install-start cd doc/ && $(MAKE_INSTALL) install install-scripts: install-start - +@cd scripts/ && $(MAKE_INSTALL) install + +@cd scripts/ && $(MAKE_INSTALL) install; \ + cd ../src/mod && $(MAKE_INSTALL) install-scripts #safety hash diff --git a/NEWS b/NEWS index e6e210449..827acab07 100644 --- a/NEWS +++ b/NEWS @@ -317,4 +317,4 @@ Eggdrop v1.9.0: ________________________________________________________________________ Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2023 Eggheads Development Team +Copyright (C) 1999 - 2024 Eggheads Development Team diff --git a/README b/README index 13c26a332..19e6d9a78 100644 --- a/README +++ b/README @@ -60,8 +60,8 @@ FTP The latest Eggdrop stable source code is always located at https://geteggdrop.com. You can also download the current stable, - previous stable, and development snapshot at - ftp.eggheads.org/pub/eggdrop/source/ + previous stable, and development snapshot + ftp://ftp.eggheads.org/pub/eggdrop/source Git Development Snapshot diff --git a/aclocal.m4 b/aclocal.m4 index 76c93ec25..d0924793f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ dnl aclocal.m4: macros autoconf uses when building configure from configure.ac dnl -dnl Copyright (C) 1999 - 2023 Eggheads Development Team +dnl Copyright (C) 1999 - 2024 Eggheads Development Team dnl dnl This program is free software; you can redistribute it and/or dnl modify it under the terms of the GNU General Public License @@ -20,6 +20,9 @@ dnl dnl Load tcl macros builtin(include,m4/tcl.m4) +dnl Load python macros +builtin(include,m4/python.m4) + dnl Load gnu autoconf archive macros builtin(include,m4/ax_create_stdint_h.m4) builtin(include,m4/ax_lib_socket_nsl.m4) diff --git a/config.h.in b/config.h.in index f418ea986..30cc2b7da 100644 --- a/config.h.in +++ b/config.h.in @@ -2,7 +2,7 @@ /* * Copyright (C) 1997 Robey Pointer - * Copyright (C) 1999 - 2023 Eggheads Development Team + * Copyright (C) 1999 - 2024 Eggheads Development Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff --git a/configure b/configure index 29ca7c103..2f2ee20a6 100755 --- a/configure +++ b/configure @@ -13,7 +13,7 @@ # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # -# Copyright (C) 1999 - 2023 Eggheads Development Team +# Copyright (C) 1999 - 2024 Eggheads Development Team ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## @@ -659,6 +659,8 @@ EGG_CROSS_COMPILING MOD_UPDIR DEST EGGVERSION +egg_with_python_config +egg_enable_python SSL_LIBS SSL_INCLUDES DEBCFLGS @@ -801,6 +803,8 @@ enable_tls with_sslinc with_ssllib enable_tdns +enable_python +with_python_config ' ac_precious_vars='build_alias host_alias @@ -1458,6 +1462,9 @@ Optional Features and Packages: --with-sslinc=PATH Path to OpenSSL headers --with-ssllib=PATH Path to OpenSSL libraries --disable-tdns disable threaded DNS core + --enable-python enable Python support (autodetect) + --disable-python disable Python support + --with-python-config=PATH Path to python-config Some influential environment variables: CC C compiler command @@ -1543,7 +1550,7 @@ Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. -Copyright (C) 1999 - 2023 Eggheads Development Team +Copyright (C) 1999 - 2024 Eggheads Development Team _ACEOF exit fi @@ -10603,6 +10610,47 @@ printf "%s\n" "#define EGG_TDNS 1" >>confdefs.h fi +# Check for Python + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to compile the Python module" >&5 +$as_echo_n "checking whether to compile the Python module... " >&6; } + # Check whether --enable-python was given. +if test "${enable_python+set}" = set; then : + enableval=$enable_python; egg_enable_python="$enableval" +fi + + # Check whether --enable-python was given. +if test "${enable_python+set}" = set; then : + enableval=$enable_python; egg_enable_python="$enableval" +else + egg_enable_python="autodetect" +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $egg_enable_python" >&5 +$as_echo "$egg_enable_python" >&6; } + + + + +# Check whether --with-python-config was given. +if test "${with_python_config+set}" = set; then : + withval=$with_python_config; + if test "x$enable_python" != "xno"; then + if test -d "$withval" || test -x "$withval"; then + egg_with_python_config="$withval" + else + egg_with_python_config="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Invalid path to python-config. $withval is not a directory and not an executable." >&5 +$as_echo "$as_me: WARNING: Invalid path to python-config. $withval is not a directory and not an executable." >&2;} + fi + fi + +fi + + + + # Substitute Makefile variables. diff --git a/configure.ac b/configure.ac index 61c67d4e4..78a7e70d5 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl configure.ac: this file is processed by autoconf to produce ./configure. AC_PREREQ([2.71]) AC_INIT([Eggdrop],[1.9.5],[bugs@eggheads.org],[eggdrop],[https://www.eggheads.org]) -AC_COPYRIGHT([Copyright (C) 1999 - 2023 Eggheads Development Team]) +AC_COPYRIGHT([Copyright (C) 1999 - 2024 Eggheads Development Team]) AC_LANG([C]) AC_REVISION([m4_esyscmd([misc/getcommit])]) AC_CONFIG_SRCDIR(src/eggdrop.h) @@ -14,7 +14,7 @@ AC_PRESERVE_HELP_ORDER dnl config.h stuff AH_TOP([/* * Copyright (C) 1997 Robey Pointer - * Copyright (C) 1999 - 2023 Eggheads Development Team + * Copyright (C) 1999 - 2024 Eggheads Development Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -164,6 +164,10 @@ EGG_TLS_DETECT # Threaded DNS core EGG_TDNS_ENABLE +# Check for Python +EGG_PYTHON_ENABLE +EGG_PYTHON_WITHCONFIG + # Substitute Makefile variables. EGG_SUBST_EGGVERSION diff --git a/doc/ABOUT b/doc/ABOUT index dd7301edd..615223797 100644 --- a/doc/ABOUT +++ b/doc/ABOUT @@ -55,4 +55,4 @@ About Eggdrop - Tcl -- Eggdrop cannot compile without Tcl installed on your shell. - Copyright (C) 1999 - 2023 Eggheads Development Team + Copyright (C) 1999 - 2024 Eggheads Development Team diff --git a/doc/AUTOSCRIPTS b/doc/AUTOSCRIPTS new file mode 100644 index 000000000..fb427f1d8 --- /dev/null +++ b/doc/AUTOSCRIPTS @@ -0,0 +1,249 @@ +Eggdrop Autoscripts + +Since it's inception, users have needed to load a Tcl script into +Eggdrop by downloading a Tcl file, editing the file to customize +settings, and then sourceing that file in the config file. In v1.10, the +Autoscripts system was added to make this process a little more +user-friendly. The autoscripts system helps by: + +- Centralizing commonly-used scripts in a single location +- Allowing scripts to be downloaded via the partyline +- Allowing script settings to be configured via the partyline +- Allowing user-written scripts to be managed by the autoscripts + system +- Providing a documented API to write autoscripts-compatible scripts + +AUTOSCRIPTS USAGE + +To view available autoscript commands, type .autoscript on the +partyline. This will open up a special Eggdrop console that doesn't +require you to prefix commands with a '.' . The following sub-commands +are available for use with script: + +remote + +This command will list scripts hosted on the Eggdrop website that are +available to be downloaded and installed on your Eggdrop. + +fetch - - + + + + + @@ -45,6 +44,7 @@

Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -99,7 +99,7 @@

    Search

    About Eggdrop Last revised: July 27, 2010

    -

    About Eggdrop

    +

    About Eggdrop

    Eggdrop was created around December 1993 to help stop the incessant wars on #gayteen. It spawned from another bot that was in the process of being @@ -144,7 +144,7 @@

    About Eggdrop

    diff --git a/doc/html/about/legal.html b/doc/html/about/legal.html index 118cf44cf..5e510d5b1 100644 --- a/doc/html/about/legal.html +++ b/doc/html/about/legal.html @@ -1,17 +1,16 @@ - - + - + Boring legal stuff — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -42,6 +41,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -94,7 +94,7 @@

    Search

    diff --git a/doc/html/index.html b/doc/html/index.html index 8237db1da..fedeb01b5 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,17 +1,16 @@ - - + - + Eggdrop, an open source IRC bot — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -42,6 +41,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -94,10 +94,10 @@

    Search

    -

    Eggdrop, an open source IRC bot

    +

    Eggdrop, an open source IRC bot

    Eggdrop is a free, open source software program built to assist in managing an IRC channel. It is the world’s oldest actively-maintained IRC bot and was designed to be easily used and expanded on via it’s ability to run Tcl scripts. Eggdrop can join IRC channels and perorm automated tasks such as protecting the channel from abuse, assisting users obtain their op/voice status, provide information and greetings, host games, etc.

    -

    Some things you can do with Eggdrop

    +

    Some things you can do with Eggdrop

    Eggdrop has a large number of features, such as:

    -

    How to install Eggdrop

    +

    How to install Eggdrop

    -

    Installation Pre-requisites

    +

    Installation Pre-requisites

    Eggdrop requires Tcl (and its development header files) to be present on the system it is compiled on. It is also strongly encouraged to install openssl (and its development header files) to enable TLS-protected network communication.

    -

    Installation

    +

    Installation

    A guide to quickly installing Eggdrop can be found here.

    -

    Where to find more help

    +

    Where to find more help

    The Eggheads development team can be found lurking on #eggdrop on the Libera network (irc.libera.chat).

    Installing Eggdrop

    @@ -175,6 +175,13 @@

    Where to find more help
  • The Party Line
  • +
  • Eggdrop Autoscripts +
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -403,4 +411,4 @@

    Where to find more help - + \ No newline at end of file diff --git a/doc/html/install/install.html b/doc/html/install/install.html index ced86fd5e..2455a4844 100644 --- a/doc/html/install/install.html +++ b/doc/html/install/install.html @@ -1,17 +1,16 @@ - - + - + Installing Eggdrop — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -50,6 +49,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -102,14 +102,14 @@

    Search

    -

    Installing Eggdrop

    +

    Installing Eggdrop

    This is the quick install guide; if you have had little or no experience with UNIX or Eggdrop, READ THE README FILE NOW! This file is best for experienced users.

    For more information on compiling Eggdrop, see the Compile Guide in doc/COMPILE-GUIDE (and of course, the README FILE).

    -

    Quick Startup

    +

    Quick Startup

    Eggdrop uses the GNU autoconfigure scripts to make things easier.

    1. @@ -220,7 +220,7 @@

      Quick Startup -

      Cygwin Requirements (Windows)

      +

      Cygwin Requirements (Windows)

      Eggdrop requires the following packages to be added from the Cygwin installation tool prior to compiling:

      Interpreters: tcl, tcl-devel
      @@ -231,7 +231,7 @@ 

      Cygwin Requirements (Windows) -

      Modules

      +

      Modules

      Modules are small pieces of code that can either be compiled into the binary or can be compiled separately into a file. This allows for a much smaller binary.

      @@ -249,7 +249,7 @@

      Modules

      diff --git a/doc/html/install/readme.html b/doc/html/install/readme.html index b573d5f99..c1d48b064 100644 --- a/doc/html/install/readme.html +++ b/doc/html/install/readme.html @@ -1,27 +1,22 @@ - - + - + README — Eggdrop 1.9.5 documentation - - - - - - + + + + +
    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/compress.html b/doc/html/modules/compress.html index f73333233..f720e6883 100644 --- a/doc/html/modules/compress.html +++ b/doc/html/modules/compress.html @@ -137,7 +137,7 @@

    Search

    as those used by GNU gzip. -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/console.html b/doc/html/modules/console.html index fea12a5fd..e4128e02e 100644 --- a/doc/html/modules/console.html +++ b/doc/html/modules/console.html @@ -139,7 +139,7 @@

    Search

    when they join a botnet channel. -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/ctcp.html b/doc/html/modules/ctcp.html index 1f1926884..d41fe637d 100644 --- a/doc/html/modules/ctcp.html +++ b/doc/html/modules/ctcp.html @@ -156,7 +156,7 @@

    Search

    There are also several variables to help make your bot less noticeable. They are: ctcp-version, ctcp-finger, and ctcp-userinfo. You can use set to set them to values you’d like.

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/dns.html b/doc/html/modules/dns.html index 6450379bc..a46cf62b9 100644 --- a/doc/html/modules/dns.html +++ b/doc/html/modules/dns.html @@ -152,7 +152,7 @@

    Search

    the query. The value must be in seconds. -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/filesys.html b/doc/html/modules/filesys.html index 9574e8bcc..715609cf0 100644 --- a/doc/html/modules/filesys.html +++ b/doc/html/modules/filesys.html @@ -332,7 +332,7 @@

    .filesys moduleSearch

    for potential ways to implement this setting. -

    Copyright (C) 2019 - 2023 Eggheads Development Team

    +

    Copyright (C) 2019 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/included.html b/doc/html/modules/included.html index 4af3d9154..2c4be443c 100644 --- a/doc/html/modules/included.html +++ b/doc/html/modules/included.html @@ -1,17 +1,16 @@ - - + - + Modules included with Eggdrop — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -118,12 +119,20 @@

    Search

    -

    Modules included with Eggdrop

    +

    Modules included with Eggdrop

    diff --git a/doc/html/modules/index.html b/doc/html/modules/index.html index 2fa12be11..12b535244 100644 --- a/doc/html/modules/index.html +++ b/doc/html/modules/index.html @@ -1,17 +1,16 @@ - - + - + Eggdrop Module Information — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -104,20 +104,20 @@

    Search

    Eggdrop Module Information Last revised: Jul 25, 2016

    -

    Eggdrop Module Information

    +

    Eggdrop Module Information

    -

    What are modules?

    +

    What are modules?

    Modules are independent portions of code that are loaded separately from the main core code of Eggdrop. This allows users to only implement the features they desire without adding the extra overhead or “bloat” of those they don’t, or even write their own module to add an enhancement not currently implemented by the Eggdrop development team. For example, the transfer module provides the ability to transfer files to and from the Eggdrop, and the ident module provides the ability to run an ident server to answer ident requests.

    -

    How to install a module

    +

    How to install a module

    Please note that these are only basic instructions for compiling and installing a module. Please read any and all directions included with the module you wish to install.

    1. Download and un-tar the Eggdrop source code.

    2. Place the new module in its own directory (in the format of (modulename).mod) in src/mod.

    3. -
    4. Run ./configure (from eggdrop1.9.x/).

    5. +
    6. Run ./configure (from eggdrop-1.9.5/).

    7. Type ‘make config’ or ‘make iconfig’.

    8. Type ‘make’.

    9. Copy the compiled module file (modulename.so) into your bot’s @@ -130,12 +130,12 @@

      How to install a moduleTo view your currently loaded modules, type ‘.module’.

    -

    Can I compile Eggdrop without dynamic modules? (Static compile)

    +

    Can I compile Eggdrop without dynamic modules? (Static compile)

    Yes, you can. If the configure script detects that your system CAN’T run modules, it will setup ‘make’ to link the modules in statically for you. You can choose this option yourself by using ‘make static’. You can also try to compile dynamic modules on a static-only system by using ‘make eggdrop’.

    -

    Do I still need to ‘loadmodule’ modules?

    +

    Do I still need to ‘loadmodule’ modules?

    YES, when you compile statically, all the modules are linked into the main executable. HOWEVER, they are not enabled until you use loadmodule to enable them, hence you get nearly the same functionality with static modules as with dynamic modules.

    -

    Copyright (C) 1999 - 2023 Eggheads Development Team

    +

    Copyright (C) 1999 - 2024 Eggheads Development Team

    @@ -166,9 +166,9 @@

    Do I still need to ‘loadmodule’ modules?

    diff --git a/doc/html/modules/internals.html b/doc/html/modules/internals.html index 3cbe25beb..c94ad6489 100644 --- a/doc/html/modules/internals.html +++ b/doc/html/modules/internals.html @@ -1,17 +1,16 @@ - - + - + Eggdrop Bind Internals — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -107,13 +107,13 @@

    Search

    -

    Eggdrop Bind Internals

    +

    Eggdrop Bind Internals

    This document is intended for C developers who want to understand how Eggdrop’s Tcl binds or C binds work.

    For documentation purposes the “dcc” bind type is used as an example.

    It already exists and is suitable to illustrate the details of bind handling in Eggdrop.

    Note: All code snippets are altered for brevity and simplicity, see original source code for the full and current versions.

    -

    Bind Table Creation

    +

    Bind Table Creation

    The bind table is added by calling, either at module initialization or startup:

    /* Global symbol, available to other C files with
      * extern p_tcl_bind_list H_dcc;
    @@ -133,7 +133,7 @@ 

    Bind Table CreationH_dcc can be exported from core and imported into modules as any other variable or function. That should be explained in a separate document.

    -

    Stackable Binds: HT_STACKABLE

    +

    Stackable Binds: HT_STACKABLE

    HT_STACKABLE means that multiple binds can exist for the same mask.

    bind dcc - test proc1; # not stackable
     bind dcc - test proc2; # overwrites the first one, only proc2 will be called
    @@ -142,7 +142,7 @@ 

    Stackable Binds: HT_STACKABLETriggering any Bind section for details.

    -

    Tcl Binding

    +

    Tcl Binding

    After the bind table is created with add_bind_table, Tcl procs can already be registered to this bind by calling:

    bind dcc -|- test myproc
     proc myproc {args} {
    @@ -160,7 +160,7 @@ 

    Tcl Binding -

    Triggering the Bind

    +

    Triggering the Bind

    To trigger the bind and call it with the desired arguments, a function is created.

    int check_tcl_dcc(const char *cmd, int idx, const char *args) {
       struct flag_record fr = { FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0 };
    @@ -189,7 +189,7 @@ 

    Triggering the Bindcheck_tcl_dcc can be found in the DCC parsing in src/dcc.c.

    -

    Triggering any Bind

    +

    Triggering any Bind

    check_tcl_bind is used by all binds and does the following:

    /* Generic function to call one/all matching binds
      * @param[in] tcl_bind_list_t *tl      Bind table (e.g. H_dcc)
    @@ -231,7 +231,7 @@ 

    Triggering any BindHT_STACKABLE AND check_tcl_bind must be called with BIND_STACKABLE.

    -

    C Binding

    +

    C Binding

    To create a C function that is called by the bind, Eggdrop provides the add_builtins function.

    /* Add a list of C function callbacks to a bind
      * @param[in] tcl_bind_list_t *  the bind type (e.g. H_dcc)
    @@ -266,7 +266,7 @@ 

    C Binding -

    C Handler

    +

    C Handler

    The example handler for DCC looks as follows:

    /* Typical Tcl_Command arguments, just like e.g. tcl_putdcc is a Tcl/C command for [putdcc] */
     static int builtin_dcc (ClientData cd, Tcl_Interp *irp, int argc, char *argv[]) {
    @@ -319,7 +319,7 @@ 

    C Handler -

    Summary

    +

    Summary

    In summary, this is how the dcc bind is called:

    diff --git a/doc/html/modules/irc.html b/doc/html/modules/irc.html index 868377b61..7960f9dd2 100644 --- a/doc/html/modules/irc.html +++ b/doc/html/modules/irc.html @@ -255,7 +255,7 @@

    Search

    set this to 0.
    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/mod/assoc.html b/doc/html/modules/mod/assoc.html index a52851467..0bfefacd8 100644 --- a/doc/html/modules/mod/assoc.html +++ b/doc/html/modules/mod/assoc.html @@ -1,17 +1,16 @@ - - + - + Assoc Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: January 1, 2002

    -

    Assoc Module

    +

    Assoc Module

    This module provides assoc support, i.e. naming channels on the botnet.

    This module requires: none

    Put this line into your Eggdrop configuration file to load the assoc @@ -127,7 +128,7 @@

    Search

    loadmodule assoc
     
    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -156,9 +157,9 @@

    Search

    diff --git a/doc/html/modules/mod/blowfish.html b/doc/html/modules/mod/blowfish.html index cad1a8540..40372bb17 100644 --- a/doc/html/modules/mod/blowfish.html +++ b/doc/html/modules/mod/blowfish.html @@ -1,17 +1,16 @@ - - + - + Blowfish Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: January 28, 2003

    -

    Blowfish Module

    +

    Blowfish Module

    Eggdrop can encrypt your userfile, so users can have secure passwords. Please note that when you change your encryption method later (i.e. using @@ -131,7 +132,7 @@

    Search

    loadmodule blowfish
     
    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -161,9 +162,9 @@

    Search

    diff --git a/doc/html/modules/mod/channels.html b/doc/html/modules/mod/channels.html index 56e2e5f0a..fdf0cfdcb 100644 --- a/doc/html/modules/mod/channels.html +++ b/doc/html/modules/mod/channels.html @@ -1,27 +1,22 @@ - - + - + Channels Module — Eggdrop 1.9.5 documentation - - - - - - + + + + + -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -169,9 +170,9 @@

    Search

    diff --git a/doc/html/modules/mod/console.html b/doc/html/modules/mod/console.html index e7c98a632..6de9fce47 100644 --- a/doc/html/modules/mod/console.html +++ b/doc/html/modules/mod/console.html @@ -1,17 +1,16 @@ - - + - + Console Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: January 1, 2002

    -

    Console Module

    +

    Console Module

    This module provides storage of console settings when you exit the bot or type .store on the partyline.

    This module requires: none

    @@ -142,7 +143,7 @@

    Search

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -171,9 +172,9 @@

    Search

    diff --git a/doc/html/modules/mod/ctcp.html b/doc/html/modules/mod/ctcp.html index 577039b4d..915b4acbe 100644 --- a/doc/html/modules/mod/ctcp.html +++ b/doc/html/modules/mod/ctcp.html @@ -1,17 +1,16 @@ - - + - + CTCP Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: February 12, 2002

    -

    CTCP Module

    +

    CTCP Module

    This module provides the normal ctcp replies that you would expect. Without it loaded, CTCP CHAT will not work.

    This module requires: server

    @@ -154,7 +155,7 @@

    Search

    There are also several variables to help make your bot less noticeable. They are: ctcp-version, ctcp-finger, and ctcp-userinfo. You can use set to set them to values you’d like.

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -183,9 +184,9 @@

    Search

    diff --git a/doc/html/modules/mod/dns.html b/doc/html/modules/mod/dns.html index 158605606..cfffaf7a3 100644 --- a/doc/html/modules/mod/dns.html +++ b/doc/html/modules/mod/dns.html @@ -1,17 +1,16 @@ - - + - + DNS Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: September 26, 2010

    -

    DNS Module

    +

    DNS Module

    This module provides asynchronous dns support. This will avoid long periods where the bot just hangs there, waiting for a hostname to resolve, which will often let it timeout on all other connections.

    @@ -155,7 +156,7 @@

    Search

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -184,9 +185,9 @@

    Search

    diff --git a/doc/html/modules/mod/filesys.html b/doc/html/modules/mod/filesys.html index b1e78eb08..aeabce403 100644 --- a/doc/html/modules/mod/filesys.html +++ b/doc/html/modules/mod/filesys.html @@ -1,17 +1,16 @@ - - + - + Filesys Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,12 +120,12 @@

    Search

    Last revised: Dec 30, 2017

    -

    Filesys Module

    +

    Filesys Module

    This module provides an area within the bot where users can store and manage files. With this module, the bot is usable as a file server.

    This module requires: transfer

    -

    Config file setup

    +

    Config file setup

    Put this line into your Eggdrop configuration file to load the filesys module:

    loadmodule filesys
    @@ -159,9 +160,9 @@ 

    Config file setup -

    Partyline usage

    +

    Partyline usage

    -

    .files

    +

    .files

    Moves you into the file transfer sub-system, if it has been enabled on this bot. From there you can browse through the files online and use dcc file @@ -169,27 +170,27 @@

    .files

    -

    .cancel <file> [file] …

    +

    .cancel <file> [file] …

    Tells the bot to stop sending a file that is pending (either queued, waiting, or in the process of being transferred).

    -

    .cd <directory>

    +

    .cd <directory>

    Changes your current directory if possible. this works exactly like the unix command.

    -

    .cp <source> <dst>

    +

    .cp <source> <dst>

    Copies a file or group of files from one place to another.

    -

    .desc <file> <description>

    +

    .desc <file> <description>

    Changes the description for a file. if you are a master or file janitor, you can change the description for any file. @@ -201,20 +202,20 @@

    .desc <file> <description> -

    .filestats <user> [clear]

    +

    .filestats <user> [clear]

    Reports on the users upload & download statistics. Optional argument ‘clear’ clears a users upload and download statistics.

    -

    .stats

    +

    .stats

    Clears a users upload & download statistics.

    -

    .get <filename> [nickname]

    +

    .get <filename> [nickname]

    Sends you the file(s) requested, over IRC. you should get a DCC SEND notice on IRC, and have your client accept it. if @@ -231,14 +232,14 @@

    .get <filename> [nickname] -

    .hide <file> [files] …

    +

    .hide <file> [files] …

    Marks a file as hidden, so that normal users can’t see it. Only a master or file janitor using %b’lsa’%b can see hidden files.

    -

    .ln <bot:filepath> <localfile>

    +

    .ln <bot:filepath> <localfile>

    Creates a link to a file on another bot. The filepath has to be complete, like ‘/gifs/uglyman.gif’. If the bot is not @@ -249,7 +250,7 @@

    .ln <bot:filepath> <localfile> -

    .ls [filemask]

    +

    .ls [filemask]

    Displays the files in the current directory. Subdirectories are shown with “<DIR>” next to them, and other files will display @@ -260,7 +261,7 @@

    .ls [filemask] -

    .mkdir <dir> [flags [channel]]

    +

    .mkdir <dir> [flags [channel]]

    Creates a subdirectory from this one, with the given name. If flags are specified, then those flags are required to enter or @@ -270,14 +271,14 @@

    .mkdir <dir> [flags [channel]] -

    .mv <source> <dest>

    +

    .mv <source> <dest>

    Moves a file or group of files from one place to another (it can also be used to rename files).

    -

    .pending

    +

    .pending

    Gives you a listing of every file you’ve requested which is still waiting, queued, or in the process of transferring. @@ -287,31 +288,31 @@

    .pending -

    .pwd

    +

    .pwd

    Tells you what your current directory is.

    -

    .quit

    +

    .quit

    Exits the file system.

    -

    rm <file> [files] …

    +

    rm <file> [files] …

    Erase a file for good.

    -

    .rmdir <dir>

    +

    .rmdir <dir>

    Removes an existing directory, if there are no files in it.

    -

    .share <file> [files] …

    +

    .share <file> [files] …

    Marks a file as shared. This means that other bots can get the file remotely for users on their file systems. By default, @@ -319,7 +320,7 @@

    .share <file> [files] … -

    .optimize

    +

    .optimize

    Cleans up the current directory’s database. If you have a large directory with many files you may want to use this command if @@ -328,19 +329,19 @@

    .optimize -

    .unhide

    +

    .unhide

    Makes a file be not hidden any more.

    -

    .unshare <file> [file] …

    +

    .unshare <file> [file] …

    Removes the shared tag from a file.

    -

    .filesys module

    +

    .filesys module

    This module provides an area within the bot where users can store and manage files. With this module, the bot is usable as a file server.

    @@ -350,7 +351,7 @@

    .filesys module

    diff --git a/doc/html/modules/mod/ident.html b/doc/html/modules/mod/ident.html index 854645660..249d7ecb5 100644 --- a/doc/html/modules/mod/ident.html +++ b/doc/html/modules/mod/ident.html @@ -1,17 +1,16 @@ - - + - + Ident Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: June 27, 2019

    -

    Ident Module

    +

    Ident Module

    This module adds Eggdrop support for the externally-provided oident service, or alternatively the ability for Eggdrop to act as its own ident daemon.

    @@ -193,7 +194,7 @@

    Search

    -

    Copyright (C) 2019 - 2023 Eggheads Development Team

    +

    Copyright (C) 2019 - 2024 Eggheads Development Team

    @@ -222,9 +223,9 @@

    Search

    diff --git a/doc/html/modules/mod/irc.html b/doc/html/modules/mod/irc.html index 7900995d7..3fa36c056 100644 --- a/doc/html/modules/mod/irc.html +++ b/doc/html/modules/mod/irc.html @@ -1,17 +1,16 @@ - - + - + IRC Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: August 21, 2004

    -

    IRC Module

    +

    IRC Module

    This module controls the bots interaction on IRC. It allows the bot to join channels, etc. You have to load this if you want your bot to come on irc.

    @@ -263,7 +264,7 @@

    Search

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -292,9 +293,9 @@

    Search

    diff --git a/doc/html/modules/mod/notes.html b/doc/html/modules/mod/notes.html index 55227968f..bbdea5dbe 100644 --- a/doc/html/modules/mod/notes.html +++ b/doc/html/modules/mod/notes.html @@ -1,17 +1,16 @@ - - + - + Notes Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: January 1, 2002

    -

    Notes Module

    +

    Notes Module

    This module provides support for storing of notes for users from each other. Note sending between currently online users is supported in the core, this is only for storing the notes for later retrieval.

    @@ -150,7 +151,7 @@

    Search

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -179,9 +180,9 @@

    Search

    diff --git a/doc/html/modules/mod/pbkdf2.html b/doc/html/modules/mod/pbkdf2.html index 7ca50bc9d..7f6f48ac4 100644 --- a/doc/html/modules/mod/pbkdf2.html +++ b/doc/html/modules/mod/pbkdf2.html @@ -1,19 +1,18 @@ - - + - + PBKDF2 Module — Eggdrop 1.9.5 documentation - - - - - + + + + + - + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: October 28, 2020

    -

    PBKDF2 Module

    +

    PBKDF2 Module

    Eggdrop encrypts its userfile, so users can have secure passwords. Eggdrop will not start without an encryption module.

    @@ -148,7 +149,7 @@

    Search

    This module requires: none

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -168,7 +169,7 @@

    Search

    previous | - next
    @@ -178,9 +179,9 @@

    Search

    diff --git a/doc/html/modules/mod/python.html b/doc/html/modules/mod/python.html new file mode 100644 index 000000000..66dbab2ea --- /dev/null +++ b/doc/html/modules/mod/python.html @@ -0,0 +1,274 @@ + + + + + + + + Python Module — Eggdrop 1.9.5 documentation + + + + + + + + + + + +
    +
    + +
    + +
    +
    +
    + +

    Last revised: November 03, 2023

    +
    +

    Python Module

    +

    This module adds a Python interpreter to Eggdrop, allowing you to run Python scripts.

    +
    +

    Loading Python

    +

    Put this line into your Eggdrop configuration file to load the python module:

    +
    loadmodule python
    +
    +
    +

    To load a python script from your config file, place the .py file in the scripts/ folder and add the following line to your config:

    +
    pysource scripts/myscript.py
    +
    +
    +
    +
    +

    Partyline Commands

    +
    +

    python <expression>

    +

    You can run a python command from the partyline with the .python command, such as:

    +
    .python 1 + 1
    +Python: 2
    +.python from eggdrop.tcl import putmsg; putmsg('#chan', 'Hello world!')
    +Python: None
    +
    +
    +
    +
    +

    .binds python

    +

    The python module extends the core .binds partyline command by adding a python mask. This command will list all binds for python scripts.

    +
    +
    +
    +

    Tcl Commands

    +
    +

    pysource <path/to/file>

    +

    The pysource command is analgous to the Tcl source command, except that it loads a Python script into Eggdrop instead of a Tcl script.

    +
    +
    +
    +

    Eggdrop Python Commands

    +

    The Python module is built to use the existing core Tcl commands integrated into Eggdrop via the eggdrop.tcl module. To call an existing Tcl command from Python, you can either load the entire catalog by running import eggdrop.tcl, or be more specific by from eggdrop.tcl import putserv, putlog, chanlist, etc.

    +

    Arguments to the Tcl functions are automatically converted as follows:

    +
      +
    • None is converted to an empty Tcl object (the empty string, "")

    • +
    • List and Tuple is converted to a Tcl list

    • +
    • Dict is converted to a Tcl dictionary

    • +
    • Everything else is converted to a string using the str() method

    • +
    +

    Return values from Tcl functions must be manually converted:

    +
      +
    • "" the empty string is automatically converted to None

    • +
    • everything else is returned as string

    • +
    • Tcl list as string can be converted to a Python List using parse_tcl_list

    • +
    • Tcl dictionary as string can be converted to a Python Dict using parse_tcl_list

    • +
    +

    Additionally, a few extra python commands have been created for use without these conversions:

    +
    +

    bind <arguments>

    +

    The python version of the bind command is used to create a bind that triggers a python function. The python bind takes the same arguments as the Tcl binds, but here each argument is passed individually. For example, a bind that would look like bind pub * !foo myproc in Tcl is written as bind("pub", "*", "!foo", myproc). For more information on Eggsrop bind argument syntax please see Bind Types. The eggdrop.tcl.bind command should not be used as it will attempt to call a Tcl proc.

    +
    +
    +

    parse_tcl_list <string>

    +

    When a python script calls a Tcl command that returns a list via the eggdrop.tcl module, the return value will be a Tcl-formatted list- also simply known as a string. The parse_tcl_list command will convert the Tcl-formatted list into a Python list, which can then freely be used within the Python script.

    +
    +
    +

    parse_tcl_dict <string>

    +

    When a python script calls a Tcl command that returns a dict via the eggdrop.tcl module, the return value will be a Tcl-formatted dict- also simply known as a string. The parse_tcl_dict command will c +onvert the Tcl-formatted dict into a Python list, which can then freely be used within the Python script.

    +
    +
    +
    +

    Config variables

    +

    There are also some variables you can set in your config file:

    +
    +
    +
    set allow-resync 0

    When two bots get disconnected, this setting allows them to create a +resync buffer which saves all changes done to the userfile during +the disconnect. When they reconnect, they will not have to transfer +the complete user file, but, instead, just send the resync buffer.

    +
    +
    +
    +
    +
    +

    Writing an Eggdrop Python script

    +

    This is how to write a python script for Eggdrop.

    +

    You can view examples of Python scripts in the exampleScripts folder included with this module.

    +
    +
    bestfriend.py

    This example script demonstrates how to use the parse_tcl_list() python command to convert a list returned by a Tcl command into a list that is usable by Python.

    +
    +
    greet.py

    This is a very basic script that demonstrates how a Python script with binds can be run by Eggdrop.

    +
    +
    imdb.py

    This script shows how to use an existing third-party module to extend a Python script, in this case retrieving information from imdb.com.

    +
    +
    listtls.py

    This script demonstrates how to use parse-tcl_list() and parse_tcl_dict() to convert a list of dicts provided by Tcl into something that is usuable by Python.

    +
    +
    urltitle.py

    This script shows how to use an existing third-party module to extend a Python script, in this case using an http parser to collect title information from a provided web page.

    +
    +
    +
    +

    Header section

    +

    An Eggdrop python script requires you to import X Y and Z, in this format.

    +
    +
    +

    Code Section

    +

    Normal python code works here. To run a command from the Eggdrop Tcl library, use this format.

    +

    Use this format all over.

    +
    +
    +
    +

    Writing a module for use with Eggdrop

    +

    This is how you import a module for use with an egg python script.

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/doc/html/modules/mod/seen.html b/doc/html/modules/mod/seen.html index da92f2fa2..762b215de 100644 --- a/doc/html/modules/mod/seen.html +++ b/doc/html/modules/mod/seen.html @@ -1,27 +1,26 @@ - - + - + Seen Module — Eggdrop 1.9.5 documentation - - - - - + + + + + - +
    @@ -367,9 +368,9 @@

    Search

    diff --git a/doc/html/modules/mod/share.html b/doc/html/modules/mod/share.html index 1e672c235..33f66f6ad 100644 --- a/doc/html/modules/mod/share.html +++ b/doc/html/modules/mod/share.html @@ -1,17 +1,16 @@ - - + - + Share Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: November 27, 2003

    -

    Share Module

    +

    Share Module

    This module provides userfile sharing support between two directly linked bots.

    This module requires: transfer, channels

    @@ -159,7 +160,7 @@

    Search

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -188,9 +189,9 @@

    Search

    diff --git a/doc/html/modules/mod/transfer.html b/doc/html/modules/mod/transfer.html index 69f1f688a..eef7fe318 100644 --- a/doc/html/modules/mod/transfer.html +++ b/doc/html/modules/mod/transfer.html @@ -1,17 +1,16 @@ - - + - + Transfer Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -117,9 +118,9 @@

    Search

    -

    Last revised: January 1, 2002

    +

    Last revised: November 29, 2023

    -

    Transfer Module

    +

    Transfer Module

    The transfer module provides DCC SEND/GET support and userfile transfer support for userfile sharing.

    This module requires: none

    @@ -138,12 +139,6 @@

    Search

    but admits that may be too small. 1024 is standard these days. Set this to 0 to use turbo-dcc (recommended).

    -
    set copy-to-tmp 1

    Enable this setting if you want to copy files to a temporary location -before sending or receiving them. This might be useful for file -stability, but if your directories are NFS mounted, it’s a pain. -Setting this to 1 is not advised for big files or if you’re low on -disk space.

    -
    set xfer-timeout 30

    Set here the time (in seconds) to wait before an inactive transfer times out.

    @@ -154,7 +149,7 @@

    Search

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -183,9 +178,9 @@

    Search

    diff --git a/doc/html/modules/mod/twitch.html b/doc/html/modules/mod/twitch.html index c28643a25..ee2929846 100644 --- a/doc/html/modules/mod/twitch.html +++ b/doc/html/modules/mod/twitch.html @@ -1,17 +1,16 @@ - - + - + Twitch Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: April 20, 2020

    -

    Twitch Module

    +

    Twitch Module

    This module attempts to provide connectivity with the Twitch gaming platform. While Twitch provides an IRC gateway to connect with it’s streaming service, it does not claim to (and certainly does not) follow the IRC RFC in any meaningful way. The intent of this module is not to provide the full spectrum of management functions typically associated with Eggdrop; instead it focuses around the following key functions:

    and set net-type “Twitch” in your config file.

    -

    Limitations

    +

    Limitations

    There are a few things you should know about how Twitch provides service through the IRC gateway that affects how well Eggdrop can function: * Twitch does not broadcast JOINs or PARTs for channels over 1,000 users. This renders tracking users on a channel unreliable. * Twitch does not broadcast MODE changes for moderator status. This (mostly) renders tracking the status of users infeasible. (See Tcl below section for workaround) @@ -142,7 +143,7 @@

    Limitations -

    Tcl API

    +

    Tcl API

    That last section was a little bit of a downer, but don’t worry, we added a TON of functionality to the Tcl API. This module adds binds for the following Twitch events:

    @@ -192,9 +193,9 @@

    Partyline commands
    diff --git a/doc/html/modules/mod/uptime.html b/doc/html/modules/mod/uptime.html index 971d5676d..c84f8e9ef 100644 --- a/doc/html/modules/mod/uptime.html +++ b/doc/html/modules/mod/uptime.html @@ -1,17 +1,16 @@ - - + - + Uptime Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: January 1, 2002

    -

    Uptime Module

    +

    Uptime Module

    This module reports uptime statistics to http://uptime.eggheads.org. Go look and see what your uptime is! It takes about 9 hours to show up, so if your bot isn’t listed, try again later.

    @@ -135,7 +136,7 @@

    Search

    loadmodule uptime
     
    -

    Copyright (C) 2001 - 2023 Eggheads Development Team

    +

    Copyright (C) 2001 - 2024 Eggheads Development Team

    @@ -164,9 +165,9 @@

    Search

    diff --git a/doc/html/modules/mod/woobie.html b/doc/html/modules/mod/woobie.html index 53d098b1a..4c175976a 100644 --- a/doc/html/modules/mod/woobie.html +++ b/doc/html/modules/mod/woobie.html @@ -1,17 +1,16 @@ - - + - + Woobie Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -84,6 +84,7 @@

    Table of Contents

  • IRC Module
  • Notes Module
  • PBKDF2 Module
  • +
  • Python Module
  • Seen Module
  • Server Module
  • Share Module
  • @@ -119,7 +120,7 @@

    Search

    Last revised: December 31, 2001

    -

    Woobie Module

    +

    Woobie Module

    This is for demonstrative purposes only. If you are looking for starting point in writing modules, woobie is the right thing.

    This module requires: none

    @@ -128,7 +129,7 @@

    Search

    loadmodule woobie
     
    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -157,9 +158,9 @@

    Search

    diff --git a/doc/html/modules/notes.html b/doc/html/modules/notes.html index d09c2e6ae..b30055d74 100644 --- a/doc/html/modules/notes.html +++ b/doc/html/modules/notes.html @@ -147,7 +147,7 @@

    Search

    any notes. -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/pbkdf2.html b/doc/html/modules/pbkdf2.html index 7cbf42856..a5222aa20 100644 --- a/doc/html/modules/pbkdf2.html +++ b/doc/html/modules/pbkdf2.html @@ -145,7 +145,7 @@

    Search

    Number of rounds. The higher the number, the longer hashing takes; but also generally the higher the protection against brute force attacks.

    This module requires: none

    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/seen.html b/doc/html/modules/seen.html index 3ba76754a..69103c9b8 100644 --- a/doc/html/modules/seen.html +++ b/doc/html/modules/seen.html @@ -126,7 +126,7 @@

    Search

    loadmodule seen
     
    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/server.html b/doc/html/modules/server.html index 5a9c69c01..2448f92b6 100644 --- a/doc/html/modules/server.html +++ b/doc/html/modules/server.html @@ -344,7 +344,7 @@

    Search

    Eggdrop is 32. -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/share.html b/doc/html/modules/share.html index 593929171..f4d98cce5 100644 --- a/doc/html/modules/share.html +++ b/doc/html/modules/share.html @@ -156,7 +156,7 @@

    Search

    are v1.5.1 or higher. -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/transfer.html b/doc/html/modules/transfer.html index 325d7a271..6fbdcc0cd 100644 --- a/doc/html/modules/transfer.html +++ b/doc/html/modules/transfer.html @@ -151,7 +151,7 @@

    Search

    be v1.9.0 or higher). -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/twitch.html b/doc/html/modules/twitch.html index bc21cddcf..65764cd8f 100644 --- a/doc/html/modules/twitch.html +++ b/doc/html/modules/twitch.html @@ -163,7 +163,7 @@

    Partyline commandsSearch

    loadmodule uptime
     
    -

    Copyright (C) 2001 - 2023 Eggheads Development Team

    +

    Copyright (C) 2001 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/woobie.html b/doc/html/modules/woobie.html index 02f5b6c8b..efc87f071 100644 --- a/doc/html/modules/woobie.html +++ b/doc/html/modules/woobie.html @@ -125,7 +125,7 @@

    Search

    loadmodule woobie
     
    -

    Copyright (C) 2000 - 2023 Eggheads Development Team

    +

    Copyright (C) 2000 - 2024 Eggheads Development Team

    diff --git a/doc/html/modules/writing.html b/doc/html/modules/writing.html index 7789198fa..66b823642 100644 --- a/doc/html/modules/writing.html +++ b/doc/html/modules/writing.html @@ -1,17 +1,16 @@ - - + - + How to Write an Eggdrop Module — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -101,7 +101,7 @@

    Search

    -

    How to Write an Eggdrop Module

    +

    How to Write an Eggdrop Module

    Note: This is for a simple module of 1 source file.

      @@ -143,7 +143,7 @@

      Search

    -

    Module requirements

    +

    Module requirements

    In most modules, all functions/variables (except global and MODULE_start) should be static. This will drastically reduce the size of modules on decent systems.

    @@ -152,7 +152,7 @@

    Module requirements -

    MODULE_start

    +

    MODULE_start

    char *MODULE_start(Function *func_table)
     
     This function is called when the module is first loaded. There are
    @@ -189,7 +189,7 @@ 

    MODULE_start -

    MODULE_table

    +

    MODULE_table

    static Function *MODULE_table = {
            MODULE_start,
            MODULE_close,
    @@ -206,7 +206,7 @@ 

    MODULE_table -

    MODULE_close ()

    +

    MODULE_close ()

    static char *MODULE_close ()
     
     This is called when the module is unloaded. Apart from tidying any
    @@ -226,7 +226,7 @@ 

    MODULE_close () -

    MODULE_expmem

    +

    MODULE_expmem

    static int MODULE_expmem ()
     
     This should tally all memory you allocate/deallocate within the module
    @@ -236,7 +236,7 @@ 

    MODULE_expmem -

    MODULE_report

    +

    MODULE_report

    static void MODULE_report (int idx)
     
     This should provide a relatively short report of the module's status
    @@ -247,7 +247,7 @@ 

    MODULE_report -

    Additional functions

    +

    Additional functions

    void *nmalloc(int j);
     
     This allocates j bytes of memory.
    @@ -387,7 +387,7 @@ 

    Additional functions

    -

    What to do with a module?

    +

    What to do with a module?

    If you have written a module and feel that you wish to share it with the rest of the Eggdrop community, find us in #eggdrop on Libera. Make sure you @@ -423,9 +423,9 @@

    What to do with a module?

    diff --git a/doc/html/objects.inv b/doc/html/objects.inv index e31c384a3..f7c8aaf3d 100644 Binary files a/doc/html/objects.inv and b/doc/html/objects.inv differ diff --git a/doc/html/search.html b/doc/html/search.html index 8eb843f1b..423788fbf 100644 --- a/doc/html/search.html +++ b/doc/html/search.html @@ -1,17 +1,16 @@ - - + Search — Eggdrop 1.9.5 documentation - - + + - - - + + + @@ -44,6 +43,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -147,9 +147,9 @@

    Search

    diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js index c047bfa80..40c05d72c 100644 --- a/doc/html/searchindex.js +++ b/doc/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["about/about", "about/legal", "index", "install/install", "install/readme", "install/upgrading", "modules/included", "modules/index", "modules/internals", "modules/mod/assoc", "modules/mod/blowfish", "modules/mod/channels", "modules/mod/compress", "modules/mod/console", "modules/mod/ctcp", "modules/mod/dns", "modules/mod/filesys", "modules/mod/ident", "modules/mod/irc", "modules/mod/notes", "modules/mod/pbkdf2", "modules/mod/seen", "modules/mod/server", "modules/mod/share", "modules/mod/transfer", "modules/mod/twitch", "modules/mod/uptime", "modules/mod/woobie", "modules/writing", "tutorials/firstscript", "tutorials/firststeps", "tutorials/module", "tutorials/setup", "tutorials/tlssetup", "using/accounts", "using/bans", "using/botnet", "using/core", "using/features", "using/ipv6", "using/ircv3", "using/partyline", "using/patch", "using/pbkdf2info", "using/tcl-commands", "using/text-sub", "using/tls", "using/tricks", "using/twitch-tcl-commands", "using/twitchinfo", "using/users"], "filenames": ["about/about.rst", "about/legal.rst", "index.rst", "install/install.rst", "install/readme.rst", "install/upgrading.rst", "modules/included.rst", "modules/index.rst", "modules/internals.rst", "modules/mod/assoc.rst", "modules/mod/blowfish.rst", "modules/mod/channels.rst", "modules/mod/compress.rst", "modules/mod/console.rst", "modules/mod/ctcp.rst", "modules/mod/dns.rst", "modules/mod/filesys.rst", "modules/mod/ident.rst", "modules/mod/irc.rst", "modules/mod/notes.rst", "modules/mod/pbkdf2.rst", "modules/mod/seen.rst", "modules/mod/server.rst", "modules/mod/share.rst", "modules/mod/transfer.rst", "modules/mod/twitch.rst", "modules/mod/uptime.rst", "modules/mod/woobie.rst", "modules/writing.rst", "tutorials/firstscript.rst", "tutorials/firststeps.rst", "tutorials/module.rst", "tutorials/setup.rst", "tutorials/tlssetup.rst", "using/accounts.rst", "using/bans.rst", "using/botnet.rst", "using/core.rst", "using/features.rst", "using/ipv6.rst", "using/ircv3.rst", "using/partyline.rst", "using/patch.rst", "using/pbkdf2info.rst", "using/tcl-commands.rst", "using/text-sub.rst", "using/tls.rst", "using/tricks.rst", "using/twitch-tcl-commands.rst", "using/twitchinfo.rst", "using/users.rst"], "titles": ["About Eggdrop", "Boring legal stuff", "Eggdrop, an open source IRC bot", "Installing Eggdrop", "README", "Upgrading Eggdrop", "Modules included with Eggdrop", "Eggdrop Module Information", "Eggdrop Bind Internals", "Assoc Module", "Blowfish Module", "Channels Module", "Compress Module", "Console Module", "CTCP Module", "DNS Module", "Filesys Module", "Ident Module", "IRC Module", "Notes Module", "PBKDF2 Module", "Seen Module", "Server Module", "Share Module", "Transfer Module", "Twitch Module", "Uptime Module", "Woobie Module", "How to Write an Eggdrop Module", "Writing an Eggdrop Script", "Common First Steps", "Writing a Basic Eggdrop Module", "Setting Up Eggdrop", "Enabling TLS Security on Eggdrop", "Account tracking in Eggdrop", "Bans, Invites, and Exempts", "Botnet Sharing and Linking", "Eggdrop Core Settings", "Eggdrop Features", "IPv6 support", "IRCv3 support", "The Party Line", "Patching Eggdrop", "Encryption/Hashing", "Eggdrop Tcl Commands", "Textfile Substitutions", "TLS support", "Advanced Tips", "Eggdrop Twitch Tcl Commands", "Twitch", "Users and Flags"], "terms": {"last": [0, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 32, 35, 37, 39, 40, 41, 44, 45, 46, 47, 48, 50], "revis": [0, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 35, 37, 39, 40, 41, 44, 45, 46, 47, 48, 50], "juli": 0, "27": [0, 12, 17, 23, 40], "2010": [0, 11, 15, 22, 37, 39, 40, 45, 46], "wa": [0, 2, 8, 20, 25, 29, 31, 32, 36, 40, 43, 44, 46, 48, 49], "creat": [0, 3, 4, 8, 16, 17, 23, 28, 29, 30, 31, 32, 35, 37, 42, 43, 44, 46, 47, 49], "around": [0, 4, 25, 33, 39, 44, 49], "decemb": [0, 27, 38, 41], "1993": [0, 38], "help": [0, 3, 8, 14, 22, 28, 29, 30, 31, 32, 35, 36, 37, 39, 41, 44, 45, 50], "stop": [0, 11, 16, 18, 28, 30, 44, 48], "incess": 0, "war": 0, "gayteen": 0, "It": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 16, 18, 22, 26, 28, 30, 32, 34, 36, 37, 38, 39, 41, 44, 48, 49], "spawn": 0, "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 16, 17, 18, 19, 20, 22, 23, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 41, 43, 45, 46, 47, 48, 49, 50], "anoth": [0, 8, 11, 16, 18, 19, 22, 23, 28, 32, 36, 37, 44, 45, 48], "bot": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 29, 30, 32, 33, 35, 37, 38, 39, 40, 41, 43, 45, 46, 47, 48, 49, 50], "process": [0, 3, 4, 5, 12, 16, 17, 24, 30, 32, 36, 43, 44, 46], "being": [0, 4, 11, 16, 18, 22, 33, 34, 38, 39, 44, 48], "written": [0, 28, 31, 32, 44, 49], "time": [0, 3, 4, 11, 15, 16, 17, 18, 20, 23, 24, 29, 30, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 45, 46, 47, 49], "call": [0, 3, 4, 8, 28, 29, 30, 36, 37, 44, 48], "unrest": 0, "The": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 14, 15, 16, 17, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 40, 43, 44, 46, 47, 48, 49, 50], "purpos": [0, 1, 6, 8, 26, 27, 31, 36, 37, 44], "answer": [0, 7, 14, 17, 22, 29], "request": [0, 4, 5, 7, 11, 14, 16, 18, 22, 32, 34, 35, 37, 39, 40, 42, 44, 46, 47, 49], "other": [0, 1, 4, 6, 8, 10, 11, 15, 16, 17, 18, 19, 20, 22, 23, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50], "first": [0, 2, 4, 5, 8, 16, 20, 22, 28, 29, 31, 32, 33, 36, 37, 43, 44, 46, 47, 48], "public": [0, 1, 4, 29, 30, 31, 33, 37, 44, 46, 47, 50], "releas": [0, 1, 32, 43, 44], "version": [0, 1, 2, 3, 4, 5, 8, 14, 18, 26, 28, 29, 31, 39, 40, 45, 46, 48], "0": [0, 4, 8, 11, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 28, 29, 30, 31, 32, 36, 37, 39, 40, 41, 43, 44, 46, 47, 48], "6": [0, 5, 8, 11, 18, 30, 32, 37, 39, 44], "sinc": [0, 3, 5, 18, 32, 36, 37, 38, 39, 44, 46, 47], "ha": [0, 1, 2, 4, 5, 8, 11, 15, 16, 18, 22, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 46, 48, 49, 50], "grown": 0, "what": [0, 1, 2, 5, 6, 8, 11, 16, 18, 22, 26, 29, 30, 31, 32, 37, 40, 41, 43, 44], "you": [0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "have": [0, 1, 3, 4, 5, 6, 8, 10, 11, 13, 16, 18, 19, 20, 22, 23, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50], "befor": [0, 4, 8, 11, 15, 17, 18, 19, 22, 23, 24, 28, 30, 31, 32, 34, 36, 37, 44, 49], "i": [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "world": [0, 2, 4, 33, 37], "": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 16, 17, 18, 21, 22, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 41, 43, 45, 46, 47, 48, 49, 50], "most": [0, 2, 4, 5, 17, 18, 22, 28, 29, 30, 32, 33, 37, 38, 41, 44, 48, 49], "popular": [0, 4, 5, 32, 37], "internet": [0, 4, 44, 46], "relai": [0, 4, 36, 37], "chat": [0, 2, 4, 6, 8, 14, 22, 30, 32, 36, 37, 38, 41, 44, 46, 48, 49], "irc": [0, 4, 6, 8, 16, 17, 22, 25, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 47, 48, 50], "freeli": [0, 4], "distribut": [0, 1, 4, 31, 32], "under": [0, 4, 31, 32, 38, 44], "gnu": [0, 1, 3, 4, 8, 12, 31], "gener": [0, 1, 3, 4, 8, 20, 25, 29, 30, 31, 32, 40, 43, 44, 46, 49], "licens": [0, 1, 4, 31], "gpl": [0, 4, 31], "featur": [0, 2, 4, 7, 11, 18, 22, 23, 30, 32, 34, 37, 39, 40, 42, 44, 46, 49, 50], "rich": [0, 4, 32], "program": [0, 2, 4, 17, 30, 31, 32], "design": [0, 2, 4, 20, 40, 48], "easili": [0, 1, 2, 4, 29, 38, 44], "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 50], "expand": [0, 2, 4], "upon": [0, 4, 48, 50], "both": [0, 4, 11, 22, 24, 33, 34, 36, 39, 43, 44, 46], "novic": [0, 4], "advanc": [0, 2, 4, 6, 21, 29, 38], "user": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 29, 31, 32, 33, 34, 35, 37, 38, 39, 41, 42, 43, 45, 46, 47, 48, 49], "varieti": [0, 4], "hardwar": [0, 4], "softwar": [0, 1, 2, 4, 31], "platform": [0, 4, 25, 44, 49], "an": [0, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16, 17, 18, 20, 22, 24, 25, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49], "sit": [0, 4, 11, 37, 43], "channel": [0, 2, 4, 5, 6, 8, 9, 13, 18, 21, 22, 23, 25, 28, 29, 32, 34, 35, 36, 37, 38, 41, 45, 47, 49, 50], "perform": [0, 3, 4, 5, 8, 11, 31, 32, 44, 50], "autom": [0, 2, 4], "task": [0, 2, 4, 8, 36], "while": [0, 4, 5, 11, 17, 25, 32, 34, 35, 37, 41, 43, 44, 49], "look": [0, 4, 5, 6, 8, 11, 21, 26, 27, 29, 30, 31, 33, 34, 37, 38, 43, 44, 46, 49], "just": [0, 3, 4, 5, 6, 8, 15, 16, 18, 20, 23, 28, 30, 31, 32, 34, 36, 37, 41, 43, 44, 47, 48, 49], "like": [0, 1, 4, 6, 8, 10, 11, 14, 16, 18, 20, 28, 29, 30, 31, 32, 37, 38, 39, 41, 42, 43, 44, 46, 48, 49, 50], "normal": [0, 4, 6, 14, 15, 16, 17, 22, 28, 29, 33, 37, 44, 46, 47, 48, 49], "some": [0, 4, 5, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 28, 31, 32, 34, 35, 36, 37, 38, 39, 40, 44, 46, 47, 49, 50], "function": [0, 1, 2, 4, 6, 7, 8, 20, 25, 31, 32, 36, 37, 39, 43, 44, 47, 48], "includ": [0, 2, 3, 4, 7, 8, 18, 26, 28, 31, 32, 33, 35, 37, 38, 39, 43, 44, 46, 48, 49], "protect": [0, 2, 3, 4, 11, 20, 22, 30, 32, 35, 37, 43, 44, 46, 50], "abus": [0, 2, 4], "allow": [0, 3, 4, 5, 6, 7, 11, 12, 16, 17, 18, 19, 20, 22, 23, 24, 25, 28, 29, 30, 31, 32, 34, 36, 37, 38, 43, 44, 46, 47, 49], "privileg": [0, 4, 17, 50], "gain": [0, 4, 43, 50], "op": [0, 2, 4, 11, 18, 25, 34, 36, 38, 43, 44, 49, 50], "voic": [0, 2, 4, 11, 30, 44, 50], "statu": [0, 2, 4, 11, 25, 28, 31, 33, 37, 47, 48, 49], "log": [0, 2, 4, 11, 20, 25, 28, 31, 32, 34, 42, 43, 44, 49], "event": [0, 4, 25, 28, 31, 34, 36, 37, 48, 49], "provid": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 28, 30, 31, 32, 37, 39, 40, 42, 44, 46, 48, 49], "inform": [0, 2, 3, 4, 5, 6, 8, 11, 16, 26, 28, 29, 30, 31, 32, 34, 36, 37, 39, 40, 44, 46], "host": [0, 2, 4, 11, 17, 22, 25, 29, 35, 36, 37, 46, 48, 50], "game": [0, 2, 4, 25, 49], "etc": [0, 2, 4, 8, 11, 18, 25, 28, 32, 34, 36, 37, 38, 44, 47, 50], "One": [0, 4, 29, 34, 44], "make": [0, 2, 3, 4, 5, 6, 7, 11, 14, 16, 20, 22, 23, 25, 28, 29, 30, 32, 33, 37, 39, 40, 42, 44, 46, 47, 49], "stand": [0, 4, 32], "out": [0, 3, 4, 8, 24, 26, 29, 30, 31, 32, 36, 37, 41, 43, 44, 46], "modul": [0, 4, 8, 32, 34, 36, 38, 43, 49], "tcl": [0, 1, 2, 3, 4, 6, 11, 12, 22, 28, 29, 32, 35, 37, 38, 39, 46, 47, 49], "script": [0, 2, 3, 4, 7, 8, 11, 22, 30, 31, 32, 35, 38, 39, 44, 47, 48, 49, 50], "support": [0, 2, 3, 4, 5, 6, 9, 11, 12, 15, 17, 18, 19, 22, 23, 24, 30, 32, 33, 35, 37, 38, 44, 47, 49], "With": [0, 4, 6, 16, 31, 36, 37, 43, 44, 46], "can": [0, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "almost": [0, 4, 32, 35, 50], "ani": [0, 1, 2, 3, 4, 5, 7, 13, 16, 17, 18, 19, 22, 23, 25, 28, 29, 30, 31, 32, 35, 37, 38, 41, 43, 44, 46, 48, 49, 50], "want": [0, 3, 4, 6, 8, 11, 13, 15, 16, 18, 19, 22, 24, 28, 29, 30, 31, 32, 36, 37, 39, 44, 46, 47], "thei": [0, 3, 4, 5, 7, 8, 11, 13, 14, 18, 19, 22, 23, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 43, 44, 46, 48], "do": [0, 4, 8, 11, 13, 16, 17, 18, 20, 22, 26, 29, 30, 31, 32, 34, 36, 37, 38, 44, 45, 47, 48, 49], "anyth": [0, 4, 16, 29, 30, 31, 32, 36, 37, 41, 44, 48], "prevent": [0, 4, 11, 18, 19, 25, 30, 32, 36, 39, 44, 49], "flood": [0, 4, 11, 14, 19, 22, 36, 37, 38, 44, 50], "greet": [0, 2, 4, 11, 29, 34], "ban": [0, 2, 4, 11, 18, 25, 36, 37, 38, 49, 50], "advertis": [0, 4, 44], "also": [0, 2, 3, 4, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 43, 44, 45, 46, 47, 48, 49, 50], "link": [0, 2, 3, 4, 5, 6, 7, 16, 23, 24, 28, 31, 37, 38, 40, 43, 46, 47], "multipl": [0, 2, 4, 8, 17, 29, 31, 32, 36, 37, 38, 44, 48], "togeth": [0, 2, 4, 22, 29, 36, 37, 38, 40, 44], "form": [0, 4, 28, 29, 44, 45], "botnet": [0, 2, 3, 4, 6, 9, 11, 13, 16, 22, 26, 32, 38, 39, 41, 43, 44, 47, 50], "thi": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50], "each": [0, 4, 6, 11, 16, 19, 24, 29, 30, 32, 34, 36, 37, 38, 41, 44, 47, 48, 50], "secur": [0, 2, 4, 6, 10, 20, 30, 32, 37, 38, 43, 44], "control": [0, 2, 4, 18, 22, 29, 30, 36, 37, 38, 46, 49, 50], "effici": [0, 4, 32, 36, 37, 38], "even": [0, 4, 7, 16, 18, 28, 31, 32, 35, 36, 37, 38, 41, 44, 49], "across": [0, 4, 36, 40, 42, 44, 47], "network": [0, 2, 4, 18, 22, 37, 44, 45], "share": [0, 2, 4, 6, 11, 12, 24, 28, 37, 38, 44], "list": [0, 4, 6, 8, 11, 15, 16, 20, 22, 23, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 46, 48, 49], "exempt": [0, 1, 2, 4, 11, 18, 25, 36, 38, 49, 50], "invit": [0, 2, 4, 11, 18, 25, 36, 38, 40, 49], "ignor": [0, 4, 8, 14, 22, 23, 29, 36, 37, 38, 44, 48], "userfil": [0, 2, 4, 5, 6, 10, 11, 12, 20, 23, 24, 28, 30, 32, 36, 37, 43, 44, 47], "enabl": [0, 2, 4, 7, 11, 13, 16, 18, 22, 24, 28, 29, 30, 32, 36, 37, 38, 39, 40, 46, 47, 49], "same": [0, 3, 4, 5, 7, 8, 11, 12, 17, 18, 28, 29, 32, 34, 36, 37, 40, 43, 44, 45, 46, 47, 48], "access": [0, 4, 17, 22, 28, 29, 30, 32, 38, 41, 43, 44, 46, 48, 49, 50], "everi": [0, 3, 4, 11, 16, 18, 22, 24, 28, 29, 30, 34, 35, 37, 39, 43, 44, 50], "your": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 41, 42, 43, 44, 46, 49], "see": [0, 2, 3, 4, 5, 6, 8, 11, 16, 18, 22, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 41, 42, 43, 44, 45, 48], "doc": [0, 3, 4, 5, 6, 22, 29, 31, 33, 37, 41, 44, 48, 49], "set": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 28, 29, 33, 34, 35, 36, 38, 40, 41, 43, 45, 47, 48, 49, 50], "up": [0, 2, 3, 4, 5, 6, 16, 22, 26, 28, 29, 33, 34, 36, 37, 41, 43, 44, 49], "alwai": [0, 3, 4, 11, 32, 34, 35, 44], "improv": [0, 4], "adjust": [0, 4, 18], "becaus": [0, 4, 8, 17, 22, 28, 29, 37, 44, 47, 48, 49], "ar": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50], "bug": [0, 3, 4, 29, 32, 42], "fix": [0, 3, 4, 28, 37, 44], "ad": [0, 2, 3, 4, 5, 7, 8, 20, 22, 23, 25, 28, 29, 32, 34, 37, 38, 39, 40, 43, 44, 46, 48, 49], "demand": [0, 4], "them": [0, 1, 3, 4, 5, 7, 11, 13, 14, 15, 16, 18, 19, 22, 23, 24, 28, 29, 30, 32, 33, 36, 37, 38, 39, 40, 43, 44, 47, 49, 50], "actual": [0, 4, 8, 16, 28, 29, 33, 37, 41, 44], "sens": [0, 4], "In": [0, 4, 5, 8, 15, 28, 30, 31, 32, 33, 34, 36, 37, 44, 46, 49], "fact": [0, 4, 48], "exist": [0, 4, 8, 16, 22, 28, 31, 34, 43, 44, 48, 49, 50], "sever": [0, 4, 14, 28, 32, 33, 40, 44, 47], "year": [0, 4, 32, 37, 44], "v0": [0, 4, 44], "7": [0, 4, 11, 32, 39, 44], "9": [0, 2, 4, 6, 7, 8, 11, 12, 20, 22, 24, 26, 30, 32, 34, 36, 37, 40, 43, 44, 45, 46, 48], "final": [0, 4, 8, 29, 30, 32, 37, 43], "go": [0, 3, 4, 6, 16, 22, 26, 29, 30, 32, 33, 34, 44], "1": [0, 1, 3, 4, 5, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 43, 44, 46, 48, 49], "part": [0, 4, 8, 22, 25, 29, 31, 37, 38, 44, 46, 47, 49], "tree": [0, 4, 32], "A": [0, 2, 4, 5, 11, 17, 29, 30, 31, 34, 36, 37, 38, 40, 41, 44, 45, 46, 48, 50], "valiant": [0, 4], "effort": [0, 2, 4, 44], "been": [0, 1, 4, 5, 16, 18, 22, 28, 35, 37, 38, 44, 48], "made": [0, 1, 3, 4, 5, 11, 23, 31, 42, 44, 46, 49], "chase": [0, 4], "down": [0, 3, 4, 16, 36, 44], "destroi": [0, 4], "To": [0, 3, 4, 5, 7, 8, 29, 30, 31, 32, 33, 34, 37, 39, 41, 42, 44, 46, 47, 48], "need": [0, 3, 4, 8, 11, 15, 17, 18, 22, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 43, 44, 46, 48, 49, 50], "sort": [0, 4, 35], "unix": [0, 3, 16, 17, 32, 38], "account": [0, 2, 4, 17, 19, 28, 30, 32, 38, 40, 42, 43, 49], "pretti": [0, 41], "good": [0, 16, 22, 25, 29, 32, 37, 44, 49, 50], "knowledg": 0, "how": [0, 3, 6, 8, 11, 14, 15, 16, 19, 22, 23, 25, 29, 30, 31, 32, 33, 35, 36, 37, 44, 46, 47, 48, 49], "compil": [0, 2, 3, 4, 28, 31, 32, 33, 37, 39, 44, 46], "read": [0, 2, 3, 4, 6, 7, 17, 28, 29, 30, 32, 33, 37, 44, 45, 49], "dcc": [0, 2, 4, 6, 8, 16, 21, 22, 24, 28, 30, 31, 32, 36, 38, 39, 41, 43, 47], "absolut": [0, 33, 44, 50], "minimum": [0, 11, 31, 44, 48], "5": [0, 4, 8, 11, 22, 23, 28, 29, 32, 37, 39, 44, 45], "mb": 0, "disk": [0, 24, 32, 37, 38, 44], "space": [0, 24, 37, 40, 44], "tarbal": [0, 32], "4": [0, 3, 4, 8, 11, 15, 22, 28, 29, 30, 31, 32, 33, 36, 37, 39, 44], "unpack": 0, "cannot": [0, 28, 32, 34, 43, 44, 50], "without": [0, 2, 4, 5, 6, 10, 11, 14, 20, 28, 29, 30, 31, 32, 33, 36, 37, 38, 40, 43, 44, 46], "instal": [0, 4, 5, 29, 30, 33, 37], "shell": [0, 3, 4, 17, 30, 32, 37, 44], "copyright": [0, 1, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "c": [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "1999": [0, 3, 4, 7, 35, 36, 42, 44, 45, 47], "2022": [], "egghead": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 32, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "develop": [0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50], "team": [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "eggdrop": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 35, 39, 40, 43, 45, 46, 47, 49, 50], "robei": [1, 3, 4, 38, 45, 50], "pointer": [1, 3, 4, 8, 31, 38, 45], "As": [1, 16, 20, 29, 32, 33, 40, 44, 46, 49], "januari": [1, 9, 10, 13, 19, 21, 24, 26, 44], "1997": [1, 3, 4, 38, 45], "accord": [1, 44, 50], "There": [1, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 45, 46, 49, 50], "should": [1, 3, 4, 5, 8, 11, 13, 14, 15, 16, 18, 20, 22, 23, 25, 28, 29, 30, 31, 32, 36, 37, 39, 41, 43, 44, 46, 48, 49], "copi": [1, 2, 5, 7, 16, 24, 28, 31, 32, 44], "file": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 34, 35, 36, 38, 39, 43, 45, 46, 50], "If": [1, 3, 4, 5, 6, 7, 8, 11, 13, 16, 17, 18, 20, 21, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 46, 47, 48], "write": [1, 2, 6, 7, 27, 32, 37, 43, 44, 49], "free": [1, 2, 5, 28, 31], "foundat": [1, 31], "inc": [1, 31], "51": 1, "franklin": 1, "street": 1, "fifth": 1, "floor": 1, "boston": [1, 31], "ma": [1, 31], "02110": 1, "1301": 1, "usa": [1, 31], "3": [1, 8, 11, 14, 15, 16, 18, 22, 24, 30, 31, 32, 33, 34, 36, 37, 40, 44], "28": [1, 10, 20], "all": [1, 5, 6, 7, 8, 11, 14, 15, 16, 18, 20, 22, 23, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50], "chang": [1, 2, 6, 8, 10, 11, 16, 18, 20, 22, 23, 25, 29, 31, 32, 33, 36, 37, 38, 40, 41, 42, 46, 48, 49], "sourc": [1, 3, 4, 5, 6, 7, 8, 28, 29, 31, 33, 37, 42, 44, 46, 47], "code": [1, 2, 3, 4, 7, 8, 28, 29, 44], "relat": [1, 6, 11, 29, 31, 39, 44], "still": [1, 4, 5, 11, 16, 23, 31, 32, 33, 34, 37, 38, 44, 49], "did": [1, 30, 43], "past": [1, 4, 28, 31, 37], "previou": [1, 3, 4, 5, 20, 32, 44, 49], "0m": 1, "were": [1, 17, 18, 32, 35, 36, 37, 39, 43, 44, 49], "differ": [1, 3, 4, 5, 11, 16, 22, 29, 31, 33, 34, 37, 43, 44, 47, 48], "scheme": 1, "mai": [1, 4, 5, 11, 12, 16, 17, 18, 24, 29, 32, 36, 37, 39, 40, 44, 47, 48, 49], "option": [1, 3, 4, 7, 11, 16, 17, 20, 22, 30, 31, 32, 37, 46, 49], "those": [1, 3, 7, 12, 16, 22, 28, 29, 30, 31, 32, 44, 47, 48, 49], "instead": [1, 4, 5, 11, 16, 17, 18, 23, 25, 32, 36, 37, 43, 44, 46, 47, 49, 50], "packag": [1, 3, 4, 32, 33], "bless": 1, "For": [1, 2, 3, 5, 7, 8, 16, 22, 30, 31, 32, 33, 36, 37, 39, 40, 41, 43, 44, 46, 47, 48, 49], "bear": 1, "date": [1, 4, 31, 32, 34, 37, 44], "later": [1, 3, 6, 8, 10, 19, 20, 26, 29, 31, 32, 37, 44, 46], "choic": [1, 22, 29], "must": [1, 2, 3, 4, 8, 11, 15, 17, 18, 22, 24, 28, 30, 31, 32, 33, 34, 36, 37, 43, 44, 46, 48], "match": [1, 2, 8, 11, 16, 18, 28, 29, 31, 35, 37, 43, 46, 48], "net": [1, 3, 18, 22, 25, 32, 34, 40], "blowfish": [1, 2, 5, 6, 20, 28, 37, 43, 44], "abov": [1, 4, 11, 18, 20, 28, 29, 30, 38, 44, 45], "restrict": [1, 16, 17, 22, 37, 44, 45, 49], "origin": [1, 8, 22, 32, 42, 44], "chri": 1, "fuller": 1, "place": [1, 3, 5, 7, 11, 16, 18, 29, 31, 32, 35, 37, 44, 46, 49], "him": 1, "domain": [1, 15, 36], "variou": [1, 8, 28, 32, 35, 37, 44], "well": [1, 8, 25, 29, 30, 31, 32, 33, 34, 37, 43, 44, 46, 49], "contain": [1, 3, 4, 5, 29, 32, 34, 36, 37, 39, 44, 46, 48], "could": [1, 8, 22, 29, 36, 37, 39, 42, 43, 44, 46, 49], "port": [1, 5, 15, 17, 22, 23, 30, 32, 33, 36, 37, 39, 46], "applic": [1, 37, 44], "john": 1, "ousterhout": 1, "wai": [1, 3, 17, 22, 25, 28, 29, 30, 32, 33, 34, 35, 36, 37, 41, 43, 44, 46, 49], "affili": [1, 49], "its": [1, 2, 4, 7, 11, 16, 17, 18, 20, 22, 23, 25, 29, 30, 31, 32, 34, 36, 37, 38, 42, 44, 47, 49], "own": [1, 7, 16, 17, 22, 23, 29, 30, 31, 32, 33, 40, 44, 46, 47, 49], "nots": 1, "warranti": [1, 31], "impli": [1, 28, 31], "whatev": [1, 3, 29, 37, 38, 44, 45], "risk": [1, 22], "matter": [1, 8, 15, 29, 30], "put": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 32, 37, 44, 46], "built": [2, 17, 44, 47], "assist": [2, 32, 34, 46], "manag": [2, 4, 6, 16, 25, 33, 49], "oldest": [2, 44], "activ": [2, 11, 17, 31, 32, 34, 35, 41, 44, 46], "maintain": [2, 17, 32, 34, 47, 48], "via": [2, 3, 4, 6, 12, 17, 18, 21, 23, 28, 29, 30, 32, 34, 35, 36, 37, 38, 39, 40, 41, 43, 45, 46, 48, 49], "abil": [2, 7, 17, 33, 34, 36, 38, 44], "run": [2, 3, 4, 5, 7, 11, 17, 22, 28, 29, 30, 31, 32, 33, 34, 36, 37, 43, 45, 46, 48], "join": [2, 6, 8, 11, 13, 18, 19, 25, 29, 31, 32, 33, 35, 37, 38, 40, 41, 44, 48, 49, 50], "perorm": 2, "obtain": [2, 33, 46], "larg": [2, 16, 18, 22, 37], "number": [2, 11, 16, 18, 19, 20, 22, 24, 25, 28, 31, 32, 33, 36, 37, 43, 44, 46, 48, 49, 50], "integr": 2, "current": [2, 4, 6, 7, 8, 10, 16, 18, 19, 20, 25, 28, 30, 32, 34, 36, 37, 38, 41, 44, 45, 46, 48], "ircv3": [2, 34, 38, 44, 47], "capabl": [2, 37, 38, 44, 47, 49], "tl": [2, 3, 4, 5, 8, 30, 32, 37, 44], "ipv6": [2, 32, 37, 38, 44], "twitch": [2, 6, 38], "much": [2, 3, 8, 25, 28, 32, 41, 44], "project": [2, 42, 49], "http": [2, 4, 6, 21, 26, 32, 34, 40], "github": [2, 4, 32], "com": [2, 4, 5, 6, 21, 22, 29, 30, 32, 36, 37, 43, 44, 46], "egggdrop": 2, "clone": [2, 4, 11, 32], "git": [2, 3, 32, 42], "altern": [2, 4, 17, 22, 32, 33, 36, 37, 44, 46], "stabl": [2, 4, 32], "snapshot": [2, 32], "locat": [2, 4, 24, 29, 30, 33, 37, 46], "geteggdrop": [2, 4, 32], "addit": [2, 4, 5, 8, 17, 22, 32, 37, 44, 46, 48], "found": [2, 4, 8, 28, 37, 44, 48], "offici": [2, 4], "webpag": 2, "www": [2, 4, 6, 21], "org": [2, 4, 5, 6, 26, 29, 32, 33, 36, 37, 44], "requir": [2, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 32, 37, 43, 46, 48], "header": [2, 4, 28, 29, 33, 46], "present": [2, 6, 29, 30, 34, 39, 44, 48, 49], "system": [2, 3, 7, 15, 16, 17, 28, 32, 37, 38, 39, 44, 45, 46], "strongli": [2, 4, 32], "encourag": [2, 32, 43], "openssl": [2, 3, 4, 20, 30, 32, 33, 37, 46], "commun": [2, 28, 36, 41, 42, 44], "guid": [2, 3, 29, 32, 33], "quickli": [2, 37], "here": [2, 4, 11, 14, 15, 16, 18, 19, 22, 24, 29, 30, 31, 32, 35, 36, 37, 44, 47, 48], "lurk": 2, "libera": [2, 4, 5, 22, 28, 29, 30, 32], "readm": [2, 3], "notic": [2, 14, 16, 29, 36, 37, 44, 49], "quick": [2, 28, 32, 37], "startup": [2, 8, 43, 44], "upgrad": [2, 43, 46], "command": [2, 3, 6, 8, 11, 13, 16, 17, 18, 21, 22, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 46, 49, 50], "line": [2, 3, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 36, 37, 38, 43, 44, 46, 47, 48, 49], "auto": [2, 3, 36, 50], "start": [2, 3, 5, 6, 10, 17, 20, 22, 27, 29, 30, 36, 37, 40, 41, 43, 44, 45, 48, 49], "document": [2, 8, 17, 29, 32, 33, 36, 39, 40, 42, 46, 47], "cygwin": [2, 39], "window": [2, 30, 39], "v1": [2, 23, 24, 29, 44, 45, 46, 48], "core": [2, 3, 6, 7, 8, 18, 19, 22, 28, 29, 31, 44, 47], "execut": [2, 3, 7, 28, 29, 30, 34, 44], "path": [2, 3, 16, 17, 32, 33, 44, 46], "basic": [2, 4, 6, 7, 21, 29, 32], "consol": [2, 4, 6, 11, 28, 38, 41], "directori": [2, 3, 4, 6, 7, 24, 28, 30, 32, 33, 38, 42, 46, 47], "telnet": [2, 30, 32, 36, 38, 39, 41, 43, 44, 45, 46], "ssl": [2, 3, 4, 5, 22, 30, 32, 33, 36, 38, 44], "parti": [2, 5, 13, 32, 36, 37, 38, 44, 46, 50], "flag": [2, 5, 6, 8, 11, 14, 18, 23, 28, 29, 31, 32, 37, 38, 45], "term": [2, 29, 31, 33, 44], "exampl": [2, 3, 4, 5, 7, 8, 16, 17, 22, 28, 29, 30, 31, 32, 33, 37, 41, 44, 46, 47, 48, 49], "bottre": 2, "botflag": [2, 23], "record": [2, 23, 28, 31, 34, 38, 50], "certif": [2, 3, 22, 30, 33, 37, 44], "authent": [2, 34, 43, 44, 49], "usag": [2, 4, 6, 28, 37, 44], "ctcp": [2, 6, 11, 22, 30, 32, 37, 44, 46], "chat4": 2, "chat6": 2, "kei": [2, 3, 11, 18, 25, 29, 30, 37, 43, 48, 49], "cap": [2, 28, 34, 38, 49], "track": [2, 3, 16, 25, 28, 30, 44, 49], "server": [2, 5, 6, 7, 11, 14, 15, 16, 17, 18, 20, 25, 26, 28, 30, 31, 32, 37, 38, 39, 40, 46, 47, 48, 49], "check": [2, 4, 5, 8, 11, 22, 28, 29, 30, 31, 33, 37, 43, 44, 46, 48], "determin": [2, 3, 17, 28, 30, 32, 36, 39, 44, 46], "best": [2, 3, 6, 17, 32, 36, 44, 48], "encrypt": [2, 5, 6, 10, 20, 30, 33, 36, 38, 46], "hash": [2, 5, 20, 32], "background": [2, 4, 29], "interfac": [2, 25, 44, 49], "disclaim": [2, 44], "regist": [2, 8, 11, 30, 31], "edit": [2, 3, 8, 29, 31, 47], "config": [2, 3, 4, 6, 7, 11, 12, 13, 14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 29, 30, 33, 34, 35, 36, 37, 39, 43, 45, 46], "web": [2, 6, 25, 37, 48], "ui": [2, 48], "limit": [2, 6, 8, 11, 16, 18, 22, 36, 39], "tip": [2, 44], "renam": [2, 16, 28, 32, 37, 44], "keep": [2, 4, 11, 16, 22, 24, 32, 37, 49], "self": [2, 22, 33, 37, 46], "modifi": [2, 6, 15, 18, 29, 31, 34, 37, 44], "default": [2, 3, 4, 11, 12, 15, 16, 18, 22, 24, 30, 32, 33, 34, 35, 37, 43, 44, 46], "string": [2, 8, 18, 28, 29, 30, 37, 43, 48, 49], "modular": 2, "variabl": [2, 5, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 28, 29, 34, 37, 39, 45, 48], "textfil": 2, "substitut": [2, 37], "output": [2, 3, 28, 30, 31, 33, 43, 45, 47, 48], "manipul": [2, 37], "note": [2, 3, 6, 7, 8, 10, 11, 15, 18, 20, 22, 23, 28, 30, 31, 32, 34, 36, 37, 43, 46, 48, 49], "assoc": [2, 6], "compress": [2, 6, 30], "filesi": [2, 6, 37], "miscellan": 2, "global": [2, 8, 13, 17, 18, 22, 23, 28, 29, 31, 35, 36, 48, 50], "bind": [2, 17, 18, 22, 25, 28, 29, 34, 37, 47, 49], "procedur": [2, 23, 34, 48, 50], "tcp": [2, 17, 39], "connect": [2, 4, 5, 6, 15, 16, 17, 22, 25, 28, 30, 32, 36, 37, 39, 41, 46, 49, 50], "charact": [2, 11, 16, 22, 32, 36, 37, 39, 43], "patch": [2, 39, 44], "submit": [2, 44], "prerequisit": 2, "super": 2, "short": [2, 28, 30, 39, 46], "configur": [2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 37, 39, 42, 44, 46], "common": [2, 22, 32, 33, 36, 37, 40, 46, 50], "step": [2, 3, 5, 28, 32, 49], "partylin": [2, 4, 6, 8, 13, 32, 33, 34, 36, 37, 39, 43, 44, 46, 47, 48, 49, 50], "automat": [2, 3, 4, 5, 8, 13, 17, 22, 32, 34, 35, 36, 37, 38, 39, 43, 44, 46, 49, 50], "restart": [2, 3, 4, 5, 7, 29, 32, 37], "nickserv": [2, 46], "sasl": [2, 32, 38, 40], "export": [2, 8, 47], "dynam": [2, 3, 11, 30, 32, 35, 44], "static": [2, 3, 8, 11, 28, 30, 31, 44], "dn": [2, 6, 37, 44], "ident": [2, 6, 7, 18, 22, 30, 37, 39, 43, 44], "pbkdf2": [2, 5, 6, 43], "seen": [2, 6, 11, 34, 37, 44], "transfer": [2, 6, 7, 12, 16, 23, 32, 36, 37, 39, 44, 46, 50], "woobi": [2, 3, 6, 28, 31], "uptim": [2, 6], "intern": [2, 22, 34, 37, 44, 48], "tabl": [2, 28, 31, 40, 44], "creation": [2, 30, 34], "stackabl": 2, "ht_stackabl": [2, 31], "trigger": [2, 11, 22, 28, 29, 31, 34, 44, 48], "handler": 2, "summari": 2, "bore": [2, 4], "legal": [2, 4], "stuff": [2, 4, 28, 29, 32, 37, 44], "had": [3, 5, 8, 11, 36, 37, 44, 49], "littl": [3, 5, 16, 25, 32, 36, 47], "experi": [3, 16, 29, 32], "THE": 3, "now": [3, 5, 8, 16, 17, 18, 29, 30, 31, 32, 33, 36, 37, 39, 43, 44, 48, 50], "experienc": 3, "more": [3, 4, 5, 6, 8, 14, 16, 18, 21, 28, 29, 30, 31, 32, 33, 36, 37, 38, 40, 42, 43, 44, 46], "cours": [3, 8, 29, 36, 37, 44], "autoconfigur": 3, "thing": [3, 4, 6, 25, 27, 28, 29, 30, 36, 37, 44, 49], "easier": [3, 20], "type": [3, 4, 6, 7, 8, 11, 13, 18, 22, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 46], "figur": [3, 32], "correctli": [3, 44], "try": [3, 4, 6, 7, 21, 22, 26, 28, 29, 30, 32, 34, 37, 48], "find": [3, 6, 15, 18, 21, 28, 29, 30, 32, 41, 42, 44, 49], "which": [3, 5, 6, 8, 11, 13, 15, 16, 17, 22, 23, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 41, 43, 44, 45, 46, 47, 48, 50], "either": [3, 4, 8, 16, 17, 30, 31, 32, 33, 34, 35, 36, 37, 39, 44, 46, 48], "iconfig": [3, 7, 32], "everyth": [3, 8, 29, 44], "mod": [3, 6, 7, 21, 25, 28, 37, 44, 48], "choos": [3, 7, 30, 32, 37, 38, 49], "forc": [3, 11, 13, 16, 20, 23, 29, 37, 39, 44], "otherwis": [3, 4, 13, 16, 29, 34, 35, 36, 37, 39, 43, 44, 46, 48], "makefil": [3, 28], "better": [3, 4, 6, 21, 30, 32, 37], "possibl": [3, 11, 14, 16, 22, 30, 33, 36, 37, 39, 40, 41, 44, 46, 48], "debug": [3, 26, 28, 29, 37, 44, 46, 48], "sdebug": 3, "give": [3, 4, 11, 16, 22, 29, 32, 36, 37, 38, 41, 43, 44, 50], "detail": [3, 4, 6, 8, 28, 31, 32, 34, 44, 46, 48], "highli": [3, 22, 32], "unlik": [3, 38], "crash": [3, 4, 8, 44], "take": [3, 4, 5, 6, 16, 20, 22, 26, 29, 31, 32, 37, 43, 44, 46], "longer": [3, 5, 16, 18, 20, 28, 32, 33, 44], "enlarg": 3, "binari": [3, 33], "bit": [3, 16, 25, 29, 32, 33, 37, 44, 46, 49], "worth": 3, "somewher": [3, 37], "accomplish": 3, "enter": [3, 11, 16, 30, 33, 37, 41, 42, 43, 44, 46, 48], "home": [3, 16, 17, 30, 32, 46], "e": [3, 6, 8, 9, 10, 11, 18, 20, 28, 30, 32, 36, 37, 44, 45, 50], "dest": [3, 6, 32, 33, 37, 44, 46], "otherdir": 3, "full": [3, 4, 5, 8, 25, 32, 39, 44, 46, 48, 49], "8": [3, 5, 8, 11, 15, 20, 22, 31, 32, 36, 37, 39, 43, 44, 46], "intend": [3, 8, 35, 44], "traffic": [3, 37, 47], "between": [3, 6, 11, 16, 19, 22, 23, 31, 33, 34, 36, 37, 39, 44], "sslcert": [3, 33, 37, 46], "Or": [3, 33, 44], "non": [3, 11, 15, 17, 18, 22, 28, 30, 35, 36, 44, 46, 49], "interact": [3, 4, 6, 17, 18, 31, 37, 44, 46, 49], "sslsilent": [3, 46], "info": [3, 4, 11, 13, 18, 28, 32, 37], "follow": [3, 4, 5, 8, 11, 16, 18, 22, 25, 28, 31, 32, 33, 36, 37, 38, 40, 42, 43, 44, 45, 46, 47, 48, 49], "complet": [3, 4, 11, 16, 23, 32, 38, 44, 46, 50], "m": [3, 4, 11, 22, 32, 37, 39, 43, 44, 45, 47, 48, 50], "lamestbot": [3, 11, 19, 22, 32, 36, 37, 44, 45], "conf": [3, 7, 17, 30, 32, 40, 44, 46], "when": [3, 4, 6, 7, 10, 11, 13, 16, 17, 18, 22, 23, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 41, 43, 44, 46, 48, 49], "futur": [3, 18, 30, 32, 43, 44], "drop": [3, 4, 37, 44], "chmod": [3, 37], "u": [3, 5, 8, 28, 29, 30, 31, 36, 37, 44, 45, 50], "x": [3, 5, 7, 8, 11, 14, 31, 32, 33, 37, 39, 44, 50], "my": [3, 5, 37, 39, 46, 50], "name": [3, 4, 6, 8, 9, 16, 22, 28, 29, 30, 31, 32, 33, 34, 37, 48], "abl": [3, 6, 11, 16, 18, 22, 32, 34, 37, 41, 43, 44], "prompt": [3, 4, 34], "work": [3, 5, 6, 8, 11, 14, 16, 20, 21, 23, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 48], "top": [3, 4, 29, 42, 44], "correct": [3, 8, 31, 33, 37, 43], "advis": [3, 22, 24], "crontab": [3, 4, 44], "so": [3, 4, 6, 7, 8, 10, 16, 17, 18, 20, 26, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 48], "machin": [3, 4, 17, 32, 37], "goe": [3, 11, 30, 35, 36, 41, 44, 46], "heaven": 3, "forbid": 3, "helper": 3, "systemd": [3, 4], "entri": [3, 4, 8, 30, 32, 37], "add": [3, 4, 5, 7, 8, 11, 17, 18, 25, 28, 29, 31, 32, 33, 34, 36, 37, 38, 43, 49], "job": [3, 4, 30, 46], "autobotchk": [3, 4, 30], "yourconfig": 3, "smile": 3, "tool": [3, 32], "prior": [3, 30, 32, 34, 43, 46], "interpret": [3, 31, 39, 44, 45], "devel": 3, "autoconf": 3, "gcc": 3, "util": 3, "diffutil": 3, "small": [3, 24, 36, 47], "piec": [3, 29, 31], "separ": [3, 7, 8, 22, 32, 36, 37, 38, 39, 40, 44, 47, 48], "smaller": 3, "download": [3, 4, 5, 7, 16, 24, 37, 38, 44], "src": [3, 7, 8, 18, 28], "extens": [3, 32, 34], "dure": [3, 12, 23, 28, 30, 32], "valid": [3, 11, 22, 28, 36, 37, 38, 44, 46], "compat": [3, 5, 40, 44, 48, 49], "rest": [3, 28, 31, 36, 37, 43, 44, 48], "wish": [3, 5, 7, 17, 18, 26, 28, 32, 35, 36, 37, 44, 48], "paragraph": 3, "2": [3, 8, 11, 14, 18, 22, 30, 31, 32, 33, 34, 36, 37, 39, 40, 43, 44, 46], "after": [3, 4, 8, 11, 17, 18, 22, 28, 29, 30, 34, 35, 37, 44, 46, 47, 49], "move": [3, 4, 16, 22, 32, 44, 49], "appropri": [3, 5, 32, 36, 37, 40, 42, 43], "onli": [3, 4, 5, 6, 7, 8, 11, 16, 17, 18, 19, 21, 22, 23, 26, 27, 29, 30, 32, 34, 35, 36, 37, 39, 41, 43, 44, 45, 46, 47, 48, 50], "portion": [3, 7, 11, 44], "end": [3, 28, 30, 31, 37, 43, 44, 45], "point": [3, 6, 8, 22, 27, 31, 32, 36, 37, 44], "hopefulli": [3, 44], "IT": [3, 4], "fun": [3, 49], "pleas": [4, 5, 6, 7, 10, 11, 17, 20, 22, 33, 37, 40, 44], "least": [4, 18, 28, 31, 32, 35, 37], "skim": 4, "ask": [4, 18, 30, 32, 41, 44, 46], "question": [4, 30], "ve": [4, 16, 32, 35, 36, 41], "never": [4, 5, 11, 37, 44], "successfulli": [4, 28, 44, 48], "sure": [4, 11, 28, 29, 32, 33, 36, 37, 44, 49], "select": [4, 32, 37, 38, 42, 44], "n": [4, 5, 11, 30, 31, 36, 37, 41, 44, 45, 50], "owner": [4, 8, 11, 32, 37, 41, 44, 50], "wise": [4, 37], "100": [4, 18, 48], "power": [4, 38], "TO": 4, "someon": [4, 11, 18, 29, 32, 33, 44, 48], "trust": [4, 37, 50], "about": [4, 6, 25, 26, 28, 29, 30, 31, 37, 44, 47, 49], "older": [4, 39, 44], "frequent": [4, 32], "where": [4, 6, 8, 11, 15, 16, 19, 22, 28, 29, 30, 32, 33, 34, 37, 38, 43, 44, 46, 48], "might": [4, 18, 24, 28, 37, 44, 46], "two": [4, 6, 18, 23, 29, 31, 32, 34, 35, 36, 37, 43, 44, 46, 47], "method": [4, 6, 10, 17, 18, 20, 25, 29, 32, 33, 43, 47, 49], "come": [4, 6, 18, 22, 30, 32, 42, 44], "imag": 4, "latest": [4, 5, 32], "pub": [4, 5, 22, 30, 31, 34, 44], "cv": 4, "base": [4, 32, 34, 37, 43, 44], "interest": 4, "veri": [4, 6, 17, 21, 22, 29, 37], "updat": [4, 5, 20, 28, 32, 34, 37, 38, 43, 44, 48], "pull": [4, 42, 43], "recent": [4, 32, 44, 46], "BE": 4, "warn": [4, 17, 29, 44], "branch": [4, 42], "consid": [4, 32, 34, 35, 37, 41, 44], "haha": 4, "signific": [4, 6], "repositori": [4, 32], "simpli": [4, 5, 30, 32, 33, 40, 44, 49], "tar": [4, 7, 32], "archiv": 4, "gz": [4, 32], "hub": [4, 23, 32, 36, 37, 43, 46], "_": [4, 34, 45], "mani": [4, 5, 11, 15, 16, 18, 22, 28, 30, 31, 32, 33, 36, 37, 44], "tclsh": 4, "given": [4, 8, 15, 16, 17, 32, 36, 44, 48], "exit": [4, 6, 13, 16, 22, 44], "howev": [4, 7, 14, 22, 30, 33, 34, 37, 43, 44, 46, 47], "often": [4, 6, 15, 30, 37, 48], "o": [4, 11, 14, 18, 25, 32, 33, 36, 37, 39, 44, 48, 49, 50], "usual": [4, 30, 31, 32, 33, 35, 39, 42, 43, 44, 46, 49], "someth": [4, 8, 29, 32, 42, 44, 49], "similar": [4, 11, 30, 31, 32, 37, 41, 42, 44, 47], "dev": [4, 32, 33], "tk": 4, "tcltk": 4, "html": [4, 39], "recommend": [4, 5, 11, 24, 28, 32, 43, 44, 47, 48], "order": [4, 15, 29, 31, 34, 37, 43, 44, 46, 48], "data": [4, 11, 23, 28, 33, 43, 44], "libssl": [4, 32, 33], "finish": [4, 8, 16, 32, 44], "simpl": [4, 28, 29, 30, 31, 32, 44], "new": [4, 5, 7, 20, 25, 29, 30, 31, 32, 34, 37, 38, 39, 40, 41, 42, 43, 46, 47, 49], "repeat": [4, 34, 44], "defin": [4, 6, 8, 11, 12, 14, 18, 22, 28, 29, 32, 34, 35, 36, 37, 40, 44, 50], "through": [4, 11, 16, 22, 25, 29, 33, 38, 39, 40, 41, 44, 49, 50], "sometim": [4, 22, 32], "mode": [4, 5, 11, 14, 18, 22, 25, 28, 30, 34, 35, 37, 38, 40, 49], "let": [4, 6, 8, 11, 15, 19, 28, 29, 32, 36, 37, 38, 44], "avail": [4, 8, 11, 16, 20, 26, 28, 30, 31, 32, 33, 37, 38, 39, 41, 44, 49], "t": [4, 6, 7, 8, 10, 11, 13, 15, 16, 17, 18, 20, 22, 23, 25, 26, 28, 29, 30, 31, 32, 35, 36, 37, 41, 44, 45, 46, 47, 48, 50], "don": [4, 7, 11, 15, 16, 18, 22, 23, 25, 28, 29, 30, 31, 32, 36, 37, 41, 44, 46, 47], "termin": [4, 5, 8, 44], "session": [4, 39, 40], "troubleshoot": [4, 32], "issu": [4, 5, 17, 25, 32, 34, 37, 42, 44, 46, 48, 49], "show": [4, 6, 8, 11, 16, 26, 29, 36, 37, 44], "10": [4, 8, 11, 18, 30, 32, 36, 37, 44], "second": [4, 11, 14, 15, 18, 22, 24, 28, 29, 31, 37, 47], "screen": [4, 42, 45], "clear": [4, 6, 8, 42, 44, 46, 48, 49], "one": [4, 8, 11, 16, 17, 18, 22, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 41, 42, 43, 44, 46, 47], "person": [4, 29, 32, 37, 44], "introduc": [4, 32, 44], "himself": 4, "herself": 4, "ll": [4, 29, 30, 31, 32, 34, 37, 43, 44, 46], "h": [4, 8, 18, 28, 33, 36, 37, 44, 50], "quit": [4, 6, 22, 32, 37, 44], "v": [4, 8, 11, 18, 30, 37, 44, 45, 50], "peopl": [4, 11, 16, 17, 18, 19, 22, 23, 29, 32, 37, 38, 41, 44, 45, 50], "except": [4, 14, 22, 28, 37, 44, 46], "onc": [4, 11, 16, 18, 20, 22, 29, 30, 32, 36, 42, 44], "along": [4, 16, 31], "manual": [4, 30, 36, 37, 39, 44, 46, 48], "oper": [4, 14, 22, 29, 37, 39, 44, 45], "reason": [4, 28, 30, 32, 36, 37], "monitor": [4, 30, 35, 38, 40], "boot": [4, 8, 37], "b": [4, 11, 16, 18, 25, 29, 30, 36, 37, 42, 44, 45, 49, 50], "minut": [4, 11, 18, 24, 28, 30, 32, 35, 37], "attempt": [4, 5, 11, 17, 18, 22, 25, 33, 34, 35, 36, 37, 44, 46, 49], "geneer": 4, "setup": [4, 6, 7, 32, 37], "would": [4, 5, 14, 29, 30, 32, 33, 34, 36, 37, 44, 45, 46, 48, 49], "noemail": 4, "botchk": [4, 30, 32], "send": [4, 6, 12, 16, 18, 19, 22, 23, 24, 28, 29, 32, 34, 36, 39, 44, 47, 48], "email": [4, 30, 37, 44], "sai": [4, 11, 16, 29, 33, 36, 44], "we": [4, 5, 8, 18, 25, 28, 29, 30, 31, 32, 33, 36, 44, 49], "re": [4, 11, 17, 18, 22, 24, 29, 30, 32, 33, 34, 35, 37, 39, 41, 44, 49], "feel": [4, 5, 28, 42], "miss": [4, 32, 34, 44], "yet": [4, 22, 31, 32, 37, 44], "thank": 4, "discuss": [4, 42], "dalnet": [4, 18, 22], "efnet": [4, 18, 22], "egghelp": [4, 32], "ircnet": [4, 11, 18, 22], "quakenet": [4, 22], "undernet": [4, 18, 22, 44], "plan": [4, 29, 44], "familiar": [4, 29], "etiquett": 4, "capit": [4, 50], "letter": [4, 37, 50], "color": [4, 44], "bold": [4, 44, 45, 50], "excess": [4, 11, 22], "msg": [4, 6, 18, 21, 22, 30, 31, 32, 37, 38, 41, 43, 48], "permiss": [4, 37, 43], "than": [4, 8, 11, 14, 16, 18, 32, 33, 37, 43, 44, 46], "text": [4, 11, 22, 28, 30, 31, 37, 45, 46, 47, 48, 50], "state": [4, 44], "relev": [4, 28, 32], "error": [4, 22, 28, 32, 37, 44, 49], "messag": [4, 11, 22, 28, 29, 31, 32, 34, 37, 38, 40, 41, 43, 45, 47, 48], "easi": [5, 29, 32, 44, 46], "pictur": 5, "reus": [5, 44], "visit": [5, 49], "newer": [5, 32], "backup": [5, 28], "chan": [5, 8, 11, 18, 29, 30, 31, 32, 47], "save": [5, 6, 11, 12, 13, 23, 36, 37, 38, 43], "overwritten": [5, 37, 44], "hurt": 5, "another": 5, "next": [5, 8, 11, 16, 22, 28, 29, 31, 32, 33, 36, 37, 44], "view": [5, 7, 20, 30, 32, 38, 44, 48], "pai": [5, 34, 44], "particular": [5, 30, 31, 37], "attent": [5, 22, 34, 44], "section": [5, 8, 11, 18, 22, 25, 29, 31, 32, 36, 37, 44, 49], "Then": [5, 30, 32, 46], "previous": [5, 32, 44], "unzip": [5, 32], "untar": 5, "These": [5, 12, 18, 28, 32, 34, 35, 36, 37, 39, 45, 46, 48, 50], "NOT": [5, 29, 32, 34, 36, 37, 44, 48], "rather": [5, 44, 46], "killer": 5, "directli": [5, 6, 11, 17, 23, 31, 32, 44], "affect": [5, 11, 25, 37, 38, 39, 44, 49], "modif": [5, 32, 44], "migrat": 5, "suggest": [5, 28], "deprec": [5, 33, 44], "password": [5, 6, 10, 18, 20, 22, 23, 30, 32, 36, 37, 38, 41, 43, 46, 49], "favor": [5, 23], "big": [5, 24, 44, 47], "done": [5, 8, 23, 28, 30, 31, 32, 33, 36, 42, 43, 44, 49], "carelessli": 5, "potenti": [5, 17, 29, 44, 48], "render": [5, 25, 49], "store": [5, 6, 11, 13, 16, 19, 25, 26, 29, 32, 34, 36, 43, 44, 48, 49], "useless": [5, 25, 49], "properli": [5, 31, 32, 33, 36, 37], "switch": [5, 28, 32, 34, 37, 44, 46, 47], "syntax": [5, 8, 30, 37, 46, 50], "6667": [5, 22, 32, 44, 49], "3rd": [5, 8], "remov": [5, 11, 16, 20, 28, 30, 31, 32, 35, 38, 39, 43, 47, 48, 49], "ftp": [5, 32], "fulli": [5, 37, 44, 49], "explicitli": [5, 44, 46], "prefix": [5, 8, 18, 22, 29, 33, 36, 37, 41, 46, 48, 49], "advantag": [5, 32, 47], "chaddr": [5, 36], "lot": [5, 8, 18, 29, 32, 34], "backward": [5, 40], "reflect": [5, 44], "cancel": [6, 44], "cd": [6, 8, 28, 31, 32, 44], "cp": 6, "dst": 6, "desc": [6, 28], "descript": [6, 28, 29, 30, 37, 44, 48, 50], "filestat": 6, "stat": 6, "get": [6, 7, 8, 11, 22, 23, 24, 28, 29, 33, 34, 37, 41, 50], "filenam": [6, 11, 19, 32, 37, 46], "nicknam": [6, 8, 22, 29, 30, 32, 34, 37, 45, 47, 48, 50], "hide": [6, 39, 44], "ln": 6, "filepath": 6, "localfil": 6, "l": [6, 11, 18, 22, 30, 34, 36, 37, 50], "filemask": 6, "mkdir": 6, "dir": [6, 30], "mv": 6, "pend": [6, 11], "pwd": [6, 32], "rm": [6, 32], "rmdir": 6, "optim": [6, 8, 22], "unhid": 6, "unshar": [6, 50], "api": [6, 31], "md5": [6, 10], "anymor": [6, 10, 20, 37], "won": [6, 11, 23, 28, 29, 32, 35, 36, 37, 44, 46, 48], "specif": [6, 11, 15, 17, 18, 20, 22, 25, 31, 32, 36, 39, 40, 44, 46, 48, 49, 50], "therefor": [6, 18, 32, 37, 44], "amount": [6, 37], "bandwidth": [6, 12], "storag": [6, 13, 43], "repli": [6, 14, 15, 17, 18, 34, 37, 44], "d": [6, 11, 14, 16, 28, 30, 31, 32, 33, 36, 37, 42, 44, 47, 50], "expect": [6, 14, 37, 44], "load": [6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36, 37, 43, 44, 49], "asynchron": [6, 15, 44], "avoid": [6, 8, 15, 30], "long": [6, 11, 15, 19, 22, 23, 35, 37, 44, 45, 48], "period": [6, 15, 32, 44], "hang": [6, 15], "wait": [6, 15, 16, 18, 22, 24, 32, 34, 37, 44], "hostnam": [6, 11, 15, 30, 37, 39], "resolv": [6, 15, 37, 44], "timeout": [6, 15, 22, 24, 37, 48], "area": [6, 16, 37, 44, 47, 50], "within": [6, 16, 28, 32, 33, 35, 37, 40, 44], "usabl": [6, 16, 37], "onlin": [6, 16, 19, 30, 34], "retriev": [6, 19], "userlist": [6, 18, 21, 23], "gseen": [6, 21], "g": [6, 8, 21, 28, 32, 36, 37, 44, 50], "quann": [6, 21], "kreativrauschen": [6, 21], "Not": [6, 22, 30, 40], "equival": [6, 22, 33], "old": [6, 20, 22, 32], "no_irc": [6, 22], "servic": [6, 11, 17, 25, 30, 34, 44, 46, 49], "implement": [6, 7, 8, 17, 33, 34, 37, 40, 42, 43, 44, 49], "tiwtch": 6, "report": [6, 16, 26, 28, 32, 47], "statist": [6, 16, 26], "contest": 6, "site": [6, 50], "hour": [6, 26, 28, 35, 37, 44], "isn": [6, 16, 22, 23, 26, 32, 35, 44], "again": [6, 16, 26, 28, 31, 35, 36, 37, 43, 44, 48], "sent": [6, 16, 18, 23, 26, 30, 34, 37, 40, 41, 44, 46, 48, 50], "demonstr": [6, 27, 44], "right": [6, 8, 16, 17, 27, 29, 32, 44], "jul": 7, "25": [7, 11, 22, 37, 48], "2016": 7, "independ": 7, "main": [7, 29, 32, 33, 34, 41], "desir": [7, 8, 28, 30, 31, 32, 43], "extra": [7, 37, 40], "overhead": 7, "bloat": 7, "enhanc": 7, "instruct": [7, 32, 43], "direct": [7, 33, 36, 42, 44], "un": [7, 18, 35, 37, 44], "format": [7, 22, 28, 30, 32, 33, 37, 43, 44, 45, 48], "modulenam": [7, 28], "eggdrop1": 7, "folder": 7, "suffix": [7, 37], "rehash": [7, 28, 29, 30, 37], "ye": [7, 29, 30, 33, 44], "detect": [7, 22, 33, 39, 44, 46], "yourself": [7, 30, 32, 42, 43, 46], "until": [7, 11, 16, 35, 37, 44], "henc": [7, 28, 44], "nearli": 7, "who": [8, 11, 16, 18, 22, 29, 32, 34, 37, 41, 44, 50], "understand": [8, 31, 37, 44], "alreadi": [8, 11, 22, 28, 29, 31, 32, 33, 34, 36, 37, 43, 44, 49], "suitabl": [8, 48], "illustr": 8, "handl": [8, 29, 30, 31, 35, 37, 43, 46, 48], "snippet": 8, "alter": [8, 16, 38, 44, 49], "breviti": 8, "simplic": 8, "initi": [8, 28, 29, 32, 39, 40, 44, 46], "symbol": [8, 33, 44], "extern": [8, 17, 30, 37], "p_tcl_bind_list": [8, 31], "h_dcc": 8, "param": 8, "const": [8, 28], "char": [8, 28, 31, 37, 44], "length": [8, 18, 22, 28, 43, 44, 46], "tclhash": 8, "int": [8, 28, 31], "intfunc": 8, "return": [8, 18, 28, 31, 34, 43, 48], "aka": [8, 37], "tcl_bind_list_t": 8, "add_bind_t": [8, 31], "builtin_dcc": 8, "doe": [8, 11, 25, 29, 30, 34, 35, 37, 40, 41, 44, 48, 49, 50], "explain": [8, 11, 36, 44], "happen": [8, 29, 32, 35, 37, 44], "arbitrari": [8, 44], "argument": [8, 16, 18, 29, 30, 39, 44, 48], "import": [8, 28, 29, 30, 32, 34, 37, 41, 44], "That": [8, 25, 29, 32, 36, 44, 50], "mean": [8, 16, 18, 22, 29, 30, 31, 34, 35, 36, 37, 38, 39, 43, 44, 46, 48], "mask": [8, 16, 22, 29, 31, 37, 48], "test": [8, 29, 32, 50], "proc1": 8, "proc2": 8, "overwrit": [8, 17, 32, 44], "proc": [8, 22, 28, 29, 48], "myproc": [8, 44], "arg": [8, 28, 31], "putlog": [8, 22, 28, 29, 31], "Of": [8, 36, 37], "far": [8, 16], "against": [8, 11, 16, 20, 22, 29, 31, 32, 43, 44, 48], "receiv": [8, 15, 16, 22, 24, 30, 31, 36, 44, 48], "accept": [8, 16, 23, 25, 31, 33, 36, 37, 44, 46, 49], "check_tcl_dcc": 8, "cmd": [8, 37, 44], "idx": [8, 28, 31], "struct": [8, 31], "flag_record": [8, 31], "fr": [8, 31], "fr_global": [8, 31], "fr_chan": [8, 31], "11": [8, 44], "get_user_flagrec": 8, "con_chan": 8, "egg_snprintf": 8, "sizeof": [8, 31], "ld": 8, "sock": [8, 28, 37], "tcl_setvar": [8, 31], "interp": [8, 31], "_dcc1": 8, "nick": [8, 11, 18, 22, 26, 29, 30, 31, 32, 37, 50], "_dcc2": 8, "_dcc3": 8, "check_tcl_bind": [8, 31], "match_parti": 8, "bind_use_attr": 8, "bind_has_builtin": 8, "snip": 8, "temporari": [8, 11, 24, 26, 35, 37], "pass": [8, 29, 30, 31, 32, 34, 39, 41, 43, 48], "callback": [8, 34], "socket": [8, 17, 28, 33, 44, 46], "id": [8, 44], "putdcc": 8, "respond": [8, 11, 32, 44], "back": [8, 22, 29, 32, 37, 39, 42, 43, 44, 47], "depend": [8, 28, 34, 35, 42, 44, 46, 50], "caller": 8, "pars": [8, 44], "atr": 8, "match_typ": 8, "matchtyp": 8, "result": [8, 22, 34, 35, 37, 39, 44], "bind_nomatch": 8, "tm": 8, "tm_last": 8, "check_bind_match": 8, "continu": [8, 32, 44], "tc": 8, "suffic": [8, 29], "check_bind_flag": 8, "hit": [8, 44], "tcl_eval": 8, "procnam": [8, 29, 44, 48], "grab": [8, 44], "trigger_bind": 8, "func_nam": [8, 28], "suppli": [8, 37], "case": [8, 15, 20, 22, 29, 31, 32, 34, 37, 44], "uniqu": [8, 37, 44, 48], "identifi": [8, 30, 37, 43, 44, 50], "unsur": [8, 32], "wildcard": [8, 11, 29, 30, 44, 48], "exact": [8, 44], "tclegg": 8, "describ": [8, 28, 29, 32, 33, 36, 37], "AND": [8, 20, 32, 44], "bind_stack": [8, 31], "add_builtin": [8, 28], "cmd_t": [8, 28, 31], "null": [8, 28, 31], "mycmd": 8, "tcl_name": 8, "void": [8, 28, 31], "cc": [8, 28], "p": [8, 11, 17, 30, 32, 36, 37, 44, 50], "1024": [8, 16, 17, 24, 31, 32], "cd_tcl_cmd": 8, "tclcmd": 8, "func": [8, 28], "bindtyp": 8, "funcnam": 8, "h_raw": 8, "324": 8, "got324": 8, "raw": [8, 34, 37, 46], "cmd_boot": 8, "cdata": 8, "add_cd_tcl_cmd": 8, "bind_bind_entri": 8, "context": [8, 28], "suppos": 8, "typic": [8, 16, 25, 37, 38, 41, 44, 49], "tcl_command": 8, "tcl_putdcc": 8, "clientdata": 8, "tcl_interp": 8, "irp": [8, 31], "argc": 8, "argv": [8, 31], "f": [8, 11, 31, 36, 37, 44, 45, 48, 50], "okai": [8, 37], "verifi": [8, 22, 30, 37, 46], "count": [8, 22], "badarg": [8, 31], "hand": [8, 29, 37, 44], "macro": [8, 28, 31], "saniti": 8, "checkvalid": [8, 31], "findidx": 8, "atoi": 8, "tcl_appendresult": [8, 31], "invalid": [8, 44], "tcl_error": [8, 31], "tcl_resetresult": 8, "tcl_ok": [8, 31], "oppos": [8, 44], "userrec": [8, 31], "know": [8, 18, 19, 22, 25, 28, 29, 34, 35, 36, 37, 44, 47, 49], "valu": [8, 11, 14, 15, 18, 22, 25, 28, 29, 37, 43, 45, 46, 48, 49], "els": [8, 29, 31, 41, 44], "par": [8, 31], "associ": [8, 25, 34, 44, 49], "gbuildin_dcc": 8, "annot": 8, "gdb": 8, "backtrac": 8, "thommei": 8, "0x55e8bd8a49b0": 8, "0x55e8be6a0010": 8, "614": 8, "0x55e8bd8aec90": 8, "8977024": 8, "flags_udef": 8, "chanrec": [8, 18, 44], "0x55e8bd8aeae0": 8, "0x55e8bd8a4a10": 8, "0x55e8bbf002d0": 8, "0x55e8bd59b1c0": 8, "0x55e8bd7e3e00": 8, "678": 8, "0x55e8be642fa0": 8, "0x55e8be9f6bd0": 8, "0x55e8be7d9020": 8, "0x0": 8, "usr": 8, "lib": 8, "x86_64": 8, "linux": [8, 39], "libtcl8": 8, "lastbind": 8, "0x55e8bd5efda0": 8, "0x55e8bbf4112b": 8, "0x55e8bd5efd40": 8, "742": 8, "0x55e8bd5eecb0": 8, "0x7ffcf3f9dac1": 8, "0x7ffcf3f9d100": 8, "80": 8, "942": 8, "brkt": 8, "0x7ffcf3f9dac6": 8, "974": 8, "udef_glob": 8, "udef_chan": 8, "dcc_chat": 8, "buf": [8, 18], "1068": 8, "2002": [9, 13, 14, 19, 21, 24, 26, 35, 41, 45, 50], "none": [9, 10, 11, 13, 15, 19, 20, 21, 22, 24, 27, 44], "loadmodul": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 37, 43, 49], "2000": [9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 27, 37, 38, 43], "2003": [10, 23, 29], "octob": [11, 20, 22, 37], "chanfil": [11, 32, 47], "expir": [11, 18, 19, 22, 35, 37, 44, 46], "enforc": [11, 30, 34, 37], "chanmod": [11, 30], "mix": [11, 18], "endless": 11, "insert": [11, 45], "below": [11, 16, 17, 23, 25, 28, 29, 32, 37, 43, 44, 48], "idl": [11, 28, 44], "kick": [11, 18, 22, 34, 37, 44, 47, 50], "disabl": [11, 18, 22, 30, 37, 39, 44, 46], "stopnethack": [11, 50], "de": [11, 34, 44], "anyon": [11, 35, 44], "serverop": 11, "seven": [11, 44], "turn": [11, 17, 22, 37, 44], "off": [11, 17, 18, 22, 32, 36, 37, 41, 44], "isoptest": 11, "wasoptest": 11, "split": [11, 18, 39, 41, 44, 45], "isop": 11, "wasop": [11, 18, 50], "bitch": 11, "reveng": 11, "punish": [11, 44, 50], "bad": [11, 44, 50], "four": [11, 29, 34, 37, 39, 44, 45], "deop": [11, 44, 50], "k": [11, 18, 22, 37, 44, 50], "specifi": [11, 15, 16, 17, 19, 22, 23, 28, 30, 32, 35, 37, 38, 39, 43, 44, 46, 48], "19": [11, 44], "correspond": [11, 30, 35, 44], "replac": [11, 22, 28, 30, 37, 44, 45, 49], "20": [11, 16, 18, 25, 30, 37, 44], "29": [11, 44], "30": [11, 16, 18, 24, 30, 43, 44], "39": [11, 44], "120": [11, 22, 44], "60": [11, 16, 19, 22, 37, 44], "aop": 11, "delai": [11, 16, 18, 29], "maximum": [11, 15, 16, 18, 19, 22, 24, 31, 37, 43, 44, 46], "autoop": 11, "autohalfop": 11, "autovoic": [11, 50], "No": [11, 23, 30, 33, 44, 49], "y": [11, 14, 33, 37, 50], "random": [11, 22, 36, 44], "putserv": [11, 29, 30], "privmsg": [11, 29, 30, 44], "lamest": [11, 32, 36, 37, 45], "me": [11, 50], "co": 11, "lame": [11, 18, 36, 37, 44], "enclos": [11, 31, 39, 44, 48], "brace": 11, "shorter": 11, "getop": 11, "botnetop": 11, "unban": [11, 37, 44], "rais": [11, 22], "15": [11, 37, 43, 44, 45], "constitut": [11, 22, 37], "integ": [11, 44], "plu": [11, 22, 37, 44, 46], "minu": 11, "front": [11, 29, 32, 33, 44, 49], "enforceban": 11, "dynamicban": [11, 44], "necessari": [11, 33], "rememb": [11, 29, 30, 32], "userban": 11, "dynamicexempt": [11, 44], "remain": [11, 35, 44], "userexempt": 11, "dynamicinvit": [11, 44], "userinvit": 11, "soon": [11, 44], "insecur": 11, "halfop": [11, 44, 50], "protectop": 11, "protecthalfop": 11, "dehalfop": [11, 44, 50], "protectfriend": 11, "statuslog": 11, "total": [11, 28, 38, 44], "member": [11, 28, 34], "regular": [11, 44, 46], "sampl": [11, 31, 32, 49], "01": [11, 18, 44], "40": [11, 30], "istn": 11, "friend": [11, 50], "revengebot": 11, "secret": 11, "cycl": [11, 22, 37], "dontkickop": 11, "instanc": [11, 34], "attack": [11, 20, 43], "inact": [11, 24], "leav": [11, 22, 32, 37, 41, 44, 49], "lose": 11, "nodesynch": 11, "fight": 11, "chanserv": 11, "ircop": [11, 18], "perman": [11, 35, 37, 44], "explan": [11, 32, 33, 44, 48], "nt": [11, 32], "chanset": [11, 30, 36], "2004": [12, 18], "level": [12, 17, 30, 31, 34, 37, 50], "gzip": [12, 44], "autosav": 13, "doesn": [13, 15, 18, 31, 32, 41, 44, 47, 48], "displai": [13, 16, 18, 22, 30, 31, 32, 37, 44, 45, 48], "februari": 14, "12": [14, 44], "behavior": [14, 18, 35, 37, 39, 44], "ping": 14, "less": [14, 41, 44], "finger": [14, 32], "userinfo": [14, 44], "septemb": 15, "26": [15, 32, 46, 50], "troubl": [15, 37], "ones": [15, 23, 36, 39, 44], "rel": [15, 28, 32, 44], "standard": [15, 17, 18, 24, 28, 29, 40, 44, 46, 49, 50], "cach": [15, 44], "86400": 15, "respect": [15, 39, 44, 45], "ttl": 15, "upper": 15, "boundari": [15, 31], "negcach": 15, "600": [15, 18], "neg": [15, 37, 44], "nxdomain": 15, "lookup": [15, 37, 39, 44], "fail": [15, 24, 37, 44, 46], "maxsend": 15, "resend": [15, 44], "queri": [15, 17, 34, 39], "retrydelai": 15, "dec": [16, 44], "2017": 16, "mydir": 16, "root": [16, 17], "incom": [16, 37, 44], "upload": [16, 32, 38, 44, 47], "central": [16, 37], "filedb": [16, 44], "subdirectori": [16, 44], "databas": [16, 44], "max": [16, 18, 19, 22, 24, 37], "effect": [16, 35, 37, 44], "infinit": 16, "files": 16, "size": [16, 24, 28, 31, 37, 44], "kb": 16, "sub": [16, 44], "brows": 16, "tell": [16, 29, 30, 31, 32, 33, 34, 36, 37, 44, 49], "queu": [16, 22, 44], "exactli": [16, 18, 28, 29, 44], "group": [16, 17, 37, 40, 44], "master": [16, 30, 32, 35, 36, 37, 44, 45, 50], "janitor": [16, 50], "broken": [16, 29, 37, 44], "word": [16, 18, 30, 31, 32, 36, 44, 48, 49], "break": [16, 44], "comment": [16, 18, 26, 29, 32, 37, 43], "over": [16, 22, 25, 28, 29, 32, 37, 39, 44, 46, 47, 49], "client": [16, 17, 22, 25, 30, 32, 34, 37, 40, 44, 46, 49], "too": [16, 18, 22, 24, 28, 37, 44], "patient": 16, "simultan": [16, 24, 44], "remaind": [16, 48], "mark": [16, 31, 38, 44, 50], "hidden": [16, 32, 38], "lsa": 16, "gif": 16, "uglyman": 16, "nobodi": [16, 29], "local": [16, 29, 32, 37, 41, 42, 44, 46], "snowbot": 16, "ugli": 16, "shown": [16, 32, 37], "kilobyt": [16, 37], "progress": 16, "eras": [16, 44], "remot": [16, 36, 37, 44, 45], "By": [16, 18, 20, 22, 24, 30, 34, 36, 37, 44, 46, 49], "clean": 16, "slow": [16, 32, 37], "db": 16, "itself": [16, 28, 29, 30, 31, 37, 44], "though": [16, 22, 29, 32, 44, 46], "tag": [16, 38, 40, 48], "filesystem": [16, 44, 50], "june": 17, "2019": 17, "oident": 17, "act": [17, 28, 37, 38, 44, 46], "daemon": [17, 37], "tradition": 17, "113": 17, "usernam": [17, 30, 32, 37, 48, 49], "custom": [17, 22, 29, 30, 34, 38, 44, 46], "oidentd": 17, "nor": 17, "thu": [17, 29, 34, 39, 43, 44], "modern": [17, 43], "oss": 17, "sudo": [17, 32], "setcap": 17, "cap_net_bind_servic": 17, "ep": 17, "imperson": 17, "iptabl": 17, "rout": [17, 44], "destin": [17, 28], "nat": [17, 37, 39], "prerout": 17, "eth0": 17, "dport": 17, "j": [17, 28, 36, 37, 44, 50], "redirect": 17, "addition": [17, 32, 34, 44], "caus": [17, 31, 32, 36, 44, 47], "bound": [17, 37, 44], "netsplit": [17, 18, 37, 38, 44], "reboot": [17, 30], "conflict": 17, "suit": [17, 31, 32], "singl": [17, 18, 30, 44, 48], "environ": [17, 37, 38, 46], "spoof": 17, "open": [17, 30, 31, 37, 41, 42, 44, 46], "builtin": [17, 44], "identd": [17, 32], "shouldn": 17, "begin": [17, 29, 39, 44], "august": 18, "21": [18, 32], "bounc": 18, "reach": [18, 22, 31, 37], "45": 18, "left": [18, 31, 44], "unless": [18, 22, 29, 32, 35, 37, 44], "overridden": 18, "unabl": [18, 32, 36, 39, 44, 49], "learn": [18, 30, 31, 32, 37, 38, 44], "themselv": [18, 32, 36, 44, 47], "userflag": 18, "hello": [18, 22, 30, 32, 37, 38, 44], "afterward": [18, 37], "1500": 18, "180": 18, "200": [18, 41], "byte": [18, 22, 24, 28, 31, 44], "unbind": [18, 37, 47, 48], "myword": 18, "addhost": 18, "takeov": 18, "occur": [18, 29, 44], "due": [18, 22, 29, 37, 44, 48], "blindli": 18, "ing": [18, 25, 49], "guess": 18, "discourag": 18, "opchar": 18, "recogn": [18, 22, 30, 50], "fine": [18, 22, 37, 48], "unrealircd": [18, 44], "lazi": 18, "gone": [18, 44], "At": [18, 31, 36, 37, 41, 49], "moment": [18, 32, 33], "ircd": [18, 22, 44], "per": [18, 44, 48], "stack": [18, 39, 44], "guarante": [18, 34], "although": [18, 32, 37, 44], "higher": [18, 20, 23, 24, 32, 46], "modes_per_line_max": 18, "recompil": [18, 32], "lk": 18, "354": [18, 44], "ircu2": 18, "rfc": [18, 22, 25, 44, 49], "compliant": [18, 22, 44], "1459": 18, "routin": [18, 37, 44], "notefil": [19, 44], "privat": [19, 23, 29, 30, 32, 33, 37, 41, 44, 46], "50": [19, 30, 37], "life": [19, 32], "dai": [19, 24, 37, 44, 47], "fwd": 19, "forward": 19, "address": [19, 23, 26, 32, 36, 37, 39, 46], "notifi": [19, 22, 32, 37, 38, 40, 44], "hourli": [19, 28, 37], "onjoin": 19, "2020": [20, 25, 37, 46, 48], "transit": [20, 43, 44], "safe": [20, 30, 32, 33, 43, 49], "earlier": [20, 31], "seamlessli": 20, "eventu": 20, "altogeth": 20, "outsid": [20, 31, 33, 37], "rijndael": 20, "sha256": 20, "cryptograph": [20, 43, 44], "digest": [20, 44], "algorithm": [20, 43], "round": [20, 43], "1600": 20, "brute": 20, "freenod": 22, "rizon": 22, "sane": 22, "altnick": [22, 32], "stb": 22, "unavail": [22, 37], "hi": [22, 29, 32], "primari": [22, 37], "realnam": [22, 44], "real": [22, 28, 30, 44], "field": [22, 31, 34, 37, 44, 46], "evnt": [22, 44], "init": [22, 37, 44], "init_serv": 22, "botnick": [22, 29, 30, 32, 37], "putquick": 22, "w": [22, 37, 44, 45, 50], "immedi": [22, 31, 32, 34, 43, 44], "deprici": 22, "disconnect": [22, 23, 37, 44], "7000": [22, 32, 33, 44], "2001": [22, 26, 27, 32, 37, 41], "db8": [22, 32, 37], "618": [22, 32, 37], "5c0": [22, 32, 37], "263": [22, 32, 37], "6669": [22, 32], "6697": [22, 32, 44, 46], "whenev": [22, 28, 31, 34, 36, 44, 46], "sign": [22, 30, 33, 37, 44, 45, 46, 49], "jump": [22, 31, 36, 46], "rate": 22, "transmit": 22, "lower": 22, "known": [22, 30, 37, 43, 44], "512": [22, 24], "verif": [22, 37, 46], "assum": [22, 29, 32, 33, 34, 35, 37, 44], "peer": [22, 37, 46], "alt": [22, 37], "16": [22, 37, 43, 44], "32": [22, 37], "revok": [22, 37], "instantli": 22, "low": [22, 24], "respons": [22, 34, 44], "stone": 22, "di": 22, "hasn": 22, "serverror": 22, "queue": [22, 28], "300": [22, 37], "dump": [22, 37, 44], "chunk": 22, "probabl": [22, 30, 32, 33, 44], "quiet": [22, 37, 50], "reject": [22, 36, 37], "squelch": 22, "lowercas": 22, "mirc": [22, 44], "exclus": [22, 44], "pubm": [22, 44], "msgm": [22, 44], "doubl": 22, "penalti": 22, "calcul": 22, "measur": 22, "trace": 22, "accordingli": 22, "three": [22, 30, 31, 34, 35, 36, 37, 44], "summar": 22, "cpu": [22, 37, 44], "intens": 22, "r": [22, 30, 36, 37, 44, 50], "umod": 22, "understood": 22, "indic": [22, 28, 32, 44, 48], "len": 22, "novemb": [23, 40], "resync": 23, "buffer": 23, "reconnect": [23, 44], "900": 23, "hold": [23, 44], "flush": 23, "overrid": [23, 39, 46], "mnot": 23, "paranoid": [23, 37], "discard": [23, 44], "dload": 24, "block": [24, 25, 28, 32, 45, 49], "ircii": [24, 44], "admit": 24, "turbo": [24, 32], "tmp": [24, 44], "stabil": 24, "nf": 24, "mount": 24, "pain": [24, 32], "xfer": [24, 50], "sharefail": 24, "unlink": [24, 37], "abort": [24, 32, 44, 46], "retri": 24, "april": [25, 48], "gatewai": [25, 48, 49], "stream": [25, 49], "claim": [25, 49], "certainli": [25, 32, 49], "meaning": [25, 44, 49], "intent": [25, 49], "spectrum": [25, 49], "focus": [25, 49], "raid": [25, 49], "donat": [25, 49], "userst": [25, 49], "roomstat": [25, 49], "few": [25, 29, 31, 32, 33, 37, 44, 49], "broadcast": [25, 41, 44, 48, 49], "000": [25, 41, 49], "unreli": [25, 48, 49], "moder": [25, 30, 48, 49], "mostli": [25, 44, 49], "infeas": [25, 49], "workaround": [25, 34], "tradit": [25, 39, 47, 48, 49], "extend": [25, 38, 40, 44], "downer": 25, "worri": 25, "ton": 25, "clearchat": [25, 48], "clearmsg": [25, 48], "hosttarget": [25, 48], "whisper": [25, 48], "usernotic": [25, 48], "roomsstat": 25, "twcmd": [25, 49], "ip": [26, 30, 32, 33, 37, 39], "logfil": [26, 28, 32, 37, 47], "publicli": 26, "31": [27, 37, 41, 44], "occurr": 28, "ensur": [28, 30, 32, 36, 43, 44], "module_nam": [28, 31], "making_modulenam": 28, "examin": 28, "close": [28, 44], "stdio": 28, "stdlib": 28, "sy": 28, "drastic": [28, 44], "reduc": [28, 48], "decent": 28, "throughout": 28, "refer": [28, 29, 33, 37, 44], "liter": [28, 44], "func_tabl": 28, "module_regist": [28, 31], "major": [28, 31, 32, 44], "minor": [28, 31, 44], "module_depend": [28, 31], "success": [28, 32, 44], "stage": 28, "any_other_funct": 28, "you_want_to_export": 28, "unload": [28, 31, 44], "apart": [28, 37], "tidi": 28, "thorough": [28, 30, 33, 49], "trail": 28, "garbag": 28, "module_undepend": [28, 31], "talli": 28, "memori": [28, 31, 44], "alloc": [28, 44], "dealloc": 28, "nmalloc": 28, "nfree": 28, "fault": 28, "posit": [28, 37], "resourc": 28, "dprintf": [28, 31], "printf": 28, "dp_log": 28, "dp_stdout": 28, "stdout": 28, "dp_mode": 28, "dp_server": 28, "dp_help": 28, "module_entri": 28, "module_find": 28, "search": [28, 30, 44], "module_renam": 28, "old_module_nam": 28, "new_module_nam": 28, "frim": 28, "add_hook": 28, "hook_num": 28, "del_hook": 28, "hook": 28, "hook_secondli": 28, "hook_minut": 28, "hook_5minut": 28, "hook_hourli": 28, "hook_daili": 28, "hook_read_userfil": 28, "hook_userfil": 28, "hook_pre_rehash": 28, "hook_rehash": 28, "hook_idl": 28, "whole": 28, "hook_backup": 28, "hook_load": 28, "hook_di": 28, "die": [28, 30, 32], "module_unload": 28, "module_load": 28, "tri": [28, 37, 44], "add_tcl_command": 28, "tcl_cmd": [28, 31], "tab": 28, "rem_tcl_command": 28, "function_to_cal": 28, "add_tcl_int": 28, "tcl_int": 28, "rem_tcl_int": 28, "variable_nam": 28, "readonli": 28, "add_tcl_str": 28, "tcl_string": 28, "rem_tcl_str": 28, "str_dir": 28, "constantli": 28, "append": [28, 31, 44], "str_protect": 28, "p_tcl_hash_list": 28, "rem_builtin": 28, "displaynam": 28, "convers": [28, 41, 46], "taken": [28, 44], "auch": 28, "filt": [28, 44], "noth": [28, 37, 44, 49], "logmod": 28, "nice": 28, "mention": 28, "realli": [29, 31, 32, 37, 47], "idea": [29, 32, 42], "busi": 29, "annoi": 29, "intention": 29, "definit": [29, 32, 33, 43], "languag": [29, 37, 38, 47], "especi": 29, "librari": [29, 31, 43, 46], "bottom": 29, "greetscript": 29, "author": [29, 33, 37, 46], "geo": 29, "gree": 29, "pmsg": 29, "greetmsg": 29, "welcom": 29, "uhost": [29, 44], "whew": 29, "ok": 29, "importantli": [29, 31], "wrote": 29, "credit": [29, 44], "contact": [29, 37], "hard": [29, 37], "larger": [29, 43], "harder": 29, "why": [29, 32, 44], "And": [29, 31], "omin": 29, "dissect": 29, "action": [29, 30, 33, 37, 44], "react": [29, 34], "toward": 29, "refin": 29, "foo": [29, 30, 31, 44], "aol": [29, 43], "sum": 29, "hostmask": [29, 30, 35, 36, 38, 43], "told": 29, "declar": [29, 31, 44], "said": [29, 31, 36, 44], "magic": 29, "awesom": 29, "sexystuff": 29, "third": [29, 31, 36], "fourth": 29, "trick": [29, 47], "didn": [29, 32, 44], "talk": [29, 31, 33, 34, 38, 41], "bodi": 29, "true": 29, "deserv": 29, "insid": [29, 37], "challeng": [29, 30], "mayb": [29, 37], "fancyp": 29, "sound": 29, "hint": 29, "utim": 29, "dozen": 29, "defens": 29, "grain": 29, "salt": [29, 43], "further": [30, 44], "IN": 30, "OR": [30, 44], "putti": 30, "listen": [30, 32, 36, 37, 39, 46], "3183": 30, "whoi": [30, 37], "chattr": [30, 50], "grant": [30, 38, 46, 49], "numer": [30, 33, 44], "chaninfo": [30, 36], "involv": 30, "snt": 30, "histor": [30, 44], "reli": [30, 44], "ten": 30, "commonli": [30, 33, 37, 44], "humor": 30, "youreggdropconfignameher": 30, "review": [30, 33], "youreggdrop": 30, "editor": [30, 32], "thee": [30, 44], "systemctl": 30, "botnam": [30, 36], "reload": 30, "acknowledg": 30, "confus": [30, 44], "unfortun": 30, "consult": [30, 39, 40, 46], "uncom": [30, 33, 37, 43], "layer": [30, 33], "becom": [30, 32, 37, 44], "preval": 30, "elimin": 30, "cloak": 30, "ever": [30, 32, 37, 44, 46], "appear": [30, 32, 36, 37, 44, 48], "mechan": 30, "plain": [30, 37, 46], "plaintext": [30, 44, 46], "exchang": 30, "ecdsa": 30, "nist256p": 30, "keypair": [30, 33], "pair": [30, 33, 34, 44, 46, 48], "ecparam": 30, "genkei": 30, "prime256v1": 30, "pem": [30, 37], "fingerprint": [30, 36, 37, 46], "ec": 30, "noout": 30, "conv_form": 30, "grep": 30, "tail": 30, "tr": 30, "xxd": 30, "base64": 30, "On": [30, 32, 33, 35, 36], "pubkei": 30, "req": [30, 37, 46], "x509": [30, 37, 46], "node": [30, 46], "keyout": [30, 46], "crt": [30, 37, 46], "yoru": 30, "outform": 30, "der": 30, "sha1sum": 30, "cut": 30, "f1": 30, "privatekei": [30, 33, 36, 37, 46], "cert": [30, 36, 37, 46], "onto": 31, "wherea": [31, 44], "our": [31, 32, 36, 44], "redistribut": 31, "publish": [31, 37], "hope": [31, 32, 49], "merchant": 31, "fit": 31, "FOR": 31, "59": [31, 44], "templ": 31, "330": 31, "02111": 31, "1307": 31, "necessarili": [31, 44], "undef": 31, "server_func": 31, "export_scop": 31, "woobie_start": 31, "woobie_expmem": 31, "woobie_report": 31, "global_func": 31, "woobie_t": 31, "108": 31, "woobie_clos": 31, "dosen": [], "log_cmd": 31, "print": 31, "cmd_woobi": 31, "mywoobi": 31, "scope": [31, 33], "tutori": [31, 33], "echo": [31, 38, 40, 47], "tcl_echom": 31, "stdvar": 31, "strcmp": 31, "llama": [31, 36], "illeg": 31, "input": [31, 44], "paramt": [], "paramet": [31, 44], "exceed": [31, 37], "style": [31, 35, 44], "quset": 31, "mytcl": 31, "echom": 31, "newli": 31, "certain": [31, 35, 37, 38, 39, 44, 45, 48, 50], "condit": 31, "met": 31, "h_woob": 31, "woobie_2char": 31, "del_bind_t": 31, "woobie_3char": 31, "bar": [31, 44], "moo": [31, 44], "boilerpl": 31, "check_tcl_bindnam": 31, "check_tcl_woobi": 31, "userhost": [31, 48], "snprintf": 31, "_woob1": 31, "_woob2": 31, "match_mask": 31, "bind_exec_log": 31, "encount": [31, 32, 49], "perhap": 32, "websit": 32, "slennox": 32, "incredibli": [32, 44], "page": [32, 42], "prove": 32, "debian": [32, 33], "apt": [32, 33], "wget": 32, "commadlin": 32, "zxvf": 32, "seri": [32, 44, 46], "multi": 32, "comfort": 32, "spent": [32, 44], "appli": [32, 35, 37, 43, 50], "daili": [32, 44], "chanc": 32, "commandlin": 32, "checkout": [32, 42], "skip": [32, 44], "commerci": 32, "problem": [32, 37, 39], "box": [32, 37], "isp": 32, "curl": 32, "ssh": 32, "haven": 32, "gunzip": 32, "xvf": 32, "extract": [32, 44], "slash": [32, 41], "brief": 32, "fast": 32, "botdir": 32, "cooldud": 32, "delet": [32, 44, 47], "rf": 32, "handi": 32, "zip": 32, "notepad": 32, "editplu": 32, "nano": 32, "vim": 32, "offer": [32, 33, 34, 48, 49], "quicker": 32, "nicebot": 32, "entir": [32, 44, 48, 49], "carefulli": [32, 44], "vagu": 32, "preserv": 32, "llamabot": [32, 37], "login": [32, 37, 43, 48], "vhost4": [32, 37, 39], "vhost": [32, 37, 39], "ipv4": [32, 37, 39], "ie": [32, 43, 44, 46], "vhost6": [32, 37, 39], "5254": 32, "dead": 32, "b33f": 32, "1337": 32, "f270": 32, "captur": [32, 44, 47], "mcobx": 32, "jkp": 32, "donkei": 32, "hors": 32, "3333": [32, 36, 37], "65535": [32, 37], "49152": 32, "rang": [32, 37], "reserv": [32, 37, 41], "basi": 32, "stealth": [32, 37], "scan": 32, "newus": [32, 37], "mrlame": [32, 37], "mrslame": [32, 37], "addus": 32, "rejoin": [32, 44], "aren": [32, 37, 44, 47, 48], "preced": [32, 44, 46], "backslash": 32, "rule": 32, "prematur": 32, "phew": 32, "cross": 32, "gave": 32, "promptli": 32, "kill": [32, 44], "pid": [32, 37, 44], "mnt": 32, "launch": 32, "persist": 32, "luck": [32, 49], "walk": 33, "scenario": [33, 34, 36], "sidenot": 33, "despit": 33, "anachron": 33, "interchang": [33, 39], "transport": 33, "protocol": [33, 37, 40, 44, 46], "appreci": 33, "fork": [33, 42], "ubuntu": 33, "distro": 33, "denot": [33, 44], "pretendnet": 33, "suffici": 33, "z": [33, 50], "wizard": 33, "5555": [33, 36, 37], "hubbot": [33, 36], "perfect": 34, "status": 34, "accur": [34, 44, 48], "alert": [34, 49], "deauthent": 34, "spec": 34, "isupport": 34, "005": [34, 40, 44], "eggdroptest": [34, 48], "beerbot": 34, "tn": 34, "announc": 34, "issupport": 34, "isset": 34, "reliabl": [34, 44, 48], "significantli": [34, 48], "increas": [34, 37, 43], "accuraci": 34, "supplementari": 34, "attach": [34, 44, 48], "overal": 34, "situat": [34, 36], "cover": [34, 35, 36], "march": [35, 45, 50], "07": [35, 50], "clarifi": 35, "sticki": [35, 44], "unsticki": 35, "stick": 35, "attribut": [35, 36, 44, 50], "kept": [35, 37], "obvious": [35, 44], "unstick": 35, "whose": [35, 44], "whichev": 35, "consist": [36, 38, 41, 44], "leaf": [36, 37, 43, 46], "assign": [36, 37, 44], "aggress": 36, "passiv": 36, "physic": 36, "bota": 36, "botb": 36, "botc": 36, "sharebot": [36, 37, 44], "slave": 36, "botattr": 36, "isol": 36, "unlimit": 36, "4444": [36, 37], "thoroughli": 36, "special": [36, 44], "relink": 36, "scripter": 36, "prepar": 36, "lameshar": 36, "hp": [36, 37], "beldin": 36, "pipe": 36, "he": [36, 44], "unreach": 36, "auth": [36, 37, 46], "fprint": [36, 37, 46], "sha1": [36, 46], "0and": 36, "intead": [], "qualifi": 37, "admin": [37, 45], "lamer": 37, "someircnetwork": 37, "timezon": 37, "est": 37, "timestamp": [37, 44], "alphabet": 37, "european": 37, "utc": 37, "cet": 37, "offset": 37, "coordin": 37, "univers": 37, "gmt": [37, 44], "west": 37, "prime": 37, "meridian": 37, "east": 37, "23": [37, 44], "env": 37, "tz": 37, "everywher": [37, 39, 44], "99": [37, 41], "virtual": 37, "outgo": [37, 44, 47], "prefer": [37, 39, 46], "resolut": 37, "famili": 37, "addlang": [37, 44], "english": [37, 47], "egg_lang": 37, "danish": 37, "french": 37, "finnish": 37, "german": 37, "chatter": 37, "24": [37, 39, 44], "logfilenam": 37, "yesterdai": 37, "48": 37, "concurr": [37, 43], "infin": 37, "decreas": 37, "logsiz": 37, "550": 37, "fill": [37, 42, 46], "quota": 37, "ram": 37, "hole": 37, "care": [37, 44, 49], "logflag": 37, "misc": [37, 44], "wallop": [37, 44], "eight": [37, 44], "belong": 37, "mco": [37, 44], "jpk": 37, "min": 37, "sec": 37, "man": 37, "strftime": 37, "forev": 37, "digit": [37, 46], "month": [37, 44], "fresh": 37, "militari": 37, "03": [37, 44], "00": [37, 44, 45], "am": [37, 50], "midnight": 37, "04may2000": 37, "produc": [37, 44], "yyyymmdd": 37, "manpag": 37, "mkcoblx": 37, "pidfil": 37, "motd": [37, 45], "banner": [37, 45], "perm": 37, "0600": 37, "octal": 37, "remind": 37, "rw": 37, "0400": 37, "0200": 37, "0660": 37, "0440": 37, "0220": 37, "0666": 37, "0444": 37, "0222": 37, "kiddi": 37, "head": 37, "unimport": 37, "deal": [37, 44, 50], "maxim": 37, "1025": 37, "prepend": 37, "whether": [37, 39, 44], "prohibit": 37, "sanitycheck": 37, "bogu": 37, "ground": 37, "wouldn": 37, "anywai": 37, "thr": 37, "firewal": 37, "sun": 37, "barr": 37, "ebai": 37, "3666": 37, "behind": 37, "passthru": 37, "127": 37, "192": [37, 44], "168": [37, 44], "255": 37, "172": 37, "transpar": 37, "masquerad": 37, "portrang": 37, "url": [37, 44], "birthdai": 37, "userinfo1": 37, "moreov": 37, "simul": [37, 44], "ethic": 37, "dk": [37, 44], "dupwait": 37, "spread": 37, "lag": [37, 41], "cidr": [37, 44], "notat": 37, "genrsa": 37, "4096": [37, 46], "rsa": 37, "strong": 37, "enough": 37, "schat": [37, 46], "conveni": 37, "cipher": [37, 44, 46], "side": [37, 44, 46, 49], "365": 37, "depth": [37, 46], "chain": [37, 46], "shall": 37, "capath": [37, 46], "cafil": [37, 46], "ca": 37, "colon": [37, 39], "comma": [37, 41, 44], "silent": 37, "adh": 37, "anonym": 37, "dh": 37, "uid": [37, 46], "chfinger": 37, "slower": 37, "everydai": 37, "limbo": 37, "serv": 37, "alltool": 37, "robot": 38, "regularli": 38, "awai": [38, 40, 44], "chghost": [38, 40], "setnam": [38, 40], "whox": [38, 44], "unaccess": 38, "combin": [38, 44], "mar": 39, "2021": [39, 40, 44, 47], "establish": [39, 44, 46], "freebsd": 39, "netbsd": 39, "openbsd": 39, "mac": 39, "proper": [39, 44], "vista": 39, "xp": 39, "unoffici": 39, "wherev": 39, "squar": 39, "bracket": 39, "doubt": 39, "Their": 39, "began": 40, "rfc1459": [40, 44], "rfc2812": 40, "compris": 40, "decid": [40, 43], "emerg": 40, "optino": 40, "assumpt": 40, "explicit": 40, "302": [40, 44], "miniatur": 41, "watch": [41, 48], "999": 41, "wide": [41, 46], "anywher": [41, 44], "dot": 41, "apostroph": 41, "everyon": [41, 44], "contribut": 42, "think": [42, 50], "repo": 42, "click": [42, 49], "button": [42, 49], "descriptivebranchnam": 42, "confirm": [42, 44], "push": [42, 44], "yourusernam": 42, "yourbranchnam": 42, "templat": 42, "pour": 42, "cold": [42, 43], "bask": 42, "warm": 42, "karma": 42, "crytopgraphi": 43, "content": [43, 44, 48], "sensit": 43, "practic": [43, 44], "crypto": 43, "solut": 43, "deriv": 43, "revers": [43, 44], "seamless": 43, "enjoi": 43, "beverag": 43, "chpass": 43, "consider": 43, "ideal": [43, 49], "essenti": 43, "fanci": 43, "lobster": 43, "dinner": 43, "encpass2": 43, "pbk": 43, "exhaust": [44, 48], "categori": 44, "vertic": 44, "faster": 44, "bypass": 44, "caution": 44, "lieu": 44, "negoti": [44, 46], "dict": [44, 48], "mytag": 44, "baa": 44, "flat": 44, "servivc": 44, "botfl": 44, "botaddr": 44, "laston": 44, "xtra": 44, "visibl": 44, "counterpart": 44, "empti": [44, 48], "filearea": 44, "remotebotnam": 44, "globalflag": 44, "channelflag": 44, "subsequ": 44, "botaddress": 44, "ipaddress": 44, "ipv4address": 44, "ipv6address": 44, "behav": 44, "getinfo": 44, "unstuck": 44, "jupe": 44, "sublist": 44, "zero": 44, "differenti": 44, "abcdechannel": 44, "got": 44, "modechang": 44, "refresh": [44, 48], "fragil": 44, "notif": 44, "offlin": 44, "behalf": 44, "selecet": 44, "compon": 44, "duplic": 44, "element": 44, "bywho": 44, "ag": 44, "reset": 44, "reread": 44, "memberlist": 44, "lost": 44, "ntik": 44, "serverlist": 44, "ex": 44, "goober": 44, "ON": 44, "forget": 44, "reiniti": 44, "coupl": 44, "throw": 44, "99999": 44, "greater": 44, "equal": 44, "she": 44, "mpj": 44, "pj": 44, "moc": 44, "mp": 44, "configfil": 44, "omit": [44, 46], "boldfac": 44, "video": 44, "underlin": [44, 45], "ansi": 44, "ctrl": 44, "bell": 44, "ordinari": [44, 46], "ital": 44, "intercept": 44, "item": 44, "uplink": 44, "botnetnick": 44, "file_receiv": 44, "file_send": 44, "file_send_pend": 44, "readabl": 44, "lindex": 44, "six": 44, "blank": 44, "mandatori": 44, "permit": 44, "regardless": 44, "failur": [44, 48], "kind": 44, "succeed": 44, "pathnam": 44, "temp": 44, "resum": 44, "bitchx": 44, "five": 44, "jp": 44, "34": 44, "04": 44, "06": 44, "08": [44, 45], "interv": 44, "secondli": 44, "repres": [44, 48], "jan": [44, 46], "1970": 44, "convert": 44, "week": 44, "804600": 44, "vari": [44, 50], "posix": 44, "portabl": 44, "fri": 44, "aug": 44, "55": 44, "1973": 44, "rand_max": 44, "2147483647": 44, "underli": 44, "pseudo": 44, "relinquish": 44, "deliv": 44, "notebox": 44, "caught": 44, "encod": [44, 45], "ascii": 44, "64": 44, "ecb": 44, "cbc": 44, "pick": 44, "fatal": 44, "wasn": 44, "128": 44, "pre": [44, 46], "myownevent123": 44, "todai": 44, "couldn": 44, "17": 44, "insensit": 44, "simplifi": 44, "rfc_compliant": 44, "mem": 44, "exclud": 44, "cleartext": 44, "vali": 44, "valis0": 44, "crappi": 44, "math": 44, "ufl": 44, "edu": [44, 50], "eu": 44, "pl1": 44, "1010201": 44, "mnnrrpp": 44, "nn": 44, "rr": 44, "pp": 44, "437": 44, "expans": 44, "quot": [44, 48], "highest": 44, "prioriti": 44, "danger": 44, "logic": 44, "proce": 44, "easiest": 44, "build": 44, "ti": 44, "lastli": 44, "ov": 44, "mn": 44, "unknown": 44, "fil": 44, "phrase": 44, "spoken": 44, "notc": 44, "breach": 44, "notcproc": 44, "partproc": 44, "signoff": 44, "possibli": [44, 48], "twice": 44, "rawt": 44, "topc": 44, "kicker": 44, "newnick": 44, "typo": 44, "18": 44, "guppi": 44, "mode_proc": 44, "stai": 44, "mode_proc_fix": 44, "ctcr": 44, "embed": 44, "supplant": 44, "368": 44, "unexpect": 44, "chon": 44, "chof": 44, "recipi": 44, "rcvd": 44, "invok": 44, "dronepup": 44, "eden": 44, "wild": 44, "bcst": 44, "disc": 44, "splt": 44, "Be": 44, "awar": 44, "fals": 44, "alarm": 44, "fake": 44, "rejn": 44, "needop": 44, "needal": 44, "flud": 44, "wall": 44, "sender": 44, "chjn": 44, "chpt": 44, "0000": 44, "9999": 44, "schedul": 44, "var": 44, "pad": 44, "unld": 44, "nkch": 44, "oldhandl": 44, "newhandl": 44, "sighup": 44, "hup": 44, "sigterm": 44, "sigil": 44, "ill": 44, "sigquit": 44, "prerehash": 44, "prerestart": 44, "preinit": 44, "tout": 44, "stall": 44, "flexibl": [44, 46], "noqueu": 44, "cron": 44, "weekdai": 44, "evalu": 44, "express": 44, "delimit": 44, "whitespac": 44, "sundai": 44, "handshak": 44, "shutdownreason": 44, "shutdown": 44, "sigkil": 44, "ircawai": 44, "301": 44, "catch": 44, "invt": 44, "invite": 44, "dictionari": 44, "late": 44, "distinguish": 44, "unset": 44, "revert": 44, "statement": 44, "treat": [44, 49], "signal": 44, "verbos": 44, "affet": 44, "retain": 44, "driven": 44, "misnom": 44, "song": 44, "danc": 44, "eof": 44, "arriv": 44, "dispos": 44, "newidx": 44, "6687": 44, "escap": 44, "invers": 45, "flash": 45, "botnetcentr": 45, "percent": 45, "col": 45, "column": 45, "width": 45, "center": 45, "70": 45, "meet": 46, "autodetect": 46, "forcefulli": 46, "sslinc": 46, "ssllib": 46, "starttl": 46, "certifict": 46, "graphic": 46, "deliber": 46, "sdcc": 46, "kvirc": 46, "synchron": 46, "infrastructur": 46, "subject": 46, "s_client": 46, "sslport": 46, "issuer": 46, "jun": 47, "02": 47, "2500": 47, "high": 47, "therebi": [47, 49], "lang": 47, "techniqu": 47, "yourbot": 47, "myvar": 47, "held": 48, "natur": 48, "WILL": 48, "unintend": 48, "consequ": 48, "truncat": 48, "assur": 48, "replic": [48, 49], "vip": [48, 49], "subscrib": [48, 49], "badgui": 48, "comprehens": 48, "twith": 48, "gui": 48, "flagmask": 48, "ccht": 48, "histori": 48, "tmi": 48, "tv": [48, 49], "target": 48, "cmsg": 48, "msgid": 48, "htgt": 48, "viewer": 48, "similarli": 48, "arbitrarili": 48, "wspr": 48, "popul": 48, "wspm": 48, "rmst": 48, "emot": 48, "uncertainti": 48, "usst": 48, "usrntc": 48, "discontinu": 49, "technic": 49, "token": 49, "oauth": 49, "alphanumer": 49, "pretend": 49, "j9irk4vs28b0obz9easys4w2ystji3u": 49, "spoiler": 49, "sake": 49, "light": 49, "decis": 49, "notabl": 49, "topic": 49, "degrad": 49, "capac": 49, "face": 49, "hubcap": 50, "clemson": 50, "hate": 50, "milk": 50, "meaningless": 50, "titl": 50, "entitl": 50, "badg": 50, "q": 50, "mainten": 50, "washalfop": 50, "nethack": 50, "highlight": 50, "2023": [0, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50]}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"about": [0, 2, 39, 40, 46], "eggdrop": [0, 2, 3, 4, 5, 6, 7, 8, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 42, 44, 48], "bore": 1, "legal": 1, "stuff": 1, "an": [2, 28, 29, 30, 33], "open": 2, "sourc": [2, 16, 32], "irc": [2, 18, 33, 46, 49], "bot": [2, 16, 36, 44], "some": 2, "thing": 2, "you": 2, "can": [2, 7], "do": [2, 7, 28], "how": [2, 4, 5, 7, 28], "get": [2, 4, 16, 32, 44], "instal": [2, 3, 7, 32, 39, 46], "pre": [2, 4, 33], "requisit": [2, 4, 33], "where": 2, "find": 2, "more": 2, "help": [2, 4], "us": [2, 34, 36], "tutori": 2, "modul": [2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 37, 44], "quick": [3, 4], "startup": [3, 4], "cygwin": 3, "requir": [3, 28, 31, 34, 44], "window": 3, "readm": 4, "notic": 4, "what": [4, 7, 28, 36], "i": [4, 7, 36], "ftp": 4, "git": 4, "develop": 4, "snapshot": 4, "docker": 4, "system": [4, 30], "upgrad": [4, 5], "command": [4, 5, 25, 31, 44, 47, 48], "line": [4, 41], "auto": 4, "start": [4, 32], "document": [4, 5], "obtain": 4, "must": 5, "read": 5, "chang": [5, 44], "v1": 5, "9": 5, "config": [5, 16, 32, 44, 47, 49], "file": [5, 16, 32, 33, 37, 44, 47, 49], "script": [5, 29, 34, 37, 46], "botnet": [5, 33, 36, 37, 46], "tcl": [5, 8, 25, 31, 34, 43, 44, 48], "includ": 6, "inform": [7, 33], "ar": 7, "compil": 7, "without": 7, "dynam": 7, "static": 7, "still": 7, "need": 7, "loadmodul": [7, 44], "bind": [8, 31, 44, 48], "intern": 8, "tabl": 8, "creation": 8, "stackabl": [8, 44], "ht_stackabl": 8, "trigger": 8, "ani": 8, "c": 8, "handler": 8, "summari": 8, "assoc": [9, 44], "blowfish": 10, "channel": [11, 16, 30, 44, 48], "compress": [12, 44], "consol": [13, 37, 44], "ctcp": [14, 39], "dn": 15, "filesi": [16, 44], "setup": 16, "partylin": [16, 25, 30, 31], "usag": [16, 39, 40, 43, 46], "cancel": 16, "cd": 16, "directori": [16, 37, 44], "cp": [16, 44], "dst": 16, "desc": [16, 44], "descript": 16, "filestat": 16, "user": [16, 30, 36, 44, 50], "clear": 16, "stat": 16, "filenam": [16, 44], "nicknam": [16, 44], "hide": 16, "ln": 16, "filepath": 16, "localfil": 16, "l": [16, 44], "filemask": 16, "mkdir": [16, 44], "dir": [16, 44], "flag": [16, 30, 36, 44, 48, 50], "mv": [16, 44], "dest": 16, "pend": 16, "pwd": 16, "quit": 16, "rm": 16, "rmdir": [16, 44], "share": [16, 23, 36], "optim": 16, "unhid": 16, "unshar": 16, "ident": 17, "note": [19, 44], "pbkdf2": 20, "seen": 21, "server": [22, 33, 34, 44], "transfer": 24, "twitch": [25, 48, 49], "limit": [25, 44, 49], "api": 25, "uptim": [26, 44], "woobi": 27, "write": [28, 29, 31], "module_start": 28, "module_t": 28, "module_clos": 28, "module_expmem": 28, "module_report": 28, "addit": [28, 33], "function": [28, 49], "common": 30, "first": 30, "step": 30, "log": [30, 37, 47], "join": [30, 34], "add": [30, 44], "host": [30, 44], "assign": 30, "permiss": 30, "configur": [30, 32, 33, 43], "set": [30, 32, 37, 39, 44, 46], "automat": 30, "restart": [30, 44], "crontab": 30, "method": 30, "old": [30, 44], "systemd": 30, "newer": 30, "authent": [30, 36, 46], "nickserv": 30, "up": [30, 32], "sasl": 30, "basic": [31, 37], "header": 31, "code": 31, "ad": [31, 36], "defin": 31, "argument": 31, "call": 31, "export": 31, "prerequisit": 32, "The": [32, 41], "super": 32, "short": 32, "version": [32, 44], "histori": 32, "download": 32, "locat": 32, "edit": [32, 49], "No": 32, "show": 32, "enabl": [33, 34, 43, 44], "tl": [33, 36, 46], "secur": [33, 36, 46], "connect": [33, 44], "protect": 33, "commun": 33, "prepar": 33, "gener": 33, "kei": [33, 44, 46], "listen": [33, 44], "account": [34, 44], "track": 34, "capabl": [34, 40], "extend": 34, "notifi": 34, "whox": 34, "check": 34, "statu": [34, 44], "determin": 34, "support": [34, 39, 40, 46], "best": 34, "effort": 34, "tag": [34, 44], "ban": [35, 44], "invit": [35, 44], "exempt": [35, 44], "link": [36, 44], "term": 36, "exampl": 36, "bottre": 36, "botflag": 36, "make": 36, "record": [36, 44], "certif": [36, 46], "core": 37, "execut": 37, "path": 37, "dcc": [37, 44, 46], "telnet": 37, "advanc": [37, 47], "ssl": [37, 46], "featur": 38, "ipv6": 39, "chat": 39, "chat4": 39, "chat6": 39, "ircv3": 40, "cap": [40, 44], "parti": 41, "patch": 42, "submit": 42, "via": [42, 44], "github": 42, "encrypt": [43, 44], "hash": 43, "background": 43, "hybrid": 43, "solo": 43, "interfac": 43, "output": 44, "putserv": 44, "text": 44, "option": 44, "puthelp": 44, "putquick": 44, "putnow": 44, "onelin": 44, "putkick": 44, "nick": [44, 48], "reason": 44, "putlog": 44, "putcmdlog": 44, "putxferlog": 44, "putloglev": 44, "": 44, "dumpfil": 44, "queuesiz": 44, "queue": 44, "clearqueu": 44, "valu": 44, "req": 44, "raw": 44, "arg": [44, 48], "tagmsg": 44, "target": 44, "ip": 44, "port": 44, "password": 44, "remov": 44, "list": 44, "manipul": 44, "countus": 44, "validus": 44, "handl": 44, "findus": 44, "userlist": 44, "passwdok": 44, "pass": 44, "getus": 44, "entri": 44, "type": [44, 48], "extra": 44, "info": 44, "setus": 44, "chhandl": 44, "new": 44, "chattr": 44, "botattr": 44, "matchattr": 44, "addus": 44, "hostmask": 44, "addbot": 44, "address": 44, "botport": 44, "userport": 44, "delus": 44, "delhost": 44, "addchanrec": 44, "delchanrec": 44, "haschanrec": 44, "getchaninfo": 44, "setchaninfo": 44, "newchanban": 44, "creator": 44, "comment": 44, "lifetim": 44, "newban": 44, "newchanexempt": 44, "newexempt": 44, "newchaninvit": 44, "newinvit": 44, "stickban": 44, "banmask": 44, "unstickban": 44, "stickexempt": 44, "exemptmask": 44, "unstickexempt": 44, "stickinvit": 44, "invitemask": 44, "unstickinvit": 44, "killchanban": 44, "killban": 44, "killchanexempt": 44, "killexempt": 44, "killchaninvit": 44, "killinvit": 44, "ischanjup": 44, "isban": 44, "ispermban": 44, "isexempt": 44, "ispermexempt": 44, "isinvit": 44, "isperminvit": 44, "isbansticki": 44, "isexemptsticki": 44, "isinvitesticki": 44, "matchban": 44, "matchexempt": 44, "matchinvit": 44, "banlist": 44, "exemptlist": 44, "invitelist": 44, "newignor": 44, "killignor": 44, "ignorelist": 44, "isignor": 44, "save": 44, "reload": 44, "backup": 44, "name": 44, "savechannel": 44, "loadchannel": 44, "channame2dnam": 44, "chandname2nam": 44, "dname": 44, "isbotnick": 44, "botisop": 44, "botishalfop": 44, "botisvoic": 44, "botonchan": 44, "isop": 44, "ishalfop": 44, "wasop": 44, "washalfop": 44, "isvoic": 44, "isidentifi": 44, "isawai": 44, "isircbot": 44, "onchan": 44, "monitor": 44, "accounttrack": 44, "getaccount": 44, "nick2hand": 44, "account2nick": 44, "hand2nick": 44, "handonchan": 44, "ischanban": 44, "ischanexempt": 44, "ischaninvit": 44, "chanban": 44, "chanexempt": 44, "chaninvit": 44, "resetban": 44, "resetexempt": 44, "resetinvit": 44, "resetchanidl": 44, "resetchanjoin": 44, "resetchan": 44, "refreshchan": 44, "getchanhost": 44, "getchanjoin": 44, "onchansplit": 44, "chanlist": 44, "chanflag": 44, "getchanidl": 44, "getchanmod": 44, "jump": 44, "pushmod": 44, "mode": 44, "flushmod": 44, "topic": 44, "validchan": 44, "isdynam": 44, "setudef": 44, "int": 44, "str": 44, "renudef": 44, "oldnam": 44, "newnam": 44, "deludef": 44, "getudef": 44, "chansettyp": 44, "isupport": 44, "isset": 44, "putdcc": 44, "idx": 44, "dccbroadcast": 44, "messag": 44, "dccputchan": 44, "boot": 44, "dccsimul": 44, "hand2idx": 44, "idx2hand": 44, "valididx": 44, "getchan": 44, "setchan": 44, "resetconsol": 44, "echo": 44, "strip": 44, "putbot": 44, "putallbot": 44, "killdcc": 44, "botlist": 44, "islink": 44, "dccuse": 44, "dcclist": 44, "socklist": 44, "whom": 44, "chan": [44, 48], "getdccidl": 44, "getdccawai": 44, "setdccawai": 44, "dccdumpfil": 44, "numberlist": 44, "erasenot": 44, "listnot": 44, "storenot": 44, "from": 44, "msg": 44, "killassoc": 44, "compressfil": 44, "level": 44, "src": 44, "uncompressfil": 44, "iscompress": 44, "setpwd": 44, "getpwd": 44, "getfil": 44, "getdir": 44, "dccsend": 44, "ircnick": 44, "filesend": 44, "fileresend": 44, "setdesc": 44, "getdesc": 44, "setown": 44, "getown": 44, "setlink": 44, "getlink": 44, "getfileq": 44, "getfilesendtim": 44, "destin": 44, "getflag": 44, "setflag": 44, "miscellan": 44, "keyword": 44, "mask": 44, "proc": 44, "unbind": 44, "logfil": 44, "maskhost": 44, "masktyp": 44, "timer": 44, "minut": 44, "count": 44, "timernam": 44, "utim": 44, "second": 44, "killtim": 44, "killutim": 44, "unixtim": 44, "durat": 44, "strftime": 44, "formatstr": 44, "time": 44, "ctime": 44, "myip": 44, "rand": 44, "control": 44, "sendnot": 44, "unlink": 44, "string": [44, 47], "decrypt": 44, "base64": 44, "encpass": 44, "die": 44, "unam": 44, "dnslookup": 44, "hostnam": 44, "arg1": 44, "arg2": 44, "argn": 44, "md5": 44, "callev": 44, "event": 44, "traffic": 44, "unloadmodul": 44, "loadhelp": 44, "helpfil": 44, "unloadhelp": 44, "reloadhelp": 44, "rehash": 44, "stripcod": 44, "matchaddr": 44, "matchcidr": 44, "block": 44, "prefix": 44, "matchstr": 44, "pattern": 44, "rfcequal": 44, "string1": 44, "string2": 44, "istl": 44, "starttl": 44, "tlsstatu": 44, "global": 44, "variabl": [44, 47], "botnick": 44, "botnam": 44, "serveraddress": 44, "numvers": 44, "onlin": 44, "lastbind": 44, "isjup": 44, "handlen": 44, "configurearg": 44, "languag": 44, "return": 44, "procedur": 44, "tcp": 44, "match": 44, "charact": 44, "textfil": 45, "substitut": 45, "tip": 47, "renam": 47, "keep": 47, "self": 47, "modifi": 47, "default": 47, "modular": 47, "your": 47, "twcmd": 48, "cmd": 48, "userst": 48, "roomstat": 48, "twitchmod": 48, "twitchvip": 48, "ismod": 48, "isvip": 48, "disclaim": 49, "regist": 49, "web": 49, "ui": 49}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"About Eggdrop": [[0, "about-eggdrop"], [2, null]], "Boring legal stuff": [[1, "boring-legal-stuff"]], "Eggdrop, an open source IRC bot": [[2, "eggdrop-an-open-source-irc-bot"]], "Some things you can do with Eggdrop": [[2, "some-things-you-can-do-with-eggdrop"]], "How to get Eggdrop": [[2, "how-to-get-eggdrop"]], "How to install Eggdrop": [[2, "how-to-install-eggdrop"]], "Installation Pre-requisites": [[2, "installation-pre-requisites"]], "Installation": [[2, "installation"], [32, "installation"], [39, "installation"], [46, "installation"]], "Where to find more help": [[2, "where-to-find-more-help"]], "Installing Eggdrop": [[2, null], [3, "installing-eggdrop"]], "Using Eggdrop": [[2, null]], "Tutorials": [[2, null]], "Eggdrop Modules": [[2, null]], "Quick Startup": [[3, "quick-startup"], [4, "quick-startup"]], "Cygwin Requirements (Windows)": [[3, "cygwin-requirements-windows"]], "Modules": [[3, "modules"], [5, "modules"], [37, "modules"]], "README": [[4, "readme"]], "Notice": [[4, "notice"]], "What is Eggdrop?": [[4, "what-is-eggdrop"]], "How to Get Eggdrop": [[4, "how-to-get-eggdrop"]], "FTP": [[4, "ftp"]], "Git Development Snapshot": [[4, "git-development-snapshot"]], "Docker": [[4, "docker"]], "System Pre-Requisites": [[4, "system-pre-requisites"]], "Upgrading": [[4, "upgrading"]], "Command Line": [[4, "command-line"]], "Auto-starting Eggdrop": [[4, "auto-starting-eggdrop"]], "Documentation": [[4, "documentation"], [5, "documentation"]], "Obtaining Help": [[4, "obtaining-help"]], "Upgrading Eggdrop": [[5, "upgrading-eggdrop"]], "How to Upgrade": [[5, "how-to-upgrade"]], "Must-read changes for Eggdrop v1.9": [[5, "must-read-changes-for-eggdrop-v1-9"]], "Config file changes": [[5, "config-file-changes"]], "Scripts": [[5, "scripts"], [37, "scripts"], [46, "scripts"]], "Botnet": [[5, "botnet"], [46, "botnet"]], "Tcl Commands": [[5, "tcl-commands"]], "Modules included with Eggdrop": [[6, "modules-included-with-eggdrop"]], "Eggdrop Module Information": [[7, "eggdrop-module-information"]], "What are modules?": [[7, "what-are-modules"]], "How to install a module": [[7, "how-to-install-a-module"]], "Can I compile Eggdrop without dynamic modules? (Static compile)": [[7, "can-i-compile-eggdrop-without-dynamic-modules-static-compile"]], "Do I still need to \u2018loadmodule\u2019 modules?": [[7, "do-i-still-need-to-loadmodule-modules"]], "Eggdrop Bind Internals": [[8, "eggdrop-bind-internals"]], "Bind Table Creation": [[8, "bind-table-creation"]], "Stackable Binds: HT_STACKABLE": [[8, "stackable-binds-ht-stackable"]], "Tcl Binding": [[8, "tcl-binding"]], "Triggering the Bind": [[8, "triggering-the-bind"]], "Triggering any Bind": [[8, "triggering-any-bind"]], "C Binding": [[8, "c-binding"]], "C Handler": [[8, "c-handler"]], "Summary": [[8, "summary"]], "Assoc Module": [[9, "assoc-module"], [44, "assoc-module"]], "Blowfish Module": [[10, "blowfish-module"]], "Channels Module": [[11, "channels-module"]], "Compress Module": [[12, "compress-module"], [44, "compress-module"]], "Console Module": [[13, "console-module"]], "CTCP Module": [[14, "ctcp-module"]], "DNS Module": [[15, "dns-module"]], "Filesys Module": [[16, "filesys-module"], [44, "filesys-module"]], "Config file setup": [[16, "config-file-setup"]], "Partyline usage": [[16, "partyline-usage"]], ".files": [[16, "files"]], ".cancel [file] \u2026": [[16, "cancel-file-file"]], ".cd ": [[16, "cd-directory"]], ".cp ": [[16, "cp-source-dst"]], ".desc ": [[16, "desc-file-description"]], ".filestats [clear]": [[16, "filestats-user-clear"]], ".stats": [[16, "stats"]], ".get [nickname]": [[16, "get-filename-nickname"]], ".hide [files] \u2026": [[16, "hide-file-files"]], ".ln ": [[16, "ln-bot-filepath-localfile"]], ".ls [filemask]": [[16, "ls-filemask"]], ".mkdir [flags [channel]]": [[16, "mkdir-dir-flags-channel"]], ".mv ": [[16, "mv-source-dest"]], ".pending": [[16, "pending"]], ".pwd": [[16, "pwd"]], ".quit": [[16, "quit"]], "rm [files] \u2026": [[16, "rm-file-files"]], ".rmdir ": [[16, "rmdir-dir"]], ".share [files] \u2026": [[16, "share-file-files"]], ".optimize": [[16, "optimize"]], ".unhide": [[16, "unhide"]], ".unshare [file] \u2026": [[16, "unshare-file-file"]], ".filesys module": [[16, "id1"]], "Ident Module": [[17, "ident"]], "IRC Module": [[18, "irc-module"]], "Notes Module": [[19, "notes-module"], [44, "notes-module"]], "PBKDF2 Module": [[20, "pbkdf2-module"]], "Seen Module": [[21, "seen-module"]], "Server Module": [[22, "server-module"]], "Share Module": [[23, "share-module"]], "Transfer Module": [[24, "transfer-module"]], "Twitch Module": [[25, "twitch-module"]], "Limitations": [[25, "limitations"]], "Tcl API": [[25, "tcl-api"]], "Partyline commands": [[25, "partyline-commands"]], "Uptime Module": [[26, "uptime-module"]], "Woobie Module": [[27, "woobie-module"]], "How to Write an Eggdrop Module": [[28, "how-to-write-an-eggdrop-module"]], "Module requirements": [[28, "module-requirements"]], "MODULE_start": [[28, "module-start"]], "MODULE_table": [[28, "module-table"]], "MODULE_close ()": [[28, "module-close"]], "MODULE_expmem": [[28, "module-expmem"]], "MODULE_report": [[28, "module-report"]], "Additional functions": [[28, "additional-functions"]], "What to do with a module?": [[28, "what-to-do-with-a-module"]], "Writing an Eggdrop Script": [[29, "writing-an-eggdrop-script"]], "Common First Steps": [[30, "common-first-steps"]], "Log on to the partyline": [[30, "log-on-to-the-partyline"]], "Common first steps": [[30, "id1"]], "Join a Channel": [[30, "join-a-channel"]], "Add a User": [[30, "add-a-user"]], "Add a Host to a User": [[30, "add-a-host-to-a-user"]], "Assign Permission Flags": [[30, "assign-permission-flags"]], "Configure Channel Settings": [[30, "configure-channel-settings"]], "Automatically restarting an Eggdrop": [[30, "automatically-restarting-an-eggdrop"]], "Crontab Method (Old)": [[30, "crontab-method-old"]], "Systemd Method (Newer Systems)": [[30, "systemd-method-newer-systems"]], "Authenticating with NickServ": [[30, "authenticating-with-nickserv"]], "Setting up SASL authentication": [[30, "setting-up-sasl-authentication"]], "Writing a Basic Eggdrop Module": [[31, "writing-a-basic-eggdrop-module"]], "Module Header": [[31, "module-header"]], "Required Code": [[31, "required-code"]], "Adding a Partyline Command": [[31, "adding-a-partyline-command"]], "Adding a Tcl Command": [[31, "adding-a-tcl-command"]], "Adding a Tcl Bind": [[31, "adding-a-tcl-bind"]], "Defining bind arguments": [[31, "defining-bind-arguments"]], "Calling the Bind": [[31, "calling-the-bind"]], "Exporting the Bind": [[31, "exporting-the-bind"]], "Setting Up Eggdrop": [[32, "setting-up-eggdrop"]], "Prerequisites": [[32, "prerequisites"]], "The super-short version": [[32, "the-super-short-version"]], "Getting the source": [[32, "getting-the-source"]], "History": [[32, "history"]], "Download locations": [[32, "download-locations"]], "Configuration": [[32, "configuration"]], "Editing the config file": [[32, "editing-the-config-file"], [49, "editing-the-config-file"]], "Starting the Eggdrop": [[32, "starting-the-eggdrop"]], "No show?": [[32, "no-show"]], "Enabling TLS Security on Eggdrop": [[33, "enabling-tls-security-on-eggdrop"]], "Pre-requisites": [[33, "pre-requisites"]], "Connecting to a TLS-enabled IRC server": [[33, "connecting-to-a-tls-enabled-irc-server"]], "Protecting Botnet Communications": [[33, "protecting-botnet-communications"]], "Configuration File Preparation - Generating Keys": [[33, "configuration-file-preparation-generating-keys"]], "Configuration File Preparation - Listening with TLS": [[33, "configuration-file-preparation-listening-with-tls"]], "Connecting to an Eggdrop listening with TLS": [[33, "connecting-to-an-eggdrop-listening-with-tls"]], "Additional Information": [[33, "additional-information"]], "Account tracking in Eggdrop": [[34, "account-tracking-in-eggdrop"]], "Required Server Capabilities": [[34, "required-server-capabilities"]], "extended-join": [[34, "extended-join"]], "account-notify": [[34, "account-notify"]], "WHOX": [[34, "whox"]], "Enabling Eggdrop Account Tracking": [[34, "enabling-eggdrop-account-tracking"]], "Checking Account-tracking Status": [[34, "checking-account-tracking-status"]], "Determining if a Server Supports Account Capabilities": [[34, "determining-if-a-server-supports-account-capabilities"]], "Best-Effort Account Tracking": [[34, "best-effort-account-tracking"]], "account-tag": [[34, "account-tag"]], "Using Accounts with Tcl Scripts": [[34, "using-accounts-with-tcl-scripts"]], "Bans, Invites, and Exempts": [[35, "bans-invites-and-exempts"]], "Botnet Sharing and Linking": [[36, "botnet-sharing-and-linking"]], "What is a botnet?": [[36, "what-is-a-botnet"]], "Terms": [[36, "terms"]], "Example bottree": [[36, "example-bottree"]], "Bot Flags": [[36, "bot-flags"]], "Adding and linking bots": [[36, "adding-and-linking-bots"]], "Secure (TLS) Links": [[36, "secure-tls-links"]], "Using botflags": [[36, "using-botflags"]], "Making bots share user records": [[36, "making-bots-share-user-records"]], "Using certificates to authenticate Eggdrops": [[36, "using-certificates-to-authenticate-eggdrops"]], "Eggdrop Core Settings": [[37, "eggdrop-core-settings"]], "Executable Path": [[37, "executable-path"]], "Basic Settings": [[37, "basic-settings"]], "Log Files": [[37, "log-files"]], "Console Settings": [[37, "console-settings"]], "File and Directory Settings": [[37, "file-and-directory-settings"]], "Botnet/Dcc/Telnet Settings": [[37, "botnet-dcc-telnet-settings"]], "Advanced Settings": [[37, "advanced-settings"]], "SSL Settings": [[37, "ssl-settings"]], "Eggdrop Features": [[38, "eggdrop-features"]], "IPv6 support": [[39, "ipv6-support"]], "About": [[39, "about"], [40, "about"], [46, "about"]], "Usage": [[39, "usage"], [40, "usage"], [43, "usage"], [46, "usage"]], "CTCP CHAT/CHAT4/CHAT6": [[39, "ctcp-chat-chat4-chat6"]], "Settings": [[39, "settings"]], "IRCv3 support": [[40, "ircv3-support"]], "Supported CAP capabilities": [[40, "supported-cap-capabilities"]], "The Party Line": [[41, "the-party-line"]], "Patching Eggdrop": [[42, "patching-eggdrop"]], "Submitting a patch via GitHub": [[42, "submitting-a-patch-via-github"]], "Encryption/Hashing": [[43, "encryption-hashing"]], "Background": [[43, "background"]], "Hybrid Configuration": [[43, "hybrid-configuration"]], "Enabling hybrid configuration": [[43, "enabling-hybrid-configuration"]], "Solo configuration": [[43, "solo-configuration"]], "Enabling solo configuration": [[43, "enabling-solo-configuration"]], "Tcl Interface": [[43, "tcl-interface"]], "Eggdrop Tcl Commands": [[44, "eggdrop-tcl-commands"]], "Output Commands": [[44, "output-commands"]], "putserv [options]": [[44, "putserv-text-options"]], "puthelp [options]": [[44, "puthelp-text-options"]], "putquick [options]": [[44, "putquick-text-options"]], "putnow [-oneline]": [[44, "putnow-text-oneline"]], "putkick [reason]": [[44, "putkick-channel-nick-nick-reason"]], "putlog ": [[44, "putlog-text"]], "putcmdlog ": [[44, "putcmdlog-text"]], "putxferlog ": [[44, "putxferlog-text"]], "putloglev ": [[44, "putloglev-flag-s-channel-text"]], "dumpfile ": [[44, "dumpfile-nick-filename"]], "queuesize [queue]": [[44, "queuesize-queue"]], "clearqueue ": [[44, "clearqueue-queue"]], "cap [arg]": [[44, "cap-ls-values-req-enabled-raw-arg"]], "tagmsg ": [[44, "tagmsg-tags-target"]], "server add [[+]port [password]]": [[44, "server-add-ip-host-port-password"]], "server remove [[+]port]": [[44, "server-remove-ip-host-port"]], "server list": [[44, "server-list"]], "User Record Manipulation Commands": [[44, "user-record-manipulation-commands"]], "countusers": [[44, "countusers"]], "validuser ": [[44, "validuser-handle"]], "finduser [-account] ": [[44, "finduser-account-value"]], "userlist [flags]": [[44, "userlist-flags"]], "passwdok ": [[44, "passwdok-handle-pass"]], "getuser [entry-type] [extra info]": [[44, "getuser-handle-entry-type-extra-info"]], "setuser [extra info]": [[44, "setuser-handle-entry-type-extra-info"]], "chhandle ": [[44, "chhandle-old-handle-new-handle"]], "chattr [changes [channel]]": [[44, "chattr-handle-changes-channel"]], "botattr [changes [channel]]": [[44, "botattr-handle-changes-channel"]], "matchattr [channel]": [[44, "matchattr-handle-flags-channel"]], "adduser [hostmask]": [[44, "adduser-handle-hostmask"]], "addbot
    [botport [userport]]": [[44, "addbot-handle-address-botport-userport"]], "deluser ": [[44, "deluser-handle"]], "delhost ": [[44, "delhost-handle-hostmask"]], "addchanrec ": [[44, "addchanrec-handle-channel"]], "delchanrec ": [[44, "delchanrec-handle-channel"]], "haschanrec ": [[44, "haschanrec-handle-channel"]], "getchaninfo ": [[44, "getchaninfo-handle-channel"]], "setchaninfo ": [[44, "setchaninfo-handle-channel-info"]], "newchanban [lifetime] [options]": [[44, "newchanban-channel-ban-creator-comment-lifetime-options"]], "newban [lifetime] [options]": [[44, "newban-ban-creator-comment-lifetime-options"]], "newchanexempt [lifetime] [options]": [[44, "newchanexempt-channel-exempt-creator-comment-lifetime-options"]], "newexempt [lifetime] [options]": [[44, "newexempt-exempt-creator-comment-lifetime-options"]], "newchaninvite [lifetime] [options]": [[44, "newchaninvite-channel-invite-creator-comment-lifetime-options"]], "newinvite [lifetime] [options]": [[44, "newinvite-invite-creator-comment-lifetime-options"]], "stickban [channel]": [[44, "stickban-banmask-channel"]], "unstickban [channel]": [[44, "unstickban-banmask-channel"]], "stickexempt [channel]": [[44, "stickexempt-exemptmask-channel"]], "unstickexempt [channel]": [[44, "unstickexempt-exemptmask-channel"]], "stickinvite [channel]": [[44, "stickinvite-invitemask-channel"]], "unstickinvite [channel]": [[44, "unstickinvite-invitemask-channel"]], "killchanban ": [[44, "killchanban-channel-ban"]], "killban ": [[44, "killban-ban"]], "killchanexempt ": [[44, "killchanexempt-channel-exempt"]], "killexempt ": [[44, "killexempt-exempt"]], "killchaninvite ": [[44, "killchaninvite-channel-invite"]], "killinvite ": [[44, "killinvite-invite"]], "ischanjuped ": [[44, "ischanjuped-channel"]], "isban [channel [-channel]]": [[44, "isban-ban-channel-channel"]], "ispermban [channel [-channel]]": [[44, "ispermban-ban-channel-channel"]], "isexempt [channel [-channel]]": [[44, "isexempt-exempt-channel-channel"]], "ispermexempt [channel [-channel]]": [[44, "ispermexempt-exempt-channel-channel"]], "isinvite [channel [-channel]]": [[44, "isinvite-invite-channel-channel"]], "isperminvite [channel [-channel]]": [[44, "isperminvite-invite-channel-channel"]], "isbansticky [channel [-channel]]": [[44, "isbansticky-ban-channel-channel"]], "isexemptsticky [channel [-channel]]": [[44, "isexemptsticky-exempt-channel-channel"]], "isinvitesticky [channel [-channel]]": [[44, "isinvitesticky-invite-channel-channel"]], "matchban [channel]": [[44, "matchban-nick-user-host-channel"]], "matchexempt [channel]": [[44, "matchexempt-nick-user-host-channel"]], "matchinvite [channel]": [[44, "matchinvite-nick-user-host-channel"]], "banlist [channel]": [[44, "banlist-channel"]], "exemptlist [channel]": [[44, "exemptlist-channel"]], "invitelist [channel]": [[44, "invitelist-channel"]], "newignore [lifetime]": [[44, "newignore-hostmask-creator-comment-lifetime"]], "killignore ": [[44, "killignore-hostmask"]], "ignorelist": [[44, "ignorelist"]], "isignore ": [[44, "isignore-hostmask"]], "save": [[44, "save"]], "reload": [[44, "reload"]], "backup": [[44, "backup"]], "getting-users": [[44, "getting-users"]], "Channel Commands": [[44, "channel-commands"]], "channel add [option-list]": [[44, "channel-add-name-option-list"]], "channel set ": [[44, "channel-set-name-options"]], "channel info ": [[44, "channel-info-name"]], "channel get [setting]": [[44, "channel-get-name-setting"]], "channel remove ": [[44, "channel-remove-name"]], "savechannels": [[44, "savechannels"]], "loadchannels": [[44, "loadchannels"]], "channels": [[44, "channels"]], "channame2dname ": [[44, "channame2dname-channel-name"]], "chandname2name ": [[44, "chandname2name-channel-dname"]], "isbotnick ": [[44, "isbotnick-nick"]], "botisop [channel]": [[44, "botisop-channel"]], "botishalfop [channel]": [[44, "botishalfop-channel"]], "botisvoice [channel]": [[44, "botisvoice-channel"]], "botonchan [channel]": [[44, "botonchan-channel"]], "isop [channel]": [[44, "isop-nickname-channel"]], "ishalfop [channel]": [[44, "ishalfop-nickname-channel"]], "wasop ": [[44, "wasop-nickname-channel"]], "washalfop ": [[44, "washalfop-nickname-channel"]], "isvoice [channel]": [[44, "isvoice-nickname-channel"]], "isidentified [channel]": [[44, "isidentified-nickname-channel"]], "isaway [channel]": [[44, "isaway-nickname-channel"]], "isircbot [channel]": [[44, "isircbot-nickname-channel"]], "onchan [channel]": [[44, "onchan-nickname-channel"]], "monitor [nickname]": [[44, "monitor-command-nickname"]], "accounttracking": [[44, "accounttracking"]], "getaccount [channel]": [[44, "getaccount-nickname-channel"]], "nick2hand [channel]": [[44, "nick2hand-nickname-channel"]], "account2nicks [channel]": [[44, "account2nicks-handle-channel"]], "hand2nick [channel]": [[44, "hand2nick-handle-channel"]], "hand2nicks [channel]": [[44, "hand2nicks-handle-channel"]], "handonchan [channel]": [[44, "handonchan-handle-channel"]], "ischanban ": [[44, "ischanban-ban-channel"]], "ischanexempt ": [[44, "ischanexempt-exempt-channel"]], "ischaninvite ": [[44, "ischaninvite-invite-channel"]], "chanbans ": [[44, "chanbans-channel"]], "chanexempts ": [[44, "chanexempts-channel"]], "chaninvites ": [[44, "chaninvites-channel"]], "resetbans ": [[44, "resetbans-channel"]], "resetexempts ": [[44, "resetexempts-channel"]], "resetinvites ": [[44, "resetinvites-channel"]], "resetchanidle [nick] ": [[44, "resetchanidle-nick-channel"]], "resetchanjoin [nick] ": [[44, "resetchanjoin-nick-channel"]], "resetchan [flags]": [[44, "resetchan-channel-flags"]], "refreshchan [flags]": [[44, "refreshchan-channel-flags"]], "getchanhost [channel]": [[44, "getchanhost-nickname-channel"]], "getchanjoin ": [[44, "getchanjoin-nickname-channel"]], "onchansplit [channel]": [[44, "onchansplit-nick-channel"]], "chanlist [flags][<&|>chanflags]": [[44, "chanlist-channel-flags-chanflags"]], "getchanidle ": [[44, "getchanidle-nickname-channel"]], "getchanmode ": [[44, "getchanmode-channel"]], "jump [server [[+]port [password]]]": [[44, "jump-server-port-password"]], "pushmode [arg]": [[44, "pushmode-channel-mode-arg"]], "flushmode ": [[44, "flushmode-channel"]], "topic ": [[44, "topic-channel"]], "validchan ": [[44, "validchan-channel"]], "isdynamic ": [[44, "isdynamic-channel"]], "setudef ": [[44, "setudef-flag-int-str-name"]], "renudef ": [[44, "renudef-flag-int-str-oldname-newname"]], "deludef ": [[44, "deludef-flag-int-str-name"]], "getudefs [flag/int/str]": [[44, "getudefs-flag-int-str"]], "chansettype ": [[44, "chansettype-setting"]], "isupport get [key]": [[44, "isupport-get-key"]], "isupport isset ": [[44, "isupport-isset-key"]], "DCC Commands": [[44, "dcc-commands"]], "putdcc [-raw]": [[44, "putdcc-idx-text-raw"]], "dccbroadcast ": [[44, "dccbroadcast-message"]], "dccputchan ": [[44, "dccputchan-channel-message"]], "boot [reason]": [[44, "boot-user-bot-reason"]], "dccsimul ": [[44, "dccsimul-idx-text"]], "hand2idx ": [[44, "hand2idx-handle"]], "idx2hand ": [[44, "idx2hand-idx"]], "valididx ": [[44, "valididx-idx"]], "getchan ": [[44, "getchan-idx"]], "setchan ": [[44, "setchan-idx-channel"]], "console [channel] [console-modes]": [[44, "console-idx-channel-console-modes"]], "resetconsole ": [[44, "resetconsole-idx"]], "echo [status]": [[44, "echo-idx-status"]], "strip [+/-strip-flags]": [[44, "strip-idx-strip-flags"]], "putbot ": [[44, "putbot-bot-nick-message"]], "putallbots ": [[44, "putallbots-message"]], "killdcc ": [[44, "killdcc-idx"]], "bots": [[44, "bots"]], "botlist": [[44, "botlist"]], "islinked ": [[44, "islinked-bot"]], "dccused": [[44, "dccused"]], "dcclist [type]": [[44, "dcclist-type"]], "socklist [type]": [[44, "socklist-type"]], "whom ": [[44, "whom-chan"]], "getdccidle ": [[44, "getdccidle-idx"]], "getdccaway ": [[44, "getdccaway-idx"]], "setdccaway ": [[44, "setdccaway-idx-message"]], "connect <[+]port>": [[44, "connect-host-port"]], "listen [ip] [options [flag]]": [[44, "listen-ip-port-type-options-flag"]], "dccdumpfile ": [[44, "dccdumpfile-idx-filename"]], "notes [numberlist]": [[44, "notes-user-numberlist"]], "erasenotes ": [[44, "erasenotes-user-numberlist"]], "listnotes ": [[44, "listnotes-user-numberlist"]], "storenote ": [[44, "storenote-from-to-msg-idx"]], "assoc [name]": [[44, "assoc-chan-name"]], "killassoc ": [[44, "killassoc-chan"]], "compressfile [-level ] [target-file]": [[44, "compressfile-level-level-src-file-target-file"]], "and": [[44, "and"]], "uncompressfile [target-file]": [[44, "uncompressfile-src-file-target-file"]], "iscompressed ": [[44, "iscompressed-filename"]], "setpwd ": [[44, "setpwd-idx-dir"]], "getpwd ": [[44, "getpwd-idx"]], "getfiles ": [[44, "getfiles-dir"]], "getdirs ": [[44, "getdirs-dir"]], "dccsend ": [[44, "dccsend-filename-ircnick"]], "filesend [ircnick]": [[44, "filesend-idx-filename-ircnick"]], "fileresend [ircnick]": [[44, "fileresend-idx-filename-ircnick"]], "setdesc ": [[44, "setdesc-dir-file-desc"]], "getdesc ": [[44, "getdesc-dir-file"]], "setowner ": [[44, "setowner-dir-file-handle"]], "getowner ": [[44, "getowner-dir-file"]], "setlink ": [[44, "setlink-dir-file-link"]], "getlink ": [[44, "getlink-dir-file"]], "getfileq ": [[44, "getfileq-handle"]], "getfilesendtime ": [[44, "getfilesendtime-idx"]], "mkdir [ [channel]]": [[44, "mkdir-directory-required-flags-channel"]], "rmdir ": [[44, "rmdir-directory"]], "mv ": [[44, "mv-file-destination"]], "cp ": [[44, "cp-file-destination"]], "getflags ": [[44, "getflags-dir"]], "setflags [ [channel]]": [[44, "setflags-dir-flags-channel"]], "Miscellaneous Commands": [[44, "miscellaneous-commands"]], "bind [proc-name]": [[44, "bind-type-flags-keyword-mask-proc-name"]], "unbind ": [[44, "unbind-type-flags-keyword-mask-proc-name"]], "binds [type/mask]": [[44, "binds-type-mask"]], "logfile [ ]": [[44, "logfile-modes-channel-filename"]], "maskhost [masktype]": [[44, "maskhost-nick-user-host-masktype"]], "timer [count [timerName]]": [[44, "timer-minutes-tcl-command-count-timername"]], "utimer [count [timerName]]": [[44, "utimer-seconds-tcl-command-count-timername"]], "timers": [[44, "timers"]], "utimers": [[44, "utimers"]], "killtimer ": [[44, "killtimer-timername"]], "killutimer ": [[44, "killutimer-timername"]], "unixtime": [[44, "unixtime"]], "duration ": [[44, "duration-seconds"]], "strftime [time]": [[44, "strftime-formatstring-time"]], "ctime ": [[44, "ctime-unixtime"]], "myip": [[44, "myip"]], "rand ": [[44, "rand-limit"]], "control ": [[44, "control-idx-command"]], "sendnote ": [[44, "sendnote-from-to-bot-message"]], "link [via-bot] ": [[44, "link-via-bot-bot"]], "unlink [comment]": [[44, "unlink-bot-comment"]], "encrypt ": [[44, "encrypt-key-string"]], "decrypt ": [[44, "decrypt-key-encrypted-base64-string"]], "encpass ": [[44, "encpass-password"]], "die [reason]": [[44, "die-reason"]], "unames": [[44, "unames"]], "dnslookup [[arg1] [arg2] \u2026 [argN]]": [[44, "dnslookup-ip-address-hostname-proc-arg1-arg2-argn"]], "md5 ": [[44, "md5-string"]], "callevent ": [[44, "callevent-event"]], "traffic": [[44, "traffic"]], "modules": [[44, "modules"]], "loadmodule ": [[44, "loadmodule-module"]], "unloadmodule ": [[44, "unloadmodule-module"]], "loadhelp ": [[44, "loadhelp-helpfile-name"]], "unloadhelp ": [[44, "unloadhelp-helpfile-name"]], "reloadhelp": [[44, "reloadhelp"]], "restart": [[44, "restart"]], "rehash": [[44, "rehash"]], "stripcodes ": [[44, "stripcodes-strip-flags-string"]], "matchaddr
    ": [[44, "matchaddr-hostmask-address"]], "matchcidr
    ": [[44, "matchcidr-block-address-prefix"]], "matchstr ": [[44, "matchstr-pattern-string"]], "rfcequal ": [[44, "rfcequal-string1-string2"]], "status [type]": [[44, "status-type"]], "istls ": [[44, "istls-idx"]], "starttls ": [[44, "starttls-idx"]], "tlsstatus ": [[44, "tlsstatus-idx"]], "Global Variables": [[44, "global-variables"]], "botnick": [[44, "botnick"]], "botname": [[44, "botname"]], "server": [[44, "server"]], "serveraddress": [[44, "serveraddress"]], "version": [[44, "version"]], "numversion*": [[44, "numversion"]], "uptime": [[44, "uptime"]], "server-online": [[44, "server-online"]], "lastbind": [[44, "lastbind"]], "isjuped": [[44, "isjuped"]], "handlen": [[44, "handlen"]], "config": [[44, "config"]], "configureargs": [[44, "configureargs"]], "language": [[44, "language"]], "Binds": [[44, "binds"], [48, "binds"]], "Stackable binds": [[44, "stackable-binds"]], "Removing a bind": [[44, "removing-a-bind"]], "Flag Masks": [[44, "flag-masks"]], "Bind Types": [[44, "bind-types"], [48, "bind-types"]], "Return Values": [[44, "return-values"]], "Control Procedures": [[44, "control-procedures"]], "TCP Connections": [[44, "tcp-connections"]], "Match Characters": [[44, "match-characters"]], "Textfile Substitutions": [[45, "textfile-substitutions"]], "TLS support": [[46, "tls-support"]], "IRC": [[46, "irc"]], "Secure DCC": [[46, "secure-dcc"]], "Keys, certificates and authentication": [[46, "keys-certificates-and-authentication"]], "SSL/TLS Settings": [[46, "ssl-tls-settings"]], "Advanced Tips": [[47, "advanced-tips"]], "Renaming commands": [[47, "renaming-commands"]], "Keeping Logs": [[47, "keeping-logs"]], "Self-logging": [[47, "self-logging"]], "Modifying Default Strings": [[47, "modifying-default-strings"]], "Modularizing Your Config File": [[47, "modularizing-your-config-file"]], "Variables in Your Config": [[47, "variables-in-your-config"]], "Eggdrop Twitch Tcl Commands": [[48, "eggdrop-twitch-tcl-commands"]], "Commands": [[48, "commands"]], "twcmd [arg]": [[48, "twcmd-chan-cmd-arg"]], "userstate ": [[48, "userstate-channel"]], "roomstate ": [[48, "roomstate-channel"]], "twitchmods ": [[48, "twitchmods-channel"]], "twitchvips ": [[48, "twitchvips-channel"]], "ismod [channel]": [[48, "ismod-nick-channel"]], "isvip [channel]": [[48, "isvip-nick-channel"]], "Flags": [[48, "flags"]], "Twitch": [[49, "twitch"]], "Disclaimer": [[49, "disclaimer"]], "Registering with Twitch": [[49, "registering-with-twitch"]], "Twitch web UI functions": [[49, "twitch-web-ui-functions"]], "Twitch IRC limitations": [[49, "twitch-irc-limitations"]], "Users and Flags": [[50, "users-and-flags"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["about/about", "about/legal", "index", "install/install", "install/readme", "install/upgrading", "modules/included", "modules/index", "modules/internals", "modules/mod/assoc", "modules/mod/blowfish", "modules/mod/channels", "modules/mod/compress", "modules/mod/console", "modules/mod/ctcp", "modules/mod/dns", "modules/mod/filesys", "modules/mod/ident", "modules/mod/irc", "modules/mod/notes", "modules/mod/pbkdf2", "modules/mod/python", "modules/mod/seen", "modules/mod/server", "modules/mod/share", "modules/mod/transfer", "modules/mod/twitch", "modules/mod/uptime", "modules/mod/woobie", "modules/writing", "tutorials/firstscript", "tutorials/firststeps", "tutorials/module", "tutorials/setup", "tutorials/tlssetup", "using/accounts", "using/autoscripts", "using/bans", "using/botnet", "using/core", "using/features", "using/ipv6", "using/ircv3", "using/partyline", "using/patch", "using/pbkdf2info", "using/tcl-commands", "using/text-sub", "using/tls", "using/tricks", "using/twitch-tcl-commands", "using/twitchinfo", "using/users"], "filenames": ["about/about.rst", "about/legal.rst", "index.rst", "install/install.rst", "install/readme.rst", "install/upgrading.rst", "modules/included.rst", "modules/index.rst", "modules/internals.rst", "modules/mod/assoc.rst", "modules/mod/blowfish.rst", "modules/mod/channels.rst", "modules/mod/compress.rst", "modules/mod/console.rst", "modules/mod/ctcp.rst", "modules/mod/dns.rst", "modules/mod/filesys.rst", "modules/mod/ident.rst", "modules/mod/irc.rst", "modules/mod/notes.rst", "modules/mod/pbkdf2.rst", "modules/mod/python.rst", "modules/mod/seen.rst", "modules/mod/server.rst", "modules/mod/share.rst", "modules/mod/transfer.rst", "modules/mod/twitch.rst", "modules/mod/uptime.rst", "modules/mod/woobie.rst", "modules/writing.rst", "tutorials/firstscript.rst", "tutorials/firststeps.rst", "tutorials/module.rst", "tutorials/setup.rst", "tutorials/tlssetup.rst", "using/accounts.rst", "using/autoscripts.rst", "using/bans.rst", "using/botnet.rst", "using/core.rst", "using/features.rst", "using/ipv6.rst", "using/ircv3.rst", "using/partyline.rst", "using/patch.rst", "using/pbkdf2info.rst", "using/tcl-commands.rst", "using/text-sub.rst", "using/tls.rst", "using/tricks.rst", "using/twitch-tcl-commands.rst", "using/twitchinfo.rst", "using/users.rst"], "titles": ["About Eggdrop", "Boring legal stuff", "Eggdrop, an open source IRC bot", "Installing Eggdrop", "README", "Upgrading Eggdrop", "Modules included with Eggdrop", "Eggdrop Module Information", "Eggdrop Bind Internals", "Assoc Module", "Blowfish Module", "Channels Module", "Compress Module", "Console Module", "CTCP Module", "DNS Module", "Filesys Module", "Ident Module", "IRC Module", "Notes Module", "PBKDF2 Module", "Python Module", "Seen Module", "Server Module", "Share Module", "Transfer Module", "Twitch Module", "Uptime Module", "Woobie Module", "How to Write an Eggdrop Module", "Writing an Eggdrop Script", "Common First Steps", "Writing a Basic Eggdrop Module", "Setting Up Eggdrop", "Enabling TLS Security on Eggdrop", "Account tracking in Eggdrop", "Eggdrop Autoscripts", "Bans, Invites, and Exempts", "Botnet Sharing and Linking", "Eggdrop Core Settings", "Eggdrop Features", "IPv6 support", "IRCv3 support", "The Party Line", "Patching Eggdrop", "Encryption/Hashing", "Eggdrop Tcl Commands", "Textfile Substitutions", "TLS support", "Advanced Tips", "Eggdrop Twitch Tcl Commands", "Twitch", "Users and Flags"], "terms": {"current": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "version": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52], "1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "9": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "5": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "last": [0, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 37, 39, 41, 42, 43, 46, 47, 48, 49, 50, 52], "revis": [0, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 37, 39, 41, 42, 43, 46, 47, 48, 49, 50, 52], "juli": 0, "27": [0, 12, 17, 24, 42], "2010": [0, 11, 15, 23, 39, 41, 42, 47, 48], "wa": [0, 2, 6, 8, 20, 26, 30, 32, 33, 36, 38, 42, 45, 46, 48, 50, 51], "creat": [0, 3, 4, 8, 16, 17, 21, 24, 29, 30, 31, 32, 33, 36, 37, 39, 44, 45, 46, 48, 49, 51], "around": [0, 4, 26, 34, 41, 46, 51], "decemb": [0, 28, 40, 43], "1993": [0, 40], "help": [0, 3, 8, 14, 23, 29, 30, 31, 32, 33, 36, 37, 38, 39, 41, 43, 46, 47, 52], "stop": [0, 11, 16, 18, 29, 31, 46, 50], "incess": 0, "war": 0, "gayteen": 0, "It": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 16, 18, 23, 27, 29, 31, 33, 35, 36, 38, 39, 40, 41, 43, 46, 50, 51], "spawn": 0, "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 16, 17, 18, 19, 20, 21, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 45, 47, 48, 49, 50, 51, 52], "anoth": [0, 8, 11, 16, 18, 19, 23, 24, 29, 33, 36, 38, 39, 46, 47, 50], "bot": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 29, 30, 31, 33, 34, 37, 39, 40, 41, 42, 43, 45, 47, 48, 49, 50, 51, 52], "process": [0, 3, 4, 5, 12, 16, 17, 25, 31, 33, 36, 38, 45, 46, 48], "being": [0, 4, 11, 16, 18, 23, 34, 35, 36, 40, 41, 46, 50], "written": [0, 21, 29, 32, 33, 36, 46, 51], "time": [0, 3, 4, 6, 11, 15, 16, 17, 18, 20, 24, 25, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 45, 47, 48, 49, 51], "call": [0, 3, 4, 8, 21, 29, 30, 31, 36, 38, 39, 46, 50], "unrest": 0, "The": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 42, 45, 46, 48, 49, 50, 51, 52], "purpos": [0, 1, 6, 8, 27, 28, 32, 38, 39, 46], "answer": [0, 7, 14, 17, 23, 30], "request": [0, 4, 5, 7, 11, 14, 16, 18, 23, 33, 35, 37, 39, 41, 42, 44, 46, 48, 49, 51], "other": [0, 1, 4, 6, 8, 10, 11, 15, 16, 17, 18, 19, 20, 23, 24, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52], "first": [0, 2, 4, 5, 6, 8, 16, 20, 23, 29, 30, 32, 33, 34, 38, 39, 45, 46, 48, 49, 50], "public": [0, 1, 4, 30, 31, 32, 34, 39, 46, 48, 49, 52], "releas": [0, 1, 33, 45, 46], "0": [0, 4, 8, 11, 13, 14, 16, 17, 18, 19, 20, 21, 23, 24, 25, 29, 30, 31, 32, 33, 36, 38, 39, 41, 42, 43, 45, 46, 48, 49, 50], "6": [0, 5, 8, 11, 18, 31, 33, 36, 39, 41, 46], "sinc": [0, 3, 5, 18, 33, 36, 38, 39, 40, 41, 46, 48, 49], "ha": [0, 1, 2, 4, 5, 6, 8, 11, 15, 16, 18, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 45, 46, 48, 50, 51, 52], "grown": 0, "what": [0, 1, 2, 5, 6, 8, 11, 16, 18, 23, 27, 30, 31, 32, 33, 36, 39, 42, 43, 45, 46], "you": [0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "have": [0, 1, 3, 4, 5, 6, 8, 10, 11, 13, 16, 18, 19, 20, 21, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 45, 46, 48, 49, 50, 51, 52], "befor": [0, 4, 8, 11, 15, 17, 18, 19, 23, 24, 25, 29, 31, 32, 33, 35, 36, 38, 39, 46, 51], "i": [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "world": [0, 2, 4, 21, 34, 39], "": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 16, 17, 18, 22, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 43, 45, 47, 48, 49, 50, 51, 52], "most": [0, 2, 4, 5, 17, 18, 23, 29, 30, 31, 33, 34, 39, 40, 43, 46, 50, 51], "popular": [0, 4, 5, 33, 39], "internet": [0, 4, 46, 48], "relai": [0, 4, 38, 39], "chat": [0, 2, 4, 6, 8, 14, 23, 31, 33, 38, 39, 40, 43, 46, 48, 50, 51], "irc": [0, 4, 6, 8, 16, 17, 23, 26, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 42, 43, 46, 47, 49, 50, 52], "freeli": [0, 4, 21], "distribut": [0, 1, 4, 32, 33], "under": [0, 4, 32, 33, 40, 46], "gnu": [0, 1, 3, 4, 8, 12, 32], "gener": [0, 1, 3, 4, 8, 20, 26, 30, 31, 32, 33, 42, 45, 46, 48, 51], "licens": [0, 1, 4, 32], "gpl": [0, 4, 32], "featur": [0, 2, 4, 7, 11, 18, 23, 24, 31, 33, 35, 39, 41, 42, 44, 46, 48, 51, 52], "rich": [0, 4, 33], "program": [0, 2, 4, 17, 31, 32, 33], "design": [0, 2, 4, 6, 20, 36, 42, 50], "easili": [0, 1, 2, 4, 30, 40, 46], "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 23, 24, 25, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 43, 45, 46, 47, 48, 49, 50, 51, 52], "expand": [0, 2, 4], "upon": [0, 4, 50, 52], "both": [0, 4, 11, 23, 25, 34, 35, 38, 41, 45, 46, 48], "novic": [0, 4], "advanc": [0, 2, 4, 6, 22, 30, 40], "user": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51], "varieti": [0, 4], "hardwar": [0, 4], "softwar": [0, 1, 2, 4, 32], "platform": [0, 4, 26, 46, 51], "an": [0, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16, 17, 18, 20, 23, 25, 26, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51], "sit": [0, 4, 39, 45], "channel": [0, 2, 4, 5, 6, 8, 9, 13, 18, 22, 23, 24, 26, 29, 30, 33, 35, 36, 37, 38, 39, 40, 43, 47, 49, 51, 52], "perform": [0, 3, 4, 5, 8, 11, 32, 33, 46, 52], "autom": [0, 2, 4], "task": [0, 2, 4, 8, 38], "while": [0, 4, 5, 11, 17, 26, 33, 35, 36, 37, 39, 43, 45, 46, 51], "look": [0, 4, 5, 6, 8, 11, 21, 22, 27, 28, 30, 31, 32, 34, 35, 39, 40, 45, 46, 48, 51], "just": [0, 3, 4, 5, 6, 8, 15, 16, 18, 20, 21, 24, 29, 31, 32, 33, 35, 36, 38, 39, 43, 45, 46, 49, 50, 51], "like": [0, 1, 4, 8, 10, 11, 14, 16, 18, 20, 21, 29, 30, 31, 32, 33, 36, 39, 40, 41, 43, 44, 45, 46, 48, 50, 51, 52], "normal": [0, 4, 6, 14, 15, 16, 17, 21, 23, 29, 30, 34, 36, 39, 46, 48, 49, 50, 51], "some": [0, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 29, 32, 33, 35, 37, 38, 39, 40, 41, 42, 46, 48, 49, 51, 52], "function": [0, 1, 2, 4, 6, 7, 8, 20, 21, 26, 32, 33, 38, 39, 41, 45, 46, 49, 50], "includ": [0, 2, 3, 4, 7, 8, 18, 21, 27, 29, 32, 33, 34, 37, 39, 40, 41, 45, 46, 48, 50, 51], "protect": [0, 2, 3, 4, 11, 20, 23, 31, 33, 37, 39, 45, 46, 48, 52], "abus": [0, 2, 4], "allow": [0, 3, 4, 5, 6, 7, 11, 12, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 45, 46, 48, 49, 51], "privileg": [0, 4, 17, 52], "gain": [0, 4, 45, 52], "op": [0, 2, 4, 11, 18, 26, 35, 38, 40, 45, 46, 51, 52], "voic": [0, 2, 4, 11, 31, 46, 52], "statu": [0, 2, 4, 11, 26, 29, 32, 34, 39, 49, 50, 51], "log": [0, 2, 4, 6, 11, 20, 26, 29, 32, 33, 35, 44, 45, 46, 51], "event": [0, 4, 26, 29, 32, 35, 38, 39, 50, 51], "provid": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 29, 31, 32, 33, 36, 39, 41, 42, 44, 46, 48, 50, 51], "inform": [0, 2, 3, 4, 5, 6, 8, 11, 16, 21, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 41, 42, 46, 48], "host": [0, 2, 4, 11, 17, 23, 26, 30, 36, 37, 38, 39, 48, 50, 52], "game": [0, 2, 4, 26, 51], "etc": [0, 2, 4, 8, 11, 18, 21, 26, 29, 33, 35, 36, 38, 39, 40, 46, 49, 52], "One": [0, 4, 30, 35, 46], "make": [0, 2, 3, 4, 5, 6, 7, 11, 14, 16, 20, 23, 24, 26, 29, 30, 31, 33, 34, 36, 39, 41, 42, 44, 46, 48, 49, 51], "stand": [0, 4, 33], "out": [0, 3, 4, 8, 25, 27, 30, 31, 32, 33, 38, 39, 43, 45, 46, 48], "modul": [0, 4, 8, 33, 35, 38, 40, 45, 51], "tcl": [0, 1, 2, 3, 4, 6, 11, 12, 23, 29, 30, 33, 37, 39, 40, 41, 48, 49, 51], "script": [0, 2, 3, 4, 6, 7, 8, 11, 23, 31, 32, 33, 37, 40, 41, 46, 49, 50, 51, 52], "support": [0, 2, 3, 4, 5, 6, 9, 11, 12, 15, 17, 18, 19, 23, 24, 25, 31, 33, 34, 37, 39, 40, 46, 49, 51], "With": [0, 4, 6, 16, 32, 38, 39, 45, 46, 48], "can": [0, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "almost": [0, 4, 33, 37, 52], "ani": [0, 1, 2, 3, 4, 5, 7, 13, 16, 17, 18, 19, 23, 24, 26, 29, 30, 31, 32, 33, 36, 37, 39, 40, 43, 45, 46, 48, 50, 51, 52], "want": [0, 3, 4, 6, 8, 11, 13, 15, 16, 18, 19, 23, 29, 30, 31, 32, 33, 38, 39, 41, 46, 48, 49], "thei": [0, 3, 4, 5, 7, 8, 11, 13, 14, 18, 19, 21, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 45, 46, 48, 50], "do": [0, 4, 6, 8, 11, 13, 16, 17, 18, 20, 23, 27, 30, 31, 32, 33, 35, 36, 38, 39, 40, 46, 47, 49, 50, 51], "anyth": [0, 4, 16, 30, 31, 32, 33, 36, 38, 39, 43, 46, 50], "prevent": [0, 4, 11, 18, 19, 26, 31, 33, 36, 38, 41, 46, 51], "flood": [0, 4, 11, 14, 19, 23, 36, 38, 39, 40, 46, 52], "greet": [0, 2, 4, 11, 21, 30, 35], "ban": [0, 2, 4, 11, 18, 26, 38, 39, 40, 51, 52], "advertis": [0, 4, 46], "also": [0, 2, 3, 4, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 43, 45, 46, 47, 48, 49, 50, 51, 52], "link": [0, 2, 3, 4, 5, 6, 7, 16, 24, 25, 29, 32, 39, 40, 42, 45, 48, 49], "multipl": [0, 2, 4, 8, 17, 30, 32, 33, 38, 39, 40, 46, 50], "togeth": [0, 2, 4, 23, 30, 38, 39, 40, 42, 46], "form": [0, 4, 29, 30, 46, 47], "botnet": [0, 2, 3, 4, 6, 9, 11, 13, 16, 23, 27, 33, 40, 41, 43, 45, 46, 49, 52], "thi": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52], "each": [0, 4, 6, 11, 16, 19, 21, 25, 30, 31, 33, 35, 36, 38, 39, 40, 43, 46, 49, 50, 52], "secur": [0, 2, 4, 10, 20, 31, 33, 39, 40, 45, 46], "control": [0, 2, 4, 18, 23, 30, 31, 38, 39, 40, 48, 51, 52], "effici": [0, 4, 33, 38, 39, 40], "even": [0, 4, 7, 16, 18, 29, 32, 33, 37, 38, 39, 40, 43, 46, 51], "across": [0, 4, 38, 42, 44, 46, 49], "network": [0, 2, 4, 18, 23, 39, 46, 47], "share": [0, 2, 4, 6, 11, 12, 25, 29, 39, 40, 46], "list": [0, 4, 6, 8, 11, 15, 16, 20, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 42, 43, 48, 50, 51], "exempt": [0, 1, 2, 4, 11, 18, 26, 38, 40, 51, 52], "invit": [0, 2, 4, 11, 18, 26, 38, 40, 42, 51], "ignor": [0, 4, 8, 14, 23, 24, 30, 38, 39, 40, 46, 50], "userfil": [0, 2, 4, 5, 6, 10, 11, 12, 20, 21, 24, 25, 29, 31, 33, 38, 39, 45, 46, 49], "enabl": [0, 2, 4, 6, 7, 13, 16, 18, 23, 25, 29, 30, 31, 33, 36, 38, 39, 40, 41, 42, 48, 49, 51], "same": [0, 3, 4, 5, 7, 8, 11, 12, 17, 18, 21, 29, 30, 33, 35, 36, 38, 39, 42, 45, 46, 47, 48, 49, 50], "access": [0, 4, 17, 23, 29, 30, 31, 33, 36, 40, 43, 45, 46, 48, 50, 51, 52], "everi": [0, 3, 4, 11, 16, 18, 23, 25, 29, 30, 31, 35, 36, 37, 39, 41, 45, 46, 52], "your": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 41, 43, 44, 45, 46, 48, 51], "see": [0, 2, 3, 4, 5, 6, 8, 11, 16, 18, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 38, 39, 41, 43, 44, 45, 46, 47, 50], "doc": [0, 3, 4, 5, 6, 23, 30, 32, 34, 39, 43, 46, 50, 51], "set": [0, 1, 2, 3, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 29, 30, 34, 35, 37, 38, 40, 42, 43, 45, 47, 49, 50, 51, 52], "up": [0, 2, 3, 4, 5, 6, 16, 23, 27, 29, 30, 34, 35, 36, 38, 39, 43, 45, 46, 51], "alwai": [0, 3, 4, 11, 33, 35, 37, 46], "improv": [0, 4], "adjust": [0, 4, 18], "becaus": [0, 4, 8, 17, 23, 29, 30, 33, 36, 39, 46, 49, 50, 51], "ar": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52], "bug": [0, 3, 4, 30, 33, 44], "fix": [0, 3, 4, 29, 39, 46], "ad": [0, 2, 3, 4, 5, 7, 8, 11, 20, 21, 23, 24, 26, 29, 30, 33, 35, 36, 39, 40, 41, 42, 45, 46, 48, 50, 51], "demand": [0, 4], "them": [0, 1, 3, 4, 5, 7, 11, 13, 14, 15, 16, 18, 19, 21, 23, 24, 29, 30, 31, 33, 34, 36, 38, 39, 40, 41, 42, 45, 46, 49, 51, 52], "actual": [0, 4, 8, 16, 29, 30, 34, 39, 43, 46], "sens": [0, 4], "In": [0, 4, 5, 8, 15, 29, 31, 32, 33, 34, 35, 36, 38, 39, 46, 48, 51], "fact": [0, 4, 50], "exist": [0, 4, 8, 16, 21, 23, 29, 32, 35, 45, 46, 50, 51, 52], "sever": [0, 4, 14, 29, 33, 34, 42, 46, 49], "year": [0, 4, 33, 39, 46], "v0": [0, 4, 46], "7": [0, 4, 11, 33, 41, 46], "final": [0, 4, 8, 30, 31, 33, 39, 45], "go": [0, 3, 4, 6, 16, 23, 27, 30, 31, 33, 34, 35, 46], "part": [0, 4, 8, 23, 26, 30, 32, 39, 40, 46, 48, 49, 51], "tree": [0, 4, 33], "A": [0, 2, 4, 5, 11, 17, 30, 31, 32, 35, 36, 38, 39, 40, 42, 43, 46, 47, 48, 50, 52], "valiant": [0, 4], "effort": [0, 2, 4, 46], "been": [0, 1, 4, 5, 6, 16, 18, 21, 23, 29, 37, 39, 40, 46, 50], "made": [0, 1, 3, 4, 5, 11, 24, 32, 44, 46, 48, 51], "chase": [0, 4], "down": [0, 3, 4, 16, 38, 46], "destroi": [0, 4], "To": [0, 3, 4, 5, 7, 8, 21, 30, 31, 32, 33, 34, 35, 36, 39, 41, 43, 44, 46, 48, 49, 50], "need": [0, 3, 4, 8, 11, 15, 17, 18, 23, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 45, 46, 48, 50, 51, 52], "sort": [0, 4, 37], "unix": [0, 3, 16, 17, 33, 40], "account": [0, 2, 4, 17, 19, 29, 31, 33, 40, 42, 44, 45, 51], "pretti": [0, 43], "good": [0, 16, 23, 26, 30, 33, 39, 46, 51, 52], "knowledg": 0, "how": [0, 3, 6, 8, 11, 14, 15, 16, 19, 21, 23, 24, 26, 30, 31, 32, 33, 34, 37, 38, 39, 46, 48, 49, 50, 51], "compil": [0, 2, 3, 4, 29, 32, 33, 34, 39, 41, 46, 48], "read": [0, 2, 3, 4, 6, 7, 17, 29, 30, 31, 33, 34, 39, 46, 47, 51], "dcc": [0, 2, 4, 6, 8, 16, 22, 23, 25, 29, 31, 32, 33, 38, 40, 41, 43, 45, 49], "absolut": [0, 34, 46, 52], "minimum": [0, 11, 32, 36, 46, 50], "mb": 0, "disk": [0, 33, 39, 40, 46], "space": [0, 39, 42, 46], "tarbal": [0, 33], "4": [0, 3, 4, 8, 11, 15, 23, 29, 30, 31, 32, 33, 34, 36, 38, 39, 41, 46], "unpack": 0, "cannot": [0, 11, 29, 33, 35, 45, 46, 52], "without": [0, 2, 4, 5, 6, 10, 11, 14, 20, 21, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 42, 45, 46, 48], "instal": [0, 4, 5, 30, 31, 34, 36, 39], "shell": [0, 3, 4, 17, 31, 33, 39, 46], "copyright": [0, 1, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52], "c": [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52], "1999": [0, 3, 4, 7, 37, 38, 44, 46, 47, 49], "2023": [0, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52], "egghead": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52], "develop": [0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52], "team": [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52], "eggdrop": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 37, 41, 42, 43, 45, 47, 48, 49, 51, 52], "robei": [1, 3, 4, 40, 47, 52], "pointer": [1, 3, 4, 8, 32, 40, 47], "As": [1, 16, 20, 30, 33, 34, 42, 46, 48, 51], "januari": [1, 9, 10, 13, 19, 22, 27, 46], "1997": [1, 3, 4, 40, 47], "accord": [1, 46, 52], "There": [1, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 34, 35, 37, 39, 41, 45, 47, 48, 51, 52], "should": [1, 3, 4, 5, 6, 8, 11, 13, 14, 15, 16, 18, 20, 21, 23, 24, 26, 29, 30, 31, 32, 33, 36, 38, 39, 41, 43, 45, 46, 48, 50, 51], "copi": [1, 2, 5, 7, 16, 29, 32, 33, 46], "file": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 38, 40, 41, 45, 47, 48, 52], "If": [1, 3, 4, 5, 6, 7, 8, 11, 13, 16, 17, 18, 20, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 45, 46, 48, 49, 50], "write": [1, 2, 6, 7, 28, 33, 36, 39, 45, 46, 51], "free": [1, 2, 5, 29, 32], "foundat": [1, 32], "inc": [1, 32], "51": 1, "franklin": 1, "street": 1, "fifth": 1, "floor": 1, "boston": [1, 32], "ma": [1, 32], "02110": 1, "1301": 1, "usa": [1, 32], "3": [1, 8, 11, 14, 15, 16, 18, 23, 25, 31, 32, 33, 34, 35, 38, 39, 42, 46], "28": [1, 10, 20], "all": [1, 5, 6, 7, 8, 11, 14, 15, 16, 18, 20, 21, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52], "chang": [1, 2, 8, 10, 11, 16, 18, 20, 21, 23, 24, 26, 30, 32, 33, 34, 36, 38, 39, 40, 42, 43, 44, 48, 50, 51], "sourc": [1, 3, 4, 5, 6, 7, 8, 21, 29, 30, 32, 34, 36, 39, 44, 46, 48, 49], "code": [1, 2, 3, 4, 6, 7, 8, 29, 30, 36, 46], "relat": [1, 6, 11, 30, 32, 41, 46], "still": [1, 4, 5, 6, 11, 16, 24, 32, 33, 34, 35, 39, 40, 46, 51], "did": [1, 31, 45], "past": [1, 4, 29, 32, 39], "previou": [1, 3, 4, 5, 20, 33, 46, 51], "0m": 1, "were": [1, 17, 18, 37, 38, 39, 41, 45, 46, 51], "differ": [1, 3, 4, 5, 11, 16, 23, 30, 32, 34, 35, 39, 45, 46, 49, 50], "scheme": 1, "mai": [1, 4, 5, 11, 12, 16, 17, 18, 25, 30, 33, 38, 39, 41, 42, 46, 49, 50, 51], "option": [1, 3, 4, 7, 11, 16, 17, 20, 23, 31, 32, 33, 39, 48, 51], "those": [1, 3, 7, 12, 16, 23, 29, 30, 31, 32, 33, 46, 49, 50, 51], "instead": [1, 4, 5, 11, 16, 17, 18, 21, 24, 26, 33, 36, 38, 39, 45, 46, 48, 49, 51, 52], "packag": [1, 3, 4, 33, 34, 36], "bless": 1, "For": [1, 2, 3, 5, 6, 7, 8, 16, 21, 23, 31, 32, 33, 34, 36, 38, 39, 41, 42, 43, 45, 46, 48, 49, 50, 51], "bear": 1, "date": [1, 4, 32, 33, 35, 39, 46], "later": [1, 3, 6, 8, 10, 19, 20, 27, 30, 32, 33, 39, 46, 48], "choic": [1, 23, 30], "must": [1, 2, 3, 4, 8, 11, 15, 17, 18, 21, 23, 25, 29, 31, 32, 33, 34, 35, 36, 38, 39, 45, 46, 48, 50], "match": [1, 2, 8, 11, 16, 18, 29, 30, 32, 36, 37, 39, 45, 48, 50], "net": [1, 3, 18, 23, 26, 33, 35, 42], "blowfish": [1, 2, 5, 6, 20, 29, 39, 45, 46], "abov": [1, 4, 18, 20, 29, 30, 31, 40, 46, 47], "restrict": [1, 16, 17, 23, 39, 46, 47, 51], "origin": [1, 8, 23, 33, 44, 46], "chri": 1, "fuller": 1, "place": [1, 3, 5, 7, 11, 16, 18, 21, 30, 32, 33, 36, 37, 39, 46, 48, 51], "him": 1, "domain": [1, 15, 38], "variou": [1, 8, 29, 33, 37, 39, 46], "well": [1, 8, 26, 30, 31, 32, 33, 34, 35, 36, 39, 45, 46, 48, 51], "contain": [1, 3, 4, 5, 30, 33, 35, 36, 38, 39, 41, 46, 48, 50], "could": [1, 8, 23, 30, 36, 38, 39, 41, 44, 45, 46, 48, 51], "port": [1, 5, 15, 17, 23, 24, 31, 33, 34, 38, 39, 41, 48], "applic": [1, 39, 46], "john": 1, "ousterhout": 1, "wai": [1, 3, 17, 23, 26, 29, 30, 31, 33, 34, 35, 37, 38, 39, 43, 45, 46, 48, 51], "affili": [1, 51], "its": [1, 2, 4, 6, 7, 11, 16, 17, 18, 20, 23, 24, 26, 30, 31, 32, 33, 35, 36, 38, 39, 40, 44, 46, 49, 51], "own": [1, 6, 7, 16, 17, 23, 24, 30, 31, 32, 33, 34, 36, 42, 46, 48, 49, 51], "nots": 1, "warranti": [1, 32], "impli": [1, 29, 32], "whatev": [1, 3, 30, 39, 40, 46, 47], "risk": [1, 23], "matter": [1, 8, 15, 30, 31], "put": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 39, 46, 48], "built": [2, 17, 21, 46, 49], "assist": [2, 33, 35, 48], "manag": [2, 4, 6, 16, 26, 34, 36, 51], "oldest": [2, 46], "activ": [2, 11, 17, 32, 33, 35, 36, 37, 43, 46, 48], "maintain": [2, 17, 33, 35, 49, 50], "via": [2, 3, 4, 6, 11, 12, 17, 18, 21, 22, 24, 29, 30, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 47, 48, 50, 51], "abil": [2, 6, 7, 17, 34, 35, 38, 40, 46], "run": [2, 3, 4, 5, 6, 7, 11, 17, 21, 23, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 45, 47, 48, 50], "join": [2, 6, 8, 11, 13, 18, 19, 26, 30, 32, 33, 34, 37, 39, 40, 42, 43, 46, 50, 51, 52], "perorm": 2, "obtain": [2, 34, 48], "larg": [2, 16, 18, 23, 39], "number": [2, 11, 16, 18, 19, 20, 23, 25, 26, 29, 32, 33, 34, 36, 38, 39, 45, 46, 48, 50, 51, 52], "integr": [2, 21], "ircv3": [2, 35, 40, 46, 49], "capabl": [2, 39, 40, 46, 49, 51], "tl": [2, 3, 4, 5, 8, 31, 33, 36, 39, 46], "ipv6": [2, 33, 39, 40, 46], "twitch": [2, 6, 40], "much": [2, 3, 8, 26, 29, 43, 46], "project": [2, 44, 51], "http": [2, 4, 6, 21, 22, 27, 33, 35, 36, 42], "github": [2, 4, 33], "com": [2, 4, 5, 6, 21, 22, 23, 30, 31, 33, 38, 39, 45, 46, 48], "clone": [2, 4, 11, 33], "git": [2, 3, 33, 44], "altern": [2, 4, 6, 17, 23, 33, 34, 36, 38, 39, 46, 48], "stabl": [2, 4, 33], "snapshot": [2, 33], "locat": [2, 4, 30, 31, 34, 36, 39, 48], "geteggdrop": [2, 4, 33], "addit": [2, 4, 5, 8, 17, 23, 33, 39, 46, 48, 50], "found": [2, 4, 8, 29, 39, 46, 50], "offici": [2, 4], "webpag": 2, "www": [2, 4, 6, 22], "org": [2, 4, 5, 6, 27, 30, 33, 34, 38, 39, 46], "requir": [2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 33, 36, 39, 45, 48, 50], "header": [2, 4, 6, 29, 30, 34, 48], "present": [2, 6, 30, 31, 35, 36, 41, 46, 50, 51], "system": [2, 3, 7, 15, 16, 17, 29, 33, 36, 39, 40, 41, 46, 47, 48], "strongli": [2, 4, 33], "encourag": [2, 33, 45], "openssl": [2, 3, 4, 20, 31, 33, 34, 39, 48], "commun": [2, 29, 38, 43, 44, 46], "guid": [2, 3, 30, 33, 34], "quickli": [2, 39], "here": [2, 4, 11, 14, 15, 16, 18, 19, 21, 23, 25, 30, 31, 32, 33, 36, 37, 38, 39, 46, 49, 50], "lurk": 2, "libera": [2, 4, 5, 23, 29, 30, 31, 33], "readm": [2, 3, 36], "notic": [2, 14, 16, 30, 38, 39, 46, 51], "quick": [2, 29, 33, 39], "startup": [2, 8, 45, 46], "upgrad": [2, 33, 45, 48], "command": [2, 3, 6, 8, 11, 13, 16, 17, 18, 22, 23, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 41, 43, 45, 48, 51, 52], "line": [2, 3, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 38, 39, 40, 45, 46, 48, 49, 50, 51], "auto": [2, 3, 38, 52], "start": [2, 3, 5, 6, 10, 17, 20, 23, 28, 30, 31, 36, 38, 39, 42, 43, 45, 46, 47, 50, 51], "document": [2, 8, 17, 30, 33, 34, 36, 38, 41, 42, 44, 48, 49], "cygwin": [2, 41], "window": [2, 31, 41], "v1": [2, 24, 25, 30, 36, 46, 48, 50], "core": [2, 3, 6, 7, 8, 18, 19, 21, 23, 29, 30, 32, 46, 49], "execut": [2, 3, 7, 29, 30, 31, 35, 46], "path": [2, 3, 6, 16, 17, 33, 34, 36, 46, 48], "basic": [2, 4, 6, 7, 21, 22, 30, 33], "consol": [2, 4, 6, 11, 29, 36, 40, 43], "directori": [2, 3, 4, 6, 7, 29, 31, 33, 34, 36, 40, 44, 48, 49], "telnet": [2, 31, 33, 38, 40, 41, 43, 45, 46, 47, 48], "ssl": [2, 3, 4, 5, 23, 31, 33, 34, 38, 40, 46], "parti": [2, 5, 13, 21, 33, 38, 39, 40, 46, 48, 52], "autoscript": 2, "usag": [2, 4, 6, 29, 39, 46], "structur": 2, "hint": [2, 30], "flag": [2, 5, 6, 8, 11, 14, 18, 24, 29, 30, 32, 33, 36, 39, 40, 47], "term": [2, 30, 32, 34, 46], "exampl": [2, 3, 4, 5, 7, 8, 16, 17, 21, 23, 29, 30, 31, 32, 33, 34, 36, 39, 43, 46, 48, 49, 50, 51], "bottre": 2, "botflag": [2, 24], "record": [2, 24, 29, 32, 35, 40, 52], "certif": [2, 3, 23, 31, 34, 39, 46], "authent": [2, 35, 45, 46, 51], "ctcp": [2, 6, 11, 23, 31, 33, 39, 46, 48], "chat4": 2, "chat6": 2, "kei": [2, 3, 11, 18, 26, 30, 31, 39, 45, 50, 51], "cap": [2, 29, 35, 40, 51], "track": [2, 3, 16, 26, 29, 31, 46, 51], "server": [2, 5, 6, 7, 11, 14, 15, 16, 17, 18, 20, 26, 27, 29, 31, 32, 33, 39, 40, 41, 42, 48, 49, 50, 51], "check": [2, 4, 5, 8, 11, 23, 29, 30, 31, 32, 34, 36, 39, 45, 46, 48, 50], "determin": [2, 3, 17, 29, 31, 33, 38, 41, 46, 48], "best": [2, 3, 6, 17, 33, 36, 38, 46, 50], "encrypt": [2, 5, 6, 10, 20, 31, 34, 38, 39, 40, 48], "hash": [2, 5, 6, 20, 33], "background": [2, 4, 30], "interfac": [2, 26, 46, 51], "disclaim": [2, 46], "regist": [2, 8, 11, 31, 32, 46], "edit": [2, 3, 8, 30, 32, 36, 49], "config": [2, 3, 4, 6, 7, 11, 12, 13, 14, 15, 17, 18, 19, 20, 23, 24, 25, 26, 27, 29, 30, 31, 34, 35, 37, 38, 39, 41, 45, 47, 48], "web": [2, 6, 21, 26, 39, 50], "ui": [2, 50], "limit": [2, 6, 8, 11, 16, 18, 23, 36, 38, 41], "tip": [2, 46], "renam": [2, 16, 29, 33, 39, 46], "keep": [2, 4, 11, 16, 23, 25, 33, 39, 51], "self": [2, 23, 34, 39, 48], "modifi": [2, 6, 11, 15, 18, 30, 32, 35, 36, 39, 46], "default": [2, 3, 4, 6, 12, 15, 16, 18, 23, 25, 31, 33, 34, 35, 36, 37, 39, 45, 46, 48], "string": [2, 6, 8, 11, 18, 29, 30, 31, 36, 39, 45, 50, 51], "modular": 2, "variabl": [2, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 29, 30, 35, 36, 39, 41, 47, 50], "textfil": 2, "substitut": [2, 39], "output": [2, 3, 29, 31, 32, 34, 45, 47, 49, 50], "manipul": [2, 39], "note": [2, 3, 6, 7, 8, 10, 11, 15, 18, 20, 23, 24, 29, 31, 32, 33, 35, 38, 39, 45, 48, 50, 51], "assoc": [2, 6], "compress": [2, 6, 31], "filesi": [2, 6, 39], "miscellan": 2, "global": [2, 8, 13, 17, 18, 23, 24, 29, 30, 32, 36, 37, 38, 50, 52], "bind": [2, 6, 17, 18, 23, 26, 29, 30, 35, 39, 49, 51], "procedur": [2, 24, 35, 50, 52], "tcp": [2, 17, 41], "connect": [2, 4, 5, 6, 15, 16, 17, 23, 26, 29, 31, 33, 38, 39, 41, 43, 48, 51, 52], "charact": [2, 11, 16, 23, 33, 38, 39, 41, 45], "patch": [2, 41, 46], "submit": [2, 46], "prerequisit": 2, "super": 2, "short": [2, 29, 31, 41, 48], "configur": [2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 36, 39, 41, 44, 46, 48], "common": [2, 23, 33, 34, 38, 39, 42, 48, 52], "step": [2, 3, 5, 29, 33, 51], "partylin": [2, 4, 6, 8, 11, 13, 33, 34, 35, 36, 38, 39, 41, 45, 46, 48, 49, 50, 51, 52], "automat": [2, 3, 4, 5, 8, 13, 17, 21, 23, 33, 35, 36, 37, 38, 39, 40, 41, 45, 46, 48, 51, 52], "restart": [2, 3, 4, 5, 7, 30, 33, 36, 39], "nickserv": [2, 48], "sasl": [2, 33, 40, 42], "export": [2, 8, 49], "dynam": [2, 3, 11, 31, 33, 37, 46], "static": [2, 3, 8, 11, 29, 31, 32, 46], "dn": [2, 6, 39, 46], "ident": [2, 6, 7, 18, 23, 31, 39, 41, 45, 46], "pbkdf2": [2, 5, 6, 45], "seen": [2, 6, 11, 35, 39, 46], "transfer": [2, 6, 7, 12, 16, 21, 24, 33, 38, 39, 41, 46, 48, 52], "woobi": [2, 3, 6, 29, 32, 36], "uptim": [2, 6], "intern": [2, 23, 35, 39, 46, 50], "tabl": [2, 29, 32, 42, 46], "creation": [2, 31, 35], "stackabl": 2, "ht_stackabl": [2, 32], "trigger": [2, 11, 21, 23, 29, 30, 32, 35, 46, 50], "handler": 2, "summari": [2, 36], "bore": [2, 4], "legal": [2, 4], "stuff": [2, 4, 29, 30, 33, 39, 46], "had": [3, 5, 8, 11, 38, 39, 46, 51], "littl": [3, 5, 16, 26, 33, 36, 38, 49], "experi": [3, 16, 30, 33], "THE": 3, "now": [3, 5, 8, 16, 17, 18, 30, 31, 32, 33, 34, 36, 38, 39, 41, 45, 46, 50, 52], "experienc": 3, "more": [3, 4, 5, 6, 8, 14, 16, 18, 21, 22, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 42, 44, 45, 46, 48], "cours": [3, 8, 30, 38, 39, 46], "autoconfigur": 3, "thing": [3, 4, 6, 26, 28, 29, 30, 31, 38, 39, 46, 51], "easier": [3, 20], "type": [3, 4, 6, 7, 8, 11, 13, 18, 21, 23, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 48], "figur": [3, 33], "correctli": [3, 46], "try": [3, 4, 6, 7, 22, 23, 27, 29, 30, 31, 33, 35, 39, 50], "find": [3, 6, 15, 18, 22, 29, 30, 31, 33, 43, 44, 46, 51], "which": [3, 5, 6, 8, 11, 13, 15, 16, 17, 21, 23, 24, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 45, 46, 47, 48, 49, 50, 52], "either": [3, 4, 8, 16, 17, 21, 31, 32, 33, 34, 35, 37, 38, 39, 41, 46, 48, 50], "iconfig": [3, 7, 33], "everyth": [3, 8, 21, 30, 46], "mod": [3, 6, 7, 22, 26, 29, 39, 46, 50], "choos": [3, 7, 31, 33, 39, 40, 51], "forc": [3, 11, 13, 16, 20, 24, 30, 39, 41, 46], "otherwis": [3, 4, 13, 16, 30, 35, 37, 38, 39, 41, 45, 46, 48, 50], "makefil": [3, 29], "better": [3, 4, 6, 22, 31, 33, 39], "possibl": [3, 6, 11, 14, 16, 23, 31, 34, 38, 39, 41, 42, 43, 46, 48, 50], "debug": [3, 27, 29, 30, 39, 46, 48, 50], "sdebug": 3, "give": [3, 4, 11, 16, 23, 30, 33, 38, 39, 40, 43, 45, 46, 52], "detail": [3, 4, 6, 8, 29, 32, 33, 35, 46, 48, 50], "highli": [3, 23, 33], "unlik": [3, 40], "crash": [3, 4, 8, 46], "take": [3, 4, 5, 6, 11, 16, 20, 21, 23, 27, 30, 32, 33, 36, 39, 45, 46, 48], "longer": [3, 5, 16, 18, 20, 29, 33, 34, 36, 46], "enlarg": 3, "binari": [3, 34], "bit": [3, 16, 26, 30, 33, 34, 39, 46, 48, 51], "worth": 3, "somewher": [3, 39], "accomplish": 3, "enter": [3, 11, 16, 31, 34, 39, 43, 44, 45, 46, 48, 50], "home": [3, 16, 17, 31, 33, 48], "e": [3, 6, 8, 9, 10, 11, 18, 20, 29, 31, 33, 38, 39, 46, 47, 52], "dest": [3, 6, 33, 34, 39, 46, 48], "otherdir": 3, "full": [3, 4, 5, 8, 11, 26, 33, 41, 46, 48, 50, 51], "8": [3, 5, 6, 8, 11, 15, 20, 23, 32, 33, 38, 39, 41, 45, 46, 48], "intend": [3, 8, 36, 37, 46], "traffic": [3, 39, 49], "between": [3, 6, 11, 16, 19, 23, 24, 32, 34, 35, 38, 39, 41, 46], "sslcert": [3, 34, 39, 48], "Or": [3, 34, 46], "non": [3, 11, 15, 17, 18, 23, 29, 31, 37, 38, 46, 48, 51], "interact": [3, 4, 6, 17, 18, 32, 39, 46, 48, 51], "sslsilent": [3, 48], "info": [3, 4, 11, 13, 18, 29, 33, 39], "follow": [3, 4, 5, 8, 11, 16, 18, 21, 23, 26, 29, 32, 33, 34, 36, 38, 39, 40, 42, 44, 45, 46, 47, 48, 49, 50, 51], "complet": [3, 4, 16, 21, 24, 33, 40, 46, 48, 52], "m": [3, 4, 11, 23, 33, 39, 41, 45, 46, 47, 49, 50, 52], "lamestbot": [3, 11, 19, 23, 33, 38, 39, 46, 47], "conf": [3, 7, 17, 31, 33, 42, 46, 48], "when": [3, 4, 6, 7, 10, 11, 13, 16, 17, 18, 21, 23, 24, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 45, 46, 48, 50, 51], "futur": [3, 18, 31, 33, 45, 46], "drop": [3, 4, 39, 46], "chmod": [3, 39], "u": [3, 5, 8, 29, 30, 31, 32, 38, 39, 46, 47, 52], "x": [3, 5, 8, 11, 14, 21, 32, 33, 34, 39, 41, 46, 52], "my": [3, 5, 36, 39, 41, 48, 52], "name": [3, 4, 6, 8, 9, 16, 23, 29, 30, 31, 32, 33, 34, 35, 36, 39, 50], "abl": [3, 6, 11, 16, 18, 23, 33, 35, 39, 43, 45, 46], "prompt": [3, 4, 35], "work": [3, 5, 6, 8, 11, 14, 16, 20, 21, 22, 24, 29, 30, 31, 32, 33, 37, 38, 39, 41, 42, 44, 45, 46, 48, 49, 50], "top": [3, 4, 30, 44, 46], "correct": [3, 8, 32, 34, 39, 45], "advis": [3, 23], "crontab": [3, 4, 46], "so": [3, 4, 6, 7, 8, 10, 16, 17, 18, 20, 27, 30, 31, 32, 33, 35, 37, 39, 40, 41, 45, 46, 50], "machin": [3, 4, 17, 33, 36, 39], "goe": [3, 11, 31, 36, 37, 38, 43, 46, 48], "heaven": 3, "forbid": 3, "helper": 3, "systemd": [3, 4], "entri": [3, 4, 8, 31, 33, 39], "add": [3, 4, 5, 6, 7, 8, 11, 17, 18, 21, 26, 29, 30, 32, 33, 34, 35, 36, 38, 39, 40, 45, 51], "job": [3, 4, 31, 48], "autobotchk": [3, 4, 31], "yourconfig": 3, "smile": 3, "tool": [3, 33], "prior": [3, 31, 33, 35, 45, 48], "interpret": [3, 6, 21, 32, 41, 46, 47], "devel": 3, "autoconf": 3, "gcc": 3, "util": 3, "diffutil": 3, "small": [3, 25, 38, 49], "piec": [3, 30, 32], "separ": [3, 7, 8, 23, 33, 36, 38, 39, 40, 41, 42, 46, 49, 50], "smaller": 3, "download": [3, 4, 5, 7, 16, 25, 36, 39, 40, 46], "src": [3, 7, 8, 18, 29], "extens": [3, 33, 35, 36], "dure": [3, 12, 21, 24, 29, 31, 33], "valid": [3, 11, 23, 29, 38, 39, 40, 46, 48], "compat": [3, 5, 36, 42, 46, 50, 51], "rest": [3, 29, 32, 38, 39, 45, 46, 50], "wish": [3, 5, 7, 17, 18, 27, 29, 33, 36, 37, 38, 39, 46, 50], "paragraph": 3, "2": [3, 8, 11, 14, 18, 21, 23, 31, 32, 33, 34, 35, 38, 39, 41, 42, 45, 46, 48], "after": [3, 4, 8, 11, 17, 18, 23, 29, 30, 31, 35, 36, 37, 39, 46, 48, 49, 51], "move": [3, 4, 16, 23, 33, 46, 51], "appropri": [3, 5, 33, 38, 39, 42, 44, 45], "onli": [3, 4, 5, 6, 7, 8, 11, 16, 17, 18, 19, 22, 23, 24, 27, 28, 30, 31, 33, 35, 37, 38, 39, 41, 43, 45, 46, 47, 48, 49, 50, 52], "portion": [3, 7, 11, 46], "end": [3, 29, 31, 32, 39, 45, 46, 47], "point": [3, 6, 8, 23, 28, 32, 33, 36, 38, 39, 46], "hopefulli": [3, 46], "IT": [3, 4], "fun": [3, 51], "pleas": [4, 5, 6, 7, 10, 11, 17, 20, 21, 23, 34, 39, 42, 46], "least": [4, 18, 29, 32, 33, 37, 39], "skim": 4, "ask": [4, 18, 31, 33, 43, 46, 48], "question": [4, 31], "ve": [4, 16, 33, 37, 38, 43], "never": [4, 5, 11, 39, 46], "successfulli": [4, 29, 46, 50], "sure": [4, 11, 29, 30, 33, 34, 38, 39, 46, 51], "select": [4, 33, 39, 40, 44, 46], "n": [4, 5, 11, 31, 32, 38, 39, 43, 46, 47, 52], "owner": [4, 8, 11, 33, 39, 43, 46, 52], "wise": [4, 39], "100": [4, 18, 50], "power": [4, 40], "TO": 4, "someon": [4, 11, 18, 30, 33, 34, 46, 50], "trust": [4, 39, 52], "about": [4, 6, 26, 27, 29, 30, 31, 32, 36, 39, 46, 49, 51], "older": [4, 41, 46], "frequent": [4, 33], "where": [4, 6, 8, 11, 15, 16, 19, 23, 29, 30, 31, 33, 34, 35, 36, 39, 40, 45, 46, 48, 50], "might": [4, 18, 29, 39, 46, 48], "two": [4, 6, 11, 18, 21, 24, 30, 32, 33, 35, 36, 37, 38, 39, 45, 46, 48, 49], "method": [4, 10, 17, 18, 20, 21, 26, 30, 33, 34, 45, 49, 51], "come": [4, 6, 18, 23, 31, 33, 44, 46], "imag": 4, "latest": [4, 5], "pub": [4, 5, 21, 23, 31, 32, 35, 46], "cv": 4, "base": [4, 6, 33, 35, 36, 39, 45, 46], "interest": 4, "veri": [4, 6, 17, 21, 22, 23, 30, 39], "updat": [4, 5, 6, 20, 29, 33, 35, 39, 40, 45, 46, 50], "pull": [4, 44, 45], "recent": [4, 33, 46, 48], "BE": 4, "warn": [4, 17, 30, 46], "branch": [4, 44], "consid": [4, 33, 35, 37, 39, 43, 46], "haha": 4, "signific": [4, 6], "repositori": [4, 33], "simpli": [4, 5, 21, 31, 33, 34, 42, 46, 51], "tar": [4, 7, 33], "archiv": 4, "gz": [4, 33], "hub": [4, 24, 33, 38, 39, 45, 48], "_": [4, 35, 47], "mani": [4, 5, 11, 15, 16, 18, 23, 29, 31, 32, 33, 34, 38, 39, 46], "tclsh": 4, "given": [4, 8, 15, 16, 17, 33, 38, 46, 50], "exit": [4, 6, 13, 16, 23, 46], "howev": [4, 6, 7, 14, 23, 31, 33, 34, 35, 39, 45, 46, 48, 49], "often": [4, 6, 15, 31, 33, 39, 50], "o": [4, 11, 14, 18, 26, 33, 34, 38, 39, 41, 46, 50, 51, 52], "usual": [4, 31, 32, 33, 34, 37, 41, 44, 45, 46, 48, 51], "someth": [4, 8, 21, 30, 33, 36, 44, 46, 51], "similar": [4, 11, 31, 32, 33, 36, 39, 43, 44, 46, 49], "dev": [4, 33, 34], "tk": 4, "tcltk": 4, "html": [4, 41], "recommend": [4, 5, 11, 25, 29, 33, 36, 45, 46, 49, 50], "order": [4, 15, 30, 32, 35, 39, 45, 46, 48, 50], "data": [4, 11, 24, 29, 34, 45, 46], "libssl": [4, 33, 34], "finish": [4, 8, 16, 33, 46], "simpl": [4, 29, 30, 31, 32, 33, 36, 46], "new": [4, 5, 6, 7, 20, 26, 30, 31, 32, 33, 35, 36, 39, 40, 41, 42, 43, 44, 45, 48, 49, 51], "repeat": [4, 35, 46], "defin": [4, 6, 8, 11, 12, 14, 18, 23, 29, 30, 33, 35, 36, 37, 38, 39, 42, 46, 52], "through": [4, 11, 16, 23, 26, 30, 34, 40, 41, 42, 43, 46, 51, 52], "sometim": [4, 23, 33], "mode": [4, 5, 11, 14, 18, 23, 26, 29, 31, 35, 37, 39, 40, 42, 51], "let": [4, 6, 8, 11, 15, 19, 29, 30, 33, 38, 39, 40, 46], "avail": [4, 8, 11, 16, 20, 27, 29, 31, 32, 33, 34, 36, 39, 40, 41, 43, 46, 51], "t": [4, 6, 7, 8, 10, 11, 13, 15, 16, 17, 18, 20, 23, 24, 26, 27, 29, 30, 31, 32, 33, 36, 37, 38, 39, 43, 46, 47, 48, 49, 50, 52], "don": [4, 7, 11, 15, 16, 18, 23, 24, 26, 29, 30, 31, 32, 33, 36, 38, 39, 43, 46, 48, 49], "termin": [4, 5, 8, 46], "session": [4, 41, 42], "troubleshoot": [4, 33], "issu": [4, 5, 17, 26, 33, 35, 39, 44, 46, 48, 50, 51], "show": [4, 6, 8, 11, 16, 21, 27, 30, 38, 39, 46], "10": [4, 8, 11, 18, 31, 33, 36, 38, 39, 46], "second": [4, 11, 14, 15, 18, 23, 25, 29, 30, 32, 39, 49], "screen": [4, 44, 47], "clear": [4, 6, 8, 44, 48, 50, 51], "one": [4, 8, 11, 16, 17, 18, 23, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 43, 44, 45, 46, 48, 49], "person": [4, 30, 33, 39, 46], "introduc": [4, 33, 46], "himself": 4, "herself": 4, "ll": [4, 30, 31, 32, 33, 35, 39, 45, 46, 48], "h": [4, 8, 18, 29, 34, 38, 39, 46, 52], "quit": [4, 6, 23, 33, 39, 46], "v": [4, 8, 11, 18, 31, 39, 46, 47, 52], "peopl": [4, 11, 16, 17, 18, 19, 23, 24, 30, 33, 39, 40, 43, 46, 47, 52], "except": [4, 14, 21, 23, 29, 39, 46, 48], "onc": [4, 6, 11, 16, 18, 20, 23, 30, 31, 33, 38, 44, 46], "along": [4, 16, 32], "manual": [4, 21, 31, 36, 38, 39, 41, 46, 48, 50], "oper": [4, 14, 23, 30, 36, 39, 41, 46, 47], "reason": [4, 29, 31, 33, 36, 38, 39], "monitor": [4, 31, 37, 40, 42], "boot": [4, 8, 39], "b": [4, 11, 16, 18, 26, 30, 31, 38, 39, 44, 46, 47, 51, 52], "minut": [4, 11, 18, 25, 29, 31, 33, 37, 39], "attempt": [4, 5, 11, 17, 18, 21, 23, 26, 34, 35, 37, 38, 39, 46, 48, 51], "geneer": 4, "setup": [4, 6, 7, 33, 39], "would": [4, 5, 14, 21, 30, 31, 33, 34, 35, 38, 39, 46, 47, 48, 50, 51], "noemail": 4, "botchk": [4, 31, 33], "send": [4, 6, 12, 16, 18, 19, 21, 23, 24, 25, 29, 30, 33, 35, 38, 41, 46, 49, 50], "email": [4, 31, 39, 46], "sai": [4, 11, 16, 30, 34, 38, 46], "we": [4, 5, 8, 11, 18, 26, 29, 30, 31, 32, 33, 34, 36, 38, 46, 51], "re": [4, 11, 17, 18, 23, 30, 31, 33, 34, 35, 36, 37, 39, 41, 43, 46, 51], "feel": [4, 5, 29, 44], "miss": [4, 33, 35, 46], "yet": [4, 23, 32, 33, 39, 46], "thank": 4, "discuss": [4, 44], "dalnet": [4, 18, 23], "efnet": [4, 18, 23], "egghelp": [4, 33], "ircnet": [4, 11, 18, 23], "quakenet": [4, 23], "undernet": [4, 18, 23, 46], "plan": [4, 30, 46], "familiar": [4, 30], "etiquett": 4, "capit": [4, 52], "letter": [4, 39, 52], "color": [4, 46], "bold": [4, 46, 47, 52], "excess": [4, 11, 23], "msg": [4, 6, 18, 22, 23, 31, 32, 33, 39, 40, 43, 45, 50], "permiss": [4, 39, 45], "than": [4, 8, 11, 14, 16, 18, 33, 34, 39, 45, 46, 48], "text": [4, 11, 23, 29, 31, 32, 39, 47, 48, 49, 50, 52], "state": [4, 46], "relev": [4, 29, 33], "error": [4, 23, 29, 33, 39, 46, 51], "messag": [4, 11, 23, 29, 30, 32, 33, 35, 39, 40, 42, 43, 45, 47, 49, 50], "easi": [5, 6, 30, 33, 36, 46, 48], "pictur": 5, "reus": [5, 46], "visit": [5, 51], "newer": [5, 33, 36], "backup": [5, 29], "chan": [5, 8, 11, 18, 21, 30, 31, 32, 33, 49], "save": [5, 6, 11, 12, 13, 21, 24, 38, 39, 40, 45], "overwritten": [5, 39, 46], "hurt": 5, "another": 5, "next": [5, 8, 11, 16, 23, 29, 30, 32, 33, 34, 36, 38, 39, 46], "view": [5, 7, 20, 21, 31, 33, 36, 40, 46, 50], "pai": [5, 35, 46], "particular": [5, 31, 32, 36, 39], "attent": [5, 23, 35, 46], "section": [5, 6, 8, 18, 23, 26, 30, 32, 33, 38, 39, 46, 51], "Then": [5, 31, 33, 48], "previous": [5, 33, 46], "unzip": [5, 33], "untar": 5, "These": [5, 11, 12, 18, 29, 33, 35, 36, 37, 38, 39, 41, 47, 48, 50, 52], "NOT": [5, 30, 33, 35, 38, 39, 46, 50], "rather": [5, 46, 48], "killer": 5, "directli": [5, 6, 11, 17, 24, 32, 33, 46], "affect": [5, 11, 26, 39, 40, 41, 46, 51], "modif": [5, 46], "migrat": 5, "suggest": [5, 29, 36], "deprec": [5, 6, 34, 46], "password": [5, 6, 10, 18, 20, 23, 24, 31, 33, 38, 39, 40, 43, 45, 48, 51], "favor": [5, 6, 24], "big": [5, 46, 49], "done": [5, 8, 21, 24, 29, 31, 32, 33, 34, 38, 44, 45, 46, 51], "carelessli": 5, "potenti": [5, 17, 30, 46, 50], "render": [5, 26, 51], "store": [5, 6, 11, 13, 16, 19, 26, 27, 30, 33, 35, 36, 38, 45, 46, 50, 51], "useless": [5, 26, 51], "properli": [5, 32, 33, 34, 38, 39], "switch": [5, 29, 33, 35, 39, 46, 48, 49], "syntax": [5, 8, 21, 31, 39, 48, 52], "6667": [5, 23, 33, 46, 51], "3rd": [5, 8], "remov": [5, 6, 11, 16, 20, 29, 31, 32, 33, 37, 40, 41, 45, 49, 50, 51], "ftp": [5, 33], "fulli": [5, 36, 39, 46, 51], "explicitli": [5, 46, 48], "prefix": [5, 8, 18, 23, 30, 34, 36, 38, 39, 43, 48, 50, 51], "advantag": [5, 33, 49], "chaddr": [5, 38], "lot": [5, 8, 18, 30, 33, 35], "backward": [5, 42], "reflect": [5, 46], "valu": [6, 8, 14, 15, 18, 21, 23, 26, 29, 30, 36, 39, 45, 47, 48, 50, 51], "disabl": [6, 18, 23, 31, 36, 39, 41, 46, 48], "cancel": [6, 46], "cd": [6, 8, 29, 32, 33, 46], "cp": 6, "dst": 6, "desc": [6, 29], "descript": [6, 29, 30, 31, 36, 39, 46, 50, 52], "filestat": 6, "stat": 6, "get": [6, 7, 8, 11, 21, 23, 24, 25, 29, 30, 34, 35, 39, 43, 52], "filenam": [6, 11, 19, 33, 36, 39, 48], "nicknam": [6, 8, 23, 30, 31, 33, 35, 39, 47, 49, 50, 52], "hide": [6, 41, 46], "ln": 6, "filepath": 6, "localfil": 6, "l": [6, 11, 18, 23, 31, 35, 38, 39, 52], "filemask": 6, "mkdir": 6, "dir": [6, 31], "mv": 6, "pend": [6, 11], "pwd": [6, 33], "rm": [6, 33], "rmdir": 6, "optim": [6, 8, 23], "unhid": 6, "unshar": [6, 52], "api": [6, 32, 36], "decrypt": 6, "won": [6, 11, 24, 29, 30, 33, 37, 38, 39, 46, 48, 50], "specif": [6, 11, 15, 17, 18, 20, 21, 23, 26, 32, 33, 38, 41, 42, 46, 48, 50, 51, 52], "therefor": [6, 18, 39, 46], "amount": [6, 39], "bandwidth": [6, 12], "storag": [6, 13, 45], "repli": [6, 14, 15, 17, 18, 35, 39, 46], "d": [6, 11, 14, 16, 29, 31, 32, 33, 34, 38, 39, 44, 46, 49, 52], "expect": [6, 14, 39, 46], "load": [6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 39, 45, 46, 51], "asynchron": [6, 15, 46], "avoid": [6, 8, 15, 31], "long": [6, 11, 15, 19, 23, 24, 37, 39, 46, 47, 50], "period": [6, 15, 33, 46], "hang": [6, 15], "wait": [6, 15, 16, 18, 23, 25, 33, 35, 39, 46], "hostnam": [6, 11, 15, 31, 39, 41], "resolv": [6, 15, 39, 46], "timeout": [6, 15, 23, 25, 39, 50], "area": [6, 16, 39, 46, 49, 52], "within": [6, 16, 21, 29, 33, 34, 36, 37, 39, 42, 46], "usabl": [6, 16, 21, 39], "extern": [6, 8, 17, 31, 39], "oident": [6, 17], "servic": [6, 11, 17, 26, 31, 35, 46, 48, 51], "act": [6, 17, 29, 39, 40, 46, 48], "daemon": [6, 17, 39], "onlin": [6, 16, 19, 31, 35], "retriev": [6, 19, 21], "transit": [6, 20, 45, 46], "earlier": [6, 20, 32, 33], "AND": [6, 8, 20, 33, 46], "By": [6, 16, 18, 20, 23, 25, 31, 35, 38, 39, 46, 48, 51], "seamlessli": [6, 20], "old": [6, 20, 23, 33], "eventu": [6, 20], "altogeth": [6, 20], "itself": [6, 16, 29, 30, 31, 32, 39, 46], "ie": [6, 33, 36, 45, 46, 48], "userlist": [6, 18, 22, 24], "gseen": [6, 22], "g": [6, 8, 22, 29, 33, 38, 39, 46, 52], "quann": [6, 22], "kreativrauschen": [6, 22], "Not": [6, 23, 31, 42], "equival": [6, 23, 34], "no_irc": [6, 23], "implement": [6, 7, 8, 17, 34, 35, 39, 42, 44, 45, 46, 51], "tiwtch": 6, "report": [6, 16, 27, 29, 33, 49], "statist": [6, 16, 27], "contest": 6, "site": [6, 52], "hour": [6, 27, 29, 37, 39, 46], "isn": [6, 16, 23, 24, 27, 33, 37, 46], "again": [6, 16, 27, 29, 32, 36, 37, 38, 39, 45, 46, 50], "sent": [6, 16, 18, 24, 27, 31, 35, 39, 42, 43, 46, 48, 50, 52], "demonstr": [6, 21, 28, 46], "right": [6, 8, 16, 17, 28, 30, 33, 46], "jul": 7, "25": [7, 11, 23, 50], "2016": 7, "independ": 7, "main": [7, 30, 33, 34, 35, 43], "desir": [7, 8, 29, 31, 32, 33, 45], "extra": [7, 21, 39, 42], "overhead": 7, "bloat": 7, "enhanc": 7, "instruct": [7, 33, 45], "direct": [7, 34, 38, 44, 46], "un": [7, 18, 37, 39, 46], "format": [7, 21, 23, 29, 31, 33, 34, 39, 45, 46, 47, 50], "modulenam": [7, 29], "folder": [7, 21], "suffix": [7, 39], "rehash": [7, 29, 30, 31, 39], "ye": [7, 30, 31, 34, 46], "detect": [7, 23, 34, 41, 46, 48], "yourself": [7, 31, 33, 44, 45, 48], "until": [7, 11, 16, 37, 39, 46], "henc": [7, 29, 46], "nearli": 7, "who": [8, 11, 16, 18, 23, 30, 33, 35, 39, 43, 46, 52], "understand": [8, 32, 36, 39, 46], "alreadi": [8, 11, 23, 29, 30, 32, 33, 34, 35, 38, 39, 45, 46, 51], "suitabl": [8, 50], "illustr": 8, "handl": [8, 30, 31, 32, 37, 39, 45, 48, 50], "snippet": 8, "alter": [8, 16, 40, 46, 51], "breviti": 8, "simplic": 8, "initi": [8, 29, 30, 33, 41, 42, 46, 48], "symbol": [8, 34, 46], "p_tcl_bind_list": [8, 32], "h_dcc": 8, "param": 8, "const": [8, 29], "char": [8, 29, 32, 39, 46], "length": [8, 18, 23, 29, 45, 46, 48], "tclhash": 8, "int": [8, 29, 32, 36], "intfunc": 8, "return": [8, 18, 21, 29, 32, 35, 36, 45, 50], "aka": [8, 39], "tcl_bind_list_t": 8, "add_bind_t": [8, 32], "builtin_dcc": 8, "doe": [8, 11, 26, 30, 31, 35, 36, 37, 39, 42, 43, 46, 50, 51, 52], "explain": [8, 38, 46], "happen": [8, 30, 33, 37, 39, 46], "arbitrari": [8, 46], "argument": [6, 8, 16, 18, 30, 31, 41, 46, 50], "import": [8, 21, 29, 30, 31, 33, 35, 39, 43, 46], "That": [8, 26, 30, 33, 38, 46, 52], "mean": [8, 16, 18, 23, 30, 31, 32, 35, 37, 38, 39, 40, 41, 45, 46, 48, 50], "mask": [8, 16, 21, 23, 30, 32, 39, 50], "test": [8, 30, 33, 52], "proc1": 8, "proc2": 8, "overwrit": [8, 17, 33, 46], "proc": [8, 21, 23, 29, 30, 36, 50], "myproc": [8, 21, 46], "arg": [8, 29, 32], "putlog": [8, 21, 23, 29, 30, 32], "Of": [8, 38, 39], "far": [8, 16, 33], "against": [8, 11, 16, 20, 23, 30, 32, 33, 45, 46, 50], "receiv": [8, 15, 16, 23, 31, 32, 38, 46, 50], "accept": [8, 16, 24, 26, 32, 34, 36, 38, 39, 46, 48, 51], "check_tcl_dcc": 8, "cmd": [8, 39, 46], "idx": [8, 29, 32], "struct": [8, 32], "flag_record": [8, 32], "fr": [8, 32], "fr_global": [8, 32], "fr_chan": [8, 32], "11": [8, 46], "get_user_flagrec": 8, "con_chan": 8, "egg_snprintf": 8, "sizeof": [8, 32], "ld": 8, "sock": [8, 29, 39], "tcl_setvar": [8, 32], "interp": [8, 32], "_dcc1": 8, "nick": [8, 11, 18, 23, 27, 30, 31, 32, 33, 39, 52], "_dcc2": 8, "_dcc3": 8, "check_tcl_bind": [8, 32], "match_parti": 8, "bind_use_attr": 8, "bind_has_builtin": 8, "snip": 8, "temporari": [8, 11, 27, 37, 39, 46], "pass": [8, 21, 30, 31, 32, 33, 35, 41, 43, 45, 50], "callback": [8, 35], "socket": [8, 17, 29, 34, 46, 48], "id": [8, 46], "putdcc": 8, "respond": [8, 11, 33, 46], "back": [8, 23, 30, 33, 39, 41, 44, 45, 46, 49], "depend": [8, 29, 35, 37, 44, 46, 48, 52], "caller": 8, "pars": [8, 21, 46], "atr": 8, "match_typ": 8, "matchtyp": 8, "result": [8, 23, 35, 37, 39, 41, 46], "bind_nomatch": 8, "tm": 8, "tm_last": 8, "check_bind_match": 8, "continu": [8, 33, 46], "tc": 8, "suffic": [8, 30], "check_bind_flag": 8, "hit": [8, 46], "tcl_eval": 8, "procnam": [8, 30, 46, 50], "grab": [8, 46], "trigger_bind": 8, "func_nam": [8, 29], "suppli": [8, 39], "case": [8, 15, 20, 21, 23, 30, 32, 33, 35, 36, 39, 46], "uniqu": [8, 36, 39, 46, 50], "identifi": [8, 31, 39, 45, 46, 52], "unsur": [8, 33], "wildcard": [8, 11, 30, 31, 46, 50], "exact": [8, 46], "tclegg": 8, "describ": [8, 29, 30, 33, 34, 36, 38, 39], "bind_stack": [8, 32], "add_builtin": [8, 29], "cmd_t": [8, 29, 32], "null": [8, 29, 32], "mycmd": 8, "tcl_name": 8, "void": [8, 29, 32], "cc": [8, 29], "p": [8, 11, 17, 31, 33, 38, 39, 46, 52], "1024": [8, 16, 17, 25, 32, 33], "cd_tcl_cmd": 8, "tclcmd": 8, "func": [8, 29], "bindtyp": 8, "funcnam": 8, "h_raw": 8, "324": 8, "got324": 8, "raw": [8, 35, 39, 48], "cmd_boot": 8, "cdata": 8, "add_cd_tcl_cmd": 8, "bind_bind_entri": 8, "context": [8, 29], "suppos": 8, "typic": [8, 16, 26, 39, 40, 43, 46, 51], "tcl_command": 8, "tcl_putdcc": 8, "clientdata": 8, "tcl_interp": 8, "irp": [8, 32], "argc": 8, "argv": [8, 32], "f": [8, 11, 32, 38, 39, 46, 47, 50, 52], "okai": [8, 39], "verifi": [8, 23, 31, 39, 48], "count": [8, 23], "badarg": [8, 32], "hand": [8, 30, 39, 46], "macro": [8, 29, 32], "saniti": 8, "checkvalid": [8, 32], "findidx": 8, "atoi": 8, "tcl_appendresult": [8, 32], "invalid": [8, 46], "tcl_error": [8, 32], "tcl_resetresult": 8, "tcl_ok": [8, 32], "oppos": [8, 46], "userrec": [8, 32], "know": [8, 18, 19, 23, 26, 29, 30, 35, 37, 38, 39, 46, 49, 51], "els": [8, 21, 30, 32, 43, 46], "par": [8, 32], "associ": [8, 26, 35, 46, 51], "gbuildin_dcc": 8, "annot": 8, "gdb": 8, "backtrac": 8, "thommei": 8, "0x55e8bd8a49b0": 8, "0x55e8be6a0010": 8, "614": 8, "0x55e8bd8aec90": 8, "8977024": 8, "flags_udef": 8, "chanrec": [8, 18, 46], "0x55e8bd8aeae0": 8, "0x55e8bd8a4a10": 8, "0x55e8bbf002d0": 8, "0x55e8bd59b1c0": 8, "0x55e8bd7e3e00": 8, "678": 8, "0x55e8be642fa0": 8, "0x55e8be9f6bd0": 8, "0x55e8be7d9020": 8, "0x0": 8, "usr": 8, "lib": 8, "x86_64": 8, "linux": [8, 33, 41], "libtcl8": 8, "lastbind": 8, "0x55e8bd5efda0": 8, "0x55e8bbf4112b": 8, "0x55e8bd5efd40": 8, "742": 8, "0x55e8bd5eecb0": 8, "0x7ffcf3f9dac1": 8, "0x7ffcf3f9d100": 8, "80": 8, "942": 8, "brkt": 8, "0x7ffcf3f9dac6": 8, "974": 8, "udef_glob": 8, "udef_chan": 8, "dcc_chat": 8, "buf": [8, 18], "1068": 8, "2002": [9, 13, 14, 19, 22, 27, 37, 43, 47, 52], "none": [9, 10, 11, 13, 15, 19, 20, 21, 22, 23, 25, 28, 46], "loadmodul": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 39, 45, 51], "2000": [9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 28, 39, 40, 45], "2003": [10, 24, 30], "md5": 10, "anymor": [10, 20, 39], "octob": [11, 20, 23], "chanfil": [11, 33, 49], "expir": [11, 18, 19, 23, 37, 39, 46, 48], "enforc": [11, 31, 35, 39], "chanmod": [11, 31], "mix": [11, 18], "endless": 11, "preconfigur": 11, "specifi": [11, 15, 16, 17, 19, 23, 24, 29, 31, 33, 36, 37, 39, 40, 41, 45, 46, 48, 50], "turn": [11, 17, 23, 39, 46], "off": [11, 17, 18, 23, 33, 38, 39, 43, 46], "plu": [11, 23, 39, 46, 48], "minu": 11, "front": [11, 30, 33, 34, 36, 46, 51], "integ": [11, 36, 46], "idl": [11, 29, 46], "kick": [11, 18, 23, 35, 36, 39, 46, 49, 52], "stopnethack": [11, 52], "de": [11, 35, 46], "anyon": [11, 36, 37, 46], "serverop": 11, "seven": [11, 46], "isoptest": 11, "wasoptest": 11, "split": [11, 18, 41, 43, 46, 47], "isop": 11, "wasop": [11, 18, 52], "bitch": 11, "reveng": 11, "punish": [11, 46, 52], "bad": [11, 46, 52], "four": [11, 30, 35, 39, 41, 46, 47], "deop": [11, 46, 52], "k": [11, 18, 23, 39, 46, 52], "19": [11, 46], "correspond": [11, 31, 37, 46], "replac": [11, 23, 29, 31, 39, 46, 47, 51], "20": [11, 16, 18, 26, 31, 39, 46], "29": [11, 25, 39, 46], "30": [11, 16, 18, 25, 31, 45, 46], "39": [11, 46], "120": [11, 23, 46], "60": [11, 16, 19, 23, 39, 46], "aop": 11, "delai": [11, 16, 18, 30], "maximum": [11, 15, 16, 18, 19, 23, 25, 32, 39, 45, 46, 48], "autoop": 11, "autohalfop": 11, "autovoic": [11, 52], "No": [11, 24, 31, 34, 46, 51], "y": [11, 14, 21, 34, 39, 52], "random": [11, 23, 38, 46], "putserv": [11, 21, 30, 31], "privmsg": [11, 30, 31, 46], "lamest": [11, 33, 38, 39, 47], "me": [11, 52], "co": 11, "lame": [11, 18, 38, 39, 46], "enclos": [11, 32, 41, 46, 50], "brace": 11, "shorter": 11, "getop": 11, "botnetop": 11, "unban": [11, 39, 46], "rais": [11, 23], "15": [11, 39, 45, 46, 47], "constitut": [11, 23, 39], "preced": [11, 33, 46, 48], "respctiv": 11, "enforceban": 11, "dynamicban": [11, 46], "necessari": [11, 34], "rememb": [11, 30, 31, 33], "userban": 11, "dynamicexempt": [11, 46], "remain": [11, 33, 37, 46], "userexempt": 11, "dynamicinvit": [11, 46], "userinvit": 11, "soon": [11, 46], "insecur": 11, "halfop": [11, 46, 52], "protectop": 11, "protecthalfop": 11, "dehalfop": [11, 46, 52], "protectfriend": 11, "statuslog": 11, "total": [11, 29, 40, 46], "member": [11, 29, 35], "regular": [11, 46, 48], "sampl": [11, 32, 33, 51], "01": [11, 18, 46], "40": [11, 31], "istn": 11, "friend": [11, 52], "revengebot": 11, "secret": 11, "cycl": [11, 23, 39], "dontkickop": 11, "instanc": [11, 35], "attack": [11, 20, 45], "inact": [11, 25], "leav": [11, 23, 33, 39, 43, 46, 51], "lose": 11, "nodesynch": 11, "fight": 11, "chanserv": 11, "ircop": [11, 18], "perman": [11, 37, 39, 46], "below": [11, 16, 17, 24, 26, 29, 30, 33, 39, 45, 46, 50], "fil": [11, 46], "explan": [11, 33, 34, 46, 50], "nt": 11, "chanset": [11, 31, 36, 38], "2004": [12, 18], "level": [12, 17, 31, 32, 35, 39, 52], "gzip": [12, 46], "autosav": 13, "doesn": [13, 15, 18, 32, 33, 36, 43, 46, 49, 50], "displai": [13, 16, 18, 23, 31, 32, 33, 36, 39, 46, 47, 50], "februari": 14, "12": [14, 46], "behavior": [14, 18, 37, 39, 41, 46], "ping": 14, "less": [14, 43, 46], "finger": [14, 33], "userinfo": [14, 46], "septemb": 15, "26": [15, 33, 48, 52], "troubl": [15, 39], "ones": [15, 24, 38, 41, 46], "rel": [15, 29, 33, 46], "standard": [15, 17, 18, 25, 29, 30, 42, 46, 48, 51, 52], "cach": [15, 46], "86400": 15, "respect": [15, 41, 46, 47], "ttl": 15, "upper": 15, "boundari": [15, 32], "negcach": 15, "600": [15, 18], "neg": [15, 39, 46], "nxdomain": 15, "lookup": [15, 39, 41, 46], "fail": [15, 25, 39, 46, 48], "maxsend": 15, "resend": [15, 46], "queri": [15, 17, 35, 41], "retrydelai": 15, "dec": [16, 46], "2017": 16, "mydir": 16, "root": [16, 17], "incom": [16, 39, 46], "upload": [16, 33, 40, 46, 49], "central": [16, 36, 39], "filedb": [16, 46], "subdirectori": [16, 46], "databas": [16, 46], "max": [16, 18, 19, 23, 25, 39], "effect": [16, 37, 39, 46], "infinit": 16, "files": 16, "size": [16, 25, 29, 32, 39, 46], "kb": 16, "sub": [16, 36, 46], "brows": 16, "tell": [16, 30, 31, 32, 33, 34, 35, 38, 39, 46, 51], "queu": [16, 23, 46], "exactli": [16, 18, 29, 30, 36, 46], "group": [16, 17, 39, 42, 46], "master": [16, 31, 33, 37, 38, 39, 46, 47, 52], "janitor": [16, 52], "broken": [16, 30, 39, 46], "word": [16, 18, 31, 32, 33, 38, 46, 50, 51], "break": [16, 46], "comment": [16, 18, 27, 30, 33, 39, 45], "over": [16, 21, 23, 26, 29, 30, 33, 39, 41, 46, 48, 49, 51], "client": [16, 17, 23, 26, 31, 33, 35, 39, 42, 46, 48, 51], "too": [16, 18, 23, 25, 29, 39, 46], "patient": 16, "simultan": [16, 25, 46], "remaind": [16, 50], "mark": [16, 32, 40, 46, 52], "hidden": [16, 33, 40, 46], "lsa": 16, "gif": 16, "uglyman": 16, "nobodi": [16, 30], "local": [16, 30, 33, 36, 39, 43, 44, 46, 48], "snowbot": 16, "ugli": 16, "shown": [16, 33, 36, 39], "kilobyt": [16, 39], "progress": 16, "eras": [16, 46], "remot": [16, 38, 39, 46, 47], "clean": 16, "slow": [16, 33, 39], "db": 16, "though": [16, 23, 30, 33, 46, 48], "tag": [16, 40, 42, 50], "filesystem": [16, 36, 46, 52], "june": 17, "2019": 17, "tradition": 17, "113": 17, "usernam": [17, 31, 33, 39, 50, 51], "custom": [17, 23, 30, 31, 35, 36, 40, 46, 48], "oidentd": 17, "nor": 17, "thu": [17, 30, 35, 41, 45, 46], "modern": [17, 33, 45], "oss": 17, "sudo": [17, 33], "setcap": 17, "cap_net_bind_servic": 17, "ep": 17, "imperson": 17, "iptabl": 17, "rout": [17, 46], "destin": [17, 29], "nat": [17, 39, 41], "prerout": 17, "eth0": 17, "dport": 17, "j": [17, 29, 38, 39, 46, 52], "redirect": 17, "addition": [17, 21, 33, 35, 46], "caus": [17, 32, 33, 38, 46, 49], "bound": [17, 39, 46], "netsplit": [17, 18, 39, 40, 46], "reboot": [17, 31], "conflict": 17, "suit": [17, 32, 33], "singl": [17, 18, 31, 36, 46, 50], "environ": [17, 39, 40, 48], "spoof": 17, "open": [17, 31, 32, 36, 39, 43, 44, 46, 48], "builtin": [17, 46], "identd": [17, 33], "shouldn": 17, "begin": [17, 30, 41, 46], "august": [18, 39], "21": [18, 33], "bounc": 18, "reach": [18, 23, 32, 39], "45": 18, "left": [18, 32, 46], "unless": [18, 23, 30, 33, 37, 39, 46], "overridden": 18, "unabl": [18, 33, 38, 41, 46, 51], "learn": [18, 31, 32, 33, 39, 40, 46], "themselv": [18, 33, 38, 46, 49], "userflag": 18, "hello": [18, 21, 23, 31, 33, 39, 40, 46], "afterward": [18, 39], "1500": 18, "180": 18, "200": [18, 43], "byte": [18, 23, 25, 29, 32, 46], "unbind": [18, 39, 49, 50], "myword": 18, "addhost": 18, "takeov": 18, "occur": [18, 30, 46], "due": [18, 23, 30, 39, 46, 50], "blindli": 18, "ing": [18, 26, 51], "guess": 18, "discourag": 18, "opchar": 18, "recogn": [18, 23, 31, 52], "fine": [18, 23, 39, 50], "unrealircd": [18, 46], "lazi": 18, "gone": [18, 46], "At": [18, 32, 38, 39, 43, 51], "moment": [18, 33, 34], "ircd": [18, 23, 46], "per": [18, 46, 50], "stack": [18, 41, 46], "guarante": [18, 35], "although": [18, 33, 39, 46], "higher": [18, 20, 24, 25, 33, 48], "modes_per_line_max": 18, "recompil": [18, 33], "lk": 18, "354": [18, 46], "ircu2": 18, "rfc": [18, 23, 26, 46, 51], "compliant": [18, 23, 46], "1459": 18, "routin": [18, 39, 46], "notefil": [19, 46], "privat": [19, 24, 30, 31, 33, 34, 36, 39, 43, 46, 48], "50": [19, 31, 39], "life": [19, 33], "dai": [19, 25, 39, 46, 49], "fwd": 19, "forward": 19, "address": [19, 24, 27, 33, 38, 39, 41, 48], "notifi": [19, 23, 33, 39, 40, 42, 46], "hourli": [19, 29, 39], "onjoin": 19, "2020": [20, 26, 39, 48, 50], "safe": [20, 31, 33, 34, 45, 51], "outsid": [20, 32, 34, 39], "rijndael": 20, "sha256": 20, "cryptograph": [20, 45, 46], "digest": [20, 46], "algorithm": [20, 45], "round": [20, 45], "1600": 20, "brute": 20, "novemb": [21, 24, 25, 42], "03": [21, 39, 46], "py": 21, "myscript": 21, "putmsg": 21, "extend": [21, 26, 40, 42, 46], "analg": 21, "entir": [21, 33, 46, 50, 51], "catalog": 21, "chanlist": 21, "convert": [21, 46], "empti": [21, 46, 50], "object": 21, "tupl": 21, "dict": [21, 36, 46, 50], "dictionari": [21, 46], "str": [21, 36], "few": [21, 26, 30, 32, 33, 34, 39, 46, 51], "convers": [21, 29, 43, 48], "tcl_binds_": [], "known": [21, 23, 31, 39, 45, 46], "onvert": 21, "resync": [21, 24], "disconnect": [21, 23, 24, 39, 46], "buffer": [21, 24], "reconnect": [21, 24, 46], "examplescript": 21, "bestfriend": 21, "imdb": 21, "third": [21, 30, 32, 38], "listtl": 21, "tcl_list": 21, "usuabl": 21, "urltitl": 21, "parser": 21, "collect": 21, "titl": [21, 52], "page": [21, 33, 44], "z": [21, 34, 52], "librari": [21, 30, 32, 45, 48], "egg": 21, "freenod": 23, "rizon": 23, "sane": 23, "altnick": [23, 33], "stb": 23, "unavail": [23, 39], "hi": [23, 30, 33], "primari": [23, 39], "realnam": [23, 46], "real": [23, 29, 31, 46], "field": [23, 32, 35, 36, 39, 46, 48], "evnt": [23, 46], "init": [23, 39, 46], "init_serv": 23, "botnick": [23, 30, 31, 33, 39], "putquick": 23, "w": [23, 39, 46, 47, 52], "immedi": [23, 32, 33, 35, 45, 46], "deprici": 23, "7000": [23, 33, 34, 46], "2001": [23, 27, 28, 33, 39, 43], "db8": [23, 33, 39], "618": [23, 33, 39], "5c0": [23, 33, 39], "263": [23, 33, 39], "6669": [23, 33], "6697": [23, 33, 46, 48], "whenev": [23, 29, 32, 35, 38, 46, 48], "sign": [23, 31, 34, 39, 46, 47, 48, 51], "jump": [23, 32, 38, 48], "rate": 23, "transmit": 23, "lower": 23, "512": [23, 25], "verif": [23, 39, 48], "assum": [23, 30, 33, 34, 35, 37, 39, 46], "peer": [23, 39, 48], "alt": [23, 39], "16": [23, 39, 45, 46], "32": [23, 39], "revok": [23, 39], "instantli": 23, "low": 23, "respons": [23, 35, 46], "stone": 23, "di": 23, "hasn": 23, "serverror": 23, "queue": [23, 29], "300": [23, 39], "dump": [23, 39, 46], "chunk": 23, "probabl": [23, 31, 33, 34, 46], "quiet": [23, 36, 39, 52], "reject": [23, 38, 39], "squelch": 23, "lowercas": 23, "mirc": [23, 46], "exclus": [23, 46], "pubm": [23, 46], "msgm": [23, 46], "doubl": 23, "penalti": 23, "calcul": 23, "measur": 23, "trace": 23, "accordingli": 23, "three": [23, 31, 32, 35, 36, 37, 38, 39, 46], "summar": 23, "cpu": [23, 39, 46], "intens": 23, "r": [23, 31, 38, 39, 46, 52], "umod": 23, "understood": 23, "indic": [23, 29, 33, 46, 50], "len": 23, "900": 24, "hold": [24, 46], "flush": 24, "overrid": [24, 41, 48], "mnot": 24, "paranoid": [24, 39], "discard": [24, 46], "dload": 25, "block": [25, 26, 29, 33, 47, 51], "ircii": [25, 46], "admit": 25, "turbo": [25, 33], "xfer": [25, 52], "sharefail": 25, "unlink": [25, 39], "abort": [25, 33, 46, 48], "retri": 25, "april": [26, 50], "gatewai": [26, 50, 51], "stream": [26, 51], "claim": [26, 51], "certainli": [26, 33, 51], "meaning": [26, 46, 51], "intent": [26, 51], "spectrum": [26, 51], "focus": [26, 51], "raid": [26, 51], "donat": [26, 51], "userst": [26, 51], "roomstat": [26, 51], "broadcast": [26, 43, 46, 50, 51], "000": [26, 43, 51], "unreli": [26, 50, 51], "moder": [26, 31, 50, 51], "mostli": [26, 46, 51], "infeas": [26, 51], "workaround": [26, 35], "tradit": [26, 41, 49, 50, 51], "downer": 26, "worri": 26, "ton": 26, "clearchat": [26, 50], "clearmsg": [26, 50], "hosttarget": [26, 50], "whisper": [26, 50], "usernotic": [26, 50], "roomsstat": 26, "twcmd": [26, 51], "ip": [27, 31, 33, 34, 39, 41], "logfil": [27, 29, 33, 39, 49], "publicli": 27, "31": [28, 39, 43, 46], "occurr": 29, "ensur": [29, 31, 33, 38, 45, 46], "module_nam": [29, 32], "making_modulenam": 29, "examin": 29, "close": [29, 46], "stdio": 29, "stdlib": 29, "sy": 29, "drastic": [29, 46], "reduc": [29, 50], "decent": 29, "throughout": 29, "refer": [29, 30, 34, 39, 46], "liter": [29, 46], "func_tabl": 29, "module_regist": [29, 32], "major": [29, 32, 33, 36, 46], "minor": [29, 32, 36, 46], "module_depend": [29, 32], "success": [29, 33, 46], "stage": 29, "any_other_funct": 29, "you_want_to_export": 29, "unload": [29, 32, 46], "apart": [29, 39], "tidi": 29, "thorough": [29, 31, 34, 51], "trail": 29, "garbag": 29, "module_undepend": [29, 32], "talli": 29, "memori": [29, 32, 46], "alloc": [29, 46], "dealloc": 29, "nmalloc": 29, "nfree": 29, "fault": 29, "posit": [29, 39], "resourc": 29, "dprintf": [29, 32], "printf": 29, "dp_log": 29, "dp_stdout": 29, "stdout": 29, "dp_mode": 29, "dp_server": 29, "dp_help": 29, "module_entri": 29, "module_find": 29, "search": [29, 31, 46], "module_renam": 29, "old_module_nam": 29, "new_module_nam": 29, "frim": 29, "add_hook": 29, "hook_num": 29, "del_hook": 29, "hook": 29, "hook_secondli": 29, "hook_minut": 29, "hook_5minut": 29, "hook_hourli": 29, "hook_daili": 29, "hook_read_userfil": 29, "hook_userfil": 29, "hook_pre_rehash": 29, "hook_rehash": 29, "hook_idl": 29, "whole": 29, "hook_backup": 29, "hook_load": 29, "hook_di": 29, "die": [29, 31, 33], "module_unload": 29, "module_load": 29, "tri": [29, 39, 46], "add_tcl_command": 29, "tcl_cmd": [29, 32], "tab": 29, "rem_tcl_command": 29, "function_to_cal": 29, "add_tcl_int": 29, "tcl_int": 29, "rem_tcl_int": 29, "variable_nam": 29, "readonli": 29, "add_tcl_str": 29, "tcl_string": 29, "rem_tcl_str": 29, "str_dir": 29, "constantli": 29, "append": [29, 32, 36, 46], "str_protect": 29, "p_tcl_hash_list": 29, "rem_builtin": 29, "displaynam": 29, "taken": [29, 46], "auch": 29, "filt": [29, 46], "noth": [29, 36, 39, 46, 51], "logmod": 29, "nice": 29, "mention": 29, "realli": [30, 32, 33, 36, 39, 49], "idea": [30, 33, 44], "busi": 30, "annoi": 30, "intention": 30, "definit": [30, 33, 34, 45], "languag": [30, 39, 40, 49], "especi": 30, "bottom": 30, "greetscript": 30, "author": [30, 34, 39, 48], "geo": 30, "gree": 30, "pmsg": 30, "greetmsg": 30, "welcom": 30, "uhost": [30, 46], "whew": 30, "ok": 30, "importantli": [30, 32], "wrote": 30, "credit": [30, 46], "contact": [30, 39], "hard": [30, 39], "larger": [30, 45], "harder": [30, 33], "why": [30, 33, 46], "And": [30, 32, 36], "omin": 30, "dissect": 30, "action": [30, 31, 34, 39, 46], "react": [30, 35], "toward": 30, "refin": 30, "foo": [21, 30, 31, 32, 36, 46], "aol": [30, 45], "sum": 30, "hostmask": [30, 31, 37, 38, 40, 45], "told": 30, "declar": [30, 32, 36, 46], "said": [30, 32, 38, 46], "magic": 30, "awesom": [30, 36], "sexystuff": 30, "fourth": 30, "trick": [30, 49], "didn": [30, 33, 46], "talk": [30, 32, 34, 35, 36, 40, 43], "bodi": 30, "true": 30, "deserv": 30, "insid": [30, 36, 39], "challeng": [30, 31], "mayb": [30, 39], "fancyp": 30, "sound": 30, "utim": 30, "dozen": 30, "defens": 30, "grain": 30, "salt": [30, 45], "further": [31, 46], "IN": 31, "OR": [31, 46], "putti": 31, "listen": [31, 33, 38, 39, 41, 48], "3183": 31, "whoi": [31, 39], "chattr": [31, 52], "grant": [31, 40, 48, 51], "numer": [31, 34, 46], "chaninfo": [31, 38], "involv": 31, "snt": 31, "histor": [31, 46], "reli": [31, 46], "ten": 31, "commonli": [31, 34, 36, 39, 46], "humor": 31, "youreggdropconfignameher": 31, "review": [31, 34], "youreggdrop": 31, "editor": [31, 33, 36], "thee": [31, 46], "systemctl": 31, "botnam": [31, 38], "reload": [31, 36], "acknowledg": 31, "confus": [31, 46], "unfortun": 31, "consult": [31, 41, 42, 48], "uncom": [31, 34, 39, 45], "layer": [31, 34], "becom": [31, 33, 39, 46], "preval": 31, "elimin": 31, "cloak": 31, "ever": [31, 33, 39, 46, 48], "appear": [31, 33, 38, 39, 46, 50], "mechan": 31, "plain": [31, 39, 48], "plaintext": [31, 46, 48], "exchang": 31, "ecdsa": 31, "nist256p": 31, "keypair": [31, 34], "pair": [31, 34, 35, 46, 48, 50], "ecparam": 31, "genkei": 31, "prime256v1": 31, "pem": [31, 39], "fingerprint": [31, 38, 39, 48], "ec": 31, "noout": 31, "conv_form": 31, "grep": 31, "tail": 31, "tr": 31, "xxd": 31, "base64": 31, "On": [31, 33, 34, 37, 38], "pubkei": 31, "req": [31, 39, 48], "x509": [31, 39, 48], "node": [31, 48], "keyout": [31, 48], "crt": [31, 39, 48], "yoru": 31, "outform": 31, "der": 31, "sha1sum": 31, "cut": 31, "f1": 31, "privatekei": [31, 34, 38, 39, 48], "cert": [31, 38, 39, 48], "onto": 32, "wherea": [32, 46], "our": [32, 33, 38, 46], "redistribut": 32, "publish": [32, 39], "hope": [32, 33, 51], "merchant": 32, "fit": 32, "FOR": 32, "59": [32, 46], "templ": 32, "330": 32, "02111": 32, "1307": 32, "necessarili": [32, 46], "undef": 32, "server_func": 32, "export_scop": 32, "woobie_start": 32, "woobie_expmem": 32, "woobie_report": 32, "global_func": 32, "woobie_t": 32, "108": 32, "woobie_clos": 32, "log_cmd": 32, "print": 32, "cmd_woobi": 32, "mywoobi": 32, "scope": [32, 34], "tutori": [32, 34], "echo": [32, 40, 42, 49], "tcl_echom": 32, "stdvar": 32, "strcmp": 32, "llama": [32, 38], "illeg": 32, "input": [32, 46], "paramet": [32, 46], "exceed": [32, 39], "style": [32, 37, 46], "quset": 32, "mytcl": 32, "echom": 32, "newli": 32, "certain": [32, 37, 39, 40, 41, 46, 47, 50, 52], "condit": 32, "met": 32, "h_woob": 32, "woobie_2char": 32, "del_bind_t": 32, "woobie_3char": 32, "bar": [32, 46], "moo": [32, 46], "boilerpl": 32, "check_tcl_bindnam": 32, "check_tcl_woobi": 32, "userhost": [32, 50], "snprintf": 32, "_woob1": 32, "_woob2": 32, "match_mask": 32, "bind_exec_log": 32, "encount": [32, 33, 51], "perhap": 33, "websit": [33, 36], "slennox": 33, "incredibli": [33, 46], "prove": 33, "debian": [33, 34], "apt": [33, 34], "wget": 33, "commandlin": 33, "zxvf": 33, "seri": [33, 46, 48], "multi": 33, "patchlevel": 33, "comfort": 33, "haven": 33, "daili": [33, 46], "chanc": [33, 36], "checkout": [33, 44], "skip": [33, 46], "commerci": 33, "problem": [33, 39, 41], "box": [33, 39], "isp": 33, "appli": [33, 37, 39, 45, 52], "curl": 33, "ssh": 33, "gunzip": 33, "xvf": 33, "extract": [33, 36, 46], "slash": [33, 43], "brief": 33, "fast": 33, "botdir": 33, "cooldud": 33, "delet": [33, 36, 49], "rf": 33, "handi": 33, "zip": 33, "notepad": 33, "editplu": 33, "nano": 33, "vim": 33, "offer": [33, 34, 35, 50, 51], "quicker": 33, "nicebot": 33, "carefulli": [33, 46], "vagu": 33, "preserv": 33, "llamabot": [33, 39], "login": [33, 39, 45, 50], "vhost4": [33, 39, 41], "vhost": [33, 39, 41], "ipv4": [33, 39, 41], "vhost6": [33, 39, 41], "5254": 33, "dead": 33, "b33f": 33, "1337": 33, "f270": 33, "captur": [33, 46, 49], "mcobx": 33, "jkp": 33, "donkei": 33, "hors": 33, "3333": [33, 38, 39], "65535": [33, 39], "49152": 33, "rang": [33, 39], "reserv": [33, 39, 43], "basi": 33, "stealth": [33, 39], "scan": 33, "newus": [33, 39], "mrlame": [33, 39], "mrslame": [33, 39], "addus": 33, "rejoin": [33, 46], "aren": [33, 39, 46, 49, 50], "pain": 33, "backslash": 33, "rule": 33, "prematur": 33, "phew": 33, "cross": 33, "gave": 33, "promptli": 33, "kill": [33, 46], "pid": [33, 39, 46], "mnt": 33, "launch": 33, "persist": 33, "luck": [33, 51], "walk": 34, "scenario": [34, 35, 38], "sidenot": 34, "despit": 34, "anachron": 34, "interchang": [34, 41], "transport": 34, "protocol": [34, 39, 42, 46, 48], "appreci": 34, "fork": [34, 44], "ubuntu": 34, "distro": 34, "denot": [34, 46], "pretendnet": 34, "suffici": 34, "wizard": 34, "5555": [34, 38, 39], "hubbot": [34, 38], "perfect": 35, "status": 35, "accur": [35, 46, 50], "alert": [35, 51], "deauthent": 35, "spec": [35, 46], "isupport": 35, "005": [35, 42, 46], "eggdroptest": [35, 50], "beerbot": 35, "tn": 35, "announc": 35, "issupport": 35, "isset": 35, "reliabl": [35, 46, 50], "significantli": [35, 50], "increas": [35, 39, 45], "accuraci": 35, "supplementari": 35, "attach": [35, 46, 50], "overal": 35, "situat": [35, 38], "cover": [35, 37, 38], "incept": 36, "friendli": 36, "special": [36, 38, 46], "locallt": 36, "novel": 36, "namespac": 36, "wrap": 36, "eval": 36, "scriptnam": 36, "statement": [36, 46], "practic": [36, 45, 46], "lessen": 36, "collid": 36, "metadata": 36, "th": 36, "schema": 36, "version_major": 36, "version_minor": 36, "long_descript": 36, "yeah": 36, "besid": 36, "enough": [36, 39], "udef": 36, "myflag": 36, "mystr1": 36, "mystr2": 36, "myint1": 36, "var": [36, 46], "woobie_dict": 36, "q": [36, 52], "woobie_set": 36, "woobie_str": 36, "arrai": 36, "whether": [36, 39, 41, 46], "varnam": 36, "tgz": 36, "proper": [36, 41, 46], "myscript_goodversion_specialfeatur": 36, "sorri": 36, "collis": 36, "myscript_set": 36, "ms_set": 36, "localm": 36, "regardless": [36, 46], "march": [37, 47, 52], "07": [37, 52], "clarifi": 37, "sticki": [37, 46], "unsticki": 37, "stick": 37, "attribut": [37, 38, 46, 52], "kept": [37, 39], "obvious": [37, 46], "unstick": 37, "whose": [37, 46], "whichev": 37, "consist": [38, 40, 43, 46], "leaf": [38, 39, 45, 48], "assign": [38, 39, 46], "aggress": 38, "passiv": 38, "physic": 38, "bota": 38, "botb": 38, "botc": 38, "sharebot": [38, 39, 46], "slave": 38, "botattr": 38, "isol": 38, "unlimit": 38, "4444": [38, 39], "thoroughli": 38, "relink": 38, "scripter": 38, "prepar": 38, "lameshar": 38, "hp": [38, 39], "beldin": 38, "pipe": 38, "he": [38, 46], "unreach": 38, "auth": [38, 39, 48], "fprint": [38, 39, 48], "sha1": [38, 48], "0and": 38, "qualifi": 39, "admin": [39, 47], "lamer": 39, "someircnetwork": 39, "timezon": 39, "est": 39, "timestamp": [39, 46], "alphabet": 39, "european": 39, "utc": 39, "cet": 39, "offset": 39, "coordin": 39, "univers": 39, "gmt": [39, 46], "west": 39, "prime": 39, "meridian": 39, "east": 39, "23": [39, 46], "env": 39, "tz": 39, "everywher": [39, 41, 46], "99": [39, 43], "virtual": 39, "outgo": [39, 46, 49], "prefer": [39, 41, 48], "resolut": 39, "famili": 39, "addlang": [39, 46], "english": [39, 49], "egg_lang": 39, "danish": 39, "french": 39, "finnish": 39, "german": 39, "chatter": 39, "24": [39, 41], "logfilenam": 39, "yesterdai": 39, "48": 39, "concurr": [39, 45], "infin": 39, "decreas": 39, "logsiz": 39, "550": 39, "fill": [39, 44, 48], "quota": 39, "ram": 39, "hole": 39, "care": [39, 46, 51], "logflag": 39, "misc": [39, 46], "wallop": [39, 46], "eight": [39, 46], "belong": 39, "mco": [39, 46], "jpk": 39, "min": 39, "sec": 39, "man": 39, "strftime": 39, "forev": 39, "digit": [39, 48], "month": [39, 46], "fresh": 39, "militari": 39, "00": [39, 46, 47], "am": [39, 52], "midnight": 39, "04may2000": 39, "produc": [39, 46], "yyyymmdd": 39, "manpag": 39, "mkcoblx": 39, "pidfil": 39, "motd": [39, 47], "banner": [39, 47], "perm": 39, "0600": 39, "octal": 39, "remind": 39, "rw": 39, "0400": 39, "0200": 39, "0660": 39, "0440": 39, "0220": 39, "0666": 39, "0444": 39, "0222": 39, "kiddi": 39, "head": 39, "unimport": 39, "deal": [39, 46, 52], "maxim": 39, "1025": 39, "prepend": 39, "prohibit": 39, "sanitycheck": 39, "bogu": 39, "ground": 39, "wouldn": 39, "anywai": 39, "thr": 39, "firewal": 39, "sun": 39, "barr": 39, "ebai": 39, "3666": 39, "behind": 39, "passthru": 39, "127": 39, "192": [39, 46], "168": [39, 46], "255": 39, "172": 39, "transpar": 39, "masquerad": 39, "portrang": 39, "url": [39, 46], "birthdai": 39, "userinfo1": 39, "moreov": 39, "simul": [39, 46], "ethic": 39, "dk": [39, 46], "dupwait": 39, "spread": 39, "lag": [39, 43], "cidr": [39, 46], "notat": 39, "genrsa": 39, "4096": [39, 48], "rsa": 39, "strong": 39, "schat": [39, 48], "conveni": 39, "cipher": [39, 46, 48], "side": [39, 46, 48, 51], "365": 39, "depth": [39, 48], "chain": [39, 48], "shall": 39, "capath": [39, 48], "cafil": [39, 48], "ca": 39, "colon": [39, 41], "comma": [39, 43, 46], "silent": 39, "adh": 39, "anonym": 39, "dh": 39, "uid": [39, 48], "chfinger": 39, "slower": 39, "everydai": 39, "limbo": 39, "serv": 39, "alltool": 39, "robot": 40, "regularli": 40, "awai": [40, 42, 46], "chghost": [40, 42, 46], "setnam": [40, 42], "whox": [40, 46], "unaccess": 40, "combin": [40, 46], "mar": 41, "2021": [41, 42, 49], "establish": [41, 46, 48], "freebsd": 41, "netbsd": 41, "openbsd": 41, "mac": 41, "vista": 41, "xp": 41, "unoffici": 41, "wherev": 41, "squar": 41, "bracket": 41, "doubt": 41, "Their": 41, "began": 42, "rfc1459": [42, 46], "rfc2812": 42, "compris": 42, "decid": [42, 45], "emerg": 42, "optino": 42, "assumpt": 42, "explicit": 42, "302": [42, 46], "miniatur": 43, "watch": [43, 50], "999": 43, "wide": [43, 48], "anywher": [43, 46], "dot": 43, "apostroph": 43, "everyon": [43, 46], "contribut": 44, "think": [44, 52], "repo": 44, "click": [44, 51], "button": [44, 51], "descriptivebranchnam": 44, "confirm": [44, 46], "push": [44, 46], "yourusernam": 44, "yourbranchnam": 44, "templat": 44, "pour": 44, "cold": [44, 45], "bask": 44, "warm": 44, "karma": 44, "crytopgraphi": 45, "content": [45, 46, 50], "sensit": 45, "crypto": 45, "solut": 45, "deriv": 45, "revers": [45, 46], "seamless": 45, "enjoi": 45, "beverag": 45, "chpass": 45, "consider": 45, "ideal": [45, 51], "essenti": 45, "fanci": 45, "lobster": 45, "dinner": 45, "encpass2": 45, "pbk": 45, "2024": 46, "exhaust": [46, 50], "categori": 46, "vertic": 46, "faster": 46, "bypass": 46, "caution": 46, "lieu": 46, "negoti": [46, 48], "mytag": 46, "baa": 46, "flat": 46, "servivc": 46, "botfl": 46, "botaddr": 46, "laston": 46, "xtra": 46, "visibl": 46, "counterpart": 46, "filearea": 46, "remotebotnam": 46, "globalflag": 46, "channelflag": 46, "subsequ": 46, "botaddress": 46, "ipaddress": 46, "ipv4address": 46, "ipv6address": 46, "behav": 46, "getinfo": 46, "unstuck": 46, "jupe": 46, "sublist": 46, "zero": 46, "differenti": 46, "abcdechannel": 46, "got": 46, "modechang": 46, "refresh": [46, 50], "fragil": 46, "notif": 46, "behalf": 46, "compon": 46, "duplic": 46, "element": 46, "bywho": 46, "ag": 46, "reset": 46, "reread": 46, "memberlist": 46, "lost": 46, "ntik": 46, "serverlist": 46, "ex": 46, "goober": 46, "ON": 46, "forget": 46, "reiniti": 46, "coupl": 46, "throw": 46, "alia": 46, "99999": 46, "greater": 46, "equal": 46, "she": 46, "mpj": 46, "pj": 46, "moc": 46, "mp": 46, "configfil": 46, "omit": [46, 48], "boldfac": 46, "video": 46, "underlin": [46, 47], "ansi": 46, "ctrl": 46, "bell": 46, "ordinari": [46, 48], "ital": 46, "intercept": 46, "item": 46, "uplink": 46, "botnetnick": 46, "file_receiv": 46, "file_send": 46, "file_send_pend": 46, "readabl": 46, "lindex": 46, "six": 46, "blank": 46, "mandatori": 46, "permit": 46, "failur": [46, 50], "kind": 46, "succeed": 46, "pathnam": 46, "resum": 46, "bitchx": 46, "python": [2, 6, 46], "five": 46, "jp": 46, "34": 46, "04": 46, "06": 46, "08": [46, 47], "interv": 46, "secondli": 46, "repres": [46, 50], "jan": [46, 48], "1970": 46, "week": 46, "804600": 46, "vari": [46, 52], "posix": 46, "portabl": 46, "fri": 46, "aug": 46, "55": 46, "1973": 46, "rand_max": 46, "2147483647": 46, "underli": 46, "pseudo": 46, "relinquish": 46, "deliv": 46, "notebox": 46, "caught": 46, "encod": [46, 47], "ascii": 46, "64": 46, "ecb": 46, "cbc": 46, "pick": 46, "fatal": 46, "wasn": 46, "128": 46, "pre": [46, 48], "myownevent123": 46, "todai": 46, "couldn": 46, "17": 46, "insensit": 46, "simplifi": 46, "rfc_compliant": 46, "spent": 46, "mem": 46, "exclud": 46, "cleartext": 46, "vali": 46, "valis0": 46, "crappi": 46, "math": 46, "ufl": 46, "edu": [46, 52], "eu": 46, "pl1": 46, "1010201": 46, "mnnrrpp": 46, "nn": 46, "rr": 46, "pp": 46, "437": 46, "expans": 46, "quot": [46, 50], "highest": 46, "prioriti": 46, "danger": 46, "logic": 46, "proce": 46, "easiest": 46, "build": 46, "ti": 46, "lastli": 46, "ov": 46, "mn": 46, "unknown": 46, "phrase": 46, "spoken": 46, "notc": 46, "breach": 46, "notcproc": 46, "partproc": 46, "signoff": 46, "possibli": [46, 50], "twice": 46, "rawt": 46, "topc": 46, "kicker": 46, "newnick": 46, "typo": 46, "18": 46, "guppi": 46, "mode_proc": 46, "stai": 46, "mode_proc_fix": 46, "ctcr": 46, "embed": 46, "supplant": 46, "368": 46, "unexpect": 46, "chon": 46, "chof": 46, "recipi": 46, "rcvd": 46, "invok": 46, "dronepup": 46, "eden": 46, "wild": 46, "spoke": 46, "bcst": 46, "disc": 46, "splt": 46, "Be": 46, "awar": 46, "fals": 46, "alarm": 46, "fake": 46, "rejn": 46, "needop": 46, "needal": 46, "flud": 46, "wall": 46, "sender": 46, "chjn": 46, "chpt": 46, "0000": 46, "9999": 46, "schedul": 46, "pad": 46, "unld": 46, "nkch": 46, "oldhandl": 46, "newhandl": 46, "sighup": 46, "hup": 46, "sigterm": 46, "sigil": 46, "ill": 46, "sigquit": 46, "prerehash": 46, "prerestart": 46, "preinit": 46, "tout": 46, "stall": 46, "flexibl": [46, 48], "noqueu": 46, "cron": 46, "weekdai": 46, "evalu": 46, "express": [6, 46], "delimit": 46, "whitespac": 46, "sundai": 46, "handshak": 46, "shutdownreason": 46, "shutdown": 46, "sigkil": 46, "ircawai": 46, "301": 46, "catch": 46, "invt": 46, "invite": 46, "late": 46, "distinguish": 46, "unset": 46, "revert": 46, "treat": [46, 51], "signal": 46, "verbos": 46, "affet": 46, "retain": 46, "driven": 46, "misnom": 46, "song": 46, "danc": 46, "eof": 46, "arriv": 46, "dispos": 46, "newidx": 46, "6687": 46, "escap": 46, "insert": 47, "invers": 47, "flash": 47, "botnetcentr": 47, "percent": 47, "col": 47, "column": 47, "width": 47, "center": 47, "70": 47, "meet": 48, "autodetect": 48, "forcefulli": 48, "sslinc": 48, "ssllib": 48, "starttl": 48, "certifict": 48, "graphic": 48, "deliber": 48, "sdcc": 48, "kvirc": 48, "synchron": 48, "infrastructur": 48, "subject": 48, "s_client": 48, "sslport": 48, "issuer": 48, "jun": 49, "02": 49, "2500": 49, "high": 49, "therebi": [49, 51], "lang": 49, "techniqu": 49, "yourbot": 49, "myvar": 49, "held": 50, "natur": 50, "WILL": 50, "unintend": 50, "consequ": 50, "truncat": 50, "assur": 50, "replic": [50, 51], "vip": [50, 51], "subscrib": [50, 51], "badgui": 50, "comprehens": 50, "twith": 50, "gui": 50, "flagmask": 50, "ccht": 50, "histori": 50, "tmi": 50, "tv": [50, 51], "target": 50, "cmsg": 50, "msgid": 50, "htgt": 50, "viewer": 50, "similarli": 50, "arbitrarili": 50, "wspr": 50, "popul": 50, "wspm": 50, "rmst": 50, "emot": 50, "uncertainti": 50, "usst": 50, "usrntc": 50, "discontinu": 51, "technic": 51, "token": 51, "oauth": 51, "alphanumer": 51, "pretend": 51, "j9irk4vs28b0obz9easys4w2ystji3u": 51, "spoiler": 51, "sake": 51, "light": 51, "decis": 51, "notabl": 51, "topic": 51, "degrad": 51, "capac": 51, "face": 51, "hubcap": 52, "clemson": 52, "hate": 52, "milk": 52, "meaningless": 52, "entitl": 52, "badg": 52, "mainten": 52, "washalfop": 52, "nethack": 52, "highlight": 52, "individu": 21, "eggsrop": 21, "bind_typ": [], "pysourc": 6, "parse_tcl_list": 6, "parse_tcl_dict": 6}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"about": [0, 2, 41, 42, 48], "eggdrop": [0, 2, 3, 4, 5, 6, 7, 8, 21, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 44, 46, 50], "bore": 1, "legal": 1, "stuff": 1, "an": [2, 21, 29, 30, 31, 34], "open": 2, "sourc": [2, 16, 33], "irc": [2, 18, 34, 48, 51], "bot": [2, 16, 38, 46], "some": 2, "thing": 2, "you": 2, "can": [2, 7], "do": [2, 7, 29], "how": [2, 4, 5, 7, 29], "get": [2, 4, 16, 33, 46], "instal": [2, 3, 7, 33, 41, 48], "pre": [2, 4, 34], "requisit": [2, 4, 34], "where": 2, "find": 2, "more": 2, "help": [2, 4], "us": [2, 21, 35, 38], "tutori": 2, "modul": [2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 39, 46], "quick": [3, 4], "startup": [3, 4], "cygwin": 3, "requir": [3, 29, 32, 35, 46], "window": 3, "readm": 4, "notic": 4, "what": [4, 7, 29, 38], "i": [4, 7, 38], "ftp": 4, "git": 4, "develop": [4, 36], "snapshot": 4, "docker": 4, "system": [4, 31], "upgrad": [4, 5], "command": [4, 5, 21, 26, 32, 36, 46, 49, 50], "line": [4, 43], "auto": 4, "start": [4, 33], "document": [4, 5], "obtain": 4, "must": 5, "read": 5, "chang": [5, 46], "v1": 5, "9": 5, "config": [5, 16, 21, 33, 36, 46, 49, 51], "file": [5, 16, 21, 33, 34, 36, 39, 46, 49, 51], "script": [5, 21, 30, 35, 36, 39, 48], "botnet": [5, 34, 38, 39, 48], "tcl": [5, 8, 21, 26, 32, 35, 36, 45, 46, 50], "includ": 6, "inform": [7, 34], "ar": 7, "compil": 7, "without": 7, "dynam": 7, "static": 7, "still": 7, "need": 7, "loadmodul": [7, 46], "bind": [8, 21, 32, 46, 50], "intern": 8, "tabl": 8, "creation": 8, "stackabl": [8, 46], "ht_stackabl": 8, "trigger": 8, "ani": 8, "c": 8, "handler": 8, "summari": 8, "assoc": [9, 46], "blowfish": 10, "channel": [11, 16, 31, 46, 50], "set": [11, 31, 33, 36, 39, 41, 46, 48], "valu": [11, 46], "base": 11, "enabl": [11, 34, 35, 45, 46], "disabl": 11, "default": [11, 49], "compress": [12, 46], "consol": [13, 39, 46], "ctcp": [14, 41], "dn": 15, "filesi": [16, 46], "setup": 16, "partylin": [16, 21, 26, 31, 32], "usag": [16, 36, 41, 42, 45, 48], "cancel": 16, "cd": 16, "directori": [16, 39, 46], "cp": [16, 46], "dst": 16, "desc": [16, 46], "descript": 16, "filestat": 16, "user": [16, 31, 38, 46, 52], "clear": [16, 46], "stat": 16, "filenam": [16, 46], "nicknam": [16, 46], "hide": 16, "ln": 16, "filepath": 16, "localfil": 16, "l": [16, 46], "filemask": 16, "mkdir": [16, 46], "dir": [16, 46], "flag": [16, 31, 38, 46, 50, 52], "mv": [16, 46], "dest": 16, "pend": 16, "pwd": 16, "quit": 16, "rm": 16, "rmdir": [16, 46], "share": [16, 24, 38], "optim": 16, "unhid": 16, "unshar": 16, "ident": 17, "note": [19, 46], "pbkdf2": 20, "python": 21, "load": [21, 36], "express": 21, "pysourc": 21, "path": [21, 39], "argument": [21, 32], "parse_tcl_list": 21, "string": [21, 46, 49], "parse_tcl_dict": 21, "variabl": [21, 46, 49], "write": [21, 29, 30, 32], "header": [21, 32], "section": 21, "code": [21, 32], "seen": 22, "server": [23, 34, 35, 46], "transfer": 25, "twitch": [26, 50, 51], "limit": [26, 46, 51], "api": 26, "uptim": [27, 46], "woobi": 28, "module_start": 29, "module_t": 29, "module_clos": 29, "module_expmem": 29, "module_report": 29, "addit": [29, 34], "function": [29, 51], "common": 31, "first": 31, "step": 31, "log": [31, 39, 49], "join": [31, 35], "add": [31, 46], "host": [31, 46], "assign": 31, "permiss": 31, "configur": [31, 33, 34, 45], "automat": 31, "restart": [31, 46], "crontab": 31, "method": 31, "old": [31, 46], "systemd": 31, "newer": 31, "authent": [31, 38, 48], "nickserv": 31, "up": [31, 33], "sasl": 31, "basic": [32, 39], "ad": [32, 38], "defin": 32, "call": 32, "export": 32, "prerequisit": 33, "The": [33, 43], "super": 33, "short": 33, "version": [33, 46], "histori": 33, "download": 33, "locat": 33, "edit": [33, 51], "No": 33, "show": 33, "tl": [34, 38, 48], "secur": [34, 38, 48], "connect": [34, 46], "protect": 34, "commun": 34, "prepar": 34, "gener": 34, "kei": [34, 46, 48], "listen": [34, 46], "account": [35, 46], "track": 35, "capabl": [35, 42], "extend": 35, "notifi": 35, "whox": 35, "check": 35, "statu": [35, 46], "determin": 35, "support": [35, 41, 42, 48], "best": 35, "effort": 35, "tag": [35, 46], "autoscript": 36, "remot": 36, "fetch": 36, "list": [36, 46], "unload": 36, "clean": 36, "updat": 36, "structur": 36, "manifest": 36, "json": 36, "placement": 36, "hint": 36, "egg_load": 36, "egg_unload": 36, "egg_al": 36, "ban": [37, 46], "invit": [37, 46], "exempt": [37, 46], "link": [38, 46], "term": 38, "exampl": 38, "bottre": 38, "botflag": 38, "make": 38, "record": [38, 46], "certif": [38, 48], "core": 39, "execut": 39, "dcc": [39, 46, 48], "telnet": 39, "advanc": [39, 49], "ssl": [39, 48], "featur": 40, "ipv6": 41, "chat": 41, "chat4": 41, "chat6": 41, "ircv3": 42, "cap": [42, 46], "parti": 43, "patch": 44, "submit": 44, "via": [44, 46], "github": 44, "encrypt": [45, 46], "hash": 45, "background": 45, "hybrid": 45, "solo": 45, "interfac": 45, "output": 46, "putserv": 46, "text": 46, "option": 46, "puthelp": 46, "putquick": 46, "putnow": 46, "onelin": 46, "putkick": 46, "nick": [46, 50], "reason": 46, "putlog": 46, "putcmdlog": 46, "putxferlog": 46, "putloglev": 46, "": 46, "dumpfil": 46, "queuesiz": 46, "queue": 46, "clearqueu": 46, "req": 46, "raw": 46, "arg": [46, 50], "tagmsg": 46, "target": 46, "ip": 46, "port": 46, "password": 46, "remov": 46, "manipul": 46, "countus": 46, "validus": 46, "handl": 46, "findus": 46, "userlist": 46, "passwdok": 46, "pass": 46, "getus": 46, "entri": 46, "type": [46, 50], "extra": 46, "info": 46, "setus": 46, "chhandl": 46, "new": 46, "chattr": 46, "botattr": 46, "matchattr": 46, "addus": 46, "hostmask": 46, "addbot": 46, "address": 46, "botport": 46, "userport": 46, "delus": 46, "delhost": 46, "addchanrec": 46, "delchanrec": 46, "haschanrec": 46, "getchaninfo": 46, "setchaninfo": 46, "newchanban": 46, "creator": 46, "comment": 46, "lifetim": 46, "newban": 46, "newchanexempt": 46, "newexempt": 46, "newchaninvit": 46, "newinvit": 46, "stickban": 46, "banmask": 46, "unstickban": 46, "stickexempt": 46, "exemptmask": 46, "unstickexempt": 46, "stickinvit": 46, "invitemask": 46, "unstickinvit": 46, "killchanban": 46, "killban": 46, "killchanexempt": 46, "killexempt": 46, "killchaninvit": 46, "killinvit": 46, "ischanjup": 46, "isban": 46, "ispermban": 46, "isexempt": 46, "ispermexempt": 46, "isinvit": 46, "isperminvit": 46, "isbansticki": 46, "isexemptsticki": 46, "isinvitesticki": 46, "matchban": 46, "matchexempt": 46, "matchinvit": 46, "banlist": 46, "exemptlist": 46, "invitelist": 46, "newignor": 46, "killignor": 46, "ignorelist": 46, "isignor": 46, "save": 46, "reload": 46, "backup": 46, "name": 46, "savechannel": 46, "loadchannel": 46, "channame2dnam": 46, "chandname2nam": 46, "dname": 46, "isbotnick": 46, "botisop": 46, "botishalfop": 46, "botisvoic": 46, "botonchan": 46, "isop": 46, "ishalfop": 46, "wasop": 46, "washalfop": 46, "isvoic": 46, "isidentifi": 46, "isawai": 46, "isircbot": 46, "onchan": 46, "monitor": 46, "delet": 46, "onlin": 46, "offlin": 46, "accounttrack": 46, "getaccount": 46, "nick2hand": 46, "account2nick": 46, "hand2nick": 46, "handonchan": 46, "ischanban": 46, "ischanexempt": 46, "ischaninvit": 46, "chanban": 46, "chanexempt": 46, "chaninvit": 46, "resetban": 46, "resetexempt": 46, "resetinvit": 46, "resetchanidl": 46, "resetchanjoin": 46, "resetchan": 46, "refreshchan": 46, "getchanhost": 46, "getchanjoin": 46, "onchansplit": 46, "chanlist": 46, "chanflag": 46, "getchanidl": 46, "getchanmod": 46, "jump": 46, "pushmod": 46, "mode": 46, "flushmod": 46, "topic": 46, "validchan": 46, "isdynam": 46, "setudef": 46, "int": 46, "str": 46, "renudef": 46, "oldnam": 46, "newnam": 46, "deludef": 46, "getudef": 46, "chansettyp": 46, "isupport": 46, "isset": 46, "putdcc": 46, "idx": 46, "putidx": 46, "dccbroadcast": 46, "messag": 46, "dccputchan": 46, "boot": 46, "dccsimul": 46, "hand2idx": 46, "idx2hand": 46, "valididx": 46, "getchan": 46, "setchan": 46, "resetconsol": 46, "echo": 46, "strip": 46, "putbot": 46, "putallbot": 46, "killdcc": 46, "botlist": 46, "islink": 46, "dccuse": 46, "dcclist": 46, "socklist": 46, "whom": 46, "chan": [46, 50], "getdccidl": 46, "getdccawai": 46, "setdccawai": 46, "dccdumpfil": 46, "numberlist": 46, "erasenot": 46, "listnot": 46, "storenot": 46, "from": 46, "msg": 46, "killassoc": 46, "compressfil": 46, "level": 46, "src": 46, "uncompressfil": 46, "iscompress": 46, "setpwd": 46, "getpwd": 46, "getfil": 46, "getdir": 46, "dccsend": 46, "ircnick": 46, "filesend": 46, "fileresend": 46, "setdesc": 46, "getdesc": 46, "setown": 46, "getown": 46, "setlink": 46, "getlink": 46, "getfileq": 46, "getfilesendtim": 46, "destin": 46, "getflag": 46, "setflag": 46, "miscellan": 46, "keyword": 46, "mask": 46, "proc": 46, "unbind": 46, "logfil": 46, "maskhost": 46, "masktyp": 46, "timer": 46, "minut": 46, "count": 46, "timernam": 46, "utim": 46, "second": 46, "killtim": 46, "killutim": 46, "unixtim": 46, "durat": 46, "strftime": 46, "formatstr": 46, "time": 46, "ctime": 46, "myip": 46, "rand": 46, "control": 46, "sendnot": 46, "unlink": 46, "decrypt": 46, "base64": 46, "encpass": 46, "die": 46, "unam": 46, "dnslookup": 46, "hostnam": 46, "arg1": 46, "arg2": 46, "argn": 46, "md5": 46, "callev": 46, "event": 46, "traffic": 46, "unloadmodul": 46, "loadhelp": 46, "helpfil": 46, "unloadhelp": 46, "reloadhelp": 46, "rehash": 46, "stripcod": 46, "matchaddr": 46, "matchcidr": 46, "block": 46, "prefix": 46, "matchstr": 46, "pattern": 46, "rfcequal": 46, "string1": 46, "string2": 46, "istl": 46, "starttl": 46, "tlsstatu": 46, "global": 46, "botnick": 46, "botnam": 46, "serveraddress": 46, "numvers": 46, "lastbind": 46, "isjup": 46, "handlen": 46, "configurearg": 46, "languag": 46, "return": 46, "procedur": 46, "tcp": 46, "match": 46, "charact": 46, "textfil": 47, "substitut": 47, "tip": 49, "renam": 49, "keep": 49, "self": 49, "modifi": 49, "modular": 49, "your": 49, "twcmd": 50, "cmd": 50, "userst": 50, "roomstat": 50, "twitchmod": 50, "twitchvip": 50, "ismod": 50, "isvip": 50, "disclaim": 51, "regist": 51, "web": 51, "ui": 51}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"About Eggdrop": [[0, "about-eggdrop"], [2, null]], "Boring legal stuff": [[1, "boring-legal-stuff"]], "Eggdrop, an open source IRC bot": [[2, "eggdrop-an-open-source-irc-bot"]], "Some things you can do with Eggdrop": [[2, "some-things-you-can-do-with-eggdrop"]], "How to get Eggdrop": [[2, "how-to-get-eggdrop"]], "How to install Eggdrop": [[2, "how-to-install-eggdrop"]], "Installation Pre-requisites": [[2, "installation-pre-requisites"]], "Installation": [[2, "installation"], [33, "installation"], [41, "installation"], [48, "installation"]], "Where to find more help": [[2, "where-to-find-more-help"]], "Installing Eggdrop": [[2, null], [3, "installing-eggdrop"]], "Using Eggdrop": [[2, null]], "Tutorials": [[2, null]], "Eggdrop Modules": [[2, null]], "Quick Startup": [[3, "quick-startup"], [4, "quick-startup"]], "Cygwin Requirements (Windows)": [[3, "cygwin-requirements-windows"]], "Modules": [[3, "modules"], [5, "modules"], [39, "modules"]], "README": [[4, "readme"]], "Notice": [[4, "notice"]], "What is Eggdrop?": [[4, "what-is-eggdrop"]], "How to Get Eggdrop": [[4, "how-to-get-eggdrop"]], "FTP": [[4, "ftp"]], "Git Development Snapshot": [[4, "git-development-snapshot"]], "Docker": [[4, "docker"]], "System Pre-Requisites": [[4, "system-pre-requisites"]], "Upgrading": [[4, "upgrading"]], "Command Line": [[4, "command-line"]], "Auto-starting Eggdrop": [[4, "auto-starting-eggdrop"]], "Documentation": [[4, "documentation"], [5, "documentation"]], "Obtaining Help": [[4, "obtaining-help"]], "Upgrading Eggdrop": [[5, "upgrading-eggdrop"]], "How to Upgrade": [[5, "how-to-upgrade"]], "Must-read changes for Eggdrop v1.9": [[5, "must-read-changes-for-eggdrop-v1-9"]], "Config file changes": [[5, "config-file-changes"]], "Scripts": [[5, "scripts"], [39, "scripts"], [48, "scripts"]], "Botnet": [[5, "botnet"], [48, "botnet"]], "Tcl Commands": [[5, "tcl-commands"], [21, "tcl-commands"], [36, "tcl-commands"]], "Modules included with Eggdrop": [[6, "modules-included-with-eggdrop"]], "Eggdrop Module Information": [[7, "eggdrop-module-information"]], "What are modules?": [[7, "what-are-modules"]], "How to install a module": [[7, "how-to-install-a-module"]], "Can I compile Eggdrop without dynamic modules? (Static compile)": [[7, "can-i-compile-eggdrop-without-dynamic-modules-static-compile"]], "Do I still need to \u2018loadmodule\u2019 modules?": [[7, "do-i-still-need-to-loadmodule-modules"]], "Eggdrop Bind Internals": [[8, "eggdrop-bind-internals"]], "Bind Table Creation": [[8, "bind-table-creation"]], "Stackable Binds: HT_STACKABLE": [[8, "stackable-binds-ht-stackable"]], "Tcl Binding": [[8, "tcl-binding"]], "Triggering the Bind": [[8, "triggering-the-bind"]], "Triggering any Bind": [[8, "triggering-any-bind"]], "C Binding": [[8, "c-binding"]], "C Handler": [[8, "c-handler"]], "Summary": [[8, "summary"]], "Assoc Module": [[9, "assoc-module"], [46, "assoc-module"]], "Blowfish Module": [[10, "blowfish-module"]], "Channels Module": [[11, "channels-module"]], "Channel Settings": [[11, "channel-settings"]], "Value-based Channel Settings": [[11, "value-based-channel-settings"]], "Enable/Disable Channel Settings": [[11, "enable-disable-channel-settings"]], "Default Channel Values": [[11, "default-channel-values"]], "Compress Module": [[12, "compress-module"], [46, "compress-module"]], "Console Module": [[13, "console-module"]], "CTCP Module": [[14, "ctcp-module"]], "DNS Module": [[15, "dns-module"]], "Filesys Module": [[16, "filesys-module"], [46, "filesys-module"]], "Config file setup": [[16, "config-file-setup"]], "Partyline usage": [[16, "partyline-usage"]], ".files": [[16, "files"]], ".cancel [file] \u2026": [[16, "cancel-file-file"]], ".cd ": [[16, "cd-directory"]], ".cp ": [[16, "cp-source-dst"]], ".desc ": [[16, "desc-file-description"]], ".filestats [clear]": [[16, "filestats-user-clear"]], ".stats": [[16, "stats"]], ".get [nickname]": [[16, "get-filename-nickname"]], ".hide [files] \u2026": [[16, "hide-file-files"]], ".ln ": [[16, "ln-bot-filepath-localfile"]], ".ls [filemask]": [[16, "ls-filemask"]], ".mkdir [flags [channel]]": [[16, "mkdir-dir-flags-channel"]], ".mv ": [[16, "mv-source-dest"]], ".pending": [[16, "pending"]], ".pwd": [[16, "pwd"]], ".quit": [[16, "quit"]], "rm [files] \u2026": [[16, "rm-file-files"]], ".rmdir ": [[16, "rmdir-dir"]], ".share [files] \u2026": [[16, "share-file-files"]], ".optimize": [[16, "optimize"]], ".unhide": [[16, "unhide"]], ".unshare [file] \u2026": [[16, "unshare-file-file"]], ".filesys module": [[16, "id1"]], "Ident Module": [[17, "ident"]], "IRC Module": [[18, "irc-module"]], "Notes Module": [[19, "notes-module"], [46, "notes-module"]], "PBKDF2 Module": [[20, "pbkdf2-module"]], "Python Module": [[21, "python-module"]], "Loading Python": [[21, "loading-python"]], "Partyline Commands": [[21, "partyline-commands"]], "python ": [[21, "python-expression"]], ".binds python": [[21, "binds-python"]], "pysource ": [[21, "pysource-path-to-file"]], "Eggdrop Python Commands": [[21, "eggdrop-python-commands"]], "bind ": [[21, "bind-arguments"]], "parse_tcl_list ": [[21, "parse-tcl-list-string"]], "parse_tcl_dict ": [[21, "parse-tcl-dict-string"]], "Config variables": [[21, "config-variables"]], "Writing an Eggdrop Python script": [[21, "writing-an-eggdrop-python-script"]], "Header section": [[21, "header-section"]], "Code Section": [[21, "code-section"]], "Writing a module for use with Eggdrop": [[21, "writing-a-module-for-use-with-eggdrop"]], "Seen Module": [[22, "seen-module"]], "Server Module": [[23, "server-module"]], "Share Module": [[24, "share-module"]], "Transfer Module": [[25, "transfer-module"]], "Twitch Module": [[26, "twitch-module"]], "Limitations": [[26, "limitations"]], "Tcl API": [[26, "tcl-api"]], "Partyline commands": [[26, "partyline-commands"]], "Uptime Module": [[27, "uptime-module"]], "Woobie Module": [[28, "woobie-module"]], "How to Write an Eggdrop Module": [[29, "how-to-write-an-eggdrop-module"]], "Module requirements": [[29, "module-requirements"]], "MODULE_start": [[29, "module-start"]], "MODULE_table": [[29, "module-table"]], "MODULE_close ()": [[29, "module-close"]], "MODULE_expmem": [[29, "module-expmem"]], "MODULE_report": [[29, "module-report"]], "Additional functions": [[29, "additional-functions"]], "What to do with a module?": [[29, "what-to-do-with-a-module"]], "Writing an Eggdrop Script": [[30, "writing-an-eggdrop-script"]], "Common First Steps": [[31, "common-first-steps"]], "Log on to the partyline": [[31, "log-on-to-the-partyline"]], "Common first steps": [[31, "id1"]], "Join a Channel": [[31, "join-a-channel"]], "Add a User": [[31, "add-a-user"]], "Add a Host to a User": [[31, "add-a-host-to-a-user"]], "Assign Permission Flags": [[31, "assign-permission-flags"]], "Configure Channel Settings": [[31, "configure-channel-settings"]], "Automatically restarting an Eggdrop": [[31, "automatically-restarting-an-eggdrop"]], "Crontab Method (Old)": [[31, "crontab-method-old"]], "Systemd Method (Newer Systems)": [[31, "systemd-method-newer-systems"]], "Authenticating with NickServ": [[31, "authenticating-with-nickserv"]], "Setting up SASL authentication": [[31, "setting-up-sasl-authentication"]], "Writing a Basic Eggdrop Module": [[32, "writing-a-basic-eggdrop-module"]], "Module Header": [[32, "module-header"]], "Required Code": [[32, "required-code"]], "Adding a Partyline Command": [[32, "adding-a-partyline-command"]], "Adding a Tcl Command": [[32, "adding-a-tcl-command"]], "Adding a Tcl Bind": [[32, "adding-a-tcl-bind"]], "Defining bind arguments": [[32, "defining-bind-arguments"]], "Calling the Bind": [[32, "calling-the-bind"]], "Exporting the Bind": [[32, "exporting-the-bind"]], "Setting Up Eggdrop": [[33, "setting-up-eggdrop"]], "Prerequisites": [[33, "prerequisites"]], "The super-short version": [[33, "the-super-short-version"]], "Getting the source": [[33, "getting-the-source"]], "History": [[33, "history"]], "Download locations": [[33, "download-locations"]], "Configuration": [[33, "configuration"]], "Editing the config file": [[33, "editing-the-config-file"], [51, "editing-the-config-file"]], "Starting the Eggdrop": [[33, "starting-the-eggdrop"]], "No show?": [[33, "no-show"]], "Enabling TLS Security on Eggdrop": [[34, "enabling-tls-security-on-eggdrop"]], "Pre-requisites": [[34, "pre-requisites"]], "Connecting to a TLS-enabled IRC server": [[34, "connecting-to-a-tls-enabled-irc-server"]], "Protecting Botnet Communications": [[34, "protecting-botnet-communications"]], "Configuration File Preparation - Generating Keys": [[34, "configuration-file-preparation-generating-keys"]], "Configuration File Preparation - Listening with TLS": [[34, "configuration-file-preparation-listening-with-tls"]], "Connecting to an Eggdrop listening with TLS": [[34, "connecting-to-an-eggdrop-listening-with-tls"]], "Additional Information": [[34, "additional-information"]], "Account tracking in Eggdrop": [[35, "account-tracking-in-eggdrop"]], "Required Server Capabilities": [[35, "required-server-capabilities"]], "extended-join": [[35, "extended-join"]], "account-notify": [[35, "account-notify"]], "WHOX": [[35, "whox"]], "Enabling Eggdrop Account Tracking": [[35, "enabling-eggdrop-account-tracking"]], "Checking Account-tracking Status": [[35, "checking-account-tracking-status"]], "Determining if a Server Supports Account Capabilities": [[35, "determining-if-a-server-supports-account-capabilities"]], "Best-Effort Account Tracking": [[35, "best-effort-account-tracking"]], "account-tag": [[35, "account-tag"]], "Using Accounts with Tcl Scripts": [[35, "using-accounts-with-tcl-scripts"]], "Eggdrop Autoscripts": [[36, "eggdrop-autoscripts"]], "Autoscripts usage": [[36, "autoscripts-usage"]], "remote": [[36, "remote"]], "fetch - - - + + + + +
    -

    Development hints

    +

    Development hints

    -

    Tcl Commands

    +

    Tcl Commands

    The autoscripts Tcl script adds three new commands for use with Tcl scripts:

    -

    egg_loaded

    +

    egg_loaded

    Description: lists all scripts currently loaded via the autoscripts system

    Returns: A Tcl list of script names currently loaded via autoscripts

    -

    egg_unloaded

    +

    egg_unloaded

    Description: lists all scripts downloaded to the local machine via the autoscripts system but not currently loaded by Eggdrop

    Returns: A Tcl list of script names downloaded but not currently loaded via autoscripts

    -

    egg_all

    +

    egg_all

    Description: lists all script downloaded to the localm machine via the autoscripts system, regardless if they are running or not

    Returns: A Tcl list of all script namees download via autoscripts

    @@ -328,9 +329,9 @@

    egg_all

    diff --git a/doc/html/using/bans.html b/doc/html/using/bans.html index 55787dc1b..2257abc79 100644 --- a/doc/html/using/bans.html +++ b/doc/html/using/bans.html @@ -1,17 +1,16 @@ - - + - + Bans, Invites, and Exempts — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -99,7 +99,7 @@

    Search

    Bans, Invites and Exempts Last revised: March 07, 2002

    -

    Bans, Invites, and Exempts

    +

    Bans, Invites, and Exempts

    I assume that you know how bans work on IRC. Eggdrop handles bans, exempts and invites in various ways, and this file is intended to help clarify how @@ -169,7 +169,7 @@

    Bans, Invites, and Exempts

    diff --git a/doc/html/using/botnet.html b/doc/html/using/botnet.html index 524870353..6bc802079 100644 --- a/doc/html/using/botnet.html +++ b/doc/html/using/botnet.html @@ -1,17 +1,16 @@ - - + - + Botnet Sharing and Linking — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
      @@ -108,19 +108,19 @@

      Search

      Botnet Sharing and Linking

      -

      Botnet Sharing and Linking

      +

      Botnet Sharing and Linking

      The purpose of this document is to show you what a botnet is and how it could be useful to you. It also covers botflags userfile sharing.

      -

      What is a botnet?

      +

      What is a botnet?

      A botnet consists of two or more bots linked together. This can allow bots to op each other securely, control floods efficiently, and share user lists, ban lists, exempt/invite lists, and ignore lists (if sharing is enabled).

      -

      Terms

      +

      Terms

      The following are some common terms used in this document:

      Botnet

      A botnet consists of two or more bots connected together.

      @@ -159,7 +159,7 @@

      Terms

      -

      Example bottree

      +

      Example bottree

      BotA
         |-+BotB
         `-+BotC
      @@ -168,7 +168,7 @@ 

      Example bottree -

      Bot Flags

      +

      Bot Flags

      Flags are attributes that determine what a bot can or is allowed to do. Flags can be either global (such as +s) or channel specific (such as |+s #lamest). See ‘.help botattr’ for help with setting these flags.

      @@ -236,7 +236,7 @@

      Bot Flags -

      Adding and linking bots

      +

      Adding and linking bots

      With the common terms out of the way, we can start with the process of linking two bots. Before you start, you need to know the address and port of each bot you wish to link.

      Here is an example scenario:

      @@ -249,12 +249,12 @@

      Adding and linking bots

      At this point, you can link the two bots by typing ‘.link BotA’ on BotB (or ‘.link BotB’ on BotA). The bots will now give themselves random passwords which are not stored encrypted in the userfile. Note that you can link as many bots as you wish to your botnet.

      -

      Using botflags

      +

      Using botflags

      Botflags are needed to assign special functions and tasks to your bots. Bot flags are set with the ‘.botattr’ command. See ‘.help botattr’ for help with this command. The following is a list of botflags and their @@ -299,7 +299,7 @@

      Using botflags -

      Making bots share user records

      +

      Making bots share user records

      Before you start preparing your bots for sharing, make sure that you’ve loaded the transfer and share modules. You also have to ensure @@ -398,9 +398,9 @@

      Making bots share user records -

      Using certificates to authenticate Eggdrops

      +

      Using certificates to authenticate Eggdrops

      Eggdrops can use certificates to authenticate when linking to each other instead of a password. First, you must ensure you have set the appropriate certificates in the ssl-privatekey and ssl-certificate settings in the config file, and then enable the ssl-cert-auth setting. Next, add the certificate on the partyline by using .fprint + to add the fingerprint for the certificate currently in use, or .fprint <SHA1 fingerprint> to manually add a fingerprint. Once the config file settings are set 0and fingerprints are added on the partyline, Eggdrops will attempt to use their certificates instead of passwords for authentication.

      -

      Copyright (C) 1999 - 2023 Eggheads Development Team

      +

      Copyright (C) 1999 - 2024 Eggheads Development Team

      @@ -430,9 +430,9 @@

      Using certificates to authenticate Eggdrops
      diff --git a/doc/html/using/core.html b/doc/html/using/core.html index 2fa9db43d..21302afdc 100644 --- a/doc/html/using/core.html +++ b/doc/html/using/core.html @@ -1,17 +1,16 @@ - - + - + Eggdrop Core Settings — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -57,6 +56,7 @@

      Table of Contents

  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -108,14 +108,14 @@

    Search

    -

    Last revised: October 25, 2010

    +

    Last revised: August 29, 2023

    -

    Eggdrop Core Settings

    +

    Eggdrop Core Settings

    This file describes the syntax and all the settings of your Eggdrop configuration file. Please note that you don’t need to set all of these variables to make your bot work properly.

    -

    Executable Path

    +

    Executable Path

    The first line in an Eggdrop configuration file should contain a fully qualified path to your Eggdrop executable. It has to be implemented in the way the example shows to make the config file @@ -126,7 +126,7 @@

    Executable Path -

    Basic Settings

    +

    Basic Settings

    You can change the basic Eggdrop appearance and behavior in this section.

    @@ -190,7 +190,7 @@

    Basic Settings -

    Log Files

    +

    Log Files

    Eggdrop is capable of logging various things, from channel chatter to partyline commands and file transfers.

    Logfiles are normally kept for 24 hours. Afterwards, they will be renamed @@ -341,7 +341,7 @@

    Log Files -

    Console Settings

    +

    Console Settings

    set console “mkcoblxs”

    This is the default console mode. It uses the same event flags as the @@ -353,7 +353,7 @@

    Console Settings -

    File and Directory Settings

    +

    File and Directory Settings

    set userfile “LamestBot.user”

    Specify here the filename your userfile should be saved as.

    @@ -395,7 +395,7 @@

    File and Directory Settings -

    Botnet/Dcc/Telnet Settings

    +

    Botnet/Dcc/Telnet Settings

    Settings in this section should be unimportant for you until you deal with botnets (multiple Eggdrops connected together to maximize efficiency). You should read doc/BOTNET before modifying these settings.

    @@ -494,7 +494,7 @@

    Botnet/Dcc/Telnet Settings -

    Advanced Settings

    +

    Advanced Settings

    set firewall “!sun-barr.ebay:3666”

    Set this to your socks host if your Eggdrop sits behind a firewall. If @@ -571,7 +571,7 @@

    Advanced Settings -

    SSL Settings

    +

    SSL Settings

    Settings in this section take effect when eggdrop is compiled with TLS support.

    @@ -688,7 +688,7 @@

    SSL Settings -

    Modules

    +

    Modules

    After the core settings, you should start loading modules. Modules are loaded by the command “loadmodule <module>”. Eggdrop looks for modules in the directory you specified by the module-path setting in the files @@ -708,13 +708,13 @@

    Modules -

    Scripts

    +

    Scripts

    The scripts section should be placed at the end of the config file. All modules should be loaded and their variables should be set at this point.

    @@ -732,7 +732,7 @@

    Scripts

    diff --git a/doc/html/using/features.html b/doc/html/using/features.html index 920a81fc0..00387c256 100644 --- a/doc/html/using/features.html +++ b/doc/html/using/features.html @@ -1,17 +1,16 @@ - - + - + Eggdrop Features — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -97,7 +97,7 @@

    Search

    -

    Eggdrop Features

    +

    Eggdrop Features

    Eggdrop is the most advanced IRC robot available. It has been under development since December 1993, and unlike most other bots, it is still @@ -139,7 +139,7 @@

    Eggdrop Features

    diff --git a/doc/html/using/ipv6.html b/doc/html/using/ipv6.html index 06fcf9d87..396d93b9d 100644 --- a/doc/html/using/ipv6.html +++ b/doc/html/using/ipv6.html @@ -1,17 +1,16 @@ - - + - + IPv6 support — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -106,11 +106,11 @@

    Search

    IPv6 support Last revised: Mar 24, 2021

    -

    IPv6 support

    +

    IPv6 support

    This document provides information about IPv6 support which is a new eggdrop feature since version 1.8.0.

    -

    About

    +

    About

    Eggdrop can be compiled with IPv6 support. To make use of this, you need an IPv6-enabled OS and IPv6 connectivity. Every possible type of TCP connection can be established over IPv6 now, @@ -119,7 +119,7 @@

    About commands, telnet and ident lookups.

    -

    Installation

    +

    Installation

    ./configure and install as usual, the configure script will detect if your system supports IPv6 and will enable it automatically. You can override this behavior and manually enable or disable IPv6 with ./configure –enable-ipv6 @@ -132,7 +132,7 @@

    Installation -

    Usage

    +

    Usage

    You can use IPv6 addresses wherever you could specify IPv4 ones. IPs and hostnames are interchangeable everywhere. For certain settings and commands, you can enclose IPv6 addresses in square brackets to prevent @@ -141,11 +141,11 @@

    Usage consult them when in doubt.

    -

    CTCP CHAT/CHAT4/CHAT6

    +

    CTCP CHAT/CHAT4/CHAT6

    When a user sends a CTCP chat request, the request is passed to the bot via the IRC server, hiding the user’s IP. Since Eggdrop is unable to ‘see’ the type IP of the user is using (IPv4 or IPv6), it is thus unable to determine whether it should send back an IPv4 or an IPv6 address for the user to connect to. To work around this problem, the CHAT4 and CHAT6 commands were added to Eggdrop to force it to present an IPv4 or IPv6 address for use with a DCC connection, respectively. Otherwise, the traditional CHAT command will likely result in the Eggdrop presenting an IPv4 address to the user. So in short, if you’re on an IPv6 address and want to use CTCP CHAT to initiate a DCC session for the partyline, use CHAT6, not CHAT as the CTCP argument.

    -

    Settings

    +

    Settings

    There are four new IPv6 related config variables:

    vhost4

    @@ -171,7 +171,7 @@

    Settings

    diff --git a/doc/html/using/ircv3.html b/doc/html/using/ircv3.html index a15e1f393..1257f7b04 100644 --- a/doc/html/using/ircv3.html +++ b/doc/html/using/ircv3.html @@ -1,17 +1,16 @@ - - + - + IRCv3 support — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -104,18 +104,18 @@

    Search

    IRCv3 support Last revised: November 27, 2021

    -

    IRCv3 support

    +

    IRCv3 support

    This document provides information about IRCv3 capabilities, as defined via specifications documented by the IRCv3 working group (https://ircv3.net/). Support for some of these specifications was added starting with version 1.9.0, and more capabilities are added as possible with new versions.

    -

    About

    +

    About

    As more and more IRC servers began to develop and implement their own versions of the IRC protocol (generally defined in RFC1459 and RFC2812), a working group comprised of server, client, and bot developers decided to work together to document these features to make their implementation defined and standardized across servers. What emerged was the IRCv3 set of standards. The specifications developed by the IRCv3 working group was designed to be backwards compatible and are generally implemented via a CAP (capability) request sent at the initialization of an IRC session. A client can optinoally request these “extra” capabilities be enabled through the CAP request, with the assumption that the client can then support the capability requested and enabled. Not all servers or clients support the same capabilities, a general support list can be via the appropriate support table link at https://ircv3.net/.

    -

    Usage

    +

    Usage

    Within eggdrop.conf, several common IRCv3-defined capabilities are enabled simply changing their setting to ‘1’. Other capabilities without explicit settings in eggdrop.conf may be requested by adding them in a space-separated list to the cap-request setting. For more information on what a specific IRCv3-defined capability does, please consult https://ircv3.net/irc/.

    -

    Supported CAP capabilities

    +

    Supported CAP capabilities

    The following capabilities are supported by Eggdrop:

    diff --git a/doc/html/using/partyline.html b/doc/html/using/partyline.html index 49265ebd3..3f03d779b 100644 --- a/doc/html/using/partyline.html +++ b/doc/html/using/partyline.html @@ -1,19 +1,18 @@ - - + - + The Party Line — Eggdrop 1.9.5 documentation - - - - - + + + + + - + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -98,7 +98,7 @@

    Search

    Last revised: December 31, 2001

    -

    The Party Line

    +

    The Party Line

    The most important way you will communicate with your bot is through the party line. The party line is accessible via DCC chat or telnet. It’s pretty much just a miniature, lag-less IRC (see doc/BOTNET), but @@ -126,7 +126,7 @@

    The Party Line previous | - next

    @@ -155,9 +155,9 @@

    The Party Line

    diff --git a/doc/html/using/patch.html b/doc/html/using/patch.html index aac2d4b1f..f83ac29d4 100644 --- a/doc/html/using/patch.html +++ b/doc/html/using/patch.html @@ -1,17 +1,16 @@ - - + - + Patching Eggdrop — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -100,10 +100,10 @@

    Search

    -

    Patching Eggdrop

    +

    Patching Eggdrop

    Eggdrop is an open source project that depends on contributions of its users- like you! If you come across a feature you’d like to see implemented, find a bug, or think the documentation could be made more clear, you can open an issue on GitHub to discuss your ideas, and then submit a Pull Request to implement it!

    -

    Submitting a patch via GitHub

    +

    Submitting a patch via GitHub

    To create a patch via github:

      @@ -130,7 +130,7 @@

      Submitting a patch via GitHub

    diff --git a/doc/html/using/pbkdf2.html b/doc/html/using/pbkdf2.html index 17c073be0..75cf54f60 100644 --- a/doc/html/using/pbkdf2.html +++ b/doc/html/using/pbkdf2.html @@ -188,7 +188,7 @@

    Tcl Interface + - + Encryption/Hashing — Eggdrop 1.9.5 documentation - - - - - + + + + + @@ -45,6 +44,7 @@

    Table of Contents

  • Eggdrop Features
  • Eggdrop Core Settings
  • The Party Line
  • +
  • Eggdrop Autoscripts
  • Users and Flags
  • Bans, Invites, and Exempts
  • Botnet Sharing and Linking
  • @@ -102,12 +102,12 @@

    Search

    -

    Encryption/Hashing

    +

    Encryption/Hashing

    With the release of Eggdrop 1.9.0, an updated crytopgraphy module (PBKDF2) was released for use with Eggdrop. PBKDF2 is a one-way hashing algorithm used to protect the contents of the password file, as well as for use via the Tcl interface. Prior to this, blowfish was used for cryptographic requirements, such as hashing passwords for storage in the userfile.

    -

    Background

    +

    Background

    Prior to Eggdrop 1.9.0, the blowfish module was included with Eggdrop to protect sensitive data such as passwords stored in the userfile. While there are no known practical attacks against blowfish at the time of this writing, it was decided that a more modern crypto solution was desirable to be included with Eggdrop. The PBKDF2 (Password-based Key Derivation Function 2) uses a password and salt value to create a password hash (the salt value ensures that the hashes of two identical passwords are different). This process is one-way, which means the hashes cannot be cryptographically reversed and thus are safe for storing in a file.

    The default configuration of Eggdrop 1.9.0 has both the blowfish and pbkdf2 modules enabled (see Hybrid Configuration below). This will allow users upgrading a seamless transition to the PBKDF2 module. For users starting an Eggdrop for the first time, it is recommended to comment out the ‘loadmodule blowfish’ line, in order to implement the Solo Configuration.

    @@ -115,17 +115,17 @@

    Background -

    Usage

    +

    Usage

    There are two ways to implement PBKDF2- Hybrid configuration, which is recommended for transitioning an already-existing userfile to PBKDF2 by working with the blowfish module, and Solo configuration, which is recommended for use when starting a new Eggdrop for the first time.

    -

    Hybrid Configuration

    +

    Hybrid Configuration

    With a hybrid configuration, Eggdrop will run both the blowfish and the pbkdf2 modules concurrently. This will allow Eggdrop to authenticate users against their existing blowfish passwords stored in the userfile. However, the first time a user logs in, the pbkdf2 module will hash the (correct) password they enter and save it to the userfile. The pbkdf2-hashed password will then be used for all future logins.

    -

    Enabling hybrid configuration

    +

    Enabling hybrid configuration

    1. BACK UP YOUR USERFILE! This is the file that usually ends with ‘.user’.

    2. Ensure

    3. @@ -149,13 +149,13 @@

      Enabling hybrid configuration -

      Solo configuration

      +

      Solo configuration

      With a solo configuration, Eggdrop will only run the pbkdf2 module. Eggdrop will not be able to authenticate against passwords in an already-existing userfile and thus will require every user to set a password again, as if they were just added to Eggdrop. This can be done via the PASS msg command (/msg bot PASS <password>) or by having a user with appropriate permissions (and an already-set password) log into the partyline and use the ‘.chpass’ command.

      SECURITY CONSIDERATION: This configuration is not ideal for transitioning an existing userfile to PBKDF2. Without the blowfish module loaded, every user in the userfile essentially has no password set. This means any other user that matches a hostmask applied to a handle (!*@.aol.com, I’m looking at you) could set the password and gain access to that user’s Eggdrop account.

      -

      Enabling solo configuration

      +

      Enabling solo configuration

      1. BACK UP YOUR USERFILE! This is the file that usually ends with ‘.user’.

      2. Remove or comment:

        @@ -182,13 +182,13 @@

        Enabling solo configuration -

        Tcl Interface

        +

        Tcl Interface

        The PBKDF2 module adds the ‘encpass2’ command to the Tcl library. This command takes a string and hashes it using the PBKDF2 algorithm, and returns a string in the following format:

        $<PBK method>$rounds=<rounds>$<salt>$<password hash>
         

        where ‘PBK method’ is the method specified in the configuration file, ‘rounds’ is the number of rounds specified in the configuration file, ‘salt’ is the value used for the salt, and ‘password hash’ is the output of the hashing algorithm.

        -

        Copyright (C) 2000 - 2023 Eggheads Development Team

        +

        Copyright (C) 2000 - 2024 Eggheads Development Team

    @@ -218,9 +218,9 @@

    Tcl Interface

    diff --git a/doc/html/using/tcl-commands.html b/doc/html/using/tcl-commands.html index 3045c8e5d..50cb59f37 100644 --- a/doc/html/using/tcl-commands.html +++ b/doc/html/using/tcl-commands.html @@ -1,27 +1,22 @@ - - + - + Eggdrop Tcl Commands — Eggdrop 1.9.5 documentation - - - - - - + + + + +