Trace number 3385490

Some explanations

A solver is run under the control of another program named runsolver. runsolver is in charge of imposing the CPU time limit and the memory limit to the solver. It also monitors some information about the process. The trace of the execution of a solver is divided into four (or five) parts:
  1. SOLVER DATA
    This is the output of the solver (stdout and stderr).
    Note that some very long lines in this section may be truncated by your web browser ! In such a case, you may want to use the "Download as text" link to get the trace as a text file.

    When the --timestamp option is passed to the runsolver program, each line output by the solver is prepended with a timestamp which indicates at what time the line was output by the solver. Times are relative to the start of the program, given in seconds. The first timestamp (if present) is estimated CPU time. The last timestamp is wall clock time.

    As some 'v lines' may be very long (sometimes several megabytes), the 'v line' output by your solver may be split on several lines to help limit the size of the trace recorded in the database. In any case, the exact output of your solver is preserved in a trace file.
  2. VERIFIER DATA
    The output of the solver is piped to a verifier program which will search a value line "v " and, if found, will check that the given interpretation satisfies all constraints.
  3. CONVERSION SCRIPT DATA (Optionnal)
    When a conversion script is used, this section shows the messages that were output by the conversion script.
  4. WATCHER DATA
    This is the informations gathered by the runsolver program. It first prints the different limits. There's a first limit on CPU time set to X seconds (see the parameters in the trace). After this time has ellapsed, runsolver sends a SIGTERM and 2 seconds later a SIGKILL to the solver. For safety, there's also another limit set to X+30 seconds which will send a SIGXPU to the solver. The last limit is on the virtual memory used by the process (see the parameters in the trace).
    Every ten seconds, the runsolver process fetches the content of /proc/loadavg, /proc/pid/stat and /proc/pid/statm (see man proc) and prints it as raw data. This is only recorded in case we need to investigate the behaviour of a solver. The memory used by the solver (vsize) is also given every ten seconds.
    When the solver exits, runsolver prints some informations such as status and time. CPU usage is the ratio CPU Time/Real Time.
  5. LAUNCHER DATA
    These informations are related to the script which will launch the solver. The most important informations are the command line given to the solver, the md5sum of the different files and the dump of the /proc/cpuinfo and /proc/meminfo which provides some useful information on the computer.

Solver answer on this benchmark

Solver NameAnswerCPU timeWall clock time
borg-sat 11.03.02-par-random (fixed)SAT 1.92171 4.28291

General information on the benchmark

Namerandom/medium/
unif-k7-r89-v50-c4450-S1430772875-039.SATISFIABLE.cnf
MD5SUMef1a26ad366fa6cdd721df0a7f8f760c
Bench CategoryRANDOM (random instances)
Best result obtained on this benchmarkSAT
Best CPU time to get the best result obtained on this benchmark0.035993
Satisfiable
(Un)Satisfiability was proved
Number of variables50
Number of clauses4450
Sum of the clauses size31150
Maximum clause length7
Minimum clause length7
Number of clauses of size 10
Number of clauses of size 20
Number of clauses of size 30
Number of clauses of size 40
Number of clauses of size 50
Number of clauses of size over 54450

Solver Data

0.44/3.70	c INFO: loaded portfolio from HOME/etc/borg-mix+class.random.pickle
0.44/3.70	c INFO: solving HOME/instance-3385490-1307741600.cnf
0.44/3.70	c INFO: computing task features
0.44/3.73	c INFO: computed variable-clause graph statistics
0.44/3.74	c INFO: computed clause balance statistics
0.64/3.90	c INFO: computed variable balance statistics
0.64/3.96	c INFO: computed small-clause counts
0.64/3.97	c INFO: computed Horn-clause counts
0.64/3.97	c INFO: computed variable graph statistics
0.64/3.97	c INFO: collected features for HOME/instance-3385490-1307741600.cnf in 0.26 s
0.73/4.00	c INFO: running gnovelty+2@0 for 97 with 4999 remaining (b = 0.57)
0.73/4.03	c INFO: running gnovelty+2@0 for 97 with 4999 remaining (b = 0.09)
0.73/4.06	c INFO: running adaptg2wsat2009++@0 for 97 with 4999 remaining (b = 0.04)
0.83/4.10	c INFO: running adaptg2wsat2009++@0 for 97 with 4999 remaining (b = 0.03)
0.83/4.13	c INFO: running adaptg2wsat2009++@0 for 97 with 4999 remaining (b = 0.02)
0.83/4.16	c INFO: running FH@0 for 97 with 4999 remaining (b = 0.02)
0.83/4.20	c INFO: running march_hi@0 for 2134 with 4999 remaining (b = 0.37)
0.99/4.23	c INFO: running march_hi@0 for 2134 with 4999 remaining (b = 0.35)
0.99/4.26	s SATISFIABLE
0.99/4.26	v 1 -2 3 4 5 6 7 -8 -9 -10 -11 12 13 -14 -15 16 -17 -18 19 20 -21 22 23 -24 -25 26 -27 28 -29 -30 31 -32 33 34 35 -36 -37 38 -39 -40 41 -42 -43 44 -45 46 47 48 -49 50 0

