File adaptors
This page shows the capabilities of the adaptors that implement the JavaGAT File object. The table below shows the status of the adaptor, which can be 'done', 'w.i.p' (work in progress) or 'untested' (coding is done, needs testing). Furthermore you can see the implementation level (the percentage of implemented methods), and you can see the details of which methods are actually implemented. There is also a per method overview (which adaptors implement a certain method)
name |
status |
implemented |
LocalFileAdaptor |
done |
93 % [details] |
GridFTPFileAdaptor |
done |
83 % [details] |
SftpTrileadFileAdaptor |
done |
74 % [details] |
CommandlineSshFileAdaptor |
done |
86 % [details] |
SshTrileadFileAdaptor |
done |
93 % [details] |
FTPFileAdaptor |
done |
83 % [details] |
RFTGT42FileAdaptor |
done |
55 % [details] |
GT42GridFTPFileAdaptor |
done |
88 % [details] |
GliteGuidFileAdaptor |
done |
58 % [details] |
GliteSrmFileAdaptor |
done |
55 % [details] |
GliteLfnFileAdaptor |
done |
86 % [details] |
GT4GridFTPFileAdaptor |
done |
88 % [details] |
RFTGT4FileAdaptor |
done |
55 % [details] |
SrcToLocalToDestCopyFileAdaptor |
done |
53 % [details] |
StreamingFileAdaptor |
done |
55 % [details] |
Adaptor description: The Local File Adaptor is a simple wrapper around the java.io.File object.
implemented |
not implemented |
setReadOnly |
- |
getAbsoluteFile |
- |
- |
getCanonicalPath |
getCanonicalFile |
- |
listFiles |
- |
renameTo |
- |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
isHidden |
- |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
- |
getAbsolutePath |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
setLastModified |
- |
toURL |
- |
Adaptor description: The GridFTP File Adaptor implements the File object using Globus GSIFTP.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
renameTo |
- |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
getAbsolutePath |
- |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The SftpTrilead File Adaptor implements the File object using the SFTP support of the trilead ssh library. Trilead ssh is an open source full java ssh library. On the server side, the 'scp' program must be in the PATH. Connections with a remote ssh server can be made by using the username + password, username + keyfile, or with only a username, depending on the client and server settings.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
- |
canWrite |
length |
- |
getPath |
- |
- |
canRead |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
- |
getAbsolutePath |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The CommandlineSsh File Adaptor implements the File object using ssh commands.
implemented |
not implemented |
- |
setReadOnly |
getAbsoluteFile |
- |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
getAbsolutePath |
- |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
setLastModified |
- |
toURL |
- |
Adaptor description: The SshTrilead File Adaptor implements the File object using the trilead ssh library. Trilead ssh is an open source full java ssh library. On the server side, the 'scp' program must be in the PATH. Connections with a remote ssh server can be made by using the username + password, username + keyfile, or with only a username, depending on the client and server settings.
implemented |
not implemented |
setReadOnly |
- |
getAbsoluteFile |
- |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
renameTo |
- |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
isHidden |
- |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
getAbsolutePath |
- |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
setLastModified |
- |
toURL |
- |
Adaptor description: The FTP File Adaptor implements the File object using FTP.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
renameTo |
- |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
getAbsolutePath |
- |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The RFTGT42 File Adaptor implements the File object on Globus 4.2 using the Globus Reliable File Transfer (RFT) protocol.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
- |
canWrite |
- |
length |
getPath |
- |
- |
canRead |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
- |
lastModified |
getParent |
- |
equals |
- |
mkdirs |
- |
- |
mkdir |
- |
list |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
- |
isDirectory |
getMeasurement |
- |
- |
isFile |
removeMetricListener |
- |
- |
createNewFile |
getName |
- |
- |
getAbsolutePath |
- |
exists |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The GT42 GridFTP File Adaptor implements the File object for Globus 4.2 using the gsiftp protocol.
implemented |
not implemented |
setReadOnly |
- |
getAbsoluteFile |
- |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
getAbsolutePath |
- |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
setLastModified |
- |
toURL |
- |
Adaptor description: The GliteGUID File Adaptor implements the File object for the Glite LFCs, accessed via the guid: scheme.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
- |
canWrite |
- |
length |
getPath |
- |
- |
canRead |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
- |
lastModified |
getParent |
- |
equals |
- |
mkdirs |
- |
- |
mkdir |
- |
list |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
- |
isDirectory |
getMeasurement |
- |
- |
isFile |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
- |
getAbsolutePath |
- |
exists |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The GliteSRM File Adaptor implements the File object for the gLite SRM protocol.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
- |
canWrite |
- |
length |
getPath |
- |
- |
canRead |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
- |
lastModified |
getParent |
- |
equals |
- |
mkdirs |
- |
- |
mkdir |
- |
list |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
- |
isDirectory |
getMeasurement |
- |
- |
isFile |
removeMetricListener |
- |
- |
createNewFile |
getName |
- |
- |
getAbsolutePath |
- |
exists |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The GliteLfn File Adaptor implements the File object for the Glite LFCs, accessed via lfn: scheme.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
renameTo |
- |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
isHidden |
- |
getFileAttributeView |
- |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
- |
getAbsolutePath |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The GT4 File Adaptor implements the File object on Globus 4.0 using the Globus COG abstraction kit.
implemented |
not implemented |
setReadOnly |
- |
getAbsoluteFile |
- |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
canWrite |
- |
length |
- |
getPath |
- |
canRead |
- |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
lastModified |
- |
getParent |
- |
equals |
- |
mkdirs |
- |
mkdir |
- |
list |
- |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
isDirectory |
- |
getMeasurement |
- |
isFile |
- |
removeMetricListener |
- |
createNewFile |
- |
getName |
- |
getAbsolutePath |
- |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
setLastModified |
- |
toURL |
- |
Adaptor description: The RFTGT4 File Adaptor implements the File object on Globus 4.0 using the Globus Reliable File Transfer (RFT) protocol.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
- |
canWrite |
- |
length |
getPath |
- |
- |
canRead |
delete |
- |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
- |
lastModified |
getParent |
- |
equals |
- |
mkdirs |
- |
- |
mkdir |
- |
list |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
- |
isDirectory |
getMeasurement |
- |
- |
isFile |
removeMetricListener |
- |
- |
createNewFile |
getName |
- |
- |
getAbsolutePath |
- |
exists |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The SrcToLocalToDest File Adaptor only implements the File copy operation, via a local temporary file. Its purpose is to allow copying of a file from one adaptor to another.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
- |
canWrite |
- |
length |
getPath |
- |
- |
canRead |
- |
delete |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
- |
lastModified |
getParent |
- |
equals |
- |
mkdirs |
- |
- |
mkdir |
- |
list |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
- |
isDirectory |
getMeasurement |
- |
- |
isFile |
removeMetricListener |
- |
- |
createNewFile |
getName |
- |
- |
getAbsolutePath |
- |
exists |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Adaptor description: The Streaming File Adaptor only implements the File copy operation, by creating a JavaGAT FileInputStream to read the source, and a JavaGAT FileOutputStream to write the destination.
implemented |
not implemented |
- |
setReadOnly |
- |
getAbsoluteFile |
- |
getCanonicalPath |
- |
getCanonicalFile |
listFiles |
- |
- |
renameTo |
getParentFile |
- |
addMetricListener |
- |
- |
canWrite |
- |
length |
getPath |
- |
- |
canRead |
- |
delete |
recursivelyDeleteDirectory |
- |
move |
- |
getMetricDefinitions |
- |
copy |
- |
- |
lastModified |
getParent |
- |
equals |
- |
mkdirs |
- |
- |
mkdir |
- |
list |
isAbsolute |
- |
compareTo |
- |
hashcode |
- |
- |
isHidden |
- |
getFileAttributeView |
getGATContext |
- |
- |
isDirectory |
getMeasurement |
- |
- |
isFile |
removeMetricListener |
- |
- |
createNewFile |
getName |
- |
- |
getAbsolutePath |
exists |
- |
deleteOneExit |
- |
toString |
- |
toURI |
- |
getMetricDefinitionByName |
- |
- |
setLastModified |
toURL |
- |
Per Method Overview
|
Local |
GridF |
SftpT |
Comma |
SshTr |
FTPFi |
RFTGT |
GT42G |
Glite |
Glite |
Glite |
GT4Gr |
RFTGT |
SrcTo |
Strea |
getAbsoluteFile |
V |
X |
X |
V |
V |
X |
X |
V |
X |
X |
X |
V |
X |
X |
X |
setReadOnly |
V |
X |
X |
X |
V |
X |
X |
V |
X |
X |
X |
V |
X |
X |
X |
getCanonicalFile |
V |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
getCanonicalPath |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
listFiles |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
renameTo |
V |
V |
X |
X |
V |
V |
X |
X |
X |
X |
V |
X |
X |
X |
X |
addMetricListener |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
getParentFile |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
canWrite |
V |
V |
X |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
delete |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
X |
X |
canRead |
V |
V |
X |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
getPath |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
length |
V |
V |
V |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
recursivelyDeleteDirectory |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
move |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
getMetricDefinitions |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
copy |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
lastModified |
V |
V |
V |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
getParent |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
equals |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
mkdirs |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
mkdir |
V |
V |
V |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
list |
V |
V |
V |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
isAbsolute |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
compareTo |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
hashcode |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
getGATContext |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
getFileAttributeView |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
V |
X |
X |
X |
X |
isHidden |
V |
X |
X |
X |
V |
X |
X |
X |
X |
X |
V |
X |
X |
X |
X |
getMeasurement |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
isDirectory |
V |
V |
V |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
createNewFile |
V |
V |
V |
V |
V |
V |
X |
V |
V |
X |
V |
V |
X |
X |
X |
removeMetricListener |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
isFile |
V |
V |
V |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
X |
getName |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
exists |
V |
V |
V |
V |
V |
V |
X |
V |
X |
X |
V |
V |
X |
X |
V |
getAbsolutePath |
X |
V |
X |
V |
V |
V |
X |
V |
X |
X |
X |
V |
X |
X |
X |
deleteOneExit |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
toURI |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
toString |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
getMetricDefinitionByName |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
toURL |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
V |
setLastModified |
V |
X |
X |
V |
V |
X |
X |
V |
X |
X |
X |
V |
X |
X |
X |
total |
93 % |
83 % |
74 % |
86 % |
93 % |
83 % |
55 % |
88 % |
58 % |
55 % |
86 % |
88 % |
55 % |
53 % |
55 % |