diff --git a/modules/.cvsignore b/modules/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/Makefile.am b/modules/Makefile.am
new file mode 100644
index 000000000..848ff302c
--- /dev/null
+++ b/modules/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = bibwords bibupload bibformat miscutil websearch webstyle websession
+
+CLEANFILES = *~
diff --git a/modules/bibformat/.cvsignore b/modules/bibformat/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/bibformat/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/bibformat/Makefile.am b/modules/bibformat/Makefile.am
new file mode 100644
index 000000000..2ad5ae1dd
--- /dev/null
+++ b/modules/bibformat/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = bin doc lib web
+
+CLEANFILES = *~
\ No newline at end of file
diff --git a/modules/bibformat/bin/.cvsignore b/modules/bibformat/bin/.cvsignore
new file mode 100644
index 000000000..b72a82217
--- /dev/null
+++ b/modules/bibformat/bin/.cvsignore
@@ -0,0 +1,6 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+bibformat
\ No newline at end of file
diff --git a/modules/bibformat/bin/Makefile.am b/modules/bibformat/bin/Makefile.am
new file mode 100644
index 000000000..587412936
--- /dev/null
+++ b/modules/bibformat/bin/Makefile.am
@@ -0,0 +1,28 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+bin_SCRIPTS=bibformat
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(bin_SCRIPTS) *~ *.tmp 
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+	chmod u+x $@
diff --git a/modules/bibformat/bin/bibformat.in b/modules/bibformat/bin/bibformat.in
new file mode 100644
index 000000000..b63e4436c
--- /dev/null
+++ b/modules/bibformat/bin/bibformat.in
@@ -0,0 +1,124 @@
+## $Id$
+## Script that calls FlexElink on bibliographic data in XML MARC OAI.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start PHP:
+<protect>#!</protect><PHP> -f
+#!/soft/bin/php -f
+<?
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+
+   define( GLOBALCONFIG, "<LIBDIR>/php/cdsware/bibformat/common/global.inc.shtml");
+
+### okay, config read, from now on the script can continue ###
+
+<protect>
+
+
+//======================================================================
+  function getTime()
+  {
+    list($sec, $usec)=explode(" ", microtime());
+    return (float)$sec+(float)$usec;
+  }
+//======================================================================
+
+//======================================================================
+//  Main
+//======================================================================
+  require(GLOBALCONFIG);
+
+  include_once(MAIN);
+
+  define(DEFAULT_ITYPE, "DEFAULT");
+  define(DEFAULT_OTYPE, "DEFAULT");
+
+  $itype=DEFAULT_ITYPE;
+  $otype=explode(",", DEFAULT_OTYPE);
+
+  if(count($argv)>3)
+  {
+    print "Usage:\n\tbibformat [itype=<input type>] [otype=<output type>]\n";
+    exit;
+  }
+
+  foreach($argv as $value)
+  {
+    $par=explode("=", strtoupper(trim($value)));
+    if(count($par)>1)
+    {
+      if($par[0]=="ITYPE")
+      {
+	if(trim($par[1])!="")
+	{
+	  $itype=$par[1];
+	}
+      }
+      elseif($par[0]=="OTYPE")
+      {
+	if(trim($par[1])!="")
+	{
+	  $otype=explode(",", $par[1]);
+	}
+      }
+    }
+  }
+
+  $fxk=new FlexElink();
+  $error=$fxk->initialise("OAIMARC");
+  $err_fh=fopen("php://stderr", "w");
+  if($error)
+  {
+    fputs($err_fh, "Error initialising: $error");
+    exit;
+  }
+  $stime=getTime();
+  $code=0;
+  $count_rec=0;
+  while(1)
+  {
+    list($code, $res)=$fxk->getRecordResult($otype);
+    if($code<0) break;
+    if($code==0)
+    {
+      fputs($err_fh, "--------------------------------------------------------\n");
+      fputs($err_fh, "Errors processing record# $count_rec\n");
+      fputs($err_fh, "$res\n");
+      fputs($err_fh, "--------------------------------------------------------\n");
+      continue;
+    }
+    print eval("?>$res<?");
+    $count_rec++;
+  }
+  $etime=getTime();
+  $total_time=$etime-$stime;
+  fputs($err_fh, "--------------------------------------------------------\n");
+  fputs($err_fh, "Total processed records: $count_rec\n");
+  fputs($err_fh, "Total time: $total_time sec\n");
+  fputs($err_fh, "Avg. time per record: ".$total_time/$count_rec." sec\n");
+  fputs($err_fh, "--------------------------------------------------------\n");
+  fclose($err_fh);
+?>
+
+</protect>
diff --git a/modules/bibformat/bin/bibformat.wml b/modules/bibformat/bin/bibformat.wml
new file mode 100644
index 000000000..b63e4436c
--- /dev/null
+++ b/modules/bibformat/bin/bibformat.wml
@@ -0,0 +1,124 @@
+## $Id$
+## Script that calls FlexElink on bibliographic data in XML MARC OAI.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start PHP:
+<protect>#!</protect><PHP> -f
+#!/soft/bin/php -f
+<?
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+
+   define( GLOBALCONFIG, "<LIBDIR>/php/cdsware/bibformat/common/global.inc.shtml");
+
+### okay, config read, from now on the script can continue ###
+
+<protect>
+
+
+//======================================================================
+  function getTime()
+  {
+    list($sec, $usec)=explode(" ", microtime());
+    return (float)$sec+(float)$usec;
+  }
+//======================================================================
+
+//======================================================================
+//  Main
+//======================================================================
+  require(GLOBALCONFIG);
+
+  include_once(MAIN);
+
+  define(DEFAULT_ITYPE, "DEFAULT");
+  define(DEFAULT_OTYPE, "DEFAULT");
+
+  $itype=DEFAULT_ITYPE;
+  $otype=explode(",", DEFAULT_OTYPE);
+
+  if(count($argv)>3)
+  {
+    print "Usage:\n\tbibformat [itype=<input type>] [otype=<output type>]\n";
+    exit;
+  }
+
+  foreach($argv as $value)
+  {
+    $par=explode("=", strtoupper(trim($value)));
+    if(count($par)>1)
+    {
+      if($par[0]=="ITYPE")
+      {
+	if(trim($par[1])!="")
+	{
+	  $itype=$par[1];
+	}
+      }
+      elseif($par[0]=="OTYPE")
+      {
+	if(trim($par[1])!="")
+	{
+	  $otype=explode(",", $par[1]);
+	}
+      }
+    }
+  }
+
+  $fxk=new FlexElink();
+  $error=$fxk->initialise("OAIMARC");
+  $err_fh=fopen("php://stderr", "w");
+  if($error)
+  {
+    fputs($err_fh, "Error initialising: $error");
+    exit;
+  }
+  $stime=getTime();
+  $code=0;
+  $count_rec=0;
+  while(1)
+  {
+    list($code, $res)=$fxk->getRecordResult($otype);
+    if($code<0) break;
+    if($code==0)
+    {
+      fputs($err_fh, "--------------------------------------------------------\n");
+      fputs($err_fh, "Errors processing record# $count_rec\n");
+      fputs($err_fh, "$res\n");
+      fputs($err_fh, "--------------------------------------------------------\n");
+      continue;
+    }
+    print eval("?>$res<?");
+    $count_rec++;
+  }
+  $etime=getTime();
+  $total_time=$etime-$stime;
+  fputs($err_fh, "--------------------------------------------------------\n");
+  fputs($err_fh, "Total processed records: $count_rec\n");
+  fputs($err_fh, "Total time: $total_time sec\n");
+  fputs($err_fh, "Avg. time per record: ".$total_time/$count_rec." sec\n");
+  fputs($err_fh, "--------------------------------------------------------\n");
+  fclose($err_fh);
+?>
+
+</protect>
diff --git a/modules/bibformat/doc/.cvsignore b/modules/bibformat/doc/.cvsignore
new file mode 100644
index 000000000..8819c92c2
--- /dev/null
+++ b/modules/bibformat/doc/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+*.shtml
+*.pdf
diff --git a/modules/bibformat/doc/BibFormatAdminGuide.shtml.wml b/modules/bibformat/doc/BibFormatAdminGuide.shtml.wml
new file mode 100644
index 000000000..12ffde1ad
--- /dev/null
+++ b/modules/bibformat/doc/BibFormatAdminGuide.shtml.wml
@@ -0,0 +1,3276 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=Edit-Time-Data
+href="./BibFormat_Configuration_Manual_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>FlexElink Configuration Manual</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Author>hsanchez</o:Author>
+  <o:LastAuthor>hsanchez</o:LastAuthor>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>1</o:TotalTime>
+  <o:LastPrinted>2002-03-13T15:26:00Z</o:LastPrinted>
+  <o:Created>2002-07-31T13:41:00Z</o:Created>
+  <o:LastSaved>2002-07-31T13:41:00Z</o:LastSaved>
+  <o:Pages>27</o:Pages>
+  <o:Words>7712</o:Words>
+  <o:Characters>43961</o:Characters>
+  <o:Company>CERN</o:Company>
+  <o:Lines>366</o:Lines>
+  <o:Paragraphs>87</o:Paragraphs>
+  <o:CharactersWithSpaces>53987</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Courier;
+	panose-1:0 0 0 0 0 0 0 0 0 0;
+	mso-font-charset:0;
+	mso-generic-font-family:modern;
+	mso-font-format:other;
+	mso-font-pitch:fixed;
+	mso-font-signature:3 0 0 0 1 0;}
+@font-face
+	{font-family:Wingdings;
+	panose-1:5 0 0 0 0 0 0 0 0 0;
+	mso-font-charset:2;
+	mso-generic-font-family:auto;
+	mso-font-pitch:variable;
+	mso-font-signature:0 268435456 0 0 -2147483648 0;}
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0cm;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+h1
+	{mso-style-next:Normal;
+	margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:center;
+	mso-pagination:widow-orphan;
+	page-break-after:avoid;
+	mso-outline-level:1;
+	font-size:16.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Arial;
+	mso-font-kerning:0pt;
+	font-weight:normal;}
+h2
+	{mso-style-next:Normal;
+	margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:center;
+	mso-pagination:widow-orphan;
+	page-break-after:avoid;
+	mso-outline-level:2;
+	font-size:10.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Arial;
+	text-decoration:underline;
+	text-underline:single;}
+p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:12.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:24.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:36.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:48.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:60.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:72.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:84.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:96.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:108.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-12.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc1, li.MsoToc1, div.MsoToc1
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin:0cm;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc2, li.MsoToc2, div.MsoToc2
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:12.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc3, li.MsoToc3, div.MsoToc3
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:24.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc4, li.MsoToc4, div.MsoToc4
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:36.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc5, li.MsoToc5, div.MsoToc5
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:48.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc6, li.MsoToc6, div.MsoToc6
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:60.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc7, li.MsoToc7, div.MsoToc7
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:72.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc8, li.MsoToc8, div.MsoToc8
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:84.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoToc9, li.MsoToc9, div.MsoToc9
+	{mso-style-update:auto;
+	mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:96.0pt;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoHeader, li.MsoHeader, div.MsoHeader
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	tab-stops:center 216.0pt right 432.0pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoFooter, li.MsoFooter, div.MsoFooter
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	tab-stops:center 216.0pt right 432.0pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
+	{mso-style-next:"Index 1";
+	margin:0cm;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoCaption, li.MsoCaption, div.MsoCaption
+	{mso-style-next:Normal;
+	margin-top:6.0pt;
+	margin-right:0cm;
+	margin-bottom:6.0pt;
+	margin-left:0cm;
+	mso-pagination:widow-orphan;
+	font-size:10.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";
+	font-weight:bold;}
+p.MsoTof, li.MsoTof, div.MsoTof
+	{mso-style-next:Normal;
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:24.0pt;
+	margin-bottom:.0001pt;
+	text-indent:-24.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoTitle, li.MsoTitle, div.MsoTitle
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:center;
+	mso-pagination:widow-orphan;
+	font-size:20.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";
+	font-weight:bold;
+	text-decoration:underline;
+	text-underline:single;}
+p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:center;
+	mso-pagination:widow-orphan;
+	font-size:10.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Arial;
+	mso-fareast-font-family:"Times New Roman";}
+p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:center;
+	mso-pagination:widow-orphan;
+	font-size:9.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Arial;
+	mso-fareast-font-family:"Times New Roman";
+	font-weight:bold;}
+p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:center;
+	mso-pagination:widow-orphan;
+	font-size:10.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Arial;
+	mso-fareast-font-family:"Times New Roman";
+	font-weight:bold;}
+a:link, span.MsoHyperlink
+	{color:blue;
+	text-decoration:underline;
+	text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+	{color:purple;
+	text-decoration:underline;
+	text-underline:single;}
+p.Apartadonivel1, li.Apartadonivel1, div.Apartadonivel1
+	{mso-style-name:"Apartado nivel 1";
+	margin:0cm;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:14.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";
+	text-decoration:underline;
+	text-underline:single;}
+p.Texto, li.Texto, div.Texto
+	{mso-style-name:Texto;
+	margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:justify;
+	text-indent:27.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+p.EBNF, li.EBNF, div.EBNF
+	{mso-style-name:EBNF;
+	mso-style-parent:Texto;
+	margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:justify;
+	mso-pagination:widow-orphan;
+	font-size:10.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Courier;
+	mso-fareast-font-family:"Times New Roman";
+	mso-bidi-font-family:"Courier New";}
+p.Apartadonivel2, li.Apartadonivel2, div.Apartadonivel2
+	{mso-style-name:"Apartado nivel 2";
+	mso-style-parent:Texto;
+	margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:justify;
+	text-indent:27.0pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";
+	font-weight:bold;
+	text-decoration:underline;
+	text-underline:single;}
+p.figuremarker, li.figuremarker, div.figuremarker
+	{mso-style-name:"figure marker";
+	mso-style-parent:Texto;
+	margin:0cm;
+	margin-bottom:.0001pt;
+	text-align:center;
+	text-indent:27.0pt;
+	mso-pagination:widow-orphan;
+	font-size:10.0pt;
+	mso-bidi-font-size:12.0pt;
+	font-family:Courier;
+	mso-fareast-font-family:"Times New Roman";
+	mso-bidi-font-family:Tahoma;}
+@page Section1
+	{size:612.0pt 792.0pt;
+	margin:72.0pt 45.0pt 72.0pt 90.0pt;
+	mso-header-margin:35.4pt;
+	mso-footer-margin:35.4pt;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+ /* List Definitions */
+@list l0
+	{mso-list-id:16079807;
+	mso-list-type:hybrid;
+	mso-list-template-ids:-684034640 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l0:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l0:level2
+	{mso-level-number-format:bullet;
+	mso-level-text:o;
+	mso-level-tab-stop:99.0pt;
+	mso-level-number-position:left;
+	margin-left:99.0pt;
+	text-indent:-18.0pt;
+	font-family:"Courier New";
+	mso-bidi-font-family:"Times New Roman";}
+@list l0:level3
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0A7;
+	mso-level-tab-stop:135.0pt;
+	mso-level-number-position:left;
+	margin-left:135.0pt;
+	text-indent:-18.0pt;
+	font-family:Wingdings;}
+@list l1
+	{mso-list-id:69931913;
+	mso-list-type:hybrid;
+	mso-list-template-ids:937734046 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l1:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l1:level2
+	{mso-level-number-format:bullet;
+	mso-level-text:o;
+	mso-level-tab-stop:99.0pt;
+	mso-level-number-position:left;
+	margin-left:99.0pt;
+	text-indent:-18.0pt;
+	font-family:"Courier New";
+	mso-bidi-font-family:"Times New Roman";}
+@list l2
+	{mso-list-id:327293559;
+	mso-list-type:hybrid;
+	mso-list-template-ids:-555838332 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l2:level1
+	{mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;}
+@list l3
+	{mso-list-id:577903942;
+	mso-list-type:hybrid;
+	mso-list-template-ids:1524282006 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l3:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l4
+	{mso-list-id:652219475;
+	mso-list-type:hybrid;
+	mso-list-template-ids:-722965820 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l4:level1
+	{mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;}
+@list l5
+	{mso-list-id:665206514;
+	mso-list-type:hybrid;
+	mso-list-template-ids:340062660 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l5:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l6
+	{mso-list-id:681972721;
+	mso-list-type:hybrid;
+	mso-list-template-ids:1453904326 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l6:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l7
+	{mso-list-id:923536071;
+	mso-list-type:hybrid;
+	mso-list-template-ids:1756416122 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l7:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l8
+	{mso-list-id:1202280677;
+	mso-list-type:hybrid;
+	mso-list-template-ids:1204463410 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l8:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l9
+	{mso-list-id:1345984231;
+	mso-list-type:hybrid;
+	mso-list-template-ids:-1586443144 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l9:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l9:level2
+	{mso-level-number-format:bullet;
+	mso-level-text:o;
+	mso-level-tab-stop:99.0pt;
+	mso-level-number-position:left;
+	margin-left:99.0pt;
+	text-indent:-18.0pt;
+	font-family:"Courier New";
+	mso-bidi-font-family:"Times New Roman";}
+@list l10
+	{mso-list-id:1744179890;
+	mso-list-type:hybrid;
+	mso-list-template-ids:-898886362 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l10:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l11
+	{mso-list-id:1756586211;
+	mso-list-type:hybrid;
+	mso-list-template-ids:1598746082 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l11:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l12
+	{mso-list-id:1820732132;
+	mso-list-type:hybrid;
+	mso-list-template-ids:1404969010 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l12:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+@list l13
+	{mso-list-id:2118717409;
+	mso-list-type:hybrid;
+	mso-list-template-ids:-1182652458 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+@list l13:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:63.0pt;
+	mso-level-number-position:left;
+	margin-left:63.0pt;
+	text-indent:-18.0pt;
+	font-family:Symbol;}
+ol
+	{margin-bottom:0cm;}
+ul
+	{margin-bottom:0cm;}
+-->
+</style>
+<!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050">
+  <o:colormenu v:ext="edit" strokecolor="black"/>
+ </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+  <o:idmap v:ext="edit" data="1"/>
+  <o:regrouptable v:ext="edit">
+   <o:entry new="1" old="0"/>
+   <o:entry new="2" old="0"/>
+   <o:entry new="3" old="0"/>
+   <o:entry new="4" old="0"/>
+  </o:regrouptable>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body lang=EN-US link=blue vlink=purple style='tab-interval:36.0pt'>
+
+<div class=Section1>
+
+<p class=MsoTitle>BibFormat Configuration Manual</p>
+
+<p class=MsoTitle><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt;
+text-decoration:none;text-underline:none'>V0.3, 31 July 2002<o:p></o:p></span></p>
+
+<p class=MsoNormal><span style='font-family:Tahoma'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=MsoNormal><span style='font-family:Tahoma'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=MsoNormal><b><u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;
+font-family:Tahoma'>Table of contents<span style='mso-tab-count:10'>��������������������������������������������������������������������������� </span></span></u></b><span
+style='font-family:Tahoma'><span style='mso-tab-count:2'>������������������ </span><span
+style='mso-tab-count:3'>���������������������������� </span><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><!--[if supportFields]><span
+style='font-family:Tahoma'><span style='mso-element:field-begin'></span><span
+style="mso-spacerun: yes">�</span>TOC \h \z \t &quot;Apartado nivel
+1,1,Apartado nivel 2,2&quot; <span style='mso-element:field-separator'></span></span><![endif]--><span
+style='font-family:Tahoma'><span class=MsoHyperlink><a href="#_Toc3803663"><span
+style='mso-bidi-font-size:14.0pt'>1. - About BibFormat</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803663 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>2</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360033000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803664"><span
+style='mso-bidi-font-size:14.0pt'>2. - How it works?</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803664 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>3</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360034000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803665"><span
+style='mso-bidi-font-size:14.0pt'>3. - A first look at the web configuration
+interface</span><span style='color:windowtext;display:none;mso-hide:screen;
+text-decoration:none;text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803665 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>5</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360035000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803666"><span
+style='mso-bidi-font-size:14.0pt'>4. � Mapping the input (OAI Extraction Rules)</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803666 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>7</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360036000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803667"><span
+style='mso-bidi-font-size:14.0pt'>5. � Defining output types: Behaviors</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803667 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>10</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360037000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803668"><span
+style='mso-bidi-font-size:14.0pt'>6. � Formats</span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803668 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>12</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360038000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803669"><span
+style='mso-bidi-font-size:14.0pt'>7. � Knowledge bases (KBs)</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803669 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>13</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360039000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803670"><span
+style='mso-bidi-font-size:14.0pt'>8. � User Defined Functions (UDFs)</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803670 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>14</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370030000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803671"><span
+style='mso-bidi-font-size:14.0pt'>9. � Defining links</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803671 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>16</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370031000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc2 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803672">9.1.
+- EXTERNAL link conditions<span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803672 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>17</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370032000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc2 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803673">9.2.
+- INTERNAL link conditions<span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803673 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>17</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370033000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc2 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803674">9.3.
+� Example<span style='color:windowtext;display:none;mso-hide:screen;text-decoration:
+none;text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803674 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>18</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370034000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803675"><span
+style='mso-bidi-font-size:14.0pt'>10. � User management</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803675 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>20</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370035000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
+class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803676"><span
+style='mso-bidi-font-size:14.0pt'>11. - Evaluation Language Reference</span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'><span style='mso-element:field-begin'></span></span><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'> PAGEREF _Toc3803676 \h </span><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-separator'></span></span><![endif]--><span
+style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
+text-underline:none'>21</span><span style='color:windowtext;display:none;
+mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
+ <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370036000000</w:data>
+</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
+display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
+style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
+style='font-family:Tahoma'><o:p></o:p></span></p>
+
+<p class=MsoNormal><!--[if supportFields]><span style='font-family:Tahoma'><span
+style='mso-element:field-end'></span></span><![endif]--><span style='font-family:
+Tahoma'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<span style='font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:
+"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US;
+mso-bidi-language:AR-SA'><br clear=all style='mso-special-character:line-break;
+page-break-before:always'>
+</span>
+
+<p class=MsoHeader style='tab-stops:36.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel1><a name=aboutFlexelink></a><a name="_Toc240507"></a><a
+name="_Toc241005"></a><a name="_Toc3803663"><span style='mso-bookmark:_Toc241005'><span
+style='mso-bookmark:_Toc240507'><span style='mso-bookmark:aboutFlexelink'>1. -
+About BibFormat</span></span></span></a><span style='mso-bookmark:aboutFlexelink'></span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'>BibFormat is a piece
+of software that is part of the CERN Document Server (CDS, </span><a
+href="http://www.cds.ch/"><span style='mso-bookmark:aboutFlexelink'>http://www.cds.ch</span><span
+style='mso-bookmark:aboutFlexelink'></span></a><span style='mso-bookmark:aboutFlexelink'>)
+and more concretely of the CDS Search module (</span><a
+href="http://weblib.cern.ch/"><span style='mso-bookmark:aboutFlexelink'>http://weblib.cern.ch</span><span
+style='mso-bookmark:aboutFlexelink'></span></a><span style='mso-bookmark:aboutFlexelink'>).
+</span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'>Its mission, in few
+words, is to provide a flexible mechanism to format the bibliographic records
+that are shown as a result of CDS Search user queries allowing the
+administrators or users customize the view of them. Besides, it offers the
+possibility of using a linking system that can generate automatically all the
+links included in the displayed records (fulltext access, electronic journals
+reference, etc) reducing considerably maintenance.</span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'>To clarify this too
+formal definition, we�ll try to illustrate the role of BibFormat inside the CDS
+Search module by showing the following figure. Please, note that this drawing
+is trying to show the main role that BibFormat plays in the CDS structure and
+it�s quite simplified, but of course the underlying logic is a bit more
+complex.</span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'><!--[if gte vml 1]><v:shapetype
+ id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
+ path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
+ <v:stroke joinstyle="miter"/>
+ <v:formulas>
+  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
+  <v:f eqn="sum @0 1 0"/>
+  <v:f eqn="sum 0 0 @1"/>
+  <v:f eqn="prod @2 1 2"/>
+  <v:f eqn="prod @3 21600 pixelWidth"/>
+  <v:f eqn="prod @3 21600 pixelHeight"/>
+  <v:f eqn="sum @0 0 1"/>
+  <v:f eqn="prod @6 1 2"/>
+  <v:f eqn="prod @7 21600 pixelWidth"/>
+  <v:f eqn="sum @8 21600 0"/>
+  <v:f eqn="prod @7 21600 pixelHeight"/>
+  <v:f eqn="sum @10 21600 0"/>
+ </v:formulas>
+ <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
+ <o:lock v:ext="edit" aspectratio="t"/>
+</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:397.5pt;
+ height:156pt'>
+ <v:imagedata src="./BibFormatAdminGuide001.gif"
+  o:title="Image2"/>
+</v:shape><![endif]--><![if !vml]><img border=0 width=530 height=208
+src="./BibFormatAdminGuide001.gif" v:shapes="_x0000_i1025"><![endif]></span></p>
+
+<p class=figuremarker><span style='mso-bookmark:aboutFlexelink'>[Fig. 0]</span></p>
+
+<p class=Texto align=center style='text-align:center'><span style='mso-bookmark:
+aboutFlexelink'><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
+font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'>As you can see, when a
+user query is received, Weblib determines which records from the database match
+it; then it ask BibFormat to format the obtained records. BibFormat looks at
+its rule repository and for each record determines which format has to be
+taken, applies the format specification and solves the possible links; gives
+all this (in a formatted way) back to Weblib and it makes a nice HTML page
+including the formatted results given by BibFormat among other info.</span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'>The good point in all
+this is that anyone that has access to BibFormat rule repository is able to
+modify the final appearance of a query result in the CDS Search module without
+altering the logic of the search engine.</span></p>
+
+<p class=Texto><span style='mso-bookmark:aboutFlexelink'>In order to be able to
+modify this BibFormat rule repository, a web configuration interface is
+provided. Trough this paper, we�ll try to explain (in a friendly way and form
+the user point of view) how to access this interface, how it�s structured and
+how to configure BibFormat trough it to achieve desired results.</span></p>
+
+<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
+mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
+clear=all style='mso-special-character:line-break;page-break-before:always'>
+<span style='mso-bookmark:aboutFlexelink'></span></span>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel1><a name=howItWorks></a><a name="_Toc240508"></a><a
+name="_Toc241006"></a><a name="_Toc3803664"><span style='mso-bookmark:_Toc241006'><span
+style='mso-bookmark:_Toc240508'><span style='mso-bookmark:howItWorks'>2. - How
+it works?</span></span></span></a><span style='mso-bookmark:howItWorks'></span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>We�ve outlined which is
+the role of BibFormat inside the CDS, so it�s time now to have an overview of
+how it works and how it�s organized. We�ll try not to be very technical,
+however a few explanation about the BibFormat repository and architecture is
+needed to understand how it works.</span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>BibFormat, basically,
+takes some bibliographic records as input and produces a formatted &amp; linked
+version of them as output. By �formatted� we mean that BibFormat can produce an
+output containing a transformed version of the input data (normally an HTML
+view); the good part is that you can entirely specify the transformation to
+apply. At the same time, by �linked� we mean that you can ask BibFormat to
+include (if necessary) inside this formatted version references to some
+Internet resources that are related to the data from some pre-configured rules.
+</span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>As an example, we could
+imagine that you�d want to see the resulting records from CDS Search queries to
+show their title in bold followed by their authors separated by comas. For
+achieving this you�ll have to go to the BibFormat configuration interface and
+define a behavior for BibFormat in which you describe how to format incoming
+records: </span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 3.0pt'>
+
+<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
+margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 3.0pt'><span
+style='mso-bookmark:howItWorks'><span style='font-family:"Courier New"'>�&lt;b&gt;�
+$title �&lt;/b&gt;� <o:p></o:p></span></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
+margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 3.0pt'><span
+style='mso-bookmark:howItWorks'><span style='font-family:"Courier New"'>forall($author){
+<o:p></o:p></span></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
+margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 3.0pt'><span
+style='mso-bookmark:howItWorks'><span style='font-family:"Courier New"'><span
+style="mso-spacerun: yes">� </span>$author separator(�, �)<o:p></o:p></span></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
+margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;page-break-after:
+avoid;border:none;mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 3.0pt'><span style='mso-bookmark:howItWorks'><span
+style='font-family:"Courier New"'>}<o:p></o:p></span></span></p>
+
+</div>
+
+<p class=MsoCaption align=center style='text-align:center'><span
+style='mso-bookmark:howItWorks'><a name="_Toc261502"></a><a name="_Toc261578"><span
+style='mso-bookmark:_Toc261502'>Figure <span style='mso-field-code:"SEQ Figure \\* ARABIC"'>1</span>.-
+A very first <i>Evaluation Language</i> </span></a>example</span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>Don�t be scared!! It�s a
+first approach to the way BibFormat allows you to describe formats. As you can
+see, BibFormat uses a special language that you�ll have to learn if you want to
+be able to specify formats or links; it seems difficult (as much as a
+programming language) but you�ll see that it�s quite more easy than it seems at
+first sight.</span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>In the next figure, is
+shown how BibFormat works internally. When BibFormat is called, it receives a
+set of bibliographic records to format. It separates each record and translates
+it into a set of what we call �internal variables�; these �internal variables�
+are simply an internal representation of the bibliographic record; the
+important thing with them is that they will be available when you have to describe
+the formats. Once it has these �internal vars�, the processor module looks into
+the behavior repository for that one (let�s say format) you�ve asked BibFormat
+to apply (when BibFormat is called, you can indicate which of the
+pre-configured behaviors to apply; this allows it to have more than one
+behavior); inside this behavior you can specify which data you want to appear,
+how it has to appear, some links if they exist�in other words, the format
+(actually, it�s something more than a format, it describes how BibFormat has to
+behave for a given input; that�s why we refer to it as behavior). <span
+style="mso-spacerun: yes">�</span>As we�ve already said, you can include links
+in a behavior specification; links are a special BibFormat feature that helps
+you to reduce the maintenance of your formats: you can include a link in
+several formats or behaviors. </span></p>
+
+<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
+mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
+clear=all style='page-break-before:always'>
+</span>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>The picture below,
+describes all this explanation. </span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto style='text-indent:0cm'><span style='mso-bookmark:howItWorks'><!--[if gte vml 1]><v:shape
+ id="_x0000_i1026" type="#_x0000_t75" style='width:477pt;height:237.75pt'>
+ <v:imagedata src="BibFormatAdminGuide002.png"
+  o:title="Image3"/>
+</v:shape><![endif]--><![if !vml]><img border=0 width=636 height=317
+src="./BibFormatAdminGuide003.jpg" v:shapes="_x0000_i1026"><![endif]></span></p>
+
+<p class=figuremarker><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=figuremarker><span style='mso-bookmark:howItWorks'>[Fig. 2]</span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>Summarizing, BibFormat can
+transform an input made up of bibliographic records in an HTML output (not only
+HTML but any text-based output) according to certain pre-configured
+specifications (behaviors) that you can entirely define using a certain
+language.</span></p>
+
+<p class=Texto><span style='mso-bookmark:howItWorks'>Just to mention, currently
+BibFormat is working taking OAI MARC XML as format for input records, but it
+can be adapted to other ways of inputs (reading a database, function call, etc)
+with a little of development.</span></p>
+
+<span style='mso-bookmark:howItWorks'></span><u><span style='font-size:14.0pt;
+mso-bidi-font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
+mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
+clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name=firstLookAtWebIF></a><a name="_Toc240509"></a><a
+name="_Toc241007"></a><a name="_Toc3803665"><span style='mso-bookmark:_Toc241007'><span
+style='mso-bookmark:_Toc240509'><span style='mso-bookmark:firstLookAtWebIF'>3.
+- A first look at the web configuration interface</span></span></span></a><span
+style='mso-bookmark:firstLookAtWebIF'></span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>BibFormat can be
+configured through its configuration interface that is accessible via web. It�s
+made up of a bunch of web pages that present you the main configuration aspects
+of BibFormat allowing you to change them. In this section we are going to have
+a first look at this web interface, how it�s structured and its correspondence
+with BibFormat features.</span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>Before entering
+these web pages you�ll be asked for your accessing username &amp; password.
+Only certain users are allowed to access BibFormat WI; first you need a CDS
+account that you can create easily by using the standard CDS account manager;
+then you have to ask BibFormat administrator to give privileges to access the
+WI.</span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><span
+style="mso-spacerun: yes">�</span>Once your password is accepted you�ll access
+the configuration interface. You�ll see that is quite simple: It�s structured
+in different sections; each of them corresponds to a BibFormat feature and you
+can navigate through them by using a navigation bar that is always present on
+the left.</span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=figuremarker><span style='mso-bookmark:firstLookAtWebIF'>[Fig. 3]</span></p>
+
+<p class=Texto style='text-indent:0cm'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>Here you are a list
+of the different sections the interface offers you and their correspondence
+with BibFormat features:</span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>Behaviors</b>: This is the main section, the one you
+enter by default when you access the web interface. It contains definitions for
+the different pre-configured output types or behaviors that allow you to define
+how you want BibFormat to behave when each output type is selected. More information
+in chapter <i>Defining output types: Behaviors</i> of this manual.</span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>OAI Extraction Rules</b>: The input types and
+mapping rules for OAI MARC XML inputs are defined here. You�ll find here the
+information about all the internal variables and their correspondence with the
+input XML tags. See chapter <i>Mapping the input</i> of this manual for more
+information.</span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol;mso-bidi-font-weight:bold'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>Link Rules: </b>Allows you to access the link rules
+repository for defining the way links are generated. See chapter <i>Defining
+Links</i> for a more detailed description about the BibFormat linking system.<b><o:p></o:p></b></span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol;mso-bidi-font-weight:bold'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>UDFs: </b>Presents you a list of all the User
+Defined Functions (UDFs) that you can use inside <i>Evaluation Language </i>(<i>EL</i>)<i>
+</i>statements that are used for specifying different configuration aspects.
+You�ll also be able to modify or extend this list within this section.
+Everything about using UDFs and defining new ones in chapter <i>User Defined
+Functions (UDFs)</i>.<b><o:p></o:p></b></span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol;mso-bidi-font-weight:bold'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>Formats: </b>Another <i>EL</i> feature: You can
+define a certain piece of <i>EL</i> code under a name for re-using it whenever
+you want. See chapter <i>Formats</i>.<b><o:p></o:p></b></span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol;mso-bidi-font-weight:bold'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>KBs: </b>A complete management interface for <i>Knowledge
+Bases </i>(<i>KBs</i>); those <i>KBs</i> will also be available inside <i>EL</i>
+statements. See chapter <i>Knowledge Bases(Kbs)</i> for more specific
+information. <b><o:p></o:p></b></span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol;mso-bidi-font-weight:bold'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>Execution Test: </b>You�ll be able to execute
+BibFormat from this section and view the results and some debug info in a web
+page. You have to specify an input data file (through a URL). <b><o:p></o:p></b></span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
+tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
+style='font-family:Symbol;mso-bidi-font-weight:bold'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><b>User management: </b>Allows you to define which CDS
+users can access or not the BibFormat web interface.<b><o:p></o:p></b></span></p>
+
+<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><span
+style='mso-bookmark:firstLookAtWebIF'><b><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></b></span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>Each section has
+different particularities but the way of dealing with them follows a common
+line through the interface. However, each section with their common things and
+particular characteristics are treated in the following chapters of this
+manual.</span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<span style='mso-bookmark:firstLookAtWebIF'></span>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
+mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
+EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name="_Toc240510"></a><a name="_Toc241008"></a><a
+name="_Toc3803666"><span style='mso-bookmark:_Toc241008'><span
+style='mso-bookmark:_Toc240510'>4. � Mapping the input (OAI Extraction Rules)</span></span></a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>We have already spoken a bit about BibFormat <i>internal
+variables</i>. These are a key point to understand the BibFormat way of
+working. As you know, BibFormat takes some bibliographic records as input and,
+according to some pre-configured behavior, formats them into HTML, for example.
+The problem is that this input records can come in several formats: different
+XML conventions, database records, etc. For now, at CDS we only consider that
+the input comes in OAI MARC XML but for the near future we�ll may be have to
+extend it to accept other input formats.</p>
+
+<p class=Texto>That�s the reason why <i>internal variables</i> appear; they
+provide a common way to refer to input data without relaying in any concrete
+format. In other words, we will define BibFormat links and behaviors referring
+to these <i>internal variables</i> and we�ll have some rules that define how to
+map an input format to them, so we would be able to use any BibFormat defined
+behavior with any input that can be mapped to <i>internal variables</i>.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75"
+ style='width:455.25pt;height:153.75pt'>
+ <v:imagedata src="./BibFormatAdminGuide004.gif"
+  o:title="Image4"/>
+</v:shape><![endif]--><![if !vml]><img border=0 width=607 height=205
+src="./BibFormatAdminGuide004.gif" v:shapes="_x0000_i1027"><![endif]></p>
+
+<p class=figuremarker>[Fig. 4]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>You shouldn�t worry about this because is more in the
+development/administration side, but it�s important to know where <i>internal
+variables </i>come from and what they refer to. Besides, for CDS we only
+consider the incoming data in OAI MARC XML format, so we�ll talk only about
+this case.</p>
+
+<p class=Texto><i>Internal variables</i> are quite a simple concept: It�s just
+a label that represents some values from the input. Besides, a variable can
+have <i>fields</i> that are also labels that represent values from the input
+but that are related to other under the variable (e.g. You can have a variable
+that maps authors and another that maps authors home institutes independently;
+but if you want to have represent an author and his home institute you need to
+relate these two variables in some way). Variables and their fields also
+support multiple values. </p>
+
+<p class=Texto>Focusing on OAI MARC XML, the concept of variable and field is
+already in the input structure.:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l13 level1 lfo9;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Each occurrence of OAI MARC XML <i>varfield</i> element
+will correspond to a different variable value.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l13 level1 lfo9;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Each occurrence of OAI MARC XML <i>subfield</i> inside
+a certain <i>varfield </i>element will correspond to a different field value of
+the variable that maps the <i>varfield</i>.</p>
+
+<p class=Texto>So what we will have in BibFormat is a set of rules that tells a
+variable name to which <i>varfield </i>element corresponds and each variable
+field name which <i>subfield</i> element maps. Trough the web interface you�ll
+be able to add or delete new fields to variables or variables themselves,
+you�ll be able even to modify the mapping tags of variables (this way you can
+keep your formats independent of changes in the meaning of MARC tags). </p>
+
+<p class=Texto>In the web interface, all this is located in <i>OAI Ext. Rules</i>
+section as you can see in the following figure:</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 5]</p>
+
+<p class=Texto>Let�s illustrate how BibFormat maps a certain input to variables
+and fields with an example:</p>
+
+<p class=Texto>We have this variable &amp; field definition on BibFormat:</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<table border=1 cellspacing=0 cellpadding=0 width=624 style='width:468.0pt;
+ margin-left:-3.6pt;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
+ mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+ <tr>
+  <td width=41 valign=top style='width:30.9pt;border:solid windowtext .5pt;
+  background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
+  style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Var. label<o:p></o:p></span></b></p>
+  </td>
+  <td width=205 valign=top style='width:153.8pt;border:solid windowtext .5pt;
+  border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#E0E0E0;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
+  style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Mapping tag<o:p></o:p></span></b></p>
+  </td>
+  <td width=67 valign=top style='width:50.35pt;border:solid windowtext .5pt;
+  border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#E0E0E0;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
+  style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Mult. V.<o:p></o:p></span></b></p>
+  </td>
+  <td width=311 valign=top style='width:232.95pt;border:solid windowtext .5pt;
+  border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#E0E0E0;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
+  style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Fields<o:p></o:p></span></b></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=41 valign=top style='width:30.9pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><span style='font-size:9.0pt;
+  mso-bidi-font-size:12.0pt'>100<o:p></o:p></span></p>
+  </td>
+  <td width=205 valign=top style='width:153.8pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;varfield
+  id=&quot;100&quot; i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
+  </td>
+  <td width=67 valign=top style='width:50.35pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Yes<o:p></o:p></span></p>
+  </td>
+  <td width=311 valign=top style='width:232.95pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+  <table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
+   border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+   <tr>
+    <td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
+    background:#D9D9D9;padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Field label<o:p></o:p></span></p>
+    </td>
+    <td width=172 valign=top style='width:128.7pt;border:solid windowtext .5pt;
+    border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#D9D9D9;
+    padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Mapping tag<o:p></o:p></span></p>
+    </td>
+   </tr>
+   <tr>
+    <td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
+    border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>a<o:p></o:p></span></p>
+    </td>
+    <td width=172 valign=top style='width:128.7pt;border-top:none;border-left:
+    none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+    mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+    padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;subfield
+    label=&quot;a&quot;&gt;<o:p></o:p></span></p>
+    </td>
+   </tr>
+   <tr>
+    <td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
+    border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>e<o:p></o:p></span></p>
+    </td>
+    <td width=172 valign=top style='width:128.7pt;border-top:none;border-left:
+    none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+    mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+    padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;subfield
+    label=&quot;e&quot;&gt;<o:p></o:p></span></p>
+    </td>
+   </tr>
+  </table>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><o:p></o:p></span></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=41 valign=top style='width:30.9pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><span style='font-size:9.0pt;
+  mso-bidi-font-size:12.0pt'>909C0<o:p></o:p></span></p>
+  </td>
+  <td width=205 valign=top style='width:153.8pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;varfield
+  id=&quot;909&quot; i1=&quot;C&quot; i2=&quot;0&quot;&gt;<o:p></o:p></span></p>
+  </td>
+  <td width=67 valign=top style='width:50.35pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>No<o:p></o:p></span></p>
+  </td>
+  <td width=311 valign=top style='width:232.95pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+  <table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
+   border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+   <tr>
+    <td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
+    background:#D9D9D9;padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Field label<o:p></o:p></span></p>
+    </td>
+    <td width=172 valign=top style='width:128.7pt;border:solid windowtext .5pt;
+    border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#D9D9D9;
+    padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Mapping tag<o:p></o:p></span></p>
+    </td>
+   </tr>
+   <tr>
+    <td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
+    border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>b<o:p></o:p></span></p>
+    </td>
+    <td width=172 valign=top style='width:128.7pt;border-top:none;border-left:
+    none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+    mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+    padding:0cm 5.4pt 0cm 5.4pt'>
+    <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+    style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;subfield
+    label=&quot;b&quot;&gt;<o:p></o:p></span></p>
+    </td>
+   </tr>
+  </table>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><o:p></o:p></span></p>
+  </td>
+ </tr>
+</table>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>And then a record like the following arrives as input:</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>&lt;oai_marc&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;varfield id=&quot;037&quot;
+i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">����� </span>&lt;subfield
+label=&quot;a&quot;&gt;SCAN-0009119&lt;/subfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;/varfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;varfield id=&quot;100&quot;
+i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">����� </span>&lt;subfield
+label=&quot;a&quot;&gt;Racah, Giulio&lt;/subfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;/varfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">� </span>&lt;varfield id=&quot;100&quot;
+i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">����� </span>&lt;subfield
+label=&quot;a&quot;&gt;Guignard, G&lt;/subfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">����� </span>&lt;subfield
+label=&quot;e&quot;&gt;editor&lt;/subfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;/varfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;varfield id=&quot;909&quot;
+i1=&quot;C&quot; i2=&quot;0&quot;&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">����� </span>&lt;subfield
+label=&quot;b&quot;&gt;11&lt;/subfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;/varfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;varfield id=&quot;909&quot;
+i1=&quot;C&quot; i2=&quot;0&quot;&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">����� </span>&lt;subfield
+label=&quot;b&quot;&gt;12&lt;/subfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
+style="mso-spacerun: yes">�� </span>&lt;/varfield&gt;<o:p></o:p></span></p>
+
+<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
+margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
+mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>&lt;/oai_marc&gt;<o:p></o:p></span></p>
+
+</div>
+
+<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
+mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
+clear=all style='mso-special-character:line-break;page-break-before:always'>
+</span>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>The result of the mapping would be like this:</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
+ border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+ <tr>
+  <td width=590 colspan=4 valign=top style='width:442.8pt;border:solid windowtext .5pt;
+  background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Variable
+  �100�<o:p></o:p></b></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=118 valign=top style='width:88.55pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E0E0E0;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'>Value#
+  0</p>
+  </td>
+  <td width=118 valign=top style='width:88.55pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+  </td>
+  <td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>Field �a� value</p>
+  </td>
+  <td width=177 style='width:132.85pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>Racah,
+  Giulio</span></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=118 rowspan=2 style='width:88.55pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E0E0E0;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'>Value#
+  1</p>
+  </td>
+  <td width=118 rowspan=2 style='width:88.55pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+  </td>
+  <td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>Field �a� value</p>
+  </td>
+  <td width=177 style='width:132.85pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>Guignard,
+  G<o:p></o:p></span></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>Field �e� value</p>
+  </td>
+  <td width=177 style='width:132.85pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>editor<o:p></o:p></span></p>
+  </td>
+ </tr>
+</table>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
+ border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+ <tr>
+  <td width=590 colspan=4 valign=top style='width:442.8pt;border:solid windowtext .5pt;
+  background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Variable
+  �909C0�<o:p></o:p></b></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=118 valign=top style='width:88.55pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E0E0E0;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'>Value#
+  0</p>
+  </td>
+  <td width=118 valign=top style='width:88.55pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+  </td>
+  <td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>Field �b� value</p>
+  </td>
+  <td width=177 style='width:132.85pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><span
+  style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>12</span></p>
+  </td>
+ </tr>
+</table>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>Notice how <i>varfield 037</i> is not considered because there
+isn�t an entry in the BibFormat configuration. Also notice how the values are
+created: if �allow multiple values� is set to �Yes� each occurrence of a <i>varfield</i>
+element determines a new value (variable �100�); in other case, the last value
+is taken as single value for the variable (variable �909C0�).</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
+mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
+EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name="_Toc240511"></a><a name="_Toc241009"></a><a
+name="_Toc3803667"><span style='mso-bookmark:_Toc241009'><span
+style='mso-bookmark:_Toc240511'>5. � Defining output types: Behaviors</span></span></a>
+</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>Now that we already know how internal variables are structured
+and what they represent in the input, it�s time to have a look at how to
+configure BibFormat to transform that input data mapped into variables into
+HTML results (although any text-based output could be generated).</p>
+
+<p class=Texto>When BibFormat is asked to format a bunch of bibliographic
+records, it is also necessary to specify which <i>output type</i> it has to
+use. This output type is a string that identifies a pre-configured set of
+conditions and actions that tells BibFormat how to behave with the given input
+data (that�s why the terms <i>output type</i> and <i>behavior</i> are used
+indifferently along this document).</p>
+
+<p class=Texto>BibFormat can have several pre-configured behaviors each one
+identified by a different label. There are two different types of behaviors
+(you can choose the behavior type when you define it):</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo10;
+tab-stops:list 63.0pt'><![if !supportLists]>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
+</span><![endif]>Normal <span style='font-family:Wingdings;mso-ascii-font-family:
+Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;mso-symbol-font-family:
+Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:Wingdings'>�</span></span>
+Consists in a behavior that outputs exactly the result of its evaluation.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo10;
+tab-stops:list 63.0pt'><![if !supportLists]>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
+</span><![endif]>Input Erich (only for XML inputs)<span style='font-family:
+Wingdings;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:
+symbol;mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;
+mso-symbol-font-family:Wingdings'>�</span></span> It echoes each xml record
+from the input inserting the behavior result just before the xml closing
+element of the record.</p>
+
+<p class=Texto>Each behavior contains an ordered list of conditions; a
+condition can contain zero or more associated actions (actions are ordered
+inside a condition). A condition is a behavior item described by an <i>Evaluation
+Language</i> expression that gives as result �TRUE� or �FALSE�. An action is an
+<i>Evaluation Language</i> (<i>EL</i>) statement that produces any output. </p>
+
+<p class=Texto>When BibFormat is called to format a set of input records with a
+given behavior label, it looks for the behavior conditions. It evaluates their <i>EL</i>
+in order and when one of them produces �TRUE� as result, it looks for their
+associated actions. Then BibFormat evaluates the actions in the specified order
+and concatenates their result.</p>
+
+<p class=Texto>By using different conditions you can specify alternative
+formats inside a behavior (imagine that you want to format a record differently
+depending on its base number); it�s true that you could also reach this
+solution by using <i>EL IF</i> statements, but it�s more clear, efficient and
+re-usable (you can change one condition without touching the rest or you can
+give it more priority than others, that means give it the chance to be
+evaluated before others, by changing its apply order). </p>
+
+<p class=Texto>Actions are used for specifying the format itself or the actions
+you want to carry on with in case the condition is accomplished.</p>
+
+<p class=Texto>Through the web interface you can define new output types or
+modify the ones that already exist. The use is quite easy: you just have to
+select the link in the desired item with the operation you want to do over it.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 6]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>Let�s have a look at a simple example to illustrate how to
+define behavior that fit our needs:</p>
+
+<p class=Texto>Imagine a typical case where you want to format bibliographic
+records but depending on their base number you want to apply different formats.
+Whenever a record from base 27 (standards) arrives we want only to show its
+title and the standard numbers, in other case a default format will be applied
+in which the title and authors are shown. We�ll assume CDS variable notation
+and that the input rules are defined properly. </p>
+
+<p class=Texto>We are going to define a new NORMAL behavior for this new
+situation, let�s call it <i>SIMPLE</i>. In it we�ll need two conditions to be
+defined: one for applying the default format and another one for the 27-base
+special one. The base number comes in variable 909C0.b, so the conditions would
+be based on this variable content.</p>
+
+<p class=Texto>The result behavior should be defined like this:</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
+ border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+ <tr>
+  <td width=650 colspan=2 valign=top style='width:487.8pt;border:solid windowtext .5pt;
+  background:#0C0C0C;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b>SIMPLE
+  </b><b><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt'>(NORMAL)</span><o:p></o:p></b></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=55 valign=top style='width:41.4pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E6E6E6;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>10</p>
+  </td>
+  <td width=595 valign=top style='width:446.4pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  background:#E6E6E6;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>$909C0.b=�27�</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=650 colspan=2 valign=top style='width:487.8pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+  <p class=Texto style='text-indent:0cm'>�&lt;b&gt;�$245.a�&lt;/b&gt;�</p>
+  <p class=Texto style='text-indent:0cm'>forall($0248.a){</p>
+  <p class=Texto style='text-indent:0cm'><span style="mso-spacerun: yes">�
+  </span>rep_prefix(� � �)<span style="mso-spacerun: yes">�
+  </span>$0248.a&nbsp;separator(&quot;; &quot;)&nbsp;</p>
+  <p class=Texto style='text-indent:0cm'>}</p>
+  <p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=55 valign=top style='width:41.4pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E6E6E6;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>50</p>
+  </td>
+  <td width=595 valign=top style='width:446.4pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  background:#E6E6E6;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'>��=��</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=650 colspan=2 valign=top style='width:487.8pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+  <p class=Texto style='text-indent:0cm'>�&lt;b&gt;�$245.a�&lt;/b&gt;�</p>
+  <p class=Texto style='text-indent:0cm'>forall($100.a){</p>
+  <p class=Texto style='text-indent:0cm'><span style="mso-spacerun: yes">�
+  </span>rep_prefix(� �<span style="mso-spacerun: yes">� </span>Authors:
+  �)<span style="mso-spacerun: yes">� </span>$100.a&nbsp;separator(&quot;;
+  &quot;)&nbsp;</p>
+  <p class=Texto style='text-indent:0cm'>}</p>
+  <p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+  </td>
+ </tr>
+</table>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>Some explanations on this example are needed:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo12;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>As you can see we have defined two conditions: one for
+the 27-format and another for the default format. The point that is important
+is the order in which we put the conditions: For each record in the input the
+special one is evaluated first (because it has a lower evaluation number, 10)
+and if the condition is true the format will be applied; in case the base is
+not 27 the default condition is evaluated and because its condition <i>EL </i>code
+is always true the default will be used to format the record.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo12;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Don�t worry too much about the action code because it�s
+quite trivial. There are some �strange� things like the use of functions <i>rep_prefix</i>
+and <i>separator</i>. These are special <i>UDFs</i> that have a special
+behavior inside a FORALL statement:</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l1 level2 lfo12;
+tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
+mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><i>rep_prefix</i> <span style='font-family:Wingdings;
+mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
+mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
+Wingdings'>�</span></span> Prints the string argument only when we are in the
+first iteration of a <i>FORALL</i>. In order words, put the prefix of the
+string which is to be generated by the <i>FORALL </i>statement.</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l1 level2 lfo12;
+tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
+mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><i>Separator </i><span style='font-family:Wingdings;
+mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
+mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
+Wingdings'>�</span></span> Prints the string argument in every <i>FORALL</i>
+iteration but not in the last one.</p>
+
+<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
+mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
+EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name="_Toc240518"></a><a name="_Toc241010"></a><a
+name="_Toc3803668"><span style='mso-bookmark:_Toc241010'><span
+style='mso-bookmark:_Toc240518'>6. � Formats</span></span></a></p>
+
+<p class=Apartadonivel1><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><i>Formats</i> are a special construction that BibFormat <i>Evaluation
+Language </i>(<i>EL</i>) offers. It allows you to group under an identifier
+some <i>EL</i> code and after you can call it from every <i>EL </i>statement. </p>
+
+<p class=Texto>You can manage these formats using the web interface. It is
+quite easy to do so: When you access the <i>Formats</i> section it will present
+you a list with all the format identifiers that are already defined and a small
+documentation about what�s the format for. From there you can see the whole <i>EL
+</i>code by using the link <i>[Code]</i>. You can add a new format by using the
+set of input boxes that you�ll find at the end of the page. Also delete and
+modify operations are possible for already defined formats.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 7]</p>
+
+<p class=Texto style='text-indent:0cm'><b><u>Note:</u> </b>When defining formats,
+one has to pay attention not to use �recursive� format calls (either direct or
+indirect); this can lead to execution problems. For example, imagine that we
+have a format called �ex 1� that has a call for itself:</p>
+
+<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<table border=1 cellspacing=0 cellpadding=0 width=432 style='width:324.05pt;
+ margin-left:4.0cm;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
+ mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+ <tr>
+  <td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
+  margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
+  text-indent:0cm'>Format �ex_1�</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
+  margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
+  text-indent:0cm'>�hello world�</p>
+  <p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
+  margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
+  text-indent:0cm'>format(�ex_1�)</p>
+  </td>
+ </tr>
+</table>
+
+<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto style='text-indent:0cm'>�this is a �direct� recursive call; you
+should never have these kind of calls as the web interface should warn you if
+it finds these kind of troubles. However, �indirect� calls are not detected by
+the web interface, so you have to care about them. One example of �indirect�
+recursion:</p>
+
+<table border=1 cellspacing=0 cellpadding=0 width=432 style='width:324.05pt;
+ margin-left:4.0cm;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
+ mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+ <tr>
+  <td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
+  margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
+  text-indent:0cm'>Format �ex_1�<o:p></o:p></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
+  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
+  margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
+  text-indent:0cm'>�hello world�<o:p></o:p></p>
+  <p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
+  margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
+  text-indent:0cm'>format(�ex_2�)<o:p></o:p></p>
+  </td>
+ </tr>
+</table>
+
+<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
+mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
+EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name="_Toc240521"></a><a name="_Toc241011"></a><a
+name="_Toc3803669"><span style='mso-bookmark:_Toc241011'><span
+style='mso-bookmark:_Toc240521'>7. � Knowledge bases (KBs)</span></span></a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>This is yet another special feature provided by BibFormat <i>Evaluation
+Language</i>. In a few words, this allows you to map one string value to
+another according to a pre-stored set of key values that map to other values
+(the knowledge bases). All the knowledge bases are identified by a label that
+has to be unique (among other KBs identifiers); remember that identifiers are
+not case-sensitive.</p>
+
+<p class=Texto>These sets of values, normally lived in a file, but with this
+new development there was the need to have an easy KB management that was
+integrated in BibFormat. For this reason, you can manage KBs from the BibFormat
+configuration interface: section <i>KBs</i>.</p>
+
+<p class=Texto>When accessing to <i>KBs</i> section, the list of all the KBs
+identifiers defined will be displayed. Below it you�ll find a set of controls
+to add new KBs; the use of these controls is as usual along the interface but
+there�s something a bit special: Normally, you shouldn�t fill in the input box
+that asks you for the <i>Knowledge base table name</i>; all the knowledge base
+data is handled by a database in which each KB corresponds to a DB table; this
+input box gets the internal table name for that KB; normally the KB manager
+will generate it for you so you shouldn�t need to use it.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 8]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>Each KB has a link for accessing the list of values that it
+contains. If you click on it, a new window will show you the list of current
+values (key and mapped ones) and a very easy interface to add new values or to
+delete existing ones (KB values are case sensitive).</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 9]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
+mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
+EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name="_Toc240524"></a><a name="_Toc241012"></a><a
+name="_Toc3803670"><span style='mso-bookmark:_Toc241012'><span
+style='mso-bookmark:_Toc240524'>8. � User Defined Functions (UDFs)</span></span></a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>The use of <i>User Defined Functions </i>(<i>UDFs</i>) is one of
+the more powerful features of BibFormat <i>Evaluation Language</i> (<i>EL</i>).
+The idea is that inside <i>EL</i> you can use operations or functions over
+strings; normally a large number of different string transformations are needed
+when talking about formatting but we cannot pretend implement all this
+operations inside <i>EL</i> because it�s in constant growing and new needs
+appear all the time. For dealing with this problem, BibFormat defines a
+mechanism that allows you to use define as much functions (<i>UDFs</i>) as you
+want and use them inside any <i>EL </i>statement.</p>
+
+<p class=Texto>These functions are identified by a unique name and they receive
+data (over which they do operations) by parameters. These functions are defined
+in a programming language (PHP) and therefore good knowledge of this language
+is needed.</p>
+
+<p class=Texto>BibFormat offers a complete UDF management through the <i>UDFs</i>
+web interface section. There you�ll see a complete list of all defined <i>UDFs</i>
+with their identifier, parameters and a small documentation about what the UDF
+does. You can also add, delete or modify <i>UDFs</i> or even have a look at the
+PHP code of an already defined function (there you�ll be able to launch small
+tests over the defined functions).</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 10]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>The definition of these functions should be reserved to
+administrators and some particularities have to be taken into account when
+defining <i>UDFs</i>:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo11;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>When you want to add or modify a <i>UDF</i> you are
+asked for the parameter list; you have to enter the parameter names separated
+by comas. Ex: You want to define a new function for prefixing a given string
+with another, so you need two parameters (one for the string which is going to
+be prefixed, let�s name it <i>str</i>, and another one for the prefix itself,
+let�s name it <i>prefix</i>); you should enter them in the parameter input box
+like this: <i>prefix, str</i></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo11;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>The order in which you specify the parameters when
+defining a function is the order in which they have to be passed to the <i>UDF</i>
+from an <i>EL</i> statement.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo11;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>When defining the PHP code of a function, there are
+some important things to consider:</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
+tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
+mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>The result of a function has to be a string.</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
+tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
+mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>The parameters are available inside the PHP code as
+variables with the parameter name.</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
+tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
+mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>The result of the function has to be defined by a PHP
+result clause giving the resulting string.</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
+tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
+mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Make sure the PHP code is correct (there�s no way to
+know if the code is correct from BibFormat and it won�t tell you if it is).</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
+tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
+mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>There are some special variables available inside the
+PHP definition:</p>
+
+<p class=Texto style='margin-left:135.0pt;text-indent:-18.0pt;mso-list:l0 level3 lfo11;
+tab-stops:list 135.0pt'><![if !supportLists]><span style='font-family:Wingdings'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>$FIRST_ITERATION <span style='font-family:Wingdings;
+mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
+mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
+Wingdings'>�</span></span> Is equal to �1� when we are in the first iteration
+of an <i>EL FORALL</i> statement. �0� in other case. If the call is made outside
+a <i>FORALL </i>is set to �1�.</p>
+
+<p class=Texto style='margin-left:135.0pt;text-indent:-18.0pt;mso-list:l0 level3 lfo11;
+tab-stops:list 135.0pt'><![if !supportLists]><span style='font-family:Wingdings'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>$LAST_ITERATION <span style='font-family:Wingdings;
+mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
+mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
+Wingdings'>�</span></span> Just the opposite case.</p>
+
+<p class=Texto style='margin-left:99.0pt;text-indent:0cm'>With these two
+variables you can define <i>FORALL</i> special functions like a function to
+print a separator.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel1><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel1><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
+mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
+EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name="_Toc240525"></a><a name="_Toc241013"></a><a
+name="_Toc3803671"><span style='mso-bookmark:_Toc241013'><span
+style='mso-bookmark:_Toc240525'>9. � Defining links</span></span></a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>As we�ve already said, BibFormat is not only a formatter but it
+also provides a link manager but, what do we mean by �link manager�? The idea
+is to have a set of rules that describe how to generate a link using certain
+data; if the link can be generated from those rules, then the link manager can
+check different things (i.e. see if the link is valid, if it�s a link to a file
+it can check if the file exists and in which formats it exists, etc) and
+finally return the solved link. In other words, if you have a set of
+bibliographic records that can contain a certain link and that link can be
+coded in the link manager rules, you don�t need to store each link in each
+bibliographic record, you just use the link manager to generate them
+dynamically; like this, you only have to maintain a small set of rules and not
+thousands of static links in records.</p>
+
+<p class=Texto>BibFormat allows you to configure different <i>link definitions</i>
+each of them identified by a unique name; each of these <i>link definitions</i>
+have some associated <i>parameters</i> which are the information passed to the
+rules defined for it. Then, when you call the link manager to solve a link
+(from an <i>EL</i> statement, for example) you�ll have to specify the
+identifier of the <i>link definition</i> you want to be used and the value for
+each of the parameters used by that <i>link definition</i> (always string
+values). The link manager will retrieve the rules associated to the <i>link
+definition</i> specified and will interpret those rules using the given
+parameter values, informing you if the link was generated correctly and result
+(the solved link). </p>
+
+<p class=Texto>BibFormat provides this mechanism and through the web interface
+you can access to the rule repository for having a look at what are the
+available <i>link definitions</i>, define new link rules or maintain already
+defined ones. When adding or modifying a <i>link definition </i>you�ll have to
+specify the parameters, please remember to separate them by using comas.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 10]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><i>Link definitions</i> are structurally quite similar to
+behaviors: Although there can be different types of them (as we�ll see later),
+a <i>link definition</i> is made up of one or more conditions and each of these
+conditions can have one or more actions that tell how the link has to be built
+in case its condition is accomplished. In general, link rules (this includes
+conditions and actions) have a particular structure and they are described in <i>Evaluation
+Language</i> (<i>EL</i>) with one restriction: <i>EL</i> <i>LINK </i>statement
+cannot be used. Each group of conditions-actions of a link definition can be of
+a different <i>solving type</i> (actually, when you create a new link
+definition, its <i>solving type</i> its asked; this is just because all
+conditions that will be created for that link definition will have the selected
+<i>solving type</i> as default; but you can change it afterwards having a
+�mixed� <i>link definition</i>). Their structure and way the link manager interprets
+them will depend in their <i>solving type</i>. Currently, there you can define
+link conditions of two different <i>solving types</i>: EXTERNAL or INTERNAL. A
+more detailed explanation about each type is given later.</p>
+
+<p class=Texto>As we�ve said a link definition is made up of various link
+conditions. When a solving for a concrete <i>link definition </i>is asked, the
+link manager retrieves all link conditions associated to it. Then it takes the
+first of them (following the <i>evaluation order</i> � the lower is the
+evaluation order number, the first the condition is considered), it evaluates
+its <i>EL </i>code with the parameter values passed and if the result is �TRUE�
+associated actions are executed, the link is returned and the solving process
+finishes. In case a condition fails, it looks for the next one. If all the
+conditions fail then the link manager returns that the link couldn�t be solved.
+This is the general behavior of the link manager, but the way of determining if
+a link has been solved or not and the link building depends on the condition <i>solving
+type</i>.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel2><a name="_Toc3803672">9.1. - EXTERNAL link conditions</a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>This is the simplest way of solving links. It�s intended to be
+used when you want to generate a link that points to an external resource
+(normally a web page). In this case the link condition is composed by only one
+action that will be evaluated if the associated condition is �TRUE�. When a
+condition of this type is evaluated �TRUE� and the action is executed, the
+result of the action is given as the solved link and the link manager finishes.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 11]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel2><a name="_Toc3803673">9.2. - INTERNAL link conditions</a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>This condition solving type is intended to be used when you want
+to link to a document which is a file (inside or outside your file system) and
+that can be in different file formats. </p>
+
+<p class=Texto>This case is a bit more complex than the previous one, so we�ll
+go step-by-step explaining differences and special features:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>An INTERNAL condition has a <i>base file path</i> and a
+<i>base URL </i>associated. The <i>base file path</i> is the string that will
+be used as prefix when looking for a file generated by the actions associated
+to that condition. On the other hand, the <i>base URL</i> will be a string to
+which the link string (resulting from the actions) will be added (i.e. if the <i>base
+file path</i> of a condition is <span style='font-family:Courier'>/tmp/docs</span>
+and the <i>base URL</i> is <span style='font-family:Courier'>http://doc.cern.ch/</span>,
+if the condition is true and the result of the actions is <span
+style='font-family:Courier'>test.pdf</span>, the file path the link manager
+will have to check will be <span style='font-family:Courier'>/tmp/docs/test.pdf</span>
+and, if the file exists, the generated link will be <span style='font-family:
+Courier'>http:/doc.cern.ch/test.pdf</span>)</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Any condition of this type can several associated <i>file
+formats</i>. This is a new concept that is only used for INTERNAL condition
+solving. A <i>file format</i> is simply a set of file extensions that are
+grouped under an identifier. Then, you can associate a <i>file format</i>
+identifier with a link condition. When the condition is true the link manager
+will combine each result from the condition actions with the associated file
+formats to check the existence of a file of any format; this means that when an
+action is evaluated, the link manager takes the file extensions of each
+associated file format identifier and checks if the <i>file base path </i>+
+resulting action string + file extension exists in the file system.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>One condition of this type can have more than one
+associated action. Each of its actions describes an alternative way of building
+the file path. When a condition of this type is evaluated to �TRUE�, the link
+manager retrieves its actions (following actions <i>apply order</i>) and
+evaluates the first one; with the action result it builds the file path in this
+way: <i>file base path </i>+ resulting action string, and then combines this
+string with each of the <i>file extensions</i>. If any of the combination
+exists in the file system, the link is generated (if there are more than one
+file format combination that exist, the link variable will have multiple values
+containing the different links); if not, it starts the same process with the
+next action. If any of the actions drive to a existing file, the link is not
+generated.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>When calling the link manager from a <i>EL</i>
+statement (see chapter <i>Evaluation Language Reference</i>), if the link is
+solved we�ll be able to access to a special internal variable that contains as
+value the resulting link. In the INTERNAL condition links, we have said that
+this variable can contain multiple values in case the link manager finds
+different file formats. In this case, there�s another extension that consists
+in having some special variable fields containing special values for each value
+in the <i>LINK </i>variable and to which you can access when the link is solved;
+here�s a table detailing the different variable LINK fields which are defined
+when a INTERNAL condition link is solved:</p>
+
+<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<table border=1 cellspacing=0 cellpadding=0 style='margin-left:45.0pt;
+ border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
+ mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
+ <tr>
+  <td width=151 valign=top style='width:4.0cm;border:solid windowtext .5pt;
+  background:#A6A6A6;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Field
+  name<o:p></o:p></b></p>
+  </td>
+  <td width=439 valign=top style='width:329.4pt;border:solid windowtext .5pt;
+  border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#A6A6A6;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Value
+  that contains<o:p></o:p></b></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
+  none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=left style='text-align:left;text-indent:0cm'><b>url<o:p></o:p></b></p>
+  </td>
+  <td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
+  mso-bidi-font-size:12.0pt'>The same value as the LINK variable: The solved
+  URL.<o:p></o:p></span></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
+  none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=left style='text-align:left;text-indent:0cm'><b>file<o:p></o:p></b></p>
+  </td>
+  <td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
+  mso-bidi-font-size:12.0pt'>Contains the local full path to the file the
+  solved URL points to.<o:p></o:p></span></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
+  none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=left style='text-align:left;text-indent:0cm'><b>format_id<o:p></o:p></b></p>
+  </td>
+  <td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
+  mso-bidi-font-size:12.0pt'>Contains the file format id string <o:p></o:p></span></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
+  none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto align=left style='text-align:left;text-indent:0cm'><b>format_desc<o:p></o:p></b></p>
+  </td>
+  <td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
+  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
+  mso-bidi-font-size:12.0pt'>Contains the file format description string (this
+  is defined for each file format)<o:p></o:p></span></p>
+  </td>
+ </tr>
+</table>
+
+<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel2><a name="_Toc3803674">9.3. � Example</a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>As the link generation is quite a complex topic (specially when
+talking about INTERNAL linking) we�ll try to illustrate it with a simple
+example.</p>
+
+<p class=Texto>Let�s imagine we want to create a new link definition for
+generating full-text access to the documents that are archived on a document
+server (a file system which contains document�s electronic versions). These
+documents are organized systematically depending in three characteristics that
+are included in the bibliographic records: BASE, CATEGORY and ID. When the base
+corresponds to �CERNREP� then the files are archived below directory <i>/pub/www/home/cernrep/</i>
+and can be stored following two different criteria that depend on the CATEGORY
+and ID values; the documents are all HTML. However, if the base is �PREPRINT�
+and the CATEGORY is either �HEP-TH� or �HEP-PH� they are stored under directory
+<i>/archive/electronic|/pub/www/home/</i> following a certain criteria; in this
+case the documents can be in several file formats: PDF, Postscript, MS Word. </p>
+
+<p class=Texto>Of course, we want only the link to be created if the files
+corresponding to the bibliographic records exist.</p>
+
+<p class=Texto>So we start creating a new link definition that we�ll call <i>FULLTEXT</i>.
+It will receive three parameters that are the information we need for
+generating this kind of links: BASE, CATEGORY and ID. We select INTERNAL as
+solving type as default and then we fill it the base file path and url with
+some default values (these values are not important, they will be copied by
+default to the conditions we are going to create afterwards).</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 12]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>Then we create a condition for the first possibility: when BASE
+is �CERNREP�. We select INTERNAL as link condition because we want to link to a
+file and we want to check its existence and we fill in the base file path and
+URL with the corresponding values. Then we assign the file format types and we
+enter the file archiving criteria as different actions.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 13]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>For the other possibility we proceed in the same way by adapting
+the definition to the requirements; we�ll have something like this as result:</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 14]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>Once we have finished the link definition, we can insert links
+of this type from a BibFormat behavior, for example. Let�s imagine we have
+included a piece of <i>EL</i> code like this in a behavior because we want to
+insert a link to the full-text documents of any record:</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>link(�FULLTEXT�,
+$base, $category, $id)<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>{<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
+style="mso-spacerun: yes">� </span>�Fulltext: �<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
+style="mso-spacerun: yes">� </span>forall($link){<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
+style="mso-spacerun: yes">��� </span>�&lt;a href=\�� $link.url �\�&gt;�
+$link.format_desc �&lt;/a&gt;� <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
+style="mso-spacerun: yes">���� </span>separator � � � <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
+style="mso-spacerun: yes">� </span>}<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>}<o:p></o:p></span></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>This <i>EL </i>statement will include the string �Fulltext: �
+followed by a link to all the documents found for the values of internal
+variables $base, $category, $id separated by � � �.</p>
+
+<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
+mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
+EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
+</span></u>
+
+<p class=Apartadonivel1><a name="_Toc3803675">10. � User management</a></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>The BibFormat web interface (WI) comes with a security mechanism
+which allows you to define which users can access the WI. BibFormat doesn�t
+have a user management incorporated; instead it uses CDS user schema (as is a
+part of CDS). So if you are not registered as CDS user and you want to have
+access to BibFormat WI, first thing to do is to register in CDS through the
+standard procedure (for example via the CDS Search interface you can access the
+CDs account management system). </p>
+
+<p class=Texto>BibFormat WI access policy is rather simple: it keeps a list of
+CDS users that can access the WI. Then if someone tries to access any part of
+the WI, the system will ask the user to identify him as CDS user. If the CDS
+login is successful and the user is in BibFormat�s access list, then the user
+will gain access to the WI.</p>
+
+<p class=Texto>There�s a section in the WI which allows you to define which CDS
+users will have access to the WI. The use is rather simple: You can add CDS
+users to the access list by specifying either their CDS user id or their CDS
+login; then you can delete a CDS uses from the access list by simply selecting
+the link �delete� for the corresponding user.</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=figuremarker>[Fig. 15]</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>When you install BibFormat for the first time and you access to
+the WI you�ll see that no login or password is asked. The security mechanism
+doesn�t get activate until at least one user is added to the BibFormat�s access
+list. So if you don�t want to limit the access to BibFormat WI keep the access
+list without any user in.</p>
+
+<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
+mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
+clear=all style='mso-special-character:line-break;page-break-before:always'>
+</span>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Apartadonivel1><a name="_Toc240526"></a><a name="_Toc241014"></a><a
+name="_Toc3803676"><span style='mso-bookmark:_Toc241014'><span
+style='mso-bookmark:_Toc240526'>11. - Evaluation Language Reference</span></span></a>
+</p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>In this section we�ll present a more or less formal definition
+of the <i>Evaluation Language </i>(EL); although we are using some formal
+methods to describe it we�ll also make a quick explanation about the elements
+that made up the language and how to combine them to arrive to desired results.
+</p>
+
+<p class=Texto>Just below you can find the EL definition, expressed in terms of
+EBNF (<i>Extended Backus-Naur Form</i>) notation. We have used capital letters
+to express non-terminal elements and non-capital/bold characters for the
+terminal ones. There�s one remark to make: Whenever you find the mark <span
+style='font-size:8.0pt;mso-bidi-font-size:12.0pt;color:maroon'>[REX] </span>after
+any definition, it means that we have used a regular expression just before in
+order to express a set of non-terminals.</p>
+
+<p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
+mso-bidi-font-size:12.0pt;font-family:Courier;mso-bidi-font-family:"Courier New"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>SENTENCE ::= TERM {<b>&amp;&amp;</b>
+TERM | <b>||</b> TERM}</p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>TERM ::= FACTOR {<b>= </b>FACTOR
+| <b>!=</b> FACTOR | FACTOR}</p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FACTOR ::= [<b>!</b>]
+BASIC</p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>BASIC ::= VARIABLE |
+LITERAL | FUNCTION |<b> ( </b>SENTENCE <b>)</b> | FORALL |</p>
+
+<p class=EBNF style='text-indent:36.0pt;border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>IF | FORMAT | LINK | COUNT
+| KB</p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>VARIABLE ::= <b>$</b>
+STRING [<b>.</b> STRING]</p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>LITERAL ::= <b><span
+style='color:maroon'>�([^�] | \�)*�</span></b><span style="mso-spacerun: yes">�
+</span><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt;color:maroon'>[REX]<o:p></o:p></span></p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FUNCTION ::= STRING <b>(</b>
+[ SENTENCE {<b>,</b> SENTENCE} ] <b>)</b><span style='font-size:8.0pt;
+mso-bidi-font-size:12.0pt;color:maroon'><o:p></o:p></span></p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FORALL ::=<b> forall ( </b>VARIABLE
+[<b>,</b> LITERAL] <b>)</b> <b>{</b> SENTENCE <b>}</b> </p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>IF ::= <b>if( </b>SENTENCE
+<b>) { </b>SENTENCE <b>} </b>[<b>else {</b> SENTENCE <b>}</b>] </p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FORMAT ::= <b>format( </b>SENTENCE
+<b>)</b></p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>LINK ::= <b>link( </b>SENTENCE
+<b>,</b> [SENTENCE {<b>, </b>SENTENCE}] <b>) { </b>SENTENCE <b>} <o:p></o:p></b></p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b><span
+style="mso-spacerun: yes">������� </span></b>[<b>else { </b>SENTENCE <b>}</b>]</p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>COUNT ::= <b>count( </b>VARIABLE
+<b>)</b></p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>KB ::= <b>kb(</b> SENTENCE
+<b>)</b> </p>
+
+<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
+padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>STRING ::= <b><span
+style='color:maroon'>[a-zA-Z0-9_] </span></b><span style='font-size:8.0pt;
+mso-bidi-font-size:12.0pt;color:maroon'>[REX]</span><b><o:p></o:p></b></p>
+
+</div>
+
+<p class=Texto><b><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></b></p>
+
+<p class=Texto>This is just a formal way of describing the language, but don�t
+worry if you don�t understand it very well because just below these lines we�ll
+try to describe it in a more informal way.</p>
+
+<p class=Texto>To begin with, you should know that EL is a language designed to
+work with strings (a string is a collection of characters) but it has also some
+logic and comparison operations. One important thing you have to be aware of is
+that in EL blank spaces, tabulators or carriage returns have no more meaning
+than separator for elements of the language; that means that between two basic
+elements you can have as many spaces or carriage returns as you want.</p>
+
+<p class=Texto>One of the basic elements of the language is what we call <i>LITERALS</i>.
+These things represent constant string values; they are delimited by a pair of
+double quote (�) symbols surrounding the string you want to express. Everything
+you put inside the double quotes will be considered as it is, so inside a
+literal several spaces or carriage have meaning (it�s the only case). If you
+want to express a double quote symbol inside a literal you have to <i>escape</i>
+it using \.</p>
+
+<p class=Texto>Some examples of literals:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l5 level1 lfo1;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>If you want to represent the string <i>hello</i>,
+inside the EL you�ll have to use <span style='font-family:"Courier New"'>�hello�</span>.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l5 level1 lfo1;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>For the string <i>hello �big�<span style="mso-spacerun:
+yes">����� </span>man</i>, the representation in EL is <span style='font-family:
+Courier'>�hello \�big\�<span style="mso-spacerun: yes">����� </span>man�</span>
+(notice the escape characters and that spaces have meaning).</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l5 level1 lfo1;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]><i>Let�s see \��</i> string has to be expressed in this
+way <span style='font-family:"Courier New"'>�Let�s see \\\�\��</span>.</p>
+
+<p class=Texto>Another important basic element of the language is <i>VARIABLES</i>.
+These elements represent string data from the input to which you can refer
+inside of the language (and is considered also as a string). Variables are defined
+in advance by the administrator (or even users) so you have to know which of
+them you have access to. Additionally, variables can contain <i>FIELDS</i> that
+are simply other input values that are grouped under a variable because they
+have some kind of relationship between them (for example, you could have a
+variable for the information about the author and fields like name, born place,
+etc for it). If you want to know more about variables and their correspondence
+with the input you can look at the <i>Mapping the Input</i> section. The way of
+expressing a variable in EL is by a dollar symbol followed by any letter,
+number or underscore; variables are case-insensitive. To refer to any field of
+a variable, you simply put a dot followed by the field name (which is also made
+up of any character, number or underscore).</p>
+
+<p class=Texto>Some examples about variables and fields:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo2;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Imagine you have a variable which contains the author
+information and which is called <i>author</i>, to represent in EL you would
+have to write <span style='font-family:Courier'>$author</span>. In every place
+that $author appears BibFormat will consider the value defined for it from the
+current input record.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo2;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Then you know that the field <i>name</i> of variable <i>author</i>
+contains the author full name and you want to refer to it inside an EL
+statement, so you�d write <span style='font-family:Courier'>$author.name</span>.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo2;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>If we speak about CDS configuration, variable and field
+names correspond to MARC 21 tag &amp; indicator names; so to refer to the main
+title of a bibliographic record we should use variable <i>245</i> field <i>b</i>,
+in EL terms: <span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>$245.b</span>.</p>
+
+<p class=Texto>Now that we know basic elements of the language we can start
+thinking about how to combine them. The most important (and unique) string
+operation is concatenation: adding strings. This operation is implicit to the
+language, so we just put language elements one before another, and the representation
+result will be the result of the basic elements one after another.</p>
+
+<p class=Texto>Some samples:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo3;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol;
+mso-bidi-font-style:italic'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>To represent the constant string <i>Author:</i>
+followed by the name of the author of the input record you should write <span
+style='font-family:Courier'>�Author: � $100.a</span> (it�s supposed CDS
+configuration in which MARC 21 notation is used; authors correspond to variable
+100 field a).<i><o:p></o:p></i></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo3;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol;
+mso-bidi-font-style:italic'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>You want to output the title in bold (always HTML
+speaking) followed by the author in normal chars separated of the title by char
+/: <span style='font-family:Courier'>�&lt;b&gt;� $245.b �&lt;/b&gt;/� $100.a</span><i><o:p></o:p></i></p>
+
+<p class=Texto>These two, literals and variables, are only basic elements of
+the EL. You can combine them using concatenation to get new strings. But, of
+course, there are some more operations you can apply over strings: UDFs (<i>User
+Defined Functions</i>). We�ll also name these elements as functions, because
+they are that: functions or operations to be applied over strings; when talking
+about strings we include basic elements or resulting string from applying any
+operations. A UDF has a name that identifies it uniquely and needs to get some information
+that we call <i>parameters</i>. A UDF gives another string as result depending
+on the parameter values (always strings). So to represent a function in EL you
+need its name followed by an open parenthesis, the parameter values separated
+by comas and a closing parenthesis. There�s a list of UDF you can look at
+through the interface but this list can be extended to fit your needs (look at <i>UDFs</i>
+section of this manual).</p>
+
+<p class=Texto>Some examples:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l12 level1 lfo4;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>You want to ensure that the title of a bibliographic
+record is always going to be in capital letters; good, there�s a function
+called <i>upper</i> that takes one parameter and gives as result the parameter
+transformed in capital letters. You have to write the call like this: <span
+style='font-family:Courier'>upper($245.b).</span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l12 level1 lfo4;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>You want only the 3 first chars of an author name to
+appear in capital letters. We�ve seen there�s a function for uppercasing a
+string but there�s another one, called <i>copy</i> that gets a sub string from
+a string passed as first parameter from the char position indicated by the 2<sup>nd</sup>
+parameter and with the length given by the 3<sup>rd</sup> one: copy(
+upper($100.a), �0�, �3�).</p>
+
+<p class=Texto>As you can see, these UDFs are very powerful because you can
+concatenate their result with another element (literal, variable or even
+function) and the parameters can be basic elements or expressions. We can
+extend this ensuring that any element or expression of the EL that gives as
+result a string value can be combined with other EL expressions or elements.</p>
+
+<p class=Texto>Another very useful feature of EL is the possibility to use <i>KWONLEDGE
+BASES </i>(KBs). A KB is just a set of key values that map (one-to-one) another
+set of values; may be knowledge bases isn�t a very appropriate name because
+they are more like translation tables. BibFormat offers tools to create and
+maintain KBs that can be used in the EL afterwards (see chapter <i>KBs
+management </i>in this manual). You can see KB invocation as a special function
+(the syntax for calling it is the same) with name <i>kb</i> and that takes two
+parameters: one for indicating the KB name (BibFormat can handle several KBs)
+and another one for the key value to translate. The result is the mapped KB
+value or an empty string if it doesn�t exist as a key value in the specified
+KB. A typical example is when you have months with numbers and you want to
+translate them into month names; you could have a KB that maps all the month
+numbers to month names and then call it like this <span style='font-family:
+Courier'>kb(�MONTH�, $m)</span>.</p>
+
+<p class=Texto>Now let�s move to <i>FORMATS</i>. Formats are some <i>EL</i>
+code which is grouped under a label (a name) and that can be used in any other
+EL statement. BibFormat allows the user to define as many formats as he wants
+and identify each of them with a simple name. In few words, formats allow you
+to reuse EL code; within a format you can put any EL code (even other format
+calls) and all the variable values are completely available.<span
+style="mso-spacerun: yes">� </span>Again, a format call in EL follows the same
+convention as functions: the word <i>format</i> followed by the format name (a
+string) between parenthesis. When you call a format is like if the EL code
+define inside that format was pasted, as it is in the place you make the call.</p>
+
+<p class=Texto>Example: Imagine you have to write the title of a bibliographic
+records with a certain format, let�s say in bold and red; but this formatted
+title you are going to use it in several places. So can take advantages of EL
+formats and define a format called <i>TITLE</i> that contains the code <span
+style='font-family:Courier'>�&lt;font color=\�red\�&gt;&lt;b&gt;� $245.b
+�&lt;/b&gt;&lt;/font&gt;�</span>. Once this is done, you could use it to format
+records by printing their title in that way and their author after it: <span
+style='font-family:Courier'>format(�TITLE�) �/� $100.a</span>. The good thing
+is that if some day you decide to change the title formatting you�d only need
+to modify the <i>TITLE</i> format definition and not all the places where you
+show the title.</p>
+
+<p class=Texto>At this point, you have seen basic elements and operations with
+EL. You may think that is powerful enough to express your formatting work, but
+there are more complex situations that you�ll have to face. We have tried to
+design the EL to be easy enough but with the next advanced structures,
+sometimes, can arrive to be a bit complex.</p>
+
+<p class=Texto>All these basic elements and operations are quite OK. But there
+are sometimes where you want to compare expressions and decide what to do
+depending on the result of the comparison. For this purpose, EL has an IF
+statement and a few comparison and logic operators built in (don�t forget that
+any functionality needed can be achieved by defining new UDFs; EL gives basic
+operations to provide this possibility). Let�s go step by step: First let�s
+talk about the set of operators that can be used in a comparison:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo5;
+tab-stops:list 63.0pt'><![if !supportLists]>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
+</span><![endif]>Comparison operators: Equal and non-equal (=, !=). They take
+two operators that have to be strings and produce a logic (true or false)
+value.</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo5;
+tab-stops:list 63.0pt'><![if !supportLists]>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
+</span><![endif]>Logical operators: AND, OR and NOT (&amp;&amp;, ||, !). All of
+them have to be used over logical values, taking two operators AND and OR, and
+one operator NOT.</p>
+
+<p class=Texto>All of them are right associative (except NOT which is unary
+left-associative) and their precedence goes like this (more to less): NOT,
+(EQUAL, NON-EQUAL), (AND, OR). These operators cannot be used anywhere, only
+inside statements that expect a logic value as result, in other words, inside
+condition statements. </p>
+
+<p class=Texto>The IF structure is quite easy to learn: First we indicate the
+word <i>IF</i> followed by a condition statement surrounded by parenthesis;
+then a EL statement into braces can be specified, this statement will be
+executed only if the condition was true; optionally, we can add an <i>ELSE</i>
+word followed by another EL statement into braces, that will only be triggered
+if the IF condition was not true. </p>
+
+<p class=Texto>Let�s have a look at some examples:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>I want the title of a record to appear followed by the
+constant <i>Author: </i>and its author afterwards. But it could be nice if the
+constant string appeared only if the record has author: </p>
+
+<p class=Texto style='margin-left:36.0pt;text-indent:9.0pt'><span
+style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto style='margin-left:36.0pt;text-indent:9.0pt'><span
+style='font-family:Courier'>format(�TITLE�) if($100.a!=��) { �Author: � $100.a
+}<o:p></o:p></span></p>
+
+<p class=Texto style='margin-left:36.0pt;text-indent:9.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>BibFormat is not only an EL processor. Among others, it contains
+a link solver that contains it�s own rule repository in order to be able to
+automatically solve links (see chapter Link solver of this manual). EL has one
+special structure for asking the link solver for some links and including them
+in the formatted version of the bibliographic record. This way links are easy
+to maintain (you modify the rules independently from where the link is being
+used) and as re-usable as formats or UDFs. Links are identified by a label and
+need some information to be passed as parameters; then an EL statement has to
+be specified which will be effective only if the link is solved and inside
+which, you�ll have access to an special variable, named <i>LINK</i>, which
+contains the solved link among other information (see chapter Link solver for
+more information about which values are accessible); additionally, an else
+statement can be added (following the same syntax as in the IF construction)
+that will be effective only if the link can�t be solved by the Link solver.</p>
+
+<p class=Texto>Example:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>We are with our typical example of the simple format
+that contains the title and the author, but now we want the author to be linked
+to the search. Supposing that a this kind of link is already defined under the
+label �AUTHOR_SEARCH� we should proceed like this:</p>
+
+<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto><span style='font-family:Courier'>format(�TITLE�) �/� <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>link(�AUTHOR_SEARCH�, $100.a) <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">���� </span>{ �&lt;a href=\��$link �\�&gt;�$100.a�&lt;/a&gt;�}<o:p></o:p></span></p>
+
+<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+<p class=Texto>The next step when talking about EL components is to deal with
+multiple values. Life is no so easy and, of course, and a bibliographic record
+can have more than one author or can have a related document which is in more
+than one format and that has to be linked. In other words, BibFormat supports
+having variables and fields with multiple values (see chapter <i>Mapping input</i>),
+consequently a way of applying an EL statement over all the values of a
+variable or a field would be quite useful. <i>FORALL</i> is our construction!!
+It allows you to specify a variable or a field followed by a EL statement
+(between braces) that will be applied for every value of the variable or the
+field; any reference to the iteration variable inside the <i>FORALL</i> EL
+statement will be related to the current iteration variable value (if you refer
+to a variable that has multiple values outside a <i>FORALL</i> the first value
+is considered). One limitation is that you shouldn�t nest <i>FORALL</i>
+statements, in other words, never put a <i>FORALL</i> inside another one. This
+construction let�s you also limit the number of times you want to iterate over
+a variable or field by adding a literal with the number of iterations.</p>
+
+<p class=Texto>Some examples:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Let�s continue refining our simple format; now we have
+to consider that there can be more than one author for one bibliographic
+record, so we want to show all of them with the link included, of course.</p>
+
+<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>format(�TITLE�) �/� <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>forall($100.a)<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>{<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">� </span>link(�AUTHOR_SEARCH�, $100.a) <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">���� </span>{ �&lt;a href=\��$link �\�&gt;�$100.a�&lt;/a&gt;�}<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>}<o:p></o:p></span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>Although this <i>FORALL</i> construction could seem not
+very useful, it�s used a lot when defining formats or behaviors. Quite often
+you will have the case where you want only some EL piece of code to be
+effective if a certain variable or field exist; <i>FORALL</i> can also be used
+in that situation and it has to be said that is the most comfortable way of
+doing it. Imagine the case you want the title, the constant string �Author: �
+followed by the authors of a bibliographic record; but you don�t want the
+constant <i>�</i>Author: � to appear if there�s no author at all. You could use
+something like this:<span style='font-family:Courier'><o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>format(�TITLE�) � - � <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>forall($100.a)<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>{<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">� </span>rep_prefix(�Author: �) $100.a � �<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>}<o:p></o:p></span></p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:0cm'>As you can see we are
+using a new function: <i>rep_prefix</i>. In fact this is an UDF which prints
+the string passed as parameter only once at the beginning inside a <i>FORALL</i>
+statement. But the interesting thing here is the <i>FORALL</i> application.</p>
+
+<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto>Finally, there�s still one EL special function: <i>COUNT</i>.
+Due to certain special situations or strange input data in the variables,
+sometimes is useful to know how many values contain a variable or a field. So
+this function, simply takes a variable or field as argument and returns a
+string with the number of values that contains; if the value returned is 0,
+that means that no value is in the variable, what means that variable doesn�t
+exist or there weren�t any values mapped from the input.</p>
+
+<p class=Texto>Examples:</p>
+
+<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
+tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>�<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><![endif]>As this is the last example, let�s do it a bit more
+complicated: Continuing with our very well known simple format, we want all the
+authors of the record appear if there are less than 10, in any other case we
+want only the first one to appear followed by the string �et al.�. We�ll also
+use a function called <i>GT</i> which returns a non-empty string if the first
+parameter is greater than the second one.</p>
+
+<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>format(�TITLE�) �/� <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>if(gt(count($100.a),
+�10�)!=��)<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>{ $100.a �et al.� }<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>else<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>{<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">� </span>forall($100.a)<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">� </span>{<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">��� </span>link(�AUTHOR_SEARCH�, $100.a) <o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">���� </span>{ �&lt;a href=\��$link �\�&gt;�$100.a�&lt;/a&gt;�}<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
+yes">� </span>}<o:p></o:p></span></p>
+
+<p class=Texto><span style='font-family:Courier'>}</span></p>
+
+<p class=Texto style='text-indent:0cm'><span style="mso-spacerun: yes">�</span></p>
+
+<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
+mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
+clear=all style='mso-special-character:line-break;page-break-before:always'>
+</span>
+
+<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/modules/bibformat/doc/BibFormatAdminGuide001.gif b/modules/bibformat/doc/BibFormatAdminGuide001.gif
new file mode 100644
index 000000000..521ff8d31
Binary files /dev/null and b/modules/bibformat/doc/BibFormatAdminGuide001.gif differ
diff --git a/modules/bibformat/doc/BibFormatAdminGuide002.png b/modules/bibformat/doc/BibFormatAdminGuide002.png
new file mode 100644
index 000000000..00be3f84e
Binary files /dev/null and b/modules/bibformat/doc/BibFormatAdminGuide002.png differ
diff --git a/modules/bibformat/doc/BibFormatAdminGuide003.jpg b/modules/bibformat/doc/BibFormatAdminGuide003.jpg
new file mode 100644
index 000000000..4cd1427a1
Binary files /dev/null and b/modules/bibformat/doc/BibFormatAdminGuide003.jpg differ
diff --git a/modules/bibformat/doc/BibFormatAdminGuide004.gif b/modules/bibformat/doc/BibFormatAdminGuide004.gif
new file mode 100644
index 000000000..48883185f
Binary files /dev/null and b/modules/bibformat/doc/BibFormatAdminGuide004.gif differ
diff --git a/modules/bibformat/doc/Makefile.am b/modules/bibformat/doc/Makefile.am
new file mode 100644
index 000000000..2e2e86e7c
--- /dev/null
+++ b/modules/bibformat/doc/Makefile.am
@@ -0,0 +1,35 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+webdir=$(WEBDIR)/admin/bibformat
+
+FILESWML=$(wildcard *.wml)
+web_DATA=$(FILESWML:.wml=)
+
+gifsdir=$(WEBDIR)/admin/bibformat
+gifs_DATA = $(wildcard *.gif *.jpg *.png)
+
+sampledir=$(WEBDIR)/admin/bibformat
+
+EXTRA_DIST = $(wildcard *.wml) $(gifs_DATA)
+
+CLEANFILES = $(wildcard *.shtml) *~ *.tmp
+
+%.shtml: %.shtml.wml ../../../config/config.wml ../../../config/configbis.wml ../../../config/cdspage.wml ../../../config/cdsnavbar.wml
+	$(WML) -o $@ $<
diff --git a/modules/bibformat/lib/.cvsignore b/modules/bibformat/lib/.cvsignore
new file mode 100644
index 000000000..6a1572735
--- /dev/null
+++ b/modules/bibformat/lib/.cvsignore
@@ -0,0 +1,8 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+oai1d
+oai2d
+*.py
\ No newline at end of file
diff --git a/modules/bibformat/lib/Makefile.am b/modules/bibformat/lib/Makefile.am
new file mode 100644
index 000000000..22ab02ea6
--- /dev/null
+++ b/modules/bibformat/lib/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = common core
+
+CLEANFILES = *~
diff --git a/modules/bibformat/lib/common/.cvsignore b/modules/bibformat/lib/common/.cvsignore
new file mode 100644
index 000000000..7cf70d354
--- /dev/null
+++ b/modules/bibformat/lib/common/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+*.shtml
+*.py
\ No newline at end of file
diff --git a/modules/bibformat/lib/common/Makefile.am b/modules/bibformat/lib/common/Makefile.am
new file mode 100644
index 000000000..a3b77891b
--- /dev/null
+++ b/modules/bibformat/lib/common/Makefile.am
@@ -0,0 +1,29 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+FILESWML=$(wildcard *.wml)
+phplibdir=$(libdir)/php/cdsware/bibformat/common
+phplib_DATA=$(FILESWML:.wml=)
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(wildcard *.shtml) *~ *.tmp
+
+%.shtml: %.shtml.wml ../../../../config/config.wml ../../../../config/configbis.wml ../../../../config/cdspage.wml
+	$(WML) -o $@ $<
diff --git a/modules/bibformat/lib/common/dbparams.inc.shtml.wml b/modules/bibformat/lib/common/dbparams.inc.shtml.wml
new file mode 100644
index 000000000..25c0cd73f
--- /dev/null
+++ b/modules/bibformat/lib/common/dbparams.inc.shtml.wml
@@ -0,0 +1,34 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+  $DB_HOST="<DBHOST>";
+  $DB_USER="<DBUSER>";
+  $DB_PASSWD="<DBPASS>";
+  $DB_DB="<DBNAME>";
+?>
diff --git a/modules/bibformat/lib/common/general.inc.shtml.wml b/modules/bibformat/lib/common/general.inc.shtml.wml
new file mode 100644
index 000000000..a39083aa1
--- /dev/null
+++ b/modules/bibformat/lib/common/general.inc.shtml.wml
@@ -0,0 +1,81 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+//----------------------------------------------------------------------
+// General purpose functions
+//----------------------------------------------------------------------
+
+  function array2str($a){
+    reset($a);
+    $t="[";
+    while(current($a))
+    {
+      $t.=current($a).",";
+      next($a);
+    }
+    return ($t."]");
+  }
+
+//----------------------------------------------------------------------
+
+  function getmicrotime(){
+    list($usec, $sec) = explode(" ", microtime());
+    return ((float)$usec +(float)$sec);
+  }
+
+//----------------------------------------------------------------------
+
+  function printtime(){
+    $ti=gettimeofday();
+    print "<font color=\"red\">[".$ti["sec"].":".$ti["usec"]."]</font><br>";
+  }
+
+//----------------------------------------------------------------------
+
+  function printDuration( $cad, $tini )
+  {
+    $t1=$tini["sec"]*1000000+$tini["usec"];
+    $tnow=gettimeofday();
+    $t2=$tnow["sec"]*1000000+$tnow["usec"];
+    $dur=($t2-$t1)/1000000;
+    print "<br><font color=\"blue\">$cad: $dur sec</font><br>";
+  }
+
+//----------------------------------------------------------------------
+  
+  function text2HTML($text)
+  {
+    $text=htmlspecialchars($text);
+    $text=str_replace("\n", "<br>", $text);
+    $text=str_replace(" ", "&nbsp;", $text);
+    return $text;
+  }
+
+//----------------------------------------------------------------------
+?>
diff --git a/modules/bibformat/lib/common/global.inc.shtml.wml b/modules/bibformat/lib/common/global.inc.shtml.wml
new file mode 100644
index 000000000..135b09162
--- /dev/null
+++ b/modules/bibformat/lib/common/global.inc.shtml.wml
@@ -0,0 +1,52 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+//---------------------------------------------------------------------
+  define(CORE_DIR, "<LIBDIR>/php/cdsware/bibformat/core/"); 
+  define(COMMON_DIR, "<LIBDIR>/php/cdsware/bibformat/common/"); 
+  define(WEBCONF_DIR, "<WEBDIR>/admin/bibformat/"); 
+  define(CDSLOGIN_DIR, "<WEBDIR>");
+//---------------------------------------------------------------------
+
+
+  define(DB, COMMON_DIR."/dbparams.inc.shtml");
+  define(FUNCTION_LIB, COMMON_DIR."/general.inc.shtml");
+  
+  define(MAIN, CORE_DIR."/FlexElink.inc.shtml");
+  define(RECORD_SEP, CORE_DIR."/RecordSeparator.inc.shtml");
+  define(VARIABLE_EXT, CORE_DIR."/OAISpecExtractor.inc.shtml");
+  define(PROCESSOR, CORE_DIR."/Processor.inc.shtml");
+  define(EXECUTOR, CORE_DIR."/AEvalLan.inc.shtml");
+  define(UDF_RETRIEVER, CORE_DIR."/UDFRetriever.inc.shtml");
+  define(FORMAT_RETRIEVER, CORE_DIR."/FormatRetriever.inc.shtml");
+  define(KB_RETRIEVER, CORE_DIR."/KBRetriever.inc.shtml");
+  define(INTVARS, CORE_DIR."/IntVars.inc.shtml");
+  define(LINK_RESOLVER, CORE_DIR."/LinkResolver.inc.shtml");
+
+?>
diff --git a/modules/bibformat/lib/core/.cvsignore b/modules/bibformat/lib/core/.cvsignore
new file mode 100644
index 000000000..7cf70d354
--- /dev/null
+++ b/modules/bibformat/lib/core/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+*.shtml
+*.py
\ No newline at end of file
diff --git a/modules/bibformat/lib/core/AEvalLan.inc.shtml.wml b/modules/bibformat/lib/core/AEvalLan.inc.shtml.wml
new file mode 100644
index 000000000..e2c7d9d26
--- /dev/null
+++ b/modules/bibformat/lib/core/AEvalLan.inc.shtml.wml
@@ -0,0 +1,1619 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+
+//==========================================================================
+//  File: AEvalLan.inc (flexElink core)
+//  Classes: 	LAEvalLan
+//  		AELInterpreter
+//  		AELNode
+//  		AELAtribs
+//  		AEvalLan
+//  		AELExecutor
+//		
+//  Requires: FormatRetriever, UDFRetriever, KBRetriever
+//  Included: 	core/FormatRetriever.inc
+//		core/UDFRetriever.inc
+//		core/KBRetriever.inc
+//		general.inc
+//		
+//		
+//==========================================================================
+
+  include_once(FORMAT_RETRIEVER);
+  include_once(UDF_RETRIEVER);
+  include_once(KB_RETRIEVER);
+
+  include_once(FUNCTION_LIB);
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LAEvalLan
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  //Constants that define lexical categories
+  define(LAEL_NONE, -1);
+  define(LAEL_LITERAL, 0);
+  define(LAEL_VAR, 2);
+  define(LAEL_OPAR, 6);
+  define(LAEL_CPAR, 7);
+  define(LAEL_END, 8);
+  define(LAEL_FORALL, 10);
+  define(LAEL_FUNCTION, 13);
+  define(LAEL_COMA, 14);
+  define(LAEL_NOT, 15);
+  define(LAEL_COP, 16);
+  define(LAEL_LOP, 17);
+  define(LAEL_OBRACE, 18);
+  define(LAEL_CBRACE, 19);
+  define(LAEL_IF, 20);
+  define(LAEL_ELSE, 21);
+  define(LAEL_DOT, 22);
+  define(LAEL_FORMAT, 23);
+  define(LAEL_LINK, 24);
+  define(LAEL_KB, 25);
+  define(LAEL_COUNT, 26);
+
+
+  class LAEvalLan
+  {
+    var $text;
+    var $pos;
+
+    function LAEvalLan( $text )
+    {
+      $this->text=$text;
+      $this->pos=0;
+    }
+
+    function nextItem($debug=0)
+    {
+      $cat=LAEL_NONE;
+      $lex="";
+      $state=0;
+
+      while($state>=0)
+      {
+	if($this->pos>strlen($this->text))
+	{
+	  $cat=LAEL_END;
+	  $lex="";
+	  break;
+	}
+	$cchar=$this->text[$this->pos];
+	switch($state)
+	{
+	  case 0:
+	    if($cchar=='"')
+	      $state=1;
+            elseif($cchar=='$')
+	      $state=5;
+            elseif($cchar=='(')
+	    {
+	      $cat=LAEL_OPAR;
+	      $state=-1;
+	    }
+	    elseif($cchar==')')
+	    {
+	      $cat=LAEL_CPAR;
+	      $state=-1;
+	    }
+	    elseif($cchar==',')
+	    {
+	      $cat=LAEL_COMA;
+	      $state=-1;
+	    }
+	    elseif($cchar=='{')
+	    {
+	      $cat=LAEL_OBRACE;
+	      $state=-1;
+	    }
+	    elseif($cchar=='}')
+	    {
+	      $cat=LAEL_CBRACE;
+	      $state=-1;
+	    }
+	    elseif($cchar=='.')
+	    {
+	      $cat=LAEL_DOT;
+	      $state=-1;
+	    }
+	    elseif($cchar=='!')
+	    {
+	      $lex.=$cchar;
+	      $state=7;
+	    }
+	    elseif((($cchar=='&')&&($this->text[$this->pos+1]=='&'))||
+	           (($cchar=='|')&&($this->text[$this->pos+1]=='|')))
+	    {
+	      $lex=$cchar.$this->text[$this->pos+1];
+	      $this->pos++;
+	      $cat=LAEL_LOP;
+	      $state=-1;
+	    }
+	    elseif($cchar=='=')
+	    {
+	      $cat=LAEL_COP;
+              $lex=$cchar;
+	      $state=-1;
+	    }
+	    elseif(($cchar=='>')||($cchar=='<'))
+	    {
+	      $cat=LAEL_COP;
+              $lex=$cchar;
+	      if($this->text[$this->pos+1]=="=")
+	      {
+		$lex.="=";
+		$this->pos++;
+	      }
+	      $state=-1;
+	    }
+	    elseif((($cchar>='a')&&($cchar<='z'))||
+		   (($cchar>='A')&&($cchar<='Z'))||
+		   (($cchar>='0')&&($cchar<='9')))
+            {
+	      $lex.=$cchar;
+	      $state=6;
+	    }
+
+            $this->pos++;
+            break;
+
+	  case 7:
+	    if($cchar=='=')
+	    {
+	      $cat=LAEL_COP;
+	      $lex.=$cchar;
+              $state=-1;
+	      $this->pos++;
+            }
+	    else
+	    {
+	      $cat=LAEL_NOT;
+	      $state=-1;
+	    }
+
+	    break;
+	  case 6:
+	    if( (($cchar>='a')&&($cchar<='z'))||(($cchar>='A')&&($cchar<='Z'))||
+		(($cchar>='0')&&($cchar<='9'))||($cchar=='_')||($cchar=='.') )
+            {
+	      $lex.=$cchar;
+	      $this->pos++;
+	    }
+	    else
+	    {
+	      $lex=strtoupper($lex);
+	      if($lex=="FORALL")
+		$cat=LAEL_FORALL;
+              elseif($lex=="IF")
+		$cat=LAEL_IF;
+              elseif($lex=="ELSE")
+		$cat=LAEL_ELSE;
+              elseif($lex=="FORMAT")
+	        $cat=LAEL_FORMAT;
+              elseif($lex=="LINK")
+	        $cat=LAEL_LINK;
+              elseif($lex=="KB")
+	        $cat=LAEL_KB;
+              elseif($lex=="COUNT")
+	        $cat=LAEL_COUNT;
+              else
+	        $cat=LAEL_FUNCTION;
+	      $state=-1;
+	    }
+	    break;
+	  case 5:
+	    if( (($cchar>='a')&&($cchar<='z'))||(($cchar>='A')&&($cchar<='Z'))||
+		(($cchar>='0')&&($cchar<='9'))||($cchar=='_') )
+            {
+	      $lex.=$cchar;
+	      $this->pos++;
+	    }
+	    else
+	    {
+	      $cat=LAEL_VAR;
+	      $lex=strtoupper($lex);
+	      $state=-1;
+            }
+	    break;
+          
+	  case 1:
+	    if($cchar!='"')
+	    {
+	      if(($cchar=='\\')&&($this->text[$this->pos+1]=='"'))
+	      {
+		$lex.="\"";
+		$this->pos++;
+	      }
+	      else
+		$lex.=$cchar;
+	    }
+	    else
+	    {
+	      $cat=LAEL_LITERAL;
+	      $state=-1;
+	    }
+	    $this->pos++;
+	    break;
+	  default:
+	    break;
+	}
+      }
+      return array($cat, $lex);
+    }
+
+  }//end class: LAEvalLan
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: AELInterpreter
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  
+  define(SCEL_VAR,0);
+  define(SCEL_LITERAL,1);
+  define(SCEL_FUNCTION, 2);
+  define(SCEL_FORALL, 3);
+  define(SCEL_IF, 4);
+  define(SCEL_OR, 5);
+  define(SCEL_AND, 6);
+  define(SCEL_EQUAL, 7);
+  define(SCEL_DIFFERENT, 8);
+  define(SCEL_NOT, 9);
+  define(SCEL_CONCAT, 11);
+  define(SCEL_SUBFIELD, 12);
+  define(SCEL_FORMAT, 13);
+  define(SCEL_LINK, 14);
+  define(SCEL_PARAMS, 15); //Not a Semantic cathegory, just a mark one
+  define(SCEL_KB, 16);
+  define(SCEL_COUNT, 17);
+
+  class AELInterpreter
+  {
+    var $vars;
+    var $format_ret;
+    var $udf_ret;
+    var $kb_ret;
+    var $link_res;
+    var $first;
+    var $last;
+
+    function AELInterpreter( $vars )
+    {
+      $this->vars=$vars;
+      $this->format_ret=& FormatRetriever::getInstance();
+      $this->udf_ret=& UDFRetriever::getInstance();
+      $this->kb_ret=& KBRetriever::getInstance();
+      $this->link_res=& LinkResolver::getInstance();
+      $this->first=1;
+      $this->last=0;
+    }
+
+    function interpret( & $node, $curr_var="" )
+    {
+      $str=""; //Will contain the son built string
+      //----------------------
+      // SCEL_LITERAL
+      //----------------------
+      if($node->cat==SCEL_LITERAL)
+      {
+        $str=$node->lex;
+      }
+      //----------------------
+      // SCEL_VAR
+      //----------------------
+      elseif($node->cat==SCEL_VAR)
+      {
+	if($node->hasSons())
+	{
+	  //Only can have a SF son, so we should get its value from the
+	  //  internal vars
+	  $str=$this->vars->getSFValue($node->lex, $node->sons[0]->lex);
+	}
+        else
+        {
+	  $str=$this->vars->getValue($node->lex);
+	}
+      }
+      //----------------------
+      // SCEL_FUNCTION
+      //----------------------
+      elseif($node->cat==SCEL_FUNCTION)
+      {
+        $params=array();
+        foreach($node->sons as $son)
+	{
+          $value=$this->interpret( $son, $curr_var );
+	  array_push($params, $value);
+	}
+/*
+	$last=1;
+	$first=0;
+	if($curr_var!="")
+        {
+          $last=$this->vars->varExist($curr_var)&&
+		$this->vars->lastValue($curr_var);
+          $first=$this->vars->varExist($curr_var)&&
+		 $this->vars->firstValue($curr_var);
+        }
+*/
+	$first=$this->first;
+	$last=$this->last;
+	list($ok, $str)=$this->udf_ret->execute( $node->lex, 
+						 $params, 
+						 $last, 
+						 $first);
+      }
+      //----------------------
+      // SCEL_CONCAT
+      //----------------------
+      elseif($node->cat==SCEL_CONCAT)
+      {
+        foreach($node->sons as $son)
+	{
+	  $str.=$this->interpret( $son, $curr_var );
+        }
+      }
+      //----------------------
+      // SCEL_EQUAL, SCEL_DIFERENT
+      //----------------------
+      elseif(($node->cat==SCEL_EQUAL)||($node->cat==SCEL_DIFFERENT))
+      {
+        $val1=$this->interpret( $node->sons[0], $curr_var );
+	$val2=$this->interpret( $node->sons[1], $curr_var );
+	$str="FALSE";
+	if(($node->cat==SCEL_EQUAL)&&($val1==$val2))
+	  $str="TRUE";
+	elseif(($node->cat==SCEL_DIFFERENT)&&($val1!=$val2))
+	  $str="TRUE";
+      }
+      //----------------------
+      // SCEL_AND, SCEL_OR
+      //----------------------
+      elseif(($node->cat==SCEL_AND)||($node->cat==SCEL_OR))
+      {
+        $temp=$this->interpret( $node->sons[0], $curr_var );
+        
+        if(($node->cat==SCEL_AND)&&($temp=="FALSE"))
+	{ 
+	  $str="FALSE";
+        }
+	elseif(($node->cat==SCEL_OR) &&($temp=="TRUE"))
+	{
+	  $str="TRUE";
+	}
+	else
+	{
+	  $str=$this->interpret( $node->sons[1], $curr_var );
+        }
+      }
+      //----------------------
+      // SCEL_KB
+      //----------------------
+      elseif($node->cat==SCEL_KB)
+      {
+	$kb_name=$node->sons[0]->lex;
+        $key=$this->interpret( $node->sons[1], $curr_var );
+	
+	//$str=getKBValue( $kb_name, $key );
+	$str=$this->kb_ret->getValue( $kb_name, $key );
+      }
+      //----------------------
+      // SCEL_IF
+      //----------------------
+      elseif($node->cat==SCEL_IF)
+      {
+        $temp=$this->interpret( $node->sons[0], $curr_var );
+	if($temp=="TRUE")
+	{
+	  $str=$this->interpret( $node->sons[1], $curr_var );
+	}
+	else
+	{
+	  if($node->sons[2])
+             $str=$this->interpret( $node->sons[2], $curr_var );
+	}
+      }
+      //----------------------
+      // SCEL_LINK
+      //----------------------
+      elseif($node->cat==SCEL_LINK)
+      {
+	//First, get the link type which is specified in the first son
+	$linktype=$node->sons[0]->lex;
+	//Then let's have the param values which are specified by a PARAMS node
+	$params=array();
+	$tparams=$node->sons[1]->sons;
+	reset($tparams);
+	while($temp=current($tparams))
+	{
+	  $pv=$this->interpret( $temp, $curr_var );
+	  array_push($params, $pv);
+	  next($tparams);
+	}
+	//Now call the linkresolver to solve the link
+	list($ok, $link, $linkvar)=$this->link_res->solveLink( $linktype, 
+	  						       $params );
+	if($ok)
+	{
+	  $this->vars->add($linkvar);
+	  $str=$this->interpret( $node->sons[2], $curr_var );
+          $this->vars->remove("LINK");
+        }
+        else
+	{
+	  if($node->sons[3]!=null)
+	  {
+	    $str=$this->interpret( $node->sons[3], $curr_var );
+	  }
+        }
+      }
+      //----------------------
+      // SCEL_FORALL
+      //----------------------
+      elseif($node->cat==SCEL_FORALL)
+      {
+        $varname=$node->lex;
+	$sfname="";
+	if($node->sons[0]!=null)
+	{
+	  $sfname=$node->sons[0]->lex;
+        }
+	$maxiter=-1;
+	if($node->sons[1]!=null)
+	{
+	  $maxiter=$node->sons[1]->lex; 
+	}
+	if($this->vars->vreset($varname))
+	{
+	  if(!$this->vars->isEmpty($varname))
+	  {
+	    $numvalues=$this->vars->countValues($varname, $sfname);
+	    $str="";
+	    $morevalues=1;
+	    if($sfname!="")
+	      $morevalues=$this->vars->vfirstSFValue($varname, $sfname);
+            $iter=0;
+	    while($morevalues)
+	    {
+	      $iter++;
+	      $this->first=0;
+	      if($iter==1) $this->first=1;
+	      $this->last=0;
+	      if(($iter==$numvalues) ||
+		 (($maxiter>=0) && ($iter>=$maxiter)))
+		$this->last=1;
+       	      $str.=$this->interpret( $node->sons[2], $varname );
+	      if(($maxiter>=0)&&($iter>=$maxiter))
+		break;
+	      if($sfname!="")
+	        $morevalues=$this->vars->vnextSFValue($varname, $sfname);
+              else
+	        $morevalues=$this->vars->vnextvalue($varname);
+	    }
+	    $this->vars->vreset($varname);
+	  }
+	}
+      }
+      //----------------------
+      // SCEL_COUNT
+      //----------------------
+      elseif($node->cat==SCEL_COUNT)
+      {
+	$sf="";
+	if($node->sons[0]!=null)
+	{
+	  $sf=$node->sons[0]->lex;
+	}
+	$str=$this->vars->countValues($node->lex, $sf);
+      }
+      //----------------------
+      // SCEL_NOT
+      //----------------------
+      elseif($node->cat==SCEL_NOT)
+      {
+        $temp=$this->interpret( $node->sons[0], $curr_var );
+	$str="TRUE";
+	if($temp=="TRUE") 
+	  $str="FALSE";
+      }
+      //----------------------
+      // SCEL_FORMAT
+      //----------------------
+      elseif($node->cat==SCEL_FORMAT)
+      {
+        $fname=$this->interpret( $node->sons[0], $curr_var );
+	//call to the format retriever in order to get the corresponding format
+        list($ok, $ftree)=$this->format_ret->getParsedFormat( $fname );
+	if($ok)
+	{
+	  $str=$this->interpret( $ftree, $curr_var );
+	}
+      }
+      return $str;
+
+    }
+
+  }//end class: AELInterpreter
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: AELNode
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class AELNode
+  {
+    var $cat;
+    var $lex;
+    var $sons;
+
+    function AELNode($cat, $lex="")
+    {
+      $this->cat=$cat;
+      $this->lex=$lex;
+      $this->sons=array();
+    }
+
+    function addSon( $son )
+    {
+      if($son)
+        array_push( $this->sons, $son );
+    }
+    
+    function addSonNoCheck( $son )
+    {
+      array_push( $this->sons, $son );
+    }
+
+    function hasSons()
+    {
+      return count($this->sons);
+    }
+    
+    function debug($prefix="")
+    {
+      print "$prefix Node(Cat: <b>".$this->cat."</b>--Lex: <b>".$this->lex."</b>)<br>";
+      foreach($this->sons as $son)
+      {
+	print $prefix.$this->cat."--".$this->lex." SON <br>";
+	$son->debug($prefix."..");
+      }
+    }
+  }//end clas: AELNode
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: AELAtribs
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class AELAtribs 
+  {
+    var $void;
+    function AELAtribs()
+    {
+      $this->void="";
+    }
+  }//end class: AELAtribs
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: AEvalLan
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class AEvalLan
+  {
+    var $lexa;
+    var $cat;
+    var $text;
+    var $code;
+    var $debug;
+    var $vars;
+    var $tree;
+    var $udf_ret;
+    var $format_ret;
+    
+    var $text_error;
+    var $notforall;
+    var $vars_needed;
+
+    var $formats_forbidden;
+
+    function AEvalLan()
+    {
+      $this->tree=null;
+
+      $this->udf_ret=& UDFRetriever::getInstance();
+      $this->format_ret=& FormatRetriever::getInstance();
+
+      $this->formats_forbidden = array();
+    }
+
+    function vars_needed( $text, $debug=false )
+    {
+      $this->debug=$debug;
+      $this->code=$text;
+      $this->notforall=0;
+      $this->vars_needed=array();
+      $this->lexa=new LAEvalLan( $this->code );
+      list($this->cat, $this->text)=$this->lexa->nextItem();
+      $ats=new AELAtribs();
+      if($this->auxS( $ats ))
+      {
+	$this->tree=$ats->tree;
+	return array(1, $this->vars_needed);
+      }
+      else
+      {
+	$this->tree=null;
+	$this->text_error.="(at char ".$this->lexa->pos.")<br>";
+	$cad=substr($this->code, 0, $this->lexa->pos-1);
+	$this->text_error.="<font color=\"black\">".htmlspecialchars($cad)."</font>";
+	return array(0, $this->text_error);
+      }
+    }
+
+    function notAllowFormats( $ff )
+    {
+       if(!is_array($ff)) {
+         $this->formats_forbidden = array( $ff );
+       }
+       else {
+         $this->formats_forbidden = $ff;
+       }
+    }
+    
+    function parse( $text )
+    {
+      $this->debug=$debug;
+      $this->code=$text;
+      $this->notforall=0;
+      $this->vars_needed=array();
+
+      $this->lexa=new LAEvalLan( $this->code );
+      list($this->cat, $this->text)=$this->lexa->nextItem();
+      $ats=new AELAtribs();
+      if($this->auxS( $ats ))
+      {
+	$this->tree=$ats->tree;
+	return array(1, $this->tree);
+      }
+      else
+      {
+	$this->tree=null;
+	$this->text_error.="(at char ".$this->lexa->pos.")<br>";
+	$cad=substr($this->code, 0, $this->lexa->pos-1);
+	$this->text_error.="<font color=\"black\">".text2HTML($cad)."</font>";
+	return array(0, $this->text_error);
+      }
+    }
+    
+    function getParsedTree( $text )
+    {
+      list($ok, $msg)=$this->parse( $text );
+      if($ok)
+      {
+	return array(1, $this->tree);
+      }
+      else
+      {
+	return array(0, $msg);
+      }
+    }
+
+    function execute( $vars )//, & $format_ret, & $udf_ret, & $kb_ret )
+    {
+      if(!$this->tree)
+      {
+	return array(0, "There isn't a previous compilation");
+      }
+
+      $err="";
+      $nulo=null;
+      $int=new AELInterpreter( $vars );
+      $str=$int->interpret( $this->tree );
+      $this->kb_ret->print_acc();
+
+      if($err!="")
+	  return array(0, "Error interpreting: $err");
+      else
+	  return array(1, $str);
+    }
+
+    function newexecute( $text, $vars, $debug=false )
+    {
+      $this->code=$text;
+      $this->notforall=0;
+      $this->vars_needed=array();
+      $this->lexa=new LAEvalLan( $this->code );
+      list($this->cat, $this->text)=$this->lexa->nextItem();
+      $ats=new AELAtribs();
+      if($this->auxS( $ats ))
+      {
+	$this->tree=$ats->tree;
+        $format_ret=new FormatRetriever();
+	list($err, $str)=$ats->tree->getResult($vars, "", $format_ret);
+	if($err!="")
+	{
+	  return array(0, "Error interpreting: $err");
+	}
+	else
+	{
+	  return array(1, $str);
+        }
+      }
+      else
+      {
+	$this->text_error.="(at char ".$this->lexa->pos.")";
+	return array(0, $this->text_error);
+      }
+    }
+
+    function auxS( & $aS )
+    {
+      //<S>-><E>end
+      if(in_array($this->cat, array(LAEL_NOT, LAEL_VAR, 
+			LAEL_LITERAL, LAEL_FUNCTION, LAEL_OPAR, LAEL_FORALL,
+			LAEL_IF, LAEL_FORMAT, LAEL_LINK, LAEL_KB, LAEL_COUNT)))
+      {
+        $aE=new AELAtribs();
+	if($this->auxE( $aE ))
+	{
+	  if($this->cat==LAEL_END)
+	  {
+	    $aS->tree=$aE->tree;
+	    $aS->type=$aE->type;
+	    return 1;
+	  }
+	}
+      }
+      //<S>->end
+      elseif($this->cat==LAEL_END)
+      {
+        $aS->tree=null;
+	$aS->type="STRING";
+	return 1;
+      }
+      return 0;
+    }
+
+    function auxE( & $aE )
+    {
+      //<E>-><T><Ep>
+      if(in_array($this->cat, array(LAEL_NOT, LAEL_VAR, LAEL_LITERAL, 
+			LAEL_FUNCTION, LAEL_OPAR, LAEL_FORALL, LAEL_IF, 
+			LAEL_FORMAT, LAEL_LINK, LAEL_KB, LAEL_COUNT)))
+      {
+        $aT=new AELAtribs();
+	if($this->auxT( $aT ))
+	{
+	  $aEp=new AELAtribs();
+	  $aEp->h=$aT->tree;
+          $aEp->th=$aT->type;
+	  if($this->auxEp( $aEp ))
+	  {
+	    $aE->type=$aEp->ts;
+	    $aE->tree=$aEp->s;
+	    return 1;
+          }
+	}
+      }
+      else
+      {
+	$this->text_error="Expresion expected";
+      }
+      
+      return 0;
+    }
+
+    
+    function auxEp( & $aEp )
+    {
+      //<Ep>->lop<T><Ep>
+      if($this->cat==LAEL_LOP)
+      {
+	if($this->text=="&&")
+	  $tempcat=SCEL_AND;
+        else
+	  $tempcat=SCEL_OR;
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+        $aT=new AELAtribs();
+	if($this->auxT( $aT ))
+	{
+	  $temp=new AELNode( $tempcat );
+	  $temp->addSon( $aEp->h );
+	  $temp->addSon( $aT->tree );
+	  $aEp1=new AELAtribs();
+	  $aEp1->h=$temp;
+	  if(($aEp->th!="BOOL")&&($aT->type!="BOOL"))
+	  {
+	    $this->text_error="Logical operations(&&,||) can only be applied over logical expressions";
+	    return 0;
+	  }
+	  $aEp1->th="BOOL";
+
+	  if($this->auxEp( $aEp1 ))
+	  {
+	    $aEp->s=$aEp1->s;
+	    $aEp->ts=$aEp1->ts;
+	    return 1;
+	  }
+	}
+      }
+      //<Ep>->lambda
+      elseif(in_array($this->cat, array(LAEL_END, LAEL_CPAR, LAEL_COMA,
+				LAEL_CBRACE)))
+      {
+        $aEp->s=$aEp->h;
+	$aEp->ts=$aEp->th;
+        return 1;
+      }
+      
+      return 0;
+    }
+
+    function auxT( & $aT )
+    {
+      //<T>-><F><Tp>
+      if(in_array($this->cat, array(LAEL_NOT, LAEL_VAR, LAEL_LITERAL, 
+			LAEL_FUNCTION, LAEL_OPAR, LAEL_FORALL, LAEL_IF, 
+			LAEL_FORMAT, LAEL_LINK, LAEL_KB, LAEL_COUNT)))
+      {
+        $aF=new AELAtribs();
+        if($this->auxF( $aF ))
+	{
+	  $aTp=new AELAtribs();
+	  $aTp->h=$aF->tree;
+          $aTp->th=$aF->type;
+	  if($this->auxTp( $aTp ))
+	  {
+	    $aT->tree=$aTp->s;
+	    $aT->type=$aTp->ts;
+	    return 1;
+	  }
+	}
+      }
+
+      return 0;
+    }
+
+    function auxTp( & $aTp )
+    {
+      //<Tp>->cop<F><Tp>
+      if($this->cat==LAEL_COP)
+      {
+	if($this->text=="=")
+	  $tempcat=SCEL_EQUAL;
+        else
+	  $tempcat=SCEL_DIFFERENT;
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+        $aF=new AELAtribs();
+	if($this->auxF( $aF ))
+	{
+	  if(($aTp->th!="STRING")&&($aF->type!="STRING"))
+	  {
+	    $this->text_error="Comparison operations(=,!=) can only be applied over STRING expressions";
+	    return 0;
+	  }
+	  $temp=new AELNode( $tempcat );
+	  $temp->addSon( $aTp->h );
+	  $temp->addSon( $aF->tree );
+	  $aTp1=new AELAtribs();
+	  $aTp1->h=$temp;
+	  $aTp1->th="BOOL";
+	  if($this->auxTp( $aTp1 ))
+	  {
+	    $aTp->s=$aTp1->s;
+	    $aTp->ts=$aTp1->ts;
+	    return 1;
+	  }
+	}
+      }
+      //<Tp>-><F><Tp>
+      elseif(in_array($this->cat, array(LAEL_NOT, LAEL_VAR, LAEL_LITERAL, 
+			LAEL_FUNCTION, LAEL_OPAR, LAEL_FORALL, LAEL_IF, 
+			LAEL_FORMAT, LAEL_LINK, LAEL_KB, LAEL_COUNT)))
+      {
+        $aF=new AELAtribs();
+        if($this->auxF( $aF ))
+	{
+	  if(($aTp->th!="STRING")&&($aF->type!="STRING"))
+	  {
+	    $this->text_error="Can only concatenate STRING expressions";
+	    return 0;
+	  }
+	  $temp=new AELNode( SCEL_CONCAT );
+	  $temp->addSon( $aTp->h );
+	  $temp->addSon( $aF->tree );
+	  $aTp1=new AELAtribs();
+	  $aTp1->h=$temp;
+	  $aTp1->th="STRING";
+	  if($this->auxTp( $aTp1 ))
+	  {
+	    $aTp->s=$aTp1->s;
+	    $aTp->ts=$aTp1->ts;
+	    return 1;
+	  }
+	}
+      }
+      //<Tp>->lambda
+      elseif(in_array($this->cat, array(LAEL_LOP, LAEL_END, LAEL_CPAR, 
+			LAEL_COMA, LAEL_CBRACE)))
+      {
+        $aTp->s=$aTp->h;
+        $aTp->ts=$aTp->th;
+        return 1;
+      }
+      
+      return 0;
+    }
+
+    function auxF( & $aF )
+    {
+      //<F>->!<B>
+      if($this->cat==LAEL_NOT)
+      {
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	$aB=new AELAtribs();
+	if($this->auxB( $aB ))
+	{
+	  if($aB->type!="BOOL")
+	  {
+	    $this->text_error="Cannot apply a NOT over a string expresion";
+	    return 0;
+          }
+	  $aF->type="BOOL";
+	  $temp=new AELNode( SCEL_NOT );
+	  $temp->addSon( $aB->tree );
+	  $aF->tree=$temp;
+	  return 1;
+	}
+      }
+      //<F>-><B>
+      elseif(in_array($this->cat, array(LAEL_VAR, LAEL_LITERAL, LAEL_FUNCTION,
+			LAEL_OPAR, LAEL_FORALL, LAEL_IF, LAEL_FORMAT, 
+			LAEL_LINK, LAEL_KB, LAEL_COUNT)))
+      {
+	$aB=new AELAtribs();
+	if ($this->auxB( $aB ))
+	{
+	  $aF->tree=$aB->tree;
+	  $aF->type=$aB->type;
+	  return 1;
+	}
+      }
+
+      return 0;
+    }
+
+    function auxB( & $aB )
+    {
+      //<B>->var
+      if($this->cat==LAEL_VAR)
+      {
+	$aB->tree=new AELNode( SCEL_VAR, $this->text );
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	$aSF=new AELAtribs();
+        if($this->auxSF( $aSF ))
+	{
+	  $aB->tree->addSon( $aSF->tree );
+	  $aB->type="STRING";
+	  return 1;
+	}
+      }
+      //<B>->literal
+      elseif($this->cat==LAEL_LITERAL)
+      {
+	$aB->tree=new AELNode( SCEL_LITERAL, $this->text );
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	$aB->type="STRING";
+        return 1;
+      }
+      //<B>->function(<LP>)
+      elseif($this->cat==LAEL_FUNCTION)
+      {
+	$aB->tree=new AELNode( SCEL_FUNCTION, $this->text );
+	$fname=$this->text;
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->cat==LAEL_OPAR)
+	{
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  if($this->auxLP( $aB ))
+	  {
+	    list($ok, $msg)=$this->udf_ret->validate( $fname, count($aB->tree->sons) );
+	    if(!$ok)
+	    {
+	      $this->text_error=$msg;
+	      return 0;
+	    }
+	    if($this->cat==LAEL_CPAR)
+	    {
+              list($this->cat, $this->text)=$this->lexa->nextItem();
+	      //By the time, a function will allways return a STRING value.
+	      //  If necessary we could distinguish between STRING or BOOL 
+	      //  functions
+	      $aB->type="STRING";
+	      return 1;
+	    }
+	    else
+	      $this->text_error="There is a ')' missing";
+	  }
+	}
+	else
+	  $this->text_error="Functions must be followed by '('";
+      }
+      //<B>->format( <E> )
+      elseif($this->cat==LAEL_FORMAT)
+      {
+	    $aB->tree=new AELNode( SCEL_FORMAT );
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	    if($this->cat==LAEL_OPAR)
+	    {
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	      $aE=new AELAtribs();
+	      if($this->auxE( $aE ))
+	      {
+	        if($aE->type!="STRING")
+	        {
+	          $this->text_error="FORMAT type has to be a must be a STRING";
+	          return 0;
+	        }
+            if($aE->tree->cat == SCEL_LITERAL)
+            {
+              if(in_array( strtoupper($aE->tree->lex), $this->formats_forbidden ))
+              {
+                $this->text_error="Recursive format call";
+                return 0;
+              }
+            }
+
+            
+	        $aB->tree->addSon( $aE->tree );
+	        if($this->cat==LAEL_CPAR)
+	        {
+              list($this->cat, $this->text)=$this->lexa->nextItem();
+	          $aB->type="STRING";
+	          return 1;
+            }
+	      }
+        }
+      }
+      //<B>->link( literal, <LP> )
+      elseif($this->cat==LAEL_LINK)
+      {
+	if($this->notlink)
+	{
+	  $this->text_error="LINK statements cannot be nested";
+	  return 0;
+	}
+	$aB->tree=new AELNode( SCEL_LINK );
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->cat==LAEL_OPAR)
+	{
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  if($this->cat==LAEL_LITERAL)
+	  {
+	    //Check if the link type exists
+	    //Add the literal as first son of the tree
+	    $aB->tree->addSon(new AELNode( SCEL_LITERAL, $this->text ));
+            list($this->cat, $this->text)=$this->lexa->nextItem();
+	    if($this->cat==LAEL_COMA)
+	    {
+              list($this->cat, $this->text)=$this->lexa->nextItem();
+	      $this->notlink=1;
+	      $temp=new AELAtribs();
+	      $temp->tree=new AELNode( SCEL_PARAMS );
+	      if($this->auxLP( $temp ))
+	      {
+		$aB->tree->addSon( $temp->tree );
+                if($this->cat==LAEL_CPAR)
+		{
+                  list($this->cat, $this->text)=$this->lexa->nextItem();
+		  $aB->type="STRING";
+		  if($this->cat==LAEL_OBRACE)
+		  {
+                    list($this->cat, $this->text)=$this->lexa->nextItem();
+		    $aE=new AELAtribs();
+		    if($this->auxE( $aE ))
+		    {
+		      if($aE->type!="STRING")
+		      {
+			$this->text_error="Actions inside a LINK statement must be STRING";
+			return 0;
+		      }
+		      $aB->tree->addSon( $aE->tree );
+		      if($this->cat==LAEL_CBRACE)
+		      {
+	                $this->notlink=0;
+                        list($this->cat, $this->text)=$this->lexa->nextItem();
+			$aEls=new AELAtribs();
+			if($this->auxEls( $aEls ))
+			{
+			  $aB->tree->addSon( $aEls->tree );
+		          return 1;
+			}
+			
+                      }
+		    }
+		  }
+		  else
+		  {
+	            $this->text_error="A '{' was expected";
+	            return 0;
+		  }
+		}
+	      }
+	    }
+	    else
+	    {
+	      $this->text_error="A ',' was expected";
+	      return 0;
+	      
+	    }
+	  }
+	  else
+	  {
+	    $this->text_error="Link type has to be specified by a LITERAL in a LINK call";
+	    return 0;
+	  }
+	}
+	else
+	{
+	  $this->text_error="A '(' was expected after a LINK call";
+	  return 0;
+	}
+      }
+      //<B>->KB(literal, <E>)
+      elseif($this->cat==LAEL_KB)
+      {
+	$aB->tree=new AELNode( SCEL_KB );
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->cat==LAEL_OPAR)
+	{
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  $aE=new AELAtribs();
+	  if($this->auxE( $aE))
+	  {
+	    if($aE->type!="STRING")
+	    {
+	      $this->text_error="The key parameter has to be a STRING in a KB call";
+	      return 0;
+	    }
+	    if($this->cat==LAEL_COMA)
+	    {
+              list($this->cat, $this->text)=$this->lexa->nextItem();
+	      if($this->cat==LAEL_LITERAL)
+	      {
+		$aB->tree->addSon( new AELNode( SCEL_LITERAL, $this->text) );
+		$aB->tree->addSon($aE->tree);
+                list($this->cat, $this->text)=$this->lexa->nextItem();
+		if($this->cat==LAEL_CPAR)
+		{
+                  list($this->cat, $this->text)=$this->lexa->nextItem();
+		  $aB->type="STRING";
+		  return 1;
+		}
+		else
+		{
+		  $this->text_error="A ')' was expected";
+		  return 0;
+		}
+		
+	      }
+	      else
+              {
+		$this->text_error="KB name has to be specified by a LITERAL in a KB call";
+		return 0;
+
+	      }
+	    }
+	    else
+	    {
+	      $this->text_error="A ',' was expected after the key parameter in the KB call";
+	      return 0;
+	    }
+	  }
+	}
+	else
+	{
+	  $this->text_error="A '(' was expected after a KB call";
+	  return 0;
+	}
+      }
+      //<B>->(<E>)
+      elseif($this->cat==LAEL_OPAR)
+      {
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->auxE( $aB ))
+	{
+	  if($this->cat==LAEL_CPAR)
+	  {
+            list($this->cat, $this->text)=$this->lexa->nextItem();
+	    return 1;
+	  }
+	  else
+	    $this->text_error="There is a ')' missing";
+	}
+      }
+      //<B>->forall(var<SF>){<E>}
+      elseif($this->cat==LAEL_FORALL)
+      {
+	if($this->notforall)
+	{
+	  $this->text_error="You cannot use forall into an evaluation zone";
+	  return 0;
+	}
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->cat==LAEL_OPAR)
+	{
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  if($this->cat==LAEL_VAR)
+	  {
+	    $aB->tree=new AELNode( SCEL_FORALL, $this->text );
+            list($this->cat, $this->text)=$this->lexa->nextItem();
+	    $aSF=new AELAtribs();
+	    if($this->auxSF( $aSF ))
+	    {
+	      $aB->tree->addSonNoCheck( $aSF->tree );
+	      $aNi=new AELAtribs();
+	      if($this->auxNi( $aNi ))
+	      {
+	        $aB->tree->addSonNoCheck( $aNi->tree );
+	        if($this->cat==LAEL_CPAR)
+	        {
+                  list($this->cat, $this->text)=$this->lexa->nextItem();
+	          if($this->cat==LAEL_OBRACE)
+	          {
+                    list($this->cat, $this->text)=$this->lexa->nextItem();
+		    $aE=new AELAtribs();
+		    if($this->auxE( $aE ))
+		    {
+	              if($aE->type!="STRING")
+	              {
+	                $this->text_error="FORALL can only be applied over a STRING exression";
+	                return 0;
+	              }
+		      if($this->cat==LAEL_CBRACE)
+		      {
+                        list($this->cat, $this->text)=$this->lexa->nextItem();
+	                $aB->tree->addSon( $aE->tree );
+		        $aB->type="STRING";
+		        return 1;
+		      }
+	            }	
+	          }
+	        }
+	      }
+            } 
+	  }
+	  else
+	  {
+	    $this->text_error="A VARIABLE expected in the FORALL declaration";
+	  }
+	}
+      }
+      //<B>->if(<E>){<E>}<Els>
+      elseif($this->cat==LAEL_IF)
+      {
+	$aB->tree=new AELNode( SCEL_IF );
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->cat==LAEL_OPAR)
+	{
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  $this->notforall++;
+          $aE=new AELAtribs();
+	  if($this->auxE( $aE ))
+	  {
+	    if($aE->type!="BOOL")
+	    {
+	      $this->text_error="IF condition must be a LOGIC expression";
+	      return 0;
+	    }
+	    if($this->cat==LAEL_CPAR)
+	    {
+	      $aB->tree->addSon($aE->tree);
+	      $this->notforall--;
+              list($this->cat, $this->text)=$this->lexa->nextItem();
+	      if($this->cat==LAEL_OBRACE)
+	      {
+                list($this->cat, $this->text)=$this->lexa->nextItem();
+		$aE1=new AELAtribs();
+		if($this->auxE( $aE1 ))
+		{
+	          if($aE1->type!="STRING")
+	          {
+	            $this->text_error="IF can only be applied over a STRING expression";
+	            return 0;
+	          }
+		  if($this->cat==LAEL_CBRACE)
+		  {
+		    $aB->tree->addSon( $aE1->tree );
+                    list($this->cat, $this->text)=$this->lexa->nextItem();
+		    $aEls=new AELAtribs();
+		    if($this->auxEls( $aEls ))
+		    {
+		      $aB->tree->addSon( $aEls->tree );
+		      $aB->type="STRING";
+		      return 1;
+		    }
+		  }
+		}
+	      }
+	    }
+	  }
+	}
+      }
+      //<B>-> count( var <SF> )
+      elseif($this->cat==LAEL_COUNT)
+      {
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->cat==LAEL_OPAR)
+        {
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  if($this->cat==LAEL_VAR)
+          {
+	    $temp_var=$this->text;
+            list($this->cat, $this->text)=$this->lexa->nextItem();
+	    $aSF=new AELAtribs();
+            if($this->auxSF( $aSF ))
+	    {
+	      if($this->cat==LAEL_CPAR)
+	      {
+                list($this->cat, $this->text)=$this->lexa->nextItem();
+		$aB->tree=new AELNode(SCEL_COUNT, $temp_var);
+	        $aB->tree->addSon( $aSF->tree );
+	        $aB->type="STRING";
+	        return 1;
+	      }
+	      else
+	      {
+	        $this->text_error="A ')' was expected after the COUNT call";
+	      }
+            }
+          }
+	  else
+	  {
+	    $this->text_error="A VARIABLE was expected inside the COUNT call";
+	  }
+	}
+	else
+	{
+	  $this->text_error="A '(' expected after COUNT call";
+	}
+      }
+      return 0;
+    }
+
+    function auxNi( & $aNi )
+    {
+      //<Ni>->,literal
+      if($this->cat==LAEL_COMA)
+      {
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+        if($this->cat==LAEL_LITERAL)
+	{
+	  $aNi->tree=new AELNode( SCEL_LITERAL, $this->text );
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  return 1;
+	}
+	else
+	{
+	  $this->text_error="A LITERAL was expected";
+	}
+      }
+      //<Ni>->lambda
+      elseif($this->cat==LAEL_CPAR)
+      {
+        $aNi->tree=null;
+        return 1;
+      }
+      return 0;
+    }
+
+    function auxSF( & $aSF )
+    {
+      //<SF>->.function
+      if($this->cat==LAEL_DOT)
+      {
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	if($this->cat==LAEL_FUNCTION)
+	{
+          $aSF->tree=new AELNode( SCEL_SUBFIELD, $this->text );
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  return 1; 
+	}
+	else
+	{
+	  $this->text_error="You have to specify the subfield";
+	}
+      }
+      //<SF>->lambda
+      elseif(in_array($this->cat, array( LAEL_COP, LAEL_NOT, LAEL_VAR, 
+		LAEL_LITERAL, LAEL_FUNCTION, LAEL_OPAR, LAEL_FORALL, LAEL_IF,
+		LAEL_LOP, LAEL_END, LAEL_CPAR, LAEL_CBRACE, LAEL_COMA, 
+		LAEL_FORMAT, LAEL_LINK, LAEL_KB, LAEL_COUNT, LAEL_CPAR )))
+      {
+        $aSF->tree=null;
+        return 1;
+      }
+    
+      return 0;
+    }
+
+    function auxEls( & $aEls )
+    {
+      //<Els>->else{ <E> }
+      if($this->cat==LAEL_ELSE)
+      {
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+        if($this->cat==LAEL_OBRACE)
+	{
+          list($this->cat, $this->text)=$this->lexa->nextItem();
+	  $aE=new AELAtribs();
+	  if($this->auxE( $aE ))
+	  {
+	    if($aE->type!="STRING")
+	    {
+	      $this->text_error="ELSE can only be applied over a STRING expression";
+	       return 0;
+	    }
+	    $aEls->tree=$aE->tree;
+	    if($this->cat==LAEL_CBRACE)
+	    {
+              list($this->cat, $this->text)=$this->lexa->nextItem();
+	      return 1;
+	    }
+	  }
+	}
+      }
+      //<Els>->lambda
+      elseif(in_array($this->cat, array( LAEL_COP, LAEL_NOT, LAEL_VAR, 
+		LAEL_LITERAL, LAEL_FUNCTION, LAEL_OPAR, LAEL_FORALL, LAEL_IF,
+		LAEL_LOP, LAEL_END, LAEL_CPAR, LAEL_CBRACE, LAEL_COMA, 
+		LAEL_FORMAT, LAEL_LINK, LAEL_KB, LAEL_COUNT )))
+      {
+        $aEls->tree=null;
+	return 1;
+      }
+      return 0;
+    }
+    
+    function auxLP( & $aLP )
+    {
+      //<LP>-><E><LPp>
+      if(in_array($this->cat, array(LAEL_NOT, LAEL_VAR, LAEL_LITERAL, 
+			LAEL_FUNCTION, LAEL_OPAR, LAEL_FORALL, LAEL_IF, 
+			LAEL_FORMAT, LAEL_LINK, LAEL_KB, LAEL_COUNT)))
+      {
+        $aE=new AELAtribs();
+	if($this->auxE( $aE ))
+	{
+	  $aLP->tree->addSon( $aE->tree );
+	  $aLPp=new AELAtribs();
+	  $aLPp->tree=$aLP->tree;
+	  if($this->auxLPp( $aLPp ))
+	  {
+	    $aLP->tree=$aLPp->tree;
+	    return 1;
+	  }
+	}
+      }
+      //<LP>->lambda
+      elseif($this->cat==LAEL_CPAR)
+      {
+        return 1;
+      }
+
+      return 0;
+    }
+
+    function auxLPp( & $aLPp )
+    {
+      //<LPp>->,<LP>
+      if($this->cat==LAEL_COMA)
+      {
+        list($this->cat, $this->text)=$this->lexa->nextItem();
+	$aLP=new AELAtribs();
+	$aLP->tree=$aLPp->tree;
+	if($this->auxLP( $aLP ))
+	{
+	  $aLPp->tree=$aLP->tree;
+	  return 1;
+	}
+      }
+      //<LPp>->lambda
+      elseif($this->cat==LAEL_CPAR)
+      {
+        return 1;
+      }
+    }
+    
+  }//end class: AEvalLan
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: AELExecutor
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class AELExecutor {
+    var $link_res;
+
+    function AELExecutor( $create_handlers=1 )
+    { 
+      $this->link_res=null;
+    }
+
+    function checkCode( $code )
+    {
+      $anz=new AEvalLan();
+      list($ok, $msg)=$anz->parse( $code );
+      unset($anz);
+      return array($ok, $msg);
+    }
+
+    
+    function execTree( $tree, $vars )
+    {
+      if($tree==null) return array(0, "Empty tree to interpret");
+      $int=new AELInterpreter( $vars );
+      $str=$int->interpret( $tree, $vars );
+      unset($int);
+      return array( 1, $str );
+    }
+
+    function execCode( $code, $vars )
+    {
+      $anz=new AEvalLan();
+      $int=new AELInterpreter( $vars );
+      list($ok, $tree)=$anz->parse( $code );
+      unset($anz);
+      if(!$ok)
+	return array($ok, $tree);
+      $str=$int->interpret( $tree, $vars );
+      unset($int);
+      return array( 1, $str );
+    }
+
+  }
+
+?>
diff --git a/modules/bibformat/lib/core/FlexElink.inc.shtml.wml b/modules/bibformat/lib/core/FlexElink.inc.shtml.wml
new file mode 100644
index 000000000..d04994523
--- /dev/null
+++ b/modules/bibformat/lib/core/FlexElink.inc.shtml.wml
@@ -0,0 +1,128 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+//Main class
+
+  include(RECORD_SEP);
+  include(VARIABLE_EXT);
+  include(PROCESSOR);
+
+
+class CreateOAIMARCXMLFactory {
+
+  function CreateOAIMARCXMLFactory() 
+  { 
+    $this->error="";
+  }
+
+  function error()
+  {
+    return $this->error;
+  }
+
+  function & createSeparator( $ifile="" ) 
+  {
+    $sep=new XMLSimpleRecSeparator();
+    $error=$sep->setIFile( $ifile );
+    if($error)
+    {
+      $this->error=$error;
+      return "";
+    }
+    $sep->setTag("record");
+    return $sep;
+  }
+
+
+  function & createExtractor() 
+  {
+    $ext=new OAIVarExtractor();
+    return $ext;
+  }
+}
+
+class FlexElink {
+
+  function FlexElink()
+  {
+  }
+
+  function initialise( $itype, $ifile="" )
+  {
+    $this->itype=trim(strtoupper($itype));
+
+
+    if($itype=="OAIMARC")
+      $this->factory=new CreateOAIMARCXMLFactory();
+    else
+      return "Not suported input type: $itype";
+
+    $this->separator=& $this->factory->createSeparator( $ifile );
+    if(!$this->separator)
+      return "Error while creating the Record Separator: ".$this->factory->error();
+    $this->extractor=& $this->factory->createExtractor();
+    if(!$this->extractor)
+      return "Error while creating the Variable Extractor: ".$this->factory->error();
+    $this->processor=new Processor();
+    return "";
+  }
+
+  function getRecordResult($otypes, $debug=0)
+  {
+    $record=$this->separator->getRecord();
+    //No more records
+    if($record=="")
+      return array(-1, "");
+    //More records
+    set_time_limit(1000);
+    $vars=$this->extractor->getVars("DEFAULT", $record);
+    if($vars==null)
+      return array(0, $this->extractor->getError());
+    if($debug)
+      $vars->debug();
+    $result="";
+    foreach($otypes as $otype)
+    {
+      if(trim($otype)=="")
+        continue;
+      list($ok, $msg)=$this->processor->getOutput( $vars, $otype, $record );
+      if($ok) 
+        $result.=$msg;
+      else
+        return array(0, "Error processing record with otype '$otype':".$msg);
+    }
+    return array(1, $result);
+  }
+
+  function getResult( $otype, $itype, $ifile="" )
+  {
+  }
+}
+
+?>
diff --git a/modules/bibformat/lib/core/FormatRetriever.inc.shtml.wml b/modules/bibformat/lib/core/FormatRetriever.inc.shtml.wml
new file mode 100644
index 000000000..a80a61876
--- /dev/null
+++ b/modules/bibformat/lib/core/FormatRetriever.inc.shtml.wml
@@ -0,0 +1,171 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+//==========================================================================
+//  File: FormatRetriever.inc (flexElink core)
+//  Classes:    FormatRetriever
+//              
+//  Requires: 
+//  Included: DB
+//==========================================================================
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: FormatRetriever
+//  Purpose:
+//  Attributes:
+//  Visible Methods:
+//	getInstance ----->
+//	getFormatCode --->	
+//	getParsedFormat ->
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class FormatRetriever {
+
+  var $cache; //Contains parsed formats, indexed by their format name
+
+  function FormatRetriever()
+  {
+    $this->cache=array();
+  }
+
+/*---------------------------------------------------------------------
+  Method: getInstance (static)
+  Description: Gives a reference to an FormatRetriever ensurring that is the 
+  	only one that exists. For doing so, the Singleton pattern is followed. 
+	Call always to this method instead of using the constructor
+  Parameters:
+  Return value: (FormatRetriever) Reference to the unique FormatRetriever 
+		object
+---------------------------------------------------------------------*/
+  function & getInstance()
+  {
+    static $instance;
+
+    if(!isset($instance))
+    {
+      $instance=new FormatRetriever();     
+    }
+
+    return $instance;
+  }
+  
+/*---------------------------------------------------------------------
+  Method: getFormatCode
+  Description: 
+  Parameters:
+  Return value:
+---------------------------------------------------------------------*/
+  function getFormatCode( $fname )
+  {
+    $fname=strtoupper(trim($fname));
+
+    include(DB);
+
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB, $db );
+    $qry="select value from flxFORMATS where name='".addslashes($fname)."'";
+    $qh=mysql_query( $qry, $db );
+    if(mysql_num_rows($qh)<1)
+    {
+      return array(0, "Format '$fname' not found");
+    }
+    $res=mysql_fetch_array( $qh );
+    mysql_close($db);
+    return array(1, $res["value"]);
+  }
+  
+/*---------------------------------------------------------------------
+  Method: getSerializedFormat
+  Description: 
+  Parameters:
+  Return value:
+---------------------------------------------------------------------*/
+  function getSerializedFormat ( $fname )
+  {
+    $fname=strtoupper(trim($fname));
+    if(isset($this->cache[$fname]))
+    {
+      return array(1, $this->cache[$fname]);
+    }
+    else
+    {
+      include(DB);
+
+      $db=mysql_pconnect( $DB_HOST, $DB_USER, $DB_PASSWD );
+      mysql_selectdb( $DB_DB, $db );
+      $qry="select serialized from flxFORMATS where name='".addslashes($fname)."'";
+      $qh=mysql_query( $qry, $db );
+      if(mysql_num_rows($qh)<1)
+      {
+        return array(0, "Format '$fname' not found");
+      }
+      $res=mysql_fetch_array( $qh );
+      $this->cache[$fname]=$res["serialized"];
+      return array(1, $res["serialized"]);
+    }
+  }
+
+/*---------------------------------------------------------------------
+  Method: getParsedFormat
+  Description: 
+  Parameters:
+  Return value:
+---------------------------------------------------------------------*/
+  function getParsedFormat( $fname )
+  {
+    $fname=strtoupper(trim($fname));
+    if($fname=="")
+    {
+      return array(0, "Empty format name");
+    }
+    //First, check if we have the "compiled" format in local cache
+      //If the format is not in chache, we should go for it to the 
+      //  database, parse it, add compiled result (if succesful) to cache
+      //  and return it
+      list($ok, $fcode)=$this->getSerializedFormat( $fname );
+      if($ok)
+      {
+	$tree=unserialize($fcode);
+        if($tree==null)
+        {
+          return array(0, "Bad format");
+        }
+	return array(1, $tree);
+      }
+  }
+
+  function applyFormat( $fname, $intvars )
+  {
+  }
+}
+
+?>
diff --git a/modules/bibformat/lib/core/IntVars.inc.shtml.wml b/modules/bibformat/lib/core/IntVars.inc.shtml.wml
new file mode 100644
index 000000000..bcd4b3051
--- /dev/null
+++ b/modules/bibformat/lib/core/IntVars.inc.shtml.wml
@@ -0,0 +1,586 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+//==========================================================================
+//  File: IntVars.inc (flexElink core)
+//  Classes: IntVarValue
+//  Requires: 
+//  Included:   
+//==========================================================================
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: IntVarValue
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class IntVarValue {
+  var $value; //string
+  var $sfvalues; //array that will contain subfield values for this value; 
+		 //  key will indicate the sfname, and value will be the string
+		 //   value itself
+		 //If a subfield hasn't existed for this value, it won't 
+		 //   appear as a key in the array
+
+  function IntVarValue($value, $sfvalues=null)
+  {
+    $this->value=$value;
+    $this->sfvalues=array();
+    $this->addSFValues($sfvalues);
+  }
+
+  function hasSF( $sfname )
+  {
+    $sfname=strtoupper(trim($sfname));
+    //return in_array($sfname, array_keys($this->sfvalues));
+    return isset($this->sfvalues[$sfname]);
+  }
+
+  function addValue( $value )
+  {
+    //$this->value.=$value;
+    $this->value=$value;
+  }
+
+  function addSFValues( $sfvalues )
+  {
+    if($sfvalues)
+    {
+      foreach($sfvalues as $key=>$val)
+      {
+	$this->addSFValue($key, $val);
+      }
+    }
+  }
+
+  function addSFValue( $sfname, $sfvalue, $ow=true )
+  {
+    $sfname=strtoupper(trim($sfname));
+    if($ow)
+      $this->sfvalues[$sfname]=$sfvalue;
+    else
+    {
+      if(trim($this->sfvalues[$sfname])=="")
+      {
+        $this->sfvalues[$sfname]=$sfvalue;
+      }
+    }
+  }
+
+  function getValue()
+  {
+    return $this->value;
+  }
+
+  function getSFValue( $sfname )
+  {
+    $sfname=strtoupper(trim($sfname));
+    //if(!(in_array($sfname, array_keys($this->sfvalues))))
+    if(!isset($this->sfvalues[$sfname]))
+      return "";
+    else
+      return $this->sfvalues[$sfname];
+  }
+
+}//end class: IntVarValue
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: IntVar
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+class IntVar {
+  var $name; //string
+  var $values; //array that contains references to IntVarValue objects which 
+	       // each value of the variable
+  var $ipos;
+  var $vpos;
+  var $subfields;  //array which will maintain a list of the variable subfields
+
+  function IntVar($name)
+  {
+    $this->name=strtoupper(trim($name));
+    $this->values=array();
+    $this->ipos=0;
+    $this->vpos=0;
+    $this->subfields=array();
+  }
+
+  function vreset()
+  {
+    $this->vpos=0;
+  }
+
+  function hasValue($num=-1)
+  {
+    if($num<0)
+      $num=$this->vpos;
+    return ($this->values[$num]==null);
+  }
+
+  function isEmpty()
+  {
+    return count($this->values);
+  }
+
+  function inextValue()
+  {
+    $this->ipos++;
+  }
+  
+  function vnextValue()
+  {
+    if($this->vpos>=$this->ipos)
+      return 0;
+    $this->vpos++;
+    return !($this->vpos>=$this->ipos);
+
+  }
+
+  function vfirstSFValue($sfname)
+  {
+    $sfname=strtoupper(trim($sfname));
+    //if(!in_array($sfname, $this->subfields))
+    if(!isset($this->subfields[$sfname]))
+    {
+      return 0;
+    }
+    $this->vpos=0;
+    while(!$this->values[$this->vpos]->hasSF( $sfname )) 
+    {
+      $this->vpos++;
+      if($this->vpos>=$this->ipos) 
+        return 0;
+    }
+    return 1;
+  }
+
+  function vnextSFValue( $sfname )
+  {
+    $sfname=strtoupper(trim($sfname));
+    if($this->vpos>=$this->ipos)
+      return 0;
+    $this->vpos++;
+    if($this->vpos>=$this->ipos) 
+      return 0;
+    while(!$this->values[$this->vpos]->hasSF( $sfname )) 
+    {
+      $this->vpos++;
+      if($this->vpos>=$this->ipos) 
+        return 0;
+    }
+    return 1;
+  }
+
+  function updateSF( $sfvalues )
+  {
+    if($sfvalues)
+      foreach(array_keys($sfvalues) as $sfname)
+      {
+	$sfname=strtoupper(trim($sfname));
+	//if(!in_array($sfname, $this->subfields))
+	if(!isset($this->subfields[$sfname]))
+	{
+	  //array_push($this->subfields, $sfname);
+	  $this->subfields[$sfname]=0;
+	}
+      }
+  }
+
+  function newValue( $value, $sfvalues=null)
+  {
+    //NOTE: if this function is called after the creation of the variable, it will
+    //  produce the 0 value to be empty
+    $this->inextValue();
+    $this->addValue( $value, $sfvalues );
+  }
+
+  function addValue( $value, $sfvalues=null )
+  {
+    if(!$this->values[$this->ipos])
+    {
+      $this->values[$this->ipos]=new IntVarValue($value, $sfvalues);
+    }
+    else
+    {
+      $this->values[$this->ipos]->addValue($value);
+      $this->values[$this->ipos]->addSFValues($sfvalues);
+    }
+    $this->updateSF($sfvalues);
+  }
+
+  function getValue( $num=-1 )
+  {
+    if($num<0)
+      $num=$this->vpos;
+    if($this->values[$num]==null)
+      return "";
+    else
+    {
+      $temp=$this->values[$num]->getValue();
+      return $temp;
+    }
+  }
+
+  function getSFValue( $sfname, $num=-1 )
+  {
+    $sfname=strtoupper(trim($sfname));
+    //if(!in_array($sfname, $this->subfields))
+    if(!isset($this->subfields[$sfname]))
+      return "";
+    if($num<0)
+      $num=$this->vpos;
+    if($this->values[$num]==null)
+      return "";
+    else
+    {
+      return $this->values[$num]->getSFValue( $sfname );
+    }
+  }
+
+  function addSFValue( $sfname, $sfvalue, $ow=true )
+  {
+    $sfname=strtoupper(trim($sfname));
+    //if(!in_array($sfname, $this->subfields))
+    if(!isset($this->subfields[$sfname]))
+    {
+      $this->subfields[$sfname]=0;
+    }
+    if(!$this->values[$this->ipos])
+      $this->addValue("");
+    $this->values[$this->ipos]->addSFValue( $sfname, $sfvalue, $ow );
+    $this->subfields[$sfname]++;
+  }
+
+  function lastValue()
+  {
+    if(($this->vpos+1)==$this->ipos)
+      return 1;
+    return 0;
+  }
+
+  function firstValue()
+  {
+    return(($this->ipos>0)&&($this->vpos==0));
+  }
+
+  function countValues()
+  {
+    return count($this->values);
+  }
+
+  function countSFValues( $sfname )
+  {
+    $sfname=strtoupper(trim($sfname));
+    //if(!in_array($sfname, $this->subfields))
+    if(!isset($this->subfields[$sfname]))
+    {
+      return 0;
+    }
+    $counter=0;
+    return $this->subfields[$sfname];
+  }
+
+}//end class: IntVar
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: Vars
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class Vars {
+  var $list;
+
+  function Vars()
+  {
+    $this->list=array();
+  }
+  
+  function add( $var )
+  {
+    if($var!=null)
+    {
+      $this->list[$var->name]=$var;
+    }
+  }
+
+  function remove( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    //if(in_array($varname, array_keys($this->list)))
+    //{
+    $this->list[$varname]=null;
+    unset($this->list[$varname]);
+    //}
+  }
+
+  function addVar( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    //if(!in_array($varname, array_keys($this->list)))
+    if(!isset($this->list[$varname]))
+    {
+      $this->list["$varname"]=new IntVar( $varname );
+    }
+  }
+
+  function varExist( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    //return in_array($varname, array_keys($this->list));
+    return isset($this->list[$varname]);
+  }
+
+  function countValues( $varname, $sf="" )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+    {
+      if(trim($sf)=="")
+      {
+        return $this->list[$varname]->countValues();
+      }
+      return $this->list[$varname]->countSFValues( $sf );
+    }
+    return 0;
+  }
+
+  function addValue( $name, $value )
+  {
+    $temp=explode(".", $name);
+    $varname=strtoupper(trim($temp[0]));
+    if(!$this->varExist( $varname ))
+    {
+      $this->addVar( $varname );
+    }
+    if(count($temp)>1)//add the value to a subfield
+    {
+      $sfname=strtoupper(trim($temp[1]));
+      if($sfname!="")
+        $this->addSFValue($varname, $sfname, $value);
+    }
+    else
+    {
+      $this->addSValue($varname, $value);
+    }
+  }
+
+
+  function addSValue( $varname, $value, $sfvalues=null )
+  {
+    $varname=strtoupper(trim($varname));
+    //if(!in_array($varname, array_keys($this->list)))
+    if(!isset($this->list[$varname]))
+    {
+      return "";
+    }
+    else
+    {
+      $this->list[$varname]->addValue( $value, $sfvalues );
+    }
+  }
+  
+  function addSFValue( $varname, $sfname, $sfvalue, $ow=true )
+  {
+    $varname=strtoupper(trim($varname));
+    //if(!in_array($varname, array_keys($this->list)))
+    if(!isset($this->list[$varname]))
+    {
+      return "";
+    }
+    else
+    {
+      $this->list[$varname]->addSFValue( $sfname, $sfvalue, $ow );
+    }
+  }
+
+  function inextValue($varname)
+  {
+    $varname=strtoupper(trim($varname));
+
+    $exists=0;
+    foreach(array_keys($this->list) as $k)
+    {
+      if("$k"==$varname) 
+      {
+	$exists=1;
+	break;
+      }
+    }
+
+    if($exists)
+    {
+      $this->list[$varname]->inextValue( );
+    }
+  }
+
+  function getValue( $varname, $num=-1 )
+  {
+    $varname=strtoupper(trim($varname));
+    foreach(array_keys($this->list) as $k)
+    {
+      if(strcmp($varname,$k)==0)
+      {
+        return $this->list[$varname]->getValue( $num );
+      }
+    }
+    return "";
+  }
+
+  function getSFValue( $varname, $sfname, $num=-1 )
+  {
+    $varname=strtoupper(trim($varname));
+    if(!isset($this->list[$varname]))
+    {
+      return "";
+    }
+    else
+    {
+      return $this->list[$varname]->getSFValue( $sfname, $num );
+    }
+  }
+
+  function vreset( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+    {
+      $this->list[$varname]->vreset();
+      return 1;
+    }
+    return 0;
+  }
+
+  function lastValue( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+    {
+      return $this->list[$varname]->lastValue();
+    }
+    return 1;
+  }
+  
+  function firstValue( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+    {
+      return $this->list[$varname]->firstValue();
+    }
+    return 0;
+  }
+
+
+  function isEmpty( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+    {
+      return !($this->list[$varname]->isEmpty());
+    }
+    else
+      return 1;
+  }
+
+  function vnextValue( $varname )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+    {
+      return $this->list[$varname]->vnextValue();
+    }
+    return 0;
+  }
+
+  function vnextSFValue( $varname, $sfname )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+      return $this->list[$varname]->vnextSFValue( $sfname );
+  }
+
+  function vfirstSFValue( $varname, $sfname )
+  {
+    $varname=strtoupper(trim($varname));
+    if($this->varExist($varname))
+    {
+      $sfname=strtoupper(trim($sfname));
+      return $this->list[$varname]->vfirstSFValue($sfname);
+    }
+    return 0;
+  }
+
+  function debug()
+  {
+    print '<table width="100%" border="1">'."\n";
+    print "<tr>\n";
+    print "<td>Name</td><td>Values</td><td>Subfield Values</td>\n";
+    print "</tr>\n";
+    foreach($this->list as $name=>$var)
+    {
+      print "<tr>\n";
+      print "<td>$name</td>\n";
+      print '<td><table width="100%">'."\n";
+      $cads=array();
+      foreach($var->values as $value)
+      {
+	print "<tr><td>".$value->getValue()."</td></tr>\n";
+	$cad="";
+        foreach($value->sfvalues as $sfname=>$sfvalue)
+        {
+	  $cad.=$sfname."=".$sfvalue.",";
+        }
+	array_push($cads, $cad);
+      }
+      print "</table></td>\n";
+      print '<td><table width="100%">'."\n";
+      foreach($cads as $cad)
+      {
+	print "<tr><td>".$cad."</td></tr>\n";
+      }
+      print "</table></td>\n";
+      print "</tr>\n";
+    }
+    print "</table>";
+
+  }
+
+}//end class: Vars
+
+?>
diff --git a/modules/bibformat/lib/core/KBRetriever.inc.shtml.wml b/modules/bibformat/lib/core/KBRetriever.inc.shtml.wml
new file mode 100644
index 000000000..5294a753c
--- /dev/null
+++ b/modules/bibformat/lib/core/KBRetriever.inc.shtml.wml
@@ -0,0 +1,140 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+//==========================================================================
+//  File: KBRetriever.inc (flexElink core)
+//  Classes:    KBRetriever
+//  Requires: 
+//  Includes: DB
+//==========================================================================
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: KBRetriever
+//  Purpose: Encapsulates the retrieving of KB values defined in the FlexElink
+//	consiguration DB. It implements an internal cache in order to minimize
+//	database accesses and optimize performace. It follows the Singleton 
+//	pattern for ensuring the existence of a single instance of this class
+//  Attributes:
+//	db -----------> Persistent MySQL connection
+//	cache_tables -> Array for keeping in memory kb name-kb table
+//		correspondence retrieved from the DB
+//	cache_values -> Array for keeping in memory key-value correspondence 
+//		for a certain KB and that have been already etrieved from the DB
+//  Methods:
+//	getInstance (static) --> returns an instance of this class assuring that
+//		is unique
+//	getValue --------------> returns the string value mapped for a given
+//		key value in a given KB configured inseide the flexElink DB. In
+//		case the key or KB don't exist, an empty string is retruned
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class KBRetriever
+  {
+    var $db;
+    var $cache_tables;
+    var $cache_values;
+
+    function KBRetriever()
+    {
+      srand((float)microtime()*10000000);
+      $this->cache_tables=array();
+      $this->cache_values=array();
+
+      include( DB );
+      $this->db=mysql_pconnect( $DB_HOST, $DB_USER, $DB_PASSWD );
+      mysql_selectdb( $DB_DB, $this->db );
+      $qry="select kb_name, kb_table
+            from flxKBS";
+      $qh=mysql_query($qry, $this->db);
+      while($row=mysql_fetch_array($qh))
+      {
+	list($kb_name, $kb_value)=$row;
+	$this->cache_tables["$kb_name"]="$kb_value";
+      }
+    }
+
+/*---------------------------------------------------------------------
+  Method: getInstance
+  Description: 
+  Parameters:
+  Return value: (KBRetriever)
+---------------------------------------------------------------------*/
+    function & getInstance()
+    {
+      static $instance;
+      if(!isset($instance))
+      {
+	$instance=new KBRetriever();
+      }
+      return $instance;
+    }
+    
+/*---------------------------------------------------------------------
+  Method: getValue
+  Description: 
+  Parameters:
+  	kb_name (String) --> KB identifier in flexElink database from which the 
+		value is going to be extracted
+	key (String) ------> Key value to search for inside the KB
+  Return value: (String) Mapped value corresponding to the KB and key values
+  	given
+---------------------------------------------------------------------*/
+    function getValue( $kb_name, $key )
+    {
+      if(!$this->db)
+	return "";
+      $kb_name=strtoupper(trim($kb_name));
+      $kb_table=$this->cache_tables[$kb_name];
+      if(!$kb_table)
+      {
+	return "";
+      }
+      $value=$this->cache_values["$kb_table##$key"];
+      if($value=="")
+      {
+        $key=addslashes($key);
+        $qry="select value from $kb_table where vkey='$key'";  
+        $qh=mysql_query($qry, $this->db);  
+        if(mysql_num_rows($qh)<1)  
+          return "";  
+        list($value)=mysql_fetch_array($qh);  
+	if(count($this->cache_values)>100)
+	{
+	  $k=array_rand($this->cache_values);
+	  unset($this->cache_values["$k"]);
+	}
+	$this->cache_values["$kb_table##$key"]=$value;
+      }
+      return $value;
+    }
+  }
+?>
diff --git a/modules/bibformat/lib/core/LinkResolver.inc.shtml.wml b/modules/bibformat/lib/core/LinkResolver.inc.shtml.wml
new file mode 100644
index 000000000..3f6100285
--- /dev/null
+++ b/modules/bibformat/lib/core/LinkResolver.inc.shtml.wml
@@ -0,0 +1,505 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+//==========================================================================
+//  File: LinkResolver.inc (flexElink core)
+//  Classes:    LinkResolver
+//  Requires: AELExecutor, Vars, IntVar
+//  Included:  EXECUTOR, INTVARS, DB 
+//==========================================================================
+
+  include_once(EXECUTOR);
+  include_once(INTVARS);
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: Link
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class Link {
+
+  var $type;
+  var $params;
+  var $conditions;
+
+  function Link( $type )
+  {
+
+    include( DB );
+
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB, $db );
+
+    $this->params=array();
+    $qry="select pname
+	  from flxLINKTYPEPARAMS
+	  where linktype='".addslashes($type)."'
+	  order by ord";
+    $qh=mysql_query($qry, $db);
+    while($row=mysql_fetch_array($qh))
+    {
+      array_push($this->params, $row[0]);
+    }
+    
+    $this->conditions=array();
+    $qry="select eval_order, el_condition, solvingtype, base_file, base_url
+	  from flxLINKTYPECONDITIONS
+	  where linktype='".$type."'
+	  order by eval_order";
+    $qh=mysql_query($qry);
+    while($row=mysql_fetch_array($qh))
+    {
+      list($eorder, $ccode, $stype, $file, $url)=$row;
+      $d=new LinkConditionData();
+      $d->linktype=$type;
+      $d->eorder=$eorder;
+      $d->code=$ccode;
+      if($stype=="INT")
+      {
+        $d->file=$file;
+        $d->url=$url;
+	$c=new LinkConditionINT( $d );
+      }
+      else
+      {
+	$c=new LinkConditionEXT( $d );
+      }
+      if($c!=null)
+        array_push($this->conditions, $c);
+    }
+    //mysql_close($db);
+  }
+
+  function check( $par_values )
+  {
+    return (count($par_values)==count($this->params));
+  }
+
+  function solve( $par_values )
+  {
+    if(count($par_values)!=count($this->params))
+    {
+      return array(0, "Incorrect number of parameters");
+    }
+    $vars=new Vars();
+    for($i=0;$i<=count($this->params);$i++)
+    {
+      $vars->addValue($this->params[$i], $par_values[$i]);
+    }
+    foreach($this->conditions as $cond)
+    {
+      list($errcode, $link)=$cond->evaluate($vars);
+      if($errcode<0) return array(0, "$link");
+      if($errcode==0) continue;
+      return array(1, $link);
+    }
+    return array(0, "NOT SOLVED");
+  }
+
+}
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkConditionData (non-visible)
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkConditionData{
+  var $linktype;
+  var $eorder;
+  var $code;
+  var $file;
+  var $url;
+
+  function LinkConditionData(){}
+}
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkConditionINT (implements LinkCondition)
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkConditionINT {
+
+  var $condition;
+  var $actions;
+  var $formats;
+  var $exec;
+  var $file_path;
+  var $url_path;
+
+  function LinkConditionINT( $data )
+  {
+    if($data==null) return null;
+    $this->exec=new AELExecutor();
+    list($ok, $msg)=$this->exec->checkCode( $data->code );
+    if(!$ok) return null;
+    $this->condition=$msg;
+    $this->file_path=$data->file;
+    $this->url_path=$data->url;
+    $this->actions=array();
+    $this->formats=array();
+
+    include( DB );
+
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB, $db );
+    $qry="select f.name, f.text, f.extensions
+	  from flxFILEFORMATS f, flxLINKTYPECONDITIONSFILEFORMATS cf
+	  where cf.linktype='".$data->linktype."'
+	  and cf.eval_order='".$data->eorder."'
+	  and f.name=cf.fname";
+    $qh=mysql_query($qry, $db);
+    while($row=mysql_fetch_array($qh))
+    {
+      $d=new LinkFileFormatData();
+      list($d->name, $d->description, $ext)=$row;
+      $d->extensions=array();
+      if(trim($ext)!="")
+	$d->extensions=explode("|", $ext);
+      $format=new LinkFileFormat( $d );
+      if($format==null) continue;
+      array_push($this->formats, $format);
+    }
+
+
+    $qry="select el_code
+          from flxLINKTYPECONDITIONSACTIONS
+	  where linktype='".$data->linktype."'
+          and eval_order=".$data->eorder."
+          order by apply_order";
+    $qh=mysql_query($qry, $db);
+    while($row=mysql_fetch_array($qh))
+    {
+      $d=new LinkActionData();
+      list($d->code)=$row;
+      $action=new LinkAction($d);
+      if(!$action) continue;
+      array_push($this->actions, $action);
+    }
+    mysql_close($db);
+  }
+
+  function evaluate( $vars )
+  {
+    list($ok, $res)=$this->exec->execTree( $this->condition, $vars );
+    if(!$ok) return array(-1, "Error evaluating condtion: $res");
+    if($res=="FALSE") return array(0, "FALSE");
+    if(count($this->actions)==0) return array(0, "NO ACTIONS");
+    $v=new IntVar("LINK");
+    $generated=false;
+    foreach($this->actions as $action)
+    {
+      list($ok, $res)=$action->getResult( $vars );
+      if(!$ok) return array(-1, "Error evaluating action: $res");
+      $file=$this->file_path.$res;
+      $url=$this->url_path.$res;
+      if(count($this->formats)>0)
+      {
+	foreach($this->formats as $format)
+	{
+	  foreach($format->composeFilePaths( $file, $url ) as $i)
+	  {
+	    list($full_file, $full_url)=$i;
+            $testfh=@ fopen($full_file, "r");
+            if($testfh)
+            {
+	      $generated=true;
+	      fclose($testfh);
+	      $v->addValue($full_url);
+              $v->addSFValue("url", $full_url);
+              $v->addSFValue("file", $full_file);
+              $v->addSFValue("format_id", $format->getName());
+              $v->addSFValue("format_desc", $format->getDesc());
+	      $v->inextValue();
+            }
+	  }
+	}
+      }
+      if($generated===true) break;
+      $testfh=@ fopen($file, "r");
+      if($testfh)
+      {
+	$generated=true;
+        fclose($testfh);
+        $v->addValue($url);
+        $v->addSFValue("url", $url);
+        $v->addSFValue("file", $url);
+	break;
+      }
+    }
+    if($generated)
+      return array(1, $v);
+    return array(0, "NO LINK");
+
+  }
+}
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkFileFormatData (non-visible)
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkFileFormatData {
+
+  var $name;
+  var $description;
+  var $extensions;
+
+  function LinkFileFormatData(){}
+}
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkFileFormat
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkFileFormat {
+
+  var $description;
+  var $name;
+  var $extensions;
+  
+  function LinkFileFormat( $data )
+  {
+    if($data==null) return null;
+    $this->name=$data->name;
+    $this->description=$data->description;
+    $this->extensions=$data->extensions;
+  }
+
+  function getName()
+  {
+    return $this->name;
+  }
+
+  function getDesc()
+  {
+    return $this->description;
+  }
+
+  function composeFilePaths( $base_path, $base_url )
+  {
+    $res=array();
+    foreach($this->extensions as $ext)
+    {
+      $ext=trim($ext);
+      if($ext=="") continue;
+      array_push( $res, array($base_path.".".$ext, $base_url.".".$ext) );
+    }
+    return $res;
+  }
+}
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkConditionEXT (implements LinkCondition)
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkConditionEXT {
+  
+  var $condition;
+  var $action;
+  var $exec;
+
+  function LinkConditionEXT( $data )
+  {
+    if($data==null) return null;
+    $this->exec=new AELExecutor();
+    list($ok, $msg)=$this->exec->checkCode( $data->code );
+    if(!$ok) return null;
+    $this->condition=$msg;
+    
+    include( DB );
+
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB, $db );
+    $qry="select el_code
+	  from flxLINKTYPECONDITIONSACTIONS
+	  where linktype='".$data->linktype."'
+	  and eval_order=".$data->eorder."
+	  order by apply_order";
+    $qh=mysql_query($qry, $db);
+    $d=new LinkActionData();
+    list($d->code)=mysql_fetch_array($qh);
+    mysql_close($db);
+    if(!$d->code) return null;
+    if(!($this->action=new LinkAction($d))) return null;
+  }
+
+  function evaluate( $vars )
+  {
+    list($ok, $res)=$this->exec->execTree( $this->condition, $vars );
+    if(!$ok) return array(-1, "Error evaluating condtion: $res");
+    if($res=="FALSE") return array(0, "FALSE");
+    list($ok, $res)=$this->action->getResult( $vars );
+    if(!$ok) return array(-1, "Error evaluating action: $res");
+    $v=new IntVar("LINK");
+    $v->addValue($res);
+    $v->addSFValue("url", "$res");
+    $v->inextValue();
+    return array(1, $v);
+  }
+
+}
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkActionData (non-visible)
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkActionData {
+  var $code;
+
+  function LinkActionData(){}
+}
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkAction
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkAction {
+  
+  var $action;
+  var $exec;
+
+  function LinkAction($data)
+  {
+    if($data==null) return null;
+    $this->exec=new AELExecutor();
+    list($ok, $msg)=$this->exec->checkCode( $data->code );
+    if(!$ok) return null;
+    $this->action=$msg;
+  }
+
+  function getResult($vars)
+  {
+    return $this->exec->execTree( $this->action, $vars );
+  }
+
+}
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: LinkResolver
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class LinkResolver {
+
+  var $db;
+  var $a;
+
+  var $links;
+
+  function LinkResolver() {
+    $this->links=array();
+  }
+
+  function & getInstance()
+  {
+    static $instance;
+    if(!isset($instance))
+    {
+      $instance=new LinkResolver();
+    }
+    return $instance;
+  }
+
+  function getLink($type)
+  {
+    $type=strtoupper(trim($type));
+    if(isset($this->links[$type]))
+    {
+      return $this->links[$type];
+    }
+    else
+    {
+      include( DB );
+
+      $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+      mysql_selectdb( $DB_DB, $db );
+      $qry="select linktype
+	    from flxLINKTYPES
+	    where linktype='$type'";
+      $qh=mysql_query($qry);
+      if(mysql_num_rows($qh)!="1") return null;
+      mysql_close($db);
+      $link=new Link($type);
+      if($link==null) return null;
+      $this->links[$type]=$link;
+      return $link;
+    }
+  }
+
+  function destroy()
+  {
+    //mysql_close( $this->db );
+  }
+
+  function checkLink( $linktype, $params ) { 
+    $l=$this->getLink( $linktype );
+    if($l==null) return 0;
+    return $l->check($params);
+  }
+
+  function solveLink( $linktype, $params ) {
+    $l=$this->getLink($linktype);
+    if($l==null) return array(0, "Incorrect link");
+    list($ok, $res)=$l->solve($params);
+    if(!$ok) return array(0, $res);
+    return array(1, $link_url, $res);
+  }
+
+}//end class
+
+?>
diff --git a/modules/bibformat/lib/core/Makefile.am b/modules/bibformat/lib/core/Makefile.am
new file mode 100644
index 000000000..5e09deee1
--- /dev/null
+++ b/modules/bibformat/lib/core/Makefile.am
@@ -0,0 +1,29 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+FILESWML=$(wildcard *.wml)
+phplibdir=$(libdir)/php/cdsware/bibformat/core
+phplib_DATA=$(FILESWML:.wml=)
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(wildcard *.shtml) *~ *.tmp
+
+%.shtml: %.shtml.wml ../../../../config/config.wml ../../../../config/configbis.wml ../../../../config/cdspage.wml
+	$(WML) -o $@ $<
diff --git a/modules/bibformat/lib/core/OAISpecExtractor.inc.shtml.wml b/modules/bibformat/lib/core/OAISpecExtractor.inc.shtml.wml
new file mode 100644
index 000000000..750bd8707
--- /dev/null
+++ b/modules/bibformat/lib/core/OAISpecExtractor.inc.shtml.wml
@@ -0,0 +1,340 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+//==========================================================================
+//  File: OAISpecExtractor.inc (flexElink core)
+//  Classes:    OAIVarExtractor
+//  Requires: Vars
+//  Included:   core/IntVars.inc, DB
+//==========================================================================
+
+  include_once(INTVARS);
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: OAIVarExtractor
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class OAIVarExtractor {
+    var $xml_parser;
+    var $doc;
+    var $db;
+    var $type;
+    var $errortext;
+    var $intvars;
+    var $CFcache;
+    var $MFcache;
+    var $SFcache;
+    
+    function OAIVarExtractor()
+    {
+      include( DB );
+
+      $this->db=$db=mysql_pconnect( $DB_HOST, $DB_USER, $DB_PASSWD );
+      if($this->db)
+	mysql_selectdb( $DB_DB, $this->db );
+      $this->errortext="";
+      $this->CFcache=array();
+      $this->MFcache=array();
+      $this->SFcache=array();
+    }
+
+    function destroy()
+    {
+    }
+
+    function getError()
+    {
+      return $this->errortext;
+    }
+    
+    function inCFcache( $tag )
+    {
+      return $this->CFcache["$tag"];
+    }
+
+    function addCFcache($tag, $vars)
+    {
+      $this->CFcache["$tag"]=$vars;
+    }
+
+    function inMFcache($id, $i1, $i2)
+    {
+      return $this->MFcache["$id::$i1::$i2"];
+    }
+    
+    function addMFcache($id, $i1, $i2, $vars)
+    {
+      $this->MFcache["$id::$i1::$i2"]=$vars;
+    }
+    
+    function inSFcache($varname, $label)
+    {
+      return $this->SFcache["$varname::$label"];
+    }
+    
+    function addSFcache($varname, $label, $vars)
+    {
+      $this->SFcache["$varname::$label"]=$vars;
+    }
+
+    function getVarfromCF( $tag )
+    {
+      $vars=$this->inCFcache( $tag );
+      if($vars!=null)
+        return $vars;
+      $tag=addslashes($tag);
+      $qry="select varname, mvalues from flxXMLMARCEXTRULES where type='".
+            addslashes($this->type)."' and att_id='$tag'
+            and ftype='CONTROLFIELD'";
+      $res=mysql_query($qry, $this->db);
+      $vars=array();
+      while($row=mysql_fetch_array($res))
+      {
+        array_push( $vars, array($row["varname"], $row["mvalues"]) );
+      }
+      $this->addCFcache( $tag, $vars );
+      return $vars;
+    }
+
+    function getVarfromMF( $id, $i1, $i2 )
+    {
+      $vars=$this->inMFcache( $id, $i1, $i2 );
+      if($vars!=null)
+	return $vars;
+      $id=addslashes($id);
+      $i1=addslashes($i1);
+      $i2=addslashes($i2);
+      $qry="select varname, mvalues from flxXMLMARCEXTRULES where type='".
+	 addslashes($this->type)."' and att_id='".addslashes($id).
+         "' and att_i1='".addslashes($i1)."' and att_i2='".addslashes($i2)."'";
+      $res=mysql_query($qry, $this->db);
+      $vars=array();
+      while($row=mysql_fetch_array($res))
+      {
+	array_push( $vars, array($row["varname"], $row["mvalues"]) );
+      }
+      $this->addMFcache( $id, $i1, $i2, $vars );
+      return $vars;
+    }
+
+    function getVarfromSF( $varname, $label )
+    {
+      $vars=$this->inSFcache( $varname, $label );
+      if($vars!=null)
+	return $vars;
+      $varname=addslashes($varname);
+      $label=addslashes($label);
+      $qry="select sfname from flxXMLMARCEXTRULESUBFIELDS where type='".
+	 addslashes($this->type)."' and varname='".addslashes($varname).
+         "' and att_label='".addslashes($label)."'";
+      $res=mysql_query($qry, $this->db);
+      $vars=array();
+      while($row=mysql_fetch_array($res))
+      {
+	array_push( $vars, $row["sfname"] );
+      }
+      $this->addSFcache( $varname, $label, $vars );
+      return $vars;
+    }
+
+    function getVars( $type, $doc )
+    {
+      $this->type=strtoupper(trim($type));
+      if(!$this->db)
+      {
+	$this->errortext="Invalid database resource";
+	return null;
+      }
+      $this->intvars=new Vars();
+      $this->insideCF=0;
+      $this->insideMF=0;
+      $this->insideSF=0;
+      $this->ignore=0;
+      $this->doc=$doc;
+      $this->xml_parser=xml_parser_create();
+      xml_set_object($this->xml_parser, &$this);
+      xml_parser_set_option($this->xml_parser, XML_OPTION_CASE_FOLDING, 1);
+      xml_set_element_handler($this->xml_parser, "startElement", "endElement");
+      xml_set_character_data_handler($this->xml_parser, "characterData");
+      if(!xml_parse($this->xml_parser, $doc, 1))
+      {
+        $this->errortext=sprintf("XML error: %s at line %d",
+		xml_error_string(xml_get_error_code($this->xml_parser)),
+		xml_get_current_line_number($this->xml_parser));
+        xml_parser_free($this->xml_parser);
+        return null;
+      }
+      xml_parser_free($this->xml_parser);
+      return $this->intvars;
+    }
+
+    function startElement($parser, $name, $attrs)
+    {
+      if($this->ignore>0)
+      {
+	$this->ignore++;
+	return;
+      }
+      if($name=="CONTROLFIELD")
+      {
+        if($this->insideCF)
+        {
+          $this->ignore--;
+          return;
+        }
+        $this->insideCF=1;
+        $this->tempCF="";
+        $this->varsCF=$this->getVarfromCF( $attrs["TAG"] );
+      }
+      elseif($name=="DATAFIELD")
+      {
+	//If we are already processing a VARFIELD element and we find another
+	//	one inside, it's a wrong XML, so we just ignore until the wrong
+	//	element and all it contains is finished
+	if( ($this->insideMF) || ($this->insideCF) )
+	{
+	  $this->ignore++;
+	  return;
+	}
+	$this->insideMF=1;
+	$this->tempMF="";
+	$this->varsMF=$this->getVarfromMF(
+		$attrs["TAG"], $attrs["IND1"], $attrs["IND2"]);
+      }
+      elseif($name=="SUBFIELD")
+      {
+	//When we find a SUBFIELD element, we need to check that it's contained
+	//  by a VARFIELD one. It's also a wrong XML if we find another SUBFIELD
+	//  tag inside it
+	if((!$this->insideMF)||($this->insideSF))
+	{
+	  $this->ignore++;
+	  return;
+	}
+	$this->insideSF=1;
+	$this->tempSF="";
+	$this->labelSF=$attrs["CODE"];
+      }
+      //For other types of TAGs we don't care, because is supposed that the
+      //  input will be OK
+      else
+      {
+	if($name!="RECORD")
+	  $this->ignore++;
+      }
+
+    }
+
+    function endElement($parser, $name)
+    {
+      if($this->ignore>0)
+      {
+	$this->ignore--;
+	return;
+      }
+      if($name=="CONTROLFIELD")
+      {
+        $this->insideCF=0;
+        if(($this->varsCF!=null)&&(count($this->varsCF)>0))
+        {
+          foreach($this->varsCF as $var)
+          {
+            list($varname, $mvalues)=$var;
+            $this->intvars->addValue( $varname, $this->tempCF );
+            if($mvalues=="S")
+              $this->intvars->inextValue( $varname );
+          }
+        }
+      }
+      //As the XML parser will check the validness of the XML, there is no
+      //  possibility to find a closing DATAFIELD before a closing SUBFIELD, so
+      //  we don't need to check it
+      elseif($name=="DATAFIELD")
+      {
+	$this->insideMF=0;
+        if(($this->varsMF!=null)&&(count($this->varsMF)>0))
+	{
+	  foreach($this->varsMF as $var)
+	  {
+            list($varname, $mvalues)=$var;
+	    $this->intvars->addValue( $varname, $this->tempMF );
+            if($mvalues=="S")
+	      $this->intvars->inextValue( $varname );
+          }
+	}
+
+      }
+      elseif($name=="SUBFIELD")
+      {
+	$this->insideSF=0;
+        if(($this->varsMF!=null)&&(count($this->varsMF)>0))
+	{
+	  foreach($this->varsMF as $var)
+	  {
+            list($varname, $mvalues)=$var;
+	    $this->intvars->addVar($varname);
+            $ow=true;
+            if($mvalues!="S") $ow=false;
+	    $sfs=$this->getVarfromSF( $varname, $this->labelSF );
+	    if(($sfs!=null)&&(count($sfs)>0))
+	    {
+	      foreach($sfs as $sfname)
+	      {
+	        $this->intvars->addSFValue( $varname, $sfname, $this->tempSF, $ow );
+	      }
+	    }
+	  }
+	}
+      }
+    }
+
+    function characterData($parser, $data)
+    {
+      if($this->ignore>0)
+	return;
+      if($this->insideCF)
+      {
+        $this->tempCF.=$data;
+      }
+      elseif($this->insideMF)
+      {
+	if($this->insideSF)
+	  $this->tempSF.=$data;
+        else
+	  $this->tempMF.=$data;
+      }
+    }
+
+  }
+?>
diff --git a/modules/bibformat/lib/core/Processor.inc.shtml.wml b/modules/bibformat/lib/core/Processor.inc.shtml.wml
new file mode 100644
index 000000000..9aa65f1a7
--- /dev/null
+++ b/modules/bibformat/lib/core/Processor.inc.shtml.wml
@@ -0,0 +1,327 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+//==========================================================================
+//  File: Processor.inc (flexelink core)
+//  Classes: Processor
+//  Requires: AELExecutor, LinkResolver, Node, AVarSpec
+//  Included: 	core/AEvalLan.inc
+//		core/LinkResolver.inc
+//		core/TreeNode.inc
+//		core/ASpec.inc	
+//		dbparams.inc
+//==========================================================================
+
+  include_once( EXECUTOR );
+  include_once( LINK_RESOLVER );
+
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+class BehaviorData {
+  var $name;
+
+  function BehaviorData(){}
+}  
+
+class NBehavior {
+
+  var $conditions;
+
+  function NBehavior( $data )
+  {
+    include(DB);
+
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB, $db );
+    $qry="select eval_order, el_condition
+	  from flxBEHAVIORCONDITIONS
+	  where otype='".$data->name."'
+	  order by eval_order";
+    $qh=mysql_query($qry, $db);
+    $this->conditions=array();
+    while($row=mysql_fetch_array($qh))
+    {
+      list($eorder, $ccond)=$row;
+      $d=new BehCondData();
+      $d->behname=$data->name;
+      $d->eorder=$eorder;
+      $d->code=$ccond;
+      $bc=new BehCondition( $d );
+      if($bc!=null)
+      {
+	array_push($this->conditions, $bc);
+      }
+    }
+    //mysql_close($db);
+  }
+
+  function getResult( $vars, $record="" )
+  {
+    foreach($this->conditions as $condition)
+    {
+      if($condition==null) continue;
+      list($errcode, $str)=$condition->evaluate( $vars );
+      if($errcode<0) return array(0, $str);
+      if($errcode==1) return array(1, $str);
+    }
+    return array(1, "");
+  }
+  
+}
+
+class IBehavior {
+  
+  var $conditions;
+
+  function IBehavior( $data )
+  {
+    include(DB);
+
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB, $db );
+    $qry="select eval_order, el_condition
+	  from flxBEHAVIORCONDITIONS
+	  where otype='".$data->name."'
+	  order by eval_order";
+    $qh=mysql_query($qry, $db);
+    $this->conditions=array();
+    while($row=mysql_fetch_array($qh))
+    {
+      list($eorder, $ccond)=$row;
+      $d=new BehCondData();
+      $d->behname=$data->name;
+      $d->eorder=$eorder;
+      $d->code=$ccond;
+      $bc=new BehCondition( $d );
+      if($bc!=null)
+	array_push($this->conditions, $bc);
+    }
+    //mysql_close($db);
+  }
+  
+  function getResult( $vars, $record="" )
+  {
+    $str="";
+    foreach($this->conditions as $condition)
+    {
+      if($condition==null) continue;
+      list($errcode, $str)=$condition->evaluate( $vars );
+      if($errcode<0) return array(0, $str);
+      if($errcode==1) break;
+    }
+    $record=trim($record);
+    $end_tag="</record>";
+    $result=substr($record, 0, strlen($record)-strlen($end_tag)).$str.$end_tag;
+    return array(1, $result);
+  }
+
+}
+
+class BehCondData {
+  var $behname;
+  var $eorder;
+  var $code;
+
+  function BehCondData(){}
+}
+
+class BehCondition {
+
+  var $exec;
+  var $condition;
+  var $actions;
+
+  function BehCondition( $data )
+  {
+    $this->exec=new AELExecutor();
+    $this->condition=null;
+    $this->actions=array();
+    list($ok, $msg)=$this->exec->checkCode( $data->code );
+    if(!$ok) return null;
+    $this->condition=$msg;
+
+    include( DB );
+
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB, $db );
+    $qry="select el_code
+	  from flxBEHAVIORCONDITIONSACTIONS
+	  where otype='".$data->behname."'
+	  and eval_order=".$data->eorder."
+	  order by apply_order";
+    $qh=mysql_query($qry, $db);
+    while($row=mysql_fetch_array($qh))
+    {
+      list($ok, $msg)=$this->exec->checkCode($row[0]);
+      if($ok)
+      {
+	array_push($this->actions, $msg);
+      }
+    }
+    mysql_close($db);
+  }
+
+  function evaluate( $vars )
+  {
+    list($ok, $res)=$this->exec->execTree( $this->condition, $vars );
+    if(!$ok) return array(-1, "Error executing action: $res");
+    if($res!="TRUE") return array(0, "FALSE");
+    $str="";
+    foreach($this->actions as $action)
+    {
+      list($ok, $res)=$this->exec->execTree( $action, $vars);
+      if(!$ok) continue;
+      $str.=$res;
+    }
+    return array(1, $str);
+  }
+
+}
+
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: Processor
+//  Purpose: This is a wrapper class for the FlexElink formatting process.
+//	It allows to apply a certaint pre-configured (in the Fxk config DB)
+//	behavior with a set of internal variables from a single record, and 
+//	gives back resulting string. There is a (private) method for each 
+//	different type of behavior that the processor has to interpret: NORMAL,
+//	IENRICH. It's able to apply corresponding method for each behavior type 
+//  (Visible) Atributes: all private
+//  (Visible) Methods: 
+//	         constructor --> initializes processor 
+//		 getOutput(intvars, otype, xml_doc*) ----> applies "otype"
+//			pre-configured behavior from the configuration DB 
+//			with the internal vars "intvars" for obtaining the
+//			resulting string.  
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  
+  class Processor {
+    var $behaviors;
+
+//---------------------------------------------------------------------------
+//  Method: CONSTRUCTOR Processor (public)
+//  Description: Initializes class atributes needed to function. Creates the
+//	link to the config DB; the instance of the code executor and link 
+//	resolver; sets the link resolver for the code executor(in order to
+//	enable link resolution on the executor)
+//  Params:
+//---------------------------------------------------------------------------
+    function Processor()
+    {
+      $this->behaviors=array();
+    }
+
+//---------------------------------------------------------------------------
+//  Method: DESTRUCTOR destroy (public)
+//  Description:
+//  Params:
+//---------------------------------------------------------------------------
+    function destroy() 
+    {
+    }
+
+    function getBehavior( $behname )
+    {
+      $behname=strtoupper(trim($behname));
+      if(trim($behname)=="") return null;
+      if(isset($this->behaviors[$behname]))
+      {
+	return $this->behaviors[$behname];
+      }
+      else
+      {
+	include( DB );
+
+	$db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+	mysql_selectdb( $DB_DB, $db );
+	$qry="select type
+	      from flxBEHAVIORS
+	      where name='$behname'";
+        $qh=mysql_query($qry, $db);
+	if(mysql_num_rows($qh)!=1)
+	  $res=null;
+        else
+	{
+	  list($type)=mysql_fetch_array($qh);
+	  $d=new BehaviorData();
+	  $d->name=$behname;
+	  if($type=="NORMAL")
+	  {
+	    $res=new NBehavior( $d );
+	  }
+	  elseif($type=="IENRICH")
+	  {
+	    $res=new IBehavior( $d );
+	  }
+
+	  if($res!=null)
+	  {
+	    $this->behaviors[$behname]=$res;
+          }
+        }
+//	mysql_close($db);
+	return $res;
+
+      }
+    }
+
+    
+//---------------------------------------------------------------------------
+//  Method: getOutput (public)
+//  Description: This method takes a behavior identifier as parameter, 
+//	retrieves it from the config DB, checks the type of behavior, applies 
+//	in each case corresponding private method, and gives the result or 
+//	an error if something didn't go well.
+//  Params: 
+//	intvars -> (Vars) reference to the internal vars collection extracted
+//		from the record over which the behavior has to be applied
+//	otype ---> (string) Output type or behavior identifier to apply and 
+//		that has to be pre-configure in the config DB
+//	xml_doc -> (string) It's optional. In case of specified, it contains the
+//		XML document of the record being processed (mandatory for
+//		enriching behavior types)
+//  Return value: (array) As result a two-element array is given; first value
+//	is an error code an is 1 when the behavior was correctly applied; in
+//	this case the second value contains the resulting string. First array
+//	value can be also 0 when some error occured while applying behavior; 
+//	in this case, the second value will contain a string with the error
+//	description
+//---------------------------------------------------------------------------
+    function getOutput( $intvars, $otype, $xml_doc="" )
+    {
+      $b=$this->getBehavior( $otype );
+      if($b==null) return array(0, "Undefined output type $otype");
+      list($ok, $msg)=$b->getResult($intvars, $xml_doc);
+      if(!$ok) return array(0, "Errors evaluating output type $otype: $msg");
+      return array(1, $msg);
+    }
+}
+?>
diff --git a/modules/bibformat/lib/core/RecordSeparator.inc.shtml.wml b/modules/bibformat/lib/core/RecordSeparator.inc.shtml.wml
new file mode 100644
index 000000000..48e828e5f
--- /dev/null
+++ b/modules/bibformat/lib/core/RecordSeparator.inc.shtml.wml
@@ -0,0 +1,149 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+//==========================================================================
+//  File: RecordSeparator.inc (flexElink core)
+//  Classes:    XMLSimpleRecSeparator
+//  Requires: 
+//  Included:   
+//==========================================================================
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: XMLSimpleRecSeparator 
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//This is the base class for record separation. For each different type
+//  of input that requires a special record separation, this class can be
+//  extended keeping the same interface:
+//	constructor(file="") --> initialize the object and test input file 
+//				accesibility. When file=="" standard input is
+//				used
+//	getRecord():array----> returns an array which contains, as first element
+//		a logic indicating if everything is OK or not and as second
+//		element a string containing the next record read from the input,
+//		in case of success, or a error message. When eof is reached "" 
+//		is returned.
+//class RecSeparator {
+//  function RecSeparator( $file="")
+//  function getRecord()
+//}
+
+//Class for separation of XML simple inputs (one tag marks the record)
+class XMLSimpleRecSeparator {
+  var $fh; //Input file handler
+  var $tag; //XML element tag which marks the record
+  var $readnext;
+
+  function XMLSimpleRecSeparator( $ifile="" )
+  {
+    $this->tag="";
+  }
+
+  function setIFile( $ifile="" )
+  {
+    $this->readnext="";
+    //This method doesn't check if the file is correct or not, it should be 
+    //  checked outside
+    if(trim($ifile)=="")
+    {
+      $ifile="php://stdin";
+    }
+
+    $this->fh=@fopen($ifile, "r");
+    if(!$this->fh)
+      return "Input file handler incorrect";
+    
+    return "";
+  }
+
+  function setTag( $tag )
+  {
+    $this->tag=strtoupper(trim($tag));
+  }
+
+  function getRecord()
+  {
+    if($this->tag=="")
+      return "";
+    if(!$this->fh)
+      return "";
+    //Everything OK. Let's start
+    $grab=0;//Flag which indicates that the start tag has been found
+    $record="";//Contains the record string 
+    while(!feof($this->fh))
+    {
+      if($this->readnext!="")
+      {
+	$line=$this->readnext;
+	$this->readnext="";
+      }
+      else
+	$line=fgets($this->fh, 1024);
+      if($grab)
+      {
+	//Look if in the line there is the closing tag
+	if(ereg("(.*</[ \t]*".$this->tag."[^>]*>)(.*)", strtoupper($line), $res))
+	{
+	  $record.=substr($line, 0, strlen($res[1]));
+	  $this->readnext=substr($line, strlen($res[1]));
+	  break;
+	}
+	else
+	{
+          $record.=$line;
+	}
+      }
+      else
+      { 
+	//Look if in the line there is the starting tag
+	if(ereg("[^<]*(<[ \t]*".$this->tag."[^>]*>.*)", strtoupper($line), $res))
+	{
+	  $record.=substr($line, strlen($line)-strlen($res[1]));
+	  $grab=1;
+	}
+      }
+    }
+    if(feof($this->fh)&&($record==""))
+    {
+      fclose($this->fh);
+    }
+
+    // decode utf8 to iso-8859-1
+    $record = utf8_decode($record);
+    
+    return $record;
+  }
+}
+
+?>
diff --git a/modules/bibformat/lib/core/Timing.inc.shtml.wml b/modules/bibformat/lib/core/Timing.inc.shtml.wml
new file mode 100644
index 000000000..52e162e78
--- /dev/null
+++ b/modules/bibformat/lib/core/Timing.inc.shtml.wml
@@ -0,0 +1,75 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+  class Timing {
+    var $timing_list;
+
+    function Timing()
+    {
+      $this->timing_list=array();
+    }
+
+    function start( $tname )
+    {
+      $tname=strtoupper(trim($tname));
+      list($sec, $usec)=explode(" ", microtime());
+      $this->timing_list[$tname]=(float)$sec+(float)$usec;
+      return $this->timing_list[$tname];
+    }
+
+    function end( $tname )
+    {
+      $tname=strtoupper(trim($tname));
+      if(in_array($tname, array_keys($this->timing_list)))
+      {
+        list($sec, $usec)=explode(" ", microtime());
+        $endts=(float)$sec+(float)$usec;
+        $this->timing_list[$tname]= $endts-$this->timing_list[$tname];
+      }
+      else
+      {
+        $this->timing_list[$tname]=-1;
+      }
+      return $this->timing_list[$tname];
+    }
+
+    function debug()
+    {
+      print "<font size=\"2\" color=\"red\"><u>Timing</u></font><br>";
+      foreach($this->timing_list as $tsname=>$tsvalue)
+      {
+	if($tsvalue>0)
+	{
+	  print "<font size=\"2\" color=\"red\">[$tsname]=$tsvalue sec</font><br>";
+	}
+      }
+    }
+
+  }
+?>
diff --git a/modules/bibformat/lib/core/TreeNode.inc.shtml.wml b/modules/bibformat/lib/core/TreeNode.inc.shtml.wml
new file mode 100644
index 000000000..06f1dcfd4
--- /dev/null
+++ b/modules/bibformat/lib/core/TreeNode.inc.shtml.wml
@@ -0,0 +1,330 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+//==========================================================================
+//  File: TreeNode.inc (flexElink core)
+//  Classes:    Condition
+//              Atribs
+//		Node
+//  Requires:
+//  Included:   
+//==========================================================================
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: Condition
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class Condition {
+    var $atname;
+    var $atvalue;
+
+    function Condition( $atname, $atvalue="" )
+    {
+      $this->atname=$atname;
+      $this->atvalue=trim($atvalue);
+    }
+
+    function pass( $atname, $atvalue="" )
+    {
+      $atvalue=trim($atvalue);
+      //$atname=strtoupper( trim( $atname ) );
+      $atname=trim( $atname );
+      return (($atname==$this->atname) && ($atvalue==$this->atvalue));
+    }
+    
+  }
+
+  
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: Atribs
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class Atribs {
+    var $name="";
+    var $vars;
+
+    function Atribs($name, $var="")
+    {
+      $this->name=$name;
+      $this->vars=array();
+      if($var!="")
+        $this->addVar($var);
+    }
+
+    function addVar($varname)
+    {
+      if(!in_array(trim($varname), array_values($this->vars)))
+        array_push($this->vars, trim($varname));
+    }
+  }
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: Node
+//  Purpose:
+//  Attributes:
+//  Methods:
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class Node {
+    var $tag; //string contining the tag name
+    var $vars; //array which contains variable to set up with 
+		   //  the text of the tag
+    var $sons; //array which will keep all the references to son nodes 
+    var $parent; //reference to the parent node
+    var $atribs;  //array contianing references to atribute objects
+    var $conditions; //array containing conditions needed for entering
+			// this node
+    
+    function &Node($tagname, & $parent)
+    {
+      $this->tag=trim($tagname);
+      $this->parent= & $parent;
+      $this->sons=array();
+      $this->atribs=array();
+      $this->vars=array();
+      $this->conditions=array();
+
+      return $this;
+    }
+
+    function addAtrib( $name, $intvar)
+    {
+      //$atribname=strtoupper(trim($name));
+      $atribname=trim($name);
+      $intvar=strtoupper(trim($intvar));
+      if(!in_array($atribname, array_keys($this->atribs)))
+        $this->atribs[ $atribname ]=new Atribs( $atribname );
+      $this->atribs[ $atribname ]->addVar( $intvar );
+    }
+
+    function addCondition( $atname, $atvalue="" )
+    {
+      //$atname=strtoupper(trim($atname));
+      $atname=trim($atname);
+      //As XML only allows an attribute to appear once in each TAG, 
+      //  the condition list with more than one attrib that has the same 
+      //  name, won't make sense, so the criteria for looking if a
+      //  condition is already inserted is looking for the attrib name.
+      //In case various attrib values are specified for one attribute name,
+      //  the first one will remain
+      if(!in_array($atname, array_keys($this->conditions)))
+	$this->conditions[ $atname ]=new Condition( $atname, $atvalue );
+    }
+
+    function & son( $name, $conditions=null )
+    {
+      $idx=0;
+      while($idx<=(count($this->sons)-1))
+      {
+        $temp=& $this->sons[$idx];
+	if($temp->matchId( $name, $conditions ))
+	{
+	  return $temp;
+        }
+	$idx++;
+      }
+      return null;
+    }
+
+    function & atrib($name)
+    {
+      //return ($this->atribs[strtoupper(trim($name))]);
+      return ($this->atribs[trim($name)]);
+    }
+
+    function matchId ( $tagname, $conditions=null )
+    {
+      //$tagname=trim(strtoupper($tagname));
+      $tagname=trim($tagname);
+      //First let's see if tag names match
+      if ( $tagname!=$this->tag ) return 0;
+      if ( $conditions==null )
+	$conditions=array();
+      $acond=array();
+      foreach($conditions as $key=>$value)
+      {
+	//$acond[strtoupper($key)]=$value;
+	$acond[$key]=$value;
+      }
+      //Then let's check if it has same conditions
+      if($this->tag==$tagname)
+      {
+        //Then we have to see if the node has exactly the same conditions
+	foreach($acond as $key=>$value)
+	{
+	  if (!($this->hasCondition($key, $value))) return 0;
+	}
+	 
+	//Now we need to check if the node condition is in the parameter
+	foreach($this->conditions as $cond)
+	{ 
+	  if (!(in_array($cond->atname, array_keys($acond))))
+	    return 0;
+          if (!($cond->pass($cond->atname, $acond[$cond->atname])))
+	    return 0;
+	}
+      }
+      return 1;
+    }
+
+    function addSon( $tagname, $conditions=null )
+    {
+      //$tag=strtoupper(trim($tagname));
+      $tag=trim($tagname);
+      if($conditions==null)
+	$conditions=array();
+      if(!$this->hasSon( $tagname, $conditions ))
+      {
+        $temp = & new Node( $tag, $this );
+	  foreach($conditions as $key=>$value)
+	    $temp->addCondition($key, $value);
+        array_push($this->sons, & $temp);
+      }
+    }
+
+    function addVariable( $varname )
+    {
+      if(!in_array( trim($varname), $this->vars))
+        array_push($this->vars, trim($varname));
+    }
+
+    function hasSon( $tagname, $conditions=null )
+    {
+      //There could be more than one son with the same tagname
+      foreach($this->sons as $temp)
+      {
+        if($temp->matchId( $tagname, $conditions))
+          return 1;
+      }
+      return 0;
+    }
+    
+    function hasVariables()
+    {
+      return (count($this->vars)>0);
+    }
+
+    function hasAtribs()
+    {
+      return (count($this->atribs));
+    }
+
+    function hasAtrib( $atname )
+    {
+      //$atname=strtoupper(trim($atname));
+      $atname=trim($atname);
+      return in_array($atname, array_keys($this->atribs));
+    }
+
+    function hasCondition( $atname, $atvalue="" )
+    {
+	//$atname=strtoupper(trim($atname));
+	$atname=trim($atname);
+	if(in_array($atname, array_keys($this->conditions)))
+	  if(!$atvalue)
+	    return 1;
+          else
+	    return ($this->conditions[$atname]->pass($atname, $atvalue));
+        return 0;
+    }
+
+    function & descend( $tag, $cond )
+    {
+      foreach($this->sons as $key=>$temp)
+      {
+        //if(strtoupper(trim($tag))==$temp->tag)
+        if(trim($tag)==$temp->tag)
+	{
+	  if($temp->passConditions( $cond ))
+	  {
+	    return $temp;
+          }
+        }
+      }
+      return null;
+    }
+
+    function passConditions( $a ) 
+    { //This method tells if the node pass the conditions according with the
+      //  assoc array which is passed as parameter. This array will contain
+      //  the atribute names as indexes, and the atribute values as values.
+      //To pass the conditions means that all the conditions in the node have
+      //  be present in the array parameter
+
+      //If there is no condition in the node, is passed
+      if (!$this->conditions)
+	return 1;
+      //If there is any condition in the node but not in the parameter is
+      // not passed
+      if (($this->conditions) && (!$a))
+	return 0;
+      //Any other case, we'll have to compare individually
+      foreach($this->conditions as $atname=>$atvalue)
+      {
+	if (!in_array($atname, array_keys( $a )))
+	{
+	  return 0;
+        }
+        if (!$atvalue->pass( $atname, $a[ $atname ]))
+	{
+	  return 0;
+        }
+      }
+      return 1;
+    }
+
+    function output()
+    {
+      print "Actual node: ".$this->tag."(".$this->parent->tag.")<br>";
+      print "Sons: ".array2str(array_keys($this->sons))."<br>";
+      print "Variables: ".array2str(array_values($this->vars))."<br>";
+      print "Atribs: ".array2str(array_keys($this->atribs))."<br>";
+      print "Conditions: ".array2str(array_keys($this->conditions))."<br>";
+      reset($this->sons);
+      while(current($this->sons)){
+	$temp=current($this->sons);
+	$temp->output();
+	next($this->sons);
+      }
+    }
+
+  }
+
+
+//----------------------------------------------------------------------
+
+?>  
diff --git a/modules/bibformat/lib/core/UDFRetriever.inc.shtml.wml b/modules/bibformat/lib/core/UDFRetriever.inc.shtml.wml
new file mode 100644
index 000000000..86df1fb1d
--- /dev/null
+++ b/modules/bibformat/lib/core/UDFRetriever.inc.shtml.wml
@@ -0,0 +1,201 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+
+
+//==========================================================================
+//  File: UDFRetriever.inc (flexElink core)
+//  Classes:    UDFRetriever
+//  Requires: 
+//  Included: DB   
+//==========================================================================
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//  Class: UDFRetriever
+//  Purpose: Retrieves UDFs from the database providing services for validating
+//	and getting the reults of an existing one. All the UDF database access
+//	is encapsulated here; besides, it implements an internal cache which is
+//	trasparent to clients and that minimizes DB accesses. It follows the 
+//	Singleton pattern so it will only be one instance of this class.
+//  Attributes:
+//	cache --> Array that implements an internal cache for keeping UDFs 
+//		retrieved from the DB (minimizes DB acceses)
+//	db -----> Persistent MySQL connection
+//  Visible methods:
+//	getInstance (static)--> returns an instance of the class ensurring 
+//		that is unique
+//	validate -----> cheks that the UDF with the given name exists and has 
+//		the number of parameters indicated. 
+//	execute ------> evaluates the UDF with the parameter values given and
+//		returns the result if the execution was succesful
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+  class UDFRetriever {
+    var $cache;
+    var $db;
+    
+    function UDFRetriever()
+    {
+      $this->cache=array();
+
+      include( DB );
+
+      $this->db=mysql_pconnect( $DB_HOST, $DB_USER, $DB_PASSWD );
+      mysql_selectdb( $DB_DB, $this->db );
+    }
+
+    function destroy()
+    {
+      //mysql_close( $this->db );
+    }
+
+/*---------------------------------------------------------------------
+  Method: getInstance (static)
+  Description: Gives a reference to an UDFRetriever ensurring that is the only
+  	one that exists. For doing so, the Singleton pattern is followed. Call
+	always to this method instead of using the constructor
+  Parameters:
+  Return value: (UDFRetriever) Reference to the unique UDFRetriever object
+---------------------------------------------------------------------*/
+    function & getInstance()
+    {
+      static $instance;
+
+      if(!isset($instance))
+      {
+	$instance=new UDFRetriever();
+      }
+      return $instance;
+    }
+
+/*---------------------------------------------------------------------
+  Method: validate
+  Description: Checks if a UDF is defined in the FlexElink configuration and
+  	if the number of parameters is correct for it
+  Parameters:
+  	udf_name (String) ---------> identifier of the UDF
+	udf_param_count (Integer) -> number of parameters of the UDF
+  Return value: (Array) Contains two values:
+  	1) The first one is <=0 if the validation wasn't OK, and any other
+	value in case of succesful validation
+	2) The second one contains a text explaining why the validation wasn't
+	possible. (It's not meaningful when the validation is OK)
+---------------------------------------------------------------------*/
+    function validate( $udf_name, $udf_param_count)
+    {
+      if(!$this->db)
+	return array(0, "Couldn't connect to database");
+      $udf_name=strtoupper(trim($udf_name));
+      //Check if the function is in cache
+      if(in_array($udf_name, array_keys($this->cache)))
+      {
+	if($udf_param_count==count($this->cache[$udf_name][0]))
+	{
+	  return array(1, $this->cache[$udf_name]);
+	}
+	return array(0, "Function '$udf_name' error: wrong number of parameters");
+      }
+      else
+      {
+	//If the function is not cached we have to look for it on the DB
+	$qry="select code from flxUDFS where fname='".addslashes($udf_name)."'";
+	$qh=mysql_query( $qry, $this->db );
+	if(mysql_num_rows($qh)>0)
+	{
+	  $row=mysql_fetch_array($qh);
+	  $code=$row["code"];
+	  $qry="select pname from flxUDFPARAMS 
+		where fname='".addslashes($udf_name)."' 
+		order by ord";
+          $qh=mysql_query($qry, $this->db);
+	  $params=array();
+	  while($row=mysql_fetch_array($qh))
+	  {
+	    array_push($params, $row["pname"]);
+	  }
+	  if(count($params)==$udf_param_count)
+	  {
+	    //Add to cache
+	    $this->cache[$udf_name]=array($params, $code);
+	    return array(1, $this->cache[$udf_name]);
+          }
+	  return array(0, "Function '$udf_name' error: wrong number of parameters");
+	}
+      }
+      return array(0, "Function '$udf_name' not found");
+    }
+
+
+/*---------------------------------------------------------------------
+  Method: execute
+  Description: Gives the result of evaluating the UDF with the parameter values 
+  	indicated.
+  Parameters:
+  	name (String) --> UDF identifier
+	param_values (Array) --> Contains the parameter values with which the
+		UDF has to be executed. The order is important because the 
+		values will be assigned to parameters in the order they come
+		in the array to the order they where defined in the UDF.
+       last (Bool) -----------> Value of the a special variable to be used 
+       		inside the UDF code (LAST_ITERATION)
+       first (Bool) ----------> Value of the a special variable to be used 
+       		inside the UDF code (FIRST_ITERATION)
+  Return value: (Array) Contains two values:
+  	1) The first one is <=0 if it occured any problem during execution, any
+	other value in case of success
+	2) The second one contains a text explaining why the execution wasn't
+	possible. (It's not meaningful when it is OK)
+---------------------------------------------------------------------*/
+    function execute( $name, $param_values, $last, $first )
+    {
+      list($ok, $udf)=$this->validate( $name, count($param_values) );
+      if(!$ok)
+        return array(0, $udf);
+      $excode="\$LAST_ITERATION=$last;";
+      $excode.="\$FIRST_ITERATION=$first;";
+      list($param_names, $code)=$udf;
+      $counter=0;
+      foreach($param_names as $pname)
+      {
+        //$val=addslashes($param_values[$counter]);
+        $val=str_replace("\"", "\\\"", $param_values[$counter]);
+	$val=str_replace("\$", "\\\$", $val);
+        $excode.='$'."$pname=\"".$val."\";\n";
+        $counter++;
+      }
+      $excode.=$code;
+      $res=eval($excode);
+      return array(1, $res);
+    }
+
+
+  
+  }//end class: 
+
+?>
diff --git a/modules/bibformat/web/.cvsignore b/modules/bibformat/web/.cvsignore
new file mode 100644
index 000000000..7cf70d354
--- /dev/null
+++ b/modules/bibformat/web/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+*.shtml
+*.py
\ No newline at end of file
diff --git a/modules/bibformat/web/Makefile.am b/modules/bibformat/web/Makefile.am
new file mode 100644
index 000000000..2a8f6f41f
--- /dev/null
+++ b/modules/bibformat/web/Makefile.am
@@ -0,0 +1,32 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIR = admin
+
+webdir=$(WEBDIR)/bibformat
+
+FILESWML=$(wildcard *.wml)
+web_DATA=$(FILESWML:.wml=)
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(wildcard *.shtml) *~ *.tmp
+
+%.shtml: %.shtml.wml ../../../config/config.wml ../../../config/configbis.wml ../../../config/cdspage.wml
+	$(WML) -o $@ $<
diff --git a/modules/bibformat/web/admin/.cvsignore b/modules/bibformat/web/admin/.cvsignore
new file mode 100644
index 000000000..7cf70d354
--- /dev/null
+++ b/modules/bibformat/web/admin/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+*.shtml
+*.py
\ No newline at end of file
diff --git a/modules/bibformat/web/admin/BEH_ACTION_add.shtml.wml b/modules/bibformat/web/admin/BEH_ACTION_add.shtml.wml
new file mode 100644
index 000000000..7fb342c72
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_ACTION_add.shtml.wml
@@ -0,0 +1,171 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Behaviours" \
+    navbar_name="admin" \
+    navbar_select="BEH_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_ACTION_add.shtml (flexElink WI)
+//  Description: Displays necessary controls to define a new behavior action 
+//	or adds a defined behavior action to the DB if all the parameters are
+//	set
+//  POST parameters:
+//	otype --> (required) Behavior label the action corresponds to
+//	eorder -> (required) Evaluation order of the condition the actions 
+//		corresponds to
+//	process -> (optional) If defined (value not relevant) the script adds
+//		the action to the DB; if not it displays options for defining it
+//	code ----> (optional) Action's EL code 
+//	locator -> (optional) Not relevant
+//	aorder --> (optional) Action application order inside its corresponding
+//		condition; if i isn't specified, the script will look for the
+//		last one in the database for that condition
+//  Notes: If an action is succesfully added to the DB it refreshes the caller
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    print "<b>Output type</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $otype=trim(strtoupper($otype));
+
+  if( (!isset($eorder)) or (trim($eorder)=="") )
+  {
+    print "<b>Condition evaluation order</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+
+  if(!isset($process))
+  {
+?>
+<form action="BEH_ACTION_add.shtml" method="POST">
+  <table>
+    <tr>
+      <td colspan="2" bgcolor="black">
+	<font color="white" align="center">
+	  Add new action for condition '<? echo $otype." -- ".$eorder;?>'</font>
+      </td>
+    </tr>
+    <tr>
+      <td>Apply order: </td>
+      <td><input type="text" name="aorder"></td>
+    </tr>
+    <tr>
+      <td>Locator(only IENRICH types): </td>
+      <td><textarea name="locator" cols="80" rows="2"></textarea></td>
+    </tr>
+    <tr>
+      <td>EL Code: </td>
+      <td><textarea name="code" cols="80" rows="9"></textarea></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit"></td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="otype" value="<?echo $otype;?>">
+  <input type="hidden" name="eorder" value="<?echo $eorder;?>">
+</form>
+<?
+  }
+  else
+  {
+    if( (!isset($code)) )
+      $code="";
+    else
+    {
+      $temp_code=$code;
+      if(get_magic_quotes_gpc())
+        $temp_code=stripslashes($temp_code);
+      include(EXECUTOR);
+      $a=new AELExecutor();
+      list($ok, $msg)=$a->checkCode( $temp_code );
+      if(!$ok)
+      {
+        print "Code incorrect: <b>$msg</b><hr>
+          <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        exit;
+      }
+    }
+    if( (!isset($locator)) )
+      $locator="";
+    if(!get_magic_quotes_gpc())
+    {
+      $code=addslashes($code);
+      $locator=addslashes($locator);
+    }
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or errormsg("Couldn't connect to mySQL");
+    mysql_selectdb( $DB_DB );
+    if( (!isset($aorder)) or (trim($aorder)=="") )
+    {
+      $qry="select max(apply_order)+1 
+            from flxBEHAVIORCONDITIONSACTIONS 
+	    where otype='$otype'
+	    and eval_order='$eorder'";
+      $res=mysql_query( $qry );
+      $aorder=mysql_fetch_array( $res );
+      $aorder=$aorder[0];
+      if($aorder==null)
+      {
+        $aorder=0;
+      }
+    }
+    $qry="insert into flxBEHAVIORCONDITIONSACTIONS
+	  (otype, eval_order, apply_order, locator, el_code)
+          values ('$otype', '$eorder', '$aorder', '$locator', '$code')";
+    
+    if(!mysql_query( $qry ))
+    {
+      errorpage("Impossible to insert new action:<br> ".mysql_error());
+      mysql_close( $db );
+      exit;
+    }
+   
+   mysql_close( $db );
+?>
+<script language="JavaScript">
+  opener.location.reload(false);
+  window.close();
+</script>
+<?
+   
+  }
+
+?>
diff --git a/modules/bibformat/web/admin/BEH_ACTION_del.shtml.wml b/modules/bibformat/web/admin/BEH_ACTION_del.shtml.wml
new file mode 100644
index 000000000..d87150391
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_ACTION_del.shtml.wml
@@ -0,0 +1,83 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+<?
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_ACTION_del.shtml (flexElink WI)
+//  Description: Delete an existing new behavior action from the DB 
+//  POST parameters:
+//      otype --> (required) Behavior label the action corresponds to
+//      eorder -> (required) Evaluation order of the condition the actions
+//              corresponds to
+//      aorder --> (required) Action application order inside its corresponding
+//              condition.
+//  Notes: If the deletion is succesful it redirects the browser to the
+//	showing of the 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    errorpage("<b>Output type name</b> hasn't been specified");
+    exit;
+  }
+  $otype=strtoupper(trim($otype));
+
+  if( (!isset($eorder)) or (trim($eorder)=="") )
+  {
+    errorpage("<b>Condition evaluation order</b> hasn't been specified");
+    exit;
+  }
+
+  if( (!isset($aorder)) or (trim($aorder)=="") )
+  {
+    errorpage("<b>Action evaluation order</b> hasn't been specified");
+    exit;
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+    or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $qry="delete from flxBEHAVIORCONDITIONSACTIONS 
+        where otype='$otype' 
+        and eval_order='$eorder'
+        and apply_order='$aorder'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete action:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+
+  header("location: BEH_OTYPE_showone.shtml?otype=$otype");
+
+?>
diff --git a/modules/bibformat/web/admin/BEH_ACTION_edit.shtml.wml b/modules/bibformat/web/admin/BEH_ACTION_edit.shtml.wml
new file mode 100644
index 000000000..42f303ffd
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_ACTION_edit.shtml.wml
@@ -0,0 +1,233 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Behaviours" \
+    navbar_name="admin" \
+    navbar_select="BEH_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_ACTION_edit.shtml (flexElink WI)
+//  Description: Allows to edit a single behavior action from the DB and apply
+//	changes in the action's data to the DB
+//  POST parameters:
+//      otype --> (required) Behavior label the action corresponds to
+//      eorder -> (required) Evaluation order of the condition the actions
+//              corresponds to
+//      process -> (optional) If defined (value not relevant) the script updates
+//              action's in the DB; if not it displays options for modifiying it
+//      aorder --> (required if process is not defined) Action application order
+//		inside its corresponding condition. When process is set, it 
+//		contains the new order for this action; if it's empty, the
+//		script will look for the last apply order of the actions for
+//		the corresponding condition.
+//      original_aorder --> (required if process is defined) Original action 
+//		application order inside its corresponding condition.
+//      code ----> (optional) Action's EL code 
+//      locator -> (optional) Not relevant
+//  Notes: If the update of the action is succesful it closes the current i
+//	browser and refreshes the caller one
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    print "<b>Output type</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $otype=trim(strtoupper($otype));
+  if( (!isset($eorder)) or (trim($eorder)=="") )
+  {
+    print "<b>Condition evaluation order</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+  if(!isset($process))
+  {
+    if( (!isset($aorder)) or (trim($aorder)=="") )
+    {
+      print "<b>Action apply order</b> hasn't been specified";
+      print "<hr>";
+      print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+      exit;
+    }
+    $qry="select locator, el_code
+	  from flxBEHAVIORCONDITIONSACTIONS
+	  where otype='$otype'
+	  and eval_order=$eorder
+	  and apply_order=$aorder";
+     $qh=mysql_query( $qry );
+     list($locator, $code)=mysql_fetch_array( $qh );
+    
+?>
+<form action="BEH_ACTION_edit.shtml" method="POST">
+  <table>
+    <tr>
+      <td colspan="2" bgcolor="black">
+	<font color="white" align="center">
+	 Modifying action '<? echo $otype." -- ".$eorder." -- ".$aorder;?>'</font>
+      </td>
+    </tr>
+    <tr>
+      <td>Apply order: </td>
+      <td><input type="text" name="aorder" value="<?echo $aorder;?>"></td>
+    </tr>
+    <tr>
+      <td>Locator(only IENRICH types): </td>
+      <td><textarea name="locator" cols="80" rows="2"><?echo $locator?></textarea></td>
+    </tr>
+    <tr>
+      <td>EL Code: </td>
+      <td><textarea name="code" cols="80" rows="9"><?echo $code;?></textarea></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center">
+        <input type="submit" value="UPDATE" name="btnUpd">
+        <input type="submit" value="UPDATE&CLOSE" name="btnUpdClose">
+      </td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="otype" value="<?echo $otype;?>">
+  <input type="hidden" name="eorder" value="<?echo $eorder;?>">
+  <input type="hidden" name="original_aorder" value="<?echo $aorder;?>">
+</form>
+<?
+  }
+  else
+  {
+    if( (!isset($original_aorder)) or (trim($original_aorder)=="") )
+    {
+      print "<b>Action orginal apply order</b> hasn't been specified";
+      print "<hr>";
+      print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+      exit;
+    }
+    if( (!isset($code)) )
+      $code="";
+    else
+    {
+      $temp_code=$code;
+      if(get_magic_quotes_gpc())
+        $temp_code=stripslashes($temp_code);
+      include(EXECUTOR);
+      $a=new AELExecutor();
+      list($ok, $msg)=$a->checkCode( $temp_code );
+      if(!$ok)
+      {
+        print "Code incorrect: <b>$msg</b><hr>
+               <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        exit;
+      }
+    }
+    if( (!isset($locator)) )
+      $locator="";
+    if(!get_magic_quotes_gpc())
+    {
+      $code=addslashes($code);
+      $locator=addslashes($locator);
+    }
+    if( (!isset($aorder)) or (trim($aorder)=="") )
+    {
+      $qry="select max(apply_order)+1 
+            from flxBEHAVIORCONDITIONSACTIONS 
+	    where otype='$otype'
+	    and eval_order='$eorder'";
+      $res=mysql_query( $qry );
+      $aorder=mysql_fetch_array( $res );
+      $aorder=$aorder[0];
+      if($aorder==null)
+      {
+        $aorder=0;
+      }
+    }
+
+    if($aorder==$original_aorder)
+    {
+      $qry="update flxBEHAVIORCONDITIONSACTIONS
+	    set locator='$locator',
+		el_code='$code'
+	    where otype='$otype'
+	    and eval_order='$eorder'
+	    and apply_order='$aorder'";
+      if(!mysql_query( $qry ))
+      {
+        print "Impossible to update action: ".mysql_error()."<hr> <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        mysql_close( $db );
+	exit;
+      }
+    }
+    else
+    {
+      $qry="delete from flxBEHAVIORCONDITIONSACTIONS
+	    where otype='$otype'
+	    and eval_order='$eorder'
+	    and apply_order='$original_aorder'";
+      if(!mysql_query( $qry ))
+      {
+        print "Impossible to delete old action: ".mysql_error()."<hr> <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        mysql_close( $db );
+	exit;
+      }
+      $qry="insert into flxBEHAVIORCONDITIONSACTIONS
+	  (otype, eval_order, apply_order, locator, el_code)
+          values ('$otype', '$eorder', '$aorder', '$locator', '$code')";
+    
+      if(!mysql_query( $qry ))
+      {
+         print "Impossible to insert new action: ".mysql_error()."<hr> <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+         mysql_close( $db );
+         exit;
+      }
+    }
+
+   
+   mysql_close( $db );
+?>
+<script language="JavaScript">
+  opener.location.reload(false);
+<?
+   if(isset($btnUpd))
+     print "window.location=\"BEH_ACTION_edit.shtml?otype=$otype&eorder=$eorder&aorder=$aorder\";";
+   else
+     print "window.close();";
+?>
+</script>
+<?
+  }
+
+?>
diff --git a/modules/bibformat/web/admin/BEH_COND_add.shtml.wml b/modules/bibformat/web/admin/BEH_COND_add.shtml.wml
new file mode 100644
index 000000000..04251056c
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_COND_add.shtml.wml
@@ -0,0 +1,154 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Behaviours" \
+    navbar_name="admin" \
+    navbar_select="BEH_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_COND_add.shtml (flexElink WI)
+//  Description: Displays necessary controls to define a new behaviour condition
+//      or adds a defined behavior condition (by the values passed as
+//	parameters) to the DB
+//  POST parameters:
+//      otype --> (required) Behavior label the condition corresponds to
+//      process -> (optional) If defined (value not relevant) the script adds
+//              the condition to the DB.
+//      eorder -> (optional) Evaluation order of the condition inside the owner
+//              behaviour. If this parameter is not set, the script will look
+//		for the last evaluation order value inside the corresponding
+//		behaviour
+//      code ----> (optional) Action's EL code 
+//  Notes: If an action is succesfully added to the DB it closes the current
+//	browser and refreshes the opener one
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+  
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    print "<b>Output type</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+
+  }
+  $otype=trim(strtoupper($otype));
+
+    if(!isset($process))
+    {
+?>
+<form action="BEH_COND_add.shtml" method="POST">
+  <table>
+    <tr>
+      <td colspan="2" bgcolor="black">
+        <font color="white" align="center">
+          Add new condition for output type'<? echo $otype;?>'</font>
+      </td>
+    </tr>
+    <tr>
+      <td>Evaluation order: </td>
+      <td><input type="text" name="eorder"></td>
+    </tr>
+    <tr>
+      <td>EL Code: </td>
+      <td><textarea name="code" cols="80" rows="9"></textarea></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit"></td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="otype" value="<?echo $otype;?>">
+</form>
+<?
+    }
+    else
+    {
+      if( (!isset($code)) )
+        $code="";
+      else
+      {
+        $temp_code=$code;
+        if(get_magic_quotes_gpc())
+          $temp_code=stripslashes($temp_code);
+        include(EXECUTOR);
+        $a=new AELExecutor();
+        list($ok, $msg)=$a->checkCode( $temp_code );
+        if(!$ok)
+        {
+          print "Condition code incorrect: <b>$msg</b><hr>
+          <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+          exit;
+        }
+      }
+      if(!get_magic_quotes_gpc())
+        $code=addslashes($code);
+
+      $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	  or errormsg("Couldn't connect to mySQL") or exit;
+      mysql_selectdb( $DB_DB );
+  
+      if( (!isset($eorder)) or (trim($eorder)=="") )
+      {
+        $qry="select max(eval_order)+1 
+	      from flxBEHAVIORCONDITIONS 
+	      where otype='$otype'";
+        $res=mysql_query( $qry );
+        $order=mysql_fetch_array( $res );
+        $order=$order[0];
+        if($order==null)
+        {
+          $order=0;
+        }
+      }
+      $qry="insert into flxBEHAVIORCONDITIONS (otype, eval_order, el_condition)
+	                             values ('$otype', '$order', '$code')";
+      if(!mysql_query( $qry ))
+      {
+        print "Impossible to insert new condition:<br> ".mysql_error();
+        print "<hr>";
+        print "<a align=\"center\" href=\"JavaScript:window.history.go(-1);\">[Go Back]</a>";
+        mysql_close( $db );
+        exit;
+      }
+  
+      mysql_close( $db );
+?>
+<script language="JavaScript">
+  opener.location.reload(false);
+  window.close();
+</script>
+<?
+  }
+?>
+
diff --git a/modules/bibformat/web/admin/BEH_COND_del.shtml.wml b/modules/bibformat/web/admin/BEH_COND_del.shtml.wml
new file mode 100644
index 000000000..296a66cf1
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_COND_del.shtml.wml
@@ -0,0 +1,79 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+<?
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_COND_del.shtml (flexElink WI)
+//  Description: Deletes a given condition (and its depending items) from the DB
+//  POST parameters:
+//      otype --> (required) Behaviour label the condition corresponds to
+//      eorder -> (required) Evaluation order of the condition 
+//  Notes: If the condition is succesfully deleted from the DB it redirects
+//      the current browser to the detailed display of the corresponding 
+//	behaviour
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    errorpage("<b>Output type name</b> hasn't been specified");
+    exit;
+  }
+  $otype=strtoupper(trim($otype));
+  
+  if( (!isset($eorder)) or (trim($eorder)=="") )
+  {
+    errorpage("<b>Condition evaluation order</b> hasn't been specified");
+    exit;
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $qry="delete from flxBEHAVIORCONDITIONSACTIONS 
+	where otype='$otype' and eval_order='$eorder'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete actions related to this condition:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  $qry="delete from flxBEHAVIORCONDITIONS 
+	where otype='$otype' and eval_order='$eorder'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete condition:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("Location: BEH_OTYPE_showone.shtml?otype=$otype");
+?>
+
diff --git a/modules/bibformat/web/admin/BEH_COND_edit.shtml.wml b/modules/bibformat/web/admin/BEH_COND_edit.shtml.wml
new file mode 100644
index 000000000..d82ae2063
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_COND_edit.shtml.wml
@@ -0,0 +1,197 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Behaviours" \
+    navbar_name="admin" \
+    navbar_select="BEH_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_COND_edit.shtml (flexElink WI)
+//  Description: Allows to modify a condition data and updates changes in
+//	the configuration DB
+//  POST parameters:
+//      otype --> (required) Behavior label the condition corresponds to
+//      process -> (optional) If defined (value not relevant) the script updates
+//		condition data in the DB with the new values passed as 
+//		parameters
+//      eorder -> (required if process is not set) Evaluation order of the 
+//		condition inside the owner behaviour. If this parameter is not 
+//		set, the script will look for the last evaluation order value 
+//		inside the corresponding behaviour
+//	old_eorder -> (required if process is set) Original evaluation order of
+//		the condition to be modified
+//      code ----> (optional) Action's EL code
+//  Notes: If an action is succesfully added to the DB it closes the current   
+//      browser and refreshes the opener one
+//  Requires:  DB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    print "<b>Output type</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+
+  }
+  $otype=trim(strtoupper($otype));
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+        or errormsg("Couldn't connect to mySQL") or exit;
+   mysql_selectdb( $DB_DB );
+
+   if(!isset($process))
+   {
+     if( (!isset($eorder)) or (trim($eorder)=="") )
+     {
+       print "<b>Condition evaluation order</b> hasn't been specified";
+       print "<hr>";
+       print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+       exit;
+     }
+     $qry="select el_condition
+	   from flxBEHAVIORCONDITIONS
+	   where otype='$otype'
+	   and eval_order='$eorder'";
+     $qh=mysql_query($qry, $db);
+     list($code)=mysql_fetch_array($qh);
+     mysql_close($db);
+?>
+<form action="BEH_COND_edit.shtml" method="POST">
+  <table>
+    <tr>
+      <td colspan="2" bgcolor="black">
+        <font color="white" align="center">
+          Editing condition <?echo $eorder;?> for output type'<? echo $otype;?>'</font>
+      </td>
+    </tr>
+    <tr>
+      <td>Evaluation order: </td>
+      <td><input type="text" name="eorder" value="<?echo $eorder;?>"></td>
+    </tr>
+    <tr>
+      <td>EL Code: </td>
+      <td><textarea name="code" cols="80" rows="9"><?echo $code;?></textarea></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit"></td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="otype" value="<?echo $otype;?>">
+  <input type="hidden" name="old_eorder" value="<?echo $eorder;?>">
+</form>
+<?
+    }
+    else
+    {
+      if( (!isset($old_eorder)) or (trim($old_eorder)=="") )
+      {
+        print "<b>Condition original evaluation order</b> hasn't been specified";
+        print "<hr>";
+        print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+        exit;
+      }
+      if( (!isset($code)) )
+        $code="";
+      else
+      {
+        $temp_code=$code;
+        if(get_magic_quotes_gpc())
+          $temp_code=stripslashes($temp_code);
+        include(EXECUTOR);
+        $a=new AELExecutor();
+        list($ok, $msg)=$a->checkCode( $temp_code );
+        if(!$ok)
+        {
+          print "Condition code incorrect: <b>$msg</b><hr>
+          <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+          exit;
+        }
+      }
+      if(!get_magic_quotes_gpc())
+        $code=addslashes($code);
+
+  
+      if( (!isset($eorder)) or (trim($eorder)=="") )
+      {
+        $qry="select max(eval_order)+1 
+	      from flxBEHAVIORCONDITIONS 
+	      where otype='$otype'
+	      and eval_order<>$old_eorder";
+        $res=mysql_query( $qry );
+        $order=mysql_fetch_array( $res );
+        $eorder=$order[0];
+        if($eorder==null)
+        {
+          $eorder=0;
+        }
+      }
+      if($eorder!=$old_eorder)
+      {
+        $qry="update flxBEHAVIORCONDITIONSACTIONS
+              set eval_order='$eorder'
+              where otype='$otype'
+              and eval_order='$old_eorder'";
+        if(!mysql_query( $qry ))
+        {
+          print "Impossible to update actions related to this condition:<br> ".mysql_error();
+          print "<hr>";
+          print "<a align=\"center\" href=\"JavaScript:window.history.go(-1);\">[Go Back]</a>";
+          mysql_close( $db );
+          exit;
+        }
+      }
+      $qry="update flxBEHAVIORCONDITIONS 
+            set eval_order='$eorder',
+                el_condition='$code'
+            where otype='$otype'
+            and eval_order='$old_eorder'";
+      if(!mysql_query( $qry ))
+      {
+        print "Impossible to insert update condition:<br> ".mysql_error();
+        print "<hr>";
+        print "<a align=\"center\" href=\"JavaScript:window.history.go(-1);\">[Go Back]</a>";
+        mysql_close( $db );
+        exit;
+      }
+  
+      mysql_close( $db );
+?>
+<script language="JavaScript">
+  opener.location.reload(false);
+  window.close();
+</script>
+<?
+  }
+?>
+
diff --git a/modules/bibformat/web/admin/BEH_OTYPE_add.shtml.wml b/modules/bibformat/web/admin/BEH_OTYPE_add.shtml.wml
new file mode 100644
index 000000000..0b9528fe8
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_OTYPE_add.shtml.wml
@@ -0,0 +1,84 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+<?
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_OTYPE_add.shtml (flexElink WI)
+//  Description: Adds a new behaviour to the DB from the data passed as 
+//	parameteres
+//  POST parameters:
+//      otype --> (required) Behaviour label the action corresponds to
+//      type ---> (required, possible values: NORMAL, IENRICH) Behaviour type. 
+//      doc ----> (optional) Documentation describing the behaviour
+//  Notes: If the behaviour is succesfully added to the DB it redirects the
+//	browser to the behaviour list display
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    errorpage("<b>Output type name</b> hasn't been specified");
+    exit;
+  }
+  $otype=strtoupper(trim($otype));
+
+  if( (!isset($type)) or (trim($type)=="") )
+    $type="";
+  $type=strtoupper(trim($type));
+  
+  if(!in_array($type, array( "NORMAL", "IENRICH" )))
+  {
+    errorpage("<b>Behavior type</b> incorrect!!");
+    exit;
+  }
+  
+  if( !isset($doc) ) 
+    $doc="";
+  $doc=strtoupper(trim($doc));
+  if(!get_magic_quotes_gpc())
+  {
+    $doc=addslashes($doc);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or 
+	errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $qry="insert into flxBEHAVIORS(name, type, doc)
+	values ('$otype', '$type', '$doc')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new output type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+
+  header("location: BEH_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/BEH_OTYPE_del.shtml.wml b/modules/bibformat/web/admin/BEH_OTYPE_del.shtml.wml
new file mode 100644
index 000000000..63ddab33a
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_OTYPE_del.shtml.wml
@@ -0,0 +1,92 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Behaviours" \
+    navbar_name="admin" \
+    navbar_select="BEH_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_OTYPE_del.shtml (flexElink WI)
+//  Description: Deletes an existing behaviour (and all the items that depend
+//	on them) from the DB 
+//      parameteres
+//  POST parameters:
+//      otype --> (required) Behaviour label the action corresponds to
+//  Notes: If the behaviour is succesfully deleted from the DB it closes the
+//      current browser and refreshes the opener one
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($otype)) or (trim($otype)=="") )
+  {
+    errorpage("<b>Output type name</b> hasn't been specified");
+    exit;
+  }
+  $otype=strtoupper(trim($otype));
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or 
+	errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+
+  $qry="delete from flxBEHAVIORCONDITIONSACTIONS where otype='$otype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete actions related to this output type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+ 
+  $qry="delete from flxBEHAVIORCONDITIONS where otype='$otype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete conditions related to this output type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  $qry="delete from flxBEHAVIORS where name='$otype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete output type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+?>
+<script language="JavaScript">
+  opener.location.reload(false);
+  window.close();
+</script>
+
diff --git a/modules/bibformat/web/admin/BEH_OTYPE_edit.shtml.wml b/modules/bibformat/web/admin/BEH_OTYPE_edit.shtml.wml
new file mode 100644
index 000000000..95e8ad261
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_OTYPE_edit.shtml.wml
@@ -0,0 +1,186 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+<?
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_OTYPE_edit.shtml (flexElink WI)
+//  Description: Allows to modify a behavior's data and updates it, according
+//	with the made changes, in the DB
+//  POST parameters:
+//      otype --> (required) Behavior label 
+//      otype_orig -> (optional) If defined the script updates the data passed 
+//		parameters in the DB. When defined, it contains the DB label(the
+//		original one as it can be changed) of the behaviour to be 
+//		modified
+//      type ---> (required if otype_orig is set, possible values: NORMAL, 
+//		IENRICH) Behaviour type. 
+//      doc ----> (optional) Documentation describing the behaviour
+//  Notes: If the behaviour data is succesfully updated in the DB it redirects
+//	the current browser to the detailed display of the updated behaviour
+//  Requires:  DB, ERROR, FUNCTION_LIB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+  include(FUNCTION_LIB);
+
+  if((!isset($otype))||(trim($otype)==""))
+  {
+    print "<b>ERROR</b>: Output type label hasn't been specified!!<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+    exit;
+  }
+  if(get_magic_quotes_gpc())
+  {
+    $otype=stripslashes($otype);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  if(isset($otype_orig))
+  {
+    $otype=trim(strtoupper($otype));
+    $otype_orig=trim(strtoupper($otype_orig));
+    if(!isset($type))
+    {
+      $type="NORMAL";
+    }
+    else
+    {
+      $type=strtoupper(trim($type));
+    }
+    if(($type!="NORMAL")&&($type!="IENRICH"))
+    {
+      print "Incorrect value for <b>type</b>";
+      print "<hr>";
+      print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+      exit;
+    }
+    if(!isset($doc))
+    {
+      $doc="";
+    }
+    if(!get_magic_quotes_gpc())
+    {
+      $type=addslashes($type);
+      $doc=addslashes($doc);
+      $otype=addslashes($otype);
+      $otype_orig=addslashes($otype_orig);
+    }
+
+    if($otype!=$otype_orig)
+    {
+      $qry="update flxBEHAVIORCONDITIONSACTIONS
+  	    set otype='$otype'
+	    where otype='$otype_orig'";
+      if(!mysql_query($qry))
+      {
+        print "Impossible to update actions for output type '$otype_orig': ".mysql_error();
+        print "<hr>";
+        print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+        mysql_close( $db );
+        exit;
+      }
+      
+      $qry="update flxBEHAVIORCONDITIONS
+  	    set otype='$otype'
+	    where otype='$otype_orig'";
+      if(!mysql_query($qry))
+      {
+        print "Impossible to update conditions for output type '$otype_orig': ".mysql_error();
+        print "<hr>";
+        print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+        mysql_close( $db );
+        exit;
+      }
+
+    }
+
+    $qry="update flxBEHAVIORS
+	 set name='$otype',
+	     type='$type',
+	     doc='$doc'
+         where name='$otype_orig'";
+    if(!mysql_query($qry))
+    {
+      print "Impossible to update output type '$otype_orig': ".mysql_error();
+      print "<hr>";
+      print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+      mysql_close( $db );
+      exit;
+    }
+
+    if($errors!="")
+    {
+      print $errors;
+      print "<hr>";
+      print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+      mysql_close( $db );
+      exit;
+    }
+
+    header("location: BEH_OTYPE_showone.shtml?otype=$otype");
+    exit;
+  }
+//-----------------------------------------------------------------  
+  $qry="select type, doc
+        from flxBEHAVIORS
+	where name='".addslashes($otype)."'";
+  $qh=mysql_query($qry, $db);
+  list($type, $doc)=mysql_fetch_row($qh);
+?>
+  <form action="BEH_OTYPE_edit.shtml" method="POST">
+    <table width="100%" bgcolor="#CCCCCC" border="1">
+      <tr bgcolor="#0000FF" align="center">
+        <td colspan="2"><font size="6" color="white">Modifying output type '<?echo $otype;?>'</font></td>
+      </tr>
+      <tr bgcolor="#FFFFFF">
+        <td bgcolor="#33CCFF" width="15%"><b>Name</b></td>
+        <td><input type="text" name="otype" value="<?echo $otype;?>"</td>
+      </tr>
+      <tr bgcolor="#FFFFFF">
+        <td bgcolor="#33CCFF" width="15%"><b>Type</b></td>
+        <td><select name="type">
+	      <option value="NORMAL"<?if($type=="NORMAL") echo " selected";?>>Normal</option> 
+	      <option value="IENRICH"<?if($type=="IENRICH") echo " selected";?>>Input Enrich</option>
+	    </select> 
+	</td>
+      </tr>
+      <tr bgcolor="#FFFFFF">
+        <td bgcolor="#33CCFF"><b>Documentation</b></td>
+        <td><textarea name="doc" cols="65" rows="5"><?echo $doc;?></textarea></td>
+      </tr>
+      <tr align="center">
+        <td colspan="2">
+	  <input type="button" value="CANCEL" onClick="JavaScript:window.history.go(-1)">
+          <input type="submit" value="UPDATE">
+          <input type="hidden" name="otype_orig" value="<?echo $otype;?>">
+        </td>
+      </tr>
+    </table>
+  </form>
+<?
+  mysql_close( $db );
+?>
diff --git a/modules/bibformat/web/admin/BEH_OTYPE_showone.shtml.wml b/modules/bibformat/web/admin/BEH_OTYPE_showone.shtml.wml
new file mode 100644
index 000000000..905875765
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_OTYPE_showone.shtml.wml
@@ -0,0 +1,162 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Behaviours" \
+    navbar_name="admin" \
+    navbar_select="BEH_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_OTYPE_showone.shtml (flexElink WI)
+//  Description: Shows the complete structure for a given behaviour. It presents
+//	the behavior data, conditions and actions; it also allows its management
+//  POST parameters:
+//      otype --> (required) Behavior label that identifies the behavior to be
+//		shown
+//  Requires:  DB, ERROR, FUNCTION_LIB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+  include(FUNCTION_LIB);
+
+?>
+<script language="javascript">
+<!---
+  function openwindowlink( addr, name )
+  {
+    window.open( addr, "Window"+name, "height=420,witdh=320,scrollbars,resizable")
+  }
+//-->
+</script>
+<?
+  if((!isset($otype))||(trim($otype)==""))
+  {
+    print "<b>ERROR</b>: Behavior label hasn't been specified!!<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $otype=trim(strtoupper($otype));
+  if(get_magic_quotes_gpc())
+  {
+    $otype=stripslashes($otype);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $qry="select type, doc
+        from flxBEHAVIORS
+	where name='".addslashes($otype)."'";
+  $qh=mysql_query($qry, $db);
+  
+  list($type, $doc)=mysql_fetch_row($qh);
+
+?>  
+  <table width="100%" bgcolor="#CCCCCC" border="1">
+    <tr bgcolor="#0000FF" align="center">
+      <td colspan="2"><font size="6" color="white">Details of output type '<?echo $otype;?>'</font></td>
+    </tr>
+    <tr bgcolor="#FFFFFF">
+      <td bgcolor="#33CCFF" width="15%"><b>Type</b></td>
+      <td><?echo $type;?></td>
+    </tr>
+    <tr bgcolor="#FFFFFF">
+      <td bgcolor="#33CCFF"><b>Documentation</b></td>
+      <td><?echo str_replace("\n", "<br>", $doc);?></td>
+    </tr>
+  </table>
+  
+  <table width="100%" cellspacing="0" bgcolor="#CCCCCC" cellpadding="4" border="0">
+    <tr align="center">
+      <td><a href="JavaScript:openwindowlink('BEH_COND_add.shtml?otype=<? print urlencode($otype);?>', 'BEHRADDC<? echo $linktype;?>')">[Add condition]</a></td>
+      <td><a href="BEH_OTYPE_edit.shtml?otype=<?print urlencode($otype);?>">[Modify]</a></td>
+      <td><a href="BEH_OTYPE_del.shtml?otype=<?echo urlencode($otype);?>">[Delete]</a></td>
+    </tr>
+  </table>
+<?
+
+  $qry="select eval_order, el_condition
+	from flxBEHAVIORCONDITIONS
+	where otype='".addslashes($otype)."'
+	order by eval_order";
+  $qh=mysql_query($qry, $db);
+
+  if(mysql_num_rows($qh)>=1)
+  {
+?>
+  <table width="100%" bgcolor="#CCCCCC" border="1">
+    <tr bgcolor="#0000FF" align="center">
+      <td colspan="4"><font color="white"><b>CONDITIONS</b></font></td>
+    </tr>
+<?
+    while($row=mysql_fetch_array($qh))
+    {
+      list($eorder, $condition)=$row;
+?>
+    <tr bgcolor="#33CCFF"> 
+      <td align="center"><b><?echo $eorder;?></b></td>
+      <td width="95%" colspan="3"><b><?echo text2HTML($condition);?></b></td>
+    </tr>
+<?
+     $qry_ac="select apply_order, el_code
+              from flxBEHAVIORCONDITIONSACTIONS
+       	      where otype='".addslashes($otype)."'
+              and eval_order=$eorder
+              order by apply_order";
+     $qh_ac=mysql_query($qry_ac, $db);
+     while($row_ac=mysql_fetch_array($qh_ac))
+     {
+	list($aorder, $action)=$row_ac;
+?>
+    <tr bgcolor="#FFFFFF">
+      <td bgcolor="#33CCFF"><font size="2"><b>Action (<?echo $aorder;?>)</b></font></td>
+      <td width="100%"><?echo text2HTML($action);?></td>
+      <td><font size="2"><a href="JavaScript:openwindowlink('BEH_ACTION_edit.shtml?otype=<?echo urlencode($otype);?>&eorder=<?echo $eorder;?>&aorder=<?echo $aorder;?>', 'BEHCAE<? echo "$otype$eorder$aorder";?>')">[Modify]</a></td>
+      <td><font size="2"><a href="BEH_ACTION_del.shtml?otype=<?echo urlencode($otype);?>&eorder=<?echo $eorder;?>&aorder=<?echo $aorder;?>">[Delete]</a></td>
+    </tr>
+<?
+      }
+?>
+    <tr bgcolor="#CCCCCC" align="center">
+      <td colspan="4"><font size="2">
+        <a href="JavaScript:openwindowlink('BEH_ACTION_add.shtml?otype=<?echo urlencode($otype);?>&eorder=<?echo $eorder;?>', 'BEHCAADD<?echo "$otype$eorder$aorder";?>')">[Add Action]</a>
+        <a href="JavaScript:openwindowlink('BEH_COND_edit.shtml?otype=<?echo urlencode($otype)?>&eorder=<?echo $eorder;?>', 'BEHCEDIT<?echo "$otype$eorder";?>')">[Modify]</a>
+	<a href="BEH_COND_del.shtml?otype=<?echo urlencode($otype);?>&eorder=<?echo $eorder?>">[Delete]</a>
+	</font>
+      </td>
+    </tr>
+<?
+    }
+    print "</table>";
+  }
+
+  mysql_close( $db );
+
+?>
diff --git a/modules/bibformat/web/admin/BEH_display.shtml.wml b/modules/bibformat/web/admin/BEH_display.shtml.wml
new file mode 100644
index 000000000..fc119edcb
--- /dev/null
+++ b/modules/bibformat/web/admin/BEH_display.shtml.wml
@@ -0,0 +1,136 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+#include "cdspage.wml" \
+    title="Behaviours" \
+    navbar_name="admin" \
+    navbar_select="BEH_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: BEH_display.shtml (flexElink WI)
+//  Description: Shows a list of the existing behaviors in the DB, and allows to
+//	access to their details or to add new ones
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+
+  include(DB);
+  include(ERROR);
+  include(HEADER);
+
+?>
+<p>Define one or more output BibFormat behaviours.  These are then
+passed as parameters to the BibFormat modules while executing
+formatting. 
+<em>Example:</em> You can tell BibFormat that is has to enrich the
+incoming metadata file by the created format, or that it only has to
+print the format out.
+<p>
+
+<script type="text/javascript">
+<!---
+  function openwindowlink( addr, name )
+  {
+    window.open( addr, "Window"+name, "height=720,witdh=320,scrollbars,resizable")
+  }
+//-->
+</script>
+<?
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or 
+	errormsg("Couldn't connect to mySQL");
+  mysql_selectdb( $DB_DB ) or 
+	errormsg(sprintf("Couldn't connect into database %s", $DB_DB));
+
+  $qry_otypes="select name, type, doc from flxBEHAVIORS order by name";
+  $qh_otypes=mysql_query( $qry_otypes );
+?>
+  <table width="100%" border="1">
+    <tr bgcolor="#0000FF" align="center">
+      <td><font color="white"><b>Name</b></font></td>
+      <td><font color="white"><b>Type</b></font></td>
+      <td width="100%"><font color="white"><b>Documentation</b></font></td>
+      <td colspan="2"></td>
+    </tr>
+<?
+  while($row=mysql_fetch_array( $qh_otypes ))
+  {
+    list($otype, $type, $doc)=$row;
+?>
+    <tr bgcolor="#FFFFFF">
+      <td bgcolor="#33CCFF"><b><?echo $otype?></b></td>
+      <td><?echo $type;?></td>
+      <td><font size="2"><?echo $doc;?>&nbsp;</font></td>
+      <td><a href="JavaScript:openwindowlink( 'BEH_OTYPE_showone.shtml?otype=<?print urlencode($otype);?>', 'OC<?print urlencode($otype);?>')"><font size="2">[Details]</font></a></td>
+    </tr>
+<?
+  }
+  print "</table>";
+?>
+  <form action="BEH_OTYPE_add.shtml" method="POST">
+    <table width="70%" align="center">
+      <tr>
+	<td align="center" bgcolor="#0000FF" colspan="2">
+	  <font color="#FFFFFF"><strong>Add new OUPUT TYPE</strong></font>
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">
+	  Output Type Name
+	</td>
+	<td>
+	  <input type="text" name="otype">
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">
+	  Behavior Type
+	</td>
+	<td>
+	  <select name="type">
+	    <option value="NORMAL">Normal</option>
+	    <option value="IENRICH">Input Enrich</option>
+	  </select>
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">Documentation</td>
+	<td><textarea name="doc" cols="65" rows="5"></textarea></td>
+      </tr>
+      <tr>
+	<td colspan="2" align="center"><input type="submit" value="Add output type"></td>
+      </tr>
+    </table>
+  </form>
+<?
+  mysql_close( $db );
+
+  include(FOOTER);
+?>
diff --git a/modules/bibformat/web/admin/BIBREFORMAT_display.shtml.wml b/modules/bibformat/web/admin/BIBREFORMAT_display.shtml.wml
new file mode 100644
index 000000000..5cd087c22
--- /dev/null
+++ b/modules/bibformat/web/admin/BIBREFORMAT_display.shtml.wml
@@ -0,0 +1,111 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?  include('localconf.inc.shtml');
+?>
+
+#include "cdspage.wml" \
+    title="Reformat Records" \
+    navbar_name="admin" \
+    navbar_select="BIBREFORMAT_display" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+<?
+  include("security.inc.shtml");
+<protect>
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+//==========================================================================
+//  File: BIBREFORMAT_display.shtml
+//  Description: Displays and manages the current reformatting processes
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR
+//  Author: Eduardo.Margallo@cern.ch
+//==========================================================================
+
+## load config variables:
+$TMPDIR    = "<TMPDIR>";
+$BINDIR = "<BINDIR>";
+
+  include(DB);
+  include(ERROR);
+  include(HEADER);
+?>
+
+ Have some pre-stored behaviours rebuilt. This tool queues the requests
+ for administration convenience. Each request goes through three phases. First
+ the XML file for the record(s) gets downloaded. Then it is fed to BibFormat so
+ as to generate the desired behaviour data. Finally it is uploaded, possibly
+ upgrading the old data.
+ <h2>Add new requests</h2>
+ <p>If you want to make a new request for record reformatting, use the links at 
+    the bottom. The first one allows for full collections, whereas the second 
+    one permits more complex queries to be made.<br>
+     <a href="BIBREFORMAT_tree.shtml">Reformat Collections</a><br>
+     <a href="BIBREFORMAT_hand.shtml">Manual Choice</a>
+
+ <h2>Request status</h2>
+ <p>This page shows the currently queued reformat queries. Being lengthy tasks,
+    they are stored for administration convenience.
+    Cancelling a task is possible, though individual phases must be completed
+    before it can be removed. Therefore, it might take some time before a
+    task disappears.
+  <a name="task_list"></a>
+<?
+  /* returns a string limited to $length, truncating the original one if
+     necessary and adding ... */
+  function limit_length( $name, $length ) {
+    return strlen( $name ) < $length ? 
+	      $name : substr( $name, 0, $length-3 ) . "...";
+  }
+
+  $query = "select * from flxREFORMAT";
+  $result = mysql_query( $query );
+  if( mysql_num_rows( $result ) > 0 ) { ?>
+
+  <p>
+ <strong>Running tasks as of <? echo date("jS F Y, h:i:s"); ?>:</strong>
+ <br>&nbsp;<small>Please bear in mind that this page only reflects the state of the processes
+    at the time of your request</small> (<a href="BIBREFORMAT_display.shtml">Refresh</a>).
+ <p>
+
+ 
+
+ <table border=1 width=100%>
+  <tr><strong><th>User</th><th>Date</th><th>Records</th>
+      <th>Output Format</th><th>State</th><th>Action</th></strong></tr>
+
+  <?
+  }
+  else { ?>
+  <h5>&raquo;No running tasks.</h5> 
+  <?
+  }
+  while( $row=mysql_fetch_row($result) ) {
+    print "<tr>";
+    for( $i=1;$i<6;$i++ )
+      print "<td>" . limit_length( $row[$i], 30 ) . "</td>";
+    print "<td><a href='BIBREFORMAT_process.shtml?". 
+	  "action=cancel&id=" . urlencode( $row[0] ) . "'>". 
+	  "Cancel</a></td>";
+    print "</tr>";
+  } 
+?>
+ </table>
+ 
+<?include(FOOTER)?>
diff --git a/modules/bibformat/web/admin/BIBREFORMAT_hand.shtml.wml b/modules/bibformat/web/admin/BIBREFORMAT_hand.shtml.wml
new file mode 100644
index 000000000..2523ca204
--- /dev/null
+++ b/modules/bibformat/web/admin/BIBREFORMAT_hand.shtml.wml
@@ -0,0 +1,119 @@
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+#include "cdspage.wml" \
+    title="Reformat Records" \
+    navbar_name="admin" \
+    navbar_select="bibformat" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+//==========================================================================
+//  File: BIBREFORMAT_hand.shtml
+//  Description: Shows the collection tree together with the available 
+//               formats. The user chooses
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR
+//  Author: Eduardo.Margallo@cern.ch
+//==========================================================================
+
+  include(DB);
+  include(ERROR);
+  include(HEADER);
+
+  $db = mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or
+	errormsg( "Coudn't connect to mySQL" );
+
+  mysql_select_db( $DB_DB ) or
+	errrormsg( "Couldn't connect into database " . $DB_DB );
+
+?>
+  Start a task selecting records using the CGI search script parameters. 
+  This method permits complex record choices to be made. To use it, just make a
+  search query from the main page and use the string after the "?" in the
+  URL bar to fill the form below.
+  <br>
+  If you want to reformat a full collection use <a href="BIBREFORMAT_tree.shtml">Reformat Collections</a>
+  <br>
+  <table><tr>
+  <td><i>Example:&nbsp;&nbsp;</i></td>
+  <td><code>p=neutrino&amp;c=Preprints</code></td></tr>
+  <tr><td></td><td>
+  This string will choose all records containing the word "neutrino" in any
+  field within the "Preprints" cathegory. 
+  </td></tr></table>
+
+<form action="BIBREFORMAT_process.shtml" method="POST">
+<table width="70%" align="center">
+  <tr>
+    <td align="center" bgcolor="#000000" colspan="2">
+      <font color="#FFFFFF">Add a new task</font>
+    </td>
+  </tr>
+  <tr>
+   <td width=120>Search string:</td>
+   <td><INPUT TYPE="text" SIZE=60 NAME="QUERY" value=""></td>
+  </tr>
+  <tr>
+   <td width=120>Behaviours to reformat:</td>
+<?
+    $query  = "select f.name,f.code from format as f left join
+               flxBEHAVIORS as ot ON ot.name=UPPER(f.code) where 
+	       f.code NOT LIKE 'x%' and ot.name is not 
+	       null ";
+    $result = mysql_query( $query );
+
+    $i = 0;
+    ?>
+    
+    <td><table width='100%' cellpadding='0' cellspacing='0' border='0'>
+	<small><tr>
+    <?
+    while( $row = mysql_fetch_array( $result ) ) {
+    ?>
+      <td align=right>
+      <small><small> <? echo $row["name"]?> </small></small>
+      <input type=checkbox name=<? echo "'chk_" . $id . "_" . $i ."'"?> 
+      value=<? echo "'" . $row["code"] ."'>" ?>
+      </td>
+      <?
+      $i = $i + 1;
+      if( $i % 4 == 0  ) {
+        ?></tr><tr><?
+      }
+    }
+    ?></tr></small></table></td><?
+?>
+  </tr>
+ <tr>
+  <td colspan=2 align="center">
+   <INPUT TYPE="submit" value="  Add  ">
+  </td>
+ </tr>
+</table>
+</h5>
+</form>
+
+<?include(FOOTER)?>
diff --git a/modules/bibformat/web/admin/BIBREFORMAT_process.shtml.wml b/modules/bibformat/web/admin/BIBREFORMAT_process.shtml.wml
new file mode 100644
index 000000000..bf8c4aadb
--- /dev/null
+++ b/modules/bibformat/web/admin/BIBREFORMAT_process.shtml.wml
@@ -0,0 +1,123 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?  include('localconf.inc.shtml');
+?>
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+  include("security.inc.shtml");
+<protect>
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+//==========================================================================
+//  File: BIBREFORMAT_process.shtml
+//  Description: Displays and manages the current reformatting processes
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, 
+//  Author: Eduardo.Margallo@cern.ch
+//==========================================================================
+
+## load config variables:
+$TMPDIR    = "<TMPDIR>";
+$CGIBINDIR = "<CGIBINDIR>";
+
+  include(DB);
+
+
+
+  /* returns a string limited to $length, truncating the original one if
+     necessary and adding ... */
+  function limit_length( $name, $length ) {
+    return strlen( $name ) < $length ? 
+	      $name : substr( $name, 0, $length-3 ) . "...";
+  }
+
+  /* Creates a query file in the temporary directory and starts a
+     new bibreformat process in the background so as to handle it. */
+  function admit_query( $QUERY, $FLEXELINK ) {
+    global $uid_email, $CGIBINDIR, $TMPDIR;
+    $bibreformat = $CGIBINDIR . "/bibreformat";
+
+    $date = addslashes( date("Y-m-d h:m:s") );
+    $user = addslashes( $uid_email );
+    $QUERY = addslashes( urlencode($QUERY) );
+    $FLEXELINK = addslashes( $FLEXELINK );
+
+    $query = "insert into flxREFORMAT values 
+    (NULL,'".$user."', '".$date."', '".$QUERY."', '".$FLEXELINK."', 'waiting')";
+    mysql_query( $query );
+    exec( $bibreformat . " > /dev/null 2> /tmp/bibreformat.err &" ); 
+  }
+
+
+  if ( !empty($HTTP_GET_VARS) ) {
+    $cancel = 0;
+    $file   = "";
+    while( $var = each($HTTP_GET_VARS) ) {
+      if( $var["key"] == "action" && $var["value"] == "cancel" ) 
+        $cancel = 1;
+      if( $var["key"] == "id" ) $id = $var["value"];
+    }
+    if( $cancel && isset($id) ) {
+      $query = "delete from flxREFORMAT where id=$id";
+      mysql_query( $query );
+    }
+  }
+  else if( !empty($HTTP_POST_VARS) ) {
+    $dict = array();
+    while( $var = each($HTTP_POST_VARS) ) {
+      if( $var["key"] <> "QUERY" ) {
+        $parts = split( "_", $var["key"] );
+
+
+        if( "chk" == $parts[0] ) { 
+          $format    = $var["value"];
+          $id        = $parts[1];
+
+	  if( $id <> "" ) {
+	    $query     = "select name from collection where id=$id";
+	    $result    = mysql_query( $query );
+	    $row       = mysql_fetch_array( $result );
+	    $name      = urlencode( $row["name"] );
+	  }
+	  else $name= "all";
+	  if( !$dict[$name] ) {
+	    $dict = array_merge( $dict, array( $name=>"$format," ) );
+	  }
+	  else {
+	    $dict[$name] = $dict[$name] . "$format,";
+	  }
+
+
+        }
+      }
+
+    }
+
+    while( $var = each( $dict ) ) {
+      if( $var[key]!=all ) $QUERY = "'c=" . $var["key"] . "'";
+      $FLEXELINK = "otype=" . substr( $var["value"], 0 , -1 );
+      admit_query( $QUERY, $FLEXELINK );
+    }
+
+  }
+  Header("Location:BIBREFORMAT_display.shtml");
+?>
\ No newline at end of file
diff --git a/modules/bibformat/web/admin/BIBREFORMAT_tree.shtml.wml b/modules/bibformat/web/admin/BIBREFORMAT_tree.shtml.wml
new file mode 100644
index 000000000..6568bced6
--- /dev/null
+++ b/modules/bibformat/web/admin/BIBREFORMAT_tree.shtml.wml
@@ -0,0 +1,167 @@
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+#include "cdspage.wml" \
+    title="Reformat Records" \
+    navbar_name="admin" \
+    navbar_select="bibformat" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+//==========================================================================
+//  File: BIBREFORMAT_tree.shtml
+//  Description: Shows the collection tree together with the available 
+//               formats. The user chooses there the collections and formats
+//               to be updated.
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR
+//  Author: Eduardo.Margallo@cern.ch
+//==========================================================================
+
+  include(DB);
+  include(ERROR);
+  include(HEADER);
+?>
+  <p>This utility allows you to reformat all the records in a collection and
+     upload them back to the database. Selecting an output type in an upper 
+     node will cause all the subtree to be rebuilt.
+  <p>If you need more specific patterns to choose records please use 
+  <a href="BIBREFORMAT_hand.shtml">Manual Choice</a>.
+  <br><br>
+<?
+  $db = mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or
+	errormsg( "Coudn't connect to mySQL" );
+
+  mysql_select_db( $DB_DB ) or
+	errrormsg( "Couldn't connect into database " . $DB_DB );
+
+  $query  = "select f.name from format as f left join
+               flxBEHAVIORS as ot ON ot.name=UPPER(f.code) where 
+	       f.code NOT LIKE 'x%' and ot.name is not 
+	       null";
+  $result   = mysql_query( $query );
+  $num_fmts = mysql_num_rows( $result );
+
+  /* returns a string limited to $length, truncating the original one if
+     necessary and adding ... */
+  function limit_length( $name, $length ) {
+    return strlen( $name ) < $length ? 
+	      $name : substr( $name, 0, $length-3 ) . "...";
+  }
+
+  /* Puts out a checkbox list with the available formats for a collection */
+
+  function print_formats( $id ) {
+    // For the time being formats are hard-coded. collection_format will
+    // later on be the source for the options in this select item 
+
+    $query  = "select f.code,f.name from collection_format as cf, format as f left join
+               flxBEHAVIORS as ot ON ot.name=UPPER(f.code) where 
+	       cf.id_format=f.id and f.code NOT LIKE 'x%' and ot.name is not 
+	       null and cf.id_collection=$id";
+    $result = mysql_query( $query );
+
+    $i = 0;
+    ?>
+    
+    <td><table width='100%' cellpadding='0' cellspacing='0' border='0'>
+	<small><tr>
+    <?
+    while( $row = mysql_fetch_array( $result ) ) {
+
+      if( $i % 4 == 0  ) {
+        ?></tr><tr><?
+      }
+      ?>
+      <td align=right width="25%">
+      <small><small> <? echo limit_length( $row["name"], 20 )?> </small></small>
+      <input type=checkbox name=<? echo "'chk_" . $id . "_" . $i ."'"?> 
+      value=<? echo "'" . $row["code"] ."'>" ?>
+      </td>
+      <?
+      $i = $i + 1;
+    }
+
+    for( ; $i % 4 <> $num_fmts % 4; $i++ )
+       print "<td>&nbsp;</td>";
+    ?></tr></small></table></td><?
+
+	
+  }
+  
+  /* Prints out the category tree with the available formats for each 
+     cathegory */
+  function generate_tree( $id, $level ) {
+    global $row_number; 
+    $query  = "select name from collection where id=$id";
+    $result = mysql_query( $query );
+    $row    = mysql_fetch_array( $result );
+
+    if( $id ) {
+      $header = "h" . ($level+2);
+      $size   = max( 10, 16-2*$level );
+      $syms   = array( "+ ", "* ", "- " );
+      $name   = limit_length( $row["name"], 40 );
+      
+      $color  = $row_number%2==0 ? "#E0E0D0": "#FFFFFF";
+      $row_number = $row_number + 1;
+      
+      echo "<tr bgcolor='$color' ><td>";
+      for( $i = 1; $i < 2 * $level; $i++ ) echo "&nbsp;&nbsp;";
+      echo "<span style=\"font-size: " . $size . "pt\">" . $syms[$level%3] .
+           $name . "</span></td>";
+
+      print_formats( $id );
+      
+      echo "</tr>\n";
+    }
+    else {
+      ?><table width='100%' border=0>
+      <form action='BIBREFORMAT_process.shtml' method='post'>
+      <th width=300 align=center>Collection name</th>
+      <th colspan=1 align=center>Output Format Selection</th></tr><?
+    }
+
+    $sub_query  = "select * from collection_collection where id_dad=$id";
+    $result = mysql_query( $sub_query );
+    $num_results = mysql_num_rows( $result );
+
+    if( $num_results == 0 ) return;
+
+    for( $i=0; $i < $num_results; $i++ ) {
+      $row = mysql_fetch_array( $result );
+      generate_tree( $row["id_son"], $level + 1 );
+      echo "\n";
+    }
+    if( !$id ) {
+      echo "<tr><td></td><td><input type='submit'></td></tr>\n";
+      echo "</table>\n";
+      echo "</form>\n";
+    }
+  }
+
+  generate_tree( 0, 0 ); 
+  include(FOOTER)
+?>
diff --git a/modules/bibformat/web/admin/FORMAT_add.shtml.wml b/modules/bibformat/web/admin/FORMAT_add.shtml.wml
new file mode 100644
index 000000000..5336ea41d
--- /dev/null
+++ b/modules/bibformat/web/admin/FORMAT_add.shtml.wml
@@ -0,0 +1,95 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: FORMAT_add.shtml (flexElink WI)
+//  Description: Adds a new format to the DB. It will only add the format if the
+//	EL code is syntactically correct and it's "interpretable". It serializes
+//	the EL code into the corresponding semantic structure and stores it
+//	in the DB for optimization (no need to re-compile afterwards)
+//  POST parameters:
+//      fname --> (required) Name (id) of the format to be added
+//	doc ----> (optional) Description of the purpose of the format
+//	code ---> (optional) Format's EL code
+//  Notes: If the format is succesfully added to the DB it redirects the current
+//	browser to the format display list
+//  Requires:  DB, ERROR, EXECUTOR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    errorpage("<b>Format name</b> hasn't been specified");
+    exit;
+  }
+
+  if(!isset($doc))
+    $doc="";
+    
+  if(!isset($code))
+    $code="";
+  else
+  {
+    $temp_code=$code;
+    if(get_magic_quotes_gpc())
+      $temp_code=stripslashes($temp_code);
+    include(EXECUTOR);
+    $a=new AELExecutor();
+
+    list($ok, $msg)=$a->checkCode( $temp_code, array($fname) );
+    if(!$ok)
+    {
+      errorpage("Code incorrect: <b>$msg</b>");
+      exit;
+    }
+    $ser=addslashes(serialize($msg));
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $fname=trim(strtoupper($fname));
+  if(!get_magic_quotes_gpc())
+  {
+    $doc=addslashes($doc);
+  }
+  
+  $qry="insert into flxFORMATS (name, value, doc, serialized)
+	values ('$fname', '$code', '$doc', '$ser')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new format:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("location: FORMAT_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/FORMAT_del.shtml.wml b/modules/bibformat/web/admin/FORMAT_del.shtml.wml
new file mode 100644
index 000000000..9b1f1e58a
--- /dev/null
+++ b/modules/bibformat/web/admin/FORMAT_del.shtml.wml
@@ -0,0 +1,66 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: FORMAT_del.shtml (flexElink WI)
+//  Description: Deletes a certain format from the DB.
+//  POST parameters:
+//      fname --> (required) Name (id) of the format to be deleted
+//  Notes: If the behaviour is succesfully added to the DB it redirects the
+//      browser to the behaviour list display
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    errorpage("<b>Format name</b> hasn't been specified");
+    exit;
+  }
+  $fname=strtoupper(trim($fname));
+  if(!get_magic_quotes_gpc())
+  {
+    $fname=addslashes($fname);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $qry="delete from flxFORMATS
+        where name='$fname'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete format:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+
+  header("location: FORMAT_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/FORMAT_display.shtml.wml b/modules/bibformat/web/admin/FORMAT_display.shtml.wml
new file mode 100644
index 000000000..fa1884ffb
--- /dev/null
+++ b/modules/bibformat/web/admin/FORMAT_display.shtml.wml
@@ -0,0 +1,139 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Formats" \
+    navbar_name="admin" \
+    navbar_select="FORMAT_display"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: FORMAT_display.shtml (flexElink WI)
+//  Description: Shows a list of the existing formats in the DB, and allows to
+//      access to their details, add or delete
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include(DB);
+  include(ERROR);
+  
+  include(HEADER);
+?>
+
+<p>Define the output formats, i.e. how to create the output out of
+internal BibFormat variables that were extracted in a previous step.
+This is the functionality you would want to configure most of the
+time.  It may reuse formats, user defined functions, knowledge bases,
+etc.
+
+<em>Example:</em> You can tell that authors should be printed in
+italic, that if there are more than 10 authors only the first three
+should be printed, etc.
+<p>
+
+<script language="javascript">
+<!---
+  function openwindowlink( addr, name )
+  {
+    window.open( addr, "Window"+name, "height=700,witdh=120,scrollbars,resizable")
+  }
+//-->
+</script>
+
+<?
+
+  $cBorder="#CCCCCC";
+  $cHeaders="#9999FF";
+  $cCells="#CCFFFF";
+  $cImpCells="#FFFFFFF0";
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or errormsg("Couldn't conn
+  ect to mySQL");
+  mysql_selectdb( $DB_DB ) or errormsg(sprintf("Couldn't connect into database %
+    s", $DB_DB));
+  $qry_format="select name, doc from flxFORMATS order by name";
+  $res_format=mysql_query( $qry_format );
+
+  print '<table width="100%" cellpadding="4" cellspacing="0">';
+  $color="";
+  while($format=mysql_fetch_array($res_format))
+  {
+    list($name, $doc)=$format;
+
+    if($color==$cCells)
+      $color="#FFFFFF";
+    else
+      $color=$cCells;
+    $doc=str_replace("\n", "<br>", $doc);
+    $doc=str_replace(" ", "&nbsp;", $doc);
+    print "<tr bgcolor=\"$color\">";
+    print "<td><b>$name</b></td>";
+    print "<td width=\"100%\"><font size=\"2\">$doc&nbsp;</font></td>";
+    print "<td><a href=\"JavaScript:openwindowlink( 'FORMAT_showone.shtml?fname=".urlencode($name)."', 'FE' )\"><font size=\"2\">[Code]</font></a></td>";
+    print "<td><a href=\"JavaScript:openwindowlink( 'FORMAT_edit.shtml?fname=".urlencode($name)."', 'FM' )\"><font size=\"2\">[Modify]</font></a></td>";
+    print "<td><a href=\"FORMAT_del.shtml?fname=".urlencode($name)."\"><font size=\"2\">[Delete]</font></a></td>";
+    print "</tr>";
+    print "<tr>";
+    print "<td colspan=\"3\">".str_replace("\n", "<br>", htmlspecialchars($code))."</td>";
+    print "</tr>";
+  }
+  print "</table>";
+
+
+  mysql_close( $db );
+
+?>
+  <hr><br>
+  <form action="FORMAT_add.shtml" method="POST">
+    <table width="70%" align="center">
+      <tr>
+        <td bgcolor="#000000" width="100%" align="center" colspan="2">
+          <font color="#FFFFFF">Add new FORMAT</font>
+        </td>
+      </tr>
+      <tr>
+        <td>Format Name</td>
+        <td><input type="text" name="fname"></td>
+      </tr>
+      <tr>
+        <td>Format documentation</td>
+        <td><textarea name="doc" cols="65" rows="5"></textarea><td>
+      </tr>
+      <tr>
+        <td>EL Code</td>
+        <td><textarea name="code" cols="65" rows="20"></textarea><td>
+      </tr>
+      <tr>
+	<td align="center" colspan="2"><input type="submit" value="Add"></td>
+      </tr>
+    </table>
+  </form>
+<?
+  include(FOOTER);
+?>
diff --git a/modules/bibformat/web/admin/FORMAT_edit.shtml.wml b/modules/bibformat/web/admin/FORMAT_edit.shtml.wml
new file mode 100644
index 000000000..4c37704c9
--- /dev/null
+++ b/modules/bibformat/web/admin/FORMAT_edit.shtml.wml
@@ -0,0 +1,170 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: FORMAT_edit.shtml (flexElink WI)
+//  Description: Allows to modify format data and updates the changes in the DB.
+//	It will only update the format data if the EL code is syntactically 
+//	correct and it's "interpretable". It serializes the EL code into the 
+//	corresponding semantic structure and stores it in the DB for 
+//	optimization (no need to re-compile afterwards)
+//  POST parameters:
+//      fname --> (required) Name (id) of the format to be modified
+//	process -> (optional) When is set, the script updates the format data
+//		in the DB with the parameter values
+//	fname_orig -> (required if process is set) Original name of the format
+//		to be updated (the name format can be changed)
+//      doc ----> (optional) Description of the purpose of the format
+//      code ---> (optional) Format's EL code
+//  Notes: If the format is succesfully updated in the DB it closes the current
+//      browser and refreshes the opener one
+//  Requires:  DB, ERROR, EXECUTOR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    print "<b>Format name</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+  $fname=trim(strtoupper($fname));
+//--------DISPLAY
+  if(!isset($process))
+  {
+    $qry="select value, doc from flxFORMATS where name='$fname'";
+    $qh=mysql_query( $qry );
+    if(mysql_num_rows( $qh )<1)
+    {
+      print "<b>Format</b> not found";
+      print "<hr>";
+      print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+      exit;
+    }
+    $row=mysql_fetch_array($qh);
+    list($code, $doc)=$row;
+?>
+<form action="FORMAT_edit.shtml" method="POST">
+  <table witdth="100%" bgcolor="#CCCCCC" cellpadding="4" cellspacing="4">
+    <tr align="center">
+      <td bgcolor="#CCCCFF">
+	<font size="4">
+	  Editing format <b>'<? echo $fname;?>'</b></font>
+      </td>
+    </tr>
+      <td bgcolor="#FFFFFF">
+	   <b>Format Name</b> <input name="fname" value="<?echo $fname;?>">
+      </td>
+    <tr>
+      <td align="center" bgcolor="#FFFFFF">
+	<b>Documentation</b><br> 
+        <textarea name="doc" cols="100" rows="5"><?echo $doc;?></textarea>
+      </td>
+    </tr>
+    <tr>
+      <td align="center" bgcolor="#FFFFFF">
+	<b>EL Code</b><br>
+	<textarea name="code" cols="100" rows="25"><?echo $code;?></textarea>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center">
+        <input type="submit" value="UPDATE" name="btnUpd">
+        <input type="submit" value="UPDATE&CLOSE" name="btnUpdClose">
+      </td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="fname_orig" value="<?echo $fname;?>">
+</form>
+<?
+  }
+  else
+  {
+    if( (!isset($code)) )
+      $code="";
+    else
+    {
+      $temp_code=$code;
+      if(get_magic_quotes_gpc())
+        $temp_code=stripslashes($temp_code);
+      include(EXECUTOR);
+      $a=new AELExecutor();
+      list($ok, $msg)=$a->checkCode( $temp_code, array( $fname ) );
+      if(!$ok)
+      {
+        print "Code incorrect: <b>$msg</b><hr> <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        exit;
+      }
+      else
+      {
+	$serialized=addslashes(serialize($msg));
+      }
+    }
+    if(!isset($doc))
+    {
+      $doc="";
+    }
+    if(!get_magic_quotes_gpc())
+    {
+      $fname=addslashes($fname);
+      $code=addslashes($code);
+      $doc=addslashes($doc);
+    }
+    $qry="update flxFORMATS 
+	set name='$fname',
+	    value='$code',
+	    doc='$doc',
+	    serialized='$serialized'
+	where name='$fname_orig'";
+    
+    if(!mysql_query( $qry ))
+    {
+      print "Impossible to update format: <b>$fname</b><br>".mysql_error()."<hr> <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      mysql_close( $db );
+      exit;
+    }
+   
+   mysql_close( $db );
+?>
+   <script language="JavaScript">
+     opener.location.reload(false);
+<?
+   if(isset($btnUpd))
+     print "window.location=\"FORMAT_edit.shtml?fname=$fname\";";
+   else
+     print "window.close();";
+?>
+   </script>
+<?
+
+  }
+
+?>
diff --git a/modules/bibformat/web/admin/FORMAT_showone.shtml.wml b/modules/bibformat/web/admin/FORMAT_showone.shtml.wml
new file mode 100644
index 000000000..bca650913
--- /dev/null
+++ b/modules/bibformat/web/admin/FORMAT_showone.shtml.wml
@@ -0,0 +1,89 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: BEH_showone.shtml (flexElink WI)
+//  Description: Shows the details for a given format (code and documentation). 
+//  POST parameters:
+//      fname --> (required) Name (id) of the format to be shown
+//  Requires:  DB, ERROR, FUNCTION_LIB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+  include(FUNCTION_LIB);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    errorpage("<b>Format name</b> hasn't been specified");
+    exit;
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $fname=trim(strtoupper($fname));
+  $qry="select value, doc from flxFORMATS where name='$fname'";
+  $res=mysql_query( $qry );
+  list($code, $doc) =mysql_fetch_array( $res );
+  $code=text2HTML($code);
+  $doc=str_replace("\n","<br>",$doc);
+  $doc=str_replace(" ","&nbsp;",$doc);
+
+?>
+<html>
+  <head>
+    <title>Format <?print $fname;?></title>
+  </head>
+  <body>
+    <table width="100%" bgcolor="#808080">
+      <tr align="center">
+        <td colspan="2" bgcolor="#66CCFF">
+          <font size="4">Details of format <b>'<? echo $fname;?>'</b></font>
+        </td>
+      </tr>
+      <tr>
+	<td width="15%" valign="middle" bgcolor="#CCFFFF">
+            <b>Documentation</b>
+        </td>
+	<td bgcolor="#FFFFFFFF">
+            <font size="2"><?print $doc; ?></font>
+        </td>
+      </tr>
+      <tr>
+	<td width="15%" valign="middle" bgcolor="#CCFFFF">
+           <b>EL Code</b>
+	</td>
+	<td bgcolor="#FFFFFFFF">
+	   <?print $code;?>
+	</td>
+      </tr>
+    </table>
+</html>
+<?
+    mysql_close( $db );
+
+?>
diff --git a/modules/bibformat/web/admin/KB_VALUE_add.shtml.wml b/modules/bibformat/web/admin/KB_VALUE_add.shtml.wml
new file mode 100644
index 000000000..3ec62b6e1
--- /dev/null
+++ b/modules/bibformat/web/admin/KB_VALUE_add.shtml.wml
@@ -0,0 +1,81 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: KB_VALUE_add.shtml (flexElink WI)
+//  Description: Adds a new pair key-value to the DB table which corresponds to
+//	the indicated KB. 
+//  POST parameters:
+//      name --> (required) Name (id) of the KB to which the value will be added
+//	key ---> (required) Key value to be added 
+//	value -> (required) Value that maps the indicated key 
+//  Notes: If the KB is succesfully added to the DB it redirects the current
+//      browser to the indicated KB display 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  
+  if( (!isset($kb_name)) or (trim($kb_name)=="") )
+  {
+    errorpage("<b>KB name</b> hasn't been specified");
+    exit;
+  }
+
+  if( (!isset($key)) or (trim($key)=="") )
+  {
+    errorpage("<b>KB entry key</b> hasn't been specified");
+    exit;
+  }
+  
+  if( (!isset($value)) or (trim($value)=="") )
+  {
+    errorpage("<b>KB entry value</b> hasn't been specified");
+    exit;
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $kb_name=strtoupper(trim($kb_name));
+  $qry="select kb_table from flxKBS where kb_name='$kb_name'";
+  $res=mysql_query( $qry, $db );
+  list($kb_table)=mysql_fetch_array( $res );
+  
+  $qry="insert into $kb_table(vkey, value)
+	values ('$key', '$value')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new KB entry:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("location: KB_showone.shtml?name=".urlencode($kb_name));
+?>
diff --git a/modules/bibformat/web/admin/KB_VALUE_del.shtml.wml b/modules/bibformat/web/admin/KB_VALUE_del.shtml.wml
new file mode 100644
index 000000000..e25da081d
--- /dev/null
+++ b/modules/bibformat/web/admin/KB_VALUE_del.shtml.wml
@@ -0,0 +1,73 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: KB_del.shtml (flexElink WI)
+//  Description: Deletes a pair key-value from the DB table of the indicated KB.
+//  POST parameters:
+//      name --> (required) Name (id) of the KB from which the key-value has to
+//		be deleted
+//      key ---> (required) Key value to be deleted (the mapping value is also
+//		deleted)
+//  Notes: If the KB is succesfully added to the DB it redirects the current
+//      browser to the indicated KB display 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+  
+  if( (!isset($kb_name)) or (trim($kb_name)=="") )
+  {
+    errorpage("<b>KB name</b> hasn't been specified");
+    exit;
+  }
+
+  if( (!isset($key)) or (trim($key)=="") )
+  {
+    errorpage("<b>KB entry key</b> hasn't been specified");
+    exit;
+  }
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $kb_name=strtoupper(trim($kb_name));
+  $qry="select kb_table from flxKBS where kb_name='$kb_name'";
+  $res=mysql_query( $qry, $db );
+  list($kb_table)=mysql_fetch_array( $res );
+  
+  $qry="delete from $kb_table where vkey='$key'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete KB entry:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("location: KB_showone.shtml?name=".urlencode($kb_name));
+?>
diff --git a/modules/bibformat/web/admin/KB_add.shtml.wml b/modules/bibformat/web/admin/KB_add.shtml.wml
new file mode 100644
index 000000000..b1b3f9362
--- /dev/null
+++ b/modules/bibformat/web/admin/KB_add.shtml.wml
@@ -0,0 +1,96 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: KB_add.shtml (flexElink WI)
+//  Description: Adds a new KB to the DB. It also creates a table in the 
+//	configuration DB that will keep the KB values.
+//  POST parameters:
+//      name --> (required) Name (id) of the KB to be added
+//	table -> (optional) DB table name; if it is not provided (normal i
+//		situation), the script will generate it automatically ensuring
+//		that is unique in this DB
+//      doc ----> (optional) Description of the purpose of the KB
+//  Notes: If the KB is succesfully added to the DB it redirects the current
+//      browser to the KB display list
+//  Requires:  DB, ERROR, EXECUTOR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($name)) or (trim($name)=="") )
+  {
+    errorpage("<b>KB name</b> hasn't been specified");
+    exit;
+  }
+
+  if( !isset($table) )
+    $table="";
+  
+  if( !isset($doc) )
+    $doc="";
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL");
+  mysql_selectdb( $DB_DB );
+  
+  $name=trim(strtoupper($name));
+  $table=trim(strtoupper($table));
+  if($table=="")
+  {
+    $table="flxKB$name";
+  }
+  
+  $qry="create table $table(
+	  vkey varchar(255) not null,
+	  value text default '',
+	  primary key(vkey))";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to create KB table:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  if(!get_magic_quotes_gpc())
+  {
+    $doc=addslashes($doc);
+  }
+  $qry="insert into flxKBS(kb_name, kb_table, doc)
+	values ('$name', '$table', '$doc')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new KB:<br> ".mysql_error());
+    $qry="drop table $table";
+    mysql_query( $qry );
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("location: KB_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/KB_del.shtml.wml b/modules/bibformat/web/admin/KB_del.shtml.wml
new file mode 100644
index 000000000..1613a67a8
--- /dev/null
+++ b/modules/bibformat/web/admin/KB_del.shtml.wml
@@ -0,0 +1,74 @@
+<?
+
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+   The CDSware is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   The CDSware 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 CDSware; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: KB_del.shtml (flexElink WI)
+//  Description: Deletes an existing KB from the DB. It also deletes its 
+//	corresponding DB table. 
+//  POST parameters:
+//      name --> (required) Name (id) of the KB to be added
+//  Notes: If the KB is succesfully added to the DB it redirects the current
+//      browser to the KB display list
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($name)) or (trim($name)=="") )
+  {
+    errorpage("<b>KB name</b> hasn't been specified");
+    exit;
+  }
+  $name=strtoupper(trim($name));
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $qry="select kb_table from flxKBS where kb_name='$name'";
+  $qh=mysql_query($qry, $db);
+  list($table)=mysql_fetch_array($qh);
+  $qry="delete from flxKBS
+        where kb_name='$name'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete KB:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  $qry="drop table $table";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("KB entry deleted but not table:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+
+  header("location: KB_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/KB_display.shtml.wml b/modules/bibformat/web/admin/KB_display.shtml.wml
new file mode 100644
index 000000000..80c06c1f2
--- /dev/null
+++ b/modules/bibformat/web/admin/KB_display.shtml.wml
@@ -0,0 +1,138 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Knowledge Bases (KBs)" \
+    navbar_name="admin" \
+    navbar_select="KB_display"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: KB_display.shtml (flexElink WI)
+//  Description: Shows a list of the existing KBs in the DB, and allows to
+//      access to their list of values, add new ones or delete existing ones
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include(DB);
+  include(ERROR);
+  
+  include(HEADER);
+?>
+
+<p>Define one or more knowledge bases that enables you to transform
+various forms of input data values into the unique standard form on
+the output.
+
+<em>Example:</em> You can tell that <em>Phys Rev D</em> and
+<em>Physical Review D</em> are both the same journal and that these
+names should be standardized to <em>Phys Rev : D</em>.<p>
+
+<script language="javascript">
+<!---
+function openwindowlink( addr, name )
+{
+  window.open( addr, "Window"+name, "height=320,witdh=320,scrollbars,resizable")
+}
+//-->
+</script>
+
+<?
+
+  $cBorder="#CCCCCC";
+  $cHeaders="#FFCC33";
+  $cCells="#FFFFFF";
+  $cImpCells="#FFCC99";
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $qry="select kb_name, kb_table, doc from flxKBS order by kb_name";
+  $res=mysql_query( $qry, $db );
+  print '<table bgcolor="'.$cBorder.'" border="1" width="100%">';
+  print "<tr bgcolor=\"$cHeaders\">";
+  print "<td align=\"center\"><b>KB name</b></td>";
+  print "<td align=\"center\"><b>Table name</b></td>";
+  print "<td align=\"center\"><b>Documentation</b></td>";
+  print "<td colspan=\"3\">&nbsp;</td>";
+  print "</tr>";
+  while($row=mysql_fetch_array($res))
+  {
+    list($kb_name, $kb_table, $doc)=$row;
+    $doc=str_replace("\n", "<br>", $doc);
+    $doc=str_replace(" ", "&nbsp;", $doc);
+    print "<tr bgcolor=\"$cCells\">";
+    print "<td bgcolor=\"$cImpCells\">
+	      <strong>$kb_name</strong>
+	   </td>";
+    print "<td>$kb_table</td>";
+    print "<td width=\"100%\"><font size=\"2\">$doc&nbsp;</font></td>";
+    print "<td><font size=\"2\">
+	      <a href=\"JavaScript:openwindowlink( 'KB_showone.shtml?name=".urlencode($kb_name)."', 'KBSv$kb_name' )\">[Values]</a></font></td>";
+    print "<td><font size=\"2\">
+	      <a href=\"JavaScript:openwindowlink( 'KB_edit.shtml?name=".urlencode($kb_name)."', 'KBSe$kb_name' )\">[Modify]</a></font></td>";
+    print "<td><font size=\"2\">
+	      <a href=\"KB_del.shtml?name=".urlencode($kb_name)."\">[Delete]</a>
+	       </font></td>";
+    print "</tr>";
+  }
+  print "</table>";
+
+
+  mysql_close( $db );
+
+?>
+  <br>
+  <form action="KB_add.shtml" method="POST">
+    <table width="70%" align="center">
+      <tr>
+        <td bgcolor="#000000" width="100%" align="center" colspan="2">
+          <font color="#FFFFFF">Add new KNOWLEDGE BASE</font>
+        </td>
+      </tr>
+      <tr>
+        <td align="right">Knowledge base name</td>
+        <td><input type="text" name="name"></td>
+      </tr>
+      <tr>
+        <td align="right">Knowledge base table name (normally leave it blank)</td>
+        <td><input type="text" name="table"></td>
+      </tr>
+      <tr>
+	<td align="right">KB documentation</td>
+	<td><textarea name="doc" cols="50" rows="5"></textarea><td>
+      </tr>
+      <tr>
+	<td colspan="2" align="center"><input type="submit" value="Add"></td>
+      </tr>
+    </table>
+  </form>
+<?
+  include(FOOTER);
+?>
diff --git a/modules/bibformat/web/admin/KB_edit.shtml.wml b/modules/bibformat/web/admin/KB_edit.shtml.wml
new file mode 100644
index 000000000..8c22a7b35
--- /dev/null
+++ b/modules/bibformat/web/admin/KB_edit.shtml.wml
@@ -0,0 +1,129 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: KB_edit.shtml (flexElink WI)
+//  Description: Allows to modify KB data and updates the changes in the DB.
+//	DB table is not available for modifcation
+//  POST parameters:
+//      name --> (required) Name (id) of the KB to be modified
+//      process -> (optional) When is set, the script updates the KB data
+//              in the DB with the parameter values
+//      name_orig -> (required if process is set) Original name of the KB
+//              to be updated (the KB format may be changed)
+//      doc ----> (optional) Description of the purpose of the KB
+//  Notes: If the KB is succesfully updated in the DB it closes the current
+//      browser and refreshes the opener one
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($name)) or (trim($name)=="") )
+  {
+    print "<b>KB name</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+  $name=trim(strtoupper($name));
+//--------DISPLAY
+  if(!isset($process))
+  {
+    $qry="select kb_table, doc from flxKBS where kb_name='$name'";
+    $qh=mysql_query( $qry );
+    if(mysql_num_rows( $qh )<1)
+    {
+      print "<b>KB '$name'</b> not found";
+      print "<hr>";
+      print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+      exit;
+    }
+    $row=mysql_fetch_array($qh);
+    list($table, $doc)=$row;
+?>
+<form action="KB_edit.shtml" method="POST">
+  <table witdth="100%" bgcolor="#CCCCCC" cellpadding="4" cellspacing="4">
+    <tr align="center">
+      <td bgcolor="#FFCC99" colspan="2">
+	<font size="4">
+	  Editing KB <b>'<? echo $name;?>'</b></font>
+      </td>
+    </tr>
+      <td bgcolor="#FFFFFF">
+	   <b>KB Name</b> <input name="name" value="<?echo $name;?>">
+      </td>
+      <td bgcolor="#FFFFFF">
+	<b>Table name: </b><? echo $table;?>
+      </td>
+    <tr>
+      <td align="center" bgcolor="#FFFFFF" colspan="2">
+	<b>Documentation</b><br> 
+        <textarea name="doc" cols="100" rows="5"><?echo $doc;?></textarea>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit" value="UPDATE"></td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="name_orig" value="<?echo $name;?>">
+</form>
+<?
+  }
+  else
+  {
+    if( (!isset($doc)) )
+      $doc="";
+    if(!get_magic_quotes_gpc())
+    {
+      $doc=addslashes($doc);
+    }
+    $qry="update flxKBS 
+	  set kb_name='$name',
+	    doc='$doc'
+	where kb_name='$name_orig'";
+    
+    if(!mysql_query( $qry ))
+    {
+      print "Impossible to update KB '$name_orig': ".mysql_error();
+      print "<hr><a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      exit();
+    }
+   
+   mysql_close( $db );
+?>
+   <script language="JavaScript">
+     opener.location.reload(false);
+     window.close();
+   </script>
+<?
+
+  }
+
+?>
diff --git a/modules/bibformat/web/admin/KB_showone.shtml.wml b/modules/bibformat/web/admin/KB_showone.shtml.wml
new file mode 100644
index 000000000..b92569ca6
--- /dev/null
+++ b/modules/bibformat/web/admin/KB_showone.shtml.wml
@@ -0,0 +1,98 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: KB_showone.shtml (flexElink WI)
+//  Description: Shows the list of values for a given KB (it also shows complete
+//	KB reated data: documentation, DB table name). It allows to add or
+//	delete values to the displayed KB
+//  POST parameters:
+//      name --> (required) Name (id) of the KB to be shown
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($name)) or (trim($name)=="") )
+  {
+    errorpage("<b>KB name</b> hasn't been specified");
+    exit;
+  }
+
+  $cBorder="#CCCCCC";
+  $cHeaders="#FFCC33";
+  $cCells="#FFFFFF";
+  $cImpCells="#FFCC99";
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $qry="select kb_table, doc from flxKBS where kb_name='$name'";
+  $res=mysql_query( $qry, $db );
+  list($table, $doc)=mysql_fetch_array( $res );
+  $doc=str_replace("\n", "<br>", $doc);
+  $doc=str_replace(" ", "&nbsp;", $doc);
+
+  $qry="select vkey, value from $table order by vkey";
+  $res=mysql_query( $qry, $db );
+  print "<form action=\"KB_VALUE_add.shtml\" method=\"POST\">";
+  print "<input type=\"hidden\" name=\"kb_name\" value=\"$name\">";
+  print '<table bgcolor="'.$cBorder.'" width="100%" border="1">';
+  print "<tr bgcolor=\"$cHeaders\">";
+  print "<td colspan=\"3\" align=\"center\"><font size=\"4\">Values of KB <b>'$name'</b> ".mysql_num_rows($res)." values</font></td>";
+  print "</tr>";
+  print "<tr>";
+  print "<td bgcolor=\"$cImpCells\"><b>Table Name</b></td>";
+  print "<td colspan=\"2\" bgcolor=\"$cCells\">$table</td>";
+  print "</tr>";
+  print "<tr>";
+  print "<td bgcolor=\"$cImpCells\"><b>Documentation</b></td>";
+  print "<td colspan=\"2\" bgcolor=\"$cCells\"><font size=\"2\">$doc</font></td>";
+  print "</tr>";
+
+  print "<tr bgcolor=\"#CCCCCC\">";
+  print "<td bgcolor=\"$cImpCells\" colspan=\"3\" align=\"center\">ADD <b>VALUE</b>: 
+	      <i>Key</i> <input type=\"text\" name=\"key\">
+	      <i>Value</i> <input type=\"text\" name=\"value\">
+	      <input type=\"submit\" value=\"Add value\">
+	  </td>";
+  print "</tr>";
+  while($row=mysql_fetch_array($res))
+  {
+    list($key, $value)=$row;
+    print "<tr bgcolor=\"$cCells\">";
+    print "<td width=\"50%\">$key</td>";
+    print "<td width=\"50%\">$value</td>";
+    print "<td align=\"center\"><a href=\"KB_VALUE_del.shtml?kb_name=".urlencode($name)."&key=".urlencode($key)."\"><font size=\"2\">[Delete]</font></a></td>";
+    print "</tr>";
+  }
+  print "</table>";
+  print "</form>";
+
+
+  mysql_close( $db );
+
+?>
diff --git a/modules/bibformat/web/admin/LINK_ACTION_add_edit.shtml.wml b/modules/bibformat/web/admin/LINK_ACTION_add_edit.shtml.wml
new file mode 100644
index 000000000..ad6af0bb7
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_ACTION_add_edit.shtml.wml
@@ -0,0 +1,221 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_ACTION_add_edit.shtml (flexElink WI)
+//  Description: Adds a new action to an existing link condtion or allows to 
+//	modify the data of an existing action of a link condition.
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition which the
+//              action's condition belongs (or will belong) to
+//      eorder ----> (required) Action's condition evaluation order number for 
+//              the given link definition 
+//      action ----> (optional, possible values: ADD, EDIT) Determines which
+//              operations wants to be performed: adding a new action or 
+//              editing an existing one. When is set, the update or insert is
+//              made in the DB; if not, the needed controls for the adding or
+//              modifying are displayed
+//      aorder ---> (required if action is EDIT) Apply order of the 
+//              cation inside the corresponding link condition. When adding,
+//              if this parameter is not set the script will look for the last
+//              apply order number assigned in this link action
+//      el_code -> (optional) Action's EL code
+//  Notes: If the condition is succesfully added to the DB it closes the current
+//      browser and refreshes the opener one
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($linktype)) or (trim($linktype)=="") )
+  {
+    print "<b>Link type</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  if( (!isset($eorder)) or (trim($eorder)=="") )
+  {
+    print "<b>Link condition evaluation order</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  if(get_magic_quotes_gpc())
+    $linktype=stripslashes($linktype);
+  $linktype=trim(strtoupper($linktype));
+  
+  if(!isset($action))
+  {
+    $action="ADD";
+    if( (isset($aorder)) or (trim($aorder)!="") )
+    {
+      $action="EDIT";
+    }
+    else
+    {
+      $aorder="";
+    }
+    $el_code="";
+    
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB );
+
+    if($action=="EDIT")
+    {
+      $qry="select el_code
+   	  from flxLINKTYPECONDITIONSACTIONS
+	  where linktype='$linktype'
+	  and eval_order='$eorder'
+          and apply_order=$aorder";
+      $qh=mysql_query($qry);
+      if(mysql_num_rows($qh)<=0)
+      {
+        print "<b>Action not found</b>";
+        print "<hr>";
+        print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+        mysql_close($db);
+        exit;
+      }
+      list($el_code)=mysql_fetch_array($qh);
+    }
+    mysql_close($db);
+?>
+<form action="LINK_ACTION_add_edit.shtml" method="POST">
+  <table>
+    <tr>
+      <td colspan="2" bgcolor="black">
+	<font color="white" align="center">
+	  <? echo $action; ?> action for linktype '
+	    <? echo $linktype;?> - <?echo $eorder;?>'</font>
+      </td>
+    </tr>
+    <tr>
+      <td>Apply order: </td>
+      <td><input type="text" name="<?
+        if($action=="EDIT")
+          print "";
+        else
+          print "aorder";?>" value="<?echo $aorder;?>"></td>
+    </tr>
+    <tr>
+      <td>Action EL Code: </td>
+      <td><textarea name="el_code" cols="80" rows="15"><?echo $el_code;?></textarea></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit"></td>
+    </tr>
+  </table>
+  <input type="hidden" name="linktype" value="<?echo $linktype;?>">
+  <input type="hidden" name="eorder" value="<?echo $eorder;?>">
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="action" value="<?echo $action;?>">
+  <?if($action=="EDIT"){
+      print "<input type=\"hidden\" name=\"aorder\" value=\"$aorder\">";
+    }?>
+</form>
+<?
+  }
+  else
+  {
+    if( (!isset($el_code)) )
+      $el_code="";
+    else
+    {
+      $temp_code=$el_code;
+      if(get_magic_quotes_gpc())
+        $temp_code=stripslashes($temp_code);
+      include(EXECUTOR);
+      $a=new AELExecutor();
+      list($ok, $msg)=$a->checkCode( $temp_code );
+      if(!$ok)
+      {
+        print "Action code incorrect: <b>$msg</b><hr>
+          <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        exit;
+      }
+    }
+    
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB );
+
+    if( (!isset($aorder)) or (trim($aorder)==""))
+    {
+      $qry="select max(apply_order)+1 
+	    from flxLINKTYPECONDITIONSACTIONS
+	    where linktype='$linktype'
+	    and eval_order=$eorder";
+      $qh=mysql_query($qry, $db);
+      list($aorder)=mysql_fetch_array( $qh );
+      if($aorder==null)
+	$aorder=0;
+    }
+
+    if(!get_magic_quotes_gpc())
+    {
+      $el_code=addslashes($el_code);
+    }
+
+    $qry="";
+    if($action=="ADD")
+    {
+      $qry="insert into flxLINKTYPECONDITIONSACTIONS
+	      (linktype, eval_order, apply_order, el_code) 
+            values
+	      ('$linktype', '$eorder', '$aorder', '$el_code')";
+    }
+    elseif($action=="EDIT")
+    {
+      $qry="update flxLINKTYPECONDITIONSACTIONS
+	    set linktype='$linktype',
+		eval_order='$eorder',
+		apply_order='$aorder',
+		el_code='$el_code'
+            where linktype='$linktype'
+	    and eval_order='$eorder'
+	    and apply_order='$aorder'";
+    }
+
+    if(!mysql_query( $qry ))
+    {
+      print "Impossible to $action action:<br> ".mysql_error()."<br>".
+          "<a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      mysql_close($db);
+      exit;
+    }
+
+    mysql_close($db);
+
+
+?>
+<script language="JavaScript">
+  opener.location.reload(false);
+  window.close();
+</script>
+<?
+  }
+
+?>
diff --git a/modules/bibformat/web/admin/LINK_ACTION_del.shtml.wml b/modules/bibformat/web/admin/LINK_ACTION_del.shtml.wml
new file mode 100644
index 000000000..8dfb70607
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_ACTION_del.shtml.wml
@@ -0,0 +1,77 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_ACTION_del.shtml (flexElink WI)
+//  Description: Deletes an existing action of a certain condition for a given 
+//	link definition from the DB.
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition the condition
+//              belongs to
+//      eorder ----> (required) Action's condition evaluation order number for 
+//		the given link definition 
+//      aorder ----> (required) Action's apply order number inside the given 
+//		condition
+//  Notes: If the action is succesfully added to the DB the current browser is
+//      redirectred to the link detailed definition display 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($linktype)) or (trim($linktype)=="") )
+  {
+    errorpage("<b>Link type</b> hasn't been specified");
+    exit();
+  }
+  if( (!isset($eorder)) or (trim($eorder)=="") )
+  {
+    errorpage("<b>Evaluation order</b> hasn't been specified");
+    exit();
+  }
+  if( (!isset($aorder)) or (trim($aorder)=="") )
+  {
+    errorpage("<b>Apply order</b> hasn't been specified");
+    exit();
+  }
+
+  $linktype=strtoupper(trim($linktype));
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+  
+  $qry="delete from flxLINKTYPECONDITIONSACTIONS
+        where linktype='$linktype' 
+        and eval_order='$eorder'
+        and apply_order='$aorder'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete action:<br> ".mysql_error());
+  }
+  mysql_close( $db );
+
+  header("location: LINK_showone.shtml?linktype=".urlencode($linktype));
+?>
diff --git a/modules/bibformat/web/admin/LINK_COND_add_edit.shtml.wml b/modules/bibformat/web/admin/LINK_COND_add_edit.shtml.wml
new file mode 100644
index 000000000..2b3c6ece1
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_COND_add_edit.shtml.wml
@@ -0,0 +1,309 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_COND_add_edit.shtml (flexElink WI)
+//  Description: Adds a new condition to an existing link or allows to modify 
+// 	the data of an existing condition of a link.
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition which the
+//		condition belongs (or will belong) to
+//	action ----> (optional, possible values: ADD, EDIT) Determines which
+//		operations wants to be performed: adding a new condition or 
+//		editing an existing one. When is set, the update or insert is
+//		made in the DB; if not, the needed controls for the adding or
+//		modifying are displayed
+//	eorder ---> (required if action is EDIT) Evalutation order of the 
+//		condition inside the corresponding link definition. When adding,
+//		if this parameter is not set the script will look for the last
+//		evaluation order number assigned in this link definition
+//      stype ----> (optional, allowed values: EXT, INT) Condition solving type;
+//		if it isn't specified is put to the default value (EXT)
+//	el_condition -> (optional) Condition's EL code
+//      bfile ----> (optional) Base file path for internal link solving
+//      burl -----> (optional) Base url path for internal link solving
+//	formats --> (optional) List of file formats ids separated by "|"
+//  Notes: If the condition is succesfully added to the DB it closes the current
+//	browser and refreshes the opener one
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($linktype)) or (trim($linktype)=="") )
+  {
+    print "<b>Link type</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  if(get_magic_quotes_gpc())
+    $linktype=stripslashes($linktype);
+  $linktype=trim(strtoupper($linktype));
+  
+  if(!isset($action))
+  {
+    $action="ADD";
+    if( (isset($eorder)) or (trim($eorder)!="") )
+    {
+      $action="EDIT";
+    }
+    else
+    {
+      $eorder="";
+    }
+    $el_condition="";
+    $formats="";
+    
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB );
+
+    if($action=="EDIT")
+    {
+      $qry="select el_condition, solvingtype,
+		   base_file, base_url
+   	  from flxLINKTYPECONDITIONS
+	  where linktype='$linktype'
+	  and eval_order='$eorder'";
+      $qh=mysql_query($qry);
+      if(mysql_num_rows($qh)<=0)
+      {
+        print "<b>Condition not found</b>";
+        print "<hr>";
+        print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+        mysql_close($db);
+        exit;
+      }
+      list($el_condition, $stype, $bfile, $burl)=mysql_fetch_array($qh);
+      $qry="select f.name
+                   from flxLINKTYPECONDITIONSFILEFORMATS cf, flxFILEFORMATS f
+                   where cf.linktype='$linktype'
+                   and cf.eval_order='$eorder'
+                   and f.name=cf.fname";
+      $qh=mysql_query($qry);
+      $formats="";
+      while($row=mysql_fetch_array($qh))
+      {
+	$f=$row[0];
+	$formats.="$f | ";
+      }
+    }
+    else //Add action
+    {
+      $qry="select solvingtype, base_file, base_url
+	    from flxLINKTYPES
+	    where linktype='".addslashes($linktype)."'";
+      $qh=mysql_query($qry, $db);
+      list($stype, $bfile, $burl)=mysql_fetch_array($qh);
+    }
+    mysql_close($db);
+?>
+<form action="LINK_COND_add_edit.shtml" method="POST">
+  <table>
+    <tr>
+      <td colspan="2" bgcolor="black">
+	<font color="white" align="center">
+	  <? echo $action; ?> condition for linktype '
+	    <? echo $linktype;?>'</font>
+      </td>
+    </tr>
+    <tr>
+      <td>Evaluation order: </td>
+      <td><input type="text" name="<?
+        if($action=="EDIT")
+          print "";
+        else
+          print "eorder";?>" value="<?echo $eorder;?>"></td>
+    </tr>
+    <tr>
+      <td>Condition EL Code: </td>
+      <td><textarea name="el_condition" cols="80" rows="2"><?echo $el_condition;?></textarea></td>
+    </tr>
+    <tr>
+      <td>Solving type</td>
+      <td><select name="stype">
+	    <option value="EXT" 
+		<?if($stype=="EXT") echo "selected";?>>External</option>
+	    <option value="INT" 
+		<?if($stype=="INT") echo "selected";?>>Internal</option>
+	  </select>
+      </td>
+    </tr>
+    <tr>
+      <td>Base file path</td>
+      <td><input type="text" name="bfile" value="<? echo $bfile; ?>" size="107"></td>
+    </tr>
+    <tr>
+      <td>Base url</td>
+      <td><input type="text" name="burl" value="<? echo $burl; ?>" size="107"></td>
+    </tr>
+    <tr>
+      <td>Associated file formats</td>
+      <td><input type="text" name="formats" size="107" value="<?echo $formats;?>"></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit"></td>
+    </tr>
+  </table>
+  <input type="hidden" name="linktype" value="<?echo $linktype;?>">
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="action" value="<?echo $action;?>">
+  <?if($action=="EDIT"){
+      print "<input type=\"hidden\" name=\"eorder\" value=\"$eorder\">";
+    }?>
+</form>
+<?
+  }
+  else
+  {
+    if( (!isset($el_condition)) )
+      $el_condition="";
+    else
+    {
+      $temp_code=$el_condition;
+      if(get_magic_quotes_gpc())
+        $temp_code=stripslashes($temp_code);
+      include(EXECUTOR);
+      $a=new AELExecutor();
+      list($ok, $msg)=$a->checkCode( $temp_code );
+      if(!$ok)
+      {
+        print "Condition code incorrect: <b>$msg</b><hr>
+          <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        exit;
+      }
+    }
+    
+    $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+    mysql_selectdb( $DB_DB );
+
+    if( (!isset($eorder)) or (trim($eorder)==""))
+    {
+      $qry="select max(eval_order)+1 from flxLINKTYPECONDITIONS
+	    where linktype='$linktype'";
+      $qh=mysql_query($qry, $db);
+      list($eorder)=mysql_fetch_array( $qh );
+      if($eorder==null)
+	$eorder=0;
+    }
+
+    if(!isset($formats))
+    {
+      $formats="";
+    }
+
+    if(!get_magic_quotes_gpc())
+    {
+      $el_condition=addslashes($el_condition);
+      $bfile=addslashes($bfile);
+      $burl=addslashes($burl);
+    }
+
+    $qry="";
+    if($action=="ADD")
+    {
+      $qry="insert into flxLINKTYPECONDITIONS
+	      (linktype, eval_order, el_condition,
+	       solvingtype, base_file, base_url)
+            values
+	      ('$linktype', '$eorder', '$el_condition',
+	       '$stype', '$bfile', '$burl')";
+    }
+    elseif($action=="EDIT")
+    {
+      $qry="update flxLINKTYPECONDITIONS
+	    set linktype='$linktype',
+		eval_order='$eorder',
+		el_condition='$el_condition',
+		solvingtype='$stype',
+		base_file='$bfile',
+		base_url='$burl'
+            where linktype='$linktype'
+	    and eval_order='$eorder'";
+    }
+
+    if(!mysql_query( $qry ))
+    {
+      print "Impossible to $action condition:<br> ".mysql_error()."<br>".
+          "<a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      mysql_close($db);
+      exit;
+    }
+
+    $qry="delete from flxLINKTYPECONDITIONSFILEFORMATS
+	  where linktype='$linktype'
+	  and eval_order='$eorder'";
+    
+    if(!mysql_query( $qry ))
+    {
+      print "Impossible to update associated formats<br> ".mysql_error().
+          "<a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      mysql_close($db);
+      exit;
+    }
+    $f=split("\|", $formats);
+
+    $errors="";
+    foreach($f as $format)
+    {
+      $format=strtoupper(trim($format));
+      if($format=="")
+       continue;
+      $qry="select name
+	    from flxFILEFORMATS
+	    where name='$format'";
+      $qh=mysql_query($qry);
+      if(mysql_num_rows($qh)<1)
+      {
+	$errors.="Format '$format' doesn't exist, couldn't associate<hr>";
+	continue;
+      }
+      $qry="insert into flxLINKTYPECONDITIONSFILEFORMATS(linktype, eval_order, fname)
+	  values ('$linktype', '$eorder', '$format')";
+      if(!mysql_query( $qry ))
+      {
+        $errors.="Couldn't associate format '$format'<br> ".mysql_error();
+      }
+    }
+    if($errors!="")
+    {
+      print "Record succesfully updated but ERRORS found associating formats:<br> <b>$errors</b><hr>
+        <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      mysql_close($db);
+      exit;
+    }
+    mysql_close($db);
+
+
+?>
+<script language="JavaScript">
+  opener.location.reload(false);
+  window.close();
+</script>
+<?
+  }
+
+?>
diff --git a/modules/bibformat/web/admin/LINK_COND_del.shtml.wml b/modules/bibformat/web/admin/LINK_COND_del.shtml.wml
new file mode 100644
index 000000000..17dcc6980
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_COND_del.shtml.wml
@@ -0,0 +1,92 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_COND_del.shtml (flexElink WI)
+//  Description: Deletes an existing condition(and all its depending
+//      items) for a given link definition from the DB.
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition the condition
+//		belongs to
+//	eorder ----> (required) Condition evaluation order number for the given 
+//		link definition
+//  Notes: If the format is succesfully added to the DB the current browser is
+//      redirectred to the link detailed definition display 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($linktype)) or (trim($linktype)=="") )
+  {
+    errorpage("<b>Link type</b> hasn't been specified");
+    exit();
+  }
+  if( (!isset($eorder)) or (trim($eorder)=="") )
+  {
+    errorpage("<b>Evaluation order</b> hasn't been specified");
+    exit();
+  }
+
+  $linktype=strtoupper(trim($linktype));
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+
+  $qry="delete from flxLINKTYPECONDITIONSACTIONS
+        where linktype='$linktype'
+	and eval_order='$eorder'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete actions related to this condition:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  $qry="delete from flxLINKTYPECONDITIONSFILEFORMATS
+        where linktype='$linktype'
+	and eval_order='$eorder'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete formats related to this condition:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  $qry="delete from flxLINKTYPECONDITIONS 
+	where linktype='$linktype' and eval_order='$eorder'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete conditions related to this link type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  mysql_close( $db );
+
+  header("location: LINK_showone.shtml?linktype=".urlencode($linktype));
+?>
diff --git a/modules/bibformat/web/admin/LINK_FORMAT_add.shtml.wml b/modules/bibformat/web/admin/LINK_FORMAT_add.shtml.wml
new file mode 100644
index 000000000..854f7292d
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_FORMAT_add.shtml.wml
@@ -0,0 +1,74 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($name)) or (trim($name)=="") )
+  {
+    errorpage("<b>File format name</b> hasn't been specified");
+    exit;
+  }
+  
+  if( (!isset($text)))
+  {
+    $text="";
+  }
+  
+  if( (!isset($extensions)))
+  {
+    $extensions="";
+  }
+
+
+  if(get_magic_quotes_gpc())
+  {
+    $extensions=stripslashes($extensions);
+    $text=stripslashes($text);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $name=trim(strtoupper($name));
+  if(!get_magic_quotes_gpc())
+  {
+    $extensions=addslashes($extensions);
+    $text=addslashes($text);
+  }
+  
+  $qry="insert into flxFILEFORMATS (name, text, extensions)
+	values ('$name', '$text', '$extensions')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new file format:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("location: LINK_FORMAT_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/LINK_FORMAT_del.shtml.wml b/modules/bibformat/web/admin/LINK_FORMAT_del.shtml.wml
new file mode 100644
index 000000000..19ba3b883
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_FORMAT_del.shtml.wml
@@ -0,0 +1,56 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($name)) or (trim($name)=="") )
+  {
+    errorpage("<b>Format file name</b> hasn't been specified");
+    exit;
+  }
+
+  $name=strtoupper(trim($name));
+  if(!get_magic_quotes_gpc())
+  {
+    $name=addslashes($name);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+        or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $qry="delete from flxFILEFORMATS
+        where name='$name'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete file format:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+
+  header("location: LINK_FORMAT_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/LINK_FORMAT_display.shtml.wml b/modules/bibformat/web/admin/LINK_FORMAT_display.shtml.wml
new file mode 100644
index 000000000..1e83f041a
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_FORMAT_display.shtml.wml
@@ -0,0 +1,118 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="File Formats" \
+    navbar_name="admin" \
+    navbar_select="LINK_FORMAT_display"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+
+  include(DB);
+  include(ERROR);
+  
+  include(HEADER);
+?>
+
+<p>Define file format types based on file extensions.  This will be
+used when proposing various fulltext services.
+
+<em>Example:</em> You can tell that <code>*.pdf</code> files will
+be treated as PDF files.  <p>
+
+
+<script type="text/javascript">
+<!---
+function openwindowlink( addr )
+{
+  newwin=window.open( addr, "Mywindow", "height=620,witdh=520,scrollbars,resizable")
+}
+//-->
+</script>
+
+<?
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or errormsg("Couldn't conn
+  ect to mySQL");
+  mysql_selectdb( $DB_DB ) or errormsg(sprintf("Couldn't connect into database %
+    s", $DB_DB));
+
+  $qry="select name, text, extensions 
+               from flxFILEFORMATS 
+	       order by name";
+  $res=mysql_query( $qry, $db );
+  print '<table border="1" width="100%">';
+  print "<tr align=\"center\" bgcolor=\"#00CCFF\">";
+  print "<td><b>Format Id</b></td>";
+  print "<td><b>Format Description</b></td>";
+  print "<td><b>File Extensions</b></td>";
+  print "<td colspan=\"2\"></td>";
+  print "</tr>";
+  while($format=mysql_fetch_array($res))
+  {
+    list($name, $text, $ext)=$format;
+    print "<tr>";
+    print "<td>$name</td>";
+    print "<td>$text</td>";
+    print "<td>$ext</td>";
+    print "<td><a href=\"JavaScript:openwindowlink( '.shtml?' )\">[Modify]</a></td>";
+    print "<td><a href=\"LINK_FORMAT_del.shtml?name=$name\">[Delete]</a></td>";
+    print "</tr>";
+  }
+  print "</table>";
+
+
+  mysql_close( $db );
+
+?>
+  <hr><br>
+  <form action="LINK_FORMAT_add.shtml" method="POST">
+    <table width="70%" align="center">
+      <tr>
+        <td bgcolor="#000000" width="100%" align="center" colspan="2">
+          <font color="#FFFFFF">Add new File FORMAT</font>
+        </td>
+      </tr>
+      <tr>
+        <td>Format Name</td>
+        <td><input type="text" name="name"></td>
+      </tr>
+      <tr>
+        <td>Format Description</td>
+        <td><input type="text" name="text" size="60"></td>
+      </tr>
+      <tr>
+        <td>File Extensions</td>
+        <td><textarea name="extensions" cols="65" rows="5"></textarea><td>
+      </tr>
+      <tr>
+	<td align="center" colspan="2"><input type="submit" value="Add"></td>
+      </tr>
+    </table>
+  </form>
+<?
+  include(FOOTER);
+?>
diff --git a/modules/bibformat/web/admin/LINK_add.shtml.wml b/modules/bibformat/web/admin/LINK_add.shtml.wml
new file mode 100644
index 000000000..570d95034
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_add.shtml.wml
@@ -0,0 +1,119 @@
+<?
+
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+   The CDSware is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   The CDSware 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 CDSware; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_add.shtml (flexElink WI)
+//  Description: Adds a new link definition to the DB. 
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition to be added
+//      params ----> (optional) List of parameters that the link will accept;
+//	  	they have to be separated with "," and the order in which they
+//		are specified is the order the values will have to be passed 
+//		when solving the link
+//	stype ----> (optional, allowed values: EXT, INT) Link solving type; if
+//		it isn't specified is put to the default value (EXT)
+//	bfile ----> (optional) Base file path for internal link solving
+//	burl -----> (optional) Base url path for internal link solving
+//  Notes: If the format is succesfully added to the DB it redirects the current
+//      browser to the link display list
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+  
+  include("localconf.inc.shtml");
+  
+  include(DB);
+  include(ERROR);
+
+
+  if( (!isset($linktype)) or (trim($linktype)=="") )
+  {
+    errorpage("<b>Link Type</b> hasn't been specified");
+    exit;
+  }
+  $linktype=trim(strtoupper($linktype));
+
+  if( !isset($params) )
+  {
+    $params="";
+  }
+
+  if(!isset($stype))
+  {
+    $stype="EXT";
+  }
+  else
+  {
+    $stype=strtoupper(trim($stype));
+  }
+  if(($stype!="EXT")&&($stype!="INT"))
+  {
+    errorpage("Incorrect value for <b>solving type</b>");
+    exit;
+  }
+  if(!isset($bfile))
+    $bfile="";
+  if(!isset($burl))
+    $burl="";
+  if(!get_magic_quotes_gpc())
+  {
+    $stype=addslashes($stype);
+    $bfile=addslashes($bfile);
+    $burl=addslashes($burl);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $qry="insert into flxLINKTYPES(linktype, check_exists, 
+			     solvingtype, base_file, base_url)
+	values('$linktype', '$check', '$stype', '$bfile', '$burl')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  if(trim($params)!="")
+  {
+    $params=split(",", $params);
+    $order=0;
+    foreach($params as $param)
+    {
+      $param=trim(strtoupper($param));
+      $qry="insert into flxLINKTYPEPARAMS values('$linktype', '$param', $order)";
+      if(!mysql_query( $qry ))
+      {
+        errorpage("Impossible to insert parameter '$param':<br> ".mysql_error());
+        mysql_close( $db );
+        exit;
+      }
+      $order++;
+    }
+  }
+  
+  mysql_close( $db );
+
+  header("location: LINK_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/LINK_del.shtml.wml b/modules/bibformat/web/admin/LINK_del.shtml.wml
new file mode 100644
index 000000000..9529d340d
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_del.shtml.wml
@@ -0,0 +1,95 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_del.shtml (flexElink WI)
+//  Description: Deletes an existing link definition (and all its depending
+//	items) from the DB.
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition to be deleted
+//  Notes: If the format is succesfully added to the DB the current browser is
+//	closed and the opener one is refreshed
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($linktype)) or (trim($linktype)=="") )
+  {
+    errorpage("<b>Link type</b> hasn't been specified");
+    exit;
+  }
+  $linktype=strtoupper(trim($linktype));
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $qry="delete from flxLINKTYPECONDITIONSACTIONS where linktype='$linktype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete actions related to this link type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  $qry="delete from flxLINKTYPECONDITIONSFILEFORMATS where linktype='$linktype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete formats related to this link type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  $qry="delete from flxLINKTYPECONDITIONS where linktype='$linktype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete conditions related to this link type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  $qry="delete from flxLINKTYPEPARAMS where linktype='$linktype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete parameters related to this link type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  $qry="delete from flxLINKTYPES where linktype='$linktype'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete link type:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+?>
+<script language="JavaScript">
+  opener.location.reload(true);
+  window.close();
+</script>
diff --git a/modules/bibformat/web/admin/LINK_display.shtml.wml b/modules/bibformat/web/admin/LINK_display.shtml.wml
new file mode 100644
index 000000000..d6c441850
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_display.shtml.wml
@@ -0,0 +1,166 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Link Rules" \
+    navbar_name="admin" \
+    navbar_select="LINK_display"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: LINK_display.shtml (flexElink WI)
+//  Description: Shows a list of the existing links and their parameters, and 
+//      allows to access to their details or add new link definitions
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR, FUNCTION_LIB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+  
+  include(HEADER);
+?>
+
+<p>Define rules for automated creation of URI links from mapped
+internal variables.
+
+<em>Example:</em> You can tell a rule how to create a link to
+People database out of the <code>$100.a</code> internal variable
+repesenting author's name.  (The <code>$100.a</code> variable was mapped
+in the previous step, see the Extraction Rules.)<p>
+
+
+<script type="text/javascript">
+<!---
+  function openwindowlink( addr, name )
+  {
+    window.open( addr, "Window"+name, "height=620,witdh=320,scrollbars,resizable")
+  }
+//-->
+</script>
+<?
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $qry="select linktype
+        from flxLINKTYPES 
+	order by linktype";
+  $qh=mysql_query($qry);
+
+  print '<table width="100%" bgcolor="#CCCCCC" border="1">';
+  print "<tr align=\"center\" bgcolor=\"#33CC00\">";
+  print "<td><b>Link type label</b></td>";
+  print "<td><b>Parameters</b></td>"; 
+  print "<td>&nbsp;</td>";
+  print "</tr>";
+  while($row=mysql_fetch_array($qh))
+  {
+    list($linktype)=$row;
+    $qry_par="select pname 
+              from flxLINKTYPEPARAMS 
+	      where linktype='".addslashes($linktype)."' 
+	      order by ord";
+    $qh_par=mysql_query($qry_par);
+    $pars="";
+    while($row=mysql_fetch_array($qh_par))
+    {
+      $pars.=$row[0].",";
+    }
+    print "<tr bgcolor=\"#FFFFFF\">";
+    print "<td bgcolor=\"#CCFFCC\"><b>$linktype</b></td>";
+    print "<td>$pars</td>";
+    print "<td align=\"center\">
+             <a href=\"JavaScript:openwindowlink('LINK_showone.shtml?linktype=$linktype', 'LRSHOW$linktype')\">
+		<font size=\"2\">[Details]</font></a></td>";
+    print "</tr>";
+  }
+  print "</table>";
+  mysql_close( $db );
+
+?>
+  <form action="LINK_add.shtml" method="POST">
+    <table width="70%" align="center">
+      <tr>
+	<td align="center" bgcolor="#000000" colspan="2">
+	  <font color="#FFFFFF">Add new Link Type</font>
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">
+	  Name
+	</td>
+	<td>
+	  <input type="text" name="linktype">
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">
+	  Params
+	</td>
+	<td>
+	  <input type="text" name="params">
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">
+	  Solving type
+	</td>
+	<td>
+	  <select name="stype">
+	    <option value="EXT">External</option>
+	    <option value="INT">Internal</option>
+	  </select>
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">
+	  Base file path
+        </td>
+	<td>
+	  <input type="text" name="bfile" size="80">
+	</td>
+      </tr>
+      <tr>
+	<td width="30%" align="right">
+	  Base url
+        </td>
+	<td>
+	  <input type="text" name="burl" size="80">
+	</td>
+      </tr>
+      <tr>
+	<td colspan="2" align="center">
+	  <input type="submit" value="Add">
+	</td>
+      </tr>
+    </table>
+  </form>
+<?
+  include(FOOTER);
+?>
diff --git a/modules/bibformat/web/admin/LINK_edit.shtml.wml b/modules/bibformat/web/admin/LINK_edit.shtml.wml
new file mode 100644
index 000000000..815a6fb61
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_edit.shtml.wml
@@ -0,0 +1,221 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_edit.shtml (flexElink WI)
+//  Description: Allows to modify the data of an existing link definition by 
+//	the user.
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition to be modified
+//	linktype_orig -> (optional) Contains the original name (name in the DB)
+//		of the link definition which has to be modified. When this 
+//		parameter is set, the update in the DB is done with the 
+//		parameter values received by the script.
+//      params ----> (optional) List of parameters that the link will accept;
+//              they have to be separated with "," and the order in which they
+//              are specified is the order the values will have to be passed
+//              when solving the link
+//      stype ----> (optional, allowed values: EXT, INT) Link solving type; if
+//              it isn't specified is put to the default value (EXT)
+//      bfile ----> (optional) Base file path for internal link solving
+//      burl -----> (optional) Base url path for internal link solving
+//  Notes: If the format is succesfully added to the DB it redirects the current
+//      browser to the link detailed definition display 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+  include(FUNCTION_LIB);
+
+  if((!isset($linktype))||(trim($linktype)==""))
+  {
+    print "<b>ERROR</b>: Link type label hasn't been specified!!<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+    exit;
+  }
+  if(get_magic_quotes_gpc())
+  {
+    $linktype=stripslashes($linktype);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  if(isset($linktype_orig))
+  {
+    if(get_magic_quotes_gpc())
+    {
+      $linktype_orig=stripslashes($linktype_orig);
+    }
+    $linktype=trim(strtoupper($linktype));
+    $linktype_orig=trim(strtoupper($linktype_orig));
+    if( !isset($params) )
+    {
+      $params="";
+    }
+    if(!isset($stype))
+    {
+      $stype="EXT";
+    }
+    else
+    {
+      $stype=strtoupper(trim($stype));
+    }
+    if(($stype!="EXT")&&($stype!="INT"))
+    {
+      print "Incorrect value for <b>solving type</b>";
+      print "<hr>";
+      print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+      exit;
+    }
+    if(!isset($bfile))
+      $bfile="";
+    if(!isset($burl))
+      $burl="";
+    if(!get_magic_quotes_gpc())
+    {
+      $stype=addslashes($stype);
+      $bfile=addslashes($bfile);
+      $burl=addslashes($burl);
+    }
+    $qry="delete from flxLINKTYPEPARAMS
+	  where linktype='$linktype'";
+    if(!mysql_query($qry))
+    {
+      print "Impossible to delete old link params for '$linktype': ".
+	    mysql_error();
+      print "<hr>";
+      print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+      mysql_close( $db );
+      exit;
+    }
+
+    $qry="update flxLINKTYPES
+	 set solvingtype='$stype',
+	     base_file='$bfile',
+	     base_url='$burl'
+         where linktype='$linktype'";
+    if(!mysql_query($qry))
+    {
+      print "Impossible to update link type '$linktype': ".mysql_error();
+      print "<hr>";
+      print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+      mysql_close( $db );
+      exit;
+    }
+
+    if(trim($params)!="")
+    {
+      $params=split(",", $params);
+      $order=0;
+      foreach($params as $param)
+      {
+	if(trim($param)=="")
+	  continue;
+        $param=trim(strtoupper($param));
+        $qry="insert into flxLINKTYPEPARAMS 
+		 values('$linktype', '$param', $order)";
+        $errors="";
+        if(!mysql_query( $qry ))
+        {
+	  $errors.="Impossible to insert parameter '$param':<br> ".
+		    mysql_error()."<br><br>";
+        }
+        $order++;
+      }
+      if($errors!="")
+      {
+        print $errors;
+	print "<hr>";
+        print "<a href=\"JavaScript:window.history.go(-1)\">[Back]</a>";
+        mysql_close( $db );
+        exit;
+      }
+    }
+
+    header("location: LINK_showone.shtml?linktype=$linktype");
+    exit;
+  }
+
+  $qry="select solvingtype, base_file, base_url
+        from flxLINKTYPES
+	where linktype='".addslashes($linktype)."'";
+  $qh=mysql_query($qry);
+
+  print "<form action=\"\" method=\"POST\">";
+  print '<table width="100%" bgcolor="#CCCCCC" border="1">';
+  print "<tr bgcolor=\"#33CC00\" align=\"center\">";
+  print "<td colspan=\"2\"><font size=\"6\">Modifying link type '$linktype'</font></td>";
+  print "</tr>";
+
+  list($stype, $bfile, $burl)=mysql_fetch_row($qh);
+  
+  $qry_par="select pname 
+            from flxLINKTYPEPARAMS 
+            where linktype='".addslashes($linktype)."' 
+            order by ord";
+  $qh_par=mysql_query($qry_par);
+  $pars="";
+  while($row=mysql_fetch_array($qh_par))
+  {
+    $pars.=$row[0].",";
+  }
+  ?>
+  <tr bgcolor="#FFFFFF">
+  <td bgcolor="#CCFFCC" width="15%"><b>Parameters</b></td>
+  <td><input type="text" name="params" value="<?echo $pars;?>" size="70"></td>
+  </tr>
+  <tr bgcolor="#FFFFFF">
+  <td bgcolor="#CCFFCC"><b>Solving type</b></td>
+  <td><select name="stype">
+	<option value="EXT" <?if($stype=="EXT") echo "selected";?>>
+		      External
+        </option>
+	<option value="INT" <?if($stype=="INT") echo "selected";?>>
+		      Internal
+        </option>
+  </tr>
+  <tr bgcolor="#FFFFFF">
+  <td bgcolor="#CCFFCC"><b>Base file path</b></td>
+  <td><input type="text" name="bfile" size="100" value="<?echo $bfile;?>"></td>
+  </tr>
+  <tr bgcolor="#FFFFFF">
+  <td bgcolor="#CCFFCC"><b>Base url</b></td>
+  <td><input type="text" name="burl" size="100" value="<?echo $burl;?>"></td>
+  </tr>
+  <tr align="center">
+  <td colspan="2">
+    <input type="button" value="CANCEL" onClick="JavaScript:window.history.go(-1)">
+    <input type="submit" value="UPDATE">
+    <input type="hidden" name="linktype" value="<?echo $linktype;?>">
+    <input type="hidden" name="linktype_orig" value="<?echo $linktype;?>">
+  </td>
+  </tr>
+  </table>
+  </form>
+<?
+  mysql_close( $db );
+?>
diff --git a/modules/bibformat/web/admin/LINK_showone.shtml.wml b/modules/bibformat/web/admin/LINK_showone.shtml.wml
new file mode 100644
index 000000000..a639c26a3
--- /dev/null
+++ b/modules/bibformat/web/admin/LINK_showone.shtml.wml
@@ -0,0 +1,212 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: LINK_add.shtml (flexElink WI)
+//  Description: Show the details of a link definition which is in the DB. It
+//	shows link definition data (parameters, type, base paths) and 
+//	corresponding link condtions with their actions. It allows to perform
+//	management operations (delete, add, modifiy) over all the items diplayed
+//  POST parameters:
+//      linktype --> (required) Name (id) of the link definition to be shown
+//  Requires:  DB, ERROR, FUNCTION_LIB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+  include(FUNCTION_LIB);
+
+?>
+<script language="javascript">
+<!---
+  function openwindowlink( addr, name )
+  {
+    window.open( addr, "Window"+name, "height=420,witdh=320,scrollbars,resizable")
+  }
+//-->
+</script>
+<?
+  if((!isset($linktype))||(trim($linktype)==""))
+  {
+    print "<b>ERROR</b>: Link type label hasn't been specified!!<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  if(get_magic_quotes_gpc())
+  {
+    $linktype=stripslashes($linktype);
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $qry="select solvingtype, base_file, base_url
+        from flxLINKTYPES
+	where linktype='".addslashes($linktype)."'";
+  $qh=mysql_query($qry);
+
+  print '<table width="100%" bgcolor="#CCCCCC" border="1">';
+  print "<tr bgcolor=\"#33CC00\" align=\"center\">";
+  print "<td colspan=\"2\"><font size=\"6\">Details of link type '$linktype'</font></td>";
+  print "</tr>";
+
+  list($stype, $bfile, $burl)=mysql_fetch_row($qh);
+  
+  $qry_par="select pname 
+            from flxLINKTYPEPARAMS 
+            where linktype='".addslashes($linktype)."' 
+            order by ord";
+  $qh_par=mysql_query($qry_par);
+  $pars="";
+  while($row=mysql_fetch_array($qh_par))
+  {
+    $pars.=$row[0].",";
+  }
+  
+  print "<tr bgcolor=\"#FFFFFF\">";
+  print "<td bgcolor=\"#CCFFCC\" width=\"15%\"><b>Parameters</b></td>";
+  print "<td>$pars</td>";
+  print "</tr>";
+  print "<tr bgcolor=\"#FFFFFF\">";
+  print "<td bgcolor=\"#CCFFCC\"><b>Solving type</b></td>";
+  $temp="Internal";
+  if($stype=="EXT")
+  {
+    $temp="External";
+  }
+  print "<td>$temp</td>";
+  print "</tr>";
+  if($stype=="INT")
+  {
+    print "<tr bgcolor=\"#FFFFFF\">";
+    print "<td bgcolor=\"#CCFFCC\"><b>Base file path</b></td>";
+    print "<td>$bfile</td>";
+    print "</tr>";
+    print "<tr bgcolor=\"#FFFFFF\">";
+    print "<td bgcolor=\"#CCFFCC\"><b>Base url</b></td>";
+    print "<td>$burl</td>";
+    print "</tr>";
+  }
+  print "</table>";
+
+  print '<table width="100%" cellspacing="0" bgcolor="#CCCCCC" cellpadding="4" border="0">';
+  print "<tr align=\"center\">";
+  print "<td>
+	 <a href=\"JavaScript:openwindowlink('LINK_COND_add_edit.shtml?linktype=".urlencode($linktype)."', 'LRADDC$linktype')\">[Add condition]</a></td>";
+  print "<td><a href=\"LINK_edit.shtml?linktype=".urlencode($linktype)."\">[Modify]</a></td>";
+  print "<td><a href=\"LINK_del.shtml?linktype=".urlencode($linktype)."\">[Delete]</a></td>";
+  print "</tr>";
+  print "</table>";
+
+  $qry="select eval_order, el_condition, el_action, 
+	       solvingtype, base_file, base_url
+	from flxLINKTYPECONDITIONS
+	where linktype='".addslashes($linktype)."'
+	order by eval_order";
+  $qh=mysql_query($qry, $db);
+
+  if(mysql_num_rows($qh)>=1)
+  {
+    print '<table width="100%" bgcolor="#CCCCCC" border="1">';
+    print "<tr bgcolor=\"#33CC00\" align=\"center\">";
+    print "<td colspan=\"4\"><b>CONDITIONS</b></td>";
+    print "</tr>";
+
+    while($row=mysql_fetch_array($qh))
+    {
+      print "<tr bgcolor=\"#CCFFCC\" align=\"center\">";
+      print "<td><font size=\"2\"><b>Evaluation Order</b></font></td>";
+      print "<td width=\"100%\"><font size=\"2\"><b>Condition EL Code</b></font></td>";
+      print "<td><font size=\"2\"><b>Solve type</b></font></td>";
+      print "<td><font size=\"2\"><b>Formats</b></font></td>";
+      print "</tr>";
+      
+      list($eorder, $condition, $action, $stype, $bfile, $burl)=$row;
+      $qry_fmts="select f.name
+		 from flxLINKTYPECONDITIONSFILEFORMATS cf, flxFILEFORMATS f
+		 where cf.linktype='".addslashes($linktype)."'
+		 and cf.eval_order='$eorder'
+		 and f.name=cf.fname";
+      $qh_fmts=mysql_query($qry_fmts, $db);
+      $fmts="";
+      while($fmt=mysql_fetch_array($qh_fmts))
+      {
+	$fmts.=$fmt[0]."<br>";
+      }
+      print "<tr bgcolor=\"#FFFFFF\">"; 
+      print "<td align=\"center\">$eorder</td>";
+      print "<td>".text2HTML($condition)."</td>";
+      print "<td>$stype</td>";
+      print "<td>$fmts</td>";
+      print "</tr>";
+      if($stype=="INT")
+      {
+        print "<tr bgcolor=\"#FFFFFF\">";
+        print "<td bgcolor=\"#CCFFCC\"><font size=\"2\"><b>Base FILE</b></font></td>";
+        print "<td colspan=\"4\">$bfile</td>";
+        print "</tr>";
+        print "<tr bgcolor=\"#FFFFFF\">";
+        print "<td bgcolor=\"#CCFFCC\"><font size=\"2\"><b>Base URL</b></font></td>";
+        print "<td colspan=\"4\">$burl</td>";
+        print "</tr>";
+      }
+
+      $qry_ac="select apply_order, el_code
+            from flxLINKTYPECONDITIONSACTIONS
+	    where linktype='".addslashes($linktype)."'
+	    and eval_order=$eorder
+	    order by apply_order";
+     $qh_ac=mysql_query($qry_ac, $db);
+     while($row_ac=mysql_fetch_array($qh_ac))
+     {
+	list($aorder, $action)=$row_ac;
+        print "<tr bgcolor=\"#FFFFFF\">";
+        print "<td bgcolor=\"#CCFFCC\">
+	       <font size=\"2\"><b>Action ($aorder)</b></font></td>";
+        print "<td>".text2HTML($action)."</td>";
+        print "<td><font size=\"2\">
+                    <a href=\"JavaScript:openwindowlink('LINK_ACTION_add_edit.shtml?linktype=".urlencode($linktype)."&eorder=$eorder&aorder=$aorder', 'LCAE$linktype$eorder$aorder')\">[Modify]</a></td>";
+        print "<td><font size=\"2\">
+                   <a href=\"LINK_ACTION_del.shtml?linktype=".urlencode($linktype)."&eorder=$eorder&aorder=$aorder\">[Delete]</a></td>";
+        print "</tr>";
+      }
+      print "<tr bgcolor=\"#CCCCCC\" align=\"center\">";
+      print "<td colspan=\"5\">
+	     <font size=\"2\">
+		  <a href=\"JavaScript:openwindowlink('LINK_ACTION_add_edit.shtml?linktype=".urlencode($linktype)."&eorder=$eorder', 'LCAADD$linktype$eorder$aorder')\">[Add Action]</a>
+		  <a href=\"JavaScript:openwindowlink('LINK_COND_add_edit.shtml?linktype=".urlencode($linktype)."&eorder=$eorder', 'LCEDIT$linktype$eorder')\">[Modify]</a>
+	          <a href=\"LINK_COND_del.shtml?linktype=".urlencode($linktype)."&eorder=$eorder\">[Delete]</a>
+	     </font>
+	     </td>";
+      print "</tr>";
+
+    }
+    print "</table>";
+  }
+
+
+  mysql_close( $db );
+
+?>
diff --git a/modules/bibformat/web/admin/Makefile.am b/modules/bibformat/web/admin/Makefile.am
new file mode 100644
index 000000000..5a6f8792c
--- /dev/null
+++ b/modules/bibformat/web/admin/Makefile.am
@@ -0,0 +1,30 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+webdir=$(WEBDIR)/admin/bibformat
+
+FILESWML=$(wildcard *.wml)
+web_DATA=$(FILESWML:.wml=)
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(wildcard *.shtml) *~ *.tmp
+
+%.shtml: %.shtml.wml ../../../../config/config.wml ../../../../config/configbis.wml ../../../../config/cdspage.wml ../../../../config/cdsnavbar.wml
+	$(WML) -o $@ $<
diff --git a/modules/bibformat/web/admin/OAIER_SF_add.shtml.wml b/modules/bibformat/web/admin/OAIER_SF_add.shtml.wml
new file mode 100644
index 000000000..b39459b77
--- /dev/null
+++ b/modules/bibformat/web/admin/OAIER_SF_add.shtml.wml
@@ -0,0 +1,144 @@
+# $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Extraction Rules" \
+    navbar_name="admin" \
+    navbar_select="OAIER_display"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: OAIER_SF_add.shtml (flexElink WI)
+//  Description: Adds a new field and its ER to the DB for a defined variable. 
+//  POST parameters:
+//      type -----> (required) Input type the variable belongs to
+//      varname --> (required) Internal variable name the field is going to be
+//		added to
+//	process --> (optional) When is set, it adds the field and its ER to
+//		the DB according to the values specified via the parameters
+//	sfname ---> (required when process is set) Name of the field to be 
+//		added
+//      label ---> (optional) subfield element attribute LABEL value
+//  Notes: If the field-ER is succesfully added to the DB the current browser
+//      is closed and the opener one is refreshed
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+  
+  if( (!isset($type)) or (trim($type)=="") )
+  {
+    print "<b>Input type</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $otype=trim(strtoupper($otype));
+  
+  if( (!isset($varname)) or (trim($varname)=="") )
+  {
+    print "<b>Variable name</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $varname=trim(strtoupper($varname));
+
+    if(!isset($process))
+    {
+?>
+<form action="OAIER_SF_add.shtml" method="POST">
+  <table>
+    <tr>
+      <td colspan="2" bgcolor="black">
+        <font color="white" align="center">
+          Add new subfield to variable'<? echo "$type - $varname";?>'</font>
+      </td>
+    </tr>
+    <tr>
+      <td>Subfield name: </td>
+      <td><input type="text" name="sfname"></td>
+    </tr>
+    <tr>
+      <td>Attribute "label" value: </td>
+      <td><input type="text" name="label"></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit"></td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="type" value="<?echo $type;?>">
+  <input type="hidden" name="varname" value="<?echo $varname;?>">
+</form>
+<?
+    }
+    else
+    {
+      if( (!isset($sfname)) or (trim($sfname)=="") )
+      {
+        outWarning( "<b>Subfield name</b> hasn't been specified");
+	print "</td></tr></table>";
+        exit;
+      }
+      $sfname=trim(strtoupper($sfname));
+
+      if( (!isset($label)) or (trim($label)=="") )
+      {
+        outWarning( "<b>Attribute 'label' value</b> hasn't been specified");
+	print "</td></tr></table>";
+        exit;
+      }
+      $label=trim($label);
+
+      $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	  or errormsg("Couldn't connect to mySQL") or exit;
+      mysql_selectdb( $DB_DB );
+  
+      $qry="insert into flxXMLMARCEXTRULESUBFIELDS(type, varname, sfname, att_label)
+	           values ('$type', '$varname', '$sfname', '$label')";
+      if(!mysql_query( $qry ))
+      {
+        print "Impossible to insert new subfield rule:<br> ".mysql_error();
+        print "<hr>";
+        print "<a align=\"center\" href=\"JavaScript:window.history.go(-1);\">[Go Back]</a>";
+        mysql_close( $db );
+        exit;
+      }
+  
+      mysql_close( $db );
+?>
+<script language="JavaScript">
+  opener.location.reload(true);
+  window.close();
+</script>
+<?
+  }
+?>
+
diff --git a/modules/bibformat/web/admin/OAIER_SF_del.shtml.wml b/modules/bibformat/web/admin/OAIER_SF_del.shtml.wml
new file mode 100644
index 000000000..5f9838dfb
--- /dev/null
+++ b/modules/bibformat/web/admin/OAIER_SF_del.shtml.wml
@@ -0,0 +1,81 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: OAIER_SF_del.shtml (flexElink WI)
+//  Description: Deletes an existing field and its corresponding ER from the 
+//      configuration DB for the specified variable.
+//  POST parameters:
+//      type -----> (required) Input type the ER belongs to
+//      varname --> (required) Internal variable name the field to be deleted
+//		belongs to
+//  	sfname ---> (required) Field name to be deleted
+//  Notes: If the variable-ER is succesfully deleted from the DB the current 
+//    browser is redirected to the OAI extraction rules list
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($type)) or (trim($type)=="") )
+  {
+    errorpage("<b>Type of the rule</b> hasn't been specified");
+    exit;
+  }
+  $type=strtoupper(trim($type));
+
+  if( (!isset($varname)) or (trim($varname)=="") )
+  {
+    errorpage("<b>Variable name</b> hasn't been specified");
+    exit;
+  }
+  $varname=strtoupper(trim($varname));
+
+  if( (!isset($sfname)) or (trim($sfname)=="") )
+  {
+    errorpage("<b>Subfield name</b> hasn't been specified");
+    exit;
+  }
+  $sfname=strtoupper(trim($sfname));
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+  
+  $qry="delete from flxXMLMARCEXTRULESUBFIELDS
+        where type='$type' 
+	and varname='$varname'
+	and sfname='$sfname'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete variable subfields:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+
+  header("location: OAIER_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/OAIER_add.shtml.wml b/modules/bibformat/web/admin/OAIER_add.shtml.wml
new file mode 100644
index 000000000..99ffe5909
--- /dev/null
+++ b/modules/bibformat/web/admin/OAIER_add.shtml.wml
@@ -0,0 +1,94 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+<?
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: OAIER_add.shtml (flexElink WI)
+//  Description: Adds a new variable and the corresponding ER to the 
+//	configuration DB.
+//  POST parameters:
+//	type -----> (required) Input type the ER belongs to
+//	varname --> (required) Internal variable name
+//	att_id ---> (optional) varfield element attribute ID value
+//	att_i1 ---> (optional) varfield element attribute I1 value (only 
+//                              relevant if ftype=DATAFIELD)
+//	att_i2 ---> (optional) varfield element attribute I2 value (only
+//                              relevant if ftype=DATAFIELD)
+//      ftype ----> (required) field type (DATAFIELD, CONTROLFIELD), default 
+//                            value DATAFIELD
+//  Notes: If the variable-ER is succesfully added to the DB the current browser
+//	is redirected to the OAI extraction rules list
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($type)) or (!trim($type)) )
+  {
+    errorpage("Rule <b>type</b> hasn't been specified");
+    exit;
+  }
+
+  if( (!isset($varname)) or (!trim($varname)) )
+  {
+    errorpage("Rule <b>varname</b> hasn't been specified");
+    exit;
+  }
+  
+  if( (!isset($ftype))||(($ftype!="DATAFIELD")&&($ftype!="CONTROLFIELD")) )
+    $ftype="DATAFIELD";
+
+  if(!isset($att_id))
+    $att_id="";
+  
+  if(!isset($att_i1))
+    $att_i1="";
+  
+  if(!isset($att_i2))
+    $att_i2="";
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+     or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $type=trim(strtoupper($type));
+  $varname=trim(strtoupper($varname));
+  $att_id=trim($att_id);
+  $att_i1=trim($att_i1);
+  $att_i2=trim($att_i2);
+  $qry="insert into flxXMLMARCEXTRULES(type, varname, att_id, att_i1, att_i2, ftype)
+	values ('$type', '$varname', '$att_id', '$att_i1', '$att_i2', '$ftype')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new rule:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  mysql_close( $db );
+
+  header("location: OAIER_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/OAIER_del.shtml.wml b/modules/bibformat/web/admin/OAIER_del.shtml.wml
new file mode 100644
index 000000000..d0f809bde
--- /dev/null
+++ b/modules/bibformat/web/admin/OAIER_del.shtml.wml
@@ -0,0 +1,83 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+<?
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: OAIER_del.shtml (flexElink WI)
+//  Description: Deletes an existing variable and the corresponding ER from the 
+//      configuration DB.
+//  POST parameters:
+//      type -----> (required) Input type the ER belongs to
+//      varname --> (required) Internal variable name to be deleted
+//  Notes: If the variable-ER is succesfully deleted from the DB the current 
+//    browser is redirected to the OAI extraction rules list
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($type)) or (trim($type)=="") )
+  {
+    errorpage("<b>Type of the rule</b> hasn't been specified");
+    exit;
+  }
+  if( (!isset($varname)) or (trim($varname)=="") )
+  {
+    errorpage("<b>Variable name</b> hasn't been specified");
+    exit;
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+  
+  $type=trim(strtoupper($type));
+  $varname=trim(strtoupper($varname));
+
+  $qry="delete from flxXMLMARCEXTRULESUBFIELDS
+        where type='$type' 
+	and varname='$varname'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete variable subfields:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  $qry="delete from flxXMLMARCEXTRULES
+        where type='$type'
+	and varname='$varname'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete rule:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("location: OAIER_display.shtml");
+
+?>
diff --git a/modules/bibformat/web/admin/OAIER_display.shtml.wml b/modules/bibformat/web/admin/OAIER_display.shtml.wml
new file mode 100644
index 000000000..795c7d1ca
--- /dev/null
+++ b/modules/bibformat/web/admin/OAIER_display.shtml.wml
@@ -0,0 +1,227 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+#include "cdspage.wml" \
+    title="Extraction Rules" \
+    navbar_name="admin" \
+    navbar_select="OAIER_display"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: OAIER_display.shtml (flexElink WI)
+//  Description: Shows a list of defined internal variables and their 
+//	corresponding extraction rules (ER); it also shows fields of each
+//	variable. Besides, it provides access to management operations
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+  
+  include(HEADER);
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+  $qry_rules="select * 
+              from flxXMLMARCEXTRULES 
+              order by type, varname";
+
+  $res=mysql_query( $qry_rules, $db );
+
+  $old_type="";
+
+?>
+
+<p>Define how the metadata tags from input are mapped into internal
+BibFormat variable names.  The variable names can afterwards be used
+in formatting and linking rules.
+
+<em>Example:</em> You can tell that <code>100 $a</code> field
+should be mapped into <code>$100.a</code> internal variable that you
+could use later.<p>
+
+<script language="javascript">
+<!---
+  function openwindowlink( addr, name )
+  {
+    window.open( addr, "Window"+name, "height=320,witdh=320,scrollbars,resizable")
+  }
+//-->
+</script>
+
+<?
+
+  print '<table width="100%" cellspacing="0" cellpadding="4">';
+
+  $color1="#FFFFFF";
+  $color2="#66CCCC";
+
+  while($row=mysql_fetch_array($res))
+  {
+    list($type, $varname, $att_id, $att_i1, $att_i2, $mvalues, $ftype)=$row;
+    if(($old_type=="") or ($type!=$old_type))
+    {
+      print "\t<tr>\n";
+      print "\t\t<td colspan=\"6\" align=\"center\" bgcolor=\"#000000\"><b><font size=\"5\" color=\"#FFFFFF\">$type</font></b></td>\n";
+      print "\t</tr>\n";
+      print "\t<tr align=\"center\" bgcolor=\"#CCCCCC\">\n";
+      print "\t\t<td><b>Varname</b></td>\n";
+      print "\t\t<td><b>Mapping Tag</b></td>\n";
+      print "\t\t<td><b>Allow multiple values</b></td>\n";
+      print "\t\t<td colspan=\"3\">&nbsp;</td>\n";
+      print "\t</tr>\n";
+
+      $old_type=$type;
+      $color=$color2;
+    }
+    if($color==$color1)
+      $color=$color2;
+    else
+      $color=$color1;
+    print "\t<tr bgcolor=\"$color\" align=\"center\">\n";
+    print "\t\t<td><b>$varname</b></td>\n";
+    if($ftype=="DATAFIELD")
+    {
+      print "\t\t<td>".htmlspecialchars("<datafield tag=\"$att_id\" ind1=\"$att_i1\" ind2=\"$att_i2\">")."</td>\n";
+    }
+    else
+    {
+      print "\t\t<td>".htmlspecialchars("<controlfield tag=\"$att_id\">")."</td>\n";
+    }
+    if($mvalues=="S")
+      print "\t\t<td>Yes</td>\n";
+    else
+      print "\t\t<td><font color=\"red\">No</font></td>\n";
+    print "\t\t<td><a href=\"\"><font size=\"2\">[Modify]</font></a></td>\n";
+    if($ftype=="DATAFIELD")
+    {
+      print "\t\t<td><a href=\"JavaScript:openwindowlink('OAIER_SF_add.shtml?type=$type&varname=$varname', 'OAIERSFADD$type$varname')\"><font size=\"2\">[Add Subfield]</font></a></td>\n";
+    }
+    else
+    {
+      print "\t\t<td>&nbsp;</td>";
+    }
+    print "\t\t<td><a href=\"OAIER_del.shtml?type=".urlencode($type)."&varname=".urlencode($varname)."\"><font size=\"2\">[Delete]</font></a></td>\n";
+    print "\t</tr>\n";
+    if($ftype!="DATAFIELD") continue;
+
+    $qry_sf="select sfname, att_label from flxXMLMARCEXTRULESUBFIELDS where type='$type'
+		and varname='$varname' order by sfname";
+    $res_sf=mysql_query($qry_sf);
+    if(mysql_num_rows($res_sf)>=1)
+    {
+      print "\t<tr align=\"center\" bgcolor=\"$color\">\n";
+      print "\t\t<td colspan=\"6\">\n";
+      print "\t\t\t".'<table width="50%" bgcolor="#CCCCCC" cellspacing="1">'."\n";
+      print "\t\t\t\t<tr>\n";
+      print "\t\t\t\t\t<td colspan=\"4\" align=\"center\">";
+      print "<font size=\"2\"><b>SUBFIELDS</b></font>";
+      print "</td>\n";
+      print "\t\t\t\t</tr>\n";
+      print "\t\t\t\t<tr align=\"center\">\n";
+      print "\t\t\t\t\t<td><font size=\"2\">SF Name</font></td>\n";
+      print "\t\t\t\t\t<td><font size=\"2\">Mapping Tag</font></td>\n";
+      print "\t\t\t\t\t<td colspan=\"2\">&nbsp;</td>\n";
+      print "\t\t\t\t</tr>\n";
+      while($row_sf=mysql_fetch_array($res_sf))
+      {
+        list($sfname, $att_label)=$row_sf;
+	print "\t\t\t\t<tr align=\"center\" bgcolor=\"$color\">\n";
+	print "\t\t\t\t\t<td>$sfname</td>\n";
+	print "\t\t\t\t\t<td>".htmlspecialchars("<subfield code=\"$att_label\">")."</td>\n";
+	print "\t\t\t\t\t<td><a href=\"\"><font size=\"2\">[Modify]</font></a></td>\n";
+	print "\t\t\t\t\t<td><a href=\"OAIER_SF_del.shtml?type=".urlencode($type)."&varname=".urlencode($varname)."&sfname=".urlencode($sfname)."\"><font size=\"2\">[Delete]</font></a></td>\n";
+	print "\t\t\t\t</tr>\n";
+      }
+
+
+
+      print "\t\t\t</table>\n";
+      print "\t\t</td>\n";
+      print "\t</tr>\n";
+    }
+    while($row_sf=mysql_fetch_array($res_sf))
+    {
+      print "<tr bgcolor=\"$color\">";
+      print "<td><font size=\"2\"><strong>$sfname</strong></font></td>";
+      print "<td><font size=\"2\">$att_label</font></td>";
+      print "<td colspan=\"3\"></td>";
+      print "<td><a href=\"\"><font size=\"2\">[Delete]</font></a>";
+      print "</tr>";
+
+    }
+  }
+  print "</table>";
+?>
+  <hr>
+  <form action="OAIER_add.shtml" method="POST">
+  <table align="center" width="80%">
+    <tr>
+      <td colspan="2" align="center" bgcolor="#000000"><font size="5" color="#FFFFFF">Add new Extraction Rule</font></td>
+    </tr>
+    <tr>
+      <td align="right">Type</td>
+      <td><input type="text" name="type"></td> 
+    </tr>
+    <tr>
+      <td align="right">Variable name</td>
+      <td><input type="text" name="varname"></td>
+    </tr>
+    <tr>
+      <td align="right">Field Type</td>
+      <td><select name="ftype">
+            <option value="DATAFIELD">datafield</option>
+            <option value="CONTROLFIELD">controlfield</option>
+          </select>
+      </td>
+   </tr>
+    <tr>
+      <td align="right">Attribute TAG value</td>
+      <td><input type="text" name="att_id"></td>
+    </tr>
+    <tr>
+      <td align="right">Attribute IND1 value<br><font size="1">(only for datafield)</font></td>
+      <td><input type="text" name="att_i1"></td>
+    </tr>
+    <tr>
+      <td align="right">Attribute IND2 value<br><font size="1">(only for datafield)</font></td>
+      <td><input type="text" name="att_i2"></td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center"><input type="submit" value="Add rule"></td>
+    </tr>
+  </table>
+  </form>
+<?
+
+  mysql_close( $db );
+
+  include(FOOTER);
+?>
diff --git a/modules/bibformat/web/admin/UDF_add.shtml.wml b/modules/bibformat/web/admin/UDF_add.shtml.wml
new file mode 100644
index 000000000..f4c3ebc9b
--- /dev/null
+++ b/modules/bibformat/web/admin/UDF_add.shtml.wml
@@ -0,0 +1,105 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: UDF_add.shtml (flexElink WI)
+//  Description: Adds a new UDF definition to the DB. It also stores the
+//	UDF's parameters.
+//  POST parameters:
+//      fname --> (required) Name (id) of the UDF to be added
+//	params -> (required) Contains the UDF param list. UDF parameters are
+//		separated by using ","
+//      doc ----> (optional) Description of the purpose of the UDF
+//      code ---> (optional) UDF's PHP code
+//  Notes: If the UDF is succesfully added to the DB it redirects the current
+//      browser to the UDF display list
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    errorpage("<b>Function name</b> hasn't been specified");
+    exit;
+  }
+
+  if(!isset($params))
+  {
+    errorpage("<b>Params</b> hasn't been specified");
+    exit;
+  }
+  
+  if(!isset($code))
+    $code="";
+  
+  if(!isset($doc))
+    $doc="";
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $fname=trim(strtoupper($fname));
+  $rtype=trim(strtoupper($rtype));
+  if(!get_magic_quotes_gpc())
+  {
+    $code=addslashes($code);
+    $doc=addslashes($doc);
+  }
+  
+  $qry="insert into flxUDFS (fname, rtype, code, doc)
+	values ('$fname', '$rtype', '$code', '$doc')";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to insert new UDF:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  $pars=explode(",", trim($params));
+  $counter=0;
+  foreach($pars as $parname)
+  {
+    $parname=trim($parname);
+    if($parname=="")
+      continue;
+    $qry="insert into flxUDFPARAMS(fname, pname, ord)
+		values('$fname', '$parname', '$counter')";
+    if(!mysql_query( $qry ))
+    {
+      errorpage("Impossible to insert UDF parameter '$parname':<br> ".mysql_error());
+      mysql_close( $db );
+      exit;
+    }
+    $counter++;
+  }
+  
+  mysql_close( $db );
+
+  header("location: UDF_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/UDF_del.shtml.wml b/modules/bibformat/web/admin/UDF_del.shtml.wml
new file mode 100644
index 000000000..238489176
--- /dev/null
+++ b/modules/bibformat/web/admin/UDF_del.shtml.wml
@@ -0,0 +1,72 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: UDF_delete.shtml (flexElink WI)
+//  Description: Deletes an existing UDF from the DB. 
+//  POST parameters:
+//      fname --> (required) Name (id) of the UDF to be deleted
+//  Notes: If the UDF is succesfully added to the DB it redirects the current
+//      browser to the UDF display list
+//  Requires:  DB, ERROR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    errorpage("<b>Function name</b> hasn't been specified");
+    exit;
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $fname=trim(strtoupper($fname));
+  $qry="delete from flxUDFS 
+        where fname='$fname'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete function:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+  
+  $qry="delete from flxUDFPARAMS
+        where fname='$fname'";
+  if(!mysql_query( $qry ))
+  {
+    errorpage("Impossible to delete function parameters:<br> ".mysql_error());
+    mysql_close( $db );
+    exit;
+  }
+
+  mysql_close( $db );
+
+  header("location: UDF_display.shtml");
+?>
diff --git a/modules/bibformat/web/admin/UDF_display.shtml.wml b/modules/bibformat/web/admin/UDF_display.shtml.wml
new file mode 100644
index 000000000..8a6c54beb
--- /dev/null
+++ b/modules/bibformat/web/admin/UDF_display.shtml.wml
@@ -0,0 +1,146 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="User Defined Functions (UDFs)" \
+    navbar_name="admin" \
+    navbar_select="UDF_display"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+//==========================================================================
+//  File: UDF_display.shtml (flexElink WI)
+//  Description: Shows a list of the existing UDFs and their parameters, and 
+//	allows to access to their details, add or delete
+//  POST parameters:
+//  Notes: 
+//  Requires:  DB, ERROR, FUNCTION_LIB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include(DB);
+  include(ERROR);
+  include(FUNCTION_LIB);
+
+  include(HEADER);
+?>
+
+<p>Define your own functions that you can reuse when creating your
+own output formats.  This enables you to do complex formatting without
+ever touching the BibFormat core code.
+
+<em>Example:</em> You can define a function how to match and
+extract email addresses out of a text file.<p>
+
+<script language="javascript">
+<!---
+function openwindowlink( addr, name )
+{
+  window.open( addr, "Window"+name, "height=560,witdh=220,scrollbars,resizable" )
+}
+//-->
+</script>
+
+<?
+
+  $cBorder="#CCCCCC";
+  $cHeaders="#FFFFFFCC";
+  $cCells="#FFFFFFFF";
+  $cImpCells="#FFFFFFF0";
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) or errormsg("Couldn't conn
+  ect to mySQL");
+  mysql_selectdb( $DB_DB ) or errormsg(sprintf("Couldn't connect into database %
+    s", $DB_DB));
+
+  $qry_func="select fname, rtype, doc from flxUDFS order by fname";
+  $res_func=mysql_query( $qry_func );
+  print '<table border="1" bgcolor="'.$cBorder.'">'."\n";
+  print "<tr align=\"center\">\n
+         <td bgcolor=\"$cHeaders\"><B>Function name</b></td>\n";
+  print "<td bgcolor=\"$cHeaders\"><b>Params</b></td>\n";
+  print "<td bgcolor=\"$cHeaders\"><b>Description</b></td>\n";
+  print "<td bgcolor=\"$cHeaders\" colspan=\"3\">&nbsp;</td>\n";
+  while($func=mysql_fetch_array($res_func))
+  {
+    list($fname, $rtype, $doc)=$func;
+    $doc=str_replace("\n", "<br>", $doc);
+    $doc=str_replace(" ", "&nbsp;", $doc);
+    print "<tr>";
+    print "<td bgcolor=\"$cImpCells\"><b>$fname</b></td>\n";
+    $qry_par="select pname from flxUDFPARAMS where fname='$fname' order by ord";
+    $pars="";
+    $res_par=mysql_query( $qry_par );
+    while($par=mysql_fetch_array( $res_par ))
+    {
+      $par=$par["pname"];
+      $pars.=$par."<br>";
+    }
+    print "<td valign=\"top\" bgcolor=\"$cCells\">$pars&nbsp;</td>\n";
+    print "<td bgcolor=\"$cCells\"><font size=\"2\">$doc&nbsp;</font></td>\n"; 
+    print "<td align=\"center\" bgcolor=\"$cCells\"><a href=\"JavaScript:openwindowlink( 'UDF_showone.shtml?fname=$fname', 'UDFC$fname' )\"><font size=\"2\">[Code]</font></a></td>\n";
+    print "<td align=\"center\" bgcolor=\"$cCells\"><a href=\"JavaScript:openwindowlink( 'UDF_edit.shtml?fname=$fname', 'UDFM$fname' )\"><font size=\"2\">[Modify]</font></a></td>\n";
+    print "<td align=\"center\" bgcolor=\"$cCells\"><a href=\"UDF_del.shtml?fname=$fname\"><font size=\"2\">[Delete]</font></a></td>\n";
+    print "</tr>";
+  }
+  print "</table>\n";
+
+
+  mysql_close( $db );
+
+?>
+  <br>
+  <form action="UDF_add.shtml" method="POST">
+    <table align="center">
+      <tr>
+        <td bgcolor="#000000" align="center" colspan="2">
+          <font color="#FFFFFF">Add new function</font>
+        </td>
+      </tr>
+      <tr>
+        <td>Function Name</td>
+        <td><input type="text" name="fname"></td>
+      </tr>
+      <tr>
+        <td>Params</td>
+        <td><input type="text" name="params" size="40"></td>
+      </tr>
+      <tr>
+        <td>PHP Code</td>
+        <td><textarea name="code" cols="65" rows="20"></textarea><td>
+      </tr>
+      <tr>
+        <td>UDF documentation</td>
+        <td><textarea name="doc" cols="65" rows="10"></textarea><td>
+      </tr>
+      <tr>
+        <td colspan="2" align="center"><input type="submit" value="Add"></td>
+      </tr>
+    </table>
+  </form>
+<?
+  include(FOOTER);
+?>
diff --git a/modules/bibformat/web/admin/UDF_edit.shtml.wml b/modules/bibformat/web/admin/UDF_edit.shtml.wml
new file mode 100644
index 000000000..d865010f5
--- /dev/null
+++ b/modules/bibformat/web/admin/UDF_edit.shtml.wml
@@ -0,0 +1,197 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: UDF_edit.shtml (flexElink WI)
+//  Description: Allows to modify UDF data and updates the changes in the DB.
+//  POST parameters:
+//      fname --> (required) Name (id) of the UDF to be modified
+//      process -> (optional) When is set, the script updates the UDF data
+//              in the DB with the parameter values
+//      params -> (optional) Contains the UDF param list. UDF parameters are
+//              separated by using ","
+//      fname_orig -> (required if process is set) Original name of the UDF
+//              to be updated (the UDF name can be changed)
+//      doc ----> (optional) Description of the purpose of the UDF
+//      code ---> (optional) UDF's PHP code
+//  Notes: If the format is succesfully updated in the DB it closes the current
+//      browser and refreshes the opener one
+//  Requires:  DB, ERROR, EXECUTOR
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    print "<b>Function name</b> hasn't been specified";
+    print "<hr>";
+    print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+    exit;
+  }
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+  $fname=trim(strtoupper($fname));
+//-------DISPLAY
+  if(!isset($process))
+  {
+    $qry="select code, doc 
+          from flxUDFS 
+	  where fname='$fname'";
+    $qh=mysql_query( $qry );
+    if(mysql_num_rows( $qh )<1)
+    {
+      print "<b>Function</b> not found";
+      print "<hr>";
+      print "<a align=\"center\" href=\"JavaScript:window.close();\">[Close]</a>";
+      exit;
+    }
+    $row=mysql_fetch_array($qh);
+    list($code, $doc)=$row;
+    $qry="select pname
+	  from flxUDFPARAMS
+	  where fname='$fname'
+	  order by ord";
+    $qh=mysql_query($qry, $db);
+    $params="";
+    while($row=mysql_fetch_array($qh))
+    {
+      $params.=$row[0].",";
+    }
+    $params=substr($params, 0, strlen($params)-1);
+
+?>
+<form action="UDF_edit.shtml" method="POST">
+  <table width="100%" bgcolor="#808080">
+    <tr align="center">
+      <td colspan="2" bgcolor="#FFFFFFCC">
+	  <font size="4">Editing udf <b>'<? echo $fname;?>'</b></font>
+      </td>
+    </tr>
+    <tr bgcolor="#FFFFFFFF">
+      <td width="50%"><b>Function Name</b> <input type="text" name="fname" value="<?echo $fname;?>"></td>
+      <td width="50%"><b>Params</b> <input type="text" name="params" size="60" value="<?echo $params;?>"></td>
+    </tr>
+    <tr bgcolor="#FFFFFFFF" align="center">
+      <td colspan="2">
+       <br><b>Documentation</b><br>
+       <textarea name="doc" cols="100" rows="5"><?echo $doc;?></textarea>
+      </td>
+    </tr>
+    <tr align="center" bgcolor="#FFFFFFFF">
+      <td colspan="2" >
+        <br><b>PHP Code</b><br>
+	<textarea name="code" cols="100" rows="15"><?echo $code;?></textarea><br><br>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2" align="center">
+        <input type="submit" value="UPDATE" name="btnUpd">
+        <input type="submit" value="UPDATE&CLOSE" name="btnUpdClose">
+      </td>
+    </tr>
+  </table>
+  <input type="hidden" name="process" value="oo">
+  <input type="hidden" name="fname_orig" value="<?echo $fname;?>">
+</form>
+<?
+  }
+  else
+  {
+    if(!isset($fname_orig) || (trim($fname_orig)==""))
+    {
+        print "Original function name incorrect or not found<hr> 
+	       <a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        exit;
+    }
+    if( (!isset($code)) )
+      $code="";
+    if( (!isset($doc)) )
+      $doc="";
+    if( (!isset($params)) )
+      $params="";
+
+    if(!get_magic_quotes_gpc())
+    {
+      $doc=addslashes($doc);
+      $code=addslashes($code);
+    }
+    
+    $qry="update flxUDFS 
+	  set fname='$fname',
+	      code='$code',
+	      doc='$doc'
+	where fname='$fname_orig'";
+    
+    if(!mysql_query( $qry ))
+    {
+      print "Impossible to update udf '$fname_orig':<br> ".mysql_error();
+      print "<hr><a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      exit();
+    }
+
+    $qry="delete from flxUDFPARAMS where fname='$fname_orig'";
+    if(!mysql_query( $qry ))
+    {
+      print "Function was updated but couldn't update udf params:<br> ".mysql_error();
+      print "<hr><a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+      exit();
+    }
+
+    $params=explode(",", $params);
+    $count=0;
+    foreach($params as $param)
+    {
+      $param=trim($param);
+      if($param=="") continue;
+      $qry="insert into flxUDFPARAMS(fname, pname, ord)
+	    values('$fname', '$param', $count)";
+      if(!mysql_query( $qry ))
+      {
+        print "Function parameter '$param' couldn't be inserted:<br> ".mysql_error();
+        print "<hr><a href=\"JavaScript:window.history.go(-1)\">[Go Back]</a>";
+        exit();
+      }
+      $count++;
+    }
+
+   
+   mysql_close( $db );
+?>
+   <script language="JavaScript">
+     opener.location.reload(false);
+<?
+   if(isset($btnUpd))
+     print "window.location=\"UDF_edit.shtml?fname=$fname\";";
+   else
+     print "window.close();";
+?>
+   </script>
+<?
+
+  }
+
+?>
diff --git a/modules/bibformat/web/admin/UDF_showone.shtml.wml b/modules/bibformat/web/admin/UDF_showone.shtml.wml
new file mode 100644
index 000000000..2c64de957
--- /dev/null
+++ b/modules/bibformat/web/admin/UDF_showone.shtml.wml
@@ -0,0 +1,124 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: UDF_showone.shtml (flexElink WI)
+//  Description: Shows the details for a given UDF (parameters, code and 
+//	documentation) and allows to test the PHP for user-entered parameter 
+//	values
+//  POST parameters:
+//      fname --> (required) Name (id) of the UDF to be shown
+//  Requires:  DB, ERROR, FUNCTION_LIB
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+
+  include("localconf.inc.shtml");
+
+  include(DB);
+  include(ERROR);
+  include(FUNCTION_LIB);
+
+  if( (!isset($fname)) or (trim($fname)=="") )
+  {
+    errorpage("<b>Function</b> hasn't been specified");
+    exit;
+  }
+
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD ) 
+	or errormsg("Couldn't connect to mySQL") or exit;
+  mysql_selectdb( $DB_DB );
+  
+  $fname=trim(strtoupper($fname));
+  $qry="select rtype, code, doc from flxUDFS where fname='$fname'";
+  $res=mysql_query( $qry );
+  list($rtype, $code, $doc) =mysql_fetch_array( $res );
+  $code=text2HTML($code);
+  $doc=str_replace("\n","<br>",$doc);
+  $doc=str_replace(" ","&nbsp;",$doc);
+  $qry="select pname from flxUDFPARAMS where fname='$fname' order by ord";
+  $pars="";
+  $res=mysql_query( $qry );
+  $allpars=array();
+  while($par=mysql_fetch_array( $res ))
+  {
+    $par=$par["pname"];
+    $pars.=$par.", ";
+    array_push($allpars, $par);
+  }
+  $pars=substr( $pars, 0, strlen($pars)-2 );
+
+?>
+<html>
+  <head>
+    <title>PHP Code for <?print $fname;?></title>
+  </head>
+  <body>
+    <table width="100%" bgcolor="#808080">
+      <tr align="center">
+        <td colspan="2" bgcolor="#FFFFFFCC">
+          <font size="4">Details of UDF <b>'<? echo $fname;?>'</b></font>
+        </td>
+      </tr>
+      <tr>
+	<td width="15%" bgcolor="#FFFFFFF0"><b>Parameters</b></td>
+	<td bgcolor="#FFFFFFFF"><? print $pars; ?></td>
+      </tr>
+      <tr>
+	<td width="15%" valign="middle" bgcolor="#FFFFFFF0"><b>Documentation</b></td>
+	<td bgcolor="#FFFFFFFF"><font size="2"><?print $doc; ?></font></td>
+      </tr>
+      <tr>
+	<td width="15%" valign="middle" bgcolor="#FFFFFFF0"><b>PHP Code</b></td>
+	<td bgcolor="#FFFFFFFF"><?print $code;?></td>
+      </tr>
+    </table>
+    <br>
+    <form action="UDF_testcode.shtml" method="POST">
+    <input type="hidden" name="fname" value="<?print $fname?>">
+    <table width="70%" align="center">
+      <tr>
+	<td bgcolor="#000000" align="center" colspan="2">
+	<font color="white">Test this function</font>
+	</td> 
+      </tr>
+<?
+  foreach($allpars as $pname)
+  {
+    print "<tr><td><i>$pname</i> value</td>";
+    print "<td><input type=\"text\" name=\"$pname\"></td></tr>";
+  }
+?>
+      <tr>
+	<td colspan="2" align="center">
+	  <input type="submit" value="Test">
+	</td>
+      </tr>
+    </table>
+    </form>
+  </body>
+</html>
+    
+<?
+    mysql_close( $db );
+
+?>
diff --git a/modules/bibformat/web/admin/UDF_testcode.shtml.wml b/modules/bibformat/web/admin/UDF_testcode.shtml.wml
new file mode 100644
index 000000000..905b0b6cf
--- /dev/null
+++ b/modules/bibformat/web/admin/UDF_testcode.shtml.wml
@@ -0,0 +1,74 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+//==========================================================================
+//  File: UDF_testcode.shtml (flexElink WI)
+//  Description: Allows to test a UDF for a given set of parameter values. 
+//	Parameter values have to be specified in the correct order and the 
+//	parameter name is not relevant (only the order and the value). It
+//	shows a web page with the result of executing the UDF with those
+//	parameter values
+//  POST parameters:
+//      fname ---> (required) Name (id) of the UDF to be tested
+//	<param> -> (optional, multiple) Parameter value, they have to come in
+//		the same order as the UDF definition specifies
+//  Requires:  ERROR, UDF_RETRIEVER
+//  Author: Hector.Sanchez@cern.ch
+//==========================================================================
+
+  include("localconf.inc.shtml");
+
+  include(ERROR);
+
+  include(UDF_RETRIEVER);
+
+  if(!isset($fname) || (trim($fname)==""))
+  {
+    errorpage("Function not set!!");
+  }
+
+  global $HTTP_POST_VARS;
+  $pars=array();
+  foreach($HTTP_POST_VARS as $var=>$value)
+  {
+    if(get_magic_quotes_gpc())
+      $value=stripslashes($value);
+    if($var!="fname")
+      array_push($pars, $value);
+  }
+  print_r($pars);
+
+  $ret=new UDFRetriever();
+  list($ecode, $emsg)=$ret->execute( $fname, $pars, 0, 0);
+  $ret->destroy();
+  if($ecode)
+  {
+    print "Result:<br><h2>$emsg</h2>";
+  }
+  else
+  {
+    print "ERROR!! $emsg";
+  }
+
+  print "<hr>";
+  print "<a href=\"JavaScript:window.history.go(-1)\">[Go back]</a>";
+?>
diff --git a/modules/bibformat/web/admin/error.inc.shtml.wml b/modules/bibformat/web/admin/error.inc.shtml.wml
new file mode 100644
index 000000000..e859b3b62
--- /dev/null
+++ b/modules/bibformat/web/admin/error.inc.shtml.wml
@@ -0,0 +1,38 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+
+  function errormsg( $msg )
+  {
+    print "<h1>Error:</h1><br>";
+    print "<i>$msg</i>";
+    print "</td></tr></table>";
+    exit;
+  }
+
+  function errorpage( $msg )
+  {
+    include("header.inc.shtml");
+    print "<h1>Error:</h1><br>";
+    print "<i>$msg</i>";
+    include("footer.inc.shtml");
+  }
+?>
diff --git a/modules/bibformat/web/admin/footer.inc.shtml.wml b/modules/bibformat/web/admin/footer.inc.shtml.wml
new file mode 100644
index 000000000..59313c4b0
--- /dev/null
+++ b/modules/bibformat/web/admin/footer.inc.shtml.wml
@@ -0,0 +1,30 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+?>
diff --git a/modules/bibformat/web/admin/header.inc.shtml.wml b/modules/bibformat/web/admin/header.inc.shtml.wml
new file mode 100644
index 000000000..b1f46ede2
--- /dev/null
+++ b/modules/bibformat/web/admin/header.inc.shtml.wml
@@ -0,0 +1,30 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+?>
diff --git a/modules/bibformat/web/admin/index.shtml.wml b/modules/bibformat/web/admin/index.shtml.wml
new file mode 100644
index 000000000..e7743ff72
--- /dev/null
+++ b/modules/bibformat/web/admin/index.shtml.wml
@@ -0,0 +1,208 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="BibFormat Admin" \
+    navbar_name="admin" \
+    navbar_select="bibformat" \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+	    
+<?
+  include("security.inc.shtml");
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+?>
+
+<p>The BibFormat admin interface enables you to specify how the
+bibliographic data is presented to the end user in the search
+interface and search results pages.  For example, you may specify that
+titles should be printed in bold font, the abstract in small italic,
+etc.  Moreover, the BibFormat is not only a simple bibliographic data
+<em>output formatter</em>, but also an automated <em>link
+constructor</em>.  For example, from the information on journal name
+and pages, it may automatically create links to publisher's site based
+on some configuration rules.
+
+<h2>Configuring BibFormat</h2>
+
+<p>By default, a simple HTML format based on the most common fields
+(title, author, abstract, keywords, fulltext link, etc) is defined.
+You certainly want to define your own ouput formats in case you have a
+specific metadata structure.
+
+<p>Here is a short guide of what you can configure:
+
+<blockquote>
+<dl>
+
+<dt><a href="BEH_display.shtml">Behaviours</a>
+
+<dd>Define one or more output BibFormat behaviours.  These are then
+passed as parameters to the BibFormat modules while executing
+formatting. 
+
+<br><em>Example:</em> You can tell BibFormat that is has to enrich the
+incoming metadata file by the created format, or that it only has to
+print the format out.
+
+<dt><a href="OAIER_display.shtml">Extraction Rules</a>
+
+<dd>Define how the metadata tags from input are mapped into internal
+BibFormat variable names.  The variable names can afterwards be used
+in formatting and linking rules.
+
+<br><em>Example:</em> You can tell that <code>100 $a</code> field
+should be mapped into <code>$100.a</code> internal variable that you
+could use later.
+
+<dt><a href="LINK_display.shtml">Link Rules</a> 
+
+<dd>Define rules for automated creation of URI links from mapped
+internal variables.
+
+<br><em>Example:</em> You can tell a rule how to create a link to
+People database out of the <code>$100.a</code> internal variable
+repesenting author's name.  (The <code>$100.a</code> variable was mapped
+in the previous step, see the Extraction Rules.)
+
+<dt><a href="LINK_FORMAT_display.shtml">File Formats</a>
+
+<dd>Define file format types based on file extensions.  This will be
+used when proposing various fulltext services.
+
+<br><em>Example:</em> You can tell that <code>*.pdf</code> files will
+be treated as PDF files.  
+
+<dt><a href="UDF_display.shtml">User Defined Functions (UDFs)</a>
+
+<dd>Define your own functions that you can reuse when creating your
+own output formats.  This enables you to do complex formatting without
+ever touching the BibFormat core code.
+
+<br><em>Example:</em> You can define a function how to match and
+extract email addresses out of a text file.
+
+<dt><a href="FORMAT_display.shtml">Formats</a>
+
+<dd>Define the output formats, i.e. how to create the output out of
+internal BibFormat variables that were extracted in a previous step.
+This is the functionality you would want to configure most of the
+time.  It may reuse formats, user defined functions, knowledge bases,
+etc.
+
+<br><em>Example:</em> You can tell that authors should be printed in
+italic, that if there are more than 10 authors only the first three
+should be printed, etc.
+
+<dt><a href="KB_display.shtml">Knowledge Bases (KBs)</a>
+
+<dd>Define one or more knowledge bases that enables you to transform
+various forms of input data values into the unique standard form on
+the output.
+
+<br><em>Example:</em> You can tell that <em>Phys Rev D</em> and
+<em>Physical Review D</em> are both the same journal and that these
+names should be standardized to <em>Phys Rev : D</em>.
+
+<dt><a href="test.shtml">Execution Test</a>
+
+<dd>Enables you to test your formats on your sample data file.  Useful
+when debugging newly created formats.
+
+</dl>
+</blockquote>
+
+<p>To learn more on BibFormat configuration, you can consult the <a
+href="BibFormatAdminGuide.shtml">BibFormat Admin Guide</a>.</small>
+
+<h2>Running BibFormat</h2>
+
+<h3>From the Web interface</h3>
+<p>
+Run <a href="BIBREFORMAT_display.shtml">Reformat Records</a> tool.
+This tool permits you to update stored formats for bibliographic records.
+<br>
+It should normally be used after configuring BibFormat's
+<a href="BEH_display.shtml">Behaviours</a> and
+<a href="FORMAT_display.shtml">Formats</a>.
+When these are ready, you can choose to rebuild formats for selected
+collections or you can manually enter a search query and the web interface
+will accomplish all necessary formatting steps.
+<br>
+<i>Example:</i> You can request Photo collections to have their HTML 
+brief formats rebuilt, or you can reformat all the records written by Ellis.
+
+<h3>From the command-line interface</h3>
+
+<p>Consider having an XML MARC data file that is to be uploaded into
+the CDSware.  (For example, it might have been harvested from other
+sources and processed via <a href="../bibconvert/">BibConvert</a>.)
+Having configured BibFormat and its default output type behaviour, you
+would then run this file throught BibFormat as follows:
+
+<blockquote>
+<pre>
+$ bibformat < /tmp/sample.xml > /tmp/sample_with_fmt.xml
+<pre>
+</blockquote>
+
+that would create default HTML formats and would "enrich" the input
+XML data file by this format.  (You would then continue the upload
+procedure by calling successively <a
+href="../bibupload/">BibUpload</a> and <a
+href="../bibwords/">BibWords</a>.)
+
+<p>Now consider a different situation.  You would like to add a new
+possible format, say "HTML portfolio" and "HTML captions" in order to
+nicely format multiple photographs in one page.  Let us suppose that
+these two formats are called <code>hp</code> and <code>hc</code> and
+are already loaded in the <code>collection_format</code> table.
+(TODO: describe how this is done via WebAdmin.)  You would then
+proceed as follows: firstly, you would prepare the corresponding <a
+href="BEH_display.shtml">output behaviours</a> called <code>HP</code>
+and <code>HC</code> (TODO: note the uppercase!) that would not enrich
+the input file but that would produce an XML file with only
+<code>001</code> and <code>FMT</code> tags.  (This is in order not to
+update the bibliographic information but the formats only.)  You would
+also prepare corresponding <a href="FORMAT_display.shtml">formats</a>
+at the same time.  Secondly, you would launch the formatting as
+follows:
+
+<blockquote>
+<pre>
+$ bibformat otype=HP,HC < /tmp/sample.xml > /tmp/sample_fmts_only.xml
+<pre>
+</blockquote>
+
+that should give you an XML file containing only 001 and FMT tags.
+Finally, you would upload the formats:
+
+<blockquote>
+<pre>
+$ bibupload < /tmp/sample_fmts_only.xml
+<pre>
+</blockquote>
+
+and that's it. The new formats should now appear in <a
+href="<WEBURL>">WebSearch</a>.
diff --git a/modules/bibformat/web/admin/localconf.inc.shtml.wml b/modules/bibformat/web/admin/localconf.inc.shtml.wml
new file mode 100644
index 000000000..ea374e855
--- /dev/null
+++ b/modules/bibformat/web/admin/localconf.inc.shtml.wml
@@ -0,0 +1,38 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+  include("<WEBDIR>/bibformat/common/global.inc.shtml");
+  include("<WEBDIR>/errors/errorHandling.shtml");
+  include("<WEBDIR>/sessinit.inc.shtml");
+
+  define(ERROR, WEBCONF_DIR."/error.inc.shtml");
+  define(HEADER, WEBCONF_DIR."/header.inc.shtml");
+  define(FOOTER, WEBCONF_DIR."/footer.inc.shtml");
+ 
+?>
diff --git a/modules/bibformat/web/admin/security.inc.shtml.wml b/modules/bibformat/web/admin/security.inc.shtml.wml
new file mode 100644
index 000000000..3d6e523be
--- /dev/null
+++ b/modules/bibformat/web/admin/security.inc.shtml.wml
@@ -0,0 +1,54 @@
+<?
+/*********************************************************************
+   This file is part of the CERN Document Server Software (CDSware).
+   Copyright (C) 2002 CERN.
+   1211 Geneva 23 - Switzerland
+   <cds.support@cern.ch>
+
+    The CDSware is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    The CDSware 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 CDSware; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*********************************************************************/
+  
+   /*********************Authentication*******************************/
+   function canUseBibFormatAdmin($uid,$doctype='%')
+   {
+	if (AUTHENTICATION)
+	{
+		$uid_email = getEmail($uid);
+		if (!authenticate("$uid_email","bibformatmanager",$doctype))
+		   return false;
+		else
+		   return true;
+	}
+	else
+	   return true;
+   }
+
+  $uid_email = getEmail($uid);
+
+  if ($uid_email == "guest")
+  {
+    outWarning("Please log in using the left menu.");
+    print "</td></tr></table>";
+    exit;
+  }
+
+  if(!canUseBibFormatAdmin($uid))
+  {
+    outWarning("Sorry, you are not allowed to use bibFormat Admin. <br> If you think this is not correct, please contact $ADMINEMAIL");
+    print "</td></tr></table>";
+    exit;
+  }
+    
+?>
diff --git a/modules/bibformat/web/admin/test.shtml.wml b/modules/bibformat/web/admin/test.shtml.wml
new file mode 100644
index 000000000..65058a45b
--- /dev/null
+++ b/modules/bibformat/web/admin/test.shtml.wml
@@ -0,0 +1,189 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+<?
+  include("localconf.inc.shtml");
+?>
+
+#include "cdspage.wml" \
+    title="Execution Test" \
+    navbar_name="admin" \
+    navbar_select="test"  \
+    cdspageboxlefttopadd="<protect><?displayLoginMenu('admin');?> </protect>"
+
+<?
+  include("security.inc.shtml");
+<protect>## $Id$</protect>
+
+
+  include(DB);
+  
+  $db=mysql_connect( $DB_HOST, $DB_USER, $DB_PASSWD );
+  mysql_selectdb( $DB_DB );
+
+//---DISPLAY
+  if(!isset($process))
+  {
+    include(HEADER);
+    
+
+    $qry="select distinct(type) from flxXMLMARCEXTRULES";
+    $qh=mysql_query($qry, $db);
+    $itype_opts="";
+    while($row=mysql_fetch_array($qh))
+    {
+      $itype_opts.="<option value=\"".$row[0]."\">".$row[0]."</option>";
+    }
+    $qry="select name from flxBEHAVIORS";
+    $qh=mysql_query($qry, $db);
+    $otype_opts="";
+    while($row=mysql_fetch_array($qh))
+    {
+      $otype_opts.="<option value=\"".$row[0]."\">".$row[0]."</option>";
+    }
+?>
+<p>Enables you to test your formats on your sample data file.  Useful
+when debugging newly created formats.
+
+<p align="center">
+  <table width="60%" border=1>
+    <tr>
+      <td>
+        <font size="2">From this page you'll be able to launch BibFormat over a file which contains bibliographic MARC21 XML
+        </font>
+      </td>
+    </tr>
+  </table>
+</p>
+<br>
+<p align="center">
+<form action="test.shtml" method="POST">  
+  <table> 
+    <tr>
+      <td bgcolor="#FFFFCC">
+	<b>XML File (URL)</b>
+      </td>
+      <td>
+	<input type="text" name="file" size="50">
+      </td>
+    </tr>
+    <tr>
+      <td bgcolor="#FFFFCC">
+	<b>Input Type</b>
+      </td>
+      <td align="left">
+	<select name="itype"><?echo $itype_opts;?></select>
+      </td>
+    </tr>
+    <tr>
+      <td bgcolor="#FFFFCC">
+	<b>Output Type</b>
+      </td>
+      <td align="left">
+	<select name="otype"><?echo $otype_opts;?></select>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2" align="left">
+	<input type="checkbox" name="debug" checked>
+	  <font size="2">Print debug information</font>
+      </td>
+    </tr>
+    <tr>
+      <td align="center" colspan="2">
+	<input type="hidden" name="process" value="oo">
+	<input type="submit" value="LAUNCH!!">
+      </td>
+    </tr>
+  </table>
+</form>
+</p>
+<?
+    include(FOOTER);
+  }
+//---PROCESS
+  else
+  {
+    include_once(ERROR);
+    if( (!isset($file)) || (trim($file)=="") )
+    {
+      outWarning("The <b>XML file</b> hasn't been specified");
+      print "</td></tr></table>";
+      mysql_close($db);
+      exit;
+    }
+    if( (!isset($itype)) || (trim($itype)=="") )
+    {
+      outWarning("The <b>input type</b> hasn't been specified");
+      print "</td></tr></table>";
+      mysql_close($db);
+      exit;
+    }
+    if( (!isset($otype)) || (trim($otype)=="") )
+    {
+      outWarning("The <b>ouput type</b> hasn't been specified");
+      print "</td></tr></table>";
+      mysql_close($db);
+      exit;
+    }
+
+    $qry="select type from flxBEHAVIORS where name='$otype'";
+    $qh=mysql_query($qry, $db);
+    $modeshow="NORMAL";
+    list($modeshow)=mysql_fetch_array($qh);
+
+    include_once(MAIN);
+
+    include_once(CORE_DIR."Timing.inc.shtml");
+
+    $timing=new Timing();
+    
+    $fxk=new FlexElink();
+    $error=$fxk->initialise("OAIMARC", $file);
+
+    if($error)
+    {
+      errorpage("Error initialising: $error");
+      exit;
+    }
+    
+    $code=0;
+    while(1)
+    {
+      $timing->start("TOTAL");
+      list($code, $res)=$fxk->getRecordResult(array($otype), $debug);
+      $timing->end("TOTAL");
+      if($code<0) break;
+      if($code==0)
+      {
+        print "ERROR: $res<br>";
+      }
+      else
+      {
+        if(isset($debug)&&($modeshow=="NORMAL"))
+          print "<br>".text2HTML($res)."<br><hr><br>";
+        if($modeshow=="IENRICH")
+	  print text2HTML($res)."<br>";
+        else
+	  print $res."<br>";
+      }
+      $timing->debug();
+      print "<hr><hr>";
+    }
+  }
+?>
diff --git a/modules/bibformat/web/bibformat.shtml.wml b/modules/bibformat/web/bibformat.shtml.wml
new file mode 100644
index 000000000..7577a66ac
--- /dev/null
+++ b/modules/bibformat/web/bibformat.shtml.wml
@@ -0,0 +1,100 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+  include("<WEBDIR>/bibformat/common/global.inc.shtml");
+
+  include_once(MAIN);
+
+  include_once(CORE_DIR."/Timing.inc.shtml");
+
+  define(DEFAULT_ITYPE, "DEFAULT");
+  define(DEFAULT_OTYPE, "FULL");
+
+  $itype=DEFAULT_ITYPE;
+
+
+  if(!isset($id))
+  {
+    print "Not id specified!!";
+    exit;
+  }
+  $id=trim($id);
+
+  if(isset($otype) && trim($otype)!="")
+  {
+    $otype=strtoupper(trim($otype));
+  }
+  else
+  {
+    $otype=DEFAULT_OTYPE;
+  }
+
+  $t=new Timing();
+
+  $t->start("TOTAL");
+  $t->start("GetRecord method");
+  $file="<WEBURL>/search.py/search?id=$id&of=xm";
+
+  $fxk=new FlexElink();
+  $error=$fxk->initialise("OAIMARC", $file);
+  $t->end("GetRecord method");
+
+  if($error) 
+  {
+    print "Error initialising: $error";
+    exit;
+  }
+
+  $t->start("FlexElink processing");
+  list($code, $res)=$fxk->getRecordResult(array($otype));
+  
+  if($code>0)
+    $record=$res;
+  else
+    $err=$res;
+
+  print eval("?>$record<?");
+
+  $t->end("FlexElink processing");
+  
+  if($err!="")
+  {
+    print "--------------------------------------------------------\n";
+    print "Errors processing record\n";
+    print "$err\n";
+    print "--------------------------------------------------------\n";
+       
+  }
+  
+  $t->end("TOTAL");
+  if(isset($timing))
+  {
+     print $t->debug();
+  }
+?>
diff --git a/modules/bibupload/.cvsignore b/modules/bibupload/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/bibupload/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/bibupload/Makefile.am b/modules/bibupload/Makefile.am
new file mode 100644
index 000000000..772d73a54
--- /dev/null
+++ b/modules/bibupload/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = bin
+
+CLEANFILES = *~ 
diff --git a/modules/bibupload/bin/.cvsignore b/modules/bibupload/bin/.cvsignore
new file mode 100644
index 000000000..2a4b093fe
--- /dev/null
+++ b/modules/bibupload/bin/.cvsignore
@@ -0,0 +1,6 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+bibupload
\ No newline at end of file
diff --git a/modules/bibupload/bin/Makefile.am b/modules/bibupload/bin/Makefile.am
new file mode 100644
index 000000000..1666287be
--- /dev/null
+++ b/modules/bibupload/bin/Makefile.am
@@ -0,0 +1,28 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+bin_SCRIPTS=bibupload
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(bin_SCRIPTS) *~ *.tmp 
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+	chmod u+x $@
diff --git a/modules/bibupload/bin/bibupload.in b/modules/bibupload/bin/bibupload.in
new file mode 100644
index 000000000..7fcdd210b
--- /dev/null
+++ b/modules/bibupload/bin/bibupload.in
@@ -0,0 +1,1281 @@
+## $Id$
+## Script that uploades LoC MARC XML file into the BIB database.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start PHP:
+<protect>#!</protect><PHP> -q
+<?
+<protect>#$Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+
+   define( DOCS_DATABASE, "<DBNAME>");
+   $mysql_machine = "<DBHOST>";
+   $mysql_docid = "<DBUSER>";
+   $mysql_docpw = "<DBPASS>";
+   $supportemail = "<SUPPORTEMAIL>";
+   $WORDFILEJOB = "<BINDIR>/bibwords";
+
+### okay, config read, from now on the script can continue ###
+
+<protect>
+
+   ##########################################################################
+   # file: 	  bibupload
+   # created by:  T. Baron
+   # revision: $Id$
+   # parameters:  Usage: bibupload [options] file1.xml [file2.xml ...]
+   #              Options: 
+   #              -h, --help      print this help
+   #              -d, --display   display records analysis - no integration
+   #              -b, --database  display integration requests - integration
+   #              -m, --mute      Silent mode.
+   # description: this program takes file(s) written in XML following
+   #              the DTD used in the LoC MARC XML.  For each record found, 
+   #		  the program decides whether it is an upload or a 
+   # 		  correction (sysno existence, report number existence). 
+   #		  Then each field is created or corrected.
+   # 		  The process is based on three classes: record, field and 
+   #		  subfield.
+   #		
+   ##########################################################################
+
+// time limit for script execution
+set_time_limit(86340);
+
+// array of all the "untouchable" field tags
+$strongtags = array("909COo");
+
+//////////////////////////////////////////////////////////////////////
+// STRUCTURE CLASSES
+// A MARC XML record is composed of some data fields elements which
+// may in turn contain subfields.
+// A record starts with "<record>" and ends with "</record>
+//////////////////////////////////////////////////////////////////////
+
+class subfield {
+   // this class stores the subfield items
+	
+   var $subfieldcode; 	// type
+   var $value; 		// value
+   var $position; 	// position
+
+   // constructor
+   function subfield($number,&$record)
+   {
+      global $currentfield;
+		
+      $this->position = $number;
+      $this->subfieldcode = $currentfield[attributes][CODE];
+		
+      if ($this->subfieldcode == "")
+         $this->subfieldcode == "_";
+		
+      if ($currentfield[type] == "complete")
+         $this->value = $currentfield[value];
+      else
+      {
+         // get cdata
+         getnexttag();
+         if ($currentfield[tag]=="SUBFIELD" && $currentfield[type] == "cdata")
+         {
+            $this->value = $currentfield[value];
+            getnexttag();
+         }
+         //close tag
+         if ($currentfield[tag]!="SUBFIELD" || $currentfield[type] != "close")
+         {
+            print "subfield: ERROR! Bad XML file!\n";
+            $record->valid = false;
+         }
+         getnexttag();
+      }
+   }
+}
+
+
+class field {
+   // this class stores the field items
+	
+   var $type; // type (tag)
+   var $i1; // indicator 1
+   var $i2; // indicator 2
+   var $value;
+   var $subfields;
+   var $nbsubfields;
+   var $position;
+
+   // constructor
+   function field($nbfield,&$record)
+   {
+      global $currentfield;
+
+      $this->position = $nbfield;
+      $this->type = $currentfield[attributes][TAG];
+      $this->i1 = $currentfield[attributes][IND1];
+      $this->i2 = $currentfield[attributes][IND2];
+      if (ereg_replace("[ \n\r\t]+","",$this->i1) == "") { $this->i1 = "_"; }
+      if (ereg_replace("[ \n\r\t]+","",$this->i2) == "") { $this->i2 = "_"; }
+      $this->nbsubfields = 0;
+		
+      if ($currentfield[type] == "complete")
+      {
+         $this->value == $currentfield[value];
+         getnexttag();
+      }
+      else
+      {
+         getnexttag();
+		
+         while (($currentfield[tag] == "SUBFIELD" || 
+                ($currentfield[tag] == "CONTROLFIELD" && 
+                 $currentfield[type] == "cdata") ||
+                ($currentfield[tag] == "DATAFIELD" && 
+                 $currentfield[type] == "cdata")))
+         {
+            if (($currentfield[tag] == "CONTROLFIELD" && 
+                 $currentfield[type] == "cdata") ||
+                ($currentfield[tag] == "DATAFIELD" && 
+                 $currentfield[type] == "cdata"))
+               $this->value == $currentfield[value];
+            else
+            {
+               $this->subfields[$this->nbsubfields] = new subfield(
+                    $this->nbsubfields,$record);
+               $this->nbsubfields ++;
+            }
+            getnexttag();
+         }
+      }
+   }
+
+   function get_subfield($subfieldcode)
+   {
+      $subfieldcode = strtolower($subfieldcode);
+
+      $j=0;
+      while (strtolower($this->subfields[$j]->subfieldcode) != "$subfieldcode" 
+          && $j <= $this->nbsubfields)
+         $j++;
+      if ($j == $this->nbsubfields)
+         return 0;
+      else
+         return $this->subfields[$j]->value;
+   }	
+}
+
+
+class record {
+   // this class stores the record items
+	
+   var $fields; 	// contains all fields
+   var $recid; 		// system number: 000 if new
+   var $nbfields; 	// number of fields
+   var $valid;
+
+
+   // Constructor
+   function record()
+   {
+      global $currentfield;
+		
+      $this->valid = true;
+
+      getnexttag();
+
+      while ($currentfield[tag] != "CONTROLFIELD" && $currentfield[tag] != "DATAFIELD" && $currentfield != NULL)
+         getnexttag();
+
+      $this->nbfields = 0;
+      while ($currentfield[tag] == "CONTROLFIELD" || $currentfield[tag] == "DATAFIELD")
+      {
+         // If system number
+         if ($currentfield[attributes][TAG] == "001")
+         {
+            if ($currentfield[type] == "complete")
+            {
+               $this->recid = $currentfield[value];
+               getnexttag();
+            }
+            else
+            {
+               // go to next item (must be subfield)
+               getnexttag();
+               $this->recid = $currentfield[value];
+               // avoid </datafield>
+               getnexttag();
+               // and get the next tag
+               getnexttag();
+            }
+            if ($this->recid == "")
+               $this->recid = "000";
+         }
+         else if ($currentfield[type] != "close")
+         {
+            $this->fields[$this->nbfields] = new field($this->nbfields,$this);
+            $this->nbfields ++;
+         }
+         else if ($currentfield[type] == "close")
+            getnexttag();
+         else
+         {
+            print "field: ERROR! Bad XML file!\n";
+            $this->valid = false;
+         }
+      }
+		
+      if ($this->recid == "")
+         $this->recid = "000";
+
+   }
+
+
+   function get_field($tag,$i1,$i2)
+   {
+      $j=0;
+      while ((($this->fields[$j]->type != "$tag") || 
+              ($this->fields[$j]->i1 != "$i1") || 
+              ($this->fields[$j]->i2 != "$i2")) && ($j <= ($this->nbfields)))
+         $j++;
+      if ($j == $this->nbfields)
+         return 0;
+      else
+         return $this->fields[$j];
+   }
+
+   function get_subfield($tag,$i1,$i2,$subfieldcode)
+   {
+      $i1 = strtolower($i1);
+      $i2 = strtolower($i2);
+      $subfieldcode = strtolower($subfieldcode);
+      $tag = strtolower($tag);
+
+      $j=0;
+      $found = FALSE;
+      while (!$found && ($j <= ($this->nbfields)))
+      {
+         if (strtolower($this->fields[$j]->type) == "$tag" && 
+             strtolower($this->fields[$j]->i1) == "$i1" && 
+             strtolower($this->fields[$j]->i2) == "$i2")
+         {
+            if ($this->fields[$j]->get_subfield($subfieldcode))
+               $found = $this->fields[$j]->get_subfield($subfieldcode);
+         }
+         $j++;
+      }
+      if ($j == $this->nbfields)
+         return 0;
+      else
+         return $found;
+   }
+}
+
+
+
+//////////////////////////////////////////////////////////////////////
+// TREATMENT FUNCTIONS
+//////////////////////////////////////////////////////////////////////
+
+// from an array passed as parameter, this function returns a
+// comma-separated list of all elements in the array
+function createTextFromArray($array)
+{
+    reset($array);
+    $text = "(''";
+    while (list($key,$value) = each($array)) {
+        $text .= ",'".$value."'";
+    }
+    $text .= ")";
+    return $text;
+}
+
+// This function gets the next available field number for
+// a given table name, and a given record id
+function getNextFieldNumber($tablename,$recid)
+{
+    global $maxfieldno;
+
+    if ($maxfieldno[$tablename] != "") {
+        $maxfieldno[$tablename] = $maxfieldno[$tablename] + 1;
+        $field_number = $maxfieldno[$tablename];
+    }
+    else {
+        $t1 = getmicrotime();
+        $res = mysql_perform_query("
+SELECT MAX(field_number) 
+FROM   bibrec_$tablename 
+WHERE  id_bibrec=$recid");
+
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." select MAX(field_number) from ".
+                "bibrec_$tablename where id_bibrec=$recid\n";
+        $row = mysql_fetch_row($res);
+        $maxfieldno[$tablename] = $row[0]+1;
+        $field_number = $maxfieldno[$tablename];
+    }
+    return $field_number;
+}
+
+function mysql_perform_query($query, $behaviour="die") {
+    if($behaviour == "continue")
+        $result = mysql_query($query);
+    else {
+        $result = mysql_query($query)
+            or die ("\nMySQL: could not execute your query:\n  $query" .
+                    "\nContact $supportemail." .
+                    "\nError " . mysql_errno() . ": " . mysql_error() . ".\n");
+    }
+
+    return $result;
+}
+
+function getnexttag()
+{
+   global $i; // current position in the structure
+   global $index; // structure containing the XML
+   global $currentfield;
+   global $nbTags;
+
+   // this function retrieves the next valuable field (one of "record"
+   // "controlfield", "datafield" or "subfield")
+
+   //get next tag
+   $i++;
+
+   while ($index[$i][tag] != "RECORD" && 
+          $index[$i][tag] != "CONTROLFIELD" && 
+          $index[$i][tag] != "DATAFIELD" && 
+          $index[$i][tag] != "SUBFIELD" && $i <= $nbTags)
+      $i++;
+
+   if ($i <= $nbTags)
+      $currentfield = $index[$i];
+   else
+      $currentfield = NULL;
+
+}
+
+
+
+function Test_In_DB($value,$tag,$table)
+{
+   $value = ereg_replace("^[\n\r\t ]*","",$value);
+   $value = ereg_replace("[\r\n\t ]* $","",$value);
+   $value = mysql_escape_string($value);
+
+   mysql_select_db(DOCS_DATABASE);
+   $t1 = getmicrotime();
+   $res = mysql_perform_query("
+SELECT id 
+FROM   $table 
+WHERE  value='$value' and 
+       tag='$tag'");
+   $t2 = getmicrotime();
+   if (PRINTDB)
+      print ($t2-$t1)." select id from $table where value='$value' and".
+         " tag='$tag'\n";
+   if ($arr = mysql_fetch_row($res))
+   {
+      $t1 = getmicrotime();
+      $res2 = mysql_perform_query("
+SELECT id_bibrec 
+FROM   bibrec_".$table." 
+WHERE  id_bibxxx=".$arr[0]);
+      $t2 = getmicrotime();
+      if (PRINTDB)
+         print ($t2-$t1)." select id_bibrec from bibrec_".$table.
+            " where id_".$table."=".$arr[0]."\n";
+      $result = mysql_fetch_row($res2);
+      return $result[0];
+   }
+   else
+      return 0;
+}
+
+
+function integrate($rec,$logfp)
+{
+   global $WORDFILEJOB;
+
+   //create the bibrec
+   $now = strftime("%Y-%m-%d %H:%M:%S");
+   $cd = $now;
+   $md = $now;
+
+   $t1 = getmicrotime();
+   mysql_perform_query("
+INSERT
+INTO   bibrec (creation_date,modification_date) 
+values('$cd','$md')");
+   $t2 = getmicrotime();
+   if (PRINTDB)
+      print ($t2-$t1)." insert into bibrec (creation_date,modification_date)".
+         " values('$cd','$md')\n";
+
+   #get the created item id
+   $recid = mysql_insert_id();
+
+   #for each field
+   $nbfields = $rec->nbfields;
+   for ($j=0;$j<$nbfields;$j++)
+   {
+      if ($rec->fields[$j])
+      {
+         $position = $j + 1;
+         $field = $rec->fields[$j];
+         $tag = $field->type;
+         $i1 = $field->i1;
+         $i2 = $field->i2;
+         $tablenumber = substr($tag,0,2);
+         $tablename = "bib" . $tablenumber . "x"; 
+
+         // special treatment for the format field
+         if ($tag == "FMT")
+         {
+            if ($field->subfields[1]->value != "")
+            {
+               $format = $field->subfields[0]->value;
+               if ($format{0} == "x") {
+                   $value = mysql_escape_string(gzcompress(utf8_encode($field->subfields[1]->value)));
+               }
+               else {   
+                   $value = mysql_escape_string(gzcompress($field->subfields[1]->value));
+               }
+               $t1 = getmicrotime();
+               $res = mysql_perform_query("
+SELECT id 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+               $t2 = getmicrotime();
+               if (PRINTDB)
+                  print ($t2-$t1)." select id from bibfmt where".
+                     " id_bibrec=$recid and format='$format'\n";
+               if (mysql_num_rows($res) != 0)
+               {
+                  $t1 = getmicrotime();
+                  mysql_perform_query("
+UPDATE bibfmt 
+SET    format='$format',
+       value='$value',
+       last_updated=NOW()
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+                  $t2 = getmicrotime();
+                  if (PRINTDB)
+                     print ($t2-$t1)." update bibfmt set format='$format',".
+                         "value='$value', last_updated=NOW()".
+                         " where id_bibrec=$recid and format='$format'\n";
+               }
+               else
+               {
+                  $t1 = getmicrotime();
+                  mysql_perform_query("
+INSERT
+INTO   bibfmt(id_bibrec,format,value,last_updated)
+values ($recid,'$format','$value',NOW())");
+                  $t2 = getmicrotime();
+                  if (PRINTDB)
+                     print ($t2-$t1)." insert into bibfmt(id_bibrec,format,".
+                         "value, last_updated)values($recid,'$format','$value'," .
+                         "NOW())\n";
+               }
+            }
+            else
+            {
+               $format = $field->subfields[0]->value;
+               $t1 = getmicrotime();
+               mysql_perform_query("
+DELETE 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+               $t2 = getmicrotime();
+               if (PRINTDB)
+                  print ($t2-$t1)." delete from bibfmt where id_bibrec=$recid".
+                     " and format='$format'\n";
+            }
+         }
+         // we do not want field 001 to be integrated
+         elseif ($tag != "001")
+         {		
+            #main value
+            if ($field->value != "")
+            {
+               $fulltag = "$tag${i1}${i2}_";
+               $value = mysql_escape_string($field->value);
+               insertfield($fulltag,$value,$tablename,$recid,$position,$logfp);
+            }
+			
+            #sub fields
+            $nbsubfields = $field->nbsubfields;
+            for ($k=0;$k<$nbsubfields;$k++)
+            {
+               $subfield = $field->subfields[$k];
+               $subfieldcode = $subfield->subfieldcode;
+               if ($subfield->value != "")
+               {
+                  $fulltag = "$tag$i1$i2$subfieldcode";
+                  $value = mysql_escape_string($subfield->value);
+                  insertfield($fulltag,$value,$tablename,$recid,$position,$logfp);
+               }
+            }
+         }
+      }
+   }
+		
+   // word file addition
+   if ($WORDFILEJOB && BIBWORDS)
+      system("$WORDFILEJOB add $recid > /dev/null 2>&1");
+
+   // insert xml full format
+   insertFMTfield($recid);
+
+   if (!MUTE) {
+       print "inserted.\n";
+   }
+}
+
+
+
+function deletefield($recid,$fulltag,$tablename,$logfp)
+{
+    global $strongtags;
+
+    $t1 = getmicrotime();
+    $res = mysql_perform_query("
+SELECT DISTINCT field_number
+FROM   bibrec_$tablename,
+       $tablename 
+WHERE  id_bibxxx = id and 
+       id_bibrec=$recid and 
+       tag LIKE '$fulltag'");
+    $t2 = getmicrotime();
+    if (PRINTDB)
+        print ($t2-$t1)." select DISTINCT field_number from bibrec_$tablename,$tablename".
+            " where id_bibxxx = id and id_bibrec=$recid and tag LIKE '$fulltag'\n";
+    while ($row = mysql_fetch_row($res)) {
+        // delete main value + subfields
+        $t1 = getmicrotime();
+        mysql_perform_query("
+DELETE 
+FROM   bibrec_$tablename
+USING  bibrec_$tablename,
+       $tablename
+WHERE  id_bibrec=$recid and 
+       field_number=$row[0] and
+       id_bibxxx=id and
+       tag NOT IN ".createTextFromArray($strongtags));
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." delete from bibrec_$tablename using  bibrec_$tablename, ".
+                " $tablename where id_bibrec=$recid and field_number=$row[0] and ".
+                "id_bibxxx=id and tag NOT IN ".createTextFromArray($strongtags)."\n";
+    }
+}
+
+
+
+function update($rec,$recid,$logfp)
+{
+    global $WORDFILEJOB,$strongtags;
+
+    $now = strftime("%Y-%m-%d %H:%M:%S");
+    $md = $now;
+    
+    // firstly check whether this 'id' exists in the bibrec table:
+    $res = mysql_perform_query("SELECT COUNT(*) FROM bibrec WHERE id=$recid\n");
+    $row = mysql_fetch_row($res);
+    if ($row[0] == 0) {
+        if (!MUTE) {
+            print "update error. [record $recid does not exist]\n";
+        }
+        return;
+    }
+    mysql_free_result($res);
+   
+    // update the modification datetime field
+    // if we don't have only FMT fields inside the record
+    $onlyFMT = true;
+    for ($j=0;$j<$rec->nbfields;$j++) {
+        if ($rec->fields[$j] && $rec->fields[$j]->type != "FMT") {
+            $onlyFMT = false;
+        }
+    }
+    if (!$onlyFMT && !FORMAT) {
+        $t1 = getmicrotime();
+        mysql_perform_query("
+UPDATE bibrec 
+SET    modification_date='$md'
+WHERE  id=$recid\n");
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." update bibrec set modification_date='$md',".
+                " where id=$recid\n";
+    }
+
+    $nbfields = $rec->nbfields;
+
+    if (CORRECT) {
+        // delete each found field
+        for ($j=0;$j<$nbfields;$j++) {
+            $field = $rec->fields[$j];
+            $tag = $field->type;
+            $i1 = $field->i1;
+            $i2 = $field->i2;
+            $tablenumber = substr($tag,0,2);
+            $tablename = "bib" . $tablenumber . "x";
+            $nbsubfields = $field->nbsubfields;
+            for ($k=0;$k<$nbsubfields;$k++) {
+                $subfield = $field->subfields[$k];
+                $subfieldcode = $subfield->subfieldcode;
+                $fulltag = "$tag$i1$i2$subfieldcode";
+                if ($tag != "FMT") {
+                    deletefield($recid,$fulltag,$tablename,$logfp);
+                }
+            }
+        }
+    }
+
+    if(REPLACE && !$onlyFMT) {
+        for ($i=0;$i<100;$i++) {
+            deletefield($recid,"%","bib".($i<10 ? "0$i" : "$i")."x",$logfp);
+        }
+    }
+    
+    // insert each found field
+    for ($j=0;$j<$nbfields;$j++) {
+        if ($rec->fields[$j]) {
+            $fieldnumber = -1;
+            $field = $rec->fields[$j];
+            $tag = $field->type;
+            $i1 = $field->i1;
+            $i2 = $field->i2;
+            $tablenumber = substr($tag,0,2);
+            $tablename = "bib" . $tablenumber . "x"; 
+            $fulltag = "$tag$i1${i2}_";
+
+            if ($tag == "FMT") {
+                if ($field->subfields[1]->value != "") {
+                    $format = $field->subfields[0]->value;
+                    $value = mysql_escape_string(gzcompress($field->subfields[1]->value));
+                    $t1 = getmicrotime();
+                    $res = mysql_perform_query("
+SELECT id 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+
+                    $t2 = getmicrotime();
+                    if (PRINTDB)
+                        print ($t2-$t1)." select id from bibfmt where ".
+                            "id_bibrec=$recid and format='$format'\n";
+                    if (mysql_num_rows($res) != 0) {
+                        $t1 = getmicrotime();
+                        mysql_perform_query("
+UPDATE bibfmt 
+SET    format='$format',
+       value='$value',
+       last_updated=NOW()
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+
+                        $t2 = getmicrotime();
+                        if (PRINTDB)
+                            print ($t2-$t1)." update bibfmt set format='$format',".
+                                "value='$value', last_updated=NOW()".
+                                " where id_bibrec=$recid and format='$format'\n";
+                    }
+                    else {
+                        $t1 = getmicrotime();
+                        mysql_perform_query("
+INSERT 
+INTO   bibfmt(id_bibrec,format,value,last_updated)
+values($recid,'$format','$value',NOW())");
+
+                        $t2 = getmicrotime();
+                        if (PRINTDB)
+                            print ($t2-$t1)." insert into bibfmt(id_bibrec,format,".
+                                "value, last_updated)values($recid,'$format','$value', NOW())\n";
+                    }
+                }
+                else {
+                    $format = $field->subfields[0]->value;
+                    $t1 = getmicrotime();
+                    $res = mysql_perform_query("
+DELETE 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+
+                    $t2 = getmicrotime();
+                    if (PRINTDB)
+                        print ($t2-$t1)." delete from bibfmt where id_bibrec=$recid".
+                            " and format='$format'\n";
+                }
+            }
+
+            else if (!FORMAT) {
+                // main value
+                if ($field->value != "") {
+                    $fieldnumber = getNextFieldNumber($tablename,$recid);
+                    $value = mysql_escape_string($field->value);
+                    insertfield($fulltag,$value,$tablename,$recid,
+                                $fieldnumber,$logfp);
+                }
+		
+                // sub fields
+                $nbsubfields = $field->nbsubfields;
+                for ($k=0;$k<$nbsubfields;$k++) {
+                    $subfield = $field->subfields[$k];
+                    $subfieldcode = $subfield->subfieldcode;
+                    $fulltag = "$tag$i1$i2$subfieldcode";
+                    if ($subfield->value != "" and !in_array($fulltag,$strongtags)) {
+                        if ($fieldnumber == "-1")
+                            $fieldnumber = getNextFieldNumber($tablename,$recid);
+                        $value = mysql_escape_string($subfield->value);
+                        insertfield($fulltag,$value,$tablename,$recid,
+                                    $fieldnumber,$logfp);
+                    }
+                }
+            }
+        }
+    }
+
+    // word file update
+    if ($WORDFILEJOB && BIBWORDS) {
+        system("$WORDFILEJOB del $recid > /dev/null 2>&1");
+        system("$WORDFILEJOB add $recid > /dev/null 2>&1");
+    }
+
+    
+    if(REPLACE && !$onlyFMT) {
+        // insert xml full format
+        insertFMTfield($recid);
+    }
+
+    if (!MUTE) {
+        print "updated. [$recid]\n";
+    }
+}
+
+
+
+
+
+function insertFMTfield($recid)
+{
+    global $xml;
+
+    if ($recid != "000" && $recid != "") {
+        // add sysno to xml record
+        $xml = ereg_replace("<record([^>]*)>","<record\\1>\n<controlfield tag=\"001\">$recid</controlfield>",$xml);
+    }
+
+    $format = "xm";
+    $value = mysql_escape_string(gzcompress(utf8_encode($xml)));
+    $t1 = getmicrotime();
+    $res = mysql_perform_query("
+SELECT id 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='xm'");
+
+    $t2 = getmicrotime();
+    if (PRINTDB)
+        print ($t2-$t1)." select id from bibfmt where ".
+            "id_bibrec=$recid and format='xm'\n";
+    if (mysql_num_rows($res) != 0) {
+        $t1 = getmicrotime();
+        mysql_perform_query("
+UPDATE bibfmt 
+SET    format='xm',
+       value='$value',
+       last_updated=NOW()
+WHERE  id_bibrec=$recid and 
+       format='xm'");
+        
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." update bibfmt set format='xm',".
+                "value='$value', last_updated=NOW() where id_bibrec=$recid and ".
+                                "format='xm'\n";
+    }
+    else {
+        $t1 = getmicrotime();
+        mysql_perform_query("
+INSERT 
+INTO   bibfmt(id_bibrec,format,value,last_updated)
+values($recid,'xm','$value',NOW())");
+        
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." insert into bibfmt(id_bibrec,format,".
+                "value,last_updated)values($recid,'xm','$value',NOW())\n";
+    }   
+}
+
+
+
+
+
+
+function insertfield($fulltag,$value,$tablename,$recid,$position,$logfp)
+{
+   $t1 = getmicrotime();
+   $res = mysql_perform_query("
+SELECT id 
+FROM   $tablename 
+WHERE  tag='$fulltag' and 
+       value='$value'");
+
+   $t2 = getmicrotime();
+   if (PRINTDB)
+      print ($t2-$t1)." select id from $tablename where tag='$fulltag' and".
+         " value='$value'\n";
+
+   if (!$res)
+      print "failed query: select id from $tablename where tag='$fulltag' ".
+         "and value='$value'\n";
+
+   # if an entry already exists with this couple tag/value
+   if ($res && $row = mysql_fetch_row($res))
+   {
+      $idbibxxx = "$row[0]";
+   }
+   # else we create it
+   else
+   {
+      #create
+      $t1 = getmicrotime();
+      $query = "INSERT INTO $tablename (tag,value) VALUES ('$fulltag','$value')";
+      if (PRINTDB)
+          print "Query: $query ... \n";
+      mysql_perform_query($query);
+      $t2 = getmicrotime();
+      if (PRINTDB)
+      print "  Query took: ".($t2-$t1)." seconds.\n";
+      #get the id back
+      $idbibxxx = mysql_insert_id();
+   }
+
+   #then create the bibrec_bibxxx entry with position number
+   $t1 = getmicrotime();
+   $query = "INSERT INTO bibrec_$tablename VALUES ($recid,$idbibxxx,$position)";
+   if (PRINTDB)
+       print "Query: $query ...\n";
+   mysql_perform_query($query);
+   $t2 = getmicrotime();
+   if (PRINTDB)
+   print "  Query took: ".($t2-$t1)." seconds.\n";
+}
+	
+
+
+
+
+
+
+function display($rec)
+{
+   global $nbRecords;
+
+   #for each field
+   $nbfields = $rec->nbfields;
+   print "\n\nRecord $nbRecords: $nbfields fields\n";
+
+   for ($j=0;$j<=$nbfields;$j++)
+   {
+      if ($rec->fields[$j])
+      {	
+         $field = $rec->fields[$j];
+         $tag = $field->type;
+         $i1 = $field->i1;
+         $i2 = $field->i2;
+         $tablenumber = substr($tag,0,2);
+         $tablename = "bib" . $tablenumber . "x"; 
+		
+         print "field $j: $tag$i1$i2\n"; 
+
+         #main value
+         if ($field->value != "")
+         {
+            $fulltag = "$tag${i1}${i2}_";
+            $value = $field->value;
+            print "		main value: $value\n";
+         }
+		
+         #sub fields
+         $nbsubfields = $field->nbsubfields;
+         if ($nbsubfields != 0)
+         {
+            for ($k=0;$k<$nbsubfields;$k++)
+            {
+               $subfield = $field->subfields[$k];
+               $subfieldcode = $subfield->subfieldcode;
+               print "		subfield $k: ($subfieldcode) " . 
+                  $subfield->value . "\n";
+            }
+         }
+      }
+   }
+}
+
+
+function parse_command($argv)
+{
+   global $recordfiles;
+
+   $i = 1;
+   if (count($argv) <= 1)
+   {
+      print "Bad parameter count!\n";
+      displayhelp();
+      exit;
+   }
+   else
+   {
+      while (substr($argv[$i],0,1) == "-")
+      {
+         if ($argv[$i] == "-h" || $argv[$i] == "--help")
+         {
+            displayhelp();
+            exit;
+         }
+         else if ($argv[$i] == "-d" || $argv[$i] == "--display")
+            define("DISPLAY", TRUE );
+         else if ($argv[$i] == "-b" || $argv[$i] == "--database")
+            define("PRINTDB", TRUE );
+         else if ($argv[$i] == "-m" || $argv[$i] == "--mute")
+            define("MUTE",TRUE);
+         else if ($argv[$i] == "-w" || $argv[$i] == "--bibwords")
+            define("BIBWORDS",TRUE);
+         else if ($argv[$i] == "-r" || $argv[$i] == "--replace")
+            define("REPLACE",TRUE);
+         else if ($argv[$i] == "-a" || $argv[$i] == "--append")
+            define("APPEND",TRUE);
+         else if ($argv[$i] == "-c" || $argv[$i] == "--correct")
+            define("CORRECT",TRUE);
+         else if ($argv[$i] == "-f" || $argv[$i] == "--format")
+            define("FORMAT",TRUE);
+         else
+         {
+            print "Unrecognized option " . $argv[$i] . "!\n";
+            displayhelp();
+            exit;
+         }
+         $i++;
+      }
+   }
+
+   if (!defined("DISPLAY"))
+      define("DISPLAY", FALSE );
+   if (!defined("PRINTDB"))
+      define("PRINTDB", FALSE );
+   if (!defined("MUTE"))
+      define("MUTE",FALSE);
+   if (!defined("BIBWORDS"))
+      define("BIBWORDS",FALSE);
+   if (!defined("REPLACE"))
+      define("REPLACE",FALSE);
+   if (!defined("APPEND"))
+      define("APPEND",FALSE);
+   if (!defined("FORMAT"))
+      define("FORMAT",FALSE);
+   if (!APPEND && !REPLACE && !FORMAT && !defined("CORRECT"))
+       define("CORRECT",TRUE);
+   else
+       define("CORRECT",FALSE);
+
+   if ( REPLACE + APPEND + CORRECT + FORMAT > 1 ) {
+       print "\nYou can only specify ONE update mode!\n\n";
+       displayHelp();
+       exit;
+   }
+
+   $recordfiles = array_slice($argv, $i);
+   if (!count($recordfiles)) 
+   {
+      print "\nMissing filename!\n\n";
+      displayhelp();
+      exit;
+   }
+
+}
+	
+function displayhelp()
+{
+   print "Usage: bibupload [options] file1.xml [file2.xml ...]
+  Options: 
+       -h, --help      print this help
+       -d, --display   display records analysis - no integration
+       -b, --database  display integration requests - integration
+       -m, --mute      Silent mode.
+       -w, --bibwords  call bibwords on integration or modification
+		       of a record.
+
+  Update Modes:
+       -r, --replace   \"Replace\" mode (the existing record is deleted
+                       and fully replaced by the new one).
+       -a, --append    \"Append\" mode (the new fields are appended to
+                       the existing record).
+       -c, --correct   \"Correct\" mode (only the corrected lines are 
+                       deleted and replaced by the new ones). This is 
+                       the default mode
+       -f, --format    \"Format\" update mode. Takes only the FMT fields into
+                       account. Does not update the modification stamp
+                       either.\n";
+}
+
+function insert ($rec)
+{
+    global $nbRecords, $nbFoundRecords, $xml;
+
+    // get sysno
+    $recid = $rec->recid;
+
+    if ($recid == "000") {
+
+        // test on the old aleph sysno field
+        $oldsysno = $rec->get_subfield("909","C","0","o");
+        $oldsysnoExists = Test_In_DB($oldsysno,"909C0o","bib90x");
+        if ($oldsysnoExists)
+            $recid = $oldsysnoExists;
+        else {
+            // test on the ER field
+            $er = $rec->get_subfield("037","_","_","a");
+            $ERExists = Test_In_DB($er,"037__a","bib03x");
+            if ($ERExists)
+                $recid = $ERExists;
+        }
+	
+        // display record name
+        if (!MUTE) {
+            if ($er) {
+                print ("Record $er ");
+            } else {
+                print ("Record #".($nbRecords+1)." ");
+            }
+        }
+
+        if ($recid != "000") {
+            // this is an update
+            if (DISPLAY)
+                display($rec);
+            else
+                update($rec,$recid,$logfp);
+            $nbFoundRecords++;
+        }
+        else {
+            // this is an insert
+            if (DISPLAY)
+                display($rec);
+            else if (!FORMAT)
+                integrate($rec,$logfp);
+        }
+    }
+    else {
+        // this is an update
+        if (!MUTE) {
+            if ($er) {
+                print ("Record $er ");
+            } else {
+                print ("Record #".($nbRecords+1)." ");
+            }        
+        }
+        if (DISPLAY)
+            display($rec);
+        else
+            update($rec,$recid,$logfp);
+    }
+}
+
+function get_next_record($fp)
+{
+   static $line = ""; // needed static so as to preserve line between successive calls to get_next_record()
+   $xmlrecord = "";
+
+   // get begining of next record
+   $line = stristr($line,"</record"); // useful if there were more records in the same line
+   while (!stristr($line,"<record") && !feof($fp)) 
+      $line = fgets($fp, 4096);
+
+   // if the end of the file is reached without finding any record
+   if (feof($fp))
+      return "";
+
+   // get full record 
+   $line = stristr($line,"<record"); // continue after the above "<record" match only
+   $xmlrecord = $line;
+   while (!stristr($line,"</record>") && !feof($fp))
+   {
+      $line = fgets($fp, 4096);
+      $xmlrecord .= $line;
+   }
+
+   return $xmlrecord;
+}
+
+
+function getmicrotime()
+{ 
+   list($usec, $sec) = explode(" ",microtime()); 
+   return ((float)$usec + (float)$sec); 
+}  
+
+function formatfield($field)
+{
+   #$field = str_replace("&","\046",$field);
+   #$field = str_replace("&amp;","&",$field);
+   #$field = str_replace("&","&amp;",$field);
+#    // Get rid of control characters
+#    $field = str_replace("\001","",$field);
+#    $field = str_replace("\002","",$field);
+#    $field = str_replace("\003","",$field);
+#    $field = str_replace("\004","",$field);
+#    $field = str_replace("\005","",$field);
+#    $field = str_replace("\006","",$field);
+#    $field = str_replace("\007","",$field);
+#    $field = str_replace("\010","",$field);
+#    $field = str_replace("\013","",$field);
+#    $field = str_replace("\014","",$field);
+#    $field = str_replace("\016","",$field);
+#    $field = str_replace("\017","",$field);
+#    $field = str_replace("\020","",$field);
+#    $field = str_replace("\021","",$field);
+#    $field = str_replace("\022","",$field);
+#    $field = str_replace("\023","",$field);
+#    $field = str_replace("\024","",$field);
+#    $field = str_replace("\025","",$field);
+#    $field = str_replace("\026","",$field);
+#    $field = str_replace("\027","",$field);
+#    $field = str_replace("\030","",$field);
+#    $field = str_replace("\031","",$field);
+#    $field = str_replace("\032","",$field);
+#    $field = str_replace("\033","",$field);
+#    $field = str_replace("\034","",$field);
+#    $field = str_replace("\035","",$field);
+#    $field = str_replace("\036","",$field);
+#    $field = str_replace("\037","",$field);
+   // UTF8 decode
+   $field = utf8_decode($field);
+
+   return $field;
+}
+
+
+
+///////////////////////////////////////////////////////////////////////
+// MAIN SCRIPT                                                       //
+///////////////////////////////////////////////////////////////////////
+
+# Analyse of the command-line arguments
+# This program should take the path to the record file as parameter
+parse_command($argv);
+
+global $EDS;
+
+$maxfieldno = array();
+$index = array();
+$vals = array();
+$starttime = getmicrotime();
+
+// connect to mysql
+$sock = @mysql_connect("${mysql_machine}","${mysql_docid}","${mysql_docpw}") 
+   or die("Sorry, cannot connect to SQL server.\nPlease try later.\n");
+@mysql_select_db(DOCS_DATABASE) 
+   or die("Sorry, cannot choose ".DOCS_DATABASE." database.  Please try later.\n");
+	
+$errorfp = fopen("php://stderr","w");
+
+$nbRecords = 0;
+$nbFoundRecords = 0;
+
+foreach ($recordfiles as $recordfile) {
+
+     if (!file_exists("$recordfile"))
+        $recordfile = $PWD."/$recordfile";
+ 
+     #open xml file
+     $fp = @fopen("$recordfile","r");
+     if (!$fp)
+     {
+         print "Error: cannot localize and/or open file '$recordfile' for reading.  Ignored.\n";
+     }
+     else {
+         if (!MUTE)
+             print "\nInput file: $recordfile\n";
+         
+         $xml = "";
+         $xml = get_next_record($fp);
+         
+         while ($xml != "") {
+             $i = 0;
+             
+             $xml = formatfield($xml);
+             
+             // create XML structure
+             $p = xml_parser_create();
+             xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1); 
+             xml_parse_into_struct($p,$xml,$index,$vals);
+             xml_parser_free($p);
+             $nbTags = count($index);
+             
+             // record creation
+             $rec = new record();
+             
+             if ($rec->valid) {
+                 insert($rec);
+             }
+             else
+                 fwrite($errorfp,$xml."\n\n");
+             
+             unset($rec);
+             unset($maxfieldno);
+             
+             $nbRecords++;
+             
+             $xml = get_next_record($fp);		
+         }	
+         
+         fclose($fp);
+     }
+}	
+	
+if(!MUTE)
+{
+   print "\nIdentified: $nbRecords records\n";
+   print "Updated: $nbFoundRecords records\n";
+   print "Inserted: ".($nbRecords-$nbFoundRecords)." records ";
+
+   $endtime = getmicrotime();
+   $time = $endtime - $starttime;
+   $meantreatment = ($nbRecords != 0 ? ($time/$nbRecords) : "-");
+   print "in $time seconds\n";
+   printf("Average record treatment time: %.2f seconds", $meantreatment);
+}
+	
+	
+?>
+
+</protect>
diff --git a/modules/bibupload/bin/bibupload.wml b/modules/bibupload/bin/bibupload.wml
new file mode 100644
index 000000000..7fcdd210b
--- /dev/null
+++ b/modules/bibupload/bin/bibupload.wml
@@ -0,0 +1,1281 @@
+## $Id$
+## Script that uploades LoC MARC XML file into the BIB database.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start PHP:
+<protect>#!</protect><PHP> -q
+<?
+<protect>#$Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+
+   define( DOCS_DATABASE, "<DBNAME>");
+   $mysql_machine = "<DBHOST>";
+   $mysql_docid = "<DBUSER>";
+   $mysql_docpw = "<DBPASS>";
+   $supportemail = "<SUPPORTEMAIL>";
+   $WORDFILEJOB = "<BINDIR>/bibwords";
+
+### okay, config read, from now on the script can continue ###
+
+<protect>
+
+   ##########################################################################
+   # file: 	  bibupload
+   # created by:  T. Baron
+   # revision: $Id$
+   # parameters:  Usage: bibupload [options] file1.xml [file2.xml ...]
+   #              Options: 
+   #              -h, --help      print this help
+   #              -d, --display   display records analysis - no integration
+   #              -b, --database  display integration requests - integration
+   #              -m, --mute      Silent mode.
+   # description: this program takes file(s) written in XML following
+   #              the DTD used in the LoC MARC XML.  For each record found, 
+   #		  the program decides whether it is an upload or a 
+   # 		  correction (sysno existence, report number existence). 
+   #		  Then each field is created or corrected.
+   # 		  The process is based on three classes: record, field and 
+   #		  subfield.
+   #		
+   ##########################################################################
+
+// time limit for script execution
+set_time_limit(86340);
+
+// array of all the "untouchable" field tags
+$strongtags = array("909COo");
+
+//////////////////////////////////////////////////////////////////////
+// STRUCTURE CLASSES
+// A MARC XML record is composed of some data fields elements which
+// may in turn contain subfields.
+// A record starts with "<record>" and ends with "</record>
+//////////////////////////////////////////////////////////////////////
+
+class subfield {
+   // this class stores the subfield items
+	
+   var $subfieldcode; 	// type
+   var $value; 		// value
+   var $position; 	// position
+
+   // constructor
+   function subfield($number,&$record)
+   {
+      global $currentfield;
+		
+      $this->position = $number;
+      $this->subfieldcode = $currentfield[attributes][CODE];
+		
+      if ($this->subfieldcode == "")
+         $this->subfieldcode == "_";
+		
+      if ($currentfield[type] == "complete")
+         $this->value = $currentfield[value];
+      else
+      {
+         // get cdata
+         getnexttag();
+         if ($currentfield[tag]=="SUBFIELD" && $currentfield[type] == "cdata")
+         {
+            $this->value = $currentfield[value];
+            getnexttag();
+         }
+         //close tag
+         if ($currentfield[tag]!="SUBFIELD" || $currentfield[type] != "close")
+         {
+            print "subfield: ERROR! Bad XML file!\n";
+            $record->valid = false;
+         }
+         getnexttag();
+      }
+   }
+}
+
+
+class field {
+   // this class stores the field items
+	
+   var $type; // type (tag)
+   var $i1; // indicator 1
+   var $i2; // indicator 2
+   var $value;
+   var $subfields;
+   var $nbsubfields;
+   var $position;
+
+   // constructor
+   function field($nbfield,&$record)
+   {
+      global $currentfield;
+
+      $this->position = $nbfield;
+      $this->type = $currentfield[attributes][TAG];
+      $this->i1 = $currentfield[attributes][IND1];
+      $this->i2 = $currentfield[attributes][IND2];
+      if (ereg_replace("[ \n\r\t]+","",$this->i1) == "") { $this->i1 = "_"; }
+      if (ereg_replace("[ \n\r\t]+","",$this->i2) == "") { $this->i2 = "_"; }
+      $this->nbsubfields = 0;
+		
+      if ($currentfield[type] == "complete")
+      {
+         $this->value == $currentfield[value];
+         getnexttag();
+      }
+      else
+      {
+         getnexttag();
+		
+         while (($currentfield[tag] == "SUBFIELD" || 
+                ($currentfield[tag] == "CONTROLFIELD" && 
+                 $currentfield[type] == "cdata") ||
+                ($currentfield[tag] == "DATAFIELD" && 
+                 $currentfield[type] == "cdata")))
+         {
+            if (($currentfield[tag] == "CONTROLFIELD" && 
+                 $currentfield[type] == "cdata") ||
+                ($currentfield[tag] == "DATAFIELD" && 
+                 $currentfield[type] == "cdata"))
+               $this->value == $currentfield[value];
+            else
+            {
+               $this->subfields[$this->nbsubfields] = new subfield(
+                    $this->nbsubfields,$record);
+               $this->nbsubfields ++;
+            }
+            getnexttag();
+         }
+      }
+   }
+
+   function get_subfield($subfieldcode)
+   {
+      $subfieldcode = strtolower($subfieldcode);
+
+      $j=0;
+      while (strtolower($this->subfields[$j]->subfieldcode) != "$subfieldcode" 
+          && $j <= $this->nbsubfields)
+         $j++;
+      if ($j == $this->nbsubfields)
+         return 0;
+      else
+         return $this->subfields[$j]->value;
+   }	
+}
+
+
+class record {
+   // this class stores the record items
+	
+   var $fields; 	// contains all fields
+   var $recid; 		// system number: 000 if new
+   var $nbfields; 	// number of fields
+   var $valid;
+
+
+   // Constructor
+   function record()
+   {
+      global $currentfield;
+		
+      $this->valid = true;
+
+      getnexttag();
+
+      while ($currentfield[tag] != "CONTROLFIELD" && $currentfield[tag] != "DATAFIELD" && $currentfield != NULL)
+         getnexttag();
+
+      $this->nbfields = 0;
+      while ($currentfield[tag] == "CONTROLFIELD" || $currentfield[tag] == "DATAFIELD")
+      {
+         // If system number
+         if ($currentfield[attributes][TAG] == "001")
+         {
+            if ($currentfield[type] == "complete")
+            {
+               $this->recid = $currentfield[value];
+               getnexttag();
+            }
+            else
+            {
+               // go to next item (must be subfield)
+               getnexttag();
+               $this->recid = $currentfield[value];
+               // avoid </datafield>
+               getnexttag();
+               // and get the next tag
+               getnexttag();
+            }
+            if ($this->recid == "")
+               $this->recid = "000";
+         }
+         else if ($currentfield[type] != "close")
+         {
+            $this->fields[$this->nbfields] = new field($this->nbfields,$this);
+            $this->nbfields ++;
+         }
+         else if ($currentfield[type] == "close")
+            getnexttag();
+         else
+         {
+            print "field: ERROR! Bad XML file!\n";
+            $this->valid = false;
+         }
+      }
+		
+      if ($this->recid == "")
+         $this->recid = "000";
+
+   }
+
+
+   function get_field($tag,$i1,$i2)
+   {
+      $j=0;
+      while ((($this->fields[$j]->type != "$tag") || 
+              ($this->fields[$j]->i1 != "$i1") || 
+              ($this->fields[$j]->i2 != "$i2")) && ($j <= ($this->nbfields)))
+         $j++;
+      if ($j == $this->nbfields)
+         return 0;
+      else
+         return $this->fields[$j];
+   }
+
+   function get_subfield($tag,$i1,$i2,$subfieldcode)
+   {
+      $i1 = strtolower($i1);
+      $i2 = strtolower($i2);
+      $subfieldcode = strtolower($subfieldcode);
+      $tag = strtolower($tag);
+
+      $j=0;
+      $found = FALSE;
+      while (!$found && ($j <= ($this->nbfields)))
+      {
+         if (strtolower($this->fields[$j]->type) == "$tag" && 
+             strtolower($this->fields[$j]->i1) == "$i1" && 
+             strtolower($this->fields[$j]->i2) == "$i2")
+         {
+            if ($this->fields[$j]->get_subfield($subfieldcode))
+               $found = $this->fields[$j]->get_subfield($subfieldcode);
+         }
+         $j++;
+      }
+      if ($j == $this->nbfields)
+         return 0;
+      else
+         return $found;
+   }
+}
+
+
+
+//////////////////////////////////////////////////////////////////////
+// TREATMENT FUNCTIONS
+//////////////////////////////////////////////////////////////////////
+
+// from an array passed as parameter, this function returns a
+// comma-separated list of all elements in the array
+function createTextFromArray($array)
+{
+    reset($array);
+    $text = "(''";
+    while (list($key,$value) = each($array)) {
+        $text .= ",'".$value."'";
+    }
+    $text .= ")";
+    return $text;
+}
+
+// This function gets the next available field number for
+// a given table name, and a given record id
+function getNextFieldNumber($tablename,$recid)
+{
+    global $maxfieldno;
+
+    if ($maxfieldno[$tablename] != "") {
+        $maxfieldno[$tablename] = $maxfieldno[$tablename] + 1;
+        $field_number = $maxfieldno[$tablename];
+    }
+    else {
+        $t1 = getmicrotime();
+        $res = mysql_perform_query("
+SELECT MAX(field_number) 
+FROM   bibrec_$tablename 
+WHERE  id_bibrec=$recid");
+
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." select MAX(field_number) from ".
+                "bibrec_$tablename where id_bibrec=$recid\n";
+        $row = mysql_fetch_row($res);
+        $maxfieldno[$tablename] = $row[0]+1;
+        $field_number = $maxfieldno[$tablename];
+    }
+    return $field_number;
+}
+
+function mysql_perform_query($query, $behaviour="die") {
+    if($behaviour == "continue")
+        $result = mysql_query($query);
+    else {
+        $result = mysql_query($query)
+            or die ("\nMySQL: could not execute your query:\n  $query" .
+                    "\nContact $supportemail." .
+                    "\nError " . mysql_errno() . ": " . mysql_error() . ".\n");
+    }
+
+    return $result;
+}
+
+function getnexttag()
+{
+   global $i; // current position in the structure
+   global $index; // structure containing the XML
+   global $currentfield;
+   global $nbTags;
+
+   // this function retrieves the next valuable field (one of "record"
+   // "controlfield", "datafield" or "subfield")
+
+   //get next tag
+   $i++;
+
+   while ($index[$i][tag] != "RECORD" && 
+          $index[$i][tag] != "CONTROLFIELD" && 
+          $index[$i][tag] != "DATAFIELD" && 
+          $index[$i][tag] != "SUBFIELD" && $i <= $nbTags)
+      $i++;
+
+   if ($i <= $nbTags)
+      $currentfield = $index[$i];
+   else
+      $currentfield = NULL;
+
+}
+
+
+
+function Test_In_DB($value,$tag,$table)
+{
+   $value = ereg_replace("^[\n\r\t ]*","",$value);
+   $value = ereg_replace("[\r\n\t ]* $","",$value);
+   $value = mysql_escape_string($value);
+
+   mysql_select_db(DOCS_DATABASE);
+   $t1 = getmicrotime();
+   $res = mysql_perform_query("
+SELECT id 
+FROM   $table 
+WHERE  value='$value' and 
+       tag='$tag'");
+   $t2 = getmicrotime();
+   if (PRINTDB)
+      print ($t2-$t1)." select id from $table where value='$value' and".
+         " tag='$tag'\n";
+   if ($arr = mysql_fetch_row($res))
+   {
+      $t1 = getmicrotime();
+      $res2 = mysql_perform_query("
+SELECT id_bibrec 
+FROM   bibrec_".$table." 
+WHERE  id_bibxxx=".$arr[0]);
+      $t2 = getmicrotime();
+      if (PRINTDB)
+         print ($t2-$t1)." select id_bibrec from bibrec_".$table.
+            " where id_".$table."=".$arr[0]."\n";
+      $result = mysql_fetch_row($res2);
+      return $result[0];
+   }
+   else
+      return 0;
+}
+
+
+function integrate($rec,$logfp)
+{
+   global $WORDFILEJOB;
+
+   //create the bibrec
+   $now = strftime("%Y-%m-%d %H:%M:%S");
+   $cd = $now;
+   $md = $now;
+
+   $t1 = getmicrotime();
+   mysql_perform_query("
+INSERT
+INTO   bibrec (creation_date,modification_date) 
+values('$cd','$md')");
+   $t2 = getmicrotime();
+   if (PRINTDB)
+      print ($t2-$t1)." insert into bibrec (creation_date,modification_date)".
+         " values('$cd','$md')\n";
+
+   #get the created item id
+   $recid = mysql_insert_id();
+
+   #for each field
+   $nbfields = $rec->nbfields;
+   for ($j=0;$j<$nbfields;$j++)
+   {
+      if ($rec->fields[$j])
+      {
+         $position = $j + 1;
+         $field = $rec->fields[$j];
+         $tag = $field->type;
+         $i1 = $field->i1;
+         $i2 = $field->i2;
+         $tablenumber = substr($tag,0,2);
+         $tablename = "bib" . $tablenumber . "x"; 
+
+         // special treatment for the format field
+         if ($tag == "FMT")
+         {
+            if ($field->subfields[1]->value != "")
+            {
+               $format = $field->subfields[0]->value;
+               if ($format{0} == "x") {
+                   $value = mysql_escape_string(gzcompress(utf8_encode($field->subfields[1]->value)));
+               }
+               else {   
+                   $value = mysql_escape_string(gzcompress($field->subfields[1]->value));
+               }
+               $t1 = getmicrotime();
+               $res = mysql_perform_query("
+SELECT id 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+               $t2 = getmicrotime();
+               if (PRINTDB)
+                  print ($t2-$t1)." select id from bibfmt where".
+                     " id_bibrec=$recid and format='$format'\n";
+               if (mysql_num_rows($res) != 0)
+               {
+                  $t1 = getmicrotime();
+                  mysql_perform_query("
+UPDATE bibfmt 
+SET    format='$format',
+       value='$value',
+       last_updated=NOW()
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+                  $t2 = getmicrotime();
+                  if (PRINTDB)
+                     print ($t2-$t1)." update bibfmt set format='$format',".
+                         "value='$value', last_updated=NOW()".
+                         " where id_bibrec=$recid and format='$format'\n";
+               }
+               else
+               {
+                  $t1 = getmicrotime();
+                  mysql_perform_query("
+INSERT
+INTO   bibfmt(id_bibrec,format,value,last_updated)
+values ($recid,'$format','$value',NOW())");
+                  $t2 = getmicrotime();
+                  if (PRINTDB)
+                     print ($t2-$t1)." insert into bibfmt(id_bibrec,format,".
+                         "value, last_updated)values($recid,'$format','$value'," .
+                         "NOW())\n";
+               }
+            }
+            else
+            {
+               $format = $field->subfields[0]->value;
+               $t1 = getmicrotime();
+               mysql_perform_query("
+DELETE 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+               $t2 = getmicrotime();
+               if (PRINTDB)
+                  print ($t2-$t1)." delete from bibfmt where id_bibrec=$recid".
+                     " and format='$format'\n";
+            }
+         }
+         // we do not want field 001 to be integrated
+         elseif ($tag != "001")
+         {		
+            #main value
+            if ($field->value != "")
+            {
+               $fulltag = "$tag${i1}${i2}_";
+               $value = mysql_escape_string($field->value);
+               insertfield($fulltag,$value,$tablename,$recid,$position,$logfp);
+            }
+			
+            #sub fields
+            $nbsubfields = $field->nbsubfields;
+            for ($k=0;$k<$nbsubfields;$k++)
+            {
+               $subfield = $field->subfields[$k];
+               $subfieldcode = $subfield->subfieldcode;
+               if ($subfield->value != "")
+               {
+                  $fulltag = "$tag$i1$i2$subfieldcode";
+                  $value = mysql_escape_string($subfield->value);
+                  insertfield($fulltag,$value,$tablename,$recid,$position,$logfp);
+               }
+            }
+         }
+      }
+   }
+		
+   // word file addition
+   if ($WORDFILEJOB && BIBWORDS)
+      system("$WORDFILEJOB add $recid > /dev/null 2>&1");
+
+   // insert xml full format
+   insertFMTfield($recid);
+
+   if (!MUTE) {
+       print "inserted.\n";
+   }
+}
+
+
+
+function deletefield($recid,$fulltag,$tablename,$logfp)
+{
+    global $strongtags;
+
+    $t1 = getmicrotime();
+    $res = mysql_perform_query("
+SELECT DISTINCT field_number
+FROM   bibrec_$tablename,
+       $tablename 
+WHERE  id_bibxxx = id and 
+       id_bibrec=$recid and 
+       tag LIKE '$fulltag'");
+    $t2 = getmicrotime();
+    if (PRINTDB)
+        print ($t2-$t1)." select DISTINCT field_number from bibrec_$tablename,$tablename".
+            " where id_bibxxx = id and id_bibrec=$recid and tag LIKE '$fulltag'\n";
+    while ($row = mysql_fetch_row($res)) {
+        // delete main value + subfields
+        $t1 = getmicrotime();
+        mysql_perform_query("
+DELETE 
+FROM   bibrec_$tablename
+USING  bibrec_$tablename,
+       $tablename
+WHERE  id_bibrec=$recid and 
+       field_number=$row[0] and
+       id_bibxxx=id and
+       tag NOT IN ".createTextFromArray($strongtags));
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." delete from bibrec_$tablename using  bibrec_$tablename, ".
+                " $tablename where id_bibrec=$recid and field_number=$row[0] and ".
+                "id_bibxxx=id and tag NOT IN ".createTextFromArray($strongtags)."\n";
+    }
+}
+
+
+
+function update($rec,$recid,$logfp)
+{
+    global $WORDFILEJOB,$strongtags;
+
+    $now = strftime("%Y-%m-%d %H:%M:%S");
+    $md = $now;
+    
+    // firstly check whether this 'id' exists in the bibrec table:
+    $res = mysql_perform_query("SELECT COUNT(*) FROM bibrec WHERE id=$recid\n");
+    $row = mysql_fetch_row($res);
+    if ($row[0] == 0) {
+        if (!MUTE) {
+            print "update error. [record $recid does not exist]\n";
+        }
+        return;
+    }
+    mysql_free_result($res);
+   
+    // update the modification datetime field
+    // if we don't have only FMT fields inside the record
+    $onlyFMT = true;
+    for ($j=0;$j<$rec->nbfields;$j++) {
+        if ($rec->fields[$j] && $rec->fields[$j]->type != "FMT") {
+            $onlyFMT = false;
+        }
+    }
+    if (!$onlyFMT && !FORMAT) {
+        $t1 = getmicrotime();
+        mysql_perform_query("
+UPDATE bibrec 
+SET    modification_date='$md'
+WHERE  id=$recid\n");
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." update bibrec set modification_date='$md',".
+                " where id=$recid\n";
+    }
+
+    $nbfields = $rec->nbfields;
+
+    if (CORRECT) {
+        // delete each found field
+        for ($j=0;$j<$nbfields;$j++) {
+            $field = $rec->fields[$j];
+            $tag = $field->type;
+            $i1 = $field->i1;
+            $i2 = $field->i2;
+            $tablenumber = substr($tag,0,2);
+            $tablename = "bib" . $tablenumber . "x";
+            $nbsubfields = $field->nbsubfields;
+            for ($k=0;$k<$nbsubfields;$k++) {
+                $subfield = $field->subfields[$k];
+                $subfieldcode = $subfield->subfieldcode;
+                $fulltag = "$tag$i1$i2$subfieldcode";
+                if ($tag != "FMT") {
+                    deletefield($recid,$fulltag,$tablename,$logfp);
+                }
+            }
+        }
+    }
+
+    if(REPLACE && !$onlyFMT) {
+        for ($i=0;$i<100;$i++) {
+            deletefield($recid,"%","bib".($i<10 ? "0$i" : "$i")."x",$logfp);
+        }
+    }
+    
+    // insert each found field
+    for ($j=0;$j<$nbfields;$j++) {
+        if ($rec->fields[$j]) {
+            $fieldnumber = -1;
+            $field = $rec->fields[$j];
+            $tag = $field->type;
+            $i1 = $field->i1;
+            $i2 = $field->i2;
+            $tablenumber = substr($tag,0,2);
+            $tablename = "bib" . $tablenumber . "x"; 
+            $fulltag = "$tag$i1${i2}_";
+
+            if ($tag == "FMT") {
+                if ($field->subfields[1]->value != "") {
+                    $format = $field->subfields[0]->value;
+                    $value = mysql_escape_string(gzcompress($field->subfields[1]->value));
+                    $t1 = getmicrotime();
+                    $res = mysql_perform_query("
+SELECT id 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+
+                    $t2 = getmicrotime();
+                    if (PRINTDB)
+                        print ($t2-$t1)." select id from bibfmt where ".
+                            "id_bibrec=$recid and format='$format'\n";
+                    if (mysql_num_rows($res) != 0) {
+                        $t1 = getmicrotime();
+                        mysql_perform_query("
+UPDATE bibfmt 
+SET    format='$format',
+       value='$value',
+       last_updated=NOW()
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+
+                        $t2 = getmicrotime();
+                        if (PRINTDB)
+                            print ($t2-$t1)." update bibfmt set format='$format',".
+                                "value='$value', last_updated=NOW()".
+                                " where id_bibrec=$recid and format='$format'\n";
+                    }
+                    else {
+                        $t1 = getmicrotime();
+                        mysql_perform_query("
+INSERT 
+INTO   bibfmt(id_bibrec,format,value,last_updated)
+values($recid,'$format','$value',NOW())");
+
+                        $t2 = getmicrotime();
+                        if (PRINTDB)
+                            print ($t2-$t1)." insert into bibfmt(id_bibrec,format,".
+                                "value, last_updated)values($recid,'$format','$value', NOW())\n";
+                    }
+                }
+                else {
+                    $format = $field->subfields[0]->value;
+                    $t1 = getmicrotime();
+                    $res = mysql_perform_query("
+DELETE 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='$format'");
+
+                    $t2 = getmicrotime();
+                    if (PRINTDB)
+                        print ($t2-$t1)." delete from bibfmt where id_bibrec=$recid".
+                            " and format='$format'\n";
+                }
+            }
+
+            else if (!FORMAT) {
+                // main value
+                if ($field->value != "") {
+                    $fieldnumber = getNextFieldNumber($tablename,$recid);
+                    $value = mysql_escape_string($field->value);
+                    insertfield($fulltag,$value,$tablename,$recid,
+                                $fieldnumber,$logfp);
+                }
+		
+                // sub fields
+                $nbsubfields = $field->nbsubfields;
+                for ($k=0;$k<$nbsubfields;$k++) {
+                    $subfield = $field->subfields[$k];
+                    $subfieldcode = $subfield->subfieldcode;
+                    $fulltag = "$tag$i1$i2$subfieldcode";
+                    if ($subfield->value != "" and !in_array($fulltag,$strongtags)) {
+                        if ($fieldnumber == "-1")
+                            $fieldnumber = getNextFieldNumber($tablename,$recid);
+                        $value = mysql_escape_string($subfield->value);
+                        insertfield($fulltag,$value,$tablename,$recid,
+                                    $fieldnumber,$logfp);
+                    }
+                }
+            }
+        }
+    }
+
+    // word file update
+    if ($WORDFILEJOB && BIBWORDS) {
+        system("$WORDFILEJOB del $recid > /dev/null 2>&1");
+        system("$WORDFILEJOB add $recid > /dev/null 2>&1");
+    }
+
+    
+    if(REPLACE && !$onlyFMT) {
+        // insert xml full format
+        insertFMTfield($recid);
+    }
+
+    if (!MUTE) {
+        print "updated. [$recid]\n";
+    }
+}
+
+
+
+
+
+function insertFMTfield($recid)
+{
+    global $xml;
+
+    if ($recid != "000" && $recid != "") {
+        // add sysno to xml record
+        $xml = ereg_replace("<record([^>]*)>","<record\\1>\n<controlfield tag=\"001\">$recid</controlfield>",$xml);
+    }
+
+    $format = "xm";
+    $value = mysql_escape_string(gzcompress(utf8_encode($xml)));
+    $t1 = getmicrotime();
+    $res = mysql_perform_query("
+SELECT id 
+FROM   bibfmt 
+WHERE  id_bibrec=$recid and 
+       format='xm'");
+
+    $t2 = getmicrotime();
+    if (PRINTDB)
+        print ($t2-$t1)." select id from bibfmt where ".
+            "id_bibrec=$recid and format='xm'\n";
+    if (mysql_num_rows($res) != 0) {
+        $t1 = getmicrotime();
+        mysql_perform_query("
+UPDATE bibfmt 
+SET    format='xm',
+       value='$value',
+       last_updated=NOW()
+WHERE  id_bibrec=$recid and 
+       format='xm'");
+        
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." update bibfmt set format='xm',".
+                "value='$value', last_updated=NOW() where id_bibrec=$recid and ".
+                                "format='xm'\n";
+    }
+    else {
+        $t1 = getmicrotime();
+        mysql_perform_query("
+INSERT 
+INTO   bibfmt(id_bibrec,format,value,last_updated)
+values($recid,'xm','$value',NOW())");
+        
+        $t2 = getmicrotime();
+        if (PRINTDB)
+            print ($t2-$t1)." insert into bibfmt(id_bibrec,format,".
+                "value,last_updated)values($recid,'xm','$value',NOW())\n";
+    }   
+}
+
+
+
+
+
+
+function insertfield($fulltag,$value,$tablename,$recid,$position,$logfp)
+{
+   $t1 = getmicrotime();
+   $res = mysql_perform_query("
+SELECT id 
+FROM   $tablename 
+WHERE  tag='$fulltag' and 
+       value='$value'");
+
+   $t2 = getmicrotime();
+   if (PRINTDB)
+      print ($t2-$t1)." select id from $tablename where tag='$fulltag' and".
+         " value='$value'\n";
+
+   if (!$res)
+      print "failed query: select id from $tablename where tag='$fulltag' ".
+         "and value='$value'\n";
+
+   # if an entry already exists with this couple tag/value
+   if ($res && $row = mysql_fetch_row($res))
+   {
+      $idbibxxx = "$row[0]";
+   }
+   # else we create it
+   else
+   {
+      #create
+      $t1 = getmicrotime();
+      $query = "INSERT INTO $tablename (tag,value) VALUES ('$fulltag','$value')";
+      if (PRINTDB)
+          print "Query: $query ... \n";
+      mysql_perform_query($query);
+      $t2 = getmicrotime();
+      if (PRINTDB)
+      print "  Query took: ".($t2-$t1)." seconds.\n";
+      #get the id back
+      $idbibxxx = mysql_insert_id();
+   }
+
+   #then create the bibrec_bibxxx entry with position number
+   $t1 = getmicrotime();
+   $query = "INSERT INTO bibrec_$tablename VALUES ($recid,$idbibxxx,$position)";
+   if (PRINTDB)
+       print "Query: $query ...\n";
+   mysql_perform_query($query);
+   $t2 = getmicrotime();
+   if (PRINTDB)
+   print "  Query took: ".($t2-$t1)." seconds.\n";
+}
+	
+
+
+
+
+
+
+function display($rec)
+{
+   global $nbRecords;
+
+   #for each field
+   $nbfields = $rec->nbfields;
+   print "\n\nRecord $nbRecords: $nbfields fields\n";
+
+   for ($j=0;$j<=$nbfields;$j++)
+   {
+      if ($rec->fields[$j])
+      {	
+         $field = $rec->fields[$j];
+         $tag = $field->type;
+         $i1 = $field->i1;
+         $i2 = $field->i2;
+         $tablenumber = substr($tag,0,2);
+         $tablename = "bib" . $tablenumber . "x"; 
+		
+         print "field $j: $tag$i1$i2\n"; 
+
+         #main value
+         if ($field->value != "")
+         {
+            $fulltag = "$tag${i1}${i2}_";
+            $value = $field->value;
+            print "		main value: $value\n";
+         }
+		
+         #sub fields
+         $nbsubfields = $field->nbsubfields;
+         if ($nbsubfields != 0)
+         {
+            for ($k=0;$k<$nbsubfields;$k++)
+            {
+               $subfield = $field->subfields[$k];
+               $subfieldcode = $subfield->subfieldcode;
+               print "		subfield $k: ($subfieldcode) " . 
+                  $subfield->value . "\n";
+            }
+         }
+      }
+   }
+}
+
+
+function parse_command($argv)
+{
+   global $recordfiles;
+
+   $i = 1;
+   if (count($argv) <= 1)
+   {
+      print "Bad parameter count!\n";
+      displayhelp();
+      exit;
+   }
+   else
+   {
+      while (substr($argv[$i],0,1) == "-")
+      {
+         if ($argv[$i] == "-h" || $argv[$i] == "--help")
+         {
+            displayhelp();
+            exit;
+         }
+         else if ($argv[$i] == "-d" || $argv[$i] == "--display")
+            define("DISPLAY", TRUE );
+         else if ($argv[$i] == "-b" || $argv[$i] == "--database")
+            define("PRINTDB", TRUE );
+         else if ($argv[$i] == "-m" || $argv[$i] == "--mute")
+            define("MUTE",TRUE);
+         else if ($argv[$i] == "-w" || $argv[$i] == "--bibwords")
+            define("BIBWORDS",TRUE);
+         else if ($argv[$i] == "-r" || $argv[$i] == "--replace")
+            define("REPLACE",TRUE);
+         else if ($argv[$i] == "-a" || $argv[$i] == "--append")
+            define("APPEND",TRUE);
+         else if ($argv[$i] == "-c" || $argv[$i] == "--correct")
+            define("CORRECT",TRUE);
+         else if ($argv[$i] == "-f" || $argv[$i] == "--format")
+            define("FORMAT",TRUE);
+         else
+         {
+            print "Unrecognized option " . $argv[$i] . "!\n";
+            displayhelp();
+            exit;
+         }
+         $i++;
+      }
+   }
+
+   if (!defined("DISPLAY"))
+      define("DISPLAY", FALSE );
+   if (!defined("PRINTDB"))
+      define("PRINTDB", FALSE );
+   if (!defined("MUTE"))
+      define("MUTE",FALSE);
+   if (!defined("BIBWORDS"))
+      define("BIBWORDS",FALSE);
+   if (!defined("REPLACE"))
+      define("REPLACE",FALSE);
+   if (!defined("APPEND"))
+      define("APPEND",FALSE);
+   if (!defined("FORMAT"))
+      define("FORMAT",FALSE);
+   if (!APPEND && !REPLACE && !FORMAT && !defined("CORRECT"))
+       define("CORRECT",TRUE);
+   else
+       define("CORRECT",FALSE);
+
+   if ( REPLACE + APPEND + CORRECT + FORMAT > 1 ) {
+       print "\nYou can only specify ONE update mode!\n\n";
+       displayHelp();
+       exit;
+   }
+
+   $recordfiles = array_slice($argv, $i);
+   if (!count($recordfiles)) 
+   {
+      print "\nMissing filename!\n\n";
+      displayhelp();
+      exit;
+   }
+
+}
+	
+function displayhelp()
+{
+   print "Usage: bibupload [options] file1.xml [file2.xml ...]
+  Options: 
+       -h, --help      print this help
+       -d, --display   display records analysis - no integration
+       -b, --database  display integration requests - integration
+       -m, --mute      Silent mode.
+       -w, --bibwords  call bibwords on integration or modification
+		       of a record.
+
+  Update Modes:
+       -r, --replace   \"Replace\" mode (the existing record is deleted
+                       and fully replaced by the new one).
+       -a, --append    \"Append\" mode (the new fields are appended to
+                       the existing record).
+       -c, --correct   \"Correct\" mode (only the corrected lines are 
+                       deleted and replaced by the new ones). This is 
+                       the default mode
+       -f, --format    \"Format\" update mode. Takes only the FMT fields into
+                       account. Does not update the modification stamp
+                       either.\n";
+}
+
+function insert ($rec)
+{
+    global $nbRecords, $nbFoundRecords, $xml;
+
+    // get sysno
+    $recid = $rec->recid;
+
+    if ($recid == "000") {
+
+        // test on the old aleph sysno field
+        $oldsysno = $rec->get_subfield("909","C","0","o");
+        $oldsysnoExists = Test_In_DB($oldsysno,"909C0o","bib90x");
+        if ($oldsysnoExists)
+            $recid = $oldsysnoExists;
+        else {
+            // test on the ER field
+            $er = $rec->get_subfield("037","_","_","a");
+            $ERExists = Test_In_DB($er,"037__a","bib03x");
+            if ($ERExists)
+                $recid = $ERExists;
+        }
+	
+        // display record name
+        if (!MUTE) {
+            if ($er) {
+                print ("Record $er ");
+            } else {
+                print ("Record #".($nbRecords+1)." ");
+            }
+        }
+
+        if ($recid != "000") {
+            // this is an update
+            if (DISPLAY)
+                display($rec);
+            else
+                update($rec,$recid,$logfp);
+            $nbFoundRecords++;
+        }
+        else {
+            // this is an insert
+            if (DISPLAY)
+                display($rec);
+            else if (!FORMAT)
+                integrate($rec,$logfp);
+        }
+    }
+    else {
+        // this is an update
+        if (!MUTE) {
+            if ($er) {
+                print ("Record $er ");
+            } else {
+                print ("Record #".($nbRecords+1)." ");
+            }        
+        }
+        if (DISPLAY)
+            display($rec);
+        else
+            update($rec,$recid,$logfp);
+    }
+}
+
+function get_next_record($fp)
+{
+   static $line = ""; // needed static so as to preserve line between successive calls to get_next_record()
+   $xmlrecord = "";
+
+   // get begining of next record
+   $line = stristr($line,"</record"); // useful if there were more records in the same line
+   while (!stristr($line,"<record") && !feof($fp)) 
+      $line = fgets($fp, 4096);
+
+   // if the end of the file is reached without finding any record
+   if (feof($fp))
+      return "";
+
+   // get full record 
+   $line = stristr($line,"<record"); // continue after the above "<record" match only
+   $xmlrecord = $line;
+   while (!stristr($line,"</record>") && !feof($fp))
+   {
+      $line = fgets($fp, 4096);
+      $xmlrecord .= $line;
+   }
+
+   return $xmlrecord;
+}
+
+
+function getmicrotime()
+{ 
+   list($usec, $sec) = explode(" ",microtime()); 
+   return ((float)$usec + (float)$sec); 
+}  
+
+function formatfield($field)
+{
+   #$field = str_replace("&","\046",$field);
+   #$field = str_replace("&amp;","&",$field);
+   #$field = str_replace("&","&amp;",$field);
+#    // Get rid of control characters
+#    $field = str_replace("\001","",$field);
+#    $field = str_replace("\002","",$field);
+#    $field = str_replace("\003","",$field);
+#    $field = str_replace("\004","",$field);
+#    $field = str_replace("\005","",$field);
+#    $field = str_replace("\006","",$field);
+#    $field = str_replace("\007","",$field);
+#    $field = str_replace("\010","",$field);
+#    $field = str_replace("\013","",$field);
+#    $field = str_replace("\014","",$field);
+#    $field = str_replace("\016","",$field);
+#    $field = str_replace("\017","",$field);
+#    $field = str_replace("\020","",$field);
+#    $field = str_replace("\021","",$field);
+#    $field = str_replace("\022","",$field);
+#    $field = str_replace("\023","",$field);
+#    $field = str_replace("\024","",$field);
+#    $field = str_replace("\025","",$field);
+#    $field = str_replace("\026","",$field);
+#    $field = str_replace("\027","",$field);
+#    $field = str_replace("\030","",$field);
+#    $field = str_replace("\031","",$field);
+#    $field = str_replace("\032","",$field);
+#    $field = str_replace("\033","",$field);
+#    $field = str_replace("\034","",$field);
+#    $field = str_replace("\035","",$field);
+#    $field = str_replace("\036","",$field);
+#    $field = str_replace("\037","",$field);
+   // UTF8 decode
+   $field = utf8_decode($field);
+
+   return $field;
+}
+
+
+
+///////////////////////////////////////////////////////////////////////
+// MAIN SCRIPT                                                       //
+///////////////////////////////////////////////////////////////////////
+
+# Analyse of the command-line arguments
+# This program should take the path to the record file as parameter
+parse_command($argv);
+
+global $EDS;
+
+$maxfieldno = array();
+$index = array();
+$vals = array();
+$starttime = getmicrotime();
+
+// connect to mysql
+$sock = @mysql_connect("${mysql_machine}","${mysql_docid}","${mysql_docpw}") 
+   or die("Sorry, cannot connect to SQL server.\nPlease try later.\n");
+@mysql_select_db(DOCS_DATABASE) 
+   or die("Sorry, cannot choose ".DOCS_DATABASE." database.  Please try later.\n");
+	
+$errorfp = fopen("php://stderr","w");
+
+$nbRecords = 0;
+$nbFoundRecords = 0;
+
+foreach ($recordfiles as $recordfile) {
+
+     if (!file_exists("$recordfile"))
+        $recordfile = $PWD."/$recordfile";
+ 
+     #open xml file
+     $fp = @fopen("$recordfile","r");
+     if (!$fp)
+     {
+         print "Error: cannot localize and/or open file '$recordfile' for reading.  Ignored.\n";
+     }
+     else {
+         if (!MUTE)
+             print "\nInput file: $recordfile\n";
+         
+         $xml = "";
+         $xml = get_next_record($fp);
+         
+         while ($xml != "") {
+             $i = 0;
+             
+             $xml = formatfield($xml);
+             
+             // create XML structure
+             $p = xml_parser_create();
+             xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1); 
+             xml_parse_into_struct($p,$xml,$index,$vals);
+             xml_parser_free($p);
+             $nbTags = count($index);
+             
+             // record creation
+             $rec = new record();
+             
+             if ($rec->valid) {
+                 insert($rec);
+             }
+             else
+                 fwrite($errorfp,$xml."\n\n");
+             
+             unset($rec);
+             unset($maxfieldno);
+             
+             $nbRecords++;
+             
+             $xml = get_next_record($fp);		
+         }	
+         
+         fclose($fp);
+     }
+}	
+	
+if(!MUTE)
+{
+   print "\nIdentified: $nbRecords records\n";
+   print "Updated: $nbFoundRecords records\n";
+   print "Inserted: ".($nbRecords-$nbFoundRecords)." records ";
+
+   $endtime = getmicrotime();
+   $time = $endtime - $starttime;
+   $meantreatment = ($nbRecords != 0 ? ($time/$nbRecords) : "-");
+   print "in $time seconds\n";
+   printf("Average record treatment time: %.2f seconds", $meantreatment);
+}
+	
+	
+?>
+
+</protect>
diff --git a/modules/bibwords/.cvsignore b/modules/bibwords/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/bibwords/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/bibwords/Makefile.am b/modules/bibwords/Makefile.am
new file mode 100644
index 000000000..6e03e9d56
--- /dev/null
+++ b/modules/bibwords/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = bin
+
+CLEANFILES = *~ 
\ No newline at end of file
diff --git a/modules/bibwords/bin/.cvsignore b/modules/bibwords/bin/.cvsignore
new file mode 100644
index 000000000..244de3130
--- /dev/null
+++ b/modules/bibwords/bin/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+bibstat
+bibwords
\ No newline at end of file
diff --git a/modules/bibwords/bin/Makefile.am b/modules/bibwords/bin/Makefile.am
new file mode 100644
index 000000000..b04881de5
--- /dev/null
+++ b/modules/bibwords/bin/Makefile.am
@@ -0,0 +1,28 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+bin_SCRIPTS=bibwords bibstat
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(bin_SCRIPTS) *~ *.tmp bibwordsc
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+	chmod u+x $@
\ No newline at end of file
diff --git a/modules/bibwords/bin/bibstat.wml b/modules/bibwords/bin/bibstat.wml
new file mode 100644
index 000000000..e26b9414d
--- /dev/null
+++ b/modules/bibwords/bin/bibstat.wml
@@ -0,0 +1,119 @@
+## $Id$
+## BibStat utility to report some interesting numbers on CDSware bibliographic record set.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>#!</protect><PYTHON>
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+
+"""
+BibStat reports some interesting numbers on CDSware bibliographic record set.
+"""
+
+## fill config variables:
+dbhost = "<DBHOST>"
+dbname = "<DBNAME>"
+dbuser = "<DBUSER>"
+dbpass = "<DBPASS>"
+
+## okay, rest of the Python code goes below
+#######
+
+## version number:
+__version__ = "$Id$"
+
+## import interesting modules:
+try:
+    from marshal import loads,dumps
+    from zlib import compress,decompress
+    from string import split,translate,lower,upper
+    import getopt
+    import string
+    import os
+    import re
+    import sys
+    import time
+    import MySQLdb
+    import urllib
+    import signal
+    import threading 
+    import unicodedata
+    import traceback
+    import cStringIO
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+## cursor to MySQL database:
+try:
+    db = MySQLdb.connect(host=dbhost, db=dbname, user=dbuser, passwd=dbpass)
+    cursor  = db.cursor()
+except StandardError, err:
+    Log(str(err),"Error")
+    sys.exit(1)
+
+def escape_string(s):
+    "Escapes special chars in string.  For MySQL queries."
+    return  MySQLdb.escape_string(s)
+
+def report_bibXXx_table_status(tablename):
+    """Report stats for the table bibXXx 'tablename'."""
+    out = ""
+    query = "SHOW TABLE STATUS LIKE '%s'" % escape_string(tablename)
+    cursor.execute(query)
+    row = cursor.fetchone()
+    while row:
+        out += "%14s %17d %17d %17d" % (row[0], row[3], row[5], row[7]) # Name, Rows, Data_length, Max_data_length
+        row = cursor.fetchone()
+    return out    
+
+def report_bibwords_table_status(tablename):
+    """Report stats for the table bibwordsX 'tablename'."""
+    out = ""
+    query = "SHOW TABLE STATUS LIKE '%s'" % escape_string(tablename)
+    cursor.execute(query)
+    row = cursor.fetchone()
+    while row:
+        out += "%14s %17d %17d %17d" % (row[0], row[3], row[5], row[7]) # Name, Rows, Data_length, Max_data_length
+        row = cursor.fetchone()
+    return out    
+
+def main():
+    """Report stats on the CDSware bibliographic tables."""
+    print "%14s %17s %17s %17s" % ("TABLE", "ROWS", "DATA SIZE", "INDEX SIZE")
+    print "============== ================= ================= ================="
+    for i in range(0,10):
+        for j in range(0,10):
+            print report_bibXXx_table_status("bib%1d%1dx" % (i, j))
+            print report_bibXXx_table_status("bibrec_bib%1d%1dx" % (i, j))
+    for i in range(0,10):
+        print report_bibwords_table_status("bibwords%1d" % i)
+        print report_bibwords_table_status("bibwords%1dr" % i)
+            
+
+if __name__ == "__main__":
+    main()
+
+
diff --git a/modules/bibwords/bin/bibwords.wml b/modules/bibwords/bin/bibwords.wml
new file mode 100644
index 000000000..74b25aa18
--- /dev/null
+++ b/modules/bibwords/bin/bibwords.wml
@@ -0,0 +1,1650 @@
+## $Id$
+## BibWords bibliographic data, reference and fulltext indexing utility.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+## start Python:
+<protect>#!</protect><PYTHON>
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""
+BibWords bibliographic data, reference and fulltext indexing utility.
+
+Usage: bibwords %s [options] 
+Examples:
+       bibwords -a -i 234-250,293,300-500 -u admin@cdsware
+       bibwords -a -w author,fulltext -M 8192 -d
+       bibwords -x -m +4d -A on --flush=10000
+
+ Command options:
+ -a,  --add                add or update selected records
+ -x,  --del                delete selected records
+ -i,  --id=low[-high]      select according to record recID.
+ -m,  --modified=from[,to] select according to modification date
+ -w,  --wordsindex=w1[,w2] words indexes to consider (all)
+
+ Specific options:
+ -M,  --maxmem=XXX         maximum memory usage in kB (no limit)
+ -f,  --flush=NNN          full consistent table flush after NNN records (5000)
+      
+ Scheduler options:
+ -u,  --user=USER          user name to store task, password needed
+ -p,  --sleeptime=SLEEP    time after which to repeat tasks (no)
+                           e.g.: 1s, 30m, 24h, 7d
+ -t,  --time=DATE          moment for the task to be active (now)
+                           e.g.: +15s, 5m, 3h , 2002-10-27 13:57:26
+
+ General options:
+ -h,  --help               print this help
+ -v,  --version            print version
+ -d,  --debug              log debugging information
+ -V,  --verbose            log extra debugging information verbose
+"""
+
+## fill config variables:
+pylibdir = "<LIBDIR>/python"
+
+## programs used to convert fulltext files to text:
+conv_programs = {#"ps": ["<PSTOTEXT>","<PSTOASCII>"],  # switched off at the moment, since PDF is faster
+                 #"ps.gz": ["<PSTOTEXT>","<PSTOASCII>"],
+                 "pdf": ["<PDFTOTEXT>","<PSTOTEXT>","<PSTOASCII>"],
+                 "doc": ["<ANTIWORD>","<CATDOC>","<WVTEXT>"],
+                 "ppt": ["<PPTHTML>"],
+                 "xls": ["<XLHTML>"]
+                 }
+## helper programs used if the above programs convert only to html or other intermediate file formats:
+conv_programs_helpers =  {"html": "<HTMLTOTEXT>",
+                          "gz": "<GZIP>" }
+
+## okay, rest of the Python code goes below
+#######
+
+## version number:
+__version__ = "$Id$"
+
+    
+## import interesting modules:
+try:
+    from marshal import loads,dumps
+    from zlib import compress,decompress
+    from string import split,translate,lower,upper
+    import getopt
+    import string
+    import os
+    import re
+    import sys
+    import time
+    import MySQLdb
+    import Numeric
+    import urllib
+    import signal
+    import threading 
+    import unicodedata
+    import traceback
+    import cStringIO
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+try:
+    sys.path.append('%s' % pylibdir)
+    from cdsware.config import *
+    from cdsware.search_engine_config import cfg_max_recID
+    from cdsware.dbquery import run_sql
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+
+## import optional modules:
+try:
+    import psyco
+    psyco.bind(get_words_from_phrase)
+    psyco.bind(merge_with_old_recIDs)
+    psyco.bind(serialize_via_numeric_array)
+    psyco.bind(serialize_via_marshal)
+    psyco.bind(deserialize_via_numeric_array)
+    psyco.bind(deserialize_via_marshal)
+except:
+    pass
+
+## override urllib's default password-asking behaviour:
+class MyFancyURLopener(urllib.FancyURLopener):
+    def prompt_user_passwd(self, host, realm):
+        # supply some dummy credentials by default
+        return ("mysuperuser", "mysuperpass")
+    def http_error_401(self, url, fp, errcode, errmsg, headers):
+        # do not bother with protected pages
+        raise IOError, (999, 'unauthorized access')  
+        return None
+    
+#urllib._urlopener = MyFancyURLopener()
+
+def Log(msg, type=""):
+    "Logs a message to the database."
+    if type == "Debug" and not opts_dict["debug"]:
+        return
+    if type == "Verbose" and not (opts_dict["debug"] or opts_dict["verbose"]):
+        return
+
+    if type == "Error":
+        out = sys.stderr
+    else:
+        out = sys.stdout
+                               
+    out.write(time.strftime("%Y-%m-%d %H:%M:%S --> ", time.localtime()))
+    out.write(str(msg))
+    if type:
+        out.write(" (" + type + ")")
+    out.write("\n")
+    out.flush()
+
+## precompile some often-used regexp for speed reasons:
+re_subfields = re.compile('\$\$\w');
+
+nb_char_in_line = 50  # for verbose pretty printing
+chunksize = 1000 # default size of chunks that the records will be treated by
+wordTables = []
+taskid = -1
+base_process_size = 4500 # process base size
+opts_dict = {} # will hold task options
+
+## build iso-latin-1 to "undotted" ascii translation table
+def build_table_latin1_to_ascii():
+    """Builds translation table from ISO Latin-1 into ASCII.
+    For example, 'f��lin' gets translated into 'felin', etc.
+    Suitable for search string pattern replacement.  Much faster than regexps."""
+    table = range(256)
+    for i in table:
+        x = unicodedata.decomposition(unichr(i))
+        if x and x[0] == "0":
+            table[i] = int(x.split()[0], 16)
+    return string.join(map(chr, table), "")
+
+# build conversion table:
+table_latin1_to_ascii = build_table_latin1_to_ascii()
+
+
+## Dictionary merging functions
+
+def intersection(dict, dict2):
+    "Returns intersection of the two dictionaries."
+    int_dict = {}
+    if len(dict1) > len(dict2): 
+        for e in dict2:
+            if dict1.has_key(e):
+                int_dict[e] = 1
+    else:
+        for e in dict1:
+            if dict2.has_key(e):
+                int_dict[e] = 1
+    return int_dict
+
+def union(dict1, dict2):
+    "Returns union of the two dictionaries."
+    union_dict = {}
+    for e in dict1.keys():
+        union_dict[e] = 1
+    for e in dict2.keys():
+        union_dict[e] = 1
+    return union_dict
+
+def diff(dict1, dict2):
+    "Returns dict1 - dict2."
+    diff_dict = {}
+    for e in dict1.keys():
+        if not dict2.has_key(e):
+            diff_dict[e] = 1
+    return diff_dict
+
+def list_union(list1, list2):
+    "Returns union of the two lists."
+    union_dict = {}
+    for e in list1:
+        union_dict[e] = 1
+    for e in list2:
+        union_dict[e] = 1
+    return union_dict.keys()
+
+## MARC-21 tag/field access functions
+
+def get_fieldvalues(recID, tag):
+    """Returns list of values of the MARC-21 'tag' fields for the record
+       'recID'."""
+
+    out = []
+    bibXXx = "bib" + tag[0] + tag[1] + "x"
+    bibrec_bibXXx = "bibrec_" + bibXXx
+    query = "SELECT value FROM %s AS b, %s AS bb WHERE bb.id_bibrec=%s AND bb.id_bibxxx=b.id AND tag LIKE '%s'" \
+            % (bibXXx, bibrec_bibXXx, recID, tag)
+    res = run_sql(query)
+    for row in res:
+        out.append(row[0])
+    return out
+
+def get_field_tags(field):
+    """Returns a list of MARC tags for the field code 'field'.
+       Returns empty list in case of error.
+       Example: field='author', output=['100__%','700__%']."""
+    out = []
+    query = """SELECT t.value FROM tag AS t, field_tag AS ft, field AS f
+                WHERE f.code='%s' AND ft.id_field=f.id AND t.id=ft.id_tag
+                ORDER BY ft.score DESC""" % field
+    res = run_sql(query)
+    for row in res:
+        out.append(row[0])
+    return out
+
+## Fulltext word extraction functions
+def separator_table(separators):
+    """Returns a translation table to convert the characters according to
+       the separators regex into spaces."""
+    expr = re.compile(separators)
+    table = range(256)
+    for i in table:
+        x = unichr(i)
+        if expr.match(x):
+            table[i] = ord(' ')
+    return string.join(map(chr, table), "")
+
+# Standard separator table
+word_separator_table = separator_table("[\s]")
+
+def get_fulltext_urls_from_html_page(htmlpagebody):
+    """Parses htmlpagebody data looking for url_directs referring to
+       probable fulltexts.
+       Returns an array of (ext,url_direct) to fulltexts.
+       Note: it looks for file format extensions as defined by global
+       'conv_programs'structure.
+       """
+    out = []
+    for ext in conv_programs.keys():
+        expr = re.compile( r"(\"http://[\w]+\.+[\w]+[^\"'><]*\.)(" + \
+                           ext + r")\"") 
+        match =  expr.search(htmlpagebody)
+        if match:
+            out.append([ext,match.group()])
+    return out
+
+def get_words_from_fulltext(url_indirect,separators="[^\w]",split=string.split):
+    """Returns all the words contained in the fulltext whose url
+       is contained in the document pointed to in phrase.
+       Please note the double indirection. url_indirect
+       returns a document that has to be parsed to get the actual
+       urls."""
+
+    url_direct = None
+    fulltext_urls = None
+    # check for direct link in url
+    url_indirect_ext = lower(split(url_indirect,".")[-1])
+
+    if url_indirect_ext in conv_programs.keys():
+        fulltext_urls = [(url_indirect_ext,url_indirect)]
+        
+    # Indirect url. Try to fetch the real fulltext(s)
+    if not fulltext_urls:
+        # read "setlink" data
+        try:
+            htmlpagebody = urllib.urlopen(url_indirect).read()
+        except:
+            sys.stderr.write("Error: Cannot read %s.\n" % url_indirect)
+            return []
+        fulltext_urls = get_fulltext_urls_from_html_page(htmlpagebody)
+
+    words = {}
+    table = separator_table(separators)
+
+    # process as many urls as they were found:
+    for (ext,url_direct) in fulltext_urls:
+
+        if opts_dict["debug"]:
+            print "Debug: processing %s from %s" % (ext,url_direct)
+        
+        # sanity check:
+        if not url_direct:
+            break;
+
+        # read fulltext file:
+        try:
+            url = urllib.urlopen(url_direct[1:-1])
+        except:
+            sys.stderr.write("Error: Cannot read %s.\n" % url_direct[1:-1])
+            break # try other fulltext files...
+        
+        tmp_name = os.tempnam()
+        tmp_fd = open(tmp_name, "w")
+        data_chunk = url.read(8*1024)
+        while data_chunk:
+            tmp_fd.write(data_chunk)
+            data_chunk = url.read(8*1024)
+        tmp_fd.close()
+
+        # try all available conversion programs according to their order:
+        bingo = 0
+        for conv_program in conv_programs[ext]:
+            if os.path.exists(conv_program):
+                # intelligence on how to run various conversion programs:
+                cmd = ""  # wil keep command to run
+                bingo = 0 # had we success?
+                if os.path.basename(conv_program) == "pdftotext":
+                    cmd = "%s %s %s.txt" % (conv_program, tmp_name, tmp_name)
+                elif os.path.basename(conv_program) == "pstotext":
+                    if ext == "ps.gz":
+                        # is there gzip available?                        
+                        if os.path.exists(conv_programs_helpers["gz"]): 
+                            cmd = "%s -cd %s | %s > %s.txt" \
+                                  % (conv_programs_helpers["gz"], tmp_name, conv_program, tmp_name)
+                    else:
+                        cmd = "%s %s > %s.txt" \
+                              % (conv_program, tmp_name, tmp_name)
+                elif os.path.basename(conv_program) == "ps2ascii":
+                    if ext == "ps.gz":
+                         # is there gzip available?                        
+                        if os.path.exists(conv_programs_helpers["gz"]):
+                            cmd = "%s -cd %s | %s > %s.txt"\
+                                  % (conv_programs_helpers["gz"], tmp_name,
+                                     conv_program, tmp_name)
+                    else:
+                        cmd = "%s %s %s.txt" \
+                              % (conv_program, tmp_name, tmp_name)
+                elif os.path.basename(conv_program) == "antiword":
+                    cmd = "%s %s > %s.txt" % (conv_program, tmp_name, tmp_name)
+                elif os.path.basename(conv_program) == "catdoc":
+                    cmd = "%s %s > %s.txt" % (conv_program, tmp_name, tmp_name)
+                elif os.path.basename(conv_program) == "wvText":
+                    cmd = "%s %s %s.txt" % (conv_program, tmp_name, tmp_name)
+                elif os.path.basename(conv_program) == "ppthtml":
+                    # is there html2text available?
+                    if os.path.exists(conv_programs_helpers["html"]): 
+                        cmd = "%s %s | %s > %s.txt"\
+                              % (conv_program, tmp_name,
+                                 conv_programs_helpers["html"], tmp_name)
+                    else:
+                        cmd = "%s %s > %s.txt" \
+                              % (conv_program, tmp_name, tmp_name)
+                elif os.path.basename(conv_program) == "xlhtml":
+                    # is there html2text available?
+                    if os.path.exists(conv_programs_helpers["html"]): 
+                        cmd = "%s %s | %s > %s.txt" % \
+                              (conv_program, tmp_name,
+                               conv_programs_helpers["html"], tmp_name)
+                    else:
+                        cmd = "%s %s > %s.txt" % \
+                              (conv_program, tmp_name, tmp_name)
+                else:
+                    sys.stderr.write("Error: Do not know how to handle %s conversion program.\n" % conv_program)
+                # try to run it:
+                try:
+                    if opts_dict["debug"]:
+                        print "Debug: launching %s" % cmd
+                    errcode = os.system(cmd)
+                    if errcode == 0 and os.path.exists("%s.txt" % tmp_name):
+                        bingo = 1
+                        break # bingo!
+                    else:
+                        sys.stderr.write("Error: while running %s for %s.\n" % (cmd, url_direct))
+                except:
+                    if opts_dict["debug"]:
+                        sys.stderr.write("Debug: Error running %s for %s.\n" % (cmd, url_direct))
+
+        # were we successful?
+        if bingo:
+            tmp_name_txt_file = open("%s.txt" % tmp_name)
+            for phrase in tmp_name_txt_file.xreadlines():
+                phrase = asciify_accented_letters(phrase)
+                phrase = translate(phrase, table)
+                for word in split(phrase):
+                    if not words.has_key(word):
+                        words[word] = 1;
+            tmp_name_txt_file.close()
+        else:
+            if opts_dict["debug"]:
+                sys.stderr.write("Debug: No conversion success for %s.\n" % (url_direct))
+
+        # delete temp files (they might not exist):
+        try:
+            os.unlink(tmp_name)
+            os.unlink(tmp_name + ".txt")
+        except StandardError:
+            Log("Could not delete file. It didn't exist","Error") 
+
+        # print interesting info:
+        if opts_dict["debug"]:
+            print "Debug: words table size is %d" % len(words)
+
+        
+    return words.keys()
+
+# tagToFunctions mapping. It offers an indirection level necesary for
+# indexing fulltext. The default is get_words_from_phrase
+tagToWordsFunctions = {'8564_u':get_words_from_fulltext}
+
+def get_words_from_phrase(phrase,
+                          chars_punctuation=r"[\.\,\:\;\?\!\"]",
+                          chars_alphanumericseparators=r"[^\w]",
+                          split=string.split):
+    "Returns list of words from phrase 'phrase'."
+    words = {}
+    # 1st split phrase into blocks according to whitespace
+    for block in split(asciify_accented_letters(phrase)):  
+        # 2nd remove leading/trailing punctuation and add block:
+        block = re.sub(r"^"+chars_punctuation+"+", "", block)
+        block = re.sub(chars_punctuation+"+$", "", block)
+        if block:
+            words[block] = 1         
+            # 3rd break each block into subblocks according to punctuation and add subblocks:
+            for subblock in re.split(chars_punctuation, block):
+                if subblock:
+                    words[subblock] = 1
+                    # 4th break each subblock into alphanumeric groups and add groups: 
+                    for alphanumeric_group in re.split(chars_alphanumericseparators, subblock):
+                        if alphanumeric_group:
+                            words[alphanumeric_group] = 1
+    return words.keys()
+
+def remove_subfields(s):
+    "Removes subfields from string, e.g. 'foo $$c bar' becomes 'foo bar'."
+    return re_subfields.sub(' ', s)
+
+
+def asciify_accented_letters(s):
+    "Translates ISO-8859-1 accented letters into their ASCII equivalents."
+    return translate(s, table_latin1_to_ascii)
+
+def get_field_tags(field):
+    """Returns a list of MARC tags for the field code 'field'.
+       Returns empty list in case of error.
+       Example: field='author', output=['100__%','700__%']."""
+    out = []
+    query = """SELECT t.value FROM tag AS t, field_tag AS ft, field AS f
+                WHERE f.code='%s' AND ft.id_field=f.id AND t.id=ft.id_tag
+                ORDER BY ft.score DESC""" % field
+    res = run_sql(query)
+    for row in res:
+        out.append(row[0])
+    return out
+
+def get_wordsindex_id(wordsindexname):
+    """Returns the words index id for 'wordsindexname' name.
+       Returns empty string in case there is no words table for this index.
+       Example: field='author', output=4."""
+    out = 0
+    query = """SELECT w.id FROM wordsindex AS w 
+                WHERE w.name='%s' LIMIT 1""" % wordsindexname
+    res = run_sql(query, None, 1)
+    if res:
+        out = res[0][0]
+    return out
+
+def get_wordsindex_tags(wordsindexname):
+    """Returns the list of tags that are indexed inside 'wordsindexname' words
+       index.
+       Returns empty list in case there are no tags indexed in this index.
+       Note: uses get_field_tags() defined before.
+       Example: field='author', output=['100__%', '700__%']."""
+    out = []
+    query = """SELECT f.code FROM wordsindex AS w, wordsindex_field AS wf,
+    field AS f WHERE w.name='%s' AND w.id=wf.id_wordsindex
+    AND f.id=wf.id_field""" % wordsindexname
+    res = run_sql(query)
+    for row in res:
+        out.extend(get_field_tags(row[0]))
+    return out
+
+def get_all_wordsindexes():
+    """Returns the list of the names of all defined words indexes.
+       Returns empty list in case there are no tags indexed in this index.
+       Example: output=['global', 'author']."""
+    out = []
+    query = """SELECT name FROM wordsindex"""
+    res = run_sql(query)
+    for row in res:
+        out.append(row[0])
+    return out
+        
+def usage(code, msg=''):
+    "Prints usage for this module."
+    if msg:
+        sys.stderr.write("Error: %s.\n" % msg)
+<protect>
+    print >> sys.stderr, \
+    """ Usage: %s [options] 
+     Examples:
+       %s -a -i 234-250,293,300-500 -u admin@cdsware
+       %s -a -w author,fulltext -M 8192 -d
+       %s -x -m +4d -A on --flush=10000
+
+ Command options:
+ -a,  --add                add or update selected records
+ -x,  --del                delete selected records
+ -c,  --check              check consistency for all records in the table(s)
+ -r,  --repair             try to repair all records in the table(s)
+ -i,  --id=low[-high]      select according to doc recID.
+ -m,  --modified=from[,to] select according to modification date
+ -w,  --wordsindex=w1[,w2] words indexes to consider (all)
+
+ Specific options:
+ -M,  --maxmem=XXX         maximum memory usage in kB (no limit)
+ -f,  --flush=NNN          full consistent table flush after NNN records (5000)
+      
+ Scheduler options:
+ -u,  --user=USER          user name to store task, password needed
+ -p,  --sleeptime=SLEEP    time after which to repeat tasks (no)
+                           e.g.: 1s, 30m, 24h, 7d
+ -t,  --time=DATE          moment for the task to be active (now)
+                           e.g.: +15s, 5m, 3h , 2002-10-27 13:57:26
+
+ General options:
+ -h,  --help               print this help
+ -V,  --version            print version
+ -d,  --debug              log debugging information
+ -v,  --verbose            log extra debugging information verbose
+    """ % ((sys.argv[0],) * 4)
+</protect>
+    sys.exit(code)
+
+def getpass(prompt = "Password: "):
+    """Prompts for a password without echoing it back to the screen"""
+    import termios, sys
+    fd = sys.stdin.fileno()
+    old = termios.tcgetattr(fd)
+    new = termios.tcgetattr(fd)
+    new[3] = new[3] & ~termios.ECHO          # lflags
+    passwd = ""
+    try:
+        termios.tcsetattr(fd, termios.TCSADRAIN, new)
+        passwd = raw_input(prompt)
+        print 
+    finally:
+        termios.tcsetattr(fd, termios.TCSADRAIN, old)
+    return passwd
+
+
+def authenticate(user):
+    """Authenticates a user against the user database.
+       NOTE: Access might be more complex in the future"""
+    print "BibWords Task Submission"
+    print "========================"
+    if user == "":
+        print >> sys.stdout, "\rUsername: ",
+        user = string.strip(string.lower(sys.stdin.readline()))
+    else:
+        print >> sys.stdout, "\rUsername:", user        
+
+    query = "select password from user where email='%s'" % MySQLdb.escape_string(user)
+    res = run_sql(query, None, 1)
+    if res:
+        row = res[0]
+        password_db = row[0]
+        if password_db != '':
+            # authentication needed
+            password_entered = getpass()
+            if password_db == password_entered:
+                return user
+            else:
+                print "Sorry, you seem to be unauthorized user.  Exiting."
+                sys.exit(1)
+        else:
+            # no authentication needed
+            return user
+    else:
+        print "Sorry, %s seems to be unauthorized user.  Exiting." % user
+        sys.exit(1)
+        
+def split_ranges(parse_string):
+    recIDs = []
+    ranges = string.split(parse_string, ",")
+    for range in ranges:
+        tmp_recIDs = string.split(range, "-")
+        
+        if len(tmp_recIDs)==1:
+            recIDs.append([int(tmp_recIDs[0]), int(tmp_recIDs[0])])
+        else:
+            if int(tmp_recIDs[0]) > int(tmp_recIDs[1]): # sanity check
+                tmp = tmp_recIDs[0]
+                tmp_recIDs[0] = tmp_recIDs[1]
+                tmp_recIDs[1] = tmp
+            recIDs.append([int(tmp_recIDs[0]), int(tmp_recIDs[1])])
+    return recIDs
+
+def get_word_tables(tables):
+    wordTables = []
+    if tables:
+        wordsindexes = string.split(tables, ",")
+        for wordsindex in wordsindexes:
+            wordsindex_id = get_wordsindex_id(wordsindex)
+            if wordsindex_id:
+                wordTables.append({"bibwords%d" % wordsindex_id: \
+                                   get_wordsindex_tags(wordsindex)})
+            else:                
+                Log("There is no %s words table." % wordsindex, "Error")
+    else:
+        for wordsindex in get_all_wordsindexes():
+            wordsindex_id = get_wordsindex_id(wordsindex)
+            wordTables.append({"bibwords%d" % wordsindex_id: \
+                               get_wordsindex_tags(wordsindex)})
+    return wordTables
+
+def get_date_range(var):
+    "Returns the two dates contained as a low,high tuple"
+    limits = string.split(var, ",")
+    if len(limits)==1:
+        low = get_date(limits[0])
+        return low,None
+    if len(limits)==2:
+        low = get_date(limits[0])
+        high = get_date(limits[1])
+        return low,high
+
+def get_date(var, format_string = "%Y-%m-%d %H:%M:%S"):
+    """Returns a date string according to the format string.
+       It can handle normal date strings and shifts with respect
+       to now."""
+    date = time.time()
+    shift_re=re.compile("([-\+]{0,1})([\d]+)([dhms])")
+    factors = {"d":24*3600, "h":3600, "m":60, "s":1}
+
+
+    m = shift_re.match(var)
+    if m:
+        sign = m.groups()[0] == "-" and -1 or 1
+        factor = factors[m.groups()[2]]
+        value = float(m.groups()[1])
+        print value
+        date = time.localtime(date + sign * factor * value)
+        date = time.strftime(format_string, date)
+    else:
+        date = time.strptime(var, format_string)
+        date = time.strftime(format_string, date)
+        
+    return date
+
+def create_range_list(res):
+    """Creates a range list from a recID select query result contained
+    in res. The result is expected to have ascending numerical order."""
+    if not res:
+        return []
+    row = res[0]
+    if not row:
+        return []
+    else:
+        range_list = [[row[0],row[0]]]
+    for row in res[1:]:
+        id = row[0]
+        if id == range_list[-1][1] + 1:
+            range_list[-1][1] = id
+        else:
+            range_list.append([id,id])
+    return range_list
+        
+def beautify_range_list(range_list):
+    """Returns a non overlapping, maximal range list"""
+    ret_list = []
+    for new in range_list:
+        found = 0
+        for old in ret_list:
+            if new[0] <= old[0] <= new[1] + 1 or new[0] - 1 <= old[1] <= new[1]:
+                old[0] = min(old[0], new[0])
+                old[1] = max(old[1], new[1])
+                found = 1
+                break
+
+        if not found:
+            ret_list.append(new)
+                
+    return ret_list
+
+def serialize_via_numeric_array_dumps(arr):
+    return Numeric.dumps(arr)
+def serialize_via_numeric_array_compr(str):
+    return compress(str)
+def serialize_via_numeric_array_escape(str):
+    return MySQLdb.escape_string(str)
+def serialize_via_numeric_array(arr):
+    """Serialize Numeric array into a compressed string."""
+    #return MySQLdb.escape_string(compress(Numeric.dumps(arr)))
+    return serialize_via_numeric_array_escape(serialize_via_numeric_array_compr(serialize_via_numeric_array_dumps(arr)))
+
+def deserialize_via_numeric_array(string):
+    """Decompress and deserialize string into a Numeric array."""
+    return Numeric.loads(decompress(string))
+
+def serialize_via_marshal(obj):
+    """Serialize Python object via marshal into a compressed string."""
+    return MySQLdb.escape_string(compress(dumps(obj)))
+
+def deserialize_via_marshal(string):
+    """Decompress and deserialize string into a Python object via marshal."""
+    return loads(decompress(string))
+
+class WordTable:
+    "A class to hold the words table."
+
+    def __init__(self, tablename, fields_to_index, separators="[^\s]"):
+        "Creates words table instance."
+        self.tablename = tablename
+        self.recIDs_in_mem = []
+        self.fields_to_index = fields_to_index
+        self.separators = separators
+        self.value = {}
+
+    def get_field(self, recID, tag):
+        """Returns list of values of the MARC-21 'tag' fields for the
+           record 'recID'."""
+
+        out = []
+        bibXXx = "bib" + tag[0] + tag[1] + "x"
+        bibrec_bibXXx = "bibrec_" + bibXXx
+        query = """SELECT value FROM %s AS b, %s AS bb
+                WHERE bb.id_bibrec=%s AND bb.id_bibxxx=b.id
+                AND tag LIKE '%s'""" % (bibXXx, bibrec_bibXXx, recID, tag);
+        res = run_sql(query)
+        for row in res:
+            out.append(row[0])
+        return out
+
+    def clean(self):
+        "Cleans the words table."
+        self.value={}
+
+    def put_into_db(self, mode="normal", split=string.split):
+        """Updates the current words table in the corresponding MySQL's
+           bibwordsX table.  Mode 'normal' means normal execution,
+           mode 'emergency' means words index reverting to old state.
+           """
+        Log("%s %s wordtable flush started" % (self.tablename,mode) )
+        Log('...updating %d words into %s started' % \
+            (len(self.value), self.tablename), "Verbose")
+            
+        self.recIDs_in_mem = beautify_range_list(self.recIDs_in_mem)
+
+        if mode == "normal":
+            for group in self.recIDs_in_mem:
+                query = """UPDATE %sr SET type='TEMPORARY' WHERE id_bibrec
+                BETWEEN '%d' AND '%d' AND type='CURRENT'""" % \
+                (self.tablename, group[0], group[1])
+                Log(query, "Debug")
+                run_sql(query)
+
+        nb_words_total = len(self.value)
+        nb_words_report = int(nb_words_total/10)
+        nb_words_done = 0
+        for word in self.value.keys():
+            self.put_word_into_db(word)
+            nb_words_done += 1
+            if nb_words_report!=0 and ((nb_words_done % nb_words_report) == 0):
+                Log('......updated %d/%d words' % (nb_words_done, nb_words_total))
+        Log('...updating %d words into %s ended' % \
+            (nb_words_total, self.tablename))
+                
+        Log('...updating reverse table %sr started' % self.tablename)
+        if mode == "normal":
+            for group in self.recIDs_in_mem:
+                query = """UPDATE %sr SET type='CURRENT' WHERE id_bibrec
+                BETWEEN '%d' AND '%d' AND type='FUTURE'""" % \
+                (self.tablename, group[0], group[1])
+                Log(query, "Debug")
+                run_sql(query)
+                query = """DELETE FROM %sr WHERE id_bibrec
+                BETWEEN '%d' AND '%d' AND type='TEMPORARY'""" % \
+                (self.tablename, group[0], group[1])
+                Log(query, "Debug")
+                run_sql(query)
+            Log('End of updating wordTable into %s' % self.tablename, "Debug")
+        elif mode == "emergency":
+            for group in self.recIDs_in_mem:
+                query = """UPDATE %sr SET type='CURRENT' WHERE id_bibrec
+                BETWEEN '%d' AND '%d' AND type='TEMPORARY'""" % \
+                (self.tablename, group[0], group[1])
+                Log(query, "Debug")
+                run_sql(query)
+                query = """DELETE FROM %sr WHERE id_bibrec
+                BETWEEN '%d' AND '%d' AND type='FUTURE'""" % \
+                (self.tablename, group[0], group[1])
+                Log(query, "Debug")
+                run_sql(query)
+            Log('End of emergency flushing wordTable into %s' % self.tablename,
+                "Debug")
+        Log('...updating reverse table %sr ended' % self.tablename)
+
+        self.clean()
+        self.recIDs_in_mem = []
+        Log("%s %s wordtable flush ended" % (self.tablename, mode) )
+
+    def load_old_recIDs(self,word):
+        query = "SELECT hitlist FROM %s WHERE word='%s'" % \
+                (self.tablename, MySQLdb.escape_string(word))
+        res = run_sql(query)
+        if res:
+            return deserialize_via_numeric_array(res[0][0])
+        else:
+            return None
+    
+    def merge_with_old_recIDs(self,word,set):
+        """Merge the system numbers stored in memory (hash of recIDs with value +1 or -1
+        according to where to add/delete them) with those stored in the database index
+        and received in set universe of recIDs for the given word. """
+        
+        for recID,sign in self.value[word].items():
+            if sign == -1:
+                set[recID] = 0
+            else:
+                set[recID] = 1
+
+    def put_word_into_db(self, word, split=string.split):
+        """Flush a single word to the database and delete it from memory"""
+
+        set = self.load_old_recIDs(word)
+        if set: # merge the word recIDs found in memory:
+            self.merge_with_old_recIDs(word,set)
+            query = "UPDATE %s SET hitlist='%s' WHERE word='%s'" % \
+                    (self.tablename, serialize_via_numeric_array(set),
+                     MySQLdb.escape_string(word))            
+        else: # the word is new, will create new set:
+            set = Numeric.zeros(cfg_max_recID+1, Numeric.Int0)
+            Numeric.put(set, self.value[word].keys(), 1)
+            query = "INSERT INTO %s (word, hitlist) VALUES ('%s', '%s')" %\
+                    (self.tablename, MySQLdb.escape_string(word),
+                     serialize_via_numeric_array(set))
+
+        if not set: # never store empty words
+            query = "DELETE from %s WHERE word='%s'" % \
+                    (self.tablename, MySQLdb.escape_string(word))
+
+        run_sql(query)
+ 
+        del self.value[word]
+            
+    def display(self):
+        "Displays the word table."
+        keys = self.value.keys()
+        keys.sort()
+        for k in keys:
+            Log("%s: %s" % (k, self.value[k]))
+
+    def count(self):
+        "Returns the number of words in the table."
+        return len(self.value)
+
+    def info(self):
+        "Prints some information on the words table."
+        Log("The words table contains %d words." % self.count())
+
+    def lookup_words(self, word=""):
+        "Lookup word from the words table."
+
+        if not word:
+            done = 0
+            while not done:
+                try:
+                    word = raw_input("Enter word: ")
+                    done = 1
+                except (EOFError, KeyboardInterrupt):
+                    return
+
+        if self.value.has_key(word):
+            Log("The word '%s' is found %d times." \
+                % (word, len(self.value[word])))
+        else:
+            Log("The word '%s' does not exist in the word file."\
+                % word)
+
+    def add_recIDs(self, recIDs):
+        """Fetches records which id in the recIDs range list and adds
+        them to the wordTable."""
+        global chunksize
+        flush_count = 0
+        records_done = 0
+        records_to_go = 0
+
+        for range in recIDs:
+            records_to_go = records_to_go + range[1] - range[0] + 1
+            
+        time_started = time.time() # will measure profile time
+        for range in recIDs:
+            i_low = range[0]
+            chunksize_count = 0
+            while i_low <= range[1]:
+                # calculate chunk group of recIDs and treat it:
+                i_high = min(i_low+opts_dict["flush"]-flush_count-1,range[1])
+                i_high = min(i_low+chunksize-chunksize_count-1, i_high)
+                
+                self.chk_recID_range(i_low, i_high)
+                Log("%s adding records #%d-#%d started" % \
+                    (self.tablename, i_low, i_high))
+                self.del_recID_range(i_low, i_high)
+                just_processed = self.add_recID_range(i_low, i_high)
+                flush_count = flush_count + i_high - i_low + 1
+                chunksize_count = chunksize_count + i_high - i_low + 1
+                records_done = records_done + just_processed
+                Log("%s adding records #%d-#%d ended  " % \
+                    (self.tablename, i_low, i_high))
+
+                if chunksize_count >= chunksize:
+                    chunksize_count = 0
+                # flush if necessary:
+                if flush_count >= opts_dict["flush"]:
+                    self.put_into_db()
+                    self.clean()
+                    Log("%s backing up" % (self.tablename))
+                    flush_count = 0
+                    self.log_progress(time_started,records_done,records_to_go)
+                # iterate:
+                i_low = i_high + 1
+        if flush_count > 0:
+            self.put_into_db()
+            self.log_progress(time_started,records_done,records_to_go)
+
+    def add_date(self, date):
+        # If date is not set, then retrieve it from the database.
+        # Reindex all formats newer than the modification date
+        global Log
+        if not date:
+            id = self.tablename[len("bibwords"):]
+            query = """SELECT last_updated FROM wordsindex WHERE id='%s'
+            """ % id
+            res = run_sql(query)
+            if not res:
+                return
+            if not res[0][0]:
+                date = "0000-00-00"
+            else:
+                date = res[0][0]
+        query = """SELECT b.id FROM bibrec AS b WHERE b.modification_date >=
+        '%s' ORDER BY b.id ASC""" % date
+        res = run_sql(query)        
+        list = create_range_list(res)
+        if not list:
+            Log( "No new records added. %s is up to date" % self.tablename )
+        else:
+            self.add_recIDs(list)
+        
+    def add_recID_range(self, recID1, recID2):
+        empty_list_string = serialize_via_marshal([])
+        wlist = {}
+        self.recIDs_in_mem.append([recID1,recID2])
+        # secondly fetch all needed tags:
+        for tag in self.fields_to_index:
+	    if tag in tagToWordsFunctions.keys():
+                get_words_function = tagToWordsFunctions[ tag ]
+	    else: get_words_function = get_words_from_phrase
+            bibXXx = "bib" + tag[0] + tag[1] + "x"
+            bibrec_bibXXx = "bibrec_" + bibXXx
+            query = """SELECT bb.id_bibrec,b.value FROM %s AS b, %s AS bb
+                    WHERE bb.id_bibrec BETWEEN %d AND %d
+                    AND bb.id_bibxxx=b.id AND tag LIKE '%s'""" % (bibXXx, bibrec_bibXXx, recID1, recID2, tag)    
+            res = run_sql(query)
+            nb_total_to_read = len(res)
+            verbose_idx = 0     # for verbose pretty printing            
+            for row in res:
+                recID,phrase = row
+                if not wlist.has_key(recID): wlist[recID] = []
+                new_words = get_words_function(phrase) # ,self.separators
+                wlist[recID] = list_union(new_words,wlist[recID])
+
+        if len(wlist) == 0: return 0
+        recIDs = wlist.keys()
+
+        # Using cStringIO for speed.
+        query_factory = cStringIO.StringIO()
+        qwrite = query_factory.write
+        
+        qwrite( "INSERT INTO %sr (id_bibrec,wordlist,type) VALUES" % self.tablename)
+        qwrite( "('" )
+        qwrite( str(recIDs[0]) )
+        qwrite( "','" )
+        qwrite( serialize_via_marshal(wlist[recIDs[0]]) )
+        qwrite( "','FUTURE')" )
+
+        for recID in recIDs[1:]:
+            qwrite(",('")
+            qwrite(str(recID))
+            qwrite("','")
+            qwrite(serialize_via_marshal(wlist[recID]))
+            qwrite("','FUTURE')")
+
+        query = query_factory.getvalue()
+        query_factory.close()
+        run_sql(query)
+        
+        query_factory = cStringIO.StringIO()
+        qwrite = query_factory.write
+        
+        qwrite("INSERT INTO %sr (id_bibrec,wordlist,type) VALUES" % self.tablename)
+        qwrite("('")
+        qwrite(str(recIDs[0]))
+        qwrite("','")
+        qwrite(serialize_via_marshal(wlist[recIDs[0]]))
+        qwrite("','CURRENT')")
+
+        for recID in recIDs[1:]:
+            qwrite( ",('" )
+            qwrite( str(recID) )
+            qwrite( "','" )
+            qwrite( empty_list_string )
+            qwrite( "','CURRENT')" )
+
+        query = query_factory.getvalue()
+        query_factory.close()
+        
+        try:
+            run_sql(query)
+        except MySQLdb.DatabaseError:
+            # ok, we tried to add an existent record. No problem
+            pass
+
+        put = self.put
+        for recID in recIDs:
+            for w in wlist[recID]:
+                put(recID, w, 1)
+                
+        return len(recIDs)
+                
+    def log_progress(self, start, done, todo):
+        """Calculate progress and store it.
+        start: start time,
+        done: records processed,
+        todo: total number of records"""
+        time_elapsed = time.time() - start
+        # consistency check
+        if time_elapsed == 0 or done > todo:
+            return
+
+        time_recs_per_min = done/(time_elapsed/60.0)
+        Log("%d records took %.1f seconds to complete.(%1.f recs/min)"\
+            % (done, time_elapsed, time_recs_per_min))
+        
+        if time_recs_per_min:
+            Log("Estimated runtime: %.1f minutes" % \
+                ((todo-done)/time_recs_per_min))
+
+    def put(self, recID, word, sign):
+        "Adds/deletes a word to the word list."        
+        try:
+            word = lower(word[:50])
+            if self.value.has_key(word):
+                # the word 'word' exist already: update sign
+                self.value[word][recID] = sign
+            else:
+                self.value[word] = {recID: sign}
+        except:
+            Log("Cannot put word %s with sign %d for recID %s." % (word, sign, recID))
+
+
+    def del_recIDs(self, recIDs):
+        """Fetches records which id in the recIDs range list and adds
+        them to the wordTable."""
+        count = 0
+        for range in recIDs:
+            self.del_recID_range(range[0],range[1])
+            count = count + range[1] - range[0]
+        self.put_into_db()
+        
+    def del_recID_range(self, low, high):
+        """Deletes records with 'recID' system number between low
+           and high from memory words index table."""
+        self.recIDs_in_mem.append([low,high])
+        query = """SELECT id_bibrec,wordlist FROM %sr as bb WHERE bb.id_bibrec
+        BETWEEN '%d' AND '%d'""" % (self.tablename, low, high)
+        recID_rows = run_sql(query)        
+        for recID_row in recID_rows:
+            recID = recID_row[0]
+            wlist = deserialize_via_marshal(recID_row[1])
+            for word in wlist:
+                self.put(recID, word, -1)
+
+    def report_on_table_consistency(self):
+        """Check reverse words index tables (e.g. bibwords1r) for
+        interesting states such as 'TEMPORARY' state.
+        Prints small report (no of words, no of bad words).
+        """
+
+        # find number of words:
+        query = """SELECT COUNT(*) FROM %s""" % (self.tablename)
+        res = run_sql(query, None, 1)
+        if res:
+            nb_words = res[0][0]
+        else:
+            nb_words = 0
+
+        # find number of records:
+        query = """SELECT COUNT(DISTINCT(id_bibrec)) FROM %sr""" % (self.tablename)
+        res = run_sql(query, None, 1)
+        if res:
+            nb_records = res[0][0]
+        else:
+            nb_records = 0
+
+        # report stats:
+        Log("%s contains %d words from %d records" % (self.tablename, nb_words, nb_records))
+
+        # find possible bad states in reverse tables:
+        query = """SELECT COUNT(DISTINCT(id_bibrec)) FROM %sr WHERE type <> 'CURRENT'""" % (self.tablename)
+        res = run_sql(query)
+        if res:
+            nb_bad_records = res[0][0]
+        else:
+            nb_bad_records = 999999999
+        if nb_bad_records:
+            Log("%s needs to repair %d of %d records" % \
+                (self.tablename, nb_bad_records, nb_records), "EMERGENCY")
+        else:
+            Log("%s is in consistent state" % (self.tablename))
+        
+        return nb_bad_records
+
+    def repair(self):
+        """Repair the whole table"""
+        # find possible bad states in reverse tables:
+        query = """SELECT COUNT(DISTINCT(id_bibrec)) FROM %sr WHERE type <> 'CURRENT'""" % (self.tablename)
+        res = run_sql(query, None, 1)
+        if res:
+            nb_bad_records = res[0][0]
+        else: 
+            nb_bad_records = 0
+            
+        # find number of records:
+        query = """SELECT COUNT(DISTINCT(id_bibrec)) FROM %sr""" % (self.tablename)
+        res = run_sql(query)
+        if res:
+            nb_records = res[0][0]
+        else:
+            nb_records = 0
+        if nb_bad_records == 0:
+            return
+        query = """SELECT id_bibrec FROM %sr WHERE type <> 'CURRENT' ORDER BY id_bibrec""" \
+                % (self.tablename)
+        res = run_sql(query)
+        recIDs = create_range_list(res)
+
+        flush_count = 0
+        records_done = 0
+        records_to_go = 0
+
+        for range in recIDs:
+            records_to_go = records_to_go + range[1] - range[0] + 1
+
+        time_started = time.time() # will measure profile time
+        for range in recIDs:
+            i_low = range[0]
+            chunksize_count = 0
+            while i_low <= range[1]:
+                # calculate chunk group of recIDs and treat it:
+                i_high = min(i_low+opts_dict["flush"]-flush_count-1,range[1])
+                i_high = min(i_low+chunksize-chunksize_count-1, i_high)
+
+                self.fix_recID_range(i_low, i_high)
+
+                flush_count = flush_count + i_high - i_low + 1
+                chunksize_count = chunksize_count + i_high - i_low + 1
+                records_done = records_done + i_high - i_low + 1
+                if chunksize_count >= chunksize:
+                    chunksize_count = 0
+                # flush if necessary:
+                if flush_count >= opts_dict["flush"]:
+                    self.put_into_db("emergency")
+                    self.clean()
+                    flush_count = 0
+                    self.log_progress(time_started,records_done,records_to_go)
+                # iterate:
+                i_low = i_high + 1
+        if flush_count > 0:
+            self.put_into_db("emergency")
+            self.log_progress(time_started,records_done,records_to_go)
+        Log("%s inconsistencies repaired." % self.tablename, "EMERGENCY")
+
+
+
+    def chk_recID_range(self, low, high):
+        """Check if the reverse wordsindex table is in proper state"""
+        ## check db
+        query = """SELECT COUNT(*) FROM %sr WHERE type <> 'CURRENT'
+        AND id_bibrec BETWEEN '%d' AND '%d'""" % (self.tablename, low, high)
+        res = run_sql(query, None, 1)
+        if res[0][0]==0:
+            Log("%s for %d-%d is in consistent state"%(self.tablename,low,high))
+            return # okay, words table is consistent
+
+        ## inconsistency detected!
+        Log("%s inconsistencies detected..." % self.tablename, "EMERGENCY")
+        Log("""Errors found. You should check consistency of the %s - %sr tables.\nRunning 'bibwords --repair' is recommended.""" \
+            % (self.tablename, self.tablename),
+            "EMERGENCY!")
+        raise StandardError
+
+        
+    def fix_recID_range(self, low, high):
+        """Try to fix reverse wordsindex database consistency (table bibwords1r) in the low,high doc-id range.
+
+        Possible states for a recID follow:
+        CUR TMP FUT: very bad things have happened: warn!
+        CUR TMP    : very bad things have happened: warn!
+        CUR     FUT: delete FUT (crash before flushing)
+        CUR        : database is ok
+            TMP FUT: add TMP to memory and del FUT from memory
+                     flush (revert to old state)
+            TMP    : very bad things have happened: warn!
+                FUT: very bad things have happended: warn!
+        """
+
+        state = {}
+        query = "SELECT id_bibrec,type FROM %sr WHERE id_bibrec BETWEEN '%d' AND '%d'"\
+                % (self.tablename, low, high)
+        res = run_sql(query)
+        for row in res:
+            if not state.has_key(row[0]):
+                state[row[0]]=[]
+            state[row[0]].append(row[1])
+
+        ok = 1 # will hold info on whether we will be able to repair
+        for recID in state.keys():
+            if not 'TEMPORARY' in state[recID]:
+                if 'FUTURE' in state[recID]:
+                    if 'CURRENT' not in state[recID]:
+                        Log("Record %d is in inconsistent state. Can't repair it",
+                            "EMERGENCY")
+                        ok = 0
+                    else:
+                        Log("Inconsistency in record %d detected" % recID,
+                            "EMERGENCY")
+                        query = """DELETE FROM %sr
+                        WHERE id_bibrec='%d'""" % (self.tablename, recID)
+                        run_sql(query)
+                        Log("Inconsistency in record %d repaired." % recID)
+
+            else:
+                if 'FUTURE' in state[recID] and not 'CURRENT' in state[recID]:
+                    self.recIDs_in_mem.append([recID,recID])
+
+                    # Get the words file
+                    query = """SELECT type,wordlist FROM %sr
+                    WHERE id_bibrec='%d'""" % (self.tablename, recID)
+                    Log(query, "Debug")
+                    res = run_sql(query)
+                    for row in res:
+                        wlist = deserialize_via_marshal(row[1])
+                        Log("Words are %s " % wlist, "Debug")
+                        if row[0] == 'TEMPORARY':
+                            sign = 1
+                        else:
+                            sign = -1
+                        for word in wlist:
+                            self.put(recID, word, sign)
+
+                else:
+                    Log("%s for %d is in inconsistent state. Couldn't repair it." % (self.tablename, recID),
+                        "EMERGENCY")
+                    ok = 0
+
+        if not ok:
+            Log("""Unrepairable errors found. You should check consistency
+                of the %s - %sr tables. Deleting affected records is
+                recommended.""" % (self.tablename, self.tablename),
+                "EMERGENCY")
+            raise StandardError
+                
+
+                    
+def task_run(row):
+    """Run the indexing task.  The row argument is the BibSched task
+    queue row, containing if, arguments, etc.
+    """
+    
+    global opts_dict, taskid, wordTables
+    taskid = row[0]
+    opts_dict = loads(row[5])
+
+    # sanity check:
+    if row[1] != "bibwords":
+        Log("The task #%d does not seem to be a BibWords task." % taskid, "Error")
+        return
+    if row[6] != "WAITING":
+        Log("The task #%d is %s.  I expected WAITING." % (taskid, row[6]), "Error")
+        return
+
+    task_update_state("RUNNING")
+
+    # install signal handlers
+    signal.signal(signal.SIGUSR1, task_sig_sleep)
+    signal.signal(signal.SIGTERM, task_sig_stop)
+    signal.signal(signal.SIGABRT, task_sig_suicide)
+    signal.signal(signal.SIGCONT, task_sig_wakeup)
+    signal.signal(signal.SIGINT, task_sig_unknown)
+
+    ## go ahead and treat each table :
+    for table in opts_dict["wordsindex"]:
+        wordTable = WordTable(table.keys()[0], table.values()[0])
+        wordTable.report_on_table_consistency()
+        try:
+            if opts_dict["cmd"] == "del":
+                if opts_dict["id"]:
+                    wordTable.del_recIDs(opts_dict["id"])
+                else:
+                    wordTable.del_date(opts_dict["modified"])
+
+            elif opts_dict["cmd"] == "add":
+                if opts_dict["id"]:
+                    wordTable.add_recIDs(opts_dict["id"])
+                else:
+                    wordTable.add_date(opts_dict["modified"])
+            elif opts_dict["cmd"] == "repair":
+                wordTable.repair()
+            else:
+                Log("Invalid command found processing %s" % \
+                     wordTable.tablename, "Error")
+                raise StandardError
+
+            id = wordTable.tablename[len("bibwords"):]
+            query = """UPDATE wordsindex SET last_updated=NOW()
+            WHERE id='%s'""" %  id
+            Log(query, "Debug")
+            run_sql(query)
+
+        except StandardError, e:
+            Log("Exception caught: %s" % e, "Error")
+            traceback.print_tb(sys.exc_info()[2])
+            task_update_state("ERROR")
+            task_sig_stop_commands()
+            sys.exit(1)
+            
+        wordTable.report_on_table_consistency()
+
+    # We are done. State it in the database, close and quit
+    task_update_state("DONE")
+    Log("Done. Finished processing.")
+    sys.exit(0)
+        
+def command_line():
+    global opts_dict
+    long_flags =["add","del","check","repair","id=","modified=","wordsindex=",
+                 "maxmem=", "flush=","user=","sleeptime=",
+                 "time=","help", "version", "debug", "verbose"]
+    short_flags ="axcri:m:w:M:f:u:p:t:hvdD"
+    format_string = "%Y-%m-%d %H:%M:%S"
+    tables = None
+    sleeptime = ""
+    tmp_name = os.tempnam()
+
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], short_flags, long_flags)
+    except getopt.GetoptError, err:
+        Log(err, "Error")
+        usage(1)
+    if args:
+        usage(1)
+        
+    opts_dict={"cmd":"add", "id":[], "modified":[], "maxmem":0,
+               "flush":5000, "sleeptime":0, "debug":0, "verbose":0 }
+    sched_time = time.strftime(format_string)
+    
+    user = ""
+    # Check for key options
+
+    try:
+        for opt in opts:
+            if opt == ("-h","")  or opt == ("--help",""):
+                usage(1)
+            elif opt == ("-v","")  or opt == ("--version",""):
+                print __version__
+                sys.exit(1)
+            elif opt == ("-d","")  or opt == ("--debug",""):
+                opts_dict["debug"] = 1
+            elif opt == ("--verbose","") or opt == ("-V",""):
+                opts_dict["verbose"] = 1
+            elif opt == ("-a","") or opt == ("--add",""):
+                opts_dict["cmd"] = "add"
+                if ("-x","") in opts or ("--del","") in opts:
+                    usage(1)
+            elif opt == ("-c","") or opt == ("--check",""):
+                opts_dict["cmd"] = "check"
+            elif opt == ("-r","") or opt == ("--repair",""):
+                opts_dict["cmd"] = "repair"
+            elif opt == ("-x","") or opt == ("--del",""):            
+                opts_dict["cmd"]="del"
+            elif opt[0] in [ "-i", "--id" ]:
+                opts_dict["id"] = opts_dict["id"] + split_ranges(opt[1])
+            elif opt[0] in [ "-m", "--modified" ]:
+                opts_dict["modified"] = get_date_range(opt[1]) 
+            elif opt[0] in [ "-w", "--wordsindex" ]:
+                tables = opt[1]
+            elif opt[0] in [ "-M", "--maxmem"]:
+                opts_dict["maxmem"]=int(opt[1])
+                if opts_dict["maxmem"] < base_process_size + 1000:
+                    raise StandardError, "Memory usage should be higher than %d kB" % (base_process_size + 1000)
+            elif opt[0] in [ "-f", "--flush"]:
+                opts_dict["flush"]=int(opt[1])
+            elif opt[0] in [ "-u", "--user"]:
+                user = opt[1]
+            elif opt[0] in [ "-p", "--sleeptime" ]:
+                get_date(opt[1])    # see if it is a valid shift
+                sleeptime= opt[1]
+            elif opt[0] in [ "-t", "--time" ]:
+                sched_time= get_date(opt[1])
+            else: usage(1)
+    except StandardError, e:
+        Log(e, "Error")
+        sys.exit(1)
+
+    opts_dict["wordsindex"]=get_word_tables(tables)
+
+    if opts_dict["cmd"] == "check":
+        for table in opts_dict["wordsindex"]:
+            wordTable = WordTable(table.keys()[0], table.values()[0])
+            wordTable.report_on_table_consistency()
+        return
+
+    user = authenticate(user)
+
+    query = """INSERT INTO schTASKS(
+    proc,user,date,sleeptime,arguments,output, error,state,score)
+    VALUES ('bibwords','%s',CAST('%s' AS DATE),'%s','%s','%s','%s',
+            'WAITING','%d')""" % \
+            (MySQLdb.escape_string(user),MySQLdb.escape_string(sched_time), sleeptime, \
+             MySQLdb.escape_string(dumps(opts_dict)), \
+             tmp_name + ".out", tmp_name + ".err", 100)
+
+    new_task_id = run_sql(query)
+    if opts_dict["debug"]:
+        print opts_dict
+    print "Task #%d was successfully scheduled for execution." % new_task_id
+    return
+
+def write_message(msg, stream=sys.stdout):
+    """Prints message and flush output stream (may be sys.stdout or sys.stderr).  Useful for debugging stuff."""
+    if stream == sys.stdout or stream == sys.stderr:
+        stream.write(time.strftime("%Y-%m-%d %H:%M:%S --> ", time.localtime()))
+        stream.write("%s\n" % msg)
+        stream.flush()
+    else:
+        sys.stderr.write("Unknown stream %s.  [must be sys.stdout or sys.stderr]\n" % stream)
+
+def task_sig_sleep(sig, frame):
+    """Signal handler for the 'sleep' signal sent by BibSched."""
+    if opts_dict["debug"]:
+        write_message("got signal %d" % sig)
+    write_message("sleeping...")
+    task_update_state("SLEEPING")
+    signal.pause() # wait for wake-up signal
+
+def task_sig_wakeup(sig, frame):
+    """Signal handler for the 'wakeup' signal sent by BibSched."""
+    if opts_dict["debug"]:
+        write_message("got signal %d" % sig)
+    write_message("continuing...")
+    task_update_state("CONTINUING")
+
+def task_sig_stop(sig, frame):
+    """Signal handler for the 'stop' signal sent by BibSched."""
+    if opts_dict["debug"]:
+        write_message("got signal %d" % sig)
+    write_message("stopping...")
+    task_update_state("STOPPING")
+    errcode = 0
+    try:
+        task_sig_stop_commands()
+        write_message("stopped")
+        task_update_state("STOPPED")
+    except StandardError, err:
+        write_message("Error during stopping! %e" % err)
+        task_update_state("STOPPINGFAILED")
+        errcode = 1
+    sys.exit(errcode)
+
+def task_sig_stop_commands():
+    """Do all the commands necessary to stop the task before quitting.
+    Useful for task_sig_stop() handler.    
+    """
+    write_message("stopping commands started")    
+    for table in wordTables:
+        table.put_into_db()    
+    write_message("stopping commands ended")    
+    
+def task_sig_suicide(sig, frame):
+    """Signal handler for the 'suicide' signal sent by BibSched."""
+    if opts_dict["debug"]:
+        write_message("got signal %d" % sig)
+    write_message("suiciding myself now...")
+    task_update_state("SUICIDING")
+    write_message("suicided")
+    task_update_state("SUICIDED")
+    sys.exit(0)
+
+def task_sig_unknown(sig, frame):
+    """Signal handler for the other unknown signals sent by shell or user."""
+    if opts_dict["debug"]:
+        write_message("got signal %d" % sig)    
+    write_message("unknown signal %d ignored" % sig) # do nothing for other signals
+
+def task_update_progress(msg):
+    """Updates progress information in the BibSched task table."""
+    query = "UPDATE schTASKS SET progress='%s' where id=%d" % (MySQLdb.escape_string(msg), taskid)
+    if opts_dict["debug"]:
+        write_message(query)
+    run_sql(query)    
+    return    
+
+def task_update_state(val):
+    """Updates state information in the BibSched task table."""
+    query = "UPDATE schTASKS SET state='%s' where id=%d" % (MySQLdb.escape_string(val), taskid)
+    if opts_dict["debug"]:
+        write_message(query)
+    run_sql(query)    
+    return    
+
+def test_fulltext_indexing():
+    """Tests fulltext indexing programs on PDF, PS, DOC, PPT,
+    XLS.  Prints list of words and word table on the screen.  Does not
+    integrate anything into the database.  Useful when debugging
+    problems with fulltext indexing: call this function instead of main().
+    """
+    global opts_dict
+    opts_dict = {}
+    opts_dict["debug"] = 1
+    print get_words_from_fulltext("http://doc.cern.ch/cgi-bin/setlink?base=atlnot&categ=Communication&id=com-indet-2002-012") # protected URL
+    print get_words_from_fulltext("http://doc.cern.ch/cgi-bin/setlink?base=agenda&categ=a00388&id=a00388s2t7") # XLS
+    print get_words_from_fulltext("http://doc.cern.ch/cgi-bin/setlink?base=agenda&categ=a02883&id=a02883s1t6/transparencies") # PPT
+    print get_words_from_fulltext("http://doc.cern.ch/cgi-bin/setlink?base=agenda&categ=a99149&id=a99149s1t10/transparencies") # DOC
+    print get_words_from_fulltext("http://doc.cern.ch/cgi-bin/setlink?base=preprint&categ=cern&id=lhc-project-report-601") # PDF
+    sys.exit(0)
+
+def test_word_separators(phrase="hep-th/0101001"):
+    """Tests word separating policy on various input."""
+    print "%s:" % phrase
+    for word in get_words_from_phrase(phrase):
+        print "\t-> %s" % word
+
+def test_really_run():
+    """Test by really running words indexing not via task scheduler but directly.  Useful for debugging/profiling."""
+    global opts_dict
+    opts_dict = { "wordsindex": get_word_tables("author"),
+                  "cmd" : "add",
+                  "id" : [[1,1000]],
+                  "debug" : 0,
+                  "verbose" : 0,
+                  "flush" : 50000,
+                }
+    for table in opts_dict["wordsindex"]:
+        wordTable = WordTable(table.keys()[0], table.values()[0])
+        wordTable.report_on_table_consistency()
+        try:
+            if opts_dict["cmd"] == "del":
+                if opts_dict["id"]:
+                    wordTable.del_recIDs(opts_dict["id"])
+                else:
+                    wordTable.del_date(opts_dict["modified"])
+
+            elif opts_dict["cmd"] == "add":
+                if opts_dict["id"]:
+                    wordTable.add_recIDs(opts_dict["id"])
+                else:
+                    wordTable.add_date(opts_dict["modified"])
+            elif opts_dict["cmd"] == "repair":
+                wordTable.repair()
+            else:
+                Log("Invalid command found processing %s" % \
+                     wordTable.tablename, "Error")
+                raise StandardError
+
+            id = wordTable.tablename[len("bibwords"):]
+            query = """UPDATE wordsindex SET last_updated=NOW()
+            WHERE id='%s'""" %  id
+            Log(query, "Debug")
+            run_sql(query)
+
+        except StandardError, e:
+            Log("Exception caught: %s" % e, "Error")
+            traceback.print_tb(sys.exc_info()[2])
+            task_update_state("ERROR")
+            task_sig_stop_commands()
+            sys.exit(1)
+            
+        wordTable.report_on_table_consistency()
+
+def main():
+    """Reads arguments and either runs the task, or starts user-interface (command line)."""
+    if len(sys.argv) == 2:
+        try:
+            id = int(sys.argv[1])
+        except StandardError, err:
+            command_line()
+            sys.exit()
+        
+        res = run_sql("SELECT * FROM schTASKS WHERE id='%d'" % (id), None, 1)
+        if not res:
+            Log("Selected task not found.", "Error")
+            sys.exit(1)
+        task_run(res[0])
+    else:
+        command_line()
+
+if __name__ == "__main__":
+    #print get_fieldvalues(600336,"700__a")
+    #print get_all_wordsindexes()
+    #test_fulltext_indexing()
+    #test_word_separators()
+    #test_word_separators("?C++.NET")
+    #test_word_separators("Ellis, J")
+    #test_word_separators("O'Neil and pi- in real.business")
+    #print get_words_from_phrase("O'Neil and pi- in real.business", "[\s\*\+\=\!\@\#\$\%\^\&\*\(\)\|\-\_\\\'\"\<\>\,\.\/\?\[\]\{\}\<\|\`\~]")
+    #test_really_run()
+    main()
diff --git a/modules/miscutil/.cvsignore b/modules/miscutil/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/miscutil/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/miscutil/Makefile.am b/modules/miscutil/Makefile.am
new file mode 100644
index 000000000..56833e73d
--- /dev/null
+++ b/modules/miscutil/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = bin lib demo sql
+
+CLEANFILES = *~
diff --git a/modules/miscutil/bin/.cvsignore b/modules/miscutil/bin/.cvsignore
new file mode 100644
index 000000000..2975b2183
--- /dev/null
+++ b/modules/miscutil/bin/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+dbexec
+dbtest
\ No newline at end of file
diff --git a/modules/miscutil/bin/Makefile.am b/modules/miscutil/bin/Makefile.am
new file mode 100644
index 000000000..7d3ff1bf2
--- /dev/null
+++ b/modules/miscutil/bin/Makefile.am
@@ -0,0 +1,32 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+bin_SCRIPTS=dbexec
+noinst_SCRIPTS=dbtest
+
+EXTRA_DIST = $(wildcard *.wml)
+
+install-data-local:
+	./dbtest
+
+CLEANFILES = $(bin_SCRIPTS) $(noinst_SCRIPTS) *~ *.tmp
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+	chmod u+x $@
\ No newline at end of file
diff --git a/modules/miscutil/bin/dbexec.in b/modules/miscutil/bin/dbexec.in
new file mode 100644
index 000000000..2049e3e38
--- /dev/null
+++ b/modules/miscutil/bin/dbexec.in
@@ -0,0 +1,38 @@
+## $Id$
+## Script that executes SQL commands in batch mode.  Commands are read from standard input.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start shell:
+<protect>#!/bin/sh
+<protect>## Do not edit this file -- it was generated from CDSware WML sources.  Edit those instead.</protect>
+
+## fill config variables:
+DBHOST=<DBHOST>
+DBNAME=<DBNAME>
+DBUSER=<DBUSER>
+DBPASS=<DBPASS>
+
+###### okay, config file read, the script can continue ######
+
+## call MySQL client:
+<MYSQL> -B --host=$DBHOST --user=$DBUSER --password=$DBPASS $DBNAME
diff --git a/modules/miscutil/bin/dbexec.wml b/modules/miscutil/bin/dbexec.wml
new file mode 100644
index 000000000..2049e3e38
--- /dev/null
+++ b/modules/miscutil/bin/dbexec.wml
@@ -0,0 +1,38 @@
+## $Id$
+## Script that executes SQL commands in batch mode.  Commands are read from standard input.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start shell:
+<protect>#!/bin/sh
+<protect>## Do not edit this file -- it was generated from CDSware WML sources.  Edit those instead.</protect>
+
+## fill config variables:
+DBHOST=<DBHOST>
+DBNAME=<DBNAME>
+DBUSER=<DBUSER>
+DBPASS=<DBPASS>
+
+###### okay, config file read, the script can continue ######
+
+## call MySQL client:
+<MYSQL> -B --host=$DBHOST --user=$DBUSER --password=$DBPASS $DBNAME
diff --git a/modules/miscutil/bin/dbtest.in b/modules/miscutil/bin/dbtest.in
new file mode 100644
index 000000000..a72e09546
--- /dev/null
+++ b/modules/miscutil/bin/dbtest.in
@@ -0,0 +1,81 @@
+## $Id$
+## Tests Python/MySQL connectivity.  Called while "make".
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+## start Python:
+<protect>#!</protect><PYTHON>
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+
+## fill config variables:
+dbhost = "<DBHOST>"
+dbname = "<DBNAME>"
+dbuser = "<DBUSER>"
+dbpass = "<DBPASS>"
+
+## okay, rest of the Python code goes below
+#######
+
+<protect>
+
+## import modules:
+try:
+    import MySQLdb
+    import sys
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+## try to connect to the DB server:
+try:
+    db = MySQLdb.connect(host=dbhost, db=dbname, user=dbuser, passwd=dbpass)
+except MySQLdb.Error, e:
+    print "Database connectivity error %d: %s" % (e.args[0], e.args[1])
+    print "Probably you do not have proper MySQL user credentials."
+    print "You need to fix this error before continuing!"
+    sys.exit(1)
+
+## execute test query:
+try:    
+    cursor = db.cursor()
+    cursor.execute("SELECT * FROM collection")
+    row = cursor.fetchone()    
+except MySQLdb.Error, e:
+    print """
+    *************************************************
+    ** Database query error %d: %s.
+    ** Perhaps you need to create CDSware tables?  **
+    ** If yes, then run 'make create-tables' now.  **
+    ** If not, then read the above error message   **
+    **   and fix the problem before continuing!    **
+    *************************************************
+    """ % (e.args[0], e.args[1])
+    sys.exit(1)
+
+## close connection:
+cursor.close()
+db.close()
+
+</protect>
diff --git a/modules/miscutil/bin/dbtest.wml b/modules/miscutil/bin/dbtest.wml
new file mode 100644
index 000000000..a72e09546
--- /dev/null
+++ b/modules/miscutil/bin/dbtest.wml
@@ -0,0 +1,81 @@
+## $Id$
+## Tests Python/MySQL connectivity.  Called while "make".
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+## start Python:
+<protect>#!</protect><PYTHON>
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+
+## fill config variables:
+dbhost = "<DBHOST>"
+dbname = "<DBNAME>"
+dbuser = "<DBUSER>"
+dbpass = "<DBPASS>"
+
+## okay, rest of the Python code goes below
+#######
+
+<protect>
+
+## import modules:
+try:
+    import MySQLdb
+    import sys
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+## try to connect to the DB server:
+try:
+    db = MySQLdb.connect(host=dbhost, db=dbname, user=dbuser, passwd=dbpass)
+except MySQLdb.Error, e:
+    print "Database connectivity error %d: %s" % (e.args[0], e.args[1])
+    print "Probably you do not have proper MySQL user credentials."
+    print "You need to fix this error before continuing!"
+    sys.exit(1)
+
+## execute test query:
+try:    
+    cursor = db.cursor()
+    cursor.execute("SELECT * FROM collection")
+    row = cursor.fetchone()    
+except MySQLdb.Error, e:
+    print """
+    *************************************************
+    ** Database query error %d: %s.
+    ** Perhaps you need to create CDSware tables?  **
+    ** If yes, then run 'make create-tables' now.  **
+    ** If not, then read the above error message   **
+    **   and fix the problem before continuing!    **
+    *************************************************
+    """ % (e.args[0], e.args[1])
+    sys.exit(1)
+
+## close connection:
+cursor.close()
+db.close()
+
+</protect>
diff --git a/modules/miscutil/demo/.cvsignore b/modules/miscutil/demo/.cvsignore
new file mode 100644
index 000000000..8ed1a8d69
--- /dev/null
+++ b/modules/miscutil/demo/.cvsignore
@@ -0,0 +1,6 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+democfgdata.sql
\ No newline at end of file
diff --git a/modules/miscutil/demo/Makefile.am b/modules/miscutil/demo/Makefile.am
new file mode 100644
index 000000000..1cfc1409b
--- /dev/null
+++ b/modules/miscutil/demo/Makefile.am
@@ -0,0 +1,27 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+noinst_DATA=democfgdata.sql
+
+EXTRA_DIST = $(wildcard *.wml) demobibdata.xml
+
+CLEANFILES = $(noinst_DATA) *~ *.tmp democfgdata.sql 
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
\ No newline at end of file
diff --git a/modules/miscutil/demo/demobibdata.xml b/modules/miscutil/demo/demobibdata.xml
new file mode 100644
index 000000000..b5f9f15f2
--- /dev/null
+++ b/modules/miscutil/demo/demobibdata.xml
@@ -0,0 +1,15297 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.loc.gov/MARC21/slim">
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">CERN-EX-0106015</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Photolab</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">ALEPH experiment: Candidate of Higgs boson production</subfield>
+        </datafield>
+        <datafield tag="246" ind1="" ind2="1">
+            <subfield code="a">Expérience ALEPH: Candidat de la production d'un boson Higgs</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">14 06 2000</subfield>
+        </datafield>
+        <datafield tag="340" ind1="" ind2="">
+            <subfield code="a">FILM</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Candidate for the associated production of the Higgs boson and Z boson. Both, the Higgs and Z boson decay into 2 jets each. The green and the yellow jets belong to the Higgs boson. They represent the fragmentation of a bottom andanti-bottom quark. The red and the blue jets stem from the decay of the Z boson into a quark anti-quark pair. Left: View of the event along the beam axis. Bottom right: Zoom around the interaction point at the centre showing detailsof the fragmentation of the bottom and anti-bottom quarks. As expected for b quarks, in each jet the decay of a long-lived B meson is visible. Top right: "World map" showing the spatial distribution of the jets in the event.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">Press</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Experiments and Tracks</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">LEP</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">neil.calder@cern.ch</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://documents.cern.ch/cgi-bin/setlink?base=PHO&amp;categ=photo-ex&amp;id=0106015</subfield>
+            <subfield code="x">1</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/photo/photo-ex/0106015_01.gif</subfield>
+            <subfield code="x">icon</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="o">0003717PHOPHO</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">81</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2001-06-14</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-08-27</subfield>
+            <subfield code="o">CM</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="p">Bldg. 2</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="r">Calder, N</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PICTURE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">CERN-EX-0104007</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Patrice Loïez</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">The first CERN-built module of the barrel section of ATLAS's electromagnetic calorimeter</subfield>
+        </datafield>
+        <datafield tag="246" ind1="" ind2="1">
+            <subfield code="a">Premier module du tonneau du calorimètre electromagnétique d'ATLAS</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">10 Apr 2001</subfield>
+        </datafield>
+        <datafield tag="340" ind1="" ind2="">
+            <subfield code="a">DIGITAL</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Behind the module, left to right Ralf Huber, Andreas Bies and Jorgen Beck Hansen. In front of the module, left to right: Philippe Lançon and Edward Wood.</subfield>
+        </datafield>
+        <datafield tag="590" ind1="" ind2="">
+            <subfield code="a">Derrière le module, de gauche à droite: Ralf Huber, Andreas Bies, Jorgen Beck Hansen. Devant le module, de gauche à droite : Philippe Lançon et Edward Wood.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">CERN EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Experiments and Tracks</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">marie.noelle.pages.ribeiro@cern.ch</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://documents.cern.ch/cgi-bin/setlink?base=PHO&amp;categ=photo-ex&amp;id=0104007</subfield>
+            <subfield code="x">1</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/photo/photo-ex/0104007_02.gif</subfield>
+            <subfield code="x">icon</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="o">0003601PHOPHO</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">81</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2001-04-23</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-06-18</subfield>
+            <subfield code="o">CM</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">0020699</subfield>
+            <subfield code="l">ADMBUL</subfield>
+            <subfield code="t">CERN Bulletin 18/2001 : 30 April 2001 (English)</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">0020700</subfield>
+            <subfield code="l">ADMBUL</subfield>
+            <subfield code="t">CERN Bulletin 18/2001 : 30 avril 2001 (French)</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="p">Bldg. 184</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="r">Fassnacht, P</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PICTURE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">CERN-HI-6902127</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">European Molecular Biology Conference</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">Jul 1969</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">In February, the Agreement establishing the European Molecular Biology Conference was signed at CERN. Willy Spuhler is signing for Switzerland.</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Personalities and History of CERN</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/cgi-bin/setlink?base=PHO&amp;categ=photo-hi&amp;id=6902127</subfield>
+            <subfield code="x">1</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/photo/photo-hi/6902127.gif</subfield>
+            <subfield code="x">icon</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="o">0002690PHOPHO</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1969</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">81</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-06-13</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2000-06-13</subfield>
+            <subfield code="o">CM</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="s">127-2-69</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200024</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PICTURE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">CERN-DI-9906028</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">J.L. Caron</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">The Twenty Member States of CERN (with dates of accession) on 1 June 1999</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">Jun 1999</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">CERN Member States.</subfield>
+        </datafield>
+        <datafield tag="590" ind1="" ind2="">
+            <subfield code="a">Les Etats membres du CERN.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">Press</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Diagrams and Charts</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/cgi-bin/setlink?base=PHO&amp;categ=photo-di&amp;id=9906028</subfield>
+            <subfield code="x">1</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/photo/photo-di/9906028_01.gif</subfield>
+            <subfield code="x">icon</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="o">0001754PHOPHO</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">81</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1999-06-17</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2000-10-30</subfield>
+            <subfield code="o">CM</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">199924</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PICTURE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">CERN-DI-9905005</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">High energy cosmic rays striking atoms at the top of the atmosphere give the rise to showers of particles striking the Earth's surface</subfield>
+        </datafield>
+        <datafield tag="246" ind1="" ind2="1">
+            <subfield code="a">Des rayons cosmiques de haute energie heurtent des atomes dans la haute atmosphere et donnent ainsi naissance a des gerbes de particules projetees sur la surface terrestre</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">10 May 1999</subfield>
+        </datafield>
+        <datafield tag="340" ind1="" ind2="">
+            <subfield code="a">DIGITAL</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">Press</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Diagrams and Charts</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">neil.calder@cern.ch</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/cgi-bin/setlink?base=PHO&amp;categ=photo-di&amp;id=9905005</subfield>
+            <subfield code="x">1</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/photo/photo-di/9905005_01.gif</subfield>
+            <subfield code="x">icon</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="o">0001626PHOPHO</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">81</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1999-05-10</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2000-09-12</subfield>
+            <subfield code="o">CM</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="p">Bldg. 60</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="r">Calder, N</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PICTURE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">CERN-HI-6002</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">At CERN in 1962</subfield>
+            <subfield code="s">eight Nobel prizewinners</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">1962</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">In 1962, CERN hosted the 11th International Conference on High Energy Physics. Among the distinguished visitors were eight Nobel prizewinners.Left to right: Cecil F. Powell, Isidor I. Rabi, Werner Heisenberg, Edwin M. McMillan, Emile Segre, Tsung Dao Lee, Chen Ning Yang and Robert Hofstadter.</subfield>
+        </datafield>
+        <datafield tag="590" ind1="" ind2="">
+            <subfield code="a">En 1962, le CERN est l'hote de la onzieme Conference Internationale de Physique des Hautes Energies. Parmi les visiteurs eminents se trouvaient huit laureats du prix Nobel.De gauche a droite: Cecil F. Powell, Isidor I. Rabi, Werner Heisenberg, Edwin M. McMillan, Emile Segre, Tsung Dao Lee, Chen Ning Yang et Robert Hofstadter.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">Press</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Personalities and History of CERN</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">Nobel laureate</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/cgi-bin/setlink?base=PHO&amp;categ=photo-hi&amp;id=6002</subfield>
+            <subfield code="x">1</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/photo/photo-hi/6002.gif</subfield>
+            <subfield code="x">icon</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="o">0000736PHOPHO</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1962</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">81</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1998-07-23</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-07-15</subfield>
+            <subfield code="o">CM</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.nobel.se/physics/laureates/1950/index.html</subfield>
+            <subfield code="p">The Nobel Prize in Physics 1950 : Cecil Frank Powell</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.nobel.se/physics/laureates/1944/index.html</subfield>
+            <subfield code="p">The Nobel Prize in Physics 1944 : Isidor Isaac Rabi</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.nobel.se/physics/laureates/1932/index.html</subfield>
+            <subfield code="p">The Nobel Prize in Physics 1932 : Werner Karl Heisenberg</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.nobel.se/chemistry/laureates/1951/index.html</subfield>
+            <subfield code="p">The Nobel Prize in Chemistry 1951 : Edwin Mattison McMillan</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.nobel.se/physics/laureates/1959/index.html</subfield>
+            <subfield code="p">The Nobel Prize in Physics 1959 : Emilio Gino Segre</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.nobel.se/physics/laureates/1957/index.html</subfield>
+            <subfield code="p">The Nobel Prize in Physics 1957 : Chen Ning Yang and Tsung-Dao Lee</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.nobel.se/physics/laureates/1961/index.html</subfield>
+            <subfield code="p">The Nobel Prize in Physics 1961 : Robert Hofstadter</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="s">6002 (1962)</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">199830</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PICTURE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">CERN-GE-9806033</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Tim Berners-Lee</subfield>
+            <subfield code="s">World-Wide Web inventor</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">28 Jun 1998</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Conference "Internet, Web, What's next?" on 26 June 1998 at CERN : Tim Berners-Lee, inventor of the World-Wide Web and Director of the W3C, explains how the Web came to be and give his views on the future.</subfield>
+        </datafield>
+        <datafield tag="590" ind1="" ind2="">
+            <subfield code="a">Conference "Internet, Web, What's next?" le 26 juin 1998 au CERN: Tim Berners-Lee, inventeur du World-Wide Web et directeur du W3C, explique comment le Web est ne, et donne ses opinions sur l'avenir.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">Press</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Life at CERN</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">neil.calder@cern.ch</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/cgi-bin/setlink?base=PHO&amp;categ=photo-ge&amp;id=9806033</subfield>
+            <subfield code="x">1</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="q">http://preprints.cern.ch/photo/photo-ge/9806033.gif</subfield>
+            <subfield code="x">icon</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="o">0000655PHOPHO</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">81</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1998-07-03</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-07-10</subfield>
+            <subfield code="o">CM</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.cern.ch/CERN/Announcements/1998/WebNext.html</subfield>
+            <subfield code="p">"Internet, Web, What's next?" 26 June 1998</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://Bulletin.cern.ch/9828/art2/Text_E.html</subfield>
+            <subfield code="p">CERN Bulletin no 28/98 (6 July 1998) (English)</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://Bulletin.cern.ch/9828/art2/Text_F.html</subfield>
+            <subfield code="p">CERN Bulletin no 28/98 (6 juillet 1998) (French)</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="d">http://www.w3.org/People/Berners-Lee/</subfield>
+            <subfield code="p">Biography</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">0000990</subfield>
+            <subfield code="l">PRSPRS</subfield>
+            <subfield code="t">Le Pays Gessien : 3 Jul 1998</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">0001037</subfield>
+            <subfield code="l">PRSPRS</subfield>
+            <subfield code="t">Le Temps : 27 Jun 1998</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">0000809</subfield>
+            <subfield code="l">PRSPRS</subfield>
+            <subfield code="t">La Tribune de Geneve : 27 Jun 1998</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="p">Bldg. 60</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="P">
+            <subfield code="r">Calder, N</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">199827</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PICTURE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">astro-ph/9812226</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Efstathiou, G P</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Constraints on $\Omega_{\Lambda}$ and $\Omega_{m}$from Distant Type 1a Supernovae and Cosmic Microwave Background Anisotropies</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">14 Dec 1998</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">6 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We perform a combined likelihood analysis of the latest cosmic microwave background anisotropy data and distant Type 1a Supernova data of Perlmutter etal (1998a). Our analysis is restricted tocosmological models where structure forms from adiabatic initial fluctuations characterised by a power-law spectrum with negligible tensor component. Marginalizing over other parameters, our bestfit solution gives Omega_m = 0.25 (+0.18, -0.12) and Omega_Lambda = 0.63 (+0.17, -0.23) (95 % confidence errors) for the cosmic densities contributed by matter and a cosmological constantrespectively. The results therefore strongly favour a nearly spatially flat Universe with a non-zero cosmological constant.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Astrophysics and Astronomy</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lasenby, A N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hobson, M P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, R S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bridle, S L</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">George Efstathiou &lt;gpe@ast.cam.ac.uk></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://preprints.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=astro-ph&amp;id=9812226</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1998-12-14</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-04-07</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="p">Mon. Not. R. Astron. Soc.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4162242</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Bond, J.R. 1996, Theory and Observations of the Cosmic Background Radiation, in "Cosmology and Large Scale Structure", Les Houches Session LX, August 1993, eds. R. Schaeffer, J. Silk, M. Spiro and J. Zinn-Justin, Elsevier SciencePress, Amsterdam, p469</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Bond J.R., Efstathiou G., Tegmark M., 1997</subfield>
+            <subfield code="p">L33</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">291</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Bond, J.R., Jaffe, A. 1997, in Proc. XXXI Rencontre de Moriond, ed. F. Bouchet, Edition Fronti eres, in press</subfield>
+            <subfield code="r">astro-ph/9610091</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Bond J.R., Jaffe A.H. and Knox L.E., 1998</subfield>
+            <subfield code="r">astro-ph/9808264</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Burles S., Tytler D., 1998a, to appear in the Proceedings of the Second Oak Ridge Symposium on Atomic &amp; Nuclear Astrophysics, ed. A. Mezzacappa, Institute of Physics, Bristol</subfield>
+            <subfield code="r">astro-ph/9803071</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Burles S., Tytler D., 1998b, Astrophys. J.in press</subfield>
+            <subfield code="r">astro-ph/9712109</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Caldwell, R.R., Dave, R., Steinhardt P.J., 1998</subfield>
+            <subfield code="p">1582</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">80</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Carroll S.M., Press W.H., Turner E.L., 1992, Ann. Rev. Astr. Astrophys., 30, 499. Chaboyer B., 1998</subfield>
+            <subfield code="r">astro-ph/9808200</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Devlin M.J., De Oliveira-Costa A., Herbig T., Miller A.D., Netterfield C.B., Page L., Tegmark M., 1998, submitted to Astrophys. J</subfield>
+            <subfield code="r">astro-ph/9808043</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Efstathiou G. 1996, Observations of Large-Scale Structure in the Universe, in "Cosmology and Large Scale Structure", Les Houches Session LX, August 1993, eds. R. Schaeffer, J. Silk, M. Spiro and J. Zinn-Justin, Elsevier SciencePress, Amsterdam, p135. Efstathiou G., Bond J.R., Mon. Not. R. Astron. Soc.in press</subfield>
+            <subfield code="r">astro-ph/9807130</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Evrard G., 1998, submitted to Mon. Not. R. Astron. Soc</subfield>
+            <subfield code="r">astro-ph/9701148</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Freedman J.B., Mould J.R., Kennicutt R.C., Madore B.F., 1998</subfield>
+            <subfield code="r">astro-ph/9801090</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Garnavich P.M. et al. 1998</subfield>
+            <subfield code="r">astro-ph/9806396</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Goobar A., Perlmutter S., 1995</subfield>
+            <subfield code="p">14</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">450</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Hamuy M., Phillips M.M., Maza J., Suntzeff N.B., Schommer R.A., Aviles R. 1996</subfield>
+            <subfield code="p">2391</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">112</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Hancock S., Gutierrez C.M., Davies R.D., Lasenby A.N., Rocha G., Rebolo R., Watson R.A., Tegmark M., 1997</subfield>
+            <subfield code="p">505</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">298</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Hancock S., Rocha G., Lasenby A.N., Gutierrez C.M., 1998</subfield>
+            <subfield code="p">L1</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">294</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Herbig T., De Oliveira-Costa A., Devlin M.J., Miller A.D., Page L., Tegmark M., 1998, submitted to Astrophys. J</subfield>
+            <subfield code="r">astro-ph/9808044</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Lineweaver C.H., 1998. Astrophys. J.505, L69. Lineweaver, C.H., Barbosa D., 1998a</subfield>
+            <subfield code="p">624</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">446</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Lineweaver, C.H., Barbosa D., 1998b</subfield>
+            <subfield code="p">799</subfield>
+            <subfield code="t">Astron. Astrophys.</subfield>
+            <subfield code="v">329</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">De Oliveira-Costa A., Devlin M.J., Herbig T., Miller A.D., Netterfield C.B. Page L., Tegmark M., 1998, submitted to Astrophys. J</subfield>
+            <subfield code="r">astro-ph/9808045</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Ostriker J.P., Steinhardt P.J., 1995</subfield>
+            <subfield code="p">600</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">377</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Peebles P.J.E., 1993, Principles of Physical Cosmology, Princeton University Press, Princeton, New Jersey. Perlmutter S, et al., 1995, In Presentations at the NATO ASI in Aiguablava, Spain, LBL-38400; also published in Thermonuclear Supernova, P. Ruiz-Lapuente, R. Cana and J. Isern (eds), Dordrecht, Kluwer, 1997, p749. Perlmutter S, et al., 1997</subfield>
+            <subfield code="p">565</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">483</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Perlmutter S. et al., 1998a, Astrophys. J.in press. (P98)</subfield>
+            <subfield code="r">astro-ph/9812133</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Perlmutter S. et al., 1998b, In Presentation at the January 1988 Meeting of the American Astronomical Society, Washington D.C., LBL-42230, available at www-supernova.lbl.gov; B.A.A.S., volume : 29 (1997) 1351Perlmutter S, et al., 1998c</subfield>
+            <subfield code="p">51</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">391</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Ratra B., Peebles P.J.E., 1988</subfield>
+            <subfield code="p">3406</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">37</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Riess A. et al. 1998, Astrophys. J.in press</subfield>
+            <subfield code="r">astro-ph/9805201</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Seljak U., Zaldarriaga M. 1996</subfield>
+            <subfield code="p">437</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">469</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Seljak U. &amp; Zaldarriaga M., 1998</subfield>
+            <subfield code="r">astro-ph/9811123</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Tegmark M., 1997</subfield>
+            <subfield code="p">3806</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">79</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Tegmark M. 1998, submitted to Astrophys. J</subfield>
+            <subfield code="r">astro-ph/9809201</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Tegmark, M., Eisenstein D.J., Hu W., Kron R.G., 1998</subfield>
+            <subfield code="r">astro-ph/9805117</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Wambsganss J., Cen R., Ostriker J.P., 1998</subfield>
+            <subfield code="p">29</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">494</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Webster M., Bridle S.L., Hobson M.P., Lasenby A.N., Lahav O., Rocha, G., 1998, Astrophys. J.in press</subfield>
+            <subfield code="r">astro-ph/9802109</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">White M., 1998, Astrophys. J.in press</subfield>
+            <subfield code="r">astro-ph/9802295</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Zaldarriaga, M., Spergel D.N., Seljak U., 1997</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">488</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">PRE-25553</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">RL-82-024</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Ellis, J</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Grand unification with large supersymmetry breaking</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">Mar 1982</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">18 p</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Theoretical Physics</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ibanez, L E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ross, G G</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Oxford Univ.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Univ. Auton. Madrid</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Rutherford Lab.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-28</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-01-04</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">1982n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ex/0201013</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CERN-EP-2001-094</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Heister, A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Search for R-Parity Violating Production of Single Sneutrinos in $e^{+}e^{-}$ Collisions at $\sqrt{s}$ = 189-209 GeV</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Geneva</subfield>
+            <subfield code="b">CERN</subfield>
+            <subfield code="c">17 Dec 2001</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">22 p</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">ALEPH Papers</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">A search for single sneutrino production under the assumption that $R$-parity is violated via a single dominant $LL\bar{E}$ coupling is presented. This search considers the process ${\rm e} \gamma\;{\smash{\mathop{\rightarrow}}}\;\tilde{\nu}\ell$ and is performed using the data collected by the ALEPH detector at centre-of-mass energies from 189\,GeV up to 209\,GeV corresponding to an integrated luminosity of637.1\,$\mathrm{pb}^{-1}$. The numbers of observed candidate events are in agreement with Standard Model expectations and 95\% confidence level upper limits on five of the $LL\bar{E}$ couplings are given as a function of the assumedsneutrino mass.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">CERN EDS</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">20011220SLAC</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">giva</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Experimental Results</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Schael, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Barate, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bruneliere, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">De Bonis, I</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Decamp, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Goy, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jezequel, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lees, J P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Martin, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Merle, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Minard, M N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pietrzyk, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Trocme, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Boix, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bravo, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Casado, M P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Chmeissani, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Crespo, J M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Fernandez, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Fernandez-Bosman, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Garrido, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Grauges, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lopez, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Martinez, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Merino, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Miquel, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Mir, L M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pacheco, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Paneque, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ruiz, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Colaleo, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Creanza, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">De Filippis, N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">De Palma, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Iaselli, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Maggi, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Maggi, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Nuzzo, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ranieri, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Raso, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ruggieri, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Selvaggi, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Silvestris, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tempesta, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tricomi, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zito, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Huang, X</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lin, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ouyang, Q</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wang, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Xie, Y</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Xu, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Xue, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zhang, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zhang, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zhao, W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Abbaneo, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Azzurri, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Barklow, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Buchmuller, O</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cattaneo, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cerutti, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Clerbaux, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Drevermann, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Forty, R W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Frank, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gianotti, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Greening, T C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hansen, J B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Harvey, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hutchcroft, D E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Janot, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jost, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kado, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Maley, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Mato, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Moutoussi, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ranjard, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rolandi, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Schlatter, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sguazzoni, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tejessy, W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Teubert, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Valassi, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Videau, I</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ward, J J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Badaud, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dessagne, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Falvard, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Fayolle, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gay, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jousset, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Michel, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Monteil, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pallin, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pascolo, J M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Perret, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hansen, J D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hansen, J R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hansen, P H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Nilsson, B S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Waananen, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kyriakis, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Markou, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Simopoulou, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Vayaki, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zachariadou, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Blondel, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Brient, J C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Machefert, F P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rouge, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Swynghedauw, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tanaka, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Videau, H L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ciulli, V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Focardi, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Parrini, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Antonelli, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Antonelli, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bencivenni, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bologna, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bossi, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Campana, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Capon, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Chiarella, V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Laurelli, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Mannocchi, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Murtas, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Murtas, G P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Passalacqua, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pepe-Altarelli, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Spagnolo, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kennedy, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lynch, J G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Negus, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">O'Shea, V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Smith, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Thompson, A S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wasserbaech, S R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cavanaugh, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dhamotharan, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Geweniger, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hanke, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hepp, V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kluge, E E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Leibenguth, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Putzer, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Stenzel, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tittel, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Werner, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wunsch, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Beuselinck, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Binnie, D M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cameron, W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Davies, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dornan, P J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Girone, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hill, R D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Marinelli, N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Nowell, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Przysiezniak, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rutherford, S A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sedgbeer, J K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Thompson, J C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">White, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ghete, V M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Girtler, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kneringer, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kuhn, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rudolph, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bouhova-Thacker, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bowdery, C K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Clarke, D P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Finch, A J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Foster, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hughes, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jones, R W L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pearson, M R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Robertson, N A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Smizanska, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lemantre, V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Blumenschein, U</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Holldorfer, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jakobs, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kayser, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kleinknecht, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Muller, A S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Quast, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Renk, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sander, H G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Schmeling, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wachsmuth, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zeitnitz, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ziegler, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bonissent, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Carr, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Coyle, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Curtil, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ealet, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Fouchez, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Leroy, O</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kachelhoffer, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Payre, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rousseau, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tilquin, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ragusa, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">David, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dietl, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ganis, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Huttmann, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lutjens, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Mannert, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Manner, W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Moser, H G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Settles, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wolf, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Boucrot, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Callot, O</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Davier, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Duflot, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Grivaz, J F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Heusse, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jacholkowska, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Loomis, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Serin, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Veillet, J J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">De Vivie de Regie, J B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Yuan, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bagliesi, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Boccali, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Fo`, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Giammanco, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Giassi, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ligabue, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Messineo, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Palla, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sanguinetti, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sciaba, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tenchini, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Venturi, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Verdini, P G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Awunor, O</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Blair, G A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Coles, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cowan, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Garcma-Bellido, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Green, M G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jones, L T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Medcalf, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Misiejuk, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Strong, J A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Teixeira-Dias, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Clifft, R W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Edgecock, T R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Norton, P R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tomalin, I R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bloch-Devaux, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Boumediene, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Colas, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Fabbro, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lancon, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lemaire, M C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Locci, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Perez, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rander, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Renardy, J F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rosowsky, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Seager, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Trabelsi, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tuchming, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Vallage, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Konstantinidis, N P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Litke, A M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Taylor, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Booth, C N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cartwright, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Combley, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hodgson, P N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lehto, M H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Thompson, L F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Affholderbach, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bohrer, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Brandt, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Grupen, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hess, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ngac, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Prange, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sieler, U</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Borean, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Giannini, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">He, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Putz, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rothberg, J E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Armstrong, S R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Berkelman, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cranmer, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ferguson, D P S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gao, Y</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gonzalez, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hayes, O J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hu, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jin, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kile, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">McNamara, P A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Nielsen, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pan, Y B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Von Wimmersperg-Toller, J H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wiedenmann, W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wu, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wu, S L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wu, X</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zobernig, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dissertori, G</subfield>
+        </datafield>
+        <datafield tag="710" ind1="" ind2="">
+            <subfield code="g">ALEPH Collaboration</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">valerie.brunner@cern.ch</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=cern&amp;id=ep-2001-094</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="e">ALEPH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="p">EP</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="a">CERN LEP</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2001-12-19</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-02-19</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">CERN</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="p">Eur. Phys. J., C</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4823672</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="o">oai:cds.cern.ch:CERN-EP-2001-094</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">For reviews, see for example: H.P. Nilles</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">110</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H.E. Haber and G. L. Kane</subfield>
+            <subfield code="p">75</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">117</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Farrar and P. Fayet</subfield>
+            <subfield code="p">575</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">76</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Weinberg</subfield>
+            <subfield code="p">287</subfield>
+            <subfield code="t">Phys. Rev., B</subfield>
+            <subfield code="v">26</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Sakai and T. Yanagida</subfield>
+            <subfield code="p">83</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">197</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Dimopoulos, S. Raby and F. Wilczek</subfield>
+            <subfield code="p">133</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">212</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B.C. Allanach, H. Dreiner, P. Morawitz and M.D. Williams, "Single Sneutrino/Slepton Production at LEP2 and the NLC"</subfield>
+            <subfield code="p">307</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">420</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">ALEPH Collaboration, "Search for R-Parity Violating Decays of Supersymmetric Particles in e+e- Collisions at Centre-of-Mass Energies between s = 189­202 GeV"</subfield>
+            <subfield code="p">415</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">19</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">ALEPH Collaboration, "ALEPH: a detector for electron-positron annihilations at LEP", Nucl. Instrum. and Methods. A : 294 (1990) 121</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Cantini, Yu. L. Dokshitzer, M. Olsson, G. Turnock and B.R. Webber, `New clustering algorithm for multijet cross sections in e+e- annihilation"</subfield>
+            <subfield code="p">432</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">269</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">ALEPH Collaboration, "Performance of the ALEPH detector at LEP", Nucl. Instrum. and Methods. A : 360 (1995) 481</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Katsanevas and P. Morawitz, "SUSYGEN 2.2 - A Monte Carlo Event Generator for MSSM Sparticle Production at e+e- Colliders"</subfield>
+            <subfield code="p">227</subfield>
+            <subfield code="t">Comput. Phys. Commun.</subfield>
+            <subfield code="v">112</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Barberio, B. van Eijk and Z. W¸as</subfield>
+            <subfield code="p">115</subfield>
+            <subfield code="t">Comput. Phys. Commun.</subfield>
+            <subfield code="v">66</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Jadach and Z. W¸as, R. Decker and J.H. Kühn, "The decay library TAUOLA"</subfield>
+            <subfield code="p">361</subfield>
+            <subfield code="t">Comput. Phys. Commun.</subfield>
+            <subfield code="v">76</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Sjöstrand, " High-Energy Physics Event Generation with PYTHIA 5.7 and JETSET 7.4"</subfield>
+            <subfield code="p">74</subfield>
+            <subfield code="t">Comput. Phys. Commun.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Jadach et al</subfield>
+            <subfield code="p">276</subfield>
+            <subfield code="t">Comput. Phys. Commun.</subfield>
+            <subfield code="v">66</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">11</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Skrzypek, S. Jadach, W. Placzek and Z. Was</subfield>
+            <subfield code="p">216</subfield>
+            <subfield code="t">Comput. Phys. Commun.</subfield>
+            <subfield code="v">94</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Jadach et al</subfield>
+            <subfield code="p">298</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">390</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.A.M. Vermaseren, in Proceedings of the IVth International Workshop on Gamma Gamma Interactions, Eds. G. Cochard and P. Kessler, Springer Verlag, 1980</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. -F. Grivaz and F. Le Diberder, "Complementary analyses and acceptance optimization in new particle searches", LAL preprint # 92-37 (1992)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">ALEPH Collaboration, "Search for Supersymmetry with a dominant R-Parity Violating LL ¯ E Coupling in e+e- Collisions at Centre-of-Mass Energies of 130 GeV to 172 GeV"</subfield>
+            <subfield code="p">433</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">4</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">For reviews see for example: H. Dreiner, "An Introduction to Explicit R-parity Violation"</subfield>
+            <subfield code="r">hep-ph/9707435</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">published in Perspectives on Supersymmetry, ed. G.L. Kane, World Scientific, Singapore (1998); G. Bhattacharyya</subfield>
+            <subfield code="p">83</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">52</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">12</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">astro-ph/0101431</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Gray, M E</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Infrared constraints on the dark mass concentration observed in the cluster Abell 1942</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">24 Jan 2001</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">8 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We present a deep H-band image of the region in the vicinity of the cluster Abell 1942 containing the puzzling dark matter concentration detected in an optical weak lensing study by Erben et al. (2000). We demonstrate that ourlimiting magnitude, H=22, would be sufficient to detect clusters of appropriate mass out to redshifts comparable with the mean redshift of the background sources. Despite this, our infrared image reveals no obvious overdensity ofsources at the location of the lensing mass peak, nor an excess of sources in the I-H vs. H colour-magnitude diagram. We use this to further constrain the luminosity and mass-to-light ratio of the putative dark clump as a function ofits redshift. We find that for spatially-flat cosmologies, background lensing clusters with reasonable mass-to-light ratios lying in the redshift range 0&lt;z&lt;1 are strongly excluded, leaving open the possibility that the massconcentration is a new type of truly dark object.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Astrophysics and Astronomy</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, R S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lewis, J R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">McMahon, R G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Firth, A E</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Meghan Gray &lt;meg@ast.cam.ac.uk></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=astro-ph&amp;id=0101431</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Caltech</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">IoA, Cambridge</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2001-01-25</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2001-11-02</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Gray, Meghan E.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Ellis, Richard S.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Lewis, James R.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Mahon, Richard G. Mc</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Firth, Andrew E.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="p">Mon. Not. R. Astron. Soc.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200104</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0105155</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CERN-TH-2001-131</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Mangano, M L</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Physics at the front-end of a neutrino factory : a quantitative appraisal</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Geneva</subfield>
+            <subfield code="b">CERN</subfield>
+            <subfield code="c">16 May 2001</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">1 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We present a quantitative appraisal of the physics potential for neutrino experiments at the front-end of a muon storage ring. We estimate the forseeable accuracy in the determination of several interesting observables, and explorethe consequences of these measurements. We discuss the extraction of individual quark and antiquark densities from polarized and unpolarized deep-inelastic scattering. In particular we study the implications for the undertanding ofthe nucleon spin structure. We assess the determination of alpha_s from scaling violation of structure functions, and from sum rules, and the determination of sin^2(theta_W) from elastic nu-e and deep-inelastic nu-p scattering. Wethen consider the production of charmed hadrons, and the measurement of their absolute branching ratios. We study the polarization of Lambda baryons produced in the current and target fragmentation regions. Finally, we discuss thesensitivity to physics beyond the Standard Model.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Alekhin, S I</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Anselmino, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ball, R D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Boglione, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">D'Alesio, U</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Davidson, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">De Lellis, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Forte, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gambino, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gehrmann, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kataev, A L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kotzinian, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kulagin, S A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lehmann-Dronke, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Migliozzi, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Murgia, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ridolfi, G</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Michelangelo MANGANO &lt;Michelangelo.Mangano@cern.ch></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0105155</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="p">TH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">CERN</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">nuDIS Working group of the ECFA-CERN Neutrino-Factory Study Group</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2001-05-17</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-05-25</subfield>
+            <subfield code="o">MH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4628020</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Geer</subfield>
+            <subfield code="p">6989</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9712290</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">039903</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">The Muon Collider Collab., µ+µ- Collider: a feasibility study, Report BNL-52503, Fermilab-Conf-96/092, LBNL-38946 (1996); B. Autin, A. Blondel and J. Ellis (eds.), Prospective study of muon storage rings at CERN, Report CERN 99-02, ECFA 99-197 (Geneva, 1999)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. Bigi et al., The potential for neutrino physics at muon colliders and dedicated high current muon storage rings, Report BNL-67404</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Albright et al</subfield>
+            <subfield code="r">hep-ex/0008064</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.D. Ball, D.A. Harris and K.S. McFarland</subfield>
+            <subfield code="r">hep-ph/0009223</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">submitted to the Proceedings of the Nufact '00 Workshop, June 2000, Monterey</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H.L. Lai et al</subfield>
+            <subfield code="p">1280</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">55</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9606399</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Barone, C. Pascaud and F. Zomer</subfield>
+            <subfield code="p">243</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">12</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9907512</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. I. Alekhin</subfield>
+            <subfield code="p">094022</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0011002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">65</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Ridolfi</subfield>
+            <subfield code="p">278</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">666</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.D. Ball and H.A.M. Tallini</subfield>
+            <subfield code="p">1327</subfield>
+            <subfield code="t">J. Phys., G</subfield>
+            <subfield code="v">25</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Forte</subfield>
+            <subfield code="r">hep-ph/9409416</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="r">hep-ph/9610238</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Forte, M.L. Mangano and G. Ridolfi</subfield>
+            <subfield code="r">hep-ph/0101192</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">to appear in Nucl. Phys., B</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Blümlein and N. Kochelev</subfield>
+            <subfield code="p">296</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">381</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">285</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">498</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.A. Dicus</subfield>
+            <subfield code="p">1637</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">5</subfield>
+            <subfield code="y">1972</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Anselmino, P. Gambino and J. Kalinowski</subfield>
+            <subfield code="p">267</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Maul et al</subfield>
+            <subfield code="p">443</subfield>
+            <subfield code="t">Z. Phys., A</subfield>
+            <subfield code="v">356</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Blümlein and N. Kochelev</subfield>
+            <subfield code="p">285</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">498</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Ravishankar</subfield>
+            <subfield code="p">309</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">374</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Ehrnsperger and A. Schäfer</subfield>
+            <subfield code="p">619</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">348</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Lichtenstadt and H.J. Lipkin</subfield>
+            <subfield code="p">119</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">353</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Dai et al</subfield>
+            <subfield code="p">273</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.G. Ratcliffe</subfield>
+            <subfield code="p">383</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">365</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N.W. Park, J. Schechter and H. Weigel</subfield>
+            <subfield code="p">420</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">228</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.O. Bazarko et al</subfield>
+            <subfield code="p">189</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Mertig and W.L. van Neerven</subfield>
+            <subfield code="p">637</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">70</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Vogelsang</subfield>
+            <subfield code="p">2023</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">54</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. de Florian and R. Sassot</subfield>
+            <subfield code="p">6052</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">51</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.D. Ball, S. Forte and G. Ridolfi</subfield>
+            <subfield code="p">255</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">378</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli, S. Forte and G. Ridolfi</subfield>
+            <subfield code="p">277</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">534</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">138</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">74</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli, R.D. Ball, S. Forte and G. Ridolfi</subfield>
+            <subfield code="p">1145</subfield>
+            <subfield code="t">Acta Phys. Pol., B</subfield>
+            <subfield code="v">29</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9803237</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H.L. Lai et al. (CTEQ Collab.)</subfield>
+            <subfield code="p">375</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">12</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9903282</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli, R.D. Ball, S. Forte and G. Ridolfi</subfield>
+            <subfield code="p">337</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">496</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">1145</subfield>
+            <subfield code="t">Acta Phys. Pol., B</subfield>
+            <subfield code="v">29</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli and G.G. Ross</subfield>
+            <subfield code="p">391</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">212</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. V. Efremov and O. V. Teryaev, JINR-E2-88-287, in Proceedings of Symposium on Hadron Interactions-Theory and Phenomenology, Bechyne, June 26- July 1, 1988; ed. by J. Fischer et al (Czech. Acad. ScienceInst. Phys., 1988) p.432; R.D. Carlitz, J.C. Collins and A.H. Mueller</subfield>
+            <subfield code="p">229</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">214</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli and B. Lampe</subfield>
+            <subfield code="p">315</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">47</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Vogelsang</subfield>
+            <subfield code="p">275</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G.M. Shore and G. Veneziano</subfield>
+            <subfield code="p">75</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">244</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">23</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">381</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">see also G. M. Shore</subfield>
+            <subfield code="r">hep-ph/9812355</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Forte</subfield>
+            <subfield code="p">189</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">224</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">331</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Forte and E.V. Shuryak</subfield>
+            <subfield code="p">153</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">357</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.J. Brodsky and B.-Q. Ma</subfield>
+            <subfield code="p">317</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">381</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">66</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.J. Brodsky, J. Ellis and M. Karliner</subfield>
+            <subfield code="p">309</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">206</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Ellis and M. Karliner</subfield>
+            <subfield code="r">hep-ph/9601280</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Glück et al</subfield>
+            <subfield code="r">hep-ph/0011215</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Adams et al. (Spin Muon Collab.)</subfield>
+            <subfield code="p">23</subfield>
+            <subfield code="t">Nucl. Instrum. Methods Phys. Res., A</subfield>
+            <subfield code="v">437</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Adeva et al. (SMC Collab.)</subfield>
+            <subfield code="p">112001</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. L. Anthony et al. (E155 Collab.)</subfield>
+            <subfield code="p">19</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">493</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[31]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.M. Barnett</subfield>
+            <subfield code="p">1163</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">36</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[32]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.A. Aivazis, J.C. Collins, F.I. Olness and W. Tung</subfield>
+            <subfield code="p">3102</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[33]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Gehrmann and W.J. Stirling</subfield>
+            <subfield code="p">6100</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[34]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Glück, E. Reya, M. Stratmann and W. Vogelsang</subfield>
+            <subfield code="p">4775</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[35]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.J. Gross and C.H. Llewellyn Smith</subfield>
+            <subfield code="p">337</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">14</subfield>
+            <subfield code="y">1969</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[36]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. D. Ball and S. Forte</subfield>
+            <subfield code="p">365</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">358</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9506233</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="r">hep-ph/9607289</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[37]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Santiago and F.J. Yndurain</subfield>
+            <subfield code="p">45</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">563</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9904344</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[38]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.S. Fadin and L.N. Lipatov</subfield>
+            <subfield code="p">127</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">429</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Ciafaloni, D. Colferai and G. Salam</subfield>
+            <subfield code="p">114036</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli, R.D. Ball and S. Forte</subfield>
+            <subfield code="r">hep-ph/0011270</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[39]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W.G. Seligman et al</subfield>
+            <subfield code="p">1213</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">79</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[40]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. L. Kataev, G. Parente and A.V. Sidorov</subfield>
+            <subfield code="p">405</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">573</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9905310</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[41]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.L. Kataev, G. Parente and A.V. Sidorov, preprint CERN-TH/2000-343</subfield>
+            <subfield code="r">hep-ph/0012014</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and work in progress</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[42]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.I. Alekhin and A.L. Kataev</subfield>
+            <subfield code="p">402</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">452</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9812348</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[43]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Bethke</subfield>
+            <subfield code="p">R27</subfield>
+            <subfield code="t">J. Phys., G</subfield>
+            <subfield code="v">26</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ex/0004021</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[44]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. Hinchliffe and A.V. Manohar</subfield>
+            <subfield code="p">643</subfield>
+            <subfield code="t">Annu. Rev. Nucl. Part. Sci.</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0004186</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[45]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Georgi and H.D. Politzer</subfield>
+            <subfield code="p">1829</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">14</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[46]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E.B. Zijlstra and W.L. van Neerven</subfield>
+            <subfield code="p">377</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">297</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[47]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W.L. van Neerven and A. Vogt</subfield>
+            <subfield code="p">263</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">568</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9907472</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="r">hep-ph/0103123</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[48]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W.L. van Neerven and A. Vogt</subfield>
+            <subfield code="p">111</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">490</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0007362</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[49]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Larin, T. van Ritbergen and J.A. Vermaseren</subfield>
+            <subfield code="p">41</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">427</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[50]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Larin, P. Nogueira, T. van Ritbergen and J.A. Vermaseren</subfield>
+            <subfield code="p">338</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">492</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9605317</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[51]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Retey and J.A. Vermaseren, preprint TTP00-13, NIKHEF-2000-018</subfield>
+            <subfield code="r">hep-ph/0007294</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[52]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.A. Gracey</subfield>
+            <subfield code="p">141</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">322</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9401214</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">67</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[53]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Blümlein and A. Vogt</subfield>
+            <subfield code="p">149</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">370</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9510410</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[54]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Catani et al., preprint CERN-TH/2000-131</subfield>
+            <subfield code="r">hep-ph/0005025</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">in Standard model physics (and more) at the LHC, eds. G. Altarelli and M. Mangano, Report CERN 2000-004 (Geneva, 2000)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[55]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.L. Kataev, A.V. Kotikov, G. Parente and A.V. Sidorov</subfield>
+            <subfield code="p">374</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">417</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9706534</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[56]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Beneke</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">317</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9807443</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[57]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Beneke and V.M. Braun</subfield>
+            <subfield code="r">hep-ph/0010208</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[58]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dasgupta and B.R. Webber</subfield>
+            <subfield code="p">273</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">382</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9604388</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[59]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Maul, E. Stein, A. Schafer and L. Mankiewicz</subfield>
+            <subfield code="p">100</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">401</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9612300</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[60]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.V. Sidorov et al. (IHEP­JINR Neutrino Detector Collab.)</subfield>
+            <subfield code="p">405</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ex/9905038</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[61]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.I. Alekhin et al. (IHEP-JINR Neutrino Detector Collab), preprint IHEP-01-18 (2001)</subfield>
+            <subfield code="r">hep-ex/0104013</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[62]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Adloff et al. (H1 Collab.)</subfield>
+            <subfield code="r">hep-ex/0012052</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[63]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.D. Martin, R.G. Roberts, W.J. Stirling and R.S. Thorne</subfield>
+            <subfield code="p">117</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">18</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0007099</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[64]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E.B. Zijlstra and W.L. van Neerven</subfield>
+            <subfield code="p">525</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">383</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[65]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.G. Gorishny and S.A. Larin</subfield>
+            <subfield code="p">109</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">172</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Larin and J.A.M. Vermaseren</subfield>
+            <subfield code="p">345</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">259</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[66]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.L. Kataev and A.V. Sidorov, preprint CERN-TH/7235-94</subfield>
+            <subfield code="r">hep-ph/9405254</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">in Proceedings of Rencontre de Moriond - Hadronic session of `QCD and high energy hadronic interactions', M´eribel-les-Allues, 1994, ed. J. Tr an Thanh V an (Editions Fronti eres, Gif-sur-Yvette, 1995), p. 189</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[67]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.H. Kim et al</subfield>
+            <subfield code="p">3595</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">81</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ex/9808015</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[68]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Chyla and A.L. Kataev</subfield>
+            <subfield code="p">385</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">297</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9209213</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[69]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.L. Kataev and A.V. Sidorov</subfield>
+            <subfield code="p">179</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">331</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9402342</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[70]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Blümlein and W. L. van Neerven</subfield>
+            <subfield code="p">417</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">450</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9811351</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[71]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.L. Kataev and V.V. Starshenko</subfield>
+            <subfield code="p">235</subfield>
+            <subfield code="t">Mod. Phys. Lett., A</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9502348</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.A. Samuel, J. Ellis and M. Karliner</subfield>
+            <subfield code="p">4380</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">74</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9503411</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[72]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Bernreuther and W. Wetzel</subfield>
+            <subfield code="p">228</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">197</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">758</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">513</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]; S.A. Larin, T. van Ritbergen and J.A. Vermaseren</subfield>
+            <subfield code="p">278</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">438</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9411260</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K.G. Chetyrkin, B.A. Kniehl and M. Steinhauser</subfield>
+            <subfield code="p">2184</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">79</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9706430</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[73]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E.V. Shuryak and A.I. Vainshtein</subfield>
+            <subfield code="p">451</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">199</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[74]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.A. Shifman, A.I. Vainshtein and V.I. Zakharov</subfield>
+            <subfield code="p">385</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">147</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[75]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.M. Braun and A.V. Kolesnichenko</subfield>
+            <subfield code="p">723</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">283</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">68</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[76]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G.G. Ross and R.G. Roberts</subfield>
+            <subfield code="p">425</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">322</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9312237</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[77]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Balla, M.V. Polyakov and C. Weiss</subfield>
+            <subfield code="p">327</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">510</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9707515</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[78]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.G. Oldeman (CHORUS Collab.)</subfield>
+            <subfield code="p">96</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">79</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.G. Oldeman, PhD Thesis, Amsterdam University, June 2000 (unpublished)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[79]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">U.K. Yang et al. (CCFR­NuTeV Collab.)</subfield>
+            <subfield code="r">hep-ex/0010001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[80]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.D. Bjorken</subfield>
+            <subfield code="p">1767</subfield>
+            <subfield code="t">Phys. Rev.</subfield>
+            <subfield code="v">163</subfield>
+            <subfield code="y">1967</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[81]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W.A. Bardeen, A.J. Buras, D.W. Duke and T. Muta</subfield>
+            <subfield code="p">3998</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">18</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli, R.K. Ellis and G. Martinelli</subfield>
+            <subfield code="p">521</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">143</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[82]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K.G. Chetyrkin, S.G. Gorishny, S.A. Larin and F.V. Tkachov</subfield>
+            <subfield code="p">230</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">137</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[83]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Larin, F.V. Tkachov and J.A. Vermaseren</subfield>
+            <subfield code="p">862</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">66</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[84]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Arneodo</subfield>
+            <subfield code="p">301</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">240</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[85]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Piller and W. Weise</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">330</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9908230</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[86]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Amaudruz et al</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">441</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Arneodo et al</subfield>
+            <subfield code="p">12</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">441</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[87]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.C. Benvenuti et al. (BCDMS Collab.)</subfield>
+            <subfield code="p">483</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">189</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[88]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Gomez et al</subfield>
+            <subfield code="p">4348</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">49</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[89]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.R. Adams et al. (E665 Collab.)</subfield>
+            <subfield code="p">403</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">67</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ex/9505006</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[90]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.L. Adler</subfield>
+            <subfield code="p">963</subfield>
+            <subfield code="t">Phys. Rev., B</subfield>
+            <subfield code="v">135</subfield>
+            <subfield code="y">1964</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[91]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.S. Bell</subfield>
+            <subfield code="p">57</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">13</subfield>
+            <subfield code="y">1964</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[92]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C.A. Piketti and L. Stodolsky</subfield>
+            <subfield code="p">571</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">15</subfield>
+            <subfield code="y">1970</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[93]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B.Z. Kopeliovich and P. Marage</subfield>
+            <subfield code="p">1513</subfield>
+            <subfield code="t">Int. J. Mod. Phys., A</subfield>
+            <subfield code="v">8</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[94]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.P. Allport et al. (BEBC WA59 Collab.)</subfield>
+            <subfield code="p">417</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">232</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[95]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Boros, J.T. Londergan and A.W. Thomas</subfield>
+            <subfield code="p">114030</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9804410</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[96]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">U.K. Yang et al. (CCFR­NuTeV Collab.)</subfield>
+            <subfield code="r">hep-ex/0009041</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[97]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.A. Aivazis, F.I. Olness and W. Tung</subfield>
+            <subfield code="p">2339</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Barone, M. Genovese, N.N. Nikolaev, E. Predazzi and B. Zakharov</subfield>
+            <subfield code="p">279</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">268</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">83</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">70</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9505343</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[98]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.S. Thorne and R.G. Roberts</subfield>
+            <subfield code="p">303</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">421</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9711223</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[99]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.D. Martin, R.G. Roberts, W.J. Stirling and R.S. Thorne</subfield>
+            <subfield code="p">463</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">4</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9803445</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[100]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L.L. Frankfurt, M.I. Strikman and S. Liuti</subfield>
+            <subfield code="p">1725</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[101]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Kobayashi, S. Kumano and M. Miyama</subfield>
+            <subfield code="p">465</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">354</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9501313</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[102]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K.J. Eskola, V.J. Kolhinen and P.V. Ruuskanen</subfield>
+            <subfield code="p">351</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">535</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9802350</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">69</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[103]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Kulagin</subfield>
+            <subfield code="r">hep-ph/9812532</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[104]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.V. Landshoff, J.C. Polkinghorne and R.D. Short</subfield>
+            <subfield code="p">225</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">28</subfield>
+            <subfield code="y">1971</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[105]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Kulagin, G. Piller and W. Weise</subfield>
+            <subfield code="p">1154</subfield>
+            <subfield code="t">Phys. Rev., C</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">nucl-th/9402015</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[106]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.V. Akulinichev, S.A. Kulagin and G.M. Vagradov</subfield>
+            <subfield code="p">485</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">158</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[107]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Kulagin</subfield>
+            <subfield code="p">653</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">500</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[108]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G.B. West, Ann. Phys.NY : 74 (1972) 464</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[109]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Kulagin and A.V. Sidorov</subfield>
+            <subfield code="p">261</subfield>
+            <subfield code="t">Eur. Phys. J., A</subfield>
+            <subfield code="v">9</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0009150</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[110]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.C. Benvenuti et al. (BCDMS Collab.)</subfield>
+            <subfield code="p">29</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[111]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Vakili et al. (CCFR Collab.)</subfield>
+            <subfield code="p">052003</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ex/9905052</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[112]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Kulagin</subfield>
+            <subfield code="p">435</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">640</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">nucl-th/9801039</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[113]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I.R. Afnan, F. Bissey, J. Gomez, A.T. Katramatou, W. Melnitchouk, G.G. Petratos and A.W. Thomas</subfield>
+            <subfield code="r">nucl-th/0006003</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[114]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Guzey et al</subfield>
+            <subfield code="r">hep-ph/0102133</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[115]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Sarantakos, A. Sirlin and W.J. Marciano</subfield>
+            <subfield code="p">84</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">217</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.Y. Bardin and V.A. Dokuchaeva</subfield>
+            <subfield code="p">975</subfield>
+            <subfield code="t">Sov. J. Nucl. Phys.</subfield>
+            <subfield code="v">43</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.Y. Bardin and V.A. Dokuchaeva</subfield>
+            <subfield code="p">839</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">287</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[116]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Degrassi et al. Phys. Lett., B350 (95) 75; G. Degrassi and P. Gambino</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">567</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[117]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.N. Bahcall, M. Kamionkowski and A. Sirlin</subfield>
+            <subfield code="p">6146</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">51</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/9502003</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[118]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">See F. Jegerlehner</subfield>
+            <subfield code="r">hep-ph/9901386</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and references therein</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[119]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K.S. McFarland et al. (NuTeV Collab.)</subfield>
+            <subfield code="r">hep-ex/9806013</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">in Proceedings 33rd Rencontres de Moriond on Electroweak Interactions and Unified Theories, Les Arcs, 1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[120]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. E. Peskin and T. Takeuchi</subfield>
+            <subfield code="p">381</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">46</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. J. Marciano and J. L. Rosner</subfield>
+            <subfield code="p">2963</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">2963</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">68</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[121]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli and R. Barbieri</subfield>
+            <subfield code="p">161</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">253</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. C. Kennedy and P. Langacker</subfield>
+            <subfield code="p">2967</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">2967</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">66</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[122]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.E. Groom et al, Particle Data Group</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Eur. Phys. J.</subfield>
+            <subfield code="v">15</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[123]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Migliozzi et al</subfield>
+            <subfield code="p">217</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">462</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[124]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Finjord and F. Ravndal</subfield>
+            <subfield code="p">61</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1975</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[125]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.E. Shrock and B.W. Lee</subfield>
+            <subfield code="p">2539</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">13</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[126]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Avilez et al</subfield>
+            <subfield code="p">149</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">66</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[127]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Avilez and T. Kobayashi</subfield>
+            <subfield code="p">3448</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">19</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[128]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Avilez et al</subfield>
+            <subfield code="p">709</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">17</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">70</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[129]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Amer et al</subfield>
+            <subfield code="p">48</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">81</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[130]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.G. Kovalenko</subfield>
+            <subfield code="p">934</subfield>
+            <subfield code="t">Sov. J. Nucl. Phys.</subfield>
+            <subfield code="v">52</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[131]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G.T. Jones et al. (WA21 Collab.)</subfield>
+            <subfield code="p">593</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">36</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[132]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.V. Ammosov et al</subfield>
+            <subfield code="p">247</subfield>
+            <subfield code="t">JETP Lett.</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[133]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Son et al</subfield>
+            <subfield code="p">2129</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">28</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[134]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Ushida et al. (E531 Collab.)</subfield>
+            <subfield code="p">375</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">206</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[135]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Armenise et al</subfield>
+            <subfield code="p">409</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">104</subfield>
+            <subfield code="y">1981</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[136]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. De Lellis, P. Migliozzi and P. Zucchelli</subfield>
+            <subfield code="p">7</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">507</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0104066</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[137]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Corcella et al</subfield>
+            <subfield code="r">hep-ph/0011363</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[138]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Sjöstrand, report LU-TP-95-20</subfield>
+            <subfield code="r">hep-ph/9508391</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[139]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Ingelman et al</subfield>
+            <subfield code="p">108</subfield>
+            <subfield code="t">Comput. Phys. Commun.</subfield>
+            <subfield code="v">101</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[140]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Bolton</subfield>
+            <subfield code="r">hep-ex/9708014</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[141]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Annis et al. (CHORUS Collab.)</subfield>
+            <subfield code="p">458</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">435</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[142]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Conrad et al</subfield>
+            <subfield code="p">1341</subfield>
+            <subfield code="t">Rev. Mod. Phys.</subfield>
+            <subfield code="v">70</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[143]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Adams et al. (NuTeV Collab.)</subfield>
+            <subfield code="p">092001</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[144]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.E. Asratian et al. (BBCN Collab.)</subfield>
+            <subfield code="p">55</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[145]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.D. Richman and P.R. Burchat</subfield>
+            <subfield code="p">893</subfield>
+            <subfield code="t">Rev. Mod. Phys.</subfield>
+            <subfield code="v">67</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[146]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Collins, L. Frankfurt and M. Strikman</subfield>
+            <subfield code="p">2982</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[147]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.V. Radyushkin</subfield>
+            <subfield code="p">5524</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[148]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.J. Brodsky, L. Frankfurt, J.F. Gunion, A.H. Mueller and M. Strikman</subfield>
+            <subfield code="p">3134</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. V. Radyushkin</subfield>
+            <subfield code="p">333</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">385</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Mankiewicz, G. Piller and T. Weigl</subfield>
+            <subfield code="p">119</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">5</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">017501</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Vanderhaeghen, P.A.M. Guichon and M. Guidal</subfield>
+            <subfield code="p">5064</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">80</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[149]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Lehmann-Dronke, P.V. Pobylitsa, M.V. Polyakov, A. Schäfer and K. Goeke</subfield>
+            <subfield code="p">147</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">475</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Lehmann-Dronke, M.V. Polyakov, A. Schäfer and K. Goeke</subfield>
+            <subfield code="p">114001</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0012108</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[150]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Wirbel, B. Stech and M. Bauer</subfield>
+            <subfield code="p">637</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">29</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Bauer and M. Wirbel</subfield>
+            <subfield code="p">671</subfield>
+            <subfield code="t">Z. Phys.</subfield>
+            <subfield code="v">42</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[151]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H-n. Li and B. Meli´c</subfield>
+            <subfield code="p">695</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">11</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[152]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Abada et al</subfield>
+            <subfield code="p">268</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">83</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Becirevic et al</subfield>
+            <subfield code="r">hep-lat/0002025</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Ali Khan et al</subfield>
+            <subfield code="r">hep-lat/0010009</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. S. Kronfeld</subfield>
+            <subfield code="r">hep-ph/0010074</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Lellouch and C.J.D. Lin (UKQCD Collab.)</subfield>
+            <subfield code="r">hep-ph/0011086</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">71</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[153]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.V. Radyushkin</subfield>
+            <subfield code="p">014030</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[154]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.D. Martin, R.G. Roberts and W.J. Stirling</subfield>
+            <subfield code="p">155</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">354</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[155]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.T. Jones et al. (WA21 Collab.)</subfield>
+            <subfield code="p">23</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">28</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[156]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Willocq et al. (WA59 Collab.)</subfield>
+            <subfield code="p">207</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[157]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. DeProspo et al. (E632 Collab.)</subfield>
+            <subfield code="p">6691</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[158]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Astier et al. (NOMAD Collab.)</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">588</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[159]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Trentadue and G. Veneziano</subfield>
+            <subfield code="p">201</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">323</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[160]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Anselmino, M. Boglione, J. Hansson, and F. Murgia</subfield>
+            <subfield code="p">828</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">54</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[161]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.L. Jaffe</subfield>
+            <subfield code="p">6581</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">54</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[162]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Ellis, D.E. Kharzeev and A. Kotzinian</subfield>
+            <subfield code="p">467</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">69</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[163]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. de Florian, M. Stratmann, and W. Vogelsang</subfield>
+            <subfield code="p">5811</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[164]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Kotzinian, A. Bravar and D. von Harrach</subfield>
+            <subfield code="p">329</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[165]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Kotzinian</subfield>
+            <subfield code="r">hep-ph/9709259</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[166]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.L. Belostotski</subfield>
+            <subfield code="p">526</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">79</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[167]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Boer, R. Jakob, and P.J. Mulders</subfield>
+            <subfield code="p">471</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">564</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[168]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Boros, J.T. Londergan and A.W. Thomas</subfield>
+            <subfield code="p">014007</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and D : 62 (2000) 014021</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[169]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Ashery and H.J. Lipkin</subfield>
+            <subfield code="p">263</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">469</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[170]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B-Q. Ma, I. Schmidt, J. Soffer, and J-Y. Yang</subfield>
+            <subfield code="p">657</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">16</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">114009</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[171]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Anselmino, M. Boglione, and F. Murgia</subfield>
+            <subfield code="p">253</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">481</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[172]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Anselmino, D. Boer, U. D'Alesio, and F. Murgia</subfield>
+            <subfield code="p">054029</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[173]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Indumathi, H.S. Mani and A. Rastogi</subfield>
+            <subfield code="p">094014</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[174]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Burkardt and R.L. Jaffe</subfield>
+            <subfield code="p">2537</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">70</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[175]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I.I. Bigi</subfield>
+            <subfield code="p">43</subfield>
+            <subfield code="t">Nuovo Cimento</subfield>
+            <subfield code="v">41</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and 581</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[176]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Melnitchouk and A.W. Thomas</subfield>
+            <subfield code="p">311</subfield>
+            <subfield code="t">Z. Phys., A</subfield>
+            <subfield code="v">353</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[177]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Ellis, M. Karliner, D.E. Kharzeev and M.G. Sapozhnikov</subfield>
+            <subfield code="p">256</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">673</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[178]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Carlitz and M. Kislinger</subfield>
+            <subfield code="p">336</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1970</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[179]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Naumov</subfield>
+            <subfield code="r">hep-ph/0101355</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[180]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Migliozzi et al</subfield>
+            <subfield code="p">19</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">494</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[181]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Alton et al</subfield>
+            <subfield code="r">hep-ex/0008068</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">72</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[182]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Grossman</subfield>
+            <subfield code="p">141</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">359</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[183]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Langacker, M. Luo and A. Mann</subfield>
+            <subfield code="p">87</subfield>
+            <subfield code="t">Rev. Mod. Phys.</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[184]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. Cuypers and S. Davidson</subfield>
+            <subfield code="p">503</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Davidson, D. Bailey and B.A. Campbell</subfield>
+            <subfield code="p">613</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[185]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Leike</subfield>
+            <subfield code="p">143</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">317</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[186]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Datta, R. Gandhi, B. Mukhopadhyaya and P. Mehta</subfield>
+            <subfield code="r">hep-ph/0011375</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[187]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Giudice et al., Report of the Stopped-Muon Working Group, to appear. 73</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">BNL-40718</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">FERMILAB-Pub-87-222-T</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Nason, P</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">The total cross section for the production of heavy quarks in hadronic collisions</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Upton, IL</subfield>
+            <subfield code="b">Brookhaven Nat. Lab.</subfield>
+            <subfield code="c">23 Dec 1987</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">42 p</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dawson, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, R K</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-29</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-01-04</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">1773607</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">198804n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CERN-PRE-82-006</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Ellis, J</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">From the standard model to grand unification</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Geneva</subfield>
+            <subfield code="b">CERN</subfield>
+            <subfield code="c">1982</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">mult. p</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Theoretical Physics</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="p">TH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-28</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-09-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="2">
+            <subfield code="f">820332</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="o">oai:cds.cern.ch:CERN-PRE-82-006</subfield>
+            <subfield code="p">cern:theory</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">1982n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">astro-ph/0104076</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Dev, A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Cosmic equation of state, Gravitational Lensing Statistics and Merging of Galaxies</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">4 Apr 2001</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">28 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">In this paper we investigate observational constraints on the cosmic equation of state of dark energy ($p = w \rho$) using gravitational lensing statistics. We carry out likelihood analysis of the lens surveys to constrain thecosmological parameters $\Omega_{m}$ and $w$. We start by constraining $\Omega_{m}$ and $w$ in the no-evolution model of galaxies where the comoving number density of galaxies is constant. We extend our study to evolutionary modelsof galaxies - Volmerange $&amp;$ Guiderdoni Model and Fast-Merging Model (of Broadhurst, Ellis $&amp;$ Glazebrook). For the no-evolution model we get $w \leq -0.24$ and $\Omega_{m}\leq 0.48$ at $1\sigma$ (68% confidence level). For theVolmerange $&amp;$ Guiderdoni Model we have $w \leq -0.2$ and $\Omega_{m} \leq 0.58$ at $1 \sigma$, and for the Fast Merging Model we get $w \leq -0.02$ and $\Omega_{m} \leq 0.93$ at $1\sigma$. For the case of constant $\Lambda$ ($w=-1$), all the models permit $\Omega_{m} = 0.3$ with 68% CL. We observe that the constraints on $w$ and $\Omega_{m}$ (and on $\Omega_{m}$ in the case of $w = -1$) obtained in the case of evolutionary models are weaker than thoseobtained in the case of the no-evolution model.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Astrophysics and Astronomy</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jain, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Panchapakesan, N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Mahajan, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bhatia, V B</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Deepak Jain &lt;deepak@physics.du.ac.in></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=astro-ph&amp;id=0104076</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">10</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Delhi University</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2001-04-05</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2001-04-10</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Dev, Abha</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Jain, Deepak</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Perlmutter et al</subfield>
+            <subfield code="p">565</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">517</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Perlmutter et al., Phy. Rev. Lett.: 83 (1999) 670</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. G. Riess et al</subfield>
+            <subfield code="p">1009</subfield>
+            <subfield code="t">Astron. J.</subfield>
+            <subfield code="v">116</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. de Bernardis et al</subfield>
+            <subfield code="p">955</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">404</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. J. Ostriker &amp; P. J. Steinhardt</subfield>
+            <subfield code="p">600</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">377</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Sahni &amp; Alexei Starobinsky, IJMP, D : 9 (2000) 373</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. F. Bloomfield Torres &amp; I. Waga</subfield>
+            <subfield code="p">712</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">279</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Silveira &amp; I. Waga</subfield>
+            <subfield code="p">4890</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.Silveira &amp; I. Waga</subfield>
+            <subfield code="p">4625</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. Waga &amp; Ana P. M. R. Miceli, Phy. Rev. D : 59 (1999) 103507</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. S. Turner &amp; M. White, Phy. Rev. D : 56 (1997) 4439</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Huterer &amp; M. S. Turner, Phy. Rev. D : 60 (1999) 081301</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Chiba, N. Sugiyama &amp; T. Nakamura, Mon. Not. R. As-tron. Soc.: 289 (1997) L5</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Chiba, N. Sugiyama &amp; T. Nakamura, Mon. Not. R. As-tron. Soc.: 301 (1998) 72</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. J. E. Peebles</subfield>
+            <subfield code="p">439</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">284</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Ratra &amp; P. J. E. Peebles, Phy. Rev. D : 37 (1988) 3406</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. R. Caldwell, R. Dave &amp; P. J. Steinhardt, Phy. Rev. Lett.: 80 (1998) 1582</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Efstathiou</subfield>
+            <subfield code="r">astro-ph/9904356</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">(1999)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. A. S. Lima &amp; J. S. Alcaniz</subfield>
+            <subfield code="p">893</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">317</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Wang et al</subfield>
+            <subfield code="p">17</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">530</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. W. Rix, D. Maoz, E. Turner &amp; M. Fukugita</subfield>
+            <subfield code="p">49</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">435</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Mao &amp; C. S. Kochanek</subfield>
+            <subfield code="p">569</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">268</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Jain, N. Panchapakesan, S. Mahajan &amp; V. B. Bhatia, MPLA : 15 (2000) 41</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Broadhurst, R. Ellis &amp; K. Glazebrook</subfield>
+            <subfield code="p">55</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">355</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[BEG]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Rocca-Volmerange &amp; B. Guiderdoni, Mon. Not. R. As-tron. Soc.: 247 (1990) 166</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Toomre, in The Evolution of Galaxies and Stellar Pop-ulations eds: B. M. Tinsley &amp; R. B. Larson ( Yale Univ. Observatory), p-401 (1977)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. Schwezier</subfield>
+            <subfield code="p">109</subfield>
+            <subfield code="t">Astron. J.</subfield>
+            <subfield code="v">111</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">O. J. Eggen, D. Lynden-Bell &amp; A. R. Sandage</subfield>
+            <subfield code="p">748</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">136</subfield>
+            <subfield code="y">1962</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. B. Partridge &amp; P. J. E. Peebles</subfield>
+            <subfield code="p">868</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">147</subfield>
+            <subfield code="y">1967</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. P. Driver et al</subfield>
+            <subfield code="p">L23</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">449</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[31]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. M. Burkey et al</subfield>
+            <subfield code="p">L13</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">429</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[32]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. M. Faber et al</subfield>
+            <subfield code="p">668</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">204</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[33]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. G. Carlberg et al</subfield>
+            <subfield code="p">540</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">435</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[34]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. E. Zepf</subfield>
+            <subfield code="p">377</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">390</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[35]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Glazebrook et al</subfield>
+            <subfield code="p">157</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">273</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[36]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. J. Lilly et al</subfield>
+            <subfield code="p">108</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">455</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[37]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. S. Ellis et al</subfield>
+            <subfield code="p">235</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">280</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[38]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. S. Ellis, Ann. Rev</subfield>
+            <subfield code="p">389</subfield>
+            <subfield code="t">Astron. Astrophys.</subfield>
+            <subfield code="v">35</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[39]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Guiderdoni &amp; B. Rocca-Volmerange</subfield>
+            <subfield code="p">435</subfield>
+            <subfield code="t">Astron. Astrophys.</subfield>
+            <subfield code="v">252</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[40]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. E. Zepf, &amp; D. C. Koo</subfield>
+            <subfield code="p">34</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">337</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[41]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. K. C. Yee &amp; E. Ellingson</subfield>
+            <subfield code="p">37</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">445</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[42]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Cole et al</subfield>
+            <subfield code="p">781</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">271</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[43]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. M. Baugh, S. Cole &amp; C. S. Frenk</subfield>
+            <subfield code="p">L27</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">282</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[44]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. M. Baugh, S. Cole &amp; C. S. Frenk</subfield>
+            <subfield code="p">1361</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">283</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[45]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. M. Baugh et al</subfield>
+            <subfield code="p">504</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">498</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[46]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Schechter</subfield>
+            <subfield code="p">297</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">203</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[47]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. H. Press &amp; P. Schechter</subfield>
+            <subfield code="p">487</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">187</subfield>
+            <subfield code="y">1974</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[48]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. E. Gunn &amp; J. R. Gott</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">176</subfield>
+            <subfield code="y">1972</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[49]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Loveday, B. A. Peterson, G. Efstathiou &amp; S. J. Maddox</subfield>
+            <subfield code="p">338</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">390</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[50]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. L. Turner, J. P. ostriker &amp; J. R. Gott III</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">284</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[51]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. L. Turner</subfield>
+            <subfield code="p">L43</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">365</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[52]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Fukugita &amp; E. L. Turner</subfield>
+            <subfield code="p">99</subfield>
+            <subfield code="t">Mon. Not. R. Astron. Soc.</subfield>
+            <subfield code="v">253</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[53]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Fukugita, T. Futamase, M. Kasai &amp; E. L. Turner, As-trophys. J.: 393 (1992) 3</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[54]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. S. Kochanek</subfield>
+            <subfield code="p">12</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">419</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[55]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. S. Kochanek</subfield>
+            <subfield code="p">638</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">466</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[56]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. D. A. Hartwich &amp; D. Schade, Ann. Rev. Astron. Astro-phys.: 28 (1990) 437</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[57]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Yu-Chung N. Cheng &amp; L. M. Krauss</subfield>
+            <subfield code="p">697</subfield>
+            <subfield code="t">Int. J. Mod. Phys., A</subfield>
+            <subfield code="v">15</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[58]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. N. Bahcall et al</subfield>
+            <subfield code="p">56</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">387</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[59]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. C. Hewett et al., Astron. J.109, 1498(LBQS) (1995)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[60]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Maoz et al., Astrophys. J.409, 28(Snapshot) (1993)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[61]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Crampton, R. D. McClure &amp; J. M. Fletcher</subfield>
+            <subfield code="p">23</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">392</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[62]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. K. C. Yee, A. V. Filippenko &amp; D. Tang</subfield>
+            <subfield code="p">7</subfield>
+            <subfield code="t">Astron. J.</subfield>
+            <subfield code="v">105</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[63]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Surdej et al</subfield>
+            <subfield code="p">2064</subfield>
+            <subfield code="t">Astron. J.</subfield>
+            <subfield code="v">105</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[64]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Jain, N. Panchapakesan, S. Mahajan &amp; V. B. Bhatia</subfield>
+            <subfield code="r">astro-ph/9807129</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">(1998)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[65]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Jain, N. Panchapakesan, S. Mahajan &amp; V. B. Bhatia, IJMP, A : 13 (1998) 4227</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[66]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. lampton, B. Margon &amp; S. Bowyer</subfield>
+            <subfield code="p">177</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">208</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">DOE-ER-40048-24-P-4</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Abbott, R B</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Cosmological perturbations in Kaluza-Klein models</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Washington, DC</subfield>
+            <subfield code="b">US. Dept. Energy. Office Adm. Serv.</subfield>
+            <subfield code="c">Nov 1985</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">26 p</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Theoretical Physics</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bednarz, B F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, S D</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-29</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-01-04</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">198608n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CERN-PPE-92-085</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">HEPHY-PUB-568</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Albajar, C</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Multifractal analysis of minimum bias events in \Sqrt s = 630 GeV $\overline{p}$p collisions</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Geneva</subfield>
+            <subfield code="b">CERN</subfield>
+            <subfield code="c">1 Jun 1992</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">27 p</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Experimental Results</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Allkofer, O C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Apsimon, R J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bartha, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bezaguet, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bohrer, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Buschbeck, B</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cennini, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Cittolin, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Clayton, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Coughlan, J A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dau, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Della Negra, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Demoulin, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dibon, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Dowell, J D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Eggert, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Eisenhandler, E F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Faissner, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Fensome, I F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ferrando, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Garvey, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Geiser, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Givernaud, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gonidec, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jank, W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jorat, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Josa-Mutuberria, I</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kalmus, P I P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Karimaki, V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kenyon, I R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kinnunen, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Krammer, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lammel, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Landon, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Levegrun, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lipa, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Markou, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Markytan, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Maurin, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">McMahon, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Meyer, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Moers, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Morsch, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Moulin, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Naumann, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Neumeister, N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Norton, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pancheri, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pauss, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pietarinen, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pimia, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Placci, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Porte, J P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Priem, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Prosi, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Radermacher, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rauschkolb, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Reithler, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Revol, J P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Robinson, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rubbia, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Salicio, J M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Samyn, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Schinzel, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Schleichert, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Seez, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Shah, T P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sphicas, P</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sumorok, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Szoncso, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tan, C H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Taurok, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Taylor, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tether, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Teykal, H F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Thompson, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Terrente-Lujan, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tuchscherer, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tuominiemi, J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Virdee, T S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">von Schlippe, W</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Vuillemin, V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wacker, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wagner, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Walzel, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Weselka, D</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wulz, C E</subfield>
+        </datafield>
+        <datafield tag="710" ind1="" ind2="">
+            <subfield code="g">AACHEN - BIRMINGHAM - CERN - HELSINKI - KIEL - IMP. COLL. LONDON - QUEEN MARY COLL. LONDON - MADRID CIEMAT - MIT - RUTHERFORD APPLETON LAB. - VIENNA Collaboration</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="e">UA1</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="p">PPE</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="f">P00003707</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="a">CERN SPS</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">CERN</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1992-06-16</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">37-46</subfield>
+            <subfield code="p">Z. Phys., C</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">2576562</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="o">oai:cds.cern.ch:CERN-PPE-92-085</subfield>
+            <subfield code="p">cern:experiment</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">199226</subfield>
+            <subfield code="y">a1992</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CERN-TH-4036</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Ellis, J</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Non-compact supergravity solves problems</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Geneva</subfield>
+            <subfield code="b">CERN</subfield>
+            <subfield code="c">Oct 1984</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">15 p</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Theoretical Physics</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">Kahler</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">manifolds</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">gravitinos</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">axions</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">constraints</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">noscale</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Enqvist, K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Nanopoulos, D V</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="p">TH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">CERN</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-29</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-09-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">357-362</subfield>
+            <subfield code="p">Phys. Lett., B</subfield>
+            <subfield code="v">151</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="o">oai:cds.cern.ch:CERN-TH-4036</subfield>
+            <subfield code="p">cern:theory</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">198451</subfield>
+            <subfield code="y">a1985</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">STAN-CS-81-898-MF</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Whang, K</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Separability as a physical database design methodology</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Stanford, CA</subfield>
+            <subfield code="b">Stanford Univ. Comput. Sci. Dept.</subfield>
+            <subfield code="c">Oct 1981</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">60 p</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">Ordered for J Blake/DD</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Computing and Computers</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Wiederhold, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sagalowicz, D</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1981</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">19</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Stanford Univ.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-28</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-01-04</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">198238n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">REPORT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">JYFL-RR-82-7</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Arje, J</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Charge creation and reset mechanisms in an ion guide isotope separator (IGIS)</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Jyvaskyla</subfield>
+            <subfield code="b">Finland Univ. Dept. Phys.</subfield>
+            <subfield code="c">Jul 1982</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">18 p</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Detectors and Experimental Techniques</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">19</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Jyvdskld Univ.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-28</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-01-04</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">198238n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">REPORT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">519.2</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Lindley, Dennis Victor</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Bayesian statistics</subfield>
+            <subfield code="b">a review</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Philadelphia, PA</subfield>
+            <subfield code="b">SIAM</subfield>
+            <subfield code="c">1972</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">88 p</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">CBMS-NSF Reg. Conf. Ser. Appl. Math.</subfield>
+            <subfield code="v">2</subfield>
+        </datafield>
+        <datafield tag="710" ind1="" ind2="">
+            <subfield code="a">Society for Industrial and Applied Mathematics. Philadelphia</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1972</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198604</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">621.396.615</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">621.385.3</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Hamilton, Donald R</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Klystrons and microwave triodes</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">New York, NY</subfield>
+            <subfield code="b">McGraw-Hill</subfield>
+            <subfield code="c">1948</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">547 p</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">M.I.T. Radiat. Lab.</subfield>
+            <subfield code="v">7</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Knipp, Julian K</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kuper, J B Horner</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1948</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198604</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">621.313</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">621.382.333.33</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Draper, Alec</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Electrical machines</subfield>
+        </datafield>
+        <datafield tag="250" ind1="" ind2="">
+            <subfield code="a">2nd ed</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">London</subfield>
+            <subfield code="b">Longmans</subfield>
+            <subfield code="c">1967</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">404 p</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">Electrical engineering series</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1967</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198604</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">539.1.078</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">539.143.44</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">621.384.8</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Quadrupole mass spectrometry and its applications</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Amsterdam</subfield>
+            <subfield code="b">North-Holland</subfield>
+            <subfield code="c">1976</subfield>
+        </datafield>
+        <datafield tag="270" ind1="" ind2="">
+            <subfield code="g">ed.</subfield>
+            <subfield code="p">Dawson, Peter H</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">368 p</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198604</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">fre</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">518.5:62.01</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Dasse, Michel</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Analyse informatique</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="n">t.1</subfield>
+            <subfield code="p">Les preliminaires</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Paris</subfield>
+            <subfield code="b">Masson</subfield>
+            <subfield code="c">1972</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">Informatique</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1972</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198604</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">fre</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">518.5:62.01</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Dasse, Michel</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Analyse informatique</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="n">t.2</subfield>
+            <subfield code="p">L'accomplissement</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Paris</subfield>
+            <subfield code="b">Masson</subfield>
+            <subfield code="c">1972</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">Informatique</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1972</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198604</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">519.2</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Harshbarger, Thad R</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Introductory statistics</subfield>
+            <subfield code="b">a decision map</subfield>
+        </datafield>
+        <datafield tag="250" ind1="" ind2="">
+            <subfield code="a">2nd ed</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">New York, NY</subfield>
+            <subfield code="b">Macmillan</subfield>
+            <subfield code="c">1977</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">597 p</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198604</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">519.2</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Fry, Thornton C</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Probability</subfield>
+            <subfield code="b">and its engineering uses</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Princeton, NJ</subfield>
+            <subfield code="b">Van Nostrand</subfield>
+            <subfield code="c">1928</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">490 p</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">Bell Teleph Lab. Ser.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1928</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198606</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">517.11</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Kleene, Stephen Cole</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Introduction to metamathematics</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Amsterdam</subfield>
+            <subfield code="b">North-Holland</subfield>
+            <subfield code="c">1952 (repr.1964.)</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">560 p</subfield>
+        </datafield>
+        <datafield tag="490" ind1="" ind2="">
+            <subfield code="a">Bibl. Matematica</subfield>
+            <subfield code="v">1</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1952</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198606</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">621.38</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Hughes, Robert James</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Introduction to electronics</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">London</subfield>
+            <subfield code="b">English Univ. Press</subfield>
+            <subfield code="c">1962</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">432 p</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">65/0938, Blair, W/PE, pp</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Pipe, Peter</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1962</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198606</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">519.2</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">518.5:519.2</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Burford, Roger L</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Statistics</subfield>
+            <subfield code="b">a computer approach</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Columbus, OH</subfield>
+            <subfield code="b">Merrill</subfield>
+            <subfield code="c">1968</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">814 p</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1968</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198606</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">539.1.075</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Chiang, Hai Hung</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Basic nuclear electronics</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">New York, NY</subfield>
+            <subfield code="b">Wiley</subfield>
+            <subfield code="c">1969</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">354 p</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1969</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198606</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">621-5</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Dransfield, Peter</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Engineering systems and automatic control</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Englewood Cliffs, N.J.</subfield>
+            <subfield code="b">Prentice-Hall</subfield>
+            <subfield code="c">1968</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">432 p</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1968</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198606</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="080" ind1="" ind2="">
+            <subfield code="a">537.52</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Electrical breakdown in gases</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">London</subfield>
+            <subfield code="b">Macmillan</subfield>
+            <subfield code="c">1973</subfield>
+        </datafield>
+        <datafield tag="270" ind1="" ind2="">
+            <subfield code="g">ed.</subfield>
+            <subfield code="p">Rees, J A</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">303 p</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1973</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">21</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-27</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-12</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">m</subfield>
+            <subfield code="w">198606</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">BOOK</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Tavanapong, W</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">A High-performance Video Browsing System</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Orlando, FL</subfield>
+            <subfield code="b">Central Florida Univ.</subfield>
+            <subfield code="c">1999</subfield>
+        </datafield>
+        <datafield tag="270" ind1="" ind2="">
+            <subfield code="g">dir.</subfield>
+            <subfield code="p">Hua, K A</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">172 p</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">No fulltext</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">Not held by the library</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Ph.D. : Univ. Central Florida : 1999</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Recent advances in multimedia processing technologies, internetworking technologies, and the World Wide Web phenomenon have resulted in a vast creation and use of digital videos in all kinds of applications ranging fromentertainment, business solutions, to education. Designing efficient techniques for searching and retrieving videos over the networks becomes increasingly more important as future applications will include a huge volume of multimediacontent. One practical approach to search for a video segment is as follows. Step 1: Apply an initial search to determine the set of candidate videos. Step 2: Browse the candidates to identify the relevant videos. Step 3: Searchwithin the relevant videos for interesting video segments. In practice, a user might have to iterate through these steps multiple times in order to locate the desired video segments. Independently, database researchers have beeninvestigating techniques for the initial search in Step 1. Multimedia researchers have proposed several techniques for video browsing in Step 2. Computer communications researchers have been investigating video delivery techniques. Iidentify that searching for video data is an interactive process which involves the transmission of video data. Developing techniques for each step independently could result in a system with less performance. In this dissertation, Ipresent a unified approach taking into accounts all fundamental characteristics of multimedia data. I evaluated the proposed techniques through both simulation and system implementation. The resulting system is less expensive andoffers better performance. The simulation results demonstrate that the proposed technique can offer video browsing and search operations with little delays and with minimum storage overhead at the server. Client machines can handletheir search operations without involving the server making the design more scalable, which is vital for large systems deployed over the Internet. The implemented system shows that the visual quality of the browsing and the searchoperations are excellent.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">PROQUEST200009</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Computing and Computers</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">notheld</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-09-22</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-02-22</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">9923724</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">DAI-B60/03p1177Sep1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200034</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Teshome, D</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Neural Networks For Speech Recognition Of A Phonetic Language</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Long Beach, CA</subfield>
+            <subfield code="b">Calif. State Univ.</subfield>
+            <subfield code="c">1999</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">55 p</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">No fulltext</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">Not held by the library</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Ms : California State Univ. : 1999</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">The goal of this thesis is to explore a possibility for a viable alternative/replacement to the Amharic typewriter. Amharic is the national language of Ethiopia. It is one of the oldest languages in the world. Actually, the root-language of Amharic, called Geez, is a descendent of Sabean, which is the direct ancestor of all Semitic languages including English. A phonetic language with 276 phonemes/characters, Amharic has posed quite a challenge to those who,like the author of this thesis, have attempted to design an easy-to-use word processor that interfaces with the conventional keyboard. With current Amharic word processing software, each character requires an average of threekeystrokes thus making typing Amharic literature quite a task. This thesis researches the feasibility of developing a PC-based speech recognition system to recognize the spoken phonemes of the Amharic language. Artificial NeuralNetworks are used for the recognition of spoken alphabets that form Amharic words. A neural network with feed-forward architecture is trained with a series of alphabets and is evaluated on its ability to recognize subsequent testdata. The neural network used in this project is a static classification network; that is, it focuses on the frequency domain of speech while making no attempt to process temporal information. The network training procedure uses thegeneralized Delta Rule. The recognition system developed in this project is an Isolated Speech Recognition System. The approach taken is to recognize the spoken word character by character. This approach is expected to work well dueto the phonetic nature of Amharic.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">PROQUEST200009</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Computing and Computers</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">notheld</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-09-22</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-02-22</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">1397120</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">MAI38/02p448Apr2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200034</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Topcuoglu, H R</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Scheduling Task Graphs In Heterogeneous Computing Environments</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Syracuse, NY</subfield>
+            <subfield code="b">Syracuse Univ.</subfield>
+            <subfield code="c">1999</subfield>
+        </datafield>
+        <datafield tag="270" ind1="" ind2="">
+            <subfield code="g">dir.</subfield>
+            <subfield code="p">Hariri, S</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">126 p</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">No fulltext</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">Not held by the library</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Ph.D. : Syracuse Univ. : 1999</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Efficient application scheduling is critical for achieving high performance in heterogeneous computing environments. An application is represented by a directed acyclic graph (DAG) whose nodes represent tasks and whose edgesrepresent communication messages and precedence constraints among the tasks. The general task-scheduling problem maps the tasks of an application on processors and orders their execution so that task precedence requirements aresatisfied and a minimum schedule length is obtained. The task-scheduling problem has been shown to be NP- complete in general cases as well as in several restricted cases. Although a large number of scheduling heuristics arepresented in the literature, most of them target homogeneous processors. Existing algorithms for heterogeneous processors are not generally efficient because of their high complexity and the quality of their results. This thesisstudies the scheduling of DAG-structured application tasks on heterogeneous domains. We develop two novel low-complexity and efficient scheduling algorithms for bounded number of heterogeneous processors, the HeterogeneousEarliest-Finish-Time (HEFT) algorithm and the Critical-Path-on-a-Processor (CPOP) algorithm. The experimental work presented in this thesis shows that these algorithms significantly surpass previous approaches in terms of performance(schedule length ratio, speed-up, and frequency of best results) and cost (running time and time complexity). Our experimental work includes randomly generated graphs and graphs deducted from real applications. As part of thecomparison study, a parametric graph generator is introduced to generate graphs with various characteristics. We also present a further optimization of the HEFT Algorithm by introducing alternative methods for task prioritizing andprocessor selection phases. A novel processor selection policy based on the earliest finish time of the critical child task improves the performance of the HEFT algorithm. Several strategies for selecting the critical child task of agiven task are presented. This thesis addresses embedding the task scheduling algorithms into an application-development environment for distributed resources. An analytical model is introduced for setting the computation costs oftasks and communication costs of edges of a graph. As part of the design framework of our application development environment, a novel, two-phase, distributed scheduling algorithm is presented for scheduling an application overwide-area distributed resources.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">PROQUEST200009</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Computing and Computers</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">notheld</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-09-22</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-02-08</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">9946509</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">DAI-B60/09p4718Mar2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200034</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">spa</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Trespalacios-Mantilla, J H</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Software De Apoyo Educativo Al Concepto De Funcion En Precalculo I (spanish Text)</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Rio Piedras</subfield>
+            <subfield code="b">Puerto Rico Univ.</subfield>
+            <subfield code="c">1999</subfield>
+        </datafield>
+        <datafield tag="270" ind1="" ind2="">
+            <subfield code="g">dir.</subfield>
+            <subfield code="p">Monroy, H</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">64 p</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">No fulltext</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">Not held by the library</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Ms : Univ. Puerto Rico : 1999</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">This thesis reports on the evaluation of the use of an educational software, designed to improve student's learning of the concept of mathematical function. The students in the study were registered in Precalculus I at theUniversity of Puerto Rico, Mayaguez Campus. The educational software allows the practice of changing the representation of a function among tabular, analytic, and graphical representations. To carry the evaluation, 59 students wereselected and were divided in two groups: control and experimental. Both groups received the 'traditional' classroom lectures on the topic. The experimental group, in addition, was allowed to practice with the educational software. Tomeasure their performance and the effect of the educational software, two tests were given: a pre-test and a post-test. The results of this study shows that the experimental group improved significantly more than the control group,thus demonstrating the validity of the educational software in the learning of the concept of mathematical function.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">PROQUEST200009</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Computing and Computers</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">notheld</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-09-22</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-02-08</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">1395476</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">MAI37/06p1890Dec1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200034</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="020" ind1="" ind2="">
+            <subfield code="a">0-612-38205-2</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">fre</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Troudi, N</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Systeme Multiagent Pour Les Environnements Riches En Informations (french Text)</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Laval</subfield>
+            <subfield code="b">Laval Univ.</subfield>
+            <subfield code="c">1999</subfield>
+        </datafield>
+        <datafield tag="270" ind1="" ind2="">
+            <subfield code="g">dir.</subfield>
+            <subfield code="p">Chaib-Draa, B</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">101 p</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">No fulltext</subfield>
+        </datafield>
+        <datafield tag="500" ind1="" ind2="">
+            <subfield code="a">Not held by the library</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Msc : Universite Laval : 1999</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">La croissance du Web est spectaculaire, puisqu'on estime aujourd'hui a plus de 50 millions, le nombre de pages sur le Web qui ne demandent qu'a etre consultees. Un simple calcul montre qu'en consacrant ne serait-ce qu'une minute parpage, il faudrait environ 95 ans pour consulter toutes ces pages. L'utilisation d'une strategie de recherche est donc vitale. Dans ce cadre, de nombreux outils de recherche ont ete proposes. Ces outils appeles souvent moteurs derecherche se sont averes aujourd'hui incapables de fournir de l'aide aux utilisateurs. Les raisons principales a cela sont les suivantes: (1) La nature ouverte de l'Internet: aucune supervision centrale ne s'applique quant audeveloppement d'Internet, puisque toute personne qui desire l'utiliser et/ou offrir des informations est libre de le faire; (2) La nature dynamique des informations: les informations qui ne sont pas disponibles aujourd'hui peuventl'etre demain et inversement; (3) La nature heterogene de l'information: l'information est offerte sous plusieurs formats et de plusieurs facons, compliquant ainsi la recherche automatique de l'information. Devant ce constat, ilsemble important de chercher de nouvelles solutions pour aider l'utilisateur dans sa recherche d'informations. (Abstract shortened by UMI.)</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">PROQUEST200009</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Computing and Computers</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">notheld</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-09-22</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-02-08</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">MQ38205</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">PROQUEST</subfield>
+            <subfield code="s">MAI37/06p1890Dec1999</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200034</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">LBL-22304</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Manes, J L</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Anomalies in quantum field theory and differential geometry</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Berkeley, CA</subfield>
+            <subfield code="b">Lawrence Berkeley Nat. Lab.</subfield>
+            <subfield code="c">Apr 1986</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">76 p</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Thesis : Calif. Univ. Berkeley</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Theoretical Physics</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">bibliography</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">REPORT</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-29</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-03-22</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">1594192</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">198650n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">LBL-21916</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Ingermanson, R</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Accelerating the loop expansion</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Berkeley, CA</subfield>
+            <subfield code="b">Lawrence Berkeley Nat. Lab.</subfield>
+            <subfield code="c">Jul 1986</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">96 p</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Thesis : Calif. Univ. Berkeley</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Theoretical Physics</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">bibliography</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">REPORT</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-29</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-03-22</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">1594184</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">198650n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">LBL-28106</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Bertsche, K J</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">A small low energy cyclotron for radioisotope measurements</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Berkeley, CA</subfield>
+            <subfield code="b">Lawrence Berkeley Nat. Lab.</subfield>
+            <subfield code="c">Nov 1989</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">155 p</subfield>
+        </datafield>
+        <datafield tag="502" ind1="" ind2="">
+            <subfield code="a">Thesis : Calif. Univ. Berkeley</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Accelerators and Storage Rings</subfield>
+        </datafield>
+        <datafield tag="653" ind1="1" ind2="">
+            <subfield code="a">bibliography</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">REPORT</subfield>
+        </datafield>
+        <datafield tag="690" ind1="C" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">14</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-02-28</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-03-22</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">199010n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">THESIS</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">gr-qc/0204045</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Khalatnikov, I M</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Comment about quasiisotropic solution of Einstein equations near cosmological singularity</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">7 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We generalize for the case of arbitrary hydrodynamical matter the quasiisotropic solution of Einstein equations near cosmological singularity, found by Lifshitz and Khalatnikov in 1960 for the case of radiation-dominated universe. Itis shown that this solution always exists, but dependence of terms in the quasiisotropic expansion acquires a more complicated form.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Relativity and Cosmology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kamenshchik, A Y</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Alexander Kamenshchik &lt;sasha.kamenshchik@centrovolta.it></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=gr-qc&amp;id=0204045</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Lifshitz E M and Khalatnikov I M 1960</subfield>
+            <subfield code="p">149</subfield>
+            <subfield code="t">Zh. Eksp. Teor. Fiz.</subfield>
+            <subfield code="v">39</subfield>
+            <subfield code="y">1960</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Lifshitz E M and Khalatnikov I M 1964 Sov. Phys. Uspekhi 6 495</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Landau L D and Lifshitz E M 1979 The Classical Theory of Fields (Perg-amon Press)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Starobinsky A A 1986 Stochastic De Sitter (inflationary stage) in the early universe in Field Theory, Quantum Gravity and Strings, (Eds. H.J. De Vega and N. Sanchez, Springer-Verlag, Berlin) 107; Linde A D 1990 Particle Physics and Inflationary Cosmology (Harward Academic Publishers, New York)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Banks T and Fischler W 2001 M theory observables for cosmolog-ical space-times</subfield>
+            <subfield code="r">hep-th/0102077</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">An Holographic Cosmology</subfield>
+            <subfield code="r">hep-th/0111142</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Perlmutter S J et al 1999</subfield>
+            <subfield code="p">565</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">517</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Riess A et al 1998</subfield>
+            <subfield code="p">1009</subfield>
+            <subfield code="t">Astron. J.</subfield>
+            <subfield code="v">116</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Sahni V and Starobinsky A A 2000</subfield>
+            <subfield code="p">373</subfield>
+            <subfield code="t">Int. J. Mod. Phys., D</subfield>
+            <subfield code="v">9</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">gr-qc/0204046</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Bento, M C</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Supergravity Inflation on the Brane</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">5 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We study N=1 Supergravity inflation in the context of the braneworld scenario. Particular attention is paid to the problem of the onset of inflation at sub-Planckian field values and the ensued inflationary observables. We find thatthe so-called $\eta$-problem encountered in supergravity inspired inflationary models can be solved in the context of the braneworld scenario, for some range of the parameters involved. Furthermore, we obtain an upper bound on thescale of the fifth dimension, $M_5 \lsim 10^{-3} M_P$, in case the inflationary potential is quadratic in the inflaton field, $\phi$. If the inflationary potential is cubic in $\phi$, consistency with observational data requires that$M_5 \simeq 9.2 \times 10^{-4} M_P$.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">General Relativity and Cosmology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Bertolami, O</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sen, A A</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Maria da Conceicao Bento &lt;bento@sirius.ist.utl.pt></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=gr-qc&amp;id=0204046</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200216</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0204098</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Alhaidari, A D</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Reply to 'Comment on "Solution of the Relativistic Dirac-Morse Problem"'</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">11 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">This combines a reply to the Comment [hep-th/0203067 v1] by A. N. Vaidya and R. de L. Rodrigues with an erratum to our Letter [Phys. Rev. Lett. 87, 210405 (2001)]</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">A. D. Alhaidari &lt;haidari@kfupm.edu.sa></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0204098</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200216</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0204099</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CU-TP-1043</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Easther, R</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Cosmological String Gas on Orbifolds</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Irvington-on-Hudson, NY</subfield>
+            <subfield code="b">Columbia Univ. Dept. Phys.</subfield>
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">14 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">It has long been known that strings wound around incontractible cycles can play a vital role in cosmology. In particular, in a spacetime with toroidal spatial hypersurfaces, the dynamics of the winding modes may help yield threelarge spatial dimensions. However, toroidal compactifications are phenomenologically unrealistic. In this paper we therefore take a first step toward extending these cosmological considerations to $D$-dimensional toroidal orbifolds.We use numerical simulation to study the timescales over which "pseudo-wound" strings unwind on these orbifolds with trivial fundamental group. We show that pseudo-wound strings can persist for many ``Hubble times'' in some of thesespaces, suggesting that they may affect the dynamics in the same way as genuinely wound strings. We also outline some possible extensions that include higher-dimensional wrapped branes.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Greene, B R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Jackson, M G</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">M. G. Jackson &lt;markj@phys.columbia.edu></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0204099</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Easther, Richard</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Greene, Brian R.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Jackson, Mark G.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Brandenberger and C. Vafa</subfield>
+            <subfield code="p">391</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">316</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. A. Tseytlin and C. Vafa</subfield>
+            <subfield code="p">443</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">372</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9109048</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Sakellariadou</subfield>
+            <subfield code="p">319</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">468</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9511075</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. G. Smith and A. Vilenkin</subfield>
+            <subfield code="p">990</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">36</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Brandenberger, D. A. Easson and D. Kimberly</subfield>
+            <subfield code="p">421</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">623</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/0109165</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. R. Greene, A. D. Shapere, C. Vafa, and S. T. Yau</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">337</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Dixon, J. Harvey, C. Vafa and E. Witten</subfield>
+            <subfield code="p">678</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">261</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Dixon, J. Harvey, C. Vafa and E. Witten</subfield>
+            <subfield code="p">285</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">274</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Sakellariadou and A. Vilenkin</subfield>
+            <subfield code="p">885</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">37</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. J. Atick and E. Witten</subfield>
+            <subfield code="p">291</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">310</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Mitchell and N. Turok</subfield>
+            <subfield code="p">1577</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Imperial College report, 1987 (unpublished)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Alexander, R. Brandenberger, and D. Easson</subfield>
+            <subfield code="p">103509</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/0005212</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Easson</subfield>
+            <subfield code="r">hep-th/0110225</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204132</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">NUC-MINN-02-3-T</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Shovkovy, I A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Thermal conductivity of dense quark matter and cooling of stars</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Minneapolis, MN</subfield>
+            <subfield code="b">Minnesota Univ.</subfield>
+            <subfield code="c">11 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">9 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">The thermal conductivity of the color-flavor locked phase of dense quark matter is calculated. The dominant contribution to the conductivity comes from photons and Nambu-Goldstone bosons associated with breaking of baryon numberwhich are trapped in the quark core. Because of their very large mean free path the conductivity is also very large. The cooling of the quark core arises mostly from the heat flux across the surface of direct contact with the nuclearmatter. As the thermal conductivity of the neighboring layer is also high, the whole interior of the star should be nearly isothermal. Our results imply that the cooling time of compact stars with color-flavor locked quark cores issimilar to that of ordinary neutron stars.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ellis, P J</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Igor Shovkovy &lt;shovkovy@physics.umn.edu></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204132</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Shovkovy, Igor A.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Ellis, Paul J.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.C. Collins and M.J. Perry</subfield>
+            <subfield code="p">1353</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">34</subfield>
+            <subfield code="y">1975</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. C. Barrois</subfield>
+            <subfield code="p">390</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">129</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. C. Frautschi, in "Hadronic matter at extreme energy density", edited by N. Cabibbo and L. Sertorio (Plenum Press, 1980); D. Bailin and A. Love</subfield>
+            <subfield code="p">325</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">107</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. G. Alford, K. Rajagopal and F. Wilczek</subfield>
+            <subfield code="p">247</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">422</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Rapp, T. Schäfer, E. V. Shuryak and M. Velkovsky</subfield>
+            <subfield code="p">53</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">81</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. T. Son</subfield>
+            <subfield code="p">094019</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. D. Pisarski and D. H. Rischke</subfield>
+            <subfield code="p">37</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">83</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Schafer and F. Wilczek</subfield>
+            <subfield code="p">114033</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. K. Hong, V. A. Miransky, I. A. Shovkovy and L. C. R. Wijewardhana</subfield>
+            <subfield code="p">056001</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">erratum</subfield>
+            <subfield code="p">059903</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. D. Pisarski and D. H. Rischke</subfield>
+            <subfield code="p">051501</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. D. Hsu and M. Schwetz</subfield>
+            <subfield code="p">211</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">572</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. E. Brown, J. T. Liu and H. C. Ren</subfield>
+            <subfield code="p">114012</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. A. Shovkovy and L. C. R. Wijewardhana</subfield>
+            <subfield code="p">189</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">470</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Schäfer</subfield>
+            <subfield code="p">269</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">575</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Rajagopal and F. Wilczek, arXiv</subfield>
+            <subfield code="r">hep-ph/0011333</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. G. Alford</subfield>
+            <subfield code="p">131</subfield>
+            <subfield code="t">Annu. Rev. Nucl. Part. Sci.</subfield>
+            <subfield code="v">51</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Alford and K. Rajagopal, arXiv</subfield>
+            <subfield code="r">hep-ph/0204001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Alford, K. Rajagopal and F. Wilczek</subfield>
+            <subfield code="p">443</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">537</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Casalbuoni and R. Gatto</subfield>
+            <subfield code="p">111</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">464</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. T. Son and M. A. Stephanov</subfield>
+            <subfield code="p">074012</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">erratum</subfield>
+            <subfield code="p">059902</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. F. Bedaque and T. Schäfer</subfield>
+            <subfield code="p">802</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">697</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. A. Miransky and I. A. Shovkovy</subfield>
+            <subfield code="p">111601</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">88</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0108178</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Schafer, D. T. Son, M. A. Stephanov, D. Toublan and J. J. Ver-baarschot</subfield>
+            <subfield code="p">67</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">522</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0108210</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. T. Son, arXiv</subfield>
+            <subfield code="r">hep-ph/0108260</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Jaikumar, M. Prakash and T. Schäfer, arXiv</subfield>
+            <subfield code="r">astro-ph/0203088</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. J. Ferrer, V. P. Gusynin and V. de la Incera, arXiv: cond-matt/0203217</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. S. Gradshteyn and I. M. Ryzhik, Tables of Integrals, Series and Products (Academic, New York, 1965) 3.252.9</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. J. Freeman and A. C. Anderson</subfield>
+            <subfield code="p">5684</subfield>
+            <subfield code="t">Phys. Rev., B</subfield>
+            <subfield code="v">34</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Kittel, Introduction to Solid State Phys.(John Wi-ley &amp; Sons, Inc., 1960) p. 139</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. P. Gusynin and I. A. Shovkovy</subfield>
+            <subfield code="p">577</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">700</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. M. Khalatnikov, An introduction to the theory of su-perfluidity, (Addison-Wesley Pub. Co., 1989)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. A. Sturrock, Plasma Physics, (Cambridge University Press, 1994)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. M. Lattimer, K. A. Van Riper, M. Prakash and M. Prakash</subfield>
+            <subfield code="p">802</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">425</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. G. Alford, K. Rajagopal, S. Reddy and F. Wilczek</subfield>
+            <subfield code="p">074017</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. W. Carter and S. Reddy</subfield>
+            <subfield code="p">103002</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. W. Steiner, M. Prakash and J. M. Lattimer</subfield>
+            <subfield code="p">10</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">509</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">astro-ph/0101566</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Reddy, M. Sadzikowski and M. Tachibana, arXiv</subfield>
+            <subfield code="r">nucl-th/0203011</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Prakash, J. M. Lattimer, J. A. Pons, A. W. Steiner and S. Reddy</subfield>
+            <subfield code="p">364</subfield>
+            <subfield code="t">Lect. Notes Phys.</subfield>
+            <subfield code="v">578</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. L. Shapiro and S. A. Teukolsky, Black holes, white dwarfs, and neutron stars: the physics of compact ob-jects, (John Wiley &amp; Sons, 1983)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[31]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Blaschke, H. Grigorian and D. N. Voskresensky, As-tron. Astrophys. : 368 (2001) 561</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[32]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Page, M. Prakash, J. M. Lattimer and A. W. Steiner</subfield>
+            <subfield code="p">2048</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">85</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[33]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Rajagopal and F. Wilczek</subfield>
+            <subfield code="p">3492</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[34]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. I. Kapusta, Finite-temperature field theory, (Cam-bridge University Press, 1989)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[35]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. M. Johns, P. J. Ellis and J. M. Lattimer</subfield>
+            <subfield code="p">1020</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">473</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204133</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Gomez, M E</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Lepton-Flavour Violation in SUSY with and without R-parity</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">11 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We study whether the individual violation of the lepton numbers L_{e,mu,tau} in the charged sector can lead to measurable rates for BR(mu->e gamma) and BR(tau->mu gamma). We consider three different scenarios, the fist onecorresponds to the Minimal Supersymmetric Standard Model with non-universal soft terms. In the other two cases the violation of flavor in the leptonic charged sector is associated to the neutrino problem in models with a see-sawmechanism and with R-parity violation respectively.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Carvalho, D F</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Mario E. Gomez &lt;mgomez@gtae3.ist.utl.pt></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204133</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">TALK GIVEN BY M E G AT THE CORFU SUMMER INSTITUTE ON ELEMENTARY PARTICLE PHYSICS CORFU 2001 11 PAGES 5 FIGURES</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Fukuda et al., Super-Kamiokande collaboration</subfield>
+            <subfield code="p">9</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">433</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">33</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">436</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">1562</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">81</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Apollonio et al., Chooz collaboration</subfield>
+            <subfield code="p">397</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">420</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. N. Brown et al. [Muon g-2 Collaboration]</subfield>
+            <subfield code="p">2227</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ex/0102017</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Review of Particle Physics, D. E. Groom et al</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">15</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. F. Carvalho, M. E. Gomez and S. Khalil</subfield>
+            <subfield code="p">001</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">0107</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0104292</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. F. Carvalho, J. R. Ellis, M. Gomez and S. Lola</subfield>
+            <subfield code="p">323</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">515</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. F. Carvalho, M. E. Gomez and J. C. Romao</subfield>
+            <subfield code="r">hep-ph/0202054</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">(to appear in Phys. Rev., D</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. R. Ellis, M. E. Gomez, G. K. Leontaris, S. Lola and D. V. Nanopoulos</subfield>
+            <subfield code="p">319</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">14</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Belyaev et al</subfield>
+            <subfield code="p">715</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">22</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Belyaev et al. [Kaon Physics Working Group Collaboration]</subfield>
+            <subfield code="r">hep-ph/0107046</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Hisano, T. Moroi, K. Tobe and M. Yamaguchi</subfield>
+            <subfield code="p">2442</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Hisano and D. Nomura</subfield>
+            <subfield code="p">116005</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Barbieri and L.J. Hall</subfield>
+            <subfield code="p">212</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">338</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Barbieri et al</subfield>
+            <subfield code="p">219</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">445</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Nima Arkani-Hamed, Hsin-Chia Cheng and L.J. Hall</subfield>
+            <subfield code="p">413</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Ciafaloni, A. Romanino and A. Strumia</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">458</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. E. Gomez and H. Goldberg</subfield>
+            <subfield code="p">5244</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Hisano, D. Nomura, Y. Okada, Y. Shimizu and M. Tanaka</subfield>
+            <subfield code="p">116010</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. E. Gomez, G. K. Leontaris, S. Lola and J. D. Vergados</subfield>
+            <subfield code="p">116009</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G.K. Leontaris and N.D. Tracas</subfield>
+            <subfield code="p">90</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">431</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Buchmuller, D. Delepine and F. Vissani</subfield>
+            <subfield code="p">171</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">459</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Buchmuller, D. Delepine and L. T. Handoko</subfield>
+            <subfield code="p">445</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">576</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Q. Shafi and Z. Tavartkiladze</subfield>
+            <subfield code="p">145</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">473</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. L. Feng, Y. Nir and Y. Shadmi</subfield>
+            <subfield code="p">113005</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Brignole, L. E. Iba nez and C. Mu noz</subfield>
+            <subfield code="p">125</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">422</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">747</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">436</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Iba nez and G.G. Ross</subfield>
+            <subfield code="p">100</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">332</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G.K. Leontaris, S. Lola and G.G. Ross</subfield>
+            <subfield code="p">25</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">454</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Lola and G.G. Ross</subfield>
+            <subfield code="p">81</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">553</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Gell-Mann, P. Ramond and R. Slansky, Proceedings of the Stony Brook Super-gravity Workshop, New York, 1979, eds. P. Van Nieuwenhuizen and D. Freedman (North-Holland, Amsterdam)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. A. Casas and A. Ibarra</subfield>
+            <subfield code="p">171</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">618</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Lavignac, I. Masina and C. A. Savoy</subfield>
+            <subfield code="p">269</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">520</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="r">hep-ph/0202086</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. R. Ellis, D. V. Nanopoulos and K. A. Olive</subfield>
+            <subfield code="p">65</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">508</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. C. Romao, M. A. Diaz, M. Hirsch, W. Porod and J. W. Valle</subfield>
+            <subfield code="p">071703</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">113008</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. E. Gomez and K. Tamvakis</subfield>
+            <subfield code="p">057701</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Hirsch, W. Porod, J. W. F. Valle and J. C. Rom ao</subfield>
+            <subfield code="r">hep-ph/0202149</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. M. Barkov et al., Research Proposal to PSI, 1999</subfield>
+            <subfield code="u">http://www.icepp.s.u-tokyo.ac.jp/meg</subfield>
+            <subfield code="z">http://www.icepp.s.u-tokyo.ac.jp/meg</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">The homepage of the PRISM project</subfield>
+            <subfield code="u">http://www-prism.kek.jp/</subfield>
+            <subfield code="z">http://www-prism.kek.jp/</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Kuno, Lep-ton Flavor Violation Experiments at KEK/JAERI Joint Project of High Intensity Proton Machine, in Proceedings of Workshop of "LOWNU/NOON 2000", Tokyo, December 4-8, 2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Porod, M. Hirsch, J. Rom ao and J. W. Valle</subfield>
+            <subfield code="p">115004</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204134</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Dzuba, V A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Precise calculation of parity nonconservation in cesium and test of the standard model</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">24 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We have calculated the 6s-7s parity nonconserving (PNC) E1 transition amplitude, E_{PNC}, in cesium. We have used an improved all-order technique in the calculation of the correlations and have included all significant contributionsto E_{PNC}. Our final value E_{PNC} = 0.904 (1 +/- 0.5 %) \times 10^{-11}iea_{B}(-Q_{W}/N) has half the uncertainty claimed in old calculations used for the interpretation of Cs PNC experiments. The resulting nuclear weak chargeQ_{W} for Cs deviates by about 2 standard deviations from the value predicted by the standard model.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Flambaum, V V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ginges, J S M</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">"Jacinda S.M. GINGES" &lt;ginges@phys.unsw.edu.au></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204134</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I.B. Khriplovich, Parity Nonconservation in Atomic Phenomena (Gordon and Breach, Philadelphia, 1991)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.-A. Bouchiat and C. Bouchiat</subfield>
+            <subfield code="p">1351</subfield>
+            <subfield code="t">Rep. Prog. Phys.</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C.S. Wood et al</subfield>
+            <subfield code="p">1759</subfield>
+            <subfield code="t">Science</subfield>
+            <subfield code="v">275</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Dzuba, V.V. Flambaum, and O.P. Sushkov</subfield>
+            <subfield code="p">147</subfield>
+            <subfield code="t">Phys. Lett., A</subfield>
+            <subfield code="v">141</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Blundell, W.R. Johnson, and J. Sapirstein</subfield>
+            <subfield code="p">1411</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.A. Blundell, J. Sapirstein, and W.R. Johnson</subfield>
+            <subfield code="p">1602</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">45</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.J. Rafac, and C.E. Tanner, Phys. Rev., A58 1087 (1998); R.J. Rafac, C.E. Tanner, A.E. Livingston, and H.G. Berry, Phys. Rev., A60 3648 (1999)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.C. Bennett, J.L. Roberts, and C.E. Wieman</subfield>
+            <subfield code="p">R16</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.C. Bennett and C.E. Wieman</subfield>
+            <subfield code="p">2484</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">82, 4153(E) (1999); 83, 889(E) (1999)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Casalbuoni, S. De Curtis, D. Dominici, and R. Gatto</subfield>
+            <subfield code="p">135</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">460</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. L. Rosner</subfield>
+            <subfield code="p">016006</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Erler and P. Langacker</subfield>
+            <subfield code="p">212</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">84</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Derevianko</subfield>
+            <subfield code="p">1618</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">85</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Dzuba, C. Harabati, W.R. Johnson, and M.S. Safronova</subfield>
+            <subfield code="p">044103</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.G. Kozlov, S.G. Porsev, and I.I. Tupitsyn</subfield>
+            <subfield code="p">3260</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W.J. Marciano and A. Sirlin</subfield>
+            <subfield code="p">552</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">27</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W.J. Marciano and J.L. Rosner</subfield>
+            <subfield code="p">2963</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B.W. Lynn and P.G.H. Sandars</subfield>
+            <subfield code="p">1469</subfield>
+            <subfield code="t">J. Phys., B</subfield>
+            <subfield code="v">27</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. Bednyakov et al</subfield>
+            <subfield code="p">012103</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.I. Milstein and O.P. Sushkov, e-print</subfield>
+            <subfield code="r">hep-ph/0109257</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W.R. Johnson, I. Bednyakov, and G. Soff</subfield>
+            <subfield code="p">233001</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Derevianko</subfield>
+            <subfield code="p">012106</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Dzuba and V.V. Flambaum</subfield>
+            <subfield code="p">052101</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Dzuba, V.V. Flambaum, and O.P. Sushkov</subfield>
+            <subfield code="p">R4357</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.E. Groom et al., Euro. Phys. J. C : 15 (2000) 1</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Dzuba, V.V. Flambaum, P.G. Silvestrov, and O.P. Sushkov</subfield>
+            <subfield code="p">1399</subfield>
+            <subfield code="t">J. Phys., B</subfield>
+            <subfield code="v">20</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Dzuba, V.V. Flambaum, and O.P. Sushkov</subfield>
+            <subfield code="p">493</subfield>
+            <subfield code="t">Phys. Lett., A</subfield>
+            <subfield code="v">140</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Dzuba, V.V. Flambaum, A.Ya. Kraftmakher, and O.P. Sushkov</subfield>
+            <subfield code="p">373</subfield>
+            <subfield code="t">Phys. Lett., A</subfield>
+            <subfield code="v">142</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Fricke et al</subfield>
+            <subfield code="p">177</subfield>
+            <subfield code="t">At. Data Nucl. Data Tables</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Trzci´nska et al</subfield>
+            <subfield code="p">082501</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.B. Berestetskii, E.M. Lifshitz, and L.P. Pitaevskii, Relativistic Quantum Theory (Pergamon Press, Oxford, 1982)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.J. Mohr and Y.-K. Kim</subfield>
+            <subfield code="p">2727</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">45</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.J. Mohr</subfield>
+            <subfield code="p">4421</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">46</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L.W. Fullerton and G.A. Rinker, Jr</subfield>
+            <subfield code="p">1283</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">13</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[31]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E.H. Wichmann and N.M. Kroll</subfield>
+            <subfield code="p">343</subfield>
+            <subfield code="t">Phys. Rev.</subfield>
+            <subfield code="v">101</subfield>
+            <subfield code="y">1956</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[32]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.I. Milstein and V.M. Strakhovenko</subfield>
+            <subfield code="p">1247</subfield>
+            <subfield code="t">Zh. Eksp. Teor. Fiz.</subfield>
+            <subfield code="v">84</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[33]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.V. Flambaum and V.G. Zelevinsky</subfield>
+            <subfield code="p">3108</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">83</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[34]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C.E. Moore, Natl. Stand. Ref. Data Ser. (U.S., Natl. Bur. Stand.), 3 (1971)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[35]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.J. Rafac, C.E. Tanner, A.E. Livingston, and H.G. Berry</subfield>
+            <subfield code="p">3648</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[36]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.-A. Bouchiat, J. Gu´ena, and L. Pottier, J. Phys.(France) Lett. : 45 (1984) L523</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[37]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Arimondo, M. Inguscio, and P. Violino</subfield>
+            <subfield code="p">31</subfield>
+            <subfield code="t">Rev. Mod. Phys.</subfield>
+            <subfield code="v">49</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[38]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.L. Gilbert, R.N. Watts, and C.E. Wieman</subfield>
+            <subfield code="p">581</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">27</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[39]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.J. Rafac and C.E. Tanner</subfield>
+            <subfield code="p">1027</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[40]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.-A. Bouchiat and J. Gu´ena, J. Phys.(France) : 49 (1988) 2037</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[41]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Cho et al</subfield>
+            <subfield code="p">1007</subfield>
+            <subfield code="t">Phys. Rev., A</subfield>
+            <subfield code="v">55</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[42]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.A. Vasilyev, I.M. Savukov, M.S. Safronova, and H.G. Berry, e-print</subfield>
+            <subfield code="r">physics/0112071</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204135</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Bertin, V</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Neutrino Indirect Detection of Neutralino Dark Matter in the CMSSM</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">16 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We study potential signals of neutralino dark matter indirect detection by neutrino telescopes in a wide range of CMSSM parameters. We also compare with direct detection potential signals taking into account in both cases present andfuture experiment sensitivities. Only models with neutralino annihilation into gauge bosons can satisfy cosmological constraints and current neutrino indirect detection sensitivities. For both direct and indirect detection, only nextgeneration experiments will be able to really test this kind of models.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Nezri, E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Orloff, J</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Jean Orloff &lt;orloff@in2p3.fr></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204135</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200216</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204136</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">FISIST-14-2001-CFIF</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">IPPP-01-58</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">DCPT-01-114</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Branco, G C</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Supersymmetry and a rationale for small CP violating phases</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">28 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We analyse the CP problem in the context of a supersymmetric extension of the standard model with universal strength of Yukawa couplings. A salient feature of these models is that the CP phases are constrained to be very small by thehierarchy of the quark masses, and the pattern of CKM mixing angles. This leads to a small amount of CP violation from the usual KM mechanism and a significant contribution from supersymmetry is required. Due to the large generationmixing in some of the supersymmetric interactions, the electric dipole moments impose severe constraints on the parameter space, forcing the trilinear couplings to be factorizable in matrix form. We find that the LL mass insertionsgive the dominant gluino contribution to saturate epsilon_K. The chargino contributions to epsilon'/epsilon are significant and can accommodate the experimental results. In this framework, the standard model gives a negligiblecontribution to the CP asymmetry in B-meson decay, a_{J/\psi K_s}. However, due to supersymmetric contributions to B_d-\bar{B}_d mixing, the recent large value of a_{J/\psi K_s} can be accommodated.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gomez, M E</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Khalil, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Teixeira, A M</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Shaaban Khalil &lt;shaaban.khalil@durham.ac.uk></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204136</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.G. Cohen, D.B. Kaplan and A.E. Nelson</subfield>
+            <subfield code="p">27</subfield>
+            <subfield code="t">Annu. Rev. Nucl. Part. Sci.</subfield>
+            <subfield code="v">43</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.B. Gavela, P. Hernandez, J. Orloff, O. P ene and C. Quimbay</subfield>
+            <subfield code="p">345</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">430</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">382</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">430</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.D. Dolgov</subfield>
+            <subfield code="r">hep-ph/9707419</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.A. Rubakov and M.E. Shaposhnikov, Usp. Fiz. Nauk : 166 (1996) 493[</subfield>
+            <subfield code="p">461</subfield>
+            <subfield code="t">Phys. Usp.</subfield>
+            <subfield code="v">39</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Abel, S. Khalil and O. Lebedev</subfield>
+            <subfield code="p">151</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">606</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Pokorski, J. Rosiek and C. A. Savoy</subfield>
+            <subfield code="p">81</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">570</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Recent Developments in Gauge Theories, Proceedings of Nato Advanced Study Insti-tute (Carg ese, 1979), edited by G. 't Hooft et al., Plenum, New York (1980)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. C. Branco, J. I. Silva-Marcos and M. N. Rebelo</subfield>
+            <subfield code="p">446</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">237</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. C. Branco, D. Emmanuel­Costa and J. I. Silva-Marcos</subfield>
+            <subfield code="p">107</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. M. Fishbane and P. Q. Hung</subfield>
+            <subfield code="p">2743</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Q. Hung and M. Seco</subfield>
+            <subfield code="r">hep-ph/0111013</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. C. Branco and J. I. Silva-Marcos</subfield>
+            <subfield code="p">166</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">359</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. V. Romalis, W. C. Griffith and E. N. Fortson</subfield>
+            <subfield code="p">2505</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. P. Jacobs et al</subfield>
+            <subfield code="p">3782</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">71</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">BABAR Collaboration, B. Aubert et al</subfield>
+            <subfield code="p">091801</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">BELLE Collaboration, K. Abe et al</subfield>
+            <subfield code="p">091802</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Eyal and Y. Nir</subfield>
+            <subfield code="p">21</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">528</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and references therein</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. C. Branco, F. Cagarrinho and F. Krüger</subfield>
+            <subfield code="p">224</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">459</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Fritzsch and J. Plankl</subfield>
+            <subfield code="p">584</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">49</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Fritzsch and P. Minkowski</subfield>
+            <subfield code="p">393</subfield>
+            <subfield code="t">Nuovo Cimento</subfield>
+            <subfield code="v">30</subfield>
+            <subfield code="y">1975</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Fritzsch and D. Jackson</subfield>
+            <subfield code="p">365</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">66</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Kaus and S. Meshkov</subfield>
+            <subfield code="p">1863</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">42</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Fusaoka and Y. Koide</subfield>
+            <subfield code="p">3986</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">See for example, V. Barger, M. S. Berger and P. Ohmann</subfield>
+            <subfield code="p">1093</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">47</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">4908</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">49</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. C. Branco and J. I. Silva-Marcos</subfield>
+            <subfield code="p">390</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">331</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Particle Data Group</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">15</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Jarlskog</subfield>
+            <subfield code="p">1039</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">55</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">491</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">29</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dugan, B. Grinstein and L. J. Hall</subfield>
+            <subfield code="p">413</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">255</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. A. Demir, A. Masiero and O. Vives</subfield>
+            <subfield code="p">230</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">479</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. M. Barr and S. Khalil</subfield>
+            <subfield code="p">035005</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. A. Abel and J. M. Fr ere</subfield>
+            <subfield code="p">1632</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">55</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Khalil, T. Kobayashi and A. Masiero</subfield>
+            <subfield code="p">075003</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Khalil and T. Kobayashi</subfield>
+            <subfield code="p">341</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">460</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Khalil, T. Kobayashi and O. Vives</subfield>
+            <subfield code="p">275</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">580</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Kobayashi and O. Vives</subfield>
+            <subfield code="p">323</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">406</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Abel, D. Bailin, S. Khalil and O. Lebedev</subfield>
+            <subfield code="p">241</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">504</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Masiero, M. Piai, A. Romanino and L. Silvestrini</subfield>
+            <subfield code="p">075005</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and references therein</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. G. Harris et al</subfield>
+            <subfield code="p">904</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Ciuchini et al</subfield>
+            <subfield code="p">008</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Khalil and O. Lebedev</subfield>
+            <subfield code="p">387</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">515</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. J. Buras</subfield>
+            <subfield code="r">hep-ph/0101336</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">See, for example, G. C. Branco, L. Lavoura and J. P. Silva, CP Violation, Interna-tional Series of Monographs on Physics (103), Oxford University Press, Clarendon (1999)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[31]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. Gabbiani, E. Gabrielli, A. Masiero and L. Silverstrini</subfield>
+            <subfield code="p">321</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">477</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[32]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Fanti et al</subfield>
+            <subfield code="p">335</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">465</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[33]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Gershon (NA48)</subfield>
+            <subfield code="r">hep-ex/0101034</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[34]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. J. Buras, M. Jamin and M. E. Lautenbacher</subfield>
+            <subfield code="p">209</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">408</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[35]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Bertolini, M. Fabbrichesi and E. Gabrielli</subfield>
+            <subfield code="p">136</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">327</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[36]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Colangelo and G. Isidori</subfield>
+            <subfield code="p">009</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">09</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Buras, G. Colan-gelo, G. Isidori, A. Romanino and L. Silvestrini</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">566</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[37]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">OPAL Collaboration, K. Ackerstaff et al</subfield>
+            <subfield code="p">379</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">5</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">CDF Collaboration, T. Affolder et al</subfield>
+            <subfield code="p">072005</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">CDF Collaboration, C. A. Blocker, Proceedings of 3rd Workshop on Physics and Detectors for DAPHNE (DAPHNE 99), Frascati, Italy, 16-19 Nov 1999; ALEPH Collaboration, R. Barate et al</subfield>
+            <subfield code="p">259</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">492</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[38]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Bertolini, F. Borzumati, A. Masiero and G. Ridolfi</subfield>
+            <subfield code="p">591</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">353</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[39]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">CLEO Collaboration, S. Ahmed et al, CLEO-CONF-99-10</subfield>
+            <subfield code="r">hep-ex/9908022</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[40]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Gabrielli, S. Khalil and E. Torrente­Lujan</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">594</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204137</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">DO-TH-02-05</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Paschos, E A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Leptogenesis with Majorana neutrinos</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Dortmund</subfield>
+            <subfield code="b">Dortmund Univ. Inst. Phys.</subfield>
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">6 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">I review the origin of the lepton asymmetry which is converted to a baryon excess at the electroweak scale. This scenario becomes more attractive if we can relate it to other physical phenomena. For this reason I elaborate on theconditions of the early universe which lead to a sizable lepton asymmetry. Then I describe methods and models which relate the low energy parameters of neutrinos to the high energy (cosmological) CP-violation and to neutrinolessdouble beta-decay.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Emmanuel A. Paschos &lt;paschos@hal1.physik.uni-dortmund.de></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204137</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">CONTRIBUTED TO 1ST WORKSHOP ON NEUTRINO - NUCLEUS INTERACTIONS IN THE FEW GEV REGION (NUINT01) TSUKUBA JAPAN 13-16 DEC 2001 6 PAGES 6 FIGURES</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">1.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Fukugida and Yanagida</subfield>
+            <subfield code="p">45</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">174</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">2.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Flanz, E.A. Paschos and U. Sarkar</subfield>
+            <subfield code="p">248</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">345</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">3.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Luty</subfield>
+            <subfield code="p">445</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">45</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">4.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Flanz, E.A. Paschos, U. Sarkar and J. Weiss</subfield>
+            <subfield code="p">693</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">389</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Flanz and E.A. Paschos</subfield>
+            <subfield code="p">113009</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">5.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Pilaftsis</subfield>
+            <subfield code="p">5431</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">6.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Buchmüller and M. Plümacher</subfield>
+            <subfield code="p">354</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">431</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">7.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Covi, E. Roulet and F. Vissani</subfield>
+            <subfield code="p">169</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">384</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">8.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E.K. Akhmedov, V.A. Rubakov and A.Y. Smirnov</subfield>
+            <subfield code="p">1359</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">81</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">9.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.Y. Khlepnikov and M.E. Shaposhnikov</subfield>
+            <subfield code="p">885</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">308</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and references therein</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">10.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Ellis, S. Lola and D.V. Nanopoulos</subfield>
+            <subfield code="p">87</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">452</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">11.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Lazarides and N. Vlachos</subfield>
+            <subfield code="p">482</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">459</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">12.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.S. Berger and B. Brahmachari</subfield>
+            <subfield code="p">073009</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">13.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Kang, S.K. Kang and U. Sarkar</subfield>
+            <subfield code="p">391</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">486</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">14.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Goldberg</subfield>
+            <subfield code="p">389</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">474</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">15.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Hirsch and S.F. King</subfield>
+            <subfield code="p">113005</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">16.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Nielsen and Y. Takanishi</subfield>
+            <subfield code="p">241</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">507</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">17.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Buchmüller and D. Wyler</subfield>
+            <subfield code="p">291</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">521</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">18.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Falcone and Tramontano</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">506</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. Buccella et al</subfield>
+            <subfield code="p">241</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">524</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">19.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G.C. Branco et al., Nucl. Phys., B617 (2001)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">475</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">20.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.S. Joshipura, E.A. Paschos and W. Rodejo-hann</subfield>
+            <subfield code="p">227</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">611</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">29</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">0108</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">21.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">mentioned by H.V. Klapdor­Kleingrothaus, in</subfield>
+            <subfield code="r">hep-ph/0103062</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204138</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">DO-TH-02-06</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Paschos, E A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Neutrino Interactions at Low and Medium Energies</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Dortmund</subfield>
+            <subfield code="b">Dortmund Univ. Inst. Phys.</subfield>
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">9 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We discuss the calculations for several neutrino induced reactions from low energies to the GeV region. Special attention is paid to nuclear corrections when the targets are medium or heavy nuclei. Finally, we present several ratiosof neutral to charged current reactions whose values on isoscalar targets can be estimated accurately. The ratios are useful for investigating neutrino oscillations in Long Baseline experiments.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Emmanuel A. Paschos &lt;paschos@hal1.physik.uni-dortmund.de></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204138</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">CONTRIBUTED TO 1ST WORKSHOP ON NEUTRINO - NUCLEUS INTERACTIONS IN THE FEW GEV REGION (NUINT01) TSUKUBA JAPAN 13-16 DEC 2001 9 PAGES 15 FIGURES</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">1.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. A. Paschos, L. Pasquali and J. Y. Yu</subfield>
+            <subfield code="p">263</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">588</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">2.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. A. Paschos and J. Y. Yu</subfield>
+            <subfield code="p">033002</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">3.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Albright and C. Jarlskog</subfield>
+            <subfield code="p">467</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">84</subfield>
+            <subfield code="y">1975</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">4.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. J. Baker et al</subfield>
+            <subfield code="p">617</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">25</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">5.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Hirai, S. Kumano and M. Miyama</subfield>
+            <subfield code="p">034003</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">6.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. J. Eskola, V. J. Kolhinen and P. V. Ru-uskanen</subfield>
+            <subfield code="p">351</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">535</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. J. Eskola, V. J. Kolhinen, P. V. Ruuskanen and C. A. Salgado</subfield>
+            <subfield code="p">645</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">661</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">7.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">See Figure 1 in Ref. [2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">8.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. A. Schreiner and F. V. von Hippel</subfield>
+            <subfield code="p">333</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1973</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">9.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. L. Adler, S. Nussinov. and E. A. Paschos</subfield>
+            <subfield code="p">2125</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">9</subfield>
+            <subfield code="y">1974</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">10.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. L. Adler</subfield>
+            <subfield code="p">2644</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">12</subfield>
+            <subfield code="y">1975</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">11.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Musset and J. P. Vialle</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">39</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">12.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Kluttig, J. G. Morfin and W. Van Do-minick</subfield>
+            <subfield code="p">446</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">71</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">13.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Merenyi et al</subfield>
+            <subfield code="p">743</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">45</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">14.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. K. Singh, M. T. Vicente-Vacas and E. Oset</subfield>
+            <subfield code="p">23</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">416</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">15.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. A. Paschos and L. Wolfenstein</subfield>
+            <subfield code="p">91</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">7</subfield>
+            <subfield code="y">1973</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">see equation (15)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">16.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. A. Paschos, Precise Ratios for Neutrino-Nucleon and Neutrino-Nucleus Interactions, Dortmund preprint­DO­TH 02/02; hep-ph 0204090</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">17.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Gounaris, E. A. Paschos and P. Porfyri-adis</subfield>
+            <subfield code="p">63</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">525</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">18.</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Bouchez and I. Giomataris, CEA/Saclay internal note, DAPNIA/01-07, June 2001</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204139</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Van Beveren, E</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Remarks on the f_0(400-1200) scalar meson as the dynamically generated chiral partner of the pion</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">15 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">The quark-level linear sigma model is revisited, in particular concerning the identification of the f_0(400-1200) (or \sigma(600)) scalar meson as the chiral partner of the pion. We demonstrate the predictive power of the linearsigma model through the pi-pi and pi-N s-wave scattering lengths, as well as several electromagnetic, weak, and strong decays of pseudoscalar and vector mesons. The ease with which the data for these observables are reproduced in thelinear sigma model lends credit to the necessity to include the sigma as a fundamental q\bar{q} degree of freedom, to be contrasted with approaches like chiral perturbation theory or the confining NJL model of Shakin and Wang.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kleefeld, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rupp, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Scadron, M D</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">George Rupp &lt;george@ajax.ist.utl.pt></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204139</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Beveren, Eef van</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Kleefeld, Frieder</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Rupp, George</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Scadron, Michael D.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. E. Groom et al. [Particle Data Group Collaboration]</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">15</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Isgur and J. Speth</subfield>
+            <subfield code="p">2332</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">77</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. A. Törnqvist and M. Roos</subfield>
+            <subfield code="p">1575</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">76</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9511210</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Harada, F. Sannino, and J. Schechter</subfield>
+            <subfield code="p">1603</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">78</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9609428</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. van Beveren, T. A. Rijken, K. Metzger, C. Dullemond, G. Rupp, and J. E. Ribeiro</subfield>
+            <subfield code="p">615</subfield>
+            <subfield code="t">Z. Phys., C</subfield>
+            <subfield code="v">30</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Eef van Beveren and George Rupp</subfield>
+            <subfield code="p">469</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9806246</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Boglione and M. R. Pennington</subfield>
+            <subfield code="r">hep-ph/0203149</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Gell-Mann and M. L´evy</subfield>
+            <subfield code="p">705</subfield>
+            <subfield code="t">Nuovo Cimento</subfield>
+            <subfield code="v">16</subfield>
+            <subfield code="y">1960</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">also see V. de Alfaro, S. Fubini, G. Furlan, and C. Rossetti, in Currents in Hadron Physics, North-Holland Publ., Amsterdam, Chap. 5 (1973)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Delbourgo and M. D. Scadron</subfield>
+            <subfield code="p">251</subfield>
+            <subfield code="t">Mod. Phys. Lett., A</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9910242</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">657</subfield>
+            <subfield code="t">Int. J. Mod. Phys., A</subfield>
+            <subfield code="v">13</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9807504</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Nambu and G. Jona-Lasinio</subfield>
+            <subfield code="p">345</subfield>
+            <subfield code="t">Phys. Rev.</subfield>
+            <subfield code="v">122</subfield>
+            <subfield code="y">1961</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. M. Shakin and Huangsheng Wang</subfield>
+            <subfield code="p">094020</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. M. Shakin and Huangsheng Wang</subfield>
+            <subfield code="p">014019</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Rupp, E. van Beveren, and M. D. Scadron</subfield>
+            <subfield code="p">078501</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0104087</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Eef van Beveren, George Rupp, and Michael D. Scadron</subfield>
+            <subfield code="p">300</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">495</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">365</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">509</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]</subfield>
+            <subfield code="r">hep-ph/0009265</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Frieder Kleefeld, Eef van Beveren, George Rupp, and Michael D. Scadron</subfield>
+            <subfield code="r">hep-ph/0109158</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. D. Scadron</subfield>
+            <subfield code="p">239</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">26</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">2076</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">29</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">669</subfield>
+            <subfield code="t">Mod. Phys. Lett., A</subfield>
+            <subfield code="v">7</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. L´evy</subfield>
+            <subfield code="p">23</subfield>
+            <subfield code="t">Nuovo Cimento, A</subfield>
+            <subfield code="v">52</subfield>
+            <subfield code="y">1967</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Gasiorowicz and D. A. Geffen</subfield>
+            <subfield code="p">531</subfield>
+            <subfield code="t">Rev. Mod. Phys.</subfield>
+            <subfield code="v">41</subfield>
+            <subfield code="y">1969</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Schechter and Y. Ueda</subfield>
+            <subfield code="p">2874</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">3</subfield>
+            <subfield code="y">1971</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">987</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">8</subfield>
+            <subfield code="y">1973</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Eguchi</subfield>
+            <subfield code="p">2755</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">14</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Eguchi</subfield>
+            <subfield code="p">611</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">17</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">The once-subtracted dispersion-relation result</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204140</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CERN-TH-2002-069</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">RM3-TH-02-4</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Aglietti, U</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">A new model-independent way of extracting |V_ub/V_cb|</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Geneva</subfield>
+            <subfield code="b">CERN</subfield>
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">20 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">The ratio between the photon spectrum in B -> X_s gamma and the differential semileptonic rate wrt the hadronic variable M_X/E_X is a short-distance quantity calculable in perturbation theory and independent of the Fermi motion ofthe b quark in the B meson. We present a NLO analysis of this ratio and show how it can be used to determine |V_ub/V_cb| independently of any model for the shape function. We also discuss how this relation can be used to test thevalidity of the shape-function theory on the data.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ciuchini, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gambino, P</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Paolo Gambino &lt;paolo.gambino@cern.ch></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204140</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="p">TH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">CERN</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Aglietti, Ugo</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Ciuchini, Marco</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Gambino, Paolo</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. I. Bigi, M. A. Shifman, N. G. Uraltsev and A. I. Vainshtein</subfield>
+            <subfield code="p">496</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">71</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9304225</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">2467</subfield>
+            <subfield code="t">Int. J. Mod. Phys., A</subfield>
+            <subfield code="v">9</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9312359</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Neubert</subfield>
+            <subfield code="p">4623</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">49</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9312311</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Akhoury and I. Z. Rothstein</subfield>
+            <subfield code="p">2349</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">54</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9512303</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. K. Leibovich and I. Z. Rothstein</subfield>
+            <subfield code="p">074006</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9907391</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. K. Leibovich, I. Low and I. Z. Rothstein</subfield>
+            <subfield code="p">053006</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9909404</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. K. Leibovich, I. Low and I. Z. Rothstein</subfield>
+            <subfield code="p">86</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">486</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0005124</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Neubert</subfield>
+            <subfield code="p">88</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">513</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0104280</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. K. Leibovich, I. Low and I. Z. Rothstein</subfield>
+            <subfield code="p">83</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">513</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0105066</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. D. Barger, C. S. Kim and R. J. Phillips</subfield>
+            <subfield code="p">629</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">251</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. F. Falk, Z. Ligeti and M. B. Wise</subfield>
+            <subfield code="p">225</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">406</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9705235</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. I. Bigi, R. D. Dikeman and N. Uraltsev</subfield>
+            <subfield code="p">453</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">4</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9706520</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Barate et al. (ALEPH Coll.)</subfield>
+            <subfield code="p">555</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">6</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Acciarri et al. (L3 Coll.), Phys. Lett., B436 (1998); P. Abreu et al. (DELPHI Coll.)</subfield>
+            <subfield code="p">14</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">478</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Abbiendi et al. (OPAL Coll.)</subfield>
+            <subfield code="p">399</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">21</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Bornheim [CLEO Coll.], arXiv</subfield>
+            <subfield code="r">hep-ex/0202019</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. W. Bauer, Z. Ligeti and M. E. Luke</subfield>
+            <subfield code="p">395</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">479</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0002161</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. W. Bauer, Z. Ligeti and M. E. Luke</subfield>
+            <subfield code="p">113004</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0107074</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">U. Aglietti, arXiv</subfield>
+            <subfield code="r">hep-ph/0010251</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">U. Aglietti</subfield>
+            <subfield code="p">308</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">515</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0103002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">U. Aglietti</subfield>
+            <subfield code="p">293</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">610</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0104020</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Ali and E. Pietarinen</subfield>
+            <subfield code="p">519</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">154</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Altarelli, N. Cabibbo, G. Corb o, L. Maiani and G. Martinelli</subfield>
+            <subfield code="p">365</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">208</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. L. Jaffe and L. Randall</subfield>
+            <subfield code="p">79</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">412</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9306201</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Neubert</subfield>
+            <subfield code="p">3392</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">49</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9311325</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">U. Aglietti, M. Ciuchini, G. Corb o, E. Franco, G. Martinelli and L. Silvestrini</subfield>
+            <subfield code="p">411</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">432</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9804416</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Catani, L. Trentadue, G. Turnock and B. R. Webber</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">407</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Lubicz</subfield>
+            <subfield code="p">116</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">94</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-lat/0012003</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. J. Buras, M. Jamin, M. E. Lautenbacher and P. H. Weisz</subfield>
+            <subfield code="p">37</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">400</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9211304</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Ciuchini, E. Franco, G. Martinelli and L. Reina</subfield>
+            <subfield code="p">403</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">415</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9304257</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Chetyrkin, M. Misiak and M. Munz</subfield>
+            <subfield code="p">206</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">400</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[Erratum</subfield>
+            <subfield code="p">414</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">425</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">] [arXiv</subfield>
+            <subfield code="r">hep-ph/9612313</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and refs. therein</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Gambino and M. Misiak</subfield>
+            <subfield code="p">338</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">611</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0104034</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.B. Voloshin</subfield>
+            <subfield code="p">275</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">397</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Khodjamirian et al</subfield>
+            <subfield code="p">167</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">402</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Z. Ligeti, L. Randall and M.B. Wise</subfield>
+            <subfield code="p">178</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">402</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.K. Grant, A.G. Morgan, S. Nussinov and R.D. Peccei</subfield>
+            <subfield code="p">3151</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Buchalla, G. Isidori and S.J. Rey</subfield>
+            <subfield code="p">594</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">511</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Gambino and U. Haisch</subfield>
+            <subfield code="p">020</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">0110</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0109058</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and</subfield>
+            <subfield code="p">001</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">0009</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0007259</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. De Fazio and M. Neubert</subfield>
+            <subfield code="p">017</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">9906</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9905351</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">U. Aglietti, arXiv</subfield>
+            <subfield code="r">hep-ph/0105168</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">to appear in the Proceedings of "XIII Convegno sulla Fisica al LEP (LEPTRE 2001)", Rome (Italy), 18-20 April 2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. van Ritbergen</subfield>
+            <subfield code="p">353</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">454</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. W. Bauer, M. E. Luke and T. Mannel, arXiv</subfield>
+            <subfield code="r">hep-ph/0102089</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">The Particle Data Group</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Eur. Phys. J., C</subfield>
+            <subfield code="v">15</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Ciuchini et al</subfield>
+            <subfield code="p">013</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">0107</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0012308</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Chen et al., CLEO Coll</subfield>
+            <subfield code="p">251807</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[31]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Pott</subfield>
+            <subfield code="p">938</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">54</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9512252</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[32]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Greub, T. Hurth and D. Wyler</subfield>
+            <subfield code="p">3350</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">54</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/9603404</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. J. Buras, A. Czarnecki, M. Misiak and J. Urban</subfield>
+            <subfield code="p">488</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">611</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">[arXiv</subfield>
+            <subfield code="r">hep-ph/0105160</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[33]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. J. Buras, A. Czarnecki, M. Misiak and J. Urban, arXiv</subfield>
+            <subfield code="r">hep-ph/0203135</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204141</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Appelquist, T</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Neutrino Masses in Theories with Dynamical Electroweak Symmetry Breaking</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">4 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We address the problem of accounting for light neutrino masses in theories with dynamical electroweak symmetry breaking. As a possible solution, we embed (extended) technicolor in a theory in which a $|\Delta L|=2$ neutrinocondensate forms at a scale $\Lambda_N \gsim 10^{11}$ GeV, and produces acceptably small (Majorana) neutrino masses. We present an explicit model illustrating this mechanism.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Shrock, R</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Robert Shrock &lt;shrock@insti.physics.sunysb.edu></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204141</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Appelquist, Thomas</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Shrock, Robert</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Fukuda, et al</subfield>
+            <subfield code="p">5651</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Fukuda et al., ibid, 5656 (2001) (SuperK) and Q.R. Ahmad et al</subfield>
+            <subfield code="p">071301</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">(SNO). Other data is from the Homestake, Kamiokande, GALLEX, and SAGE experiments</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Fukuda et al</subfield>
+            <subfield code="p">9</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">433</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">1562</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">81</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">2644</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">185</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">467</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">(SuperK) and data from Kamiokande, IMB, Soudan-2, and MACRO experiments. The data, which is consistent with results from K2K, indicates that |m( 3)2 - m( 2)2| |m( 3)2 - m( 1)2| 2.5 × 10-3 eV2. With a hierarchical mass assumption, one infers m( 3) m232 0.05 eV</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Weinberg</subfield>
+            <subfield code="p">1277</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">19</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Susskind</subfield>
+            <subfield code="p">2619</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">20</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Eichten and K. Lane</subfield>
+            <subfield code="p">125</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">90</subfield>
+            <subfield code="y">1980</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Sikivie, L. Susskind, M. Voloshin, and V. Zakharov</subfield>
+            <subfield code="p">189</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">173</subfield>
+            <subfield code="y">1980</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Holdom</subfield>
+            <subfield code="p">301</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">150</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K Yamawaki, M. Bando, and K. Matumoto</subfield>
+            <subfield code="p">1335</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">56</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist, D. Karabali, and L. Wijeward-hana</subfield>
+            <subfield code="p">957</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist and L.C.R. Wijewardhana</subfield>
+            <subfield code="p">774</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">35</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">568</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">36</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Holdom</subfield>
+            <subfield code="p">1637</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">23</subfield>
+            <subfield code="y">1981</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">169</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">246</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist and J. Terning</subfield>
+            <subfield code="p">139</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">315</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist, J. Terning, and L. Wijewardhana</subfield>
+            <subfield code="p">1214</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">77</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">2767</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">79</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist, N. Evans, S. Selipsky</subfield>
+            <subfield code="p">145</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">374</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist and S. Selipsky</subfield>
+            <subfield code="p">364</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">400</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist, J. Terning</subfield>
+            <subfield code="p">2116</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Recent reviews include R. Chivukula</subfield>
+            <subfield code="r">hep-ph/0011264</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Lane</subfield>
+            <subfield code="r">hep-ph/0202255</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Hill E. Simmons</subfield>
+            <subfield code="r">hep-ph/0203079</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Gell-Mann, P. Ramond, R. Slansky, in Supergrav-ity (North Holland, Amsterdam, 1979), p. 315; T. Yanagida in proceedings of Workshop on Unified Theory and Baryon Number in the Universe, KEK, 1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Although we require our model to yield a small S, a re-analysis of precision electroweak data is called for in view of the value of sin2 W reported in G. Zeller et al</subfield>
+            <subfield code="p">091802</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">88</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">For a vectorial SU(N) theory with Nf fermions in the fundamental representation, an IRFP occurs if Nf > Nf,min,IR, where, perturbatively, Nf,min,IR 34N3/(13N2 -3). At this IRFP, using the criticality con-dition [13], the theory is expected to exist in a confining phase with S SB if Nf,min,IR &lt; Nf &lt; Nf,con, where Nf,con (2/5)N(50N2 - 33)/(5N2 - 3) and in a confor-mal phase if Nf,con &lt; Nf &lt; 11N/2. For N = 2 we have Nf,min,IR 5 and Nf,con 8, respectively. For attempts at lattice measurements, see R. Mawhinney</subfield>
+            <subfield code="p">57</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">83</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">In the approximation of a single-gauge-boson exchange, the critical coupling for the condensation of fermion rep-resentations R1 × R2 Rc is 3 2 C2 = 1, where C2 = [C2(R1) + C2(R2) - C2(Rc)], and C2(R) is the quadratic Casimir invariant. Instanton contributions are also important [7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Gasser, H. Leutwyler</subfield>
+            <subfield code="p">77</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Leutwyler, in</subfield>
+            <subfield code="p">108</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">94</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Ali Khan et al</subfield>
+            <subfield code="p">4674</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">85</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Wingate et al., Int. J. Mod. Phys., A16 S B1 (2001) 585</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Here a = exp[ETC,a fF (dµ/µ) ( (µ))], and in walking TC theories the anomalous dimension 1 so a ETC,a/fF</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">By convention, we write SM-singlet neutrinos as right-handed fields j,R. These are assigned lepton number 1. Thus, in writing SU(4)PS SU(3)c × U(1), the U(1) is not U(1)B-L since some neutrinos in the model are SU(4)PS-singlet states</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Z. Maki, M. Nakagawa, S. Sakata</subfield>
+            <subfield code="p">870</subfield>
+            <subfield code="t">Prog. Theor. Phys.</subfield>
+            <subfield code="v">28</subfield>
+            <subfield code="y">1962</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">(2 × 2 matrix); B. W. Lee, S. Pakvasa, R. Shrock, and H. Sugawara</subfield>
+            <subfield code="p">937</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">38</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">(3 × 3 matrix)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist and R. Shrock, to appear</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Dienes, E. Dudas, T. Gherghetta</subfield>
+            <subfield code="p">25</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">557</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Arkani-Hamed, S. Dimopoulos, G. Dvali, and J. March-Russell</subfield>
+            <subfield code="r">hep-ph/9811448</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Appelquist, B. Dobrescu, E. Ponton, and H.-U. Yee</subfield>
+            <subfield code="r">hep-ph/0201131</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0204100</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">LBNL-50097</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">UCB-PTH-02-14</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Gaillard, M K</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Modular Invariant Anomalous U(1) Breaking</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Berkeley, CA</subfield>
+            <subfield code="b">Lawrence Berkeley Nat. Lab.</subfield>
+            <subfield code="c">11 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">19 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We describe the effective supergravity theory present below the scale of spontaneous gauge symmetry breaking due to an anomalous U(1), obtained by integrating out tree-level interactions of massive modes. A simple case is examined insome detail. We find that the effective theory can be expressed in the linear multiplet formulation, with some interesting consequences. Among them, the modified linearity conditions lead to new interactions not present in the theorywithout an anomalous U(1). These additional interactions are compactly expressed through a superfield functional.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Giedt, J</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Mary K Gaillard &lt;gaillard@thsrv.lbl.gov></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0204100</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Gaillard, Mary K.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Giedt, Joel</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Giedt</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Ann. Phys. (N.Y.)</subfield>
+            <subfield code="v">297</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/0108244</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dine, N. Seiberg and E. Witten</subfield>
+            <subfield code="p">585</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">289</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. J. Atick, L. Dixon and A. Sen</subfield>
+            <subfield code="p">109</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">292</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dine, I. Ichinose and N. Seiberg</subfield>
+            <subfield code="p">253</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">293</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. B. Green and J. H. Schwarz</subfield>
+            <subfield code="p">117</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">149</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Bin´etruy, G. Girardi and R. Grimm</subfield>
+            <subfield code="p">111</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">265</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Müller</subfield>
+            <subfield code="p">292</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">264</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Bin´etruy, G. Girardi, R. Grimm and M. Müller</subfield>
+            <subfield code="p">389</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">189</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Bin´etruy, G. Girardi and R. Grimm</subfield>
+            <subfield code="p">255</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">343</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Girardi and R. Grimm</subfield>
+            <subfield code="p">49</subfield>
+            <subfield code="t">Ann. Phys. (N.Y.)</subfield>
+            <subfield code="v">272</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Bin´etruy, M. K. Gaillard and Y.-Y. Wu</subfield>
+            <subfield code="p">109</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">481</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Bin´etruy, M. K. Gaillard and Y.-Y. Wu</subfield>
+            <subfield code="p">27</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">493</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Bin´etruy, M. K. Gaillard and Y.-Y. Wu</subfield>
+            <subfield code="p">288</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">412</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. K. Gaillard, B. Nelson and Y.-Y. Wu</subfield>
+            <subfield code="p">549</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">459</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. K. Gaillard and B. Nelson</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">571</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Ferrara, C. Kounnas and M. Porrati</subfield>
+            <subfield code="p">263</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">181</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Cveti c, J. Louis and B. A. Ovrut</subfield>
+            <subfield code="p">227</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">206</subfield>
+            <subfield code="y">1988</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. E. Iba nez and D. Lüst</subfield>
+            <subfield code="p">305</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">382</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. K. Gaillard</subfield>
+            <subfield code="p">125</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">342</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">105027</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D : 61 (2000) 084028</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Witten</subfield>
+            <subfield code="p">151</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">155</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. J. Dixon, V. S. Kaplunovsky and J. Louis</subfield>
+            <subfield code="p">27</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">329</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.J. Gates, M. Grisaru, M. Ro cek and W. Siegel, Superspace (Benjamin/Cummings, 1983)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.K. Gaillard and T.R. Taylor</subfield>
+            <subfield code="p">577</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">381</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Wess and J. Bagger, Supersymmetry and supergravity (Princeton, 1992)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Bin´etruy, C. Deffayet and P. Peter</subfield>
+            <subfield code="p">163</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">441</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. K. Gaillard and J. Giedt, in progress</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204142</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Chacko, Z</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Fine Structure Constant Variation from a Late Phase Transition</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Berkeley, CA</subfield>
+            <subfield code="b">Lawrence Berkeley Nat. Lab.</subfield>
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">9 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Recent experimental data indicates that the fine structure constant alpha may be varying on cosmological time scales. We consider the possibility that such a variation could be induced by a second order phase transition which occursat late times (z ~ 1 - 3) and involves a change in the vacuum expectation value (vev) of a scalar with milli-eV mass. Such light scalars are natural in supersymmetric theories with low SUSY breaking scale. If the vev of this scalarcontributes to masses of electrically charged fields, the low-energy value of alpha changes during the phase transition. The observational predictions of this scenario include isotope-dependent deviations from Newtonian gravity atsub-millimeter distances, and (if the phase transition is a sharp event on cosmological time scales) the presence of a well-defined step-like feature in the alpha(z) plot. The relation between the fractional changes in alpha and theQCD confinement scale is highly model dependent, and even in grand unified theories the change in alpha does not need to be accompanied by a large shift in nucleon masses.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Grojean, C</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Perelstein, M</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Maxim Perelstein &lt;meperelstein@lbl.gov></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204142</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. K. Webb, M. T. Murphy, V. V. Flambaum, V. A. Dzuba, J. D. Barrow, C. W. Churchill, J. X. Prochaska and A. M. Wolfe</subfield>
+            <subfield code="p">091301</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/0012539</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">see also J. K. Webb, V. V. Flambaum, C. W. Churchill, M. J. Drinkwater and J. D. Barrow</subfield>
+            <subfield code="p">884</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/9803165</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. A. Dzuba, V. V. Flambaum, and J. K. Webb</subfield>
+            <subfield code="p">888</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. A. Dirac</subfield>
+            <subfield code="p">323</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">139</subfield>
+            <subfield code="y">1937</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">for an historial perspective, see F. Dyson, "The fundamental constants and their time variation", in Aspects of Quantum Theory, eds A. Salam and E. Wigner</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Damour</subfield>
+            <subfield code="r">gr-qc/0109063</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. D. Bekenstein</subfield>
+            <subfield code="p">1527</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">25</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. R. Dvali and M. Zaldarriaga</subfield>
+            <subfield code="p">091303</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">88</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0108217</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. A. Olive and M. Pospelov</subfield>
+            <subfield code="p">085044</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">65</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0110377</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Banks, M. Dine and M. R. Douglas</subfield>
+            <subfield code="p">131301</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">88</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0112059</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Langacker, G. Segr e and M. J. Strassler</subfield>
+            <subfield code="p">121</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">528</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0112233</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Y. Potekhin, A. V. Ivanchik, D. A. Varshalovich, K. M. Lanzetta, J. A. Bald-win, G. M. Williger and R. F. Carswell</subfield>
+            <subfield code="p">523</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">505</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/9804116</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Weinberg</subfield>
+            <subfield code="p">3357</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">9</subfield>
+            <subfield code="y">1974</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Dolan and R. Jackiw</subfield>
+            <subfield code="p">3320</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">9</subfield>
+            <subfield code="y">1974</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Arkani-Hamed, L. J. Hall, C. Kolda and H. Murayama</subfield>
+            <subfield code="p">4434</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">85</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/0005111</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dine, W. Fischler and M. Srednicki</subfield>
+            <subfield code="p">575</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">189</subfield>
+            <subfield code="y">1981</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Dimopou-los and S. Raby</subfield>
+            <subfield code="p">353</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">192</subfield>
+            <subfield code="y">1981</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Alvarez-Gaum´e, M. Claudson and M. B. Wise</subfield>
+            <subfield code="p">96</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">207</subfield>
+            <subfield code="y">1982</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dine and A. E. Nelson</subfield>
+            <subfield code="p">1277</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">48</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9303230</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dine, A. E. Nelson and Y. Shirman</subfield>
+            <subfield code="p">1362</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">51</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9408384</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dine, A. E. Nelson, Y. Nir and Y. Shirman</subfield>
+            <subfield code="p">2658</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">53</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9507378</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Arkani-Hamed, S. Dimopoulos, N. Kaloper and R. Sundrum</subfield>
+            <subfield code="p">193</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">480</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/0001197</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Kachru, M. Schulz and E. Silverstein</subfield>
+            <subfield code="p">045021</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/0001206</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Cs´aki, J. Erlich and C. Grojean</subfield>
+            <subfield code="p">312</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">604</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/0012143</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">X. Calmet and H. Fritzsch</subfield>
+            <subfield code="r">hep-ph/0112110</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Fritzsch</subfield>
+            <subfield code="r">hep-ph/0201198</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. R. Dvali and S. Pokorski</subfield>
+            <subfield code="p">126</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">379</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9601358</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Z. Chacko and R. N. Mohapatra</subfield>
+            <subfield code="p">2836</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9810315</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. P. Turneaure, C. M. Will, B. F. Farrell, E. M. Mattison and R. F. C. Vessot</subfield>
+            <subfield code="p">1705</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">27</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. D. Prestage, R. L. Tjoelker and L. Maleki</subfield>
+            <subfield code="p">3511</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">74</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. I. Shlyakhter</subfield>
+            <subfield code="p">340</subfield>
+            <subfield code="t">Nature</subfield>
+            <subfield code="v">264</subfield>
+            <subfield code="y">1976</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T. Damour and F. Dyson</subfield>
+            <subfield code="p">37</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">480</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9606486</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Fujii, A. Iwamoto, T. Fukahori, T. Ohnuki, M. Nakagawa, H. Hidaka, Y. Oura, P. Möller</subfield>
+            <subfield code="p">377</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">573</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9809549</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. W. Kolb, M. J. Perry and T. P. Walker</subfield>
+            <subfield code="p">869</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">33</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. A. Camp-bell and K. A. Olive</subfield>
+            <subfield code="p">429</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">345</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/9411272</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Bergström, S. Iguri and H. Rubinstein</subfield>
+            <subfield code="p">045005</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/9902157</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. P. Avelino et al</subfield>
+            <subfield code="p">103505</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">64</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/0102144</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Hannestad</subfield>
+            <subfield code="p">023515</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/9810102</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Kaplinghat, R. J. Scherrer and M. S. Turner</subfield>
+            <subfield code="p">023516</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/9810133</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. P. Avelino, C. J. Martins, G. Rocha and P. Viana</subfield>
+            <subfield code="p">123508</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">astro-ph/0008446</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. D. Hoyle, U. Schmidt, B. R. Heckel, E. G. Adelberger, J. H. Gundlach, D. J. Kap-ner and H. E. Swanson</subfield>
+            <subfield code="p">1418</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-ph/0011014</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. G. Adelberger [EOT-WASH Group Collaboration]</subfield>
+            <subfield code="r">hep-ex/0202008</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Coleman, Aspects of symmetry. (Cambridge Univ. Press, 1985.)</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-ph/0204143</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Domin, P</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Phenomenological Study of Solar-Neutrino Induced Double Beta Decay of Mo100</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">8 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">The detection of solar-neutrinos of different origin via induced beta beta process of Mo100 is investigated. The particular counting rates and energy distributions of emitted electrons are presented. A discussion in respect tosolar-neutrino detector consisting of 10 tones of Mo100 is included. Both the cases of the standard solar model and neutrino oscillation scenarios are analyzed. Moreover, new beta^- beta^+ and beta^-/EC channels of the double-betaprocess are introduced and possibilities of their experimental observation are addressed.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Simkovic, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Semenov, S V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Gaponov, Y V</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Pavol Domin &lt;domin@chavena.dnp.fmph.uniba.sk></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-ph&amp;id=0204143</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Gaponov, Yu. V.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">8 PAGES LATEX 2 POSTSCRIPT FIGURES TALK PRESENTED BY P DOMIN ON THE WORKSHOP MEDEX'01 (PRAGUE JUNE 2001) TO APPEAR IN CZECH J PHYS 52 (2002)</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. M. Bilenky, C. Giunti and W. Grimus</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Prog. Part. Nucl. Phys.</subfield>
+            <subfield code="v">45</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. N. Bahcall, S. Basu and M. H. Pinsonneault</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">433</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Davis Jr</subfield>
+            <subfield code="p">13</subfield>
+            <subfield code="t">Prog. Part. Nucl. Phys.</subfield>
+            <subfield code="v">32</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Kamiokande Collaboration, Y Fukuda et al</subfield>
+            <subfield code="p">1683</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">77</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">SAGE collaboration, A. I. Abazov et al</subfield>
+            <subfield code="p">3332</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">67</subfield>
+            <subfield code="y">1991</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. N. Abdurashitov et al</subfield>
+            <subfield code="p">4708</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">77</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">GALLEX collaboration, P. Anselmann et al</subfield>
+            <subfield code="p">376</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">285</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Hampel et al</subfield>
+            <subfield code="p">384</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">388</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Super-Kamiokande Coll., S. Fukuda et al</subfield>
+            <subfield code="p">5651</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">SNO Collaboration, Q.R. Ahmad et. al</subfield>
+            <subfield code="p">071301</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">87</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Ejiri et al., Phys. Rev. Lett.85 2917 (2000); H. Ejiri</subfield>
+            <subfield code="p">265</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">338</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. V. Semenov, Yu. V. Gaponov and R. U. Khafizov</subfield>
+            <subfield code="p">1379</subfield>
+            <subfield code="t">Yad. Fiz.</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. V. Inzhechik, Yu. V. Gaponov and S. V. Semenov</subfield>
+            <subfield code="p">1384</subfield>
+            <subfield code="t">Yad. Fiz.</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="u">http://www.sns.ias.edu/~jnb.</subfield>
+            <subfield code="z">http://www.sns.ias.edu/~jnb</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Singh et al</subfield>
+            <subfield code="p">478</subfield>
+            <subfield code="t">Nucl. Data Sheets</subfield>
+            <subfield code="v">84</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Akimune et al</subfield>
+            <subfield code="p">23</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">394</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. N. Bahcall, P. I. Krastev, and A. Yu. Smirnov</subfield>
+            <subfield code="p">096016</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0204101</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">CSULB-PA-02-2</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Nishino, H</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Axisymmetric Gravitational Solutions as Possible Classical Backgrounds around Closed String Mass Distributions</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">15 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">By studying singularities in stationary axisymmetric Kerr and Tomimatsu-Sato solutions with distortion parameter \d = 2, 3, ... in general relativity, we conclude that these singularities can be regarded as nothing other than closedstring-like circular mass distributions. We use two different regularizations to identify \d-function type singularities in the energy-momentum tensor for these solutions, realizing a regulator independent result. This result givessupporting evidence that these axisymmetric exact solutions may well be the classical solutions around closed string-like mass distributions, just like Schwarzschild solution corresponding to a point mass distribution. In otherwords, these axisymmetric exact solutions may well provide the classical backgrounds around closed strings.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Rajpoot, S</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Hitoshi Nishino &lt;hnishino@csulb.edu></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0204101</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Nishino, Hitoshi</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Rajpoot, Subhash</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Schwarzschild, Sitzungsberichte Preuss. Akad. Wiss., 424 (1916)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Green, J.H. Schwarz and E. Witten, `Superstring Theory', Vols. I and II, Cambridge University Press (1987)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Chazy, Bull. Soc. Math. France: 52 (1924) 17H.E.J. Curzon, Proc. London Math. Soc. : 23 (1924) 477</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Ho rava and E. Witten</subfield>
+            <subfield code="p">506</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">460</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">94</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">475</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N. Arkani-Hamed, S. Dimopoulos and G. Dvali</subfield>
+            <subfield code="p">263</subfield>
+            <subfield code="t">Phys. Lett.</subfield>
+            <subfield code="v">429</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. Anto-niadis, N. Arkani-Hamed, S. Dimopoulos and G. Dvali</subfield>
+            <subfield code="p">257</subfield>
+            <subfield code="t">Phys. Lett.</subfield>
+            <subfield code="v">436</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Randall and R. Sundrum</subfield>
+            <subfield code="p">3370</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">83</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">4690</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">83</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.P. Kerr</subfield>
+            <subfield code="p">237</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">11</subfield>
+            <subfield code="y">1963</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Ya Burinskii</subfield>
+            <subfield code="p">441</subfield>
+            <subfield code="t">Phys. Lett., A</subfield>
+            <subfield code="v">185</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">`Complex String as Source of Kerr Ge-ometry'</subfield>
+            <subfield code="r">hep-th/9503094</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">2392</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">`Structure of Spinning Parti-cle Suggested by Gravity, Supergravity &amp; Low-Energy String Theory'</subfield>
+            <subfield code="r">hep-th/9910045</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Czech. J. Phys.50S : 1 (2000) 201</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">See, e.g., A. Sen</subfield>
+            <subfield code="p">2081</subfield>
+            <subfield code="t">Mod. Phys. Lett., A</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.H. Frampton and T.W. Kephart</subfield>
+            <subfield code="p">2571</subfield>
+            <subfield code="t">Mod. Phys. Lett., A</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Strominger and C. Vafa</subfield>
+            <subfield code="p">99</subfield>
+            <subfield code="t">Phys. Lett.</subfield>
+            <subfield code="v">379</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Behrndt</subfield>
+            <subfield code="p">188</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">455</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.C. Breckenridge, D.A. Lowe, R.C. Myers, A.W. Peet, A. Strominger and C. Vafa</subfield>
+            <subfield code="p">423</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">381</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Callan and J. Maldacena</subfield>
+            <subfield code="p">591</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">472</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Horowitz and A. Stro-minger</subfield>
+            <subfield code="p">2368</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">77</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.M. Maldacena, `Black Holes in String Theory', Ph.D. Thesis</subfield>
+            <subfield code="r">hep-th/9607235</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Dabholkar and J.A. Harvey</subfield>
+            <subfield code="p">478</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">63</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Dabholkar, G.W. Gibbons, J.A. Harvey and F. Ruiz Ruiz</subfield>
+            <subfield code="p">33</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">340</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C.G. Callan, Jr., J.M. Maldacena, A.W. Peet</subfield>
+            <subfield code="p">645</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">475</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Tomimatu and H. Sato</subfield>
+            <subfield code="p">95</subfield>
+            <subfield code="t">Prog. Theor. Phys.</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1973</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Yamazaki and S. Hori</subfield>
+            <subfield code="p">696</subfield>
+            <subfield code="t">Prog. Theor. Phys.</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1977</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">erratum</subfield>
+            <subfield code="p">1248</subfield>
+            <subfield code="t">Prog. Theor. Phys.</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Hori</subfield>
+            <subfield code="p">1870</subfield>
+            <subfield code="t">Prog. Theor. Phys.</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">erratum</subfield>
+            <subfield code="p">365</subfield>
+            <subfield code="t">Prog. Theor. Phys.</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Nishino</subfield>
+            <subfield code="p">77</subfield>
+            <subfield code="t">Phys. Lett.</subfield>
+            <subfield code="v">359</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Weyl, Ann. de Phys. : 54 (1917) 117</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.M. Bardeen, Astrophys. Jour. : 162 (1970) 71</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. Kramer, H. Stephani, E. Herlt and M. MacCallum, `Exact Solutions of Einstein's Field Equations', Cambridge University Press (1980)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Arnowitt, S. Deser and C. Misner, in `Gravitation': `An Introduction to Current Re-search', ed. L. Witten (New York, Wiley, 1962)</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0204102</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Bo-Yu, H</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Soliton on Noncommutative Orbifold $ T^2/Z_k $</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">13 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Following the construction of the projection operators on $ T^2 $ presented by Gopakumar, Headrick and Spradin, we construct the projection operators on the integral noncommutative orbifold $ T^2/G (G=Z_k,k=2, 3, 4, 6)$. Suchoperators are expressed by a function on this orbifold. So it provides a complete set of projection operators upon the moduli space $T^2 \times K/Z_k$. All these operators has the same trace 1/A ($A$ is an integer). Since theprojection operators correspond to solitons in noncommutative string field theory, we obtained the explicit expression of all the soliton solutions on $ T^2/Z_k $.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kangjie, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Zhan-ying, Y</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Zhanying Yang &lt;yzy@phy.nwu.edu.cn></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0204102</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Bo-yu, Hou</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Kangjie, Shi</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Zhan-ying, Yang</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Connes, Non-commutative Geometry, Academic Press, 1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Landi," An introduction to non-commutative space and their geometry"</subfield>
+            <subfield code="r">hep-th/9701078</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Varilly, "An introduction to non-commutative Geometry"</subfield>
+            <subfield code="r">physics/9709045</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Madore, "An introduction to non-commutative Differential Geometry and its physical Applications", Cambridge University press 2nd edition, 1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Connes, M. Douglas, A. Schwartz, Matrix theory compactification on Tori</subfield>
+            <subfield code="p">003</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">9802</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9711162</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. dougals, C. Hull</subfield>
+            <subfield code="p">008</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">9802</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9711165</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Nathan. Seiberg and Edward. Witten," String theory and non-commutative geometry"</subfield>
+            <subfield code="p">032</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">9909</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9908142</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V. Schomerus," D-branes and Deformation Quan-tization"</subfield>
+            <subfield code="p">030</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">9906</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Witten, "Noncommutative Geometry and String Field Theory"</subfield>
+            <subfield code="p">253</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">268</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. B. Laughlin, "The quantum Hall Effect", edited by R. Prange and S. Girvin, p233</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Susskind</subfield>
+            <subfield code="r">hep-th/0101029</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. P. Hu and S. C. Zhang</subfield>
+            <subfield code="r">cond-mat/0112432</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Gopakumar, M. Headrick, M. Spradin, "on Noncommutative Multi-solitons"</subfield>
+            <subfield code="r">hep-th/0103256</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. J. Martinec and G. Moore, "Noncommutative Solitons on Orbifolds"</subfield>
+            <subfield code="r">hep-th/0101199</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D. J. Gross and N. A. Nekrasov, " Solitons in noncommutative Gauge Theory"</subfield>
+            <subfield code="r">hep-th/0010090</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. R. Douglas and N. A. Nekrasov, "Noncommutative Field Theory"</subfield>
+            <subfield code="r">hep-th/0106048</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Gopakumar, S. Minwalla and A. Strominger, " Noncommutative Soliton"</subfield>
+            <subfield code="p">048</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">005</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/0003160</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Harvey, " Komaba Lectures on Noncommutative Solitons and D-branes</subfield>
+            <subfield code="r">hep-th/0102076</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. A. Harvey, P. Kraus and F.Larsen, J. High Energy Phys.0012 (200) 024</subfield>
+            <subfield code="r">hep-th/0010060</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Konechny and A. Schwarz, "Compactification of M(atrix) theory on noncommutative toroidal orbifolds"</subfield>
+            <subfield code="p">667</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">591</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9912185</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">" Moduli spaces of max-imally supersymmetric solutions on noncommutative tori and noncommutative orbifolds", J. High Energy Phys.0009, (2000) 005</subfield>
+            <subfield code="r">hep-th/0005167</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Walters, "Projective modules over noncommutative sphere", J. London Math. Soc. : 51 (1995) 589"Chern characters of Fourier modules", Can. J. Math. : 52 (2000) 633</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Rieffel, Pacific J. Math. : 93 (1981) 415</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. P. Boca</subfield>
+            <subfield code="p">325</subfield>
+            <subfield code="t">Commun. Math. Phys.</subfield>
+            <subfield code="v">202</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Bacry, A. Grossman and J. Zak</subfield>
+            <subfield code="p">1118</subfield>
+            <subfield code="t">Phys. Rev., B</subfield>
+            <subfield code="v">12</subfield>
+            <subfield code="y">1975</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Zak, In Solid State Phys.edited by H. Ehrenreich, F. Seitz and D. Turnbull (Aca-demic,new York,1972), Vol. 27</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">nucl-th/0204031</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">LA-UR-02-2040</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Page, P R</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Hybrid Baryons</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Los Alamos, NM</subfield>
+            <subfield code="b">Los Alamos Sci. Lab.</subfield>
+            <subfield code="c">11 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">12 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We review the status of hybrid baryons. The only known way to study hybrids rigorously is via excited adiabatic potentials. Hybrids can be modelled by both the bag and flux-tube models. The low-lying hybrid baryon is N 1/2^+ with amass of 1.5-1.8 GeV. Hybrid baryons can be produced in the glue-rich processes of diffractive gamma N and pi N production, Psi decays and p pbar annihilation.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Nuclear Physics</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">"Philip R. page" &lt;prp@t16prp.lanl.gov></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=nucl-th&amp;id=0204031</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Page, Philip R.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="K">
+            <subfield code="b">INVITED PLENARY TALK PRESENTED AT THE ``9TH INTERNATIONAL CONFERENCE ON THE STRUCTURE OF BARYONS'' (BARYONS 2002) 3-8 MARCH NEWPORT NEWS VA USA 12 PAGES 7 ENCAPSULATED POSTSCRIPT FIGURES LATEX</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200216</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">nucl-th/0204032</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Amos, K</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">A simple functional form for proton-nucleus total reaction cross sections</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">13 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">A simple functional form has been found that gives a good representation of the total reaction cross sections for the scattering of protons from (15) nuclei spanning the mass range ${}^{9}$Be to ${}^{238}$U and for proton energiesranging from 20 to 300 MeV.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Nuclear Physics</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Deb, P K</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Ken Amos &lt;amos@physics.unimelb.edu.au></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=nucl-th&amp;id=0204032</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200216</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">nucl-th/0204033</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Oyamatsu, K</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Saturation of nuclear matter and radii of unstable nuclei</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">26 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We examine relations among the parameters characterizing the phenomenological equation of state (EOS) of nearly symmetric, uniform nuclear matter near the saturation density by comparing macroscopic calculations of radii and massesof stable nuclei with the experimental data. The EOS parameters of interest here are the symmetry energy S_0, the symmetry energy density-derivative coefficient L and the incompressibility K_0 at the normal nuclear density. We find aconstraint on the relation between K_0 and L from the empirically allowed values of the slope of the saturation line (the line joining the saturation points of nuclear matter at finite neutron excess), together with a strongcorrelation between S_0 and L. In the light of the uncertainties in the values of K_0 and L, we macroscopically calculate radii of unstable nuclei as expected to be produced in future facilities. We find that the matter radii dependstrongly on L while being almost independent of K_0, a feature that will help to determine the L value via systematic measurements of nuclear size.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Nuclear Physics</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Iida, K</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Kei Iida &lt;keiiida@postman.riken.go.jp></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=nucl-th&amp;id=0204033</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Oyamatsu, Kazuhiro</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Iida, Kei</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.M. Blatt and V.F. Weisskopf, Theoretical Nuclear Physics, Wiley, New York, 1952</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. Heiselberg, V.R. Pandharipande</subfield>
+            <subfield code="p">481</subfield>
+            <subfield code="t">Annu. Rev. Nucl. Part. Sci.</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Oyamatsu, I. Tanihata, Y. Sugahara, K. Sumiyoshi, H. Toki</subfield>
+            <subfield code="p">3</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">634</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B.A. Brown</subfield>
+            <subfield code="p">5296</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">85</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K.C. Chung, C.S. Wang, A.J. Santiago</subfield>
+            <subfield code="r">nucl-th/0102017</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B.A. Li</subfield>
+            <subfield code="p">4221</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">85</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Sturm et al</subfield>
+            <subfield code="p">39</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. Fuchs, A. Faessler, E. Zabrodin, Y.M. Zheng</subfield>
+            <subfield code="p">1974</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">86</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Danielewicz, in: Proc. Int. Symp. on Non-Equilibrium and Nonlinear Dynamics in Nuclear and Other Finite Systems, Beijing, 2001</subfield>
+            <subfield code="r">nucl-th/0112006</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.H. Youngblood, H.L. Clark, Y.-W. Lui</subfield>
+            <subfield code="p">691</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">82</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.A. Pons, F.M. Walter, J.M. Lattimer, M. Prakash, R. Neuhaeuser, P. An</subfield>
+            <subfield code="p">981</subfield>
+            <subfield code="t">Astrophys. J.</subfield>
+            <subfield code="v">564</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.M. Lattimer</subfield>
+            <subfield code="p">337</subfield>
+            <subfield code="t">Annu. Rev. Nucl. Part. Sci.</subfield>
+            <subfield code="v">31</subfield>
+            <subfield code="y">1981</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Oyamatsu</subfield>
+            <subfield code="p">431</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">561</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L.R.B. Elton, A. Swift</subfield>
+            <subfield code="p">52</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">94</subfield>
+            <subfield code="y">1967</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Yamada</subfield>
+            <subfield code="p">512</subfield>
+            <subfield code="t">Prog. Theor. Phys.</subfield>
+            <subfield code="v">32</subfield>
+            <subfield code="y">1964</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">H. de Vries, C.W. de Jager, C. de Vries</subfield>
+            <subfield code="p">495</subfield>
+            <subfield code="t">At. Data Nucl. Data Tables</subfield>
+            <subfield code="v">36</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Audi, A.H. Wapstra</subfield>
+            <subfield code="p">409</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">595</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Goriely, F. Tondeur, J.M. Pearson</subfield>
+            <subfield code="p">311</subfield>
+            <subfield code="t">At. Data Nucl. Data Tables</subfield>
+            <subfield code="v">77</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Samyn, S. Goriely, P.-H. Heenen, J.M. Pearson, F. Tondeur</subfield>
+            <subfield code="p">142</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">700</subfield>
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Chabanat, P. Bonche, P. Haensel, J. Meyer, R. Schaeffer</subfield>
+            <subfield code="p">231</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">635</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Sugahara, H. Toki</subfield>
+            <subfield code="p">557</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">579</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Ozawa, T. Suzuki, I. Tanihata</subfield>
+            <subfield code="p">32</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">693</subfield>
+            <subfield code="y">2001</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C.J. Batty, E. Friedman, H.J. Gils, H. Rebel</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Adv. Nucl. Phys.</subfield>
+            <subfield code="v">19</subfield>
+            <subfield code="y">1989</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Fricke, C. Bernhardt, K. Heilig, L.A. Schaller, L. Schellenberg, E.B. Shera, C.W. de Jager</subfield>
+            <subfield code="p">177</subfield>
+            <subfield code="t">At. Data Nucl. Data Tables</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Huber et al</subfield>
+            <subfield code="p">2342</subfield>
+            <subfield code="t">Phys. Rev., C</subfield>
+            <subfield code="v">18</subfield>
+            <subfield code="y">1978</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Ray, G.W. Hoffmann, W.R. Coker</subfield>
+            <subfield code="p">223</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">212</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Yoshida, H. Sagawa, N. Takigawa</subfield>
+            <subfield code="p">2796</subfield>
+            <subfield code="t">Phys. Rev., C</subfield>
+            <subfield code="v">58</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C.J. Pethick, D.G. Ravenhall</subfield>
+            <subfield code="p">173</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">606</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Iida, K. Oyamatsu, unpublished</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.P. Blaizot, J.F. Berger, J. Decharg´e, M. Girod</subfield>
+            <subfield code="p">435</subfield>
+            <subfield code="t">Nucl. Phys., A</subfield>
+            <subfield code="v">591</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">nucl-th/0204034</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Bozek, P</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Nuclear matter with off-shell propagation</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="c">12 Apr 2002</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Symmetric nuclear matter is studied within the conserving, self-consistent T-matrix approximation. This approach involves off-shell propagation of nucleons in the ladder diagrams. The binding energy receives contributions from thebackground part of the spectral function, away form the quasiparticle peak. The Fermi energy at the saturation point fulfills the Hugenholz-Van Hove relation. In comparison to the Brueckner-Hartree-Fock approach, the binding energyis reduced and the equation of state is harder</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Nuclear Physics</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Bozek &lt;bozek@sothis.ifj.edu.pl></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=nucl-th&amp;id=0204034</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2002</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">11</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2002-04-15</subfield>
+            <subfield code="l">00</subfield>
+            <subfield code="m">2002-04-15</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200216</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">PREPRINT</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">SCAN-9605068</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">McGILL-96-15</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Contogouris, A P</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">One loop corrections for certain reactions initiated by 5-parton subprocesses via helicity amplitudes</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Montreal</subfield>
+            <subfield code="b">McGill Univ. Phys. Dept.</subfield>
+            <subfield code="c">Apr 1996?</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">28 p</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">UNC9808</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Phenomenology</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Merebashvili, Z V</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lebessis, F</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Veropoulos, G</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://preprints.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=.&amp;id=SCAN-9605068</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1996-05-08</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-12-14</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">4234-4243</subfield>
+            <subfield code="n">7</subfield>
+            <subfield code="p">Phys. Rev., D</subfield>
+            <subfield code="v">54</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">199620</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">TRI-PP-86-73</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Bryman, D A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Exotic muon decay mu --> e + x</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Burnaby, BC</subfield>
+            <subfield code="b">TRIUMF</subfield>
+            <subfield code="c">Aug 1986</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">8 p</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">jv200203</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Experimental Results</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Clifford, E T H</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1990-01-29</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2002-03-26</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">2787-88</subfield>
+            <subfield code="n">22</subfield>
+            <subfield code="p">Phys. Rev. Lett.</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">1594699</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">198648n</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0003289</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">PUPT-1926</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Costa, M S</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">A Test of the AdS/CFT Duality on the Coulomb Branch</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Princeton, NJ</subfield>
+            <subfield code="b">Princeton Univ. Joseph-Henry Lab. Phys.</subfield>
+            <subfield code="c">31 Mar 2000</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">11 p</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We consider the N=4 SU(N) Super Yang Mills theory on the Coulomb branch with gauge symmetry broken to S(U(N_1)*U(N_2)). By integrating the W particles, the effective action near the IR SU(N_i) conformal fixed points is seen to be adeformation of the Super Yang Mills theory by a non-renormalized, irrelevant, dimension 8 operator. The correction to the two-point function of the dilaton field dual operator near the IR is related to a three-point function ofchiral primary operators at the conformal fixed points and agrees with the classical gravity prediction, including the numerical factor.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANLPUBL200104</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Miguel S Costa &lt;miguel@feynman.princeton.edu></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0003289</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="u">Princeton University</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-04-03</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-11-09</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Costa, Miguel S.</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">287-292</subfield>
+            <subfield code="p">Phys. Lett., B</subfield>
+            <subfield code="v">482</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4356110</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200014</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.M. Maldacena, The Large N Limit of Superconformal Field Theories and Supergrav-ity</subfield>
+            <subfield code="p">231</subfield>
+            <subfield code="t">Adv. Theor. Math. Phys.</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9711200</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.S. Gubser, I.R. Klebanov and A.M. Polyakov, Gauge Theory Correlators from Non-Critical String Theory</subfield>
+            <subfield code="p">105</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">428</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9802109</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Witten, Anti De Sitter Space And Holography</subfield>
+            <subfield code="p">253</subfield>
+            <subfield code="t">Adv. Theor. Math. Phys.</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9802150</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">O. Aharony, S.S. Gubser, J. Maldacena, H. Ooguri and Y. Oz, Large N Field Theories, String Theory and Gravity</subfield>
+            <subfield code="p">183</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">323</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9905111</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.A. Minahan and N.P. Warner, Quark Potentials in the Higgs Phase of Large N Supersymmetric Yang-Mills Theories</subfield>
+            <subfield code="p">005</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">06</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9805104</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.R. Douglas and W. Taylor, Branes in the bulk of Anti-de Sitter space</subfield>
+            <subfield code="r">hep-th/9807225</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.A. Tseytlin and S. Yankielowicz, Free energy of N=4 super Yang-Mills in Higgs phase and non-extremal D3-brane interactions</subfield>
+            <subfield code="p">145</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">541</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9809032</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y. Wu, A Note on AdS/SYM Correspondence on the Coulomb Branch</subfield>
+            <subfield code="r">hep-th/9809055</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. Kraus, F. Larsen, S. Trivedi, The Coulomb Branch of Gauge Theory from Rotating Branes</subfield>
+            <subfield code="p">003</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">03</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9811120</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I.R. Klebanov and E. Witten, AdS/CFT Correspondence and Symmetry Breaking</subfield>
+            <subfield code="p">89</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">556</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9905104</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">D.Z. Freedman, S.S. Gubser, K. Pilch and N.P. Warner, Continuous distributions of D3-branes and gauged supergravity</subfield>
+            <subfield code="r">hep-th/9906194</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Brandhuber and K. Sfetsos, Wilson loops from multicentre and rotating branes, mass gaps and phase structure in gauge theories</subfield>
+            <subfield code="r">hep-th/9906201</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. Chepelev and R. Roiban, A note on correlation functions in AdS5/SY M4 corre-spondence on the Coulomb branch</subfield>
+            <subfield code="p">74</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">462</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9906224</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.B. Giddings and S.F. Ross, D3-brane shells to black branes on the Coulomb branch</subfield>
+            <subfield code="p">024036</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">61</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9907204</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Cvetic, S.S. Gubser, H. Lu and C.N. Pope, Symmetric Potentials of Gauged Su-pergravities in Diverse Dimensions and Coulomb Branch of Gauge Theories</subfield>
+            <subfield code="r">hep-th/9909121</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.C.Rashkov and K.S.Viswanathan, Correlation functions in the Coulomb branch of N=4 SYM from AdS/CFT correspondence</subfield>
+            <subfield code="r">hep-th/9911160</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.S. Costa, Absorption by Double-Centered D3-Branes and the Coulomb Branch of N = 4 SYM Theory</subfield>
+            <subfield code="r">hep-th/9912073</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[18]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Y.S. Myung, G. Kang and H.W. Lee, Greybody factor for D3-branes in B field</subfield>
+            <subfield code="r">hep-th/9911193</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S-wave absorption of scalars by noncommutative D3-branes</subfield>
+            <subfield code="r">hep-th/9912288</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[19]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. Manvelyan, H.J.W. Mueller-Kirsten, J.-Q. Liang, Y. Zhang, Absorption Cross Sec-tion of Scalar Field in Supergravity Background</subfield>
+            <subfield code="r">hep-th/0001179</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[20]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.S. Gubser and I.R. Klebanov, Absorption by Branes and Schwinger Terms in the World Volume Theory</subfield>
+            <subfield code="p">41</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">413</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9708005</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[21]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Intriligator, Maximally Supersymmetric RG Flows and AdS Duality</subfield>
+            <subfield code="r">hep-th/9909082</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[22]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.S. Gubser, A. Hashimoto, I.R. Klebanov and M. Krasnitz, Scalar Absorption and the Breaking of the World Volume Conformal Invariance</subfield>
+            <subfield code="p">393</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">526</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9803023</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[23]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Lee, S. Minwalla, M. Rangamani and N. Seiberg, Three-Point Functions of Chiral Operators in D=4, N = 4 SYM at Large N</subfield>
+            <subfield code="p">697</subfield>
+            <subfield code="t">Adv. Theor. Math. Phys.</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9806074</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[24]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. D'Hoker, D.Z. Freedman and W. Skiba, Field Theory Tests for Correlators in the AdS/CFT Correspondence</subfield>
+            <subfield code="p">045008</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">59</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9807098</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[25]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">F. Gonzalez-Rey, B. Kulik and I.Y. Park, Non-renormalization of two and three Point Correlators of N=4 SYM in N=1 Superspace</subfield>
+            <subfield code="p">164</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">455</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9903094</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[26]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Intriligator, Bonus Symmetries of N=4 Super-Yang-Mills Correlation Functions via AdS Duality</subfield>
+            <subfield code="p">575</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">551</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9811047</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. Intriligator and W. Skiba, Bonus Symmetry and the Operator Product Expansion of N=4 Super-Yang-Mills</subfield>
+            <subfield code="p">165</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">559</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9905020</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[27]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Eden, P.S. Howe and P.C. West, Nilpotent invariants in N=4 SYM</subfield>
+            <subfield code="p">19</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">463</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9905085</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.S. Howe, C. Schubert, E. Sokatchev and P.C. West, Explicit construction of nilpotent covariants in N=4 SYM</subfield>
+            <subfield code="r">hep-th/9910011</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[28]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Petkou and K. Skenderis, A non-renormalization theorem for conformal anomalies</subfield>
+            <subfield code="p">100</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">561</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9906030</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[29]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.R. Douglas, D. Kabat, P. Pouliot and S.H. Shenker, D-branes and Short Distances in String Theory</subfield>
+            <subfield code="p">85</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">485</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9608024</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[30]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. Lifschytz and S.D. Mathur, Supersymmetry and Membrane Interactions in M(atrix) Theory</subfield>
+            <subfield code="p">621</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">507</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9612087</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[31]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. Maldacena, Probing Near Extremal Black Holes with D-branes</subfield>
+            <subfield code="p">3736</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">57</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9705053</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Branes probing black holes</subfield>
+            <subfield code="p">17</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">68</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9709099</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[32]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">I. Chepelev and A.A. Tseytlin, Interactions of type IIB D-branes from D-instanton ma-trix model</subfield>
+            <subfield code="p">629</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">511</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9705120</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">Long-distance interactions of branes: correspondence between supergravity and super Yang-Mills descriptions</subfield>
+            <subfield code="p">73</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">515</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9709087</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.A. Tseytlin, Interactions Between Branes and Matrix Theories</subfield>
+            <subfield code="p">99</subfield>
+            <subfield code="t">Nucl. Phys. B, Proc. Suppl.</subfield>
+            <subfield code="v">68</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9709123</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[33]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M. Dine and N. Seiberg, Comments on Higher Derivative Operators in Some SUSY Field Theories</subfield>
+            <subfield code="p">239</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">409</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9705057</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[34]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.A. Tseytlin, On non-abelian generalisation of Born-Infeld action in string theory</subfield>
+            <subfield code="p">41</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">501</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9701125</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[35]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.S. Gubser and A. Hashimoto, Exact absorption probabilities for the D3-brane, Com-mun. Math. Phys. : 203 (1999) 325</subfield>
+            <subfield code="r">hep-th/9805140</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[36]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.S. Gubser, Non-conformal examples of AdS/CFT</subfield>
+            <subfield code="p">1081</subfield>
+            <subfield code="t">Class. Quantum Gravity</subfield>
+            <subfield code="v">17</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9910117</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Bollen, G</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">ISOLTRAP : a tandem penning trap system for accurate on-line mass determination of short-lived isotopes</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Detectors and Experimental Techniques</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Becker, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kluge, H J</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Konig, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Moore, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Otto, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Raimbault-Hartmann, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Savard, G</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Schweikhard, L</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Stolzenberg, H</subfield>
+        </datafield>
+        <datafield tag="710" ind1="" ind2="">
+            <subfield code="g">ISOLDE Collaboration</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="e">IS302</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="e">ISOLDE</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="p">PPE</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="a">CERN PS</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1996-05-08</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-12-14</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">675-697</subfield>
+            <subfield code="p">Nucl. Instrum. Methods Phys. Res., A</subfield>
+            <subfield code="v">368</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">199600</subfield>
+            <subfield code="y">a1996</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0003291</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">McInnes, B</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">AdS/CFT For Non-Boundary Manifolds</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">In its Euclidean formulation, the AdS/CFT correspondence begins as a study of Yang-Mills conformal field theories on the sphere, S^4. It has been successfully extended, however, to S^1 X S^3 and to the torus T^4. It is natural tohope that it can be made to work for any manifold on which it is possible to define a stable Yang-Mills conformal field theory. We consider a possible classification of such manifolds, and show how to deal with the most obviousobjection : the existence of manifolds which cannot be represented as boundaries. We confirm Witten's suggestion that this can be done with the help of a brane in the bulk.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Brett McInnes &lt;matmcinn@nus.edu.sg></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0003291</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Innes, Brett Mc</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-04-03</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-11-09</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">025</subfield>
+            <subfield code="p">J. High Energy Phys.</subfield>
+            <subfield code="v">05</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4356136</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200014</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">SCAN-9605071</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">KEK-Preprint-95-196</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">TUAT-HEP-96-1</subfield>
+        </datafield>
+        <datafield tag="088" ind1="" ind2="">
+            <subfield code="a">DPNU-96-04</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Emi, K</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Study of a dE/dx measurement and the gas-gain saturation by a prototype drift chamber for the BELLE-CDC</subfield>
+        </datafield>
+        <datafield tag="260" ind1="" ind2="">
+            <subfield code="a">Tsukuba</subfield>
+            <subfield code="b">KEK</subfield>
+            <subfield code="c">Jan 1996</subfield>
+        </datafield>
+        <datafield tag="300" ind1="" ind2="">
+            <subfield code="a">20 p</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">UNC9806</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Detectors and Experimental Techniques</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tsukamoto, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Hirano, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Mamada, H</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sakai, Y</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Uno, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Itami, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Kajikawa, R</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Nitoh, O</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Ohishi, N</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Sugiyama, A</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Suzuki, S</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Takahashi, T</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tamagawa, Y</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Tomoto, M</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Yamaki, T</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">library@kekvax.kek.jp</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://preprints.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=.&amp;id=SCAN-9605071</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">1996-05-08</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-12-14</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">225</subfield>
+            <subfield code="n">2</subfield>
+            <subfield code="p">Nucl. Instrum. Methods Phys. Res., A</subfield>
+            <subfield code="v">379</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">3328660</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">h</subfield>
+            <subfield code="w">199620</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0003293</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Smailagic, A</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Higher Dimensional Schwinger-like Anomalous Effective Action</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We construct explicit form of the anomalous effective action, in arbitrary even dimension, for Abelian vector and axial gauge fields coupled to Dirac fermions. It turns out to be a surprisingly simple extension of 2D Schwinger modeleffective action.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANLPUBL200104</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Spallucci, E</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">spallucci@ts.infn.it</subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0003293</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-04-03</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-11-09</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">045010</subfield>
+            <subfield code="p">Phys. Rev., D</subfield>
+            <subfield code="v">62</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4356152</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.L. Adler</subfield>
+            <subfield code="p">2426</subfield>
+            <subfield code="t">Phys. Rev.</subfield>
+            <subfield code="v">177</subfield>
+            <subfield code="y">1969</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S.E.Treiman, R. Jackiw, D.J.Gross " Lectures on Current Algebra and its Applications ", Princeton UP, Princeton NJ, (1972)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">T.Berger " Fermions in two (1+1)-dimensional anomalous gauge theories: the chiral Schwinger model and the chiral quantum gravity " Hamburg U</subfield>
+            <subfield code="r">DESY-90-084</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">July 1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L.Rosenberg, Phys. Rev.129, (1963) 2786</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.Jackiw " Topological Investigations of Quantized Gauge Theories " in Relativity, Groups and Topology eds. B.deWitt and R.Stora (Elsevier, Amsterdam 1984)</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.T.Grisaru, N.K.Nielsen, W.Siegel, D.Zanon</subfield>
+            <subfield code="p">157</subfield>
+            <subfield code="t">Nucl. Phys., B</subfield>
+            <subfield code="v">247</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.M. Polyakov</subfield>
+            <subfield code="p">207</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">103</subfield>
+            <subfield code="y">1981</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.M. Polyakov</subfield>
+            <subfield code="p">893</subfield>
+            <subfield code="t">Mod. Phys. Lett., A</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R.J. Riegert</subfield>
+            <subfield code="p">56</subfield>
+            <subfield code="t">Phys. Lett.</subfield>
+            <subfield code="v">134</subfield>
+            <subfield code="y">1984</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K.Fujikawa</subfield>
+            <subfield code="p">1195</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">42</subfield>
+            <subfield code="y">1979</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B.deWitt, Relativity, Groups and Topology, Paris (1963); A.O.Barvinsky, G.A.Vilkovisky</subfield>
+            <subfield code="p">1</subfield>
+            <subfield code="t">Phys. Rep.</subfield>
+            <subfield code="v">119</subfield>
+            <subfield code="y">1985</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P.H.Frampton, T.W.Kephart</subfield>
+            <subfield code="p">1343</subfield>
+            <subfield code="t">Phys. Rev. Lett.</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">L. Alvarez-Gaume, E.Witten</subfield>
+            <subfield code="p">269</subfield>
+            <subfield code="t">Nucl. Phys.</subfield>
+            <subfield code="v">234</subfield>
+            <subfield code="y">1983</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.Smailagic, R.E.Gamboa-Saravi</subfield>
+            <subfield code="p">145</subfield>
+            <subfield code="t">Phys. Lett.</subfield>
+            <subfield code="v">192</subfield>
+            <subfield code="y">1987</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A.Smailagic, E.Spallucci</subfield>
+            <subfield code="p">17</subfield>
+            <subfield code="t">Phys. Lett.</subfield>
+            <subfield code="v">284</subfield>
+            <subfield code="y">1992</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0003294</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Matsubara, K</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Restrictions on Gauge Groups in Noncommutative Gauge Theory</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">We show that the gauge groups SU(N), SO(N) and Sp(N) cannot be realized on a flat noncommutative manifold, while it is possible for U(N).</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANLPUBL200104</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Keizo Matsubara &lt;keizo.matsubara@teorfys.uu.se></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0003294</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Matsubara, Keizo</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-04-03</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-11-09</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">417-419</subfield>
+            <subfield code="p">Phys. Lett., B</subfield>
+            <subfield code="v">482</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4356160</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J.Polchinski, TASI Lectures on D-branes</subfield>
+            <subfield code="r">hep-th/9611050</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">M.R.Douglas and C.Hull, D-branes and the Noncommuta-tive torus</subfield>
+            <subfield code="p">8</subfield>
+            <subfield code="t">J. High Energy Phys.</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="r">hep-th/9711165</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">V.Schomerus, D-branes and Deformation Quantization</subfield>
+            <subfield code="r">hep-th/9903205</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">N.Seiberg and E.Witten, String Theory and Noncommu-tative Geometry</subfield>
+            <subfield code="r">hep-th/9908142</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">2</subfield>
+        </datafield>
+    </record>
+    <record>
+        <datafield tag="037" ind1="" ind2="">
+            <subfield code="a">hep-th/0003295</subfield>
+        </datafield>
+        <datafield tag="041" ind1="" ind2="">
+            <subfield code="a">eng</subfield>
+        </datafield>
+        <datafield tag="100" ind1="" ind2="">
+            <subfield code="a">Wang, B</subfield>
+        </datafield>
+        <datafield tag="245" ind1="" ind2="">
+            <subfield code="a">Quasinormal modes of Reissner-Nordstrom Anti-de Sitter Black Holes</subfield>
+        </datafield>
+        <datafield tag="520" ind1="" ind2="">
+            <subfield code="a">Complex frequencies associated with quasinormal modes for large Reissner-Nordstr$\ddot{o}$m Anti-de Sitter black holes have been computed. These frequencies have close relation to the black hole charge and do not linearly scale withthe black hole temperature as in Schwarzschild Anti-de Sitter case. In terms of AdS/CFT correspondence, we found that the bigger the black hole charge is, the quicker for the approach to thermal equilibrium in the CFT. The propertiesof quasinormal modes for $l>0$ have also been studied.</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANL EDS</subfield>
+        </datafield>
+        <datafield tag="595" ind1="" ind2="">
+            <subfield code="a">LANLPUBL200104</subfield>
+        </datafield>
+        <datafield tag="650" ind1="1" ind2="7">
+            <subfield code="2">SzGeCERN</subfield>
+            <subfield code="a">Particle Physics - Theory</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Lin, C Y</subfield>
+        </datafield>
+        <datafield tag="700" ind1="" ind2="">
+            <subfield code="a">Abdalla, E</subfield>
+        </datafield>
+        <datafield tag="856" ind1="0" ind2="">
+            <subfield code="f">Elcio Abdalla &lt;eabdalla@fma.if.usp.br></subfield>
+        </datafield>
+        <datafield tag="856" ind1="4" ind2="">
+            <subfield code="u">http://documents.cern.ch/cgi-bin/setlink?base=preprint&amp;categ=hep-th&amp;id=0003295</subfield>
+            <subfield code="z">Fulltext</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="5">
+            <subfield code="b">CER</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="S">
+            <subfield code="s">n</subfield>
+            <subfield code="w">200231</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="0">
+            <subfield code="b">13</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Wang, Bin</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Lin, Chi-Yong</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="y">Abdalla, Elcio</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="1">
+            <subfield code="c">2000-04-03</subfield>
+            <subfield code="l">50</subfield>
+            <subfield code="m">2001-11-09</subfield>
+            <subfield code="o">BATCH</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="4">
+            <subfield code="c">79-88</subfield>
+            <subfield code="p">Phys. Lett., B</subfield>
+            <subfield code="v">481</subfield>
+            <subfield code="y">2000</subfield>
+        </datafield>
+        <datafield tag="909" ind1="C" ind2="O">
+            <subfield code="i">SLAC</subfield>
+            <subfield code="s">4356179</subfield>
+        </datafield>
+        <datafield tag="980" ind1="" ind2="">
+            <subfield code="a">ARTICLE</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[1]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">K. D. Kokkotas, B. G. Schmidt</subfield>
+            <subfield code="r">gr-qc/9909058</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">and references therein</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[2]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">W. Krivan</subfield>
+            <subfield code="p">101501</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[3]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. Hod</subfield>
+            <subfield code="r">gr-qc/9902072</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[4]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. R. Brady, C. M. Chambers, W. G. Laarakkers and E. Poisson</subfield>
+            <subfield code="p">064003</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[5]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">P. R. Brady, C. M. Chambers, W. Krivan and P. Laguna</subfield>
+            <subfield code="p">7538</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">55</subfield>
+            <subfield code="y">1997</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[6]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. T. Horowitz and V. E. Hubeny</subfield>
+            <subfield code="r">hep-th/9909056</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">G. T. Horowitz</subfield>
+            <subfield code="r">hep-th/9910082</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[7]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. S. C. Ching, P. T. Leung, W. M. Suen and K. Young</subfield>
+            <subfield code="p">2118</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">52</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[8]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">J. M. Maldacena</subfield>
+            <subfield code="p">231</subfield>
+            <subfield code="t">Adv. Theor. Math. Phys.</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[9]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. Witten</subfield>
+            <subfield code="p">253</subfield>
+            <subfield code="t">Adv. Theor. Math. Phys.</subfield>
+            <subfield code="v">2</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[10]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">S. S. Gubser, I. R. Klebanov and A. M. Polyakov</subfield>
+            <subfield code="p">105</subfield>
+            <subfield code="t">Phys. Lett., B</subfield>
+            <subfield code="v">428</subfield>
+            <subfield code="y">1998</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[11]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Chamblin, R. Emparan, C. V. Johnson and R. C. Myers</subfield>
+            <subfield code="p">064018</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">60</subfield>
+            <subfield code="y">1999</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[12]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. W. Leaver</subfield>
+            <subfield code="p">1238</subfield>
+            <subfield code="t">J. Math. Phys.</subfield>
+            <subfield code="v">27</subfield>
+            <subfield code="y">1986</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[13]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">E. W. Leaver</subfield>
+            <subfield code="p">2986</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">41</subfield>
+            <subfield code="y">1990</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[14]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">C. O. Lousto</subfield>
+            <subfield code="p">1733</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">51</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[15]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">O. Kaburaki</subfield>
+            <subfield code="p">316</subfield>
+            <subfield code="t">Phys. Lett., A</subfield>
+            <subfield code="v">217</subfield>
+            <subfield code="y">1996</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[16]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">R. K. Su, R. G. Cai and P. K. N. Yu</subfield>
+            <subfield code="p">2932</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">50</subfield>
+            <subfield code="y">1994</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">3473</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">48</subfield>
+            <subfield code="y">1993</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="p">6186</subfield>
+            <subfield code="t">Phys. Rev., D</subfield>
+            <subfield code="v">52</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">B. Wang, J. M. Zhu</subfield>
+            <subfield code="p">1269</subfield>
+            <subfield code="t">Mod. Phys. Lett., A</subfield>
+            <subfield code="v">10</subfield>
+            <subfield code="y">1995</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="o">[17]</subfield>
+        </datafield>
+        <datafield tag="999" ind1="C" ind2="5">
+            <subfield code="m">A. Chamblin, R. Emparan, C. V. Johnson and R. C. Myers, Phys. Rev., D60: 104026 (1999) 5070 90 110 130 150 r+ 130 230 330 50 70 90 110 130 150 r+</subfield>
+        </datafield>
+    </record>
+</collection>
diff --git a/modules/miscutil/demo/democfgdata.sql.wml b/modules/miscutil/demo/democfgdata.sql.wml
new file mode 100644
index 000000000..d148bd210
--- /dev/null
+++ b/modules/miscutil/demo/democfgdata.sql.wml
@@ -0,0 +1,773 @@
+#include "config.wml"
+#include "configbis.wml"
+
+INSERT INTO collection VALUES (2,'Preprints','Preprints',NULL,'collection:PREPRINT',NULL,NULL);
+INSERT INTO collection VALUES (3,'Books','Books',NULL,'collection:BOOK',NULL,NULL);
+INSERT INTO collection VALUES (4,'Theses','Theses',NULL,'collection:THESIS',NULL,NULL);
+INSERT INTO collection VALUES (5,'Reports','Reports',NULL,'collection:REPORT',NULL,NULL);
+INSERT INTO collection VALUES (6,'Articles','Article',NULL,'collection:ARTICLE',NULL,NULL);
+INSERT INTO collection VALUES (8,'Pictures','Pictures',NULL,'collection:PICTURE',NULL,NULL);
+
+INSERT INTO collection_collection VALUES (1,6,60);
+INSERT INTO collection_collection VALUES (1,2,40);
+INSERT INTO collection_collection VALUES (1,3,30);
+INSERT INTO collection_collection VALUES (1,4,20);
+INSERT INTO collection_collection VALUES (1,5,10);
+INSERT INTO collection_collection VALUES (1,8,5);
+
+INSERT INTO collection_example VALUES (1,1,1);
+INSERT INTO collection_example VALUES (1,5,2);
+INSERT INTO collection_example VALUES (1,8,3);
+INSERT INTO collection_example VALUES (1,7,5);
+INSERT INTO collection_example VALUES (1,6,4);
+INSERT INTO collection_example VALUES (1,4,6);
+INSERT INTO collection_example VALUES (1,3,7);
+INSERT INTO collection_example VALUES (1,2,8);
+INSERT INTO collection_example VALUES (6,1,10);
+INSERT INTO collection_example VALUES (6,5,20);
+INSERT INTO collection_example VALUES (6,8,30);
+INSERT INTO collection_example VALUES (6,0,27);
+INSERT INTO collection_example VALUES (3,6,30);
+INSERT INTO collection_example VALUES (6,4,40);
+INSERT INTO collection_example VALUES (6,3,60);
+INSERT INTO collection_example VALUES (6,2,80);
+INSERT INTO collection_example VALUES (2,1,1);
+INSERT INTO collection_example VALUES (2,5,2);
+INSERT INTO collection_example VALUES (2,8,3);
+INSERT INTO collection_example VALUES (2,7,5);
+INSERT INTO collection_example VALUES (2,6,4);
+INSERT INTO collection_example VALUES (2,4,6);
+INSERT INTO collection_example VALUES (2,3,7);
+INSERT INTO collection_example VALUES (2,2,8);
+INSERT INTO collection_example VALUES (3,17,10);
+INSERT INTO collection_example VALUES (3,18,20);
+INSERT INTO collection_example VALUES (4,1,1);
+INSERT INTO collection_example VALUES (4,5,2);
+INSERT INTO collection_example VALUES (4,8,3);
+INSERT INTO collection_example VALUES (4,7,5);
+INSERT INTO collection_example VALUES (4,6,4);
+INSERT INTO collection_example VALUES (4,4,6);
+INSERT INTO collection_example VALUES (4,3,7);
+INSERT INTO collection_example VALUES (4,2,8);
+INSERT INTO collection_example VALUES (5,1,1);
+INSERT INTO collection_example VALUES (5,5,2);
+INSERT INTO collection_example VALUES (5,8,3);
+INSERT INTO collection_example VALUES (5,7,5);
+INSERT INTO collection_example VALUES (5,6,4);
+INSERT INTO collection_example VALUES (5,4,6);
+INSERT INTO collection_example VALUES (5,3,7);
+INSERT INTO collection_example VALUES (5,2,8);
+INSERT INTO collection_example VALUES (1,13,50);
+INSERT INTO collection_example VALUES (8,14,10);
+INSERT INTO collection_example VALUES (8,15,20);
+INSERT INTO collection_example VALUES (8,16,30);
+
+INSERT INTO collection_field_fieldvalue VALUES (2,7,7,'seo',10,18);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,6,'seo',10,19);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,5,'seo',10,20);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,4,'seo',10,21);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,1,'seo',2,24);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,2,'seo',2,23);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,3,'seo',2,22);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,4,'seo',2,21);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,5,'seo',2,20);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,6,'seo',2,19);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,7,'seo',2,18);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,8,'seo',2,17);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,9,'seo',2,16);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,10,'seo',2,15);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,11,'seo',2,14);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,12,'seo',2,13);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,13,'seo',2,12);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,14,'seo',2,11);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,15,'seo',2,10);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,16,'seo',2,9);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,17,'seo',2,8);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,18,'seo',2,7);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,19,'seo',2,6);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,20,'seo',2,5);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,21,'seo',2,4);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,22,'seo',2,3);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,23,'seo',2,2);
+INSERT INTO collection_field_fieldvalue VALUES (6,7,24,'seo',2,1);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,3,'seo',10,22);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,2,'seo',10,23);
+INSERT INTO collection_field_fieldvalue VALUES (6,8,NULL,'sew',2,0);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,1,'seo',10,24);
+INSERT INTO collection_field_fieldvalue VALUES (6,4,NULL,'sew',4,70);
+INSERT INTO collection_field_fieldvalue VALUES (6,2,NULL,'sew',3,70);
+INSERT INTO collection_field_fieldvalue VALUES (6,5,NULL,'sew',1,70);
+INSERT INTO collection_field_fieldvalue VALUES (6,11,25,'seo',1,1);
+INSERT INTO collection_field_fieldvalue VALUES (6,11,26,'seo',1,2);
+INSERT INTO collection_field_fieldvalue VALUES (8,7,27,'seo',10,3);
+INSERT INTO collection_field_fieldvalue VALUES (8,7,28,'seo',10,1);
+INSERT INTO collection_field_fieldvalue VALUES (8,7,29,'seo',10,4);
+INSERT INTO collection_field_fieldvalue VALUES (8,7,30,'seo',10,2);
+INSERT INTO collection_field_fieldvalue VALUES (6,3,NULL,'sew',5,70);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,8,'seo',10,17);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,9,'seo',10,16);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,10,'seo',10,15);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,11,'seo',10,14);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,12,'seo',10,13);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,13,'seo',10,12);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,14,'seo',10,11);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,15,'seo',10,10);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,16,'seo',10,9);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,17,'seo',10,8);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,18,'seo',10,7);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,19,'seo',10,6);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,20,'seo',10,5);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,21,'seo',10,4);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,22,'seo',10,3);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,23,'seo',10,2);
+INSERT INTO collection_field_fieldvalue VALUES (2,7,24,'seo',10,1);
+INSERT INTO collection_field_fieldvalue VALUES (2,8,NULL,'sew',20,0);
+INSERT INTO collection_field_fieldvalue VALUES (2,4,NULL,'sew',40,70);
+INSERT INTO collection_field_fieldvalue VALUES (2,2,NULL,'sew',60,70);
+INSERT INTO collection_field_fieldvalue VALUES (2,5,NULL,'sew',30,70);
+INSERT INTO collection_field_fieldvalue VALUES (2,11,26,'seo',5,1);
+INSERT INTO collection_field_fieldvalue VALUES (2,3,NULL,'sew',50,70);
+INSERT INTO collection_field_fieldvalue VALUES (2,11,25,'seo',5,2);
+INSERT INTO collection_field_fieldvalue VALUES (2,11,32,'seo',5,0);
+INSERT INTO collection_field_fieldvalue VALUES (3,2,NULL,'sew',10,0);
+INSERT INTO collection_field_fieldvalue VALUES (3,3,NULL,'sew',20,0);
+INSERT INTO collection_field_fieldvalue VALUES (3,12,NULL,'sew',30,0);
+INSERT INTO collection_field_fieldvalue VALUES (4,4,NULL,'sew',30,0);
+INSERT INTO collection_field_fieldvalue VALUES (4,3,NULL,'sew',40,0);
+INSERT INTO collection_field_fieldvalue VALUES (4,12,NULL,'sew',10,0);
+INSERT INTO collection_field_fieldvalue VALUES (4,2,NULL,'sew',50,0);
+INSERT INTO collection_field_fieldvalue VALUES (4,6,NULL,'sew',20,0);
+INSERT INTO collection_field_fieldvalue VALUES (4,7,NULL,'seo',10,0);
+INSERT INTO collection_field_fieldvalue VALUES (4,7,12,'seo',10,2);
+INSERT INTO collection_field_fieldvalue VALUES (4,7,8,'seo',10,3);
+INSERT INTO collection_field_fieldvalue VALUES (4,7,10,'seo',10,1);
+INSERT INTO collection_field_fieldvalue VALUES (5,6,NULL,'sew',20,0);
+INSERT INTO collection_field_fieldvalue VALUES (5,12,NULL,'sew',10,0);
+INSERT INTO collection_field_fieldvalue VALUES (5,4,NULL,'sew',30,0);
+INSERT INTO collection_field_fieldvalue VALUES (5,3,NULL,'sew',40,0);
+INSERT INTO collection_field_fieldvalue VALUES (5,2,NULL,'sew',50,0);
+INSERT INTO collection_field_fieldvalue VALUES (5,7,NULL,'seo',10,0);
+INSERT INTO collection_field_fieldvalue VALUES (5,7,9,'seo',10,3);
+INSERT INTO collection_field_fieldvalue VALUES (5,7,12,'seo',10,2);
+INSERT INTO collection_field_fieldvalue VALUES (8,6,NULL,'sew',10,0);
+INSERT INTO collection_field_fieldvalue VALUES (8,2,NULL,'sew',50,0);
+INSERT INTO collection_field_fieldvalue VALUES (8,3,NULL,'sew',40,0);
+INSERT INTO collection_field_fieldvalue VALUES (8,5,NULL,'sew',20,0);
+INSERT INTO collection_field_fieldvalue VALUES (8,4,NULL,'sew',30,0);
+INSERT INTO collection_field_fieldvalue VALUES (6,3,NULL,'soo',3,0);
+INSERT INTO collection_field_fieldvalue VALUES (6,10,NULL,'soo',4,0);
+INSERT INTO collection_field_fieldvalue VALUES (6,1,NULL,'soo',1,0);
+INSERT INTO collection_field_fieldvalue VALUES (6,4,NULL,'soo',2,0);
+
+INSERT INTO collection_format VALUES (6,1,100);
+INSERT INTO collection_format VALUES (6,2,90);
+INSERT INTO collection_format VALUES (6,3,80);
+INSERT INTO collection_format VALUES (6,4,70);
+INSERT INTO collection_format VALUES (6,5,60);
+INSERT INTO collection_format VALUES (2,1,100);
+INSERT INTO collection_format VALUES (2,2,90);
+INSERT INTO collection_format VALUES (2,3,80);
+INSERT INTO collection_format VALUES (2,4,70);
+INSERT INTO collection_format VALUES (2,5,60);
+INSERT INTO collection_format VALUES (3,1,100);
+INSERT INTO collection_format VALUES (3,2,90);
+INSERT INTO collection_format VALUES (3,3,80);
+INSERT INTO collection_format VALUES (3,4,70);
+INSERT INTO collection_format VALUES (3,5,60);
+INSERT INTO collection_format VALUES (4,1,100);
+INSERT INTO collection_format VALUES (4,2,90);
+INSERT INTO collection_format VALUES (4,3,80);
+INSERT INTO collection_format VALUES (4,4,70);
+INSERT INTO collection_format VALUES (4,5,60);
+INSERT INTO collection_format VALUES (5,1,100);
+INSERT INTO collection_format VALUES (5,2,90);
+INSERT INTO collection_format VALUES (5,3,80);
+INSERT INTO collection_format VALUES (5,4,70);
+INSERT INTO collection_format VALUES (5,5,60);
+INSERT INTO collection_format VALUES (8,1,100);
+INSERT INTO collection_format VALUES (8,2,90);
+INSERT INTO collection_format VALUES (8,3,80);
+INSERT INTO collection_format VALUES (8,4,70);
+INSERT INTO collection_format VALUES (8,5,60);
+INSERT INTO collection_format VALUES (8,6,96);
+INSERT INTO collection_format VALUES (8,7,93);
+INSERT INTO collection_format VALUES (1,1,100);
+INSERT INTO collection_format VALUES (1,2,90);
+INSERT INTO collection_format VALUES (1,3,80);
+INSERT INTO collection_format VALUES (1,4,70);
+INSERT INTO collection_format VALUES (1,5,60);
+
+INSERT INTO collection_portalbox VALUES (1,1,'rt',100);
+INSERT INTO collection_portalbox VALUES (1,2,'rt',90);
+INSERT INTO collection_portalbox VALUES (6,3,'rt',100);
+INSERT INTO collection_portalbox VALUES (6,4,'rt',90);
+INSERT INTO collection_portalbox VALUES (2,5,'rt',100);
+INSERT INTO collection_portalbox VALUES (2,6,'rt',90);
+INSERT INTO collection_portalbox VALUES (3,7,'rt',100);
+INSERT INTO collection_portalbox VALUES (3,8,'rt',90);
+INSERT INTO collection_portalbox VALUES (4,9,'rt',100);
+INSERT INTO collection_portalbox VALUES (4,10,'rt',90);
+INSERT INTO collection_portalbox VALUES (5,11,'rt',100);
+INSERT INTO collection_portalbox VALUES (8,14,'rt',10);
+
+INSERT INTO example VALUES (1,'author search','Search for <span class=example>Ellis, J</span> within <span class=example>author</span> field.');
+INSERT INTO example VALUES (2,'word search','Search for <span class=example>quantum</span> within <span class=example>any</span> field.');
+INSERT INTO example VALUES (3,'wildcard word search','Search for <span class=example>quant*</span> within <span class=example>any</span> field.');
+INSERT INTO example VALUES (4,'phrase search','Search for <span class=example>\'standard model\'</span> within <span class=example>title</span> field.');
+INSERT INTO example VALUES (5,'boolean search','Search for <span class=example>quark -sigma +dense</span> within <span class=example>any</span> field.');
+INSERT INTO example VALUES (6,'complex boolean search','Search for <span class=example>author:draper title:electrical</span> within <span class=example>any</span> field.');
+INSERT INTO example VALUES (7,'complex boolean search','Search for <span class=example>author:ellis -muon* +abstract:\'dense quark matter\'</span> within <span class=example>any</span> field.');
+INSERT INTO example VALUES (8,'boolean search','Search for <span class=example>ellis muon*</span> within <span class=example>any</span> field.');
+INSERT INTO example VALUES (13,'reference search','Search for <span class=\"example\">Theor. Math. Phys. 2 (1998) 231</span> within <span class=\"example\">references</span> field.');
+INSERT INTO example VALUES (14,'phrase search','Search for <span class=\"example\">Higgs boson</span> within <span class=\"example\">abstract</span> field.');
+INSERT INTO example VALUES (15,'wildcard word search','Search for <span class=example>cal*</span> within <span class=example>any</span> field.');
+INSERT INTO example VALUES (16,'keyword search','Search for <span class=example>Nobel</span> within <span class=example>keyword</span> field.');
+INSERT INTO example VALUES (17,'author search','Search for <span class=example>Cole</span> within <span class=example>author</span> field.');
+INSERT INTO example VALUES (18,'phrase search','Search for <span class=example>\'nuclear electronics\'</span> within <span class=example>title</span> field.');
+
+INSERT INTO fieldvalue VALUES (1,'Particle Physics','particle physics','Particle Physics');
+INSERT INTO fieldvalue VALUES (2,'Particle Physics - Experimental Results','particle phys. - exp.results','Particle Physics - Experimental Results');
+INSERT INTO fieldvalue VALUES (3,'Particle Physics - Phenomenology','particle phys. - phenomen.','Particle Physics - Phenomenology');
+INSERT INTO fieldvalue VALUES (4,'Particle Physics - Theory','particle phys. - theory','Particle Physics - Theory');
+INSERT INTO fieldvalue VALUES (5,'Particle Physics - Lattice','particle phys. - lattice','Particle Physics - Lattice');
+INSERT INTO fieldvalue VALUES (6,'Nuclear Physics','nuclear physics','Nuclear Physics');
+INSERT INTO fieldvalue VALUES (7,'General Relativity and Cosmology','gen.relativity/cosmology','General Relativity and Cosmology');
+INSERT INTO fieldvalue VALUES (8,'General Theoretical Physics','gen.theoretical physics','General Theoretical Physics');
+INSERT INTO fieldvalue VALUES (9,'Detectors and Experimental Techniques','detectors/exp.techniques','Detectors and Experimental Techniques');
+INSERT INTO fieldvalue VALUES (10,'Accelerators and Storage Rings','accelerators/storage rings','Accelerators and Storage Rings');
+INSERT INTO fieldvalue VALUES (11,'Health Physics and Radiation Effects','health phys./radiat.effects','Health Physics and Radiation Effects');
+INSERT INTO fieldvalue VALUES (12,'Computing and Computers','computing/computers','Computing and Computers');
+INSERT INTO fieldvalue VALUES (13,'Mathematical Physics and Mathematics','maths/mathematical physics','Mathematical Physics and Mathematics');
+INSERT INTO fieldvalue VALUES (14,'Astrophysics and Astronomy','astrophysics/astronomy','Astrophysics and Astronomy');
+INSERT INTO fieldvalue VALUES (15,'Nonlinear Systems','nonlinear systems','Nonlinear Systems');
+INSERT INTO fieldvalue VALUES (16,'Condensed Matter','condensed matter','Condensed Matter');
+INSERT INTO fieldvalue VALUES (17,'Other Fields of Physics','other fields of physics','Other Fields of Physics');
+INSERT INTO fieldvalue VALUES (18,'Chemical Physics and Chemistry','chemical physics/chemistry','Chemical Physics and Chemistry');
+INSERT INTO fieldvalue VALUES (19,'Engineering','engineering','Engineering');
+INSERT INTO fieldvalue VALUES (20,'Information Transfer and Management','information transfer/manag.','Information Transfer and Management');
+INSERT INTO fieldvalue VALUES (21,'Other Aspects of Science','other aspects of science','Other Aspects of Science');
+INSERT INTO fieldvalue VALUES (22,'Commerce, Economics, Social Science','commerce/econ./social sci.','Commerce, Economics, Social Science');
+INSERT INTO fieldvalue VALUES (23,'Biography, Geography, History','biography/geography/history','Biography, Geography, History');
+INSERT INTO fieldvalue VALUES (24,'Other Subjects','other subjects','Other Subjects');
+INSERT INTO fieldvalue VALUES (25,'CERN TH','CERN TH','TH');
+INSERT INTO fieldvalue VALUES (26,'CERN PPE','CERN PPE','PPE');
+INSERT INTO fieldvalue VALUES (27,'Experiments and Tracks','Experiments and Tracks','Experiments and Tracks');
+INSERT INTO fieldvalue VALUES (28,'Personalities and History of CERN','Personalities and History of CERN','Personalities and History of CERN');
+INSERT INTO fieldvalue VALUES (29,'Diagrams and Charts','Diagrams and Charts','Diagrams and Charts');
+INSERT INTO fieldvalue VALUES (30,'Life at CERN','Life at CERN','Life at CERN');
+INSERT INTO fieldvalue VALUES (31,'CERN ETT','CERN ETT','ETT');
+INSERT INTO fieldvalue VALUES (32,'CERN EP','CERN EP','EP');
+
+INSERT INTO oaiset VALUES (1,'CERN theoretical papers','cern:theory',NULL);
+INSERT INTO oaiset VALUES (2,'CERN experimental papers','cern:experiment',NULL);
+
+INSERT INTO portalbox VALUES (1,'<small>ABOUT THIS SITE</small>','<small>Welcome to the demo site of the CDSware, a free document server software coming from CERN.  Please feel free to explore this site at your wish.</small>');
+INSERT INTO portalbox VALUES (2,'<small>SEE ALSO</small>','<small><a href=\"http://cdsware.cern.ch/\">CDSware</a></small><br><small><a href=\"http://www.cern.ch/\">CERN</a></small><br><small><a href=\"http://google.com/\">Google</a></small>');
+INSERT INTO portalbox VALUES (3,'<small>ABOUT ARTICLES</small>','<small>The Articles collection contains all the papers published in scientific journals by our staff.  The collection starts from 1998.</small>');
+INSERT INTO portalbox VALUES (4,'<small>SEE ALSO</small>','<small><a href=\"http://arXiv.org/\">arXiv.org</a></small><br><small><a href=\"http://cds.cern.ch/\">CDS</a></small><br><small><a href=\"www.chemweb.com\">ChemWeb</a></small><br><small><a href=\"http://www.ams.org/mathscinet\">MathSciNet</a></small>');
+INSERT INTO portalbox VALUES (5,'<small>ABOUT PREPRINTS</small>','<small>The Preprints collection contains not-yet-published papers and research results obtained at the institute.  The collection starts from 2001.</small>');
+INSERT INTO portalbox VALUES (6,'<small>SEE ALSO</small>','<small><a href=\"http://arXiv.org/\">arXiv.org</a></small><br><small><a href=\"http://cds.cern.ch/\">CDS</a></small>');
+INSERT INTO portalbox VALUES (7,'<small>ABOUT BOOKS</small>','<small>The Books collection contains monographs published by institute staff as well as pointers to interesting online e-books available in fulltext.</small>');
+INSERT INTO portalbox VALUES (8,'<small>SEE ALSO</small>','<small><a href=\"http://etext.lib.virginia.edu/ebooks/ebooklist.html\">UV e-Books</a></small><br><small><a href=\"http://www.gutenberg.org/\">Project Gutenberg</a></small>');
+INSERT INTO portalbox VALUES (9,'<small>ABOUT THESES</small>','<small>The Theses collection contains all students\' theses defended at the institute.  The collection starts from 1950.</small>');
+INSERT INTO portalbox VALUES (10,'<small>SEE ALSO</small>','<small><a href=\"http://www.theses.org/\">NDLTD Theses</a></small><br><small><a href=\"http://www.thesis.de/\">Thesis.DE</a></small>');
+INSERT INTO portalbox VALUES (11,'<small>ABOUT REPORTS</small>','<small>The Reports collection contains miscellaneous technical reports, unpublished elsewhere.  The collection starts from 1950.</small>');
+INSERT INTO portalbox VALUES (12,'TEST portal box','this is a test portal box');
+INSERT INTO portalbox VALUES (13,'test','this is a test portal box');
+INSERT INTO portalbox VALUES (14,'<small>ABOUT PICTURES</small>','<small>The Pictures collection contains selected photographs and illustrations.  Please note that photographs are copyrighted.  The collection includes historical archive that starts from 1950.</small>');
+
+
+
+
+INSERT INTO sbmCOLLECTION VALUES (36,'Catalogues');
+
+INSERT INTO sbmCOLLECTION_sbmCOLLECTION VALUES (0,36,1);
+
+INSERT INTO sbmCOLLECTION_sbmDOCTYPE VALUES (36,'PICT',3);
+INSERT INTO sbmCOLLECTION_sbmDOCTYPE VALUES (36,'TEXT',0);
+INSERT INTO sbmCOLLECTION_sbmDOCTYPE VALUES (36,'RTEXT',2);
+INSERT INTO sbmCOLLECTION_sbmDOCTYPE VALUES (36,'RPICT',4);
+
+INSERT INTO sbmCATEGORIES VALUES ('RPICT','DIAG','Diagrams and Charts');
+INSERT INTO sbmCATEGORIES VALUES ('RPICT','HIST','Personalities and History of CERN');
+INSERT INTO sbmCATEGORIES VALUES ('RPICT','LIFE','Life at CERN');
+INSERT INTO sbmCATEGORIES VALUES ('RPICT','TRACK','Experiments and Tracks');
+INSERT INTO sbmCATEGORIES VALUES ('PICT','DIAG','Diagrams and Charts');
+INSERT INTO sbmCATEGORIES VALUES ('PICT','HIST','Personalities and History of CERN');
+INSERT INTO sbmCATEGORIES VALUES ('PICT','LIFE','Life at CERN');
+INSERT INTO sbmCATEGORIES VALUES ('PICT','TRACK','Experiments and Tracks');
+INSERT INTO sbmCATEGORIES VALUES ('RTEXT','ARTICLE','Article');
+INSERT INTO sbmCATEGORIES VALUES ('TEXT','PREPRINT','Preprint');
+INSERT INTO sbmCATEGORIES VALUES ('TEXT','ARTICLE','Article');
+INSERT INTO sbmCATEGORIES VALUES ('TEXT','BOOK','Book');
+INSERT INTO sbmCATEGORIES VALUES ('TEXT','THESIS','Thesis');
+INSERT INTO sbmCATEGORIES VALUES ('TEXT','REPORT','Report');
+INSERT INTO sbmCATEGORIES VALUES ('RTEXT','BOOK','Book');
+INSERT INTO sbmCATEGORIES VALUES ('RTEXT','PREPRINT','Preprint');
+INSERT INTO sbmCATEGORIES VALUES ('RTEXT','REPORT','Report');
+INSERT INTO sbmCATEGORIES VALUES ('RTEXT','THESIS','Thesis');
+
+INSERT INTO sbmDOCTYPE VALUES ('text document (with simple refereeing)','RTEXT','2002-05-06','2002-06-20','');
+INSERT INTO sbmDOCTYPE VALUES ('text document','TEXT','2002-05-03','2002-06-21','This is a template for a text type of document with direct integration after submission\r\nUse it as a reference to create your new document types and submissions (clone).');
+INSERT INTO sbmDOCTYPE VALUES ('picture document','PICT','2002-05-03','2002-06-20','This is a template for a picture-like type of document with direct integration after submission\r\nUse it as a reference to create your new document types and submissions (clone).');
+INSERT INTO sbmDOCTYPE VALUES ('picture document (with simple refereeing)','RPICT','2002-05-07','2002-06-20','');
+
+INSERT INTO sbmFIELD VALUES ('APPRTEXT',1,3,'COM','<br>Enter here your additional comments:<br>','O','comments','','2002-05-06','2002-05-28','','');
+INSERT INTO sbmFIELD VALUES ('APPRTEXT',1,2,'decision','<br><br>Your decision: ','M','decision','','2002-05-06','2002-05-28','','');
+INSERT INTO sbmFIELD VALUES ('APPRTEXT',1,1,'RNTEST2','Please enter the reference number of the document you wish to approve/reject: ','M','reference','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('FTTRPICT',1,1,'PhotoFormat','Format of your picture file: ','M','','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('MBIRPICT',2,1,'CANChange','<BR><BR><BR>Please select all the fields you want to modify:<BR>','M','Fields to modify','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('FTTRPICT',1,2,'PictureFiles','<BR><BR>Please give the path to your main picture file:<BR>(Click on \"Browse\" and select your file)<BR>','M','picture file','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('FTTRPICT',1,3,'EndButton2','<BR><BR>','O','','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SRVRTEXT',1,4,'EndButton2','<BR><BR>','O','','','2002-05-06','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',3,1,'AB','<BR><BR><BR><BR>Abstract: <BR>','O','Abstract','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',2,4,'KW','<BR><BR>Keywords (one per line):<BR>','O','Keywords','','2002-05-06','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',1,3,'AF','<br>Affiliation:<br>','O','affiliation','','2002-05-06','2002-06-18',NULL,NULL);
+INSERT INTO sbmFIELD VALUES ('FTTRTEXT',1,1,'Format','Please choose the  format of your document:','M','Format','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('FTTRTEXT',1,2,'MainFile','<BR><BR>Please give the path to your main document file:<BR>(Click on \"Browse\" and select your file)<BR>','M','Main document','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('FTTRTEXT',1,3,'EndButton2','<BR><BR>','O','','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('MBIRTEXT',2,2,'EndButton2','<BR><BR>','O','','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('MBIRTEXT',1,1,'RNTEST2','Please enter the Report Number of the document you want to modify:','M','reference','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('MBIRTEXT',2,1,'CANChange','<BR><BR><BR>Please select all the fields you want to modify:<BR>','M','Fields to modify','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',1,3,'AF','<br>Affiliation:<br>','O','affiliation','','2002-05-06','2002-06-19','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',4,3,'EndButton','<BR><BR>','O','','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',4,1,'NO','<i>Optional</i> <BR>Author\'s Comments:<BR>','O','Comments','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',4,2,'Rep','<BR><i>Optional</i><BR>Other reference number(s) (eg: from other institutes):<BR>','O','Report Number(s)','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',2,2,'Num','Number of pages (optional) :','O','Number of pages','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',1,1,'TI','Title:<BR>','M','Title','','2002-05-06','2002-06-11','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',1,2,'AU','<BR><BR>ALL author(s) of paper: (one per line)<BR>(in the form: Name, Initial(s))<BR>','M','Author(s)','AUCheck','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SRVRTEXT',1,1,'RNTEST2','Please enter the number of the revised document: ','M','reference','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SRVRTEXT',1,3,'MainFile','<BR><BR>Please give the path to your revised file (preferably PS or PDF):<BR>(Click on \"Browse\")<BR>','M','revised file','','2002-05-06','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SRVRTEXT',1,2,'revtype','<BR>Please choose the type of revision you wish:','M','revision type','','2002-05-06','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('MBIRPICT',1,1,'RNPHO2','Please enter the reference of the picture you want to modify:','M','reference','','2002-05-07','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('APPRTEXT',1,4,'button_validate','<br><br>','O','','','2002-05-06','2002-05-28','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',2,1,'LANG','Language:','M','Language','','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('SBIRTEXT',2,3,'Dat','<BR><BR>Date of creation (dd/mm/yyyy): ','M','Date of creation','DatCheckNew','2002-05-06','2002-05-06','','');
+INSERT INTO sbmFIELD VALUES ('APPRPICT',1,2,'decision','<br><br>Your decision: ','M','decision','','2002-05-07','2002-05-28','','');
+INSERT INTO sbmFIELD VALUES ('APPRPICT',1,3,'COM','<br>Enter here your additional comments:<br>','O','comments','','2002-05-07','2002-05-28','','');
+INSERT INTO sbmFIELD VALUES ('APPRPICT',1,1,'RNPHO2','Please enter the reference of the picture you wish to approve/reject: ','M','reference','','2002-05-07','2002-05-07',NULL,NULL);
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',4,3,'EndButton','<BR><BR>','O','','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',4,2,'Rep','<BR><i>Optional</i><BR>Other reference number(s) (eg: from other institutes):<BR>','O','Report Number(s)','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',4,1,'NO','<i>Optional</i> <BR>Comments:<BR>','O','Comments','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',3,1,'AB','<BR><BR><BR><BR>Description: <BR>','O','Description','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',2,2,'KW','<BR><BR>Keywords (one per line):<BR>','O','Keywords','','2002-05-07','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',2,1,'Dat','<BR><BR>Date of creation (dd/mm/yyyy): ','M','Date of creation','DatCheckNew','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',1,1,'TI','Title of the Picture:<BR>','M','Title','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIRPICT',1,2,'AU','<BR><BR>Photographer (in the form: Name, Initial(s)):<BR>','O','Photographer','AUCheck','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',1,2,'AU','<BR><BR>Photographer (in the form: Name, Initial(s)):<BR>','O','Photographer','AUCheck','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',1,3,'RNPHO','','O','category','','2002-05-06','2002-05-06',NULL,NULL);
+INSERT INTO sbmFIELD VALUES ('SBIPICT',1,1,'TI','Title of the Picture:<BR>','M','Title','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('MBIRPICT',2,2,'EndButton2','<BR><BR>','O','','','2002-05-07','2002-05-07','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',2,1,'Dat','<BR><BR>Date of creation (dd/mm/yyyy): ','M','Date of creation','DatCheckNew','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',2,2,'KW','<BR><BR>Keywords (one per line):<BR>','O','Keywords','','2002-05-03','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',3,1,'AB','<BR><BR><BR><BR>Description: <BR>','O','Description','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',4,2,'Rep','<BR><i>Optional</i><BR>Other reference number(s) (eg: from other institutes):<BR>','O','Report Number(s)','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',4,1,'NO','<i>Optional</i> <BR>Comments:<BR>','O','Comments','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBIPICT',4,3,'EndButton','<BR><BR>','O','','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('MBIPICT',2,1,'CANChange','<BR><BR><BR>Please select all the fields you want to modify:<BR>','M','Fields to modify','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('MBIPICT',1,1,'RNPHO2','Please enter the reference of the picture you want to modify:','M','reference','','2002-05-06','2002-06-12',NULL,NULL);
+INSERT INTO sbmFIELD VALUES ('FTTPICT',1,2,'PictureFiles','<BR><BR>Please give the path to your main picture file:<BR>(Click on \"Browse\" and select your file)<BR>','M','picture file','','2002-05-03','2002-05-03',NULL,NULL);
+INSERT INTO sbmFIELD VALUES ('FTTPICT',1,3,'EndButton2','<BR><BR>','O','','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('MBIPICT',2,2,'EndButton2','<BR><BR>','O','','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('FTTTEXT',1,1,'Format','Please choose the  format of your document:','M','Format','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('FTTTEXT',1,2,'MainFile','<BR><BR>Please give the path to your main document file:<BR>(Click on \"Browse\" and select your file)<BR>','M','Main document','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('FTTTEXT',1,3,'EndButton2','<BR><BR>','O','','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('MBITEXT',2,2,'EndButton2','<BR><BR>','O','','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('MBITEXT',1,1,'RNTEST2','Please enter the Report Number of the document you want to modify:','M','reference','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('MBITEXT',2,1,'CANChange','<BR><BR><BR>Please select all the fields you want to modify:<BR>','M','Fields to modify','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',4,3,'EndButton','<BR><BR>','O','','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',4,1,'NO','<i>Optional</i> <BR>Author\'s Comments:<BR>','O','Comments','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',4,2,'Rep','<BR><i>Optional</i><BR>Other reference number(s) (eg: from other institutes):<BR>','O','Report Number(s)','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',2,4,'KW','<BR><BR>Keywords (one per line):<BR>','O','Keywords','','2002-05-03','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',3,1,'AB','<BR><BR><BR><BR>Abstract: <BR>','O','Abstract','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',2,3,'Dat','<BR><BR>Date of creation (dd/mm/yyyy): ','M','Date of creation','DatCheckNew','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',2,1,'LANG','Language:','M','Language','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',2,2,'Num','Number of pages (optional) :','O','Number of pages','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',1,1,'TI','Title:<BR>','M','Title','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SBITEXT',1,2,'AU','<BR><BR>ALL author(s) of paper: (one per line)<BR>(in the form: Name, Initial(s))<BR>','M','Author(s)','AUCheck','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SRVTEXT',1,1,'RNTEST2','Please enter the number of the revised document: ','M','reference','','2002-05-03','2002-05-03','','');
+INSERT INTO sbmFIELD VALUES ('SRVTEXT',1,3,'MainFile','<BR><BR>Please give the path to your revised file (preferably PS or PDF):<BR>(Click on \"Browse\")<BR>','M','revised file','','2002-05-03','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SRVTEXT',1,2,'revtype','<BR>Please choose the type of revision you wish:','M','revision type','','2002-05-03','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('SRVTEXT',1,4,'EndButton2','<BR><BR>','O','','','2002-05-03','2002-06-12','','');
+INSERT INTO sbmFIELD VALUES ('FTTPICT',1,1,'PhotoFormat','Format of your picture file: ','M','','','2002-05-03','2002-05-03',NULL,NULL);
+INSERT INTO sbmFIELD VALUES ('APPRPICT',1,4,'button_validate','<br><br>','O','','','2002-05-07','2002-05-28','','');
+
+INSERT INTO sbmFIELDDESC VALUES ('TI','TI','245__a','T',0,5,60,0,'','','1998-08-17','2002-06-11','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('AU','100__a','100__a','T',0,6,30,0,'','','1998-08-17','2002-02-08','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('PictureFiles','','','F',40,0,0,80,'','','1998-08-17','0000-00-00','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('AF','AF','','T',0,2,50,0,'','','1998-08-17','0000-00-00','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('KW','KW','650__a','T',0,2,50,0,'','','1998-08-17','2002-05-06','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('NO','NO','500__a','T',0,3,60,0,'','','1998-08-17','2001-11-19','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('Rep','FN','088__a','T',0,2,30,0,'','','1998-08-17','2002-05-06','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('Num','','','I',10,0,0,0,'','','1998-08-17','0000-00-00','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('Dat','IM','','I',10,0,0,0,'','','1998-08-17','2002-04-09','','',1);
+INSERT INTO sbmFIELDDESC VALUES ('LANG','LN','041__a','S',0,0,0,0,'','<SELECT name=\"LANG\">\r\n        <OPTION>    Select:\r\n        <option value=eng selected>English\r\n        <option value=fre>French\r\n        <option value=eng/fre>English/French\r\n        <option value=ger>German\r\n        <option value=dut>Dutch\r\n        <option value=ita>Italian\r\n        <option value=spa>Spanish\r\n        <option value=por>Portuguese\r\n        <option value=gre>Greek\r\n        <option value=slo>Slovak\r\n        <option value=cze>Czech\r\n        <option value=hun>Hungarian\r\n        <option value=pol>Polish\r\n        <option value=nor>Norwegian\r\n        <option value=swe>Swedish\r\n        <option value=fin>Finnish\r\n        <option value=rus>Russian\r\n</SELECT>','1998-08-17','2001-11-19','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('AB','AB','520__a','T',0,12,80,0,'','','1998-08-17','2001-11-19','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('RNPHO','ER','','H',20,0,0,0,'<COMBO>','','1998-08-18','2002-05-06','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('Format','','','S',0,0,0,0,'','<SELECT name=Format>\r\n<option> Select:\r\n<option> PDF\r\n<option> PostScript\r\n</SELECT>','1998-08-18','2002-05-03','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('MainFile','','','S',0,0,0,0,'','<INPUT TYPE=file NAME=\"MainFile\" VALUE=\"\" SIZE=40 MAXLENGTH=80> <BR><BR>When you press \"finish selection\", your file will automatically be transferred to our server.<BR>Please make sure this is the right file before uploading it.','1998-08-18','0000-00-00','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('EndButton','','','D',0,0,0,0,'','<CENTER>\r\n<INPUT TYPE=button width=400 height=50 name=endS value=\"finish submission\" onclick=\"finish();\">\r\n</CENTER>','1998-08-18','1998-10-28','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('EndButton2','','','D',0,0,0,0,'','<CENTER>\r\n<INPUT TYPE=button name=endS width=400 height=50 value=\"finish selection\" onclick=\"finish();\">\r\n</CENTER>','1998-08-18','2001-11-22','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('CANChange','','','S',0,0,0,0,'','<SELECT multiple name=\"CANChange[]\" size=8>\r\n<option value=\"Select\">Select:\r\n<option value=\"Rep\">Other Report Numbers\r\n<option value=\"TI\">Title\r\n<option value=\"AU\">     Authors\r\n<option value=\"LANG\">   Language\r\n<option value=\"KW\">Keywords\r\n<option value=\"AB\">Abstract\r\n<option value=\"NO\">Note\r\n</SELECT>','1998-08-18','0000-00-00','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('COM','','','T',0,6,50,0,'','','1998-08-18','0000-00-00','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('PhotoFormat','','','S',0,0,0,0,'','<SELECT name=\"PhotoFormat\" size=3>\r\n<OPTION checked> Select:\r\n<OPTION> JPEG\r\n<OPTION> PDF\r\n</SELECT>','0000-00-00','2001-04-27','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('revtype','','','S',0,0,0,0,'','<SELECT name=\"revtype\">\r\n<OPTION> Select:\r\n<OPTION value=revise> new version - old versions remain visible\r\n<OPTION value=update> new version - old versions are removed\r\n<OPTION value=add> add this file as an appendix\r\n</SELECT>','0000-00-00','2002-01-30','','',0);
+INSERT INTO sbmFIELDDESC VALUES ('decision','','','S',NULL,NULL,NULL,NULL,NULL,'<select name=decision>\r\n<option> Select:\r\n<option>approve\r\n<option>reject\r\n</select>','2001-11-08','2001-11-12',NULL,NULL,0);
+INSERT INTO sbmFIELDDESC VALUES ('button_validate','','','D',NULL,NULL,NULL,NULL,NULL,'<CENTER>\r\n<INPUT TYPE=submit width=400 height=50 name=endS value=\"validate your choice\" onclick=\"finish();return false;\">\r\n</CENTER>','2001-11-08','2001-11-08',NULL,NULL,0);
+INSERT INTO sbmFIELDDESC VALUES ('RNTEST2','','marccode','I',30,NULL,NULL,30,'TEST-<COMBO>-<YYYY>-???',NULL,'2001-11-22','2001-11-22',NULL,NULL,0);
+INSERT INTO sbmFIELDDESC VALUES ('RNPHO2','','marccode','I',30,NULL,NULL,0,'PICTURE-TEST-<COMBO>-<YYYY>-???',NULL,'2002-05-06','2002-05-07',NULL,NULL,0);
+
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Set_Archive_Files',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Send_Approval_Request',100,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Format_Record',85,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Move_to_Done',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Get_Sysno',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Create_Modify_Interface',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Get_Sysno',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Save_Modify_Values',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Create_Base_Files',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Print_Success_MBI',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Send_Modify_Mail',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Make_Modify_Record',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RTEXT','Insert_Record',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Test_File_Size',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Test_BI',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Send_Approval_Request',100,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Test_File_Format',40,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Upload_Included_Files',60,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Report_Number_Generation',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Print_Success_APP',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Set_Archive_Files',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Move_to_Pending',110,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Print_Success_FTT',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Send_FTT_Mail',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Update_Approval_DB',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','CaseEDS',40,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Is_Referee',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Set_Archive_Files',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Test_Status',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Is_Referee',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','CaseEDS',40,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Is_Original_Submitter',25,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Test_File_Name',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Mail_Submitter',85,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Move_to_Done',100,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Test_File_Size',15,1);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Print_Success_SRV',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Send_SRV_Mail',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Insert_Record',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Make_Modify_Record',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Move_Revised_Files',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Get_Sysno',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('SBI','PICT','Create_Base_Files',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Move_to_Done',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Get_Sysno',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Create_Modify_Interface',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Get_Sysno',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Save_Modify_Values',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Create_Base_Files',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Print_Success_MBI',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Send_Modify_Mail',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Make_Modify_Record',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','PICT','Insert_Record',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Test_File_Size',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Test_BI',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Move_Pictures_Archive',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Test_File_Format',40,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Upload_Included_Files',60,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Report_Number_Generation',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Create_Base_Files',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Make_Weblib_Record',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Set_Archive_Files',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Set_Archive_Files',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Insert_Record',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Print_Success_FTT',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Send_FTT_Mail',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Move_to_Done',110,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Test_File_Name',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Mail_Submitter',85,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Test_File_Name',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Move_to_Done',110,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Send_FTT_Mail',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Print_Success_FTT',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Insert_Record',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Set_Archive_Files',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Make_Weblib_Record',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Report_Number_Generation',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Upload_Included_Files',60,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Test_File_Format',40,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Move_Files_Archive',100,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Test_BI',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Test_File_Size',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Insert_Record',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Make_Modify_Record',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Send_Modify_Mail',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Print_Success_MBI',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Create_Base_Files',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Save_Modify_Values',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Get_Sysno',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Create_Modify_Interface',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Get_Sysno',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','TEXT','Move_to_Done',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SBI','TEXT','Create_Base_Files',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Mail_Submitter',85,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Set_Archive_Files',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Display_Record_Data',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Get_Sysno',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Move_Revised_Files',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Make_Modify_Record',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Insert_Record',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Send_SRV_Mail',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Print_Success_SRV',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Test_File_Size',15,1);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Move_to_Done',100,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','TEXT','Get_Sysno',15,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Display_Record_Data',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Create_Icon',50,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Update_Approval_DB',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Send_FTT_Mail',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Print_Success_FTT',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Move_Pictures_Archive',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Set_Archive_Files',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Move_to_Pending',110,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Create_Base_Files',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Report_Number_Generation',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SRV','RTEXT','Get_Sysno',15,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Upload_Included_Files',60,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Test_File_Format',40,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RTEXT','Move_Files_Archive',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Update_Approval_DB',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Move_From_Pending',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Test_BI',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Test_File_Size',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Make_Weblib_Record',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Insert_Record',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Get_Info',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Send_APP_Mail',120,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Get_Report_Number',10,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Get_Info',30,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Update_Approval_DB',40,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Print_Success_APP',50,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Send_APP_Mail',60,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Finish_Submission',130,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Move_to_Done',140,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Move_to_Done',70,3);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Test_File_Name',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Mail_Submitter',85,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','RPICT','Create_Icon',50,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Move_to_Done',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Get_Sysno',20,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Create_Modify_Interface',30,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Get_Sysno',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Save_Modify_Values',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Create_Base_Files',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Print_Success_MBI',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Send_Modify_Mail',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Make_Modify_Record',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('MBI','RPICT','Insert_Record',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('SBI','RPICT','Create_Base_Files',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Print_Success_APP',60,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Update_Approval_DB',40,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Move_From_Pending',70,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Make_Weblib_Record',80,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Insert_Record',90,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Get_Report_Number',10,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RTEXT','Test_Status',20,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Get_Info',30,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Send_APP_Mail',120,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Get_Report_Number',10,1);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Get_Report_Number',10,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Get_Info',30,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Update_Approval_DB',40,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Print_Success_APP',50,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Send_APP_Mail',60,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Finish_Submission',130,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Move_to_Done',140,2);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Move_to_Done',70,3);
+INSERT INTO sbmFUNCTIONS VALUES ('APP','RPICT','Format_Record',85,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','PICT','Format_Record',50,2);
+INSERT INTO sbmFUNCTIONS VALUES ('FTT','TEXT','Format_Record',50,2);
+
+INSERT INTO sbmIMPLEMENT VALUES ('RTEXT','SBI','Y','SBIRTEXT',4,'2002-05-06','2002-06-19',1,'','1',1,1,'');
+INSERT INTO sbmIMPLEMENT VALUES ('RTEXT','MBI','Y','MBIRTEXT',2,'2002-05-06','2002-06-12',2,'','0',0,0,'');
+INSERT INTO sbmIMPLEMENT VALUES ('RTEXT','FTT','N','FTTRTEXT',1,'2002-05-06','2002-05-06',0,'','1',2,1,'Upload your files, if you have local access to them');
+INSERT INTO sbmIMPLEMENT VALUES ('PICT','SBI','Y','SBIPICT',4,'2002-05-03','2002-06-12',1,'','1',1,1,'');
+INSERT INTO sbmIMPLEMENT VALUES ('RTEXT','SRV','Y','SRVRTEXT',1,'2002-05-06','2002-06-12',3,'','0',0,0,'');
+INSERT INTO sbmIMPLEMENT VALUES ('PICT','MBI','Y','MBIPICT',2,'2002-05-03','2002-06-12',2,'','0',0,0,'');
+INSERT INTO sbmIMPLEMENT VALUES ('TEXT','FTT','N','FTTTEXT',1,'2002-05-03','2002-05-03',0,'','1',2,1,'Upload your files, if you have local access to them');
+INSERT INTO sbmIMPLEMENT VALUES ('TEXT','MBI','Y','MBITEXT',2,'2002-05-03','2002-06-12',2,'','0',0,0,'');
+INSERT INTO sbmIMPLEMENT VALUES ('PICT','FTT','N','FTTPICT',1,'2002-05-03','2002-05-03',0,'','1',2,1,'Upload your files, if you have local access to them');
+INSERT INTO sbmIMPLEMENT VALUES ('TEXT','SBI','Y','SBITEXT',4,'2002-05-03','2002-06-21',1,'','1',1,1,'');
+INSERT INTO sbmIMPLEMENT VALUES ('TEXT','SRV','Y','SRVTEXT',1,'2002-05-03','2002-06-12',3,'','0',0,0,'');
+INSERT INTO sbmIMPLEMENT VALUES ('RPICT','FTT','N','FTTRPICT',1,'2002-05-07','2002-05-07',0,'','1',2,1,'Upload your files, if you have local access to them');
+INSERT INTO sbmIMPLEMENT VALUES ('RTEXT','APP','Y','APPRTEXT',1,'2002-05-06','2002-05-28',4,'0','0',0,1,'0');
+INSERT INTO sbmIMPLEMENT VALUES ('RPICT','MBI','Y','MBIRPICT',2,'2002-05-07','2002-06-12',2,'','0',0,0,'');
+INSERT INTO sbmIMPLEMENT VALUES ('RPICT','SBI','Y','SBIRPICT',4,'2002-05-07','2002-06-20',1,'','1',1,1,'');
+INSERT INTO sbmIMPLEMENT VALUES ('RPICT','APP','Y','APPRPICT',1,'2002-05-07','2002-05-28',4,'0','0',0,1,'0');
+
+INSERT INTO sbmMODIFY VALUES ('TI','<br>Please correct the title:<br>','0000-00-00','0000-00-00',NULL,NULL);
+INSERT INTO sbmMODIFY VALUES ('AU','<br>Please correct the list of authors:<br>','0000-00-00','0000-00-00',NULL,NULL);
+INSERT INTO sbmMODIFY VALUES ('Rep','<br>Please correct the list of other references:<br>','0000-00-00','0000-00-00',NULL,NULL);
+INSERT INTO sbmMODIFY VALUES ('LANG','<br>Please correct the language:<br>','0000-00-00','0000-00-00',NULL,NULL);
+INSERT INTO sbmMODIFY VALUES ('KW','<br>Please correct the keywords:<br>','0000-00-00','0000-00-00',NULL,NULL);
+INSERT INTO sbmMODIFY VALUES ('AB','<br>Please correct the abstract:<br>','0000-00-00','0000-00-00',NULL,NULL);
+INSERT INTO sbmMODIFY VALUES ('NO','<br>Please correct the note:<br>','0000-00-00','0000-00-00',NULL,NULL);
+
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','directory','TEST');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','categformatDAM','TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','base','PREPRINTS');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','autorngen','Y');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','authorfile','AU');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','counterpath','lastid_test_<PA>categ</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','noteFile','NO');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','status','ADDED');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','status','ADDED');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','authorfile','AU');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','autorngen','Y');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','base','PREPRINTS');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','categformatDAM','TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','counterpath','lastid_test_<PA>categ</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','edsrn','RNTEST2');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','emailFile','SuE');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','fieldnameMBI','CANChange');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','filetype','fulltext');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','firstfile','MainFile');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','formatARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','formatFTT','Format');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','iconsize','180');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','maxsize','20000000');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','minsize','10');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','newrnin','NEWRN');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','pathARCHIVE','TEST');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','rnformat','TEST-<PA>categ</PA>-<PA>yy</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','rnin','comboTEXT');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','secondfile','IncludedFiles');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','sourceDoc','Preprints');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','sourceModify','EDSTEXT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','sourceSubmit','EDSTEXT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','textMailFTT','');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','titleFile','TI');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','variablesARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','yeargen','AUTO');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','mysqlInsert','EDSTEXTmysql.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','mysqlModify','EDSTEXTmysql_Modify.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','categformatAPP','TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','casedefault','');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','casesteps','2,3');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','casevalues','approve,reject');
+INSERT INTO sbmPARAMETERS VALUES ('TEXT','casevariable','decision');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','authorfile','AU');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','autorngen','Y');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','base','PICTURE');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','categformatDAM','TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','counterpath','lastid_picture_test_<PA>categ</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','edsrn','RNPHO2');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','emailFile','SuE');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','fieldnameMBI','CANChange');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','filetype','picture');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','firstfile','PictureFiles');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','formatARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','formatFTT','Format');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','iconsize','180');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','maxsize','20000000');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','minsize','10');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','newrnin','NEWRN');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','pathARCHIVE','pictures');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','rnformat','PICTURE-TEST-<PA>categ</PA>-<PA>yy</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','rnin','RNPHO');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','secondfile','OtherPictures');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','sourceDoc','photos');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','sourceModify','EDSPICT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','sourceSubmit','EDSPICT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','textMailFTT','');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','titleFile','TI');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','variablesARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','yeargen','AUTO');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','mysqlInsert','EDSPICTmysql.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','mysqlModify','EDSPICTmysql_Modify.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','categformatAPP','TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','casedefault','');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','casesteps','2,3');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','casevalues','approve,reject');
+INSERT INTO sbmPARAMETERS VALUES ('PICT','casevariable','decision');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','noteFile','NO');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','edsrn','RNTEST2');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','emailFile','SuE');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','fieldnameMBI','CANChange');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','filetype','fulltext');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','firstfile','MainFile');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','formatARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','formatFTT','Format');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','iconsize','180');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','maxsize','20000000');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','minsize','10');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','newrnin','NEWRN');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','pathARCHIVE','TEST');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','rnformat','TEST-<PA>categ</PA>-<PA>yy</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','rnin','comboRTEXT');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','secondfile','IncludedFiles');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','sourceDoc','Preprints (with simple approval)');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','sourceModify','EDSTEXT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','sourceSubmit','EDSRTEXT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','textMailFTT','');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','titleFile','TI');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','variablesARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','yeargen','AUTO');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','mysqlInsert','EDSRTEXTmysql.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','mysqlModify','EDSTEXTmysql_Modify.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','categformatAPP','TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','casedefault','');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','casesteps','2,3');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','casevalues','approve,reject');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','casevariable','decision');
+INSERT INTO sbmPARAMETERS VALUES ('RTEXT','status','APPROVAL');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','authorfile','AU');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','autorngen','Y');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','base','PICTURE');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','categformatDAM','PICTURE-TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','counterpath','lastid_picture_test_<PA>categ</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','edsrn','RNPHO2');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','emailFile','SuE');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','fieldnameMBI','CANChange');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','filetype','picture');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','firstfile','PictureFiles');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','formatARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','formatFTT','Format');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','iconsize','180');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','maxsize','20000000');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','minsize','10');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','newrnin','NEWRN');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','pathARCHIVE','pictures');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','rnformat','PICTURE-TEST-<PA>categ</PA>-<PA>yy</PA>');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','rnin','comboRPICT');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','secondfile','OtherPictures');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','sourceDoc','photos (with simple approval)');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','sourceModify','EDSPICT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','sourceSubmit','EDSRPICT.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','textMailFTT','');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','titleFile','TI');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','variablesARCHIVE','<TEXT>');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','yeargen','AUTO');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','mysqlInsert','EDSRPICTmysql.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','mysqlModify','EDSPICTmysql_Modify.tpl');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','categformatAPP','PICTURE-TEST-<CATEG>-.*');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','casedefault','');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','casesteps','2,3');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','casevalues','approve,reject');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','casevariable','decision');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','directory','pictures');
+INSERT INTO sbmPARAMETERS VALUES ('RPICT','status','APPROVAL');
diff --git a/modules/miscutil/lib/.cvsignore b/modules/miscutil/lib/.cvsignore
new file mode 100644
index 000000000..6a1572735
--- /dev/null
+++ b/modules/miscutil/lib/.cvsignore
@@ -0,0 +1,8 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+oai1d
+oai2d
+*.py
\ No newline at end of file
diff --git a/modules/miscutil/lib/Makefile.am b/modules/miscutil/lib/Makefile.am
new file mode 100644
index 000000000..7c5472603
--- /dev/null
+++ b/modules/miscutil/lib/Makefile.am
@@ -0,0 +1,28 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+pylibdir=$(libdir)/python/cdsware
+pylib_DATA=__init__.py config.py dbquery.py
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(pylib_DATA) *~ *.tmp *.pyc
+
+%.py: %.py.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
\ No newline at end of file
diff --git a/modules/miscutil/lib/__init__.py.wml b/modules/miscutil/lib/__init__.py.wml
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/miscutil/lib/config.py.wml b/modules/miscutil/lib/config.py.wml
new file mode 100644
index 000000000..f1f5a03e3
--- /dev/null
+++ b/modules/miscutil/lib/config.py.wml
@@ -0,0 +1,46 @@
+## $Id$
+## CDSware config file, to be read by all Python programs.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>## $Id$
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""CDSware config file, to be read by all Python programs."""
+
+## fill all the generally-interesting config variables from WML:
+dbhost = "<DBHOST>"
+dbname = "<DBNAME>"
+dbuser = "<DBUSER>"
+dbpass = "<DBPASS>"
+cdsname = "<CDSNAME>"
+supportemail = "<SUPPORTEMAIL>"
+webdir = "<WEBDIR>"
+weburl = "<WEBURL>"
+bindir = "<BINDIR>"
+pylibdir = "<LIBDIR>/python"
+cachedir = "<CACHEDIR>"
+logdir = "<LOGDIR>"
+version = "<VERSION>"
+
+cdspageheader = """<CDSPAGEHEADER>"""
+cdspagefooter = """<CDSPAGEFOOTER>"""
diff --git a/modules/miscutil/lib/dbquery.py.wml b/modules/miscutil/lib/dbquery.py.wml
new file mode 100644
index 000000000..1cb4b0e81
--- /dev/null
+++ b/modules/miscutil/lib/dbquery.py.wml
@@ -0,0 +1,70 @@
+## $Id$
+## CDSware utility to run SQL queries.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+"""CDSware utility to run SQL queries."""
+
+import MySQLdb
+import string
+
+from config import *
+
+__version__ = "$Id$"
+
+def _db_login(relogin = 0):
+    """Login to the database"""
+    global DB_CONN
+    if relogin:
+        DB_CONN = MySQLdb.connect(host=dbhost, db=dbname, user=dbuser, passwd=dbpass)
+        return DB_CONN
+    else:
+        try:
+            d = DB_CONN
+            return d
+        except NameError:
+            DB_CONN = MySQLdb.connect(host=dbhost, db=dbname, user=dbuser, passwd=dbpass)
+            return DB_CONN
+
+def run_sql(sql, param=None, n=0, with_desc=0):
+    """ Runs SQL on the server and returns result"""    
+    db = _db_login()    
+    if param:
+        param = tuple(param)
+    try:
+        cur = db.cursor()
+        rc = cur.execute(sql, param)   
+    except:
+        # it's possible that mysql connection
+        # timed out. Try one more time.
+        db = _db_login(relogin = 1)
+        cur = db.cursor()        
+        rc = cur.execute(sql, param)                 
+    if string.upper(string.split(sql)[0]) in ("SELECT", "SHOW", "DESC", "DESCRIBE"):
+        if n:
+            recset = cur.fetchmany(n)
+        else:
+            recset = cur.fetchall()            
+        if with_desc:
+            return recset, cur.description
+        else:
+            return recset       
+    else:
+        if string.upper(string.split(sql)[0]) == "INSERT":
+            rc =  cur.insert_id()
+        return rc
diff --git a/modules/miscutil/sql/.cvsignore b/modules/miscutil/sql/.cvsignore
new file mode 100644
index 000000000..8767ce967
--- /dev/null
+++ b/modules/miscutil/sql/.cvsignore
@@ -0,0 +1,6 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+tabfill.sql
\ No newline at end of file
diff --git a/modules/miscutil/sql/Makefile.am b/modules/miscutil/sql/Makefile.am
new file mode 100644
index 000000000..0606d0df2
--- /dev/null
+++ b/modules/miscutil/sql/Makefile.am
@@ -0,0 +1,27 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+noinst_DATA=tabfill.sql
+
+EXTRA_DIST = $(wildcard *.wml) tabcreate.sql tabdrop.sql tabbibclean.sql
+
+CLEANFILES = $(noinst_DATA) *~ *.tmp tabfill.sql
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
\ No newline at end of file
diff --git a/modules/miscutil/sql/tabbibclean.sql b/modules/miscutil/sql/tabbibclean.sql
new file mode 100644
index 000000000..d27fd1eb9
--- /dev/null
+++ b/modules/miscutil/sql/tabbibclean.sql
@@ -0,0 +1,220 @@
+TRUNCATE bibrec;
+TRUNCATE bib00x;
+TRUNCATE bib01x;
+TRUNCATE bib02x;
+TRUNCATE bib03x;
+TRUNCATE bib04x;
+TRUNCATE bib05x;
+TRUNCATE bib06x;
+TRUNCATE bib07x;
+TRUNCATE bib08x;
+TRUNCATE bib09x;
+TRUNCATE bib10x;
+TRUNCATE bib11x;
+TRUNCATE bib12x;
+TRUNCATE bib13x;
+TRUNCATE bib14x;
+TRUNCATE bib15x;
+TRUNCATE bib16x;
+TRUNCATE bib17x;
+TRUNCATE bib18x;
+TRUNCATE bib19x;
+TRUNCATE bib20x;
+TRUNCATE bib21x;
+TRUNCATE bib22x;
+TRUNCATE bib23x;
+TRUNCATE bib24x;
+TRUNCATE bib25x;
+TRUNCATE bib26x;
+TRUNCATE bib27x;
+TRUNCATE bib28x;
+TRUNCATE bib29x;
+TRUNCATE bib30x;
+TRUNCATE bib31x;
+TRUNCATE bib32x;
+TRUNCATE bib33x;
+TRUNCATE bib34x;
+TRUNCATE bib35x;
+TRUNCATE bib36x;
+TRUNCATE bib37x;
+TRUNCATE bib38x;
+TRUNCATE bib39x;
+TRUNCATE bib40x;
+TRUNCATE bib41x;
+TRUNCATE bib42x;
+TRUNCATE bib43x;
+TRUNCATE bib44x;
+TRUNCATE bib45x;
+TRUNCATE bib46x;
+TRUNCATE bib47x;
+TRUNCATE bib48x;
+TRUNCATE bib49x;
+TRUNCATE bib50x;
+TRUNCATE bib51x;
+TRUNCATE bib52x;
+TRUNCATE bib53x;
+TRUNCATE bib54x;
+TRUNCATE bib55x;
+TRUNCATE bib56x;
+TRUNCATE bib57x;
+TRUNCATE bib58x;
+TRUNCATE bib59x;
+TRUNCATE bib60x;
+TRUNCATE bib61x;
+TRUNCATE bib62x;
+TRUNCATE bib63x;
+TRUNCATE bib64x;
+TRUNCATE bib65x;
+TRUNCATE bib66x;
+TRUNCATE bib67x;
+TRUNCATE bib68x;
+TRUNCATE bib69x;
+TRUNCATE bib70x;
+TRUNCATE bib71x;
+TRUNCATE bib72x;
+TRUNCATE bib73x;
+TRUNCATE bib74x;
+TRUNCATE bib75x;
+TRUNCATE bib76x;
+TRUNCATE bib77x;
+TRUNCATE bib78x;
+TRUNCATE bib79x;
+TRUNCATE bib80x;
+TRUNCATE bib81x;
+TRUNCATE bib82x;
+TRUNCATE bib83x;
+TRUNCATE bib84x;
+TRUNCATE bib85x;
+TRUNCATE bib86x;
+TRUNCATE bib87x;
+TRUNCATE bib88x;
+TRUNCATE bib89x;
+TRUNCATE bib90x;
+TRUNCATE bib91x;
+TRUNCATE bib92x;
+TRUNCATE bib93x;
+TRUNCATE bib94x;
+TRUNCATE bib95x;
+TRUNCATE bib96x;
+TRUNCATE bib97x;
+TRUNCATE bib98x;
+TRUNCATE bib99x;
+TRUNCATE bibrec_bib00x;
+TRUNCATE bibrec_bib01x;
+TRUNCATE bibrec_bib02x;
+TRUNCATE bibrec_bib03x;
+TRUNCATE bibrec_bib04x;
+TRUNCATE bibrec_bib05x;
+TRUNCATE bibrec_bib06x;
+TRUNCATE bibrec_bib07x;
+TRUNCATE bibrec_bib08x;
+TRUNCATE bibrec_bib09x;
+TRUNCATE bibrec_bib10x;
+TRUNCATE bibrec_bib11x;
+TRUNCATE bibrec_bib12x;
+TRUNCATE bibrec_bib13x;
+TRUNCATE bibrec_bib14x;
+TRUNCATE bibrec_bib15x;
+TRUNCATE bibrec_bib16x;
+TRUNCATE bibrec_bib17x;
+TRUNCATE bibrec_bib18x;
+TRUNCATE bibrec_bib19x;
+TRUNCATE bibrec_bib20x;
+TRUNCATE bibrec_bib21x;
+TRUNCATE bibrec_bib22x;
+TRUNCATE bibrec_bib23x;
+TRUNCATE bibrec_bib24x;
+TRUNCATE bibrec_bib25x;
+TRUNCATE bibrec_bib26x;
+TRUNCATE bibrec_bib27x;
+TRUNCATE bibrec_bib28x;
+TRUNCATE bibrec_bib29x;
+TRUNCATE bibrec_bib30x;
+TRUNCATE bibrec_bib31x;
+TRUNCATE bibrec_bib32x;
+TRUNCATE bibrec_bib33x;
+TRUNCATE bibrec_bib34x;
+TRUNCATE bibrec_bib35x;
+TRUNCATE bibrec_bib36x;
+TRUNCATE bibrec_bib37x;
+TRUNCATE bibrec_bib38x;
+TRUNCATE bibrec_bib39x;
+TRUNCATE bibrec_bib40x;
+TRUNCATE bibrec_bib41x;
+TRUNCATE bibrec_bib42x;
+TRUNCATE bibrec_bib43x;
+TRUNCATE bibrec_bib44x;
+TRUNCATE bibrec_bib45x;
+TRUNCATE bibrec_bib46x;
+TRUNCATE bibrec_bib47x;
+TRUNCATE bibrec_bib48x;
+TRUNCATE bibrec_bib49x;
+TRUNCATE bibrec_bib50x;
+TRUNCATE bibrec_bib51x;
+TRUNCATE bibrec_bib52x;
+TRUNCATE bibrec_bib53x;
+TRUNCATE bibrec_bib54x;
+TRUNCATE bibrec_bib55x;
+TRUNCATE bibrec_bib56x;
+TRUNCATE bibrec_bib57x;
+TRUNCATE bibrec_bib58x;
+TRUNCATE bibrec_bib59x;
+TRUNCATE bibrec_bib60x;
+TRUNCATE bibrec_bib61x;
+TRUNCATE bibrec_bib62x;
+TRUNCATE bibrec_bib63x;
+TRUNCATE bibrec_bib64x;
+TRUNCATE bibrec_bib65x;
+TRUNCATE bibrec_bib66x;
+TRUNCATE bibrec_bib67x;
+TRUNCATE bibrec_bib68x;
+TRUNCATE bibrec_bib69x;
+TRUNCATE bibrec_bib70x;
+TRUNCATE bibrec_bib71x;
+TRUNCATE bibrec_bib72x;
+TRUNCATE bibrec_bib73x;
+TRUNCATE bibrec_bib74x;
+TRUNCATE bibrec_bib75x;
+TRUNCATE bibrec_bib76x;
+TRUNCATE bibrec_bib77x;
+TRUNCATE bibrec_bib78x;
+TRUNCATE bibrec_bib79x;
+TRUNCATE bibrec_bib80x;
+TRUNCATE bibrec_bib81x;
+TRUNCATE bibrec_bib82x;
+TRUNCATE bibrec_bib83x;
+TRUNCATE bibrec_bib84x;
+TRUNCATE bibrec_bib85x;
+TRUNCATE bibrec_bib86x;
+TRUNCATE bibrec_bib87x;
+TRUNCATE bibrec_bib88x;
+TRUNCATE bibrec_bib89x;
+TRUNCATE bibrec_bib90x;
+TRUNCATE bibrec_bib91x;
+TRUNCATE bibrec_bib92x;
+TRUNCATE bibrec_bib93x;
+TRUNCATE bibrec_bib94x;
+TRUNCATE bibrec_bib95x;
+TRUNCATE bibrec_bib96x;
+TRUNCATE bibrec_bib97x;
+TRUNCATE bibrec_bib98x;
+TRUNCATE bibrec_bib99x;
+TRUNCATE bibfmt;
+TRUNCATE bibwords1;
+TRUNCATE bibwords2;
+TRUNCATE bibwords3;
+TRUNCATE bibwords4;
+TRUNCATE bibwords5;
+TRUNCATE bibwords6;
+TRUNCATE bibwords7;
+TRUNCATE bibwords8;
+TRUNCATE bibwords9;
+TRUNCATE bibwords1r;
+TRUNCATE bibwords2r;
+TRUNCATE bibwords3r;
+TRUNCATE bibwords4r;
+TRUNCATE bibwords5r;
+TRUNCATE bibwords6r;
+TRUNCATE bibwords7r;
+TRUNCATE bibwords8r;
+TRUNCATE bibwords9r;
diff --git a/modules/miscutil/sql/tabcreate.sql b/modules/miscutil/sql/tabcreate.sql
new file mode 100644
index 000000000..e36f19b84
--- /dev/null
+++ b/modules/miscutil/sql/tabcreate.sql
@@ -0,0 +1,2532 @@
+-- $Id$
+-- Create tables for the CDS Software.
+
+-- This file is part of the CERN Document Server Software (CDSware).
+-- Copyright (C) 2002 CERN.
+--
+-- The CDSware is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU General Public License as
+-- published by the Free Software Foundation; either version 2 of the
+-- License, or (at your option) any later version.
+--
+-- The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+-- 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+-- tables for bibliographic records:
+
+CREATE TABLE IF NOT EXISTS bibrec (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  creation_date datetime NOT NULL default '0000-00-00',
+  modification_date datetime NOT NULL default '0000-00-00',
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib00x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib01x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib02x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib03x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib04x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib05x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib06x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib07x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib08x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib09x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib10x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib11x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib12x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib13x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib14x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib15x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib16x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib17x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib18x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib19x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib20x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib21x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib22x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib23x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib24x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib25x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib26x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib27x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib28x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib29x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib30x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib31x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib32x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib33x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib34x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib35x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib36x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib37x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib38x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib39x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib40x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib41x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib42x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib43x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib44x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib45x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib46x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib47x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib48x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib49x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib50x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib51x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib52x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib53x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib54x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib55x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib56x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib57x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib58x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib59x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib60x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib61x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib62x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib63x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib64x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib65x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib66x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib67x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib68x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib69x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib70x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib71x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib72x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib73x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib74x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib75x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib76x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib77x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib78x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib79x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib80x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib81x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib82x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib83x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib84x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib85x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib86x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib87x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib88x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib89x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib90x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib91x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib92x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib93x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib94x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib95x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib96x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib97x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib98x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bib99x (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  tag varchar(6) NOT NULL default '',
+  value text NOT NULL,
+  PRIMARY KEY  (id),
+  KEY kt (tag),
+  KEY kv (value(35))
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib00x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib01x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib02x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib03x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib04x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib05x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib06x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib07x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib08x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib09x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib10x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib11x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib12x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib13x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib14x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib15x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib16x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib17x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib18x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib19x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib20x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib21x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib22x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib23x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib24x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib25x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib26x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib27x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib28x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib29x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib30x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib31x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib32x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib33x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib34x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib35x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib36x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib37x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib38x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib39x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib40x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib41x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib42x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib43x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib44x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib45x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib46x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib47x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib48x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib49x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib50x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib51x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib52x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib53x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib54x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib55x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib56x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib57x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib58x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib59x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib60x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib61x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib62x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib63x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib64x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib65x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib66x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib67x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib68x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib69x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib70x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib71x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib72x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib73x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib74x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib75x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib76x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib77x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib78x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib79x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib80x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib81x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib82x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib83x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib84x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib85x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib86x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib87x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib88x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib89x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib90x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib91x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib92x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib93x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib94x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib95x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib96x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib97x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib98x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibrec_bib99x (
+  id_bibrec mediumint(8) unsigned NOT NULL default '0',
+  id_bibxxx mediumint(8) unsigned NOT NULL default '0',
+  field_number smallint(5) unsigned default NULL,
+  KEY id_bibxxx (id_bibxxx),
+  KEY id_bibrec (id_bibrec)
+) TYPE=MyISAM;
+
+-- tables for bibliographic records formatted:
+
+CREATE TABLE IF NOT EXISTS bibfmt (
+  id mediumint(8) unsigned NOT NULL auto_increment,
+  id_bibrec int(8) unsigned NOT NULL default '0',
+  format varchar(10) NOT NULL default '',
+  last_updated datetime NOT NULL default '0000-00-00',
+  value longblob,
+  PRIMARY KEY  (id),
+  KEY format (format,id_bibrec)
+) TYPE=MyISAM;
+
+-- tables for word files:
+
+CREATE TABLE IF NOT EXISTS wordsindex (
+  id mediumint(9) unsigned NOT NULL,
+  name varchar(50) NOT NULL default '',
+  description varchar(255) NOT NULL default '',
+  last_updated datetime NOT NULL default '0000-00-00 00:00:00',
+  PRIMARY KEY  (id),
+  UNIQUE KEY name (name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS wordsindex_field (
+  id_wordsindex mediumint(9) unsigned NOT NULL,
+  id_field mediumint(9) unsigned NOT NULL,
+  word_separator_regexp text NOT NULL,
+  PRIMARY KEY  (id_wordsindex,id_field)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords1 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords2 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords3 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords4 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords5 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords6 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords7 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords8 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords9 (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  word varchar(50) default NULL,
+  hitlist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY word (word)
+) TYPE=MyISAM;
+
+--  reverse:
+
+CREATE TABLE IF NOT EXISTS bibwords1r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords2r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords3r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords4r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords5r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords6r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords7r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords8r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS bibwords9r (
+  id_bibrec mediumint(9) unsigned NOT NULL,
+  wordlist longblob,
+  type enum('CURRENT','FUTURE','TEMPORARY') NOT NULL default 'CURRENT',
+  PRIMARY KEY (id_bibrec,type)
+) TYPE=MyISAM;
+
+
+-- tables for collections and collection tree:
+
+CREATE TABLE IF NOT EXISTS collection (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  name varchar(255) NOT NULL,
+  nameshort varchar(255) NOT NULL,
+  namesuffix varchar(255),
+  dbquery text,
+  nbrecs int(10) unsigned default '0',
+  reclist longblob,
+  PRIMARY KEY  (id),
+  UNIQUE KEY name (name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS collection_collection (
+  id_dad mediumint(9) unsigned NOT NULL,
+  id_son mediumint(9) unsigned NOT NULL,
+  score tinyint(4) unsigned NOT NULL default '0',
+  PRIMARY KEY (id_dad,id_son)
+) TYPE=MyISAM;
+
+-- tables for OAI sets:
+
+CREATE TABLE IF NOT EXISTS oaiset (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  setName varchar(255) NOT NULL default '',
+  setSpec varchar(255) NOT NULL default '',
+  setDescription text,
+  PRIMARY KEY  (id),
+  UNIQUE KEY setSpec (setSpec)
+) TYPE=MyISAM;
+
+-- tables for portal elements:
+
+CREATE TABLE IF NOT EXISTS collection_portalbox (
+  id_collection mediumint(9) unsigned NOT NULL,
+  id_portalbox mediumint(9) unsigned NOT NULL,
+  position char(3) NOT NULL default 'top',
+  score tinyint(4) unsigned NOT NULL default '0',
+  PRIMARY KEY  (id_collection,id_portalbox)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS portalbox (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  title text NOT NULL,
+  body text NOT NULL,
+  UNIQUE KEY id (id)
+) TYPE=MyISAM;
+
+-- tables for search examples:
+
+CREATE TABLE IF NOT EXISTS collection_example (
+  id_collection mediumint(9) unsigned NOT NULL,
+  id_example mediumint(9) unsigned NOT NULL,
+  score tinyint(4) unsigned NOT NULL default '0',
+  PRIMARY KEY  (id_collection,id_example)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS example (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  type text NOT NULL default '',
+  body text NOT NULL,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+-- tables for collection formats:
+
+CREATE TABLE IF NOT EXISTS collection_format (
+  id_collection mediumint(9) unsigned NOT NULL,
+  id_format mediumint(9) unsigned NOT NULL,
+  score tinyint(4) unsigned NOT NULL default '0',
+  PRIMARY KEY  (id_collection,id_format)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS format (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  name varchar(255) NOT NULL,
+  code varchar(6) NOT NULL,
+  PRIMARY KEY  (id),
+  UNIQUE KEY code (code)
+) TYPE=MyISAM;
+
+-- tables for search options and MARC tags:
+
+CREATE TABLE IF NOT EXISTS collection_field_fieldvalue (
+  id_collection mediumint(9) unsigned NOT NULL,
+  id_field mediumint(9) unsigned NOT NULL,
+  id_fieldvalue mediumint(9) unsigned,
+  type char(3) NOT NULL default 'src',
+  score tinyint(4) unsigned NOT NULL default '0',
+  score_fieldvalue tinyint(4) unsigned NOT NULL default '0',
+  KEY id_collection (id_collection),
+  KEY id_field (id_field),
+  KEY id_fieldvalue (id_fieldvalue)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS field (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  name varchar(255) NOT NULL,
+  nameshort varchar(255) NOT NULL,
+  code varchar(255) NOT NULL,
+  PRIMARY KEY  (id),
+  UNIQUE KEY code (code)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS fieldvalue (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  name varchar(255) NOT NULL,
+  nameshort varchar(255) NOT NULL,
+  value text NOT NULL,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS field_tag (
+  id_field mediumint(9) unsigned NOT NULL,
+  id_tag mediumint(9) unsigned NOT NULL,
+  score tinyint(4) unsigned NOT NULL default '0',
+  PRIMARY KEY  (id_field,id_tag)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS tag (
+  id mediumint(9) unsigned NOT NULL auto_increment,
+  value char(6) NOT NULL,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+-- tables for publication requests:
+
+CREATE TABLE IF NOT EXISTS publreq (
+  id int(11) NOT NULL auto_increment,
+  host varchar(255) NOT NULL default '',
+  date varchar(255) NOT NULL default '',
+  name varchar(255) NOT NULL default '',
+  email varchar(255) NOT NULL default '',
+  address text NOT NULL,
+  publication text NOT NULL,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+-- table for sessions and users:
+
+CREATE TABLE IF NOT EXISTS session (
+  session_key varchar(32) NOT NULL default '',
+  session_vars text NOT NULL,
+  session_expiry int(11) unsigned NOT NULL default '0',
+  UNIQUE KEY session_key (session_key)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS user (
+  id int(15) unsigned NOT NULL auto_increment,
+  email varchar(255) NOT NULL default '',
+  password varchar(20) default NULL,
+  note varchar(255) default NULL,
+  settings varchar(255) default NULL,
+  UNIQUE KEY id (id),
+  KEY email (email)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS rules (
+  id int(11) NOT NULL auto_increment,
+  name varchar(40) NOT NULL default '',
+  description text NOT NULL,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS user_rule (
+  id_user int(11) NOT NULL default '0',
+  id_rule int(11) NOT NULL default '0',
+  id int(11) NOT NULL auto_increment,
+  param1 varchar(10) NOT NULL default '*',
+  param2 varchar(10) NOT NULL default '*',
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+-- tables for personal features (baskets, alerts, searches):
+
+CREATE TABLE IF NOT EXISTS user_query (
+  id_user int(15) unsigned NOT NULL default '0',
+  id_query int(15) unsigned NOT NULL default '0',
+  hostname varchar(50) default 'unknown host',
+  date datetime default NULL,
+  KEY id_user (id_user,id_query)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS query (
+  id int(15) unsigned NOT NULL auto_increment,
+  type char(1) NOT NULL default 'r',
+  base text,
+  pattern text,
+  url blob NOT NULL,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS user_basket (
+  id_user int(15) unsigned NOT NULL default '0',
+  id_basket int(15) unsigned NOT NULL default '0',
+  date_modification date NOT NULL default '0000-00-00',
+  PRIMARY KEY  (id_user,id_basket)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS basket (
+  id int(15) unsigned NOT NULL auto_increment,
+  name varchar(50) NOT NULL default '',
+  public char(1) default 'n',
+  PRIMARY KEY  (id),
+  KEY name (name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS basket_record (
+  id_basket int(15) unsigned NOT NULL default '0',
+  id_record int(15) unsigned NOT NULL default '0',
+  nb_order int(15) unsigned NOT NULL auto_increment,
+  PRIMARY KEY  (id_basket,id_record),
+  KEY nb_order (nb_order)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS record (
+  id int(15) unsigned NOT NULL auto_increment,
+  id_bibrec varchar(15) NOT NULL default '',
+  aleph text,
+  html text,
+  PRIMARY KEY  (id_bibrec),
+  UNIQUE KEY id (id)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS user_query_basket (
+  id_user int(15) unsigned NOT NULL default '0',
+  id_query int(15) unsigned NOT NULL default '0',
+  id_basket int(15) unsigned NOT NULL default '0',
+  frequency varchar(5) NOT NULL default '',
+  date_creation date default NULL,
+  date_lastrun date default '0000-00-00',
+  alert_name varchar(30) NOT NULL,
+  notification char(1) NOT NULL default 'y',
+  PRIMARY KEY  (id_user,id_query,frequency,id_basket),
+  KEY alert_name (alert_name)
+) TYPE=MyISAM;
+
+-- tables for FlexElink:
+
+CREATE TABLE IF NOT EXISTS flxFORMATS (
+  name varchar(255) NOT NULL default '',
+  value text,
+  doc text,
+  serialized longtext,
+  PRIMARY KEY  (name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxKBS (
+  kb_name varchar(255) NOT NULL default '',
+  kb_table varchar(255) NOT NULL default '',
+  doc text,
+  PRIMARY KEY  (kb_name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxKBDBCOLLID2COLL (
+  vkey varchar(255) NOT NULL default '',
+  value text,
+  PRIMARY KEY  (vkey)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxKBEJOURNALS (
+  vkey varchar(255) NOT NULL default '',
+  value text,
+  PRIMARY KEY  (vkey)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxLINKTYPES (
+  linktype varchar(255) NOT NULL default '',
+  check_exists enum('Y','N') NOT NULL default 'N',
+  solvingtype enum('INT','EXT') NOT NULL default 'EXT',
+  base_file varchar(255) NOT NULL default '',
+  base_url varchar(255) NOT NULL default '',
+  PRIMARY KEY  (linktype)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxLINKTYPECONDITIONS (
+  linktype varchar(255) NOT NULL default '',
+  eval_order int(11) NOT NULL default '0',
+  el_condition text NOT NULL,
+  el_action text NOT NULL,
+  solvingtype enum('INT','EXT') NOT NULL default 'EXT',
+  base_file varchar(255) NOT NULL default '',
+  base_url varchar(255) NOT NULL default '',
+  PRIMARY KEY  (linktype,eval_order)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxLINKTYPECONDITIONSACTIONS (
+  linktype varchar(255) NOT NULL default '',
+  eval_order int(11) NOT NULL default '0',
+  apply_order int(11) NOT NULL default '0',
+  el_code text,
+  PRIMARY KEY  (linktype,eval_order,apply_order)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxLINKTYPECONDITIONSFILEFORMATS (
+  linktype varchar(255) NOT NULL default '',
+  eval_order int(11) NOT NULL default '0',
+  fname varchar(30) NOT NULL default '',
+  PRIMARY KEY  (linktype,eval_order,fname)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxFILEFORMATS (
+  name varchar(30) NOT NULL default '',
+  text varchar(255) default '',
+  extensions text,
+  PRIMARY KEY  (name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxLINKTYPEPARAMS (
+  linktype varchar(255) NOT NULL default '',
+  pname varchar(100) NOT NULL default '',
+  ord tinyint(4) NOT NULL default '0',
+  PRIMARY KEY  (linktype,pname),
+  UNIQUE KEY IDX_LINKTYPE_PARAMS_ORD (linktype,ord)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxXMLMARCEXTRULES (
+  type varchar(8) NOT NULL default '',
+  varname varchar(50) NOT NULL default '',
+  att_id varchar(150) default NULL,
+  att_i1 varchar(150) default NULL,
+  att_i2 varchar(150) default NULL,
+  mvalues enum('S','N') NOT NULL default 'S',
+  ftype enum("DATAFIELD", "CONTROLFIELD") not null,
+  PRIMARY KEY  (type,varname)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxXMLMARCEXTRULESUBFIELDS (
+  type varchar(8) NOT NULL default '',
+  varname varchar(50) NOT NULL default '',
+  sfname varchar(50) NOT NULL default '',
+  att_label varchar(150) default NULL,
+  PRIMARY KEY  (type,varname,sfname)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxBEHAVIORCONDITIONSACTIONS (
+  otype varchar(40) NOT NULL default '',
+  eval_order int(11) NOT NULL default '0',
+  apply_order int(11) NOT NULL default '0',
+  locator text,
+  el_code text,
+  PRIMARY KEY  (otype,eval_order,apply_order)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxBEHAVIORCONDITIONS (
+  otype varchar(40) NOT NULL default '',
+  eval_order int(11) NOT NULL default '0',
+  el_condition text NOT NULL,
+  PRIMARY KEY  (otype,eval_order)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxBEHAVIORS (
+  name varchar(40) NOT NULL default '',
+  type enum('NORMAL','IENRICH') NOT NULL default 'NORMAL',
+  doc text,
+  PRIMARY KEY  (name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxUDFS (
+  fname varchar(100) NOT NULL default '',
+  code text NOT NULL,
+  rtype enum('STRING','BOOL') NOT NULL default 'STRING',
+  doc text,
+  PRIMARY KEY  (fname)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxUDFPARAMS (
+  fname varchar(100) NOT NULL default '',
+  pname varchar(100) NOT NULL default '',
+  ord tinyint(4) NOT NULL default '0',
+  PRIMARY KEY  (fname,pname),
+  UNIQUE KEY IDX_UDFS_PARAMS_ORD (fname,ord)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxUSERS (
+  id int(11) NOT NULL default '0',
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS flxREFORMAT (
+  id int(10) unsigned NOT NULL auto_increment,
+  user varchar(50) NOT NULL,
+  date DATETIME NOT NULL,
+  reg_select text,
+  otypes varchar(40) not null,
+  state varchar(20),
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+-- tables for webSubmit:
+
+CREATE TABLE IF NOT EXISTS sbmACTION (
+  lactname text,
+  sactname char(3) NOT NULL default '',
+  dir text,
+  cd date default NULL,
+  md date default NULL,
+  actionbutton text,
+  statustext text,
+  PRIMARY KEY  (sactname)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmALLFUNCDESCR (
+  function varchar(40) NOT NULL default '',
+  description tinytext,
+  PRIMARY KEY  (function)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmAPPROVAL (
+  doctype varchar(10) NOT NULL default '',
+  categ varchar(50) NOT NULL default '',
+  rn varchar(50) NOT NULL default '',
+  status varchar(10) NOT NULL default '',
+  dFirstReq datetime NOT NULL default '0000-00-00 00:00:00',
+  dLastReq datetime NOT NULL default '0000-00-00 00:00:00',
+  dAction datetime NOT NULL default '0000-00-00 00:00:00',
+  access varchar(20) NOT NULL default '0',
+  PRIMARY KEY  (rn)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmCOLLECTION (
+  id int(11) NOT NULL auto_increment,
+  name varchar(100) NOT NULL default '',
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS sbmCOLLECTION_sbmCOLLECTION (
+  id_father int(11) NOT NULL default '0',
+  id_son int(11) NOT NULL default '0',
+  catalogue_order int(11) NOT NULL default '0'
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS sbmCOLLECTION_sbmDOCTYPE (
+  id_father int(11) NOT NULL default '0',
+  id_son char(5) NOT NULL default '0',
+  catalogue_order int(11) NOT NULL default '0'
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS sbmCATEGORIES (
+  doctype varchar(10) NOT NULL default '',
+  sname varchar(75) NOT NULL default '',
+  lname varchar(75) NOT NULL default '',
+  KEY sname (sname)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmCHECKS (
+  chname varchar(15) NOT NULL default '',
+  chdesc text,
+  cd date default NULL,
+  md date default NULL,
+  chefi1 text,
+  chefi2 text,
+  PRIMARY KEY  (chname)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmDOCTYPE (
+  ldocname text,
+  sdocname varchar(10) default NULL,
+  cd date default NULL,
+  md date default NULL,
+  description text
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmFIELD (
+  subname varchar(10) default NULL,
+  pagenb int(11) default NULL,
+  fieldnb int(11) default NULL,
+  fidesc varchar(15) default NULL,
+  fitext text,
+  level char(1) default NULL,
+  sdesc text,
+  checkn text,
+  cd date default NULL,
+  md date default NULL,
+  fiefi1 text,
+  fiefi2 text
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmFIELDDESC (
+  name varchar(15) NOT NULL default '',
+  alephcode varchar(10) default NULL,
+  marccode varchar(10) NOT NULL default '',
+  type char(1) default NULL,
+  size int(11) default NULL,
+  rows int(11) default NULL,
+  cols int(11) default NULL,
+  maxlength int(11) default NULL,
+  val text,
+  fidesc text,
+  cd date default NULL,
+  md date default NULL,
+  fddfi1 text,
+  fddfi2 text,
+  cookie int(11) default '0',
+  PRIMARY KEY  (name)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmFORMATEXTENSION (
+  FILE_FORMAT text NOT NULL,
+  FILE_EXTENSION text NOT NULL
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmFUNCTIONS (
+  action varchar(10) NOT NULL default '',
+  doctype varchar(10) NOT NULL default '',
+  function varchar(40) NOT NULL default '',
+  score int(11) NOT NULL default '0',
+  step tinyint(4) NOT NULL default '1'
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmFUNDESC (
+  function varchar(40) NOT NULL default '',
+  param varchar(40) default NULL
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmGFILERESULT (
+  FORMAT text NOT NULL,
+  RESULT text NOT NULL
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmIMPLEMENT (
+  docname varchar(10) default NULL,
+  actname char(3) default NULL,
+  displayed char(1) default NULL,
+  subname varchar(13) default NULL,
+  nbpg int(11) default NULL,
+  cd date default NULL,
+  md date default NULL,
+  buttonorder int(11) default NULL,
+  statustext text,
+  level char(1) NOT NULL default '',
+  score int(11) NOT NULL default '0',
+  stpage int(11) NOT NULL default '0',
+  endtxt varchar(100) NOT NULL default ''
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmMODIFY (
+  modn varchar(15) default NULL,
+  modd text,
+  cd date default NULL,
+  md date default NULL,
+  modfi1 text,
+  modfi2 text
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmPARAMETERS (
+  doctype varchar(10) NOT NULL default '',
+  name varchar(20) NOT NULL default '',
+  value varchar(200) NOT NULL default '',
+  PRIMARY KEY  (doctype,name)
+) TYPE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS sbmPUBLICATION (
+  doctype varchar(10) NOT NULL default '',
+  categ varchar(50) NOT NULL default '',
+  rn varchar(50) NOT NULL default '',
+  status varchar(10) NOT NULL default '',
+  dFirstReq datetime NOT NULL default '0000-00-00 00:00:00',
+  dLastReq datetime NOT NULL default '0000-00-00 00:00:00',
+  dAction datetime NOT NULL default '0000-00-00 00:00:00',
+  accessref varchar(20) NOT NULL default '',
+  accessedi varchar(20) NOT NULL default '',
+  access varchar(20) NOT NULL default '',
+  referees varchar(50) NOT NULL default '',
+  authoremail varchar(50) NOT NULL default '',
+  dRefSelection datetime NOT NULL default '0000-00-00 00:00:00',
+  dRefRec datetime NOT NULL default '0000-00-00 00:00:00',
+  dEdiRec datetime NOT NULL default '0000-00-00 00:00:00',
+  accessspo varchar(20) NOT NULL default '',
+  journal varchar(100) default NULL,
+  PRIMARY KEY  (doctype,categ,rn)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmPUBLICATIONCOMM (
+  id int(11) NOT NULL auto_increment,
+  id_parent int(11) default '0',
+  rn varchar(100) NOT NULL default '',
+  firstname varchar(100) default NULL,
+  secondname varchar(100) default NULL,
+  email varchar(100) default NULL,
+  date varchar(40) NOT NULL default '',
+  synopsis varchar(255) NOT NULL default '',
+  commentfulltext text,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmPUBLICATIONDATA (
+  doctype varchar(10) NOT NULL default '',
+  editoboard varchar(250) NOT NULL default '',
+  base varchar(10) NOT NULL default '',
+  logicalbase varchar(10) NOT NULL default '',
+  spokesperson varchar(50) NOT NULL default '',
+  PRIMARY KEY  (doctype)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmREFEREES (
+  doctype varchar(10) NOT NULL default '',
+  categ varchar(10) NOT NULL default '',
+  name varchar(50) NOT NULL default '',
+  address varchar(50) NOT NULL default '',
+  rid int(11) NOT NULL auto_increment,
+  PRIMARY KEY  (rid)
+) TYPE=MyISAM PACK_KEYS=1;
+
+CREATE TABLE IF NOT EXISTS sbmSUBMISSIONS (
+  email varchar(50) NOT NULL default '',
+  doctype varchar(10) NOT NULL default '',
+  action varchar(10) NOT NULL default '',
+  status varchar(10) NOT NULL default '',
+  id varchar(30) NOT NULL default '',
+  reference varchar(40) NOT NULL default '',
+  cd datetime NOT NULL default '0000-00-00 00:00:00',
+  md datetime NOT NULL default '0000-00-00 00:00:00'
+) TYPE=MyISAM;
+
+-- Scheduler tables
+
+CREATE TABLE IF NOT EXISTS schTASKS (
+  id int(10) unsigned NOT NULL auto_increment,
+  proc varchar(20) NOT NULL,
+  user varchar(50) NOT NULL,
+  date DATETIME NOT NULL,
+  sleeptime varchar(20),
+  arguments text,
+  state varchar(20),
+  progress varchar(255),
+  output varchar(255),
+  error varchar(255),
+  score int(11) NOT NULL default '0',
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+
+-- end of file
diff --git a/modules/miscutil/sql/tabdrop.sql b/modules/miscutil/sql/tabdrop.sql
new file mode 100644
index 000000000..3a654f6ba
--- /dev/null
+++ b/modules/miscutil/sql/tabdrop.sql
@@ -0,0 +1,314 @@
+-- $Id$
+-- Drop tables for the CDS Software.
+
+-- This file is part of the CERN Document Server Software (CDSware).
+-- Copyright (C) 2002 CERN.
+--
+-- The CDSware is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU General Public License as
+-- published by the Free Software Foundation; either version 2 of the
+-- License, or (at your option) any later version.
+--
+-- The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+-- 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+DROP TABLE IF EXISTS bibrec;
+DROP TABLE IF EXISTS bib00x;
+DROP TABLE IF EXISTS bib01x;
+DROP TABLE IF EXISTS bib02x;
+DROP TABLE IF EXISTS bib03x;
+DROP TABLE IF EXISTS bib04x;
+DROP TABLE IF EXISTS bib05x;
+DROP TABLE IF EXISTS bib06x;
+DROP TABLE IF EXISTS bib07x;
+DROP TABLE IF EXISTS bib08x;
+DROP TABLE IF EXISTS bib09x;
+DROP TABLE IF EXISTS bib10x;
+DROP TABLE IF EXISTS bib11x;
+DROP TABLE IF EXISTS bib12x;
+DROP TABLE IF EXISTS bib13x;
+DROP TABLE IF EXISTS bib14x;
+DROP TABLE IF EXISTS bib15x;
+DROP TABLE IF EXISTS bib16x;
+DROP TABLE IF EXISTS bib17x;
+DROP TABLE IF EXISTS bib18x;
+DROP TABLE IF EXISTS bib19x;
+DROP TABLE IF EXISTS bib20x;
+DROP TABLE IF EXISTS bib21x;
+DROP TABLE IF EXISTS bib22x;
+DROP TABLE IF EXISTS bib23x;
+DROP TABLE IF EXISTS bib24x;
+DROP TABLE IF EXISTS bib25x;
+DROP TABLE IF EXISTS bib26x;
+DROP TABLE IF EXISTS bib27x;
+DROP TABLE IF EXISTS bib28x;
+DROP TABLE IF EXISTS bib29x;
+DROP TABLE IF EXISTS bib30x;
+DROP TABLE IF EXISTS bib31x;
+DROP TABLE IF EXISTS bib32x;
+DROP TABLE IF EXISTS bib33x;
+DROP TABLE IF EXISTS bib34x;
+DROP TABLE IF EXISTS bib35x;
+DROP TABLE IF EXISTS bib36x;
+DROP TABLE IF EXISTS bib37x;
+DROP TABLE IF EXISTS bib38x;
+DROP TABLE IF EXISTS bib39x;
+DROP TABLE IF EXISTS bib40x;
+DROP TABLE IF EXISTS bib41x;
+DROP TABLE IF EXISTS bib42x;
+DROP TABLE IF EXISTS bib43x;
+DROP TABLE IF EXISTS bib44x;
+DROP TABLE IF EXISTS bib45x;
+DROP TABLE IF EXISTS bib46x;
+DROP TABLE IF EXISTS bib47x;
+DROP TABLE IF EXISTS bib48x;
+DROP TABLE IF EXISTS bib49x;
+DROP TABLE IF EXISTS bib50x;
+DROP TABLE IF EXISTS bib51x;
+DROP TABLE IF EXISTS bib52x;
+DROP TABLE IF EXISTS bib53x;
+DROP TABLE IF EXISTS bib54x;
+DROP TABLE IF EXISTS bib55x;
+DROP TABLE IF EXISTS bib56x;
+DROP TABLE IF EXISTS bib57x;
+DROP TABLE IF EXISTS bib58x;
+DROP TABLE IF EXISTS bib59x;
+DROP TABLE IF EXISTS bib60x;
+DROP TABLE IF EXISTS bib61x;
+DROP TABLE IF EXISTS bib62x;
+DROP TABLE IF EXISTS bib63x;
+DROP TABLE IF EXISTS bib64x;
+DROP TABLE IF EXISTS bib65x;
+DROP TABLE IF EXISTS bib66x;
+DROP TABLE IF EXISTS bib67x;
+DROP TABLE IF EXISTS bib68x;
+DROP TABLE IF EXISTS bib69x;
+DROP TABLE IF EXISTS bib70x;
+DROP TABLE IF EXISTS bib71x;
+DROP TABLE IF EXISTS bib72x;
+DROP TABLE IF EXISTS bib73x;
+DROP TABLE IF EXISTS bib74x;
+DROP TABLE IF EXISTS bib75x;
+DROP TABLE IF EXISTS bib76x;
+DROP TABLE IF EXISTS bib77x;
+DROP TABLE IF EXISTS bib78x;
+DROP TABLE IF EXISTS bib79x;
+DROP TABLE IF EXISTS bib80x;
+DROP TABLE IF EXISTS bib81x;
+DROP TABLE IF EXISTS bib82x;
+DROP TABLE IF EXISTS bib83x;
+DROP TABLE IF EXISTS bib84x;
+DROP TABLE IF EXISTS bib85x;
+DROP TABLE IF EXISTS bib86x;
+DROP TABLE IF EXISTS bib87x;
+DROP TABLE IF EXISTS bib88x;
+DROP TABLE IF EXISTS bib89x;
+DROP TABLE IF EXISTS bib90x;
+DROP TABLE IF EXISTS bib91x;
+DROP TABLE IF EXISTS bib92x;
+DROP TABLE IF EXISTS bib93x;
+DROP TABLE IF EXISTS bib94x;
+DROP TABLE IF EXISTS bib95x;
+DROP TABLE IF EXISTS bib96x;
+DROP TABLE IF EXISTS bib97x;
+DROP TABLE IF EXISTS bib98x;
+DROP TABLE IF EXISTS bib99x;
+DROP TABLE IF EXISTS bibrec_bib00x;
+DROP TABLE IF EXISTS bibrec_bib01x;
+DROP TABLE IF EXISTS bibrec_bib02x;
+DROP TABLE IF EXISTS bibrec_bib03x;
+DROP TABLE IF EXISTS bibrec_bib04x;
+DROP TABLE IF EXISTS bibrec_bib05x;
+DROP TABLE IF EXISTS bibrec_bib06x;
+DROP TABLE IF EXISTS bibrec_bib07x;
+DROP TABLE IF EXISTS bibrec_bib08x;
+DROP TABLE IF EXISTS bibrec_bib09x;
+DROP TABLE IF EXISTS bibrec_bib10x;
+DROP TABLE IF EXISTS bibrec_bib11x;
+DROP TABLE IF EXISTS bibrec_bib12x;
+DROP TABLE IF EXISTS bibrec_bib13x;
+DROP TABLE IF EXISTS bibrec_bib14x;
+DROP TABLE IF EXISTS bibrec_bib15x;
+DROP TABLE IF EXISTS bibrec_bib16x;
+DROP TABLE IF EXISTS bibrec_bib17x;
+DROP TABLE IF EXISTS bibrec_bib18x;
+DROP TABLE IF EXISTS bibrec_bib19x;
+DROP TABLE IF EXISTS bibrec_bib20x;
+DROP TABLE IF EXISTS bibrec_bib21x;
+DROP TABLE IF EXISTS bibrec_bib22x;
+DROP TABLE IF EXISTS bibrec_bib23x;
+DROP TABLE IF EXISTS bibrec_bib24x;
+DROP TABLE IF EXISTS bibrec_bib25x;
+DROP TABLE IF EXISTS bibrec_bib26x;
+DROP TABLE IF EXISTS bibrec_bib27x;
+DROP TABLE IF EXISTS bibrec_bib28x;
+DROP TABLE IF EXISTS bibrec_bib29x;
+DROP TABLE IF EXISTS bibrec_bib30x;
+DROP TABLE IF EXISTS bibrec_bib31x;
+DROP TABLE IF EXISTS bibrec_bib32x;
+DROP TABLE IF EXISTS bibrec_bib33x;
+DROP TABLE IF EXISTS bibrec_bib34x;
+DROP TABLE IF EXISTS bibrec_bib35x;
+DROP TABLE IF EXISTS bibrec_bib36x;
+DROP TABLE IF EXISTS bibrec_bib37x;
+DROP TABLE IF EXISTS bibrec_bib38x;
+DROP TABLE IF EXISTS bibrec_bib39x;
+DROP TABLE IF EXISTS bibrec_bib40x;
+DROP TABLE IF EXISTS bibrec_bib41x;
+DROP TABLE IF EXISTS bibrec_bib42x;
+DROP TABLE IF EXISTS bibrec_bib43x;
+DROP TABLE IF EXISTS bibrec_bib44x;
+DROP TABLE IF EXISTS bibrec_bib45x;
+DROP TABLE IF EXISTS bibrec_bib46x;
+DROP TABLE IF EXISTS bibrec_bib47x;
+DROP TABLE IF EXISTS bibrec_bib48x;
+DROP TABLE IF EXISTS bibrec_bib49x;
+DROP TABLE IF EXISTS bibrec_bib50x;
+DROP TABLE IF EXISTS bibrec_bib51x;
+DROP TABLE IF EXISTS bibrec_bib52x;
+DROP TABLE IF EXISTS bibrec_bib53x;
+DROP TABLE IF EXISTS bibrec_bib54x;
+DROP TABLE IF EXISTS bibrec_bib55x;
+DROP TABLE IF EXISTS bibrec_bib56x;
+DROP TABLE IF EXISTS bibrec_bib57x;
+DROP TABLE IF EXISTS bibrec_bib58x;
+DROP TABLE IF EXISTS bibrec_bib59x;
+DROP TABLE IF EXISTS bibrec_bib60x;
+DROP TABLE IF EXISTS bibrec_bib61x;
+DROP TABLE IF EXISTS bibrec_bib62x;
+DROP TABLE IF EXISTS bibrec_bib63x;
+DROP TABLE IF EXISTS bibrec_bib64x;
+DROP TABLE IF EXISTS bibrec_bib65x;
+DROP TABLE IF EXISTS bibrec_bib66x;
+DROP TABLE IF EXISTS bibrec_bib67x;
+DROP TABLE IF EXISTS bibrec_bib68x;
+DROP TABLE IF EXISTS bibrec_bib69x;
+DROP TABLE IF EXISTS bibrec_bib70x;
+DROP TABLE IF EXISTS bibrec_bib71x;
+DROP TABLE IF EXISTS bibrec_bib72x;
+DROP TABLE IF EXISTS bibrec_bib73x;
+DROP TABLE IF EXISTS bibrec_bib74x;
+DROP TABLE IF EXISTS bibrec_bib75x;
+DROP TABLE IF EXISTS bibrec_bib76x;
+DROP TABLE IF EXISTS bibrec_bib77x;
+DROP TABLE IF EXISTS bibrec_bib78x;
+DROP TABLE IF EXISTS bibrec_bib79x;
+DROP TABLE IF EXISTS bibrec_bib80x;
+DROP TABLE IF EXISTS bibrec_bib81x;
+DROP TABLE IF EXISTS bibrec_bib82x;
+DROP TABLE IF EXISTS bibrec_bib83x;
+DROP TABLE IF EXISTS bibrec_bib84x;
+DROP TABLE IF EXISTS bibrec_bib85x;
+DROP TABLE IF EXISTS bibrec_bib86x;
+DROP TABLE IF EXISTS bibrec_bib87x;
+DROP TABLE IF EXISTS bibrec_bib88x;
+DROP TABLE IF EXISTS bibrec_bib89x;
+DROP TABLE IF EXISTS bibrec_bib90x;
+DROP TABLE IF EXISTS bibrec_bib91x;
+DROP TABLE IF EXISTS bibrec_bib92x;
+DROP TABLE IF EXISTS bibrec_bib93x;
+DROP TABLE IF EXISTS bibrec_bib94x;
+DROP TABLE IF EXISTS bibrec_bib95x;
+DROP TABLE IF EXISTS bibrec_bib96x;
+DROP TABLE IF EXISTS bibrec_bib97x;
+DROP TABLE IF EXISTS bibrec_bib98x;
+DROP TABLE IF EXISTS bibrec_bib99x;
+DROP TABLE IF EXISTS bibfmt;
+DROP TABLE IF EXISTS bibwords1;
+DROP TABLE IF EXISTS bibwords2;
+DROP TABLE IF EXISTS bibwords3;
+DROP TABLE IF EXISTS bibwords4;
+DROP TABLE IF EXISTS bibwords5;
+DROP TABLE IF EXISTS bibwords6;
+DROP TABLE IF EXISTS bibwords7;
+DROP TABLE IF EXISTS bibwords8;
+DROP TABLE IF EXISTS bibwords9;
+DROP TABLE IF EXISTS bibwords1r;
+DROP TABLE IF EXISTS bibwords2r;
+DROP TABLE IF EXISTS bibwords3r;
+DROP TABLE IF EXISTS bibwords4r;
+DROP TABLE IF EXISTS bibwords5r;
+DROP TABLE IF EXISTS bibwords6r;
+DROP TABLE IF EXISTS bibwords7r;
+DROP TABLE IF EXISTS bibwords8r;
+DROP TABLE IF EXISTS bibwords9r;
+DROP TABLE IF EXISTS collection;
+DROP TABLE IF EXISTS oaiset;
+DROP TABLE IF EXISTS collection_collection;
+DROP TABLE IF EXISTS collection_portalbox;
+DROP TABLE IF EXISTS portalbox;
+DROP TABLE IF EXISTS collection_example;
+DROP TABLE IF EXISTS example;
+DROP TABLE IF EXISTS collection_format;
+DROP TABLE IF EXISTS format;
+DROP TABLE IF EXISTS collection_field_fieldvalue;
+DROP TABLE IF EXISTS field;
+DROP TABLE IF EXISTS fieldvalue;
+DROP TABLE IF EXISTS field_tag;
+DROP TABLE IF EXISTS tag;
+DROP TABLE IF EXISTS publreq;
+DROP TABLE IF EXISTS session;
+DROP TABLE IF EXISTS user;
+DROP TABLE IF EXISTS rules;
+DROP TABLE IF EXISTS user_rule;
+DROP TABLE IF EXISTS user_query;
+DROP TABLE IF EXISTS query;
+DROP TABLE IF EXISTS user_basket;
+DROP TABLE IF EXISTS basket;
+DROP TABLE IF EXISTS basket_record;
+DROP TABLE IF EXISTS record;
+DROP TABLE IF EXISTS user_query_basket;
+DROP TABLE IF EXISTS wordsindex;
+DROP TABLE IF EXISTS wordsindex_field;
+DROP TABLE IF EXISTS flxFORMATS;
+DROP TABLE IF EXISTS flxKBS;
+DROP TABLE IF EXISTS flxKBDBCOLLID2COLL;
+DROP TABLE IF EXISTS flxKBEJOURNALS;
+DROP TABLE IF EXISTS flxLINKTYPES;
+DROP TABLE IF EXISTS flxLINKTYPECONDITIONS;
+DROP TABLE IF EXISTS flxLINKTYPECONDITIONSACTIONS;
+DROP TABLE IF EXISTS flxLINKTYPECONDITIONSFILEFORMATS;
+DROP TABLE IF EXISTS flxFILEFORMATS;
+DROP TABLE IF EXISTS flxLINKTYPEPARAMS;
+DROP TABLE IF EXISTS flxXMLMARCEXTRULES;
+DROP TABLE IF EXISTS flxXMLMARCEXTRULESUBFIELDS;
+DROP TABLE IF EXISTS flxBEHAVIORCONDITIONSACTIONS;
+DROP TABLE IF EXISTS flxBEHAVIORCONDITIONS;
+DROP TABLE IF EXISTS flxBEHAVIORS;
+DROP TABLE IF EXISTS flxUDFS;
+DROP TABLE IF EXISTS flxUDFPARAMS;
+DROP TABLE IF EXISTS flxUSERS;
+DROP TABLE IF EXISTS flxREFORMAT;
+DROP TABLE IF EXISTS sbmACTION;
+DROP TABLE IF EXISTS sbmALLFUNCDESCR;
+DROP TABLE IF EXISTS sbmAPPROVAL;
+DROP TABLE IF EXISTS sbmCOLLECTION;
+DROP TABLE IF EXISTS sbmCOLLECTION_sbmCOLLECTION;
+DROP TABLE IF EXISTS sbmCOLLECTION_sbmDOCTYPE;
+DROP TABLE IF EXISTS sbmCATEGORIES;
+DROP TABLE IF EXISTS sbmCHECKS;
+DROP TABLE IF EXISTS sbmDOCTYPE;
+DROP TABLE IF EXISTS sbmFIELD;
+DROP TABLE IF EXISTS sbmFIELDDESC;
+DROP TABLE IF EXISTS sbmFORMATEXTENSION;
+DROP TABLE IF EXISTS sbmFUNCTIONS;
+DROP TABLE IF EXISTS sbmFUNDESC;
+DROP TABLE IF EXISTS sbmGFILERESULT;
+DROP TABLE IF EXISTS sbmIMPLEMENT;
+DROP TABLE IF EXISTS sbmMODIFY;
+DROP TABLE IF EXISTS sbmPARAMETERS;
+DROP TABLE IF EXISTS sbmPUBLICATION;
+DROP TABLE IF EXISTS sbmPUBLICATIONCOMM;
+DROP TABLE IF EXISTS sbmPUBLICATIONDATA;
+DROP TABLE IF EXISTS sbmREFEREES;
+DROP TABLE IF EXISTS sbmSUBMISSIONS;
+DROP TABLE IF EXISTS schTASKS;
+
+
+-- end of file
diff --git a/modules/miscutil/sql/tabfill.sql.wml b/modules/miscutil/sql/tabfill.sql.wml
new file mode 100644
index 000000000..60df4752d
--- /dev/null
+++ b/modules/miscutil/sql/tabfill.sql.wml
@@ -0,0 +1,1326 @@
+## $Id$
+## Fills configuration tables with defaults.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## local defaults, i.e. WML config variables are to be used:
+INSERT INTO collection VALUES (1,'<CDSNAME>','<CDSNAME>',NULL,NULL,NULL,NULL);
+INSERT INTO user VALUES (1, '<ADMINEMAIL>', '', NULL, NULL);
+INSERT INTO flxLINKTYPES VALUES ('AUTHOR_SEARCH','N','EXT','','');
+INSERT INTO flxLINKTYPES VALUES ('KEYWORD_SEARCH','N','EXT','','');
+INSERT INTO flxLINKTYPECONDITIONS VALUES ('AUTHOR_SEARCH',0,' \"\"=\"\"	','\"<WEBURL>/search.py?f=author&p=\" urlencode($author)','EXT','','');
+INSERT INTO flxLINKTYPECONDITIONS VALUES ('KEYWORD_SEARCH',0,' \"\"=\"\"	','\"<WEBURL>/search.py?f=keyword&p=\" urlencode($keyword)','EXT','','');
+INSERT INTO flxLINKTYPECONDITIONSACTIONS VALUES ('AUTHOR_SEARCH',0,0,'\"<WEBURL>/search.py?f=author&p=\" urlencode($author)');
+INSERT INTO flxLINKTYPECONDITIONSACTIONS VALUES ('KEYWORD_SEARCH',0,0,'\"<WEBURL>/search.py?f=keyword&p=\" urlencode($keyword)');
+INSERT INTO flxLINKTYPEPARAMS VALUES ('AUTHOR_SEARCH','AUTHOR',0);
+INSERT INTO flxLINKTYPEPARAMS VALUES ('KEYWORD_SEARCH','KEYWORD',0);
+
+# generally suitable defaults:
+<protect>
+INSERT INTO field VALUES (1,'any field','any field','anyfield');
+INSERT INTO field VALUES (2,'title','title','title');
+INSERT INTO field VALUES (3,'author','author','author');
+INSERT INTO field VALUES (4,'abstract','abstract','abstract');
+INSERT INTO field VALUES (5,'keyword','keyword','keyword');
+INSERT INTO field VALUES (6,'report number','report no.','reportnumber');
+INSERT INTO field VALUES (7,'subject','subject','subject');
+INSERT INTO field VALUES (8,'reference','reference','reference');
+INSERT INTO field VALUES (9,'fulltext','fulltext','fulltext');
+INSERT INTO field VALUES (10,'collection','collection','collection');
+INSERT INTO field VALUES (11,'division','division','division');
+INSERT INTO field VALUES (12,'year','year','year');
+
+INSERT INTO field_tag VALUES (2,3,100);
+INSERT INTO field_tag VALUES (2,4,90);
+INSERT INTO field_tag VALUES (3,1,100);
+INSERT INTO field_tag VALUES (3,2,90);
+INSERT INTO field_tag VALUES (4,5,100);
+INSERT INTO field_tag VALUES (5,6,100);
+INSERT INTO field_tag VALUES (7,12,100);
+INSERT INTO field_tag VALUES (7,13,90);
+INSERT INTO field_tag VALUES (6,7,30);
+INSERT INTO field_tag VALUES (6,8,10);
+INSERT INTO field_tag VALUES (6,9,20);
+INSERT INTO field_tag VALUES (8,10,100);
+INSERT INTO field_tag VALUES (10,11,100);
+INSERT INTO field_tag VALUES (11,14,100);
+INSERT INTO field_tag VALUES (12,15,10);
+INSERT INTO field_tag VALUES (1,16,10);
+INSERT INTO field_tag VALUES (1,17,10);
+INSERT INTO field_tag VALUES (1,18,10);
+INSERT INTO field_tag VALUES (1,19,10);
+INSERT INTO field_tag VALUES (1,20,10);
+INSERT INTO field_tag VALUES (1,21,10);
+INSERT INTO field_tag VALUES (1,22,10);
+INSERT INTO field_tag VALUES (1,23,10);
+INSERT INTO field_tag VALUES (1,24,10);
+INSERT INTO field_tag VALUES (1,25,10);
+INSERT INTO field_tag VALUES (1,26,10);
+INSERT INTO field_tag VALUES (1,27,10);
+INSERT INTO field_tag VALUES (1,28,10);
+INSERT INTO field_tag VALUES (1,29,10);
+INSERT INTO field_tag VALUES (1,30,10);
+INSERT INTO field_tag VALUES (1,31,10);
+INSERT INTO field_tag VALUES (1,32,10);
+INSERT INTO field_tag VALUES (1,33,10);
+INSERT INTO field_tag VALUES (1,34,10);
+INSERT INTO field_tag VALUES (1,35,10);
+INSERT INTO field_tag VALUES (1,36,10);
+INSERT INTO field_tag VALUES (1,37,10);
+INSERT INTO field_tag VALUES (1,38,10);
+INSERT INTO field_tag VALUES (1,39,10);
+INSERT INTO field_tag VALUES (1,40,10);
+INSERT INTO field_tag VALUES (1,41,10);
+INSERT INTO field_tag VALUES (1,42,10);
+INSERT INTO field_tag VALUES (1,43,10);
+INSERT INTO field_tag VALUES (1,44,10);
+INSERT INTO field_tag VALUES (1,45,10);
+INSERT INTO field_tag VALUES (1,46,10);
+INSERT INTO field_tag VALUES (1,47,10);
+INSERT INTO field_tag VALUES (1,48,10);
+INSERT INTO field_tag VALUES (1,49,10);
+INSERT INTO field_tag VALUES (1,50,10);
+INSERT INTO field_tag VALUES (1,51,10);
+INSERT INTO field_tag VALUES (1,52,10);
+INSERT INTO field_tag VALUES (1,53,10);
+INSERT INTO field_tag VALUES (1,54,10);
+INSERT INTO field_tag VALUES (1,55,10);
+INSERT INTO field_tag VALUES (1,56,10);
+INSERT INTO field_tag VALUES (1,57,10);
+INSERT INTO field_tag VALUES (1,58,10);
+INSERT INTO field_tag VALUES (1,59,10);
+INSERT INTO field_tag VALUES (1,60,10);
+INSERT INTO field_tag VALUES (1,61,10);
+INSERT INTO field_tag VALUES (1,62,10);
+INSERT INTO field_tag VALUES (1,63,10);
+INSERT INTO field_tag VALUES (1,64,10);
+INSERT INTO field_tag VALUES (1,65,10);
+INSERT INTO field_tag VALUES (1,66,10);
+INSERT INTO field_tag VALUES (1,67,10);
+INSERT INTO field_tag VALUES (1,68,10);
+INSERT INTO field_tag VALUES (1,69,10);
+INSERT INTO field_tag VALUES (1,70,10);
+INSERT INTO field_tag VALUES (1,71,10);
+INSERT INTO field_tag VALUES (1,72,10);
+INSERT INTO field_tag VALUES (1,73,10);
+INSERT INTO field_tag VALUES (1,74,10);
+INSERT INTO field_tag VALUES (1,75,10);
+INSERT INTO field_tag VALUES (1,76,10);
+INSERT INTO field_tag VALUES (1,77,10);
+INSERT INTO field_tag VALUES (1,78,10);
+INSERT INTO field_tag VALUES (1,79,10);
+INSERT INTO field_tag VALUES (1,80,10);
+INSERT INTO field_tag VALUES (1,81,10);
+INSERT INTO field_tag VALUES (1,82,10);
+INSERT INTO field_tag VALUES (1,83,10);
+INSERT INTO field_tag VALUES (1,84,10);
+INSERT INTO field_tag VALUES (1,85,10);
+INSERT INTO field_tag VALUES (1,86,10);
+INSERT INTO field_tag VALUES (1,87,10);
+INSERT INTO field_tag VALUES (1,88,10);
+INSERT INTO field_tag VALUES (1,89,10);
+INSERT INTO field_tag VALUES (1,90,10);
+INSERT INTO field_tag VALUES (1,91,10);
+INSERT INTO field_tag VALUES (1,92,10);
+INSERT INTO field_tag VALUES (1,93,10);
+INSERT INTO field_tag VALUES (1,94,10);
+INSERT INTO field_tag VALUES (1,95,10);
+INSERT INTO field_tag VALUES (1,96,10);
+INSERT INTO field_tag VALUES (1,97,10);
+INSERT INTO field_tag VALUES (1,98,10);
+INSERT INTO field_tag VALUES (1,99,10);
+INSERT INTO field_tag VALUES (1,100,10);
+INSERT INTO field_tag VALUES (1,101,10);
+INSERT INTO field_tag VALUES (1,102,10);
+INSERT INTO field_tag VALUES (1,103,10);
+INSERT INTO field_tag VALUES (1,104,10);
+INSERT INTO field_tag VALUES (1,105,10);
+INSERT INTO field_tag VALUES (1,106,10);
+INSERT INTO field_tag VALUES (1,107,10);
+INSERT INTO field_tag VALUES (1,108,10);
+INSERT INTO field_tag VALUES (1,109,10);
+INSERT INTO field_tag VALUES (1,110,10);
+INSERT INTO field_tag VALUES (1,111,10);
+INSERT INTO field_tag VALUES (1,112,10);
+INSERT INTO field_tag VALUES (1,113,10);
+INSERT INTO field_tag VALUES (1,114,10);
+INSERT INTO field_tag VALUES (9,115,100);
+
+INSERT INTO format VALUES (1,'HTML brief','hb');
+INSERT INTO format VALUES (2,'HTML detailed','hd');
+INSERT INTO format VALUES (3,'HTML MARC','hm');
+INSERT INTO format VALUES (4,'XML Dublin Core','xd');
+INSERT INTO format VALUES (5,'XML MARC','xm');
+INSERT INTO format VALUES (6,'HTML portfolio','hp');
+INSERT INTO format VALUES (7,'HTML photo captions only','hc');
+
+INSERT INTO tag VALUES (1,'100__%');
+INSERT INTO tag VALUES (2,'700__%');
+INSERT INTO tag VALUES (3,'245__%');
+INSERT INTO tag VALUES (4,'246__%');
+INSERT INTO tag VALUES (5,'520__%');
+INSERT INTO tag VALUES (6,'6531_a');
+INSERT INTO tag VALUES (7,'037__a');
+INSERT INTO tag VALUES (8,'088__a');
+INSERT INTO tag VALUES (9,'909C0r');
+INSERT INTO tag VALUES (10,'999C5%');
+INSERT INTO tag VALUES (11,'980__%');
+INSERT INTO tag VALUES (12,'65017a');
+INSERT INTO tag VALUES (13,'65027a');
+INSERT INTO tag VALUES (14,'909C0p');
+INSERT INTO tag VALUES (15,'909C0y');
+INSERT INTO tag VALUES (16,'00%');
+INSERT INTO tag VALUES (17,'01%');
+INSERT INTO tag VALUES (18,'02%');
+INSERT INTO tag VALUES (19,'03%');
+INSERT INTO tag VALUES (20,'04%');
+INSERT INTO tag VALUES (21,'05%');
+INSERT INTO tag VALUES (22,'06%');
+INSERT INTO tag VALUES (23,'07%');
+INSERT INTO tag VALUES (24,'08%');
+INSERT INTO tag VALUES (25,'09%');
+INSERT INTO tag VALUES (26,'10%');
+INSERT INTO tag VALUES (27,'11%');
+INSERT INTO tag VALUES (28,'12%');
+INSERT INTO tag VALUES (29,'13%');
+INSERT INTO tag VALUES (30,'14%');
+INSERT INTO tag VALUES (31,'15%');
+INSERT INTO tag VALUES (32,'16%');
+INSERT INTO tag VALUES (33,'17%');
+INSERT INTO tag VALUES (34,'18%');
+INSERT INTO tag VALUES (35,'19%');
+INSERT INTO tag VALUES (36,'20%');
+INSERT INTO tag VALUES (37,'21%');
+INSERT INTO tag VALUES (38,'22%');
+INSERT INTO tag VALUES (39,'23%');
+INSERT INTO tag VALUES (40,'24%');
+INSERT INTO tag VALUES (41,'25%');
+INSERT INTO tag VALUES (42,'26%');
+INSERT INTO tag VALUES (43,'27%');
+INSERT INTO tag VALUES (44,'28%');
+INSERT INTO tag VALUES (45,'29%');
+INSERT INTO tag VALUES (46,'30%');
+INSERT INTO tag VALUES (47,'31%');
+INSERT INTO tag VALUES (48,'32%');
+INSERT INTO tag VALUES (49,'33%');
+INSERT INTO tag VALUES (50,'34%');
+INSERT INTO tag VALUES (51,'35%');
+INSERT INTO tag VALUES (52,'36%');
+INSERT INTO tag VALUES (53,'37%');
+INSERT INTO tag VALUES (54,'38%');
+INSERT INTO tag VALUES (55,'39%');
+INSERT INTO tag VALUES (56,'40%');
+INSERT INTO tag VALUES (57,'41%');
+INSERT INTO tag VALUES (58,'42%');
+INSERT INTO tag VALUES (59,'43%');
+INSERT INTO tag VALUES (60,'44%');
+INSERT INTO tag VALUES (61,'45%');
+INSERT INTO tag VALUES (62,'46%');
+INSERT INTO tag VALUES (63,'47%');
+INSERT INTO tag VALUES (64,'48%');
+INSERT INTO tag VALUES (65,'49%');
+INSERT INTO tag VALUES (66,'50%');
+INSERT INTO tag VALUES (67,'51%');
+INSERT INTO tag VALUES (68,'52%');
+INSERT INTO tag VALUES (69,'53%');
+INSERT INTO tag VALUES (70,'54%');
+INSERT INTO tag VALUES (71,'55%');
+INSERT INTO tag VALUES (72,'56%');
+INSERT INTO tag VALUES (73,'57%');
+INSERT INTO tag VALUES (74,'58%');
+INSERT INTO tag VALUES (75,'59%');
+INSERT INTO tag VALUES (76,'60%');
+INSERT INTO tag VALUES (77,'61%');
+INSERT INTO tag VALUES (78,'62%');
+INSERT INTO tag VALUES (79,'63%');
+INSERT INTO tag VALUES (80,'64%');
+INSERT INTO tag VALUES (81,'65%');
+INSERT INTO tag VALUES (82,'66%');
+INSERT INTO tag VALUES (83,'67%');
+INSERT INTO tag VALUES (84,'68%');
+INSERT INTO tag VALUES (85,'69%');
+INSERT INTO tag VALUES (86,'70%');
+INSERT INTO tag VALUES (87,'71%');
+INSERT INTO tag VALUES (88,'72%');
+INSERT INTO tag VALUES (89,'73%');
+INSERT INTO tag VALUES (90,'74%');
+INSERT INTO tag VALUES (91,'75%');
+INSERT INTO tag VALUES (92,'76%');
+INSERT INTO tag VALUES (93,'77%');
+INSERT INTO tag VALUES (94,'78%');
+INSERT INTO tag VALUES (95,'79%');
+INSERT INTO tag VALUES (96,'80%');
+INSERT INTO tag VALUES (97,'81%');
+INSERT INTO tag VALUES (98,'82%');
+INSERT INTO tag VALUES (99,'83%');
+INSERT INTO tag VALUES (100,'84%');
+INSERT INTO tag VALUES (101,'85%');
+INSERT INTO tag VALUES (102,'86%');
+INSERT INTO tag VALUES (103,'87%');
+INSERT INTO tag VALUES (104,'88%');
+INSERT INTO tag VALUES (105,'89%');
+INSERT INTO tag VALUES (106,'90%');
+INSERT INTO tag VALUES (107,'91%');
+INSERT INTO tag VALUES (108,'92%');
+INSERT INTO tag VALUES (109,'93%');
+INSERT INTO tag VALUES (110,'94%');
+INSERT INTO tag VALUES (111,'95%');
+INSERT INTO tag VALUES (112,'96%');
+INSERT INTO tag VALUES (113,'97%');
+INSERT INTO tag VALUES (114,'98%');
+INSERT INTO tag VALUES (115,'8564_u');
+
+INSERT INTO wordsindex VALUES (1,'global','This word index contains words from global fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (2,'collection','This word index contains words from collection identifiers fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (3,'abstract','This word index contains words from abstract fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (4,'author','This word index contains words from author fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (5,'keyword','This word index contains words from keyword fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (6,'reference','This word index contains words from references fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (7,'reportnumber','This word index contains words from report numbers fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (8,'title','This word index contains words from title fields.','0000-00-00 00:00:00');
+INSERT INTO wordsindex VALUES (9,'fulltext','This word index contains words from fulltext fields.','0000-00-00 00:00:00');
+
+INSERT INTO wordsindex_field VALUES (1,1,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (2,10,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (3,4,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (4,3,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (5,5,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (6,8,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (7,6,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (8,2,'[^\\w]');
+INSERT INTO wordsindex_field VALUES (9,9,'[^\\w]');
+
+INSERT INTO flxFORMATS VALUES ('DEFAULT_HTML_BRIEF','\"<strong>\" format(\"_DEFAULT_TITLE\") \"</strong> \"\r\nif(count($100.a)!=\"0\" || count($700.a)!=\"0\")\r\n{\r\n \" / \" format(\"_DEFAULT_AUTHORS\") \" \"\r\n}\r\nforall($088.a)\r\n{ \" <small class=quicknote> [\" $088.a \"]</small> \" }\r\nforall($037.a)\r\n{ \" <small class=quicknote> [\" $037.a \"]</small> \" }\r\nforall($520.a)\r\n{ \"<br><small>\" format(\"_DEFAULT_ABSTRACT_FIRST_SENTENCE\") \"</small>\" }\r\nforall($8564.u)\r\n{ \"<br><small>\" format(\"_DEFAULT_URL\") \"</small>\" }','This is the default brief HTML format.','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"<strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\"_DEFAULT_TITLE\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\"</strong> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\" / \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:16:\"_DEFAULT_AUTHORS\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:26:\" <small class=quicknote> [\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\"]</small> \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:26:\" <small class=quicknote> [\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\"]</small> \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"<br><small>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:32:\"_DEFAULT_ABSTRACT_FIRST_SENTENCE\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"</small>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"<br><small>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"_DEFAULT_URL\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"</small>\";s:4:\"sons\";a:0:{}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_DEFAULT_AUTHORS',' if(gt(sum( count($700.a), count($100.a) ),\"4\")!=\"\")  \r\n{  \r\n  if(count($100.a)!=\"0\")  \r\n  {  \r\n    link(\"author_search\", $100.a)\r\n    {\r\n      \"<a href=\\\"\" $link \"\\\">\" $100.a \"</a>\"\r\n      if($100.e!=\"\") { \" (\" $100.e \")\" }\r\n      \" <em> et al</em> \" \r\n    }     \r\n  }    \r\n  else  \r\n  {  \r\n    if(count($700.a)!=\"0\")  \r\n    {  \r\n      link(\"author_search\", $700.a)\r\n      { \r\n        \"<a href=\\\"\" $link \"\\\">\" $700.a \"</a>\"\r\n        if($700.e!=\"\") { \" (\" $700.e \")\" }\r\n        \" et al.\" \r\n      }  \r\n    }  \r\n  }  \r\n}  \r\nelse   \r\n{ \r\n forall($100) \r\n { \r\n if($100.a!=\"\") \r\n { \r\n link(\"author_search\", $100.a){\"<a href=\\\"\" $link \"\\\">\" $100.a \"</a>\" } \r\n separator(\"; \") \r\n } \r\n } \r\n if(count($100.a)!=\"0\") \r\n { \r\n if(count($700.a)!=\"0\") \r\n { \"; \" } \r\n } \r\n forall($700) \r\n { \r\n if($700.a!=\"\") \r\n { \r\n link(\"author_search\", $700.a){\"<a href=\\\"\" $link \"\\\">\" $700.a \"</a>\" } \r\n separator(\"; \") \r\n } \r\n } \r\n} ','This is the default subformat to format author lists.','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:2:\"GT\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:3:\"SUM\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"4\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"author_search\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"<a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\")\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:17:\" <em> et al</em> \";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"author_search\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"<a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\")\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:7:\" et al.\";s:4:\"sons\";a:0:{}}}}}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"author_search\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"<a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"author_search\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"<a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_DEFAULT_TITLE','$245.a \r\nif($245.b!=\"\"){ \" : \" $245.b } \r\nif($250.a!=\"\"){ \" ; \" $250.a }  ','HTML for displaying the title in brief formats','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"245\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"245\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\" : \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"245\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"250\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\" ; \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"250\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_DEFAULT_ABSTRACT_FIRST_SENTENCE','limw_l($520.a, \".\")  \". [...]\"','This is the default subformat to yield the first sentence of the abstract.','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:6:\"LIMW_L\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\".\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:7:\". [...]\";s:4:\"sons\";a:0:{}}}}');
+INSERT INTO flxFORMATS VALUES ('DEFAULT_HTML_DETAILED','format(\"_full_topbanner\") \r\nformat(\"_full_title\") \r\n\"<p><center>\" \r\nformat(\"_full_author\")\r\nformat(\"_full_affiliation\")\r\nformat(\"_full_datedoc\") \"<br>\"\r\nformat(\"_full_imprint\")\r\n\"</center>\"\r\n\r\n\"<p style=\\\"margin-left: 15%; width: 70%\\\">\"\r\n\r\nformat(\"_full_abstract\")\r\nformat(\"_full_daterec\")\r\n\r\nformat(\"_full_keyword\")\r\n\r\nformat(\"_full_note\") \r\nformat(\"_full_publiinfo\")\r\n\"<br>\"\r\nformat(\"_full_url\")\r\nformat(\"_full_citedby\")\r\n\"<p>\" \r\nformat(\"_full_references\")\r\n','This is the default HTML detailed format.','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:15:\"_full_topbanner\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"_full_title\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"<p><center>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"_full_author\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:17:\"_full_affiliation\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"_full_datedoc\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"<br>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"_full_imprint\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"</center>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:40:\"<p style=\"margin-left: 15%; width: 70%\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\"_full_abstract\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"_full_daterec\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"_full_keyword\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\"_full_note\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:15:\"_full_publiinfo\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"<br>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"_full_url\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"_full_citedby\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\"<p>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:16:\"_full_references\";s:4:\"sons\";a:0:{}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_ABSTRACT','if($520.a!=\"\"||$520.b!=\"\"){\r\n \"\r\n <small><strong>Abstract: </strong>\"\r\n $520.a\" <br>\"$520.b\" \"\r\n \"</small><br>\r\n \"\r\n} \r\nif($590.a!=\"\"||$590.b!=\"\"){\r\n \"\r\n <small><strong>Texte: </strong>\"\r\n $590.a\" <br>\"$590.b\r\n \"</small><br>\r\n \"\r\n} ','HTML Abstract display','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:37:\"\r\n <small><strong>Abstract: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\" <br>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:15:\"</small><br>\r\n \";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"590\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"590\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:34:\"\r\n <small><strong>Texte: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"590\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\" <br>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"590\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:15:\"</small><br>\r\n \";s:4:\"sons\";a:0:{}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_TITLE','if($245.a!=\"\"){\r\n \"<center><big><big><strong>\"\r\n $245.a\r\n if($245.b!=\"\"){ \": \" $245.b }\r\n \"</center></strong></big></big>\"\r\n}\r\n\r\nif($0248.a!=\"\"){\r\n \"<br><center><big><big><strong>\"\r\n $0248.a\r\n \"</center></strong></big></big>\"\r\n}\r\n\r\nif($246.a!=\"\"){\r\n \"<br><center><big><big><strong>\"\r\n $246.a\r\n \"</center></strong></big></big>\"\r\n}\r\n\r\nif($246_1.a!=\"\"){\r\n \"<br><center><big><big><strong><i>\"\r\n $246_1.a\r\n \"</i></center></strong></big></big>\"\r\n}\r\n\r\nif($210.a!=\"\"){\r\n \"<small>(\"\r\n $210.a\r\n \") </small>\"\r\n}\r\n','HTML Title display ','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"245\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:26:\"<center><big><big><strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"245\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"245\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\": \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"245\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:30:\"</center></strong></big></big>\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"0248\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:30:\"<br><center><big><big><strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"0248\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:30:\"</center></strong></big></big>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"246\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:30:\"<br><center><big><big><strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"246\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:30:\"</center></strong></big></big>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"246_1\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:33:\"<br><center><big><big><strong><i>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"246_1\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:34:\"</i></center></strong></big></big>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"210\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"<small>(\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"210\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\") </small>\";s:4:\"sons\";a:0:{}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('PICTURE_HTML_DETAILED','format(\"_full_topbanner\")\r\nformat(\"_full_title\")\r\n\r\nformat(\"_full_note\")\r\nif($260.c!=\"\"){\"<center>\" $260.c \"</center>\"}\r\nformat(\"_full_contact\")\r\nif($100.a!=\"\"){\r\n \"<center>Photographer: <small>\"\r\n format(\"_full_author\")\r\n \"</small></center>\"\r\n}\r\n\r\n\"<br>\"\r\n\r\nformat(\"_full_keyword\")\r\n\r\n\r\n\r\n\"\r\n<table> <tr>\r\n<td valign=\\\"top\\\" align=\\\"left\\\">\" \r\nif($909CP.s!=\"\"){\"<BR> <strong>Original ref.</strong>: \"$909CP.s\" \"}\r\nif($909CP.t!=\"\"){\"<BR><strong>Available pictures</strong>: \"$909CP.t\"  \"}\r\n\r\nif ($520.a!=\"\"){\r\n \"</p><table><tr><td class=\\\"blocknote\\\">  \r\n Caption</td></tr></table>\" \r\n \"<small>\" \r\n $520.a\r\n \"</small></p>\"\r\n}\r\nif ($590.a!=\"\"){\r\n \"</p><table><tr><td class=\\\"blocknote\\\">  \r\n L�gende</td></tr></table>\" \r\n \"<small>\" \r\n $590.a\r\n \"</small></p>\"\r\n}\r\n\r\nif ($909C4!=\"\"){\r\n \"</p><table><tr><td class=\\\"blocknote\\\">See also:</td></tr></table>\" \r\n}\r\nforall ($909C4){\r\n \"<small><a href=\\\"\" $909C4.d \"\\\">\" $909C4.p \"</a></small><br>\"\r\n}\r\n\r\n\"</td>\"\r\n\r\n\"<td valign=\\\"top\\\">\" \r\nformat(\"_full_photo_resources\")\r\n\"</td>\" \r\n\r\n\"</tr>\r\n\r\n<tr><td colspan=\\\"2\\\" class=\\\"blocknote\\\">\r\n <strong>� CERN Geneva: </strong>\r\n<small>The use of photos requires prior authorization (from <a href=\\\"http://wpedb.cern.ch/databases/Copyright/\\\">CERN copyright</a>). \r\nThe words CERN Photo must be quoted for each use. </small>\r\n</td>\r\n</tr>\r\n\r\n</table>\r\n</p>\"','The detailed HTML format suitable for displaying pictures.','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:15:\"_full_topbanner\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"_full_title\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\"_full_note\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"<center>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"</center>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"_full_contact\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:29:\"<center>Photographer: <small>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"_full_author\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:17:\"</small></center>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"<br>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"_full_keyword\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:46:\"\r\n<table> <tr>\r\n<td valign=\"top\" align=\"left\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"S\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:37:\"<BR> <strong>Original ref.</strong>: \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"S\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:41:\"<BR><strong>Available pictures</strong>: \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"  \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:67:\"</p><table><tr><td class=\"blocknote\">  \r\n Caption</td></tr></table>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:7:\"<small>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"</small></p>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"590\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:67:\"</p><table><tr><td class=\"blocknote\">  \r\n L�gende</td></tr></table>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:7:\"<small>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"590\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"</small></p>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:64:\"</p><table><tr><td class=\"blocknote\">See also:</td></tr></table>\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:16:\"<small><a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"D\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:16:\"</a></small><br>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</td>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:17:\"<td valign=\"top\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:21:\"_full_photo_resources\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</td>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:309:\"</tr>\r\n\r\n<tr><td colspan=\"2\" class=\"blocknote\">\r\n <strong>� CERN Geneva: </strong>\r\n<small>The use of photos requires prior authorization (from <a href=\"http://wpedb.cern.ch/databases/Copyright/\">CERN copyright</a>). \r\nThe words CERN Photo must be quoted for each use. </small>\r\n</td>\r\n</tr>\r\n\r\n</table>\r\n</p>\";s:4:\"sons\";a:0:{}}}}');
+INSERT INTO flxFORMATS VALUES ('PICTURE_HTML_BRIEF',' \"<hr><table width=\\\"90%\\\"> \r\n  <TR> \r\n    <TD valign=\\\"top\\\" align=\\\"left\\\">\"\r\n\"<b>\" format(\"_DEFAULT_TITLE\") \"</b>\"\r\nforall($246_1.a)\r\n{ \"<BR> <b><i>\" $246_1.a\" </b></i>\" } \r\nforall($260.c)\r\n{ \"<BR> \" $260.c }\r\nforall($520.a) {\r\n  rep_prefix(\"<p><i>Abstract</i>: \")\r\n  format(\"_DEFAULT_ABSTRACT_FIRST_SENTENCE\")\r\n  \"<p>\"\r\n}\r\nforall($6531.a)\r\n{ \r\n  rep_prefix(\"<BR> <i>Keyword</i>: \") \r\n  link(\"KEYWORD_SEARCH\", $6531.a)\r\n  { \"<a href=\\\"\"$link\"\\\">\" $6531.a \"</a>\"  } separator(\", \")\r\n}\r\nforall($037.a)\r\n{\"<BR><i>Picture number</i>: \" $037.a }\r\nforall($909CP.t)\r\n{ rep_prefix(\"<BR><I>Available picture(s)</i>:\") xml_text($909CP.t) }\r\n\r\n\"</td> <TD valign=\\\"top\\\" align=\\\"right\\\"> \"\r\nforall($8564)\r\n{ if(($8564.x=\"icon\")&&($8564.u=\"\"))\r\n  { \"<P> <a href=\\\"search?sysnb=\"$909C0.o\"\\\"><IMG SRC=\"rep($8564.q,\" \",\"\")\"></a>\" }\r\n}\r\n\r\n\"<BR> <font size=-2><b>�CERN Geneva</b></font>\" \r\n\"<BR> \" link(\"EXT\", $8564.u, $8564.z){ $link }\r\n\"    </td>\r\n   </tr>\r\n</table>\"','The brief HTML format suitable for displaying pictures.','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:69:\"<hr><table width=\"90%\"> \r\n  <TR> \r\n    <TD valign=\"top\" align=\"left\">\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\"<b>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\"_DEFAULT_TITLE\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</b>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:5:\"246_1\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"<BR> <b><i>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"246_1\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\" </b></i>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"<BR> \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"520\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:10:\"REP_PREFIX\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:20:\"<p><i>Abstract</i>: \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:32:\"_DEFAULT_ABSTRACT_FIRST_SENTENCE\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\"<p>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:4:\"6531\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:10:\"REP_PREFIX\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:21:\"<BR> <i>Keyword</i>: \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\"KEYWORD_SEARCH\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"6531\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"<a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"6531\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\", \";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:27:\"<BR><i>Picture number</i>: \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:10:\"REP_PREFIX\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:32:\"<BR><I>Available picture(s)</i>:\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:8:\"XML_TEXT\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:38:\"</td> <TD valign=\"top\" align=\"right\"> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:6;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:7;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"X\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"icon\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:7;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:26:\"<P> <a href=\"search?sysnb=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C0\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"O\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"\"><IMG SRC=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:3:\"REP\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Q\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"></a>\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:45:\"<BR> <font size=-2><b>�CERN Geneva</b></font>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"<BR> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\"EXT\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Z\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:29:\"    </td>\r\n   </tr>\r\n</table>\";s:4:\"sons\";a:0:{}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_AUTHOR','if($700.a!=\"\"||$100.a!=\"\"||$270.p!=\"\"){\r\n\r\n forall($100){\r\n  LINK(\"AUTHOR_SEARCH\",$100.a){\r\n   \"<a href=\\\"\"$LINK\"\\\">\"$100.a\"</a> \"\r\n   if ($100.e!=\"\"){\" (\"$100.e\")\"}\r\n   separator(\"; \")\r\n  }\r\n }\r\n if(count($100.a)!=\"0\") \r\n { \r\n   if(count($700.a)!=\"0\") \r\n   { \"; \" } \r\n }  \r\n forall($700){\r\n  LINK(\"AUTHOR_SEARCH\",$700.a){\r\n   \"   <a href=\\\"\"$LINK\"\\\">\"$700.a\"</a> \"\r\n   if ($700.e!=\"\"){\" (\"$700.e\")\"}\r\n   separator(\"; \")\r\n  }\r\n } \r\n   \r\n forall($270){\r\n  LINK(\"AUTHOR_SEARCH\",$270.p){\r\n   \"   <a href=\\\"\"$LINK\"\\\">\"$270.p\"</a> \"\r\n   if ($270.g!=\"\"){\r\n    \" (\"\r\n    $270.g\r\n    \")\"\r\n   }\r\n   separator(\"; \")\r\n  }\r\n }\r\n \r\n} ','HTML linked author display','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"270\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"AUTHOR_SEARCH\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"<a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</a> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\")\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"100\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:17;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"0\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"AUTHOR_SEARCH\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"   <a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</a> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"700\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"E\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\")\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"270\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"AUTHOR_SEARCH\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"270\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"   <a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"270\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</a> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"270\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"G\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"270\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"G\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\")\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_AFFILIATION','if($909C1.u!=\"\"){\r\n \"<br>\"\r\n forall($909C1){\r\n  $909C1.u\"       \"\r\n }\r\n} \r\n','HTML Affiliation display','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C1\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"<br>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:5:\"909C1\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C1\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:7:\"       \";s:4:\"sons\";a:0:{}}}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_DATEDOC','if($260.c!=\"\"){\r\n \"<br>\"\r\n  $260.c\" \r\n \"\r\n} \r\n','HTML Imprint date','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"<br>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\" \r\n \";s:4:\"sons\";a:0:{}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_IMPRINT','if($260.b!=\"\"){\r\n if($260.b!=\"sine nomine\"){\r\n  \"<small>\"\r\n  $260.b\r\n  if($260.a!=\"\"){\r\n   if($260.a!=\"sine loco\"){\": \"$260.a}\r\n  }\r\n  \" </small>\"\r\n }\r\n}\r\n','HTML Imprint display (not the date)','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"sine nomine\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:7:\"<small>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"B\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"sine loco\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\": \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"260\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\" </small>\";s:4:\"sons\";a:0:{}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_DATEREC','if($909C1.c!=\"\"){\r\n \"<br><small><strong>Arrived: </strong>\"\r\n $909C1.c\" </small>\"\r\n}\r\n','',NULL);
+INSERT INTO flxFORMATS VALUES ('_FULL_KEYWORD','forall($6531.a){\r\n REP_PREFIX(\"<br><small><strong>Keyword(s): </strong></small>\")\r\n \"<small>\"\r\n LINK(\"KEYWORD_SEARCH\",$6531.a){ \r\n   \"<a href=\\\"\"$LINK\"\\\">\"$6531.a\"</a> \"\r\n   separator(\";\")\r\n }\r\n \"</small>\r\n \"\r\n} \r\n','HTML keyword display with search link','O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:4:\"6531\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:10:\"REP_PREFIX\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:48:\"<br><small><strong>Keyword(s): </strong></small>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:7:\"<small>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\"KEYWORD_SEARCH\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"6531\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"<a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"6531\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</a> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\";\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"</small>\r\n \";s:4:\"sons\";a:0:{}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_NOTE','if($594.p!=\"\"){\r\n \"<br><small><strong>Note: </strong>\"\r\n xml_text($594.p)\" </small>\"\r\n}\r\nif($500.a!=\"\"){\r\n \"<br><small><strong>Note: </strong>\"\r\n forall($500){xml_text($500.a)\"; \"}\r\n \"</small>\"\r\n} \r\nif($502.a!=\"\"||$909CC.r!=\"\"||$909CP.n!=\"\"||$711.a!=\"\"){\r\n \"<br><small><strong>Note: </strong>\"\r\n $502.a\" \"\r\n $909CC.r\" \"\r\n $909CC.d\" \"\r\n $909CP.n\" \"\r\n $711.a \" </small>\"\r\n} \r\nif($596.a!=\"\"){\r\n \"<br><small><strong>Notes: </strong>\"\r\n $596.a \" </small>\"\r\n} \r\n\r\n','HTML note display (various note fields)','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"594\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:34:\"<br><small><strong>Note: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:8:\"XML_TEXT\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"594\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\" </small>\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"500\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:34:\"<br><small><strong>Note: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"500\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:8:\"XML_TEXT\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"500\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"; \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"</small>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"502\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CC\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"R\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"N\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"711\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:34:\"<br><small><strong>Note: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"502\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CC\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"R\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CC\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"D\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909CP\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"N\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"711\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\" </small>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"596\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:35:\"<br><small><strong>Notes: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"596\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\" </small>\";s:4:\"sons\";a:0:{}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_PUBLIINFO','if($909C4.p!=\"\"){ \r\n \"<br><br><strong>Published in: </strong>\"\r\n if (KB($909C4.p,\"ejournals\")!=\"\") {\r\n  if ($909C4.v!=\"\") { \r\n    \"<a href=\\\"http://weblib.cern.ch/cgi-bin/ejournals?publication=\" \r\n     REP($909C4.p,\" \",\"+\") \r\n    \"&volume=\"$909C4.v\"&year=\"$909C4.y\"&page=\"filter_pagenr($909C4.c)\"\\\">\"$909C4.p\": \"\r\n     $909C4.v \" (\"$909C4.y\") \"$909C4.c \r\n    \"</a> \" \r\n  } else {\r\n     $909C4.p\": \"\r\n     if($909C4.y!=\"\"){\" (\"$909C4.y\") \"}\r\n     if($909C4.n!=\"\"){\"no. \"$909C4.n\", \"}\r\n     if($909C4.c!=\"\"){\"pp.\"$909C4.c }\r\n  }\r\n } else {\r\n  $909C4.p \": \"\r\n  if($909C4.v!=\"\"){ $909C4.v }\r\n  if($909C4.y!=\"\"){\" (\"$909C4.y\") \"}\r\n  if($909C4.n!=\"\"){\"no. \"$909C4.n\", \"}\r\n  if($909C4.c!=\"\"){\"pp.\"$909C4.c }  \r\n }\r\n}\r\n','HTML publication information display possibly with link to ejournal','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:39:\"<br><br><strong>Published in: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:16;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"ejournals\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:61:\"<a href=\"http://weblib.cern.ch/cgi-bin/ejournals?publication=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:3:\"REP\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"+\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"&volume=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:6:\"&year=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:6:\"&page=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:13:\"FILTER_PAGENR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\": \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\") \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</a> \";s:4:\"sons\";a:0:{}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\": \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\") \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"N\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"no. \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"N\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\", \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\"pp.\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}}}}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\": \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\") \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"N\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"no. \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"N\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\", \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\"pp.\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C4\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"C\";s:4:\"sons\";a:0:{}}}}}}}}}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_YEAR','if ($909C0.y!=\"\"){\"<br><strong>Year: </strong>\"\r\n $909C0.y\r\n}','HTML Year display','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C0\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:27:\"<br><strong>Year: </strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C0\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_TOPBANNER','\"<table border=\\\"0\\\" width=\\\"100%\\\"><tr class=\\\"blocknote\\\"> \r\n<td valign=\\\"left\\\">\"KB($980.a,\"dbcollid2coll\")\"    <small>\"\r\nif($65017.a!=\"XX\"){\r\n \" / \" $65017.a\r\n}\r\n\"    \"$65027.a\r\n\"</small></td>\" \r\nforall($088){\"<td><small><strong>\"$088.a\" </strong></small></td>\"} \r\nif($037.a!=\"\"){\"<td align=\\\"right\\\"><strong>\"$037.a\"</strong></td>\"} \r\n\"</tr></table><br>\" ','HTML top page banner containing category, rep. number, etc','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:74:\"<table border=\"0\" width=\"100%\"><tr class=\"blocknote\"> \r\n<td valign=\"left\">\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:16;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"dbcollid2coll\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"980\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"    <small>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"65017\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"XX\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\" / \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"65017\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"    \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"65027\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"</small></td>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:19:\"<td><small><strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:23:\" </strong></small></td>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:26:\"<td align=\"right\"><strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\"</strong></td>\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:17:\"</tr></table><br>\";s:4:\"sons\";a:0:{}}}}');
+INSERT INTO flxFORMATS VALUES ('_DEFAULT_URL','\"<a class=\\\"note\\\" href=\\\"\" $8564.u \"\\\">\" $8564.u \"</a>\"','This is the default format for formatting URLs.','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:22:\"<a class=\"note\" href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_URL','forall($8564)\r\n{\r\n\"<br><strong>\" $8564.z \" : </strong> <small><a href=\\\"\" $8564.u \"\\\">\" $8564.u \"</a></small>\"\r\n}','HTML URL display','O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"<br><strong>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Z\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:29:\" : </strong> <small><a href=\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"</a></small>\";s:4:\"sons\";a:0:{}}}}}}');
+INSERT INTO flxFORMATS VALUES ('DEFAULT_HTML_CAPTIONS','format(\"_default_title\")','HTML \"captions only\" format','O:7:\"aelnode\":3:{s:3:\"cat\";i:13;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\"_default_title\";s:4:\"sons\";a:0:{}}}}');
+INSERT INTO flxFORMATS VALUES ('DEFAULT_HTML_PORTFOLIO','forall($8564)\r\n{ if(($8564.x=\"icon\")&&($8564.u=\"\"))\r\n  { \"<P> <a href=\\\"search?sysnb=\"$909C0.o\"\\\"><IMG SRC=\"rep($8564.q,\" \",\"\")\"></a>\" }\r\n} ','HTML \"portfolio\" format','O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:6;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:7;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"X\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"icon\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:7;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:26:\"<P> <a href=\"search?sysnb=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"909C0\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"O\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:11:\"\"><IMG SRC=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:3:\"REP\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Q\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"></a>\";s:4:\"sons\";a:0:{}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_PHOTO_RESOURCES','\"<table><tr><td class=\\\"blocknote\\\">Resources</td></tr></table>\"\r\n\r\nforall($8564)\r\n{ \r\n  if(($8564.x=\"icon\")&&($8564.u=\"\")) { \r\n     \"<P><IMG SRC=\"rep($8564.q,\" \",\"\")\">\" \r\n  }\r\n   if($8564.x=\"1\") {\r\n      \"<br clear=\\\"all\\\">High resolution: <a href=\\\"\" $8564.q \"\\\">\" $8564.q  \"</a>\"\r\n  }\r\n  \r\n}\r\n\r\n\"<BR> <font size=-2><b>�CERN Geneva</b></font>\" \r\n\"<BR> \" link(\"EXT\", $8564.u, $8564.z){ $link } \r\n','Prints image and link to photo resources.','O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:60:\"<table><tr><td class=\"blocknote\">Resources</td></tr></table>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:6;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:7;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"X\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"icon\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:7;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"<P><IMG SRC=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:3:\"REP\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Q\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\">\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:7;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"X\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"1\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:42:\"<br clear=\"all\">High resolution: <a href=\"\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Q\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Q\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:45:\"<BR> <font size=-2><b>�CERN Geneva</b></font>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"<BR> \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:14;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\"EXT\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:15;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"U\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"8564\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Z\";s:4:\"sons\";a:0:{}}}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:4:\"LINK\";s:4:\"sons\";a:0:{}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_CITEDBY','if($037.a!=\"\" || $088.a!=\"\") {\r\n  \"<br><br><strong>Cited by:</strong> try citation search for \"\r\n  forall($037.a) {\r\n     \"<a href=\\\"search?f=reference&p=\" $037.a \"\\\">\" $037.a \"</a>\"\r\n     separator(\";\")\r\n  }\r\n  if($037.a!=\"\" && $088.a!=\"\") {\r\n    \" ; \"\r\n  }\r\n  forall($088.a) {\r\n     \"<a href=\\\"search?f=reference&p=\" $088.a \"\\\">\" $088.a \"</a>\"\r\n      separator(\";\")\r\n  }\r\n}','HTML \"cited by\" link creation, based on report numbers.','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:5;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:59:\"<br><br><strong>Cited by:</strong> try citation search for \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:30:\"<a href=\"search?f=reference&p=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\";\";s:4:\"sons\";a:0:{}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:6;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"037\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:3:\" ; \";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:30:\"<a href=\"search?f=reference&p=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:3:\"088\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"A\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"</a>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:9:\"SEPARATOR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\";\";s:4:\"sons\";a:0:{}}}}}}}}}}}}');
+INSERT INTO flxFORMATS VALUES ('_FULL_REFERENCES','if ($999C5!=\"\") {\r\n\"<blockquote>\"\r\n\"<strong>References:</strong>\"\r\n\"<ul>\" \r\nforall($999C5){ \r\n\r\nif($999C5.o!=\"\")\r\n   {\"<li><small> \"$999C5.o \" </small> \"} \r\n\r\nif ($999C5.m!=\"\")\r\n   {\" <small> \" $999C5.m \" </small> \"}\r\n\r\nif ($999C5.r!=\"\")\r\n   {\" <small> [<a href=\\\"search?f=reportnumber&p=\"$999C5.r\"\\\">\"$999C5.r\"</a>] </small> <br> \"} \r\n\r\nif ($999C5.t!=\"\")\r\n   {if (KB($999C5.t,\"ejournals\")!=\"\")\r\n      { \r\n      \" <small> <a href=\\\"http://weblib.cern.ch/cgi-bin/ejournals?publication=\" \r\nREP($999C5.t,\" \",\"+\") \r\n      \"&volume=\"$999C5.v\"&year=\"$999C5.y\"&page=\"filter_pagenr($999C5.p)\"\\\">\"$999C5.t\": \"$999C5.v\" (\"$999C5.y\") \"$999C5.p \r\n      \"</a> </small> <br>\"\r\n      } \r\n   else\r\n      {\" <small> \" $999C5.t\" \"$999C5.v\" \"$999C5.y\" \"$999C5.p \" </small> <br>\"\r\n      }\r\n   }\r\n\r\n} \r\n\"</ul>\"\r\n\r\n\"<p><small><i><b>Warning</b>: references are automatically extracted and standardized from the PDF document and may therefore contain errors. If you think they are incorrect or incomplete, look at the fulltext document itself.<br></i></small>\"\r\n\"</blockquote>\"\r\n}','HTML references','O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"<blockquote>\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:28:\"<strong>References:</strong>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:4:\"<ul>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:3;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:3:{i:0;N;i:1;N;i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"O\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:12:\"<li><small> \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"O\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\" </small> \";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"M\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\" <small> \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"M\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:10:\" </small> \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"R\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:43:\" <small> [<a href=\"search?f=reportnumber&p=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"R\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"R\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:20:\"</a>] </small> <br> \";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:4;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:8;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:16;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\"ejournals\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:70:\" <small> <a href=\"http://weblib.cern.ch/cgi-bin/ejournals?publication=\";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:3:\"REP\";s:4:\"sons\";a:3:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\"+\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:8:\"&volume=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:6:\"&year=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:6:\"&page=\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:2;s:3:\"lex\";s:13:\"FILTER_PAGENR\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\"\">\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\": \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\" (\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:2:\") \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:18:\"</a> </small> <br>\";s:4:\"sons\";a:0:{}}}}i:2;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:11;s:3:\"lex\";s:0:\"\";s:4:\"sons\";a:2:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:9:\" <small> \";s:4:\"sons\";a:0:{}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"T\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"V\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"Y\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:1:\" \";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:0;s:3:\"lex\";s:5:\"999C5\";s:4:\"sons\";a:1:{i:0;O:7:\"aelnode\":3:{s:3:\"cat\";i:12;s:3:\"lex\";s:1:\"P\";s:4:\"sons\";a:0:{}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:14:\" </small> <br>\";s:4:\"sons\";a:0:{}}}}}}}}}}}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:5:\"</ul>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:241:\"<p><small><i><b>Warning</b>: references are automatically extracted and standardized from the PDF document and may therefore contain errors. If you think they are incorrect or incomplete, look at the fulltext document itself.<br></i></small>\";s:4:\"sons\";a:0:{}}}}i:1;O:7:\"aelnode\":3:{s:3:\"cat\";i:1;s:3:\"lex\";s:13:\"</blockquote>\";s:4:\"sons\";a:0:{}}}}}}');
+INSERT INTO flxKBS VALUES ('DBCOLLID2COLL','flxKBDBCOLLID2COLL','DbCollID to Coll name correspondance.');
+INSERT INTO flxKBS VALUES ('EJOURNALS','flxKBEJOURNALS','Knowledge base of all known electronic journals.  Useful for reference linking.');
+INSERT INTO flxKBDBCOLLID2COLL VALUES ('ARTICLE','Published Article');
+INSERT INTO flxKBDBCOLLID2COLL VALUES ('PREPRINT','Preprint');
+INSERT INTO flxKBDBCOLLID2COLL VALUES ('THESIS','Thesis');
+INSERT INTO flxKBDBCOLLID2COLL VALUES ('BOOK','Book');
+INSERT INTO flxKBDBCOLLID2COLL VALUES ('REPORT','Report');
+INSERT INTO flxKBDBCOLLID2COLL VALUES ('PICTURE','Pictures');
+INSERT INTO flxKBEJOURNALS VALUES ('AAS Photo Bull.','AAS Photo Bull.');
+INSERT INTO flxKBEJOURNALS VALUES ('Accredit. Qual. Assur.','Accredit. Qual. Assur.');
+INSERT INTO flxKBEJOURNALS VALUES ('Acoust. Phys.','Acoust. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Acoust. Res. Lett.','Acoust. Res. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Acta Astron.','Acta Astron.');
+INSERT INTO flxKBEJOURNALS VALUES ('Adv. Comput. Math.','Adv. Comput. Math.');
+INSERT INTO flxKBEJOURNALS VALUES ('Aequ. Math.','Aequ. Math.');
+INSERT INTO flxKBEJOURNALS VALUES ('Afr. Skies','Afr. Skies');
+INSERT INTO flxKBEJOURNALS VALUES ('Algorithmica','Algorithmica');
+INSERT INTO flxKBEJOURNALS VALUES ('Am. J. Phys.','Am. J. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Ann. Phys.','Ann. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Annu. Rev. Astron. Astrophys.','Annu. Rev. Astron. Astrophys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Annu. Rev. Earth Planet. Sci.','Annu. Rev. Earth Planet. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Appl. Phys. Lett.','Appl. Phys. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Appl. Phys., A','Appl. Phys., A');
+INSERT INTO flxKBEJOURNALS VALUES ('Appl. Phys., B','Appl. Phys., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Appl. Radiat. Isot.','Appl. Radiat. Isot.');
+INSERT INTO flxKBEJOURNALS VALUES ('Appl. Surf. Sci.','Appl. Surf. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Arch. Appl. Mech.','Arch. Appl. Mech.');
+INSERT INTO flxKBEJOURNALS VALUES ('Arch. Envir. Contam. Toxicol.','Arch. Envir. Contam. Toxicol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Arch. Rational Mech. Analys.','Arch. Rational Mech. Analys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astron. Astrophys. Rev.','Astron. Astrophys. Rev.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astron. Astrophys.','Astron. Astrophys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astron. Astrophys., Suppl.','Astron. Astrophys., Suppl.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astron. J.','Astron. J.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astron. Lett.','Astron. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astron. Nachr.','Astron. Nachr.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astron. Rep.','Astron. Rep.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astropart. Phys.','Astropart. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astrophys. J.','Astrophys. J.');
+INSERT INTO flxKBEJOURNALS VALUES ('Astrophys. Norvegica','Astrophys. Norvegica');
+INSERT INTO flxKBEJOURNALS VALUES ('Balt. Astron.','Balt. Astron.');
+INSERT INTO flxKBEJOURNALS VALUES ('Bioimaging','Bioimaging');
+INSERT INTO flxKBEJOURNALS VALUES ('Biol. Cybern.','Biol. Cybern.');
+INSERT INTO flxKBEJOURNALS VALUES ('Bull. Astron. Belgrade','Bull. Astron. Belgrade');
+INSERT INTO flxKBEJOURNALS VALUES ('Bull. Astron. Inst. Czech.','Bull. Astron. Inst. Czech.');
+INSERT INTO flxKBEJOURNALS VALUES ('Bull. Astron. Soc. India','Bull. Astron. Soc. India');
+INSERT INTO flxKBEJOURNALS VALUES ('Bull. Eng. Geol. Environ.','Bull. Eng. Geol. Environ.');
+INSERT INTO flxKBEJOURNALS VALUES ('Bull. Environ. Contam. Toxicol.','Bull. Environ. Contam. Toxicol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Calc. Var. Partial Differ. Equ.','Calc. Var. Partial Differ. Equ.');
+INSERT INTO flxKBEJOURNALS VALUES ('Chaos','Chaos');
+INSERT INTO flxKBEJOURNALS VALUES ('Chaos Solitons Fractals','Chaos Solitons Fractals');
+INSERT INTO flxKBEJOURNALS VALUES ('Chem. Phys.','Chem. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Chem. Phys. Lett.','Chem. Phys. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Chin. Astron. Astrophys.','Chin. Astron. Astrophys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Chin. J. Astron. Astrophys.','Chin. J. Astron. Astrophys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Class. Quantum Gravity','Class. Quantum Gravity');
+INSERT INTO flxKBEJOURNALS VALUES ('Clim. Dyn.','Clim. Dyn.');
+INSERT INTO flxKBEJOURNALS VALUES ('Colloid Polym. Sci.','Colloid Polym. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Combinatorica','Combinatorica');
+INSERT INTO flxKBEJOURNALS VALUES ('Combust. Theory Model.','Combust. Theory Model.');
+INSERT INTO flxKBEJOURNALS VALUES ('Commun. Math. Phys.','Commun. Math. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Comment. Math. Helv.','Comment. Math. Helv.');
+INSERT INTO flxKBEJOURNALS VALUES ('Comput. Mech.','Comput. Mech.');
+INSERT INTO flxKBEJOURNALS VALUES ('Comput. Phys.','Comput. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Comput. Phys. Commun.','Comput. Phys. Commun.');
+INSERT INTO flxKBEJOURNALS VALUES ('Comput. Sci. Eng.','Comput. Sci. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('Comput. Vis. Sci.','Comput. Vis. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Computing','Computing');
+INSERT INTO flxKBEJOURNALS VALUES ('Constr. Approx.','Constr. Approx.');
+INSERT INTO flxKBEJOURNALS VALUES ('Contin. Mech. Thermodyn.','Contin. Mech. Thermodyn.');
+INSERT INTO flxKBEJOURNALS VALUES ('Contrib. Astron. Obs. Skaln. Pleso','Contrib. Astron. Obs. Skaln. Pleso');
+INSERT INTO flxKBEJOURNALS VALUES ('Contrib. Astron. Obs. Skaln. Pleso Suppl.','Contrib. Astron. Obs. Skaln. Pleso Suppl.');
+INSERT INTO flxKBEJOURNALS VALUES ('Cryogenics','Cryogenics');
+INSERT INTO flxKBEJOURNALS VALUES ('Crystallogr. Rep.','Crystallogr. Rep.');
+INSERT INTO flxKBEJOURNALS VALUES ('Curr. Appl. Phys.','Curr. Appl. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Curr. Opin. Solid State Mater. Sci.','Curr. Opin. Solid State Mater. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Discret. Comput. Geom.','Discret. Comput. Geom.');
+INSERT INTO flxKBEJOURNALS VALUES ('Displays','Displays');
+INSERT INTO flxKBEJOURNALS VALUES ('Distrib. Comput.','Distrib. Comput.');
+INSERT INTO flxKBEJOURNALS VALUES ('Distrib. Syst. Eng.','Distrib. Syst. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('Dokl. Phys.','Dokl. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Electrochem. Solid State Lett.','Electrochem. Solid State Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Electron. Lett.','Electron. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Elem. Math.','Elem. Math.');
+INSERT INTO flxKBEJOURNALS VALUES ('Environ. Geol.','Environ. Geol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Environ. Manage.','Environ. Manage.');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. Biophys. J. Biophys. Lett.','Eur. Biophys. J. Biophys. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. J. Phys.','Eur. J. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. Phys. J., A','Eur. Phys. J., A');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. Phys. J., Appl. Phys.','Eur. Phys. J., Appl. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. Phys. J., B','Eur. Phys. J., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. Phys. J., C','Eur. Phys. J., C');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. Phys. J., D','Eur. Phys. J., D');
+INSERT INTO flxKBEJOURNALS VALUES ('Eur. Phys. J., E','Eur. Phys. J., E');
+INSERT INTO flxKBEJOURNALS VALUES ('Europhys. Lett.','Europhys. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Europhys. News','Europhys. News');
+INSERT INTO flxKBEJOURNALS VALUES ('Exp. Fluids','Exp. Fluids');
+INSERT INTO flxKBEJOURNALS VALUES ('Few-Body Syst.','Few-Body Syst.');
+INSERT INTO flxKBEJOURNALS VALUES ('Finan. Stoch.','Finan. Stoch.');
+INSERT INTO flxKBEJOURNALS VALUES ('Fluid Dyn. Res.','Fluid Dyn. Res.');
+INSERT INTO flxKBEJOURNALS VALUES ('Geom. Funct. Anal.','Geom. Funct. Anal.');
+INSERT INTO flxKBEJOURNALS VALUES ('Heat Mass Transf.','Heat Mass Transf.');
+INSERT INTO flxKBEJOURNALS VALUES ('High Energy Phys. Libr. Webzine','High Energy Phys. Libr. Webzine');
+INSERT INTO flxKBEJOURNALS VALUES ('High Perform. Polym.','High Perform. Polym.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Circ. Devices Syst.','IEE Proc., Circ. Devices Syst.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Commun.','IEE Proc., Commun.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Comput. Digit. Tech.','IEE Proc., Comput. Digit. Tech.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Control Theory Appl.','IEE Proc., Control Theory Appl.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Electr. Power Appl.','IEE Proc., Electr. Power Appl.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Gener. Transm. Distrib.','IEE Proc., Gener. Transm. Distrib.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Microw. Antennas Propag.','IEE Proc., Microw. Antennas Propag.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Optoelectron.','IEE Proc., Optoelectron.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Radar, Sonar Navig.','IEE Proc., Radar, Sonar Navig.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Sci. Meas. Technol.','IEE Proc., Sci. Meas. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Softw. Eng.','IEE Proc., Softw. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('IEE Proc., Vis. Image Signal Process.','IEE Proc., Vis. Image Signal Process.');
+INSERT INTO flxKBEJOURNALS VALUES ('Image Vis. Comput.','Image Vis. Comput.');
+INSERT INTO flxKBEJOURNALS VALUES ('Inform. Forsch. Entwickl.','Inform. Forsch. Entwickl.');
+INSERT INTO flxKBEJOURNALS VALUES ('Inform. Spektr.','Inform. Spektr.');
+INSERT INTO flxKBEJOURNALS VALUES ('Infrared Phys. Technol.','Infrared Phys. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Int. J. Digit. Libr.','Int. J. Digit. Libr.');
+INSERT INTO flxKBEJOURNALS VALUES ('Int. J. Doc. Anal. Recogn.','Int. J. Doc. Anal. Recogn.');
+INSERT INTO flxKBEJOURNALS VALUES ('Int. J. Nonlinear Mech.','Int. J. Nonlinear Mech.');
+INSERT INTO flxKBEJOURNALS VALUES ('Int. J. Softw. Tools Technol. Transf.','Int. J. Softw. Tools Technol. Transf.');
+INSERT INTO flxKBEJOURNALS VALUES ('Invent. Math.','Invent. Math.');
+INSERT INTO flxKBEJOURNALS VALUES ('Inverse Probl.','Inverse Probl.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Acoust. Soc. Am.','J. Acoust. Soc. Am.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Aerosp. Eng.','J. Aerosp. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Alloys. Compounds','J. Alloys. Compounds');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Am. Assoc. Var. Star Obs.','J. Am. Assoc. Var. Star Obs.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Appl. Mech.','J. Appl. Mech.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Appl. Phys.','J. Appl. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Atmos. Solar Terrest. Phys.','J. Atmos. Solar Terrest. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Br. Astron. Assoc.','J. Br. Astron. Assoc.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Chem. Phys.','J. Chem. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Classif.','J. Classif.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Comput. Inf. Sci. Eng.','J. Comput. Inf. Sci. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Constr. Eng. Manage.','J. Constr. Eng. Manage.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Cryptol.','J. Cryptol.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Cryst. Growth','J. Cryst. Growth');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Dyn. Syst. Meas. Control','J. Dyn. Syst. Meas. Control');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Electrochem. Soc.','J. Electrochem. Soc.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Electron Spectrosc. Relat. Phen.','J. Electron Spectrosc. Relat. Phen.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Electron. Imaging','J. Electron. Imaging');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Electron. Packag.','J. Electron. Packag.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Energy Eng.','J. Energy Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Energy Resour. Technol.','J. Energy Resour. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Eng. Mater. Technol.','J. Eng. Mater. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Eng. Mech.','J. Eng. Mech.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Environ. Eng.','J. Environ. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Exp. Theor. Phys., JETP','J. Exp. Theor. Phys., JETP');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Fluids Eng.','J. Fluids Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Geom. Phys.','J. Geom. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Heat Transf.','J. Heat Transf.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. High Energy Phys.','J. High Energy Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Korean Astron. Soc.','J. Korean Astron. Soc.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Lumin.','J. Lumin.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Magn. Magn. Mater.','J. Magn. Magn. Mater.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Manage. Eng.','J. Manage. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Manuf. Sci. Eng.','J. Manuf. Sci. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Mater. Civ. Eng.','J. Mater. Civ. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Math. Biol.','J. Math. Biol.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Math. Phys.','J. Math. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Mech. Des.','J. Mech. Des.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Micromech. Microeng.','J. Micromech. Microeng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Opt.','J. Opt.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys., A','J. Phys., A');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys., B','J. Phys., B');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys., Condens. Matter','J. Phys., Condens. Matter');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys., D','J. Phys., D');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys., G','J. Phys., G');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys. I','J. Phys. I');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys. II','J. Phys. II');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys. III','J. Phys. III');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys. Chem. Ref. Data','J. Phys. Chem. Ref. Data');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Phys. Chem. Solids','J. Phys. Chem. Solids');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Quant. Spectrosc. Radiat. Transf.','J. Quant. Spectrosc. Radiat. Transf.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. R. Astron. Soc. Can.','J. R. Astron. Soc. Can.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Radio. Prot.','J. Radio. Prot.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Rheol.','J. Rheol.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Solar Energy Eng.','J. Solar Energy Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Solid State Electrochem.','J. Solid State Electrochem.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Struct. Eng.','J. Struct. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Surv. Eng.','J. Surv. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Tribol.','J. Tribol.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Turbomach.','J. Turbomach.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Vac. Sci. Technol.','J. Vac. Sci. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Vac. Sci. Technol., A','J. Vac. Sci. Technol., A');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Vac. Sci. Technol., B','J. Vac. Sci. Technol., B');
+INSERT INTO flxKBEJOURNALS VALUES ('J. Vib. Acoust.','J. Vib. Acoust.');
+INSERT INTO flxKBEJOURNALS VALUES ('JETP','JETP');
+INSERT INTO flxKBEJOURNALS VALUES ('JETP Lett.','JETP Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Low Temp. Phys.','Low Temp. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Mach. Vis. Appl.','Mach. Vis. Appl.');
+INSERT INTO flxKBEJOURNALS VALUES ('Mater. Res. Innov.','Mater. Res. Innov.');
+INSERT INTO flxKBEJOURNALS VALUES ('Mater. Sci. Eng., B','Mater. Sci. Eng., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Math. Ann.','Math. Ann.');
+INSERT INTO flxKBEJOURNALS VALUES ('Math. Model. Numer. Anal.','Math. Model. Numer. Anal.');
+INSERT INTO flxKBEJOURNALS VALUES ('Math. Program.','Math. Program.');
+INSERT INTO flxKBEJOURNALS VALUES ('Math. Z.','Math. Z.');
+INSERT INTO flxKBEJOURNALS VALUES ('Meas. Sci. Technol.','Meas. Sci. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Med. Phys.','Med. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Meteorit. Planet. Sci.','Meteorit. Planet. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Microelectron. Eng.','Microelectron. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('Micron','Micron');
+INSERT INTO flxKBEJOURNALS VALUES ('Microsc. Microanal.','Microsc. Microanal.');
+INSERT INTO flxKBEJOURNALS VALUES ('Microsyst. Technol.','Microsyst. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Mon. Not. R. Astron. Soc.','Mon. Not. R. Astron. Soc.');
+INSERT INTO flxKBEJOURNALS VALUES ('Multim. Syst.','Multim. Syst.');
+INSERT INTO flxKBEJOURNALS VALUES ('Nanotech.','Nanotech.');
+INSERT INTO flxKBEJOURNALS VALUES ('Naturwiss.','Naturwiss.');
+INSERT INTO flxKBEJOURNALS VALUES ('Network','Network');
+INSERT INTO flxKBEJOURNALS VALUES ('New Astron.','New Astron.');
+INSERT INTO flxKBEJOURNALS VALUES ('New Astron. Rev.','New Astron. Rev.');
+INSERT INTO flxKBEJOURNALS VALUES ('Nonlinearity','Nonlinearity');
+INSERT INTO flxKBEJOURNALS VALUES ('Nucl. Instrum. Methods Phys. Res., A','Nucl. Instrum. Methods Phys. Res., A');
+INSERT INTO flxKBEJOURNALS VALUES ('Nucl. Instrum. Methods Phys. Res., B','Nucl. Instrum. Methods Phys. Res., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Nucl. Phys. B, Proc. Suppl.','Nucl. Phys. B, Proc. Suppl.');
+INSERT INTO flxKBEJOURNALS VALUES ('Nucl. Phys., A','Nucl. Phys., A');
+INSERT INTO flxKBEJOURNALS VALUES ('Nucl. Phys., B','Nucl. Phys., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Num. Math.','Num. Math.');
+INSERT INTO flxKBEJOURNALS VALUES ('Nuovo Cimento, A','Nuovo Cimento, A');
+INSERT INTO flxKBEJOURNALS VALUES ('Nuovo Cimento, B','Nuovo Cimento, B');
+INSERT INTO flxKBEJOURNALS VALUES ('Nuovo Cimento, C','Nuovo Cimento, C');
+INSERT INTO flxKBEJOURNALS VALUES ('Nuovo Cimento, D','Nuovo Cimento, D');
+INSERT INTO flxKBEJOURNALS VALUES ('Obs.','Obs.');
+INSERT INTO flxKBEJOURNALS VALUES ('Opt. Commun.','Opt. Commun.');
+INSERT INTO flxKBEJOURNALS VALUES ('Opt. Eng.','Opt. Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('Opt. Lasers Eng.','Opt. Lasers Eng.');
+INSERT INTO flxKBEJOURNALS VALUES ('Opt. Mater.','Opt. Mater.');
+INSERT INTO flxKBEJOURNALS VALUES ('Opt. Spectrosc.','Opt. Spectrosc.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. At. Nucl.','Phys. At. Nucl.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Chem. Miner.','Phys. Chem. Miner.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Educ.','Phys. Educ.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Fluids','Phys. Fluids');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Fluids, A','Phys. Fluids, A');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Fluids, B','Phys. Fluids, B');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Lett., A','Phys. Lett., A');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Lett., B','Phys. Lett., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Med. Biol.','Phys. Med. Biol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Part. Nucl.','Phys. Part. Nucl.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Plasmas','Phys. Plasmas');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rep.','Phys. Rep.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev., A','Phys. Rev., A');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev., B','Phys. Rev., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev., C','Phys. Rev., C');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev., D','Phys. Rev., D');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev., E','Phys. Rev., E');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev., ser. 1','Phys. Rev., ser. 1');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev. Lett.','Phys. Rev. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev. Spec. Top. Accel. Beams','Phys. Rev. Spec. Top. Accel. Beams');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Rev.','Phys. Rev.');
+INSERT INTO flxKBEJOURNALS VALUES ('Phys. Solid State','Phys. Solid State');
+INSERT INTO flxKBEJOURNALS VALUES ('Physica, A','Physica, A');
+INSERT INTO flxKBEJOURNALS VALUES ('Physica, B','Physica, B');
+INSERT INTO flxKBEJOURNALS VALUES ('Physica, C','Physica, C');
+INSERT INTO flxKBEJOURNALS VALUES ('Physica, D','Physica, D');
+INSERT INTO flxKBEJOURNALS VALUES ('Physica, E','Physica, E');
+INSERT INTO flxKBEJOURNALS VALUES ('Physiol. Meas.','Physiol. Meas.');
+INSERT INTO flxKBEJOURNALS VALUES ('Planet. Space Sci.','Planet. Space Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Plasma Phys. Control. Fusion','Plasma Phys. Control. Fusion');
+INSERT INTO flxKBEJOURNALS VALUES ('Plasma Phys. Rep.','Plasma Phys. Rep.');
+INSERT INTO flxKBEJOURNALS VALUES ('Plasma Sources Sci. Technol.','Plasma Sources Sci. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Polym. Bull.','Polym. Bull.');
+INSERT INTO flxKBEJOURNALS VALUES ('Powder Diffraction','Powder Diffraction');
+INSERT INTO flxKBEJOURNALS VALUES ('Probab. Theory Relat. Fields','Probab. Theory Relat. Fields');
+INSERT INTO flxKBEJOURNALS VALUES ('Proc. Astron. Soc. Aust.','Proc. Astron. Soc. Aust.');
+INSERT INTO flxKBEJOURNALS VALUES ('Proc. Nat. Acad. Sci.','Proc. Nat. Acad. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Prog. Cryst. Growth Charact. Mat.','Prog. Cryst. Growth Charact. Mat.');
+INSERT INTO flxKBEJOURNALS VALUES ('Prog. Part. Nucl. Phys.','Prog. Part. Nucl. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Prog. Quantum Electron.','Prog. Quantum Electron.');
+INSERT INTO flxKBEJOURNALS VALUES ('Prog. Surf. Sci.','Prog. Surf. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Program','Program');
+INSERT INTO flxKBEJOURNALS VALUES ('Publ. Astron. Soc. Aust.','Publ. Astron. Soc. Aust.');
+INSERT INTO flxKBEJOURNALS VALUES ('Publ. Astron. Soc. Jpn.','Publ. Astron. Soc. Jpn.');
+INSERT INTO flxKBEJOURNALS VALUES ('Publ. Astron. Soc. Pac.','Publ. Astron. Soc. Pac.');
+INSERT INTO flxKBEJOURNALS VALUES ('Publ. Underst. Sci.','Publ. Underst. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Pure Appl. Opt.: J. Eur. Opt. Soc. P. A','Pure Appl. Opt.: J. Eur. Opt. Soc. P. A');
+INSERT INTO flxKBEJOURNALS VALUES ('Quantum Semiclass. Opt.: J. Eur. Opt. Soc. P. B','Quantum Semiclass. Opt.: J. Eur. Opt. Soc. P. B');
+INSERT INTO flxKBEJOURNALS VALUES ('Radiat. Environ. Biophys.','Radiat. Environ. Biophys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Radiat. Meas.','Radiat. Meas.');
+INSERT INTO flxKBEJOURNALS VALUES ('Radiat. Phys. Chem.','Radiat. Phys. Chem.');
+INSERT INTO flxKBEJOURNALS VALUES ('Radiologe','Radiologe');
+INSERT INTO flxKBEJOURNALS VALUES ('Radioprotection','Radioprotection');
+INSERT INTO flxKBEJOURNALS VALUES ('Rep. Math. Phys.','Rep. Math. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Rep. Prog. Phys.','Rep. Prog. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Res. Exp. Med.','Res. Exp. Med.');
+INSERT INTO flxKBEJOURNALS VALUES ('Rev. Mex. Astron. Astrofis.','Rev. Mex. Astron. Astrofis.');
+INSERT INTO flxKBEJOURNALS VALUES ('Rev. Mod. Phys.','Rev. Mod. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Rev. Sci. Instrum.','Rev. Sci. Instrum.');
+INSERT INTO flxKBEJOURNALS VALUES ('Sel. Math., New Ser.','Sel. Math., New Ser.');
+INSERT INTO flxKBEJOURNALS VALUES ('Semicond.','Semicond.');
+INSERT INTO flxKBEJOURNALS VALUES ('Semicond. Sci. Technol.','Semicond. Sci. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Shock Waves','Shock Waves');
+INSERT INTO flxKBEJOURNALS VALUES ('SIAM J. Appl. Math.','SIAM J. Appl. Math.');
+INSERT INTO flxKBEJOURNALS VALUES ('SIAM J. Comput.','SIAM J. Comput.');
+INSERT INTO flxKBEJOURNALS VALUES ('SIAM J. Math. Anal.','SIAM J. Math. Anal.');
+INSERT INTO flxKBEJOURNALS VALUES ('SIAM J. Numer. Anal.','SIAM J. Numer. Anal.');
+INSERT INTO flxKBEJOURNALS VALUES ('SIAM J. Optim.','SIAM J. Optim.');
+INSERT INTO flxKBEJOURNALS VALUES ('SIAM Rev.','SIAM Rev.');
+INSERT INTO flxKBEJOURNALS VALUES ('Smart Mat. Struct.','Smart Mat. Struct.');
+INSERT INTO flxKBEJOURNALS VALUES ('Soft Comput.','Soft Comput.');
+INSERT INTO flxKBEJOURNALS VALUES ('Softw. Concepts Tools','Softw. Concepts Tools');
+INSERT INTO flxKBEJOURNALS VALUES ('Solar Phys.','Solar Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Solid State Commun.','Solid State Commun.');
+INSERT INTO flxKBEJOURNALS VALUES ('Solid State Electron.','Solid State Electron.');
+INSERT INTO flxKBEJOURNALS VALUES ('Solid State Ion.','Solid State Ion.');
+INSERT INTO flxKBEJOURNALS VALUES ('Sov. Astron. Lett.','Sov. Astron. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Superconductor Science and Technology','Superconductor Science and Technology');
+INSERT INTO flxKBEJOURNALS VALUES ('Surf. Coatings Techn.','Surf. Coatings Techn.');
+INSERT INTO flxKBEJOURNALS VALUES ('Surf. Sci.','Surf. Sci.');
+INSERT INTO flxKBEJOURNALS VALUES ('Surf. Sci. Rep.','Surf. Sci. Rep.');
+INSERT INTO flxKBEJOURNALS VALUES ('Surf. Sci. Spectra','Surf. Sci. Spectra');
+INSERT INTO flxKBEJOURNALS VALUES ('Synth. Metals','Synth. Metals');
+INSERT INTO flxKBEJOURNALS VALUES ('Syst. Fam.','Syst. Fam.');
+INSERT INTO flxKBEJOURNALS VALUES ('Tech. Phys.','Tech. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Tech. Phys. Lett.','Tech. Phys. Lett.');
+INSERT INTO flxKBEJOURNALS VALUES ('Theor. Comput. Fluid Dyn.','Theor. Comput. Fluid Dyn.');
+INSERT INTO flxKBEJOURNALS VALUES ('Theory Comput. Syst.','Theory Comput. Syst.');
+INSERT INTO flxKBEJOURNALS VALUES ('Thin Solid Films','Thin Solid Films');
+INSERT INTO flxKBEJOURNALS VALUES ('Tribol. Int.','Tribol. Int.');
+INSERT INTO flxKBEJOURNALS VALUES ('Ultramicroscopy','Ultramicroscopy');
+INSERT INTO flxKBEJOURNALS VALUES ('Vacuum','Vacuum');
+INSERT INTO flxKBEJOURNALS VALUES ('VLDB J.','VLDB J.');
+INSERT INTO flxKBEJOURNALS VALUES ('Virtual J. Nanoscale Sci. Technol.','Virtual J. Nanoscale Sci. Technol.');
+INSERT INTO flxKBEJOURNALS VALUES ('Virtual J. Biol. Phys. Res.','Virtual J. Biol. Phys. Res.');
+INSERT INTO flxKBEJOURNALS VALUES ('Vis. Comput.','Vis. Comput.');
+INSERT INTO flxKBEJOURNALS VALUES ('Wave Motion','Wave Motion');
+INSERT INTO flxKBEJOURNALS VALUES ('Waves Random Media','Waves Random Media');
+INSERT INTO flxKBEJOURNALS VALUES ('Wear','Wear');
+INSERT INTO flxKBEJOURNALS VALUES ('Z. Angew. Math. Phys.','Z. Angew. Math. Phys.');
+INSERT INTO flxKBEJOURNALS VALUES ('Z. Phys., A','Z. Phys., A');
+INSERT INTO flxKBEJOURNALS VALUES ('Z. Phys., B','Z. Phys., B');
+INSERT INTO flxKBEJOURNALS VALUES ('Z. Phys., C','Z. Phys., C');
+INSERT INTO flxKBEJOURNALS VALUES ('Zphys-e.C','Zphys-e.C');
+INSERT INTO flxKBEJOURNALS VALUES ('ATLAS eNews','ATLAS eNews');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CD','909','C','D','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','520','520','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','590','590','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909C0','909','C','0','N','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','110','110','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','583','583','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','270','270','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909C1','909','C','1','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CL','909','C','L','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','700','700','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','100','100','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','506','506','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CE','909','C','E','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CI','909','C','I','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','710','710','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','030','030','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CZ','909','C','Z','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CA','909','C','A','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','111','111','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','711','711','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','524','524','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909C4','909','C','4','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CP','909','C','P','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CM','909','C','M','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','8560','856','0','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','037','037','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','8564','856','4','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','866','866','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','260','260','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','300','300','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','690C','690','C','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','020','020','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','022','022','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','654','654','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','6531','653','1','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','6532','653','2','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CK','909','C','K','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','041','041','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','852','852','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','340','340','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','600','600','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','595','595','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','500','500','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','502','502','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CC','909','C','C','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','596','596','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','591','591','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CO','909','C','O','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','594','594','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','856','856','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','598','598','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CR','909','C','R','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CH','909','C','H','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CF','909','C','F','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','088','088','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','246','246','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','770','770','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','772','772','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','780','780','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','785','785','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','787','787','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','541','541','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','0248','024','8','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','490','490','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','65017','650','1','7','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','65027','650','2','7','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909CS','909','C','S','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','044','044','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','310','310','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','909C2','909','C','2','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','655','655','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','245','245','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','250','250','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','130','130','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','246_1','246','','1','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','246_3','246','','3','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','210','210','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','85642','856','4','2','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','080','080','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','999C5','999','C','5','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','040','040','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','980','980','','','S','DATAFIELD');
+INSERT INTO flxXMLMARCEXTRULES VALUES ('DEFAULT','001','001','','','S','CONTROLFIELD');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','','','');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','z','z');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','520','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','520','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','590','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','590','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','110','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','583','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C1','u','u');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','700','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','700','e','e');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','700','u','u');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','100','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','100','e','e');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','506','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','506','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','m','m');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CE','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','l','l');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','m','m');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','710','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','110','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C1','o','o');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C1','l','l');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C1','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C1','m','m');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','030','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CZ','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CZ','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CZ','m','m');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CZ','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CZ','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CZ','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909Cz','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','111','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','111','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','111','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','111','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','111','9','9');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','111','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','111','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','711','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','711','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','711','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','711','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','711','9','9');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','711','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','711','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','524','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','v','v');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','y','y');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','710','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','P','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CP','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','l','l');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','k','k');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','z','z');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','583','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CM','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','110','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CM','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','e','e');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','8560','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','8560','x','x');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','037','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','e','e');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','8564','z','z');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','8564','u','u');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','8564','q','q');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','8564','x','x');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CM','h','h');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','866','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','866','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','866','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','866','z','z');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','866','x','x');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','866','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CM','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','260','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','300','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','260','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','260','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','260','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','V','v');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','690C','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','020','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','022','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','654','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','6531','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','6532','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C','$','$');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CK','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CK','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CK','k','k');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CK','l','l');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CK','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','041','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','852','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','852','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','m','m');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','8564','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','340','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','600','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','595','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','500','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','502','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CP','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CC','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CC','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CC','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CC','h','h');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CC','l','l');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','596','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','591','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','o','o');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','o','o');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CO','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CP','s','s');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CO','s','s');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CP','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','594','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','594','c','c');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','594','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','856','k','k');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','u','u');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','598','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CR','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CR','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CR','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CR','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CR','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CR','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CP','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CH','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CH','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CF','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CH','e','e');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CH','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CF','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CH','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CH','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CH','s','s');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CF','g','g');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CF','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CF','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','088','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','246','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','770','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','772','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','780','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','785','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','787','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CA','q','q');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','246','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','770','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','772','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','780','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','785','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','787','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','s','s');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','541','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','541','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','541','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','0248','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','e','e');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CI','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CE','m','m');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','490','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','490','v','v');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CE','s','s');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CE','d','d');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','65017','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','65017','2','2');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','6502','$','$');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','65027','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CS','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','044','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','310','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C2','i','i');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C2','f','f');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C2','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CS','s','s');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CS','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CS','y','y');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','o','o');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','655','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','245','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','250','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','245','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','130','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','130','s','s');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','130','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','246','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','246_1','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','246_3','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','210','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CP','t','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','85642','r','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','85642','z','z');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','85642','u','u');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','b','b');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','270','e','e');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','v','v');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CD','x','x');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','080','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','u','u');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','245','n','n');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','245','p','p');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CM','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CM','l','l');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909CL','x','x');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C1','y','y');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C0','y','y');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','T','t');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','040','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','770','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','772','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','780','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','785','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','787','w','w');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','M','m');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','Y','y');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','R','r');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','U','u');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','Z','z');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','999C5','O','o');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','980','a','a');
+INSERT INTO flxXMLMARCEXTRULESUBFIELDS VALUES ('DEFAULT','909C4','D','d');
+INSERT INTO flxBEHAVIORCONDITIONSACTIONS VALUES ('DEFAULT',100,0,'record','\" <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hb</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"DEFAULT_HTML_BRIEF\"))\r\n\" </subfield> \r\n </datafield>\r\n <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hd</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"DEFAULT_HTML_DETAILED\"))\r\n\" </subfield> \r\n </datafield>\r\n\"');
+INSERT INTO flxBEHAVIORCONDITIONSACTIONS VALUES ('HB',100,0,'','\"<record>\r\n <controlfield tag=\\\"001\\\">\" $001 \"</controlfield>\r\n <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hb</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"DEFAULT_HTML_BRIEF\"))\r\n\" </subfield> \r\n </datafield>\r\n</record>\"');
+INSERT INTO flxBEHAVIORCONDITIONSACTIONS VALUES ('HP',0,0,'','\"<record>\r\n <controlfield tag=\\\"001\\\">\" $001 \"</controlfield>\r\n <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hp</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"DEFAULT_HTML_PORTFOLIO\"))\r\n\" </subfield> \r\n </datafield>\r\n</record>\"');
+INSERT INTO flxBEHAVIORCONDITIONSACTIONS VALUES ('HC',0,0,'','\"<record>\r\n <controlfield tag=\\\"001\\\">\" $001 \"</controlfield>\r\n <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hc</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"DEFAULT_HTML_CAPTIONS\"))\r\n\" </subfield> \r\n </datafield>\r\n</record>\"');
+INSERT INTO flxBEHAVIORCONDITIONSACTIONS VALUES ('HD',100,100,'','\"<record>\r\n <controlfield tag=\\\"001\\\">\" $001 \"</controlfield>\r\n <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hd</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"DEFAULT_HTML_DETAILED\"))\r\n\" </subfield> \r\n </datafield>\r\n</record>\"');
+INSERT INTO flxBEHAVIORCONDITIONSACTIONS VALUES ('HB',0,0,'','\"<record>\r\n <controlfield tag=\\\"001\\\">\" $001 \"</controlfield>\r\n <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hb</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"PICTURE_HTML_BRIEF\"))\r\n\" </subfield> \r\n </datafield>\r\n</record>\"');
+INSERT INTO flxBEHAVIORCONDITIONSACTIONS VALUES ('HD',90,0,'','\"<record>\r\n <controlfield tag=\\\"001\\\">\" $001 \"</controlfield>\r\n <datafield tag=\\\"FMT\\\" ind1=\\\"\\\" ind2=\\\"\\\"> \r\n <subfield code=\\\"f\\\">hd</subfield> \r\n <subfield code=\\\"g\\\">\" \r\nxml_text(format(\"PICTURE_HTML_DETAILED\"))\r\n\" </subfield> \r\n </datafield>\r\n</record>\"');
+INSERT INTO flxBEHAVIORCONDITIONS VALUES ('DEFAULT',100,'\"\"=\"\"');
+INSERT INTO flxBEHAVIORCONDITIONS VALUES ('HB',0,'$980.a=\"PICTURE\"');
+INSERT INTO flxBEHAVIORCONDITIONS VALUES ('HB',100,'\"\"=\"\"');
+INSERT INTO flxBEHAVIORCONDITIONS VALUES ('HP',0,'\"\"=\"\"');
+INSERT INTO flxBEHAVIORCONDITIONS VALUES ('HC',0,'\"\"=\"\"');
+INSERT INTO flxBEHAVIORCONDITIONS VALUES ('HD',100,'\"\"=\"\"');
+INSERT INTO flxBEHAVIORCONDITIONS VALUES ('HD',90,'$980.a=\"PICTURE\"');
+INSERT INTO flxBEHAVIORS VALUES ('DEFAULT','IENRICH','Creates <b>DEFAULT</b> formats and includes them in the input XML OAI MARC record in the \"FMT\" element');
+INSERT INTO flxBEHAVIORS VALUES ('HB','NORMAL','Produces HTML brief format.  Useful for reformatting records existing in the database.');
+INSERT INTO flxBEHAVIORS VALUES ('HP','NORMAL','PRODUCES HTML PORTFOLIO FORMAT.  USEFUL FOR REFORMATTING RECORDS EXISTING IN THE DATABASE.');
+INSERT INTO flxBEHAVIORS VALUES ('HC','NORMAL','PRODUCES HTML CAPTIONS FORMAT.  USEFUL FOR REFORMATTING RECORDS\r\nEXISTING IN THE DATABASE.');
+INSERT INTO flxBEHAVIORS VALUES ('HD','NORMAL','PRODUCES HTML DETAILED FORMAT. USEFUL FOR REFORMATTING RECORDS EXISTING IN THE DATABASE.');
+INSERT INTO flxUDFS VALUES ('URLENCODE','return urlencode($url);','STRING',NULL);
+INSERT INTO flxUDFS VALUES ('UPPER','return strtoupper($s);','STRING','<b>Purpose</b>: Returns characters of string <i>s</i> into uppercase characters\r\n<b>Example</b>: upper(\"test12\") gives as result \"TEST12\"');
+INSERT INTO flxUDFS VALUES ('SUBSTR','return substr($s, $start, $end-$start+1);','STRING','<b>Purpose</b>: Returns substring between position <i>start</i> and <i>end</i> from the string <i>s</i>\r\n<b>Example</b>: substr(\"test\", 2, 3) gives as result \"st\"');
+INSERT INTO flxUDFS VALUES ('ADD','if($prefix!=\"\")\r\n $value=$prefix.$value;\r\nif($postfix!=\"\")\r\n $value=$value.$postfix;\r\nreturn $value;\r\n','STRING','<b>Purpose</b>: This function adds <i>prefix</i> at the begining and <i>postfix</i> at the end, of <i>value</i>\r\n<b>Example</b>: add(\"test\",\"pre\",\"post\") gives as result \"pretestpost\"\r\n<b>Note</b>: Defined to keep compatibility with uploader\'s languaje');
+INSERT INTO flxUDFS VALUES ('MINFO','return \"<a href=\\\"http://weblib.cern.ch/cgi-bin/showfull?id=$sysno\\\">More Info</a>\";','STRING','');
+INSERT INTO flxUDFS VALUES ('RNETC','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('EXT','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('MARK','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('SEPARATOR','if(!$LAST_ITERATION)\r\n return $str;\r\nreturn \"\";','STRING',NULL);
+INSERT INTO flxUDFS VALUES ('TIONE','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('BRBER','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('MINFA','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('INDIS','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('INHLD','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('LKR','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('NIUCO','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('HOL','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('SNLNK','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('AUFU','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('LKRFU','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('SP','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('HO','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('SREF','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('QUOT','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('MARKF','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('LATEX','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('DI','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('REP_PREFIX','if($FIRST_ITERATION) return $str; return \"\";','STRING',NULL);
+INSERT INTO flxUDFS VALUES ('XML_TEXT','return utf8_encode(htmlspecialchars($str,ENT_QUOTES)); \r\n\r\n','STRING','');
+INSERT INTO flxUDFS VALUES ('REP','return str_replace($search, $replacement, $str); \r\n\r\n','STRING','<b>Purpose</b>: Replaces any occurence of string <i>search</i> inside string <i>str</i> by the \r\n<i>replacement</i> one.\r\n<b>Example</b>: rep(\"test12test\", \"12\", \"-\") gives as result \"test-test\"');
+INSERT INTO flxUDFS VALUES ('SAVETOFILE','$fh=fopen($filename, \"w\"); if(!$fh) return \"ERROR OPENING FILE \'$filename\'\"; fwrite($fh, $code); fclose($fh); return \"\"; ','STRING',NULL);
+INSERT INTO flxUDFS VALUES ('FORMAT_EXIST','$format_name=strtoupper(trim($format_name)); \r\n$res=\"\"; \r\n$db=mysql_pconnect(\"cdsdb.cern.ch\", \"flexelink\", \"2flexible\"); \r\nmysql_selectdb(\"flexelink\"); \r\n$qry=\"select name from FORMATS where name=\'$format_name\'\"; \r\n$qh=mysql_query($qry); \r\nif(mysql_num_rows($qh)==1) \r\n $res=\"Y\"; \r\nreturn $res; ','STRING','<b>Purpose</b>: Tells if a format exists in the FlexElink formats database. Returns non-empty string when a format called <i>format_name</i> doesn\'t exist in the format db, empty string in\r\n other case\r\n<b>Note</b>: To be migrated to FlexElink EL internal fuction');
+INSERT INTO flxUDFS VALUES ('TOC','return \"\";','STRING','Temporary defined for \"automatic format migration\" compatibility. Gives empty string.');
+INSERT INTO flxUDFS VALUES ('DATE','return date(\"j M Y H:i:s\");','STRING','<b>Purpose</b>: Gives the current date in the following format \"day month_name year2k hh:mm:ss\"');
+INSERT INTO flxUDFS VALUES ('FILTER_PAGENR','$temp=explode(\"-\", $str);\r\nreturn $temp[0];','STRING','');
+INSERT INTO flxUDFS VALUES ('LOWER','return strtolower($str);','STRING','<b>Purpose</b>: Returns characters of string <i>s</i> into lowercase characters \r\n<b>Example</b>: lower(\"TEsT12\") gives as result \"test12\"');
+INSERT INTO flxUDFS VALUES ('SUBSTR_END','return substr($str, $start);','STRING','<b>Purpose</b>: Returns a substring from the string <i>s</i>, from position <i>start</i> to the end of the string. \r\nNote that characters into a string are always numerated starting in 0\r\n<b>Example</b>: substr(\"test\", 2) gives as result \"st\"');
+INSERT INTO flxUDFS VALUES ('LIMW_L','$temp=explode($token, $str, 2);\r\nreturn $temp[0];','STRING','<b>Purpose</b>: Returns a substring from the string <i>str</i>, containing all characters found in it\r\nbefore the first occurrence of string <i>token</i>.\r\n<b>Example</b>: substr_bef_token(\"test1@test2@test3\", \"@\") gives as result \"test1\"');
+INSERT INTO flxUDFS VALUES ('LIMW_R','$temp=explode($token, $str, 2); \r\nreturn $temp[1];','STRING','<b>Purpose</b>: Returns a substring from the string <i>str</i>, containing all characters found in it\r\nafter the first acourrence of string <i>token</i>.\r\n<b>Example</b>: substr_bef_token(\"test1@test2@test3\", \"@\") gives as result \"test2@test3\"');
+INSERT INTO flxUDFS VALUES ('FILE_EXISTS','$fh=@fopen($url, \"r\");\r\n$res=\"\";\r\nif($fh)\r\n $res=$url;\r\nreturn $res;','STRING','<b>Purpose</b>: Checks if the given <i>url</i> exists. If so it returns the <i>url</i>, if not it gives back an empty string.\r\n<b>Example</b>: file_exists(\"/not/exists\") gives \"\" as far as file \"/not/exists\" doesn\'t exist');
+INSERT INTO flxUDFS VALUES ('CUT_FILE','$fh=@fopen($url, \"r\");\r\n$res=\"\";\r\nif($fh)\r\n{\r\n $found=false;\r\n if($start_token==\"\")\r\n {\r\n $found=true;\r\n }\r\n while(!feof($fh))\r\n {\r\n if(!$found)\r\n {\r\n $line=fgets($fh, 4096);\r\n $pos=strpos($line, $start_token);\r\n if($pos === false)\r\n continue;\r\n $res=substr($line, $pos, strlen($start_tag));\r\n $line=substr($line, $pos+strlen($start_tag));\r\n $found=true;\r\n }\r\n else\r\n {\r\n $pos=strpos($line, $end_token);\r\n if($pos === false)\r\n {\r\n $res.=$line;\r\n $line=fgets($fh, 4096);\r\n }\r\n else\r\n {\r\n $res.=substr($line, 0, $pos+strlen($end_token));\r\n break;\r\n }\r\n }\r\n }\r\n fclose($fh);\r\n}\r\n\r\nreturn $res;','STRING','<b>Purpose</b>: This function opens the file pointed by the URL <i>url</i>. If it\'s accessible, it parses it and \r\nreturns all characters between first occurence of string <i>start_token</i> and first occurrence of \r\nstring <i>end_token</i>.\r\n<b>Example</b>: cut_file(\"/local/pp.txt\", \"PEPE\", \"JOSE\") and \"/local/pp.txt\" file contains the\r\n following text \r\n\"In spanish PEPE means JOSE and PACO means FRANCISCO\", \r\nwould give as result \"PEPE means JOSE\"');
+INSERT INTO flxUDFS VALUES ('STRPOS','$pos=strpos($str, $substr);\r\nif($pos === false)\r\n{\r\n return \"\";\r\n}\r\nelse\r\n{\r\n return \"$pos\";\r\n}','STRING','');
+INSERT INTO flxUDFS VALUES ('GET_FROM_SETLINKURL','$url=parse_url( $url );\r\n$res=\"\";\r\nif(trim($url[query])!=\"\")\r\n{\r\n $params=explode(\"&\", $url[query]);\r\n foreach($params as $param)\r\n {\r\n $param=explode(\"=\", $param);\r\n if(trim($param[0])==$field)\r\n {\r\n $res=trim($param[1]);\r\n break;\r\n }\r\n } \r\n}\r\nreturn $res;','STRING','');
+INSERT INTO flxUDFS VALUES ('FILTER_CDS_ID','$temp=explode(\"-\", $str, 2); \r\nreturn $temp[0];','STRING','');
+INSERT INTO flxUDFS VALUES ('COPY','return substr($str, $start, $length);','STRING','<b>Purpose</b>: Returns a substring from string <i>str</i>, that starts in position <i>start</i>\r\n and that is <i>length</i> characters long from there\r\n<b>Example</b>: copy(\"test\", \"1\", \"2\") gives as result \"es\"');
+INSERT INTO flxUDFS VALUES ('TERMINATOR','if($LAST_ITERATION)\r\n return $str;','STRING','');
+INSERT INTO flxUDFS VALUES ('SUM','return $v1+$v2;','STRING','<b>Purpose</b>: Gives the result of adding <i>v1</i> to <i>v2</i> (<i>v1</i>+<i>v2</i>)\r\n<b>Example</b>: add(\"3\", \"4\") gives as result \"7\"');
+INSERT INTO flxUDFS VALUES ('GT','if($v1>$v2)\r\n return \"1\";\r\nreturn \"\";','STRING','<b>Purpose</b>: \"Greater than\" function; returns \"1\" if <i>v1</i>><i>v2</i>, \"\" in other case\r\n<b>Example</b>: gt(\"3\", \"4\") gives as result \"\"');
+INSERT INTO flxUDFS VALUES ('EXTRACT_EMAIL','if(ereg(\"([^ <\\t\\n]+@[^>\\t\\n]+)\", $str, $res))\r\n{\r\n return $res[1];\r\n}\r\nelse\r\n return \"\";\r\n','STRING','<b>Purpose</b>: Returns the first valid (filtered) email address found in string <i>str</i>. \r\nIf there\'s no valid email address in it, it returns \"\"\r\n<b>Example</b>: extract_email(\"Hector Sanchez <Hector.Sanchez@cern.ch>\") gives \"Hector.Sanchez@cern.ch\".');
+INSERT INTO flxUDFS VALUES ('GE','if($v1>=$v2)\r\n return \"1\";\r\nreturn \"\";','STRING','<b>Purpose</b>: \"Greater or equal than\" function; returns \"1\" if <i>v1</i>>=<i>v2</i>, \"\" in other case\r\n<b>Example</b>: ge(\"3\", \"4\") gives as result \"\"');
+INSERT INTO flxUDFS VALUES ('LE','if($v1<=$v2)\r\n return \"1\";\r\nreturn \"\";','STRING','<b>Purpose</b>: \"Lower or equal than\" function; returns \"1\" if <i>v1</i><=<i>v2</i>, \"\" in other case\r\n<b>Example</b>: ge(\"3\", \"4\") gives as result \"\"');
+INSERT INTO flxUDFS VALUES ('ISO_NUM','$iso=substr($str, strlen($str_iso));\r\n$temp=explode(\"-\", $iso, 2);\r\n$isonum=$temp[0]; \r\nreturn $isonum;\r\n','STRING','');
+INSERT INTO flxUDFS VALUES ('ISO_PART','$iso=substr($str, strlen($str_iso)); \r\n$temp=explode(\"-\", $iso, 2); \r\n$isopart=\"\";\r\nif(count($temp)>1)\r\n{\r\n $isopart=$temp[1]; \r\n}\r\nreturn $isopart; \r\n','STRING','');
+INSERT INTO flxUDFS VALUES ('ISO_NUMPART_LINK','$iso=substr($str, strlen($str_iso));\r\n$temp=explode(\"-\", $iso, 2);\r\n$isolink=$temp[0]; \r\nif(count($temp)>1)\r\n{\r\n if(strlen($temp[1])>0)\r\n {\r\n $isolink.=\"&part=\";\r\n $isolink.=str_replace(\"-\", \"&se=\", $temp[1]);\r\n }\r\n}\r\nreturn $isolink;\r\n','STRING','');
+INSERT INTO flxUDFS VALUES ('STRIP_SPACES','return str_replace(\" \", \"\", $str);','STRING','');
+INSERT INTO flxUDFS VALUES ('LFILL','if(strlen($char)==0) return $str;\r\nif(strlen($str)>$digits) \r\n $str=substr($str, strlen($str)-$digits);\r\nelse\r\n $str=sprintf(\"%0\".$digits.\"u\", $str);\r\nreturn $str;','STRING','<b>Purpose</b>: Returns a string consisting in the string <i>str</i> with the character <i>char</i> \r\nadded to its left the numer of times needed until the lenght <i>digits</i> is reached. If the length\r\nof <i>str</i> is bigger than <i>digits</i>, a left truncated string to length <i>digit</i> is returned.\r\n<b>Example</b>: lfill(\"12\", \"0\", \"5\") gives as result \"00012\", while lfill(\"12345\", \"0\", \"3\") gives as result \"345\", while');
+INSERT INTO flxUDFPARAMS VALUES ('URLENCODE','url',0);
+INSERT INTO flxUDFPARAMS VALUES ('ADD','postfix',2);
+INSERT INTO flxUDFPARAMS VALUES ('SUBSTR','end',2);
+INSERT INTO flxUDFPARAMS VALUES ('UPPER','s',0);
+INSERT INTO flxUDFPARAMS VALUES ('SUBSTR','s',0);
+INSERT INTO flxUDFPARAMS VALUES ('SUBSTR','start',1);
+INSERT INTO flxUDFPARAMS VALUES ('MINFO','sysno',0);
+INSERT INTO flxUDFPARAMS VALUES ('SEPARATOR','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('REP_PREFIX','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('XML_TEXT','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('REP','search',1);
+INSERT INTO flxUDFPARAMS VALUES ('REP','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('SAVETOFILE','filename',0);
+INSERT INTO flxUDFPARAMS VALUES ('SAVETOFILE','code',1);
+INSERT INTO flxUDFPARAMS VALUES ('REP','replacement',2);
+INSERT INTO flxUDFPARAMS VALUES ('FORMAT_EXIST','format_name',0);
+INSERT INTO flxUDFPARAMS VALUES ('FILTER_PAGENR','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('LOWER','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('ADD','value',0);
+INSERT INTO flxUDFPARAMS VALUES ('ADD','prefix',1);
+INSERT INTO flxUDFPARAMS VALUES ('STRPOS','substr',1);
+INSERT INTO flxUDFPARAMS VALUES ('STRPOS','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('CUT_FILE','end_token',2);
+INSERT INTO flxUDFPARAMS VALUES ('CUT_FILE','start_token',1);
+INSERT INTO flxUDFPARAMS VALUES ('CUT_FILE','url',0);
+INSERT INTO flxUDFPARAMS VALUES ('FILE_EXISTS','url',0);
+INSERT INTO flxUDFPARAMS VALUES ('SUBSTR_END','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('SUBSTR_END','start',1);
+INSERT INTO flxUDFPARAMS VALUES ('LIMW_R','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('LIMW_L','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('LIMW_L','token',1);
+INSERT INTO flxUDFPARAMS VALUES ('LIMW_R','token',1);
+INSERT INTO flxUDFPARAMS VALUES ('GET_FROM_SETLINKURL','url',0);
+INSERT INTO flxUDFPARAMS VALUES ('GET_FROM_SETLINKURL','field',1);
+INSERT INTO flxUDFPARAMS VALUES ('FILTER_CDS_ID','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('COPY','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('COPY','start',1);
+INSERT INTO flxUDFPARAMS VALUES ('TERMINATOR','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('SUM','v1',0);
+INSERT INTO flxUDFPARAMS VALUES ('GT','v1',0);
+INSERT INTO flxUDFPARAMS VALUES ('SUM','v2',1);
+INSERT INTO flxUDFPARAMS VALUES ('EXTRACT_EMAIL','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('GT','v2',1);
+INSERT INTO flxUDFPARAMS VALUES ('GE','v2',1);
+INSERT INTO flxUDFPARAMS VALUES ('GE','v1',0);
+INSERT INTO flxUDFPARAMS VALUES ('LE','v1',0);
+INSERT INTO flxUDFPARAMS VALUES ('LE','v2',1);
+INSERT INTO flxUDFPARAMS VALUES ('ISO_NUM','str_iso',0);
+INSERT INTO flxUDFPARAMS VALUES ('ISO_NUM','str',1);
+INSERT INTO flxUDFPARAMS VALUES ('ISO_PART','str_iso',0);
+INSERT INTO flxUDFPARAMS VALUES ('ISO_PART','str',1);
+INSERT INTO flxUDFPARAMS VALUES ('ISO_NUMPART_LINK','str_iso',0);
+INSERT INTO flxUDFPARAMS VALUES ('ISO_NUMPART_LINK','str',1);
+INSERT INTO flxUDFPARAMS VALUES ('STRIP_SPACES','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('LFILL','digits',2);
+INSERT INTO flxUDFPARAMS VALUES ('LFILL','char',1);
+INSERT INTO flxUDFPARAMS VALUES ('LFILL','str',0);
+INSERT INTO flxUDFPARAMS VALUES ('COPY','length',2);
+INSERT INTO flxUSERS VALUES (1);
+
+INSERT INTO rules VALUES (1,'superuser','users associated with this role have all rights');
+INSERT INTO rules VALUES (2,'submissionmanager','this role allows people to access the webSubmit admin');
+INSERT INTO rules VALUES (3,'submissionuser','this role is used to specifies who has the right to perform an action over a given document type (webSubmit).\r\nIf noone is associated to this role for a given document type/action, then no protection is set on this action.');
+INSERT INTO rules VALUES (4,'searchmanager','This roles gives access to the webSearch admin');
+INSERT INTO rules VALUES (5,'bibmanager','This role gives access to the bibData admin');
+INSERT INTO rules VALUES (6,'accessmanager','This role allows the user to manage all the access rights (webAccess admin)');
+INSERT INTO rules VALUES (7,'submissionviewer','This role allows a user to view all actions completed in webSubmit for a given document type');
+INSERT INTO rules VALUES (9,'referee','This role is given to the referees in the webSubmit simple refereeing process');
+INSERT INTO rules VALUES (10,'bibformatmanager','This role allows a user to access the bibFormat admin');
+
+INSERT INTO sbmACTION VALUES ('Submit Bibliographic Information','SBI','running','1998-08-17','2001-08-08','submit_button.gif','Submit a Document');
+INSERT INTO sbmACTION VALUES ('Transfer your document','FTT','upload','1998-08-17','2002-04-05','transfer_button.gif','Transfer files');
+INSERT INTO sbmACTION VALUES ('Modify Bibliographic Information','MBI','modify','1998-08-17','2001-11-07','modify_button.gif','Modify a Document');
+INSERT INTO sbmACTION VALUES ('Submit a Revised Version','SRV','revise','0000-00-00','2001-11-07','revision_button.gif','Submit a Revised Version');
+INSERT INTO sbmACTION VALUES ('Approve a Document','APP','approve','2001-11-08','2002-06-11','approve_button','approve a document');
+
+INSERT INTO sbmALLFUNCDESCR VALUES ('Create_Base_Files',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Create_Icon','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Create_Modify_Interface',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Display_Record_Data',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Get_Report_Number',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Get_Sysno',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Mail_Submitter',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Make_Modify_Record',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Make_Weblib_Record',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Move_Files_Archive',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Move_Pictures_Archive',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Move_Revised_Files',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Move_to_Done',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Move_to_Pending',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Print_Success_FTT',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Print_Success_MBI',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Print_Success_SRV',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Report_Number_Generation',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Save_Modify_Values',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Send_Approval_Request',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Send_FTT_Mail',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Send_Modify_Mail',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Send_SRV_Mail',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Set_Archive_Files',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Test_BI',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Test_File_Format',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Test_File_Name',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Test_File_Size',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Is_Referee','This function checks whether the logged user is a referee for the current document');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Insert_Record',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Update_Approval_DB',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Upload_Included_Files',NULL);
+INSERT INTO sbmALLFUNCDESCR VALUES ('Is_Original_Submitter','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Test_Status','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Get_Info','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Print_Success_APP','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Move_From_Pending','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Send_APP_Mail','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('CaseEDS','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Finish_Submission','');
+INSERT INTO sbmALLFUNCDESCR VALUES ('Format_Record','Uses bibformat to format the record created by Make_Record');
+
+INSERT INTO sbmCHECKS VALUES ('AUCheck','function AUCheck(txt) {\r\n	var res=1;\r\n	tmp=txt.indexOf(\"\\015\");\r\n	while (tmp != -1) {\r\n		left=txt.substring(0,tmp);\r\n		right=txt.substring(tmp+2,txt.length);\r\n		txt=left + \"\\012\" + right;\r\n		tmp=txt.indexOf(\"\\015\");\r\n	}\r\n	tmp=txt.indexOf(\"\\012\");\r\n	if (tmp==-1){\r\n		line=txt;\r\n		txt=\'\';}\r\n	else{\r\n		line=txt.substring(0,tmp);\r\n		txt=txt.substring(tmp+1,txt.length);}\r\n	while (line != \"\"){\r\n		coma=line.indexOf(\",\");\r\n		left=line.substring(0,coma);\r\n		right=line.substring(coma+1,line.length);\r\n		coma2=right.indexOf(\",\");\r\n		space=right.indexOf(\" \");\r\n		if ((coma==-1)||(left==\"\")||(right==\"\")||(space!=0)||(coma2!=-1)){\r\n			res=0;\r\n			error_log=line;\r\n		}\r\n		tmp=txt.indexOf(\"\\012\");\r\n		if (tmp==-1){\r\n			line=txt;\r\n			txt=\'\';}\r\n		else{\r\n			line=txt.substring(0,tmp-1);\r\n			txt=txt.substring(tmp+1,txt.length);}\r\n	}\r\n	if (res == 0){\r\n		alert(\"This author name cannot be managed \\: \\012\\012\" + error_log + \" \\012\\012It is not in the required format!\\012Put one author per line and a comma (,) between the name and the firstname initial letters. \\012The name is going first, followed by the firstname initial letters.\\012Don\'t forget the whitespace after the comma!!!\\012\\012Example \\: Put\\012\\012Le Meur, J Y \\012Baron, T \\012\\012for\\012\\012Le Meur Jean-Yves & Baron Thomas.\");\r\n		return 0;\r\n	}	\r\n	return 1;	\r\n}','1998-08-18','0000-00-00','','');
+INSERT INTO sbmCHECKS VALUES ('DatCheckNew','function DatCheckNew(txt) {\r\n	var res=1;\r\n	if (txt.length != 10){res=0;}\r\n	if (txt.indexOf(\"/\") != 2){res=0;}\r\n	if (txt.lastIndexOf(\"/\") != 5){res=0;}\r\n	tmp=parseInt(txt.substring(0,2),10);\r\n	if ((tmp > 31)||(tmp < 1)||(isNaN(tmp))){res=0;}\r\n	tmp=parseInt(txt.substring(3,5),10);\r\n	if ((tmp > 12)||(tmp < 1)||(isNaN(tmp))){res=0;}\r\n	tmp=parseInt(txt.substring(6,10),10);\r\n	if ((tmp < 1)||(isNaN(tmp))){res=0;}\r\n	if (txt.length  == 0){res=1;}\r\n	if (res == 0){\r\n		alert(\"Please enter a correct Date \\012Format: dd/mm/yyyy\");\r\n		return 0;\r\n	}\r\n	return 1;	\r\n}','0000-00-00','0000-00-00','','');
+
+INSERT INTO sbmFORMATEXTENSION VALUES ('WORD','.doc');
+INSERT INTO sbmFORMATEXTENSION VALUES ('PostScript','.ps');
+INSERT INTO sbmFORMATEXTENSION VALUES ('PDF','.pdf');
+INSERT INTO sbmFORMATEXTENSION VALUES ('JPEG','.jpg');
+INSERT INTO sbmFORMATEXTENSION VALUES ('JPEG','.jpeg');
+INSERT INTO sbmFORMATEXTENSION VALUES ('GIF','.gif');
+INSERT INTO sbmFORMATEXTENSION VALUES ('PPT','.ppt');
+INSERT INTO sbmFORMATEXTENSION VALUES ('HTML','.htm');
+INSERT INTO sbmFORMATEXTENSION VALUES ('HTML','.html');
+INSERT INTO sbmFORMATEXTENSION VALUES ('Latex','.tex');
+INSERT INTO sbmFORMATEXTENSION VALUES ('Compressed PostScript','.ps.gz');
+INSERT INTO sbmFORMATEXTENSION VALUES ('Tarred Tex (.tar)','.tar');
+INSERT INTO sbmFORMATEXTENSION VALUES ('Text','.txt');
+
+INSERT INTO sbmFUNDESC VALUES ('Report_Number_Generation','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Report_Number_Generation','autorngen');
+INSERT INTO sbmFUNDESC VALUES ('Generate_SUBject_from_Code','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Make_Weblib_Record','sourceSubmit');
+INSERT INTO sbmFUNDESC VALUES ('Test_File_Size','minsize');
+INSERT INTO sbmFUNDESC VALUES ('Read_RepNo_and_Fields','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Get_Record','base');
+INSERT INTO sbmFUNDESC VALUES ('Get_Report_Number','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Save_New_Values','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Send_Modify_Mail','addressesMBI');
+INSERT INTO sbmFUNDESC VALUES ('Send_Modify_Mail','sourceDoc');
+INSERT INTO sbmFUNDESC VALUES ('Test_File_Size','maxsize');
+INSERT INTO sbmFUNDESC VALUES ('Report_Number_Generation','rnin');
+INSERT INTO sbmFUNDESC VALUES ('Report_Number_Generation','counterpath');
+INSERT INTO sbmFUNDESC VALUES ('Report_Number_Generation','rnformat');
+INSERT INTO sbmFUNDESC VALUES ('Report_Number_Generation','yeargen');
+INSERT INTO sbmFUNDESC VALUES ('Mail_Submitter','authorfile');
+INSERT INTO sbmFUNDESC VALUES ('Mail_Submitter','status');
+INSERT INTO sbmFUNDESC VALUES ('Create_Base_Files','base');
+INSERT INTO sbmFUNDESC VALUES ('Send_Approval_Request','authorfile');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','addressesFTT');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','sourceDoc');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','authorfile');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','status');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','titleFile');
+INSERT INTO sbmFUNDESC VALUES ('Create_Modify_Interface','fieldnameMBI');
+INSERT INTO sbmFUNDESC VALUES ('Send_Modify_Mail','fieldnameMBI');
+INSERT INTO sbmFUNDESC VALUES ('Make_Modify_Record','sourceModify');
+INSERT INTO sbmFUNDESC VALUES ('Set_Archive_Files','pathARCHIVE');
+INSERT INTO sbmFUNDESC VALUES ('Set_Archive_Files','formatARCHIVE');
+INSERT INTO sbmFUNDESC VALUES ('Set_Archive_Files','variablesARCHIVE');
+INSERT INTO sbmFUNDESC VALUES ('Update_Approval_DB','categformatDAM');
+INSERT INTO sbmFUNDESC VALUES ('Send_SRV_Mail','categformatDAM');
+INSERT INTO sbmFUNDESC VALUES ('Send_SRV_Mail','addressesSRV');
+INSERT INTO sbmFUNDESC VALUES ('Move_Files_Archive','firstfile');
+INSERT INTO sbmFUNDESC VALUES ('Move_Files_Archive','secondfile');
+INSERT INTO sbmFUNDESC VALUES ('Move_Files_Archive2','firstfile');
+INSERT INTO sbmFUNDESC VALUES ('Move_Files_Archive2','secondfile');
+INSERT INTO sbmFUNDESC VALUES ('Move_Pictures_Archive','firstfile');
+INSERT INTO sbmFUNDESC VALUES ('Move_Pictures_Archive','secondfile');
+INSERT INTO sbmFUNDESC VALUES ('Send_Approval_Request','directory');
+INSERT INTO sbmFUNDESC VALUES ('Send_Approval_Request','categformatDAM');
+INSERT INTO sbmFUNDESC VALUES ('Send_Approval_Request','addressesDAM');
+INSERT INTO sbmFUNDESC VALUES ('Print_Success_FTT','status');
+INSERT INTO sbmFUNDESC VALUES ('Stamp_Document2','firstfile');
+INSERT INTO sbmFUNDESC VALUES ('Move_Files_Archive3','firstfile');
+INSERT INTO sbmFUNDESC VALUES ('Move_Files_Archive3','secondfile');
+INSERT INTO sbmFUNDESC VALUES ('Upload_Included_Files','firstfile');
+INSERT INTO sbmFUNDESC VALUES ('Print_Success_FTT','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Test_File_Format','formatFTT');
+INSERT INTO sbmFUNDESC VALUES ('Send_APP_Mail','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','textMailFTT');
+INSERT INTO sbmFUNDESC VALUES ('Print_Success_FTT','newrnin');
+INSERT INTO sbmFUNDESC VALUES ('Mail_Submitter','titleFile');
+INSERT INTO sbmFUNDESC VALUES ('Upload_Included_Files','filetype');
+INSERT INTO sbmFUNDESC VALUES ('Send_FTT_Mail','newrnin');
+INSERT INTO sbmFUNDESC VALUES ('Send_Modify_Mail','emailFile');
+INSERT INTO sbmFUNDESC VALUES ('Test_File_Name','formatFTT');
+INSERT INTO sbmFUNDESC VALUES ('Create_Icon','iconsize');
+INSERT INTO sbmFUNDESC VALUES ('Upload_Included_Files','secondfile');
+INSERT INTO sbmFUNDESC VALUES ('Create_Icon','firstfile');
+INSERT INTO sbmFUNDESC VALUES ('Create_Icon','secondfile');
+INSERT INTO sbmFUNDESC VALUES ('Get_Info','authorFile');
+INSERT INTO sbmFUNDESC VALUES ('Get_Info','emailFile');
+INSERT INTO sbmFUNDESC VALUES ('Get_Info','titleFile');
+INSERT INTO sbmFUNDESC VALUES ('Make_Weblib_Record','mysqlInsert');
+INSERT INTO sbmFUNDESC VALUES ('Make_Modify_Record','mysqlModify');
+INSERT INTO sbmFUNDESC VALUES ('Send_APP_Mail','addressesAPP');
+INSERT INTO sbmFUNDESC VALUES ('Send_APP_Mail','categformatAPP');
+INSERT INTO sbmFUNDESC VALUES ('Send_APP_Mail','newrnin');
+INSERT INTO sbmFUNDESC VALUES ('CaseEDS','casevariable');
+INSERT INTO sbmFUNDESC VALUES ('CaseEDS','casevalues');
+INSERT INTO sbmFUNDESC VALUES ('CaseEDS','casesteps');
+INSERT INTO sbmFUNDESC VALUES ('CaseEDS','casedefault');
+INSERT INTO sbmFUNDESC VALUES ('Test_BI','titleFile');
+INSERT INTO sbmFUNDESC VALUES ('Send_SRV_Mail','noteFile');
+INSERT INTO sbmFUNDESC VALUES ('Send_SRV_Mail','emailFile');
+INSERT INTO sbmFUNDESC VALUES ('Send_Approval_Request','titleFile');
+INSERT INTO sbmFUNDESC VALUES ('Mail_Submitter','emailFile');
+INSERT INTO sbmFUNDESC VALUES ('Mail_Submitter','edsrn');
+INSERT INTO sbmFUNDESC VALUES ('Mail_Submitter','newrnin');
+
+INSERT INTO sbmGFILERESULT VALUES ('HTML','HTML document');
+INSERT INTO sbmGFILERESULT VALUES ('WORD','data');
+INSERT INTO sbmGFILERESULT VALUES ('PDF','PDF document');
+INSERT INTO sbmGFILERESULT VALUES ('PostScript','PostScript document');
+INSERT INTO sbmGFILERESULT VALUES ('PostScript','data ');
+INSERT INTO sbmGFILERESULT VALUES ('PostScript','HP Printer Job Language data');
+INSERT INTO sbmGFILERESULT VALUES ('jpg','JPEG image');
+INSERT INTO sbmGFILERESULT VALUES ('Compressed PostScript','gzip compressed data');
+INSERT INTO sbmGFILERESULT VALUES ('Tarred Tex (.tar)','tar archive');
+INSERT INTO sbmGFILERESULT VALUES ('JPEG','JPEG image');
+INSERT INTO sbmGFILERESULT VALUES ('GIF','GIF');
+</protect>
diff --git a/modules/websearch/.cvsignore b/modules/websearch/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/websearch/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/websearch/Makefile.am b/modules/websearch/Makefile.am
new file mode 100644
index 000000000..0e12bef6f
--- /dev/null
+++ b/modules/websearch/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = lib bin web 
+
+CLEANFILES = *~
\ No newline at end of file
diff --git a/modules/websearch/bin/.cvsignore b/modules/websearch/bin/.cvsignore
new file mode 100644
index 000000000..cb912fdd4
--- /dev/null
+++ b/modules/websearch/bin/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+index.wml
+create_collection_pages
\ No newline at end of file
diff --git a/modules/websearch/bin/Makefile.am b/modules/websearch/bin/Makefile.am
new file mode 100644
index 000000000..f8a81f23c
--- /dev/null
+++ b/modules/websearch/bin/Makefile.am
@@ -0,0 +1,35 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+bin_SCRIPTS=create_collection_pages
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(bin_SCRIPTS) *~ *.tmp index.wml
+
+install-data-local:
+	./create_collection_pages
+	rm -f index.wml
+
+%.py: %.py.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+	chmod u+x $@
diff --git a/modules/websearch/bin/create_collection_pages.wml b/modules/websearch/bin/create_collection_pages.wml
new file mode 100644
index 000000000..bf5eb6444
--- /dev/null
+++ b/modules/websearch/bin/create_collection_pages.wml
@@ -0,0 +1,846 @@
+## $Id$
+## Script that creates collection pages, starting from the collection
+## passed to the script as an argument.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>#!</protect><PYTHON>
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""Creates CDSware collection specific pages, using WML and MySQL configuration tables."""
+
+## fill config variables:
+pylibdir = "<LIBDIR>/python"
+wmlexec = "<WML>"
+
+### okay, rest of the Python code goes below ###
+
+## import modules:
+try:
+    import sys
+    import cgi
+    import re
+    import os
+    import math
+    import string
+    import urllib
+    import zlib
+    import MySQLdb
+    import Numeric
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+try:
+    sys.path.append('%s' % pylibdir)
+    from cdsware.config import *
+    from cdsware.search_engine import HitList, search_pattern
+    from cdsware.search_engine_config import cfg_author_et_al_threshold, cfg_instant_browse
+    from cdsware.dbquery import run_sql    
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+## auxiliary functions:
+def mymkdir(newdir, mode=0777):
+    """works the way a good mkdir should :)
+        - already exists, silently complete
+        - regular file in the way, raise an exception
+        - parent directory(ies) does not exist, make them as well
+    """
+    if os.path.isdir(newdir):
+        pass
+    elif os.path.isfile(newdir):
+        raise OSError("a file with the same name as the desired " \
+                      "dir, '%s', already exists." % newdir)
+    else:
+        head, tail = os.path.split(newdir)
+        if head and not os.path.isdir(head):
+            mymkdir(head, mode)
+        if tail:
+	    os.umask(022)
+            os.mkdir(newdir, mode)
+
+def nice_number(num):
+    "Returns nice number when using comma as thousands separator."
+    chars_in = list(str(num))
+    num = len(chars_in)
+    chars_out = []
+    for i in range(0,num):
+        if i % 3 == 0 and i != 0:
+            chars_out.append(',')
+        chars_out.append(chars_in[num-i-1])
+    chars_out.reverse()
+    return ''.join(chars_out)
+
+def escape_string(s):
+    "Escapes special chars in string.  For MySQL queries."
+    s = MySQLdb.escape_string(s)
+    return s
+
+def secure_path(p):
+    "Escapes special chars in path, like '&' and ' '.  For filename creation."
+    p = re.sub(' ', '_', p)
+    p = re.sub('\\\\', '_', p)
+    p = re.sub('\&', 'and', p)
+    p = re.sub('\(', '', p)
+    p = re.sub('\)', '', p)
+    return p
+
+def is_selected(var, fld):
+    "Checks if the two are equal, and if yes, returns ' selected'.  Useful for select boxes."
+    if var == fld:
+        return " selected"
+    else:
+        return ""
+
+def create_html_header(name='Search', navtrail='', cdspageboxlefttopadd='', cdspageboxleftbottomadd='',
+                       cdspageboxrighttopadd='', cdspageboxrightbottomadd=''):
+    "Returns standard HTML header."
+    # NOTE: in order to let 'create_collection_pages' write the
+    # protect tag in 'index.wml' you need to do it in a funny way,
+    # because otherwise WML would interpret the protect tag already
+    # when compiling this program (create_collection_pages.wml)!  This
+    # is because the source file itself it is also handled by WML. :-)
+    out = """#include "cdspage.wml" \\\
+        title="%s" \\\
+        navbar_name="main" \\\
+        navbar_select="searchbiblinfo" """ % name
+    if navtrail:
+        out += """\\\
+        navtrail_body="<%s>%s</%s>" """ % ('protect', navtrail, 'protect')
+    else:
+        out += """\\\
+        navtrail_body="" """
+    if cdspageboxlefttopadd:
+        out += """\\\
+        cdspageboxlefttopadd="<%s>%s</%s>" """ % ('protect', cdspageboxlefttopadd, 'protect')
+    if cdspageboxleftbottomadd:
+        out += """\\\
+        cdspageboxleftbottomadd="<%s>%s</%s>" """ % ('protect', cdspageboxleftbottomadd, 'protect')
+    if cdspageboxrighttopadd:
+        out += """\\\
+        cdspageboxrighttopadd="<%s>%s</%s>" """ % ('protect', cdspageboxrighttopadd, 'protect')
+    if cdspageboxrightbottomadd:
+        out += """\\\
+        cdspageboxrightbottomadd="<%s>%s</%s>" """ % ('protect', cdspageboxrightbottomadd, 'protect')
+    out += """
+    <protect>
+    <?
+    include("%s/sessinit.inc.shtml");
+    function IsSelectedOption($var,$string) {
+        if ($var == $string) {
+            return " selected";
+        }
+    }
+    function GetNbDocInCollection($collname, $prolog=' <small class="nbdoccoll">(', $epilog=')</small>', $doNiceNumber=1) {
+       global $SESS_DBH;
+       $out = "";
+       $query = "SELECT nbrecs FROM collection WHERE name='".$collname."'";
+       $res = mysql_query($query, $SESS_DBH);
+       if (mysql_num_rows($res)) {
+           if ($row = mysql_fetch_row($res)) {
+               $out = $row[0];
+           }
+           mysql_free_result($res);
+       }       
+       if ($doNiceNumber == 1) {
+           $out = number_format($out);
+       }
+       $out = $prolog.$out.$epilog;       
+       return $out;
+    }
+    ?>    
+    </protect>""" % (webdir)
+    return out
+
+def create_html_footer():
+    "Returns standard HTML footer."
+    return ""
+
+def create_andornot_box(name='op', value=''):
+    "Returns HTML code for the AND/OR/NOT selection box."
+    out = """
+    <select name="%s">
+    <option value="a"%s>AND
+    <option value="o"%s>OR
+    <option value="n"%s>AND NOT
+    </select>
+    """ % (name, is_selected('a', value), is_selected('o', value), is_selected('n', value))
+    return out
+
+def create_matchtype_box(name='m', value=''):
+    "Returns HTML code for the 'match type' selection box."
+    out = """
+    <select name="%s">
+    <option value="a"%s>All of the words:
+    <option value="o"%s>Any of the words:
+    <option value="p"%s>Phrase/substring:
+    <option value="r"%s>Regular expression:
+    <option value="e"%s>Exact value:
+    </select>
+    """ % (name, is_selected('a', value), is_selected('o', value), is_selected('p', value), 
+                 is_selected('r', value), is_selected('e', value))
+    return out
+
+def get_field(recID, tag):
+    "Gets list of field 'tag' for the record with 'recID' system number."
+
+    out = []
+    digit = tag[0:2]
+
+    bx = "bib%sx" % digit
+    bibx = "bibrec_bib%sx" % digit
+    query = "SELECT bx.value FROM %s AS bx, %s AS bibx WHERE bibx.id_bibrec='%s' AND bx.id=bibx.id_bibxxx AND bx.tag='%s'" \
+            % (bx, bibx, recID, tag)
+    res = run_sql(query)
+    for row in res:        
+        out.append(row[0])
+    return out
+
+def print_record(recID, format='hb'):
+    "Prints record 'recID' formatted accoding to 'format'."
+
+    out = ""
+    # HTML brief format by default
+    query = "SELECT value FROM bibfmt WHERE id_bibrec='%s' AND format='%s'" % (recID, format)
+    res = run_sql(query, None, 1)
+    if res:
+        # record 'recID' is formatted in 'format', so print it
+        out += "%s" % zlib.decompress(res[0][0])
+    else:
+        # record 'recID' does not exist in format 'format', so print some default format:
+        # firstly, title:
+        titles = get_field(recID, "245__a")
+        for title in titles:
+            out += "<strong>%s</strong> " % cgi.escape(title)
+        # secondly, authors:
+        authors = get_field(recID, "100__a") + get_field(recID, "700__a")
+        if authors:
+            out += " / "
+            for i in range (0,cfg_author_et_al_threshold):
+                if i < len(authors):
+                    out += """<a href="%s/search.py?p=%s&f=author">%s</a> ;""" % (weburl, urllib.quote(authors[i]), cgi.escape(authors[i]))
+            if len(authors) > cfg_author_et_al_threshold:
+                out += " <em>et al.</em>"
+        # thirdly, date of creation:
+        dates = get_field(recID, "260__c")
+        for date in dates:
+            out += " %s." % cgi.escape(date)
+        # thirdly bis, report numbers:
+        rns = get_field(recID, "037__a")
+        for rn in rns:
+            out += """ <small class="quicknote">[%s]</small>""" % cgi.escape(rn)
+        rns = get_field(recID, "088__a")
+        for rn in rns:
+            out += """ <small class="quicknote">[%s]</small>""" % cgi.escape(rn)
+        # fourthly, beginning of abstract:
+        abstracts = get_field(recID, "520__a")
+        for abstract in abstracts:
+            out += "<br><small>%s [...]</small>" % cgi.escape(abstract[:1+string.find(abstract, '.')])
+        # fifthly, fulltext link:
+        urls_z = get_field(recID, "8564_z")
+        urls_u = get_field(recID, "8564_u")
+        for idx in range(0,len(urls_u)):
+            out += """<br><small class="note"><a class="note" href="%s">%s</a></small>""" % (urls_u[idx], urls_u[idx])
+
+    # at the end of HTML mode, print "Detailed record" and "Mark record" functions:
+    out +=  """<br><span class="moreinfo"><a class="moreinfo" href="%s/search.py?id=%s">Detailed record</a>""" \
+           % (weburl, recID)
+    #out += """- <input name="mark[]" type="checkbox" value="%s"> Mark record</span>""" % recID
+
+    return out
+
+## class Collection:
+class Collection:
+    "Holds the information on collections (id,name,nameshort,dbquery)."
+
+    def __init__(self, name=""):
+        "Creates collection instance by querying the MySQL configuration database about 'name'."
+        if not name:
+            self.name = cdsname # by default we are working on the home page
+            self.id = 1
+            self.dbquery = None
+            self.nbrecs = None
+            self.reclist = None
+        else:
+            self.name = name
+            query = "SELECT id,nameshort,dbquery FROM collection WHERE name='%s'" % escape_string(name)
+            try:
+                res = run_sql(query, None, 1)
+                if res:
+                    self.id = res[0][0]
+                    self.nameshort = res[0][1]
+                    self.dbquery = res[0][2]
+                    self.nbrecs = None
+                    self.reclist = None
+                else: # collection does not exist!
+                    self.id = None
+                    self.nameshort = None
+                    self.dbquery = None
+                    self.nbrecs = None
+                    self.reclist = None
+            except MySQLdb.Error, e:
+                print "Error %d: %s" % (e.args[0], e.args[1])
+                sys.exit(1)
+
+    def get_ancestors(self):
+        "Returns list of ancestors of the current collection."
+        ancestors = []
+        id_son = self.id
+        while 1:
+            query = "SELECT cc.id_dad,c.name FROM collection_collection AS cc, collection AS c "\
+                    "WHERE cc.id_son=%d AND c.id=cc.id_dad" % int(id_son)
+            res = run_sql(query, None, 1)
+            if res:
+                col_ancestor = Collection(res[0][1])
+                ancestors.append(col_ancestor)
+                id_son = res[0][0]
+            else:
+                break
+        ancestors.reverse()
+        return ancestors
+
+    def get_sons(self):
+        "Returns list of direct sons of the current collection."
+        sons = []
+        id_dad = self.id
+        query = "SELECT cc.id_son,c.name FROM collection_collection AS cc, collection AS c "\
+                "WHERE cc.id_dad=%d AND c.id=cc.id_son ORDER BY score DESC, c.name ASC" % int(id_dad)
+        res = run_sql(query)
+        for row in res:
+            sons.append(Collection(row[1]))
+        return sons
+
+    def get_descendants(self):
+        "Returns list of all descendants of the current collection."
+        descendants = []
+        id_dad = self.id
+        query = "SELECT cc.id_son,c.name FROM collection_collection AS cc, collection AS c "\
+                "WHERE cc.id_dad=%d AND c.id=cc.id_son ORDER BY score DESC" % int(id_dad)
+        res = run_sql(query)
+        for row in res:
+            col_desc = Collection(row[1])
+            descendants.append(col_desc)
+            descendants += col_desc.get_descendants()
+        return descendants
+
+    def get_collection_filename(self):
+        "Returns the filename of the current collection page."        
+        filename = self.get_collection_dirname() + "index.shtml"
+        return filename
+
+    def get_collection_dirname(self):
+        "Returns the directory name of the current collection page."
+        dirname = webdir + "/"
+        for dad in self.get_ancestors():
+            if dad.name != cdsname:
+                dirname += secure_path(dad.name) + "/"
+        if self.id>1: # exclude Home collection
+            dirname += secure_path(self.name) + "/"
+        return dirname
+
+    def write_page(self, body=''):
+        "Calls WML engine and writes resulting HTML page in the collection hierarchy."
+        # open file:
+        dirname = self.get_collection_dirname()
+        mymkdir(dirname)
+        filename = self.get_collection_filename()
+        try:
+	    os.umask(022)
+            f = open("index.wml", "w")
+        except IOError, v:
+            try:
+                (code, message) = v
+            except:
+                code = 0
+                message = v
+            print "I/O Error: " + str(message) + " (" + str(code) + ")"
+            sys.exit(1)
+        # print user info:
+        print "...... creating %s" % filename
+        sys.stdout.flush()
+        # print page body:
+        f.write(body)
+        # close file:
+        f.close()
+        # at the end, call WML:        
+        os.system("%s -o %s index.wml" % (wmlexec, filename))
+
+    def create_page(self):
+        """Creates collection page header, navtrail, body (including left and right stripes) and footer.
+           Calls weite_page() afterwards."""
+        
+        body = "<!--pagebody-->"
+        body += """<form action="%s/search.py" method="get">""" % weburl
+#        body += """<strong class="headline"><span class="h1">%s</span></strong>""" % self.name
+#        body += self.create_navtrail("""<br><table border=0 cellspacing=0 cellpadding=0><tr><td width="30"></td><td><small>""","","&gt;","","</small></td></tr></table>",1)
+        body += "" + self.create_searchfor()
+        body += """<br><table cellspacing="2" cellpadding="2" border="0"><tr>"""
+        body += """<td valign="top">""" + self.create_narrowsearch() + "</td>"
+        body += """<td valign="top"><table>"""
+        if self.create_searchoptions():
+            body += "<tr><td>"+ self.create_searchoptions() + "</td></tr>" 
+        if self.create_displayoptions():
+            body += "<tr><td>"+ self.create_displayoptions() + "</td></tr>" 
+        if self.create_sortoptions():
+            body += "<tr><td>"+ self.create_sortoptions() + "</td></tr>" 
+        if self.create_formatoptions():
+            body += "<tr><td>"+ self.create_formatoptions() + "</td></tr>" 
+        body += """</table></td>"""
+        body += "</tr></table>"
+        body += """</form>"""
+        body += "<!--/pagebody-->"
+        self.write_page(create_html_header(self.name,
+                                           self.create_navtrail("<small>","","&gt;","","</small>",1),
+                                           self.create_portalbox("lt"),
+                                           self.create_portalbox("lb"),
+                                           self.create_portalbox("rt"),
+                                           self.create_portalbox("rb")                                           
+                                           ) +
+                        body + create_html_footer())
+
+    def create_navtrail(self, \
+#                        header="""<table width="100%%"><tr><td class="navtrail">
+#                                  <img width="16" src="%s/img/iconnext.gif" border=0 alt="x">""" % webdir, \
+                        header="""<table width="100%" border=0 cellspacing=0 cellpadding=0><tr><td class="navtrail"><small>""", \
+                        prolog="", \
+                        separator="&gt;", \
+                        epilog="", \
+                        footer="</small></td></tr></table>",
+                        exclude_root=0):
+        "Creates navigation trail, i.e. links to collection ancestors."
+        # firstly, display navtrail prologue:
+        navtrail = header        
+        # first, list list of ancestors:
+        for dad in self.get_ancestors():
+            navtrail += """%s <a class="navtrail" href="%s/goto.shtml?c=%s">%s</a> %s %s """ % \
+                        (prolog, weburl, urllib.quote(dad.name), dad.name, epilog, separator)
+        # then print self:
+        if self.id > 1 or (self.id==1 and not exclude_root):
+            navtrail += """%s %s %s""" % (prolog, self.name, epilog)
+        # last, print navtrail epilogue:
+        navtrail += footer
+        # sanity check:
+        if navtrail == header + prolog + epilog + footer:
+            return ""
+        return navtrail
+
+    def create_portalbox(self, position="rt"):
+        """Creates portalboxes of the position 'position' by consulting MySQL configuration database.
+           The position may be: 'lt'='left top', 'lb'='left bottom', 'rt'='right top', 'rb'='right bottom',
+           'tl'='top left', 'tr'='top right', 'bl'='bottom left', 'br='bottom right'."""
+        out = ""
+        query = "SELECT p.title,p.body FROM portalbox AS p, collection_portalbox AS cp "\
+                " WHERE cp.id_collection=%d AND p.id=cp.id_portalbox AND cp.position='%s' "\
+                " ORDER BY cp.score DESC" % (self.id, position)
+        res = run_sql(query)
+        for row in res:
+            if out:
+                out += "<br>"
+            out += "<strong>" + row[0] + "</strong><br>" + row[1]
+        return out
+
+    def create_narrowsearch(self):
+        "Creates list of collection descendants under narrow search."
+        narrowsearch=""
+        # firstly write silent 'cc' (=current collection) argument:
+        narrowsearch += """<input type="hidden" name="cc" value="%s">""" % self.name
+        # then get list of sons and analyse it:
+        sons = self.get_sons()
+        # decide upon writing style: if there are grandchildren, then print in bold        
+        descendants = self.get_descendants()
+        if len(descendants)>len(sons):
+            style_prolog = "<strong>"
+            style_epilog = "</strong>"
+        else:
+            style_prolog = ""
+            style_epilog = ""
+        # are there some sons?
+        if len(sons):
+            narrowsearch += "<small><strong>Narrow search:</strong></small>"
+            # iterate through sons:
+            for son in sons:
+                narrowsearch += """<table><tr>
+                                   <td valign="top"><input type=checkbox name="c" value="%s" checked>&nbsp;</td>
+                                   <td valign="top"><a href="%s/goto.shtml?c=%s">%s%s%s</a><? echo GetNbDocInCollection("%s"); ?>""" % \
+                                       (son.name, weburl, urllib.quote(son.name), style_prolog, son.name, style_epilog, son.name)
+                grandsons = son.get_sons()
+                nb_grandsons = len(grandsons)
+                if nb_grandsons:
+                    # print all grandsons:
+                    narrowsearch += """<br>"""
+                    for i in range(0,nb_grandsons):
+                        narrowsearch += """<a href="%s/goto.shtml?c=%s">%s</a><? echo GetNbDocInCollection("%s"); ?>  """ % \
+                                        (weburl, urllib.quote(grandsons[i].name), grandsons[i].name, grandsons[i].name)
+                narrowsearch += """</td></tr></table>""" 
+        else:
+            # no sons, so print some collection info:
+            narrowsearch += self.create_instant_browse()
+
+        return narrowsearch
+
+    def create_instant_browse(self, rg=cfg_instant_browse):
+        "Searches database and produces list of last 'rg' records."
+        box = ""
+        url = "%s/search.py?cc=%s" % (weburl, urllib.quote(self.name))
+        if self.nbrecs:
+            box += """<small><strong>Latest additions: </strong>"""
+            # firstly, get last 'rg' records:
+            box += "<ol>"
+            recIDs = Numeric.nonzero(self.reclist)
+            for idx in range(self.nbrecs-1, self.nbrecs-rg-1, -1):
+                if idx>=0:
+                    box += """<li style="font-size: small;"><p><small>""" + print_record(recIDs[idx]) + "</small></p>"
+            box += "</ol>"
+            if self.nbrecs > rg:
+                box += """<div align="right"><small><a href="%s">[list all %s records]</a></small></div>""" % (url, nice_number(self.nbrecs))
+        else:
+            box += """<small><strong>No records! </strong></small><br> This collection does not contain any document yet."""
+        return box
+
+    def create_searchoptions(self):
+        "Produces 'Search options' portal box."
+        # TODO: distinguish name/nameshort, i.e. naviguable/non-naviguable search options
+        box=""
+        query = """SELECT DISTINCT(cff.id_field),f.code,f.nameshort FROM collection_field_fieldvalue AS cff, field AS f
+                   WHERE cff.id_collection=%d AND cff.id_fieldvalue IS NOT NULL AND cff.id_field=f.id
+                   ORDER BY cff.score DESC""" % self.id
+        res = run_sql(query)
+        if res:
+            box += "<small><strong>Search options:</strong></small><br>"
+            for row in res:
+                field_id = row[0]
+                field_code = row[1]
+                field_name = row[2]                
+                query_bis = """SELECT fv.value,fv.nameshort FROM fieldvalue AS fv, collection_field_fieldvalue AS cff
+                               WHERE cff.id_collection=%d AND cff.type='seo' AND cff.id_field=%d AND fv.id=cff.id_fieldvalue
+                               ORDER BY cff.score_fieldvalue DESC, cff.score DESC, fv.nameshort ASC""" % (self.id, field_id)
+                res_bis = run_sql(query_bis)                
+                if res_bis:
+                    box += """<select name="%s">""" % field_code
+                    box += """<option value="">any %s""" % field_name
+                    for row_bis in res_bis:
+                        box += """<option value="%s">%s""" % (cgi.escape(row_bis[0], 1), row_bis[1])
+                    box += """</select>"""
+        return box
+
+    def create_sortoptions(self):
+        "Produces 'Sort options' portal box."
+        box=""
+        query = """SELECT f.code,f.nameshort FROM field AS f, collection_field_fieldvalue AS cff
+                   WHERE id_collection=%d AND cff.type='soo' AND cff.id_field=f.id
+                   ORDER BY cff.score DESC, f.name ASC""" % self.id
+        res = run_sql(query)
+        if res:
+            box += "<small><strong>Sort results:</strong></small><br>"
+            box += """<select name="sf">"""
+            box += """<option value="">no sort"""
+            for row in res:
+                box += """<option value="%s">sort by %s""" % (row[0], row[1])
+            box += """</select>"""
+            box += """<select name="so">
+                      <option value="a">asc.
+                      <option value="d">desc.
+                      </select>"""
+        return box
+
+    def create_displayoptions(self):
+        "Produces 'Display options' portal box."
+        box=""
+        box += "<small><strong>Display results:</strong></small><br>"
+        # firstly, display hits per collection selection box:
+        box += """
+        <? echo "<select name=\\\"rg\\\">";
+           echo "<option value=10" . IsSelectedOption($p_rg,10) . ">10 results";
+           echo "<option value=25" . IsSelectedOption($p_rg,25) . ">25 results";
+           echo "<option value=50" . IsSelectedOption($p_rg,50) . ">50 results";
+           echo "<option value=100". IsSelectedOption($p_rg,100) . ">100 results";
+           echo "<option value=250". IsSelectedOption($p_rg,250) . ">250 results";
+           echo "<option value=500". IsSelectedOption($p_rg,500) . ">500 results";
+           echo "</select>";
+        ?>"""
+        # secondly, display split by collection selection box:
+        if self.get_sons():
+            box += """<br>
+            <? echo "<select name=\\\"sc\\\">";
+            echo "<option value=\\\"0\\\"" . IsSelectedOption($p_sc,0) . ">grouped together";
+            echo "<option value=\\\"1\\\"" . IsSelectedOption($p_sc,1) . ">split by collection";
+            echo "</select>";
+            ?>"""        
+        return box
+
+    def create_formatoptions(self):
+        "Produces 'Output format options' portal box."
+        box = "<small><strong>Output format:</strong></small>"
+        box += """<br>
+        <? echo "<select name=\\\"of\\\">";
+           """
+        query = """SELECT f.code,f.name FROM format AS f, collection_format AS cf
+                   WHERE cf.id_collection=%d AND cf.id_format=f.id ORDER BY cf.score DESC, f.name ASC"""  % self.id
+        res = run_sql(query)
+        if res:
+            # propose found formats:
+            for row in res:
+                box += """
+                   echo "<option value=\\\"%s\\\"" . IsSelectedOption($p_of,'%s') . ">%s";
+                """ % (row[0],row[0],row[1])
+        else:
+            # no formats are defined for this collection, so propose the default HTML one:
+            box += """
+              echo "<option value=\\\"hb\\\"" . IsSelectedOption($p_of,'hb') . ">HTML brief";"""
+        box += """
+           echo "</select>";
+        ?>"""        
+        return box
+
+    def create_searchwithin_selection_box(self, fieldname='f', value=''):
+        "Produces 'search within' selection box for the current collection."
+        out = ""
+        out += """<select name="%s">""" % fieldname
+        out += """<option value="">any field"""
+        query = """SELECT f.code,f.name FROM field AS f, collection_field_fieldvalue AS cff
+                   WHERE cff.type='sew' AND cff.id_collection=%d AND cff.id_field=f.id
+                   ORDER BY cff.score DESC, f.name ASC"""  % self.id
+        res = run_sql(query)
+        if res:
+            # propose found 'search within' fields:
+            for row in res:
+                out += """<option value="%s"%s>%s""" % (row[0], is_selected(row[0], value), row[1])
+        else:
+            # no 'search within' fields are defined for this collection, so propose default ones:
+            out += """<option value="title"%s>title""" % is_selected("title", value)
+            out += """<option value="author"%s>author""" % is_selected("author", value)
+            out += """<option value="abstract"%s>abstract""" % is_selected("abstract", value)
+            out += """<option value="reportnumber"%s>report number""" % is_selected("reportnumber", value)
+            out += """<option value="keyword"%s>keyword""" % is_selected("keyword", value)
+        out += """</select>""" 
+        return out
+
+    def create_searchexample(self):
+        "Produces search example(s) for the current collection."
+        out = "$collSearchExamples = getSearchExample(%d, $se);" % self.id
+        return out
+
+    def create_searchfor(self):
+        "Produces either Simple or Advanced 'Search for' box for the current collection."
+        return """ <?
+        $collNbDocs = GetNbDocInCollection("%s", "<strong>", " records</strong>"); 
+        %s
+        if ($as==1) {
+           print <<<END_OF_ADVANCEDSEARCHFOR
+           %s
+END_OF_ADVANCEDSEARCHFOR;
+        } else {
+           print <<<END_OF_SIMPLESEARCHFOR
+           %s
+END_OF_SIMPLESEARCHFOR;
+        }
+        ?> """ % (self.name, self.create_searchexample(), self.create_searchfor_advanced(), self.create_searchfor_simple())
+
+    def create_searchfor_simple(self):
+        "Produces simple 'Search for' box for the current collection."
+        # print commentary start:
+        out = "<!--create_searchfor_simple()-->"
+        # define URL add-ons for simple and advanced search boxen:
+        ssearchurl = "?as=0"
+        asearchurl = "?as=1"
+        # define search box elements:
+        cell_1_left = """<small><strong>Search $collNbDocs for:</strong></small>
+                         <br><input type="text" name="p" size="40" value="">"""
+        cell_1_middle = "<small><strong>within:</strong></small><br>%s" % self.create_searchwithin_selection_box()
+        cell_1_right = """<input type="submit" name="search" value="SEARCH"><input type="submit" name="search" value="Browse">&nbsp;"""
+        cell_1_farright = """<small class="light"><a href="%s">Advanced Search</a></small>
+                             <br><small><a href="%s/docs/faq.shtml">Search Tips</a></small>""" % (asearchurl, weburl)
+        cell_2 = "$collSearchExamples"
+        # merge them:
+        out += """<table>
+                    <tr valign="bottom">
+                      <td align="left">%s</td>
+                      <td align="left">%s</td>
+                      <td align="left">%s</td>
+                      <td align="left">%s</td>
+                    </tr>
+                    <tr valign="baseline">
+                      <td colspan="4">%s</td>
+                    </tr>
+                   </table>""" % \
+              (cell_1_left, cell_1_middle, cell_1_right, cell_1_farright, cell_2)
+        # print commentary end:
+        out += "<!--/create_searchfor_simple()-->"
+        return out
+
+    def create_searchfor_advanced(self):
+        "Produces simple 'Search for' box for the current collection."
+        # print commentary start:
+        out = "<!--create_searchfor_advanced()-->"
+        out += """<input type="hidden" name="as" value="1">"""
+        # define URL add-ons for simple and advanced search boxen:
+        ssearchurl = "?as=0"
+        asearchurl = "?as=1"
+        # define search box elements:
+        cell_1_left = """<small><strong>Search $collNbDocs for:</strong></small><br>""" + \
+                      create_matchtype_box('m1') + """<input type="text" name="p1" size="40" value="">"""
+        cell_1_middle = "<small><strong>within:</strong></small><br>%s" % self.create_searchwithin_selection_box('f1')
+        cell_1_right = create_andornot_box('op1')
+        cell_1_farright = ""
+        cell_2_left = create_matchtype_box('m2') + """<input type="text" name="p2" size="40" value="">"""
+        cell_2_middle = self.create_searchwithin_selection_box('f2')
+        cell_2_right = create_andornot_box('op2')
+        cell_2_farright = ""
+        cell_3_left = create_matchtype_box('m3') + """<input type="text" name="p3" size="40" value="">"""
+        cell_3_middle = self.create_searchwithin_selection_box('f3')
+        cell_3_right = """<input type="submit" name="search" value="SEARCH"><input type="submit" name="search" value="Browse">&nbsp;"""
+        cell_3_farright = """<small class="light"><a href="%s">Simple Search</a></small>
+                             <br><small><a href="%s/docs/faq.shtml">Search Tips</a></small>""" % (ssearchurl, weburl)
+        cell_4 = "$collSearchExamples"
+        # merge them:
+        out += """<table>
+                    <tr valign="bottom">
+                      <td nowrap>%s</td>
+                      <td>%s</td>
+                      <td>%s</td>
+                      <td>%s</td>
+                    </tr>
+                    <tr valign="bottom">
+                      <td nowrap>%s</td>
+                      <td>%s</td>
+                      <td>%s</td>
+                      <td>%s</td>
+                    </tr>
+                    <tr valign="bottom">
+                      <td nowrap>%s</td>
+                      <td>%s</td>
+                      <td nowrap>%s</td>
+                      <td nowrap>%s</td>
+                    </tr>
+                    <tr valign="baseline">
+                      <td colspan="4">%s</td>
+                    </tr>
+                   </table>""" % \
+              (cell_1_left, cell_1_middle, cell_1_right, cell_1_farright, \
+               cell_2_left, cell_2_middle, cell_2_right, cell_2_farright, \
+               cell_3_left, cell_3_middle, cell_3_right, cell_3_farright, \
+               cell_4)
+        # print commentary end:
+        out += "<!--/create_searchfor_advanced()-->"
+        return out
+
+    def calculate_recinfo(self):
+        "Calculates the reclist universe for given collection."
+        reclist = HitList()
+        if not self.dbquery:
+            # A - collection does not have dbquery, so query recursively all its sons:
+            for coll in self.get_sons():
+                reclist.union(coll.calculate_recinfo())
+        else:
+            # B - collection does have dbquery, so compute and return number of documents found:
+            reclist = search_pattern(None,self.dbquery)
+        reclist.calculate_nbhits()
+        return reclist
+
+    def update_recinfo(self):
+        "Updates the reclist column of the collections table."
+        print "==> %s [id=%d]" % (self.name, self.id)
+        print "...... updating records:",
+        sys.stdout.flush()
+        reclist = self.calculate_recinfo()
+        self.nbrecs = reclist._nbhits
+        self.reclist = reclist._set
+        try:
+            query = "UPDATE collection SET nbrecs=%d, reclist='%s' WHERE id=%d" % \
+                    (self.nbrecs, escape_string(zlib.compress(Numeric.dumps(self.reclist))), self.id)
+            res = run_sql(query)
+        except MySQLdb.Error, e:
+            print "Database Query Error %d: %s." % (e.args[0], e.args[1])
+            sys.exit(1)            
+        print "%d found" % self.nbrecs
+
+def usage(code, msg=''):
+    "Prints usage info."
+    if msg:
+        sys.stderr.write("Error: %s.\n" % msg)
+    sys.stderr.write("Usage: %s [collection][+]\n" % sys.argv[0])
+    sys.stderr.write("""Description: %s creates the collection pages
+    hierarchy for the CDS document server, based on WML and MySQL
+    configuration parameters.  If no options are passed, it'll
+    recreate all the collections.  If the collection name is passed as
+    the first argument, it'll recreate this collection.  If the
+    collection name is immediately followed by a plus sign, it will
+    create also the pages for all collection desdendants.  The
+    top-level collection name may be entered as the void string.\n""" % sys.argv[0])    
+    sys.stderr.write("Example: %s\n" % sys.argv[0])
+    sys.stderr.write("Example: %s \"Articles & Preprints\"\n" % sys.argv[0])
+    sys.stderr.write("Example: %s \"Articles & Preprints\"+\n" % sys.argv[0])
+    sys.stderr.write("Example: %s \"\"\n" % sys.argv[0])
+    sys.stderr.write("Example: %s \"\"+\n" % sys.argv[0])
+    sys.exit(code)
+
+def main():
+    "Main function to call creation of collection pages.  Arguments described in usage() function."
+    # firstly, try to read arguments:
+    
+    if len(sys.argv) == 1:
+        ## case A: we'll do all the collections 
+        query = """SELECT name FROM collection ORDER BY id"""
+        res = run_sql(query)
+        for row in res:
+            col = Collection(row[0])
+            col.update_recinfo()
+            col.create_page()                    
+    elif len(sys.argv) == 2:
+        ## case B: we'll do only selected collection (and eventually its descendants)
+        coll_sons_too = 0 # we don't treat collection descendants by default
+        coll_name = sys.argv[1] 
+        if coll_name[-1:] == '+':
+            # yes we do the descendants too
+            coll_name = coll_name[:-1]
+            coll_sons_too = 1
+        # now treat the page in question:
+        col = Collection(coll_name)
+        if col.id == None:
+            usage(1, 'Collection %s does not exist' % coll_name)
+        col.update_recinfo()
+        col.create_page()
+        # now treat all its descendants, eventually:
+        if coll_sons_too:
+            for col_desc in col.get_descendants():
+                col_desc.update_recinfo()
+                col_desc.create_page()
+    else:
+        ## case C: bad arguments
+        usage(1)
+
+def test_calculate_recinfo():
+    "Test function that creates bit vector of records."
+    col = Collection("Preprints")
+    print col.name
+    reclist = col.calculate_recinfo() 
+    print "%d records" % reclist._nbhits
+
+### okay, here we go:
+if __name__ == '__main__':    
+    #test_calculate_recinfo()
+    main()
diff --git a/modules/websearch/lib/.cvsignore b/modules/websearch/lib/.cvsignore
new file mode 100644
index 000000000..6a1572735
--- /dev/null
+++ b/modules/websearch/lib/.cvsignore
@@ -0,0 +1,8 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+oai1d
+oai2d
+*.py
\ No newline at end of file
diff --git a/modules/websearch/lib/Makefile.am b/modules/websearch/lib/Makefile.am
new file mode 100644
index 000000000..56233d321
--- /dev/null
+++ b/modules/websearch/lib/Makefile.am
@@ -0,0 +1,28 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+pylibdir=$(libdir)/python/cdsware
+pylib_DATA=search_engine.py search_engine_config.py
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(pylib_DATA) *~ *.tmp *.pyc
+
+%.py: %.py.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
\ No newline at end of file
diff --git a/modules/websearch/lib/search_engine.py b/modules/websearch/lib/search_engine.py
new file mode 100644
index 000000000..cb9edc4fb
--- /dev/null
+++ b/modules/websearch/lib/search_engine.py
@@ -0,0 +1,1977 @@
+## $Id$
+## CDSware Search Engine in mod_python.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+"""CDSware Search Engine in mod_python."""
+
+<protect> ## okay, rest of the Python code goes below #######
+
+__version__ = "$Id$"
+
+## import interesting modules:
+try:
+    import cgi
+    import Cookie
+    import cPickle
+    import marshal
+    import fileinput
+    import getopt
+    import string
+    from string import split
+    import os
+    import re
+    import sys
+    import time
+    import urllib
+    import zlib
+    import lzo
+    import MySQLdb
+    import Numeric
+    import md5
+    import base64
+    import unicodedata
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)    
+
+try:
+    from config import *
+    from search_engine_config import *
+    from dbquery import run_sql
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+search_cache = {} # will cache results of previous searches
+dbg = 0 # are we debugging?
+
+## precompile some often-used regexp for speed reasons:
+re_a = re.compile('[����]')
+re_A = re.compile('[����]')
+re_e = re.compile('[����]')
+re_E = re.compile('[����]')
+re_i = re.compile('[����]')
+re_I = re.compile('[����]')
+re_o = re.compile('[����]')
+re_O = re.compile('[����]')
+re_u = re.compile('[����]')
+re_U = re.compile('[����]')
+re_w = re.compile('[^\w]')
+re_logical_and = re.compile('\sand\s')
+re_logical_or = re.compile('\sor\s')
+re_logical_not = re.compile('\snot\s')
+re_operands = re.compile(r'\s([\+\-\|])\s')
+re_spaces = re.compile('\s\s+')
+re_pattern = re.compile('[^\w\+\*\-\?\|\'\"\,\:\=]')
+re_word = re.compile('[\s]')
+re_plus = re.compile('\+')
+re_minus = re.compile('\-')
+re_equal = re.compile('\=')
+re_asterisk = re.compile('\*')
+re_quote = re.compile('\'')
+re_quotes = re.compile('[\'\"]')
+re_doublequote = re.compile('\"')
+re_subfields = re.compile('\$\$\w')
+re_amp = re.compile('&')
+re_lt = re.compile('<')
+
+def build_table_latin1_to_ascii():
+    """Builds translation table from ISO Latin-1 into ASCII.
+    For example, 'f�lin' gets translated into 'felin', etc.
+    Suitable for search string pattern replacement."""
+    table = range(256)
+    for i in table:
+        x = unicodedata.decomposition(unichr(i))
+        if x and x[0] == "0":
+            table[i] = int(x.split()[0], 16)
+    return string.join(map(chr, table), "")
+
+# build conversion table:
+table_latin1_to_ascii = build_table_latin1_to_ascii()
+
+def get_nicely_ordered_collection_list(collid=1, level=0):
+    """Returns nicely ordered (score respected) list of collections, more exactly list of tuples
+       (collection name, printable collection name).
+       Suitable for print_search_box()."""
+    colls_nicely_ordered = []
+    query = "SELECT c.name,cc.id_son FROM collection_collection AS cc, collection AS c "\
+            " WHERE c.id=cc.id_son AND cc.id_dad='%s' ORDER BY score DESC" % collid
+    res = run_sql(query)
+    for c, cid in res:
+        # make a nice printable name (e.g. truncate c_printable for for long collection names):
+        if len(c)>30:
+            c_printable = c[:30] + "..."
+        else:
+            c_printable = c
+        if level:
+            c_printable = " " + level * '-' + " " + c_printable
+        colls_nicely_ordered.append([c, c_printable])
+        colls_nicely_ordered  = colls_nicely_ordered + get_nicely_ordered_collection_list(cid, level+1)
+    return colls_nicely_ordered
+
+def get_wordsindex_id(field):
+    """Returns first words index id where the field code 'field' is word-indexed.
+       Returns zero in case there is no words table for this index.
+       Example: field='author', output=4."""
+    out = 0
+    query = """SELECT w.id FROM wordsindex AS w, wordsindex_field AS wf, field AS f
+                WHERE f.code='%s' AND wf.id_field=f.id AND w.id=wf.id_wordsindex
+                LIMIT 1""" % MySQLdb.escape_string(field)
+    res = run_sql(query, None, 1)
+    if res:
+        out = res[0][0]
+    return out
+
+def get_words_from_phrase(phrase, chars_to_treat_as_separators="[\s]"):
+    "Returns list of words found in the phrase 'phrase'."
+    words = {}
+    phrase = asciify_accented_letters(phrase)
+    phrase = re.sub(chars_to_treat_as_separators, ' ', phrase) # replace all non-alphabetic characters by spaces
+    for word in split(phrase):
+        if not words.has_key(word):
+            words[word] = 1;
+    return words.keys()
+
+def create_opft_search_units(req, p, f, m=None):
+    """Splits search pattern and search field into a list of independently searchable units.
+       - A search unit consists of '(operand, pattern, field, type)' tuples where
+          'operand' is set union (|), set intersection (+) or set exclusion (-);
+          'pattern' is either a word (e.g. muon*) or a phrase (e.g. 'nuclear physics');
+          'field' is either a code like 'title' or MARC tag like '100__a';
+          'type' is the search type ('w' for word file search, 'a' for access file search).
+        - Optionally, the function accepts the match type argument 'm'.
+          If it is set (e.g. from advanced search interface), then it
+          performs this kind of matching.  If it is not set, then a guess is made.
+          'm' can have values: 'a'='all of the words', 'o'='any of the words',
+                               'p'='phrase/substring', 'r'='regular expression',
+                               'e'='exact value'."""
+
+    opfts = [] # will hold (o,p,f,t) units
+
+    ## print input params for debugging purposes:
+    if dbg:
+        print_warning(req, "p='%s', f='%s'." % (p, f), "Debug (create_opft_search_units())")
+
+    ## check arguments: if matching type phrase/string/regexp, do we have field defined?    
+    if (m=='p' or m=='r' or m=='e') and not f:
+        m = 'a'        
+        print_warning(req, "This matching type cannot be used within <em>any field</em>.  I will perform a word search instead." , "Warning")
+        print_warning(req, "If you want to phrase/substring/regexp search in a specific field, e.g. inside title, then please choose <em>within title</em> search option.", "Tip")
+        
+    ## is desired matching type set?
+    if m:
+        ## A - matching type is known; good!
+        if m == 'e':
+            # A1 - exact value:
+            opfts.append(['|',p,f,'a']) # '|' since we have only one unit
+        elif m == 'p':
+            # A2 - phrase/substring:
+            opfts.append(['|',"%"+p+"%",f,'a']) # '|' since we have only one unit
+        elif m == 'r':
+            # A3 - regular expression:
+            opfts.append(['|',p,f,'r']) # '|' since we have only one unit
+        elif m == 'a':
+            # A4 - all of the words:
+            for word in get_words_from_phrase(p):
+                if len(opfts)==0:
+                    opfts.append(['|',word,f,'w']) # '|' in the first unit
+                else:
+                    opfts.append(['+',word,f,'w']) # '+' in further units
+        elif m == 'o':
+            # A5 - any of the words:
+            for word in get_words_from_phrase(p):
+                opfts.append(['|',word,f,'w']) # '|' in all units
+        else:
+            print_warning(req, "Matching type '%s' is not implemented yet." % m, "Warning")
+            opfts.append(['|',"%"+p+"%",f,'a'])            
+    else:        
+        ## B - matching type is not known: let us try to determine it by some heuristics
+        if f and p[0]=='"' and p[-1]=='"':
+            ## B0 - does 'p' start and end by double quote, and is 'f' defined? => doing ACC search            
+            opfts.append(['|',p[1:-1],f,'a'])
+        elif f and p[0]=="'" and p[-1]=="'":
+            ## B0bis - does 'p' start and end by single quote, and is 'f' defined? => doing ACC search            
+            opfts.append(['|','%'+p[1:-1]+'%',f,'a'])
+        elif f and string.find(p, ',') >= 0:
+            ## B1 - does 'p' contain comma, and is 'f' defined? => doing ACC search
+            opfts.append(['|',p,f,'a'])
+        elif f and str(f[0:2]).isdigit():
+            ## B2 - does 'f' exist and starts by two digits?  => doing ACC search
+            opfts.append(['|',p,f,'a'])            
+        else:
+            ## B3 - doing WRD search, but maybe ACC too
+            # search units are separated by spaces unless the space is within single or double quotes
+            # so, let us replace temporarily any space within quotes by '__SPACE__'
+            p = re.sub("'(.*?)'", lambda x: "'"+string.replace(x.group(1), ' ', '__SPACE__')+"'", p) 
+            p = re.sub("\"(.*?)\"", lambda x: "\""+string.replace(x.group(1), ' ', '__SPACEBIS__')+"\"", p) 
+            # wash argument:
+            #p = string.strip(re_spaces.sub(' ', re_pattern.sub(' ', p)))
+            p = re_equal.sub(":", p)
+            p = re_logical_and.sub(" ", p)
+            p = re_logical_or.sub(" |", p)
+            p = re_logical_not.sub(" -", p)
+            p = re_operands.sub(r' \1', p)
+            if dbg:
+                print_warning(req, "p=%s" % p, "Debug (create_opft_search_units() - B3 started)")
+            for pi in split(p, ' '): # iterate through separated units (or items, as "pi" stands for "p item")
+                pi = re.sub("__SPACE__", " ", pi) # replace back '__SPACE__' by ' ' 
+                pi = re.sub("__SPACEBIS__", " ", pi) # replace back '__SPACEBIS__' by ' '
+                # firstly, determine set operand
+                if pi[0] == '+' or pi[0] == '-' or pi[0] == '|':
+                    if len(opfts) or pi[0] == '-': # either not first unit, or '-' for the first unit
+                        oi = pi[0]
+                    else:
+                        oi = "|" # we are in the first unit and operand is not '-', so let us do 
+                                 # set union (with still null result set) 
+                    pi = pi[1:]
+                else:
+                    # okay, there is no operand, so let us decide what to do by default
+                    if len(opfts):
+                        oi = '+' # by default we are doing set intersection...
+                    else:
+                        oi = "|" # ...unless we are in the first unit
+                # secondly, determine search pattern and field:
+                if string.find(pi, ":") > 0:
+                    fi, pi = split(pi, ":", 1)
+                else:
+                    fi, pi = f, pi
+                # look also for old ALEPH field names:
+                if fi and cfg_fields_convert.has_key(string.lower(fi)):
+                    fi = cfg_fields_convert[string.lower(fi)]
+                # wash 'pi' argument:
+                if re_quotes.match(pi):
+                    # B3a - quotes are found => do ACC search (phrase search)
+                    if fi:
+                        if re_doublequote.match(pi):
+                            pi = string.replace(pi, '"', '') # get rid of quotes
+                            opfts.append([oi,pi,fi,'a'])
+                        else:
+                            pi = string.replace(pi, "'", '') # get rid of quotes
+                            opfts.append([oi,"%"+pi+"%",fi,'a'])
+                    else:
+                        # fi is not defined, look at where we are doing exact or subphrase search (single/double quotes):
+                        if pi[0]=='"' and pi[-1]=='"':                        
+                            opfts.append([oi,pi[1:-1],"anyfield",'a'])
+                            print_warning(req, "Searching for an exact match inside any field may be slow.  You may want to try to search for words instead, or choose a search within specific field.", "Warning")
+                        else:                        
+                            # nope, subphrase in global index is not possible => change back to WRD search
+                            for pii in get_words_from_phrase(pi):
+                                # since there may be '-' and other chars that we do not index in WRD
+                                opfts.append([oi,pii,fi,'w'])
+                            print_warning(req, "The sub-phrase search does not work in any field.  I'll do a 'logical AND' style of search instead.", "Warning")
+                            print_warning(req, "If you want to do a sub-phrase search in a specific field, e.g. inside title, then please choose 'within title' search option.", "Tip")
+                            print_warning(req, "If you want to do exact phrase matching, then please use double quotes.", "Tip")
+                elif fi and str(fi[0]).isdigit() and str(fi[0]).isdigit():
+                    # B3b - fi exists and starts by two digits => do ACC search
+                    opfts.append([oi,pi,fi,'a'])            
+                elif fi and not get_wordsindex_id(fi):
+                    # B3c - fi exists but there is no words table for fi => try ACC search
+                    opfts.append([oi,pi,fi,'a'])            
+                else:
+                    # B3d - general case => do WRD search                    
+                    for pii in get_words_from_phrase(pi): 
+                        opfts.append([oi,pii,fi,'w'])
+
+    ## sanity check:
+    for i in range(0,len(opfts)):
+        pi = opfts[i][1]
+        if pi == '*':
+            print_warning(req, "Ignoring standalone wildcard word.", "Warning")
+            del opfts[i]
+
+    ## return search units:
+    if dbg:
+        for opft in opfts:
+            print_warning(req, opft, "Debug (create_opft_search_units() - created search unit)")            
+    return opfts
+
+def create_header(cc=cdsname):
+    "Creates CDS header and info on URL and date."
+    return """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>%s - Search Results</title>
+  <link rev="made" href="mailto:%s">
+  <link rel="stylesheet" href="%s/img/cds.css">
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<body>
+<div class="pageheader">%s</div>
+""" % (cc, supportemail, weburl, cdspageheader)
+
+def create_search_box(cc, colls, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1, p2, f2, m2, op2, p3, f3, m3, sc):
+    "Create search box for 'search again in the results page' functionality."
+    out = ""
+    # print search box prolog:
+    out += """
+    <p>
+    <form action="%s/search.py" method="get">
+    <strong class="headline"><span class="h1">%s</span></strong>
+    <input type="hidden" name="cc" value="%s"> 
+    <input type="hidden" name="as" value="%s">
+    """ % (weburl, cc, cc, as)
+    if ot:
+        out += """<input type="hidden" name="ot" value="%s">""" % ot
+    if sp:
+        out += """<input type="hidden" name="sp" value="%s">""" % sp 
+
+    out += create_navtrail(cc, """<br><table border="0" cellspacing="0" cellpadding="0"><tr class="navtrail"><td width="60"></td><td><small><small>""","","&gt;","",
+                          "&gt; Search Results</small></small></td></tr></table><p>",0)
+
+
+    # possibly print external search engines links (Google box):
+    if cfg_google_box:
+        out += """<table align="right"><tr><td>%s</td></tr></table>""" % create_google_box(p, f, p1, p2, p3)
+    out += "<table>"
+    # firstly, print Query box:
+    if as==1:
+        # print Advanced Search form:
+        # define search box elements:
+        cell_1_left = "<small><strong>Search for:</strong></small><br>" + create_matchtype_box('m1', m1) + \
+                      """<input type="text" name="p1" size="%d" value="%s">""" % (cfg_advancedsearch_pattern_box_width, cgi.escape(p1,1))
+        cell_1_right = "<small><strong>within:</strong></small><br>%s" % create_searchwithin_selection_box('f1', f1)
+        cell_1_moreright = create_andornot_box('op1', op1)
+        cell_1_farright = ""
+        cell_2_left = create_matchtype_box('m2', m2) + """<input type="text" name="p2" size="%d" value="%s">""" % (cfg_advancedsearch_pattern_box_width, cgi.escape(p2,1))
+        cell_2_right = create_searchwithin_selection_box('f2', f2)
+        cell_2_moreright = create_andornot_box('op2', op2)
+        cell_2_farright = ""
+        cell_3_left = create_matchtype_box('m3', m3) + """<input type="text" name="p3" size="%d" value="%s">""" % (cfg_advancedsearch_pattern_box_width, cgi.escape(p3,1))
+        cell_3_right = create_searchwithin_selection_box('f3', f3)
+        cell_3_moreright = """<input type="submit" name="search" value="SEARCH"><input type="submit" name="search" value="Browse">&nbsp;"""
+        cell_3_farright = """<small class="light"><a href="%s/search.py?p=%s&amp;f=%s&amp;cc=%s">Simple&nbsp;Search</a></small>
+                             <br><small><a href="%s/docs/faq.shtml">Search&nbsp;Tips</a></small>""" % \
+                             (weburl, urllib.quote(p1), urllib.quote(f1), urllib.quote(cc), weburl)
+        # print them:
+        out += """
+        <tr>
+        <td valign="top" nowrap>
+         <table>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         </table>
+        </td>
+        </tr>""" % \
+         (cell_1_left, cell_1_right, cell_1_moreright, cell_1_farright, \
+          cell_2_left, cell_2_right, cell_2_moreright, cell_2_farright, \
+          cell_3_left, cell_3_right, cell_3_moreright, cell_3_farright)         
+    else:
+        # print Simple Search form:
+        cell_1_left = """<small><strong>Search for:</strong></small>
+                         <br><input type="text" name="p" size="%d" value="%s">""" % \
+        (cfg_simplesearch_pattern_box_width, cgi.escape(p, 1))
+        cell_1_middle = "<small><strong>within:</strong></small><br>%s" % create_searchwithin_selection_box('f', f)
+        cell_1_right = """<input type="submit" name="search" value="SEARCH"><input type="submit" name="search" value="Browse">&nbsp;"""
+        cell_1_farright = """<small class="light"><a href="%s/search.py?p1=%s&amp;f1=%s&amp;as=1&amp;cc=%s">Advanced&nbsp;Search</a></small>
+                             <br><small><a href="%s/docs/faq.shtml">Search&nbsp;Tips</a></small>""" %\
+                          (weburl, urllib.quote(p), urllib.quote(f), urllib.quote(cc), weburl)
+        out += """
+        <tr>
+        <td valign="top" nowrap>
+         <table>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         </table>
+        </td>
+        </tr>
+        """ % (cell_1_left, cell_1_middle, cell_1_right, cell_1_farright)
+    # secondly, print Collection(s) box:
+    out += """
+    <tr>
+    <td valign="top">
+    <small><strong>Search collections:</strong></small><br>"""
+    colls_nicely_ordered = get_nicely_ordered_collection_list()    
+    if colls and colls[0] != cdsname:
+        # some collections are defined, so print these first, and only then print 'add another collection' heading:
+        for c in colls:
+            if c:
+                out += """<select name="c"><option value="">*** remove this collection ***"""
+                for (cx, cx_printable) in colls_nicely_ordered:
+                    # print collection:
+                    if not cx.startswith("Unnamed collection"):                    
+                        out+= """<option value="%s"%s>%s""" % (cx, is_selected(c, re.sub("^[\s\-]*","",cx)), cx_printable)
+                out += """</select>"""
+        out += """<select name="c"><option value="">*** add another collection ***"""
+    else: # we searched in CDSNAME, so print 'any collection' heading
+        out += """<select name="c"><option value="">*** any collection ***"""
+    for (cx, cx_printable) in colls_nicely_ordered:
+        if not cx.startswith("Unnamed collection"):
+            out += """<option value="%s">%s""" % (cx, cx_printable)
+    out += """
+    </select>
+    </td>
+    </tr>"""
+    # thirdly, print Display/Sort box:
+    cell_1_left = """<small><strong>Sort by:</strong></small><br>
+    <select name="sf">
+    <option value="">- latest first -"""
+    query = """SELECT DISTINCT(f.code),f.name FROM field AS f, collection_field_fieldvalue AS cff
+                WHERE cff.type='soo' AND cff.id_field=f.id
+                ORDER BY cff.score DESC, f.name ASC""" 
+    res = run_sql(query)
+    for code, name in res:
+        # propose found sort options:
+        cell_1_left += """<option value="%s"%s>%s""" % (code, is_selected(sf,code), name)
+    cell_1_left += """</select>"""
+    cell_1_left += """<select name="so">
+                      <option value="a"%s>asc.
+                      <option value="d"%s>desc.
+                      </select>""" % (is_selected(so,"a"),is_selected(so,"d"))
+    cell_1_right = """<small><strong>Output format:</strong></small><br>
+    <select name="of">"""
+    query = """SELECT code,name FROM format ORDER BY name ASC""" 
+    res = run_sql(query)
+    if res:
+        # propose found formats:
+        for code, name in res:
+            cell_1_right += """<option value="%s"%s>%s""" % (code, is_selected(of,code), name)
+    else:
+        # no formats are found, so propose the default HTML one:
+        cell_1_right += """<option value="hb"%s>HTML brief""" % (is_selected(of,"hb"))
+    # is format made of numbers only? if yes, then propose it too:
+    if of and str(of[0:3]).isdigit():
+        cell_1_right += """<option value="%s" selected>%s MARC tag""" % (of, of)
+    cell_1_right += """</select>"""
+    ## okay, formats ended
+    cell_1_middle = """<small><strong>Display results:</strong></small><br>
+    <select name="rg">
+    <option value="10"%s>10 results
+    <option value="25"%s>25 results
+    <option value="50"%s>50 results
+    <option value="100"%s>100 results
+    <option value="250"%s>250 results
+    <option value="500"%s>500 results
+    </select>
+    <select name="sc">
+    <option value="0"%s>grouped together 
+    <option value="1"%s>split by collection
+    </select>
+    """ % (is_selected(rg,"10"), is_selected(rg,"25"), is_selected(rg,"50"), \
+           is_selected(rg,"100"), is_selected(rg,"250"), is_selected(rg,"500"),\
+           is_selected(sc,"0"), is_selected(sc,"1"))
+    out += """
+    <tr>
+    <td valign="top">
+    <table><tr valign="top"><td>%s</td><td>%s</td><td>%s</td></tr></table>
+    </td>
+    </tr>""" % (cell_1_left, cell_1_middle, cell_1_right)
+    # print end of search box:
+    out += """</table></form>
+    """
+    return out
+
+def nice_number(num):
+    "Returns nice number when using comma as thousands separator."
+    chars_in = list(str(num))
+    num = len(chars_in)
+    chars_out = []
+    for i in range(0,num):
+        if i % 3 == 0 and i != 0:
+            chars_out.append(',')
+        chars_out.append(chars_in[num-i-1])
+    chars_out.reverse()
+    return ''.join(chars_out)
+
+def is_selected(var, fld):
+    "Checks if the two are equal, and if yes, returns ' selected'.  Useful for select boxes."
+    if str(var) == str(fld):
+        return " selected"
+    elif fld and len(fld)==3 and fld[0] == "w" and var == fld[1:]:
+        return " selected"
+    else:
+        return ""
+
+def create_navtrail(cc=cdsname,
+                    header="""<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr class="pageboxlefttop"><td><small>""", \
+                    prolog="", \
+                    separator="&gt;", \
+                    epilog="", \
+                    footer="&gt; Search Results</small></td></tr></table>",
+                    exclude_root=0):
+    "Creates navigation trail, i.e. links to ancestors of the 'cc' collection."
+    # firstly, display navtrail prologue:
+    navtrail = header        
+    # first, display list of ancestors:
+    for dad in get_coll_ancestors(cc):
+        navtrail += """%s <a class="navtrail" href="%s/goto.shtml?c=%s">%s</a> %s %s """ % \
+                    (prolog, weburl, urllib.quote(dad), dad, epilog, separator)
+    # then print cc:
+    if cc != cdsname or not exclude_root:
+        navtrail += """%s <a class="navtrail" href="%s/goto.shtml?c=%s">%s</a> %s""" % (prolog, weburl, urllib.quote(cc), cc, epilog)
+    # last, print navtrail epilogue:
+    navtrail += footer
+    return navtrail
+
+def create_searchwithin_selection_box(fieldname='f', value=''):
+    "Produces 'search within' selection box for the current collection."
+    out = ""
+    out += """<select name="%s">""" % fieldname
+    out += """<option value="">any field"""
+    query = "SELECT code,name FROM field ORDER BY name ASC"
+    res = run_sql(query)
+    for field_code, field_name in res:
+        if field_code and field_code != "anyfield":
+            out += """<option value="%s"%s>%s""" % (field_code, is_selected(field_code,value), field_name)
+    if value and str(value[0]).isdigit():
+        out += """<option value="%s" selected>%s MARC tag""" % (value, value)
+    out += """</select>""" 
+    return out
+
+def create_andornot_box(name='op', value=''):
+    "Returns HTML code for the AND/OR/NOT selection box."
+    out = """
+    <select name="%s">
+    <option value="a"%s>AND
+    <option value="o"%s>OR
+    <option value="n"%s>AND NOT
+    </select>
+    """ % (name, is_selected('a', value), is_selected('o', value), is_selected('n', value))
+    return out
+
+def create_matchtype_box(name='m', value=''):
+    "Returns HTML code for the 'match type' selection box."
+    out = """
+    <select name="%s">
+    <option value="a"%s>All of the words:
+    <option value="o"%s>Any of the words:
+    <option value="p"%s>Phrase/substring:
+    <option value="r"%s>Regular expression:
+    <option value="e"%s>Exact value:
+    </select>
+    """ % (name, is_selected('a', value), is_selected('o', value), is_selected('p', value), 
+                 is_selected('r', value), is_selected('e', value))
+    return out
+
+def create_google_box(p, f, p1, p2, p3,
+                      prolog="""<table border=0 cellpadding=0 cellspacing=0><tr><td width="30"></td><td class="pageboxrighttopadd"><small><strong>Try your search on:</strong><br> """,
+                      separator= """<br>""",
+                      epilog="""</small></td></tr></table>"""):
+    "Creates the box that proposes links to other useful search engines like Google.  'p' is the search pattern."
+    out = ""
+    if not p and (p1 or p2 or p3):
+        p = p1 + " " + p2 + " " + p3 
+    if cfg_google_box == 1:
+        out += prolog
+        if cfg_google_box_cern:
+            # CERN Intranet:
+            out += """<a href="http://search.cern.ch/query.html?qt=%s">CERN&nbsp;Intranet</a>""" % urllib.quote(p)
+            # SPIRES
+            if f == "author":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?AUTHOR=%s">SPIRES</a>""" % urllib.quote(p)
+            elif f == "title":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?TITLE=%s">SPIRES</a>""" % urllib.quote(p)
+            elif f == "reportnumber":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?REPORT-NUM=%s">SPIRES</a>""" % urllib.quote(p)
+            elif f == "keyword":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?k=%s">SPIRES</a>""" % urllib.quote(p)
+            # KEK
+            if f == "author":
+                out += separator
+                out += """<a href="http://www-lib.kek.jp/cgi-bin/kiss_prepri?AU=%s">KEK</a>""" % urllib.quote(p)        
+            elif f == "title":
+                out += separator
+                out += """<a href="http://www-lib.kek.jp/cgi-bin/kiss_prepri?TI=%s">KEK</a>""" % urllib.quote(p)        
+            elif f == "reportnumber":
+                out += separator
+                out += """<a href="http://www-lib.kek.jp/cgi-bin/kiss_prepri?RP=%s">KEK</a>""" % urllib.quote(p)        
+            out += separator
+        # Google:
+        out += """<a href="http://google.com/search?q=%s">Google</a>""" % urllib.quote(p)
+        # AllTheWeb:
+        out += separator
+        out += """<a href="http://alltheweb.com/search?q=%s">AllTheWeb</a>""" % urllib.quote(p)
+        out += epilog
+    return out
+
+def create_footer(url):    
+    "Creates CDS page footer."
+    return """%s""" % re.sub("<!--URL-->", "URL: %s" % url, cdspagefooter)
+     
+class HitList:
+    """Class describing set of records, implemented as bit vectors of recIDs.
+    Using Numeric arrays for speed (1 value = 8 bits), can use later "real"
+    bit vectors to save space."""
+
+    def __init__(self, anArray=None):
+        self._nbhits = -1
+        if anArray:
+            self._set = anArray
+        else:
+            self._set = Numeric.zeros(cfg_max_recID+1, Numeric.Int0)
+
+    def __repr__(self, join=string.join):
+        return "%s(%s)" % (self.__class__.__name__, join(map(repr, self._set), ', '))
+
+    def add(self, recID):
+        "Adds a record to the set."
+        self._set[recID] = 1
+
+    def addmany(self, recIDs):
+        "Adds several recIDs to the set."
+        for recID in recIDs: self._set[recID] = 1
+
+    def addlist(self, arr):
+        "Adds an array of recIDs to the set."
+        Numeric.put(self._set, arr, 1)
+
+    def remove(self, recID):
+        "Removes a record from the set."
+        self._set[recID] = 0
+
+    def removemany(self, recIDs):
+        "Removes several records from the set."
+        for recID in recIDs:
+            self.remove(recID)
+
+    def intersect(self, other):
+        "Does a set intersection with other.  Keep result in self."
+        self._set = Numeric.bitwise_and(self._set, other._set)
+
+    def union(self, other):
+        "Does a set union with other. Keep result in self."
+        self._set = Numeric.bitwise_or(self._set, other._set)
+
+    def difference(self, other):
+        "Does a set difference with other. Keep result in self."
+        #self._set = Numeric.bitwise_not(self._set, other._set)
+        for recID in Numeric.nonzero(other._set):
+            self.remove(recID)
+
+    def contains(self, recID):
+        "Checks whether the set contains recID."
+        return self._set[recID]
+
+    __contains__ = contains     # Higher performance member-test for python 2.0 and above
+
+    def __getitem__(self, index):
+        "Support for the 'for item in set:' protocol."
+        return Numeric.nonzero(self._set)[index]
+        
+    def calculate_nbhits(self):
+        "Calculates the number of records set in the hitlist."
+        self._nbhits = Numeric.sum(self._set.copy().astype(Numeric.Int))
+
+    def items(self):
+        "Return an array containing all recID."
+        return Numeric.nonzero(self._set)
+
+# speed up HitList operations by ~20% if Psyco is installed:
+try:
+    import psyco
+    psyco.bind(HitList)
+except:
+    pass
+
+def escape_string(s):
+    "Escapes special chars in string.  For MySQL queries."
+    s = MySQLdb.escape_string(s)
+    return s
+
+def asciify_accented_letters(s):
+    "Translates ISO-8859-1 accented letters into their ASCII equivalents."
+    s = string.translate(s, table_latin1_to_ascii)
+    return s
+
+def wash_colls(cc, c, split_colls=0):
+
+    """Wash collection list by checking whether user has deselected
+    anything under 'Narrow search'.  Checks also if cc is a list or not.
+       Return list of cc, colls_to_display, colls_to_search since the list
+    of collections to display is different from that to search in.
+    This is because users might have chosen 'split by collection'
+    functionality.
+       The behaviour of "collections to display" depends solely whether
+
+    user has deselected a particular collection: e.g. if it started
+    from 'Articles and Preprints' page, and deselected 'Preprints',
+    then collection to display is 'Articles'.  If he did not deselect
+    anything, then collection to display is 'Articles & Preprints'.
+       The behaviour of "collections to search in" depends on the
+    'split_colls' parameter:
+         * if is equal to 0, then we can wash the colls list down
+           and search solely in the collection the user started from;
+         * if is equal to 1, then we are splitting to the first level
+           of collections, i.e. collections as they appear on the page
+           we started to search from;
+         * if it is equal to 9, then we are splitting right to the
+           bottom level.
+    """
+       
+    colls_out = []
+    colls_out_for_display = []
+
+    # check what type is 'cc':
+    if type(cc) is list:
+        for ci in cc:
+            if collrecs_cache.has_key(ci):
+                # yes this collection is real, so use it:
+                cc = ci
+                break
+    else:
+        # check once if cc is real:
+        if not collrecs_cache.has_key(cc):
+            cc = cdsname # cc is not real, so replace it with Home collection
+
+    # check type of 'c' argument:
+    if type(c) is list:
+        colls = c
+    else:
+        colls = [c]
+
+    # remove all 'unreal' collections:
+    colls_real = []
+    for coll in colls:
+        if collrecs_cache.has_key(coll):
+            colls_real.append(coll)
+    colls = colls_real
+
+    # check if some real collections remain:
+    if len(colls)==0:
+        colls = [cc]
+
+    # then let us check the number of sons of 'cc':
+    query = "SELECT COUNT(cc.id_son) FROM collection_collection AS cc, collection AS c " \
+            "WHERE c.name='%s' AND c.id=cc.id_dad" % cc
+    res = run_sql(query, None, 1)
+    if res and res[0][0] == len(colls):
+        colls_out_for_display = [cc] # yep, washing permitted, it is sufficient to display 'cc'
+    else:
+        colls_out_for_display = colls # nope, we need to display all 'colls' successively
+
+    # remove duplicates:
+    colls_out_for_display_nondups=filter(lambda x, colls_out_for_display=colls_out_for_display: colls_out_for_display[x-1] not in colls_out_for_display[x:], range(1, len(colls_out_for_display)+1))
+    colls_out_for_display = map(lambda x, colls_out_for_display=colls_out_for_display:colls_out_for_display[x-1], colls_out_for_display_nondups)
+        
+    # second, let us decide on collection splitting:
+    if split_colls == 0:
+        # type A - no sons are wanted
+        colls_out = colls_out_for_display
+#    elif split_colls == 1:
+    else:
+        # type B - sons (first-level descendants) are wanted
+        for coll in colls_out_for_display:
+            coll_sons = get_coll_sons(coll)
+            if coll_sons == []:
+                colls_out.append(coll)
+            else:
+                colls_out = colls_out + coll_sons
+# TODO: enable sc=9 back one day
+#    else:
+#        # type C - we are splitting right to the bottom level.
+#        # This decomposes compound collections like "A & B" into a list
+#        # of "A" and "B", provided that "A & B" has no associated
+#        # dbcollid collection indicators defined, and that both "A" and
+#        # "B" have defined some dbcollids.
+#        for coll in colls_out_for_display:
+#            coll_real_descendants = get_coll_real_descendants(coll)
+#           if coll_real_descendants:
+#                colls_out.extend(coll_real_descendants)
+#            else:
+#                colls_out.append(coll)
+
+    # remove duplicates:
+    colls_out_nondups=filter(lambda x, colls_out=colls_out: colls_out[x-1] not in colls_out[x:], range(1, len(colls_out)+1))
+    colls_out = map(lambda x, colls_out=colls_out:colls_out[x-1], colls_out_nondups)
+
+    # fill collrecs_cache for wanted collection, if not already filled:
+    for coll in colls_out:
+        if not collrecs_cache[coll]:
+            collrecs_cache[coll] = get_collection_hitlist(coll)
+
+    return (cc, colls_out_for_display, colls_out)
+ 
+def wash_pattern(p):
+    """Wash pattern passed by URL."""
+    # check whether p is a list:
+    if type(p) is list:
+        for pi in p:
+            if pi:
+                p = pi
+                break
+    # get rid of standalone wildcards:
+    p = re.sub("^\s*[\*\%]+(\s|$)", " ", p)
+    p = re.sub("\s[\*\%]+\s*$", " ", p)
+    p = re.sub("\s[\*\%]+\s", " ", p)
+    # get rid of unnecessary whitespace:
+    p = string.strip(p)
+    return p
+    
+def wash_field(f):
+    """Wash field passed by URL."""
+    # check whether f is a list:
+    if type(f) is list:
+        for fi in f:
+            if fi:
+                f = fi
+                break
+    # get rid of unnecessary whitespace:
+    f = string.strip(f)
+    # wash old-style CDSware/ALEPH 'f' field argument, e.g. replaces 'wau' and 'au' by 'author'
+    if cfg_fields_convert.has_key(string.lower(f)):
+        f = cfg_fields_convert[f]
+    return f
+    
+def get_coll_ancestors(coll):
+    "Returns a list of ancestors for collection 'coll'."
+    coll_ancestors = [] 
+    coll_ancestor = coll
+    while 1:
+        query = "SELECT c.name FROM collection AS c "\
+                "LEFT JOIN collection_collection AS cc ON c.id=cc.id_dad "\
+                "LEFT JOIN collection AS ccc ON ccc.id=cc.id_son "\
+                "WHERE ccc.name='%s' ORDER BY cc.id_dad ASC LIMIT 1" \
+                % escape_string(coll_ancestor)
+        res = run_sql(query, None, 1)        
+        if res:
+            coll_name = res[0][0]
+            coll_ancestors.append(coll_name)
+            coll_ancestor = coll_name
+        else:
+            break
+    # ancestors found, return reversed list:
+    coll_ancestors.reverse()
+    return coll_ancestors
+
+def get_coll_sons(coll):
+    "Returns a list of sons (first-level descendants) for collection 'coll'."
+    coll_sons = [] 
+    query = "SELECT c.name FROM collection AS c "\
+            "LEFT JOIN collection_collection AS cc ON c.id=cc.id_son "\
+            "LEFT JOIN collection AS ccc ON ccc.id=cc.id_dad "\
+            "WHERE ccc.name='%s' ORDER BY cc.score DESC" \
+            % escape_string(coll)
+    res = run_sql(query)
+    for name in res:
+        coll_sons.append(name[0])
+    return coll_sons
+
+def get_coll_real_descendants(coll):
+    """Return a list of all descendants of collection 'coll' that are defined by a 'dbquery'.
+       IOW, we need to decompose compound collections like "A & B" into "A" and "B" provided
+       that "A & B" has no associated database query defined.
+    """
+    coll_sons = [] 
+    query = "SELECT c.name,c.dbquery FROM collection AS c "\
+            "LEFT JOIN collection_collection AS cc ON c.id=cc.id_son "\
+            "LEFT JOIN collection AS ccc ON ccc.id=cc.id_dad "\
+            "WHERE ccc.name='%s' ORDER BY cc.score DESC" \
+            % escape_string(coll)
+    res = run_sql(query)
+    for name, dbquery in res:
+        if dbquery: # this is 'real' collection, so return it:
+            coll_sons.append(name)
+        else: # this is 'composed' collection, so recurse:
+            coll_sons.extend(get_coll_real_descendants(name))
+    return coll_sons
+
+def get_collection_hitlist(coll):
+    """Return bit vector of records that belong to the collection 'coll'."""
+    set = HitList()
+    query = "SELECT nbrecs,reclist FROM collection WHERE name='%s'" % coll
+    # launch the query:
+    res = run_sql(query, None, 1)
+    # fill the result set:
+    if res:
+        try:
+            set._nbhits, set._set = res[0][0], Numeric.loads(zlib.decompress(res[0][1]))
+        except:
+            set._nbhits = 0
+    # okay, return result set:
+    return set
+
+def create_collrecs_cache():
+    """Creates list of records belonging to collections.  Called on startup
+    and used later for intersecting search results with collection universe."""
+    collrecs = {}
+    query = "SELECT name FROM collection"
+    res = run_sql(query)
+    for name in res:
+        collrecs[name[0]] = None # this will be filled later during runtime by calling get_collection_hitlist(coll)        
+    return collrecs
+
+try:
+    collrecs_cache.has_key(cdsname)
+except:
+    collrecs_cache = create_collrecs_cache()
+    collrecs_cache[cdsname] = get_collection_hitlist(cdsname)
+
+def search_pattern(req, p=None, f=None, colls=None, m=None, hit_hints=0):
+    """Searches for pattern 'p' and field 'f' and returns dict of recIDs HitLists per each collection in 'colls'.
+    - Optionally, the function accepts the match type argument 'm'.
+      If it is set (e.g. from advanced search interface), then it
+      performs this kind of matching.  If it is not set, then a guess
+      is made.      
+    - Calls search_in_bibwords() and/or search_in_bibxxx() functions.
+    - If hit_hints is set, than print lots of hints on current search.  Useful for debugging and/or when search gives zero hits.
+    - Called by main()."""    
+
+    ## create result set:
+    results = HitList()
+    results_used = 0 # not-yet-used flag, to be able to circumvent set operations
+
+    ## if p is not defined, return all hits in given collections:
+    if not p:
+        results_out = {}
+        for coll in colls:
+            results_out[coll] = HitList()
+            results_out[coll]._set = collrecs_cache[coll]._set
+            results_out[coll]._nbhits = collrecs_cache[coll]._nbhits
+        return results_out
+
+    ## now we are sure to have some p: good.
+
+    ## create search units:
+    opft_items = create_opft_search_units(req, p, f, m)
+    #req.write("<p>%s" % opft_items)
+    
+    hit_hints_displayed = 0 # did we already displayed some search hint?
+    
+    ## search regardless of collection:
+    for opft_item in opft_items:
+        results_for_opft_item = {}
+        oi, pi, fi, ti = opft_item[0], opft_item[1], opft_item[2], opft_item[3]
+        # firstly, launch search for this pattern item:
+        if ti == 'a' or ti == 'r': # we are doing either direct bibxxx search or phrase search or regexp search
+            results_for_opft_item = search_in_bibxxx(req, pi, fi, ti)
+        elif ti == 'w': # we are doing bibwords search
+            results_for_opft_item = search_in_bibwords(req, pi, fi)
+        else: 
+            print_warning(req, "The search type '%s' is not defined." % ti, "Error")
+            return(1)
+        if 0: # TODO: test LZO and ZLIB:
+            str = Numeric.dumps(results_for_opft_item._set)
+            t1 = os.times()[4]
+            junk1 = zlib.compress(str)
+            t2 = os.times()[4]
+            junk2 = lzo.compress(str)
+            t3 = os.times()[4]
+            print_warning(req, "Compressing %s/%s took %.2f sec and %d chars via ZLIB and %.2f sec and %d chars via LZO." %
+                          (pi, fi, t2-t1, len(junk1), t3-t2, len(junk2)))
+            t1 = os.times()[4]
+            junk3 = zlib.decompress(junk1)
+            t2 = os.times()[4]
+            junk4 = lzo.decompress(junk2)
+            t3 = os.times()[4]
+            print_warning(req, "Decompressing back took %.2f sec via ZLIB and %.2f sec via LZO." %
+                          (t2-t1, t3-t2))
+        if hit_hints:
+            results_for_opft_item.calculate_nbhits()
+            if results_for_opft_item._nbhits == 0:                
+                hit_hints_displayed = 1
+                text = "Search term <strong>%s</strong>" % pi
+                if fi:
+                    text += " inside <em>%s</em> " % fi
+                print_warning(req, "%s did not match any record.  Nearest terms are: %s" %
+                              (text, create_nearest_words_links(req.args, pi, fi)), "")                
+                
+            if dbg:
+                print_warning(req, "Item <strong>%s:%s</strong> gave %d hits." %
+                              (fi, pi, results_for_opft_item._nbhits), "")                
+        # secondly, apply the set intersect/union/disjunction functions:
+        if dbg:
+            t1 = os.times()[4]
+        if results_used:
+            if oi == '+':
+                results.intersect(results_for_opft_item)
+            elif oi == '-':
+                results.difference(results_for_opft_item)
+            elif oi == '|':
+                results.union(results_for_opft_item)
+            else:
+                print_warning(req, "Invalid set operation %s." % oi, "Error")
+        else:
+            results = results_for_opft_item
+            results_used = 1
+        if dbg:
+            t2 = os.times()[4]
+            print_warning(req, "Set operation '%s' took %.2f seconds." % (oi, (t2 - t1)), "Profile")
+
+    ## return all hits if no collection list specified (useful for WebSearch Admin to determine collection
+    ## recID universe):
+    if colls == None:        
+        results.calculate_nbhits()
+        return results
+
+    ## intersect with collection universe:
+    if dbg:
+        t1 = os.times()[4]
+    results_out = {}
+    if colls:
+        for coll in colls:
+            results_out[coll] = HitList()
+            results_out[coll]._set = Numeric.bitwise_and(results._set, collrecs_cache[coll]._set)
+        if dbg:
+            t2 = os.times()[4]
+            print_warning(req, "Intersecting with collection hitlist universe took %.2f seconds." % ((t2 - t1)), "Profile")
+
+    ## count number of hits:
+    for coll in colls:
+        results_out[coll].calculate_nbhits()
+        
+    if hit_hints and not hit_hints_displayed:
+        if results._nbhits == 0: # pattern not found in any public/private collection:
+            text = """All search terms matched but boolean query returned no hits.  Please combine your search terms differently."""
+            url_args = req.args
+            for opft_item in opft_items:
+                oi, pi, fi, ti = opft_item[0], opft_item[1], opft_item[2], opft_item[3]
+                url_args_new = re.sub(r'(^|\&)p=.*?(\&|$)', r'\1p='+urllib.quote(pi)+r'\2', url_args)
+                url_args_new = re.sub(r'(^|\&)f=.*?(\&|$)', r'\1f='+urllib.quote(fi)+r'\2', url_args_new)
+                text += """<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="%s/search.py?%s">%s</a> - about %s hits""" % \
+                        (weburl, url_args_new, pi, get_word_nbhits(pi, fi))
+            print_warning(req, text, "") 
+        else: # pattern found but perhaps not in the collections chosen by the user:
+            num = 0
+            for coll in colls:
+                num += results_out[coll]._nbhits
+            if num == 0:
+                # try to search in Home:
+                results_Home = HitList()
+                results_Home._set = Numeric.bitwise_and(results._set, collrecs_cache[cdsname]._set)
+                results_Home.calculate_nbhits()
+                if results_Home._nbhits > 0:
+                    # some hits found in Home, so propose this search:
+                    url_args = req.args
+                    url_args = re.sub(r'(^|\&)cc=.*?(\&|$)', r'\2', url_args)
+                    url_args = re.sub(r'(^|\&)c=.*?(\&[^c]+=|$)', r'\2', url_args)
+                    url_args = re.sub(r'^\&+', '', url_args)
+                    url_args = re.sub(r'\&+$', '', url_args)
+                    print_warning(req, """Matches found in other public collections: 
+                                  <a href="%s/search.py?%s">%d hits</a>.""" %
+                                  (weburl, url_args, results_Home._nbhits), "")
+                else:
+                    # no hits found in Home, recommend different search terms:
+                    text = """All search terms matched but boolean query returned no hits.  Please combine your search terms differently."""
+                    url_args = req.args
+                    for opft_item in opft_items:
+                        oi, pi, fi, ti = opft_item[0], opft_item[1], opft_item[2], opft_item[3]
+                        url_args_new = re.sub(r'(^|\&)p=.*?(\&|$)', r'\1p='+urllib.quote(pi)+r'\2', url_args)
+                        url_args_new = re.sub(r'(^|\&)f=.*?(\&|$)', r'\1f='+urllib.quote(fi)+r'\2', url_args_new)
+                        text += """<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="%s/search.py?%s">%s</a> - about %s hits""" % \
+                                (weburl, url_args_new, pi, get_word_nbhits(pi, fi))
+                    print_warning(req, text, "")
+
+    return results_out
+
+def search_in_bibwords(req, word, f, decompress=zlib.decompress):
+    """Searches for 'word' inside bibwordsX table for field 'f' and returns hitlist of recIDs."""
+    set = HitList() # will hold output result set
+    set_used = 0 # not-yet-used flag, to be able to circumvent set operations
+    # deduce into which bibwordsX table we will search:
+    bibwordsX = "bibwords%d" % get_wordsindex_id("anyfield")
+    if f:
+        wordsindex_id = get_wordsindex_id(f)
+        if wordsindex_id:
+            bibwordsX = "bibwords%d" % wordsindex_id
+        else:
+            print_warning(req, "Sorry, the word table for '%s' does not seem to exist.  Choosing the global word file instead." % f, "Error")
+    # wash 'word' argument and construct query:
+    word = string.replace(word, '*', '%') # we now use '*' as the truncation character
+    words = string.split(word, "->", 1) # check for span query
+    if len(words) == 2:
+        word0 = re_word.sub('', words[0])
+        word1 = re_word.sub('', words[1])
+        query = "SELECT word,hitlist FROM %s WHERE word BETWEEN '%s' AND '%s'" % (bibwordsX, escape_string(word0[:50]), escape_string(word1[:50]))
+    else:
+        word = re_word.sub('', word)
+        if string.find(word, '%') >= 0: # do we have wildcard in the word?
+            query = "SELECT word,hitlist FROM %s WHERE word LIKE '%s'" % (bibwordsX, escape_string(word[:50]))
+        else:
+            query = "SELECT word,hitlist FROM %s WHERE word='%s'" % (bibwordsX, escape_string(word[:50]))
+    if dbg:
+        print_warning(req, query, "Debug")
+    # launch the query:
+    res = run_sql(query)
+    # fill the result set:
+    for word,hitlist in res:
+        if dbg: 
+	   t1 = os.times()[4]
+        hitlist_bibwrd = HitList(Numeric.loads(decompress(hitlist)))
+        if dbg: 
+	   t2 = os.times()[4]
+	   print_warning(req, "Demarshaling '%s' hitlist took %.2f seconds." % (word, (t2 - t1)), "Profile")
+        # add the results:
+        if dbg: 
+	   t1 = os.times()[4]
+        if set_used:
+            set.union(hitlist_bibwrd)
+        else:            
+            set = hitlist_bibwrd
+            set_used = 1
+        if dbg: 
+	   t2 = os.times()[4]
+	   print_warning(req, "Adding '%s' hitlist took %.2f seconds." % (word, (t2 - t1)), "Profile")
+    # okay, return result set:
+    return set
+
+def search_in_bibxxx(req, p, f, type):
+    """Searches for pattern 'p' inside bibxxx tables for field 'f' and returns hitlist of recIDs found.
+    The search type is defined by 'type' (e.g. equals to 'r' for a regexp search)."""
+    p_orig = p # saving for eventual future 'no match' reporting
+    # wash arguments:
+    f = string.replace(f, '*', '%') # replace truncation char '*' in field definition
+    if type == 'r':
+        pattern = "REGEXP '%s'" % MySQLdb.escape_string(p)
+    else:
+        p = string.replace(p, '*', '%') # we now use '*' as the truncation character
+        ps = string.split(p, "->", 1) # check for span query:
+        if len(ps) == 2:
+            pattern = "BETWEEN '%s' AND '%s'" % (MySQLdb.escape_string(ps[0]), MySQLdb.escape_string(ps[1]))
+        else:
+            pattern = "LIKE '%s'" % MySQLdb.escape_string(ps[0])            
+    # construct 'tl' which defines the tag list (MARC tags) to search in:
+    tl = []
+    if str(f[0]).isdigit() and str(f[1]).isdigit():
+        tl.append(f) # 'f' seems to be okay as it starts by two digits
+    else:
+        # convert old ALEPH tag names, if appropriate: (TODO: get rid of this before entering this function)
+        if cfg_fields_convert.has_key(string.lower(f)): 
+            f = cfg_fields_convert[string.lower(f)]
+        # deduce desired MARC tags on the basis of chosen 'f'
+        tl = get_field_tags(f)
+        if not tl:
+            # by default we are searching in author index:
+            tl = get_field_tags("author")
+            print_warning(req, "The phrase or access file search does not work in this field.  Choosing author index instead.", "Warning")
+    # okay, start search:
+    l = [] # will hold list of recID that matched
+    for t in tl:
+        # deduce into which bibxxx table we will search:
+        digit1, digit2 = int(t[0]), int(t[1])
+        bx = "bib%d%dx" % (digit1, digit2)
+        bibx = "bibrec_bib%d%dx" % (digit1, digit2)
+        # construct query:
+        if len(t) != 6 or t[-1:]=='%': # only the beginning of field 't' is defined, so add wildcard character:
+            query = "SELECT bibx.id_bibrec FROM %s AS bx LEFT JOIN %s AS bibx ON bx.id=bibx.id_bibxxx WHERE bx.value %s AND bx.tag LIKE '%s%%'" %\
+                    (bx, bibx, pattern, t)
+        else:
+            query = "SELECT bibx.id_bibrec FROM %s AS bx LEFT JOIN %s AS bibx ON bx.id=bibx.id_bibxxx WHERE bx.value %s AND bx.tag='%s'" %\
+                    (bx, bibx, pattern, t)
+        if dbg:
+            print_warning(req, query, "Debug")
+        # launch the query:
+        res = run_sql(query)
+        # fill the result set:
+        for id_bibrec in res:
+            if id_bibrec[0]:
+                l.append(id_bibrec[0])
+    # check no of hits found:
+    nb_hits = len(l)
+    if dbg:
+        print_warning(req, "The pattern '%s' in field '%s' has got '%d' hits." % (p, f, nb_hits), "Info")
+    # check whether it is sound to do a new search:
+    if nb_hits == 0 and not (p.startswith("%") and p.endswith("%")):
+        # try to launch substring search:
+        p_new = "%" + p + "%"
+        print_warning(req, "Your original search for <strong>%s</strong> within <strong>%s</strong> field did not return any result.  Looking for subphrase/substring match..." % \
+                      (p_orig, f), "Info")
+        return search_in_bibxxx(req, p_new, f, type)
+    else:
+        # okay, return result set:
+        set = HitList()
+        set.addlist(Numeric.array(l))
+        return set
+
+def create_nearest_words_links(url, p, f, n=10, prologue="<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", epilogue=""):
+    """Return list of 'n' nearest words to 'p' in the words index list for the field 'f'."""
+    out = ""
+    # deduce into which bibwordsX table we will search:
+    bibwordsX = "bibwords%d" % get_wordsindex_id("anyfield")
+    if f:
+        wordsindex_id = get_wordsindex_id(f)
+        if wordsindex_id:
+            bibwordsX = "bibwords%d" % wordsindex_id
+        else:
+            return "%sNo words index available for %s.%s" % (prologue, f, epilogue)
+    # try to get nearest n words:
+    query = "SELECT word FROM %s WHERE word LIKE '%s%%' LIMIT %d" % (bibwordsX, escape_string(p), n)
+    res = run_sql(query)
+    for row in res:
+        p_new = row[0]
+        p_new_quoted = urllib.quote(p_new,'')
+        url_new = url
+        if p:
+            p_quoted = urllib.quote(p,'')
+            url_new = string.replace(url, p_quoted, p_new_quoted)
+        else:
+            url_new = url + "&p=%s" % p_new_quoted
+        out += """%s<a href="%s/search.py?%s">%s</a> - about %s hits%s""" % \
+               (prologue, weburl, url_new, p_new, get_word_nbhits(p_new, f), epilogue)
+    if out:
+        return out
+    else:
+        # try search pattern of lesser length:
+        if p:
+            p_quoted = urllib.quote(p,'')
+            p_new_quoted = urllib.quote(p[:-1],'')
+            return create_nearest_words_links(string.replace(url, p_quoted, p_new_quoted), p[:-1], f, n)
+        else:
+            return "%sNo words index available for this query.%s" % (prologue, epilogue)
+
+def get_word_nbhits(word, f):
+    """Return number of hits for word 'word' inside words index for field 'f'."""
+    out = 0
+    # deduce into which bibwordsX table we will search:
+    bibwordsX = "bibwords%d" % get_wordsindex_id("anyfield")
+    if f:
+        wordsindex_id = get_wordsindex_id(f)
+        if wordsindex_id:
+            bibwordsX = "bibwords%d" % wordsindex_id
+        else:
+            return 0
+    # try to get nearest n words:
+    if word:
+        query = "SELECT hitlist FROM %s WHERE word LIKE '%s'" % (bibwordsX, escape_string(word))
+        res = run_sql(query)
+        for hitlist in res:
+            out += Numeric.sum(Numeric.loads(zlib.decompress(hitlist[0])).copy().astype(Numeric.Int))
+    return nice_number(out)
+
+def get_mysql_recid_from_aleph_sysno(sysno):
+    """Returns MySQL's recID for ALEPH sysno passed in the argument (e.g. "2209836CERCER").
+       Returns None in case of failure."""
+    out = None
+    query = "SELECT bb.id_bibrec FROM bibrec_bib90x AS bb, bib90x AS b WHERE b.value='%s' AND b.tag='909C0o' AND bb.id_bibxxx=b.id" %\
+            (escape_string(sysno))
+    res = run_sql(query, None, 1)
+    if res:        
+        out = res[0][0]
+    return out
+
+def get_field_tags(field):
+    """Returns a list of MARC tags for the field code 'field'.
+       Returns empty list in case of error.
+       Example: field='author', output=['100__%','700__%']."""
+    out = []
+    query = """SELECT t.value FROM tag AS t, field_tag AS ft, field AS f
+                WHERE f.code='%s' AND ft.id_field=f.id AND t.id=ft.id_tag
+                ORDER BY ft.score DESC""" % field
+    res = run_sql(query)
+    for val in res:
+        out.append(val[0])
+    return out
+
+def get_fieldvalues(recID, tag):
+    """Return list of field values for field 'tag' inside record 'recID'."""
+    out = []
+    digit = tag[0:2]
+    bx = "bib%sx" % digit
+    bibx = "bibrec_bib%sx" % digit
+    query = "SELECT bx.value FROM %s AS bx, %s AS bibx WHERE bibx.id_bibrec='%s' AND bx.id=bibx.id_bibxxx AND bx.tag LIKE '%s'" \
+            % (bx, bibx, recID, tag)
+    res = run_sql(query)
+    for row in res:
+        out.append(row[0])
+    return out
+
+def get_fieldvalues_alephseq_like(recID, tags):
+    """Return textual lines in ALEPH sequential like format for field 'tag' inside record 'recID'."""
+    out = ""    
+    # clean passed 'tag':
+    tags_in = string.split(tags, ",")
+    if len(tags_in) == 1 and len(tags_in[0]) == 6:
+        ## case A: one concrete subfield asked, so print its value if found
+        ##         (use with care: can false you if field has multiple occurrences)
+        out += string.join(get_fieldvalues(recID, tags_in[0]),"\n")
+    else:
+        ## case B: print our "text MARC" format; works safely all the time        
+        tags_out = []
+        for tag in tags_in:
+            if len(tag) == 0:
+                for i in range(0,10):
+                    for j in range(0,10):
+                        tags_out.append("%d%d%%" % (i, j))
+            elif len(tag) == 1:
+                for j in range(0,10):
+                    tags_out.append("%s%d%%" % (tag, j))        
+            elif len(tag) < 5:
+                tags_out.append("%s%%" % tag)
+            elif tag >= 6:
+                tags_out.append(tag[0:5])
+        # search all bibXXx tables as needed:
+        for tag in tags_out:
+            digits = tag[0:2]
+            if tag.startswith("001") or tag.startswith("00%"):
+                if out:
+                    out += "\n"
+                out += "%09d %s %d" % (recID, "001__", recID)
+            bx = "bib%sx" % digits
+            bibx = "bibrec_bib%sx" % digits
+            query = "SELECT b.tag,b.value,bb.field_number FROM %s AS b, %s AS bb "\
+                    "WHERE bb.id_bibrec='%s' AND b.id=bb.id_bibxxx AND b.tag LIKE '%s%%' "\
+                    "ORDER BY bb.field_number, b.tag ASC" % (bx, bibx, recID, tag)
+            res = run_sql(query)
+            # go through fields:
+            field_number_old = -999
+            field_old = ""
+            for row in res:
+                field, value, field_number = row[0], row[1], row[2]
+                ind1, ind2 = field[3], field[4]
+                if ind1 == "_":
+                    ind1 = ""
+                if ind2 == "_":
+                    ind2 = ""                        
+                # print field tag
+                if field_number != field_number_old or field[:-1] != field_old[:-1]:
+                    if out:
+                        out += "\n"
+                    out += "%09d %s " % (recID, field[:5])
+                    field_number_old = field_number
+                    field_old = field
+                # print subfield value
+                out += "$$%s%s" % (field[-1:], value)
+    return out
+
+def record_exists(recID):
+    "Returns 1 if record 'recID' exists.  Returns 0 otherwise."
+    out = 0
+    query = "SELECT id FROM bibrec WHERE id='%s'" % recID
+    res = run_sql(query, None, 1)
+    if res:        
+        out = 1
+    return out    
+
+def get_creation_date(recID):
+    "Returns the creation date of the record 'recID'."
+    out = ""
+    query = "SELECT DATE_FORMAT(creation_date,'%%Y-%%m-%%d') FROM bibrec WHERE id='%s'" % (recID)
+    res = run_sql(query, None, 1)
+    if res:        
+        out = res[0][0]
+    return out
+
+def get_modification_date(recID):
+    "Returns the date of last modification for the record 'recID'."
+    out = ""
+    query = "SELECT DATE_FORMAT(modification_date,'%%Y-%%m-%%d') FROM bibrec WHERE id='%s'" % (recID)
+    res = run_sql(query, None, 1)
+    if res:        
+        out = res[0][0]
+    return out
+
+def print_warning(req, msg, type='Tip', prologue='', epilogue='<br>'):
+    "Prints warning message and flushes output."
+    if req:
+        req.write('%s<span class="quicknote">' % (prologue))
+        if type:
+            req.write('<strong>%s:</strong> ' % type)
+        req.write('%s</span>%s' % (msg, epilogue))
+
+def print_search_info(p, f, sf, so, sp, of, ot, collection=cdsname, nb_found=-1, jrec=1, rg=10,
+                      as=0, p1="", p2="", p3="", f1="", f2="", f3="", m1="", m2="", m3="", op1="", op2="",
+                      cpu_time=-1, middle_only=0):
+    """Prints stripe with the information on 'collection' and 'nb_found' results and CPU time.
+       Also, prints navigation links (beg/next/prev/end) inside the results set.
+       If middle_only is set to 1, it will only print the middle box information (beg/netx/prev/end/etc) links.
+       This is suitable for displaying navigation links at the bottom of the search results page."""
+
+    out = ""
+    # left table cells: print collection name
+    if not middle_only:
+        out += "\n<a name=\"%s\"></a>" \
+              "\n<form action=\"%s/search.py\" method=\"get\">"\
+              "\n<table width=\"100%%\" cellpadding=2 cellspacing=0 border=0><tr class=\"results\"><td align=\"left\">" \
+              "<strong><big><img align=\"left\" src=\"%s/img/okay.gif\" width=20 height=20 alt=\"*\">"\
+              "<a href=\"%s/goto.shtml?c=%s\">%s</a></big></strong></td>\n" % \
+              (collection, weburl, weburl, weburl, urllib.quote(collection), collection)
+    else:
+        out += """\n<form action="%s/search.py" method="get"><div align="center">\n""" % weburl
+
+    # sanity check:
+    if jrec < 1:
+        jrec = 1
+    if jrec > nb_found:
+        jrec = max(nb_found-rg+1, 1)        
+
+    # middle table cell: print beg/next/prev/end arrows:
+    if not middle_only:
+        out += "<td align=\"center\">\n"
+        out += "<strong>%s</strong> records found: &nbsp; \n" % nice_number(nb_found)
+    else:
+        out += "<small>"
+        if nb_found > rg:
+            out += "%s: <strong>%s</strong> records found: &nbsp; " % (collection, nice_number(nb_found))
+
+    if nb_found > rg: # navig.arrows are not needed for small number of hits
+        url = '%s/search.py?p=%s&amp;c=%s&amp;f=%s&amp;sf=%s&amp;so=%s&amp;sp=%s&amp;of=%s&amp;ot=%s' % (weburl, urllib.quote(p), urllib.quote(collection), f, sf, so, sp, of, ot)
+        url += '&amp;as=%s&amp;p1=%s&amp;p2=%s&amp;p3=%s&amp;f1=%s&amp;f2=%s&amp;f3=%s&amp;m1=%s&amp;m2=%s&amp;m3=%s&amp;op1=%s&amp;op2=%s' \
+               % (as, urllib.quote(p1), urllib.quote(p2), urllib.quote(p3), f1, f2, f3, m1, m2, m3, op1, op2)
+        if jrec-rg > 1:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=1&amp;rg=%d\"><img src=\"%s/img/sb.gif\" alt=\"begin\" border=0></a>" % (url, rg, weburl)
+        if jrec > 1:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=%d&amp;rg=%d\"><img src=\"%s/img/sp.gif\" alt=\"previous\" border=0></a>" % (url, max(jrec-rg,1), rg, weburl)
+        if nb_found > rg:
+            out += "%d - %d" % (jrec, jrec+rg-1)
+        else:
+            out += "%d - %d" % (jrec, nb_found)
+        if nb_found >= jrec+rg:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=%d&amp;rg=%d\"><img src=\"%s/img/sn.gif\" alt=\"next\" border=0></a>" % \
+                  (url, jrec+rg, rg, weburl)
+        if nb_found >= jrec+rg+rg:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=%d&amp;rg=%d\"><img src=\"%s/img/se.gif\" alt=\"end\" border=0></a>" % \
+                  (url, nb_found-rg+1, rg, weburl)
+        out += "<input type=\"hidden\" name=\"p\" value=\"%s\">" % p
+        out += "<input type=\"hidden\" name=\"c\" value=\"%s\">" % collection
+        out += "<input type=\"hidden\" name=\"f\" value=\"%s\">" % f 
+        out += "<input type=\"hidden\" name=\"sf\" value=\"%s\">" % sf
+        out += "<input type=\"hidden\" name=\"so\" value=\"%s\">" % so
+        out += "<input type=\"hidden\" name=\"of\" value=\"%s\">" % of
+        if ot:
+            out += """<input type="hidden" name="ot" value="%s">""" % ot
+        if sp:
+            out += """<input type="hidden" name="sp" value="%s">""" % sp 
+        out += "<input type=\"hidden\" name=\"rg\" value=\"%d\">" % rg
+        out += "<input type=\"hidden\" name=\"as\" value=\"%d\">" % as
+        out += "<input type=\"hidden\" name=\"p1\" value=\"%s\">" % p1
+        out += "<input type=\"hidden\" name=\"p2\" value=\"%s\">" % p2
+        out += "<input type=\"hidden\" name=\"p3\" value=\"%s\">" % p3
+        out += "<input type=\"hidden\" name=\"f1\" value=\"%s\">" % f1
+        out += "<input type=\"hidden\" name=\"f2\" value=\"%s\">" % f2
+        out += "<input type=\"hidden\" name=\"f3\" value=\"%s\">" % f3
+        out += "<input type=\"hidden\" name=\"m1\" value=\"%s\">" % m1
+        out += "<input type=\"hidden\" name=\"m2\" value=\"%s\">" % m2
+        out += "<input type=\"hidden\" name=\"m3\" value=\"%s\">" % m3
+        out += "<input type=\"hidden\" name=\"op1\" value=\"%s\">" % op1
+        out += "<input type=\"hidden\" name=\"op2\" value=\"%s\">" % op2
+        out += "&nbsp; or jump to record: <input type=\"text\" name=\"jrec\" size=\"4\" value=\"%d\">" % jrec
+    if not middle_only:
+        out += "</td>"
+    else:
+        out += "</small>"
+        
+    # right table cell: cpu time info
+    if not middle_only:
+        if cpu_time > -1:
+            out +="<td align=\"right\"><small>Search took %.2f sec.</small>&nbsp;</td>" % cpu_time
+        out += "</tr></table>"
+    else:
+        out += "</div>"
+    out += "</form>"
+    return out
+
+def print_results_overview(colls, results_final_nb_total, results_final_nb, cpu_time):
+    "Prints results overview box with links to particular collections below."
+    out = ""
+    if len(colls) == 1:
+        # if one collection only, print nothing:
+        return out
+    # first find total number of hits:
+    out += "<p><table width=\"100%%\" border=0 cellspacing=0 cellpadding=2>" \
+           "<tr><td class=\"results\"><strong>Results overview:</strong> Found <strong>%s</strong> records in %.2f seconds.</td></tr>" % \
+           (nice_number(results_final_nb_total), cpu_time)
+    # then print hits per collection:
+    out += "<tr><td class=\"resultsbis\">"
+    for coll in colls:
+        if results_final_nb[coll] > 0:
+            out += "In <strong><a href=\"#%s\">%s</a></strong>, " \
+                  "<a href=\"#%s\">%s records found</a><br>" \
+                  % (urllib.quote(coll), coll, urllib.quote(coll), nice_number(results_final_nb[coll]))
+    out += "</td></tr></table>\n"
+    return out
+
+def sort_records(req, recIDs, sort_field='', sort_order='d', sort_pattern=''):
+    """Sort records in 'recIDs' list according sort field 'sort_field' in order 'sort_order'.
+       If more than one instance of 'sort_field' is found for a given record, try to choose that that is given by
+       'sort pattern', for example "sort by report number that starts by CERN-PS".
+       Note that 'sort_field' can be field code like 'author' or MARC tag like '100__a' directly."""
+
+    ## check arguments:
+    if not sort_field:
+        return recIDs
+    if len(recIDs) > cfg_nb_records_to_sort:
+        print_warning(req, "Sorry, sorting is allowed on sets of up to %d records only.  Using default sort order (\"latest first\")." % cfg_nb_records_to_sort,"Warning")
+        return recIDs
+
+    recIDs_dict = {}
+    recIDs_out = []
+
+    ## first deduce sorting MARC tag out of the 'sort_field' argument:
+    tags = []
+    if sort_field and str(sort_field[0:2]).isdigit():
+        # sort_field starts by two digits, so this is probably a MARC tag already
+        tags.append(sort_field)
+    else:
+        # let us check the 'field' table
+        query = """SELECT DISTINCT(t.value) FROM tag AS t, field_tag AS ft, field AS f
+                    WHERE f.code='%s' AND ft.id_field=f.id AND t.id=ft.id_tag
+                    ORDER BY ft.score DESC""" % sort_field
+        res = run_sql(query)
+        if res:
+            for row in res:
+                tags.append(row[0])
+        else:
+            print_warning(req, "Sorry, '%s' does not seem to be a valid sort option.  Choosing title sort instead." % sort_field, "Error")
+            tags.append("245__a")
+        
+    ## check if we have sorting tag defined:
+    if tags:
+        # fetch the necessary field values:
+        for recID in recIDs:
+            val = "" # will hold value for recID according to which sort
+            vals = [] # will hold all values found in sorting tag for recID
+            for tag in tags:
+                vals.extend(get_fieldvalues(recID, tag))
+            if sort_pattern: 
+                # try to pick that tag value that corresponds to sort pattern
+                bingo = 0
+                for v in vals: 
+                    if v.startswith(sort_pattern): # bingo!
+                        bingo = 1
+                        val = v
+                        break
+                if not bingo: # not found, so joint them all together
+                    val = string.join(vals)                    
+            else:
+                # no sort pattern defined, so join them all together
+                val = string.join(vals)
+            val = val.lower()
+            if recIDs_dict.has_key(val):
+                recIDs_dict[val].append(recID)
+            else:
+                recIDs_dict[val] = [recID]
+        # sort them:
+        recIDs_dict_keys = recIDs_dict.keys()
+        recIDs_dict_keys.sort()
+        # now that keys are sorted, create output array:
+        for k in recIDs_dict_keys:
+            for s in recIDs_dict[k]:
+                recIDs_out.append(s)        
+        # ascending or descending?
+        if sort_order == 'a':
+            recIDs_out.reverse()
+        # okay, we are done
+        return recIDs_out
+    else:
+        # good, no sort needed
+        return recIDs
+        
+def print_records(req, recIDs, jrec=1, rg=10, format='hb', ot='', decompress=zlib.decompress):
+    """Prints list of records 'recIDs' formatted accoding to 'format' in groups of 'rg' starting from 'jrec'.
+    Assumes that the input list 'recIDs' is sorted in reverse order, so it counts records from tail to head.
+    A value of 'rg=-9999' means to print all records: to be used with care.
+    """
+
+    if len(recIDs):
+        nb_found = len(recIDs)
+
+        if rg == -9999: # print all records
+            rg = nb_found
+        else:
+            rg = abs(rg)
+        if jrec < 1: # sanity checks
+            jrec = 1
+        if jrec > nb_found:
+            jrec = max(nb_found-rg+1, 1)
+
+        # will print records from irec_max to irec_min excluded:
+        irec_max = nb_found - jrec
+        irec_min = nb_found - jrec - rg
+        if irec_min < 0:
+            irec_min = -1
+        if irec_max >= nb_found:
+            irec_max = nb_found - 1
+        
+        #req.write("%s:%d-%d" % (recIDs, irec_min, irec_max))
+
+        if format.startswith('x'):
+            # we are doing XML output:
+            for irec in range(irec_max,irec_min,-1):
+                req.write(print_record(recIDs[irec], format, ot))
+
+        elif format.startswith('t') or str(format[0:3]).isdigit():
+            # we are doing plain text output:
+            for irec in range(irec_max,irec_min,-1):
+                x = print_record(recIDs[irec], format, ot)
+                req.write(x)
+                if x:
+                    req.write('\n')
+        else:
+            # we are doing HTML output:
+            if format != "hb":
+                # deduce url without 'of' argument:
+                url_args = re.sub(r'(^|\&)of=.*?(\&|$)',r'\1',req.args)
+                url_args = re.sub(r'^\&+', '', url_args)
+                url_args = re.sub(r'\&+$', '', url_args)
+                # print other formatting choices:
+                req.write("""<p><div align="right"><small>Format: \n""")
+                if format != "hm":
+                    req.write('HTML | <a href="%s/search.py?%s&of=hm">HTML MARC</a> | <a href="%s/search.py?%s&of=xd">XML DC</a> | <a href="%s/search.py?%s&of=xm">XML MARC</a>' % (weburl, url_args, weburl, url_args, weburl, url_args))
+                else:
+                    req.write('<a href="%s/search.py?%s">HTML</a> | HTML MARC | <a href="%s/search.py?%s&of=xd">XML DC</a> | <a href="%s/search.py?%s&of=xm">XML MARC</a>' % (weburl, url_args, weburl, url_args, weburl, url_args))
+                req.write("</small></div>\n")
+                for irec in range(irec_max,irec_min,-1):
+                    req.write(print_record(recIDs[irec], format, ot))
+                    req.write("<p><p>")
+            else:                
+                req.write("\n<ol start=\"%d\">" % jrec)            
+                for irec in range(irec_max,irec_min,-1):
+                    req.write("\n<li>")
+                    req.write(print_record(recIDs[irec], format, ot))
+                    req.write("<p>")
+                req.write("\n</ol>")
+
+    else:        
+        print_warning(req, 'Use different search terms.')        
+
+def print_record(recID, format='hb', ot='', decompress=zlib.decompress):
+    "Prints record 'recID' formatted accoding to 'format'."
+    out = ""
+
+    # sanity check:
+    if not record_exists(recID):
+        return out
+
+    # print record opening tags, if needed:
+    if format == "marcxml" or format == "oai_dc":
+        out += "  <record>\n"
+        out += "   <header>\n"
+        for id in get_fieldvalues(recID,oaiidfield):
+            out += "    <identifier>%s</identifier>\n" % id
+        out += "    <datestamp>%s</datestamp>\n" % get_modification_date(recID)
+        out += "   </header>\n"
+        out += "   <metadata>\n"
+
+    if format.startswith("xm") or format == "marcxml":
+        # look for detailed format existence:
+        query = "SELECT value FROM bibfmt WHERE id_bibrec='%s' AND format='%s'" % (recID, format)
+        res = run_sql(query, None, 1)
+        if res:
+            # record 'recID' is formatted in 'format', so print it
+            out += "%s" % decompress(res[0][0])
+        else:
+            # record 'recID' is not formatted in 'format' -- they are not in "bibfmt" table; so fetch all the data from "bibXXx" tables:
+            if format == "marcxml":
+                out += """    <record xmlns="http://www.loc.gov/MARC21/slim">\n"""
+                out += "        <controlfield tag=\"001\">%d</controlfield>\n" % int(recID)
+            elif format.startswith("xm"):
+                out += """    <record>\n"""
+                out += "        <controlfield tag=\"001\">%d</controlfield>\n" % int(recID)
+            for digit1 in range(0,10):
+                for digit2 in range(0,10):
+                    bx = "bib%d%dx" % (digit1, digit2)
+                    bibx = "bibrec_bib%d%dx" % (digit1, digit2)
+                    query = "SELECT b.tag,b.value,bb.field_number FROM %s AS b, %s AS bb "\
+                            "WHERE bb.id_bibrec='%s' AND b.id=bb.id_bibxxx AND b.tag LIKE '%s%%' "\
+                            "ORDER BY bb.field_number, b.tag ASC" % (bx, bibx, recID, str(digit1)+str(digit2))
+                    if dbg:
+                        out += "<br>Debug: " + query
+                    res = run_sql(query)
+                    field_number_old = -999
+                    field_old = ""
+                    for row in res:
+                        field, value, field_number = row[0], row[1], row[2]
+                        ind1, ind2 = field[3], field[4]
+                        if ind1 == "_":
+                            ind1 = ""
+                        if ind2 == "_":
+                            ind2 = ""                        
+                        # print field tag
+                        if field_number != field_number_old or field[:-1] != field_old[:-1]:
+                            if format.startswith("xm") or format == "marcxml":
+
+                                fieldid = encode_for_xml(field[0:3])
+
+                                if field_number_old != -999:
+                                    out += """        </datafield>\n"""
+
+                                out += """        <datafield tag="%s" ind1="%s" ind2="%s">\n""" % (encode_for_xml(field[0:3]), encode_for_xml(ind1), encode_for_xml(ind2))
+
+                            field_number_old = field_number
+                            field_old = field
+                        # print subfield value
+                        if format.startswith("xm") or format == "marcxml":
+                            value = encode_for_xml(value)
+                            out += """            <subfield code="%s">%s</subfield>\n""" % (encode_for_xml(field[-1:]), value)
+
+                    # all fields/subfields printed in this run, so close the tag:
+                    if (format.startswith("xm") or format == "marcxml") and field_number_old != -999:
+                        out += """        </datafield>\n"""
+            # we are at the end of printing the record:
+            if format.startswith("xm") or format == "marcxml":
+                out += "    </record>\n"
+
+    elif format == "xd" or format == "oai_dc":
+        # XML Dublin Core format, possibly OAI -- select only some bibXXx fields:
+        out += """    <dc xmlns="http://purl.org/dc/elements/1.1/"
+                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                         xsi:schemaLocation="http://purl.org/dc/elements/1.1/
+                                             http://www.openarchives.org/OAI/1.1/dc.xsd">\n"""
+        for f in get_fieldvalues(recID, "041__a"):
+            out += "        <language>%s</language>\n" % f
+
+        for f in get_fieldvalues(recID, "100__a"):
+            out += "        <creator>%s</creator>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "700__a"):
+            out += "        <creator>%s</creator>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "245__a"):
+            out += "        <title>%s</title>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "65017a"):
+            out += "        <subject>%s</subject>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "8564_u"):
+            out += "        <identifier>%s</identifier>\n" % encode_for_xml(f)
+        
+        for f in get_fieldvalues(recID, "520__a"):
+            out += "        <description>%s</description>\n" % encode_for_xml(f)            
+
+        out += "        <date>%s</date>\n" % get_creation_date(recID)
+        out += "    </dc>\n"                    
+
+    elif str(format[0:3]).isdigit():
+        # user has asked to print some fields only
+        if format == "001":
+            out += "<!--%s-begin-->%s<!--%s-end-->\n" % (format, recID, format)
+        else:
+            vals = get_fieldvalues(recID, format)
+            for val in vals:
+                out += "<!--%s-begin-->%s<!--%s-end-->\n" % (format, val, format)
+
+    elif format.startswith('t'):
+        ## user directly asked for some tags to be displayed only
+        out += get_fieldvalues_alephseq_like(recID, ot)
+
+    elif format == "hm":
+        out += "<pre>" + get_fieldvalues_alephseq_like(recID, ot) + "</pre>"
+
+    elif format.startswith("h") and ot:
+        ## user directly asked for some tags to be displayed only
+        out += "<pre>" + get_fieldvalues_alephseq_like(recID, ot) + "</pre>"
+
+    elif format == "hd":
+        # HTML detailed format
+        # look for detailed format existence:
+        query = "SELECT value FROM bibfmt WHERE id_bibrec='%s' AND format='%s'" % (recID, format)
+        res = run_sql(query, None, 1)
+        if res:
+            # record 'recID' is formatted in 'format', so print it
+            out += "%s" % decompress(res[0][0])
+        else:
+            # record 'recID' is not formatted in 'format', so either call BibFormat on the fly or use default format
+            # second, see if we are calling BibFormat on the fly:
+            if cfg_call_bibformat:
+                out += call_bibformat(recID)
+            else:
+                # okay, need to construct a simple "Detailed record" format of our own:
+                out += "<p>&nbsp;"
+                # secondly, title:
+                titles = get_fieldvalues(recID, "245__a")
+                for title in titles:
+                    out += "<p><p><center><big><strong>%s</strong></big></center>" % title
+                # thirdly, authors:
+                authors = get_fieldvalues(recID, "100__a") + get_fieldvalues(recID, "700__a")
+                if authors:
+                    out += "<p><p><center>"
+                    for author in authors:
+                        out += """<a href="%s/search.py?p=%s&f=author">%s</a> ;""" % (weburl, urllib.quote(author), author)
+                    out += "</center>"
+                # fourthly, date of creation:
+                dates = get_fieldvalues(recID, "260__c")
+                for date in dates:
+                    out += "<p><center><small>%s</small></center>" % date
+                # fifthly, abstract:
+                abstracts = get_fieldvalues(recID, "520__a")
+                for abstract in abstracts:
+                    out += """<p style="margin-left: 15%%; width: 70%%">
+                             <small><strong>Abstract:</strong> %s</small></p>""" % abstract
+                # fifthly bis, keywords:
+                keywords = get_fieldvalues(recID, "6531_a")
+                if len(keywords):
+                    out += """<p style="margin-left: 15%; width: 70%">
+                             <small><strong>Keyword(s):</strong></small>"""
+                    for keyword in keywords:
+                        out += """<small><a href="%s/search.py?p=%s&f=keyword">%s</a> ;</small> """ % (weburl, urllib.quote(keyword), keyword)
+                # fifthly bis bis, published in:
+                prs_p = get_fieldvalues(recID, "909C4p")
+                prs_v = get_fieldvalues(recID, "909C4v")
+                prs_y = get_fieldvalues(recID, "909C4y")
+                prs_n = get_fieldvalues(recID, "909C4n")
+                prs_c = get_fieldvalues(recID, "909C4c")
+                for idx in range(0,len(prs_p)):
+                    out += """<p style="margin-left: 15%%; width: 70%%">
+                             <small><strong>Publ. in:</strong> %s"""  % prs_p[idx]
+                    if prs_v and prs_v[idx]:
+                        out += """<strong>%s</strong>""" % prs_v[idx]
+                    if prs_y and prs_y[idx]:
+                        out += """(%s)""" % prs_y[idx]
+                    if prs_n and prs_n[idx]:
+                        out += """, no.%s""" % prs_n[idx]
+                    if prs_c and prs_c[idx]:
+                        out += """, p.%s""" % prs_c[idx]
+                    out += """.</small>"""
+                # sixthly, fulltext link:
+                urls_z = get_fieldvalues(recID, "8564_z")
+                urls_u = get_fieldvalues(recID, "8564_u")
+                for idx in range(0,len(urls_u)):
+                    link_text = "URL"
+                    if urls_z[idx]:
+                        link_text = urls_z[idx]
+                    out += """<p style="margin-left: 15%%; width: 70%%">
+                    <small><strong>%s:</strong> <a href="%s">%s</a></small>""" % (link_text, urls_u[idx], urls_u[idx])
+                # print some white space at the end:
+                out += "<p><p>"
+
+    else:
+        # HTML brief format by default
+        query = "SELECT value FROM bibfmt WHERE id_bibrec='%s' AND format='%s'" % (recID, format)
+        res = run_sql(query)
+        if res:
+            # record 'recID' is formatted in 'format', so print it
+            out += "%s" % decompress(res[0][0])
+        else:
+            # record 'recID' does not exist in format 'format', so print some default format:
+            # firstly, title:
+            titles = get_fieldvalues(recID, "245__a")
+            for title in titles:
+                out += "<strong>%s</strong> " % title
+            # secondly, authors:
+            authors = get_fieldvalues(recID, "100__a") + get_fieldvalues(recID, "700__a")
+            if authors:
+                out += " / "
+                for i in range (0,cfg_author_et_al_threshold):
+                    if i < len(authors):
+                        out += """<a href="%s/search.py?p=%s&f=author">%s</a> ;""" % (weburl, urllib.quote(authors[i]), authors[i])
+                if len(authors) > cfg_author_et_al_threshold:
+                    out += " <em>et al.</em>"
+            # thirdly, date of creation:
+            dates = get_fieldvalues(recID, "260__c")
+            for date in dates:
+                out += " %s." % date
+            # thirdly bis, report numbers:
+            rns = get_fieldvalues(recID, "037__a")
+            for rn in rns:
+                out += """ <small class="quicknote">[%s]</small>""" % rn
+            rns = get_fieldvalues(recID, "088__a")
+            for rn in rns:
+                out += """ <small class="quicknote">[%s]</small>""" % rn
+            # fourthly, beginning of abstract:
+            abstracts = get_fieldvalues(recID, "520__a")
+            for abstract in abstracts:
+                out += "<br><small>%s [...]</small>" % abstract[:1+string.find(abstract, '.')]
+            # fifthly, fulltext link:
+            urls_z = get_fieldvalues(recID, "8564_z")
+            urls_u = get_fieldvalues(recID, "8564_u")
+            for idx in range(0,len(urls_u)):
+                out += """<br><small class="note"><a class="note" href="%s">%s</a></small>""" % (urls_u[idx], urls_u[idx])
+
+        # at the end of HTML mode, print "Detailed record" and "Mark record" functions:
+        if cfg_use_aleph_sysnos:
+            alephsysnos = get_fieldvalues(recID, "909C0o")
+            if len(alephsysnos)>0:
+                alephsysno = alephsysnos[0]
+                out += """<br><span class="moreinfo"><a class="moreinfo" href="%s/search.py?sysnb=%s">Detailed record</a></span>""" \
+                       % (weburl, alephsysno)
+                #out += """<span class="moreinfo"> - <input name="mark[]" type="checkbox" value="%s"> Mark record</span>""" % alephsysno
+            else:
+                out += """<br><span class="moreinfo"><a class="moreinfo" href="%s/search.py?id=%s">Detailed record</a></span>""" \
+                       % (weburl, recID)
+                #out += """<span class="moreinfo"> - <input name="mark[]" type="checkbox" value="%s"> Mark record</span>""" % recID
+        else:
+            out += """<br><span class="moreinfo"><a class="moreinfo" href="%s/search.py?id=%s">Detailed record</a></span>""" \
+                   % (weburl, recID)
+            #out += """<span class="moreinfo"> - <input name="mark[]" type="checkbox" value="%s"> Mark record</span>""" % recID
+
+    # print record closing tags, if needed:
+    if format == "marcxml" or format == "oai_dc":
+        out += "   </metadata>\n"
+        out += "  </record>\n"
+
+    return out
+
+def encode_for_xml(s):
+    "Encode special chars in string so that it would be XML-compliant."
+    s = string.replace(s, '&', '&amp;')
+    s = string.replace(s, '<', '&lt;')
+    s = unicode(s,'latin-1','ignore').encode('utf-8','replace')
+    return s
+
+def call_bibformat(id, otype="HD"):
+    """Calls BibFormat for the record 'id'.  Desired BibFormat output type is passed in 'otype' argument.
+       This function is mainly used to display full format, if they are not stored in the 'bibfmt' table."""
+    f = urllib.urlopen("%sbibformat/bibformat.shtml?id=%s&otype=%s" % (weburl, id, otype))
+    out = f.read()
+    f.close()
+    return out
+
+def log_query_info(action, p, f, colls, nb_records_found_total=-1):
+    """Write some info to the log file for later analysis."""
+    try:
+        log = open(logdir + "/search.log", "a")
+        log.write(time.strftime("%04Y%02m%02d%02H%02M%02S#", time.localtime()))
+        log.write(action+"#")
+        log.write(p+"#")
+        log.write(f+"#")
+        for coll in colls[:-1]:
+            log.write("%s," % coll)
+        log.write("%s#" % colls[-1])
+        log.write("%d" % nb_records_found_total)
+        log.write("\n")
+        log.close()
+    except:
+        pass
+    return
+
+## test cases:
+#print collrecs_cache
+#collrecs_cache["Preprints"] = get_collection_hitlist("Preprints")
+#print perform_search(None, "of","title",["Preprints"])
+#print wash_colls(cdsname,"Library Catalogue", 0)
+#print wash_colls("Periodicals & Progress Reports",["Periodicals","Progress Reports"], 0)
+#print wash_field("wau")
+#print print_record(20,"tm","001,245")
+#print create_opft_search_units(None, "PHE-87-13","reportnumber")
+#print get_word_nbhits("of","title")
+#print ":"+wash_pattern("* and % doo * %")+":\n"
+#print ":"+wash_pattern("*")+":\n"
+#print run_sql("SELECT name,dbquery from collection")
+#print get_wordsindex_id("author")
+#print get_coll_ancestors("Theses")
+#print get_coll_sons("Articles & Preprints")
+#print get_coll_real_descendants("Articles & Preprints")
+#print get_collection_hitlist("Theses")
+#print log(sys.stdin)
+</protect>
diff --git a/modules/websearch/lib/search_engine.py.wml b/modules/websearch/lib/search_engine.py.wml
new file mode 100644
index 000000000..cb9edc4fb
--- /dev/null
+++ b/modules/websearch/lib/search_engine.py.wml
@@ -0,0 +1,1977 @@
+## $Id$
+## CDSware Search Engine in mod_python.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+"""CDSware Search Engine in mod_python."""
+
+<protect> ## okay, rest of the Python code goes below #######
+
+__version__ = "$Id$"
+
+## import interesting modules:
+try:
+    import cgi
+    import Cookie
+    import cPickle
+    import marshal
+    import fileinput
+    import getopt
+    import string
+    from string import split
+    import os
+    import re
+    import sys
+    import time
+    import urllib
+    import zlib
+    import lzo
+    import MySQLdb
+    import Numeric
+    import md5
+    import base64
+    import unicodedata
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)    
+
+try:
+    from config import *
+    from search_engine_config import *
+    from dbquery import run_sql
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+search_cache = {} # will cache results of previous searches
+dbg = 0 # are we debugging?
+
+## precompile some often-used regexp for speed reasons:
+re_a = re.compile('[����]')
+re_A = re.compile('[����]')
+re_e = re.compile('[����]')
+re_E = re.compile('[����]')
+re_i = re.compile('[����]')
+re_I = re.compile('[����]')
+re_o = re.compile('[����]')
+re_O = re.compile('[����]')
+re_u = re.compile('[����]')
+re_U = re.compile('[����]')
+re_w = re.compile('[^\w]')
+re_logical_and = re.compile('\sand\s')
+re_logical_or = re.compile('\sor\s')
+re_logical_not = re.compile('\snot\s')
+re_operands = re.compile(r'\s([\+\-\|])\s')
+re_spaces = re.compile('\s\s+')
+re_pattern = re.compile('[^\w\+\*\-\?\|\'\"\,\:\=]')
+re_word = re.compile('[\s]')
+re_plus = re.compile('\+')
+re_minus = re.compile('\-')
+re_equal = re.compile('\=')
+re_asterisk = re.compile('\*')
+re_quote = re.compile('\'')
+re_quotes = re.compile('[\'\"]')
+re_doublequote = re.compile('\"')
+re_subfields = re.compile('\$\$\w')
+re_amp = re.compile('&')
+re_lt = re.compile('<')
+
+def build_table_latin1_to_ascii():
+    """Builds translation table from ISO Latin-1 into ASCII.
+    For example, 'f�lin' gets translated into 'felin', etc.
+    Suitable for search string pattern replacement."""
+    table = range(256)
+    for i in table:
+        x = unicodedata.decomposition(unichr(i))
+        if x and x[0] == "0":
+            table[i] = int(x.split()[0], 16)
+    return string.join(map(chr, table), "")
+
+# build conversion table:
+table_latin1_to_ascii = build_table_latin1_to_ascii()
+
+def get_nicely_ordered_collection_list(collid=1, level=0):
+    """Returns nicely ordered (score respected) list of collections, more exactly list of tuples
+       (collection name, printable collection name).
+       Suitable for print_search_box()."""
+    colls_nicely_ordered = []
+    query = "SELECT c.name,cc.id_son FROM collection_collection AS cc, collection AS c "\
+            " WHERE c.id=cc.id_son AND cc.id_dad='%s' ORDER BY score DESC" % collid
+    res = run_sql(query)
+    for c, cid in res:
+        # make a nice printable name (e.g. truncate c_printable for for long collection names):
+        if len(c)>30:
+            c_printable = c[:30] + "..."
+        else:
+            c_printable = c
+        if level:
+            c_printable = " " + level * '-' + " " + c_printable
+        colls_nicely_ordered.append([c, c_printable])
+        colls_nicely_ordered  = colls_nicely_ordered + get_nicely_ordered_collection_list(cid, level+1)
+    return colls_nicely_ordered
+
+def get_wordsindex_id(field):
+    """Returns first words index id where the field code 'field' is word-indexed.
+       Returns zero in case there is no words table for this index.
+       Example: field='author', output=4."""
+    out = 0
+    query = """SELECT w.id FROM wordsindex AS w, wordsindex_field AS wf, field AS f
+                WHERE f.code='%s' AND wf.id_field=f.id AND w.id=wf.id_wordsindex
+                LIMIT 1""" % MySQLdb.escape_string(field)
+    res = run_sql(query, None, 1)
+    if res:
+        out = res[0][0]
+    return out
+
+def get_words_from_phrase(phrase, chars_to_treat_as_separators="[\s]"):
+    "Returns list of words found in the phrase 'phrase'."
+    words = {}
+    phrase = asciify_accented_letters(phrase)
+    phrase = re.sub(chars_to_treat_as_separators, ' ', phrase) # replace all non-alphabetic characters by spaces
+    for word in split(phrase):
+        if not words.has_key(word):
+            words[word] = 1;
+    return words.keys()
+
+def create_opft_search_units(req, p, f, m=None):
+    """Splits search pattern and search field into a list of independently searchable units.
+       - A search unit consists of '(operand, pattern, field, type)' tuples where
+          'operand' is set union (|), set intersection (+) or set exclusion (-);
+          'pattern' is either a word (e.g. muon*) or a phrase (e.g. 'nuclear physics');
+          'field' is either a code like 'title' or MARC tag like '100__a';
+          'type' is the search type ('w' for word file search, 'a' for access file search).
+        - Optionally, the function accepts the match type argument 'm'.
+          If it is set (e.g. from advanced search interface), then it
+          performs this kind of matching.  If it is not set, then a guess is made.
+          'm' can have values: 'a'='all of the words', 'o'='any of the words',
+                               'p'='phrase/substring', 'r'='regular expression',
+                               'e'='exact value'."""
+
+    opfts = [] # will hold (o,p,f,t) units
+
+    ## print input params for debugging purposes:
+    if dbg:
+        print_warning(req, "p='%s', f='%s'." % (p, f), "Debug (create_opft_search_units())")
+
+    ## check arguments: if matching type phrase/string/regexp, do we have field defined?    
+    if (m=='p' or m=='r' or m=='e') and not f:
+        m = 'a'        
+        print_warning(req, "This matching type cannot be used within <em>any field</em>.  I will perform a word search instead." , "Warning")
+        print_warning(req, "If you want to phrase/substring/regexp search in a specific field, e.g. inside title, then please choose <em>within title</em> search option.", "Tip")
+        
+    ## is desired matching type set?
+    if m:
+        ## A - matching type is known; good!
+        if m == 'e':
+            # A1 - exact value:
+            opfts.append(['|',p,f,'a']) # '|' since we have only one unit
+        elif m == 'p':
+            # A2 - phrase/substring:
+            opfts.append(['|',"%"+p+"%",f,'a']) # '|' since we have only one unit
+        elif m == 'r':
+            # A3 - regular expression:
+            opfts.append(['|',p,f,'r']) # '|' since we have only one unit
+        elif m == 'a':
+            # A4 - all of the words:
+            for word in get_words_from_phrase(p):
+                if len(opfts)==0:
+                    opfts.append(['|',word,f,'w']) # '|' in the first unit
+                else:
+                    opfts.append(['+',word,f,'w']) # '+' in further units
+        elif m == 'o':
+            # A5 - any of the words:
+            for word in get_words_from_phrase(p):
+                opfts.append(['|',word,f,'w']) # '|' in all units
+        else:
+            print_warning(req, "Matching type '%s' is not implemented yet." % m, "Warning")
+            opfts.append(['|',"%"+p+"%",f,'a'])            
+    else:        
+        ## B - matching type is not known: let us try to determine it by some heuristics
+        if f and p[0]=='"' and p[-1]=='"':
+            ## B0 - does 'p' start and end by double quote, and is 'f' defined? => doing ACC search            
+            opfts.append(['|',p[1:-1],f,'a'])
+        elif f and p[0]=="'" and p[-1]=="'":
+            ## B0bis - does 'p' start and end by single quote, and is 'f' defined? => doing ACC search            
+            opfts.append(['|','%'+p[1:-1]+'%',f,'a'])
+        elif f and string.find(p, ',') >= 0:
+            ## B1 - does 'p' contain comma, and is 'f' defined? => doing ACC search
+            opfts.append(['|',p,f,'a'])
+        elif f and str(f[0:2]).isdigit():
+            ## B2 - does 'f' exist and starts by two digits?  => doing ACC search
+            opfts.append(['|',p,f,'a'])            
+        else:
+            ## B3 - doing WRD search, but maybe ACC too
+            # search units are separated by spaces unless the space is within single or double quotes
+            # so, let us replace temporarily any space within quotes by '__SPACE__'
+            p = re.sub("'(.*?)'", lambda x: "'"+string.replace(x.group(1), ' ', '__SPACE__')+"'", p) 
+            p = re.sub("\"(.*?)\"", lambda x: "\""+string.replace(x.group(1), ' ', '__SPACEBIS__')+"\"", p) 
+            # wash argument:
+            #p = string.strip(re_spaces.sub(' ', re_pattern.sub(' ', p)))
+            p = re_equal.sub(":", p)
+            p = re_logical_and.sub(" ", p)
+            p = re_logical_or.sub(" |", p)
+            p = re_logical_not.sub(" -", p)
+            p = re_operands.sub(r' \1', p)
+            if dbg:
+                print_warning(req, "p=%s" % p, "Debug (create_opft_search_units() - B3 started)")
+            for pi in split(p, ' '): # iterate through separated units (or items, as "pi" stands for "p item")
+                pi = re.sub("__SPACE__", " ", pi) # replace back '__SPACE__' by ' ' 
+                pi = re.sub("__SPACEBIS__", " ", pi) # replace back '__SPACEBIS__' by ' '
+                # firstly, determine set operand
+                if pi[0] == '+' or pi[0] == '-' or pi[0] == '|':
+                    if len(opfts) or pi[0] == '-': # either not first unit, or '-' for the first unit
+                        oi = pi[0]
+                    else:
+                        oi = "|" # we are in the first unit and operand is not '-', so let us do 
+                                 # set union (with still null result set) 
+                    pi = pi[1:]
+                else:
+                    # okay, there is no operand, so let us decide what to do by default
+                    if len(opfts):
+                        oi = '+' # by default we are doing set intersection...
+                    else:
+                        oi = "|" # ...unless we are in the first unit
+                # secondly, determine search pattern and field:
+                if string.find(pi, ":") > 0:
+                    fi, pi = split(pi, ":", 1)
+                else:
+                    fi, pi = f, pi
+                # look also for old ALEPH field names:
+                if fi and cfg_fields_convert.has_key(string.lower(fi)):
+                    fi = cfg_fields_convert[string.lower(fi)]
+                # wash 'pi' argument:
+                if re_quotes.match(pi):
+                    # B3a - quotes are found => do ACC search (phrase search)
+                    if fi:
+                        if re_doublequote.match(pi):
+                            pi = string.replace(pi, '"', '') # get rid of quotes
+                            opfts.append([oi,pi,fi,'a'])
+                        else:
+                            pi = string.replace(pi, "'", '') # get rid of quotes
+                            opfts.append([oi,"%"+pi+"%",fi,'a'])
+                    else:
+                        # fi is not defined, look at where we are doing exact or subphrase search (single/double quotes):
+                        if pi[0]=='"' and pi[-1]=='"':                        
+                            opfts.append([oi,pi[1:-1],"anyfield",'a'])
+                            print_warning(req, "Searching for an exact match inside any field may be slow.  You may want to try to search for words instead, or choose a search within specific field.", "Warning")
+                        else:                        
+                            # nope, subphrase in global index is not possible => change back to WRD search
+                            for pii in get_words_from_phrase(pi):
+                                # since there may be '-' and other chars that we do not index in WRD
+                                opfts.append([oi,pii,fi,'w'])
+                            print_warning(req, "The sub-phrase search does not work in any field.  I'll do a 'logical AND' style of search instead.", "Warning")
+                            print_warning(req, "If you want to do a sub-phrase search in a specific field, e.g. inside title, then please choose 'within title' search option.", "Tip")
+                            print_warning(req, "If you want to do exact phrase matching, then please use double quotes.", "Tip")
+                elif fi and str(fi[0]).isdigit() and str(fi[0]).isdigit():
+                    # B3b - fi exists and starts by two digits => do ACC search
+                    opfts.append([oi,pi,fi,'a'])            
+                elif fi and not get_wordsindex_id(fi):
+                    # B3c - fi exists but there is no words table for fi => try ACC search
+                    opfts.append([oi,pi,fi,'a'])            
+                else:
+                    # B3d - general case => do WRD search                    
+                    for pii in get_words_from_phrase(pi): 
+                        opfts.append([oi,pii,fi,'w'])
+
+    ## sanity check:
+    for i in range(0,len(opfts)):
+        pi = opfts[i][1]
+        if pi == '*':
+            print_warning(req, "Ignoring standalone wildcard word.", "Warning")
+            del opfts[i]
+
+    ## return search units:
+    if dbg:
+        for opft in opfts:
+            print_warning(req, opft, "Debug (create_opft_search_units() - created search unit)")            
+    return opfts
+
+def create_header(cc=cdsname):
+    "Creates CDS header and info on URL and date."
+    return """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>%s - Search Results</title>
+  <link rev="made" href="mailto:%s">
+  <link rel="stylesheet" href="%s/img/cds.css">
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<body>
+<div class="pageheader">%s</div>
+""" % (cc, supportemail, weburl, cdspageheader)
+
+def create_search_box(cc, colls, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1, p2, f2, m2, op2, p3, f3, m3, sc):
+    "Create search box for 'search again in the results page' functionality."
+    out = ""
+    # print search box prolog:
+    out += """
+    <p>
+    <form action="%s/search.py" method="get">
+    <strong class="headline"><span class="h1">%s</span></strong>
+    <input type="hidden" name="cc" value="%s"> 
+    <input type="hidden" name="as" value="%s">
+    """ % (weburl, cc, cc, as)
+    if ot:
+        out += """<input type="hidden" name="ot" value="%s">""" % ot
+    if sp:
+        out += """<input type="hidden" name="sp" value="%s">""" % sp 
+
+    out += create_navtrail(cc, """<br><table border="0" cellspacing="0" cellpadding="0"><tr class="navtrail"><td width="60"></td><td><small><small>""","","&gt;","",
+                          "&gt; Search Results</small></small></td></tr></table><p>",0)
+
+
+    # possibly print external search engines links (Google box):
+    if cfg_google_box:
+        out += """<table align="right"><tr><td>%s</td></tr></table>""" % create_google_box(p, f, p1, p2, p3)
+    out += "<table>"
+    # firstly, print Query box:
+    if as==1:
+        # print Advanced Search form:
+        # define search box elements:
+        cell_1_left = "<small><strong>Search for:</strong></small><br>" + create_matchtype_box('m1', m1) + \
+                      """<input type="text" name="p1" size="%d" value="%s">""" % (cfg_advancedsearch_pattern_box_width, cgi.escape(p1,1))
+        cell_1_right = "<small><strong>within:</strong></small><br>%s" % create_searchwithin_selection_box('f1', f1)
+        cell_1_moreright = create_andornot_box('op1', op1)
+        cell_1_farright = ""
+        cell_2_left = create_matchtype_box('m2', m2) + """<input type="text" name="p2" size="%d" value="%s">""" % (cfg_advancedsearch_pattern_box_width, cgi.escape(p2,1))
+        cell_2_right = create_searchwithin_selection_box('f2', f2)
+        cell_2_moreright = create_andornot_box('op2', op2)
+        cell_2_farright = ""
+        cell_3_left = create_matchtype_box('m3', m3) + """<input type="text" name="p3" size="%d" value="%s">""" % (cfg_advancedsearch_pattern_box_width, cgi.escape(p3,1))
+        cell_3_right = create_searchwithin_selection_box('f3', f3)
+        cell_3_moreright = """<input type="submit" name="search" value="SEARCH"><input type="submit" name="search" value="Browse">&nbsp;"""
+        cell_3_farright = """<small class="light"><a href="%s/search.py?p=%s&amp;f=%s&amp;cc=%s">Simple&nbsp;Search</a></small>
+                             <br><small><a href="%s/docs/faq.shtml">Search&nbsp;Tips</a></small>""" % \
+                             (weburl, urllib.quote(p1), urllib.quote(f1), urllib.quote(cc), weburl)
+        # print them:
+        out += """
+        <tr>
+        <td valign="top" nowrap>
+         <table>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         </table>
+        </td>
+        </tr>""" % \
+         (cell_1_left, cell_1_right, cell_1_moreright, cell_1_farright, \
+          cell_2_left, cell_2_right, cell_2_moreright, cell_2_farright, \
+          cell_3_left, cell_3_right, cell_3_moreright, cell_3_farright)         
+    else:
+        # print Simple Search form:
+        cell_1_left = """<small><strong>Search for:</strong></small>
+                         <br><input type="text" name="p" size="%d" value="%s">""" % \
+        (cfg_simplesearch_pattern_box_width, cgi.escape(p, 1))
+        cell_1_middle = "<small><strong>within:</strong></small><br>%s" % create_searchwithin_selection_box('f', f)
+        cell_1_right = """<input type="submit" name="search" value="SEARCH"><input type="submit" name="search" value="Browse">&nbsp;"""
+        cell_1_farright = """<small class="light"><a href="%s/search.py?p1=%s&amp;f1=%s&amp;as=1&amp;cc=%s">Advanced&nbsp;Search</a></small>
+                             <br><small><a href="%s/docs/faq.shtml">Search&nbsp;Tips</a></small>""" %\
+                          (weburl, urllib.quote(p), urllib.quote(f), urllib.quote(cc), weburl)
+        out += """
+        <tr>
+        <td valign="top" nowrap>
+         <table>
+         <tr valign="bottom">
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+           <td>%s</td>
+         </tr>
+         </table>
+        </td>
+        </tr>
+        """ % (cell_1_left, cell_1_middle, cell_1_right, cell_1_farright)
+    # secondly, print Collection(s) box:
+    out += """
+    <tr>
+    <td valign="top">
+    <small><strong>Search collections:</strong></small><br>"""
+    colls_nicely_ordered = get_nicely_ordered_collection_list()    
+    if colls and colls[0] != cdsname:
+        # some collections are defined, so print these first, and only then print 'add another collection' heading:
+        for c in colls:
+            if c:
+                out += """<select name="c"><option value="">*** remove this collection ***"""
+                for (cx, cx_printable) in colls_nicely_ordered:
+                    # print collection:
+                    if not cx.startswith("Unnamed collection"):                    
+                        out+= """<option value="%s"%s>%s""" % (cx, is_selected(c, re.sub("^[\s\-]*","",cx)), cx_printable)
+                out += """</select>"""
+        out += """<select name="c"><option value="">*** add another collection ***"""
+    else: # we searched in CDSNAME, so print 'any collection' heading
+        out += """<select name="c"><option value="">*** any collection ***"""
+    for (cx, cx_printable) in colls_nicely_ordered:
+        if not cx.startswith("Unnamed collection"):
+            out += """<option value="%s">%s""" % (cx, cx_printable)
+    out += """
+    </select>
+    </td>
+    </tr>"""
+    # thirdly, print Display/Sort box:
+    cell_1_left = """<small><strong>Sort by:</strong></small><br>
+    <select name="sf">
+    <option value="">- latest first -"""
+    query = """SELECT DISTINCT(f.code),f.name FROM field AS f, collection_field_fieldvalue AS cff
+                WHERE cff.type='soo' AND cff.id_field=f.id
+                ORDER BY cff.score DESC, f.name ASC""" 
+    res = run_sql(query)
+    for code, name in res:
+        # propose found sort options:
+        cell_1_left += """<option value="%s"%s>%s""" % (code, is_selected(sf,code), name)
+    cell_1_left += """</select>"""
+    cell_1_left += """<select name="so">
+                      <option value="a"%s>asc.
+                      <option value="d"%s>desc.
+                      </select>""" % (is_selected(so,"a"),is_selected(so,"d"))
+    cell_1_right = """<small><strong>Output format:</strong></small><br>
+    <select name="of">"""
+    query = """SELECT code,name FROM format ORDER BY name ASC""" 
+    res = run_sql(query)
+    if res:
+        # propose found formats:
+        for code, name in res:
+            cell_1_right += """<option value="%s"%s>%s""" % (code, is_selected(of,code), name)
+    else:
+        # no formats are found, so propose the default HTML one:
+        cell_1_right += """<option value="hb"%s>HTML brief""" % (is_selected(of,"hb"))
+    # is format made of numbers only? if yes, then propose it too:
+    if of and str(of[0:3]).isdigit():
+        cell_1_right += """<option value="%s" selected>%s MARC tag""" % (of, of)
+    cell_1_right += """</select>"""
+    ## okay, formats ended
+    cell_1_middle = """<small><strong>Display results:</strong></small><br>
+    <select name="rg">
+    <option value="10"%s>10 results
+    <option value="25"%s>25 results
+    <option value="50"%s>50 results
+    <option value="100"%s>100 results
+    <option value="250"%s>250 results
+    <option value="500"%s>500 results
+    </select>
+    <select name="sc">
+    <option value="0"%s>grouped together 
+    <option value="1"%s>split by collection
+    </select>
+    """ % (is_selected(rg,"10"), is_selected(rg,"25"), is_selected(rg,"50"), \
+           is_selected(rg,"100"), is_selected(rg,"250"), is_selected(rg,"500"),\
+           is_selected(sc,"0"), is_selected(sc,"1"))
+    out += """
+    <tr>
+    <td valign="top">
+    <table><tr valign="top"><td>%s</td><td>%s</td><td>%s</td></tr></table>
+    </td>
+    </tr>""" % (cell_1_left, cell_1_middle, cell_1_right)
+    # print end of search box:
+    out += """</table></form>
+    """
+    return out
+
+def nice_number(num):
+    "Returns nice number when using comma as thousands separator."
+    chars_in = list(str(num))
+    num = len(chars_in)
+    chars_out = []
+    for i in range(0,num):
+        if i % 3 == 0 and i != 0:
+            chars_out.append(',')
+        chars_out.append(chars_in[num-i-1])
+    chars_out.reverse()
+    return ''.join(chars_out)
+
+def is_selected(var, fld):
+    "Checks if the two are equal, and if yes, returns ' selected'.  Useful for select boxes."
+    if str(var) == str(fld):
+        return " selected"
+    elif fld and len(fld)==3 and fld[0] == "w" and var == fld[1:]:
+        return " selected"
+    else:
+        return ""
+
+def create_navtrail(cc=cdsname,
+                    header="""<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr class="pageboxlefttop"><td><small>""", \
+                    prolog="", \
+                    separator="&gt;", \
+                    epilog="", \
+                    footer="&gt; Search Results</small></td></tr></table>",
+                    exclude_root=0):
+    "Creates navigation trail, i.e. links to ancestors of the 'cc' collection."
+    # firstly, display navtrail prologue:
+    navtrail = header        
+    # first, display list of ancestors:
+    for dad in get_coll_ancestors(cc):
+        navtrail += """%s <a class="navtrail" href="%s/goto.shtml?c=%s">%s</a> %s %s """ % \
+                    (prolog, weburl, urllib.quote(dad), dad, epilog, separator)
+    # then print cc:
+    if cc != cdsname or not exclude_root:
+        navtrail += """%s <a class="navtrail" href="%s/goto.shtml?c=%s">%s</a> %s""" % (prolog, weburl, urllib.quote(cc), cc, epilog)
+    # last, print navtrail epilogue:
+    navtrail += footer
+    return navtrail
+
+def create_searchwithin_selection_box(fieldname='f', value=''):
+    "Produces 'search within' selection box for the current collection."
+    out = ""
+    out += """<select name="%s">""" % fieldname
+    out += """<option value="">any field"""
+    query = "SELECT code,name FROM field ORDER BY name ASC"
+    res = run_sql(query)
+    for field_code, field_name in res:
+        if field_code and field_code != "anyfield":
+            out += """<option value="%s"%s>%s""" % (field_code, is_selected(field_code,value), field_name)
+    if value and str(value[0]).isdigit():
+        out += """<option value="%s" selected>%s MARC tag""" % (value, value)
+    out += """</select>""" 
+    return out
+
+def create_andornot_box(name='op', value=''):
+    "Returns HTML code for the AND/OR/NOT selection box."
+    out = """
+    <select name="%s">
+    <option value="a"%s>AND
+    <option value="o"%s>OR
+    <option value="n"%s>AND NOT
+    </select>
+    """ % (name, is_selected('a', value), is_selected('o', value), is_selected('n', value))
+    return out
+
+def create_matchtype_box(name='m', value=''):
+    "Returns HTML code for the 'match type' selection box."
+    out = """
+    <select name="%s">
+    <option value="a"%s>All of the words:
+    <option value="o"%s>Any of the words:
+    <option value="p"%s>Phrase/substring:
+    <option value="r"%s>Regular expression:
+    <option value="e"%s>Exact value:
+    </select>
+    """ % (name, is_selected('a', value), is_selected('o', value), is_selected('p', value), 
+                 is_selected('r', value), is_selected('e', value))
+    return out
+
+def create_google_box(p, f, p1, p2, p3,
+                      prolog="""<table border=0 cellpadding=0 cellspacing=0><tr><td width="30"></td><td class="pageboxrighttopadd"><small><strong>Try your search on:</strong><br> """,
+                      separator= """<br>""",
+                      epilog="""</small></td></tr></table>"""):
+    "Creates the box that proposes links to other useful search engines like Google.  'p' is the search pattern."
+    out = ""
+    if not p and (p1 or p2 or p3):
+        p = p1 + " " + p2 + " " + p3 
+    if cfg_google_box == 1:
+        out += prolog
+        if cfg_google_box_cern:
+            # CERN Intranet:
+            out += """<a href="http://search.cern.ch/query.html?qt=%s">CERN&nbsp;Intranet</a>""" % urllib.quote(p)
+            # SPIRES
+            if f == "author":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?AUTHOR=%s">SPIRES</a>""" % urllib.quote(p)
+            elif f == "title":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?TITLE=%s">SPIRES</a>""" % urllib.quote(p)
+            elif f == "reportnumber":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?REPORT-NUM=%s">SPIRES</a>""" % urllib.quote(p)
+            elif f == "keyword":
+                out += separator
+                out += """<a href="http://www.slac.stanford.edu/spires/find/hep/www?k=%s">SPIRES</a>""" % urllib.quote(p)
+            # KEK
+            if f == "author":
+                out += separator
+                out += """<a href="http://www-lib.kek.jp/cgi-bin/kiss_prepri?AU=%s">KEK</a>""" % urllib.quote(p)        
+            elif f == "title":
+                out += separator
+                out += """<a href="http://www-lib.kek.jp/cgi-bin/kiss_prepri?TI=%s">KEK</a>""" % urllib.quote(p)        
+            elif f == "reportnumber":
+                out += separator
+                out += """<a href="http://www-lib.kek.jp/cgi-bin/kiss_prepri?RP=%s">KEK</a>""" % urllib.quote(p)        
+            out += separator
+        # Google:
+        out += """<a href="http://google.com/search?q=%s">Google</a>""" % urllib.quote(p)
+        # AllTheWeb:
+        out += separator
+        out += """<a href="http://alltheweb.com/search?q=%s">AllTheWeb</a>""" % urllib.quote(p)
+        out += epilog
+    return out
+
+def create_footer(url):    
+    "Creates CDS page footer."
+    return """%s""" % re.sub("<!--URL-->", "URL: %s" % url, cdspagefooter)
+     
+class HitList:
+    """Class describing set of records, implemented as bit vectors of recIDs.
+    Using Numeric arrays for speed (1 value = 8 bits), can use later "real"
+    bit vectors to save space."""
+
+    def __init__(self, anArray=None):
+        self._nbhits = -1
+        if anArray:
+            self._set = anArray
+        else:
+            self._set = Numeric.zeros(cfg_max_recID+1, Numeric.Int0)
+
+    def __repr__(self, join=string.join):
+        return "%s(%s)" % (self.__class__.__name__, join(map(repr, self._set), ', '))
+
+    def add(self, recID):
+        "Adds a record to the set."
+        self._set[recID] = 1
+
+    def addmany(self, recIDs):
+        "Adds several recIDs to the set."
+        for recID in recIDs: self._set[recID] = 1
+
+    def addlist(self, arr):
+        "Adds an array of recIDs to the set."
+        Numeric.put(self._set, arr, 1)
+
+    def remove(self, recID):
+        "Removes a record from the set."
+        self._set[recID] = 0
+
+    def removemany(self, recIDs):
+        "Removes several records from the set."
+        for recID in recIDs:
+            self.remove(recID)
+
+    def intersect(self, other):
+        "Does a set intersection with other.  Keep result in self."
+        self._set = Numeric.bitwise_and(self._set, other._set)
+
+    def union(self, other):
+        "Does a set union with other. Keep result in self."
+        self._set = Numeric.bitwise_or(self._set, other._set)
+
+    def difference(self, other):
+        "Does a set difference with other. Keep result in self."
+        #self._set = Numeric.bitwise_not(self._set, other._set)
+        for recID in Numeric.nonzero(other._set):
+            self.remove(recID)
+
+    def contains(self, recID):
+        "Checks whether the set contains recID."
+        return self._set[recID]
+
+    __contains__ = contains     # Higher performance member-test for python 2.0 and above
+
+    def __getitem__(self, index):
+        "Support for the 'for item in set:' protocol."
+        return Numeric.nonzero(self._set)[index]
+        
+    def calculate_nbhits(self):
+        "Calculates the number of records set in the hitlist."
+        self._nbhits = Numeric.sum(self._set.copy().astype(Numeric.Int))
+
+    def items(self):
+        "Return an array containing all recID."
+        return Numeric.nonzero(self._set)
+
+# speed up HitList operations by ~20% if Psyco is installed:
+try:
+    import psyco
+    psyco.bind(HitList)
+except:
+    pass
+
+def escape_string(s):
+    "Escapes special chars in string.  For MySQL queries."
+    s = MySQLdb.escape_string(s)
+    return s
+
+def asciify_accented_letters(s):
+    "Translates ISO-8859-1 accented letters into their ASCII equivalents."
+    s = string.translate(s, table_latin1_to_ascii)
+    return s
+
+def wash_colls(cc, c, split_colls=0):
+
+    """Wash collection list by checking whether user has deselected
+    anything under 'Narrow search'.  Checks also if cc is a list or not.
+       Return list of cc, colls_to_display, colls_to_search since the list
+    of collections to display is different from that to search in.
+    This is because users might have chosen 'split by collection'
+    functionality.
+       The behaviour of "collections to display" depends solely whether
+
+    user has deselected a particular collection: e.g. if it started
+    from 'Articles and Preprints' page, and deselected 'Preprints',
+    then collection to display is 'Articles'.  If he did not deselect
+    anything, then collection to display is 'Articles & Preprints'.
+       The behaviour of "collections to search in" depends on the
+    'split_colls' parameter:
+         * if is equal to 0, then we can wash the colls list down
+           and search solely in the collection the user started from;
+         * if is equal to 1, then we are splitting to the first level
+           of collections, i.e. collections as they appear on the page
+           we started to search from;
+         * if it is equal to 9, then we are splitting right to the
+           bottom level.
+    """
+       
+    colls_out = []
+    colls_out_for_display = []
+
+    # check what type is 'cc':
+    if type(cc) is list:
+        for ci in cc:
+            if collrecs_cache.has_key(ci):
+                # yes this collection is real, so use it:
+                cc = ci
+                break
+    else:
+        # check once if cc is real:
+        if not collrecs_cache.has_key(cc):
+            cc = cdsname # cc is not real, so replace it with Home collection
+
+    # check type of 'c' argument:
+    if type(c) is list:
+        colls = c
+    else:
+        colls = [c]
+
+    # remove all 'unreal' collections:
+    colls_real = []
+    for coll in colls:
+        if collrecs_cache.has_key(coll):
+            colls_real.append(coll)
+    colls = colls_real
+
+    # check if some real collections remain:
+    if len(colls)==0:
+        colls = [cc]
+
+    # then let us check the number of sons of 'cc':
+    query = "SELECT COUNT(cc.id_son) FROM collection_collection AS cc, collection AS c " \
+            "WHERE c.name='%s' AND c.id=cc.id_dad" % cc
+    res = run_sql(query, None, 1)
+    if res and res[0][0] == len(colls):
+        colls_out_for_display = [cc] # yep, washing permitted, it is sufficient to display 'cc'
+    else:
+        colls_out_for_display = colls # nope, we need to display all 'colls' successively
+
+    # remove duplicates:
+    colls_out_for_display_nondups=filter(lambda x, colls_out_for_display=colls_out_for_display: colls_out_for_display[x-1] not in colls_out_for_display[x:], range(1, len(colls_out_for_display)+1))
+    colls_out_for_display = map(lambda x, colls_out_for_display=colls_out_for_display:colls_out_for_display[x-1], colls_out_for_display_nondups)
+        
+    # second, let us decide on collection splitting:
+    if split_colls == 0:
+        # type A - no sons are wanted
+        colls_out = colls_out_for_display
+#    elif split_colls == 1:
+    else:
+        # type B - sons (first-level descendants) are wanted
+        for coll in colls_out_for_display:
+            coll_sons = get_coll_sons(coll)
+            if coll_sons == []:
+                colls_out.append(coll)
+            else:
+                colls_out = colls_out + coll_sons
+# TODO: enable sc=9 back one day
+#    else:
+#        # type C - we are splitting right to the bottom level.
+#        # This decomposes compound collections like "A & B" into a list
+#        # of "A" and "B", provided that "A & B" has no associated
+#        # dbcollid collection indicators defined, and that both "A" and
+#        # "B" have defined some dbcollids.
+#        for coll in colls_out_for_display:
+#            coll_real_descendants = get_coll_real_descendants(coll)
+#           if coll_real_descendants:
+#                colls_out.extend(coll_real_descendants)
+#            else:
+#                colls_out.append(coll)
+
+    # remove duplicates:
+    colls_out_nondups=filter(lambda x, colls_out=colls_out: colls_out[x-1] not in colls_out[x:], range(1, len(colls_out)+1))
+    colls_out = map(lambda x, colls_out=colls_out:colls_out[x-1], colls_out_nondups)
+
+    # fill collrecs_cache for wanted collection, if not already filled:
+    for coll in colls_out:
+        if not collrecs_cache[coll]:
+            collrecs_cache[coll] = get_collection_hitlist(coll)
+
+    return (cc, colls_out_for_display, colls_out)
+ 
+def wash_pattern(p):
+    """Wash pattern passed by URL."""
+    # check whether p is a list:
+    if type(p) is list:
+        for pi in p:
+            if pi:
+                p = pi
+                break
+    # get rid of standalone wildcards:
+    p = re.sub("^\s*[\*\%]+(\s|$)", " ", p)
+    p = re.sub("\s[\*\%]+\s*$", " ", p)
+    p = re.sub("\s[\*\%]+\s", " ", p)
+    # get rid of unnecessary whitespace:
+    p = string.strip(p)
+    return p
+    
+def wash_field(f):
+    """Wash field passed by URL."""
+    # check whether f is a list:
+    if type(f) is list:
+        for fi in f:
+            if fi:
+                f = fi
+                break
+    # get rid of unnecessary whitespace:
+    f = string.strip(f)
+    # wash old-style CDSware/ALEPH 'f' field argument, e.g. replaces 'wau' and 'au' by 'author'
+    if cfg_fields_convert.has_key(string.lower(f)):
+        f = cfg_fields_convert[f]
+    return f
+    
+def get_coll_ancestors(coll):
+    "Returns a list of ancestors for collection 'coll'."
+    coll_ancestors = [] 
+    coll_ancestor = coll
+    while 1:
+        query = "SELECT c.name FROM collection AS c "\
+                "LEFT JOIN collection_collection AS cc ON c.id=cc.id_dad "\
+                "LEFT JOIN collection AS ccc ON ccc.id=cc.id_son "\
+                "WHERE ccc.name='%s' ORDER BY cc.id_dad ASC LIMIT 1" \
+                % escape_string(coll_ancestor)
+        res = run_sql(query, None, 1)        
+        if res:
+            coll_name = res[0][0]
+            coll_ancestors.append(coll_name)
+            coll_ancestor = coll_name
+        else:
+            break
+    # ancestors found, return reversed list:
+    coll_ancestors.reverse()
+    return coll_ancestors
+
+def get_coll_sons(coll):
+    "Returns a list of sons (first-level descendants) for collection 'coll'."
+    coll_sons = [] 
+    query = "SELECT c.name FROM collection AS c "\
+            "LEFT JOIN collection_collection AS cc ON c.id=cc.id_son "\
+            "LEFT JOIN collection AS ccc ON ccc.id=cc.id_dad "\
+            "WHERE ccc.name='%s' ORDER BY cc.score DESC" \
+            % escape_string(coll)
+    res = run_sql(query)
+    for name in res:
+        coll_sons.append(name[0])
+    return coll_sons
+
+def get_coll_real_descendants(coll):
+    """Return a list of all descendants of collection 'coll' that are defined by a 'dbquery'.
+       IOW, we need to decompose compound collections like "A & B" into "A" and "B" provided
+       that "A & B" has no associated database query defined.
+    """
+    coll_sons = [] 
+    query = "SELECT c.name,c.dbquery FROM collection AS c "\
+            "LEFT JOIN collection_collection AS cc ON c.id=cc.id_son "\
+            "LEFT JOIN collection AS ccc ON ccc.id=cc.id_dad "\
+            "WHERE ccc.name='%s' ORDER BY cc.score DESC" \
+            % escape_string(coll)
+    res = run_sql(query)
+    for name, dbquery in res:
+        if dbquery: # this is 'real' collection, so return it:
+            coll_sons.append(name)
+        else: # this is 'composed' collection, so recurse:
+            coll_sons.extend(get_coll_real_descendants(name))
+    return coll_sons
+
+def get_collection_hitlist(coll):
+    """Return bit vector of records that belong to the collection 'coll'."""
+    set = HitList()
+    query = "SELECT nbrecs,reclist FROM collection WHERE name='%s'" % coll
+    # launch the query:
+    res = run_sql(query, None, 1)
+    # fill the result set:
+    if res:
+        try:
+            set._nbhits, set._set = res[0][0], Numeric.loads(zlib.decompress(res[0][1]))
+        except:
+            set._nbhits = 0
+    # okay, return result set:
+    return set
+
+def create_collrecs_cache():
+    """Creates list of records belonging to collections.  Called on startup
+    and used later for intersecting search results with collection universe."""
+    collrecs = {}
+    query = "SELECT name FROM collection"
+    res = run_sql(query)
+    for name in res:
+        collrecs[name[0]] = None # this will be filled later during runtime by calling get_collection_hitlist(coll)        
+    return collrecs
+
+try:
+    collrecs_cache.has_key(cdsname)
+except:
+    collrecs_cache = create_collrecs_cache()
+    collrecs_cache[cdsname] = get_collection_hitlist(cdsname)
+
+def search_pattern(req, p=None, f=None, colls=None, m=None, hit_hints=0):
+    """Searches for pattern 'p' and field 'f' and returns dict of recIDs HitLists per each collection in 'colls'.
+    - Optionally, the function accepts the match type argument 'm'.
+      If it is set (e.g. from advanced search interface), then it
+      performs this kind of matching.  If it is not set, then a guess
+      is made.      
+    - Calls search_in_bibwords() and/or search_in_bibxxx() functions.
+    - If hit_hints is set, than print lots of hints on current search.  Useful for debugging and/or when search gives zero hits.
+    - Called by main()."""    
+
+    ## create result set:
+    results = HitList()
+    results_used = 0 # not-yet-used flag, to be able to circumvent set operations
+
+    ## if p is not defined, return all hits in given collections:
+    if not p:
+        results_out = {}
+        for coll in colls:
+            results_out[coll] = HitList()
+            results_out[coll]._set = collrecs_cache[coll]._set
+            results_out[coll]._nbhits = collrecs_cache[coll]._nbhits
+        return results_out
+
+    ## now we are sure to have some p: good.
+
+    ## create search units:
+    opft_items = create_opft_search_units(req, p, f, m)
+    #req.write("<p>%s" % opft_items)
+    
+    hit_hints_displayed = 0 # did we already displayed some search hint?
+    
+    ## search regardless of collection:
+    for opft_item in opft_items:
+        results_for_opft_item = {}
+        oi, pi, fi, ti = opft_item[0], opft_item[1], opft_item[2], opft_item[3]
+        # firstly, launch search for this pattern item:
+        if ti == 'a' or ti == 'r': # we are doing either direct bibxxx search or phrase search or regexp search
+            results_for_opft_item = search_in_bibxxx(req, pi, fi, ti)
+        elif ti == 'w': # we are doing bibwords search
+            results_for_opft_item = search_in_bibwords(req, pi, fi)
+        else: 
+            print_warning(req, "The search type '%s' is not defined." % ti, "Error")
+            return(1)
+        if 0: # TODO: test LZO and ZLIB:
+            str = Numeric.dumps(results_for_opft_item._set)
+            t1 = os.times()[4]
+            junk1 = zlib.compress(str)
+            t2 = os.times()[4]
+            junk2 = lzo.compress(str)
+            t3 = os.times()[4]
+            print_warning(req, "Compressing %s/%s took %.2f sec and %d chars via ZLIB and %.2f sec and %d chars via LZO." %
+                          (pi, fi, t2-t1, len(junk1), t3-t2, len(junk2)))
+            t1 = os.times()[4]
+            junk3 = zlib.decompress(junk1)
+            t2 = os.times()[4]
+            junk4 = lzo.decompress(junk2)
+            t3 = os.times()[4]
+            print_warning(req, "Decompressing back took %.2f sec via ZLIB and %.2f sec via LZO." %
+                          (t2-t1, t3-t2))
+        if hit_hints:
+            results_for_opft_item.calculate_nbhits()
+            if results_for_opft_item._nbhits == 0:                
+                hit_hints_displayed = 1
+                text = "Search term <strong>%s</strong>" % pi
+                if fi:
+                    text += " inside <em>%s</em> " % fi
+                print_warning(req, "%s did not match any record.  Nearest terms are: %s" %
+                              (text, create_nearest_words_links(req.args, pi, fi)), "")                
+                
+            if dbg:
+                print_warning(req, "Item <strong>%s:%s</strong> gave %d hits." %
+                              (fi, pi, results_for_opft_item._nbhits), "")                
+        # secondly, apply the set intersect/union/disjunction functions:
+        if dbg:
+            t1 = os.times()[4]
+        if results_used:
+            if oi == '+':
+                results.intersect(results_for_opft_item)
+            elif oi == '-':
+                results.difference(results_for_opft_item)
+            elif oi == '|':
+                results.union(results_for_opft_item)
+            else:
+                print_warning(req, "Invalid set operation %s." % oi, "Error")
+        else:
+            results = results_for_opft_item
+            results_used = 1
+        if dbg:
+            t2 = os.times()[4]
+            print_warning(req, "Set operation '%s' took %.2f seconds." % (oi, (t2 - t1)), "Profile")
+
+    ## return all hits if no collection list specified (useful for WebSearch Admin to determine collection
+    ## recID universe):
+    if colls == None:        
+        results.calculate_nbhits()
+        return results
+
+    ## intersect with collection universe:
+    if dbg:
+        t1 = os.times()[4]
+    results_out = {}
+    if colls:
+        for coll in colls:
+            results_out[coll] = HitList()
+            results_out[coll]._set = Numeric.bitwise_and(results._set, collrecs_cache[coll]._set)
+        if dbg:
+            t2 = os.times()[4]
+            print_warning(req, "Intersecting with collection hitlist universe took %.2f seconds." % ((t2 - t1)), "Profile")
+
+    ## count number of hits:
+    for coll in colls:
+        results_out[coll].calculate_nbhits()
+        
+    if hit_hints and not hit_hints_displayed:
+        if results._nbhits == 0: # pattern not found in any public/private collection:
+            text = """All search terms matched but boolean query returned no hits.  Please combine your search terms differently."""
+            url_args = req.args
+            for opft_item in opft_items:
+                oi, pi, fi, ti = opft_item[0], opft_item[1], opft_item[2], opft_item[3]
+                url_args_new = re.sub(r'(^|\&)p=.*?(\&|$)', r'\1p='+urllib.quote(pi)+r'\2', url_args)
+                url_args_new = re.sub(r'(^|\&)f=.*?(\&|$)', r'\1f='+urllib.quote(fi)+r'\2', url_args_new)
+                text += """<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="%s/search.py?%s">%s</a> - about %s hits""" % \
+                        (weburl, url_args_new, pi, get_word_nbhits(pi, fi))
+            print_warning(req, text, "") 
+        else: # pattern found but perhaps not in the collections chosen by the user:
+            num = 0
+            for coll in colls:
+                num += results_out[coll]._nbhits
+            if num == 0:
+                # try to search in Home:
+                results_Home = HitList()
+                results_Home._set = Numeric.bitwise_and(results._set, collrecs_cache[cdsname]._set)
+                results_Home.calculate_nbhits()
+                if results_Home._nbhits > 0:
+                    # some hits found in Home, so propose this search:
+                    url_args = req.args
+                    url_args = re.sub(r'(^|\&)cc=.*?(\&|$)', r'\2', url_args)
+                    url_args = re.sub(r'(^|\&)c=.*?(\&[^c]+=|$)', r'\2', url_args)
+                    url_args = re.sub(r'^\&+', '', url_args)
+                    url_args = re.sub(r'\&+$', '', url_args)
+                    print_warning(req, """Matches found in other public collections: 
+                                  <a href="%s/search.py?%s">%d hits</a>.""" %
+                                  (weburl, url_args, results_Home._nbhits), "")
+                else:
+                    # no hits found in Home, recommend different search terms:
+                    text = """All search terms matched but boolean query returned no hits.  Please combine your search terms differently."""
+                    url_args = req.args
+                    for opft_item in opft_items:
+                        oi, pi, fi, ti = opft_item[0], opft_item[1], opft_item[2], opft_item[3]
+                        url_args_new = re.sub(r'(^|\&)p=.*?(\&|$)', r'\1p='+urllib.quote(pi)+r'\2', url_args)
+                        url_args_new = re.sub(r'(^|\&)f=.*?(\&|$)', r'\1f='+urllib.quote(fi)+r'\2', url_args_new)
+                        text += """<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="%s/search.py?%s">%s</a> - about %s hits""" % \
+                                (weburl, url_args_new, pi, get_word_nbhits(pi, fi))
+                    print_warning(req, text, "")
+
+    return results_out
+
+def search_in_bibwords(req, word, f, decompress=zlib.decompress):
+    """Searches for 'word' inside bibwordsX table for field 'f' and returns hitlist of recIDs."""
+    set = HitList() # will hold output result set
+    set_used = 0 # not-yet-used flag, to be able to circumvent set operations
+    # deduce into which bibwordsX table we will search:
+    bibwordsX = "bibwords%d" % get_wordsindex_id("anyfield")
+    if f:
+        wordsindex_id = get_wordsindex_id(f)
+        if wordsindex_id:
+            bibwordsX = "bibwords%d" % wordsindex_id
+        else:
+            print_warning(req, "Sorry, the word table for '%s' does not seem to exist.  Choosing the global word file instead." % f, "Error")
+    # wash 'word' argument and construct query:
+    word = string.replace(word, '*', '%') # we now use '*' as the truncation character
+    words = string.split(word, "->", 1) # check for span query
+    if len(words) == 2:
+        word0 = re_word.sub('', words[0])
+        word1 = re_word.sub('', words[1])
+        query = "SELECT word,hitlist FROM %s WHERE word BETWEEN '%s' AND '%s'" % (bibwordsX, escape_string(word0[:50]), escape_string(word1[:50]))
+    else:
+        word = re_word.sub('', word)
+        if string.find(word, '%') >= 0: # do we have wildcard in the word?
+            query = "SELECT word,hitlist FROM %s WHERE word LIKE '%s'" % (bibwordsX, escape_string(word[:50]))
+        else:
+            query = "SELECT word,hitlist FROM %s WHERE word='%s'" % (bibwordsX, escape_string(word[:50]))
+    if dbg:
+        print_warning(req, query, "Debug")
+    # launch the query:
+    res = run_sql(query)
+    # fill the result set:
+    for word,hitlist in res:
+        if dbg: 
+	   t1 = os.times()[4]
+        hitlist_bibwrd = HitList(Numeric.loads(decompress(hitlist)))
+        if dbg: 
+	   t2 = os.times()[4]
+	   print_warning(req, "Demarshaling '%s' hitlist took %.2f seconds." % (word, (t2 - t1)), "Profile")
+        # add the results:
+        if dbg: 
+	   t1 = os.times()[4]
+        if set_used:
+            set.union(hitlist_bibwrd)
+        else:            
+            set = hitlist_bibwrd
+            set_used = 1
+        if dbg: 
+	   t2 = os.times()[4]
+	   print_warning(req, "Adding '%s' hitlist took %.2f seconds." % (word, (t2 - t1)), "Profile")
+    # okay, return result set:
+    return set
+
+def search_in_bibxxx(req, p, f, type):
+    """Searches for pattern 'p' inside bibxxx tables for field 'f' and returns hitlist of recIDs found.
+    The search type is defined by 'type' (e.g. equals to 'r' for a regexp search)."""
+    p_orig = p # saving for eventual future 'no match' reporting
+    # wash arguments:
+    f = string.replace(f, '*', '%') # replace truncation char '*' in field definition
+    if type == 'r':
+        pattern = "REGEXP '%s'" % MySQLdb.escape_string(p)
+    else:
+        p = string.replace(p, '*', '%') # we now use '*' as the truncation character
+        ps = string.split(p, "->", 1) # check for span query:
+        if len(ps) == 2:
+            pattern = "BETWEEN '%s' AND '%s'" % (MySQLdb.escape_string(ps[0]), MySQLdb.escape_string(ps[1]))
+        else:
+            pattern = "LIKE '%s'" % MySQLdb.escape_string(ps[0])            
+    # construct 'tl' which defines the tag list (MARC tags) to search in:
+    tl = []
+    if str(f[0]).isdigit() and str(f[1]).isdigit():
+        tl.append(f) # 'f' seems to be okay as it starts by two digits
+    else:
+        # convert old ALEPH tag names, if appropriate: (TODO: get rid of this before entering this function)
+        if cfg_fields_convert.has_key(string.lower(f)): 
+            f = cfg_fields_convert[string.lower(f)]
+        # deduce desired MARC tags on the basis of chosen 'f'
+        tl = get_field_tags(f)
+        if not tl:
+            # by default we are searching in author index:
+            tl = get_field_tags("author")
+            print_warning(req, "The phrase or access file search does not work in this field.  Choosing author index instead.", "Warning")
+    # okay, start search:
+    l = [] # will hold list of recID that matched
+    for t in tl:
+        # deduce into which bibxxx table we will search:
+        digit1, digit2 = int(t[0]), int(t[1])
+        bx = "bib%d%dx" % (digit1, digit2)
+        bibx = "bibrec_bib%d%dx" % (digit1, digit2)
+        # construct query:
+        if len(t) != 6 or t[-1:]=='%': # only the beginning of field 't' is defined, so add wildcard character:
+            query = "SELECT bibx.id_bibrec FROM %s AS bx LEFT JOIN %s AS bibx ON bx.id=bibx.id_bibxxx WHERE bx.value %s AND bx.tag LIKE '%s%%'" %\
+                    (bx, bibx, pattern, t)
+        else:
+            query = "SELECT bibx.id_bibrec FROM %s AS bx LEFT JOIN %s AS bibx ON bx.id=bibx.id_bibxxx WHERE bx.value %s AND bx.tag='%s'" %\
+                    (bx, bibx, pattern, t)
+        if dbg:
+            print_warning(req, query, "Debug")
+        # launch the query:
+        res = run_sql(query)
+        # fill the result set:
+        for id_bibrec in res:
+            if id_bibrec[0]:
+                l.append(id_bibrec[0])
+    # check no of hits found:
+    nb_hits = len(l)
+    if dbg:
+        print_warning(req, "The pattern '%s' in field '%s' has got '%d' hits." % (p, f, nb_hits), "Info")
+    # check whether it is sound to do a new search:
+    if nb_hits == 0 and not (p.startswith("%") and p.endswith("%")):
+        # try to launch substring search:
+        p_new = "%" + p + "%"
+        print_warning(req, "Your original search for <strong>%s</strong> within <strong>%s</strong> field did not return any result.  Looking for subphrase/substring match..." % \
+                      (p_orig, f), "Info")
+        return search_in_bibxxx(req, p_new, f, type)
+    else:
+        # okay, return result set:
+        set = HitList()
+        set.addlist(Numeric.array(l))
+        return set
+
+def create_nearest_words_links(url, p, f, n=10, prologue="<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", epilogue=""):
+    """Return list of 'n' nearest words to 'p' in the words index list for the field 'f'."""
+    out = ""
+    # deduce into which bibwordsX table we will search:
+    bibwordsX = "bibwords%d" % get_wordsindex_id("anyfield")
+    if f:
+        wordsindex_id = get_wordsindex_id(f)
+        if wordsindex_id:
+            bibwordsX = "bibwords%d" % wordsindex_id
+        else:
+            return "%sNo words index available for %s.%s" % (prologue, f, epilogue)
+    # try to get nearest n words:
+    query = "SELECT word FROM %s WHERE word LIKE '%s%%' LIMIT %d" % (bibwordsX, escape_string(p), n)
+    res = run_sql(query)
+    for row in res:
+        p_new = row[0]
+        p_new_quoted = urllib.quote(p_new,'')
+        url_new = url
+        if p:
+            p_quoted = urllib.quote(p,'')
+            url_new = string.replace(url, p_quoted, p_new_quoted)
+        else:
+            url_new = url + "&p=%s" % p_new_quoted
+        out += """%s<a href="%s/search.py?%s">%s</a> - about %s hits%s""" % \
+               (prologue, weburl, url_new, p_new, get_word_nbhits(p_new, f), epilogue)
+    if out:
+        return out
+    else:
+        # try search pattern of lesser length:
+        if p:
+            p_quoted = urllib.quote(p,'')
+            p_new_quoted = urllib.quote(p[:-1],'')
+            return create_nearest_words_links(string.replace(url, p_quoted, p_new_quoted), p[:-1], f, n)
+        else:
+            return "%sNo words index available for this query.%s" % (prologue, epilogue)
+
+def get_word_nbhits(word, f):
+    """Return number of hits for word 'word' inside words index for field 'f'."""
+    out = 0
+    # deduce into which bibwordsX table we will search:
+    bibwordsX = "bibwords%d" % get_wordsindex_id("anyfield")
+    if f:
+        wordsindex_id = get_wordsindex_id(f)
+        if wordsindex_id:
+            bibwordsX = "bibwords%d" % wordsindex_id
+        else:
+            return 0
+    # try to get nearest n words:
+    if word:
+        query = "SELECT hitlist FROM %s WHERE word LIKE '%s'" % (bibwordsX, escape_string(word))
+        res = run_sql(query)
+        for hitlist in res:
+            out += Numeric.sum(Numeric.loads(zlib.decompress(hitlist[0])).copy().astype(Numeric.Int))
+    return nice_number(out)
+
+def get_mysql_recid_from_aleph_sysno(sysno):
+    """Returns MySQL's recID for ALEPH sysno passed in the argument (e.g. "2209836CERCER").
+       Returns None in case of failure."""
+    out = None
+    query = "SELECT bb.id_bibrec FROM bibrec_bib90x AS bb, bib90x AS b WHERE b.value='%s' AND b.tag='909C0o' AND bb.id_bibxxx=b.id" %\
+            (escape_string(sysno))
+    res = run_sql(query, None, 1)
+    if res:        
+        out = res[0][0]
+    return out
+
+def get_field_tags(field):
+    """Returns a list of MARC tags for the field code 'field'.
+       Returns empty list in case of error.
+       Example: field='author', output=['100__%','700__%']."""
+    out = []
+    query = """SELECT t.value FROM tag AS t, field_tag AS ft, field AS f
+                WHERE f.code='%s' AND ft.id_field=f.id AND t.id=ft.id_tag
+                ORDER BY ft.score DESC""" % field
+    res = run_sql(query)
+    for val in res:
+        out.append(val[0])
+    return out
+
+def get_fieldvalues(recID, tag):
+    """Return list of field values for field 'tag' inside record 'recID'."""
+    out = []
+    digit = tag[0:2]
+    bx = "bib%sx" % digit
+    bibx = "bibrec_bib%sx" % digit
+    query = "SELECT bx.value FROM %s AS bx, %s AS bibx WHERE bibx.id_bibrec='%s' AND bx.id=bibx.id_bibxxx AND bx.tag LIKE '%s'" \
+            % (bx, bibx, recID, tag)
+    res = run_sql(query)
+    for row in res:
+        out.append(row[0])
+    return out
+
+def get_fieldvalues_alephseq_like(recID, tags):
+    """Return textual lines in ALEPH sequential like format for field 'tag' inside record 'recID'."""
+    out = ""    
+    # clean passed 'tag':
+    tags_in = string.split(tags, ",")
+    if len(tags_in) == 1 and len(tags_in[0]) == 6:
+        ## case A: one concrete subfield asked, so print its value if found
+        ##         (use with care: can false you if field has multiple occurrences)
+        out += string.join(get_fieldvalues(recID, tags_in[0]),"\n")
+    else:
+        ## case B: print our "text MARC" format; works safely all the time        
+        tags_out = []
+        for tag in tags_in:
+            if len(tag) == 0:
+                for i in range(0,10):
+                    for j in range(0,10):
+                        tags_out.append("%d%d%%" % (i, j))
+            elif len(tag) == 1:
+                for j in range(0,10):
+                    tags_out.append("%s%d%%" % (tag, j))        
+            elif len(tag) < 5:
+                tags_out.append("%s%%" % tag)
+            elif tag >= 6:
+                tags_out.append(tag[0:5])
+        # search all bibXXx tables as needed:
+        for tag in tags_out:
+            digits = tag[0:2]
+            if tag.startswith("001") or tag.startswith("00%"):
+                if out:
+                    out += "\n"
+                out += "%09d %s %d" % (recID, "001__", recID)
+            bx = "bib%sx" % digits
+            bibx = "bibrec_bib%sx" % digits
+            query = "SELECT b.tag,b.value,bb.field_number FROM %s AS b, %s AS bb "\
+                    "WHERE bb.id_bibrec='%s' AND b.id=bb.id_bibxxx AND b.tag LIKE '%s%%' "\
+                    "ORDER BY bb.field_number, b.tag ASC" % (bx, bibx, recID, tag)
+            res = run_sql(query)
+            # go through fields:
+            field_number_old = -999
+            field_old = ""
+            for row in res:
+                field, value, field_number = row[0], row[1], row[2]
+                ind1, ind2 = field[3], field[4]
+                if ind1 == "_":
+                    ind1 = ""
+                if ind2 == "_":
+                    ind2 = ""                        
+                # print field tag
+                if field_number != field_number_old or field[:-1] != field_old[:-1]:
+                    if out:
+                        out += "\n"
+                    out += "%09d %s " % (recID, field[:5])
+                    field_number_old = field_number
+                    field_old = field
+                # print subfield value
+                out += "$$%s%s" % (field[-1:], value)
+    return out
+
+def record_exists(recID):
+    "Returns 1 if record 'recID' exists.  Returns 0 otherwise."
+    out = 0
+    query = "SELECT id FROM bibrec WHERE id='%s'" % recID
+    res = run_sql(query, None, 1)
+    if res:        
+        out = 1
+    return out    
+
+def get_creation_date(recID):
+    "Returns the creation date of the record 'recID'."
+    out = ""
+    query = "SELECT DATE_FORMAT(creation_date,'%%Y-%%m-%%d') FROM bibrec WHERE id='%s'" % (recID)
+    res = run_sql(query, None, 1)
+    if res:        
+        out = res[0][0]
+    return out
+
+def get_modification_date(recID):
+    "Returns the date of last modification for the record 'recID'."
+    out = ""
+    query = "SELECT DATE_FORMAT(modification_date,'%%Y-%%m-%%d') FROM bibrec WHERE id='%s'" % (recID)
+    res = run_sql(query, None, 1)
+    if res:        
+        out = res[0][0]
+    return out
+
+def print_warning(req, msg, type='Tip', prologue='', epilogue='<br>'):
+    "Prints warning message and flushes output."
+    if req:
+        req.write('%s<span class="quicknote">' % (prologue))
+        if type:
+            req.write('<strong>%s:</strong> ' % type)
+        req.write('%s</span>%s' % (msg, epilogue))
+
+def print_search_info(p, f, sf, so, sp, of, ot, collection=cdsname, nb_found=-1, jrec=1, rg=10,
+                      as=0, p1="", p2="", p3="", f1="", f2="", f3="", m1="", m2="", m3="", op1="", op2="",
+                      cpu_time=-1, middle_only=0):
+    """Prints stripe with the information on 'collection' and 'nb_found' results and CPU time.
+       Also, prints navigation links (beg/next/prev/end) inside the results set.
+       If middle_only is set to 1, it will only print the middle box information (beg/netx/prev/end/etc) links.
+       This is suitable for displaying navigation links at the bottom of the search results page."""
+
+    out = ""
+    # left table cells: print collection name
+    if not middle_only:
+        out += "\n<a name=\"%s\"></a>" \
+              "\n<form action=\"%s/search.py\" method=\"get\">"\
+              "\n<table width=\"100%%\" cellpadding=2 cellspacing=0 border=0><tr class=\"results\"><td align=\"left\">" \
+              "<strong><big><img align=\"left\" src=\"%s/img/okay.gif\" width=20 height=20 alt=\"*\">"\
+              "<a href=\"%s/goto.shtml?c=%s\">%s</a></big></strong></td>\n" % \
+              (collection, weburl, weburl, weburl, urllib.quote(collection), collection)
+    else:
+        out += """\n<form action="%s/search.py" method="get"><div align="center">\n""" % weburl
+
+    # sanity check:
+    if jrec < 1:
+        jrec = 1
+    if jrec > nb_found:
+        jrec = max(nb_found-rg+1, 1)        
+
+    # middle table cell: print beg/next/prev/end arrows:
+    if not middle_only:
+        out += "<td align=\"center\">\n"
+        out += "<strong>%s</strong> records found: &nbsp; \n" % nice_number(nb_found)
+    else:
+        out += "<small>"
+        if nb_found > rg:
+            out += "%s: <strong>%s</strong> records found: &nbsp; " % (collection, nice_number(nb_found))
+
+    if nb_found > rg: # navig.arrows are not needed for small number of hits
+        url = '%s/search.py?p=%s&amp;c=%s&amp;f=%s&amp;sf=%s&amp;so=%s&amp;sp=%s&amp;of=%s&amp;ot=%s' % (weburl, urllib.quote(p), urllib.quote(collection), f, sf, so, sp, of, ot)
+        url += '&amp;as=%s&amp;p1=%s&amp;p2=%s&amp;p3=%s&amp;f1=%s&amp;f2=%s&amp;f3=%s&amp;m1=%s&amp;m2=%s&amp;m3=%s&amp;op1=%s&amp;op2=%s' \
+               % (as, urllib.quote(p1), urllib.quote(p2), urllib.quote(p3), f1, f2, f3, m1, m2, m3, op1, op2)
+        if jrec-rg > 1:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=1&amp;rg=%d\"><img src=\"%s/img/sb.gif\" alt=\"begin\" border=0></a>" % (url, rg, weburl)
+        if jrec > 1:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=%d&amp;rg=%d\"><img src=\"%s/img/sp.gif\" alt=\"previous\" border=0></a>" % (url, max(jrec-rg,1), rg, weburl)
+        if nb_found > rg:
+            out += "%d - %d" % (jrec, jrec+rg-1)
+        else:
+            out += "%d - %d" % (jrec, nb_found)
+        if nb_found >= jrec+rg:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=%d&amp;rg=%d\"><img src=\"%s/img/sn.gif\" alt=\"next\" border=0></a>" % \
+                  (url, jrec+rg, rg, weburl)
+        if nb_found >= jrec+rg+rg:
+            out += "<a class=\"img\" href=\"%s&amp;jrec=%d&amp;rg=%d\"><img src=\"%s/img/se.gif\" alt=\"end\" border=0></a>" % \
+                  (url, nb_found-rg+1, rg, weburl)
+        out += "<input type=\"hidden\" name=\"p\" value=\"%s\">" % p
+        out += "<input type=\"hidden\" name=\"c\" value=\"%s\">" % collection
+        out += "<input type=\"hidden\" name=\"f\" value=\"%s\">" % f 
+        out += "<input type=\"hidden\" name=\"sf\" value=\"%s\">" % sf
+        out += "<input type=\"hidden\" name=\"so\" value=\"%s\">" % so
+        out += "<input type=\"hidden\" name=\"of\" value=\"%s\">" % of
+        if ot:
+            out += """<input type="hidden" name="ot" value="%s">""" % ot
+        if sp:
+            out += """<input type="hidden" name="sp" value="%s">""" % sp 
+        out += "<input type=\"hidden\" name=\"rg\" value=\"%d\">" % rg
+        out += "<input type=\"hidden\" name=\"as\" value=\"%d\">" % as
+        out += "<input type=\"hidden\" name=\"p1\" value=\"%s\">" % p1
+        out += "<input type=\"hidden\" name=\"p2\" value=\"%s\">" % p2
+        out += "<input type=\"hidden\" name=\"p3\" value=\"%s\">" % p3
+        out += "<input type=\"hidden\" name=\"f1\" value=\"%s\">" % f1
+        out += "<input type=\"hidden\" name=\"f2\" value=\"%s\">" % f2
+        out += "<input type=\"hidden\" name=\"f3\" value=\"%s\">" % f3
+        out += "<input type=\"hidden\" name=\"m1\" value=\"%s\">" % m1
+        out += "<input type=\"hidden\" name=\"m2\" value=\"%s\">" % m2
+        out += "<input type=\"hidden\" name=\"m3\" value=\"%s\">" % m3
+        out += "<input type=\"hidden\" name=\"op1\" value=\"%s\">" % op1
+        out += "<input type=\"hidden\" name=\"op2\" value=\"%s\">" % op2
+        out += "&nbsp; or jump to record: <input type=\"text\" name=\"jrec\" size=\"4\" value=\"%d\">" % jrec
+    if not middle_only:
+        out += "</td>"
+    else:
+        out += "</small>"
+        
+    # right table cell: cpu time info
+    if not middle_only:
+        if cpu_time > -1:
+            out +="<td align=\"right\"><small>Search took %.2f sec.</small>&nbsp;</td>" % cpu_time
+        out += "</tr></table>"
+    else:
+        out += "</div>"
+    out += "</form>"
+    return out
+
+def print_results_overview(colls, results_final_nb_total, results_final_nb, cpu_time):
+    "Prints results overview box with links to particular collections below."
+    out = ""
+    if len(colls) == 1:
+        # if one collection only, print nothing:
+        return out
+    # first find total number of hits:
+    out += "<p><table width=\"100%%\" border=0 cellspacing=0 cellpadding=2>" \
+           "<tr><td class=\"results\"><strong>Results overview:</strong> Found <strong>%s</strong> records in %.2f seconds.</td></tr>" % \
+           (nice_number(results_final_nb_total), cpu_time)
+    # then print hits per collection:
+    out += "<tr><td class=\"resultsbis\">"
+    for coll in colls:
+        if results_final_nb[coll] > 0:
+            out += "In <strong><a href=\"#%s\">%s</a></strong>, " \
+                  "<a href=\"#%s\">%s records found</a><br>" \
+                  % (urllib.quote(coll), coll, urllib.quote(coll), nice_number(results_final_nb[coll]))
+    out += "</td></tr></table>\n"
+    return out
+
+def sort_records(req, recIDs, sort_field='', sort_order='d', sort_pattern=''):
+    """Sort records in 'recIDs' list according sort field 'sort_field' in order 'sort_order'.
+       If more than one instance of 'sort_field' is found for a given record, try to choose that that is given by
+       'sort pattern', for example "sort by report number that starts by CERN-PS".
+       Note that 'sort_field' can be field code like 'author' or MARC tag like '100__a' directly."""
+
+    ## check arguments:
+    if not sort_field:
+        return recIDs
+    if len(recIDs) > cfg_nb_records_to_sort:
+        print_warning(req, "Sorry, sorting is allowed on sets of up to %d records only.  Using default sort order (\"latest first\")." % cfg_nb_records_to_sort,"Warning")
+        return recIDs
+
+    recIDs_dict = {}
+    recIDs_out = []
+
+    ## first deduce sorting MARC tag out of the 'sort_field' argument:
+    tags = []
+    if sort_field and str(sort_field[0:2]).isdigit():
+        # sort_field starts by two digits, so this is probably a MARC tag already
+        tags.append(sort_field)
+    else:
+        # let us check the 'field' table
+        query = """SELECT DISTINCT(t.value) FROM tag AS t, field_tag AS ft, field AS f
+                    WHERE f.code='%s' AND ft.id_field=f.id AND t.id=ft.id_tag
+                    ORDER BY ft.score DESC""" % sort_field
+        res = run_sql(query)
+        if res:
+            for row in res:
+                tags.append(row[0])
+        else:
+            print_warning(req, "Sorry, '%s' does not seem to be a valid sort option.  Choosing title sort instead." % sort_field, "Error")
+            tags.append("245__a")
+        
+    ## check if we have sorting tag defined:
+    if tags:
+        # fetch the necessary field values:
+        for recID in recIDs:
+            val = "" # will hold value for recID according to which sort
+            vals = [] # will hold all values found in sorting tag for recID
+            for tag in tags:
+                vals.extend(get_fieldvalues(recID, tag))
+            if sort_pattern: 
+                # try to pick that tag value that corresponds to sort pattern
+                bingo = 0
+                for v in vals: 
+                    if v.startswith(sort_pattern): # bingo!
+                        bingo = 1
+                        val = v
+                        break
+                if not bingo: # not found, so joint them all together
+                    val = string.join(vals)                    
+            else:
+                # no sort pattern defined, so join them all together
+                val = string.join(vals)
+            val = val.lower()
+            if recIDs_dict.has_key(val):
+                recIDs_dict[val].append(recID)
+            else:
+                recIDs_dict[val] = [recID]
+        # sort them:
+        recIDs_dict_keys = recIDs_dict.keys()
+        recIDs_dict_keys.sort()
+        # now that keys are sorted, create output array:
+        for k in recIDs_dict_keys:
+            for s in recIDs_dict[k]:
+                recIDs_out.append(s)        
+        # ascending or descending?
+        if sort_order == 'a':
+            recIDs_out.reverse()
+        # okay, we are done
+        return recIDs_out
+    else:
+        # good, no sort needed
+        return recIDs
+        
+def print_records(req, recIDs, jrec=1, rg=10, format='hb', ot='', decompress=zlib.decompress):
+    """Prints list of records 'recIDs' formatted accoding to 'format' in groups of 'rg' starting from 'jrec'.
+    Assumes that the input list 'recIDs' is sorted in reverse order, so it counts records from tail to head.
+    A value of 'rg=-9999' means to print all records: to be used with care.
+    """
+
+    if len(recIDs):
+        nb_found = len(recIDs)
+
+        if rg == -9999: # print all records
+            rg = nb_found
+        else:
+            rg = abs(rg)
+        if jrec < 1: # sanity checks
+            jrec = 1
+        if jrec > nb_found:
+            jrec = max(nb_found-rg+1, 1)
+
+        # will print records from irec_max to irec_min excluded:
+        irec_max = nb_found - jrec
+        irec_min = nb_found - jrec - rg
+        if irec_min < 0:
+            irec_min = -1
+        if irec_max >= nb_found:
+            irec_max = nb_found - 1
+        
+        #req.write("%s:%d-%d" % (recIDs, irec_min, irec_max))
+
+        if format.startswith('x'):
+            # we are doing XML output:
+            for irec in range(irec_max,irec_min,-1):
+                req.write(print_record(recIDs[irec], format, ot))
+
+        elif format.startswith('t') or str(format[0:3]).isdigit():
+            # we are doing plain text output:
+            for irec in range(irec_max,irec_min,-1):
+                x = print_record(recIDs[irec], format, ot)
+                req.write(x)
+                if x:
+                    req.write('\n')
+        else:
+            # we are doing HTML output:
+            if format != "hb":
+                # deduce url without 'of' argument:
+                url_args = re.sub(r'(^|\&)of=.*?(\&|$)',r'\1',req.args)
+                url_args = re.sub(r'^\&+', '', url_args)
+                url_args = re.sub(r'\&+$', '', url_args)
+                # print other formatting choices:
+                req.write("""<p><div align="right"><small>Format: \n""")
+                if format != "hm":
+                    req.write('HTML | <a href="%s/search.py?%s&of=hm">HTML MARC</a> | <a href="%s/search.py?%s&of=xd">XML DC</a> | <a href="%s/search.py?%s&of=xm">XML MARC</a>' % (weburl, url_args, weburl, url_args, weburl, url_args))
+                else:
+                    req.write('<a href="%s/search.py?%s">HTML</a> | HTML MARC | <a href="%s/search.py?%s&of=xd">XML DC</a> | <a href="%s/search.py?%s&of=xm">XML MARC</a>' % (weburl, url_args, weburl, url_args, weburl, url_args))
+                req.write("</small></div>\n")
+                for irec in range(irec_max,irec_min,-1):
+                    req.write(print_record(recIDs[irec], format, ot))
+                    req.write("<p><p>")
+            else:                
+                req.write("\n<ol start=\"%d\">" % jrec)            
+                for irec in range(irec_max,irec_min,-1):
+                    req.write("\n<li>")
+                    req.write(print_record(recIDs[irec], format, ot))
+                    req.write("<p>")
+                req.write("\n</ol>")
+
+    else:        
+        print_warning(req, 'Use different search terms.')        
+
+def print_record(recID, format='hb', ot='', decompress=zlib.decompress):
+    "Prints record 'recID' formatted accoding to 'format'."
+    out = ""
+
+    # sanity check:
+    if not record_exists(recID):
+        return out
+
+    # print record opening tags, if needed:
+    if format == "marcxml" or format == "oai_dc":
+        out += "  <record>\n"
+        out += "   <header>\n"
+        for id in get_fieldvalues(recID,oaiidfield):
+            out += "    <identifier>%s</identifier>\n" % id
+        out += "    <datestamp>%s</datestamp>\n" % get_modification_date(recID)
+        out += "   </header>\n"
+        out += "   <metadata>\n"
+
+    if format.startswith("xm") or format == "marcxml":
+        # look for detailed format existence:
+        query = "SELECT value FROM bibfmt WHERE id_bibrec='%s' AND format='%s'" % (recID, format)
+        res = run_sql(query, None, 1)
+        if res:
+            # record 'recID' is formatted in 'format', so print it
+            out += "%s" % decompress(res[0][0])
+        else:
+            # record 'recID' is not formatted in 'format' -- they are not in "bibfmt" table; so fetch all the data from "bibXXx" tables:
+            if format == "marcxml":
+                out += """    <record xmlns="http://www.loc.gov/MARC21/slim">\n"""
+                out += "        <controlfield tag=\"001\">%d</controlfield>\n" % int(recID)
+            elif format.startswith("xm"):
+                out += """    <record>\n"""
+                out += "        <controlfield tag=\"001\">%d</controlfield>\n" % int(recID)
+            for digit1 in range(0,10):
+                for digit2 in range(0,10):
+                    bx = "bib%d%dx" % (digit1, digit2)
+                    bibx = "bibrec_bib%d%dx" % (digit1, digit2)
+                    query = "SELECT b.tag,b.value,bb.field_number FROM %s AS b, %s AS bb "\
+                            "WHERE bb.id_bibrec='%s' AND b.id=bb.id_bibxxx AND b.tag LIKE '%s%%' "\
+                            "ORDER BY bb.field_number, b.tag ASC" % (bx, bibx, recID, str(digit1)+str(digit2))
+                    if dbg:
+                        out += "<br>Debug: " + query
+                    res = run_sql(query)
+                    field_number_old = -999
+                    field_old = ""
+                    for row in res:
+                        field, value, field_number = row[0], row[1], row[2]
+                        ind1, ind2 = field[3], field[4]
+                        if ind1 == "_":
+                            ind1 = ""
+                        if ind2 == "_":
+                            ind2 = ""                        
+                        # print field tag
+                        if field_number != field_number_old or field[:-1] != field_old[:-1]:
+                            if format.startswith("xm") or format == "marcxml":
+
+                                fieldid = encode_for_xml(field[0:3])
+
+                                if field_number_old != -999:
+                                    out += """        </datafield>\n"""
+
+                                out += """        <datafield tag="%s" ind1="%s" ind2="%s">\n""" % (encode_for_xml(field[0:3]), encode_for_xml(ind1), encode_for_xml(ind2))
+
+                            field_number_old = field_number
+                            field_old = field
+                        # print subfield value
+                        if format.startswith("xm") or format == "marcxml":
+                            value = encode_for_xml(value)
+                            out += """            <subfield code="%s">%s</subfield>\n""" % (encode_for_xml(field[-1:]), value)
+
+                    # all fields/subfields printed in this run, so close the tag:
+                    if (format.startswith("xm") or format == "marcxml") and field_number_old != -999:
+                        out += """        </datafield>\n"""
+            # we are at the end of printing the record:
+            if format.startswith("xm") or format == "marcxml":
+                out += "    </record>\n"
+
+    elif format == "xd" or format == "oai_dc":
+        # XML Dublin Core format, possibly OAI -- select only some bibXXx fields:
+        out += """    <dc xmlns="http://purl.org/dc/elements/1.1/"
+                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                         xsi:schemaLocation="http://purl.org/dc/elements/1.1/
+                                             http://www.openarchives.org/OAI/1.1/dc.xsd">\n"""
+        for f in get_fieldvalues(recID, "041__a"):
+            out += "        <language>%s</language>\n" % f
+
+        for f in get_fieldvalues(recID, "100__a"):
+            out += "        <creator>%s</creator>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "700__a"):
+            out += "        <creator>%s</creator>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "245__a"):
+            out += "        <title>%s</title>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "65017a"):
+            out += "        <subject>%s</subject>\n" % encode_for_xml(f)
+
+        for f in get_fieldvalues(recID, "8564_u"):
+            out += "        <identifier>%s</identifier>\n" % encode_for_xml(f)
+        
+        for f in get_fieldvalues(recID, "520__a"):
+            out += "        <description>%s</description>\n" % encode_for_xml(f)            
+
+        out += "        <date>%s</date>\n" % get_creation_date(recID)
+        out += "    </dc>\n"                    
+
+    elif str(format[0:3]).isdigit():
+        # user has asked to print some fields only
+        if format == "001":
+            out += "<!--%s-begin-->%s<!--%s-end-->\n" % (format, recID, format)
+        else:
+            vals = get_fieldvalues(recID, format)
+            for val in vals:
+                out += "<!--%s-begin-->%s<!--%s-end-->\n" % (format, val, format)
+
+    elif format.startswith('t'):
+        ## user directly asked for some tags to be displayed only
+        out += get_fieldvalues_alephseq_like(recID, ot)
+
+    elif format == "hm":
+        out += "<pre>" + get_fieldvalues_alephseq_like(recID, ot) + "</pre>"
+
+    elif format.startswith("h") and ot:
+        ## user directly asked for some tags to be displayed only
+        out += "<pre>" + get_fieldvalues_alephseq_like(recID, ot) + "</pre>"
+
+    elif format == "hd":
+        # HTML detailed format
+        # look for detailed format existence:
+        query = "SELECT value FROM bibfmt WHERE id_bibrec='%s' AND format='%s'" % (recID, format)
+        res = run_sql(query, None, 1)
+        if res:
+            # record 'recID' is formatted in 'format', so print it
+            out += "%s" % decompress(res[0][0])
+        else:
+            # record 'recID' is not formatted in 'format', so either call BibFormat on the fly or use default format
+            # second, see if we are calling BibFormat on the fly:
+            if cfg_call_bibformat:
+                out += call_bibformat(recID)
+            else:
+                # okay, need to construct a simple "Detailed record" format of our own:
+                out += "<p>&nbsp;"
+                # secondly, title:
+                titles = get_fieldvalues(recID, "245__a")
+                for title in titles:
+                    out += "<p><p><center><big><strong>%s</strong></big></center>" % title
+                # thirdly, authors:
+                authors = get_fieldvalues(recID, "100__a") + get_fieldvalues(recID, "700__a")
+                if authors:
+                    out += "<p><p><center>"
+                    for author in authors:
+                        out += """<a href="%s/search.py?p=%s&f=author">%s</a> ;""" % (weburl, urllib.quote(author), author)
+                    out += "</center>"
+                # fourthly, date of creation:
+                dates = get_fieldvalues(recID, "260__c")
+                for date in dates:
+                    out += "<p><center><small>%s</small></center>" % date
+                # fifthly, abstract:
+                abstracts = get_fieldvalues(recID, "520__a")
+                for abstract in abstracts:
+                    out += """<p style="margin-left: 15%%; width: 70%%">
+                             <small><strong>Abstract:</strong> %s</small></p>""" % abstract
+                # fifthly bis, keywords:
+                keywords = get_fieldvalues(recID, "6531_a")
+                if len(keywords):
+                    out += """<p style="margin-left: 15%; width: 70%">
+                             <small><strong>Keyword(s):</strong></small>"""
+                    for keyword in keywords:
+                        out += """<small><a href="%s/search.py?p=%s&f=keyword">%s</a> ;</small> """ % (weburl, urllib.quote(keyword), keyword)
+                # fifthly bis bis, published in:
+                prs_p = get_fieldvalues(recID, "909C4p")
+                prs_v = get_fieldvalues(recID, "909C4v")
+                prs_y = get_fieldvalues(recID, "909C4y")
+                prs_n = get_fieldvalues(recID, "909C4n")
+                prs_c = get_fieldvalues(recID, "909C4c")
+                for idx in range(0,len(prs_p)):
+                    out += """<p style="margin-left: 15%%; width: 70%%">
+                             <small><strong>Publ. in:</strong> %s"""  % prs_p[idx]
+                    if prs_v and prs_v[idx]:
+                        out += """<strong>%s</strong>""" % prs_v[idx]
+                    if prs_y and prs_y[idx]:
+                        out += """(%s)""" % prs_y[idx]
+                    if prs_n and prs_n[idx]:
+                        out += """, no.%s""" % prs_n[idx]
+                    if prs_c and prs_c[idx]:
+                        out += """, p.%s""" % prs_c[idx]
+                    out += """.</small>"""
+                # sixthly, fulltext link:
+                urls_z = get_fieldvalues(recID, "8564_z")
+                urls_u = get_fieldvalues(recID, "8564_u")
+                for idx in range(0,len(urls_u)):
+                    link_text = "URL"
+                    if urls_z[idx]:
+                        link_text = urls_z[idx]
+                    out += """<p style="margin-left: 15%%; width: 70%%">
+                    <small><strong>%s:</strong> <a href="%s">%s</a></small>""" % (link_text, urls_u[idx], urls_u[idx])
+                # print some white space at the end:
+                out += "<p><p>"
+
+    else:
+        # HTML brief format by default
+        query = "SELECT value FROM bibfmt WHERE id_bibrec='%s' AND format='%s'" % (recID, format)
+        res = run_sql(query)
+        if res:
+            # record 'recID' is formatted in 'format', so print it
+            out += "%s" % decompress(res[0][0])
+        else:
+            # record 'recID' does not exist in format 'format', so print some default format:
+            # firstly, title:
+            titles = get_fieldvalues(recID, "245__a")
+            for title in titles:
+                out += "<strong>%s</strong> " % title
+            # secondly, authors:
+            authors = get_fieldvalues(recID, "100__a") + get_fieldvalues(recID, "700__a")
+            if authors:
+                out += " / "
+                for i in range (0,cfg_author_et_al_threshold):
+                    if i < len(authors):
+                        out += """<a href="%s/search.py?p=%s&f=author">%s</a> ;""" % (weburl, urllib.quote(authors[i]), authors[i])
+                if len(authors) > cfg_author_et_al_threshold:
+                    out += " <em>et al.</em>"
+            # thirdly, date of creation:
+            dates = get_fieldvalues(recID, "260__c")
+            for date in dates:
+                out += " %s." % date
+            # thirdly bis, report numbers:
+            rns = get_fieldvalues(recID, "037__a")
+            for rn in rns:
+                out += """ <small class="quicknote">[%s]</small>""" % rn
+            rns = get_fieldvalues(recID, "088__a")
+            for rn in rns:
+                out += """ <small class="quicknote">[%s]</small>""" % rn
+            # fourthly, beginning of abstract:
+            abstracts = get_fieldvalues(recID, "520__a")
+            for abstract in abstracts:
+                out += "<br><small>%s [...]</small>" % abstract[:1+string.find(abstract, '.')]
+            # fifthly, fulltext link:
+            urls_z = get_fieldvalues(recID, "8564_z")
+            urls_u = get_fieldvalues(recID, "8564_u")
+            for idx in range(0,len(urls_u)):
+                out += """<br><small class="note"><a class="note" href="%s">%s</a></small>""" % (urls_u[idx], urls_u[idx])
+
+        # at the end of HTML mode, print "Detailed record" and "Mark record" functions:
+        if cfg_use_aleph_sysnos:
+            alephsysnos = get_fieldvalues(recID, "909C0o")
+            if len(alephsysnos)>0:
+                alephsysno = alephsysnos[0]
+                out += """<br><span class="moreinfo"><a class="moreinfo" href="%s/search.py?sysnb=%s">Detailed record</a></span>""" \
+                       % (weburl, alephsysno)
+                #out += """<span class="moreinfo"> - <input name="mark[]" type="checkbox" value="%s"> Mark record</span>""" % alephsysno
+            else:
+                out += """<br><span class="moreinfo"><a class="moreinfo" href="%s/search.py?id=%s">Detailed record</a></span>""" \
+                       % (weburl, recID)
+                #out += """<span class="moreinfo"> - <input name="mark[]" type="checkbox" value="%s"> Mark record</span>""" % recID
+        else:
+            out += """<br><span class="moreinfo"><a class="moreinfo" href="%s/search.py?id=%s">Detailed record</a></span>""" \
+                   % (weburl, recID)
+            #out += """<span class="moreinfo"> - <input name="mark[]" type="checkbox" value="%s"> Mark record</span>""" % recID
+
+    # print record closing tags, if needed:
+    if format == "marcxml" or format == "oai_dc":
+        out += "   </metadata>\n"
+        out += "  </record>\n"
+
+    return out
+
+def encode_for_xml(s):
+    "Encode special chars in string so that it would be XML-compliant."
+    s = string.replace(s, '&', '&amp;')
+    s = string.replace(s, '<', '&lt;')
+    s = unicode(s,'latin-1','ignore').encode('utf-8','replace')
+    return s
+
+def call_bibformat(id, otype="HD"):
+    """Calls BibFormat for the record 'id'.  Desired BibFormat output type is passed in 'otype' argument.
+       This function is mainly used to display full format, if they are not stored in the 'bibfmt' table."""
+    f = urllib.urlopen("%sbibformat/bibformat.shtml?id=%s&otype=%s" % (weburl, id, otype))
+    out = f.read()
+    f.close()
+    return out
+
+def log_query_info(action, p, f, colls, nb_records_found_total=-1):
+    """Write some info to the log file for later analysis."""
+    try:
+        log = open(logdir + "/search.log", "a")
+        log.write(time.strftime("%04Y%02m%02d%02H%02M%02S#", time.localtime()))
+        log.write(action+"#")
+        log.write(p+"#")
+        log.write(f+"#")
+        for coll in colls[:-1]:
+            log.write("%s," % coll)
+        log.write("%s#" % colls[-1])
+        log.write("%d" % nb_records_found_total)
+        log.write("\n")
+        log.close()
+    except:
+        pass
+    return
+
+## test cases:
+#print collrecs_cache
+#collrecs_cache["Preprints"] = get_collection_hitlist("Preprints")
+#print perform_search(None, "of","title",["Preprints"])
+#print wash_colls(cdsname,"Library Catalogue", 0)
+#print wash_colls("Periodicals & Progress Reports",["Periodicals","Progress Reports"], 0)
+#print wash_field("wau")
+#print print_record(20,"tm","001,245")
+#print create_opft_search_units(None, "PHE-87-13","reportnumber")
+#print get_word_nbhits("of","title")
+#print ":"+wash_pattern("* and % doo * %")+":\n"
+#print ":"+wash_pattern("*")+":\n"
+#print run_sql("SELECT name,dbquery from collection")
+#print get_wordsindex_id("author")
+#print get_coll_ancestors("Theses")
+#print get_coll_sons("Articles & Preprints")
+#print get_coll_real_descendants("Articles & Preprints")
+#print get_collection_hitlist("Theses")
+#print log(sys.stdin)
+</protect>
diff --git a/modules/websearch/lib/search_engine_config.py b/modules/websearch/lib/search_engine_config.py
new file mode 100644
index 000000000..e600885f3
--- /dev/null
+++ b/modules/websearch/lib/search_engine_config.py
@@ -0,0 +1,42 @@
+## $Id$
+## CDSware Search Engine config parameters, read from WML configuration file.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+<protect>## See cdsware-x.y.z/config/config.wml for explanation of the parameter meaning.</protect>
+
+"""CDSware Search Engine config parameters, read from WML configuration file."""
+
+cfg_max_recID = <CFG_MAX_RECID> # rec universe: shoud be >= than maximum recID from the bibrec database
+cfg_instant_browse = <CFG_NB_LATEST_ADDITIONS> # the number of docs to display under 'Latest Additions'
+cfg_author_et_al_threshold = <CFG_AUTHOR_ET_AL_THRESHOLD> # print up to 3 author names, then add "et al" in the brief format
+cfg_search_cache_size = <CFG_SEARCH_CACHE_SIZE> # how many search hits we want to cache in memory?
+cfg_nb_records_to_sort = <CFG_NB_RECORDS_TO_SORT> # limit for sorting
+cfg_call_bibformat = <CFG_CALL_BIBFORMAT> # if "HTML detailed" format is not found, do we want to call BibFormat on the fly?
+cfg_use_aleph_sysnos = <CFG_USE_OLD_SYSNOS> # do we want to make ALEPH/old sysnos visible rather than MySQL's recID?
+cfg_fields_convert = <CFG_FIELDS_CONVERT>
+cfg_google_box = <CFG_GOOGLE_BOX> # are we are proposing links to other search engines like google by default?
+cfg_google_box_cern = <CFG_GOOGLE_BOX_CERN> # are we are proposing CERN-like links to other search engines by default?
+cfg_simplesearch_pattern_box_width = <CFG_SIMPLESEARCH_PATTERN_BOX_WIDTH> # width of the search pattern window in the simple search interface
+cfg_advancedsearch_pattern_box_width = <CFG_ADVANCEDSEARCH_PATTERN_BOX_WIDTH> # width of the search pattern window in the advanced search interface
diff --git a/modules/websearch/lib/search_engine_config.py.wml b/modules/websearch/lib/search_engine_config.py.wml
new file mode 100644
index 000000000..e600885f3
--- /dev/null
+++ b/modules/websearch/lib/search_engine_config.py.wml
@@ -0,0 +1,42 @@
+## $Id$
+## CDSware Search Engine config parameters, read from WML configuration file.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+<protect>## See cdsware-x.y.z/config/config.wml for explanation of the parameter meaning.</protect>
+
+"""CDSware Search Engine config parameters, read from WML configuration file."""
+
+cfg_max_recID = <CFG_MAX_RECID> # rec universe: shoud be >= than maximum recID from the bibrec database
+cfg_instant_browse = <CFG_NB_LATEST_ADDITIONS> # the number of docs to display under 'Latest Additions'
+cfg_author_et_al_threshold = <CFG_AUTHOR_ET_AL_THRESHOLD> # print up to 3 author names, then add "et al" in the brief format
+cfg_search_cache_size = <CFG_SEARCH_CACHE_SIZE> # how many search hits we want to cache in memory?
+cfg_nb_records_to_sort = <CFG_NB_RECORDS_TO_SORT> # limit for sorting
+cfg_call_bibformat = <CFG_CALL_BIBFORMAT> # if "HTML detailed" format is not found, do we want to call BibFormat on the fly?
+cfg_use_aleph_sysnos = <CFG_USE_OLD_SYSNOS> # do we want to make ALEPH/old sysnos visible rather than MySQL's recID?
+cfg_fields_convert = <CFG_FIELDS_CONVERT>
+cfg_google_box = <CFG_GOOGLE_BOX> # are we are proposing links to other search engines like google by default?
+cfg_google_box_cern = <CFG_GOOGLE_BOX_CERN> # are we are proposing CERN-like links to other search engines by default?
+cfg_simplesearch_pattern_box_width = <CFG_SIMPLESEARCH_PATTERN_BOX_WIDTH> # width of the search pattern window in the simple search interface
+cfg_advancedsearch_pattern_box_width = <CFG_ADVANCEDSEARCH_PATTERN_BOX_WIDTH> # width of the search pattern window in the advanced search interface
diff --git a/modules/websearch/web/.cvsignore b/modules/websearch/web/.cvsignore
new file mode 100644
index 000000000..a55e53175
--- /dev/null
+++ b/modules/websearch/web/.cvsignore
@@ -0,0 +1,9 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
+oai1d
+oai2d
+*.py
+*.shtml
\ No newline at end of file
diff --git a/modules/websearch/web/Makefile.am b/modules/websearch/web/Makefile.am
new file mode 100644
index 000000000..3d47f5e20
--- /dev/null
+++ b/modules/websearch/web/Makefile.am
@@ -0,0 +1,37 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+webappdir = $(WEBDIR)
+
+bin_SCRIPTS=oai1d oai2d
+webapp_DATA=search.py goto.shtml
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(bin_SCRIPTS) $(webapp_DATA) *~ *.tmp search.pyc
+
+%.py: %.py.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+
+%.shtml: %.shtml.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
+	chmod u+x $@
diff --git a/modules/websearch/web/goto.shtml.wml b/modules/websearch/web/goto.shtml.wml
new file mode 100644
index 000000000..fa966089d
--- /dev/null
+++ b/modules/websearch/web/goto.shtml.wml
@@ -0,0 +1,93 @@
+## $Id$
+## Purpose: go to a collection page (given in the `c' argument).
+## Input:
+##     c = collection name (e.g. "ATLAS Notes")
+## Output: HTTP redirect to the given page
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+<?
+<protect>
+## $Id$
+## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
+</protect>
+
+## connect to mysql database:
+$dbh = mysql_pconnect('<DBHOST>','<DBUSER>','<DBPASS>')
+  or die("Cannot connect to SQL server." .
+         "Try <em>reload</em> of the page.");
+mysql_select_db("<DBNAME>")
+  or die("Cannot choose <DBNAME> database on <DBHOST>." .
+         "Try <em>reload</em> of the page.");
+
+## check whether we are not in the home collection:
+if ($c == "<CDSNAME>") {
+    $url = "<WEBURL>";
+    Header("Location: $url");
+    exit;    
+}
+
+## find out whether 'c' is really a collection:
+$query = "SELECT id FROM collection WHERE name='$c'";
+$res = mysql_query($query, $dbh);
+if ($row = mysql_fetch_row($res)) {
+    $c_id = $row[0];
+} else {
+    # no it is not a good name
+    print "Sorry, collection <em>$c</em> was not found.  Go to the <a href=\"<WEBURL>\"><CDSNAME></a>.";
+} 
+mysql_free_result($res);  
+
+## find out about ancestors:
+while ($c_id) {
+    $query = "SELECT cc.id_dad, c.name FROM collection_collection AS cc, collection AS c " .
+        " WHERE cc.id_son='$c_id' AND c.id=cc.id_dad ORDER BY cc.score DESC LIMIT 1";
+    $res = mysql_query($query, $dbh);
+    if ($row = mysql_fetch_row($res)) {
+        if ($row[0]>1) {
+           $ancestors[] = $row[1];
+        }
+        $c_id = $row[0];
+    } else {
+        break;
+    }
+    mysql_free_result($res);  
+}
+
+## construct path:
+for ($i=count($ancestors); $i>=0; $i--) {
+    $path .= $ancestors[$i] . "/";
+}
+$path .= $c . "/";
+
+## replace special chars:
+$path=ereg_replace(" ", "_", $path);
+$path=ereg_replace("&","and",$path);
+$path=ereg_replace("\(","",$path);
+$path=ereg_replace("\)","",$path);
+
+## okay, redirect there:
+$url = "<WEBURL>/$path";
+Header("Location: $url");
+exit;
+
+?>
diff --git a/modules/websearch/web/oai1d.wml b/modules/websearch/web/oai1d.wml
new file mode 100644
index 000000000..6a0d9ce47
--- /dev/null
+++ b/modules/websearch/web/oai1d.wml
@@ -0,0 +1,800 @@
+## $Id$
+## OAI interface for CDSware/MySQL written in Python compliant with OAI-PMH1.1
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>#!</protect><PYTHON>
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""OAI interface for CDSware/MySQL written in Python compliant with OAI-PMH1.1"""
+
+## fill config variables:
+dbhost                 = """<DBHOST>"""
+dbname                 = """<DBNAME>"""
+dbuser                 = """<DBUSER>"""
+dbpass                 = """<DBPASS>"""
+cdsname                = """<CDSNAME>"""
+supportemail           = """<SUPPORTEMAIL>"""
+runtimelogdir          = """<LOGDIR>"""
+htdocsurl              = """<WEBURL>"""
+cgibinurl              = """<CGIBINURL>"""
+cdspageheader          = """<CDSPAGEHEADER>"""
+cdspagefooter          = """<CDSPAGEFOOTER>"""
+
+## OAI config variables
+oaiidprefix            = """<OAIIDPREFIX>"""
+oaisampleidentifier    = """<OAISAMPLEIDENTIFIER>"""
+oaiidentifydescription = """<OAIIDENTIFYDESCRIPTION>"""
+oaiidfield             = "909COo"
+oaisetfield            = "909COp"
+
+lastmodified           = """<: print `date +"%d %b %Y %H:%M:%S %Z"`; :>"""
+
+<protect>
+## okay, rest of the Python code goes below
+#######
+
+__version__ = "$Id$"
+
+## import interesting modules:
+try:
+    import cgi
+    import cPickle
+    import string
+    from string import split
+    import os
+    import re
+    import sys
+    import time
+    import MySQLdb
+    import md5
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+## config:
+dbg                      = 0     # are we debugging?
+nb_records_in_resume     = 100   # limit for items of OAI ListRecords
+nb_identifiers_in_resume = 100   # limit for items of OAI ListIdentifiers
+oai_rt_expire            = 90000 # OAI resumptionToken expiration (seconds)
+
+
+## connect to MySQL
+db = MySQLdb.connect(host=dbhost, db=dbname, user=dbuser, passwd=dbpass)
+cursor = db.cursor()
+
+
+## precompile some often-used regexp for speed reasons:
+re_amp = re.compile('&')
+
+
+def encode_for_xml(s):
+    "Encode special chars in string so that it would be XML-compliant."
+
+    s = string.replace(s, '&', '&amp;')
+    s = string.replace(s, '<', '&lt;')
+    e = unicode(s,'latin-1','ignore').encode('utf-8','replace')
+
+    return e
+
+def print_header(cc=cdsname):
+    "Prints CDS header and info on URL and date."
+    print "Content-type: text/html"
+    print """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+
+<head>
+  <title>%s - Search Results</title>
+  <link rev="made" href="mailto:%s">
+  <link rel="stylesheet" href="%simg/cds.css">
+</head>
+
+<body>
+
+<div class="pageheader">%s</div>
+""" % (cc, supportemail, htdocsurl, cdspageheader)
+
+def print_footer():
+    "Prints CDS page footer."
+    print """%s""" % re.sub("<\?.*\?>", "&lt;%soai1d&gt;." % cgibinurl, cdspagefooter)
+
+def get_field(sysno, field):
+    "Gets list of field 'field' for the record with 'sysno' system number."
+
+    out = []
+    digit = field[0:2]
+
+    bx = "bib%sx" % digit
+    bibx = "bibrec_bib%sx" % digit
+    query = "SELECT bx.value FROM %s AS bx, %s AS bibx WHERE bibx.id_bibrec='%s' AND bx.id=bibx.id_bibxxx AND bx.tag='%s'" % (bx, bibx, sysno, field)
+    if dbg:
+        print_warning(query, "Debug")
+    cursor.execute(query)
+    row = cursor.fetchone()
+    while row:        
+        out.append(row[0])
+        row = cursor.fetchone()        
+    return out
+
+
+def get_creation_date(sysno):
+    "Returns the creation date of the record 'sysno'."
+    out = ""
+    query = "SELECT DATE_FORMAT(creation_date,'%%Y-%%m-%%d') FROM bibrec WHERE id='%s'" % (sysno)
+    if dbg:
+        print_warning(query, "Debug")
+    cursor.execute(query)
+    row = cursor.fetchone()
+    if row:        
+        out = row[0]
+    return out
+
+
+def get_modification_date(sysno):
+    "Returns the date of last modification for the record 'sysno'."
+    out = ""
+    query = "SELECT DATE_FORMAT(modification_date,'%%Y-%%m-%%d') FROM bibrec WHERE id='%s'" % (sysno)
+    if dbg:
+        print_warning(query, "Debug")
+    cursor.execute(query)
+    row = cursor.fetchone()
+    if row:        
+        out = row[0]
+    return out
+
+
+def record_exists(sysno):
+    "Returns 1 if record with SYSNO 'sysno' exists.  Returns 0 otherwise."
+    out = 0
+    query = "SELECT id FROM bibrec WHERE id='%s'" % (sysno)
+    if dbg:
+        print_warning(query, "Debug")
+    cursor.execute(query)
+    row = cursor.fetchone()
+    if row:        
+        out = 1
+    return out    
+
+
+def print_warning(msg, type='Tip'):
+    "Prints warning message and flushes output."
+    print '<small class="quicknote"><strong>%s:</strong> %s</small><br>' % (type, msg)
+    sys.stdout.flush()
+
+def print_record(sysno, format='marcxml'):
+    "Prints record 'sysno' formatted accoding to 'format'."
+
+    # sanity check:
+    if not record_exists(sysno):
+        return
+
+    if (format == "dc") or (format == "oai_dc"):
+        format = "xd"
+
+    # print record opening tags:
+    
+    print "  <record>"
+    print "   <header>"
+    for id in get_field(sysno,oaiidfield):
+        print "    <identifier>%s</identifier>" % id
+    print "    <datestamp>%s</datestamp>" % get_modification_date(sysno)
+    print "   </header>"
+    print "   <metadata>"
+
+
+    if format == "marcxml":
+        ## MARC21 and XML formats, possibley OAI -- they are not in "bibfmt" table; so fetch all the data from "bibXXx" tables:
+
+        if format == "marcxml":
+
+            print "        <controlfield tag=\"001\">%d</controlfield>" % int(sysno)
+        for digit1 in range(0,10):
+            for digit2 in range(0,10):
+                bx = "bib%d%dx" % (digit1, digit2)
+                bibx = "bibrec_bib%d%dx" % (digit1, digit2)
+                query = "SELECT b.tag,b.value,bb.field_number FROM %s AS b, %s AS bb "\
+                        "WHERE bb.id_bibrec='%s' AND b.id=bb.id_bibxxx AND b.tag LIKE '%s%%' "\
+                        "ORDER BY bb.field_number, b.tag ASC" % (bx, bibx, sysno, str(digit1)+str(digit2))
+                if dbg:
+                    print_warning(query, "Debug")
+                cursor.execute(query)
+                row = cursor.fetchone()
+                field_number_old = -999
+                field_old = ""
+                while row:
+                    field, value, field_number = row[0], row[1], row[2]
+                    ind1, ind2 = field[3], field[4]
+                    if ind1 == "_":
+                        ind1 = ""
+                    if ind2 == "_":
+                        ind2 = ""                        
+                    # print field tag
+                    if field_number != field_number_old or field[:-1] != field_old[:-1]:
+                        if format == "m":
+                            print "<br><strong class=\"headline\">%s&nbsp;%s</strong>" % (encode_for_xml(field[0:3]), encode_for_xml(field[3:5]))
+                        elif format == "marcxml":
+
+                            fieldid = encode_for_xml(field[0:3])
+
+                            if field_number_old != -999:
+                                print """        </datafield>"""
+
+                            print """        <datafield tag="%s" ind1="%s" ind2="%s">""" % (encode_for_xml(field[0:3]), encode_for_xml(ind1), encode_for_xml(ind2))
+
+                        field_number_old = field_number
+                        field_old = field
+                    # print subfield value
+                    if format == "m":
+                        print "<em class=\"headline\">$%s</em> %s" % (field[-1:], value)
+                    elif format == "marcxml":
+                        value = encode_for_xml(value)
+                        print """            <subfield code="%s">%s</subfield>""" % (encode_for_xml(field[-1:]), value)
+   
+                    # fetch next subfield
+                    row = cursor.fetchone()
+                # all fields/subfields printed in this run, so close the tag:
+                if (format == "marcxml") and field_number_old != -999:
+                    print """        </datafield>"""
+
+    elif format == "xd":
+        # XML Dublin Core format, possibly OAI -- select only some bibXXx fields:
+        print """    <dc xmlns="http://purl.org/dc/elements/1.1/"
+                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                         xsi:schemaLocation="http://purl.org/dc/elements/1.1/
+                                             http://www.openarchives.org/OAI/1.1/dc.xsd">"""
+        for f in get_field(sysno, "041__a"):
+            print "        <language>%s</language>" % f
+
+        for f in get_field(sysno, "100__a"):
+            print "        <creator>%s</creator>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "700__a"):
+            print "        <creator>%s</creator>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "245__a"):
+            print "        <title>%s</title>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "65017a"):
+            print "        <subject>%s</subject>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "8564_u"):
+            print "        <identifier>%s</identifier>" % encode_for_xml(f)
+        
+        for f in get_field(sysno, "520__a"):
+            print "        <description>%s</description>" % encode_for_xml(f)            
+
+        print "        <date>%s</date>" % get_creation_date(sysno)
+        print "    </dc>"
+
+    # print record closing tags:
+    
+    print "   </metadata>"
+    print "  </record>"
+
+def main():
+    "Main function which analyses the CGI request and invokes search corresponding to an OAI verb"
+
+    param = cgi.FieldStorage()
+
+    if param.has_key('verb'):
+
+        verb = param['verb'].value
+        
+        if param.has_key('metadataPrefix'):
+            metadataPrefix = param['metadataPrefix'].value
+        else:
+            metadataPrefix = ""
+        if param.has_key('from'):
+            fromDate = param['from'].value
+        else:
+            fromDate = ""
+        if param.has_key('until'):
+            untilDate = param['until'].value
+        else:
+            untilDate = "" 
+        if param.has_key('set'):
+            set = param['set'].value
+        else:
+            set = ""
+        if param.has_key('identifier'):
+            identifier = param['identifier'].value
+        else:
+            identifier = ""
+        if param.has_key('resumptionToken'):
+            resumptionToken = param['resumptionToken'].value
+            if metadataPrefix or fromDate or untilDate or set or identifier:
+                OAIError()
+        else:
+            resumptionToken = ""
+
+        if verb == "Identify":
+            print "Content-type: text/xml\n"
+            OAIIdentify()
+            sys.exit()
+        elif verb == "ListMetadataFormats":
+            print "Content-type: text/xml\n"
+            OAIListMetadataFormats(identifier,resumptionToken)
+            sys.exit()
+        elif verb == "ListRecords":
+            if metadataPrefix=='oai_dc' or metadataPrefix=='marcxml' or resumptionToken:
+                OAIListRecords(fromDate,untilDate,set,metadataPrefix,resumptionToken)
+                sys.exit()
+            else:
+                OAIError('MetadataPrefix missing')
+                sys.exit()
+        elif verb == "ListIdentifiers":
+            OAIListIdentifiers(fromDate,untilDate,set,resumptionToken)
+            sys.exit()
+        elif verb == "GetRecord":
+            if identifier:
+                if metadataPrefix=='oai_dc' or metadataPrefix=='marcxml':
+                    print "Content-type: text/xml\n"
+                    OAIGetRecord(identifier, metadataPrefix)
+                    sys.exit()
+                else:
+                    OAIError('MetadataPrefix Missing.')
+                    sys.exit()
+            else:
+                OAIError('Record Identifier missing.')
+                sys.exit()
+        elif verb == "ListSets":
+            print "Content-type: text/xml\n"
+            OAIListSets(resumptionToken)
+            sys.exit()
+        else:
+            OAIError('Wrong OAI-verb.')
+            sys.exit()
+    else:
+        OAIError('OAI-verb missing.')
+        sys.exit()
+
+
+def OAIListMetadataFormats(identifier,resumptionToken):
+    "Generates response to OAIListMetadataFormats verb."
+
+    responseDate          = OAIGetResponseDate()
+    requestURL            = OAIGetRequestURL()
+    flag                  = 1                    # list or not depending on identifier
+
+    if identifier:
+        flag     = 0
+        sysno    = OAIGetSysno(identifier)
+
+        if record_exists(sysno):
+            flag = 1
+            
+    print """<?xml version="1.0" encoding="UTF-8"?>"""
+
+
+    print """
+<ListMetadataFormats
+   xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats
+                 http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats.xsd">
+    """
+    print "   <responseDate>" + responseDate + "</responseDate>"
+    print "   <requestURL>" + requestURL + "</requestURL>"
+
+    if flag:
+        print """
+   <metadataFormat>
+    <metadataPrefix>oai_dc</metadataPrefix>
+    <schema>http://www.openarchives.org/OAI/1.1/dc.xsd</schema>
+    <metadataNamespace>http://purl.org/dc/elements/1.1/</metadataNamespace>
+   </metadataFormat>
+   <metadataFormat>
+    <metadataPrefix>marcxml</metadataPrefix>
+    <schema>http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd</schema>
+    <metadataNamespace>http://www.loc.gov/MARC21/slim</metadataNamespace>
+   </metadataFormat>
+        """
+    print """
+</ListMetadataFormats>
+    """
+
+def OAIListRecords(fromDate,untilDate,set,metadataPrefix,resumptionToken):
+    "Generates response to OAIListRecords verb."
+    
+    responseDate          = OAIGetResponseDate()
+    requestURL            = OAIGetRequestURL()
+
+    sysnos = []
+    sysno = []
+
+    if resumptionToken:
+        filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+        if os.path.exists(filename) == 0:
+            OAIError('ResumptionToken expired.')
+            
+    print "Content-type: text/xml\n"
+    print """<?xml version="1.0" encoding="UTF-8"?>"""
+    print """
+<ListRecords
+   xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListRecords"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListRecords
+                       http://www.openarchives.org/OAI/1.1/OAI_ListRecords.xsd">
+    """
+    
+    print "   <responseDate>" + responseDate + "</responseDate>"
+    print "   <requestURL>" + requestURL + "</requestURL>"
+
+    if resumptionToken:
+        sysnos = OAICacheOut(resumptionToken)
+        metadataPrefix = sysnos.pop()
+    else:
+        sysnos = OAIGetSysnoList(set, fromDate, untilDate + "T23:59:59Z")
+
+    i = 0
+    for s in sysnos:
+        if s:
+            i = i + 1
+            if i > nb_records_in_resume:           # cache or write?
+                if i ==  nb_records_in_resume + 1: # resumptionToken?
+                    resumptionToken = OAIGenResumptionToken()
+                    print "<resumptionToken>%s</resumptionToken>" % resumptionToken
+                sysno.append(s)
+            else:
+                done = 0
+                for f in get_field(s, "245__a"):
+                    if done == 0:
+                        print_record(s, metadataPrefix)
+
+    print "</ListRecords>"
+
+    if i > nb_records_in_resume:
+        OAICacheClean()
+        sysno.append(metadataPrefix)
+        OAICacheIn(resumptionToken,sysno)
+
+def OAIListSets(resumptionToken):
+    "Lists available sets for OAI metadata harvesting."
+
+    responseDate          = OAIGetResponseDate()
+    requestURL            = OAIGetRequestURL()
+
+    print """<?xml version="1.0" encoding="UTF-8"?>""",
+
+    print """
+<ListSets
+   xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListSets"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListSets
+                 http://www.openarchives.org/OAI/1.1/OAI_ListSets.xsd">
+    """
+    print "   <responseDate>" + responseDate + "</responseDate>"
+    print "   <requestURL>" + requestURL + "</requestURL>"
+
+    sets = get_sets()
+
+    for s in sets:
+        print "   <set>"
+        print "    <setSpec>%s</setSpec>" % s[0]
+        print "    <setName>%s</setName>" % s[1]
+        print "   </set>"
+
+    print """
+</ListSets>
+    """
+
+def OAIGetRecord(identifier, metadataPrefix):
+    """Returns record 'identifier' according to 'metadataPrefix' format for OAI metadata harvesting."""
+
+    responseDate          = OAIGetResponseDate()
+    requestURL            = OAIGetRequestURL()
+
+    print """<?xml version="1.0" encoding="UTF-8"?>"""
+
+    print """
+
+<GetRecord
+   xmlns="http://www.openarchives.org/OAI/1.1/OAI_GetRecord"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_GetRecord
+                 http://www.openarchives.org/OAI/1.1/OAI_GetRecord.xsd">
+    """
+    print "   <responseDate>" + responseDate + "</responseDate>"
+    print "   <requestURL>" + requestURL + "</requestURL>"
+
+    sysno = OAIGetSysno(identifier)
+
+    if record_exists(sysno):        
+
+        datestamp = get_modification_date(sysno)
+        print_record(sysno, metadataPrefix)
+    print "</GetRecord>"
+
+def OAIListIdentifiers(fromDate,untilDate,set,resumptionToken):
+    "Prints OAI response to the ListIdentifiers verb."
+
+    responseDate          = OAIGetResponseDate()
+    requestURL            = OAIGetRequestURL()
+
+    sysno = []
+    sysnos = []
+
+    if resumptionToken:
+        filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+        if os.path.exists(filename) == 0:
+            OAIError('ResumptionToken expired.')
+
+    print "Content-type: text/xml\n"
+    print """<?xml version="1.0" encoding="UTF-8"?>"""
+
+    print """
+
+<ListIdentifiers
+   xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers
+                 http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers.xsd">
+    """
+    print "   <responseDate>" + responseDate + "</responseDate>"
+    print "   <requestURL>" + requestURL + "</requestURL>"
+
+
+    if resumptionToken:
+        sysnos = OAICacheOut(resumptionToken)
+    else:
+        sysnos = OAIGetSysnoList(set, fromDate, untilDate + "T23:59:59Z")
+
+    i = 0
+    for s in sysnos:        
+        if s:
+            i = i + 1
+            if i > nb_identifiers_in_resume:           # cache or write?
+                if i ==  nb_identifiers_in_resume + 1: # resumptionToken?
+                    resumptionToken = OAIGenResumptionToken()
+                    print "<resumptionToken>%s</resumptionToken>" % resumptionToken    
+                sysno.append(s)
+            else:
+                done = 0
+                for f in get_field(s, "245__a"):
+                    if done == 0:
+                        for id in get_field(s,oaiidfield):
+                            print "   <identifier>%s</identifier>" % id
+                        done = 1
+                    
+    if i > nb_identifiers_in_resume:
+        OAICacheClean()              # clean cache from expired resumptionTokens
+        OAICacheIn(resumptionToken,sysno)
+
+    print "</ListIdentifiers>"
+    
+def OAIIdentify():
+    "Generates response to OAIIdentify verb."
+        
+    responseDate          = OAIGetResponseDate()
+    requestURL            = OAIGetRequestURL()
+    repositoryName        = cdsname
+    baseURL               = "%soai1d" % cgibinurl
+    protocolVersion       = "1.1"
+    adminEmail            = "mailto:%s" % supportemail
+    repositoryIdentifier  = "%s" % oaiidprefix
+    sampleIdentifier      = oaisampleidentifier
+    identifyDescription   = oaiidentifydescription
+
+    print """<?xml version="1.0" encoding="UTF-8"?>"""
+
+    print """
+
+<Identify
+   xmlns="http://www.openarchives.org/OAI/1.1/OAI_Identify"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_Identify
+                 http://www.openarchives.org/OAI/1.1/OAI_Identify.xsd">
+    """
+    print "   <responseDate>" + responseDate + "</responseDate>"
+    print "   <requestURL>" + requestURL + "</requestURL>"
+    print "   <repositoryName>" + repositoryName + "</repositoryName>"
+    print "   <baseURL>" + baseURL + "</baseURL>"
+    print "   <protocolVersion>" + protocolVersion + "</protocolVersion>"
+    print "   <adminEmail>" + adminEmail + "</adminEmail>"
+    print identifyDescription
+
+    print """
+</Identify>
+    """
+    
+def OAIGetRequestURL():
+    "Generates requestURL tag for OAI."
+
+    if os.environ.has_key('SERVER_NAME'):
+        server_name = os.environ['SERVER_NAME']
+    else:
+        server_name = ""
+    if os.environ.has_key('QUERY_STRING'):
+        query_string = os.environ['QUERY_STRING']
+    else:
+        query_string = ""
+    if os.environ.has_key('SCRIPT_NAME'):
+        script_name = os.environ['SCRIPT_NAME']
+    else:
+        script_name = ""
+
+    requestURL = "http://" + server_name + script_name
+    if query_string:
+        requestURL = requestURL + "?"  + re_amp.sub("&amp;", query_string)
+
+    return requestURL
+
+def OAIGetResponseDate():
+    "Generates responseDate tag for OAI."
+    
+    if (time.timezone < 0):
+        zone = "+%02d:00" % (-time.timezone/3600)
+    elif (time.timezone > 0):
+        zone = "-%02d:00" % (time.timezone/3600)
+    else:
+        zone = "+00:00"
+
+    responseDate = time.strftime("%Y-%m-%dT%H:%M:%S", time.localtime()) + zone
+
+    return responseDate
+
+def OAIError(msg="Malformed OAI request."):
+    "Sends OAI error status."
+
+    print "Status: 400 Bad request"
+    print_header()
+    print "<h1 class=\"headline\">OAI Error</h1>"
+    print "<p>%s" % msg
+    print """<p>See the <a href="http://www.openarchives.org/OAI/openarchivesprotocol.htm">OpenArchives protocol</a>."""
+    print_footer()
+    sys.exit()
+
+
+def OAIGetSysno(identifier):
+    "Returns the first MySQL BIB ID for the OAI identifier 'identifier', if it exists."
+    sysno = None
+    if identifier:
+        query = "SELECT DISTINCT(bb.id_bibrec) FROM bib90x AS bx, bibrec_bib90x AS bb WHERE bx.tag='%s' AND bb.id_bibxxx=bx.id AND bx.value='%s'" % (oaiidfield,identifier)       
+        if dbg:
+            print_warning(query, "Debug")
+        cursor.execute(query)
+        row = cursor.fetchone()
+        if row:
+            sysno = row[0]
+        
+    return sysno
+
+def OAIGetSysnoList(set, date_from, date_until):
+    "Returns list of system numbers for the OAI set 'set', modified from 'date_from' until 'date_until'."
+
+    out_dict = {} # dict to hold list of out sysnos as its keys
+
+    if set:
+        query = "SELECT DISTINCT bibx.id_bibrec FROM bib90x AS bx LEFT JOIN bibrec_bib90x AS bibx ON bx.id=bibx.id_bibxxx LEFT JOIN bibrec AS b ON b.id=bibx.id_bibrec WHERE bx.tag='%s' AND bx.value='%s'" % (oaisetfield,set)
+    else:
+        query = "SELECT DISTINCT bibx.id_bibrec FROM bib90x AS bx LEFT JOIN bibrec_bib90x AS bibx ON bx.id=bibx.id_bibxxx LEFT JOIN bibrec AS b ON b.id=bibx.id_bibrec WHERE bx.tag='%s'" % (oaiidfield)
+
+    if date_from:
+        query = query + " AND b.modification_date >= '%s'" % date_from
+    if date_until:
+        query = query + " AND b.modification_date <= '%s'" % date_until
+    if dbg:
+        print_warning(query, "Debug")
+
+    cursor.execute(query)
+    row = cursor.fetchone()
+    while row:
+        out_dict[row[0]] = 1
+        row = cursor.fetchone()
+
+    return out_dict.keys()
+
+
+def OAIGenResumptionToken():
+    "Generates unique ID for resumption token management."
+
+    return md5.new(str(time.time())).hexdigest()
+
+
+def OAICacheIn(resumptionToken, sysnos):
+    "Stores or adds sysnos in cache.  Input is a string of sysnos separated by comas."
+
+    filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+
+    fil = open(filename,"w")
+    cPickle.dump(sysnos,fil)
+    fil.close()
+    return 1
+
+
+#OAICacheOut restore (string) from cache
+
+def OAICacheOut(resumptionToken):
+    "Restores string of coma-separated system numbers from cache."
+    
+    sysnos = []
+
+    filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+
+    if OAICacheStatus(resumptionToken):
+        fil = open(filename,"r")
+        sysnos = cPickle.load(fil)
+        fil.close()
+    else:
+        return 0
+    return sysnos
+
+def OAICacheClean():
+    "Removes cached resumptionTokens older than 'oai_rt_expire'."
+    
+    directory = "%s/RTdata" % runtimelogdir
+
+    files = os.listdir(directory)
+
+    for f in files:
+        filename = directory + "/" + f
+        # cache entry expires when not modified during a specified period of time
+        if ((time.time() - os.path.getmtime(filename)) > oai_rt_expire):
+
+            os.remove(filename)
+
+    return 1
+
+def OAICacheStatus(resumptionToken):
+    "Checks cache status.  Returns 0 for empty, 1 for full."
+    
+    filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+    
+    if os.path.exists(filename):
+        if os.path.getsize(filename) > 0:
+            return 1
+        else:
+            return 0
+    else:
+        return 0
+
+
+def get_sets():
+    "Returns list of sets."
+
+    out = []
+    row = ['','']
+
+    cursor_bis = db.cursor()
+    query_bis = "SELECT setSpec,setName FROM oaiset"
+    cursor_bis.execute(query_bis)
+    
+    row_bis = cursor_bis.fetchone()
+    
+    while row_bis:
+        row = [row_bis[0],row_bis[1]]
+        out.append(row)
+        row_bis = cursor_bis.fetchone()
+
+    cursor_bis.close()
+
+    return out
+
+### okay, here we go:
+if __name__ == '__main__':
+    main()
+
+</protect>
diff --git a/modules/websearch/web/oai2d.wml b/modules/websearch/web/oai2d.wml
new file mode 100644
index 000000000..4a22dc16f
--- /dev/null
+++ b/modules/websearch/web/oai2d.wml
@@ -0,0 +1,825 @@
+## $Id$
+## OAI interface for CDSware/MySQL written in Python compliant with OAI-PMH2.0
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>#!</protect><PYTHON>
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE!  IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""OAI interface for CDSware/MySQL written in Python compliant with OAI-PMH2.0"""
+
+## fill config variables:
+dbhost                 = """<DBHOST>"""
+dbname                 = """<DBNAME>"""
+dbuser                 = """<DBUSER>"""
+dbpass                 = """<DBPASS>"""
+cdsname                = """<CDSNAME>"""
+supportemail           = """<SUPPORTEMAIL>"""
+runtimelogdir          = """<LOGDIR>"""
+cgibinurl              = """<CGIBINURL>"""
+
+## OAI config variables
+oaiidprefix            = """<OAIIDPREFIX>"""
+oaisampleidentifier    = """<OAISAMPLEIDENTIFIER>"""
+oaiidentifydescription = """<OAIIDENTIFYDESCRIPTION>"""
+oaiidfield             = "909COo"
+oaisetfield            = "909COp"
+
+lastmodified           = """<: print `date +"%d %b %Y %H:%M:%S %Z"`; :>"""
+
+<protect>
+## okay, rest of the Python code goes below
+#######
+
+__version__ = "$Id$"
+
+## import interesting modules:
+try:
+    import cgi
+    import cPickle
+    import string
+    from string import split
+    import os
+    import re
+    import sys
+    import time
+    import MySQLdb
+    import md5
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)    
+
+## config:
+nb_records_in_resume     = 100 	 # limit for items of OAI ListRecords
+nb_identifiers_in_resume = 100 	 # limit for items of OAI ListIdentifiers
+oai_rt_expire            = 90000 # OAI resumptionToken expiration (seconds)
+
+## connect to MySQL
+db = MySQLdb.connect(host=dbhost, db=dbname, user=dbuser, passwd=dbpass)
+cursor = db.cursor()
+
+## precompile some often-used regexp for speed reasons:
+re_amp = re.compile('&')
+
+def encode_for_xml(s):
+    "Encode special chars in string so that it would be XML-compliant."
+
+    s = string.replace(s, '&', '&amp;')
+    s = string.replace(s, '<', '&lt;')
+    e = unicode(s,'latin-1','ignore').encode('utf-8','replace')
+
+    return e
+
+
+def print_oai_header(verb):
+    "Print OAI header"
+
+    print "Content-type: text/xml\n"
+    print """<?xml version="1.0" encoding="UTF-8"?>"""
+    print """
+<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
+         http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
+    """
+
+    print " <responseDate>" + OAIGetResponseDate() + "</responseDate>"
+    if verb:
+        print """ <request verb="%s">%s</request>""" % (verb,OAIGetRequestURL())
+        print " <%s>" % verb
+    else:
+        print """ <request>%s</request>""" % (OAIGetRequestURL())
+
+
+def print_oai_footer(verb):
+    "Print OAI footer"
+
+    if verb:
+	print """ </%s>""" % verb
+    print """</OAI-PMH>"""
+
+def get_field(sysno, field):
+    "Gets list of field 'field' for the record with 'sysno' system number."
+
+    out   = []
+    digit = field[0:2]
+
+    bx    = "bib%sx" % digit
+    bibx  = "bibrec_bib%sx" % digit
+    query = "SELECT bx.value FROM %s AS bx, %s AS bibx WHERE bibx.id_bibrec='%s' AND bx.id=bibx.id_bibxxx AND bx.tag='%s'" % (bx, bibx, sysno, field)
+
+    cursor.execute(query)
+    row = cursor.fetchone()
+    while row:
+        out.append(row[0])
+        row = cursor.fetchone()
+    return out
+
+
+def UTC_to_localtime(date):
+    "Convert UTC to localtime"
+
+    ldate = date.split("T")[0]
+    ltime = date.split("T")[1]
+
+    lhour   = ltime.split(":")[0]
+    lminute = ltime.split(":")[1]
+    lsec    = ltime.split(":")[2]
+
+    lyear   = ldate.split("-")[0]
+    lmonth  = ldate.split("-")[1]
+    lday    = ldate.split("-")[2]
+    
+    timetoconvert = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.mktime((string.atoi(lyear),string.atoi(lmonth),string.atoi(lday),string.atoi(lhour),string.atoi(lminute),string.atoi(lsec[:-1]),0,0,-1)) - time.timezone + (time.daylight)*3600))
+
+    return timetoconvert
+
+
+def localtime_to_UTC(date):
+    "Convert localtime to UTC"
+
+    ldate = date.split(" ")[0]
+    ltime = date.split(" ")[1]
+
+    lhour   = ltime.split(":")[0]
+    lminute = ltime.split(":")[1]
+    lsec    = ltime.split(":")[2]
+
+    lyear   = ldate.split("-")[0]
+    lmonth  = ldate.split("-")[1]
+    lday    = ldate.split("-")[2]
+
+    timetoconvert = time.strftime("%Y-%m-%dT%H:%M:%SZ",time.gmtime(time.mktime((string.atoi(lyear),string.atoi(lmonth),string.atoi(lday),string.atoi(lhour),string.atoi(lminute),string.atoi(lsec),0,0,-1))))
+
+    return timetoconvert
+
+def get_creation_date(sysno):
+    "Returns the creation date of the record 'sysno'."
+
+    out   = ""
+#<<<<<<< oai2d.wml
+    query = "SELECT DATE_FORMAT(creation_date,'%%Y-%%m-%%d %%H:%%i:%%s') FROM bibitem WHERE id='%s'" % (sysno)
+#=======
+#    query = "SELECT DATE_FORMAT(creation_date,'%%Y-%%m-%%d') FROM bibrec WHERE id='%s'" % (sysno)
+#>>>>>>> 1.6
+
+    cursor.execute(query)
+    row = cursor.fetchone()
+    if row:
+        out = row[0]
+    return localtime_to_UTC(out)
+
+def get_modification_date(sysno):
+    "Returns the date of last modification for the record 'sysno'."
+
+    out = ""
+
+    query = "SELECT DATE_FORMAT(modification_date,'%%Y-%%m-%%d %%H:%%i:%%s') FROM bibrec WHERE id='%s'" % (sysno)
+
+    cursor.execute(query)
+    row = cursor.fetchone()
+    if row:
+        out = row[0]
+    return localtime_to_UTC(out)
+
+def check_date(date, time):
+    "Check if the date has a correct format"
+
+    if(re.sub("[0123456789\-:TZ]","",date) == ""):
+        if len(date) == 10:
+            date = date + time
+        date = UTC_to_localtime(date)
+    else:
+        oai_error("badArgument","Bad datestamp format")
+
+    return date
+
+def record_exists(sysno):
+    "Returns 1 if record with SYSNO 'sysno' exists.  Returns 0 otherwise."
+
+    out = 0
+    query = "SELECT id FROM bibrec WHERE id='%s'" % (sysno)
+ 
+    cursor.execute(query)
+    row = cursor.fetchone()
+    if row:
+        out = 1
+    return out
+
+
+def print_record(sysno, format='marcxml'):
+    "Prints record 'sysno' formatted accoding to 'format'."
+
+    # sanity check:
+    if not record_exists(sysno):
+        return
+
+    if (format == "dc") or (format == "oai_dc"):
+        format = "xd"
+
+    # print record opening tags:
+    
+    print "  <record>"
+    print "   <header>"
+    for id in get_field(sysno,oaiidfield):
+        print "    <identifier>%s</identifier>" % id
+    print "    <datestamp>%s</datestamp>" % get_modification_date(sysno)
+    for set in get_field(sysno,oaisetfield):
+        print "    <setSpec>%s</setSpec>" % set
+    print "   </header>"
+    print "   <metadata>"
+    
+
+    if format == "marcxml":
+        print """
+    <record xmlns="http://www.loc.gov/MARC21/slim"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="http://www.loc.gov/MARC21/slim
+            http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
+            type="Bibliographic">
+    <leader>00000coc  2200000uu 4500</leader>
+        """
+       ## MARC21 and XML formats, possibley OAI -- they are not in "bibfmt" table; so fetch all the data from "bibXXx" tables:
+
+        if format == "marcxml":
+
+            print "     <controlfield tag=\"001\">%d</controlfield>" % int(sysno)
+        for digit1 in range(0,10):
+            for digit2 in range(0,10):
+                bx = "bib%d%dx" % (digit1, digit2)
+                bibx = "bibrec_bib%d%dx" % (digit1, digit2)
+                query = "SELECT b.tag,b.value,bb.field_number FROM %s AS b, %s AS bb "\
+                        "WHERE bb.id_bibrec='%s' AND b.id=bb.id_bibxxx AND b.tag LIKE '%s%%' "\
+                        "ORDER BY bb.field_number, b.tag ASC" % (bx, bibx, sysno, str(digit1)+str(digit2))
+                cursor.execute(query)
+                row = cursor.fetchone()
+                field_number_old = -999
+                field_old = ""
+                while row:
+                    field, value, field_number = row[0], row[1], row[2]
+                    ind1, ind2 = field[3], field[4]
+                    if ind1 == "_":
+                        ind1 = " "
+                    if ind2 == "_":
+                        ind2 = " "                        
+                    # print field tag
+                    if field_number != field_number_old or field[:-1] != field_old[:-1]:
+                        if format == "m":
+                            print "<br><strong class=\"headline\">%s&nbsp;%s</strong>" % (encode_for_xml(field[0:3]), encode_for_xml(field[3:5]))
+                        elif format == "marcxml":
+
+                            fieldid = encode_for_xml(field[0:3])
+
+                            if field_number_old != -999:
+                                print """     </datafield>"""
+
+                            print """     <datafield tag="%s" ind1="%s" ind2="%s">""" % (encode_for_xml(field[0:3]), encode_for_xml(ind1).lower(), encode_for_xml(ind2).lower())
+
+                        field_number_old = field_number
+                        field_old = field
+                    # print subfield value
+                    if format == "m":
+                        print "<em class=\"headline\">$%s</em> %s" % (field[-1:], value)
+                    elif format == "marcxml":
+                        value = encode_for_xml(value)
+                        print """      <subfield code="%s">%s</subfield>""" % (encode_for_xml(field[-1:]), value)
+   
+                    # fetch next subfield
+                    row = cursor.fetchone()
+                # all fields/subfields printed in this run, so close the tag:
+                if (format == "marcxml") and field_number_old != -999:
+                    print """     </datafield>"""
+        print "    </record>"
+
+    elif format == "xd":
+        # XML Dublin Core format, possibly OAI -- select only some bibXXx fields:
+        print """    
+    <oaidc:dc xmlns="http://purl.org/dc/elements/1.1/" 
+              xmlns:oaidc="http://www.openarchives.org/OAI/2.0/oai_dc/" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+              xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ 
+              http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
+        """
+
+        for f in get_field(sysno, "041__a"):
+            print "        <language>%s</language>" % f
+
+        for f in get_field(sysno, "100__a"):
+            print "        <creator>%s</creator>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "700__a"):
+            print "        <creator>%s</creator>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "245__a"):
+            print "        <title>%s</title>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "65017a"):
+            print "        <subject>%s</subject>" % encode_for_xml(f)
+
+        for f in get_field(sysno, "8564_u"):
+            print "        <identifier>%s</identifier>" % encode_for_xml(f)
+        
+        for f in get_field(sysno, "520__a"):
+            print "        <description>%s</description>" % encode_for_xml(f)            
+
+        print "        <date>%s</date>" % get_creation_date(sysno)
+        print "    </oaidc:dc>"
+
+    # print record closing tags:
+    
+    print "   </metadata>"
+    print "  </record>"
+
+
+def main():
+    "Main function which analyses the CGI request and invokes search corresponding to an OAI verb"
+
+    # analyze user input:
+    flen = 0
+    ulen = 0
+    param = cgi.FieldStorage()
+
+    if param.has_key('verb'):
+
+        verb = param['verb'].value
+        
+        if param.has_key('metadataPrefix'):
+            metadataPrefix = param['metadataPrefix'].value
+        else:
+            metadataPrefix = ""
+        if param.has_key('from'):
+            fromDate = param['from'].value
+            flen = len(fromDate)
+            fromDate = check_date(fromDate,"T00:00:00Z")
+        else:
+            fromDate = ""
+        if param.has_key('until'):
+            untilDate = param['until'].value
+            ulen = len(untilDate)
+            untilDate = check_date(untilDate,"T23:59:59Z")
+        else:
+            untilDate = ""
+
+        if (ulen > 0) and (flen > 0):
+            if (flen <> ulen):
+                oai_error("badArgument","Bad datestamp format")
+           
+        if param.has_key('set'):
+            set = param['set'].value
+        else:
+            set = ""
+        if param.has_key('identifier'):
+            identifier = param['identifier'].value
+        else:
+            identifier = ""
+        if param.has_key('resumptionToken'):
+            #resumptionToken exclusive
+            if len(param) == 2:
+                resumptionToken = param['resumptionToken'].value
+            else:
+                oai_error("badArgument","The request includes illegal arguments")
+        else:
+            resumptionToken = ""
+
+        if verb == "Identify":
+            if len(param) == 1:
+                OAIIdentify()
+            else:
+                oai_error("badArgument","The request includes illegal arguments")
+        elif verb == "ListMetadataFormats":
+            OAIListMetadataFormats(identifier,resumptionToken)
+        elif verb == "ListRecords":
+            if metadataPrefix=='oai_dc' or metadataPrefix=='marcxml' or resumptionToken:
+                OAIListRecords(fromDate,untilDate,set,metadataPrefix,resumptionToken)
+            else:
+                if metadataPrefix == "":
+                    oai_error("badArgument","metadataPrefix missing")
+                else:
+                    oai_error("cannotDisseminateFormat","invalid metadataPrefix")
+
+        elif verb == "ListIdentifiers":
+            if metadataPrefix=='oai_dc' or metadataPrefix=='marcxml' or resumptionToken:
+                OAIListIdentifiers(fromDate,untilDate,set,resumptionToken)
+            else:
+                if metadataPrefix == "":
+                    oai_error("badArgument","metadataPrefix missing")
+                else:
+                    oai_error("cannotDisseminateFormat","invalid metadataPrefix")
+        elif verb == "GetRecord":
+            if identifier:
+                if metadataPrefix=='oai_dc' or metadataPrefix=='marcxml':
+                    OAIGetRecord(identifier, metadataPrefix)
+                else:
+                    if metadataPrefix == "":
+                        oai_error("badArgument","metadataPrefix missing")
+                    else:
+                        oai_error("cannotDisseminateFormat","invalid metadataPrefix")
+            else:
+                oai_error("badArgument","Record Identifier Missing")
+        elif verb == "ListSets":
+            if (((len(param)) > 2 ) or ((len(param) == 2) and (resumptionToken == ""))):
+                oai_error("badArgument","The request includes illegal arguments")
+            OAIListSets(resumptionToken)
+        else:
+            oai_error("badVerb","Illegal OAI verb")
+    else:
+        oai_error("badVerb","Illegal OAI verb")
+
+
+def OAIListMetadataFormats(identifier,resumptionToken):
+    "Generates response to OAIListMetadataFormats verb."
+
+    flag = 1 # list or not depending on identifier
+
+    if identifier:
+
+        flag = 0
+
+        sysno = OAIGetSysno(identifier)
+
+        if record_exists(sysno):
+
+            flag = 1
+
+        else:
+            oai_error("badArgument","invalid record Identifier")
+            
+    print_oai_header("ListMetadataFormats")
+
+    if flag:
+        print """
+   <metadataFormat>
+    <metadataPrefix>oai_dc</metadataPrefix>
+    <schema>http://www.openarchives.org/OAI/1.1/dc.xsd</schema>
+    <metadataNamespace>http://purl.org/dc/elements/1.1/</metadataNamespace>
+   </metadataFormat>
+   <metadataFormat>
+    <metadataPrefix>marcxml</metadataPrefix>
+    <schema>http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd</schema>
+    <metadataNamespace>http://www.loc.gov/MARC21/slim</metadataNamespace>
+   </metadataFormat>
+        """
+    print_oai_footer("ListMetadataFormats")
+
+
+def OAIListRecords(fromDate,untilDate,set,metadataPrefix,resumptionToken):
+    "Generates response to OAIListRecords verb."
+
+    sysnos = []
+    sysno = []
+
+    # check if the resumptionToken did not expire
+    if resumptionToken:
+        filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+        if os.path.exists(filename) == 0:
+             oai_error("badResumptionToken","ResumptionToken expired")
+
+    if resumptionToken:
+        sysnos = OAICacheOut(resumptionToken)
+        metadataPrefix = sysnos.pop()
+    else:
+        sysnos = OAIGetSysnoList(set, fromDate, untilDate)
+
+    if len(sysnos) == 0: # noRecordsMatch error
+        oai_error("noRecordsMatch","no records correspond to the request")
+
+    print_oai_header("ListRecords")
+
+    i = 0
+    for s in sysnos:
+        if s:
+            i = i + 1
+            if i > nb_records_in_resume:           # cache or write?
+                if i ==  nb_records_in_resume + 1: # resumptionToken?
+                    resumptionToken = OAIGenResumptionToken()
+                    extdate = OAIGetResponseDate(oai_rt_expire)
+                    if extdate:
+                        print """<resumptionToken expirationDate="%s">%s</resumptionToken>""" % (extdate,resumptionToken)
+                    else:
+                        print "<resumptionToken>%s</resumptionToken>" % resumptionToken
+                sysno.append(s)
+            else:
+                done = 0
+                for f in get_field(s, "245__a"):
+                    if done == 0:
+                        print_record(s, metadataPrefix)
+
+    print_oai_footer("ListRecords")
+
+    if i > nb_records_in_resume:
+        OAICacheClean()
+        sysno.append(metadataPrefix)
+        OAICacheIn(resumptionToken,sysno)
+
+def OAIListSets(resumptionToken):
+    "Lists available sets for OAI metadata harvesting."
+
+    # note: no flow control in ListSets
+    
+    print_oai_header("ListSets")
+
+    sets = get_sets()
+
+    for s in sets:
+
+        print "   <set>"
+        print "    <setSpec>%s</setSpec>" % s[0]
+        print "    <setName>%s</setName>" % s[1]
+        if s[2]:
+            print "    <setDescription>%s</setDescription>" % s[2]
+        print "   </set>"
+
+    print_oai_footer("ListSets")
+    
+def OAIGetRecord(identifier, metadataPrefix):
+    """Returns record 'identifier' according to 'metadataPrefix' format for OAI metadata harvesting."""
+    
+    sysno = OAIGetSysno(identifier)
+
+    if record_exists(sysno):        
+        datestamp = get_modification_date(sysno)
+    else:
+        oai_error("badArgument","invalid record Identifier")
+
+    print_oai_header("GetRecord")
+    print_record(sysno, metadataPrefix)
+    print_oai_footer("GetRecord")
+
+def OAIListIdentifiers(fromDate,untilDate,set,resumptionToken):
+    "Prints OAI response to the ListIdentifiers verb."
+
+    sysno = []
+    sysnos = []
+
+    if resumptionToken:
+        filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+        if os.path.exists(filename) == 0:
+             oai_error("badResumptionToken","ResumptionToken expired")
+
+    if resumptionToken:
+        sysnos = OAICacheOut(resumptionToken)
+    else:
+        sysnos = OAIGetSysnoList(set, fromDate, untilDate)
+
+    if len(sysnos) == 0: # noRecordsMatch error
+        oai_error("noRecordsMatch","no records correspond to the request")
+
+    print_oai_header("ListIdentifiers")
+
+    i = 0
+    for s in sysnos:
+        if s:
+            i = i + 1
+            if i > nb_identifiers_in_resume:           # cache or write?
+                if i ==  nb_identifiers_in_resume + 1: # resumptionToken?
+                    resumptionToken = OAIGenResumptionToken()
+                    extdate = OAIGetResponseDate(oai_rt_expire)
+                    if extdate:
+                        print """  <resumptionToken expirationDate="%s">%s</resumptionToken>""" % (extdate,resumptionToken)
+                    else:
+                        print "  <resumptionToken>%s</resumptionToken>" % resumptionToken
+                sysno.append(s)
+            else:
+                done = 0
+                for f in get_field(s, "245__a"):
+                    if done == 0:
+                        for id in get_field(s,oaiidfield):
+                            print "    <header>"
+                            print "      <identifier>%s</identifier>" % id
+                            print "      <datestamp>%s</datestamp>" % get_modification_date(OAIGetSysno(id))
+                            for set in get_field(s,oaisetfield):
+                                print "      <setSpec>%s</setSpec>" % set
+                            print "    </header>"
+                        done = 1
+                    
+    if i > nb_identifiers_in_resume:
+        OAICacheClean() # clean cache from expired resumptionTokens
+        OAICacheIn(resumptionToken,sysno)
+
+    print_oai_footer("ListIdentifiers")
+
+
+def OAIIdentify():
+    "Generates response to OAIIdentify verb."
+        
+    responseDate          = OAIGetResponseDate()
+    requestURL            = OAIGetRequestURL()
+    repositoryName        = cdsname
+    baseURL               = "%soai2d" % cgibinurl
+    protocolVersion       = "2.0"
+    adminEmail            = "mailto:%s" % supportemail
+    repositoryIdentifier  = "%s" % oaiidprefix
+    sampleIdentifier      = oaisampleidentifier
+    identifyDescription   = oaiidentifydescription
+
+    print_oai_header("Identify")
+
+    print "    <repositoryName>" + repositoryName + "</repositoryName>"
+    print "    <baseURL>" + baseURL + "</baseURL>"
+    print "    <protocolVersion>" + protocolVersion + "</protocolVersion>"
+    print "    <adminEmail>" + adminEmail + "</adminEmail>"
+    print "    <earliestDatestamp>%s</earliestDatestamp>" % get_earliest_datestamp()
+    print "    <deletedRecord>no</deletedRecord>"
+    print "    <granularity>YYYY-MM-DDThh:mm:ssZ</granularity>"
+    #    print "    <compression></compression>"
+    print oaiidentifydescription
+
+    print_oai_footer("Identify")
+    
+def OAIGetRequestURL():
+    "Generates requestURL tag for OAI."
+
+    if os.environ.has_key('SERVER_NAME'):
+        server_name = os.environ['SERVER_NAME']
+    else:
+        server_name = ""
+    if os.environ.has_key('QUERY_STRING'):
+        query_string = os.environ['QUERY_STRING']
+    else:
+        query_string = ""
+    if os.environ.has_key('SCRIPT_NAME'):
+        script_name = os.environ['SCRIPT_NAME']
+    else:
+        script_name = ""
+
+    requestURL = "http://" + server_name + script_name 
+    if query_string:
+        requestURL = requestURL + "?"  + re_amp.sub("&amp;", query_string)
+
+    return requestURL
+
+def OAIGetResponseDate(delay=0):
+    "Generates responseDate tag for OAI."
+    
+    return time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(time.time() + delay))
+
+
+def oai_error(code, msg):
+    "OAI error occured"
+
+    print_oai_header("")
+    print """ <error code="%s">%s</error>""" % (code, msg)
+    print_oai_footer("")
+    sys.exit()
+
+
+def OAIGetSysno(identifier):
+    "Returns the first MySQL BIB ID for the OAI identifier 'identifier', if it exists."
+    sysno = None
+    if identifier:
+        query = "SELECT DISTINCT(bb.id_bibrec) FROM bib90x AS bx, bibrec_bib90x AS bb WHERE bx.tag='%s' AND bb.id_bibxxx=bx.id AND bx.value='%s'" % (oaiidfield,identifier)
+        cursor.execute(query)
+        row = cursor.fetchone()
+        if row:
+            sysno = row[0]
+        
+    return sysno
+
+def OAIGetSysnoList(set, date_from, date_until):
+    "Returns list of system numbers for the OAI set 'set', modified from 'date_from' until 'date_until'."
+
+    out_dict = {} # dict to hold list of out sysnos as its keys
+
+    if set:
+        query = "SELECT DISTINCT bibx.id_bibrec FROM bib90x AS bx LEFT JOIN bibrec_bib90x AS bibx ON bx.id=bibx.id_bibxxx LEFT JOIN bibrec AS b ON b.id=bibx.id_bibrec WHERE bx.tag='%s' AND bx.value='%s'" % (oaisetfield,set)
+    else:
+        query = "SELECT DISTINCT bibx.id_bibrec FROM bib90x AS bx LEFT JOIN bibrec_bib90x AS bibx ON bx.id=bibx.id_bibxxx LEFT JOIN bibrec AS b ON b.id=bibx.id_bibrec WHERE bx.tag='%s'" % (oaiidfield)
+
+    if date_until:
+        query = query + " AND b.modification_date <= '%s'" % date_until
+    if date_from:
+        query = query + " AND b.modification_date >= '%s'" % date_from
+
+    cursor.execute(query)
+    row = cursor.fetchone()
+    while row:
+        out_dict[row[0]] = 1
+        row = cursor.fetchone()
+
+    return out_dict.keys()
+
+
+def OAIGenResumptionToken():
+    "Generates unique ID for resumption token management."
+
+    return md5.new(str(time.time())).hexdigest()
+
+
+def OAICacheIn(resumptionToken, sysnos):
+    "Stores or adds sysnos in cache.  Input is a string of sysnos separated by commas."
+
+    filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+
+    fil = open(filename,"w")
+    cPickle.dump(sysnos,fil)
+    fil.close()
+    return 1
+
+
+def OAICacheOut(resumptionToken):
+    "Restores string of comma-separated system numbers from cache."
+    
+    sysnos = []
+
+    filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+
+    if OAICacheStatus(resumptionToken):
+        fil = open(filename,"r")
+        sysnos = cPickle.load(fil)
+        fil.close()
+    else:
+        return 0
+    return sysnos
+
+def OAICacheClean():
+    "Removes cached resumptionTokens older than specified"
+    
+    directory = "%s/RTdata" % runtimelogdir
+
+    files = os.listdir(directory)
+
+    for f in files:
+        filename = directory + "/" + f
+        # cache entry expires when not modified during a specified period of time
+        if ((time.time() - os.path.getmtime(filename)) > oai_rt_expire):
+            os.remove(filename)
+
+    return 1
+
+def OAICacheStatus(resumptionToken):
+    "Checks cache status.  Returns 0 for empty, 1 for full."
+    
+    filename = "%s/RTdata/%s" % (runtimelogdir, resumptionToken)
+    
+    if os.path.exists(filename):
+        if os.path.getsize(filename) > 0:
+            return 1
+        else:
+            return 0
+    else:
+        return 0
+
+def get_earliest_datestamp():
+    "Returns earliest datestamp"
+
+    out = ""
+
+    cursor_bis = db.cursor()
+
+    query_bis = "SELECT MIN(creation_date) FROM bibrec"
+
+    cursor_bis.execute(query_bis)
+    row_bis = cursor_bis.fetchone()
+  
+    out = row_bis[0][:10] + " 00:00:00"
+ 
+    cursor_bis.close()
+
+    return localtime_to_UTC(out)
+
+def get_sets():
+    "Returns list of sets."
+
+    out = []
+    row = ['','']
+
+    cursor_bis = db.cursor()
+    
+    query_bis = "SELECT setSpec,setName,setDescription FROM oaiset"
+    cursor_bis.execute(query_bis)
+    row_bis = cursor_bis.fetchone()    
+    while row_bis:
+        row = [row_bis[0],row_bis[1],row_bis[2]]
+        out.append(row)
+        row_bis = cursor_bis.fetchone()
+ 
+    cursor_bis.close()
+            
+    return out
+
+### okay, here we go:
+if __name__ == '__main__':
+    main()
+
+</protect>
diff --git a/modules/websearch/web/search.py b/modules/websearch/web/search.py
new file mode 100644
index 000000000..dfa4c759a
--- /dev/null
+++ b/modules/websearch/web/search.py
@@ -0,0 +1,313 @@
+## $Id$
+## CDSware Search Engine in mod_python.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""CDSware Search Engine Callable Interface."""
+
+## fill config variables:
+pylibdir = "<LIBDIR>/python"
+
+try:
+    import sys
+    sys.path.append('%s' % pylibdir)
+    from cdsware.search_engine import *
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+<protect> 
+__version__ = "$Id$"
+
+def search(req, cc=cdsname, c=None, p="", f="", rg="10", sf="", so="d", sp="", of="hb", ot="", as="0",
+           p1="", f1="", m1="", op1="", p2="", f2="", m2="", op2="", p3="", f3="", m3="", sc="0", jrec="0",
+           id="-1", idb="-1", sysnb="", search="SEARCH"):
+    """Fallback entry point to WebSearch, for backward compatibility."""
+    index(req, cc, c, p, f, rg, sf, so, sp, of, ot, as,
+              p1, f1, m1, op1, p2, f2, m2, op2, p3, f3, m3, sc, jrec,
+              id, idb, sysnb, search)
+    return "\n"
+    
+def index(req, cc=cdsname, c=None, p="", f="", rg="10", sf="", so="d", sp="", of="hb", ot="", as="0",
+              p1="", f1="", m1="", op1="", p2="", f2="", m2="", op2="", p3="", f3="", m3="", sc="0", jrec="0",
+              id="-1", idb="-1", sysnb="", search="SEARCH"):
+    """Main entry point to WebSearch."""
+    # wash passed numerical arguments:
+    try:
+        id = string.atoi(id)
+        idb = string.atoi(idb)
+    except:
+        id = cfg_max_recID + 1
+        idb = cfg_max_recID + 1
+    sc = string.atoi(sc)
+    jrec = string.atoi(jrec)
+    rg = string.atoi(rg)
+    as = string.atoi(as)
+    if type(of) is list:
+        of = of[0]
+    if type(ot) is list:
+        ot = string.join(ot,",")
+    if of.startswith('x'):
+        # we are doing XML output:
+        req.content_type = "text/xml"
+        req.send_http_header()
+        req.write("""<?xml version="1.0" encoding="UTF-8"?>\n""")
+        if of.startswith("xm"):
+            req.write("""<collection xmlns="http://www.loc.gov/MARC21/slim">\n""")
+        else:
+            req.write("""<collection>\n""")
+    elif of.startswith('t') or str(of[0:3]).isdigit():
+        # we are doing plain text output:
+        req.content_type = "text/plain"
+        req.send_http_header()
+    else:
+        # we are doing HTML output:
+        req.content_type = "text/html"
+        req.send_http_header()
+        # write header:
+        req.write(create_header(cc))
+    if sysnb or id>0:
+        ## 1 - detailed record display
+        if sysnb: # ALEPH sysnb is passed, so deduce MySQL id for the record:            
+            id = get_mysql_recid_from_aleph_sysno(sysnb)
+        if of=="hb":
+            of = "hd"
+        if record_exists(id):
+            if idb<=id: # sanity check
+                idb=id+1
+            print_records(req, range(id,idb), -1, -9999, of, ot)
+        else: # record does not exist
+            if of.startswith("h"):
+                (cc, colls_to_display, colls_to_search) = wash_colls(cc, c, sc)
+                p = wash_pattern(p)
+                f = wash_field(f)
+                req.write(create_search_box(cc, colls_to_display, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1,
+                                            p2, f2, m2, op2, p3, f3, m3, sc))
+                print_warning(req, "Requested record does not seem to exist.", None, "<p>")
+    elif search == "Browse":
+        ## 2 - browse needed
+        (cc, colls_to_display, colls_to_search) = wash_colls(cc, c, sc)
+        p = wash_pattern(p)
+        f = wash_field(f)
+        # write search box:
+        if of.startswith("h"):
+            req.write(create_search_box(cc, colls_to_display, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1,
+                                        p2, f2, m2, op2, p3, f3, m3, sc))
+        url = string.replace(req.args, "search=Browse","search=SEARCH")
+        if as==1 or (p1 or p2 or p3):
+            if p1:
+                req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p1, f1))
+                req.write(create_nearest_words_links(url, p1, f1))
+            if p2:
+                req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p2, f2))
+                req.write(create_nearest_words_links(url, p2, f2))
+            if p3:
+                req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p3, f3))
+                req.write(create_nearest_words_links(url, p3, f3))
+        else:
+            req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p, f))
+            req.write(create_nearest_words_links(url, p, f))
+    else:
+        ## 3 - search needed
+        # wash passed collection arguments:
+        (cc, colls_to_display, colls_to_search) = wash_colls(cc, c, sc)
+        p = wash_pattern(p)
+        f = wash_field(f)
+        # write search box:
+        if of.startswith("h"):
+            req.write(create_search_box(cc, colls_to_display, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1,
+                                        p2, f2, m2, op2, p3, f3, m3, sc))
+        # run search:
+        t1 = os.times()[4]
+        if as == 1 or (p1 or p2 or p3):
+            # 3A - advanced search
+            results_final = search_pattern(req, "", "", colls_to_search)
+            if p1:
+                results_tmp = search_pattern(req, p1, f1, colls_to_search, m1)
+                for coll in colls_to_search: # join results for first advanced search boxen
+                    results_final[coll].intersect(results_tmp[coll])
+            if p2:
+                results_tmp = search_pattern(req, p2, f2, colls_to_search, m2)
+                for coll in colls_to_search: # join results for first and second advanced search boxen
+                    if op1 == "a": # add
+                        results_final[coll].intersect(results_tmp[coll])
+                    elif op1 == "o": # or
+                        results_final[coll].union(results_tmp[coll])
+                    elif op1 == "n": # not
+                        results_final[coll].difference(results_tmp[coll])
+                    else:
+                        print_warning(req, "Invalid set operation %s." % op1, "Error")
+            if p3:
+                results_tmp = search_pattern(req, p3, f3, colls_to_search, m3)
+                for coll in colls_to_search: # join results for second and third advanced search boxen
+                    if op2 == "a": # add
+                        results_final[coll].intersect(results_tmp[coll])
+                    elif op2 == "o": # or
+                        results_final[coll].union(results_tmp[coll])
+                    elif op2 == "n": # not
+                        results_final[coll].difference(results_tmp[coll])
+                    else:
+                        print_warning(req, "Invalid set operation %s." % op1, "Error")            
+            for coll in colls_to_search:
+                results_final[coll].calculate_nbhits()
+        else:
+            # 3B - simple search
+            search_cache_key = p+"@"+f+"@"+string.join(colls_to_search,",")
+            if search_cache.has_key(search_cache_key): # is the result in search cache?
+                results_final = search_cache[search_cache_key]        
+            else:       
+                results_final = search_pattern(req, p, f, colls_to_search)
+                search_cache[search_cache_key] = results_final
+            if len(search_cache) > cfg_search_cache_size: # is the cache full? (sanity cleaning)
+                search_cache.clear()
+        t2 = os.times()[4]
+        cpu_time = t2 - t1
+        # find total number of records found in each collection
+        results_final_nb_total = 0
+        results_final_nb = {}
+        for coll in colls_to_search:
+            results_final_nb[coll] = results_final[coll]._nbhits
+            results_final_nb_total += results_final_nb[coll]
+        # was there at least one hit?
+        if results_final_nb_total == 0:
+            if of.startswith('h'):
+                print_warning(req, "No match found.  Trying similar queries...", "", "<p>","<p>")
+                req.write("<p>")
+                if as==1 or (p1 or p2 or p3):
+                    if p1:
+                        search_pattern(req, p1, f1, colls_to_search, m1, 1)
+                    if p2:
+                        search_pattern(req, p2, f2, colls_to_search, m2, 1)
+                    if p3:
+                        search_pattern(req, p3, f3, colls_to_search, m3, 1)
+                else:
+                    search_pattern(req, p, f, colls_to_search, None, 1)
+        else:
+            # yes, some hits found, so print results overview:
+            if of.startswith("h"):
+                req.write(print_results_overview(colls_to_search, results_final_nb_total, results_final_nb, cpu_time))
+            # print records:
+            if len(colls_to_search)>1:
+                cpu_time = -1 # we do not want to have search time printed on each collection
+            for coll in colls_to_search:
+                if results_final[coll]._nbhits:
+                    if of.startswith("h"):
+                        req.write(print_search_info(p, f, sf, so, sp, of, ot, coll, results_final_nb[coll], jrec, rg, as, p1, p2, p3, f1, f2, f3, m1, m2, m3, op1, op2, cpu_time))
+                    results_final_sorted = results_final[coll].items()
+                    if sf:
+                        results_final_sorted = sort_records(req, results_final_sorted, sf, so, sp)
+                    print_records(req, results_final_sorted, jrec, rg, of, ot)
+                    if of.startswith("h"):
+                        req.write(print_search_info(p, f, sf, so, sp, of, ot, coll, results_final_nb[coll], jrec, rg, as, p1, p2, p3, f1, f2, f3, m1, m2, m3, op1, op2, cpu_time, 1))
+            # log query:
+            log_query_info("ss", p, f, colls_to_search, results_final_nb_total)
+    # 4 -- write footer:
+    if of.startswith('h'):
+        req.write(create_footer("http://"+req.hostname+req.uri))
+    elif of.startswith('x'):
+        req.write("""</collection>\n""")
+    return "\n"
+
+def cache(req, action="show"):
+    """Manipulates the search engine cache."""
+    global search_cache
+    global collrecs_cache
+    req.content_type = "text/html"
+    req.send_http_header() 
+    out = ""
+    out += "<h1>Search Cache</h1>"
+    # clear cache if requested:
+    if action == "clear":
+        search_cache = {}
+        collrecs_cache = create_collrecs_cache()
+        collrecs_cache[cdsname] = get_collection_hitlist(cdsname)
+    # show collection cache:
+    out += "<h3>Collection Cache</h3>"
+    out += "<blockquote>"
+    for coll in collrecs_cache.keys():
+        if collrecs_cache[coll]:
+            out += "%s<br>" % coll
+    out += "</blockquote>"
+    # show search cache:
+    out += "<h3>Search Cache</h3>"
+    out += "<blockquote>"
+    if len(search_cache):
+        out += """<table border="=">"""
+        out += "<tr><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td></tr>" % ("Pattern","Field","Collection","Number of Hits")
+        for search_cache_key in search_cache.keys():
+            p, f, c = string.split(search_cache_key, "@", 2)
+            # find out about length of cached data:
+            l = 0
+            for coll in search_cache[search_cache_key]:
+                l += search_cache[search_cache_key][coll]._nbhits
+            out += "<tr><td>%s</td><td>%s</td><td>%s</td><td>%d</td></tr>" % (p, f, c, l)
+        out += "</table>"
+    else:
+        out += "<p>Search cache is empty."
+    out += "</blockquote>"
+    out += """<p><a href="%s/search.py/cache?action=clear">clear cache</a>""" % weburl
+    req.write(out)
+    return "\n"
+
+def log(req, date=""):
+    """Display search log information for given date."""
+    req.content_type = "text/html"
+    req.send_http_header() 
+    req.write("<h1>Search Log</h1>")
+    if date: # case A: display stats for a day
+        yyyymmdd = string.atoi(date)
+        req.write("<p><big><strong>Date: %d</strong></big><p>" % yyyymmdd)
+        req.write("""<table border="1">""")
+        req.write("<tr><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td></tr>" % ("No.","Time", "Pattern","Field","Collection","Number of Hits"))
+        # read file:
+        p = os.popen("grep ^%d %s/search.log" % (yyyymmdd,logdir), 'r')
+        lines = p.readlines()
+        p.close()
+        # process lines:
+        i = 0
+        for line in lines:
+            try:
+                datetime, as, p, f, c, nbhits = string.split(line,"#")
+                i += 1
+                req.write("<tr><td align=\"right\">#%d</td><td>%s:%s:%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>" \
+                          % (i, datetime[8:10], datetime[10:12], datetime[12:], p, f, c, nbhits))
+            except:
+                pass # ignore eventual wrong log lines
+        req.write("</table>")
+    else: # case B: display summary stats per day
+        yyyymm01 = int(time.strftime("%04Y%02m01", time.localtime()))
+        yyyymmdd = int(time.strftime("%04Y%02m%02d", time.localtime()))
+        req.write("""<table border="1">""")
+        req.write("<tr><td><strong>%s</strong></td><td><strong>%s</strong></tr>" % ("Day", "Number of Queries"))
+        for day in range(yyyymm01,yyyymmdd+1):
+            p = os.popen("grep -c ^%d %s/search.log" % (day,logdir), 'r')
+            for line in p.readlines():
+                req.write("""<tr><td>%s</td><td align="right"><a href="%s/search.py/log?date=%d">%s</a></td></tr>""" % (day, weburl,day,line))
+            p.close()
+        req.write("</table>")
+    return "\n"    
+
+</protect>
diff --git a/modules/websearch/web/search.py.wml b/modules/websearch/web/search.py.wml
new file mode 100644
index 000000000..dfa4c759a
--- /dev/null
+++ b/modules/websearch/web/search.py.wml
@@ -0,0 +1,313 @@
+## $Id$
+## CDSware Search Engine in mod_python.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""CDSware Search Engine Callable Interface."""
+
+## fill config variables:
+pylibdir = "<LIBDIR>/python"
+
+try:
+    import sys
+    sys.path.append('%s' % pylibdir)
+    from cdsware.search_engine import *
+except ImportError, e:
+    print "Error: %s" % e
+    import sys
+    sys.exit(1)
+
+<protect> 
+__version__ = "$Id$"
+
+def search(req, cc=cdsname, c=None, p="", f="", rg="10", sf="", so="d", sp="", of="hb", ot="", as="0",
+           p1="", f1="", m1="", op1="", p2="", f2="", m2="", op2="", p3="", f3="", m3="", sc="0", jrec="0",
+           id="-1", idb="-1", sysnb="", search="SEARCH"):
+    """Fallback entry point to WebSearch, for backward compatibility."""
+    index(req, cc, c, p, f, rg, sf, so, sp, of, ot, as,
+              p1, f1, m1, op1, p2, f2, m2, op2, p3, f3, m3, sc, jrec,
+              id, idb, sysnb, search)
+    return "\n"
+    
+def index(req, cc=cdsname, c=None, p="", f="", rg="10", sf="", so="d", sp="", of="hb", ot="", as="0",
+              p1="", f1="", m1="", op1="", p2="", f2="", m2="", op2="", p3="", f3="", m3="", sc="0", jrec="0",
+              id="-1", idb="-1", sysnb="", search="SEARCH"):
+    """Main entry point to WebSearch."""
+    # wash passed numerical arguments:
+    try:
+        id = string.atoi(id)
+        idb = string.atoi(idb)
+    except:
+        id = cfg_max_recID + 1
+        idb = cfg_max_recID + 1
+    sc = string.atoi(sc)
+    jrec = string.atoi(jrec)
+    rg = string.atoi(rg)
+    as = string.atoi(as)
+    if type(of) is list:
+        of = of[0]
+    if type(ot) is list:
+        ot = string.join(ot,",")
+    if of.startswith('x'):
+        # we are doing XML output:
+        req.content_type = "text/xml"
+        req.send_http_header()
+        req.write("""<?xml version="1.0" encoding="UTF-8"?>\n""")
+        if of.startswith("xm"):
+            req.write("""<collection xmlns="http://www.loc.gov/MARC21/slim">\n""")
+        else:
+            req.write("""<collection>\n""")
+    elif of.startswith('t') or str(of[0:3]).isdigit():
+        # we are doing plain text output:
+        req.content_type = "text/plain"
+        req.send_http_header()
+    else:
+        # we are doing HTML output:
+        req.content_type = "text/html"
+        req.send_http_header()
+        # write header:
+        req.write(create_header(cc))
+    if sysnb or id>0:
+        ## 1 - detailed record display
+        if sysnb: # ALEPH sysnb is passed, so deduce MySQL id for the record:            
+            id = get_mysql_recid_from_aleph_sysno(sysnb)
+        if of=="hb":
+            of = "hd"
+        if record_exists(id):
+            if idb<=id: # sanity check
+                idb=id+1
+            print_records(req, range(id,idb), -1, -9999, of, ot)
+        else: # record does not exist
+            if of.startswith("h"):
+                (cc, colls_to_display, colls_to_search) = wash_colls(cc, c, sc)
+                p = wash_pattern(p)
+                f = wash_field(f)
+                req.write(create_search_box(cc, colls_to_display, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1,
+                                            p2, f2, m2, op2, p3, f3, m3, sc))
+                print_warning(req, "Requested record does not seem to exist.", None, "<p>")
+    elif search == "Browse":
+        ## 2 - browse needed
+        (cc, colls_to_display, colls_to_search) = wash_colls(cc, c, sc)
+        p = wash_pattern(p)
+        f = wash_field(f)
+        # write search box:
+        if of.startswith("h"):
+            req.write(create_search_box(cc, colls_to_display, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1,
+                                        p2, f2, m2, op2, p3, f3, m3, sc))
+        url = string.replace(req.args, "search=Browse","search=SEARCH")
+        if as==1 or (p1 or p2 or p3):
+            if p1:
+                req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p1, f1))
+                req.write(create_nearest_words_links(url, p1, f1))
+            if p2:
+                req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p2, f2))
+                req.write(create_nearest_words_links(url, p2, f2))
+            if p3:
+                req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p3, f3))
+                req.write(create_nearest_words_links(url, p3, f3))
+        else:
+            req.write("<p>Words nearest to <strong>%s</strong> inside <strong>%s</strong> are:<br>" % (p, f))
+            req.write(create_nearest_words_links(url, p, f))
+    else:
+        ## 3 - search needed
+        # wash passed collection arguments:
+        (cc, colls_to_display, colls_to_search) = wash_colls(cc, c, sc)
+        p = wash_pattern(p)
+        f = wash_field(f)
+        # write search box:
+        if of.startswith("h"):
+            req.write(create_search_box(cc, colls_to_display, p, f, rg, sf, so, sp, of, ot, as, p1, f1, m1, op1,
+                                        p2, f2, m2, op2, p3, f3, m3, sc))
+        # run search:
+        t1 = os.times()[4]
+        if as == 1 or (p1 or p2 or p3):
+            # 3A - advanced search
+            results_final = search_pattern(req, "", "", colls_to_search)
+            if p1:
+                results_tmp = search_pattern(req, p1, f1, colls_to_search, m1)
+                for coll in colls_to_search: # join results for first advanced search boxen
+                    results_final[coll].intersect(results_tmp[coll])
+            if p2:
+                results_tmp = search_pattern(req, p2, f2, colls_to_search, m2)
+                for coll in colls_to_search: # join results for first and second advanced search boxen
+                    if op1 == "a": # add
+                        results_final[coll].intersect(results_tmp[coll])
+                    elif op1 == "o": # or
+                        results_final[coll].union(results_tmp[coll])
+                    elif op1 == "n": # not
+                        results_final[coll].difference(results_tmp[coll])
+                    else:
+                        print_warning(req, "Invalid set operation %s." % op1, "Error")
+            if p3:
+                results_tmp = search_pattern(req, p3, f3, colls_to_search, m3)
+                for coll in colls_to_search: # join results for second and third advanced search boxen
+                    if op2 == "a": # add
+                        results_final[coll].intersect(results_tmp[coll])
+                    elif op2 == "o": # or
+                        results_final[coll].union(results_tmp[coll])
+                    elif op2 == "n": # not
+                        results_final[coll].difference(results_tmp[coll])
+                    else:
+                        print_warning(req, "Invalid set operation %s." % op1, "Error")            
+            for coll in colls_to_search:
+                results_final[coll].calculate_nbhits()
+        else:
+            # 3B - simple search
+            search_cache_key = p+"@"+f+"@"+string.join(colls_to_search,",")
+            if search_cache.has_key(search_cache_key): # is the result in search cache?
+                results_final = search_cache[search_cache_key]        
+            else:       
+                results_final = search_pattern(req, p, f, colls_to_search)
+                search_cache[search_cache_key] = results_final
+            if len(search_cache) > cfg_search_cache_size: # is the cache full? (sanity cleaning)
+                search_cache.clear()
+        t2 = os.times()[4]
+        cpu_time = t2 - t1
+        # find total number of records found in each collection
+        results_final_nb_total = 0
+        results_final_nb = {}
+        for coll in colls_to_search:
+            results_final_nb[coll] = results_final[coll]._nbhits
+            results_final_nb_total += results_final_nb[coll]
+        # was there at least one hit?
+        if results_final_nb_total == 0:
+            if of.startswith('h'):
+                print_warning(req, "No match found.  Trying similar queries...", "", "<p>","<p>")
+                req.write("<p>")
+                if as==1 or (p1 or p2 or p3):
+                    if p1:
+                        search_pattern(req, p1, f1, colls_to_search, m1, 1)
+                    if p2:
+                        search_pattern(req, p2, f2, colls_to_search, m2, 1)
+                    if p3:
+                        search_pattern(req, p3, f3, colls_to_search, m3, 1)
+                else:
+                    search_pattern(req, p, f, colls_to_search, None, 1)
+        else:
+            # yes, some hits found, so print results overview:
+            if of.startswith("h"):
+                req.write(print_results_overview(colls_to_search, results_final_nb_total, results_final_nb, cpu_time))
+            # print records:
+            if len(colls_to_search)>1:
+                cpu_time = -1 # we do not want to have search time printed on each collection
+            for coll in colls_to_search:
+                if results_final[coll]._nbhits:
+                    if of.startswith("h"):
+                        req.write(print_search_info(p, f, sf, so, sp, of, ot, coll, results_final_nb[coll], jrec, rg, as, p1, p2, p3, f1, f2, f3, m1, m2, m3, op1, op2, cpu_time))
+                    results_final_sorted = results_final[coll].items()
+                    if sf:
+                        results_final_sorted = sort_records(req, results_final_sorted, sf, so, sp)
+                    print_records(req, results_final_sorted, jrec, rg, of, ot)
+                    if of.startswith("h"):
+                        req.write(print_search_info(p, f, sf, so, sp, of, ot, coll, results_final_nb[coll], jrec, rg, as, p1, p2, p3, f1, f2, f3, m1, m2, m3, op1, op2, cpu_time, 1))
+            # log query:
+            log_query_info("ss", p, f, colls_to_search, results_final_nb_total)
+    # 4 -- write footer:
+    if of.startswith('h'):
+        req.write(create_footer("http://"+req.hostname+req.uri))
+    elif of.startswith('x'):
+        req.write("""</collection>\n""")
+    return "\n"
+
+def cache(req, action="show"):
+    """Manipulates the search engine cache."""
+    global search_cache
+    global collrecs_cache
+    req.content_type = "text/html"
+    req.send_http_header() 
+    out = ""
+    out += "<h1>Search Cache</h1>"
+    # clear cache if requested:
+    if action == "clear":
+        search_cache = {}
+        collrecs_cache = create_collrecs_cache()
+        collrecs_cache[cdsname] = get_collection_hitlist(cdsname)
+    # show collection cache:
+    out += "<h3>Collection Cache</h3>"
+    out += "<blockquote>"
+    for coll in collrecs_cache.keys():
+        if collrecs_cache[coll]:
+            out += "%s<br>" % coll
+    out += "</blockquote>"
+    # show search cache:
+    out += "<h3>Search Cache</h3>"
+    out += "<blockquote>"
+    if len(search_cache):
+        out += """<table border="=">"""
+        out += "<tr><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td></tr>" % ("Pattern","Field","Collection","Number of Hits")
+        for search_cache_key in search_cache.keys():
+            p, f, c = string.split(search_cache_key, "@", 2)
+            # find out about length of cached data:
+            l = 0
+            for coll in search_cache[search_cache_key]:
+                l += search_cache[search_cache_key][coll]._nbhits
+            out += "<tr><td>%s</td><td>%s</td><td>%s</td><td>%d</td></tr>" % (p, f, c, l)
+        out += "</table>"
+    else:
+        out += "<p>Search cache is empty."
+    out += "</blockquote>"
+    out += """<p><a href="%s/search.py/cache?action=clear">clear cache</a>""" % weburl
+    req.write(out)
+    return "\n"
+
+def log(req, date=""):
+    """Display search log information for given date."""
+    req.content_type = "text/html"
+    req.send_http_header() 
+    req.write("<h1>Search Log</h1>")
+    if date: # case A: display stats for a day
+        yyyymmdd = string.atoi(date)
+        req.write("<p><big><strong>Date: %d</strong></big><p>" % yyyymmdd)
+        req.write("""<table border="1">""")
+        req.write("<tr><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td><td><strong>%s</strong></td></tr>" % ("No.","Time", "Pattern","Field","Collection","Number of Hits"))
+        # read file:
+        p = os.popen("grep ^%d %s/search.log" % (yyyymmdd,logdir), 'r')
+        lines = p.readlines()
+        p.close()
+        # process lines:
+        i = 0
+        for line in lines:
+            try:
+                datetime, as, p, f, c, nbhits = string.split(line,"#")
+                i += 1
+                req.write("<tr><td align=\"right\">#%d</td><td>%s:%s:%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>" \
+                          % (i, datetime[8:10], datetime[10:12], datetime[12:], p, f, c, nbhits))
+            except:
+                pass # ignore eventual wrong log lines
+        req.write("</table>")
+    else: # case B: display summary stats per day
+        yyyymm01 = int(time.strftime("%04Y%02m01", time.localtime()))
+        yyyymmdd = int(time.strftime("%04Y%02m%02d", time.localtime()))
+        req.write("""<table border="1">""")
+        req.write("<tr><td><strong>%s</strong></td><td><strong>%s</strong></tr>" % ("Day", "Number of Queries"))
+        for day in range(yyyymm01,yyyymmdd+1):
+            p = os.popen("grep -c ^%d %s/search.log" % (day,logdir), 'r')
+            for line in p.readlines():
+                req.write("""<tr><td>%s</td><td align="right"><a href="%s/search.py/log?date=%d">%s</a></td></tr>""" % (day, weburl,day,line))
+            p.close()
+        req.write("</table>")
+    return "\n"    
+
+</protect>
diff --git a/modules/webstyle/.cvsignore b/modules/webstyle/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/webstyle/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/webstyle/Makefile.am b/modules/webstyle/Makefile.am
new file mode 100644
index 000000000..7f9e2de89
--- /dev/null
+++ b/modules/webstyle/Makefile.am
@@ -0,0 +1,22 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+SUBDIRS = css img lib
+
+CLEANFILES = *~
\ No newline at end of file
diff --git a/modules/webstyle/css/.cvsignore b/modules/webstyle/css/.cvsignore
new file mode 100644
index 000000000..b3ca7ca22
--- /dev/null
+++ b/modules/webstyle/css/.cvsignore
@@ -0,0 +1,8 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*.shtml
+*.css
+*.py
+*~
\ No newline at end of file
diff --git a/modules/webstyle/css/Makefile.am b/modules/webstyle/css/Makefile.am
new file mode 100644
index 000000000..6184ed295
--- /dev/null
+++ b/modules/webstyle/css/Makefile.am
@@ -0,0 +1,28 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+webdir=$(WEBDIR)/img
+web_DATA=cds.css
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(web_DATA) *~ *.tmp
+
+%: %.wml ../../../config/config.wml ../../../config/configbis.wml ../../../config/cdspage.wml
+	$(WML) -o $@ $<
diff --git a/modules/webstyle/css/cds.css b/modules/webstyle/css/cds.css
new file mode 100644
index 000000000..e1377586a
--- /dev/null
+++ b/modules/webstyle/css/cds.css
@@ -0,0 +1,272 @@
+/* CDSware style sheet */
+/* $Id$ */
+body {
+   color: #000;
+   background: #fff;
+   font-family: helvetica, arial, sans-serif;
+}
+p,br,dl,strong,em,h1,h2,h3,h4,h5,h6,td,blockquote,ol,ul {
+   font-family: helvetica, arial, sans-serif;
+}
+pre,code {
+   font-family: monospace;
+}
+h1 {
+   font-size: 173%;
+   font-weight: 700;
+   margin-left: 0%;
+}
+.h1 {
+   font-size: 173%;
+   font-weight: 700;
+   margin-left: 0%;
+}
+h2 {
+   font-size: 144%;
+   font-weight: 650;
+   margin-left: 0%;
+}
+h3 {
+   font-size: 120%;
+   font-weight: 600;
+   font-style: italic;
+}
+h4 {
+   font-size: 110%;
+   font-weight: 600;
+}
+h5 {
+   font-size: 110%;
+   font-weight: 300;
+}
+h6 {
+   font-size: 110%;
+   font-weight: 200;
+   font-style: italic;
+}
+a:link {
+   color: #00c;
+   background: transparent;
+}
+a:visited {
+   color: #006;
+   background: transparent;
+}
+a:active {
+   color: #fff;
+   background: #006;
+}
+a:hover {
+   color: #fff;
+   background: #006;
+}
+a.moreinfo:link {
+   color: #060;
+   background: transparent;
+}
+a.moreinfo:visited {
+   color: #060;
+   background: transparent;
+}
+a.moreinfo:active {
+   color: #fff;
+   background: #060;
+}
+a.moreinfo:hover {
+   color: #fff;
+   background: #060;
+}
+a.img:hover {
+   color: #00c;
+   background: transparent;
+}
+a.img:active {
+   color: #00c;
+   background: transparent;
+   font-weight: normal;
+}
+a.note:link {
+   color: #999;
+   background: transparent;
+}
+a.note:visited {
+   color: #999;
+   background: transparent;
+}
+a.note:active {
+   color: #fff;
+   background: #999;
+}
+a.note:hover {
+   color: #fff;
+   background: #999;
+}
+a.navtrail:link {
+   color: #006;
+   background: transparent;
+}
+a.navtrail:visited {
+   color: #006;
+   background: transparent;
+}
+a.navtrail:active {
+   color: #fff;
+   background: #006;
+}
+a.navtrail:hover {
+   color: #fff;
+   background: #006;
+}
+.pageheader {
+   color: #999;
+   background: transparent;
+}
+.pagefooter {
+   color: #999;
+   background: transparent;
+}
+.pagestripeleft {
+   color: #000;
+   background: #fff;
+}
+.pagestripemiddle {
+   color: #000;
+   background: #fff;
+}
+.pagestriperight {
+   color: #000;
+   background: #fff;
+}
+.pageboxlefttop {
+   color: #000;
+   background: #eee;
+}
+.pageboxlefttopadd {
+   color: #000;
+   background: #eee;
+}
+.pageboxleftbottom {
+   color: #000;
+   background: #eee;
+}
+.pageboxleftbottomadd {
+   color: #000;
+   background: #eee;
+}
+.pageboxrighttop {
+   color: #000;
+   background: #eee;
+}
+.pageboxrighttopadd {
+   color: #000;
+   background: #eee;
+}
+.pageboxrightbottom {
+   color: #000;
+   background: #eee;
+}
+.pageboxrightbottomadd {
+   color: #000;
+   background: #eee;
+}
+.headline {
+   color: #006;
+   background: transparent;
+}
+.quicknote {
+   color: #603;
+   background: transparent;
+}
+.important {
+   color: #f00;
+   background: transparent;
+}
+.popupselected {
+   color: #fff;
+   background: #006;
+}
+.results {
+   color: #000;
+   background: #ffc;
+}
+.resultsbis {
+   color: #000;
+   background: #ffe;
+}
+.moreinfo {
+   color: #060;
+   background: transparent;
+}
+.header {
+   color: #000;
+   background: #9cf;
+}
+.headerselected {
+   color: #FFF;
+   background: #006;
+}
+.faq {
+   margin-left: 12%;
+   margin-right: 3%;
+}
+.faqq {
+   margin-left: 18%;
+   margin-right: 3%;
+}
+.example {
+   color: #039;
+   background: transparent;
+}
+.blocknote {
+   color: #000;
+   background: #ccc;
+}
+.blocknotebis {
+   color: #000;
+   background: #999;
+}
+.devel {
+   color: #600;
+   background: #fff;
+   border-color: #600;
+   border-left-width: medium;
+   border-left-style: solid;
+   font-size: 90%;
+}
+.normal {
+   color: #000;
+   background: #fff;
+}
+.address {
+   font-family: "Helvetica", "Arial", sans-serif;
+   font-style: normal;
+   font-size: x-small;
+}
+.navtrail {
+   color: #006;
+   background: transparent;
+}
+.note {
+   color: #999;
+   background: transparent;
+}
+.warning {
+   color: #999;
+   background: transparent;
+}
+.light {
+   color: #ccc;
+   background: transparent;
+}
+.nbdoccoll {
+   color: #999;
+   background: transparent;
+}
+hr {
+    width: 100%;
+    height: 1px;
+    color: #999;
+    background-color: #999;
+    border-width: 0;    
+}
+/* end of cds.css */
diff --git a/modules/webstyle/css/cds.css.wml b/modules/webstyle/css/cds.css.wml
new file mode 100644
index 000000000..e1377586a
--- /dev/null
+++ b/modules/webstyle/css/cds.css.wml
@@ -0,0 +1,272 @@
+/* CDSware style sheet */
+/* $Id$ */
+body {
+   color: #000;
+   background: #fff;
+   font-family: helvetica, arial, sans-serif;
+}
+p,br,dl,strong,em,h1,h2,h3,h4,h5,h6,td,blockquote,ol,ul {
+   font-family: helvetica, arial, sans-serif;
+}
+pre,code {
+   font-family: monospace;
+}
+h1 {
+   font-size: 173%;
+   font-weight: 700;
+   margin-left: 0%;
+}
+.h1 {
+   font-size: 173%;
+   font-weight: 700;
+   margin-left: 0%;
+}
+h2 {
+   font-size: 144%;
+   font-weight: 650;
+   margin-left: 0%;
+}
+h3 {
+   font-size: 120%;
+   font-weight: 600;
+   font-style: italic;
+}
+h4 {
+   font-size: 110%;
+   font-weight: 600;
+}
+h5 {
+   font-size: 110%;
+   font-weight: 300;
+}
+h6 {
+   font-size: 110%;
+   font-weight: 200;
+   font-style: italic;
+}
+a:link {
+   color: #00c;
+   background: transparent;
+}
+a:visited {
+   color: #006;
+   background: transparent;
+}
+a:active {
+   color: #fff;
+   background: #006;
+}
+a:hover {
+   color: #fff;
+   background: #006;
+}
+a.moreinfo:link {
+   color: #060;
+   background: transparent;
+}
+a.moreinfo:visited {
+   color: #060;
+   background: transparent;
+}
+a.moreinfo:active {
+   color: #fff;
+   background: #060;
+}
+a.moreinfo:hover {
+   color: #fff;
+   background: #060;
+}
+a.img:hover {
+   color: #00c;
+   background: transparent;
+}
+a.img:active {
+   color: #00c;
+   background: transparent;
+   font-weight: normal;
+}
+a.note:link {
+   color: #999;
+   background: transparent;
+}
+a.note:visited {
+   color: #999;
+   background: transparent;
+}
+a.note:active {
+   color: #fff;
+   background: #999;
+}
+a.note:hover {
+   color: #fff;
+   background: #999;
+}
+a.navtrail:link {
+   color: #006;
+   background: transparent;
+}
+a.navtrail:visited {
+   color: #006;
+   background: transparent;
+}
+a.navtrail:active {
+   color: #fff;
+   background: #006;
+}
+a.navtrail:hover {
+   color: #fff;
+   background: #006;
+}
+.pageheader {
+   color: #999;
+   background: transparent;
+}
+.pagefooter {
+   color: #999;
+   background: transparent;
+}
+.pagestripeleft {
+   color: #000;
+   background: #fff;
+}
+.pagestripemiddle {
+   color: #000;
+   background: #fff;
+}
+.pagestriperight {
+   color: #000;
+   background: #fff;
+}
+.pageboxlefttop {
+   color: #000;
+   background: #eee;
+}
+.pageboxlefttopadd {
+   color: #000;
+   background: #eee;
+}
+.pageboxleftbottom {
+   color: #000;
+   background: #eee;
+}
+.pageboxleftbottomadd {
+   color: #000;
+   background: #eee;
+}
+.pageboxrighttop {
+   color: #000;
+   background: #eee;
+}
+.pageboxrighttopadd {
+   color: #000;
+   background: #eee;
+}
+.pageboxrightbottom {
+   color: #000;
+   background: #eee;
+}
+.pageboxrightbottomadd {
+   color: #000;
+   background: #eee;
+}
+.headline {
+   color: #006;
+   background: transparent;
+}
+.quicknote {
+   color: #603;
+   background: transparent;
+}
+.important {
+   color: #f00;
+   background: transparent;
+}
+.popupselected {
+   color: #fff;
+   background: #006;
+}
+.results {
+   color: #000;
+   background: #ffc;
+}
+.resultsbis {
+   color: #000;
+   background: #ffe;
+}
+.moreinfo {
+   color: #060;
+   background: transparent;
+}
+.header {
+   color: #000;
+   background: #9cf;
+}
+.headerselected {
+   color: #FFF;
+   background: #006;
+}
+.faq {
+   margin-left: 12%;
+   margin-right: 3%;
+}
+.faqq {
+   margin-left: 18%;
+   margin-right: 3%;
+}
+.example {
+   color: #039;
+   background: transparent;
+}
+.blocknote {
+   color: #000;
+   background: #ccc;
+}
+.blocknotebis {
+   color: #000;
+   background: #999;
+}
+.devel {
+   color: #600;
+   background: #fff;
+   border-color: #600;
+   border-left-width: medium;
+   border-left-style: solid;
+   font-size: 90%;
+}
+.normal {
+   color: #000;
+   background: #fff;
+}
+.address {
+   font-family: "Helvetica", "Arial", sans-serif;
+   font-style: normal;
+   font-size: x-small;
+}
+.navtrail {
+   color: #006;
+   background: transparent;
+}
+.note {
+   color: #999;
+   background: transparent;
+}
+.warning {
+   color: #999;
+   background: transparent;
+}
+.light {
+   color: #ccc;
+   background: transparent;
+}
+.nbdoccoll {
+   color: #999;
+   background: transparent;
+}
+hr {
+    width: 100%;
+    height: 1px;
+    color: #999;
+    background-color: #999;
+    border-width: 0;    
+}
+/* end of cds.css */
diff --git a/modules/webstyle/img/.cvsignore b/modules/webstyle/img/.cvsignore
new file mode 100644
index 000000000..a3409fca7
--- /dev/null
+++ b/modules/webstyle/img/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*~
\ No newline at end of file
diff --git a/modules/webstyle/img/Makefile.am b/modules/webstyle/img/Makefile.am
new file mode 100644
index 000000000..9b405e9d1
--- /dev/null
+++ b/modules/webstyle/img/Makefile.am
@@ -0,0 +1,25 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+gifsdir=$(WEBDIR)/img
+gifs_DATA = $(wildcard *.gif *.jpg)
+
+EXTRA_DIST = $(gifs_DATA)
+
+CLEANFILES = *~ *.tmp
\ No newline at end of file
diff --git a/modules/webstyle/img/answer_bad.gif b/modules/webstyle/img/answer_bad.gif
new file mode 100644
index 000000000..d82f6a783
Binary files /dev/null and b/modules/webstyle/img/answer_bad.gif differ
diff --git a/modules/webstyle/img/approval_button.gif b/modules/webstyle/img/approval_button.gif
new file mode 100644
index 000000000..b13fb42c4
Binary files /dev/null and b/modules/webstyle/img/approval_button.gif differ
diff --git a/modules/webstyle/img/approve_button.gif b/modules/webstyle/img/approve_button.gif
new file mode 100644
index 000000000..e0af91fce
Binary files /dev/null and b/modules/webstyle/img/approve_button.gif differ
diff --git a/modules/webstyle/img/blank_button.gif b/modules/webstyle/img/blank_button.gif
new file mode 100644
index 000000000..4fcefb6b2
Binary files /dev/null and b/modules/webstyle/img/blank_button.gif differ
diff --git a/modules/webstyle/img/blankicon.gif b/modules/webstyle/img/blankicon.gif
new file mode 100644
index 000000000..7e6a07fbd
Binary files /dev/null and b/modules/webstyle/img/blankicon.gif differ
diff --git a/modules/webstyle/img/cover_button.gif b/modules/webstyle/img/cover_button.gif
new file mode 100644
index 000000000..dfa711b13
Binary files /dev/null and b/modules/webstyle/img/cover_button.gif differ
diff --git a/modules/webstyle/img/cross_red.gif b/modules/webstyle/img/cross_red.gif
new file mode 100644
index 000000000..cb07d6fd0
Binary files /dev/null and b/modules/webstyle/img/cross_red.gif differ
diff --git a/modules/webstyle/img/delete_button.gif b/modules/webstyle/img/delete_button.gif
new file mode 100644
index 000000000..e6dab3911
Binary files /dev/null and b/modules/webstyle/img/delete_button.gif differ
diff --git a/modules/webstyle/img/description.gif b/modules/webstyle/img/description.gif
new file mode 100644
index 000000000..30619bcbb
Binary files /dev/null and b/modules/webstyle/img/description.gif differ
diff --git a/modules/webstyle/img/down-trans.gif b/modules/webstyle/img/down-trans.gif
new file mode 100644
index 000000000..9ff858d53
Binary files /dev/null and b/modules/webstyle/img/down-trans.gif differ
diff --git a/modules/webstyle/img/down.gif b/modules/webstyle/img/down.gif
new file mode 100644
index 000000000..4528b38f3
Binary files /dev/null and b/modules/webstyle/img/down.gif differ
diff --git a/modules/webstyle/img/edit1.gif b/modules/webstyle/img/edit1.gif
new file mode 100644
index 000000000..01e442bfa
Binary files /dev/null and b/modules/webstyle/img/edit1.gif differ
diff --git a/modules/webstyle/img/forbidden_left.gif b/modules/webstyle/img/forbidden_left.gif
new file mode 100644
index 000000000..9fc11933e
Binary files /dev/null and b/modules/webstyle/img/forbidden_left.gif differ
diff --git a/modules/webstyle/img/forbidden_right.gif b/modules/webstyle/img/forbidden_right.gif
new file mode 100644
index 000000000..659437959
Binary files /dev/null and b/modules/webstyle/img/forbidden_right.gif differ
diff --git a/modules/webstyle/img/guide_elements.jpg b/modules/webstyle/img/guide_elements.jpg
new file mode 100644
index 000000000..aee0b78a3
Binary files /dev/null and b/modules/webstyle/img/guide_elements.jpg differ
diff --git a/modules/webstyle/img/guide_endaction.jpg b/modules/webstyle/img/guide_endaction.jpg
new file mode 100644
index 000000000..fcc0a8cac
Binary files /dev/null and b/modules/webstyle/img/guide_endaction.jpg differ
diff --git a/modules/webstyle/img/guide_form.jpg b/modules/webstyle/img/guide_form.jpg
new file mode 100644
index 000000000..e49b659a4
Binary files /dev/null and b/modules/webstyle/img/guide_form.jpg differ
diff --git a/modules/webstyle/img/guide_implement.jpg b/modules/webstyle/img/guide_implement.jpg
new file mode 100644
index 000000000..610625213
Binary files /dev/null and b/modules/webstyle/img/guide_implement.jpg differ
diff --git a/modules/webstyle/img/guide_listfunctions.jpg b/modules/webstyle/img/guide_listfunctions.jpg
new file mode 100644
index 000000000..b97b97456
Binary files /dev/null and b/modules/webstyle/img/guide_listfunctions.jpg differ
diff --git a/modules/webstyle/img/guide_mainmenu.jpg b/modules/webstyle/img/guide_mainmenu.jpg
new file mode 100644
index 000000000..a78d16458
Binary files /dev/null and b/modules/webstyle/img/guide_mainmenu.jpg differ
diff --git a/modules/webstyle/img/guide_menudoc.jpg b/modules/webstyle/img/guide_menudoc.jpg
new file mode 100644
index 000000000..dfc2eace9
Binary files /dev/null and b/modules/webstyle/img/guide_menudoc.jpg differ
diff --git a/modules/webstyle/img/guide_menupages.jpg b/modules/webstyle/img/guide_menupages.jpg
new file mode 100644
index 000000000..6566591dc
Binary files /dev/null and b/modules/webstyle/img/guide_menupages.jpg differ
diff --git a/modules/webstyle/img/guide_preview.jpg b/modules/webstyle/img/guide_preview.jpg
new file mode 100644
index 000000000..355ee8073
Binary files /dev/null and b/modules/webstyle/img/guide_preview.jpg differ
diff --git a/modules/webstyle/img/highlight_approval_button.gif b/modules/webstyle/img/highlight_approval_button.gif
new file mode 100644
index 000000000..0b712ad80
Binary files /dev/null and b/modules/webstyle/img/highlight_approval_button.gif differ
diff --git a/modules/webstyle/img/highlight_approve_button.gif b/modules/webstyle/img/highlight_approve_button.gif
new file mode 100644
index 000000000..1a8435821
Binary files /dev/null and b/modules/webstyle/img/highlight_approve_button.gif differ
diff --git a/modules/webstyle/img/highlight_cover_button.gif b/modules/webstyle/img/highlight_cover_button.gif
new file mode 100644
index 000000000..258b3faaa
Binary files /dev/null and b/modules/webstyle/img/highlight_cover_button.gif differ
diff --git a/modules/webstyle/img/highlight_delete_button.gif b/modules/webstyle/img/highlight_delete_button.gif
new file mode 100644
index 000000000..d51203d8b
Binary files /dev/null and b/modules/webstyle/img/highlight_delete_button.gif differ
diff --git a/modules/webstyle/img/highlight_link_button.gif b/modules/webstyle/img/highlight_link_button.gif
new file mode 100644
index 000000000..f2ba4678a
Binary files /dev/null and b/modules/webstyle/img/highlight_link_button.gif differ
diff --git a/modules/webstyle/img/highlight_modify_button.gif b/modules/webstyle/img/highlight_modify_button.gif
new file mode 100644
index 000000000..4df25663f
Binary files /dev/null and b/modules/webstyle/img/highlight_modify_button.gif differ
diff --git a/modules/webstyle/img/highlight_printshop_button.gif b/modules/webstyle/img/highlight_printshop_button.gif
new file mode 100644
index 000000000..b87b304de
Binary files /dev/null and b/modules/webstyle/img/highlight_printshop_button.gif differ
diff --git a/modules/webstyle/img/highlight_publication_button.gif b/modules/webstyle/img/highlight_publication_button.gif
new file mode 100644
index 000000000..d364618ad
Binary files /dev/null and b/modules/webstyle/img/highlight_publication_button.gif differ
diff --git a/modules/webstyle/img/highlight_release_button.gif b/modules/webstyle/img/highlight_release_button.gif
new file mode 100644
index 000000000..55ca55906
Binary files /dev/null and b/modules/webstyle/img/highlight_release_button.gif differ
diff --git a/modules/webstyle/img/highlight_revision_button.gif b/modules/webstyle/img/highlight_revision_button.gif
new file mode 100644
index 000000000..2e74da734
Binary files /dev/null and b/modules/webstyle/img/highlight_revision_button.gif differ
diff --git a/modules/webstyle/img/highlight_send_button.gif b/modules/webstyle/img/highlight_send_button.gif
new file mode 100644
index 000000000..951e31e7b
Binary files /dev/null and b/modules/webstyle/img/highlight_send_button.gif differ
diff --git a/modules/webstyle/img/highlight_submit_button.gif b/modules/webstyle/img/highlight_submit_button.gif
new file mode 100644
index 000000000..afddbbc22
Binary files /dev/null and b/modules/webstyle/img/highlight_submit_button.gif differ
diff --git a/modules/webstyle/img/highlight_transfer_button.gif b/modules/webstyle/img/highlight_transfer_button.gif
new file mode 100644
index 000000000..a616787c9
Binary files /dev/null and b/modules/webstyle/img/highlight_transfer_button.gif differ
diff --git a/modules/webstyle/img/iconcross.gif b/modules/webstyle/img/iconcross.gif
new file mode 100644
index 000000000..cb07d6fd0
Binary files /dev/null and b/modules/webstyle/img/iconcross.gif differ
diff --git a/modules/webstyle/img/iconpen.gif b/modules/webstyle/img/iconpen.gif
new file mode 100644
index 000000000..5a2625b87
Binary files /dev/null and b/modules/webstyle/img/iconpen.gif differ
diff --git a/modules/webstyle/img/last-right-part-trans.gif b/modules/webstyle/img/last-right-part-trans.gif
new file mode 100644
index 000000000..4795c9911
Binary files /dev/null and b/modules/webstyle/img/last-right-part-trans.gif differ
diff --git a/modules/webstyle/img/left-part-topless-trans.gif b/modules/webstyle/img/left-part-topless-trans.gif
new file mode 100644
index 000000000..e1f62c704
Binary files /dev/null and b/modules/webstyle/img/left-part-topless-trans.gif differ
diff --git a/modules/webstyle/img/left-part-trans.gif b/modules/webstyle/img/left-part-trans.gif
new file mode 100644
index 000000000..12eda126f
Binary files /dev/null and b/modules/webstyle/img/left-part-trans.gif differ
diff --git a/modules/webstyle/img/left-trans.gif b/modules/webstyle/img/left-trans.gif
new file mode 100644
index 000000000..daf02e22a
Binary files /dev/null and b/modules/webstyle/img/left-trans.gif differ
diff --git a/modules/webstyle/img/left.gif b/modules/webstyle/img/left.gif
new file mode 100644
index 000000000..17e9e78cc
Binary files /dev/null and b/modules/webstyle/img/left.gif differ
diff --git a/modules/webstyle/img/line-up-trans.gif b/modules/webstyle/img/line-up-trans.gif
new file mode 100644
index 000000000..0f1392fc7
Binary files /dev/null and b/modules/webstyle/img/line-up-trans.gif differ
diff --git a/modules/webstyle/img/line.gif b/modules/webstyle/img/line.gif
new file mode 100644
index 000000000..26735dd15
Binary files /dev/null and b/modules/webstyle/img/line.gif differ
diff --git a/modules/webstyle/img/link_button.gif b/modules/webstyle/img/link_button.gif
new file mode 100644
index 000000000..b5da33d87
Binary files /dev/null and b/modules/webstyle/img/link_button.gif differ
diff --git a/modules/webstyle/img/mainmenu.gif b/modules/webstyle/img/mainmenu.gif
new file mode 100644
index 000000000..61c97cd06
Binary files /dev/null and b/modules/webstyle/img/mainmenu.gif differ
diff --git a/modules/webstyle/img/modify_button.gif b/modules/webstyle/img/modify_button.gif
new file mode 100644
index 000000000..0f7bf5e15
Binary files /dev/null and b/modules/webstyle/img/modify_button.gif differ
diff --git a/modules/webstyle/img/noway.gif b/modules/webstyle/img/noway.gif
new file mode 100644
index 000000000..e8de6e8b2
Binary files /dev/null and b/modules/webstyle/img/noway.gif differ
diff --git a/modules/webstyle/img/okay.gif b/modules/webstyle/img/okay.gif
new file mode 100644
index 000000000..43f7b3a0a
Binary files /dev/null and b/modules/webstyle/img/okay.gif differ
diff --git a/modules/webstyle/img/out.gif b/modules/webstyle/img/out.gif
new file mode 100644
index 000000000..e6773a7d8
Binary files /dev/null and b/modules/webstyle/img/out.gif differ
diff --git a/modules/webstyle/img/printshop_button.gif b/modules/webstyle/img/printshop_button.gif
new file mode 100644
index 000000000..c8784a9ae
Binary files /dev/null and b/modules/webstyle/img/printshop_button.gif differ
diff --git a/modules/webstyle/img/publication_button.gif b/modules/webstyle/img/publication_button.gif
new file mode 100644
index 000000000..30eef8a18
Binary files /dev/null and b/modules/webstyle/img/publication_button.gif differ
diff --git a/modules/webstyle/img/r.gif b/modules/webstyle/img/r.gif
new file mode 100644
index 000000000..9dac02a51
Binary files /dev/null and b/modules/webstyle/img/r.gif differ
diff --git a/modules/webstyle/img/release_button.gif b/modules/webstyle/img/release_button.gif
new file mode 100644
index 000000000..3226d31a2
Binary files /dev/null and b/modules/webstyle/img/release_button.gif differ
diff --git a/modules/webstyle/img/revision_button.gif b/modules/webstyle/img/revision_button.gif
new file mode 100644
index 000000000..f0b6ccb9e
Binary files /dev/null and b/modules/webstyle/img/revision_button.gif differ
diff --git a/modules/webstyle/img/right-part-topless-trans.gif b/modules/webstyle/img/right-part-topless-trans.gif
new file mode 100644
index 000000000..4795c9911
Binary files /dev/null and b/modules/webstyle/img/right-part-topless-trans.gif differ
diff --git a/modules/webstyle/img/right-part-trans.gif b/modules/webstyle/img/right-part-trans.gif
new file mode 100644
index 000000000..35b282471
Binary files /dev/null and b/modules/webstyle/img/right-part-trans.gif differ
diff --git a/modules/webstyle/img/right-trans.gif b/modules/webstyle/img/right-trans.gif
new file mode 100644
index 000000000..d54a8be31
Binary files /dev/null and b/modules/webstyle/img/right-trans.gif differ
diff --git a/modules/webstyle/img/right.gif b/modules/webstyle/img/right.gif
new file mode 100644
index 000000000..002000a93
Binary files /dev/null and b/modules/webstyle/img/right.gif differ
diff --git a/modules/webstyle/img/sb.gif b/modules/webstyle/img/sb.gif
new file mode 100644
index 000000000..3311e03ec
Binary files /dev/null and b/modules/webstyle/img/sb.gif differ
diff --git a/modules/webstyle/img/sclose.gif b/modules/webstyle/img/sclose.gif
new file mode 100644
index 000000000..221df1580
Binary files /dev/null and b/modules/webstyle/img/sclose.gif differ
diff --git a/modules/webstyle/img/se.gif b/modules/webstyle/img/se.gif
new file mode 100644
index 000000000..9a60b4ea7
Binary files /dev/null and b/modules/webstyle/img/se.gif differ
diff --git a/modules/webstyle/img/send_button.gif b/modules/webstyle/img/send_button.gif
new file mode 100644
index 000000000..a143133bb
Binary files /dev/null and b/modules/webstyle/img/send_button.gif differ
diff --git a/modules/webstyle/img/smallbin.gif b/modules/webstyle/img/smallbin.gif
new file mode 100644
index 000000000..923afc8b4
Binary files /dev/null and b/modules/webstyle/img/smallbin.gif differ
diff --git a/modules/webstyle/img/smalldown.gif b/modules/webstyle/img/smalldown.gif
new file mode 100644
index 000000000..e13858462
Binary files /dev/null and b/modules/webstyle/img/smalldown.gif differ
diff --git a/modules/webstyle/img/smallfiles.gif b/modules/webstyle/img/smallfiles.gif
new file mode 100644
index 000000000..fb77711f8
Binary files /dev/null and b/modules/webstyle/img/smallfiles.gif differ
diff --git a/modules/webstyle/img/smallup.gif b/modules/webstyle/img/smallup.gif
new file mode 100644
index 000000000..a9c0ad291
Binary files /dev/null and b/modules/webstyle/img/smallup.gif differ
diff --git a/modules/webstyle/img/smchk_gr.gif b/modules/webstyle/img/smchk_gr.gif
new file mode 100644
index 000000000..f0fb318b7
Binary files /dev/null and b/modules/webstyle/img/smchk_gr.gif differ
diff --git a/modules/webstyle/img/smchk_rd.gif b/modules/webstyle/img/smchk_rd.gif
new file mode 100644
index 000000000..0e9493951
Binary files /dev/null and b/modules/webstyle/img/smchk_rd.gif differ
diff --git a/modules/webstyle/img/sn.gif b/modules/webstyle/img/sn.gif
new file mode 100644
index 000000000..bf50f6011
Binary files /dev/null and b/modules/webstyle/img/sn.gif differ
diff --git a/modules/webstyle/img/sp.gif b/modules/webstyle/img/sp.gif
new file mode 100644
index 000000000..e4952c453
Binary files /dev/null and b/modules/webstyle/img/sp.gif differ
diff --git a/modules/webstyle/img/submit_button.gif b/modules/webstyle/img/submit_button.gif
new file mode 100644
index 000000000..f4638a93f
Binary files /dev/null and b/modules/webstyle/img/submit_button.gif differ
diff --git a/modules/webstyle/img/summary.gif b/modules/webstyle/img/summary.gif
new file mode 100644
index 000000000..67c523400
Binary files /dev/null and b/modules/webstyle/img/summary.gif differ
diff --git a/modules/webstyle/img/tick.gif b/modules/webstyle/img/tick.gif
new file mode 100644
index 000000000..6b144d046
Binary files /dev/null and b/modules/webstyle/img/tick.gif differ
diff --git a/modules/webstyle/img/transfer_button.gif b/modules/webstyle/img/transfer_button.gif
new file mode 100644
index 000000000..561526f10
Binary files /dev/null and b/modules/webstyle/img/transfer_button.gif differ
diff --git a/modules/webstyle/img/up.gif b/modules/webstyle/img/up.gif
new file mode 100644
index 000000000..38f1b67fc
Binary files /dev/null and b/modules/webstyle/img/up.gif differ
diff --git a/modules/webstyle/img/waiting_or.gif b/modules/webstyle/img/waiting_or.gif
new file mode 100644
index 000000000..b99605d1e
Binary files /dev/null and b/modules/webstyle/img/waiting_or.gif differ
diff --git a/modules/webstyle/lib/.cvsignore b/modules/webstyle/lib/.cvsignore
new file mode 100644
index 000000000..9928cf5cf
--- /dev/null
+++ b/modules/webstyle/lib/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+z_*
+*.O
+*.shtml
+*.py
+*~
\ No newline at end of file
diff --git a/modules/webstyle/lib/Makefile.am b/modules/webstyle/lib/Makefile.am
new file mode 100644
index 000000000..02a647e82
--- /dev/null
+++ b/modules/webstyle/lib/Makefile.am
@@ -0,0 +1,28 @@
+## $Id$
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+pylibdir=$(libdir)/python/cdsware
+pylib_DATA=webpage.py
+
+EXTRA_DIST = $(wildcard *.wml)
+
+CLEANFILES = $(pylib_DATA) *~ *.tmp *.pyc
+
+%.py: %.py.wml ../../../config/config.wml ../../../config/configbis.wml
+	$(WML) -o $@ $<
\ No newline at end of file
diff --git a/modules/webstyle/lib/webpage.py b/modules/webstyle/lib/webpage.py
new file mode 100644
index 000000000..316569da3
--- /dev/null
+++ b/modules/webstyle/lib/webpage.py
@@ -0,0 +1,140 @@
+## $Id$
+## CDSware Web Page Template.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""CDSware Web Page Template"""
+
+page_template_header = """
+<!-- DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware SOURCES. LOOK THERE FOR THE COPYRIGHT INFO. -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title><CDSNAME>: %s</title>
+ <link rev="made" href="mailto:<SUPPORTEMAIL>">
+ <link rel="stylesheet" href="<HTDOCSURL>img/cds.css">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="description" content="%s">
+ <meta name="keywords" content="%s">
+</head>
+<body>
+<div class="pageheader">
+%s
+%s
+</div>
+""" 
+
+page_template_footer = """
+<div class="pagefooter">
+%s
+%s
+</div>
+</body>
+</html>
+"""
+
+page_template_portal = """
+<table border="0" cellspacing="0" cellpadding="0" width="100%%">
+ <tr>
+  <td class="pagestripeleft" width="<CDSPAGESTRIPEWIDTH>" align="left" valign="top">
+    <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+       <tr class="pageboxlefttop" valign="top">
+        <td width="<CDSPAGESTRIPEWIDTH>">
+          <!--navbar-->
+        </td>
+       </tr>
+       <tr class="pageboxlefttop" valign="top">
+         <td width="<CDSPAGESTRIPEWIDTH>">
+          <CDSPAGEBOXLEFTTOP>
+          <!--lefttopboxadd-->
+         </td>
+       </tr>
+    </table>
+  </td>
+
+  <td class="pagestripemiddle" width="5" align="left" valign="top" rowspan="2">
+  </td>
+  <td class="pagestripemiddle" align="left" valign="top" rowspan="2">
+   <strong class="headline"><span class="h1">%s</span></strong>
+   <!--navtrail-->
+   <p>
+   %s
+  </td>
+  <td class="pagestripemiddle" width="5" align="left" valign="top" rowspan="2">
+  </td>
+
+  <td class="pagestriperight" width="<CDSPAGESTRIPEWIDTH>" align="right" valign="top">
+    <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+          <tr>
+           <td class="pageboxrighttop" width="<CDSPAGESTRIPEWIDTH>">
+            <CDSPAGEBOXRIGHTTOP>
+            <!--righttopadd-->
+           </td>
+          </tr>
+    </table>
+  </td>
+ </tr>
+
+ <tr>
+  <td class="pagestripeleft" width="<CDSPAGESTRIPEWIDTH>" align="left" valign="bottom">
+     <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+       <tr valign="bottom">
+        <td class="pageboxleftbottom" width="<CDSPAGESTRIPEWIDTH>">
+         <!--leftbottomadd-->
+         <CDSPAGEBOXLEFTBOTTOM>
+        </td>
+       </tr>
+     </table>
+  </td>  
+  <td class="pagestriperight" width="<CDSPAGESTRIPEWIDTH>" align="right" valign="bottom">
+     <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+       <tr valign="bottom">
+        <td class="pageboxrightbottom" width="<CDSPAGESTRIPEWIDTH>">
+         <!--rightbottomadd-->
+         <CDSPAGEBOXRIGHTBOTTOM>
+        </td>
+       </tr>
+     </table>
+  </td>
+ </tr> 
+</table>
+"""
+
+def page(title, body, url="", description="", keywords="", cdspageheaderadd="", cdspagefooteradd=""):
+    """page(): display the cds page
+        input: title of the page;
+               body of the page in html format;
+               url to be displayed at the bottom right corner;
+               description goes to the metadata in the header of the HTML page
+               keywords goes to the metadata in the header of the html page
+               cdspageheaderadd is a message to be displayed just under the page header
+               cdspagefooteradd is a message to be dusplayed on the top of the page footer
+       output: the final cds page with header, footer, etc.
+    """
+    out = ""
+    out += page_template_header % (title, description, keywords, cdspageheader, cdspageheaderadd)
+    out += page_template_portal % (title, body)
+    out += page_template_footer % (cdspagefooteradd, re.sub("<!--URL-->", url, cdspagefooter))
+    return out
diff --git a/modules/webstyle/lib/webpage.py.wml b/modules/webstyle/lib/webpage.py.wml
new file mode 100644
index 000000000..316569da3
--- /dev/null
+++ b/modules/webstyle/lib/webpage.py.wml
@@ -0,0 +1,140 @@
+## $Id$
+## CDSware Web Page Template.
+
+## This file is part of the CERN Document Server Software (CDSware).
+## Copyright (C) 2002 CERN.
+##
+## The CDSware is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2 of the
+## License, or (at your option) any later version.
+##
+## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+## read config variables:
+#include "config.wml"
+#include "configbis.wml"
+
+## start Python:
+<protect>## $Id$</protect>
+<protect>## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.</protect>
+"""CDSware Web Page Template"""
+
+page_template_header = """
+<!-- DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware SOURCES. LOOK THERE FOR THE COPYRIGHT INFO. -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title><CDSNAME>: %s</title>
+ <link rev="made" href="mailto:<SUPPORTEMAIL>">
+ <link rel="stylesheet" href="<HTDOCSURL>img/cds.css">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="description" content="%s">
+ <meta name="keywords" content="%s">
+</head>
+<body>
+<div class="pageheader">
+%s
+%s
+</div>
+""" 
+
+page_template_footer = """
+<div class="pagefooter">
+%s
+%s
+</div>
+</body>
+</html>
+"""
+
+page_template_portal = """
+<table border="0" cellspacing="0" cellpadding="0" width="100%%">
+ <tr>
+  <td class="pagestripeleft" width="<CDSPAGESTRIPEWIDTH>" align="left" valign="top">
+    <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+       <tr class="pageboxlefttop" valign="top">
+        <td width="<CDSPAGESTRIPEWIDTH>">
+          <!--navbar-->
+        </td>
+       </tr>
+       <tr class="pageboxlefttop" valign="top">
+         <td width="<CDSPAGESTRIPEWIDTH>">
+          <CDSPAGEBOXLEFTTOP>
+          <!--lefttopboxadd-->
+         </td>
+       </tr>
+    </table>
+  </td>
+
+  <td class="pagestripemiddle" width="5" align="left" valign="top" rowspan="2">
+  </td>
+  <td class="pagestripemiddle" align="left" valign="top" rowspan="2">
+   <strong class="headline"><span class="h1">%s</span></strong>
+   <!--navtrail-->
+   <p>
+   %s
+  </td>
+  <td class="pagestripemiddle" width="5" align="left" valign="top" rowspan="2">
+  </td>
+
+  <td class="pagestriperight" width="<CDSPAGESTRIPEWIDTH>" align="right" valign="top">
+    <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+          <tr>
+           <td class="pageboxrighttop" width="<CDSPAGESTRIPEWIDTH>">
+            <CDSPAGEBOXRIGHTTOP>
+            <!--righttopadd-->
+           </td>
+          </tr>
+    </table>
+  </td>
+ </tr>
+
+ <tr>
+  <td class="pagestripeleft" width="<CDSPAGESTRIPEWIDTH>" align="left" valign="bottom">
+     <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+       <tr valign="bottom">
+        <td class="pageboxleftbottom" width="<CDSPAGESTRIPEWIDTH>">
+         <!--leftbottomadd-->
+         <CDSPAGEBOXLEFTBOTTOM>
+        </td>
+       </tr>
+     </table>
+  </td>  
+  <td class="pagestriperight" width="<CDSPAGESTRIPEWIDTH>" align="right" valign="bottom">
+     <table width="<CDSPAGESTRIPEWIDTH>" cellspacing="0" cellpadding="0" border="0">
+       <tr valign="bottom">
+        <td class="pageboxrightbottom" width="<CDSPAGESTRIPEWIDTH>">
+         <!--rightbottomadd-->
+         <CDSPAGEBOXRIGHTBOTTOM>
+        </td>
+       </tr>
+     </table>
+  </td>
+ </tr> 
+</table>
+"""
+
+def page(title, body, url="", description="", keywords="", cdspageheaderadd="", cdspagefooteradd=""):
+    """page(): display the cds page
+        input: title of the page;
+               body of the page in html format;
+               url to be displayed at the bottom right corner;
+               description goes to the metadata in the header of the HTML page
+               keywords goes to the metadata in the header of the html page
+               cdspageheaderadd is a message to be displayed just under the page header
+               cdspagefooteradd is a message to be dusplayed on the top of the page footer
+       output: the final cds page with header, footer, etc.
+    """
+    out = ""
+    out += page_template_header % (title, description, keywords, cdspageheader, cdspageheaderadd)
+    out += page_template_portal % (title, body)
+    out += page_template_footer % (cdspagefooteradd, re.sub("<!--URL-->", url, cdspagefooter))
+    return out