cmail(6)


NAME

   xboard - X graphical user interface for chess

SYNOPSIS

   xboard [options]
   xboard -ics -icshost hostname [options]
   xboard -ncp [options]
   |pxboard
   cmail [options]

DESCRIPTION

   XBoard  is a graphical chessboard that can serve as a user interface to
   chess  engines  (such  as  GNU  Chess),  the  Internet  Chess  Servers,
   electronic  mail  correspondence chess, or your own collection of saved
   games.

   This manual documents version 4.9.1 of XBoard.

MAJOR MODES

   XBoard always runs in one of four major modes.  You  select  the  major
   mode from the command line when you start up XBoard.

   xboard [options]
          As  an interface to GNU Chess or another chess engine running on
          your machine, XBoard lets you play a game against  the  machine,
          set  up  arbitrary  positions,  force  variations,  watch a game
          between two chess engines,  interactively  analyze  your  stored
          games or set up and analyze arbitrary positions.  To run engines
          that use the UCI standard XBoard will  draw  upon  the  Polyglot
          adapter  fully  transparently,  but  you  will  need to have the
          polyglot package installed for this to work.

   xboard -ics -icshost hostname [options]
          As Internet Chess Server (ICS) interface, XBoard lets  you  play
          against  other  ICS  users,  observe  games they are playing, or
          review games that have  recently  finished.   Most  of  the  ICS
          "wild" chess variants are supported, including bughouse.

   xboard -ncp [options]
          XBoard  can  also  be used simply as an electronic chessboard to
          play through games. It will read and write game files and  allow
          you  to  play  through  variations  manually.  You can use it to
          browse games off the net or review games you have saved.   These
          features are also available in the other modes.

   |pxboard
          If  you  want  to pipe games into XBoard, use the supplied shell
          script `pxboard'.  For example, from the news reader `xrn', find
          a  message  with one or more games in it, click the Save button,
          and type `|pxboard' as the file name.

   cmail [options]
          As an interface to electronic mail correspondence chess,  XBoard
          works with the cmail program. See CMail below for instructions.

BASIC OPERATION

   To move a piece, you can drag it with the left mouse button, or you can
   click the left mouse button once on the piece, then once  more  on  the
   destination  square.  To under-promote a Pawn you can drag it backwards
   until it morphs into the piece you want to promote to, after which  you
   drag that forward to the promotion square.  Or after selecting the pawn
   with a first click you can then click the promotion square and move the
   mouse  while  keeping  the  button  down  until the piece that you want
   appears in the promotion square.  To castle you move the  King  to  its
   destination  or,  in  Chess960,  on  top of the Rook you want to castle
   with.  In crazyhouse, bughouse or shogi you can drag and drop pieces to
   the board from the holdings squares displayed next to the board.

   Old  behavior, where right-clicking a square brings up a menu where you
   can select what piece to drop on it can still be selected  through  the
   `Drop  Menu'  option.   Only  in  Edit  Position  mode right and middle
   clicking a square is still used to put a piece on it, and the piece  to
   drop  is selected by sweeping the mouse vertically with the button held
   down.

   The default function of the right mouse button in  other  modes  is  to
   display the position the chess program thinks it will end up in.  While
   moving the mouse vertically with this button pressed XBoard  will  step
   through  the  principal  variation  to  show  how this position will be
   reached.  Lines of play displayed in the engine-output window,  or  PGN
   variations  in  the  comment  window can similarly be played out on the
   board, by right-clicking on them.  Only in Analysis mode, when you walk
   along a PV, releasing the mouse button might forward the game upto that
   point, like you entered all previous PV moves.  As the display  of  the
   PV  in  that case starts after the first move a simple right-click will
   play the move the engine indicates.

   In Analysis mode you can also make a move by grabbing the piece with  a
   double-click  of the left mouse button (or while keeping the `Ctrl' key
   pressed).  In this case the move you enter will not be played, but will
   be excluded from the analysis of the current position.  (Or included if
   it was already excluded; it is a toggle.)  This only works for  engines
   that support this feature.

   When  connected  to  an  ICS,  it  is  possible  to call up a graphical
   representation of players seeking a game in stead of the  chess  board,
   when  the  latter  is  not  in  use  (i.e.  when you are not playing or
   observing).  Left-clicking the display area will  switch  between  this
   'seek  graph'  and  the chess board.  Hovering the mouse pointer over a
   dot will show the details of the seek ad in the message field above the
   board.   Left-clicking  the  dot  will  challenge  that player.  Right-
   clicking a dot will 'push it to the back', to reveal any dots that were
   hidden behind it.  Right-clicking off dots will refresh the graph.

   Most  other  XBoard  commands are available from the menu bar. The most
   frequently used commands also have shortcut keys or on-screen  buttons.
   These  shortcut keystrokes are mostly non-printable characters.  Typing
   a letter or digit while the board window has  focus  will  bring  up  a
   type-in  box  with the typed letter already in it.  You can use that to
   type a move in situations where it is your turn to enter a move, type a
   move number to call up the position after that move in the display, or,
   in Edit Position mode, type a FEN.  Some  rarely  used  parameters  can
   only be set through options on the command line used to invoke XBoard.

   XBoard  uses  a  settings file, in which it can remember any changes to
   the settings that are made through menus or  command-line  options,  so
   they will still apply when you restart XBoard for another session.  The
   settings can be saved into this file automatically when  XBoard  exits,
   or  on explicit request of the user.  Note that the board window can be
   sized by the user, but that this will not affect the size of the clocks
   above   it,   and  won't  be  remembered  in  the  settings  file.   To
   persistently change the size of the clocks, use the `size' command-line
   option when starting XBoard.  The default name for the settings file is
   /etc/xboard/xboard.conf, but in a standard install this  file  is  only
   used  as a master settings file that determines the system-wide default
   settings, and defers reading and writing of user settings  to  a  user-
   specific file like ~/.xboardrc in the user's home directory.

   When  XBoard is iconized, its graphical icon is a white knight if it is
   White's turn to move, a black knight if it is Black's turn.

MENUS, BUTTONS, AND KEYS

   File Menu
   New Game
          Resets XBoard and the chess engine to the  beginning  of  a  new
          chess  game.  The  `Ctrl-N'  key  is  a  keyboard equivalent. In
          Internet Chess Server mode, clears the current state of  XBoard,
          then  resynchronizes  with the ICS by sending a refresh command.
          If you want to stop playing,  observing,  or  examining  an  ICS
          game,  use an appropriate command from the Action menu, not `New
          Game'.  See Action Menu.

   New Shuffle Game
          Similar to `New Game', but allows you to  specify  a  particular
          initial  position (according to a standardized numbering system)
          in chess variants which use randomized opening  positions  (e.g.
          Chess960).

   shuffle
          Ticking  `shuffle'  will  cause the current variant to be played
          with shuffled initial position.   Shuffling  will  preserve  the
          possibility to castle in the way allowed by the variant.

   Fischer castling
          Ticking  `Fischer  castling'  will allow castling with Kings and
          Rooks that did not start in their normal place, as in Chess960.

   Start-position number
   randomize
   pick fixed
          The `Start-position number' selects a particular start  position
          from  all  allowed shufflings, which will then be used for every
          new game.  Setting this to -1 (which can be done by pressing the
          `randomize'  button)  will  cause  a fresh random position to be
          picked for every new game.  Pressing  the  `pick  fixed'  button
          causes  `Start-position  number' to be set to a random value, to
          be used for all subsequent games.

   New Variant
          Allows you to select a new chess variant in non-ICS  mode.   (In
          ICS play, the ICS is responsible for deciding which variant will
          be  played,  and  XBoard  adapts  automatically.)   The  shifted
          `Alt+V'  key  is  a  keyboard  equivalent.  If  you play with an
          engine, the engine must be able to play the selected variant, or
          the  corresponding choice will be disabled.  XBoard supports all
          major variants, such as xiangqi, shogi, chess, chess960, makruk,
          Capablanca Chess, shatranj, crazyhouse, bughouse.

          You  can  overrule  the  default  board  format  of the selected
          variant, (e.g. to play suicide chess on a 6 x 6 board), in  this
          dialog,  but  normally  you would not do that, and leave them at
          '-1', which means 'default' for the chosen variant.

   Load Game
          Plays a game from a record file. The `Ctrl-O' key is a  keyboard
          equivalent.   A  pop-up dialog prompts you for the file name. If
          the file contains more than one game,  a  second  pop-up  dialog
          displays  a list of games (with information drawn from their PGN
          tags,  if  any),  and  you  can  select  the   one   you   want.
          Alternatively,  you  can load the Nth game in the file directly,
          by typing the number `N' after the file  name,  separated  by  a
          space.

          The  game-file  parser will accept PGN (portable game notation),
          or in fact almost any file  that  contains  moves  in  algebraic
          notation.   Notation  of  the form `P@f7' is accepted for piece-
          drops in bughouse games; this is a nonstandard extension to PGN.
          If  the  file includes a PGN position (FEN tag), or an old-style
          XBoard position diagram bracketed by `[--' and `--]' before  the
          first move, the game starts from that position. Text enclosed in
          parentheses, square brackets, or curly braces is assumed  to  be
          commentary  and  is displayed in a pop-up window. Any other text
          in the file is ignored. PGN variations (enclosed in parentheses)
          also  are treated as comments; however, if you rights-click them
          in the comment window, XBoard will shelve the current line,  and
          load  the  the  selected  variation, so you can step through it.
          You can later revert to the  previous  line  with  the  `Revert'
          command.   This  way  you  can walk quite complex varation trees
          with  XBoard.   The  nonstandard  PGN  tag  [Variant  "varname"]
          functions  similarly  to  the  -variant command-line option (see
          below), allowing games in certain chess variants to  be  loaded.
          Note  that  it  must  appear  before  any  FEN tag for XBoard to
          recognize variant FENs appropriately.  There is also a heuristic
          to  recognize  chess variants from the Event tag, by looking for
          the strings that the  Internet  Chess  Servers  put  there  when
          saving variant ("wild") games.

   Load Position
          Sets  up  a  position  from  a  position  file.  A pop-up dialog
          prompts you for the file name.  The shifted `Ctrl-O'  key  is  a
          keyboard  equivalent.  If  the file contains more than one saved
          position, and you want to load the Nth one, type  the  number  N
          after  the  file name, separated by a space. Position files must
          be in FEN (Forsythe-Edwards notation), or in the format that the
          Save Position command writes when oldSaveStyle is turned on.

   Load Next Position
          Loads  the next position from the last position file you loaded.
          The shifted `PgDn' key is a keyboard equivalent.

   Load Previous Position
          Loads the previous position from  the  last  position  file  you
          loaded.  The  shifted  `PgUp' key is a keyboard equivalent.  Not
          available if the last position was loaded from a pipe.

   Save Game
          Appends a record of the current game to a  file.   The  `Ctrl-S'
          key  is  a keyboard equivalent.  A pop-up dialog prompts you for
          the file name. If the game  did  not  begin  with  the  standard
          starting  position, the game file includes the starting position
          used. Games are  saved  in  the  PGN  (portable  game  notation)
          format,  unless  the  oldSaveStyle option is true, in which case
          they are saved in an older format that is  specific  to  XBoard.
          Both  formats  are  human-readable, and both can be read back by
          the `Load  Game'  command.   Notation  of  the  form  `P@f7'  is
          accepted   for   piece-drops   in  bughouse  games;  this  is  a
          nonstandard extension to PGN.

   Save Position
          Appends a diagram of  the  current  position  to  a  file.   The
          shifted  `Ctrl+S' key is a keyboard equivalent.  A pop-up dialog
          prompts you for the  file  name.  Positions  are  saved  in  FEN
          (Forsythe-Edwards  notation)  format  unless  the `oldSaveStyle'
          option is true, in which case they are saved in an older, human-
          readable  format that is specific to XBoard. Both formats can be
          read back by the `Load Position' command.

   Save Selected Games
          Will cause all games selected for display in  the  current  Game
          List to be appended to a file of the user's choice.

   Save Games as Book
          Creates  an  opening  book  from the currently loaded game file,
          incorporating only the games  currently  selected  in  the  Game
          List.   The  book  will  be  saved  on the file specified in the
          `Common Engine' options  dialog.   The  value  of  `Book  Depth'
          specified in that same dialog will be used to determine how many
          moves of each game will be added to the  internal  book  buffer.
          This  command  can  take a long time to process, and the size of
          the buffer is currently limited.  At the end the buffer will  be
          saved as a Polyglot book, but the buffer will not be cleared, so
          that you can continue adding games from other game files.

   Mail Move
   Reload CMail Message
          See CMail.

   Exit   Exits from XBoard. The `Ctrl-Q' key is a keyboard equivalent.

   Edit Menu
   Copy Game
          Copies a record of the current game to an internal clipboard  in
          PGN format and sets the X selection to the game text. The `Ctrl-
          C' key is a keyboard equivalent.  The  game  can  be  pasted  to
          another  application  (such  as a text editor or another copy of
          XBoard) using that  application's  paste  command.   In  many  X
          applications,  such  as xterm and emacs, the middle mouse button
          can be used for pasting; in XBoard, you must use the Paste  Game
          command.

   Copy Position
          Copies  the  current  position  to  an internal clipboard in FEN
          format and sets the  X  selection  to  the  position  text.  The
          shifted `Ctrl-C' key is a keyboard equivalent.  The position can
          be pasted to another application  (such  as  a  text  editor  or
          another  copy of XBoard) using that application's paste command.
          In many X applications, such as  xterm  and  emacs,  the  middle
          mouse  button  can  be used for pasting; in XBoard, you must use
          the Paste Position command.

   Copy Game List
          Copies the current game list to the clipboard, and  sets  the  X
          selection  to  this  text.   A format of comma-separated double-
          quoted strings is used, including all tags, so it can be  easily
          imported into spread-sheet programs.

   Paste Game
          Interprets  the  current  X selection as a game record and loads
          it,  as  with  Load  Game.  The  `Ctrl-V'  key  is  a   keyboard
          equivalent.

   Paste Position
          Interprets  the  current X selection as a FEN position and loads
          it, as with  Load  Position.  The  shifted  `Ctrl-V'  key  is  a
          keyboard equivalent.

   Edit Game
          Allows you to make moves for both Black and White, and to change
          moves after backing up with the `Backward' command.  The  clocks
          do not run. The `Ctrl-E' key is a keyboard equivalent.

          In  chess engine mode, the chess engine continues to check moves
          for legality but does not participate in the game. You can bring
          the  chess  engine  into  the game by selecting `Machine White',
          `Machine Black', or `Two Machines'.

          In ICS mode, the moves are not sent  to  the  ICS:  `Edit  Game'
          takes  XBoard  out  of  ICS  Client mode and lets you edit games
          locally.  If you want to edit games on ICS in a way  that  other
          ICS users can see, use the ICS `examine' command or start an ICS
          match against yourself.

   Edit Position
          Lets you set up an arbitrary board position.  The shifted `Ctrl-
          E'  key  is  a  keyboard equivalent.  Use mouse button 1 to drag
          pieces to new squares, or to delete a piece by dragging  it  off
          the board or dragging an empty square on top of it.  When you do
          this keeping the `Ctrl' key pressed, or start  dragging  with  a
          double-click,  you  will  move  a copy of the piece, leaving the
          piece itself where it was.  In variants where pieces can promote
          (such   as  Shogi),  left-clicking  an  already  selected  piece
          promotes or demotes it.  To drop a new piece on a square,  press
          mouse button 2 or 3 over the square.  This puts a white or black
          pawn in the square, respectively, but you can change that to any
          other  piece  type by dragging the mouse down before you release
          the button.  You will then  see  the  piece  on  the  originally
          clicked  square  cycle  through  the available pieces (including
          those of opposite color), and can release the  button  when  you
          see  the  piece  you  want.   (Note you can swap the function of
          button 2 and 3 by pressing the shift key, and that there  is  an
          option  `monoMouse' to combine al functions in one button, which
          then acts as button 3 over an empty square, and as button 1 over
          a  piece.)   To  alter the side to move, you can click the clock
          (the words White and Black above the board) of the side you want
          to give the move to.  To clear the board you can click the clock
          of the side that already has the move (which is  highlighted  in
          black).  If you repeat this the board will cycle from empty to a
          `pallette board' containing every  piece  once  to  the  initial
          position to the one before clearing.  The quickest way to set up
          a position is usually to start with the pallette board, and move
          the  pieces  to  were  you  want  them,  duplicating  them where
          necessary by using the `Ctrl' key, dragging those you don't want
          off  board,  and  use  static  button 2 or 3 clicks to place the
          Pawns.  The  old  behavior  with  a  piece  menu  can  still  be
          configured  with  the  aid  of the `pieceMenu' option.  Dragging
          empty  squares  off  board  can   create   boards   with   holes
          (inaccessible black squares) in them.  Selecting `Edit Position'
          causes XBoard to discard all remembered  moves  in  the  current
          game.

          In ICS mode, changes made to the position by `Edit Position' are
          not sent to the ICS: `Edit Position' takes XBoard  out  of  `ICS
          Client' mode and lets you edit positions locally. If you want to
          edit positions on ICS in a way that other ICS users can see, use
          the  ICS  `examine'  command,  or  start  an  ICS  match against
          yourself.  (See also the ICS Client topic above.)

   Edit Tags
          Lets you edit the PGN (portable  game  notation)  tags  for  the
          current  game. After editing, the tags must still conform to the
          PGN tag syntax:

              <tag-section> ::= <tag-pair> <tag-section>
                                      <empty>
              <tag-pair> ::= [ <tag-name> <tag-value> ]
              <tag-name> ::= <identifier>
              <tag-value> ::= <string>

          See the PGN Standard for full details. Here is an example:

              [Event "Portoroz Interzonal"]
              [Site "Portoroz, Yugoslavia"]
              [Date "1958.08.16"]
              [Round "8"]
              [White "Robert J. Fischer"]
              [Black "Bent Larsen"]
              [Result "1-0"]

          Any characters that  do  not  match  this  syntax  are  silently
          ignored.  Note  that the PGN standard requires all games to have
          at least the seven tags shown above. Any that you omit  will  be
          filled   in   by   XBoard  with  `?'  (unknown  value),  or  `-'
          (inapplicable value).

   Edit Comment
          Adds or modifies a comment on the current position. Comments are
          saved  by  `Save  Game'  and  are  displayed by `Load Game', PGN
          variations will also be printed  in  this  window,  and  can  be
          promoted  to  main  line by right-clicking them.  `Forward', and
          `Backward'.

   Edit Book
          Pops up a window listing the moves available  in  the  GUI  book
          (specified  in  the  `Common  Engine  Settings' dialog) from the
          currently displayed position, together with  their  weights  and
          (optionally in braces) learn info.  You can then edit this list,
          and the new list will be stored back  into  the  book  when  you
          press  'save  changes'.   When  you  press  the button 'add next
          move', and play a move on the board, that move will be added  to
          the  list  with  weight 1.  Note that the listed percentages are
          neither used, nor updated when you change the weights; they  are
          just  there  as  an optical aid.  When you right-click a move in
          the list it will be played.

   Revert
   Annotate
          If you are examining an ICS game and Pause mode is  off,  Revert
          issues  the  ICS command `revert'.  In local mode, when you were
          editing or analyzing a game, and the `-variations'  command-line
          option  is switched on, you can start a new variation by holding
          the Shift key down while entering a move not at the end  of  the
          game.   Variations  can also become the currently displayed line
          by clicking a PGN variation displayed  in  the  Comment  window.
          This  can  be  applied  recursively,  so  that  you  can analyze
          variations on variations; each time you create a  new  variation
          by  entering an alternative move with Shift pressed, or select a
          new one from the Comment window, the current variation  will  be
          shelved.   `Revert'  allows  you  to return to the most recently
          shelved  variation.   The  difference   between   `Revert'   and
          `Annotate'  is  that  with the latter, the variation you are now
          abandoning will be added as a comment (in PGN variation  syntax,
          i.e.  between  parentheses)  to  the  original  move  where  you
          deviated, for later recalling.  The `Home'  key  is  a  keyboard
          equivalent to `Revert'.

   Truncate Game
          Discards  all  remembered  moves  of the game beyond the current
          position. Puts XBoard into `Edit Game' mode if it was not  there
          already.  The `End' key is a keyboard equivalent.

   Backward
   <      Steps  backward through a series of remembered moves.  The `[<]'
          button and  the  `Alt+LeftArrow'  key  are  equivalents,  as  is
          turning  the mouse wheel towards you.  In addition, pressing the
          ??? key steps back one move,  and  releasing  it  steps  forward
          again.

          In  most  modes,  `Backward'  only  lets  you  look  back at old
          positions; it does not retract moves. This is the  case  if  you
          are  playing against a chess engine, playing or observing a game
          on an ICS, or loading a game.  If you select `Backward'  in  any
          of these situations, you will not be allowed to make a different
          move. Use `Retract Move' or `Edit Game' if you  want  to  change
          past moves.

          If  you  are  examining  an ICS game, the behavior of `Backward'
          depends on whether XBoard is in Pause mode.  If  Pause  mode  is
          off,  `Backward' issues the ICS backward command, which backs up
          everyone's view of the game and allows you to make  a  different
          move.  If  Pause mode is on, `Backward' only backs up your local
          view.

   Forward
   >      Steps forward through a series of remembered moves (undoing  the
          effect  of `Backward') or forward through a game file. The `[>]'
          button and the  `Alt+RightArrow'  key  are  equivalents,  as  is
          turning the mouse wheel away from you.

          If  you  are  examining  an  ICS  game,  the behavior of Forward
          depends on whether XBoard is in Pause mode.  If  Pause  mode  is
          off,  `Forward'  issues  the  ICS  forward  command, which moves
          everyone's view of the game forward along the current  line.  If
          Pause  mode is on, `Forward' only moves your local view forward,
          and it will not go past the position that the game was  in  when
          you paused.

   Back to Start
   <<     Jumps  backward  to  the  first remembered position in the game.
          The `[<<]' button and the `Alt+Home' key are equivalents.

          In most modes, Back to Start only lets  you  look  back  at  old
          positions;  it  does  not retract moves. This is the case if you
          are playing against a local chess engine, playing or observing a
          game  on  a chess server, or loading a game. If you select `Back
          to Start' in any of these situations, you will not be allowed to
          make  different  moves. Use `Retract Move' or `Edit Game' if you
          want to change past moves; or use Reset to start a new game.

          If you are examining an ICS game, the behavior of @samp{Back  to
          Start} depends on whether XBoard is in Pause mode. If Pause mode
          is off,  `Back  to  Start'  issues  the  ICS  `backward  999999'
          command, which backs up everyone's view of the game to the start
          and allows you to make different moves. If  Pause  mode  is  on,
          @samp{Back to Start} only backs up your local view.

   Forward to End
   >>     Jumps  forward  to the last remembered position in the game. The
          `[>>]' button and the `Alt+End' key are equivalents.

          If you are examining an ICS game, the behavior of  @samp{Forward
          to  End}  depends  on  whether XBoard is in Pause mode. If Pause
          mode is off, `Forward to End' issues the  ICS  `forward  999999'
          command,  which moves everyone's view of the game forward to the
          end of the current line. If Pause mode is on, `Forward  to  End'
          only  moves your local view forward, and it will not go past the
          position that the game was in when you paused.

   View Menu
   Flip View
          Inverts your view of the chess board for  the  duration  of  the
          current  game.  Starting a new game returns the board to normal.
          The `F2' key is a keyboard equivalent.

   Show Engine Output
          Shows or hides a window in which  the  thinking  output  of  any
          loaded  engines  is  displayed.  The  shifted  `Alt+O'  key is a
          keyboard equivalent.  XBoard  will  display  lines  of  thinking
          output  of  the  same  depth ordered by score, (highest score on
          top), rather  than  in  the  order  the  engine  produced  them.
          Usually this amounts to the same, as a normal engine search will
          only find new PV (and  emit  it  as  thinking  output)  when  it
          searches a move with a higher score than the previous variation.
          But when the engine is in multi-variation mode  this  needs  not
          always  be true, and it is more convenient for someone analyzing
          games to see the moves sorted by score.  The order in which  the
          engine  found them is only of interest to the engine author, and
          can still be deduced from the time or node  count  printed  with
          the line.  Right-clicking a line in this window, and then moving
          the mouse vertically with the right button kept down, will  make
          XBoard  play  through the PV listed there.  The use of the board
          window as 'variation board' will normally end when  you  release
          the  right  button,  or  when  the  opponent  plays a move.  But
          beware: in Analysis mode, moves thus played out might  be  added
          to  the game, depending on the setting of the option 'Play moves
          of clicked PV', when you initiate the click left of  the  PV  in
          the  score  area.   The  Engine-Output pane for each engine will
          contain a header displaying the multi-PV status and  a  list  of
          excluded  moves  in  Analysis mode, which are also responsive to
          right-clicking: Clicking the words 'fewer' or 'more' will  alter
          the  number  of  variations  shown  at  each  depth, through the
          engine's MultiPV option, while clicking  in  between  those  and
          moving  the  mouse  horizontally  adjust  the  option  'Multi-PV
          Margin'. (In so far the engines support those.)

   Show Move History
          Shows or hides a list of moves of the current game.  The shifted
          `Alt+H'  key  is a keyboard equivalent.  This list allows you to
          move the display to any earlier position in the game by clicking
          on the corresponding move.

   Show Evaluation Graph
          Shows or hides a window which displays a graph of how the engine
          score(s) evolved as a function of the move number.  The  shifted
          `Alt+E'  key  is a keyboard equivalent.  The title bar shows the
          score (and search  depth  at  which  it  was  obtained)  of  the
          currently displayed position numerically.  Clicking on the graph
          will bring the corresponding position in the board  display.   A
          button  3  click  will toggle the display mode between plain and
          differential (showing the difference in score between successive
          half  moves).  Using the mouse wheel over the window will change
          the scale of the low-score region (from -1 to +1).

   Show Game List
          Shows or hides the list of games generated  by  the  last  `Load
          Game' command. The shifted `Alt+G' key is a keyboard equivalent.
          The line describing each game is built from a selection  of  the
          PGN  tags.   Which  tags  contribute,  and in what order, can be
          changed by the `Game list tags' menu dialog, which can be popped
          up  through  the `Tags' button below the Game List.  Display can
          be  restricted  to  a  sub-set  of  the  games  meeting  certain
          criteria.  A text entry below the game list allows you to type a
          text that the game lines must contain in order to be  displayed.
          Games can also be selected based on their Elo PGN tag, as set in
          the `Load Game Options' dialog, which can be popped  up  through
          the  `Thresholds'  button below the Game List.  Finally they can
          be selected based on containing a position similar  to  the  one
          currently   displayed  in  the  main  window,  by  pressing  the
          'Position' button below  the  Game  List,  (which  searches  the
          entire  list  for  the  position), or the 'Narrow' button (which
          only searches  the  already-selected  games).   What  counts  as
          similar  enough to be selected can also be set in the `Load Game
          Options' dialog, and ranges from an exact match to just the same
          material.

   Tags   Pops  up  a  window which shows the PGN (portable game notation)
          tags for the current game.  For now this is a duplicate  of  the
          `Edit Tags' item in the `Edit' menu.

   Comments
          Pops  up  a  window which shows any comments to or variations on
          the current move.  For now this is  a  duplicate  of  the  `Edit
          Comment' item in the `Edit' menu.

   ICS Input Box
          If  this  option  is  set  in  ICS mode, XBoard creates an extra
          window that you can use for typing in ICS commands.   The  input
          box  is  especially useful if you want to type in something long
          or do some editing  on  your  input,  because  output  from  ICS
          doesn't  get  mixed  in with your typing as it would in the main
          terminal window.

   ICS/Chat Console
          This menu item opens a window in which you can interact with the
          ICS,  so  you  don't  have to use the messy xterm from which you
          launched XBoard for that.  The window has a text  entry  at  the
          bottom  where you can type your commands and messages unhindered
          by the stream of ICS output.  The latter will be displayed in  a
          large  pane above the input field, the ICS Console.  Up and down
          arrow keys can be used to recall previous input  lines.   Typing
          an  <Esc>  character  in the input field transfers focus back to
          the board window (so you could operate the menus  there  through
          accelerator  keys).   Typing  a printable character in the board
          window transfers focus back to  the  input  field  of  the  `ICS
          Chat/Console' window.

   Chats  There  is  a row of buttons at the top of the `ICS Chat/Console'
          dialog, which can be used to navigate  between  upto  5  'chats'
          with  other  ICS  users  (or  channels).   These will switch the
          window to 'chat mode', where the ICS output pane  is  vertically
          split  to divert messages from a specific user or ICS channel to
          the lower half.  Lines typed in the input  field  will  then  be
          interpreted  as  messages  to  be  sent to that user or channel,
          (automatically prefixed with the  apporpriate  ICS  command  and
          user  name) rather than as commands to the ICS.  Chats will keep
          collecting ICS output intended for them even when not displayed,
          and  their  buttons will turn orange to alert the user there has
          been activity.  Typing <Tab> in the input field will  switch  to
          another  active  chat, giving priority to those with content you
          have not seen yet.

   New Chat
          Buttons for chats currently not assigned to a  user  or  channel
          will carry the text `New Chat', and pressing them will switch to
          chat mode, enabling you to enter the user name or channel number
          you  want  to use it for.  Typing Ctrl-N in the input field is a
          keyboard equivalent.

   Chat partner
          To (re-)assign a chat, write the name of your chat partner,  the
          channel  number, or the words 'shouts', 'whispers', 'cshouts' in
          the `Chat partner' text entry (ending  with  <Enter>!).   Typing
          Ctrl-O  in the input field at the bottom of the window will open
          a chat with the person that last sent  you  a  'tell'  that  was
          printed in the ICS Console output pane.  The `ICS text menu' can
          contain a button `Open Chat (name)' that can be used to  open  a
          chat  with  as  partner the word/number you right-clicked in the
          output pane to pop up this menu.

   End Chat
          This button, only visible when the chat pane is open, will clear
          the  `Chat partner' field, so that the chat can be assigned to a
          new user or channel.  Typing Ctrl-E in  the  input  field  is  a
          keyboard equivalent.

   Hide   This button, only visible when the chat pane is open, will close
          the latter, so you can use the input field to give  commands  to
          the  ICS  again.  Typing Ctrl-H in the input field is a keyboard
          equivalent.

   ICS text menu
          Brings up a menu that is user-configurable through the `icsMenu'
          option.   Buttons  in this menu can sent pre-configured commands
          directly to the ICS, or can put partial commands  in  the  input
          field of the `ICS Chat/Console' window, so that you can complete
          those with some text of your own before sending them to the  ICS
          by  pressing  Enter.   This  menu  item can also be popped up by
          right-clicking in the text memos of the ICS Chat/Console window.
          In  that  case  the word that was clicked can be incorporated in
          the message sent to the ICS. E.g. to challenge  a  player  whose
          name  you click for a game, or prepare for sending him a message
          through a 'tell' commands.

   Edit ICS menu
          Brings up an edit box with  the  definition  of  the  `ICS  text
          menu',  so you can adapt its appearance to your needs.  The menu
          is defined by a semi-colon-separated list, each button through a
          pair of items in it.  The first item of each pair is the text on
          the button, the second the text to be sent when  the  button  is
          pressed.   The  word  '$input' in the text will put that text in
          the input field of the `ICS Chat/Console'  with  the  cursor  in
          that place, the word '$name' will be replaced by the word right-
          clicked to pop up the text menu.

   Edit Theme List
          Brings up an edit box with the definitions of the  themes  shown
          in  the  listbox  of  the `Board' dialog, so you can delete, re-
          order or alter themes defined previously.

   Board  Summons a dialog where you can customize the look of  the  chess
          board.

   White Piece Color
   Black Piece Color
   Light Square Color
   Dark Square Color
   Highlight Color
   Premove Highlight Color
          These  items  set  the  color  of pieces, board squares and move
          highlights (borders or arrow).  Square colors are only used when
          the  `Use  Board  Textures' option is off, the piece colors only
          when `Use piece bitmaps with their own colors' is off.  You  can
          type  the  color  as hexadecimally encoded RGB value preceded by
          '#', or adjust it through the R, G, B and D buttons to  make  it
          redder,  greener,  bluer  or  darker.   A sample of the adjusted
          color will be displayed behind its  text  description;  pressing
          this colored button restores the default value for the color.

   Flip Pieces Shogi Style
          With  this  option  on  XBoard will swap white and black pieces,
          when you flip the view of the board to make white play downward.
          This  should  be  used with piece themes that do not distinguish
          sides by color, but by orientation.

   Mono Mode
          This option sets XBoard to pure black-and-white display (no grey
          scales, and thus no anti-aliasing).

   Logo Size
          Specifies  the  width  of the engine logos displayed next to the
          clocks, in pixels.  Setting it to 0 suppresses  the  display  of
          such  logos.  The height of the logo will be half its width.  In
          the GTK build of XBoard any non-zero value  is  equivalent,  and
          the logos are always sized to 1/4 of the board width.

   Line Gap
          This  option specifies the width of the grid lines that separate
          the squares,  which  change  color  on  highlighting  the  move.
          Setting  it  to 0 suppresses these lines, which in general looks
          better, but hides the  square-border  highlights,  so  that  you
          would  have to rely on other forms of highlighting.  Setting the
          value to -1 makes XBoard choose a width by itself, depending  on
          the square size.

   Use Board Textures
   Light-Squares Texture File
   Dark-Squares Texture File
          When  the  option  `Use Board Textures' is set, the squares will
          not be drawn as evenly colored surfaces, but will be cut from  a
          texture  image,  as  specified by the `Texture Files'.  Separate
          images can be used for light and dark squares.  XBoard will  try
          to  cut  the  squares  out  of  the texture image with as little
          overlap as possible, so they all look different.   The  name  of
          the    texture    file   can   contain   a   size   hint,   e.g.
          `xqboard-9x10.png', alerting XBoard to the fact that it contains
          a  whole-board  image,  out  of  which squares have to be cut in
          register with the nominal sub-division.

   Use external piece bitmaps with their own color
          When this option  is  on  XBoard  will  ignore  the  piece-color
          settings,  and  draw  the piece images in their original colors.
          The piece-color settings would only work well for evenly colored
          pieces, such as the default theme.

   Directory with Pieces Images
          When  a  directory is specified here, XBoard will first look for
          piece images (SVG or PNG files) in that directory, and fall back
          on  the  image  from the default theme only for images it cannot
          find  there.   An  image  file  called  White/BlackTile  in  the
          directory  will be prefered as fall-back for missing pieces over
          the default image, however.

   Selectable themes
   New name for current theme
          When  a  theme  name  is  specified  while  pressing  'OK',  the
          combination  of  settings specified in the dialog will be stored
          in XBoard's list of themes, which will be saved with  the  other
          options in the settings file (as the `themeNames' option).  This
          name will then appear in the selection  listbox  next  time  you
          open  the  dialog, so that you can recall the entire combination
          of settings by double-clicking it.

          Here you can specify  the  directory  from  which  piece  images
          should  be  taken, when you don't want to use the built-in piece
          images (see `pieceImageDirectory' option), external images to be
          used   for   the   board   squares   (`liteBackTextureFile'  and
          `darkBackTextureFile' options), and square and piece colors  for
          the  default  pieces.  The current combination of these settings
          can be assigned a 'theme' name by typing one in the  text  entry
          in the lower-left of the dialog, and closing the latter with OK.
          It will then appear in the themes listbox next time you open the
          dialog,  where  you can recall the complete settings combination
          with a double-click.

   Fonts  Pops up a dialog where you can set the fonts used  in  the  main
          elements  of various windows.  Pango font names can be typed for
          each window type, and behind each text entry there  are  buttons
          to  adjust  the  point  size,  and toggle the 'bold' or 'italic'
          attributes of the font.

   Game List Tags
          a duplicate of the Game List dialog in the Options menu.

   Mode Menu
   Machine White
          Tells the chess engine to play White.  The  `Ctrl-W'  key  is  a
          keyboard equivalent.

   Machine Black
          Tells  the  chess  engine  to play Black.  The `Ctrl-B' key is a
          keyboard equivalent.

   Two Machines
          Plays a game between two chess engines.  The `Ctrl-T' key  is  a
          keyboard equivalent.

   Analysis Mode
          XBoard  tells  the  chess  engine to start analyzing the current
          game/position and shows you the  analysis  as  you  move  pieces
          around.   The `Ctrl-A' key is a keyboard equivalent.  Note: Some
          chess engines do not support Analysis mode.

          To set up a position to analyze, you do the following:

          1. Set up the position by any means. (E.g. using `Edit Position'
          mode,  pasing  a  FEN  or  loading  a  game  and stepping to the
          position.)

          2. Select  Analysis  Mode  from  the  Mode  Menu  to  start  the
          analysis.

          You  can  now play legal moves to create follow-up positions for
          the engine to analyze, while the moves will be remembered  as  a
          stored  game,  and  then step backward through this game to take
          the moves back.  Note that you can also click on the  clocks  to
          set the opposite side to move (adding a so-called `null move' to
          the game).

          You can  also  tell  the  engine  to  exclude  some  moves  from
          analysis.   (Engines  that  do  not  support  the  exclude-moves
          feature will ignore this, however.)  The general way to do  this
          is  to  play the move you want to exclude starting with a double
          click on the piece.  When you use drag-drop  moving,  the  piece
          you  grab with a double click will also remain on its square, to
          show you that you are not  really  making  the  move,  but  just
          forbid  it  from  the current position.  Playing a thus excluded
          move a second time will include it again.  Excluded  moves  will
          be  listed as text in a header line in the Engine Output window,
          and you can also re-include them by right-clicking  them  there.
          This  header line will also contain the words 'best' and 'tail';
          right-clicking those will exclude the currently  best  move,  or
          all  moves  not  explicitly listed in the header line.  Once you
          leave the current position all memory of excluded moves will  be
          lost when you return there.

          Selecting  this  menu item while already in `Analysis Mode' will
          toggle the participation of the second engine in  the  analysis.
          The  output  of this engine will then be shown in the lower pane
          of the Engine Output window.  The analysis function can also  be
          used when observing games on an ICS with an engine loaded (zippy
          mode); the engine then will analyze the positions as they  occur
          in the observed game.

   Analyze Game
          This  option  subjects  the  currently  loaded game to automatic
          analysis by the loaded engine.  The `Ctrl-G' key is  a  keyboard
          equivalent.   XBoard  will  start auto-playing the game from the
          currently displayed position, while the engine is analyzing  the
          current  position.   The game will be annotated with the results
          of these analyses.  In particlar, the score and  depth  will  be
          added as a comment, and the PV will be added as a variation.

          Normally  the  analysis would stop after reaching the end of the
          game.  But when a game is loaded from a  multi-game  file  while
          `Analyze  Game'  was  already  switched  on,  the  analysis will
          continue with the next game in the file until  the  end  of  the
          file is reached (or you switch to another mode).

          The  time  the  engine  spends  on  analyzing  each  move can be
          controlled through the command-line option  `-timeDelay',  which
          can also be set from the `Load Game Options' menu dialog.  Note:
          Some chess engines do not support Analysis mode.

   Edit Game
          Duplicate of the item in the Edit menu.  Note that  `Edit  Game'
          is  the  idle  mode of XBoard, and can be used to get you out of
          other modes. E.g. to stop analyzing, stop  a  game  between  two
          engines or stop editing a position.

   Edit Position
          Duplicate of the item in the Edit menu.

   Training
          Training  mode  lets you interactively guess the moves of a game
          for one of the players. You guess the next move of the  game  by
          playing  the  move  on the board. If the move played matches the
          next move of the game, the move is accepted and  the  opponent's
          response  is  auto-played.   If the move played is incorrect, an
          error message is displayed.  You can select this mode only while
          loading  a  game  (that is, after selecting `Load Game' from the
          File menu).  While XBoard is in `Training' mode, the  navigation
          buttons are disabled.

   ICS Client
          This  is  the  normal  mode  when XBoard is connected to a chess
          server.  If you have moved into Edit Game or Edit Position mode,
          you can select this option to get out.

          To  use  xboard  in  ICS mode, run it in the foreground with the
          -ics option, and use the terminal you started it  from  to  type
          commands  and receive text responses from the chess server.  See
          Chess Servers below for more information.

          XBoard activates some  special  position/game  editing  features
          when  you  use the `examine' or `bsetup' commands on ICS and you
          have `ICS Client' selected on the Mode  menu.   First,  you  can
          issue  the  ICS  position-editing commands with the mouse.  Move
          pieces by dragging with mouse button 1.  To drop a new piece  on
          a  square,  press  mouse  button  2  or 3 over the square.  This
          brings up a menu of white pieces  (button  2)  or  black  pieces
          (button 3).  Additional menu choices let you empty the square or
          clear the board.  Click on the White or Black clock to  set  the
          side to play.  You cannot set the side to play or drag pieces to
          arbitrary squares while examining on ICC, but you can do  so  in
          `bsetup'   mode   on  FICS.   In  addition,  the  menu  commands
          `Forward',  `Backward',  `Pause',  and  `Stop  Examining'   have
          special functions in this mode; see below.

   Machine Match
          Starts  a  match  between  two  chess programs, with a number of
          games and other parameters set through the `Tournament  Options'
          menu  dialog.   When  a match is already running, selecting this
          item will make XBoard drop out of match mode after  the  current
          game finishes.

   Pause  Pauses  updates  to  the board, and if you are playing against a
          chess engine,  also  pauses  your  clock.  To  continue,  select
          `Pause'  again, and the display will automatically update to the
          latest position.  The `P' button and keyboard  `Pause'  key  are
          equivalents.

          If  you select Pause when you are playing against a chess engine
          and it is not your move, the chess engine's clock will  continue
          to  run  and it will eventually make a move, at which point both
          clocks will stop. Since board updates are paused,  however,  you
          will  not see the move until you exit from Pause mode (or select
          Forward).  This behavior is meant to simulate adjournment with a
          sealed move.

          If  you select Pause while you are observing or examining a game
          on a chess server, you can step  backward  and  forward  in  the
          current history of the examined game without affecting the other
          observers and examiners, and without having  your  display  jump
          forward  to the latest position each time a move is made. Select
          Pause again to reconnect yourself to the current  state  of  the
          game on ICS.

          If  you  select  `Pause'  while you are loading a game, the game
          stops loading. You can load more  moves  manually  by  selecting
          `Forward',  or  resume  automatic  loading  by selecting `Pause'
          again.

   Action Menu
   Accept Accepts a pending match offer.   The  `F3'  key  is  a  keyboard
          equivalent.   If  there is more than one offer pending, you will
          have to type in a more specific command instead  of  using  this
          menu choice.

   Decline
          Declines a pending offer (match, draw, adjourn, etc.).  The `F4'
          key is a keyboard equivalent. If there is more  than  one  offer
          pending,  you  will  have  to  type  in  a more specific command
          instead of using this menu choice.

   Call Flag
          Calls your opponent's flag, claiming a win on time, or  claiming
          a  draw if you are both out of time.  The `F5' key is a keyboard
          equivalent.  You can also call your opponent's flag by  clicking
          on his clock.

   Draw   Offers  a  draw  to  your opponent, accepts a pending draw offer
          from your opponent, or  claims  a  draw  by  repetition  or  the
          50-move  rule,  as  appropriate.  The  `F6'  key  is  a keyboard
          equivalent.

   Adjourn
          Asks your opponent to agree to adjourning the current  game,  or
          agrees  to  a pending adjournment offer from your opponent.  The
          `F7' key is a keyboard equivalent.

   Abort  Asks your opponent to agree to aborting  the  current  game,  or
          agrees  to  a  pending abort offer from your opponent.  The `F8'
          key is a keyboard equivalent. An aborted game  ends  immediately
          without affecting either player's rating.

   Resign Resigns  the  game  to your opponent. The `F9' key is a keyboard
          equivalent.

   Stop Observing
          Ends your participation in observing a game, by issuing the  ICS
          observe command with no arguments. ICS mode only.  The `F10' key
          is a keyboard equivalent.

   Stop Examining
          Ends your participation in examining a game, by issuing the  ICS
          unexamine  command.  ICS mode only.  The `F11' key is a keyboard
          equivalent.

   Upload to Examine
          Create an examined game of the proper variant on  the  ICS,  and
          send  the  game  there  that  is currenty loaded in XBoard (e.g.
          through pasting or loading from file).  You must be connected to
          an ICS for this to work.

   Adjudicate to White
   Adjudicate to Black
   Adjudicate Draw
          Terminate  an ongoing game in Two-Machines mode (including match
          mode), with as result a win for white, for  black,  or  a  draw,
          respectively.   The  PGN  file  of  the  game will accompany the
          result string by the comment "user adjudication".

   Engine Menu
   Edit Engine List
          Opens a window that shows the list of engines registered for use
          by  XBoard,  together  with  the options that would be used with
          them when you would select them from the `Load Engine'  dialogs.
          You  can  then edit this list, e.g. for re-ordering the engines,
          or adding uncommon options needed by this engine (e.g.  to  cure
          non-compliant behavior).

          By  editing  you  can also organize the engines into collapsible
          groups.  By sandwiching a number of engine lines  between  lines
          "#  NAME"  and  "#  end",  the  thus  enclosed  engines will not
          initially appear in engine listboxes of other dialogs, but  only
          the  single  line "# NAME" (where NAME can be an arbitrary text)
          will appear in their place.  Selecting that line will then  show
          the  enclosed  engines  in  the  listbox,  which recursively can
          contain other groups.  The line with the group name  will  still
          present  as  a header, and selecting that line will collapse the
          group again, and makes the listbox go  back  to  displaying  the
          surrounding group.

   Load New 1st Engine
   Load New 2nd Engine
          Pops up a dialog where you can select or specify an engine to be
          loaded.  You can even replace engines  during  a  game,  without
          disturbing  that  game.   (Beware  that after loading an engine,
          XBoard will always be in Edit Game mode, so  you  will  have  to
          tell the new engine what to do before it does anything!)

   Select engine from list
          The  listbox  shows  the  engines registered for use with XBoard
          before.  (This means XBoard has information on the engine  type,
          whether  it  plays  book  etc.  in the engine list stored in its
          settings file.)  Double-clicking an engine here will load it and
          close  the  dialog.  The list can also contain groups, indicated
          by a starting '#'  sign.   Double-clicking  such  a  group  will
          'open' it, and show the group contents in the listbox instead of
          the total list, with the group name as header.   Double-clicking
          the header will 'close' the group again.

   Nickname
   Use nickname in PGN player tags of engine-engine games
          When  a  `Nickname'  is  specified, the engine will appear under
          this name in the `Select Engine' listbox.   Otherwise  the  name
          there  will be a tidied version of the engine command.  The user
          can specify if the nickname is also to  be  used  in  PGN  tags;
          normally the name engines report theselves would be used there.

   Engine Command
          The  command  needed  to start the engine from the command line.
          For compliantly installed engine this is usually just  a  single
          word,   the  name  of  the  engine  package  (e.g.  'crafty'  or
          'stockfish').  Some engines need additional  parameters  on  the
          command  line.   For  engines  that are not in a place where the
          system would expect them a full pathname can be  specified,  and
          usually  the browse button for this oprion is the easiest way to
          obtain that.

   Engine Directory
          Compliant engines could run from any directory, and  by  default
          this  option  is  proposed  as '.', the current directory.  If a
          (path)name is specified here, XBoard will start  the  engine  in
          that  directory.   If  you  make the field empty, it will try to
          derive the directory from the engine command (if that was a path
          name).

   UCI    When  the `UCI' checkbox is ticked XBoard will assume the engine
          is of UCI type, and will invoke the  corresponding  adapter  (as
          specified  in the `adapterCommand' option stored in its settings
          file)to use it.  By default this adapter is Polyglot, which must
          be installed from a separate package!

   USI/UCCI
          Ticking  this  checkbox informs XBoard that the engine is of USI
          or UCCI type (as Shogi or  Xiangqi  engines  often  are).   This
          makes  XBoard invoke an adapter to run the engines, as specified
          by the `uxiAdapter' option stored in  its  settings  file.   The
          UCI2WB  program  is an adapter that can handle both these engine
          types, as well as UCI.

   WB protocol v1
          Ticking this checkbox informs XBoard the engine is using an  old
          version  (1)  of  the  communication  protocol, so that it won't
          respond to a request to interrogate its properties.  XBoard then
          won't  even  try that, saving you a wait of several seconds each
          time the engine is started.  Do not use this on state-of-the-art
          engines,  as  it  would  prevent  XBoard  from interrogating its
          capabilities, so that many of its features might not work!

   Must not use GUI book
          By default XBoard assumes engines are responsible for their  own
          opening book, but unticking this option makes XBoard consult its
          own book (as per  `Opening-Book  Filename')  on  behalf  of  the
          engine.

   Add this engine to the list
          By  default  XBoard would add the engine you specified, with all
          the given options to its list of registered engines (kept in its
          settings  file),  when you press 'OK'.  Next time you could then
          simply select it from the listbox, or use  the  command  "xboard
          -fe  NICKNAME"  to start XBoard with the engine and accompanying
          options.  New engines  are  always  added  at  the  end  of  the
          existing  list,  or, when you have opened a group in the `Select
          Engine' listbox, at the end of  that  group.   But  can  be  re-
          ordered  later with the aid of the `Edit Engine List' menu item.
          When you untick this checkbox before pressing  'OK'  the  engine
          will be loaded, but will not be added to the engine list.

   Force current variant with this engine
          Ticking  this  option  will  make XBoard automatically start the
          engine in the current variant, even when XBoard was  set  for  a
          different  variant  when you loaded the engine.  Useful when the
          engine plays multiple variants, and  you  specifically  want  to
          play one different from its primary one.

   Engine #1 Settings
   Engine #2 Settings
          Pop  up  a  menu  dialog  to  alter the settings specific to the
          applicable engine.  For each parameter the engine allows  to  be
          set,  a  control  element will appear in this dialog that can be
          used to alter the value.  Depending on  the  type  of  parameter
          (text   string,   number,   multiple   choice,   on/off  switch,
          instantaneous signal) the appropriate control will appear,  with
          a  description next to it.  XBoard has no idea what these values
          mean; it just passes them on to the  engine.   How  this  dialog
          looks  is  completely  determined by the engine, and XBoard just
          passes it on  to  the  user.   Many  engines  do  not  have  any
          parameters  that  can  be  set by the user, and in that case the
          dialog will be empty (except for the  OK  and  cancel  buttons).
          UCI  engines  usually  have many parameters. (But these are only
          visible with a  sufficiently  modern  version  of  the  Polyglot
          adapter  needed  to  run  UCI engines, e.g. Polyglot 2.0.1.) For
          native XBoard engines this is less common.

   Common Settings
          Pops up a menu dialog where you can set some  engine  parameters
          common to most engines, such as hash-table size, tablebase cache
          size, maximum number of processors that  SMP  engines  can  use.
          The  shifted  `Alt+U'  key  is  a  keyboard  equivalent.   Older
          XBoard/WinBoard engines might not respond to these settings, but
          UCI engines always should.

   Maximum Number of CPUs per Engine
          Specifies  the number of search threads any engine can maximally
          use.  Do not set it to a number larger than the number of  cores
          your  computer has.  (Or half of it when you want two engines to
          run simultaneously, as in a Two-Machines game with `Ponder  Next
          Move' on.)

   Polyglot Directory

   Hash-Table Size
          Specifies  the  maximum  amount  of  memory (RAM) each engine is
          allowed  to  use  for  storing  info  on  positions  it  already
          searched, so it would not have to search them again.  Do not set
          it so that it is more than half (or if you use two engines, more
          than  a  quarter)  of  the memory your computer has, or it would
          slow the engines down by an extreme amount.

   EGTB Path
          Sets the value of the `egtFormats' option, which specifies where
          on  your  computer the files for End-Game Tables are stored.  It
          must be a comma-separated list of path names, the path for  each
          EGT  flavor  prefixed  with  the name of the latter and a colon.
          E.g. "nalimov:/home/egt/dtm,syzygy:/home/egt/dtz50".   The  path
          names  after the colon will be sent to the engines that say they
          can use the corresponding EGT flavor.

   EGTB Cache Size
          Specifies the amount of memory the engine should use  to  buffer
          end-game  information.  Together with the `Hash-Table Size' this
          determines how much memory the  engine  is  allowed  to  use  in
          total.

   Use GUI Book
   Opening-Book Filename
          The   `Opening-Book  Filename'  specifies  an  opening  book  in
          Polyglot format (usually a .bin file),  from  which  XBoard  can
          play  moves on behalf of the engine.  This is also the book file
          on which the `Edit Book' and `Save Games  as  Book'  menu  items
          operate.   A  checkbox `Use GUI Book' can be used to temporarily
          disable the book without losing the  setting.   (This  does  not
          prevent editing or saving games on it!)

   Book Depth
   Book Variety
          The  way  moves  are selected from the book can be controlled by
          two options.  `Book Depth' controls for how deep into  the  game
          the  book  will  be  consulted  (measured in full moves).  `Book
          Variety' controls the likelihood of playing weaker moves.   When
          the  variety  is  set  to  50,  moves  will  be  played with the
          probability specified in the book.  When  set  to  0,  only  the
          move(s)  with  the highest probability will be played.  When set
          to 100, all listed moves will be played with  equal  pobability.
          Other settings interpolate between that.

   Engine #1 Has Own Book
   Engine #2 Has Own Book
          These  checkboxes  control  on a per-engine basis whether XBoard
          will consult the opening book for them.  If ticked, XBoard  will
          never  play  moves  from  its  GUI  book,  giving the engine the
          opportunity to use its own.  These options are automatically set
          whenever  you  load an engine, based on the setting of `Must not
          use GUI book' when you installed that through the `Load  Engine'
          menu dialog.

   Hint   Displays a move hint from the chess engine.

   Book   Displays  a  list  of  possible  moves  from  the chess engine's
          opening book.  The exact format depends on what chess engine you
          are  using.  With GNU Chess 4, the first column gives moves, the
          second column gives one possible response for each move, and the
          third  column shows the number of lines in the book that include
          the move from the first column. If you select  this  option  and
          nothing happens, the chess engine is out of its book or does not
          support this feature.

   Move Now
          Forces the chess engine to move immediately. Chess  engine  mode
          only.   The `Ctrl-M' key is a keyboard equivalent.  Many engines
          won't respond to this.

   Retract Move
          Retracts your last move. In chess engine mode, you can  do  this
          only  after  the  chess  engine has replied to your move; if the
          chess engine is still thinking, use `Move  Now'  first.  In  ICS
          mode,   `Retract  Move'  issues  the  command  `takeback  1'  or
          `takeback 2' depending on whether it is your opponent's move  or
          yours.  The `Ctrl-X' key is a keyboard equivalent.

   Recently Used Engines
          At the bottom of the engine menu there can be a list of names of
          engines that you recently loaded through the  Load  Engine  menu
          dialog  in previous sessions.  Clicking on such a name will load
          that engine as first engine, so you won't have to search for  it
          in  your  list  of installed engines, if that is very long.  The
          maximum  number  of  displayed  engine  names  is  set  by   the
          `recentEngines' command-line option.

   Options Menu
   Mute all Sounds
   Ticking  this  menu  item toggles all sounds XBoard can make on or off,
   without losing their definitions.

   General Options
   The following items to set option values appear in the dialog  summoned
   by the general Options menu item.

   Absolute Analysis Scores
          Controls  if  scores on the Engine Output window during analysis
          will be printed from the white  or  the  side-to-move  point-of-
          view.

   Almost Always Queen
          If  this  option is on, 7th-rank pawns automatically change into
          Queens when you pick them up, and when  you  drag  them  to  the
          promotion  square  and  release them there, they will promote to
          that.  But when you  drag  such  a  pawn  backwards  first,  its
          identity will start to cycle through the other available pieces.
          This will continue until you start to move it forward; at  which
          point  the  identity of the piece will be fixed, so that you can
          safely put it down on the promotion square.  If this  option  is
          off,  what happens depends on the option `alwaysPromoteToQueen',
          which would force  promotion  to  Queen  when  true.   Otherwise
          XBoard  would  bring up a dialog box whenever you move a pawn to
          the last rank, asking what piece you want to promote to.

   Animate Dragging
          If Animate Dragging is on, while you are dragging a  piece  with
          the  mouse,  an image of the piece follows the mouse cursor.  If
          Animate Dragging is off, there is no visual feedback  while  you
          are dragging a piece, but if Animate Moving is on, the move will
          be animated when it is complete.

   Animate Moving
          If Animate Moving is on, all piece moves are animated.  An image
          of  the  piece  is  shown  moving from the old square to the new
          square when the move is completed (unless the move  was  already
          animated  by  Animate  Dragging).   If  Animate Moving is off, a
          moved  piece  instantly  disappears  from  its  old  square  and
          reappears  on  its  new  square  when the move is complete.  The
          shifted `Ctrl-A' key is a keyboard equivalent.

   Auto Flag
          If this option is on and one player runs out of time before  the
          other,  XBoard  will automatically call his flag, claiming a win
          on time.  The shifted `Ctrl-F' key is a keyboard equivalent.  In
          ICS  mode,  Auto  Flag  will only call your opponent's flag, not
          yours, and the ICS may award you a draw instead of a win if  you
          have  insufficient mating material.  In local chess engine mode,
          XBoard may call either player's flag.

   Auto Flip View
          If the Auto Flip View option is on when you start  a  game,  the
          board  will  be  automatically  oriented so that your pawns move
          from the bottom of the window towards the top.

          If you are playing a  game  on  an  ICS,  the  board  is  always
          oriented  at  the start of the game so that your pawns move from
          the bottom  of  the  window  towards  the  top.  Otherwise,  the
          starting  orientation  is  determined  by the `flipView' command
          line option; if it is false (the default),  White's  pawns  move
          from  bottom  to  top  at the start of each game; if it is true,
          Black's pawns move  from  bottom  to  top.  See  User  interface
          options.

   Blindfold
          If  this  option  is  on, XBoard displays the board as usual but
          does not display pieces or move highlights.  You can still  move
          in  the  usual  way  (with  the  mouse or by typing moves in ICS
          mode), even though the pieces are invisible.

   Drop Menu
          Controls if right-clicking the board in  crazyhouse  /  bughouse
          will  pop  up a menu to drop a piece on the clicked square (old,
          deprecated behavior) or allow you to step through an  engine  PV
          (new, recommended behavior).

   Enable Variation Trees
          If  this  option  is  on, playing a move in Edit Game or Analyze
          mode while keeping the  Shift  key  pressed  will  start  a  new
          variation.   You  can  then recall the previous line through the
          `Revert' menu item.  When off, playing a move will truncate  the
          game and append the move irreversibly.

   Headers in Engine Output Window
          Controls the presence of column headers above the variations and
          associated information printed by the engine, on which  you  can
          issue  button  3 clicks to open or close the columns.  Available
          columns  are  search  depth,  score,  node  count,  time   used,
          tablebase hits, search speed and selective search depth.

   Hide Thinking
          If  this  option  is off, the chess engine's notion of the score
          and best line of play from the current position is displayed  as
          it  is thinking. The score indicates how many pawns ahead (or if
          negative, behind) the chess engine  thinks  it  is.  In  matches
          between  two  machines,  the  score is prefixed by `W' or `B' to
          indicate whether it is showing White's thinking or Black's,  and
          only  the  thinking of the engine that is on move is shown.  The
          shifted `Ctrl-H' key is a keyboard equivalent.

   Highlight Last Move
          If Highlight Last Move is on, after a move is made, the starting
          and  ending  squares  remain highlighted. In addition, after you
          use Backward or Back to Start, the starting and  ending  squares
          of the last move to be unmade are highlighted.

   Highlight with Arrow
          Causes  the  highlighting described in Highlight Last Move to be
          done by drawing an arrow between  the  highlighted  squares,  so
          that  it is visible even when the width of the grid lines is set
          to zero.

   One-Click Moving
          If this option is on, XBoard does not wait for you to click both
          the  from-  and the to-square, or drag the piece, but performs a
          move as soon as  it  is  uniqely  specified.   This  applies  to
          clicking  an  own  piece  that  only  has  a  single legal move,
          clicking an empty square or opponent piece  where  only  one  of
          your  pieces  can  move (or capture) to.  Furthermore, a double-
          click on a piece that can only make a single capture will  cause
          that  capture  to be made.  Promoting a Pawn by clicking its to-
          square will suppress the promotion popup or  other  methods  for
          selecting an under-promotion, and make it promote to Queen.

   Periodic Updates
          If  this  option is off (or if you are using a chess engine that
          does not support periodic updates),  the  analysis  window  will
          only be updated when the analysis changes. If this option is on,
          the Analysis Window will be updated every two seconds.

   Play Move(s) of Clicked PV
          If this option is on, right-clicking on the first move of  a  PV
          or  on  the  data  fields left of it in the Engine Output window
          during Analyze mode will cause the first move of that PV  to  be
          played.   You  could  also play more than one (or no) PV move by
          moving the mouse to engage in the PV  walk  such  a  right-click
          will  start, to seek out another position along the PV where you
          want to  continue  the  analysis,  before  releasing  the  mouse
          button.  Clicking on later moves of the PV only temporarily show
          the moves for as long you keep the mouse  button  down,  without
          adding them to the game.

   Ponder Next Move
          If  this option is off, the chess engine will think only when it
          is on move.  If the option is on, the  engine  will  also  think
          while  waiting  for you to make your move.  The shifted `Ctrl-P'
          key is a keyboard equivalent.

   Popup Exit Message
          If this option is on, when XBoard wants  to  display  a  message
          just  before  exiting, it brings up a modal dialog box and waits
          for you to click OK before  exiting.   If  the  option  is  off,
          XBoard  prints  the message to standard error (the terminal) and
          exits immediately.

   Popup Move Errors
          If this option is off, when you make an error in moving (such as
          attempting an illegal move or moving the wrong color piece), the
          error message is displayed in the message area.  If  the  option
          is  on,  move  errors are displayed in small pop-up windows like
          other errors.   You  can  dismiss  an  error  pop-up  either  by
          clicking  its  OK  button  or by clicking anywhere on the board,
          including down-clicking to start a move.

   Scores in Move List
          If this option is on, XBoard will display the depth and score of
          engine moves in the Move List, in the format of a PGN comment.

   Show Coords
          If  this  option  is  on,  XBoard displays algebraic coordinates
          along the board's left and bottom edges.

   Show Target Squares
          If this option is on, all squares a piece that  is  'picked  up'
          with  the  mouse  can  legally move to are highighted with a fat
          colored dot in yellow (non-captures) or red (captures).  Special
          moves  might have other colors (e.g. magenta for promotion, cyan
          for a partial move).  Legality testing must be on for XBoard  to
          know  how  the  piece  moves, but with legality testing off some
          engines would offer this information.

   Sticky Windows
          Controls whether the auxiliary windows such  as  Engine  Output,
          Move  History and Evaluation Graph should keep touching XBoard's
          main window when you move the latter.

   Test Legality
          If this option is on, XBoard tests whether the moves you try  to
          make  with  the  mouse  are legal and refuses to let you make an
          illegal  move.   The  shifted  `Ctrl-L'  key   is   a   keyboard
          equivalent.   Moves loaded from a file with `Load Game' are also
          checked.  If the option is off, all moves are accepted, but if a
          local  chess engine or the ICS is active, they will still reject
          illegal moves.  Turning off this option is  useful  if  you  are
          playing  a  chess  variant  with  rules  that  XBoard  does  not
          understand.  (Bughouse, suicide, and  wild  variants  where  the
          king  may  castle  after  starting  on  the d file are generally
          supported with Test Legality on.)

   Top-Level Dialogs
          Controls whether the auxiliary windows will appear as  icons  in
          the  task  bar  and  independently controllable, or whether they
          open and minimize all together with the main window.

   Flash Moves
   Flash Rate
          If this option is non-zero, whenever a move  is  completed,  the
          moved  piece  flashes the specified number of times.  The flash-
          rate setting determines how rapidly this flashing occurs.

   Animation Speed
          Determines the duration (in msec) of  an  animation  step,  when
          `Animate Moving' is swiched on.

   Zoom factor in Evaluation Graph
          Sets  the  value of the `evalZoom' option, indicating the factor
          by which the score interval (-1,1) should be  blown  up  on  the
          vertical axis of the Evaluation Graph.

   Time Control
   Pops  up  a  sub-menu  where  you  can  set the time-control parameters
   interactively.  The shifted `Alt+T' key is a keyboard equivalent.

   classical
          Selects classical TC, where the game is devided into sessions of
          a certain number of moves, and after each session the start time
          is again added to the clocks.

   incremental
          Selects a TC mode where the game will start with a base time  on
          the clocks, and after every move an 'increment' will be added to
          it.

   fixed max
          Selects a TC mode where you have to  make  each  move  within  a
          given  time,  and  any left-over time is not carried over to the
          next move.

   Divide entered times by 60
          To allow entering  of  sub-minute  initial  time  or  sub-second
          increment,  you  can  tick  this checkbox.  The initial time can
          then be entered in seconds, and the increment in units  of  1/60
          second.

   Moves per session
          Sets the duration of a session for classical time control.

   Initial time
          Time  initially  on  the  clock in classical or incremental time
          controls.  In classical time controls this  time  will  also  be
          added to the clock at the start of ach new session.

   Increment or max
          Time to be added to the clock after every move in incremental TC
          mode.  Fore 'fixed maximum' TC mode, the clock will  be  set  to
          this  time  before every move, irrespective of how much was left
          on that clock.

   Time-Odds factors
          When these options are set to 1 the clocks of the  players  will
          be  set according to the other specified TC parameters.  Players
          can be given unequal times by specifying a time-odds factor  for
          one  of them (or a different factor for both of them).  Any time
          received by that player will then be divided by that factor.

   Adjudications
   Pops  up  a  sub-menu  where  you  can  enable   or   disable   various
   adjudications  that  XBoard  can  perform  in engine-engine games.  The
   shifted `Alt+J' key is a keyboard equivalent.

   Detect all Mates
          When this option is  set  XBoard  will  terminate  the  game  on
          checkmate  or  stalemate,  even  if the engines would not do so.
          Only works when `Test Legality' is on.

   Verify Engine Result Claims
          When this option is set XBoard will verify engine result claims,
          (forfeiting engines that make false claims), rather than naively
          beleiving the engine.  Only works when `Test Legality' is on.

   Draw if Insufficient Mating Material
          When this option is set XBoard will terminate games with a  draw
          result  when  so  little  material is left that checkmate is not
          longer possible.  In normal Chess this applies to KK,  KNK,  KBK
          and  some positions with multiple Bishops all on the same square
          shade.  Only works when `Test Legality' is on.

   Adjudicate Trivial Draws
          When this option is set XBoard will terminate games with a  draw
          result in positions that could only be won against an idiot.  In
          normal Chess this applies to KNNK, KRKR, KBKN,  KNKN,  and  KBKB
          with  Bishops  on  different  square  shades.  KQKQ will also be
          adjudicated a draw (possibly  unjustly  so).   Only  works  when
          `Test Legality' is on.

   N-Move Rule
          When  this  option  is  set to a value differnt from zero XBoard
          will terminate games with a  draw  result  after  the  specified
          number  of  reversible  moves  (i.e.  without  captures  or pawn
          pushes) is made.

   N-fold Repeats
          When this option is set to a value larger than  1,  XBoard  will
          terminate  games  with  a draw result when the same position has
          occurred the specified number of times.

   Draw after N Moves Total
          When this option is set to a value different from  zero,  XBoard
          will  terminate  games  with a draw result after that many moves
          have been played.  Useful in automated engine-engine matches, to
          prevent  one game between stubborn engines will soak up all your
          computer time.

   Win / Loss Threshold
          When this option is set to a value different from  zero,  XBoard
          will  terminate games as a win when both engines agree the score
          is above the specified value  (interpreted  as  centi-Pawn)  for
          three successive moves.

   Negate Score of Engine #1
   Negate Score of Engine #2
          These  options  should  be  used with engines that report scores
          from the white point of view, rather than the  side-to-move  POV
          as  XBoard  would otherwise assume when adjudicating games based
          on the engine score.  When the  engine  is  installed  with  the
          extra  option  `firstScoreIsAbs'  true  in  the  engine list the
          option would be automatically set  when  the  engine  is  loaded
          throuhgh  the Engine menu, or with the `fe' or `se' command-line
          option.

   ICS Options
   Pops up a menu dialog where options can  be  set  that  affect  playing
   against an Internet Chess Server.

   Auto-Kibitz
          Setting  this option when playing with or aginst a chess program
          on an ICS will cause the last line of  thinking  output  of  the
          engine  before  its  move  to  be  sent  to  the ICS in a kibitz
          command.  In addition, any kibitz message received  through  the
          ICS  from  an  opponent  chess  program  will be diverted to the
          engine-output window, (and suppressed in the console), where you
          can play through its PV by right-clicking it.

   Auto-Comment
          If  this  option  is  on,  any remarks made on ICS while you are
          observing or playing a game are recorded as  a  comment  on  the
          current  move.  This includes remarks made with the ICS commands
          `say', `tell', `whisper',  and  `kibitz'.   Limitation:  remarks
          that you type yourself are not recognized; XBoard scans only the
          output from ICS, not the input you type to it.

   Auto-Observe
          If this option is on and you add a player to your `gnotify' list
          on  ICS,  XBoard will automatically observe all of that player's
          games, unless you are doing something else (such as observing or
          playing  a  game  of  your  own) when one starts.  The games are
          displayed from the point of view of the player on  your  gnotify
          list;  that  is,  his  pawns  move from the bottom of the window
          towards the top.  Exceptions:  If both players in a game are  on
          your gnotify list, if your ICS `highlight' variable is set to 0,
          or if the ICS you are using does not properly support  observing
          from  Black's  point of view, you will see the game from White's
          point of view.

   Auto-Raise Board
          If this option is on, whenever a new game begins, the chessboard
          window is deiconized (if necessary) and raised to the top of the
          stack of windows.

   Auto Save
          If this option is true, at the end of every game XBoard  prompts
          you for a file name and appends a record of the game to the file
          you specify.  Disabled if the `saveGameFile' command-line option
          is  set,  as  in  that case all games are saved to the specified
          file.  See Load and Save options.

   Background Observe while Playing
          Setting this option will make XBoard  suppress  display  of  any
          boards  from  observed games while you are playing.  Instead the
          last such board will be remembered, and shown to  you  when  you
          right-click the board.  This allows you to peek at your bughouse
          partner's game when you want, without disturbing your  own  game
          too much.

   Dual Board for Background-Observed Game
          Setting  this  option  in  combination with `Background Observe'
          will display boards of observed games while you are playing on a
          second board next to that of your own game.

   Get Move List
          If  this  option is on, whenever XBoard receives the first board
          of a new ICS game (or a  different  game  from  the  one  it  is
          currently  displaying), it retrieves the list of past moves from
          the ICS.  You can then review the moves with the  `Forward'  and
          `Backward'  commands  or  save them with `Save Game'.  You might
          want to turn off this option if you are observing several  blitz
          games  at  once, to keep from wasting time and network bandwidth
          fetching the move lists over  and  over.   When  you  turn  this
          option  on  from  the  menu, XBoard immediately fetches the move
          list of the current game (if any).

   Quiet Play
          If this option is on, XBoard will  automatically  issue  an  ICS
          `set shout 0' command whenever you start a game and a `set shout
          1' command whenever you finish  one.   Thus,  you  will  not  be
          distracted by shouts from other ICS users while playing.

   Seek Graph
          Setting  this  option  will  cause XBoard to display an graph of
          currently active seek ads when you left-click  the  board  while
          idle and logged on to an ICS.

   Auto-Refresh Seek Graph
          In  combination  with  the  `Seek  Graph' option this will cause
          automatic update of the seek graph while it is  up.   This  only
          works on FICS and ICC, and requires a lot of bandwidth on a busy
          server.

   Auto-InputBox PopUp
          Controls whether the ICS Input Box  will  pop  up  automatically
          when  you  type a printable character to the board window in ICS
          mode.

   Quit After Game
          Controls whether XBoard will automatically disconnect  from  the
          ICS and close when the game currently in progress finishes.

   Premove
   Premove for White
   Premove for Black
   First White Move
   First Black Move
          If  the  `Premove'  option is on while playing a game on an ICS,
          you can register your next planned move before it is your  turn.
          Move  the  piece  with  the  mouse  in the ordinary way, and the
          starting and ending squares will be highlighted with  a  special
          color  (red  by  default).   When  it  is  your  turn,  if  your
          registered  move  is  legal,  XBoard  will  send   it   to   ICS
          immediately;  if  not,  it  will  be  ignored and you can make a
          different move.  If you change your  mind  about  your  premove,
          either  make  a  different move, or double-click on any piece to
          cancel the move entirely.

          You can also enter premoves for the first white and black  moves
          of the game.

   Alarm
   Alarm Time
          When this option is on, an alarm sound is played when your clock
          counts down to the `Alarm Time' in an ICS  game.   (By  default,
          the time is 5 seconds, but you can specify other values with the
          Alarm Time spin control.)  For games  with  time  controls  that
          include  an  increment, the alarm will sound each time the clock
          counts down to the icsAlarmTime.  By default, the alarm sound is
          the  terminal  bell,  but on some systems you can change it to a
          sound file using the soundIcsAlarm option; see below.

   Colorize Messages
          Ticking this options causes various types of ICS messages do  be
          displayed  with different foreground or background colors in the
          console.  The colors can be individually selected for each type,
          through the accompanying text edits.

   -icsMenu string
          The string defines buttons for the `ICS text menu'.  Each button
          definition consists of two semi-colon-terminated pieces of text,
          the  first  giving  the  label  to be written on the button, the
          second the text that should be sent to the ICS when that  button
          is  pressed.   This  second  part  (the  'message')  can contain
          linefeeds, so that you can send multiple ICS commands  with  one
          button.   Some  message in the text, all starting with a $-sign,
          are treated special.  When the  message  contains  '$input',  it
          will  not  be  sent  directly to the ICS, but will be put in the
          input field of the `ICS Chat/Console', with the text  cursor  at
          the  indicated  place,  so  you  can addsome text to the message
          before sending it off.  If such a message starts with '$add'  it
          will  be  placed  behind any text that is already present in the
          input field, otherwise this field will be  cleared  first.   The
          word  '$name'  occurring  in the message will be replaced by the
          word  that  was  clicked  (through  button   3)   in   the   ICS
          Chat/Console.  There are two special messages: '$chat' will open
          a new chat with the clicked  word  in  the  chat-partner  field,
          while  '$copy'  will copy the text that is currently-selected in
          the ICS Console to the clipboard.  An example of a text menu  as
          it might occur in your settings file (where you could edit it):

              -icsMenu {copy;$copy;
              list players;who;
              list games;games;
              finger (player);finger $name;
              bullet (player);match $name 1 1 r;
              blitz (player);match $name 5 1 r;
              rapid (player);match $name 30 0 r;
              open chat (player);$chat;
              tell (player);tell $name $input;
              ask pieces;ptell Please give me a $input;
              P;$add Pawn $input;
              N;$add Knight $input;
              B;$add Bishop $input;
              R;$add Rook $input;
              Q;$add Queen $input;
              }

   Tournament Options
   Summons  a  dialog  where  you  can  set  options important for playing
   automatic matches between two or more chess programs (e.g. by using the
   `Machine Match' menu item in the `Mode' menu).

   Tournament file
          To run a tournament, XBoard needs a file to record its progress,
          so it can resume the tourney when it is interrupted.   When  you
          want  to  conduct anything more complex than a simple two-player
          match with the currently loaded engines, (i.e. when you select a
          list  of  participants),  you  must  not leave this field blank.
          When you enter the name of an existing tournament  file,  XBoard
          will  ignore  all  other input specified in the dialog, and will
          take the corresponding info from  that  tournament  file.   This
          resumes  an interrupted tournament, or adds another XBoard agent
          playing games for  it  to  those  that  are  already  doing  so.
          Specifying  a  not-yet-existing file will cause XBoard to create
          it, according to the tournament parameters specified in the rest
          of  the  dialog,  before  it  starts  the  tournament  on  'OK'.
          Provided that you specify participants; without participants  no
          tournament file will be made, but other entered values (e.g. for
          the file with opening positions)  will  take  effect.   Default:
          configured by the `defaultTourneyName' option.

   Sync after round
   Sync after cycle
          The  sync  options, when on, will cause WinBoard to refrain from
          starting games of the next round or cycle before  all  games  of
          the  previous  round  or  cycle  are  finished.  This guarantees
          correct ordering in the games file, even  when  multiple  XBoard
          instances  are  concurrently playing games for the same tourney.
          Default: sync after cycle, but not after round.

   Select Engine
   Tourney participants
          From the Select Engine listbox you can pick an engine from  your
          list  of engines registered in the settings file, to be added to
          the tournament.  The engines selected so far will be  listed  in
          the  'Tourney  participants'  memo.  The latter is a normal text
          edit, so you can use normal  text-editing  functions  to  delete
          engines  you  selected  accidentally,  or  change  their  order.
          Typing names here yourself is  not  recommended,  because  names
          that  do  not  exactly match one of the names from the selection
          listbox will lead to undefined behavior.

   Tourney type
          Here you can specify the type of tournament you want.   XBoard's
          intrinsic  tournament  manager  support round-robins (type = 0),
          where  each  participant  plays  every  other  participant,  and
          (multi-)gauntlets,  where  one  (or  a  few) so-called 'gauntlet
          engines' play an independent set of opponents.   In  the  latter
          case,  you  specify the number of gauntlet engines.  E.g. if you
          specified 10 engines, and tourney type = 2, the first 2  engines
          each  play  the  remaining 8.  A value of -1 instructs XBoard to
          play Swiss; for this to work an external pairing engine must  be
          specified  through the `pairingEngine' option.  Each Swiss round
          will be considered a tourney cycle in that case.  Default:0

   Number of tourney cycles
   Default Number of Games in Match
          You can specify tourneys where every  two  opponents  play  each
          other  multiple  times.   Such multiple games can be played in a
          row, as specified by the 'number of games per  pairing',  or  by
          repeating  the  entire  tournament  schedule  a  number of times
          (specified by the 'number of tourney cycles').  The total number
          of  times  two  engines  meet  will be the product of these two.
          Default is 1 cycle; the number of games per pairing is the  same
          as  the  default  number of match games, stored in your settings
          file through the `defaultMatchGames' option.

   Pause between Match Games
          Time (in milliseconds) XBoard waits before starting a  new  game
          after  a  previous  match  or  tournament game finishes.  Such a
          waiting period is important for  engines  that  do  not  support
          'ping',  as  these sometimes still produce a move long after the
          game finished because of the opponent resigning, which would  be
          mistaken  for  a  move  in  the  next  game  if that had already
          started.

   Save Tourney Games on
          File where the tournament games are saved (duplicate of the item
          in the `Save Game Options').

   Game File with Opening Lines
   File with Start Positions
   Game Number
   Position Number
   Rewind Index after this many Games
          These  items  optionally specify the file with move sequences or
          board positions  the  tourney  games  should  start  from.   The
          corresponding numbers specify the number of the game or position
          in the file.  Here a value -1 means automatic  stepping  through
          all  games  on  the file, -2 automatic stepping every two games.
          The Rewind-Index parameter causes a stepping index to  reset  to
          one  after  reaching a specified value.  A setting of -2 for the
          game number will also  be  effective  in  a  tournament  without
          specifying  a  game file, but playing from the GUI book instead.
          In this case the first (odd) games will randomly select from the
          book,  but  the  second  (even) games will select the same moves
          from the book as the previous game.  (Note  this  leads  to  the
          same  opening  only if both engines use the GUI book!)  Default:
          No game or position file will be used. The default index if such
          a file is used is 1.

   Disable own engine books by default
          Setting  this  option  reverses the default situation for use of
          the GUI opening book in tournaments from what  it  normally  is,
          namely  not using it.  So unless the engine is installed with an
          option to explicitly specify it should  not  use  the  GUI  book
          (i.e.  `-firstHasOwnBookUCI  true'),  it will be made to use the
          GUI book.

   Replace Engine
   Upgrade Engine
          With these two buttons you can  alter  the  participants  of  an
          already  running  tournament.   After  opening the Match Options
          dialog on an XBoard that is playing for the  tourney,  you  will
          see  all  the  tourney parameters in the dialog fields.  You can
          then replace the name of  one  engine  by  that  of  another  by
          editing  the  `participants'  field.  (But preserve the order of
          the others!)  Pressing the button  after  that  will  cause  the
          substitution.  With the `Upgrade Engine' button the substitution
          will only affect future games.  With `Replace Engine' all  games
          the  substituted  engine has already played will be invalidated,
          and they will be replayed with the substitute engine.   In  this
          latter case the engine must not be playing when you do this, but
          otherwise there is no need to  pause  the  tournament  play  for
          making a substitution.

   Clone Tourney
          Pressing  this  button  after  you  have  specified  an existing
          tournament file will copy the contents  of  the  latter  to  the
          dialog,  and  then  puts  the  originally  proposed name for the
          tourney file back.  You can then run a  tourney  with  the  same
          parameters  (possibly  after  changing  the proposed name of the
          tourney file for the new tourney) by pressing 'OK'.

   Continue Later
          Pressing the `Continue Later' button confirms the current  value
          of  all  items  in  the  dialog  and  closes  it,  but  will not
          automatically start the tournament.  This allows you  to  return
          to  the  dialog  later  without  losing the settings you already
          entered, to adjust paramenters through other menu dialogs.  (The
          `Common  Engine  Setting',  `Time Control' and `General Options'
          dialogs can be accessed without closing the `Tournament Options'
          dialog  through  the  respective  buttons  at  the bottom of the
          latter.)

   Load Game Options
   Summons a dialog where you can set  options  that  control  loading  of
   games.

   Auto-Display Tags
          Setting this option causes a window to pop up on loading a game,
          displaying the PGN Tags for that game.

   Auto-Display Comment
          Setting this option causes a window to pop up whenever there  is
          a comment to (or variation on) the currently displayed move.

   Auto-Play speed of loaded games
          This  option  sets  the  number  of seconds between moves when a
          newly loaded game is auto-playing.  A decimal  fraction  on  the
          number  is  understood.   Setting  it  to -1 disables auto-play,
          staying in the start position of  the  game  after  the  loading
          completes.   Setting  it  to  0 will instantly move to the final
          position of the game.  The `Auto-Play speed'  is  also  used  to
          determine the analysis time for each move during `Analyze Game'.
          Note that auto-playing (including game analysis) can be  stopped
          at any time through the `P' button above the board.

   options to use in game-viewer mode
          Specifies  the  options automatically set when XBoard is invoked
          with the option `-viewer' on its command line,  as  will  happen
          when it is started in response to clicking a PGN game file.  The
          default setting would start XBoard without engine  (due  to  the
          `-ncp'  option),  but if you want it to automatically start with
          your favorite engine, and  automatically  start  analyzing,  you
          could  include  the  necessary  options for that here (e.g. `-fe
          <engine> -initialMode analysis').

   Thresholds for position filtering in game list
          The following options can be set to limit the display  of  games
          in  the  `Game  List' window to a sub-set, meeting the specified
          criteria.

   Elo of strongest player at least

   Elo of weakest player at least
          Games with  an  Elo  tag  specifying  a  lower  rating  for  the
          mentioned player will not be diplayed in the `Game List'.

   No games before year
          Games  with  a  Date  tag  before the specified year will not be
          diplayed in the `Game List'.

   Final nr of pieces
          A single number or a range (like 8-10) can be entered here,  and
          will  cause  only  games  where  the  number of men in the final
          position is in the given range will be  diplayed  in  the  `Game
          List'.

   Minimum nr consecutive positions
          Specifies  for  how  many  consecutive  positions the more fuzzy
          position-matching criteria have to  be  satisfied  in  order  to
          count as a match.

   Search mode
   find position
          XBoard  can select games for display in the `Game List' based on
          whether (in addition to the conditions on  the  PGN  tags)  they
          contain a position that matches the position currently displayed
          on the board,  by  pressing  the  `find  position'  or  `narrow'
          buttons  in  the  `Game List' window.  The `Search mode' setting
          determines what counts as match.  You can search  for  an  exact
          match, a position that has all shown material in the same place,
          but might contain additional material, a position that  has  all
          Pawns  in  the  same  place,  but  can  have  the shown material
          anywhere,  a  position  that     can  have  all  shown  material
          anywhere, or a position that has material between certain limits
          anywhere.  For the latter you have to place  the  material  that
          must minimally be present in the four lowest ranks of the board,
          and optional additional material in the four  highest  ranks  of
          the  board.   You  can  request  the  optional  material  to  be
          balanced, i.e. equal for white and black.

   narrow The  `narrow'  button  is  similar  in  function  to  the  `find
          position'  button,  but  only  searches  in the already selected
          games, rather than the complete game file, and can thus be  used
          to refine a search based on multiple criteria.

   Also match reversed colors
   Also match left-right flipped position
          When  looking  for  matching  positions rather than by material,
          these settings determine whether mirror images  (in  case  of  a
          vertical  flip  in combination with color reversal) will be also
          considered a match.  The  left-right  flipping  is  only  useful
          after all castling rights have expired (or in Xiangqi).

   Save Game Options
   Summons   a   dialog  where  you  can  specify  whether  XBoard  should
   automatically save files of games when they finish, and where  and  how
   to do that.

   Auto-Save Games
          When  set XBoard will automatically save games on a file as they
          finish.  (Not when  you  abort  them  by  pressing  `New  Game',
          though!)   It  will either prompt you for a filename, or use the
          file specified  by the `saveGameFile' option.

   Own Games Only
          Setting this option will exclude games by others observed on  an
          Internet Chess Server from automatic saving.

   Save Games on File
          Name  of  the file on which games should be saved automatically.
          Games are always appended to the file, and will never  overwrite
          anything.

   Save Final Position on File
          When  a  name  is  defined,  the  final position of each game is
          appended to the mentioned file.

   PGN Event Header
          Specifies the name of the event used in the PGN event tag of new
          games that you create.

   Old Save Style
          Saves games in an obsolete and now long forgotten format, rather
          than as PGN. Never use this for orthodox Chess!

   Include Number Tag in tourney PGN
          When on this option will cause the non-standard 'Number' tag  to
          be written in any game saved in PGN format.  It will contain the
          unique number of the game in the tourney.  (As  opposed  to  the
          'Round' tag, which can be shared by many games.)

   Save Score/Depth Info in PGN
          When  on  this option will cause the score and depth at which it
          was calculated by an engine, and (when available) thinking  time
          to  be  saved  with  the  move  as a comment to the move, in the
          format {score/depth time}.  Here 'score'is in  pawn  units  from
          the  point  of  view  of the player that made the move, with two
          digits behind the decimal Pawn.

   Save Out-of-Book Info in PGN
          When on this option causes the  score  of  the  first  move  the
          engine made after coming out of book in an 'Annotator' PGN tag.

   Game List
   Pops  up  a dialog where you can select the PGN tags that should appear
   on the lines in the `Game List', and their order.

   Sound Options
   Summons a dialog where you can specify the sounds that should accompany
   various events that can occur in XBoard.  Most events are only relevant
   to ICS play, but the move sound is an important  exception.   For  each
   event  listed  in  the  dialog,  you can select a standard sound from a
   menu.

   Sound Program
          Specifies the command XBoard should invoke to play sounds.   The
          specified  text  will be suffixed by the name of the sound file,
          and then run as a command.

   Sounds Directory
          Specifies the directory where XBoard will look  for  files  with
          the names of the standard sounds.

   User WAV File
          When  we  type a filename here, it can be assigned to the events
          by selecting `Above WAV File' from the drop downs.

   Try-Out Sound
   Play   The 'event' triggering the Try-Out  sound  is  pressing  of  the
          `Play' button behind it.  This allows you to judge the sounds.

   Save Settings Now
   Selecting  this  menu  item  causes  the  current XBoard settings to be
   written to the settings file, (.xboardrc in your  home  directory),  so
   they  will  also apply in future sessions.  Note that some settings are
   'volatile', and are not saved, because XBoard considers it too unlikely
   that  you want those to apply next time.  In particular this applies to
   the Chess program, and all options giving information  on  those  Chess
   programs (such as their directory, if they have their own opening book,
   if they are UCI or native XBoard), or  the  variant  you  are  playing.
   Such options would still be understood when they appear in the settings
   file in case they were put there with the aid of  a  text  editor,  but
   they would disappear from the file as soon as you save the settings.

   Note  that  XBoard no longer pays attention to options values specified
   in the .Xresources file.  (Specifying key  bindings  there  will  still
   work,  though.)   To alter the default of volatile options, you can use
   the  following  method:  Rename  your  ~/.xboardrc  settings  file  (to
   ~/.yboardrc,  say),  and  create  a  new  file  ~/.xboardrc, which only
   contains the options

       -settingsFile  ~/.yboardrc
       -saveSettingsFile  ~/.yboardrc

   This will cause your settings to be saved on ~/.yboardrc in the future,
   so  that  ~/.xboardrc  is  no  longer overwritten.  You can then safely
   specify volatile options in ~/.xboardrc, either  before  or  after  the
   settingsFile  options.   Note  that when you specify persistent options
   after  the  settingsFile  options  in  this   ~/.xboardrc,   you   will
   essentially turn them into volatile options with the specified value as
   default, because that value will overrule the  value  loaded  from  the
   settings file (being read later).

   Save Settings on Exit
   Setting this option has no immediate effect, but causes the settings to
   be saved when you quit XBoard. What happens then is otherwise identical
   to what happens when you use select "Save Settings Now", see there.

   Help Menu
   Info XBoard
          Displays  the  XBoard  documentation  in  info format.  For this
          feature to work, you must have the GNU info program installed on
          your  system,  and the file `xboard.info' must either be present
          in the current working directory, or have been installed by  the
          `make install' command when you built XBoard.

   Man XBoard
          Displays  the XBoard documentation in man page format.  The `F1'
          key is a keyboard equivalent.  For this  feature  to  work,  the
          file  `xboard.6'  must have been installed by the `make install'
          command when you built XBoard, and the directory it  was  placed
          in must be on the search path for your system's `man' command.

   About XBoard
          Shows the current XBoard version number.

   Other Shortcut Keys
   Show Last Move
          By hitting `Enter' the last move will be re-animated.

   Load Next Game
          Loads  the  next game from the last game record file you loaded.
          The `Alt+PgDn' key triggers this action.

   Load Previous Game
          Loads the previous game from  the  last  game  record  file  you
          loaded.  The `Alt+PgUp' key triggers this action.  Not available
          if the last game was loaded from a pipe.

   Reload Same Game
          Reloads the last game you loaded.  Not  available  if  the  last
          game was loaded from a pipe.  Currently no keystroke is assigned
          to this ReloadGameProc.

   Reload Same Position
          Reloads the last position you loaded.  Not available if the last
          position  was  loaded  from  a  pipe.  Currently no keystroke is
          assigned to this ReloadPositionProc.

   In the Xaw build of XBoard you can add or remove  shortcut  keys  using
   the X resources `paneA.translations'.  Here is an example of what could
   go into your `.Xdefaults' file:

       XBoard*paneA.translations: \
         Shift<Key>?: MenuItem(Help.About) \n\
         Ctrl<Key>y: MenuItem(Action.Accept) \n\
         Ctrl<Key>n: MenuItem(Action.Decline) \n\
         Ctrl<Key>i: MenuItem(Nothing)

   So the key should always be bound to the action  'MenuItem',  with  the
   (hierarchical)  name  of  the  menu  item as argument.  There are a few
   actions available for which no menu  item  exists:  Binding  a  key  to
   `Nothing'  makes  it  do  nothing,  thus removing it as a shortcut key.
   Other such functions that can be bound to keys are:

       AboutGame, DebugProc (switches the -debug option on or off),
       LoadNextGame, LoadPrevGame, ReloadGame, ReloadPosition.

OPTIONS

   This section documents the command-line options to XBoard.  You can set
   these options in two ways: by typing them on the shell command line you
   use  to  start  XBoard,  or  by  editing  the  settings  file  (usually
   ~/.xboardrc)  to  alter  the value of the setting that was saved there.
   Some of the options cannot be changed while XBoard is  running;  others
   set  the  initial  state  of items that can be changed with the Options
   menu.

   Most of the options have both a long name and a short name. To  turn  a
   boolean  option  on  or off from the command line, either give its long
   name followed by the value true or false (`-longOptionName  true'),  or
   give  just  the short name to turn the option on (`-opt'), or the short
   name preceded by `x' to turn the option off (`-xopt'). For options that
   take strings or numbers as values, you can use the long or short option
   names interchangeably.

   Chess Engine Options
   -tc or -timeControl minutes[:seconds]
          Each player begins with  his  clock  set  to  the  `timeControl'
          period.    Default:   5   minutes.    The   additional   options
          `movesPerSession' and `timeIncrement' are mutually exclusive.

   -mps or -movesPerSession moves
          When both players  have  made  `movesPerSession'  moves,  a  new
          `timeControl'  period  is  added  to  both  clocks.  Default: 40
          moves.

   -inc or -timeIncrement seconds
          If this  option  is  specified,  `movesPerSession'  is  ignored.
          Instead,  after  each player's move, `timeIncrement' seconds are
          added to his clock.  Use `-inc 0' if you  want  to  require  the
          entire  game  to  be played in one `timeControl' period, with no
          increment.  Default: -1, which specifies `movesPerSession' mode.

   -clock/-xclock or -clockMode true/false
          Determines whether or  not  to  display  the  chess  clocks.  If
          clockMode  is false, the clocks are not shown, but the side that
          is to play next is still highlighted. Also, unless  `searchTime'
          is set, the chess engine still keeps track of the clock time and
          uses it to determine how fast to make its moves.

   -shoMoveTime true/false
          When this option is set the time that has been thought about the
          current  move  will  be  displayed  behind the remaining time in
          parentheses (in seconds).  Default: false.

   -st or -searchTime minutes[:seconds]
          Tells the chess engine to spend at most the given amount of time
          searching  for each of its moves. Without this option, the chess
          engine chooses its search time based on the number of moves  and
          amount  of  time remaining until the next time control.  Setting
          this option also sets clockMode to false.

   -depth or -searchDepth number
          Tells the chess engine to look ahead at most the given number of
          moves  when  searching  for a move to make. Without this option,
          the chess engine chooses its search depth based on the number of
          moves  and amount of time remaining until the next time control.
          With the option, the engine will cut off its search early if  it
          reaches the specified depth.

   -firstNPS number
   -secondNPS number
          Tells the chess engine to use an internal time standard based on
          its node count, rather then wall-clock time, to make its  timing
          decisions.   The  time  in virtual seconds should be obtained by
          dividing the node count  through  the  given  number,  like  the
          number  was  a rate in nodes per second.  Xboard will manage the
          clocks in accordance with this, relying on the number  of  nodes
          reported  by  the  engine  in  its thinking output. If the given
          number equals zero, it can obviously  not  be  used  to  convert
          nodes to seconds, and the time reported by the engine is used to
          decrement the XBoard clock in stead. The engine is  supposed  to
          report in CPU time it uses, rather than wall-clock time, in this
          mode. This option can  provide  fairer  conditions  for  engine-
          engine  matches  on  heavily  loaded machines, or with very fast
          games (where the wall clock is too inaccurate).   `showThinking'
          must be on for this option to work. Default: -1 (off).  Not many
          engines might support this yet!

   -firstTimeOdds factor
   -secondTimeOdds factor
          Reduces the time given to the  mentioned  engine  by  the  given
          factor.   If  pondering  is off, the effect is indistinguishable
          from what would happen if the engine was running on  an  n-times
          slower machine. Default: 1.

   -timeOddsMode mode
          This  option  determines  how  the  case  is  handled where both
          engines have a time-odds handicap.  If mode=1, the  engine  that
          gets  the  most  time  will  always  get  the  nominal  time, as
          specified by the time-control options, and its  opponent's  time
          is  renormalized accordingly.  If mode=0, both play with reduced
          time. Default: 0.

   -hideThinkingFromHuman true/false
          Controls the Hide Thinking option. See  Options  Menu.  Default:
          true.   (Replaces  the  Show-Thinking  option  of  older  xboard
          versions.)

   -thinking/-xthinking or -showThinking true/false
          Forces the engine to send thinking output to xboard.  Used to be
          the  only  way  to  control  if thinking output was displayed in
          older xboard versions, but as the thinking output in xboard  4.3
          is  also  used for several other purposes (adjudication, storing
          in PGN file) the display of it is  now  controlled  by  the  new
          option Hide Thinking. See Options Menu. Default: false.  (But if
          xboard needs the thinking output for some purpose, it makes  the
          engine send it despite the setting of this option.)

   -ponder/-xponder or -ponderNextMove true/false
          Sets  the  Ponder  Next  Move  menu  option.  See  Options Menu.
          Default: true.

   -smpCores number
          Specifies the maximum number of CPUs an SMP engine is allowed to
          use.   Only  works for engines that support the XBoard/WinBoard-
          protocol cores feature.

   -mg or -matchGames n
          Automatically runs an n-game match between  two  chess  engines,
          with    alternating    colors.    If   the   `loadGameFile'   or
          `loadPositionFile' option is set, XBoard starts each  game  with
          the  given  opening  moves or the given position; otherwise, the
          games start with the standard initial chess  position.   If  the
          `saveGameFile'  option  is  set,  a move record for the match is
          appended to the specified file. If the `savePositionFile' option
          is  set, the final position reached in each game of the match is
          appended to the specified file. When the match is  over,  XBoard
          displays  the  match  score  and exits. Default: 0 (do not run a
          match).

   -mm/-xmm or -matchMode true/false
          Setting  `matchMode'  to   true   is   equivalent   to   setting
          `matchGames' to 1.

   -sameColorGames n
          Automatically  runs  an  n-game match between two chess engines,
          without alternating colors.  Otherwise the same applies  as  for
          the `-matchGames' option, over which it takes precedence if both
          are specified. (See there.)  Default: 0 (do not run a match).

   -epd   This option puts XBoard in a special mode for solving EPD  test-
          suites,  for  the  entire duration of the session.  In this mode
          games are aborted after a single move, and  that  move  will  be
          compared  with the best-move or avoid-move from the EPD position
          description from which the 'game' was started.  Playing  a  best
          move  counts  as  a  win,  playing  an avoid move as a loss, and
          playing any other move counts as a draw.  This option should  be
          used in combination with match mode, and an EPD file of starting
          positions with an  auto-incrementing  index.   Color  assignment
          will  be  such  that  the  first engine plays all moves, and the
          second  engine  will  be  never  involved.   The   results   for
          individual positions, as well as the time used for solving them,
          will be reported in the lower pane of the Engine Output window.

   -fcp or -firstChessProgram program
   -scp or -secondChessProgram program
          Name of first and second chess engine, respectively.   A  second
          chess engine is started only in Two Machines (match) mode, or in
          Analyze mode with two engines.  The second engine is by  default
          the   same   as  the  first.   Default  for  the  first  engine:
          `fairymax'.

   -fe or -firstEngine nickname
   -se or -secondEngine nickname
          This is an alternative  to  the  `fcp'  and  `scp'  options  for
          specifying  the  first  and second engine, for engines that were
          already registered (using the `Load Engine' dialog) in  XBoard's
          settings  file.   It will not only retrieve the real name of the
          engine, but also all options configured with it.  (E.g. if it is
          UCI, whether it should use book.)

   -fb/-xfb or -firstPlaysBlack true/false
          In  games  between two chess engines, firstChessProgram normally
          plays white.  If this option is  true,  firstChessProgram  plays
          black.   In  a  multi-game match, this option affects the colors
          only for the first game;  they  still  alternate  in  subsequent
          games.

   -fh or -firstHost host
   -sh or -secondHost host
          Hosts  on  which  the  chess engines are to run. The default for
          each is `localhost'. If you specify another  host,  XBoard  uses
          `rsh'  to  run  the  chess  engine  there. (You can substitute a
          different remote shell program for rsh using  the  `remoteShell'
          option described below.)

   -fd or -firstDirectory dir
   -sd or -secondDirectory dir
          Working  directories  in  which the chess engines are to be run.
          The default is "", which means to run the chess  engine  in  the
          same  working  directory  as  XBoard  itself.  (See the CHESSDIR
          environment variable.)  This option is effective only  when  the
          chess engine is being run on the local host; it does not work if
          the engine is run remotely using the -fh or -sh option.

   -initString string or -firstInitString
   -secondInitString string
          The string that is sent to initialize each chess  engine  for  a
          new game.  Default:

              new
              random

          Setting this option from the command line is tricky, because you
          must type in real newline characters, including one at the  very
          end.  In most shells you can do this by entering a `\' character
          followed by a newline.  Using the character sequence `\n' in the
          string should work too, though.

          If you change this option, don't remove the `new' command; it is
          required by all chess engines to start a new game.

          You can remove the `random' command if you  like;  including  it
          causes  GNU  Chess 4 to randomize its move selection slightly so
          that it doesn't play the same moves in every game.  Even without
          `random',  GNU  Chess  4 randomizes its choice of moves from its
          opening book.  Many other  chess  engines  ignore  this  command
          entirely and always (or never) randomize.

          You  can  also  try adding other commands to the initString; see
          the documentation of the chess engine you are using for details.

   -firstComputerString string
   -secondComputerString string
          The string that is sent to the chess engine if its  opponent  is
          another  computer  chess  engine.   The default is `computer\n'.
          Probably the only useful alternative is the empty  string  (`'),
          which  keeps  the engine from knowing that it is playing another
          computer.

   -reuse/-xreuse or -reuseFirst true/false
   -reuse2/-xreuse2 or -reuseSecond true/false
          If the option is false, XBoard kills off the chess engine  after
          every game and starts it again for the next game.  If the option
          is true (the default), XBoard starts the chess engine only  once
          and  uses  it repeatedly to play multiple games.  Some old chess
          engines may not work properly  when  reuse  is  turned  on,  but
          otherwise games will start faster if it is left on.

   -firstProtocolVersion version-number
   -secondProtocolVersion version-number
          This   option  specifies  which  version  of  the  chess  engine
          communication protocol to use.  By default, version-number is 2.
          In  version 1, the "protover" command is not sent to the engine;
          since version 1 is a subset of version 2, nothing else  changes.
          Other values for version-number are not supported.

   -firstScoreAbs true/false
   -secondScoreAbs true/false
          If this option is set, the score reported by the engine is taken
          to be that in favor of white, even when the engine plays  black.
          Important  when  XBoard  uses the score for adjudications, or in
          PGN reporting.

   -niceEngines priority
          This option allows you to  lower  the  priority  of  the  engine
          processes,  so that the generally insatiable hunger for CPU time
          of  chess  engines  does  not  interfere  so  much  with  smooth
          operation  of  XBoard  (or  the  rest of your system).  Negative
          values  could  increase  the  engine  priority,  which  is   not
          recommended.

   -firstOptions string
   -secondOptions string
          The   given   string   is  a  comma-separated  list  of  (option
          name=option  value)   pairs,   like   the   following   example:
          "style=Karpov,blunder  rate=0".   If  an option announced by the
          engine  at  startup  through  the  feature   commands   of   the
          XBoard/WinBoard  protocol  matches one of the option names (i.e.
          "style" or "blunder rate"), it would be set to the  given  value
          (i.e.  "Karpov"  or 0) through a corresponding option command to
          the engine.  This provided that the type of the value  (text  or
          numeric) matches as well.

   -firstNeedsNoncompliantFEN string
   -secondNeedsNoncompliantFEN string
          The  castling  rights  and  e.p.  fields  of the FEN sent to the
          mentioned engine with the setboard command will be  replaced  by
          the  given  string. This can for instance be used to run engines
          that do not understand Chess960 FENs in variant fischerandom, to
          make  them  at  least  understand  the opening position, through
          setting the string to "KQkq -". (Note you also have to give  the
          e.p.  field!)   Other possible applications are to provide work-
          arounds for engines that want to see castling and e.p. fields in
          variants  that do not have castling or e.p.  (shatranj, courier,
          xiangqi, shogi) so that XBoard would normally omit them  (string
          =  "-  -"),  or  to add variant-specific fields that are not yet
          supported by XBoard (e.g. to indicate the number  of  checks  in
          3check).

   -shuffleOpenings
          Forces  shuffling of the opening setup in variants that normally
          have a fixed initial position.   Shufflings  are  symmetric  for
          black  and  white,  and  exempt  King and Rooks in variants with
          normal castling.  Remains  in  force  until  a  new  variant  is
          selected.

   -fischerCastling
          Specifies Fischer castling (as in Chess960) should be enabled in
          variants that normally would not  have  it.   Remains  in  force
          until a new variant is selected.

   UCI + WB Engine Settings
   -fUCI or -firstIsUCI true/false
   -sUCI or -secondIsUCI true/false
          Indicates  if  the  mentioned  engine  executable  file is a UCI
          engine, and should be run with the aid of the  Polyglot  adapter
          rather  than  directly.   Xboard  will  then  pass the other UCI
          options and  engine  name  to  Polyglot  on  its  command  line,
          according to the option `adapterCommand'.

   -fUCCI
   -sUCCI
   -fUSI
   -sUSI  Options  similar  to `fUCI' and `sUCI', except that they use the
          indicated engine with the  protocol  adapter  specified  in  the
          `uxiAdapter'  option.  This can then be configured for running a
          UCCI or USI adapter, as the need arises.

   -adapterCommand string
          The string contains the command that should be issued by  XBoard
          to  start  an  engine  that is accompanied by the `fUCI' option.
          Any identifier following a percent sign  in  the  command  (e.g.
          %fcp)  will  be  considered the name of an XBoard option, and be
          replaced by the value of that option at the time the  engine  is
          started.   For  starting  the  second engine, any leading "f" or
          "first" in the option name will first  be  replaced  by  "s"  or
          "second",  before  finding its value.  Default: 'polyglot -noini
          -ec "%fcp" -ed "%fd"'

   -uxiAdapter string
          Similar to `adapterCommand', but used for engines accompanied by
          the  `fUCCI' or `fUSI' option, so you can configure XBoard to be
          ready to handle more than one flavor  of  non-native  protocols.
          Default: ""

   -polyglotDir filename
          Gives  the  name  of the directory in which the Polyglot adapter
          for UCI engines resides.  Default: "".

   -usePolyglotBook true/false
          Specifies if the Polyglot book should be used as GUI book.

   -polyglotBook filename
          Gives the filename of the opening book.  The book is  only  used
          when the `usePolyglotBook' option is set to true, and the option
          `firstHasOwnBookUCI' or `secondHasOwnBookUCI'  applying  to  the
          engine  is  set to false.  The engine will be kept in force mode
          as long as the current position is  in  book,  and  XBoard  will
          select the book moves for it. Default: "".

   -fNoOwnBookUCI or -firstXBook or -firstHasOwnBookUCI true/false
   -sNoOwnBookUCI or -secondXBook or -secondHasOwnBookUCI true/false
          Indicates  if  the  mentioned engine has its own opening book it
          should play from, rather than using the  external  book  through
          XBoard.    Default:   depends   on   setting   of   the   option
          `discourageOwnBooks'.

   -discourageOwnBooks true/false
          When set, newly loaded engines will be assumed to  use  the  GUI
          book,  unless  they  explicitly  specify differently.  Otherwise
          they will be assumed to not use the GUI book, unless the specify
          differently (e.g. with `firstXBook').  Default: false.

   -bookDepth n
          Limits  the  use  of  the  GUI book to the first n moves of each
          side.  Default: 12.

   -bookVariation n
          A value n from 0 to 100 tunes the choice of moves from  the  GUI
          books from totally random to best-only. Default: 50

   -mcBookMode
          When this volatile option is specified, the probing algorithm of
          the GUI book is altered to always select the move that  is  most
          under-represented  based on its performance.  When all moves are
          played in approximately the right proportion, a book  miss  will
          be  reported,  to  give  the engine opportunity to explore a new
          move.  In addition score of the moves  will  be  kept  track  of
          during  the  session  in  a book buffer.  By playing an match in
          this mode, a book will be built from scratch.  The  only  output
          are  the  saved  games, which can be converted to an actual book
          later, with the  `Save  Games  as  Book'  command.   The  latter
          command  can  also  be  used  to pre-fill the book buffer before
          adding new games based on the probing algorithm.

   -fn string or -firstPgnName string
   -sn string or -secondPgnName string
          Indicates the name that should be used for  the  engine  in  PGN
          tags  of  engine-engine games.  Intended to allow you to install
          versions of the same engine with different settings,  and  still
          distinguish them.  Default: "".

   -defaultHashSize n
          Sets  the  size  of the hash table to n MegaBytes. Together with
          the EGTB cache size this number is also used  to  calculate  the
          memory  setting  of  XBoard/WinBoard  engines,  for  those  that
          support the memory  feature  of  the  XBoard/WinBoard  protocol.
          Default: 64.

   -defaultCacheSizeEGTB n
          Sets  the  size  of the EGTB cache to n MegaBytes. Together with
          the hash-table size this number is also used  to  calculate  the
          memory  setting  of  XBoard/WinBoard  engines,  for  those  that
          support the memory  feature  of  the  XBoard/WinBoard  protocol.
          Default: 4.

   -defaultPathEGTB filename
          Gives  the  name  of the directory where the end-game tablebases
          are     installed,     for      UCI      engines.       Default:
          "/usr/local/share/egtb".

   -egtFormats string
          Specifies  which  end-game tables are installed on the computer,
          and where.  The argument is a  comma-separated  list  of  format
          specifications,  each specification consisting of a format name,
          a    colon,    and    a    directory     path     name,     e.g.
          "nalimov:/usr/local/share/egtb".   If the name part matches that
          of a format that the engine requests through a feature  command,
          xboard  will  relay  the path name for this format to the engine
          through an  egtpath  command.   One  egtpath  command  for  each
          matching format will be sent.  Popular formats are "nalimov" and
          "gaviota" DTM tablebases, syzygy DTZ  tablebases  and  "scorpio"
          bitbases.  Default: "".

   -firstChessProgramNames={names}
          This  option  lets  you  customize the listbox with chess-engine
          names that appears in the `Load Engine' and `Tournament Options'
          dialog.   It  consists of a list of strings, one per line.  When
          an engine is loaded, the corresponding  line  is  prefixed  with
          "-fcp  ",  and  processed  like it appeared on the command line.
          That means that apart from the engine command,  it  can  contain
          any  number  of XBoard options you want to use with this engine.
          (Commonly  used  options  here  are  -fd,  -firstXBook,   -fUCI,
          -variant.)

          The  value  of  this  option  is gradually built as you load new
          engines through the `Load Engine'  menu  dialog,  with  `Add  to
          list'  ticked.   To  change  it  in  other  ways, (e.g. deleting
          engines), use the menu item `Edit Engine List' in  the  `Engine'
          menu.

   Tournament options
   -defaultMatchGames n
          Sets  the  number of games that will be used for a match between
          two engines started from the menu to n. Also used as  games  per
          pairing in other tournament formats.  Default: 10.

   -matchPause n
          Specifies the duration of the pause between two games of a match
          or tournament between engines  as  n  milliseconds.   Especially
          engines  that  do  not support ping need this option, to prevent
          that the move they are thinking on when an opponent unexpectedly
          resigns  will  be counted for the next game, (leading to illegal
          moves there).  Default: 10000.

   -tf filename or -tourneyFile filename
          Specifies the name of the tournament file used in match mode  to
          conduct  a  multi-player  tournament.   This  file  is a special
          settings file, which stores the description  of  the  tournament
          (including progress info), through normal options (e.g. for time
          control, load and save files), and through some  special-purpose
          options listed below.

   -tt number or -tourneyType number
          Specifies   the   type  of  tourney:  0  =  round-robin,  N>0  =
          (multi-)gauntlet with N gauntlet engines,  -1  =  Swiss  through
          external pairing engine.  Volatile option, but stored in tourney
          file.

   -cy number or -tourneyCycles number
          Specifies the number of cycles in a tourney.   Volatile  option,
          but stored in tourney file.

   -participants list
          The  list  is  a  multi-line  text string that specifies engines
          occurring in the `firstChesProgramNames' list  in  the  settings
          file  by  their  (implied  or  explicitly  given) nicknames, one
          engine per  line.   The  mentioned  engines  will  play  in  the
          tourney.  Volatile option, but stored in tourney file.

   -results string
          The  string  of  +=-  characters  lists the result of all played
          games in a tourney.  Games currently playing are  listed  as  *,
          while a space indicates a game that is not yet played.  Volatile
          option, but stored in tourney file.

   -defaultTourneyName string
          Specifies the name of the tournament file XBoard should  propose
          when  the `Match Options' dialog is opened.  Any %y, %M, %d, %h,
          %m, %s in the string are replaced by the  current  year,  month,
          day  of  the month, hours, minutes, seconds of the current time,
          respectively, as two-digit number.  A %Y would  be  replaced  by
          the year as 4-digit number. Default: empty string.

   -pairingEngine filename
          Specifies   the   external  program  to  be  used  to  pair  the
          participants in Swiss tourneys.  XBoard communicates  with  this
          engine  in  the  same way as it communicates with Chess engines.
          The only commands sent to the  pairing  engine  are  "results  N
          string",  (where N is the number of participants, and string the
          results so far  in  the  format  of  the  results  option),  and
          "pairing  N",  (where  N is the number of the tourney game).  To
          the latter the pairing engine should answer with "A-B", where  A
          and B are participant numbers (in the range 1-N).  (There should
          be no reply to the results command.) Default: empty string.

   -afterGame string
   -afterTourney string
          When non-empty, the given string will be executed  as  a  system
          command  after  each  tournament  game,  or  after  the  tourney
          completes, respectively.  This can  be  used,  for  example,  to
          autmatically  run  a cross-table generator on the PGN file where
          games are saved, to update the tourney standings.  Default: ""

   -syncAfterRound true/false
   -syncAfterCycle true/false
          Controls whether  different  instances  of  XBoard  concurrently
          running the same tournament will wait for each other.  Defaults:
          sync after cycle, but not after round.

   -seedBase number
          Used to store the seed of the pseudo-random-number generator  in
          the tourneyFile, so that separate instances of XBoard working on
          the same tourney can take coherent 'random' decisions,  such  as
          picking an opening for a given game number.

   ICS options
   -ics/-xics or -internetChessServerMode true/false
          Connect  with an Internet Chess Server to play chess against its
          other users, observe games they are  playing,  or  review  games
          that have recently finished. Default: false.

   -icshost or -internetChessServerHost host
          The Internet host name or address of the chess server to connect
          to when in ICS mode. Default: `chessclub.com'.  Another  popular
          chess  server  to  try is `freechess.org'.  If your site doesn't
          have a working Internet name server,  try  specifying  the  host
          address  in  numeric  form.   You  may  also need to specify the
          numeric address when using the icshelper option  with  timestamp
          or timeseal (see below).

   -icsport or -internetChessServerPort port-number
          The  port number to use when connecting to a chess server in ICS
          mode. Default: 5000.

   -icshelper or -internetChessServerHelper prog-name
          An external helper program used to communicate  with  the  chess
          server.  You would set it to "timestamp" for ICC (chessclub.com)
          or "timeseal" for  FICS  (freechess.org),  after  obtaining  the
          correct version of timestamp or timeseal for your computer.  See
          "help timestamp" on ICC  and  "help  timeseal"  on  FICS.   This
          option is shorthand for `-useTelnet -telnetProgram program'.

   -telnet/-xtelnet or -useTelnet true/false
          This  option is poorly named; it should be called useHelper.  If
          set to true, it instructs XBoard to run an external  program  to
          communicate  with the Internet Chess Server.  The program to use
          is given by the telnetProgram option.  If the  option  is  false
          (the  default),  XBoard  opens  a  TCP  socket  and uses its own
          internal implementation of the telnet  protocol  to  communicate
          with the ICS. See Firewalls.

   -telnetProgram prog-name
          This  option is poorly named; it should be called helperProgram.
          It gives the name of the telnet program  to  be  used  with  the
          `gateway' and `useTelnet' options.  The default is `telnet'. The
          telnet    program    is    invoked    with    the    value    of
          `internetChessServerHost' as its first argument and the value of
          `internetChessServerPort'   as   its   second   argument.    See
          Firewalls.

   -gateway host-name
          If  this  option is set to a host name, XBoard communicates with
          the  Internet  Chess  Server  by  using   `rsh'   to   run   the
          `telnetProgram'  on  the  given  host,  instead of using its own
          internal  implementation  of  the  telnet  protocol.   You   can
          substitute  a different remote shell program for `rsh' using the
          `remoteShell' option described below.  See Firewalls.

   -internetChessServerCommPort or -icscomm dev-name
          If this option is set, XBoard communicates with the ICS  through
          the  given  character  I/O  device  instead  of  opening  a  TCP
          connection.  Use this option if your system does  not  have  any
          kind  of  Internet  connection  itself  (not  even a SLIP or PPP
          connection), but you do have  dial-up  access  (or  a  hardwired
          terminal  line)  to  an Internet service provider from which you
          can telnet to the ICS.

          The support for this option in XBoard is minimal.  You  need  to
          set  all communication parameters and tty modes before you enter
          XBoard.

          Use a script something like this:

              stty raw -echo 9600 > /dev/tty00
              xboard -ics -icscomm /dev/tty00

          Here replace `/dev/tty00' with the name of the device that  your
          modem  is  connected  to.  You  might  have  to add several more
          options to these stty commands. See the man pages for `stty' and
          `tty' if you run into problems. Also, on many systems stty works
          on its standard input instead of standard output, so you have to
          use `<' instead of `>'.

          If  you  are  using  linux,  try starting with the script below.
          Change it as necessary for your installation.

              #!/bin/sh -f
              # configure modem and fire up XBoard

              # configure modem
              (
                stty 2400 ; stty raw ; stty hupcl ; stty -clocal
                stty ignbrk ; stty ignpar ; stty ixon ; stty ixoff
                stty -iexten ; stty -echo
              ) < /dev/modem
              xboard -ics -icscomm /dev/modem

          After you start XBoard in this way, type whatever  commands  are
          necessary  to  dial  out  to  your Internet provider and log in.
          Then telnet to ICS, using a command like  `telnet  chessclub.com
          5000'.   Important:  See the paragraph below about extra echoes,
          in Limitations.

   -icslogon or -internetChessServerLogonScript file-name
          Whenever XBoard connects to the Internet  Chess  Server,  if  it
          finds  a  file  with the name given in this option, it feeds the
          file's contents to the ICS as commands. The default file name is
          `.icsrc'.   Usually  the  first  two lines of the file should be
          your ICS user name and password.  The  file  can  be  either  in
          $CHESSDIR, in XBoard's working directory if CHESSDIR is not set,
          or in your home directory.

   -msLoginDelay delay
          If you experience trouble logging on to an ICS  when  using  the
          `-icslogon'  option,  inserting some delay between characters of
          the logon script may help. This option adds `delay' milliseconds
          of delay between characters. Good values to try are 100 and 250.

   -icsinput/-xicsinput or -internetChessServerInputBox true/false
          Sets  the  ICS  Input  Box  menu option. See Mode Menu. Default:
          false.

   -autocomm/-xautocomm or -autoComment true/false
          Sets the Auto Comment menu option. See  Options  Menu.  Default:
          false.

   -autoflag/-xautoflag or -autoCallFlag true/false
          Sets  the  Auto  Flag  menu  option.  See Options Menu. Default:
          false.

   -autobs/-xautobs or -autoObserve true/false
          Sets the Auto Observe menu option.  See Options  Menu.  Default:
          false.

   -autoKibitz
          Enables  kibitzing  of  the engines last thinking output (depth,
          score, time, speed, PV) before it moved to  the  ICS,  in  zippy
          mode.  The  option  `showThinking'  must be switched on for this
          option to work.  Also diverts similar kibitz information  of  an
          opponent  engine  that  is  playing  you  through the ICS to the
          engine-output window, as if the engine was playing locally.

   -seekGraph true/false or -sg
          Enables displaying of the seek graph by left-clicking the  board
          when  you  are logged on to an ICS and currently idle.  The seek
          graph show all players  currently  seeking  games  on  the  ICS,
          plotted  according  to  their rating and the time control of the
          game they seek, in three different colors  (for  rated,  unrated
          and  wild  games).  Computer ads are displayed as squares, human
          ads are dots.  Default: false.

   -autoRefresh true/false
          Enables automatic updating of the seek graph, by having the  ICS
          send  a running update of all newly placed and removed seek ads.
          This consumes a substantial amount of  communication  bandwidth,
          and is only supported for FICS and ICC.  Default: false.

   -backgroundObserve true/false
          When  true, boards sent to you by the ICS from other games while
          you are playing (e.g. because you are observing them)  will  not
          be  automatically  displayed.   Only  a summary of time left and
          material of both players will appear in the message field  above
          the  board.  XBoard will remember the last board it has received
          this way, and will display it instead of the  position  in  your
          own  game  when  you  press  the  right  mouse button.  No other
          information is stored on such games observed in the  background;
          you  cannot  save  such a game later, or step through its moves.
          This feature is provided solely  for  the  benefit  of  bughouse
          players,  to enable them to peek at their partner's game without
          the need to logon twice.  Default: false.

   -dualBoard true/false
          In combination with -backgroundObserve true,  this  option  will
          display  the board of the background game side by side with that
          of your own game, so you can have it in view  permanently.   Any
          board  or  holdings  info  coming  in  will  be displayed on the
          secondary board immediately.  This feature is still experimental
          and  largely  unfinished.  There is no animation or highlighting
          of moves on the secondary board.  Default: false.

   -disguisePromotedPieces true/false
          When set promoted Pawns  in  crazyhouse/bughouse  are  displayed
          identical  to  primordial  pieces  of the same type, rather than
          distinguishable.  Default: true.

   -moves/-xmoves or -getMoveList true/false
          Sets the Get Move List menu option.  See Options Menu.  Default:
          true.

   -alarm/-xalarm or -icsAlarm true/false
          Sets  the  ICS  Alarm  menu  option.  See Options Menu. Default:
          true.

   -icsAlarmTime ms
          Sets the time in milliseconds for the  ICS  Alarm  menu  option.
          See Options Menu. Default: 5000.

   lowTimeWarning true/false
          Controls  a  color change of the board as a warning your time is
          running out.  See Options Menu. Default: false.

   -pre/-xpre or -premove true/false
          Sets the Premove menu option. See Options Menu. Default: true.

   -prewhite/-xprewhite or -premoveWhite
   -preblack/-xpreblack or -premoveBlack
   -premoveWhiteText string
   -premoveBlackText string
          Set the menu options for specifying the first  move  for  either
          color.   See Options Menu. Defaults: false and empty strings, so
          no pre-moves.

   -quiet/-xquiet or -quietPlay true/false
          Sets the Quiet Play menu option.  See  Options  Menu.   Default:
          false.

   -colorizeMessages or -colorize/-xcolorize
          Setting  colorizeMessages  to  true tells XBoard to colorize the
          messages received from the ICS.  Colorization works only if your
          xterm  supports  ISO  6429  escape  sequences  for changing text
          colors.  Default: true.

   -colorShout foreground,background,bold
   -colorSShout foreground,background,bold
   -colorCShout foreground,background,bold
   -colorChannel1 foreground,background,bold
   -colorChannel foreground,background,bold
   -colorKibitz foreground,background,bold
   -colorTell foreground,background,bold
   -colorChallege foreground,background,bold
   -colorRequest foreground,background,bold
   -colorSeek foreground,background,bold
   -colorNormal foreground,background,bold
          These options set the colors used when colorizing ICS  messages.
          All  ICS  messages  are  grouped  into  one of these categories:
          shout,  sshout,  channel  1,  other   channel,   kibitz,   tell,
          challenge,  request  (including abort, adjourn, draw, pause, and
          takeback), or normal (all other messages).

          Each foreground  or  background  argument  can  be  one  of  the
          following:  black,  red,  green,  yellow,  blue,  magenta, cyan,
          white,  or  default.   Here  ``default''   means   the   default
          foreground  or background color of your xterm.  Bold can be 1 or
          0.  If background is omitted, ``default'' is assumed; if bold is
          omitted, 0 is assumed.

   -soundProgram progname
          If  this  option  is  set  to  a  sound-playing  program that is
          installed and working on your  system,  XBoard  can  play  sound
          files  when  certain  events  occur,  listed below.  The default
          program name is "play".  If any of the sound options is  set  to
          "$", the event rings the terminal bell by sending a ^G character
          to standard output, instead of playing  a  sound  file.   If  an
          option  is  set  to  the empty string "", no sound is played for
          that event.

   -soundDirectory directoryname
          This option specifies where XBoard will look  for  sound  files,
          when these are not given as an absolute path name.

   -soundShout filename
   -soundSShout filename
   -soundCShout filename
   -soundChannel filename
   -soundChannel1 filename
   -soundKibitz filename
   -soundTell filename
   -soundChallenge filename
   -soundRequest filename
   -soundSeek filename
          These  sounds  are triggered in the same way as the colorization
          events described above.  They all default to "", no sound.  They
          are  played  only  if  the  colorizeMessages  is  on.  CShout is
          synonymous with SShout.

   -soundMove filename
          This sound is played when a player other than yourself  makes  a
          move.  Default: "$".

   -soundRoar filename
          This  sound  is played when a Lion makes a hit-and-run or double
          capture/ Default: "" (no sound).

   -soundIcsAlarm filename
          This sound is used by the ICS Alarm menu option.  Default: "$".

   -soundIcsWin filename
          This sound is played when you win an ICS game.  Default: ""  (no
          sound).

   -soundIcsLoss filename
          This sound is played when you lose an ICS game.  Default: "" (no
          sound).

   -soundIcsDraw filename
          This sound is played when you draw an ICS game.  Default: "" (no
          sound).

   -soundIcsUnfinished filename
          This sound is played when an ICS game that you are participating
          in is aborted,  adjourned,  or  otherwise  ends  inconclusively.
          Default: "" (no sound).

   Load and Save options
   -lgf or -loadGameFile file
   -lgi or -loadGameIndex index
          If  the `loadGameFile' option is set, XBoard loads the specified
          game file at startup. The file name `-' specifies  the  standard
          input.  If  there is more than one game in the file, XBoard pops
          up a menu of the available games, with entries  based  on  their
          PGN  (Portable  Game  Notation)  tags.   If  the `loadGameIndex'
          option is set to `N', the menu is suppressed and the N  th  game
          found  in  the  file  is  loaded  immediately.  The menu is also
          suppressed if `matchMode' is enabled or if the game  file  is  a
          pipe;  in  these  cases  the  first  game  in the file is loaded
          immediately.  Use  the  `pxboard'  shell  script  provided  with
          XBoard  if  you  want to pipe in files containing multiple games
          and still see the menu.  If the loadGameIndex specifies an index
          -1,  this  triggers  auto-increment of the index in `matchMode',
          which means that after every game the index  is  incremented  by
          one,  causing  each game of the match to be played from the next
          game in the file. Similarly, specifying an  index  value  of  -2
          causes the index to be incremented every two games, so that each
          game in the file is used  twice  (with  reversed  colors).   The
          `rewindIndex'  option  causes the index to be reset to the first
          game of the file when it has reached a specified value.

   -rewindIndex n
          Causes a position file  or  game  file  to  be  rewound  to  its
          beginning   after   n   positions  or  games  in  auto-increment
          `matchMode'.   See  `loadPositionIndex'   and   `loadGameIndex'.
          default: 0 (no rewind).

   -td or -timeDelay seconds
          Time  delay  between moves during `Load Game' or `Analyze File'.
          Fractional seconds are allowed; try `-td  0.4'.   A  time  delay
          value  of  -1  tells  XBoard  not  to  step  through  game files
          automatically. Default: 1 second.

   -sgf or -saveGameFile file
          If this option is set, XBoard appends a  record  of  every  game
          played  to  the  specified file. The file name `-' specifies the
          standard output.

   -autosave/-xautosave or -autoSaveGames true/false
          Sets the Auto Save menu option.   See  Options  Menu.   Default:
          false.  Ignored if `saveGameFile' is set.

   -onlyOwnGames true/false
          Suppresses auto-saving of ICS observed games. Default: false.

   -lpf or -loadPositionFile file
   -lpi or -loadPositionIndex index
          If  the  `loadPositionFile'  option  is  set,  XBoard  loads the
          specified position file at startup. The file name `-'  specifies
          the  standard input. If the `loadPositionIndex' option is set to
          N, the Nth position found in the file is loaded;  otherwise  the
          first position is loaded.  If the loadPositionIndex specifies an
          index  -1,  this  triggers  auto-increment  of  the   index   in
          `matchMode',  which  means  that  after  every game the index is
          incremented by one, causing each game of the match to be  played
          from  the  next  position  in the file. Similarly, specifying an
          index value of -2 causes the index to be incremented  every  two
          games, so that each position in the file is used twice (with the
          engines playing  opposite  colors).   The  `rewindIndex'  option
          causes  the  index to be reset to the first position of the file
          when it has reached a specified value.

   -spf or -savePositionFile file
          If this option is set, XBoard appends the final position reached
          in  every  game  played to the specified file. The file name `-'
          specifies the standard output.

   -positionDir directory
          Specifies the directory where file browsing  should  start  when
          using the `Load Position' menu item.

   -pgnExtendedInfo true/false
          If  this  option is set, XBoard saves depth, score and time used
          for each move that the engine found as  a  comment  in  the  PGN
          file.  Default: false.

   -pgnTimeLeft true/false
          If this option is set, XBoard will save the remaining clock time
          for  the  player  that  has  just   moved   as   part   of   the
          `pgnExtendedInfo',  rather  than  the  time  that player thought
          about his latest move.  Default: false.

   -pgnEventHeader string
          Default: false.  Sets the name used in  the  PGN  event  tag  to
          string.  Default: "Computer Chess Game".

   -pgnNumberTag true/false
          Include  the  (unique) sequence number of a tournament game into
          the saved PGN file as a 'number' tag.  Default: false.

   -saveOutOfBookInfo true/false
          Include the information on how the engine(s)  game  out  of  its
          opening  book  in  a  special 'annotator' tag with the PGN file.
          Default: true.

   -oldsave/-xoldsave or -oldSaveStyle true/false
          Sets  the  Old  Save  Style  menu  option.   See  Options  Menu.
          Default: false.

   -gameListTags string
          The  character  string lists the PGN tags that should be printed
          in the Game List, and their order. The meaning of the  codes  is
          e=event,  s=site,  d=date, o=round, p=players, r=result, w=white
          Elo, b=black Elo, t=time control, v=variant, a=out-of-book info,
          c=result comment.  Default: "eprd"

   -ini or -settingsFile filename
   -saveSettingsFile filename
   @filename
          When  XBoard  encounters  an  option  -settingsFile (or -ini for
          short), or @filename, it tries to read the mentioned  file,  and
          substitutes  the  contents  of  it  (presumaby more command-line
          options) in place of  the  option.   In  the  case  of  -ini  or
          -settingsFile,  the name of a successfully read settings file is
          also  remembered  as  the  file  to  use  for  saving   settings
          (automatically  on  exit, or on user command).  An option of the
          form   @filename   does   not   affect   saving.    The   option
          -saveSettingsFile  does  specify  a  name of the file to use for
          saving, without reading any options from it, and  is  thus  also
          effective when the file did not exist yet.  So the settings will
          be saved to the file specified in the last -saveSettingsFile  or
          succesful   -settingsFile   /  -ini  command,  if  any,  and  in
          /etc/xboard/xboard.conf otherwise.  Usualy the  latter  is  only
          accessible  for  the  system  administrator, though, and will be
          used to contain system-wide default settings,  amongst  which  a
          -saveSettingsFile   and   -settingsFile  options  to  specify  a
          settings  file  accessible  to  the  individual  user,  such  as
          ~/.xboardrc in the user's home directory.

   -saveSettingsOnExit true/false
          Controls  saving  of  options on the settings file.  See Options
          Menu.  Default: true.

   User interface options
   -noGUI Suppresses all GUI functions of XBoard (to  speed  up  automated
          ultra-fast  engine-engine games, which you don't want to watch).
          There will be no board or clock updates, no printing  of  moves,
          and no update of the icon on the task bar in this mode.

   -logoSize N
          This  option  controls  the  drawing of player logos next to the
          clocks.  The integer N  specifies  the  width  of  the  logo  in
          pixels; the logo height will always be half the width.  When N =
          0, no logos will be diplayed.  Default: 0.

   -firstLogo imagefile
   -secondLogo imagefile
          Specify the images to be used as player logos when `logoSize' is
          non-zero, next to the white and black clocks, respectively.

   -autoLogo true/false
   -logoDir filename
          When  `autoLogo' is set, XBoard will search for a PNG image file
          with the name of the engine or ICS in the directory specified by
          `logoDir'.   For  a  human  player  it  will  look  for  a  file
          <username>.png in this directory, but only when ~/.logo.png does
          not provide one.

   -recentEngines number
   -recentEngineList list
          When  the  number  is  larger  than zero, it determines how many
          recently used engines will be appended  at  the  bottom  of  the
          `Engines' menu.  The engines will be saved in your settings file
          as the option `recentEngineList', by their  nicknames,  and  the
          most recently used one will always be sorted to the top.  If the
          list after that is longer than the specified  number,  the  last
          one  is discarded.  Changes in the list will only become visible
          the next session, provided you saved the settings.  Default: 6.

   -oneClickMove true/false
          When set, this option allows you to enter moves by only clicking
          the to- or from-square, when only a single legal move to or from
          that square is possible.  Double-clicking a piece  (or  clicking
          an  already selected piece) will instruct that piece to make the
          only capture it can legally do.  Default: false.

   -monoMouse true/false
          When set button 1 clicks on empty squares in Edit Position  mode
          will  be  interpreted as button 3 clicks, so they place a piece.
          Default: false.

   -movesound/-xmovesound or -ringBellAfterMoves true/false
          Sets the Move Sound menu option.  See  Options  Menu.   Default:
          false.  For compatibility with old XBoard versions, -bell/-xbell
          are also accepted as abbreviations for this option.

   -analysisBell N
          When N is non-zero, the Move Sound will be played whenever a new
          PV  arrives  in  analysis  mode  after  more  than  N seconds of
          analysis.  Default: 0.

   -exit/-xexit or -popupExitMessage true/false
          Sets the Popup Exit Message  menu  option.   See  Options  Menu.
          Default: true.

   -popup/-xpopup or -popupMoveErrors true/false
          Sets  the  Popup  Move  Errors  menu  option.  See Options Menu.
          Default: false.

   -queen/-xqueen or -alwaysPromoteToQueen true/false
          Sets the Always Queen menu option.  See Options Menu.   Default:
          false.

   -sweepPromotions true/false
          Sets  the  `Almost  Always  Promote  to Queen' menu option.  See
          Options Menu.  Default: false.

   -legal/-xlegal or -testLegality true/false
          Sets the Test Legality menu option.  See Options Menu.  Default:
          true.

   -size or -boardSize (sizeName | n1,n2,n3,n4,n5,n6,n7)
          Determines  how  large the board will be, by selecting the pixel
          size of the pieces and setting a few  related  parameters.   The
          sizeName  can  be  one of: Titanic, giving 129x129 pixel pieces,
          Colossal 116x116, Giant 108x108, Huge 95x95,  Big  87x87,  Large
          80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54,
          Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37,  Petite
          33x33, Dinky 29x29, Teeny 25x25, or Tiny 21x21.  Xboard installs
          with a set of scalable (svg) piece images, which  it  scales  to
          any  of  the  requested  sizes.   The square size can further be
          continuously scaled by sizing the board window,  but  this  only
          adapts the size of the pieces, and has no effect on the width of
          the grid lines or the font choice (both of which would depend on
          he selected boardSize).  The default depends on the size of your
          screen; it is approximately  the  largest  size  that  will  fit
          without clipping.

          You  can  select  other sizes or vary other layout parameters by
          providing a list of comma-separated values (with no  spaces)  as
          the  argument.   You  do not need to provide all the values; for
          any you omit from the end of the list, defaults are  taken  from
          the nearest built-in size.  The value `n1' gives the piece size,
          `n2' the width of the black border  between  squares,  `n3'  the
          desired  size  for  the clockFont, `n4' the desired size for the
          coordFont, `n5' the desired size for the messageFont,  `n6'  the
          smallLayout  flag  (0  or 1), and `n7' the tinyLayout flag (0 or
          1).  All dimensions  are  in  pixels.   If  the  border  between
          squares  is  eliminated (0 width), the various highlight options
          will not work, as there is nowhere to draw  the  highlight.   If
          smallLayout  is 1 and `titleInWindow' is true, the window layout
          is rearranged to make more room for the title.  If tinyLayout is
          1,  the  labels on the menu bar are abbreviated to one character
          each and the buttons in the button bar are made narrower.

   -overrideLineGap n
          When n >= 0, this forces the width of the black  border  between
          squares  to n pixels for any board size. Mostly used to suppress
          the grid entirely by setting n = 0,  e.g.  in  xiangqi  or  just
          getting  a  prettier picture. When n < 0 this the size-dependent
          width of the grid lines is used. Default: -1.

   -coords/-xcoords or -showCoords true/false
          Sets the Show Coords menu option.  See Options  Menu.   Default:
          false.  The `coordFont' option specifies what font to use.

   -autoraise/-xautoraise or -autoRaiseBoard true/false
          Sets  the  Auto  Raise  Board  menu  option.   See Options Menu.
          Default: true.

   -autoflip/-xautoflip or -autoFlipView true/false
          Sets  the  Auto  Flip  View  menu  option.   See  Options  Menu.
          Default: true.

   -flip/-xflip or -flipView true/false
          If  Auto  Flip  View is not set, or if you are observing but not
          participating in a game, then the positioning of  the  board  at
          the  start  of  each  game  depends  on the flipView option.  If
          flipView is false (the default), the board is positioned so that
          the  white  pawns  move from the bottom to the top; if true, the
          black pawns move from the bottom to the top.  In any  case,  the
          Flip  menu  option  (see  Options  Menu) can be used to flip the
          board after the game starts.

   -title/-xtitle or -titleInWindow true/false
          If this option is true, XBoard displays player  names  (for  ICS
          games)  and  game  file  names (for `Load Game') inside its main
          window. If the option is false (the default),  this  information
          is  displayed only in the window banner. You probably won't want
          to set this option unless the information is not showing  up  in
          the banner, as happens with a few X window managers.

   -buttons/-xbuttons or -showButtonBar True/False
          If  this option is False, xboard omits the [<<] [<] [P] [>] [>>]
          button bar from the window, allowing  the  message  line  to  be
          wider.   You  can still get the functions of these buttons using
          the menus or their keyboard shortcuts.  Default: true.

   -evalZoom factor
          The score interval (-1,1) is blown up on the  vertical  axis  of
          the Evaluation Graph by the given factor.  Default: 1

   -evalThreshold n
          Score  below  n  (centiPawn)  are plotted as 0 in the Evaluation
          Graph.  Default: 25

   -mono/-xmono or -monoMode true/false
          Determines whether XBoard displays its pieces and  squares  with
          two colors (true) or four (false). You shouldn't have to specify
          `monoMode'; XBoard will determine if it is necessary.

   -showTargetSquares true/false
          Determines whether XBoard can highlight the squares a piece  has
          legal  moves  to,  when  you  grab  that  piece  with the mouse.
          Default: false.

   -flashCount count
   -flashRate rate
   -flash/-xflash
          These options enable flashing of pieces when they land on  their
          destination square.  `flashCount' tells XBoard how many times to
          flash  a  piece  after  it  lands  on  its  destination  square.
          `flashRate'   controls   the  rate  of  flashing  (flashes/sec).
          Abbreviations: `flash' sets  flashCount  to  3.   `xflash'  sets
          flashCount   to   0.   Defaults:   flashCount=0  (no  flashing),
          flashRate=5.

   -highlight/-xhighlight or -highlightLastMove true/false
          Sets the Highlight Last Move  menu  option.  See  Options  Menu.
          Default: false.

   -highlightMoveWithArrow true/false
          Sets  the  Highlight  with  Arrow menu option. See Options Menu.
          Default: false.

   -blind/-xblind or -blindfold true/false
          Sets the Blindfold menu option.   See  Options  Menu.   Default:
          false.

   -periodic/-xperiodic or -periodicUpdates true/false
          Controls  updating  of  current  move andnode counts in analysis
          mode. Default: true.

   -fSAN
   -sSAN  Causes the PV in thinking output of the mentioned engine  to  be
          converted  to SAN before it is further processed.  Warning: this
          might lose engine output not understood by the parser, and  uses
          a lot of CPU power.  Default: the PV is displayed exactly as the
          engine produced it.

   -showEvalInMoveHistory true/false
          Controls whether the  evaluation  scores  and  search  depth  of
          engine  moves  are  displayed  with the move in the move-history
          window.  Default: true.

   -clockFont font
          The font used for the clocks. If the option value is  a  pattern
          that  does  not specify the font size, XBoard tries to choose an
          appropriate font for the board size being  used.   Default  Xaw:
          -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*.   Default GTK: Sans
          Bold %d.

   -coordFont font
          The  font  used  for  rank  and  file   coordinate   labels   if
          `showCoords' is true. If the option value is a pattern that does
          not specify the font size, XBoard tries to choose an appropriate
          font  for the board size being used.  Default Xaw: -*-helvetica-
          bold-r-normal--*-*-*-*-*-*-*-*.  Default GTK: Sans Bold %d.

   -messageFont font
          The font used for popup dialogs,  menus,  etc.   If  the  option
          value  is  a pattern that does not specify the font size, XBoard
          tries to choose an appropriate font for  the  board  size  being
          used.          Default        Xaw:        -*-helvetica-medium-r-
          normal--*-*-*-*-*-*-*-*.  Default GTK: Sans Bold %d

   -tagsFont font
          The font used in the Edit Tags  dialog.   If  the  option  value
          contains  %d,  XBoard will replace it by an appropriate font for
          the board size being used.  (Only used in GTK build.)   Default:
          Sans Normal %d.

   -commentFont font
          The  font  used in the Edit Comment dialog.  If the option value
          contains %d, XBoard will replace it by an appropriate  font  for
          the  board size being used.  (Only used in GTK build.)  Default:
          Sans Normal %d.

   -icsFont font
          The font used to display ICS output in the ICS  Chat window.  As
          ICS output often contains tables aligned by spaces, a mono-space
          font is recommended here.  If  the  option  value  contains  %d,
          XBoard will replace it by an appropriate font for the board size
          being used.  (Only  used  in  GTK  build.)   Default:  Monospace
          Normal %d.

   -moveHistoryFont font
          The  font  used  in  Move History and Engine Output windows.  As
          these windows display mainly moves, one  could  use  a  figurine
          font here.  If the option value contains %d, XBoard will replace
          it by an appropriate font for the board size being used.   (Only
          used in GTK build.)  Default: Sans Normal %d.

   -gameListFont font
          The  font  used  in the listbox of the Game List window.  If the
          option  value  contains  %d,  XBoard  will  replace  it  by   an
          appropriate  font  for the board size being used.  (Only used in
          GTK build.)  Default: Sans Bold %d.

   -fontSizeTolerance tol
          In the font selection algorithm,  a  nonscalable  font  will  be
          preferred  over  a  scalable font if the nonscalable font's size
          differs by `tol' pixels or less from the desired size.  A  value
          of -1 will force a scalable font to always be used if available;
          a value of 0 will use a nonscalable font only if it  is  exactly
          the   right  size;  a  large  value  (say  1000)  will  force  a
          nonscalable font to always be used if available.  Default: 4.

   -pid or -pieceImageDirectory dir
          This options control what piece images xboard uses.  XBoard will
          look  in  the  specified  directory  for  an image in png or svg
          format for every piece type,  with  names  like  BlackQueen.svg,
          WhiteKnight.svg  etc.   When  neither  of  these is found (or no
          valid directory is specified) XBoard will first  ty  to  use  an
          image White/BlackTile.svg in that same directory, and if that is
          not present either use the svg piece that was installed with  it
          (from the source-tree directory `svg').  Both svg and png images
          will be scaled by XBoard to  the  required  size,  but  the  png
          pieces lose much in quality when scaled too much.  Default: "".

   -inscriptions utf8string
          The  positions  in  the  utf8string correspond to XBoard's piece
          types, and for each type a glyph can  be  defined.   This  glyph
          will  then  be rendered on top of the image for the piece.  This
          is useful in combination with  the  White/BlackTile.svg  images,
          which  could be the image of a blank Shogi tile, for writing the
          kanji piece name on top of it on the fly.  Default: "".

   -whitePieceColor color
   -blackPieceColor color
   -lightSquareColor color
   -darkSquareColor color
   -highlightSquareColor color
   -preoveHighlightColor color
   -lowTimeWarningColor color
          Colors to use for the pieces, squares,  and  square  highlights.
          Defaults:

              -whitePieceColor       #FFFFCC
              -blackPieceColor       #202020
              -lightSquareColor      #C8C365
              -darkSquareColor       #77A26D
              -highlightSquareColor  #FFFF00
              -premoveHighlightColor #FF0000
              -lowTimeWarningColor   #FF0000

          On a grayscale monitor you might prefer:

              -whitePieceColor       gray100
              -blackPieceColor       gray0
              -lightSquareColor      gray80
              -darkSquareColor       gray60
              -highlightSquareColor  gray100
              -premoveHighlightColor gray70
              -lowTimeWarningColor   gray70

          The  PieceColor  options  only  work properly if the image files
          defining the pieces were pure  black  &  white  (possibly  anti-
          aliased  to produce gray scales and semi-transparancy), like the
          pieces images that come  with  the  install.   Their  effect  on
          colored  pieces  is undefined.  The SquareColor option only have
          an effect when no board textures are used.

   -trueColors true/false
          When set, this option suppresses the effect  of  the  PieceColor
          options  mentioned  above.   This is recommended for images that
          are already colored.

   -useBoardTexture true/false
   -liteBackTextureFile filename
   -darkBackTextureFile filename
          Indicate the png image files to be used for  drawing  the  board
          squares,  and  if  they  should be used rather than using simple
          colors.  The algorithm for cutting squares out of a given bitmap
          is  such  that the picture is perfectly reproduced when a bitmap
          the size of the complete board is given.  If the  filename  ends
          in  "-NxM.png", with integer N and M, it is assumed to contain a
          bitmap of a complete board of N files and M  ranks,  and  XBoard
          will  scale  it  to  exactly  match the current square size.  If
          N=M=0 it scales the entire bitmap to  the  size  of  the  board,
          irrespective  of  the  number  of files and ranks of the latter.
          Without any -NxM suffix textures are only blown up by an integer
          factor  when they are smaller than the square size, or, when the
          name starts with "xq", too small to cover the  complete  Xiangqi
          board.  Default: false and ""

   -drag/-xdrag or -animateDragging true/false
          Sets  the  Animate  Dragging  menu  option.  See  Options  Menu.
          Default: true.

   -animate/-xanimate or -animateMoving true/false
          Sets the Animate Moving menu option. See Options Menu.  Default:
          true.

   -animateSpeed n
          Number  of  milliseconds delay between each animation frame when
          Animate Moves is on.

   -autoDisplayComment true/false
   -autoDisplayTags true/false
          If set to true, these options cause the  window  with  the  move
          comments,  and the window with PGN tags, respectively, to pop up
          automatically when such tags or comments are encountered  during
          the replaying a stored or loaded game.  Default: true.

   -pasteSelection true/false
          If this option is set to true, the Paste Position and Paste Game
          options paste from the currently selected text.  If false,  they
          paste from the clipboard.  Default: false.

   -autoCopyPV true|false
          When  this  option  is  set, the position displayed on the board
          when you terminate a PV walk  (initiated  by  a  right-click  on
          board  or engine-output window) will be automatically put on the
          clipboard as FEN.  Default: false.

   -dropMenu true|false
          This option allows you to emulate old behavior, where the  right
          mouse  button  brings  up  the (now deprecated) drop menu rather
          than displaying  the  position  at  the  end  of  the  principal
          variation.  Default: False.

   -pieceMenu true|false
          This  option allows you to emulate old behavior, where the right
          mouse button brings up the (now deprecated) piece menu  in  Edit
          Position  mode.   From this menu you can select the piece to put
          on the square you clicked to bring up the menu, or select  items
          such  as  `clear  board'.   You can also `promote' or `demote' a
          clicked piece to convert it into an unorthodox piece that is not
          directly in the menu, or give the move to `black' or `white'.

   -variations true|false
          When  this  option  is  on, you can start new variations in Edit
          Game or Analyze  mode  by  holding  the  Shift  key  down  while
          entering a move.  When it is off, the Shift key will be ignored.
          Default: False.

   -appendPV true|false
          When this option is on, a button 3 click left of  a  PV  in  the
          Engine  Output  window  will  play  the first move of that PV in
          Analyze mode, or as many moves as you walk through it by  moving
          the mouse.  Default: False.

   -absoluteAnalysisScores true|false
          When  true,  scores  on the Engine Output window during analysis
          will be printed from the white point-of-view,  rather  than  the
          side-to-move point-of-view.  Default: False.

   -scoreWhite true|false
          When  true,  scores will always be printed from the white point-
          of-view, rather than the side-to-move  point-of-view.   Default:
          False.

   -memoHeaders true|false
          When true, column headers will be displayed in the Engine Output
          window for the depth, score, time and nodes data.   A  button  3
          click on these headers will hide or show the corresponding data.
          (Not intended for dynamic use, as already printed  data  of  the
          current search will not be affected!)  Defaul: False.

   Adjudication Options
   -adjudicateLossThreshold n
          If the given value is non-zero, XBoard adjudicates the game as a
          loss if both engines agree for a duration of 6  consecutive  ply
          that  the  score  is  below  the  given score threshold for that
          engine. Make sure the score is interpreted properly  by  XBoard,
          using   `-firstScoreAbs'   and   `-secondScoreAbs'   if  needed.
          Default: 0 (no adjudication)

   -adjudicateDrawMoves n
          If the given value is non-zero, XBoard adjudicates the game as a
          draw  if after the given number of moves it was not yet decided.
          Default: 0 (no adjudication)

   -checkMates true/false
          If this  option  is  set,  XBoard  detects  all  checkmates  and
          stalemates,  and ends the game as soon as they occur.  Legality-
          testing must be switched on for this option to  work.   Default:
          true

   -testClaims true/false
          If this option is set, XBoard verifies all result claims made by
          engines, and those who send false claims will forfeit  the  game
          because  of  it.   Legality-testing must be switched on for this
          option to work. Default: true

   -materialDraws true/false
          If this option is set, XBoard adjudicates games  as  draws  when
          there  is  no  sufficient  material left to inflict a checkmate.
          This applies to KBKB with like bishops (any  number,  actually),
          and  to  KBK,  KNK and KK.  Legality-testing must be switched on
          for this option to work. Default: true

   -trivialDraws true/false
          If this option is set, XBoard adjudicates games  as  draws  that
          cannot be usually won without opponent cooperation. This applies
          to KBKB with unlike bishops, and to KBKN, KNKN, KNNK,  KRKR  and
          KQKQ.  The  draw  is called after 6 ply into these end-games, to
          allow quick mates that can occur in some  exceptional  positions
          to be found by the engines.  KQKQ does not really belong in this
          category, and might be taken out in the future.  (When  bitbase-
          based  adjudications are implemented.)  Legality-testing must be
          on for this option to work. Default: false

   -ruleMoves n
          If the given value is non-zero, XBoard adjudicates the game as a
          draw  after  the  given  number of consecutive reversible moves.
          Engine  draw  claims  are  always  accepted  after   50   moves,
          irrespective of the given value of n.

   -repeatsToDraw n
          If the given value is non-zero, xboard adjudicates the game as a
          draw if a position  is  repeated  the  given  number  of  times.
          Engines draw claims are always accepted after 3 repeats, (on the
          3rd occurrence, actually),  irrespective  of  the  value  of  n.
          Beware that positions that have different castling or en-passant
          rights do not  count  as  repeats,  XBoard  is  fully  e.p.  and
          castling aware!

   Install options
   --show-config parameter
          When  called  with  this  option,  XBoard will close immediately
          after  printing  the  value  of  the   indicated   configuration
          parameter,  or,  when  no  parameter was given, after printing a
          list of all such parameters.  Currently the  only  valid  values
          for  parameter  are  Datadir and Sysconfdir.  This option can be
          used by install scripts for board themes to figure out where the
          currently active XBoard stores its data.

   -date timestamp
   -saveDate timestamp
          These  options  specify  an  epoch  as  an  integer number.  The
          `saveDate' option is written by  XBoard  in  the  settings  file
          every  time  the  settings  are saved, with the current time, so
          that later runs of XBoard can know this.  The `date' option  can
          be  included  in settings files to indicate when lines following
          it were added to those files.  Some options will be  ignored  if
          the  epoch  specified  by  the latest `date' option predates the
          -saveDate setting (implying they must have been seen before).

   -autoInstall list
          When the list is set to a non-empty string, XBoard will scan the
          operating  system's  plugin directory for engines supporting UCI
          and XBoard protocol at startup.  When it finds  an  engine  that
          was installed after it last saved its settings, a line to launch
          that engine (as per specs in the plugin file) is appended to the
          -firstChessProgramNames  list  of  installed  engines.   In  the
          future it will be possible to use the autoInstall list to  limit
          this automatic adding of engines based on the chess variant they
          play.

   -addMasterOption string
          Adds the mentioned string as  an  additional  line  of  XBoard's
          master  settings  file, after adding a line with a `date' option
          to timestamp it.  Intended to add options of the 'install'  type
          (see  below) to the master file, which will then be processed by
          any XBoard that has not  seen  them  since  it  last  saved  its
          settings.

   -autoClose
          The  presence  of  this option cause XBoard to close immediately
          after processing all its options (from settings file and command
          line).   Typically  used  from  install  scripts  together  with
          options that change XBoard's settings files, so that XBoard  can
          be run in batch mode rather than interactively.

   -installEngine string
          Adds  the given string as an additional line to the value of the
          `firstChessProgramNames'  option  when  the  -saveDate   setting
          preceeds  the  -date setting.  Intended for adding to the master
          settings file with the aid of -addMasterOption  in  the  install
          script  of engines, as a method for broadcasting the presence of
          a new engine to all users, which would then see it automatically
          registered  with  XBoard.   Made  obsolete  by the advent of the
          plugin standard (see the `autoInstall' option), which broadcasts
          such  presence  in  a  non-XBoard-specific way by dropping *.eng
          files in a certain system directory.

   -installTheme string
          Adds the given string as an additional line to the value of  the
          -themeNames option when the -saveDate setting preceeds the -date
          setting.  Intended for adding to the master settings  file  with
          the  aid  of  -addMasterOption  in  the  install script of board
          graphics themes, as a method for broadcasting  the  availability
          of a new theme to all users, who would then see the theme appear
          automatically in the listbox in the View Board menu dialog  next
          time they run XBoard.

   Other options
   -ncp/-xncp or -noChessProgram true/false
          If  this option is true, XBoard acts as a passive chessboard; it
          does not start a chess engine at all.  Turning  on  this  option
          also turns off clockMode. Default: false.

   -viewer
   -viewerOptions string
          Presence  of  the  volatile  option `viewer' on the command line
          will cause the value of the persistent option `viewerOptions' as
          stored  in the settings file to be appended to the command line.
          The `view' option will be used by desktop associations with game
          or  position  file types, so that `viewerOptions' can be used to
          configure the exact mode XBoard will start in when it should act
          on  such  a  file  (e.g.  in  -ncp  mode, or analyzing with your
          favorite engine). The options are  also  automatically  appended
          when Board is invoked with a single argument not being an option
          name, which is then assumed to be the name of  a  `loadGameFile'
          or  (when the name ends in .fen) a `loadPositionFile'.  Default:
          "-ncp -engineOutputUp false -saveSettingsOnExit false".

   -tourneyOptions string
          When XBoard is invoked with a single argument  that  is  a  file
          with  .trn  extension,  it  will  assume this argument to be the
          value of a `tourneyFile' option, and append  the  value  of  the
          persistent  option  `tourneyOptions'  as  stored in the settings
          file to the command line.  Thus the  value  of  `tourneyOptions'
          can be used to configure XBoard to automatically start running a
          tournament when it should act on such a  file.   Default:  "-ncp
          -mm -saveSettingsOnExit false".

   -mode or -initialMode modename
          If  this option is given, XBoard selects the given modename from
          the Mode menu after starting and (if applicable) processing  the
          loadGameFile   or   loadPositionFile  option.  Default:  ""  (no
          selection).    Other   supported   values   are    MachineWhite,
          MachineBlack,   TwoMachines,  Analysis,  AnalyzeFile,  EditGame,
          EditPosition, and Training.

   -variant varname
          Activates   (sometimes  partial)  support  for   playing   chess
          variants  against a local engine or editing variant games.  This
          flag is not needed in ICS mode.  Recognized variant names are:

              normal        Normal chess
              wildcastle    Shuffle chess, king can castle from d file
              nocastle      Shuffle chess, no castling allowed
              fischerandom  Fischer Random shuffle chess
              bughouse      Bughouse, ICC/FICS rules
              crazyhouse    Crazyhouse, ICC/FICS rules
              losers        Lose all pieces or get mated (ICC wild 17)
              suicide       Lose all pieces including king (FICS)
              giveaway      Try to have no legal moves (ICC wild 26)
              twokings      Weird ICC wild 9
              kriegspiel    Opponent's pieces are invisible
              atomic        Capturing piece explodes (ICC wild 27)
              3check        Win by giving check 3 times (ICC wild 25)
              shatranj      An ancient precursor of chess (ICC wild 28)
              xiangqi       Chinese Chess (on a 9x10 board)
              shogi         Japanese Chess (on a 9x9 board & piece drops)
              capablanca    Capablanca Chess (10x8 board, with Archbishop
                            and Chancellor pieces)
              gothic        similar, with a better initial position
              caparandom    An FRC-like version of Capablanca Chess (10x8)
              janus         A game with two Archbishops (10x8 board)
              courier       Medieval intermediate between shatranj and
                            modern Chess (on 12x8 board)
              falcon        Patented 10x8 variant with two Falcon pieces
              berolina      Pawns capture straight ahead, and move diagonally
              cylinder      Pieces wrap around the board edge
              knightmate    King moves as Knight, and vice versa
              super         Superchess (shuffle variant with 4 exo-pieces)
              makruk        Thai Chess (shatranj-like, P promotes on 6th rank)
              asean         ASEAN Chess (a modernized version of Makruk)
              spartan       Spartan Chess (black has unorthodox pieces)
              great         Great Shatranj, a 10x8 variant without sliders
              grand         Grand Chess, on 10x10 with Capablanca pieces
              lion          Mighty-Lion Chess, with a multi-capturing Lion
              elven         Eleven Chess, with Lion and crowned sliders on 10x10
              chu           Chu Shogi, historic 12x12 variant with 2x46 pieces
              fairy         A catchall variant in which all piece types
                            known to XBoard can participate (8x8)
              unknown       Catchall for other unknown variants

          In  the  shuffle  variants,  XBoard  does  shuffle  the  pieces,
          although  you can still do it by hand using Edit Position.  Some
          variants are supported only in ICS mode, including bughouse, and
          kriegspiel.   Berolina  and  cylinder  chess  are only partially
          supported, and can only be played with legality testing off.

          Apart from these standard variants, engines can define  variants
          of  arbitrary  names, briefing XBoard transparently on the rules
          for piece movement, board size and initial setup, so  that  they
          work  nearly as well as fully-supported standard variants.  (But
          obviously only while using that engine.)  The user might have to
          alter the adjudication settings for some variants, however. E.g.
          it makes no sense to adjudicate a draw after 50 reversible moves
          in variants that have a 64-move rule, or no similar rule at all.

          Default: "normal". Except when the first engine gave an explicit
          list of variants it supports, and 'normal' is not amongst those.
          In  that case the first variant the engine mentioned it did play
          will be chosen.

   -boardHeight N
          Allows you to set a non-standard number of board  ranks  in  any
          variant.   If  the height is given as -1, the default height for
          the variant is used.  Default: -1

   -boardWidth N
          Allows you to set a non-standard number of board  files  in  any
          variant.  If the width is given as -1, the default width for the
          variant  is  used.   With  a  non-standard  width,  the  initial
          position  will  always  be  an empty board, as the usual opening
          array will not fit.  Default: -1

   -holdingsSize N
          Allows you to set a non-standard size for the  holdings  in  any
          variant.   If the size is given as -1, the default holdings size
          for the variant is used.  The first N piece types will  go  into
          the  holdings  on  capture, and you will be able to drop them on
          the board in stead of making a normal move. If  size  equals  0,
          there will be no holdings.  Default: -1

   -defaultFrcPosition N
          Specifies  the  number  of the opening position in shuffle games
          like Chess960.  A value of -1 means  the  position  is  randomly
          generated by XBoard at the beginning of every game.  Default: -1

   -pieceToCharTable string
          The characters that are used to represent the piece types XBoard
          knows in FEN diagrams and SAN moves.  You should not have to use
          this  option often: each variant has its own default setting for
          the piece representation in FEN, which should be  sufficient  in
          normal  use.   The string argument has to specify an even number
          of pieces (or it will be ignored), as  white  and  black  pieces
          have to be given separately (in that order). The last letter for
          each color will be the King.  The letters before  that  will  be
          PNBRQ and then a whole host of fairy pieces in an order that has
          not fully crystallized yet (currently FEACWMOHIJGDVLSU,  F=Ferz,
          Elephant,   A=Archbishop,   C=Chancellor,  W=Wazir,  M=Commoner,
          O=Cannon, H=Nightrider). You should list  at  least  all  pieces
          that  occur  in  the  variant you are playing. If you have fewer
          characters in the string than XBoard has pieces, the pieces  not
          mentioned  will get assigned a period, and will not be usable in
          the variant.  You can also explicitly assign pieces a period, in
          which  case  they will not be counted in deciding which captured
          pieces can go into the holdings.  A tilde '~' as  a  piece  name
          does  mean  this  piece  is used to represent a promoted Pawn in
          crazyhouse-like games, i.e. on capture it turns back to a  Pawn.
          A  '+'  similarly  indicates the piece is a shogi-style promoted
          piece, that should revert to its non-promoted version on capture
          (rather  than to a Pawn).  By default the second 11 pieces known
          to XBoard are the promoted forms  of  the  first  11.   A  piece
          specified  by  the  character  combination ^ plus letter will be
          assumed to be the promoted form of the piece indicated  by  that
          letter, and get a '+' assigned.  To get around the limitation of
          the alphabet, piece IDs can also be 'dressed  letters',  i.e.  a
          single  letter  (upper  case  for  white,  lower case for black)
          followed by a single quote or an exclamation point.  Default: ""
          (meaning the default for the variant is used).

   -pieceNickNames string
          The  characters in the string are interpreted the same way as in
          the `pieceToCharTable' option. But on  input,  piece-ID  letters
          are  first  looked  up in the nicknames, and only if not defined
          there, in the normal pieceToCharTable. This allows you  to  have
          two  letters designate the same piece, (e.g. N as an alternative
          to H for Horse in Xiangqi), to  make  reading  of  non-compliant
          notations easier.  Default: ""

   -colorNickNames string
          The  side-to-move  field  in a FEN will be first matched against
          the letters in the string (first character for white, second for
          black),  before  it is matched to the regular 'w' and 'b'.  This
          makes it easier to read non-compliant FENs, which, say, use  'r'
          for white.  Default: ""

   -debug/-xdebug or -debugMode true/false
          Turns on debugging printout.

   -debugFile filename or -nameOfDebugFile filename
          Sets   the  name  of  the  file  to  which  XBoard  saves  debug
          information  (including  all  communication  to  and  from   the
          engines).   A  `%d'  in  the given file name (e.g. game%d.debug)
          will be replaced by the unique sequence number of  a  tournament
          game, so that the debug output of each game will be written on a
          separate file.

   -engineDebugOutput number
          Specifies how XBoard should handle unsolicited output  from  the
          engine, with respect to saving it in the debug file.  The output
          is further (hopefully) ignored.  If  number=0,  XBoard  refrains
          from  writing  such  spurious  output  to  the  debug  file.  If
          number=1, all engine output is written faithfully to  the  debug
          file.  If number=2, any protocol-violating line is prefixed with
          a '#' character, as the engine itself should  have  done  if  it
          wanted  to  submit  info  for inclusion in the debug file.  This
          option is provided for the benefit of applications that use  the
          debug  file  as a source of information, such as the broadcaster
          of live games TLCV / TLCS.  Such applications can  be  protected
          from spurious engine output that might otherwise confuse them.

   -rsh or -remoteShell shell-name
          Name  of  the command used to run programs remotely. The default
          is `rsh' or `remsh', determined when XBoard  is  configured  and
          compiled.

   -ruser or -remoteUser user-name
          User  name  on  the remote system when running programs with the
          `remoteShell'. The default is your local user name.

   -userName username
          Name under which the Human player will  be  listed  in  the  PGN
          file.  Default is the login name on your local computer.

   -delayBeforeQuit number
   -delayAfterQuit number
          These  options  order pauses before and after sending the "quit"
          command to an engine that must be terminated.  The pause between
          quit and the previous command is specified in milliseconds.  The
          pause after quit is used to schedule a kill signal to be sent to
          the  engine  process  after the number of specified seconds plus
          one.  This signal is a different one as the terminiation  signal
          described  in  the  protocol specs which engines can suppress or
          ignore, and which is sent directly  after  the  "quit"  command.
          Setting `delayAfterQuit' to -1 will suppress sending of the kill
          signal.  Default: 0

   -searchMode n
          The integer n encodes the mode for the `find position' function.
          Default: 1 (= Exact position match)

   -eloThresholdBoth elo
   -eloThresholdAny elo
          Defines  a  lower  limit  for  the  Elo  rating, which has to be
          surpassed before a game will be considered when searching for  a
          board position.  Default: 0

   -dateThreshold year
          Only  games  not played before the given year will be considered
          when searching for a board position

CHESS SERVERS

   An "Internet Chess Server", or "ICS", is a place on the Internet  where
   people  can  get together to play chess, watch other people's games, or
   just chat.  You can use either `telnet' or a client program like XBoard
   to  connect  to the server.  There are thousands of registered users on
   the different ICS hosts, and it is not unusual  to  meet  200  on  both
   chessclub.com and freechess.org.

   Most  people  can  just  type  `xboard  -ics' to start XBoard as an ICS
   client.  Invoking XBoard in this way connects you to the Internet Chess
   Club  (ICC), a commercial ICS.  You can log in there as a guest even if
   you do not have a paid account.  To connect to  the  largest  Free  ICS
   (FICS),  use  the command `xboard -ics -icshost freechess.org' instead,
   or substitute a different host name to connect to  your  favorite  ICS.
   For  a  full  description  of  command-line  options  that  control the
   connection to ICS and change the default values of ICS options, see ICS
   options.

   While  you  are  running  XBoard as an ICS client, you use the terminal
   window that you started XBoard from as a place to type in commands  and
   read information that is not available on the chessboard.

   The first time you need to use the terminal is to enter your login name
   and password, if you are a registered player. (You  don't  need  to  do
   this  manually;  the  `icsLogon'  option  can  do  it for you.  See ICS
   options.)  If you are not registered, enter `g' as your name,  and  the
   server will pick a unique guest name for you.

   Some useful ICS commands include

   help <topic>
          to  get  help  on  the  given <topic>. To get a list of possible
          topics type "help" without topic.  Try the help  command  before
          you ask other people on the server for help.

          For example `help register' tells you how to become a registered
          ICS player.

   who <flags>
          to see a list of  people  who  are  logged  on.   Administrators
          (people  you  should  talk  to if you have a problem) are marked
          with the character `*', an asterisk. The <flags>  allow  you  to
          display  only  selected  players:  For example, `who of' shows a
          list of players who are interested in playing but do not have an
          opponent.

   games  to see what games are being played

   match <player> [<mins>] [<inc>]
          to challenge another player to a game. Both opponents get <mins>
          minutes for the game, and <inc> seconds will be added after each
          move.   If another player challenges you, the server asks if you
          want to accept the challenge;  use  the  `accept'  or  `decline'
          commands to answer.

   accept
   decline
          to  accept  or decline another player's offer.  The offer may be
          to start a new game, or to  agree  to  a  `draw',  `adjourn'  or
          `abort' the current game. See Action Menu.

          If  you  have  more than one pending offer (for example, if more
          than one player is challenging you, or if your  opponent  offers
          both  a  draw  and  to  adjourn  the  game),  you have to supply
          additional  information,  by  typing  something   like   `accept
          <player>', `accept draw', or `draw'.

   draw
   adjourn
   abort  asks  your  opponent  to  terminate  a game by mutual agreement.
          Adjourned games can  be  continued  later.   Your  opponent  can
          either  `decline'  your  offer  or accept it (by typing the same
          command or typing `accept').  In some cases these commands  work
          immediately,   without  asking  your  opponent  to  agree.   For
          example, you can abort the game unilaterally if your opponent is
          out  of  time,  and  you  can  claim a draw by repetition or the
          50-move rule if available simply by typing `draw'.

   finger <player>
          to  get  information  about  the   given   <player>.   (Default:
          yourself.)

   vars   to get a list of personal settings

   set <var> <value>
          to modify these settings

   observe <player>
          to observe an ongoing game of the given <player>.

   examine
   oldmoves
          to review a recently completed game

   Some special XBoard features are activated when you are in examine mode
   on  ICS.   See  the  descriptions  of  the  menu  commands   `Forward',
   `Backward',  `Pause',  `ICS  Client',  and `Stop Examining' on the Edit
   Menu, Mode Menu, and Action Menu.

FIREWALLS

   By default, XBoard  communicates  with  an  Internet  Chess  Server  by
   opening  a TCP socket directly from the machine it is running on to the
   ICS. If there is a firewall between your  machine  and  the  ICS,  this
   won't  work.  Here  are some recipes for getting around common kinds of
   firewalls  using  special  options  to  XBoard.   Important:  See   the
   paragraph in the below about extra echoes, in Limitations.

   Suppose  that you can't telnet directly to ICS, but you can telnet to a
   firewall host, log in, and then telnet from there to  ICS.   Let's  say
   the firewall is called `firewall.example.com'. Set command-line options
   as follows:

       xboard -ics -icshost firewall.example.com -icsport 23

   Then when you run XBoard in ICS mode, you will be prompted to log in to
   the  firewall  host.  This works because port 23 is the standard telnet
   login service. Do so, then telnet to ICS, using a command like  `telnet
   chessclub.com  5000',  or  whatever  command  the firewall provides for
   telnetting to port 5000.

   If your firewall lets you  telnet  (or  rlogin)  to  remote  hosts  but
   doesn't  let you telnet to port 5000, you may be able to connect to the
   chess server on port 23 instead, which is the port the  telnet  program
   uses   by   default.    Some  chess  servers  support  this  (including
   chessclub.com and freechess.org), while some do not.

   If your chess server does not allow connections on  port  23  and  your
   firewall  does not allow you to connect to other ports, you may be able
   to connect by hopping through another host outside  the  firewall  that
   you have an account on.  For instance, suppose you have a shell account
   at `foo.edu'. Follow the recipe above, but instead  of  typing  `telnet
   chessclub.com  5000' to the firewall, type `telnet foo.edu' (or `rlogin
   foo.edu'), log in there, and then type `telnet chessclub.com 5000'.

   Suppose that you can't telnet directly to ICS, but you can use  rsh  to
   run  programs  on  a  firewall  host,  and that host can telnet to ICS.
   Let's say the firewall is called  `rsh.example.com'.  Set  command-line
   options as follows:

       xboard -ics -gateway rsh.example.com -icshost chessclub.com

   Then  when  you  run  XBoard in ICS mode, it will connect to the ICS by
   using `rsh' to run the command  `telnet  chessclub.com  5000'  on  host
   `rsh.example.com'.

   Suppose  that  you  can telnet anywhere you want, but you have to run a
   special program called `ptelnet' to do so.

   First, we'll consider the easy case, in  which  `ptelnet  chessclub.com
   5000'  gets  you  to  the  chess server.  In this case set command line
   options as follows:

       xboard -ics -telnet -telnetProgram ptelnet

   Then when you run XBoard  in  ICS  mode,  it  will  issue  the  command
   `ptelnet chessclub.com 5000' to connect to the ICS.

   Next,  suppose that `ptelnet chessclub.com 5000' doesn't work; that is,
   your `ptelnet' program doesn't let you connect to alternative ports. As
   noted  above,  your  chess  server  may allow you to connect on port 23
   instead.  In that case, just add the option `-icsport ""' to the  above
   command.   But if your chess server doesn't let you connect on port 23,
   you will have to find some other host  outside  the  firewall  and  hop
   through  it.  For  instance,  suppose  you  have  a  shell  account  at
   `foo.edu'. Set command line options as follows:

       xboard -ics -telnet -telnetProgram ptelnet -icshost foo.edu -icsport ""

   Then when you run XBoard  in  ICS  mode,  it  will  issue  the  command
   `ptelnet  foo.edu'  to  connect  to  your  account at `foo.edu'. Log in
   there, then type `telnet chessclub.com 5000'.

   ICC timestamp and FICS timeseal do not  work  through  some  firewalls.
   You  can  use  them  only if your firewall gives a clean TCP connection
   with a full 8-bit wide path.  If your firewall allows you  to  get  out
   only  by  running  a special telnet program, you can't use timestamp or
   timeseal across it.  But if you have access to a computer just  outside
   your  firewall,  and  you  have  much lower netlag when talking to that
   computer than to the ICS, it  might  be  worthwhile  running  timestamp
   there.   Follow  the  instructions  above  for  hopping  through a host
   outside the firewall (foo.edu in the example),  but  run  timestamp  or
   timeseal on that host instead of telnet.

   Suppose that you have a SOCKS firewall that will give you a clean 8-bit
   wide  TCP  connection  to  the  chess  server,  but  only   after   you
   authenticate  yourself via the SOCKS protocol.  In that case, you could
   make a socksified version of XBoard and run that.   If  you  are  using
   timestamp or timeseal, you will to socksify it, not XBoard; this may be
   difficult seeing that ICC and FICS do not provide source code for these
   programs.  Socksification is beyond the scope of this document, but see
   the SOCKS Web site at http://www.socks.permeo.com/.  If you are missing
   SOCKS, try http://www.funbureau.com/.

ENVIRONMENT VARIABLES

   Game  and  position  files  are  found  in  a  directory  named  by the
   `CHESSDIR' environment variable. If  this  variable  is  not  set,  the
   current  working  directory  is  used.  If  `CHESSDIR'  is  set, XBoard
   actually changes its working directory to  `$CHESSDIR',  so  any  files
   written by the chess engine will be placed there too.

LIMITATIONS AND KNOWN BUGS

   There  is  no  way for two people running copies of XBoard to play each
   other without going through an Internet Chess Server.

   Under some circumstances, your ICS password may be echoed when you  log
   on.

   If  you  are  connecting  to  the  ICS by running telnet on an Internet
   provider or firewall host, you may find that  each  line  you  type  is
   echoed  back  an  extra  time  after  you hit <Enter>. If your Internet
   provider is a Unix system, you can probably turn its echo off by typing
   `stty  -echo'  after  you  log  in,  and/or  typing <^E><Enter> (Ctrl+E
   followed by the Enter key) to the telnet program after you have  logged
   into  ICS.   It is a good idea to do this if you can, because the extra
   echo can occasionally confuse XBoard's parsing routines.

   The game parser recognizes only algebraic notation.

   Many of the following points used to be limitations in XBoard 4.2.7 and
   earlier, but are now fixed: The internal move legality tester in XBoard
   4.3.xx does look at the game history, and is fully aware of castling or
   en-passant-capture  rights.  It permits castling with the king on the d
   file because this is possible in some  "wild  1"  games  on  ICS.   The
   piece-drop  menu  does  not check piece drops in bughouse to see if you
   actually hold the piece you  are  trying  to  drop.  But  this  way  of
   dropping  pieces  should  be  considered  an obsolete feature, now that
   pieces can be dropped by dragging them from the holdings to the  board.
   Anyway,  if you would attempt an illegal move when using a chess engine
   or the ICS, XBoard will accept the error message that comes back,  undo
   the  move,  and  let you try another.  FEN positions saved by XBoard do
   include correct information about whether castling or  en  passant  are
   legal, and also handle the 50-move counter.  The mate detector does not
   understand that non-contact mate is not really mate in  bughouse.   The
   only problem this causes while playing is minor: a "#" (mate indicator)
   character will show up after a non-contact  mating  move  in  the  move
   list.  XBoard  will not assume the game is over at that point, not even
   when the option Detect Mates is on.  Edit Game  mode  always  uses  the
   rules  of  the selected variant, which can be a variant that uses piece
   drops.  You can load and edit games  that  contain  piece  drops.   The
   (obsolete)  piece menus are not active, but you can perform piece drops
   by dragging pieces from the holdings.  Fischer Random castling is fully
   understood.   You  can  enter  castlings by dragging the King on top of
   your Rook.  You can probably also play Fischer Random  successfully  on
   ICS by typing castling moves into the ICS Interaction window.

   The  menus  may  not  work if your keyboard is in Caps Lock or Num Lock
   mode.  This seems to be a problem with the Athena menu widget,  not  an
   XBoard bug.

   Also  see  the  ToDo file included with the distribution for many other
   possible bugs, limitations, and ideas for improvement  that  have  been
   suggested.

REPORTING PROBLEMS

   You  can  report bugs and problems with XBoard using the bug tracker at
   `https://savannah.gnu.org/projects/xboard/'  or  by  sending  mail   to
   `<bug-xboard@gnu.org>'.   It  can  also  be useful to report or discuss
   bugs in the  WinBoard  Forum  at  `http://www.open-aurec.com/wbforum/',
   WinBoard development section.

   Please  use the `script' program to start a typescript, run XBoard with
   the `-debug' option, and include the typescript output in your message.
   Also tell us what kind of machine and what operating system version you
   are using.  The command `uname -a' will often tell you this.

   If you improve XBoard, please send a message about your changes, and we
   will  get  in  touch with you about merging them in to the main line of
   development.

AUTHORS AND CONTRIBUTORS

   Chris Sears and  Dan  Sears  wrote  the  original  XBoard.   They  were
   responsible  for  versions 1.0 through 1.2.  The color scheme was taken
   from Wayne Christopher's `XChess' program.

   Tim Mann was primarily responsible  for  XBoard  versions  1.3  through
   4.2.7,  and for WinBoard (a port of XBoard to Microsoft Win32) from its
   inception through version 4.2.7.

   John Chanak contributed the initial implementation of ICS  mode.   Evan
   Welsh  wrote  `CMail',  and Patrick Surry helped in designing, testing,
   and documenting it.  Elmar Bartel contributed  the  new  piece  bitmaps
   introduced in version 3.2.  Jochen Wiedmann converted the documentation
   to texinfo.  Frank McIngvale added  click/click  moving,  the  Analysis
   modes,  piece  flashing,  ZIICS  import,  and  ICS text colorization to
   XBoard.  Hugh Fisher added  animated  piece  movement  to  XBoard,  and
   Henrik  Gram  added  it  to  WinBoard.   Mark  Williams contributed the
   initial (WinBoard-only) implementation of many new  features  added  to
   both  XBoard  and  WinBoard  in  version  4.1.0,  including copy/paste,
   premove,  icsAlarm,  autoFlipView,  training  mode,  auto  raise,   and
   blindfold.  Ben Nye contributed X copy/paste code for XBoard.

   In  a fork from version 4.2.7, Alessandro Scotti added many elements to
   the user interface of WinBoard, including the board textures and  font-
   based  rendering,  the evaluation-graph, move-history and engine-output
   window.  He was also responsible for adding the UCI support.

   H. G. Muller continued this fork of the project, producing version 4.3.
   He  made  WinBoard castling- and e.p.-aware, added variant support with
   adjustable board sizes, the crazyhouse holdings, and the fairy  pieces.
   In  addition  he  added most of the adjudication options, made WinBoard
   more robust in dealing with buggy and crashing  engines,  and  extended
   time  control with a time-odds and node-count-based modes.  Most of the
   options that initially were WinBoard only have now been back-ported  to
   XBoard.

   Michel  van  den  Bergh  provided the code for reading Polyglot opening
   books.

   Meanwhile, some work continued on the GNU XBoard project maintained  at
   savannah.gnu.org,   but  version  4.2.8  was  never  released.   Daniel
   Mehrmann was responsible for much of this work.

   Most recently, Arun Persaud worked with H. G. Muller to merge  all  the
   features  of the never-released XBoard/WinBoard 4.2.8 of the GNU XBoard
   project and the never-released 4.3.16 from H. G.'s fork into a  unified
   XBoard/WinBoard   4.4,   which   is   now   available   both  from  the
   savannah.gnu.org web site and the WinBoard forum.

CMAIL

   The `cmail' program can help you play chess by email with opponents  of
   your choice using XBoard as an interface.

   You will usually run `cmail' without giving any options.

   CMail options
   -h     Displays `cmail' usage information.

   -c     Shows  the  conditions  of  the GNU General Public License.  See
          Copying.

   -w     Shows the warranty notice of the  GNU  General  Public  License.
          See Copying.

   -v
   -xv    Provides  or  inhibits  verbose  output from `cmail' and XBoard,
          useful for debugging. The `-xv' form  also  inhibits  the  cmail
          introduction message.

   -mail
   -xmail Invokes or inhibits the sending of a mail message containing the
          move.

   -xboard
   -xxboard
          Invokes or inhibits the running of XBoard on the game file.

   -reuse
   -xreuse
          Invokes or inhibits the reuse of an existing XBoard  to  display
          the current game.

   -remail
          Resends  the  last  mail  message  for  that game. This inhibits
          running XBoard.

   -game <name>
          The name of the game to be processed.

   -wgames <number>
   -bgames <number>
   -games <number>
          Number of games to start as White, as Black or in total. Default
          is  1 as white and none as black. If only one color is specified
          then none of  the  other  color  is  assumed.  If  no  color  is
          specified  then  equal  numbers  of  White  and  Black games are
          started, with the extra game being as White if an odd number  of
          total games is specified.

   -me <short name>
   -opp <short name>
          A one-word alias for yourself or your opponent.

   -wname <full name>
   -bname <full name>
   -myname <full name>
   -oppname <full name>
          The full name of White, Black, yourself or your opponent.

   -wna <net address>
   -bna <net address>
   -na <net address>
   -oppna <net address>
          The email address of White, Black, yourself or your opponent.

   -dir <directory>
          The directory in which `cmail' keeps its files. This defaults to
          the  environment  variable   `$CMAIL_DIR'   or   failing   that,
          `$CHESSDIR',  `$HOME/Chess'  or `~/Chess'. It will be created if
          it does not exist.

   -arcdir <directory>
          The  directory  in  which  `cmail'  archives  completed   games.
          Defaults  to the environment variable `$CMAIL_ARCDIR' or, in its
          absence, the same directory as cmail  keeps  its  working  files
          (above).

   -mailprog <mail program>
          The  program used by cmail to send email messages. This defaults
          to the environment variable `$CMAIL_MAILPROG'  or  failing  that
          `/usr/ucb/Mail', `/usr/ucb/mail' or `Mail'. You will need to set
          this variable if none of the above paths fit your system.

   -logFile <file>
          A file in which to dump  verbose  debugging  messages  that  are
          invoked with the `-v' option.

   -event <event>
          The PGN Event tag (default `Email correspondence game').

   -site <site>
          The PGN Site tag (default `NET').

   -round <round>
          The PGN Round tag (default `-', not applicable).

   -mode <mode>
          The PGN Mode tag (default `EM', Electronic Mail).

   Other options
          Any  option flags not listed above are passed through to XBoard.
          Invoking XBoard through CMail changes the default values of  two
          XBoard  options:  The  default  value  for  `-noChessProgram' is
          changed to true; that is, by default no chess engine is started.
          The  default value for `-timeDelay' is changed to 0; that is, by
          default XBoard immediately goes to the end of the game as played
          so  far, rather than stepping through the moves one by one.  You
          can still set these options to whatever  values  you  prefer  by
          supplying them on CMail's command line.  See Options.

   Starting a CMail Game
   Type  `cmail'  from  a shell to start a game as white. After an opening
   message, you will be prompted for a game name, which is optional --  if
   you  simply  press  <Enter>,  the game name will take the form `you-VS-
   opponent'. You will next  be  prompted  for  the  short  name  of  your
   opponent.  If  you  haven't played this person before, you will also be
   prompted for his/her email address. `cmail' will then invoke XBoard  in
   the  background.  Make  your first move and select `Mail Move' from the
   `File' menu. See File Menu. If all is well, `cmail' will mail a copy of
   the move to your opponent. If you select `Exit' without having selected
   `Mail Move' then no move will be made.

   Answering a Move
   When you receive a message from an opponent containing a move in one of
   your  games,  simply  pipe the message through `cmail'. In some mailers
   this is as simple as typing `| cmail' when viewing the  message,  while
   in  others  you  may have to save the message to a file and do `cmail <
   file' at the command line. In either case `cmail' will display the game
   using  XBoard.  If you didn't exit XBoard when you made your first move
   then `cmail' will do its best to use the  existing  XBoard  instead  of
   starting  a  new  one.  As  before, simply make a move and select `Mail
   Move' from the `File' menu. See File Menu. `cmail' will try to use  the
   XBoard  that  was  most recently used to display the current game. This
   means that many games can be in progress simultaneously, each with  its
   own active XBoard.

   If  you  want  to look at the history or explore a variation, go ahead,
   but you must return to the current position before  XBoard  will  allow
   you  to  mail  a  move.  If you edit the game's history you must select
   `Reload Same Game' from the `File' menu to get  back  to  the  original
   position,  then  make  the  move  you  want and select `Mail Move'.  As
   before, if you decide you aren't ready to make a move just yet you  can
   either  select  `Exit'  without  sending  a  move  or just leave XBoard
   running until you are ready.

   Multi-Game Messages
   It is possible to have a `cmail' message  carry  more  than  one  game.
   This  feature was implemented to handle IECG (International Email Chess
   Group) matches, where a match consists of one game as white and one  as
   black,  with  moves  transmitted simultaneously. In case there are more
   general  uses,  `cmail'  itself  places  no  limit  on  the  number  of
   black/white games contained in a message; however, XBoard does.

   Completing a Game
   Because XBoard can detect checkmate and stalemate, `cmail' handles game
   termination sensibly. As well as resignation, the `Action' menu  allows
   draws to be offered and accepted for `cmail' games.

   For  multi-game  messages, only unfinished and just-finished games will
   be included in email messages. When all the games  are  finished,  they
   are  archived  in  the  user's  archive directory, and similarly in the
   opponent's when he or she pipes the final message through `cmail'.  The
   archive file name includes the date the game was started.

   Known CMail Problems
   It's possible that a strange conjunction of conditions may occasionally
   mean that `cmail' has trouble reactivating an existing XBoard. If  this
   should  happen, simply trying it again should work.  If not, remove the
   file that stores the XBoard's PID (`game.pid')  or  use  the  `-xreuse'
   option to force `cmail' to start a new XBoard.

   Versions of `cmail' after 2.16 no longer understand the old file format
   that XBoard used to use and so cannot be used to correspond with anyone
   using an older version.

   Versions  of `cmail' older than 2.11 do not handle multi-game messages,
   so multi-game correspondence is not possible with  opponents  using  an
   older version.

OTHER PROGRAMS YOU CAN USE WITH XBOARD

   Here are some other programs you can use with XBoard

   GNU Chess
   The GNU Chess engine is available from:

   ftp://ftp.gnu.org/gnu/gnuchess/

   You  can  use  XBoard to play a game against GNU Chess, or to interface
   GNU Chess to an ICS.

   Fairy-Max
   Fairy-Max is a derivative from the once World's smallest Chess  program
   micro-Max,  which  measures  only  about 100 lines of source code.  The
   main difference with  micro-Max  is  that  Fairy-Max  loads  its  move-
   generator  tables from a file, so that the rules for piece movement can
   be easily configured to implement  unorthodox  pieces.   Fairy-Max  can
   therefore  play  a  large number of variants, normal Chess being one of
   those.  In addition it plays Knightmate, Capablanca and  Gothic  Chess,
   Shatranj, Courier Chess, Cylinder chess, Berolina Chess, while the user
   can easily define new variants.  It can be obtained from:

   http://home.hccnet.nl/h.g.muller/dwnldpage.html

   HoiChess
   HoiChess is a not-so-very-strong  Chess  engine,  which  comes  with  a
   derivative  HoiXiangqi,  able to play Chinese Chess. It can be obtained
   from the standard Linux repositories through:

   sudo apt-get install hoichess

   Crafty
   Crafty is a chess engine written by Bob Hyatt.  You can use  XBoard  to
   play  a game against Crafty, hook Crafty up to an ICS, or use Crafty to
   interactively analyze games and positions for you.

   Crafty is a strong, rapidly evolving chess program. This rapid pace  of
   development  is good, because it means Crafty is always getting better.
   This can sometimes cause problems  with  backwards  compatibility,  but
   usually  the  latest  version  of Crafty will work well with the latest
   version of XBoard.  Crafty can be obtained from its author's FTP  site:
   ftp://ftp.cis.uab.edu/hyatt/.

   To  use  Crafty  with XBoard, give the -fcp and -fd options as follows,
   where <crafty's directory> is the  directory  in  which  you  installed
   Crafty and placed its book and other support files.

COPYRIGHT

   Copyright    (C)   1991   Digital   Equipment   Corporation,   Maynard,
   Massachusetts.

   All Rights Reserved.

   Permission to use, copy, modify, and distribute this software  and  its
   documentation  for  any  purpose  and  without  fee  is hereby granted,
   provided that the above copyright notice appear in all copies and  that
   both  that  copyright  notice  and  this  permission  notice  appear in
   supporting documentation, and that the name of Digital not be  used  in
   advertising  or  publicity  pertaining  to distribution of the software
   without specific, written prior permission.

   Digital  disclaims  all  warranties  with  regard  to  this   software,
   including all implied warranties of merchantability and fitness.  In no
   event  shall  Digital  be  liable  for   any   special,   indirect   or
   consequential  damages or any damages whatsoever resulting from loss of
   use, data or profits, whether in an action of contract,  negligence  or
   other  tortious action, arising out of or in connection with the use or
   performance of this software.

   Enhancements copyright (C) 1992-2003, 2004,  2005,  2006,  2007,  2008,
   2009,   2010,   2011,  2012,  2013,  2014,  2015,  2016  Free  Software
   Foundation, Inc.

   Published by the Free Software Foundation
   59 Temple Place - Suite 330
   Boston, MA 02111-1307 USA

   Permission is granted to make and distribute verbatim  copies  of  this
   manual  provided  the  copyright  notice and this permission notice are
   preserved on all copies.

   Permission is granted to copy and distribute modified versions of  this
   manual  under  the  conditions for verbatim copying, provided also that
   the section  entitled  ``GNU  General  Public  License,''  is  included
   exactly  as  in  the  original,  and provided that the entire resulting
   derived work is distributed under the  terms  of  a  permission  notice
   identical to this one.

   Permission  is  granted  to  copy  and  distribute translations of this
   manual into another language, under the above conditions  for  modified
   versions,  except  that  the  section  entitled  ``GNU  General  Public
   License,'' and this permission notice, may be included in  translations
   approved  by  the  Free  Software Foundation instead of in the original
   English.

GNU GENERAL PUBLIC LICENSE

   Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'

   Everyone is permitted to copy and distribute verbatim copies of this
   license document, but changing it is not allowed.

   The GNU General Public License is a free, copyleft license for software
   and other kinds of works.

   The  licenses  for most software and other practical works are designed
   to take away your freedom to share and change the works.  By  contrast,
   the GNU General Public License is intended to guarantee your freedom to
   share and change all versions of a program -- to make sure  it  remains
   free software for all its users.  We, the Free Software Foundation, use
   the GNU General Public License for most of  our  software;  it  applies
   also to any other work released this way by its authors.  You can apply
   it to your programs, too.

   When we speak of free software, we are referring to freedom, not price.
   Our General Public Licenses are designed to make sure that you have the
   freedom to distribute copies of free software (and charge for  them  if
   you  wish),  that you receive source code or can get it if you want it,
   that you can change the software or  use  pieces  of  it  in  new  free
   programs, and that you know you can do these things.

   To  protect  your  rights,  we  need to prevent others from denying you
   these rights or asking you to surrender  the  rights.   Therefore,  you
   have certain responsibilities if you distribute copies of the software,
   or if you modify it: responsibilities to respect the freedom of others.

   For example, if you distribute copies of such a program, whether gratis
   or for a fee, you must pass on to the recipients the same freedoms that
   you received.  You must make sure that they, too, receive  or  can  get
   the source code.  And you must show them these terms so they know their
   rights.

   Developers that use the GNU GPL protect your rights with two steps: (1)
   assert copyright on the software, and (2) offer you this License giving
   you legal permission to copy, distribute and/or modify it.

   For the developers' and authors' protection, the GPL  clearly  explains
   that  there is no warranty for this free software.  For both users' and
   authors' sake, the GPL requires that modified  versions  be  marked  as
   changed,  so  that their problems will not be attributed erroneously to
   authors of previous versions.

   Some devices are designed to  deny  users  access  to  install  or  run
   modified   versions   of   the   software  inside  them,  although  the
   manufacturer can do so.  This is fundamentally  incompatible  with  the
   aim   of  protecting  users'  freedom  to  change  the  software.   The
   systematic pattern of such abuse occurs in the  area  of  products  for
   individuals  to  use, which is precisely where it is most unacceptable.
   Therefore, we have designed this version of the  GPL  to  prohibit  the
   practice  for  those products.  If such problems arise substantially in
   other domains, we stand ready to extend this provision to those domains
   in  future  versions  of  the  GPL, as needed to protect the freedom of
   users.

   Finally, every program is threatened constantly  by  software  patents.
   States  should  not  allow  patents  to restrict development and use of
   software on general-purpose computers, but in those that do, we wish to
   avoid  the  special danger that patents applied to a free program could
   make it effectively proprietary.  To prevent this, the GPL assures that
   patents cannot be used to render the program non-free.

   The   precise  terms  and  conditions  for  copying,  distribution  and
   modification follow.

   Definitions.
          ``This License'' refers to version 3 of the GNU  General  Public
          License.

          ``Copyright'' also means copyright-like laws that apply to other
          kinds of works, such as semiconductor masks.

          ``The Program'' refers to any copyrightable work licensed  under
          this   License.    Each   licensee   is  addressed  as  ``you''.
          ``Licensees''  and  ``recipients''   may   be   individuals   or
          organizations.

          To  ``modify'' a work means to copy from or adapt all or part of
          the work in a fashion requiring copyright permission, other than
          the  making  of  an  exact copy.  The resulting work is called a
          ``modified version'' of the earlier work or a work ``based  on''
          the earlier work.

          A ``covered work'' means either the unmodified Program or a work
          based on the Program.

          To ``propagate'' a work means  to  do  anything  with  it  that,
          without  permission,  would  make  you  directly  or secondarily
          liable for infringement under applicable copyright  law,  except
          executing  it  on  a  computer  or  modifying  a  private  copy.
          Propagation includes  copying,  distribution  (with  or  without
          modification),  making  available  to  the  public,  and in some
          countries other activities as well.

          To ``convey'' a work means any kind of propagation that  enables
          other  parties to make or receive copies.  Mere interaction with
          a user through a computer network, with no transfer of  a  copy,
          is not conveying.

          An  interactive  user  interface  displays  ``Appropriate  Legal
          Notices'' to the  extent  that  it  includes  a  convenient  and
          prominently  visible  feature  that  (1) displays an appropriate
          copyright notice, and (2)  tells  the  user  that  there  is  no
          warranty  for the work (except to the extent that warranties are
          provided),  that  licensees  may  convey  the  work  under  this
          License,  and  how  to  view  a  copy  of  this License.  If the
          interface presents a list of user commands or options, such as a
          menu, a prominent item in the list meets this criterion.

   Source Code.
          The  ``source  code'' for a work means the preferred form of the
          work for making modifications to it.  ``Object code'' means  any
          non-source form of a work.

          A  ``Standard  Interface''  means an interface that either is an
          official standard defined by a recognized standards body, or, in
          the  case  of  interfaces specified for a particular programming
          language, one that is widely used among  developers  working  in
          that language.

          The ``System Libraries'' of an executable work include anything,
          other than the work as a whole, that  (a)  is  included  in  the
          normal  form  of  packaging  a Major Component, but which is not
          part of that Major Component, and (b) serves only to enable  use
          of  the  work  with  that  Major  Component,  or  to implement a
          Standard Interface for which an implementation is  available  to
          the  public in source code form.  A ``Major Component'', in this
          context, means  a  major  essential  component  (kernel,  window
          system,  and so on) of the specific operating system (if any) on
          which the executable work runs, or a compiler  used  to  produce
          the work, or an object code interpreter used to run it.

          The  ``Corresponding  Source''  for  a  work in object code form
          means all the source code needed to generate, install, and  (for
          an  executable work) run the object code and to modify the work,
          including scripts to control those activities.  However, it does
          not  include  the  work's  System  Libraries, or general-purpose
          tools or  generally  available  free  programs  which  are  used
          unmodified in performing those activities but which are not part
          of  the  work.   For  example,  Corresponding  Source   includes
          interface  definition files associated with source files for the
          work, and the source code for shared libraries  and  dynamically
          linked  subprograms  that  the  work is specifically designed to
          require, such as by intimate data communication or control  flow
          between those subprograms and other parts of the work.

          The  Corresponding  Source  need not include anything that users
          can  regenerate  automatically   from   other   parts   of   the
          Corresponding Source.

          The  Corresponding Source for a work in source code form is that
          same work.

   Basic Permissions.
          All rights granted under this License are granted for  the  term
          of  copyright  on  the Program, and are irrevocable provided the
          stated conditions are met.  This License explicitly affirms your
          unlimited  permission to run the unmodified Program.  The output
          from running a covered work is covered by this License  only  if
          the output, given its content, constitutes a covered work.  This
          License  acknowledges  your  rights  of  fair   use   or   other
          equivalent, as provided by copyright law.

          You  may  make,  run and propagate covered works that you do not
          convey, without conditions so long  as  your  license  otherwise
          remains  in  force.   You may convey covered works to others for
          the sole purpose of having them make  modifications  exclusively
          for you, or provide you with facilities for running those works,
          provided that you comply with  the  terms  of  this  License  in
          conveying  all  material for which you do not control copyright.
          Those thus making or running the covered works for you  must  do
          so exclusively on your behalf, under your direction and control,
          on terms that prohibit them  from  making  any  copies  of  your
          copyrighted material outside their relationship with you.

          Conveying  under  any  other  circumstances  is permitted solely
          under the conditions stated below.  Sublicensing is not allowed;
          section 10 makes it unnecessary.

   Protecting Users' Legal Rights From Anti-Circumvention Law.
          No   covered   work   shall  be  deemed  part  of  an  effective
          technological  measure  under  any  applicable  law   fulfilling
          obligations  under  article  11  of  the  WIPO  copyright treaty
          adopted on 20 December 1996,  or  similar  laws  prohibiting  or
          restricting circumvention of such measures.

          When  you  convey  a  covered work, you waive any legal power to
          forbid circumvention of technological  measures  to  the  extent
          such  circumvention  is effected by exercising rights under this
          License with respect to the covered work, and you  disclaim  any
          intention  to  limit  operation or modification of the work as a
          means of enforcing, against the  work's  users,  your  or  third
          parties'  legal  rights to forbid circumvention of technological
          measures.

   Conveying Verbatim Copies.
          You may convey verbatim copies of the Program's source  code  as
          you  receive  it, in any medium, provided that you conspicuously
          and appropriately publish on each copy an appropriate  copyright
          notice;  keep  intact  all notices stating that this License and
          any non-permissive terms added in accord with section 7 apply to
          the  code;  keep  intact  all  notices  of  the  absence  of any
          warranty; and give all recipients a copy of this  License  along
          with the Program.

          You  may  charge  any  price  or no price for each copy that you
          convey, and you may offer support or warranty protection  for  a
          fee.

   Conveying Modified Source Versions.
          You may convey a work based on the Program, or the modifications
          to produce it from the Program, in the form of source code under
          the terms of section 4, provided that you also meet all of these
          conditions:

          The work must carry prominent notices stating that you  modified
          it, and giving a relevant date.

          The  work  must  carry  prominent  notices  stating  that  it is
          released under this  License  and  any  conditions  added  under
          section 7.  This requirement modifies the requirement in section
          4 to ``keep intact all notices''.

          You must license the entire work, as a whole, under this License
          to  anyone  who  comes  into possession of a copy.  This License
          will therefore  apply,  along  with  any  applicable  section  7
          additional  terms,  to the whole of the work, and all its parts,
          regardless of how they are  packaged.   This  License  gives  no
          permission to license the work in any other way, but it does not
          invalidate such permission if you have separately received it.

          If the work has interactive user interfaces, each  must  display
          Appropriate   Legal   Notices;   however,  if  the  Program  has
          interactive interfaces that do  not  display  Appropriate  Legal
          Notices, your work need not make them do so.

          A  compilation  of  a  covered  work  with  other  separate  and
          independent works, which are not by their nature  extensions  of
          the  covered work, and which are not combined with it such as to
          form a larger program, in  or  on  a  volume  of  a  storage  or
          distribution   medium,   is   called  an  ``aggregate''  if  the
          compilation and its resulting copyright are not  used  to  limit
          the  access  or  legal  rights of the compilation's users beyond
          what the individual works permit.  Inclusion of a  covered  work
          in  an  aggregate  does  not  cause this License to apply to the
          other parts of the aggregate.

   Conveying Non-Source Forms.
          You may convey a covered work in  object  code  form  under  the
          terms  of  sections  4  and 5, provided that you also convey the
          machine-readable Corresponding Source under the  terms  of  this
          License, in one of these ways:

          Convey  the  object  code in, or embodied in, a physical product
          (including a physical distribution medium), accompanied  by  the
          Corresponding   Source   fixed  on  a  durable  physical  medium
          customarily used for software interchange.

          Convey the object code in, or embodied in,  a  physical  product
          (including  a  physical  distribution  medium), accompanied by a
          written offer, valid for at least three years and valid  for  as
          long  as  you  offer  spare  parts  or customer support for that
          product model, to give anyone  who  possesses  the  object  code
          either  (1)  a  copy  of  the  Corresponding  Source for all the
          software in the product that is covered by this  License,  on  a
          durable   physical   medium   customarily   used   for  software
          interchange, for a price no more than your  reasonable  cost  of
          physically performing this conveying of source, or (2) access to
          copy the Corresponding  Source  from  a  network  server  at  no
          charge.

          Convey  individual  copies of the object code with a copy of the
          written  offer  to  provide  the  Corresponding  Source.    This
          alternative  is  allowed  only occasionally and noncommercially,
          and only if you received the object code with such an offer,  in
          accord with subsection 6b.

          Convey  the  object  code  by  offering access from a designated
          place (gratis or for a charge), and offer equivalent  access  to
          the  Corresponding Source in the same way through the same place
          at no further charge.  You need not require recipients  to  copy
          the  Corresponding  Source  along  with the object code.  If the
          place  to  copy  the  object  code  is  a  network  server,  the
          Corresponding  Source  may be on a different server (operated by
          you  or  a  third  party)  that  supports   equivalent   copying
          facilities,  provided  you maintain clear directions next to the
          object code saying  where  to  find  the  Corresponding  Source.
          Regardless  of  what  server hosts the Corresponding Source, you
          remain obligated to ensure that it is available for as  long  as
          needed to satisfy these requirements.

          Convey the object code using peer-to-peer transmission, provided
          you inform other peers where the object code  and  Corresponding
          Source of the work are being offered to the general public at no
          charge under subsection 6d.

          A separable portion of the object code,  whose  source  code  is
          excluded from the Corresponding Source as a System Library, need
          not be included in conveying the object code work.

          A ``User Product'' is either (1) a ``consumer  product'',  which
          means  any tangible personal property which is normally used for
          personal,  family,  or  household  purposes,  or  (2)   anything
          designed   or  sold  for  incorporation  into  a  dwelling.   In
          determining whether a product is a  consumer  product,  doubtful
          cases  shall be resolved in favor of coverage.  For a particular
          product received by a particular user, ``normally used''  refers
          to  a typical or common use of that class of product, regardless
          of the status of the particular user or of the way in which  the
          particular user actually uses, or expects or is expected to use,
          the product.  A product is  a  consumer  product  regardless  of
          whether  the  product  has substantial commercial, industrial or
          non-consumer  uses,  unless  such  uses   represent   the   only
          significant mode of use of the product.

          ``Installation  Information''  for  a  User  Product  means  any
          methods, procedures, authorization keys,  or  other  information
          required  to  install and execute modified versions of a covered
          work in that  User  Product  from  a  modified  version  of  its
          Corresponding  Source.   The  information must suffice to ensure
          that the continued functioning of the modified object code is in
          no case prevented or interfered with solely because modification
          has been made.

          If you convey an object code work  under  this  section  in,  or
          with,  or  specifically  for  use  in,  a  User Product, and the
          conveying occurs as part of a transaction in which the right  of
          possession  and  use  of  the User Product is transferred to the
          recipient in perpetuity or for a fixed term (regardless  of  how
          the  transaction  is  characterized),  the  Corresponding Source
          conveyed  under  this  section  must  be  accompanied   by   the
          Installation  Information.   But this requirement does not apply
          if neither you nor  any  third  party  retains  the  ability  to
          install  modified  object code on the User Product (for example,
          the work has been installed in ROM).

          The requirement to provide  Installation  Information  does  not
          include  a  requirement  to continue to provide support service,
          warranty, or updates for  a  work  that  has  been  modified  or
          installed  by the recipient, or for the User Product in which it
          has been modified or installed.  Access  to  a  network  may  be
          denied  when  the  modification  itself materially and adversely
          affects the operation of the network or violates the  rules  and
          protocols for communication across the network.

          Corresponding  Source  conveyed,  and  Installation  Information
          provided, in accord with this section must be in a  format  that
          is  publicly documented (and with an implementation available to
          the public in source code form), and  must  require  no  special
          password or key for unpacking, reading or copying.

   Additional Terms.
          ``Additional  permissions''  are terms that supplement the terms
          of this License by making exceptions from one  or  more  of  its
          conditions.   Additional  permissions that are applicable to the
          entire Program shall be treated as though they were included  in
          this License, to the extent that they are valid under applicable
          law.  If additional  permissions  apply  only  to  part  of  the
          Program,   that   part   may  be  used  separately  under  those
          permissions, but the entire Program  remains  governed  by  this
          License without regard to the additional permissions.

          When you convey a copy of a covered work, you may at your option
          remove any additional permissions from that copy,  or  from  any
          part  of  it.  (Additional permissions may be written to require
          their own removal in certain cases when you  modify  the  work.)
          You  may  place additional permissions on material, added by you
          to a covered work, for which you have or  can  give  appropriate
          copyright permission.

          Notwithstanding   any  other  provision  of  this  License,  for
          material you add to a covered work, you may  (if  authorized  by
          the  copyright holders of that material) supplement the terms of
          this License with terms:

          Disclaiming warranty or limiting liability differently from  the
          terms of sections 15 and 16 of this License; or

          Requiring  preservation of specified reasonable legal notices or
          author attributions in that material or in the Appropriate Legal
          Notices displayed by works containing it; or

          Prohibiting misrepresentation of the origin of that material, or
          requiring that modified versions of such material be  marked  in
          reasonable ways as different from the original version; or

          Limiting the use for publicity purposes of names of licensors or
          authors of the material; or

          Declining to grant rights under trademark law for  use  of  some
          trade names, trademarks, or service marks; or

          Requiring  indemnification  of  licensors  and  authors  of that
          material  by  anyone  who  conveys  the  material  (or  modified
          versions of it) with contractual assumptions of liability to the
          recipient, for any liability that these contractual  assumptions
          directly impose on those licensors and authors.

          All   other   non-permissive  additional  terms  are  considered
          ``further restrictions'' within the meaning of section  10.   If
          the  Program  as  you received it, or any part of it, contains a
          notice stating that it is governed by this License along with  a
          term  that  is  a further restriction, you may remove that term.
          If a license document contains a further restriction but permits
          relicensing  or  conveying  under this License, you may add to a
          covered work material governed by  the  terms  of  that  license
          document, provided that the further restriction does not survive
          such relicensing or conveying.

          If you add terms to a covered work in accord with this  section,
          you must place, in the relevant source files, a statement of the
          additional  terms  that  apply  to  those  files,  or  a  notice
          indicating where to find the applicable terms.

          Additional terms, permissive or non-permissive, may be stated in
          the  form  of  a  separately  written  license,  or  stated   as
          exceptions; the above requirements apply either way.

   Termination.
          You  may  not  propagate  or  modify  a  covered  work except as
          expressly provided under this License.  Any attempt otherwise to
          propagate or modify it is void, and will automatically terminate
          your rights under this License (including  any  patent  licenses
          granted under the third paragraph of section 11).

          However,  if  you cease all violation of this License, then your
          license from a particular copyright  holder  is  reinstated  (a)
          provisionally,  unless and until the copyright holder explicitly
          and finally terminates your license, and (b) permanently, if the
          copyright  holder  fails  to notify you of the violation by some
          reasonable means prior to 60 days after the cessation.

          Moreover, your license from a  particular  copyright  holder  is
          reinstated  permanently  if the copyright holder notifies you of
          the violation by some reasonable means, this is the  first  time
          you  have  received notice of violation of this License (for any
          work) from that copyright holder, and  you  cure  the  violation
          prior to 30 days after your receipt of the notice.

          Termination of your rights under this section does not terminate
          the licenses of parties who have received copies or rights  from
          you under this License.  If your rights have been terminated and
          not permanently reinstated, you do not qualify  to  receive  new
          licenses for the same material under section 10.

   Acceptance Not Required for Having Copies.
          You  are not required to accept this License in order to receive
          or run a copy  of  the  Program.   Ancillary  propagation  of  a
          covered work occurring solely as a consequence of using peer-to-
          peer transmission to receive a copy likewise  does  not  require
          acceptance.  However, nothing other than this License grants you
          permission to propagate  or  modify  any  covered  work.   These
          actions  infringe  copyright  if you do not accept this License.
          Therefore, by modifying  or  propagating  a  covered  work,  you
          indicate your acceptance of this License to do so.

   Automatic Licensing of Downstream Recipients.
          Each time you convey a covered work, the recipient automatically
          receives a license from the original licensors, to  run,  modify
          and  propagate  that work, subject to this License.  You are not
          responsible for enforcing compliance by third parties with  this
          License.

          An  ``entity transaction'' is a transaction transferring control
          of an organization, or  substantially  all  assets  of  one,  or
          subdividing  an  organization,  or  merging  organizations.   If
          propagation  of  a  covered  work   results   from   an   entity
          transaction,  each party to that transaction who receives a copy
          of the work also receives whatever  licenses  to  the  work  the
          party's  predecessor  in  interest  had  or could give under the
          previous  paragraph,  plus  a  right  to   possession   of   the
          Corresponding  Source  of  the  work  from  the  predecessor  in
          interest,  if  the  predecessor  has  it  or  can  get  it  with
          reasonable efforts.

          You  may  not impose any further restrictions on the exercise of
          the rights granted or affirmed under this License.  For example,
          you  may  not impose a license fee, royalty, or other charge for
          exercise of rights granted under this License, and you  may  not
          initiate  litigation (including a cross-claim or counterclaim in
          a lawsuit) alleging  that  any  patent  claim  is  infringed  by
          making,  using,  selling,  offering  for  sale, or importing the
          Program or any portion of it.

   Patents.
          A ``contributor'' is a copyright holder who authorizes use under
          this  License  of  the Program or a work on which the Program is
          based.  The work  thus  licensed  is  called  the  contributor's
          ``contributor version''.

          A  contributor's  ``essential  patent  claims''  are  all patent
          claims owned or controlled by the contributor,  whether  already
          acquired  or hereafter acquired, that would be infringed by some
          manner, permitted by this License, of making, using, or  selling
          its contributor version, but do not include claims that would be
          infringed only as a consequence of further modification  of  the
          contributor   version.    For   purposes   of  this  definition,
          ``control'' includes the right to grant patent sublicenses in  a
          manner consistent with the requirements of this License.

          Each contributor grants you a non-exclusive, worldwide, royalty-
          free patent license under  the  contributor's  essential  patent
          claims, to make, use, sell, offer for sale, import and otherwise
          run, modify  and  propagate  the  contents  of  its  contributor
          version.

          In  the  following three paragraphs, a ``patent license'' is any
          express agreement or commitment,  however  denominated,  not  to
          enforce  a  patent  (such as an express permission to practice a
          patent or covenant not to  sue  for  patent  infringement).   To
          ``grant'' such a patent license to a party means to make such an
          agreement or commitment not to  enforce  a  patent  against  the
          party.

          If  you  convey  a  covered  work, knowingly relying on a patent
          license, and  the  Corresponding  Source  of  the  work  is  not
          available for anyone to copy, free of charge and under the terms
          of this License, through a publicly available network server  or
          other  readily  accessible means, then you must either (1) cause
          the Corresponding Source to be so available, or (2)  arrange  to
          deprive  yourself  of the benefit of the patent license for this
          particular work, or (3) arrange, in a manner consistent with the
          requirements  of  this  License, to extend the patent license to
          downstream recipients.  ``Knowingly  relying''  means  you  have
          actual   knowledge  that,  but  for  the  patent  license,  your
          conveying the covered work in a country, or your recipient's use
          of  the  covered  work  in a country, would infringe one or more
          identifiable patents in that country that  you  have  reason  to
          believe are valid.

          If,  pursuant  to  or in connection with a single transaction or
          arrangement, you convey, or propagate  by  procuring  conveyance
          of,  a  covered  work, and grant a patent license to some of the
          parties receiving the covered  work  authorizing  them  to  use,
          propagate, modify or convey a specific copy of the covered work,
          then the patent license you grant is automatically  extended  to
          all recipients of the covered work and works based on it.

          A  patent  license  is ``discriminatory'' if it does not include
          within the scope of its coverage, prohibits the exercise of,  or
          is  conditioned on the non-exercise of one or more of the rights
          that are specifically granted under this License.  You  may  not
          convey  a covered work if you are a party to an arrangement with
          a third party that is in the business of distributing  software,
          under  which  you  make  payment to the third party based on the
          extent of your activity of conveying the work, and  under  which
          the  third party grants, to any of the parties who would receive
          the covered work from you, a discriminatory patent  license  (a)
          in  connection  with  copies of the covered work conveyed by you
          (or copies made from those copies), or (b) primarily for and  in
          connection  with  specific products or compilations that contain
          the covered work, unless you entered into that  arrangement,  or
          that patent license was granted, prior to 28 March 2007.

          Nothing  in  this  License  shall  be  construed as excluding or
          limiting any implied license or other defenses  to  infringement
          that  may  otherwise be available to you under applicable patent
          law.

   No Surrender of Others' Freedom.
          If conditions are  imposed  on  you  (whether  by  court  order,
          agreement  or  otherwise) that contradict the conditions of this
          License, they do not excuse you  from  the  conditions  of  this
          License.   If  you cannot convey a covered work so as to satisfy
          simultaneously your obligations under this License and any other
          pertinent  obligations, then as a consequence you may not convey
          it at all.  For example, if you agree to terms that obligate you
          to  collect  a  royalty for further conveying from those to whom
          you convey the Program, the only  way  you  could  satisfy  both
          those  terms  and this License would be to refrain entirely from
          conveying the Program.

   Use with the GNU Affero General Public License.
          Notwithstanding any other provision of this  License,  you  have
          permission  to  link  or  combine  any  covered work with a work
          licensed under version  3  of  the  GNU  Affero  General  Public
          License into a single combined work, and to convey the resulting
          work.  The terms of this License will continue to apply  to  the
          part  which is the covered work, but the special requirements of
          the GNU Affero General Public License,  section  13,  concerning
          interaction  through  a network will apply to the combination as
          such.

   Revised Versions of this License.
          The Free Software Foundation  may  publish  revised  and/or  new
          versions  of  the  GNU General Public License from time to time.
          Such new versions will be  similar  in  spirit  to  the  present
          version,  but  may  differ  in detail to address new problems or
          concerns.

          Each version is given a distinguishing version number.   If  the
          Program  specifies  that  a  certain numbered version of the GNU
          General Public License ``or any later version'' applies  to  it,
          you have the option of following the terms and conditions either
          of that numbered version or of any later  version  published  by
          the Free Software Foundation.  If the Program does not specify a
          version number of the GNU General Public License, you may choose
          any version ever published by the Free Software Foundation.

          If  the  Program  specifies that a proxy can decide which future
          versions of the GNU General Public License  can  be  used,  that
          proxy's  public statement of acceptance of a version permanently
          authorizes you to choose that version for the Program.

          Later license versions may  give  you  additional  or  different
          permissions.   However, no additional obligations are imposed on
          any author or copyright holder as a result of your  choosing  to
          follow a later version.

   Disclaimer of Warranty.
          THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
          APPLICABLE LAW.  EXCEPT WHEN OTHERWISE  STATED  IN  WRITING  THE
          COPYRIGHT  HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS
          IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR  IMPLIED,
          INCLUDING,  BUT  NOT  LIMITED  TO,  THE  IMPLIED  WARRANTIES  OF
          MERCHANTABILITY AND  FITNESS  FOR  A  PARTICULAR  PURPOSE.   THE
          ENTIRE  RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
          WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE,  YOU  ASSUME  THE
          COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

   Limitation of Liability.
          IN  NO  EVENT  UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
          WRITING WILL ANY  COPYRIGHT  HOLDER,  OR  ANY  OTHER  PARTY  WHO
          MODIFIES  AND/OR  CONVEYS  THE  PROGRAM  AS  PERMITTED ABOVE, BE
          LIABLE TO YOU  FOR  DAMAGES,  INCLUDING  ANY  GENERAL,  SPECIAL,
          INCIDENTAL  OR  CONSEQUENTIAL  DAMAGES ARISING OUT OF THE USE OR
          INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO  LOSS
          OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
          YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH
          ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
          ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

   Interpretation of Sections 15 and 16.
          If the  disclaimer  of  warranty  and  limitation  of  liability
          provided  above  cannot be given local legal effect according to
          their terms, reviewing courts shall apply local  law  that  most
          closely  approximates  an absolute waiver of all civil liability
          in connection with the Program, unless a warranty or  assumption
          of  liability  accompanies a copy of the Program in return for a
          fee.

          If you develop a new program, and you  want  it  to  be  of  the
          greatest  possible  use  to  the public, the best way to achieve
          this is to make it free software which everyone can redistribute
          and change under these terms.

          To  do  so,  attach the following notices to the program.  It is
          safest to attach them to the start of each source file  to  most
          effectively  state  the  exclusion  of  warranty;  and each file
          should have at least the ``copyright'' line  and  a  pointer  to
          where the full notice is found.

          ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
          Copyright (C) YEAR NAME OF AUTHOR

          This program is free software: you can redistribute it and/or modify
          it under the terms of the GNU General Public License as published by
          the Free Software Foundation, either version 3 of the License, or (at
          your option) any later version.

          This program is distributed in the hope that it will be useful, but
          WITHOUT ANY WARRANTY; without even the implied warranty of
          MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
          General Public License for more details.

          You should have received a copy of the GNU General Public License
          along with this program.  If not, see `http://www.gnu.org/licenses/'.

          Also  add  information  on  how to contact you by electronic and
          paper mail.

          If the program does terminal interaction, make it output a short
          notice like this when it starts in an interactive mode:

          PROGRAM Copyright (C) YEAR NAME OF AUTHOR
          This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
          This is free software, and you are welcome to redistribute it
          under certain conditions; type `show c' for details.

          The  hypothetical commands `show w' and `show c' should show the
          appropriate parts of the General  Public  License.   Of  course,
          your program's commands might be different; for a GUI interface,
          you would use an ``about box''.

          You should also get your employer (if you work as a  programmer)
          or  school,  if  any, to sign a ``copyright disclaimer'' for the
          program, if necessary.  For more information on this, and how to
          apply       and      follow      the      GNU      GPL,      see
          `http://www.gnu.org/licenses/'.

          The GNU General Public License  does  not  permit  incorporating
          your  program  into  proprietary programs.  If your program is a
          subroutine library, you may consider it more  useful  to  permit
          linking  proprietary  applications with the library.  If this is
          what you want to do, use the GNU Lesser General  Public  License
          instead    of    this   License.    But   first,   please   read
          `http://www.gnu.org/philosophy/why-not-lgpl.html'.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.