Skip to content

Commit

Permalink
[egs,scripts]: replace non-portable read-link -f with utils/make_abso…
Browse files Browse the repository at this point in the history
…lute.sh (#1694)

* remove links

* added steps link

* REplacement script for the gnu tool readlink with the -f option

* changed sh to bash

* replaced readlink -e with utils/make_absolute.sh

* added comments and down cased variables
  • Loading branch information
johnjosephmorgan authored and jtrmal committed Jun 24, 2017
1 parent b82b82f commit acb5439
Show file tree
Hide file tree
Showing 97 changed files with 176 additions and 155 deletions.
2 changes: 1 addition & 1 deletion egs/ami/s5/local/online/run_nnet2_ms_sp_disc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ fi

if [ $stage -le 5 ]; then
dir=${srcdir}_${criterion}_${effective_lrate}
ln -sf $(readlink -f ${srcdir}_online/conf) $dir/conf # so it acts like an online-decoding directory
ln -sf $(utils/make_absolute.sh ${srcdir}_online/conf) $dir/conf # so it acts like an online-decoding directory

for epoch in $(seq $decode_start_epoch $num_epochs); do
for decode_set in dev eval; do
Expand Down
2 changes: 1 addition & 1 deletion egs/aspire/s5/local/fisher_data_prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ fi
if [ $stage -le 3 ]; then
for f in `cat $tmpdir/sph.flist`; do
# convert to absolute path
readlink -e $f
utils/make_absolute.sh $f
done > $tmpdir/sph_abs.flist

cat $tmpdir/sph_abs.flist | perl -ane 'm:/([^/]+)\.sph$: || die "bad line $_; "; print "$1 $_"; ' > $tmpdir/sph.scp
Expand Down
4 changes: 2 additions & 2 deletions egs/aspire/s5/local/multi_condition/aspire_data_prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ fi
if [ $stage -le 3 ]; then
for f in `cat $tmpdir/wav.flist`; do
# convert to absolute path
readlink -e $f
utils/make_absolute.sh $f
done > $tmpdir/wav_abs.flist

cat $tmpdir/wav_abs.flist | python -c "
Expand All @@ -132,7 +132,7 @@ if [ $stage -le 4 ]; then
mkdir -p $test
for f in `cat $tmpdir/wav_${dataset}.flist`; do
# convert to absolute path
readlink -e $f
utils/make_absolute.sh $f
done > $tmpdir/wav_${dataset}_abs.flist
cat $tmpdir/wav_${dataset}_abs.flist | \
python -c "
Expand Down
2 changes: 1 addition & 1 deletion egs/aspire/s5/local/multi_condition/rirs/prep_aalto.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ total_files=$(echo ${data_files[@]}|wc -w)
echo "" > $log_dir/${DBname}_type${type_num}.rir.list
echo "Found $total_files impulse responses in ${RIR_home}/aalto_concert_hall_pori//"
tmpdir=`mktemp -d $log_dir/aalto_XXXXXX`
tmpdir=`readlink -e $tmpdir`
tmpdir=`utils/make_absolute.sh $tmpdir`
file_count=1
for data_file in ${data_files[@]}; do
# aalto has incompatible format of wav audio, which are not compatible with python's wav.read() function
Expand Down
2 changes: 1 addition & 1 deletion egs/aspire/s5/local/multi_condition/rirs/prep_c4dm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ total_files=$(echo ${data_files[@]}|wc -w)
echo "" > $log_dir/${DBname}_type${type_num}.rir.list
echo "Found $total_files impulse responses in ${RIR_home}/c4dm/"
tmpdir=`mktemp -d $log_dir/c4dm_XXXXXX`
tmpdir=`readlink -e $tmpdir`
tmpdir=`utils/make_absolute.sh $tmpdir`
file_count=1
for data_file in ${data_files[@]}; do
# c4dm has incompatible format of wav audio, which are not compatible with python's wav.read() function
Expand Down
2 changes: 1 addition & 1 deletion egs/aspire/s5/local/multi_condition/rirs/prep_openair.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ log_dir=$3

if [ "$download" = true ]; then
mkdir -p $RIR_home
RIR_home_abs=`readlink -e $RIR_home`
RIR_home_abs=`utils/make_absolute.sh $RIR_home`
#HamiltonMuseum
#http://www.openairlib.net/auralizationdb/content/hamilton-mausoleum
echo "">$log_dir/${DBname}_download_commands.sh
Expand Down
2 changes: 1 addition & 1 deletion egs/aspire/s5/local/multi_condition/run_nnet2_ms_disc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ fi

if [ $stage -le 5 ]; then
dir=${srcdir}_${criterion}_${learning_rate}_nj${num_jobs_nnet}
#ln -sf $(readlink -f ${srcdir}_multicondition/conf) $dir/conf # so it acts like an online-decoding directory
#ln -sf $(utils/make_absolute.sh ${srcdir}_multicondition/conf) $dir/conf # so it acts like an online-decoding directory
graph_dir=exp/tri5a/graph
for epoch in $(seq $decode_start_epoch $num_epochs); do
for data_dir in dev_rvb test_rvb dev_aspire dev test; do
Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5/local/make_corpus_subset.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ fi
mkdir -p $output_data_dir/transcription
mkdir -p $output_data_dir/audio

abs_src_dir=`readlink -f $input_data_dir`
abs_tgt_dir=`readlink -f $output_data_dir`
abs_src_dir=`utils/make_absolute.sh $input_data_dir`
abs_tgt_dir=`utils/make_absolute.sh $output_data_dir`

echo "Making subset..."
for file_basename in `cat $input_data_list`; do
Expand Down
2 changes: 1 addition & 1 deletion egs/babel/s5/make_release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ function export_file {
else
if [ ! -f $target_file ] ; then
if ! $dryrun ; then
ln -s `readlink -f $source_file` $target_file || exit 1
ln -s `utils/make_absolute.sh $source_file` $target_file || exit 1
fi
else
echo "The file is already there, not doing anything. Either change the version (using --version), or delete that file manually)"
Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5/run-1-main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ if [ ! -d data/raw_train_data ]; then
echo ---------------------------------------------------------------------

local/make_corpus_subset.sh "$train_data_dir" "$train_data_list" ./data/raw_train_data
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`

fi
nj_max=`cat $train_data_list | wc -l`
Expand All @@ -34,7 +34,7 @@ if [[ "$nj_max" -lt "$train_nj" ]] ; then
exit 1;
train_nj=$nj_max
fi
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`

if [ ! -d data/raw_dev2h_data ]; then
echo ---------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion egs/babel/s5/run-2b-bnf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ num_pdfs=`gmm-info exp/tri5_ali/final.mdl | grep pdfs | awk '{print $NF}'` || ex

# Now we copy conf/bnf/config_limited.py or conf/bnf/config_full.py, as appropriate,
# to ptdnn/exp_bnf/config.py, replacing a couple of things as we copy it.
WORK=`readlink -f $working_dir`
WORK=`utils/make_absolute.sh $working_dir`
config_in=conf/bnf/config_${babel_type}.py
[ ! -f $config_in ] && echo "No such config file $config_in" && exit 1;
! cat $config_in | sed "s|CWD|$PWD|" | sed "s|WORK|$WORK|" | sed "s/N_OUTS/${num_pdfs}/" > ptdnn/exp_bnf/config.py && \
Expand Down
2 changes: 1 addition & 1 deletion egs/babel/s5/run-4-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ else

local/make_corpus_subset.sh "$my_data_dir" "$my_data_list" ./data/raw_${type}_data
fi
my_data_dir=`readlink -f ./data/raw_${type}_data`
my_data_dir=`utils/make_absolute.sh ./data/raw_${type}_data`

nj_max=`cat $my_data_list | wc -l`
if [[ "$nj_max" -lt "$my_nj" ]] ; then
Expand Down
2 changes: 1 addition & 1 deletion egs/babel/s5/run-5-anydecode.sh
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ else

local/make_corpus_subset.sh "$my_data_dir" "$my_data_list" ./data/raw_${type}_data
fi
my_data_dir=`readlink -f ./data/raw_${type}_data`
my_data_dir=`utils/make_absolute.sh ./data/raw_${type}_data`

nj_max=`cat $my_data_list | wc -l`
if [[ "$nj_max" -lt "$my_nj" ]] ; then
Expand Down
2 changes: 1 addition & 1 deletion egs/babel/s5b/EXAMPLE.vietnamese
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
#Combine results (what we call 4way-combo)
#This is ugly, but effective
systems=""; for sys in `ls -1 release/*dev*.ctm | grep -v RESCORED` ; do
q=`readlink -f $sys`;
q=`utils/make_absolute.sh $sys`;
decode=${q%%/dev10h.seg*};
w=`dirname ${q##*score_}`;
echo $w; systems+=" ${decode}:$(($w - 10))";
Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5b/local/make_corpus_subset.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ for i in `seq 0 $(( $num_src / 2 - 1))` ; do
input_data_dir=${sources[ $[2 * $i] ]}
input_data_list=${sources[ $((2 * $i + 1)) ]}

abs_src_dir=`readlink -f $input_data_dir`
abs_tgt_dir=`readlink -f $output_data_dir`
abs_src_dir=`utils/make_absolute.sh $input_data_dir`
abs_tgt_dir=`utils/make_absolute.sh $output_data_dir`

if [[ ! -d "$input_data_dir" ]] ; then
echo "FATAL: input data directory does not exist";
Expand Down
12 changes: 6 additions & 6 deletions egs/babel/s5b/local/nist_eval/create_compound_set.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,22 @@ echo "Creating compound $tgtdir/compounds/$devset"
(
cd $tgtdir/compounds/$devset
echo "DEVSET file list: $devset_flist"
ln -s `readlink -f $devset_flist` files.list
ln -s `utils/make_absolute.sh $devset_flist` files.list
echo "DEVSET ECF file : $devset_ecf"
ln -s `readlink -f $devset_ecf` ecf.xml
ln -s `utils/make_absolute.sh $devset_ecf` ecf.xml
echo "DEVSET RTTM file: $devset_rttm"
ln -s `readlink -f $devset_rttm` rttm
ln -s `utils/make_absolute.sh $devset_rttm` rttm
echo "DEVSET STM file : $devset_stm"
ln -s `readlink -f $devset_stm` stm
ln -s `utils/make_absolute.sh $devset_stm` stm
)

echo "Creating compound $tgtdir/compounds/$evlset"
(
cd $tgtdir/compounds/$evlset
echo "EVLSET file list: $evlset_flist"
ln -s `readlink -f $evlset_flist` files.list
ln -s `utils/make_absolute.sh $evlset_flist` files.list
echo "EVLSET ECF file : $evlset_ecf"
ln -s `readlink -f $evlset_ecf` ecf.xml
ln -s `utils/make_absolute.sh $evlset_ecf` ecf.xml
)

echo "Compound creation OK."
Expand Down
10 changes: 5 additions & 5 deletions egs/babel/s5b/local/nist_eval/make_release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ function export_file {
else
if [ ! -f $target_file ] ; then
if ! $dryrun ; then
ln -s `readlink -f $source_file` $target_file || exit 1
ln -s `utils/make_absolute.sh $source_file` $target_file || exit 1
ls -al $target_file
else
echo "$source_file -> $target_file"
Expand Down Expand Up @@ -158,10 +158,10 @@ function get_ecf_name {
#echo $kwstask
if [ -z $kwstask ] ; then
#echo $data/kws/kwlist.xml
kwlist= `readlink -f $data/kws/kwlist.xml`
kwlist= `utils/make_absolute.sh $data/kws/kwlist.xml`
else
#echo $data/$kwstask/kwlist.xml
kwlist=`readlink -f $data/$kwstask/kwlist.xml`
kwlist=`utils/make_absolute.sh $data/$kwstask/kwlist.xml`
fi
ecf=`head -n 1 $kwlist | grep -Po "(?<=ecf_filename=\")[^\"]*"`
echo -e "\tFound ECF: $ecf" >&2
Expand Down Expand Up @@ -302,7 +302,7 @@ else
echo -e "\tPREPARE EXPORT: $compound_best_one"
sysid=`create_sysid $compound_best_one`
#ecf=`get_ecf_name $best_one`
ecf=`readlink -f $data/compounds/$compound/ecf.xml`
ecf=`utils/make_absolute.sh $data/compounds/$compound/ecf.xml`
scase=`figure_out_scase $ecf`
partition=`figure_out_partition $ecf`
corpusid=`figure_out_corpusid $ecf`
Expand Down Expand Up @@ -340,7 +340,7 @@ else
echo -e "\tPREPARE EXPORT: $compound_best_one"
sysid=`create_sysid $compound_best_one`
#ecf=`get_ecf_name $best_one`
ecf=`readlink -f $data/compounds/$compound/ecf.xml`
ecf=`utils/make_absolute.sh $data/compounds/$compound/ecf.xml`
scase=`figure_out_scase $ecf`
partition=`figure_out_partition $ecf`
corpusid=`figure_out_corpusid $ecf`
Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5b/run-1-main-extend-lex.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ if [ ! -f data/raw_train_data/.done ]; then
echo ---------------------------------------------------------------------

local/make_corpus_subset.sh "$train_data_dir" "$train_data_list" ./data/raw_train_data
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`
touch data/raw_train_data/.done
fi
nj_max=`cat $train_data_list | wc -l`
Expand All @@ -42,7 +42,7 @@ if [[ "$nj_max" -lt "$train_nj" ]] ; then
exit 1;
train_nj=$nj_max
fi
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`

if [ ! -d data/raw_dev2h_data ]; then
echo ---------------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5b/run-1-main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ if [ ! -f data/raw_train_data/.done ]; then
echo ---------------------------------------------------------------------

local/make_corpus_subset.sh "$train_data_dir" "$train_data_list" ./data/raw_train_data
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`
touch data/raw_train_data/.done
fi
nj_max=`cat $train_data_list | wc -l`
Expand All @@ -36,7 +36,7 @@ if [[ "$nj_max" -lt "$train_nj" ]] ; then
exit 1;
train_nj=$nj_max
fi
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`

if [ ! -d data/raw_dev2h_data ]; then
echo ---------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion egs/babel/s5b/run-2-segmentation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ if [[ "$nj_max" -lt "$train_nj" ]] ; then
exit 1;
train_nj=$nj_max
fi
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`

if [ ! -f data/train_seg/.done ]; then

Expand Down
2 changes: 1 addition & 1 deletion egs/babel/s5b/run-4-anydecode.sh
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ if [ ! -f data/raw_${dataset_type}_data/.done ]; then
local/make_corpus_subset.sh $resource_string ./data/raw_${dataset_type}_data
touch data/raw_${dataset_type}_data/.done
fi
my_data_dir=`readlink -f ./data/raw_${dataset_type}_data`
my_data_dir=`utils/make_absolute.sh ./data/raw_${dataset_type}_data`
[ -f $my_data_dir/filelist.list ] && my_data_list=$my_data_dir/filelist.list
nj_max=`cat $my_data_list | wc -l` || nj_max=`ls $my_data_dir/audio | wc -l`

Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5c/local/make_corpus_subset.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ for i in `seq 0 $(( $num_src / 2 - 1))` ; do
input_data_dir=${sources[ $[2 * $i] ]}
input_data_list=${sources[ $((2 * $i + 1)) ]}

abs_src_dir=`readlink -f $input_data_dir`
abs_tgt_dir=`readlink -f $output_data_dir`
abs_src_dir=`utils/make_absolute.sh $input_data_dir`
abs_tgt_dir=`utils/make_absolute.sh $output_data_dir`

if [[ ! -d "$input_data_dir" ]] ; then
echo "FATAL: input data directory does not exist";
Expand Down
12 changes: 6 additions & 6 deletions egs/babel/s5c/local/nist_eval/create_compound_set.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,22 @@ echo "Creating compound $tgtdir/compounds/$devset"
(
cd $tgtdir/compounds/$devset
echo "DEVSET file list: $devset_flist"
ln -s `readlink -f $devset_flist` files.list
ln -s `utils/make_absolute.sh $devset_flist` files.list
echo "DEVSET ECF file : $devset_ecf"
ln -s `readlink -f $devset_ecf` ecf.xml
ln -s `utils/make_absolute.sh $devset_ecf` ecf.xml
echo "DEVSET RTTM file: $devset_rttm"
ln -s `readlink -f $devset_rttm` rttm
ln -s `utils/make_absolute.sh $devset_rttm` rttm
echo "DEVSET STM file : $devset_stm"
ln -s `readlink -f $devset_stm` stm
ln -s `utils/make_absolute.sh $devset_stm` stm
)

echo "Creating compound $tgtdir/compounds/$evlset"
(
cd $tgtdir/compounds/$evlset
echo "EVLSET file list: $evlset_flist"
ln -s `readlink -f $evlset_flist` files.list
ln -s `utils/make_absolute.sh $evlset_flist` files.list
echo "EVLSET ECF file : $evlset_ecf"
ln -s `readlink -f $evlset_ecf` ecf.xml
ln -s `utils/make_absolute.sh $evlset_ecf` ecf.xml
)

echo "Compound creation OK."
Expand Down
10 changes: 5 additions & 5 deletions egs/babel/s5c/local/nist_eval/make_release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ function export_file {
else
if [ ! -f $target_file ] ; then
if ! $dryrun ; then
ln -s `readlink -f $source_file` $target_file || exit 1
ln -s `utils/make_absolute.sh $source_file` $target_file || exit 1
ls -al $target_file
else
echo "$source_file -> $target_file"
Expand Down Expand Up @@ -158,10 +158,10 @@ function get_ecf_name {
#echo $kwstask
if [ -z $kwstask ] ; then
#echo $data/kws/kwlist.xml
kwlist= `readlink -f $data/kws/kwlist.xml`
kwlist= `utils/make_absolute.sh $data/kws/kwlist.xml`
else
#echo $data/$kwstask/kwlist.xml
kwlist=`readlink -f $data/$kwstask/kwlist.xml`
kwlist=`utils/make_absolute.sh $data/$kwstask/kwlist.xml`
fi
ecf=`head -n 1 $kwlist | grep -Po "(?<=ecf_filename=\")[^\"]*"`
echo -e "\tFound ECF: $ecf" >&2
Expand Down Expand Up @@ -302,7 +302,7 @@ else
echo -e "\tPREPARE EXPORT: $compound_best_one"
sysid=`create_sysid $compound_best_one`
#ecf=`get_ecf_name $best_one`
ecf=`readlink -f $data/compounds/$compound/ecf.xml`
ecf=`utils/make_absolute.sh $data/compounds/$compound/ecf.xml`
scase=`figure_out_scase $ecf`
partition=`figure_out_partition $ecf`
corpusid=`figure_out_corpusid $ecf`
Expand Down Expand Up @@ -340,7 +340,7 @@ else
echo -e "\tPREPARE EXPORT: $compound_best_one"
sysid=`create_sysid $compound_best_one`
#ecf=`get_ecf_name $best_one`
ecf=`readlink -f $data/compounds/$compound/ecf.xml`
ecf=`utils/make_absolute.sh $data/compounds/$compound/ecf.xml`
scase=`figure_out_scase $ecf`
partition=`figure_out_partition $ecf`
corpusid=`figure_out_corpusid $ecf`
Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5c/run-1-main-extend-lex.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ if [ ! -f data/raw_train_data/.done ]; then
echo ---------------------------------------------------------------------

local/make_corpus_subset.sh "$train_data_dir" "$train_data_list" ./data/raw_train_data
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`
touch data/raw_train_data/.done
fi
nj_max=`cat $train_data_list | wc -l`
Expand All @@ -42,7 +42,7 @@ if [[ "$nj_max" -lt "$train_nj" ]] ; then
exit 1;
train_nj=$nj_max
fi
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`

if [ ! -d data/raw_dev2h_data ]; then
echo ---------------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions egs/babel/s5c/run-1-main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ if [ ! -f data/raw_train_data/.done ]; then
echo ---------------------------------------------------------------------

local/make_corpus_subset.sh "$train_data_dir" "$train_data_list" ./data/raw_train_data
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`
touch data/raw_train_data/.done
fi
nj_max=`cat $train_data_list | wc -l`
Expand All @@ -36,7 +36,7 @@ if [[ "$nj_max" -lt "$train_nj" ]] ; then
exit 1;
train_nj=$nj_max
fi
train_data_dir=`readlink -f ./data/raw_train_data`
train_data_dir=`utils/make_absolute.sh ./data/raw_train_data`

if [ ! -d data/raw_dev2h_data ]; then
echo ---------------------------------------------------------------------
Expand Down
Loading

0 comments on commit acb5439

Please sign in to comment.