anchor.diff:        FActiveChannel: string;
         FIdIRC: TIdIRC;
         FOnChannelJoined: TOnChannelJoined;
  +      FOnNickListReceived: TOnNickListReceived;
  +      FOnUserJoined: TOnUserEvent;
  +      FOnUserLeft: TOnUserEvent;
         FAutoJoinChannels: TStrings;
   			FReady: Boolean;
         procedure AddChannelMessage(const Channel, Message: string);
  
positive.code:     { TIRC }
  
      TOnChannelJoined = function(const Name: string): TStrings of object;
      TIRC = class
      private
        FLog: TStrings;
  
negative.code:       procedure OnPrivateMessage(ASender: TIdContext; const ANickname, AHost, ATarget, AMessage: String);
        procedure OnNickNameListReceive(ASender: TIdContext; const AChannel: String; ANicknameList: TStrings);
        procedure OnJoin(ASender: TIdContext; const ANickname, AHost, AChannel: String);
        procedure OnLeave(ASender: TIdContext; const ANickname, AHost, AChannel, APartMessage: String);
        procedure OnWelcome(ASender: TIdContext; const AMsg: String);
      public
        property Log: TStrings read FLog write FLog;
        property ActiveChannel: string read FActiveChannel write FActiveChannel;
        property OnChannelJoined: TOnChannelJoined read FOnChannelJoined write FOnChannelJoined;
        property OnNickListReceived: TOnNickListReceived read FOnNickListReceived write FOnNickListReceived;
        property OnUserJoined: TOnUserEvent read FOnUserJoined write FOnUserJoined;
        property OnUserLeft: TOnUserEvent read FOnUserLeft write FOnUserLeft;
        property Ready: Boolean read FReady;
        procedure AutoJoinChannels;
        procedure Connect;
  