fond
Model Checking Contest 2019
9th edition, Prague, Czech Republic, April 7, 2019 (TOOLympics)
Execution of r200-ebro-155286406100040
Last Updated
Apr 15, 2019

About the Execution of ITS-Tools.M for ResAllocation-PT-R003C010

Execution Summary
Max Memory
Used (MB)
Time wait (ms) CPU Usage (ms) I/O Wait (ms) Computed Result Execution
Status
301.340 4155.00 8548.00 129.30 FFFFFFFTTTFTFFTF 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/mcc2019-input.r200-ebro-155286406100040.qcow2', fmt=qcow2 size=4294967296 backing_file='/mnt/tpsp/fkordon/mcc2019-input.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
Waiting for the VM to be ready (probing ssh)
.......................
=====================================================================
Generated by BenchKit 2-3954
Executing tool itstoolsm
Input is ResAllocation-PT-R003C010, examination is CTLCardinality
Time confinement is 3600 seconds
Memory confinement is 16384 MBytes
Number of cores is 4
Run identifier is r200-ebro-155286406100040
=====================================================================

--------------------
preparation of the directory to be used:
/home/mcc/execution
total 244K
-rw-r--r-- 1 mcc users 4.3K Feb 12 14:29 CTLCardinality.txt
-rw-r--r-- 1 mcc users 25K Feb 12 14:29 CTLCardinality.xml
-rw-r--r-- 1 mcc users 2.6K Feb 8 16:24 CTLFireability.txt
-rw-r--r-- 1 mcc users 16K Feb 8 16:24 CTLFireability.xml
-rw-r--r-- 1 mcc users 4.0K Mar 10 17:31 GenericPropertiesDefinition.xml
-rw-r--r-- 1 mcc users 6.3K Mar 10 17:31 GenericPropertiesVerdict.xml
-rw-r--r-- 1 mcc users 112 Feb 24 15:05 GlobalProperties.txt
-rw-r--r-- 1 mcc users 350 Feb 24 15:05 GlobalProperties.xml
-rw-r--r-- 1 mcc users 2.4K Feb 5 01:10 LTLCardinality.txt
-rw-r--r-- 1 mcc users 9.8K Feb 5 01:10 LTLCardinality.xml
-rw-r--r-- 1 mcc users 2.0K Feb 4 22:47 LTLFireability.txt
-rw-r--r-- 1 mcc users 8.9K Feb 4 22:47 LTLFireability.xml
-rw-r--r-- 1 mcc users 3.4K Feb 4 16:37 ReachabilityCardinality.txt
-rw-r--r-- 1 mcc users 16K Feb 4 16:37 ReachabilityCardinality.xml
-rw-r--r-- 1 mcc users 3.5K Feb 1 12:59 ReachabilityFireability.txt
-rw-r--r-- 1 mcc users 23K Feb 1 12:59 ReachabilityFireability.xml
-rw-r--r-- 1 mcc users 1.8K Feb 4 22:30 UpperBounds.txt
-rw-r--r-- 1 mcc users 3.8K Feb 4 22:30 UpperBounds.xml

-rw-r--r-- 1 mcc users 6 Jan 29 09:35 equiv_col
-rw-r--r-- 1 mcc users 9 Jan 29 09:35 instance
-rw-r--r-- 1 mcc users 6 Jan 29 09:35 iscolored
-rw-r--r-- 1 mcc users 68K Mar 10 17:31 model.pnml

--------------------
content from stdout:

=== Data for post analysis generated by BenchKit (invocation template)

The expected result is a vector of booleans
BOOL_VECTOR

here is the order used to build the result vector(from text file)
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-00
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-01
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-02
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-03
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-04
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-05
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-06
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-07
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-08
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-09
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-10
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-11
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-12
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-13
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-14
FORMULA_NAME ResAllocation-PT-R003C010-CTLCardinality-15

=== Now, execution of the tool begins

BK_START 1553667973027

