h&       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((()))))))))))))))))))))))))*+++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------./000012222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 5 6 6 7 8 9 : ; < = > > ? @ @ @ @ @ @ @ A A A B C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D E F F G H I J K K K K L M N N N N N N O P Q R R S T U U U U U U U U V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V VW*Dynamically generated configuration module Safe-Inferred glircTransitive dependencies for this package computed at configure-time glircpackage name, version number  Safe-Inferred"glircserver response glircclient response Binding to ecdsatool(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"glircIdentifier for SASL ECDSA challenge response authentication using curve NIST256P. ECDSA-NIST256P-CHALLENGEglirc;Encode a username as specified in this authentication mode.glirc5Compute the response for a given challenge using the  ecdsatool( executable which must be available in PATH.glircauthorization identity glircauthentication identity glirc!private key file glirc!challenge string glirc!error message or response string  Safe-Inferred"%&(-%glirc,SCRAM state waiting for server-final-message glircbase64 encoded expected valueglirc,SCRAM state waiting for server-first-message glirc&underlying cryptographic hash function glircpassword glirc cbind-input glircc-nonce glircclient-first-bareglircConstruct client-first-message and extra parameters needed for .glircAdd server-first-message to current SCRAM transaction, compute client-final-message and next state for .glircAdd server-final-message to transaction and compute validatity of the whole transaction. glirc)Big endian encoding of a 32-bit number 1. glirc2Iterated, password-based, key-derivation function. glircBreak up a SCRAM message into its underlying key-value association list. glirc)Tranform all the SCRAM parameters into a  ClientProof and ServerSignature. glircEncode usersnames so they fit in the comma/equals delimited SCRAM message format.glircauthentication ID glircauthorization ID glircpassword glircnonce glirc output of  glircserver first message glirc output of  glircserver-final-message glirctransaction succeeded? glirc'underlying cryptographic hash function glircsecret glircsalt glirc iterations glirc salted, iterated hash of secret glirc digest glirc password glirc salt glirc iterations glirc auth message glircclient-proof, server-signature    Marshaling support for C API(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred%&21glircPointer to UTF-8 encoded string and as string length. Strings are null-terminated. The null-terminator is not counted in the length.glircUsed to pass arguments from /extension EXT_NAME# client command into an extension.glircChat message data containing the source network, window target, and message body.glirc struct glirc_message#glircarray$glirc array length%glircarray&glircarray'glirc array length(glircInformation describing an extension's entry-points and metadata.*glircOptional startup callback+glircOptional shutdown callback,glirc"Optional message received callback-glircOptional message send callback.glirc Optional client command callback/glircNull-terminated name0glircextension version1glircextension version2glircType of dynamic function pointer wrappers. These convert C function-pointers into Haskell functions.3glirc 0typedef void thread_finish(void *glirc, void *S) glircStartup function for threads4glirc%Callback function when timer triggers5glircInteger type of timer IDs6glirc typedef void process_chat(void *glirc, void *S, const struct glirc_chat *)7glirc typedef void process_command(void *glirc, void *S, const struct glirc_command *)8glirc typedef enum process_result process_message(void *glirc, void *S, const struct glirc_message *)9glirc 'typedef void stop(void *glirc, void *S):glirc 2typedef void *start(void *glirc, const char *path);glircResult used to determine what to do after processing a message with the 8 callback.| enum process_result=glircTag for describing the kind of message to display in the client as used in  glirc_print. See G and H. enum message_code;?glircDynamic import for 3.@glirc Dynamic import for thread startsAglirc!Dynamic import for timer callbackBglircDynamic import for 6.CglircDynamic import for 7.DglircDynamic import for 8.EglircDynamic import for 9.FglircDynamic import for :.GglircNormal client message. Unread counter increments, but no client bell or error status update.HglircImportant client message. Unread counter increments, bell rings, and error status updates.Iglirc6Allow the message to proceed through the client logic.Jglirc)Drop the message from further processing.KglircLike   except it doesn't write to NULLLglirc7Marshal a text as a malloced null-terminated CStringLenMglirc8Marshal a text as a temporary null-terminated CStringLenNglirc struct glirc_stringOglirc struct glirc_commandPglirc struct glirc_messageRglirc struct glirc_extension3glircthread result glircinitial argument glircresult for ThreadFinish 4glirctimer state glirctimer ID 6glircextension state glircchat info 7glircextension state glirccommand 8glircextention state glircmessage to send 9glircextension state :glircapi token glircpath to extension glircarray of arguments glircnumber of arguments glircinitialized extension state < !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM<()*+,-./01:9876453 !"#$%&'2FEDCBA@?=>GH; looking for various flags and the command and its arguments.|glircExecute the requested command synchronously and return the output. glircPower words is similar to  ? except that when it encounters a word formatted as a Haskell   literal it parses it as such. Only space is used as a delimiter.{glircexec arguments glircerror or parsed command |glircexec configuration glircerror lines or output lines fghijklmnopqyz{|jklmnopqfghizy{|9Parser and evaluator for string interpolation in commands(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred")*=glirc%Parsed chunk of an expandable commandglirc regular textglircinline variable $x or ${x y}glircinline variable $1 or ${1}glirc bracketed variable with default ${x|lit}glirc2Specification used when unspecified, no arguments.glircParse a  / searching for the expansions as specified in . $$ is used to escape a single $.glircAttempt to expand all of the elements in the given list using the two expansion functions. If the expansion of any chunk fails the whole expansion fails.glircvariable resolution glircargument index resolution glircchunks glircconcatenated, expanded chunks }~}~ Trie for recognizing commands(c) Dan Doel, 2016ISCemertens@gmail.com Safe-Inferred"89:C%glirc%Possible results of recognizing text.glirc.text matched exactly, yielding the given valueglirc8text would be recognized if joined to the given suffixesglirc%text could not possibly be recognizedglirc A map from   values to a values that is capable of yielding more detailed information when looking up keys that are not actually in the map. glircMatch common prefixes of two strings in a more convenient form than available from XYglirc*Attempt to recognize a string, yielding a  result. glircCreate a singleton  associating the given   and value. glirc Union two  Recognizers. The stored values in the result are biased to the left if there is key overlap. glircUnion an arbitrary number of  Recognizers as with  .glirc Create a  from an association list. If a key appears twice, the earliest associated value will be used.glircAdd a key-value pair to a >. This will override the value already present if one exists.glirc1Compute all strings that will be recognized by a . glircAuxiliary function for .   *Client configuration format and operations(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"-3EglircParse a text attribute. This value should be a sections with the fg and/or bg attributes. Otherwise it should be a color entry that will be used for the foreground color. An empty sections value will result in  glirc#Parse a color. Support formats are:Number between 0-255 Name of colorRGB values of color as a list glirc4Match integers between 0 and 255 as Terminal colors. glircConfiguration section that matches 3 integers in the range 0-255 representing red, green, and blue values. Configuration schema for macros(c) Eric Mertens, 2017ISCemertens@gmail.com Safe-Inferred"3F{ ,Options for running commands to notify users(c) TheDaemoness, 2023ISCemertens@gmail.com Safe-Inferred"G STS policy configuration(c) Eric Mertens, 2019ISCemertens@gmail.com Safe-Inferred"3G$Compile-time documentation injection(c) TheDaemoness 2023ISCemertens@gmail.com Safe-Inferred"H8Command documentation(c) TheDaemoness 2023ISCemertens@gmail.com Safe-Inferred"H  Programmable keyboard actions(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"LglircLookup table for keyboard events to actions. Use with keyToAction.glirc/Actions that can be invoked using the keyboard. glirc/Names and default key bindings for each action.Note that Jump, Insert and Ignored are excluded. These will be computed on demand by keyToAction.glirc%Render action as human-readable text.glircLookup the action to perform in response to a particular key event.glirc&Bind a keypress event to a new action.glirc(Unbind the action associated with a key.glircDefault key bindingsglircactions glircjump modifier glircwindow names glircactual modifier glirckey glircaction glirc modifiers glirc key glirc action glirc actions glirc modifiers glirc key glirc actions 66-Human-readable versions of connection failure(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-InferredNglircCompute the message message text to be used for a connection errorglircnetwork error glircclient lines glircnetwork error glircclient lines 'Hooks into the operation of the client.(c) Dan Doel, 2016ISCdan.doel@gmail.com Safe-InferredRYglircIdentifying name for the hookglirc0Whether the remapping should affect client stateglirc"(Partial) message remapping actionglircThe possible results of a 2 action. A hook can decline to handle a message (), filter out a message (9), or change a message into an arbitrary other message ().glirccontinue processingglirc stop processing and drop messageglirc&stop processing and return new messageglirc$Apply the given message hooks to an  . The hooks are tried in order until one handles the message. A  9 result means the message was filtered out by a hook. A   result contains the actual   to be processed.  3Hook for intergrating Matterbridge bridged messages(c) Felix Friedlander 2021ISCfelix@ffetc.net Safe-Inferred"S%Hook to remap znc buffextras messages(c) Dan Doel, 2016ISCdan.doel@gmail.com Safe-Inferred"TmglircMap ZNC's buffextras messages to native client messages. Set debugging to pass through buffextras messages that the hook doesn't understand.glirc arguments glircenable debugging Packed vty Image type(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"U~glircPacked, strict version of  & used for long-term storage of images.glirc"Width in terms of terminal columnsglirc image width  Chat message view(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-InferredYglircTrailing space with default attributes deals with bug in VTY where the formatting will continue past the end of chat messages. This adds an extra space if a line doesn't end on the terminal edge.glircThis version of line wrap wraps without regard for word boundaries. glircList of image widths suitable for breaking the image on that correspond to word breaks. glirc%Drop the leading spaces from an imageglircterminal width glircunwrapped image glircwrapped image glircterminal width glircunwrapped image glircwrapped image glircterminal width glircprefix image glircunwrapped image glircwrapped image glircfirst line length glircimage glircsplits glircfirst line length glircimage glircsplits 'Palette of colors used to render the UI(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"#_N glircchannel mode attributesglircuser mode attributesglircsnotice mask attributesglirc.Color palette used for rendering the client UIglirchighlighting identifiersglirc"overrides for specific identifiersglircown nickname(s)glircown nickname(s) in mentionsglircmessage timestampsglirccoalesced metadataglircsigils (e.g. @+)glircinformation labelsglirc ping latencyglirc window nameglircerror messagesglirctextbox markersglircwindow name with activityglircwindow name with mentionglirc known commandglirc%known command with complete argumentsglircprefix of known commandglircunknown commandglirccommand argument placeholderglircDivider between split windowsglirc$Divider between new and old messagesglirccolor of nickname when awayglirc&rendering of monospace formatting textglirc mode linesglircDefault UI colors glircDefault nick highlighting colors that look nice in my dark solarized color scheme.glirc(Combine one NetworkPalette with another.glircList of palette entry names and lenses for accessing that component of the palette.*Parser for mIRC's text formatting encoding(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-InferredbglircParse mIRC encoded format characters and hide the control characters.glircParse mIRC encoded format characters and render the control characters explicitly. This view is useful when inputting control characters to make it clear where they are in the text.glirc"Safely render a control character.glirc Render a   with default attributes and replacing all of the control characters with reverse-video letters corresponding to caret notation.6Interpretation of argument specification as a renderer(c) Eric Mertens, 2017ISCemertens@gmail.com Safe-Inferred")*d!glircpalette glircenvironment glircrender placeholders glircspecification glircuser input  Safe-Inferred"hNglirc4Compile a list of masks down to a single, reuseable % value suitable for being used with .7Masks can match zero-to-many arbitrary characters with *.-Masks can match one arbitrary character with ?.Literal * ? and |$ can be matched with a preceding @@.Missing host or username components of a mask will automatically be treated as wildcards.glircDetermine if a given  matches a given  glircParse a mask into the nick, user, and hostname components while replacing omitted components with "*". glircTranslate from the languge of masks to the language of regular expressions.Masks support the * (many) and ?! (one) wildcards. Wildcards and *@ can be escaped by preceding them with a @. All other uses of @@ are treated as matching the literal backslash. glircreturns True iff the charactr is a regular expression meta character: ^$\.|*?+()[]{}glircmasks Messages to be added to buffers(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"iglircChghost commandglircAccount commandglirc User quitglircMass event like a netsplitglirc7Compute a searchable text representation of the message!!IRC channel session state(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferredlglirc5Dynamic information about the state of an IRC channelglirc topic textglircauthor and timestamp for topicglirc channel URLglircuser list and sigilsglircchannel settings and parametersglircmode, mask, setter, set timeglirccreation time of channelglircdelayed op messagesglircConstruct an empty glircAdd a user to the user listglirc Remove a user from the user listglircRename a user in the user listglircSet the channel topic##9Types for representing the current window being displayed(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferredr glircCurrently focused windowglirc No networkglircNetworkglircNetwork Channel/NickglircFilter argument for glirc no filterglirconly network windowsglirconly channel windowsglirconly user windowsglirc Subfocus viewglirc Show messagesglircShow channel metadataglircShow channel user listglirc%Show channel mask list for given modeglircShow client windowsglircShow current paletteglircShow all mentionsglircShow all digraphsglircShow key bindingsglirc&Show help window with optional commandglircShow GHC RTS statisticsglircShow ignored masksglircShow rendered certificateglircShow channel listglircShow last reply to a WHO queryglirc4Return the network associated with the current focusglircUnfocused first, followed by focuses sorted by network. Within the same network the network focus comes first and then the channels are ordered by channel identifierglircnetwork 2Types and operations for managing message buffers.(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferredyglirc;Flag for the important of a message being added to a windowglircDon't update unread countglircIncrement unread countglirc-Increment unread count and set important flagglircA  tracks all of the messages and metadata for a particular message buffer.glircShortcut name (or NUL)glirc!Messages to display, newest firstglirc1Location of line drawn to indicate newer messagesglirc'Messages added since buffer was visibleglircMessages in bufferglirc&Indicates an important event is unreadglircHide metadata messagesglircRemove from jump rotationglircFilters for activityglircA single message to be displayed in a window. The normal message line consists of the image prefix and the image. This allows line wrapping to be applied separately to the image and prefix so that wrapped messages can fall to the right side of the prefix.glirc Summary valueglircNormal rendered image prefixglircNormal rendered imageglircDetailed rendered imageglircImportance of messageglircA window with no messagesglircAdds a given line to a window as the newest message. Window's unread count will be updated according to the given importance. Additionally returns True if this window becomes important as a result of this line.glirc?Update the window clearing the unread count and important flag.glirc8Update the window when it first becomes active. If only boring messages have been added since last time the marker will be hidden.glircUpdate the window when it becomes inactive. This resets the activity marker to the bottom of the window.>>(Type for tracking user, host and account(c) Eric Mertens, 2019ISCemertens@gmail.com Safe-Inferred{glircPair of username and hostname. Empty strings represent missing information.glircusernameglirchostnameglircservices account 3View current palette and to see all terminal colors(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"}HglircGenerate lines used for /palette. These lines show all the colors used in the current palette as well as the colors available for use in palettes.Z Safe-Inferred glircLike   except you can request the elements before and after the matched elements.1filterContext 2 1 (\x -> 4<=x&&x<=6) [0..10::Int] [2,3,4,5,6,7]#filterContext 2 1 even [0..10::Int][0,1,2,3,4,5,6,7,8,9,10]%filterContext 2 1 (==10) [0..10::Int][8,9,10]$filterContext 2 1 (==0) [0..10::Int][0,1]$filterContext 0 0 (==0) [0..10::Int][0]$filterContext 2 1 (==5) [0..10::Int] [3,4,5,6]$filterContext 1 2 (==5) [0..10::Int] [4,5,6,7] glirccontext before glirccontext after glircpredicate glircinputs glircmatches with context  [/Template Haskell quasi-quoter for digraph table(c) Eric Mertens, 2017ISCemertens@gmail.com Safe-Inferred \Character mnemonics(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred" glirc+States for the digraph lookup state machine glirc!ready to match two-character name glirc)first character matched, ready for second glirc(both characters matched, return the next glircskip the next two characters glircskip the next character glirc$Two-character key for digraph lookup glircFind the entry in the digraph table give a two-character key and return the matched value. !$Multiline text container with cursor(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferredglirc0Zipper-ish view of the multi-line content of an EditBox . Lines  the   are stored in reverse order.glircDefault  valueglirc Single line .glirc!Shifts the first line off of the =, yielding the text of the line and the rest of the content.glircWhen at beginning of line, jump to beginning of previous line. Otherwise jump to beginning of current line.glircWhen at end of line, jump to end of next line. Otherwise jump to end of current line.glirc0Move the cursor left, across lines if necessary.glirc1Move the cursor right, across lines if necessary.glirc3Move the cursor left to the previous word boundary.glirc0Move the cursor right to the next word boundary.glirc'Delete the character before the cursor.glirc,Delete the character after/under the cursor.glirc/Insert character at cursor, cursor is advanced.glircSmarter version of  that removes spurious newlines.glircInsert string at cursor, cursor is advanced to the end of the inserted string. glirc)Advance to the beginning of the next line glirc'Retreat to the end of the previous lineglircUse the two characters preceeding the cursor as a digraph and replace them with the corresponding character."Console-mode text box(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred glircDefault  value glircSets the given string to the yank buffer unless the string is empty.glircIndicate that the contents of the text box were successfully used by the program. This clears the first line of the contents and updates the history.glircUpdate the editbox to reflect the earlier element in the history.glirc?Update the editbox to reflect the later element in the history.glirc.Jump the cursor to the beginning of the input.glirc(Jump the cursor to the end of the input.glircDelete all text from the cursor to the end and store it in the yank buffer.glircDelete all text from the cursor to the beginning and store it in the yank buffer.glirc%Insert the yank buffer at the cursor.glircKill the content from the cursor back to the previous word boundary. When yank( is set the yank buffer will be updated.glircKill the content from the curser forward to the next word boundary. When yank' is set the yank buffer will be updatedglirc8Insert a character at the cursor and advance the cursor.glircyank glircyank ))#Tab-completion logic(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-InferredN glirc'Class for types that are isomorphic to  > and which can support a total order and a prefix predicate. ]^ (  x) == x   (]^ x) == x ]_ x y ==> x   y glircCheck if the first argument is a lexicographic prefix of the second.glirc Convert to a  .glirc!Word completion prefix and suffixglirc3Word completion without adding any prefix or suffixglirc>Word completion adding a ": " suffix at the beginning of linesglirc+Word completion using a "@" prefix intendedglirc&Perform word completion on a text box.The leading update operation is applied to the result of tab-completion when tab completing from the beginning of the text box. This is useful when auto-completing a nick and including a trailing colon.The reversed parameter indicates that tab-completion should return the previous entry. When starting a fresh tab completion the priority completions will be considered in order before resorting to the set of possible completions. glircFind the word preceeding the cursor skipping over any characters that can be found in the prefix and suffix for the current completion mode. glircFind the next entry in a list of possible choices using an alphabetical ordering.glircvalid character predicate glircleading update operation glirc reversed glircpriority completions glircpossible completions glircreversed glircsearch prefix glircprevious result glircposibilities $)Settings for an individual IRC connection(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred "%&-3.:glirc1Fingerprint used to validate server certificates.glircSHA-1 fingerprintglircSHA-2 256-bit fingerprintglircSHA-2 512-bit fingerprintglirc'Security setting for network connectionglircTLS connectionglirc+TLS connection without certificate checkingglircPlain connectionglirc%Hook name and configuration argumentsglircRegular expression matched with original source to help with debugging.glirc'SASL mechanisms and configuration data.glirc-SASL PLAIN RFC4616 - authzid authcid passwordglirc SASL NIST -  $https://github.com/kaniini/ecdsatool - authzid keypathglircSASL EXTERNAL RFC4422 - authzidglirc5SASL SCRAM-SHA-256 RFC7677 - authzid authcid passwordglirc8SASL ECDH-X25519-CHALLENGE - authzid authcid private-keyglirc Constant textglircCommand to generate textglircStatic server-level settingsglircconnection nicknamesglircconnection usernameglircconnection realname / GECOSglircserver passwordglircSASL mechanismglircserver hostnameglirc server portglircuse TLS to connectglircverify TLS hostnameglircpath to client TLS certificateglircpath to client TLS keyglircclient key PEM passwordglirc0additional CA certificates for validating serverglircOpenSSL cipher suiteglircOpenSSL TLS 1.3 cipher suiteglirc*optional acceptable public key fingerprintglirc+optional acceptable certificate fingerprintglircHonor STS policies when trueglirc.commands to execute upon successful connectionglirchostname of SOCKS proxyglircport of SOCKS proxyglirc"Channels with chanserv permissionsglircFlood limiter penalty (seconds)glirc!Flood limited threshold (seconds)glircInitial message hooksglirc+The name referencing the server in commandsglirc1The number of reconnect attempts to make on errorglirc Text -> ... -> IrcMsg` to be used to exhaustively consume the matched elements of a regular expression.glircHook for mapping messages in #dronebl to appear like native messages. glircRemap messages from #dronebl that match one of the rewrite rules. glircGenerate a replacement message for a chat message when the message matches one of the replacement rules. glircMatch the message against the regular expression and use the given consume to consume all of the captured groups. glirc;Compile a regular expression for using in message matching. glircConstruct dummy user info when we don't know the user or host part. glircchannel glircmessage glirccapture consumer glircregular expression glircmessage glircregular expression glircerror or compiled expression glirc channel glirc nickname glirc message glirc channel glirc nickname glirc message glirc channel glirc server glirc nickname glirc username glirc hostname glircchannel glircserver glircnickname glircreason wrapper glircreason glirc server glirc nickname glirc quit message glirc server glirc old nick glirc new nick glirc channel glirc server glirc kickee nick glirc kicker nick glirc reason glirc channel glirc server glirc nickname glirc modes glirc nickname 1Available hooks(c) Dan Doel, 2016ISCdan.doel@gmail.com Safe-Inferred"qglirc All the available message hooks.cStrict unit type(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferredu glircUnit data type with a strict   and   instances. glirc  is strict glirc  is strict,   is O(1) dLens utility functions(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred glircModify the target of a Setter with a function. The result is strict in the results of applying the function. Strict version of over glirc9Set a value strictly in the set value. Strict version of  . glircLens to the   component of a  glircLens" to the 'TimeOfDay component of a  . glircLens" to the 'TimeOfDay component of a  . 2IRC network session state(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred"-C?glircTimer-based eventsglirc'terminate the connection due to timeoutglirctransmit a ping to the serverglirc#erase latency (when it is outdated)glircno message restrictionglircSTARTTLS hasn't finishedglirc$No messages allowed until TLS starts glirc4Cached channel information from /list and elsewhere. glircThe last ELIST parameter used. Nothing is also used to trigger cache purges glirc9Whether to purge the hash map on receiving a new RPL_LIST glircThe list of channel infos.glircStatus of the ping timerglirc)ping sent at given time, waiting for pongglircnot waiting for a pongglirc.number of attempts, last known connection timeglirc'State of the authentication transactionglircno active transactionglircPLAIN mode initiatedglircECDSA-NIST mode initiatedglirc*ECDSA-NIST user sent waiting for challengeglircEXTERNAL mode initiatedglirc%State tracked for each IRC connectionglircjoined channelsglirc'cached ELIST parameter and /list outputglirc$cached reply from the last WHO queryglircnetwork socketglircchannel mode meaningsglircuser mode meaningsglircchannel identifier prefixesglirc!state for multi-message sequencesglircmodes for the connected userglirc*server notice modes for the connected userglirc)modes that prefix statusmsg channel namesglirc!settings used for this connectionglirc/usermask used by the server for this connectionglirc!user and hostname for other nicksglirc%maximum mode changes per MODE commandglircname of network connectionglirc2names of message hooks to apply to this connectionglircTracks when you are marked awayglirctime for next ping eventglirc%latency calculated from previous pongglircstate of ping timerglirctime of last message receivedglirc Transmit a  ; on the connection associated with the given network. For PRIVMSG and NOTICE overlong commands are detected and transmitted as multiple messages.glircConstruct a new network state using the given settings and default values as specified by the IRC specification. glircUsed for updates to a  that require no reply. glirc Restrict  to only users are in a channel that the client is connected to. glirc001   is the first message received when transitioning from the initial handshake to a connected state. At this point we know what nickname the server is using for our connection, and we can start scheduling PINGs. glircHandle   errors when connecting. glirc8Pick a random nickname now that we've run out of choices glirc'Add an entry to a mode list transaction glircSave a completed ban, quiet, invex, or exempt list into the channel state. glircThese replies are interpreted by the client and should only be shown in the detailed view.glircReturn   for messages that should be hidden outside of full detail view. These messages are interpreted by the client so the user shouldn't need to see them directly to get the relevant information.glirc>Predicate to test if the connection has op in a given channel. glirc7Process a CHGHOST command, updating a users information glircProcess a list of WHO repliesglirc:Compute the earliest timed action for a connection, if any glircCompute the timed action for forgetting the ping latency. The client will wait for a multiple of the current latency for the next pong response in order to reduce jitter in the rendered latency when everything is fine. glirc9Compute the next action needed for the client ping logic.glircApply the given  to a connection state.glircUsed to send commands that require ops to perform. If this channel is one that the user has chanserv access and ops are needed then ops are requested and the commands are queued, otherwise send them directly. glircnetwork name glircserver settings glircactive network connection glircinitial ping status glircinitial random seed glircnew network state glircmessage received glircmy nickname glirc bad nickname glircmask glircset by glirc set time glircmode glircchannel glirctime of message glircsender glircchannel glircmode flags glircmode parameters glircnetwork state glircserver caps glirccaps to enable glirc  "key=value" glirc nickname glirc new username glirc new hostname glircchannel glirccommands glircnetwork state glircchannel glircnetwork state glircchanserv available glircchannel glirctopic glircnetwork state 3/Primary client state type and update operations(c) Eric Mertens, 2016ISCemertens@gmail.com Safe-Inferred" glirc.ID of active extension and stored client stateglircState of the extension API including loaded extensions and the mechanism used to support reentry into the Haskell runtime from the C API.When executing inside an extension the mvar will contain the client state and the ID of the running extension. glircactive extensions glirc  used to with  clientPark glirc  used with  clientParkglirc(All state information for the IRC clientglircclient message buffersglircpreviously focused bufferglirc"focus prior to jumping to activityglirccurrently focused bufferglirccurrent view modeglircextra messages windows to viewglircstate of active connectionsglircincoming network event queueglirc Finished threads ready to reportglircclient configurationglircclient configuration file pathglircprimary text boxglirc"size to crop from left of text boxglirccurrent terminal widthglirccurrent terminal heightglircbuffer scroll linesglircuse detailed rendering modeglircvisible activity barglircvisible ping timeglircoptional persistent filter glirclayout mode for split screen glirceditor rendering mode glirceditor locked and won't send glircnotifications to send next draw glircterminal bell on next redraw glirc0whether the UI is focused; used by notifications glirc ignored masks glirc,precomputed ignore regular expression (lazy) glircstate of loaded extensions glirclog lines ready to write glirctransient error box text glircmost recent GHC RTS stats glircSTS policy entries glirc highlights glircSelection function used in  glirc  for finding the  associated with a given network if that connection is currently active. glirc-The full top-most line that would be executed glirc*The line under the cursor in the edit box. glircConstruct an initial  using default values. glircForcefully terminate the connection currently associated with a given network name. glirc;Add a message to the window associated with a given channel glirc5Extract the status mode sigils from a message target. glircCompute the importance of a message to be used when computing change notifications in the client. glircPredicate for messages that should be ignored based on the configurable ignore list glircPredicate for nicknames to determine if messages should be ignored. glircRecord a message in the windows corresponding to the given target glirc2Compute the sigils of the user who sent a message. glirc&Compute sigils for a user on a channel glircDetect error messages and add the message text to the transient error display. The transient message will not be generated if the user is focused on the window where the message is going to be rendered, anyway. glirc$Record a message on a network window glirc9Record a message on every window where a user is present. glircRecord window line at the given focus creating the window if necessary glirc & but with mostly defaulted parameters. glirc2Function applied to the client state every redraw. glircMark the messages on the current window (and any splits) as seen. glircAdd the textbox input to the edit history and clear the textbox. glircReturns the current network's channels and current channel's users. glirc Returns the % associated with the current network. glirc9Returns the current filtering predicate if one is active. glirc;Compute the command and arguments currently in the textbox. glircRemove a network connection and unlink it from the network map. This operation assumes that the network connection exists and should only be applied once per connection. glirc