Trace number 3747523

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 NameAnswerobjective functionCPU timeWall clock time
npSolver inc-topDown (fixed)? (problem) 0.71 1.19741

General information on the benchmark

Name/OPT-SMALLINT-LIN/oliveras/
j30opt/normalized-j301_8.std.opb
MD5SUM84d51ec74215548b2524bf1e0a331859
Bench CategoryOPT-SMALLINT-LIN (optimisation, small integers, linear constraints)
Best result obtained on this benchmarkOPT
Best value of the objective obtained on this benchmark53
Best CPU time to get the best result obtained on this benchmark0.071988
Has Objective FunctionYES
Satisfiable
(Un)Satisfiability was proved
Best value of the objective function
Optimality of the best value was proved
Number of variables18662
Total number of constraints59730
Number of constraints which are clauses58530
Number of constraints which are cardinality constraints (but not clauses)0
Number of constraints which are nor clauses,nor cardinality constraints1200
Minimum length of a constraint1
Maximum length of a constraint11
Number of terms in the objective function 300
Biggest coefficient in the objective function 300
Number of bits for the biggest coefficient in the objective function 9
Sum of the numbers in the objective function 45150
Number of bits of the sum of numbers in the objective function 16
Biggest number in a constraint 300
Number of bits of the biggest number in a constraint 9
Biggest sum of numbers in a constraint 45150
Number of bits of the biggest sum of numbers16
Number of products (including duplicates)0
Sum of products size (including duplicates)0
Number of different products0
Sum of products size0

Solver Data