Running greatSPN : CommandLine [args=[/home/mcc/BenchKit//greatspn//bin/pinvar, /home/mcc/execution/gspn], workingDir=/home/mcc/execution]
Run of greatSPN captured in /home/mcc/execution/outPut.txt
Running greatSPN : CommandLine [args=[/home/mcc/BenchKit//greatspn//bin/RGMEDD2, /home/mcc/execution/gspn, -META, -varord-only], workingDir=/home/mcc/execution]
Run of greatSPN captured in /home/mcc/execution/outPut.txt
Using order generated by GreatSPN with heuristic : META
Invoking ITS tools like this :CommandLine [args=[/home/mcc/BenchKit/itstools/plugins/fr.lip6.move.gal.itstools.binaries_1.0.0.201903251645/bin/its-ctl-linux64, --gc-threshold, 2000000, --quiet, -i, /home/mcc/execution/CTLCardinality.pnml.gal, -t, CGAL, -ctl, /home/mcc/execution/CTLCardinality.ctl, --load-order, /home/mcc/execution/model.ord], workingDir=/home/mcc/execution]

its-ctl command run as :

/home/mcc/BenchKit/itstools/plugins/fr.lip6.move.gal.itstools.binaries_1.0.0.201903251645/bin/its-ctl-linux64 --gc-threshold 2000000 --quiet -i /home/mcc/execution/CTLCardinality.pnml.gal -t CGAL -ctl /home/mcc/execution/CTLCardinality.ctl --load-order /home/mcc/execution/model.ord
Successfully loaded order from file /home/mcc/execution/model.ord
No direction supplied, using forward translation only.
Parsed 16 CTL formulae.
Model ,|S| ,Time ,Mem(kb) ,fin. SDD ,fin. DDD ,peak SDD ,peak DDD ,SDD Hom ,SDD cache peak ,DDD Hom ,DDD cachepeak ,SHom cache
reachable,823552,0.029064,4616,2,480,5,1592,6,0,283,1164,0


Converting to forward existential form...Done !
original formula: E(EG((p_6_1<=p_3_1)) U (r_4_0>=3))
=> equivalent forward existential formula: [(FwdU(Init,EG((p_6_1<=p_3_1))) * (r_4_0>=3))] != FALSE
(forward)formula 0,0,0.029725,5400,1,0,5,1592,8,0,285,1164,0
FORMULA ResAllocation-PT-R003C010-CTLCardinality-00 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: E((p_5_0<=r_9_1) U EG((r_6_2>=3)))
=> equivalent forward existential formula: [FwdG(FwdU(Init,(p_5_0<=r_9_1)),(r_6_2>=3))] != FALSE
Hit Full ! (commute/partial/dont) 36/0/4
(forward)formula 1,0,0.111004,7776,1,0,9,16215,26,1,1553,5091,8
FORMULA ResAllocation-PT-R003C010-CTLCardinality-01 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: E((((p_6_0>=1)&&(p_0_0>=1))||(!(r_2_0>=3))) U (((r_4_2>=3)||(p_6_2>=2))&&((p_5_2>=1)&&(p_7_1<=r_8_0))))
=> equivalent forward existential formula: [(FwdU(Init,(((p_6_0>=1)&&(p_0_0>=1))||(!(r_2_0>=3)))) * (((r_4_2>=3)||(p_6_2>=2))&&((p_5_2>=1)&&(p_7_1<=r_8_0))))] != FALSE
(forward)formula 2,0,0.111938,7776,1,0,9,16216,27,1,1560,5097,8
FORMULA ResAllocation-PT-R003C010-CTLCardinality-02 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: E(!((r_2_2<=p_4_2)) U ((r_0_2>=3)&&(p_7_2>=3)))
=> equivalent forward existential formula: [(FwdU(Init,!((r_2_2<=p_4_2))) * ((r_0_2>=3)&&(p_7_2>=3)))] != FALSE
(forward)formula 3,0,0.112399,8040,1,0,9,16216,28,1,1563,5097,8
FORMULA ResAllocation-PT-R003C010-CTLCardinality-03 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: EF((r_8_2>=3))
=> equivalent forward existential formula: [(FwdU(Init,TRUE) * (r_8_2>=3))] != FALSE
(forward)formula 4,0,0.112577,8040,1,0,9,16216,29,1,1564,5097,8
FORMULA ResAllocation-PT-R003C010-CTLCardinality-04 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: EF((((r_4_2>=3)&&(r_8_0<=r_2_2))&&((r_4_1<=r_1_0)||(p_2_1<=r_4_2))))
=> equivalent forward existential formula: [(FwdU(Init,TRUE) * (((r_4_2>=3)&&(r_8_0<=r_2_2))&&((r_4_1<=r_1_0)||(p_2_1<=r_4_2))))] != FALSE
(forward)formula 5,0,0.113795,8040,1,0,9,16294,30,1,1571,5104,8
FORMULA ResAllocation-PT-R003C010-CTLCardinality-05 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: (EF((((r_3_0<=r_2_2)||(r_0_0>=3))&&(r_6_0>=3))) * AG((((r_5_2<=r_5_0)&&(r_5_1<=r_9_2))||(!(p_0_1>=3)))))
=> equivalent forward existential formula: ([(Init * !(E(TRUE U (((r_3_0<=r_2_2)||(r_0_0>=3))&&(r_6_0>=3)))))] = FALSE * [(FwdU(Init,TRUE) * !((((r_5_2<=r_5_0)&&(r_5_1<=r_9_2))||(!(p_0_1>=3)))))] = FALSE)
Reverse transition relation is NOT exact ! Due to transitions t3, t4, t11, t12, t19, t20, t27, t28, t35, t36, Intersection with reachable at each step enabled. (destroyed/reverse/intersect/total) :0/30/10/40
(forward)formula 6,0,0.164179,9100,1,0,100,29879,122,43,1966,15452,89
FORMULA ResAllocation-PT-R003C010-CTLCardinality-06 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: (!(EX(((r_7_0>=2)||(r_8_1>=3)))) * !(E((p_4_0<=p_6_1) U (p_4_0>=3))))
=> equivalent forward existential formula: ([(EY(Init) * ((r_7_0>=2)||(r_8_1>=3)))] = FALSE * [(FwdU(Init,(p_4_0<=p_6_1)) * (p_4_0>=3))] = FALSE)
(forward)formula 7,1,0.165181,9364,1,0,100,29879,124,43,1970,15452,89
FORMULA ResAllocation-PT-R003C010-CTLCardinality-07 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is TRUE !

***************************************

original formula: EF(((((r_9_0<=p_4_2)&&(r_2_1>=1))&&((p_0_1<=p_1_0)&&(p_4_0<=p_7_0))) * AX((p_2_0>=1))))
=> equivalent forward existential formula: [((FwdU(Init,TRUE) * (((r_9_0<=p_4_2)&&(r_2_1>=1))&&((p_0_1<=p_1_0)&&(p_4_0<=p_7_0)))) * !(EX(!((p_2_0>=1)))))] != FALSE
(forward)formula 8,1,0.189995,10156,1,0,108,36191,127,48,2012,23751,95
FORMULA ResAllocation-PT-R003C010-CTLCardinality-08 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is TRUE !

***************************************

original formula: !(EF(AG((r_0_0>=3))))
=> equivalent forward existential formula: [(FwdU(Init,TRUE) * !(E(TRUE U !((r_0_0>=3)))))] = FALSE
(forward)formula 9,1,0.213626,10684,1,0,111,38845,131,50,2054,27470,102
FORMULA ResAllocation-PT-R003C010-CTLCardinality-09 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is TRUE !

***************************************

original formula: AG(EF(((r_4_2>=3)||(p_8_2>=1))))
=> equivalent forward existential formula: [(FwdU(Init,TRUE) * !(E(TRUE U ((r_4_2>=3)||(p_8_2>=1)))))] = FALSE
(forward)formula 10,0,0.227382,11212,1,0,133,40726,132,65,2055,29490,138
FORMULA ResAllocation-PT-R003C010-CTLCardinality-10 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: (AG(((p_5_2>=3)||(!(r_3_0>=3)))) + AG(((!(p_7_0>=1))&&((r_8_2>=1)||(p_4_1<=r_4_2)))))
=> equivalent forward existential formula: [(FwdU((Init * !(!(E(TRUE U !(((p_5_2>=3)||(!(r_3_0>=3)))))))),TRUE) * !(((!(p_7_0>=1))&&((r_8_2>=1)||(p_4_1<=r_4_2)))))] = FALSE
(forward)formula 11,1,0.230768,11476,1,0,136,41065,136,66,2072,29964,140
FORMULA ResAllocation-PT-R003C010-CTLCardinality-11 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is TRUE !

***************************************

original formula: E((r_7_2>=1) U (r_7_1>=2))
=> equivalent forward existential formula: [(FwdU(Init,(r_7_2>=1)) * (r_7_1>=2))] != FALSE
(forward)formula 12,0,0.231022,11476,1,0,136,41065,137,66,2073,29964,140
FORMULA ResAllocation-PT-R003C010-CTLCardinality-12 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: EF(EX(((r_4_1>=2)&&(r_2_0>=2))))
=> equivalent forward existential formula: [(EY(FwdU(Init,TRUE)) * ((r_4_1>=2)&&(r_2_0>=2)))] != FALSE
(forward)formula 13,0,0.231375,11476,1,0,136,41065,138,66,2076,29964,140
FORMULA ResAllocation-PT-R003C010-CTLCardinality-13 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************

original formula: (!(EF((r_2_1>=2))) * A(!((r_2_1<=r_3_2)) U ((p_7_2<=p_9_2)||(r_4_2<=p_6_1))))
=> equivalent forward existential formula: ([(FwdU(Init,TRUE) * (r_2_1>=2))] = FALSE * ([(FwdU(Init,!(((p_7_2<=p_9_2)||(r_4_2<=p_6_1)))) * (!(!((r_2_1<=r_3_2))) * !(((p_7_2<=p_9_2)||(r_4_2<=p_6_1)))))] = FALSE * [FwdG(Init,!(((p_7_2<=p_9_2)||(r_4_2<=p_6_1))))] = FALSE))
Hit Full ! (commute/partial/dont) 30/5/10
(forward)formula 14,1,0.237818,11740,1,0,141,41998,155,70,2113,30777,145
FORMULA ResAllocation-PT-R003C010-CTLCardinality-14 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is TRUE !

***************************************

original formula: AG(EX(((r_1_1>=3)||(r_1_0>=1))))
=> equivalent forward existential formula: [(FwdU(Init,TRUE) * !(EX(((r_1_1>=3)||(r_1_0>=1)))))] = FALSE
(forward)formula 15,0,0.260634,12004,1,0,144,45945,156,73,2115,38092,150
FORMULA ResAllocation-PT-R003C010-CTLCardinality-15 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL
Formula is FALSE !

***************************************


BK_STOP 1553667977182

--------------------
content from stderr:

+ export BINDIR=/home/mcc/BenchKit/
+ BINDIR=/home/mcc/BenchKit/
++ pwd
+ export MODEL=/home/mcc/execution
+ MODEL=/home/mcc/execution
+ [[ CTLCardinality = StateSpace ]]
+ /home/mcc/BenchKit//runeclipse.sh /home/mcc/execution CTLCardinality -its -ltsminpath /home/mcc/BenchKit//lts_install_dir/ -greatspnpath /home/mcc/BenchKit//greatspn/ -order META -manyOrder -smt
+ ulimit -s 65536
+ [[ -z '' ]]
+ export LTSMIN_MEM_SIZE=8589934592
+ LTSMIN_MEM_SIZE=8589934592
+ /home/mcc/BenchKit//itstools/its-tools -data /home/mcc/execution/workspace -pnfolder /home/mcc/execution -examination CTLCardinality -z3path /home/mcc/BenchKit//z3/bin/z3 -yices2path /home/mcc/BenchKit//yices/bin/yices -its -ltsminpath /home/mcc/BenchKit//lts_install_dir/ -greatspnpath /home/mcc/BenchKit//greatspn/ -order META -manyOrder -smt -vmargs -Dosgi.locking=none -Declipse.stateSaveDelayInterval=-1 -Dosgi.configuration.area=/tmp/.eclipse -Xss8m -Xms40m -Xmx8192m -Dfile.encoding=UTF-8 -Dosgi.requiredJavaVersion=1.6
Mar 27, 2019 6:26:15 AM fr.lip6.move.gal.application.Application start
INFO: Running its-tools with arguments : [-pnfolder, /home/mcc/execution, -examination, CTLCardinality, -z3path, /home/mcc/BenchKit//z3/bin/z3, -yices2path, /home/mcc/BenchKit//yices/bin/yices, -its, -ltsminpath, /home/mcc/BenchKit//lts_install_dir/, -greatspnpath, /home/mcc/BenchKit//greatspn/, -order, META, -manyOrder, -smt]
Mar 27, 2019 6:26:15 AM fr.lip6.move.gal.application.MccTranslator transformPNML
INFO: Parsing pnml file : /home/mcc/execution/model.pnml
Mar 27, 2019 6:26:15 AM fr.lip6.move.gal.nupn.PTNetReader loadFromXML
INFO: Load time of PNML (sax parser for PT used): 87 ms
Mar 27, 2019 6:26:15 AM fr.lip6.move.gal.pnml.togal.PTGALTransformer handlePage
INFO: Transformed 60 places.
Mar 27, 2019 6:26:16 AM fr.lip6.move.gal.pnml.togal.PTGALTransformer handlePage
INFO: Transformed 40 transitions.
Mar 27, 2019 6:26:16 AM fr.lip6.move.serialization.SerializationUtil systemToFile
INFO: Time to serialize gal into /home/mcc/execution/model.pnml.img.gal : 19 ms
Mar 27, 2019 6:26:16 AM fr.lip6.move.gal.instantiate.GALRewriter flatten
INFO: Flatten gal took : 81 ms
Mar 27, 2019 6:26:16 AM fr.lip6.move.gal.semantics.DeterministicNextBuilder getDeterministicNext
INFO: Input system was already deterministic with 40 transitions.
Mar 27, 2019 6:26:16 AM fr.lip6.move.gal.application.StructuralToGreatSPN handlePage
INFO: Transformed 60 places.
Mar 27, 2019 6:26:16 AM fr.lip6.move.gal.application.StructuralToGreatSPN handlePage
INFO: Transformed 40 transitions.
Mar 27, 2019 6:26:16 AM fr.lip6.move.serialization.SerializationUtil systemToFile
INFO: Time to serialize gal into /home/mcc/execution/CTLCardinality.pnml.gal : 3 ms
Mar 27, 2019 6:26:16 AM fr.lip6.move.serialization.SerializationUtil serializePropertiesForITSCTLTools
INFO: Time to serialize properties into /home/mcc/execution/CTLCardinality.ctl : 3 ms

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="ResAllocation-PT-R003C010"
export BK_EXAMINATION="CTLCardinality"
export BK_TOOL="itstoolsm"
export BK_RESULT_DIR="/tmp/BK_RESULTS/OUTPUTS"
export BK_TIME_CONFINEMENT="3600"
export BK_MEMORY_CONFINEMENT="16384"

# 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-3954"
echo " Executing tool itstoolsm"
echo " Input is ResAllocation-PT-R003C010, examination is CTLCardinality"
echo " Time confinement is $BK_TIME_CONFINEMENT seconds"
echo " Memory confinement is 16384 MBytes"
echo " Number of cores is 4"
echo " Run identifier is r200-ebro-155286406100040"
echo "====================================================================="
echo
echo "--------------------"
echo "preparation of the directory to be used:"

tar xzf /home/mcc/BenchKit/INPUTS/ResAllocation-PT-R003C010.tgz
mv ResAllocation-PT-R003C010 execution
cd execution
if [ "CTLCardinality" = "GlobalProperties" ] ; then
rm -f GenericPropertiesVerdict.xml
fi
if [ "CTLCardinality" = "UpperBounds" ] ; 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 [ "CTLCardinality" = "UpperBounds" ] ; then
echo "The expected result is a vector of positive values"
echo NUM_VECTOR
elif [ "CTLCardinality" != "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 "CTLCardinality.txt" ] ; then
echo "here is the order used to build the result vector(from text file)"
for x in $(grep Property CTLCardinality.txt | cut -d ' ' -f 2 | sort -u) ; do
echo "FORMULA_NAME $x"
done
elif [ -f "CTLCardinality.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 '' CTLCardinality.xml | cut -d '>' -f 2 | cut -d '<' -f 1 | sort -u) ; do
echo "FORMULA_NAME $x"
done
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 ;