Verifier Data

OK

Watcher Data

runsolver Copyright (C) 2010-2011 Olivier ROUSSEL

This is runsolver version 3.3.1 (svn: 988)

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

command line: BIN/runsolver --timestamp -w /tmp/evaluation-result-3385490-1307741600/watcher-3385490-1307741600 -o /tmp/evaluation-result-3385490-1307741600/solver-3385490-1307741600 -C 40000 -W 5100 -M 31000 python HOME/solve HOME/etc/borg-mix+class.random.pickle HOME/instance-3385490-1307741600.cnf -seed 1907577660 -budget 40000 -cores 8 

running on 8 cores: 0,2,4,6,1,3,5,7

Enforcing CPUTime limit (soft limit, will send SIGTERM then SIGKILL): 40000 seconds
Enforcing CPUTime limit (hard limit, will send SIGXCPU): 40030 seconds
Enforcing wall clock limit (soft limit, will send SIGTERM then SIGKILL): 5100 seconds
Enforcing VSIZE limit (soft limit, will send SIGTERM then SIGKILL): 31744000 KiB
Enforcing VSIZE limit (hard limit, stack expansion will fail with SIGSEGV, brk() and mmap() will return ENOMEM): 31795200 KiB
Current StackSize limit: 10240 KiB


[startup+0 s]
/proc/loadavg: 0.00 0.00 0.00 1/170 16548
/proc/meminfo: memFree=32079792/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=14252 CPUtime=0 cores=0-7
/proc/16548/stat : 16548 (python) D 16546 16548 16518 0 -1 4194304 198 0 1 0 0 0 0 0 20 0 1 0 618351377 14594048 133 33554432000 4194304 5683644 140736796403936 18446744073709551615 5051632 0 0 4096 0 18446744071562234166 0 0 17 0 0 0 0
/proc/16548/statm: 3563 133 105 364 0 50 0

[startup+0.0575231 s]
/proc/loadavg: 0.00 0.00 0.00 1/170 16548
/proc/meminfo: memFree=32079792/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=15756 CPUtime=0 cores=0-7
/proc/16548/stat : 16548 (python) S 16546 16548 16518 0 -1 4202496 837 0 4 0 0 0 0 0 20 0 1 0 618351377 16134144 723 33554432000 4194304 5683644 140736796403936 18446744073709551615 268660660224 0 2147483391 16781312 2 18446744071699199166 0 0 17 6 0 0 1
/proc/16548/statm: 3939 723 334 364 0 426 0
Current children cumulated CPU time (s) 0
Current children cumulated vsize (KiB) 15756

[startup+0.100524 s]
/proc/loadavg: 0.00 0.00 0.00 1/170 16548
/proc/meminfo: memFree=32079792/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=15912 CPUtime=0 cores=0-7
/proc/16548/stat : 16548 (python) S 16546 16548 16518 0 -1 4202496 942 0 4 0 0 0 0 0 20 0 1 0 618351377 16293888 821 33554432000 4194304 5683644 140736796403936 18446744073709551615 268660660224 0 2147483391 16781312 2 18446744071699199166 0 0 17 6 0 0 2
/proc/16548/statm: 3978 821 357 364 0 465 0
Current children cumulated CPU time (s) 0
Current children cumulated vsize (KiB) 15912

