<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
The possible solution is:<br>
<br>
<blockquote>while read -r OLD_DBKEY OLD_DBVALUE ; do<br>
...<br>
done < $OLD_LIST<br>
</blockquote>
for:<br>
<blockquote>cat $OLD_LIST | \<br>
while read -r OLD_DBKEY OLD_DBVALUE ; do<br>
...<br>
done <br>
</blockquote>
This creates a new child process with diferent variables <br>
<br>
Source: <a
href="http://serverfault.com/questions/259339/bash-variable-loses-value-at-end-of-while-read-loop">http://serverfault.com/questions/259339/bash-variable-loses-value-at-end-of-while-read-loop</a><br>
<br>
Agu<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">El 13/05/2013 10:44 a.m., Agustín Eijo
escribió:<br>
</div>
<blockquote cite="mid:5190EE59.6090409@mpba.gov.ar" type="cite">Sorry,
<br>
<br>
Had he made a mistake in the form of restore and The error is not
"db4.7_recover: Build signature doesn't match environment"
<br>
<br>
Now I think the problem is in the script upgrade-db with the
variable BERKELEY_DB_FOUND
<br>
<br>
The BERKELEY_DB_FOUND is set into the while .. done but out of
while BERKELEY_DB_FOUND is unset and then run:
<br>
<br>
# Remove empty environment
<br>
rm -rf $CONFIG_DIR/db
<br>
<br>
This is the output upgrade-db of with -x
<br>
<br>
/usr/lib/cyrus/bin/upgrade-db
<br>
+ export PATH=/sbin:/usr/sbin:/bin:/usr/bin
<br>
+ LC_ALL=C gawk /^configdirectory:[[:blank:]]/ { print $2 }
<br>
+ CONFIG_DIR=/var/lib/cyrus
<br>
+ date +%Y%m%d-%H%M%S
<br>
+ BACKUP_DIR=/var/backup/cyrus-imapd/20130513-103004
<br>
+ mkdir -p /var/backup/cyrus-imapd/20130513-103004
<br>
+ upgradealldb /usr/lib/cyrus/cyrus-db-types.txt
/usr/lib/cyrus/cyrus-db-types.active
<br>
+ OLD_LIST=/usr/lib/cyrus/cyrus-db-types.active
<br>
+ NEW_LIST=/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ DO_UPGRADE_BDB=
<br>
+ sed -e s/BerkeleyDB//
<br>
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.active
<br>
+ OLD_DBVERSION=4.7
<br>
+ sed -e s/BerkeleyDB//
<br>
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVERSION=5.1
<br>
+ [ 4.7 != 5.1 ]
<br>
+ DO_UPGRADE_BDB=yes
<br>
+ DB_UTIL_NOT_FOUND=
<br>
+ [ ! -x /usr/bin/db4.7_recover ]
<br>
+ [ ! -x /usr/bin/db5.1_upgrade ]
<br>
+ [ -n ]
<br>
+ BERKELEY_DB_FOUND=
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ cat /usr/lib/cyrus/cyrus-db-types.active
<br>
+ LC_ALL=C gawk /^ANNOTATION[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=skiplist
<br>
+ [ -z skiplist ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ skiplist != skiplist ]
<br>
+ DBFILE=
<br>
+ DBFILE=annotations.db
<br>
+ [ -n ]
<br>
+ [ -f /var/lib/cyrus/annotations.db ]
<br>
+ [ -n -o -n yes ]
<br>
+ backupdb annotations.db skiplist 4.7
<br>
+ cp -a /var/lib/cyrus/annotations.db
/var/backup/cyrus-imapd/20130513-103004
<br>
+ [ -n yes ]
<br>
+ [ -n ]
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=BerkeleyDB5.1
<br>
+ [ -z BerkeleyDB5.1 ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ BerkeleyDB5.1 != BerkeleyDB4.7 ]
<br>
+ DO_UPGRADE_DB=yes
<br>
+ DBFILE=
<br>
+ continue
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^DUPLICATE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=skiplist
<br>
+ [ -z skiplist ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ skiplist != berkeley-nosync ]
<br>
+ DO_UPGRADE_DB=yes
<br>
+ DBFILE=
<br>
+ DBFILE=deliver.db
<br>
+ [ -n yes ]
<br>
+ [ -f /var/lib/cyrus/deliver.db ]
<br>
+ [ -n yes -o -n yes ]
<br>
+ backupdb deliver.db berkeley-nosync 4.7
<br>
+ cp -a /var/lib/cyrus/deliver.db
/var/backup/cyrus-imapd/20130513-103004
<br>
+ [ ! -d /var/backup/cyrus-imapd/20130513-103004/db -a -d
/var/lib/cyrus/db ]
<br>
+ mkdir -p /var/backup/cyrus-imapd/20130513-103004/db
<br>
+ su cyrus -c db4.7_recover -h /var/lib/cyrus/db
<br>
+ read log_file
<br>
+ su cyrus -c db4.7_archive -h /var/lib/cyrus/db -l
<br>
+ cp -a /var/lib/cyrus/db/log.0000000001
/var/backup/cyrus-imapd/20130513-103004/db
<br>
+ read log_file
<br>
+ [ -n yes ]
<br>
+ BERKELEY_DB_FOUND=yes
<br>
+ upgradebdb deliver.db 5.1
<br>
+ su cyrus -c db5.1_upgrade -h /var/lib/cyrus/db
/var/lib/cyrus/deliver.db
<br>
+ [ -n yes ]
<br>
+ upgradedb deliver.db berkeley-nosync skiplist
<br>
+ mktemp /tmp/deliver.db.XXXXXXXX
<br>
+ TMPFILE=/tmp/deliver.db.mypy2OBF
<br>
+ /usr/sbin/cvt_cyrusdb /var/lib/cyrus/deliver.db berkeley-nosync
/tmp/deliver.db.mypy2OBF skiplist
<br>
Converting from /var/lib/cyrus/deliver.db (berkeley-nosync) to
/tmp/deliver.db.mypy2OBF (skiplist)
<br>
+ rm -f /var/lib/cyrus/deliver.db
<br>
+ mv /tmp/deliver.db.mypy2OBF /var/lib/cyrus/deliver.db
<br>
+ chown cyrus:mail /var/lib/cyrus/deliver.db
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^MBOX[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=skiplist
<br>
+ [ -z skiplist ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ skiplist != skiplist ]
<br>
+ DBFILE=
<br>
+ DBFILE=mailboxes.db
<br>
+ [ -n ]
<br>
+ [ -f /var/lib/cyrus/mailboxes.db ]
<br>
+ [ -n -o -n yes ]
<br>
+ backupdb mailboxes.db skiplist 4.7
<br>
+ cp -a /var/lib/cyrus/mailboxes.db
/var/backup/cyrus-imapd/20130513-103004
<br>
+ [ -n yes ]
<br>
+ [ -n ]
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^PTS[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=skiplist
<br>
+ [ -z skiplist ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ skiplist != berkeley ]
<br>
+ DO_UPGRADE_DB=yes
<br>
+ DBFILE=
<br>
+ [ -n yes ]
<br>
+ removedb ptscache.db
<br>
+ rm -f /var/lib/cyrus/ptscache.db
<br>
+ continue
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^QUOTA[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=quotalegacy
<br>
+ [ -z quotalegacy ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ quotalegacy != quotalegacy ]
<br>
+ DBFILE=
<br>
+ [ -n ]
<br>
+ [ -n ]
<br>
+ [ -f /var/lib/cyrus/ ]
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^SEEN[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=skiplist
<br>
+ [ -z skiplist ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ skiplist != skiplist ]
<br>
+ DBFILE=
<br>
+ [ -n ]
<br>
+ [ -n ]
<br>
+ [ -f /var/lib/cyrus/ ]
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^SUBS[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=flat
<br>
+ [ -z flat ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ flat != flat ]
<br>
+ DBFILE=
<br>
+ [ -n ]
<br>
+ [ -n ]
<br>
+ [ -f /var/lib/cyrus/ ]
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ LC_ALL=C gawk /^TLS[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
<br>
+ NEW_DBVALUE=skiplist
<br>
+ [ -z skiplist ]
<br>
+ DO_UPGRADE_DB=
<br>
+ [ skiplist != berkeley-nosync ]
<br>
+ DO_UPGRADE_DB=yes
<br>
+ DBFILE=
<br>
+ [ -n yes ]
<br>
+ removedb tls_sessions.db
<br>
+ rm -f /var/lib/cyrus/tls_sessions.db
<br>
+ continue
<br>
+ read -r OLD_DBKEY OLD_DBVALUE
<br>
+ [ -n yes -a -d /var/lib/cyrus/db ]
<br>
+ [ -n ]
<br>
+ rm -rf /var/lib/cyrus/db
<br>
+ return 0
<br>
+ RET=0
<br>
+ [ 0 -eq 0 ]
<br>
+ cp -p /usr/lib/cyrus/cyrus-db-types.txt
/usr/lib/cyrus/cyrus-db-types.active
<br>
+ exit 0
<br>
<br>
And this is my syslog error:
<br>
<br>
/etc/init.d/cyrus-imapd restart
<br>
<br>
May 13 10:31:54 tostadora master[30773]: attempting clean shutdown
on SIGQUIT
<br>
May 13 10:31:54 tostadora cyrus/notify[30802]: recvfrom failed:
Interrupted system call
<br>
May 13 10:31:54 tostadora master[30773]: process 30802 exited,
status 71
<br>
May 13 10:31:54 tostadora master[30773]: All children have exited,
closing down
<br>
May 13 10:31:54 tostadora master[31252]: process started
<br>
May 13 10:31:54 tostadora master[31254]: about to exec
/usr/sbin/ctl_cyrusdb
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR db5:
/var/lib/cyrus/db: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR db5:
/var/lib/cyrus/db/__db.001: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR db5:
/var/lib/cyrus/db: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR db5:
/var/lib/cyrus/db/__db.001: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR:
dbenv->open '/var/lib/cyrus/db' failed: No such file or
directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR:
init() on berkeley
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR:
writing /var/lib/cyrus/db/skipstamp: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: DBERROR:
init() on skiplist
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: recovering
cyrus databases
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: skiplist:
checkpointed /var/lib/cyrus/mailboxes.db (27 records, 2020 bytes)
in 0 seconds
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: skiplist:
checkpointed /var/lib/cyrus/annotations.db (0 records, 144 bytes)
in 0 seconds
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31254]: done
recovering cyrus databases
<br>
May 13 10:31:54 tostadora master[31274]: about to exec
/usr/sbin/cyr_expire
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: DBERROR db5:
/var/lib/cyrus/db/__db.001: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: DBERROR:
dbenv->open '/var/lib/cyrus/db' failed: No such file or
directory
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: DBERROR: init()
on berkeley
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: DBERROR:
reading /var/lib/cyrus/db/skipstamp, assuming the worst: No such
file or directory
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: skiplist:
checkpointed /var/lib/cyrus/annotations.db (0 records, 144 bytes)
in 0 seconds
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: skiplist:
checkpointed /var/lib/cyrus/mailboxes.db (27 records, 2020 bytes)
in 0 seconds
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: skiplist:
checkpointed /var/lib/cyrus/deliver.db (13 records, 1448 bytes) in
0 seconds
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]: Expunged 0 out
of 345 messages from 27 mailboxes
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]:
duplicate_prune: pruning back 3.00 days
<br>
May 13 10:31:54 tostadora cyrus/cyr_expire[31274]:
duplicate_prune: purged 0 out of 13 entries
<br>
May 13 10:31:54 tostadora master[31277]: about to exec
/usr/sbin/tls_prune
<br>
May 13 10:31:54 tostadora cyrus/tls_prune[31277]: DBERROR db5:
/var/lib/cyrus/db/__db.001: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/tls_prune[31277]: DBERROR:
dbenv->open '/var/lib/cyrus/db' failed: No such file or
directory
<br>
May 13 10:31:54 tostadora cyrus/tls_prune[31277]: DBERROR: init()
on berkeley
<br>
May 13 10:31:54 tostadora cyrus/tls_prune[31277]: DBERROR: reading
/var/lib/cyrus/db/skipstamp, assuming the worst: No such file or
directory
<br>
May 13 10:31:54 tostadora cyrus/tls_prune[31277]: DBERROR: opening
/var/lib/cyrus/tls_sessions.db: cyrusdb error
<br>
May 13 10:31:54 tostadora master[31252]: process 31277 exited,
status 1
<br>
May 13 10:31:54 tostadora master[31252]: unable to
setsocketopt(IP_TOS): Operation not supported
<br>
May 13 10:31:54 tostadora master[31252]: unable to
setsocketopt(IP_TOS): Operation not supported
<br>
May 13 10:31:54 tostadora master[31252]: ready for work
<br>
May 13 10:31:54 tostadora master[31281]: about to exec
/usr/lib/cyrus/bin/notifyd
<br>
May 13 10:31:54 tostadora master[31280]: about to exec
/usr/sbin/ctl_cyrusdb
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: DBERROR db5:
/var/lib/cyrus/db/__db.001: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: DBERROR:
dbenv->open '/var/lib/cyrus/db' failed: No such file or
directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: DBERROR:
init() on berkeley
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: DBERROR:
reading /var/lib/cyrus/db/skipstamp, assuming the worst: No such
file or directory
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: checkpointing
cyrus databases
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: archiving
database file: /var/lib/cyrus/mailboxes.db
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: archiving
database file: /var/lib/cyrus/annotations.db
<br>
May 13 10:31:54 tostadora cyrus/ctl_cyrusdb[31280]: done
checkpointing cyrus databases
<br>
May 13 10:31:54 tostadora master[31252]: process 31280 exited,
status 0
<br>
May 13 10:31:54 tostadora cyrus/notify[31281]: DBERROR db5:
/var/lib/cyrus/db/__db.001: No such file or directory
<br>
May 13 10:31:54 tostadora cyrus/notify[31281]: DBERROR:
dbenv->open '/var/lib/cyrus/db' failed: No such file or
directory
<br>
May 13 10:31:54 tostadora cyrus/notify[31281]: DBERROR: init() on
berkeley
<br>
May 13 10:31:54 tostadora cyrus/notify[31281]: DBERROR: reading
/var/lib/cyrus/db/skipstamp, assuming the worst: No such file or
directory
<br>
May 13 10:31:54 tostadora cyrus/notify[31281]: executed
<br>
<br>
<br>
If hardset BERKELEY_DB_FOUND=yes before than:
<br>
<br>
BERKELEY_DB_FOUND=yes
<br>
# Create Berkeley DB checkpoint and remove old logs
<br>
if [ -n "${DO_UPGRADE_BDB}" -a -d $CONFIG_DIR/db ]; then
<br>
if [ -n "${BERKELEY_DB_FOUND}" ]; then
<br>
# Create new checkpoint
<br>
checkpointbdb $NEW_DBVERSION
<br>
else
<br>
# Remove empty environment
<br>
rm -rf $CONFIG_DIR/db
<br>
fi
<br>
fi
<br>
return 0
<br>
<br>
The syslog looks much better:
<br>
<br>
May 13 10:36:15 tostadora master[31319]: attempting clean shutdown
on SIGQUIT
<br>
May 13 10:36:15 tostadora cyrus/notify[31348]: recvfrom failed:
Interrupted system call
<br>
May 13 10:36:15 tostadora master[31319]: process 31348 exited,
status 71
<br>
May 13 10:36:15 tostadora master[31319]: All children have exited,
closing down
<br>
May 13 10:36:15 tostadora master[31439]: process started
<br>
May 13 10:36:16 tostadora master[31442]: about to exec
/usr/sbin/ctl_cyrusdb
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31442]: recovering
cyrus databases
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31442]: skiplist:
checkpointed /var/lib/cyrus/mailboxes.db (27 records, 2020 bytes)
in 0 seconds
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31442]: skiplist:
checkpointed /var/lib/cyrus/annotations.db (0 records, 144 bytes)
in 0 seconds
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31442]: done
recovering cyrus databases
<br>
May 13 10:36:16 tostadora master[31461]: about to exec
/usr/sbin/cyr_expire
<br>
May 13 10:36:16 tostadora cyrus/cyr_expire[31461]: skiplist:
checkpointed /var/lib/cyrus/deliver.db (13 records, 1452 bytes) in
0 seconds
<br>
May 13 10:36:16 tostadora cyrus/cyr_expire[31461]: Expunged 0 out
of 345 messages from 27 mailboxes
<br>
May 13 10:36:16 tostadora cyrus/cyr_expire[31461]:
duplicate_prune: pruning back 3.00 days
<br>
May 13 10:36:16 tostadora cyrus/cyr_expire[31461]:
duplicate_prune: purged 0 out of 13 entries
<br>
May 13 10:36:16 tostadora master[31464]: about to exec
/usr/sbin/tls_prune
<br>
May 13 10:36:16 tostadora cyrus/tls_prune[31464]: DBERROR: opening
/var/lib/cyrus/tls_sessions.db: cyrusdb error
<br>
May 13 10:36:16 tostadora master[31439]: process 31464 exited,
status 1
<br>
May 13 10:36:16 tostadora master[31439]: unable to
setsocketopt(IP_TOS): Operation not supported
<br>
May 13 10:36:16 tostadora master[31439]: unable to
setsocketopt(IP_TOS): Operation not supported
<br>
May 13 10:36:16 tostadora master[31439]: ready for work
<br>
May 13 10:36:16 tostadora master[31468]: about to exec
/usr/lib/cyrus/bin/notifyd
<br>
May 13 10:36:16 tostadora cyrus/notify[31468]: executed
<br>
May 13 10:36:16 tostadora master[31467]: about to exec
/usr/sbin/ctl_cyrusdb
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31467]: checkpointing
cyrus databases
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31467]: archiving
database file: /var/lib/cyrus/mailboxes.db
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31467]: archiving
database file: /var/lib/cyrus/annotations.db
<br>
May 13 10:36:16 tostadora cyrus/ctl_cyrusdb[31467]: done
checkpointing cyrus databases
<br>
May 13 10:36:16 tostadora master[31439]: process 31467 exited,
status 0
<br>
<br>
But I have two problems more:
<br>
<br>
May 13 10:36:16 tostadora cyrus/tls_prune[31464]: DBERROR: opening
/var/lib/cyrus/tls_sessions.db: cyrusdb error
<br>
<br>
May 13 10:36:16 tostadora master[31439]: unable to
setsocketopt(IP_TOS): Operation not supported
<br>
<br>
Thank, Agu.
<br>
<br>
<br>
<br>
<br>
--
<br>
Piense antes de imprimir. Ahorrar papel es cuidar el medio
ambiente.
<br>
<br>
</blockquote>
<br>
<br />
<br />
<hr size="1" color="#009900">
<font color="#009900">
Piense antes de imprimir. Ahorrar papel es cuidar el medio ambiente.
</font>
</body>
</html>