About the Execution of Marcie+red for CANInsertWithFailure-PT-040
Execution Summary | |||||
Max Memory Used (MB) |
Time wait (ms) | CPU Usage (ms) | I/O Wait (ms) | Computed Result | Execution Status |
653.275 | 46158.00 | 66951.00 | 702.20 | T | normal |
Execution Chart
We display below the execution chart for this examination (boot time has been removed).
Trace from the execution
Formatting '/mnt/tpsp/fkordon/mcc2023-input.r056-tajo-167813707600457.qcow2', fmt=qcow2 size=4294967296 backing_file='/mnt/tpsp/fkordon/mcc2023-input.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
Waiting for the VM to be ready (probing ssh)
.......................................................................................................................
=====================================================================
Generated by BenchKit 2-5348
Executing tool marciexred
Input is CANInsertWithFailure-PT-040, examination is QuasiLiveness
Time confinement is 1800 seconds
Memory confinement is 16384 MBytes
Number of cores is 4
Run identifier is r056-tajo-167813707600457
=====================================================================
--------------------
preparation of the directory to be used:
/home/mcc/execution
total 11M
-rw-r--r-- 1 mcc users 9.3K Feb 26 01:05 CTLCardinality.txt
-rw-r--r-- 1 mcc users 77K Feb 26 01:05 CTLCardinality.xml
-rw-r--r-- 1 mcc users 7.8K Feb 26 00:57 CTLFireability.txt
-rw-r--r-- 1 mcc users 57K Feb 26 00:57 CTLFireability.xml
-rw-r--r-- 1 mcc users 4.8K Feb 25 15:41 LTLCardinality.txt
-rw-r--r-- 1 mcc users 27K Feb 25 15:41 LTLCardinality.xml
-rw-r--r-- 1 mcc users 3.1K Feb 25 15:41 LTLFireability.txt
-rw-r--r-- 1 mcc users 18K Feb 25 15:41 LTLFireability.xml
-rw-r--r-- 1 mcc users 16K Feb 26 01:18 ReachabilityCardinality.txt
-rw-r--r-- 1 mcc users 129K Feb 26 01:18 ReachabilityCardinality.xml
-rw-r--r-- 1 mcc users 9.7K Feb 26 01:11 ReachabilityFireability.txt
-rw-r--r-- 1 mcc users 60K Feb 26 01:11 ReachabilityFireability.xml
-rw-r--r-- 1 mcc users 2.0K Feb 25 15:41 UpperBounds.txt
-rw-r--r-- 1 mcc users 4.0K Feb 25 15:41 UpperBounds.xml
-rw-r--r-- 1 mcc users 6 Mar 5 18:22 equiv_col
-rw-r--r-- 1 mcc users 4 Mar 5 18:22 instance
-rw-r--r-- 1 mcc users 6 Mar 5 18:22 iscolored
-rw-r--r-- 1 mcc users 9.8M Mar 5 18:22 model.pnml
--------------------
content from stdout:
=== Data for post analysis generated by BenchKit (invocation template)
The expected result is a vector of booleans
BOOL_VECTOR
FORMULA_NAME QuasiLiveness
=== Now, execution of the tool begins
BK_START 1679040486582
bash -c /home/mcc/BenchKit/BenchKit_head.sh 2> STDERR ; echo ; echo -n "BK_STOP " ; date -u +%s%3N
Invoking MCC driver with
BK_TOOL=marciexred
BK_EXAMINATION=QuasiLiveness
BK_BIN_PATH=/home/mcc/BenchKit/bin/
BK_TIME_CONFINEMENT=1800
BK_INPUT=CANInsertWithFailure-PT-040
Applying reductions before tool marcie
Invoking reducer
Running Version 202303021504
[2023-03-17 08:08:08] [INFO ] Running its-tools with arguments : [-pnfolder, /home/mcc/execution, -examination, QuasiLiveness, -timeout, 180, -rebuildPNML]
[2023-03-17 08:08:08] [INFO ] Parsing pnml file : /home/mcc/execution/model.pnml
[2023-03-17 08:08:08] [INFO ] Load time of PNML (sax parser for PT used): 358 ms
[2023-03-17 08:08:08] [INFO ] Transformed 3684 places.
[2023-03-17 08:08:08] [INFO ] Transformed 9840 transitions.
[2023-03-17 08:08:08] [INFO ] Parsed PT model containing 3684 places and 9840 transitions and 26400 arcs in 482 ms.
Starting structural reductions in LIVENESS mode, iteration 0 : 3684/3684 places, 9840/9840 transitions.
Reduce places removed 1 places and 0 transitions.
Drop transitions removed 280 transitions
Trivial Post-agglo rules discarded 280 transitions
Performed 280 trivial Post agglomeration. Transition count delta: 280
Iterating post reduction 0 with 281 rules applied. Total rules applied 281 place count 3683 transition count 9560
Reduce places removed 280 places and 0 transitions.
Iterating post reduction 1 with 280 rules applied. Total rules applied 561 place count 3403 transition count 9560
Performed 1560 Post agglomeration using F-continuation condition.Transition count delta: 1560
Deduced a syphon composed of 1560 places in 24 ms
Reduce places removed 1560 places and 0 transitions.
Iterating global reduction 2 with 3120 rules applied. Total rules applied 3681 place count 1843 transition count 8000
Applied a total of 3681 rules in 665 ms. Remains 1843 /3684 variables (removed 1841) and now considering 8000/9840 (removed 1840) transitions.
[2023-03-17 08:08:09] [INFO ] Flow matrix only has 6518 transitions (discarded 1482 similar events)
// Phase 1: matrix 6518 rows 1843 cols
[2023-03-17 08:08:09] [INFO ] Computed 42 place invariants in 280 ms
[2023-03-17 08:08:11] [INFO ] Implicit Places using invariants in 2075 ms returned []
[2023-03-17 08:08:11] [INFO ] Flow matrix only has 6518 transitions (discarded 1482 similar events)
[2023-03-17 08:08:11] [INFO ] Invariant cache hit.
[2023-03-17 08:08:13] [INFO ] State equation strengthened by 4758 read => feed constraints.
[2023-03-17 08:08:16] [INFO ] Implicit Places using invariants and state equation in 5159 ms returned []
Implicit Place search using SMT with State Equation took 7264 ms to find 0 implicit places.
[2023-03-17 08:08:16] [INFO ] Flow matrix only has 6518 transitions (discarded 1482 similar events)
[2023-03-17 08:08:16] [INFO ] Invariant cache hit.
[2023-03-17 08:08:20] [INFO ] Dead Transitions using invariants and state equation in 3411 ms found 0 transitions.
Starting structural reductions in LIVENESS mode, iteration 1 : 1843/3684 places, 8000/9840 transitions.
Finished structural reductions in LIVENESS mode , in 1 iterations and 11343 ms. Remains : 1843/3684 places, 8000/9840 transitions.
Discarding 4640 transitions out of 8000. Remains 3360
Initial state reduction rules removed 40 formulas.
Incomplete random walk after 10000 steps, including 49 resets, run finished after 1825 ms. (steps per millisecond=5 ) properties (out of 3320) seen :3045
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 21 ms. (steps per millisecond=4 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 1 ms. (steps per millisecond=101 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 3 ms. (steps per millisecond=33 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Incomplete Best-First random walk after 101 steps, including 2 resets, run finished after 2 ms. (steps per millisecond=50 ) properties (out of 275) seen :0
Running SMT prover for 275 properties.
[2023-03-17 08:08:22] [INFO ] Flow matrix only has 6518 transitions (discarded 1482 similar events)
[2023-03-17 08:08:22] [INFO ] Invariant cache hit.
[2023-03-17 08:08:29] [INFO ] [Real]Absence check using 40 positive place invariants in 27 ms returned sat
[2023-03-17 08:08:29] [INFO ] [Real]Absence check using 40 positive and 2 generalized place invariants in 21 ms returned sat
[2023-03-17 08:08:48] [INFO ] After 12912ms SMT Verify possible using state equation in real domain returned unsat :0 sat :275
[2023-03-17 08:08:48] [INFO ] State equation strengthened by 4758 read => feed constraints.
java.lang.RuntimeException: SMT solver raised an error when submitting script. Raised (error "Failed to assert expression: java.io.IOException: Stream close...
at fr.lip6.move.gal.structural.smt.SMTUtils.execAndCheckResult(SMTUtils.java:251)
at fr.lip6.move.gal.structural.smt.DeadlockTester.verifyPossible(DeadlockTester.java:642)
at fr.lip6.move.gal.structural.smt.DeadlockTester.testUnreachableWithSMTIncremental(DeadlockTester.java:339)
at fr.lip6.move.gal.structural.smt.DeadlockTester.testUnreachableWithSMT(DeadlockTester.java:223)
at fr.lip6.move.gal.application.solver.ReachabilitySolver.applyReductions(ReachabilitySolver.java:95)
at fr.lip6.move.gal.application.solver.global.GlobalPropertySolver.applyReachabilitySolver(GlobalPropertySolver.java:724)
at fr.lip6.move.gal.application.solver.global.GlobalPropertySolver.solveProperty(GlobalPropertySolver.java:558)
at fr.lip6.move.gal.application.solver.global.GlobalPropertySolver.preSolveLiveness(GlobalPropertySolver.java:412)
at fr.lip6.move.gal.application.solver.global.GlobalPropertySolver.preStableMarking(GlobalPropertySolver.java:321)
at fr.lip6.move.gal.application.solver.global.GlobalPropertySolver.solveProperty(GlobalPropertySolver.java:294)
at fr.lip6.move.gal.application.Application.startNoEx(Application.java:386)
at fr.lip6.move.gal.application.Application.start(Application.java:178)
at fr.lip6.move.gal.itscl.application.Application.start(Application.java:45)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
[2023-03-17 08:08:48] [WARNING] SMT solver failed with error :SMT solver raised an error when submitting script.... while checking expressions.
[2023-03-17 08:08:48] [INFO ] After 25129ms SMT Verify possible using all constraints in real domain returned unsat :0 sat :0
Fused 275 Parikh solutions to 55 different solutions.
Parikh walk visited 23 properties in 1622 ms.
Support contains 277 out of 1843 places. Attempting structural reductions.
Starting structural reductions in REACHABILITY mode, iteration 0 : 1843/1843 places, 8000/8000 transitions.
Drop transitions removed 1482 transitions
Redundant transition composition rules discarded 1482 transitions
Iterating global reduction 0 with 1482 rules applied. Total rules applied 1482 place count 1843 transition count 6518
Partial Free-agglomeration rule applied 1375 times.
Drop transitions removed 1375 transitions
Iterating global reduction 0 with 1375 rules applied. Total rules applied 2857 place count 1843 transition count 6518
Applied a total of 2857 rules in 1066 ms. Remains 1843 /1843 variables (removed 0) and now considering 6518/8000 (removed 1482) transitions.
Finished structural reductions in REACHABILITY mode , in 1 iterations and 1068 ms. Remains : 1843/1843 places, 6518/8000 transitions.
Finished random walk after 48526 steps, including 261 resets, run visited all 252 properties in 1630 ms. (steps per millisecond=29 )
Able to resolve query QuasiLiveness after proving 3360 properties.
FORMULA QuasiLiveness TRUE TECHNIQUES RANDOM_WALK PARIKH_WALK TOPOLOGICAL INITIAL_STATE
Total runtime 44245 ms.
ITS solved all properties within timeout
BK_STOP 1679040532740
--------------------
content from stderr:
+ ulimit -s 65536
+ [[ -z '' ]]
+ export LTSMIN_MEM_SIZE=8589934592
+ LTSMIN_MEM_SIZE=8589934592
+ export PYTHONPATH=/home/mcc/BenchKit/itstools/pylibs
+ PYTHONPATH=/home/mcc/BenchKit/itstools/pylibs
+ export LD_LIBRARY_PATH=/home/mcc/BenchKit/itstools/pylibs:
+ LD_LIBRARY_PATH=/home/mcc/BenchKit/itstools/pylibs:
++ sed s/.jar//
++ perl -pe 's/.*\.//g'
++ ls /home/mcc/BenchKit/bin//../reducer/bin//../../itstools//itstools/plugins/fr.lip6.move.gal.application.pnmcc_1.0.0.202303021504.jar
+ VERSION=202303021504
+ echo 'Running Version 202303021504'
+ /home/mcc/BenchKit/bin//../reducer/bin//../../itstools//itstools/its-tools -pnfolder /home/mcc/execution -examination QuasiLiveness -timeout 180 -rebuildPNML
Sequence of Actions to be Executed by the VM
This is useful if one wants to reexecute the tool in the VM from the submitted image disk.
set -x
# this is for BenchKit: configuration of major elements for the test
export BK_INPUT="CANInsertWithFailure-PT-040"
export BK_EXAMINATION="QuasiLiveness"
export BK_TOOL="marciexred"
export BK_RESULT_DIR="/tmp/BK_RESULTS/OUTPUTS"
export BK_TIME_CONFINEMENT="1800"
export BK_MEMORY_CONFINEMENT="16384"
export BK_BIN_PATH="/home/mcc/BenchKit/bin/"
# this is specific to your benchmark or test
export BIN_DIR="$HOME/BenchKit/bin"
# remove the execution directoty if it exists (to avoid increse of .vmdk images)
if [ -d execution ] ; then
rm -rf execution
fi
# this is for BenchKit: explicit launching of the test
echo "====================================================================="
echo " Generated by BenchKit 2-5348"
echo " Executing tool marciexred"
echo " Input is CANInsertWithFailure-PT-040, examination is QuasiLiveness"
echo " Time confinement is $BK_TIME_CONFINEMENT seconds"
echo " Memory confinement is 16384 MBytes"
echo " Number of cores is 4"
echo " Run identifier is r056-tajo-167813707600457"
echo "====================================================================="
echo
echo "--------------------"
echo "preparation of the directory to be used:"
tar xzf /home/mcc/BenchKit/INPUTS/CANInsertWithFailure-PT-040.tgz
mv CANInsertWithFailure-PT-040 execution
cd execution
if [ "QuasiLiveness" = "ReachabilityDeadlock" ] || [ "QuasiLiveness" = "UpperBounds" ] || [ "QuasiLiveness" = "QuasiLiveness" ] || [ "QuasiLiveness" = "StableMarking" ] || [ "QuasiLiveness" = "Liveness" ] || [ "QuasiLiveness" = "OneSafe" ] || [ "QuasiLiveness" = "StateSpace" ]; then
rm -f GenericPropertiesVerdict.xml
fi
pwd
ls -lh
echo
echo "--------------------"
echo "content from stdout:"
echo
echo "=== Data for post analysis generated by BenchKit (invocation template)"
echo
if [ "QuasiLiveness" = "UpperBounds" ] ; then
echo "The expected result is a vector of positive values"
echo NUM_VECTOR
elif [ "QuasiLiveness" != "StateSpace" ] ; then
echo "The expected result is a vector of booleans"
echo BOOL_VECTOR
else
echo "no data necessary for post analysis"
fi
echo
if [ -f "QuasiLiveness.txt" ] ; then
echo "here is the order used to build the result vector(from text file)"
for x in $(grep Property QuasiLiveness.txt | cut -d ' ' -f 2 | sort -u) ; do
echo "FORMULA_NAME $x"
done
elif [ -f "QuasiLiveness.xml" ] ; then # for cunf (txt files deleted;-)
echo echo "here is the order used to build the result vector(from xml file)"
for x in $(grep '
echo "FORMULA_NAME $x"
done
elif [ "QuasiLiveness" = "ReachabilityDeadlock" ] || [ "QuasiLiveness" = "QuasiLiveness" ] || [ "QuasiLiveness" = "StableMarking" ] || [ "QuasiLiveness" = "Liveness" ] || [ "QuasiLiveness" = "OneSafe" ] ; then
echo "FORMULA_NAME QuasiLiveness"
fi
echo
echo "=== Now, execution of the tool begins"
echo
echo -n "BK_START "
date -u +%s%3N
echo
timeout -s 9 $BK_TIME_CONFINEMENT bash -c "/home/mcc/BenchKit/BenchKit_head.sh 2> STDERR ; echo ; echo -n \"BK_STOP \" ; date -u +%s%3N"
if [ $? -eq 137 ] ; then
echo
echo "BK_TIME_CONFINEMENT_REACHED"
fi
echo
echo "--------------------"
echo "content from stderr:"
echo
cat STDERR ;