[startup+0.300449 s]
/proc/loadavg: 0.00 0.00 0.00 1/170 16548
/proc/meminfo: memFree=32079792/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=16400 CPUtime=0.01 cores=0-7
/proc/16548/stat : 16548 (python) S 16546 16548 16518 0 -1 4202496 1163 0 4 0 1 0 0 0 18 0 1 0 618351377 16793600 1030 33554432000 4194304 5683644 140736796403936 18446744073709551615 268660660224 0 2147483391 16781312 2 18446744071699199166 0 0 17 6 0 0 6
/proc/16548/statm: 4100 1030 414 364 0 587 0
Current children cumulated CPU time (s) 0.01
Current children cumulated vsize (KiB) 16400

[startup+0.700385 s]
/proc/loadavg: 0.00 0.00 0.00 1/170 16548
/proc/meminfo: memFree=32079792/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=23188 CPUtime=0.03 cores=0-7
/proc/16548/stat : 16548 (python) S 16546 16548 16518 0 -1 4202496 1328 0 5 0 2 1 0 0 15 0 1 0 618351377 23744512 1179 33554432000 4194304 5683644 140736796403936 18446744073709551615 268655738503 0 2147483391 16781312 2 18446744071699199166 0 0 17 6 0 0 13
/proc/16548/statm: 5797 1179 432 364 0 724 0
Current children cumulated CPU time (s) 0.03
Current children cumulated vsize (KiB) 23188

[startup+1.50023 s]
/proc/loadavg: 0.00 0.00 0.00 1/171 16550
/proc/meminfo: memFree=32074208/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=104220 CPUtime=0.09 cores=0-7
/proc/16548/stat : 16548 (python) S 16546 16548 16518 0 -1 4202496 3023 0 24 0 5 4 0 0 15 0 1 0 618351377 106721280 2731 33554432000 4194304 5683644 140736796403936 18446744073709551615 268660660224 0 2147483391 16781312 2 18446744071699199166 0 0 17 6 0 0 31
/proc/16548/statm: 26055 2731 847 364 0 1803 0
Current children cumulated CPU time (s) 0.09
Current children cumulated vsize (KiB) 104220

[startup+3.10093 s]
/proc/loadavg: 0.08 0.02 0.01 1/171 16554
/proc/meminfo: memFree=32057572/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=192324 CPUtime=0.29 cores=0-7
/proc/16548/stat : 16548 (python) S 16546 16548 16518 0 -1 4202496 6843 928 55 5 18 11 0 0 15 0 1 0 618351377 196939776 4949 33554432000 4194304 5683644 140736796403936 18446744073709551615 268655738503 0 2147483391 16781312 2 18446744071699199166 0 0 17 6 0 0 95
/proc/16548/statm: 48081 4949 1425 364 0 3724 0
Current children cumulated CPU time (s) 0.29
Current children cumulated vsize (KiB) 192324
heavy processes:

Solver just ended. Dumping a history of the last processes samples

[startup+3.90079 s]
/proc/loadavg: 0.08 0.02 0.01 1/171 16554
/proc/meminfo: memFree=32046552/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=279220 CPUtime=0.64 cores=0-7
/proc/16548/stat : 16548 (python) R 16546 16548 16518 0 -1 4202496 9453 928 80 5 50 14 0 0 16 0 1 0 618351377 285921280 7198 33554432000 4194304 5683644 140736796403936 18446744073709551615 4619696 0 0 16781312 2 0 0 0 17 6 0 0 109
/proc/16548/statm: 69805 7198 1826 364 0 5729 0
Current children cumulated CPU time (s) 0.64
Current children cumulated vsize (KiB) 279220

[startup+4.10076 s]
/proc/loadavg: 0.08 0.02 0.01 1/171 16554
/proc/meminfo: memFree=32046552/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=310396 CPUtime=0.83 cores=0-7
/proc/16548/stat : 16548 (python) R 16546 16548 16518 0 -1 4202496 12191 928 80 5 68 15 0 0 21 0 4 0 618351377 317845504 7352 33554432000 4194304 5683644 140736796403936 18446744073709551615 268660705370 0 0 16781312 2 18446744073709551615 0 0 17 0 0 0 109
/proc/16548/statm: 77600 7352 1880 364 0 13509 0
Current children cumulated CPU time (s) 0.83
Current children cumulated vsize (KiB) 310396