0.00/0.19	c run inc solver
0.00/0.19	c [INC SYSTEM] run initial solver
0.00/0.19	c [INC SYSTEM] preprocess with white file
0.00/0.61	c [INC SYSTEM] finished preprocessing in 0 s
0.00/0.61	c [INC SYSTEM] execute solver
0.00/0.65	c [INC SEARCH] formula is SAT
0.00/0.65	c [INC SYSTEM] solved the initial formula
0.00/0.72	npSolver-pbo: IterativeSolver.cc:102: void IterativeSolver::checkSolution(): Assertion `parser.cb.ok' failed.
0.71/1.19	HOME/npSolver-pbo-Itd.sh: line 18: 10865 Aborted                 (core dumped) ./npSolver-pbo $file $tmp -rnd_seed=$seed -useQuickBound=0 -useBinSearch=0 -useCP2=1 -useInc=1

Verifier Data

ERROR: no interpretation found !

Watcher Data

runsolver Copyright (C) 2010-2011 Olivier ROUSSEL

This is runsolver version 3.3.1 (svn: 989)

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-3747523-1339105407/watcher-3747523-1339105407 -o /tmp/evaluation-result-3747523-1339105407/solver-3747523-1339105407 -C 1800 -W 1900 -M 15500 HOME/npSolver-pbo-Itd.sh HOME/instance-3747523-1339105407.opb 36834480 HOME HOME 

running on 4 cores: 0,2,4,6

Enforcing CPUTime limit (soft limit, will send SIGTERM then SIGKILL): 1800 seconds
Enforcing CPUTime limit (hard limit, will send SIGXCPU): 1830 seconds
Enforcing wall clock limit (soft limit, will send SIGTERM then SIGKILL): 1900 seconds
Enforcing VSIZE limit (soft limit, will send SIGTERM then SIGKILL): 15872000 KiB
Enforcing VSIZE limit (hard limit, stack expansion will fail with SIGSEGV, brk() and mmap() will return ENOMEM): 15923200 KiB
Current StackSize limit: 10240 KiB


[startup+0 s]
/proc/loadavg: 2.00 2.00 2.00 3/178 10864
/proc/meminfo: memFree=23120236/32873844 swapFree=7628/7628
[pid=10864] ppid=10862 vsize=9148 CPUtime=0 cores=0,2,4,6
/proc/10864/stat : 10864 (npSolver-pbo-It) S 10862 10864 9637 0 -1 4202496 359 0 0 0 0 0 0 0 20 0 1 0 376665060 9367552 275 33554432000 4194304 5064252 140734153923904 140734153922816 251044456014 0 65536 4100 65538 18446744071579302229 0 0 17 4 0 0 0 0 0
/proc/10864/statm: 2287 275 233 213 0 72 0

[startup+0.0818051 s]
/proc/loadavg: 2.00 2.00 2.00 3/178 10864
/proc/meminfo: memFree=23120236/32873844 swapFree=7628/7628
[pid=10864] ppid=10862 vsize=9148 CPUtime=0 cores=0,2,4,6
/proc/10864/stat : 10864 (npSolver-pbo-It) S 10862 10864 9637 0 -1 4202496 359 0 0 0 0 0 0 0 20 0 1 0 376665060 9367552 275 33554432000 4194304 5064252 140734153923904 140734153922816 251044456014 0 65536 4100 65538 18446744071579302229 0 0 17 4 0 0 0 0 0
/proc/10864/statm: 2287 275 233 213 0 72 0
Current children cumulated CPU time (s) 0
Current children cumulated vsize (KiB) 9148

[startup+0.100329 s]
/proc/loadavg: 2.00 2.00 2.00 3/178 10864
/proc/meminfo: memFree=23120236/32873844 swapFree=7628/7628
[pid=10864] ppid=10862 vsize=9148 CPUtime=0 cores=0,2,4,6
/proc/10864/stat : 10864 (npSolver-pbo-It) S 10862 10864 9637 0 -1 4202496 359 0 0 0 0 0 0 0 20 0 1 0 376665060 9367552 275 33554432000 4194304 5064252 140734153923904 140734153922816 251044456014 0 65536 4100 65538 18446744071579302229 0 0 17 4 0 0 0 0 0
/proc/10864/statm: 2287 275 233 213 0 72 0
Current children cumulated CPU time (s) 0
Current children cumulated vsize (KiB) 9148

[startup+0.30025 s]
/proc/loadavg: 2.00 2.00 2.00 3/178 10864
/proc/meminfo: memFree=23120236/32873844 swapFree=7628/7628
[pid=10864] ppid=10862 vsize=9148 CPUtime=0 cores=0,2,4,6
/proc/10864/stat : 10864 (npSolver-pbo-It) S 10862 10864 9637 0 -1 4202496 359 0 0 0 0 0 0 0 20 0 1 0 376665060 9367552 275 33554432000 4194304 5064252 140734153923904 140734153922816 251044456014 0 65536 4100 65538 18446744071579302229 0 0 17 4 0 0 0 0 0
/proc/10864/statm: 2287 275 233 213 0 72 0
Current children cumulated CPU time (s) 0
Current children cumulated vsize (KiB) 9148

[startup+0.700253 s]
/proc/loadavg: 2.00 2.00 2.00 3/178 10864
/proc/meminfo: memFree=23120236/32873844 swapFree=7628/7628
[pid=10864] ppid=10862 vsize=9148 CPUtime=0 cores=0,2,4,6
/proc/10864/stat : 10864 (npSolver-pbo-It) S 10862 10864 9637 0 -1 4202496 359 0 0 0 0 0 0 0 20 0 1 0 376665060 9367552 275 33554432000 4194304 5064252 140734153923904 140734153922816 251044456014 0 65536 4100 65538 18446744071579302229 0 0 17 4 0 0 0 0 0
/proc/10864/statm: 2287 275 233 213 0 72 0
Current children cumulated CPU time (s) 0
Current children cumulated vsize (KiB) 9148

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

[startup+1.10683 s]
/proc/loadavg: 2.00 2.00 2.00 2/182 10871
/proc/meminfo: memFree=23039628/32873844 swapFree=7628/7628
[pid=10864] ppid=10862 vsize=9148 CPUtime=0 cores=0,2,4,6
/proc/10864/stat : 10864 (npSolver-pbo-It) S 10862 10864 9637 0 -1 4202496 359 0 0 0 0 0 0 0 20 0 1 0 376665060 9367552 275 33554432000 4194304 5064252 140734153923904 140734153922816 251044456014 0 65536 4100 65538 18446744071579302229 0 0 17 4 0 0 0 0 0
/proc/10864/statm: 2287 275 233 213 0 72 0
[pid=10865] ppid=10864 vsize=23448 CPUtime=0.68 cores=0,2,4,6
/proc/10865/stat : 10865 (npSolver-pbo) S 10864 10864 9637 0 -1 4204032 7683 9145 0 0 24 4 33 7 20 0 1 0 376665060 24010752 5537 33554432000 4194304 6004724 140733255406384 140733255400936 5251733 0 0 4096 0 18446744071580380219 0 0 17 2 0 0 0 0 0
/proc/10865/statm: 5862 5537 174 442 0 5416 0
[pid=10870] ppid=10865 vsize=16776 CPUtime=0.03 cores=0,2,4,6
/proc/10870/stat : 10870 (glucosInc) S 10865 10864 9637 0 -1 4202496 2869 0 0 0 3 0 0 0 20 0 1 0 376665121 17178624 3189 33554432000 4194304 5654031 140733201739600 140733201737912 4976656 0 0 4096 0 18446744071580380219 0 0 17 0 0 0 0 0 0
/proc/10870/statm: 4194 3189 146 357 0 3834 0
Current children cumulated CPU time (s) 0.71
Current children cumulated vsize (KiB) 49372

Child status: 0

# WARNING:
# CPU time reported by wait4() is probably wrong !
# wait4(...,&childrusage) returns 10864 and gives
#  childrusage.ru_utime.tv_sec=0
#  childrusage.ru_utime.tv_usec=578911
#  childrusage.ru_stime.tv_sec=0
#  childrusage.ru_stime.tv_usec=119981
# CPU time returned by wait4() is 0.698892
# while last known CPU time is 0.71
#
# Solver probably didn't/couldn't wait for its children
# Using CPU time of the last sample as value...

Real time (s): 1.19741
CPU time (s): 0.71
CPU user time (s): 0.6
CPU system time (s): 0.11
CPU usage (%): 59.2948
Max. virtual memory (cumulated for all children) (KiB): 49372

getrusage(RUSAGE_CHILDREN,...) data:
user time used= 0.578911
system time used= 0.119981
maximum resident set size= 49340
integral shared memory size= 0
integral unshared data size= 0
integral unshared stack size= 0
page reclaims= 17203
page faults= 0
swaps= 0
block input operations= 0
block output operations= 6240
messages sent= 0
messages received= 0
signals received= 0
voluntary context switches= 5129
involuntary context switches= 7

runsolver used 0.002999 second user time and 0.010998 second system time

The end

Launcher Data

Begin job on node143 at 2012-06-07 23:43:27
IDJOB=3747523
IDBENCH=78415
IDSOLVER=2332
FILE ID=node143/3747523-1339105407
RUNJOBID= node143-1339098178-9653
PBS_JOBID= 14643710
Free space on /tmp= 68460 MiB

SOLVER NAME= npSolver inc-topDown
BENCH NAME= PB10/normalized-PB10/OPT-SMALLINT-LIN/oliveras/j30opt/normalized-j301_8.std.opb
COMMAND LINE= DIR/npSolver-pbo-Itd.sh BENCHNAME RANDOMSEED TMPDIR DIR
RUNSOLVER COMMAND LINE= BIN/runsolver --timestamp -w /tmp/evaluation-result-3747523-1339105407/watcher-3747523-1339105407 -o /tmp/evaluation-result-3747523-1339105407/solver-3747523-1339105407 -C 1800 -W 1900 -M 15500  HOME/npSolver-pbo-Itd.sh HOME/instance-3747523-1339105407.opb 36834480 HOME HOME

TIME LIMIT= 1800 seconds
MEMORY LIMIT= 15500 MiB
NBCORE= 4

MD5SUM BENCH= 84d51ec74215548b2524bf1e0a331859
RANDOM SEED=36834480

node143.alineos.net Linux 2.6.32-71.29.1.el6.x86_64 #1 SMP Mon Jun 27 19:49:27 BST 2011

/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.787
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5333.57
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

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.787
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 0
cpu cores	: 4
apicid		: 16
initial apicid	: 16
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5331.91
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

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.787
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 4
apicid		: 2
initial apicid	: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5331.91
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

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.787
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 1
cpu cores	: 4
apicid		: 18
initial apicid	: 18
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5331.91
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

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.787
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 2
cpu cores	: 4
apicid		: 4
initial apicid	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5331.90
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

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.787
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 2
cpu cores	: 4
apicid		: 20
initial apicid	: 20
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5298.57
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

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.787
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 3
cpu cores	: 4
apicid		: 6
initial apicid	: 6
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5331.91
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

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.787
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 3
cpu cores	: 4
apicid		: 22
initial apicid	: 22
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips	: 5331.91
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:


/proc/meminfo:
MemTotal:       32873844 kB
MemFree:        23120624 kB
Buffers:         3557820 kB
Cached:          4972352 kB
SwapCached:          196 kB
Active:          5656664 kB
Inactive:        3046720 kB
Active(anon):     154044 kB
Inactive(anon):    11012 kB
Active(file):    5502620 kB
Inactive(file):  3035708 kB
Unevictable:        7628 kB
Mlocked:            7628 kB
SwapTotal:      67108856 kB
SwapFree:       67108460 kB
Dirty:              9716 kB
Writeback:             0 kB
AnonPages:        153480 kB
Mapped:            11944 kB
Shmem:               160 kB
Slab:             890800 kB
SReclaimable:     332600 kB
SUnreclaim:       558200 kB
KernelStack:        1504 kB
PageTables:         4244 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    83545776 kB
Committed_AS:     316204 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      346368 kB
VmallocChunk:   34341987984 kB
HardwareCorrupted:     0 kB
AnonHugePages:    114688 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        7872 kB
DirectMap2M:    33538048 kB

Free space on /tmp at the end= 68428 MiB
End job on node143 at 2012-06-07 23:43:28