[startup+4.20069 s]
/proc/loadavg: 0.08 0.02 0.01 1/171 16554
/proc/meminfo: memFree=32046552/32951124 swapFree=67055708/67111528
[pid=16548] ppid=16546 vsize=406704 CPUtime=0.99 cores=0-7
/proc/16548/stat : 16548 (python) R 16546 16548 16518 0 -1 4202496 14715 2464 80 5 77 15 7 0 18 0 7 0 618351377 416464896 7503 33554432000 4194304 5683644 140736796403936 18446744073709551615 268660482453 0 0 16781312 2 18446744073709551615 0 0 17 0 0 0 109
/proc/16548/statm: 101676 7503 1886 364 0 37576 0
Current children cumulated CPU time (s) 0.99
Current children cumulated vsize (KiB) 406704

Child status: 0
Real time (s): 4.28291
CPU time (s): 1.92171
CPU user time (s): 1.71274
CPU system time (s): 0.208968
CPU usage (%): 44.8692
Max. virtual memory (cumulated for all children) (KiB): 406704

getrusage(RUSAGE_CHILDREN,...) data:
user time used= 1.71274
system time used= 0.208968
maximum resident set size= 0
integral shared memory size= 0
integral unshared data size= 0
integral unshared stack size= 0
page reclaims= 32366
page faults= 85
swaps= 0
block input operations= 0
block output operations= 0
messages sent= 0
messages received= 0
signals received= 0
voluntary context switches= 4156
involuntary context switches= 165

runsolver used 0.007998 second user time and 0.026995 second system time

The end

Launcher Data

Begin job on node107 at 2011-06-10 23:33:20
IDJOB=3385490
IDBENCH=82755
IDSOLVER=1870
FILE ID=node107/3385490-1307741600
RUNJOBID= node107-1307741600-16532
PBS_JOBID= 13550805
Free space on /tmp= 74132 MiB

SOLVER NAME= borg-sat 11.03.02-par-random (fixed)
BENCH NAME= SAT11/random/medium/unif-k7-r89-v50-c4450-S1430772875-039.SATISFIABLE.cnf
COMMAND LINE= python DIR/solve DIR/etc/borg-mix+class.random.pickle BENCHNAME -seed RANDOMSEED -budget TIMEOUT -cores NBCORE
RUNSOLVER COMMAND LINE= BIN/runsolver --timestamp -w /tmp/evaluation-result-3385490-1307741600/watcher-3385490-1307741600 -o /tmp/evaluation-result-3385490-1307741600/solver-3385490-1307741600 -C 40000 -W 5100 -M 31000  python HOME/solve HOME/etc/borg-mix+class.random.pickle HOME/instance-3385490-1307741600.cnf -seed 1907577660 -budget 40000 -cores 8

TIME LIMIT= 40000 seconds
MEMORY LIMIT= 31000 MiB
NBCORE= 8

MD5SUM BENCH= ef1a26ad366fa6cdd721df0a7f8f760c
RANDOM SEED=1907577660

node107.alineos.net Linux 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009

/proc/cpuinfo:
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4
apicid		: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5333.65
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 0
cpu cores	: 4
apicid		: 16
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5332.75
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 4
apicid		: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5332.67
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 1
cpu cores	: 4
apicid		: 18
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5332.82
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]

processor	: 4
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 2
cpu cores	: 4
apicid		: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5332.74
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]

processor	: 5
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 2
cpu cores	: 4
apicid		: 20
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5359.47
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]

processor	: 6
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 3
cpu cores	: 4
apicid		: 6
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5332.75
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
stepping	: 5
cpu MHz		: 2666.829
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 3
cpu cores	: 4
apicid		: 22
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips	: 5332.83
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]


/proc/meminfo:
MemTotal:     32951124 kB
MemFree:      32081644 kB
Buffers:        116324 kB
Cached:         537856 kB
SwapCached:      19468 kB
Active:         201832 kB
Inactive:       479552 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:     32951124 kB
LowFree:      32081644 kB
SwapTotal:    67111528 kB
SwapFree:     67055708 kB
Dirty:           31756 kB
Writeback:           0 kB
AnonPages:       25760 kB
Mapped:          12308 kB
Slab:           122540 kB
PageTables:       4248 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:  83587088 kB
Committed_AS:   183764 kB
VmallocTotal: 34359738367 kB
VmallocUsed:    296008 kB
VmallocChunk: 34359440975 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB

Free space on /tmp at the end= 74100 MiB
End job on node107 at 2011-06-10 23:33:25