aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/charon/bus/listeners/listener.h2
-rw-r--r--src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_card.h2
-rw-r--r--src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_functions.h2
-rw-r--r--src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_provider.h2
-rw-r--r--src/charon/plugins/eap_sim_file/eap_sim_file_card.h2
-rw-r--r--src/charon/plugins/eap_sim_file/eap_sim_file_provider.h2
-rw-r--r--src/charon/plugins/eap_sim_file/eap_sim_file_triplets.h2
-rw-r--r--src/charon/plugins/load_tester/load_tester_diffie_hellman.h2
-rw-r--r--src/charon/plugins/nm/nm_handler.h2
-rw-r--r--src/charon/plugins/resolve/resolve_handler.h6
-rw-r--r--src/charon/plugins/updown/updown_listener.h2
-rw-r--r--src/charon/sa/keymat.h2
-rw-r--r--src/charon/sa/trap_manager.h2
-rw-r--r--src/libstrongswan/attributes/attribute_handler.h2
-rw-r--r--src/libstrongswan/attributes/attributes.h2
-rw-r--r--src/libstrongswan/credentials/keys/key_encoding.h2
-rw-r--r--src/libstrongswan/credentials/keys/private_key.h6
-rw-r--r--src/libstrongswan/credentials/keys/public_key.h2
-rw-r--r--src/libstrongswan/crypto/crypto_tester.h2
-rw-r--r--src/libstrongswan/crypto/hashers/hasher.h2
-rw-r--r--src/libstrongswan/integrity_checker.h2
-rw-r--r--src/libstrongswan/plugins/attr_sql/attr_sql_plugin.h6
-rw-r--r--src/libstrongswan/plugins/attr_sql/sql_attribute.h2
-rw-r--r--src/libstrongswan/plugins/padlock/padlock_rng.h2
-rw-r--r--src/libstrongswan/plugins/pem/pem_builder.h2
-rw-r--r--src/libstrongswan/plugins/pgp/pgp_builder.h2
-rw-r--r--src/libstrongswan/plugins/pgp/pgp_cert.h2
-rw-r--r--src/libstrongswan/plugins/pgp/pgp_encoder.h2
-rw-r--r--src/libstrongswan/plugins/pgp/pgp_plugin.h4
-rw-r--r--src/libstrongswan/plugins/pgp/pgp_utils.h2
-rw-r--r--src/libstrongswan/plugins/pkcs1/pkcs1_builder.h2
-rw-r--r--src/libstrongswan/plugins/pkcs1/pkcs1_encoder.h2
-rw-r--r--src/libstrongswan/plugins/pkcs1/pkcs1_plugin.h4
-rw-r--r--src/pki/pki.h2
34 files changed, 42 insertions, 42 deletions
diff --git a/src/charon/bus/listeners/listener.h b/src/charon/bus/listeners/listener.h
index 4cd14e2d7..1ff8c7c3b 100644
--- a/src/charon/bus/listeners/listener.h
+++ b/src/charon/bus/listeners/listener.h
@@ -176,4 +176,4 @@ struct listener_t {
bool final, bool *success);
};
-#endif /* LISTENER_ @}*/
+#endif /** LISTENER_H_ @}*/
diff --git a/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_card.h b/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_card.h
index 1849d7b5e..b95bc52af 100644
--- a/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_card.h
+++ b/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_card.h
@@ -50,4 +50,4 @@ struct eap_aka_3gpp2_card_t {
*/
eap_aka_3gpp2_card_t *eap_aka_3gpp2_card_create(eap_aka_3gpp2_functions_t *f);
-#endif /** EAP_AKA_3GPP2_CARD_ @}*/
+#endif /** EAP_AKA_3GPP2_CARD_H_ @}*/
diff --git a/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_functions.h b/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_functions.h
index ed7f62abc..1d999d643 100644
--- a/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_functions.h
+++ b/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_functions.h
@@ -122,4 +122,4 @@ struct eap_aka_3gpp2_functions_t {
*/
eap_aka_3gpp2_functions_t *eap_aka_3gpp2_functions_create();
-#endif /** EAP_AKA_3GPP2_FUNCTIONS_ @}*/
+#endif /** EAP_AKA_3GPP2_FUNCTIONS_H_ @}*/
diff --git a/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_provider.h b/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_provider.h
index 6342f92d7..22ac0a96e 100644
--- a/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_provider.h
+++ b/src/charon/plugins/eap_aka_3gpp2/eap_aka_3gpp2_provider.h
@@ -49,4 +49,4 @@ struct eap_aka_3gpp2_provider_t {
eap_aka_3gpp2_provider_t *eap_aka_3gpp2_provider_create(
eap_aka_3gpp2_functions_t *f);
-#endif /** EAP_AKA_3GPP2_PROVIDER_ @}*/
+#endif /** EAP_AKA_3GPP2_PROVIDER_H_ @}*/
diff --git a/src/charon/plugins/eap_sim_file/eap_sim_file_card.h b/src/charon/plugins/eap_sim_file/eap_sim_file_card.h
index 405fbcea6..1a5470968 100644
--- a/src/charon/plugins/eap_sim_file/eap_sim_file_card.h
+++ b/src/charon/plugins/eap_sim_file/eap_sim_file_card.h
@@ -50,4 +50,4 @@ struct eap_sim_file_card_t {
*/
eap_sim_file_card_t *eap_sim_file_card_create(eap_sim_file_triplets_t *triplets);
-#endif /** EAP_SIM_FILE_CARD_ @}*/
+#endif /** EAP_SIM_FILE_CARD_H_ @}*/
diff --git a/src/charon/plugins/eap_sim_file/eap_sim_file_provider.h b/src/charon/plugins/eap_sim_file/eap_sim_file_provider.h
index 245923b05..10fda282a 100644
--- a/src/charon/plugins/eap_sim_file/eap_sim_file_provider.h
+++ b/src/charon/plugins/eap_sim_file/eap_sim_file_provider.h
@@ -47,4 +47,4 @@ struct eap_sim_file_provider_t {
eap_sim_file_provider_t *eap_sim_file_provider_create(
eap_sim_file_triplets_t *triplets);
-#endif /** EAP_SIM_FILE_PROVIDER_ @}*/
+#endif /** EAP_SIM_FILE_PROVIDER_H_ @}*/
diff --git a/src/charon/plugins/eap_sim_file/eap_sim_file_triplets.h b/src/charon/plugins/eap_sim_file/eap_sim_file_triplets.h
index efa2bd33c..8f8130810 100644
--- a/src/charon/plugins/eap_sim_file/eap_sim_file_triplets.h
+++ b/src/charon/plugins/eap_sim_file/eap_sim_file_triplets.h
@@ -53,4 +53,4 @@ struct eap_sim_file_triplets_t {
*/
eap_sim_file_triplets_t *eap_sim_file_triplets_create(char *file);
-#endif /** EAP_SIM_FILE_TRIPLETS_ @}*/
+#endif /** EAP_SIM_FILE_TRIPLETS_H_ @}*/
diff --git a/src/charon/plugins/load_tester/load_tester_diffie_hellman.h b/src/charon/plugins/load_tester/load_tester_diffie_hellman.h
index 1014429a9..672157fb8 100644
--- a/src/charon/plugins/load_tester/load_tester_diffie_hellman.h
+++ b/src/charon/plugins/load_tester/load_tester_diffie_hellman.h
@@ -45,4 +45,4 @@ struct load_tester_diffie_hellman_t {
load_tester_diffie_hellman_t *load_tester_diffie_hellman_create(
diffie_hellman_group_t group);
-#endif /** LOAD_TESTER_DIFFIE_HELLMAN_ @}*/
+#endif /** LOAD_TESTER_DIFFIE_HELLMAN_H_ @}*/
diff --git a/src/charon/plugins/nm/nm_handler.h b/src/charon/plugins/nm/nm_handler.h
index 6c15ae6de..bb35ce767 100644
--- a/src/charon/plugins/nm/nm_handler.h
+++ b/src/charon/plugins/nm/nm_handler.h
@@ -59,4 +59,4 @@ struct nm_handler_t {
*/
nm_handler_t *nm_handler_create();
-#endif /* NM_HANDLER_ @}*/
+#endif /** NM_HANDLER_H_ @}*/
diff --git a/src/charon/plugins/resolve/resolve_handler.h b/src/charon/plugins/resolve/resolve_handler.h
index 8a2c77f53..77bf9781c 100644
--- a/src/charon/plugins/resolve/resolve_handler.h
+++ b/src/charon/plugins/resolve/resolve_handler.h
@@ -14,8 +14,8 @@
*/
/**
- * @defgroup resolv_conf_handler resolv_conf_handler
- * @{ @ingroup resolv_conf
+ * @defgroup resolve_handler resolve_handler
+ * @{ @ingroup resolve
*/
#ifndef RESOLVE_HANDLER_H_
@@ -46,4 +46,4 @@ struct resolve_handler_t {
*/
resolve_handler_t *resolve_handler_create();
-#endif /* RESOLVE_HANDLER_ @}*/
+#endif /** RESOLVE_HANDLER_H_ @}*/
diff --git a/src/charon/plugins/updown/updown_listener.h b/src/charon/plugins/updown/updown_listener.h
index 7b978b0cc..5b866c4e5 100644
--- a/src/charon/plugins/updown/updown_listener.h
+++ b/src/charon/plugins/updown/updown_listener.h
@@ -46,4 +46,4 @@ struct updown_listener_t {
*/
updown_listener_t *updown_listener_create();
-#endif /** UPDOWN_LISTENER_ @}*/
+#endif /** UPDOWN_LISTENER_H_ @}*/
diff --git a/src/charon/sa/keymat.h b/src/charon/sa/keymat.h
index cc0a3e1e6..e51709e8d 100644
--- a/src/charon/sa/keymat.h
+++ b/src/charon/sa/keymat.h
@@ -160,4 +160,4 @@ struct keymat_t {
*/
keymat_t *keymat_create(bool initiator);
-#endif /** KEYMAT_ @}*/
+#endif /** KEYMAT_H_ @}*/
diff --git a/src/charon/sa/trap_manager.h b/src/charon/sa/trap_manager.h
index 9a39229e6..37b42e2b0 100644
--- a/src/charon/sa/trap_manager.h
+++ b/src/charon/sa/trap_manager.h
@@ -78,4 +78,4 @@ struct trap_manager_t {
*/
trap_manager_t *trap_manager_create();
-#endif /* TRAP_MANAGER_ @}*/
+#endif /** TRAP_MANAGER_H_ @}*/
diff --git a/src/libstrongswan/attributes/attribute_handler.h b/src/libstrongswan/attributes/attribute_handler.h
index fba40b24b..c9b668cc3 100644
--- a/src/libstrongswan/attributes/attribute_handler.h
+++ b/src/libstrongswan/attributes/attribute_handler.h
@@ -58,4 +58,4 @@ struct attribute_handler_t {
configuration_attribute_type_t type, chunk_t data);
};
-#endif /* ATTRIBUTE_HANDLER_ @}*/
+#endif /** ATTRIBUTE_HANDLER_H_ @}*/
diff --git a/src/libstrongswan/attributes/attributes.h b/src/libstrongswan/attributes/attributes.h
index 5365fd0c5..efc427c69 100644
--- a/src/libstrongswan/attributes/attributes.h
+++ b/src/libstrongswan/attributes/attributes.h
@@ -15,7 +15,7 @@
*/
/**
- * @defgroup attributes attributes
+ * @defgroup attributes_g attributes
* @{ @ingroup attributes
*/
diff --git a/src/libstrongswan/credentials/keys/key_encoding.h b/src/libstrongswan/credentials/keys/key_encoding.h
index b97d78e09..384117166 100644
--- a/src/libstrongswan/credentials/keys/key_encoding.h
+++ b/src/libstrongswan/credentials/keys/key_encoding.h
@@ -200,4 +200,4 @@ struct key_encoding_t {
*/
key_encoding_t *key_encoding_create();
-#endif /* KEY_ENCODING_ @}*/
+#endif /** KEY_ENCODING_H_ @}*/
diff --git a/src/libstrongswan/credentials/keys/private_key.h b/src/libstrongswan/credentials/keys/private_key.h
index 3e8f7866b..d4517f296 100644
--- a/src/libstrongswan/credentials/keys/private_key.h
+++ b/src/libstrongswan/credentials/keys/private_key.h
@@ -139,8 +139,8 @@ bool private_key_equals(private_key_t *this, private_key_t *other);
/**
* Generic private key belongs_to() implementation, usable by implementors.
*
- * @param this first key to compare
- * @param other second key to compare
+ * @param private private key to check
+ * @param public public key to compare
* @return TRUE if this is equal to other
*/
bool private_key_belongs_to(private_key_t *private, public_key_t *public);
@@ -149,7 +149,7 @@ bool private_key_belongs_to(private_key_t *private, public_key_t *public);
* Generic private key has_fingerprint() implementation, usable by implementors.
*
* @param this key to check fingerprint
- * @param fp fingerprint to check
+ * @param fingerprint fingerprint to check
* @return TRUE if key has given fingerprint
*/
bool private_key_has_fingerprint(private_key_t *this, chunk_t fingerprint);
diff --git a/src/libstrongswan/credentials/keys/public_key.h b/src/libstrongswan/credentials/keys/public_key.h
index 6a8560f4d..a421e7b5b 100644
--- a/src/libstrongswan/credentials/keys/public_key.h
+++ b/src/libstrongswan/credentials/keys/public_key.h
@@ -198,7 +198,7 @@ bool public_key_equals(public_key_t *this, public_key_t *other);
* Generic public key has_fingerprint() implementation, usable by implementors.
*
* @param this key to check fingerprint
- * @param fp fingerprint to check
+ * @param fingerprint fingerprint to check
* @return TRUE if key has given fingerprint
*/
bool public_key_has_fingerprint(public_key_t *this, chunk_t fingerprint);
diff --git a/src/libstrongswan/crypto/crypto_tester.h b/src/libstrongswan/crypto/crypto_tester.h
index ddab48dd6..ddcc2da51 100644
--- a/src/libstrongswan/crypto/crypto_tester.h
+++ b/src/libstrongswan/crypto/crypto_tester.h
@@ -202,4 +202,4 @@ struct crypto_tester_t {
*/
crypto_tester_t *crypto_tester_create();
-#endif /* CRYPTO_TESTER_ @}*/
+#endif /** CRYPTO_TESTER_H_ @}*/
diff --git a/src/libstrongswan/crypto/hashers/hasher.h b/src/libstrongswan/crypto/hashers/hasher.h
index 1449f9792..9fa043c7e 100644
--- a/src/libstrongswan/crypto/hashers/hasher.h
+++ b/src/libstrongswan/crypto/hashers/hasher.h
@@ -130,7 +130,7 @@ int hasher_algorithm_to_oid(hash_algorithm_t alg);
* Conversion of hash signature algorithm into ASN.1 OID.
*
* @param alg hash algorithm
- * @param alg public key type
+ * @param key public key type
* @return ASN.1 OID if, or OID_UNKNOW
*/
int hasher_signature_algorithm_to_oid(hash_algorithm_t alg, key_type_t key);
diff --git a/src/libstrongswan/integrity_checker.h b/src/libstrongswan/integrity_checker.h
index 332997b17..7349353f3 100644
--- a/src/libstrongswan/integrity_checker.h
+++ b/src/libstrongswan/integrity_checker.h
@@ -108,4 +108,4 @@ struct integrity_checker_t {
*/
integrity_checker_t *integrity_checker_create(char *checksum_library);
-#endif /* INTEGRITY_CHECKER_H_ @}*/
+#endif /** INTEGRITY_CHECKER_H_ @}*/
diff --git a/src/libstrongswan/plugins/attr_sql/attr_sql_plugin.h b/src/libstrongswan/plugins/attr_sql/attr_sql_plugin.h
index 3a7b8428b..3a60ea0d2 100644
--- a/src/libstrongswan/plugins/attr_sql/attr_sql_plugin.h
+++ b/src/libstrongswan/plugins/attr_sql/attr_sql_plugin.h
@@ -14,11 +14,11 @@
*/
/**
- * @defgroup sql sql
- * @ingroup cplugins
+ * @defgroup attr_sql attr_sql
+ * @ingroup plugins
*
* @defgroup sql_plugin sql_plugin
- * @{ @ingroup sql
+ * @{ @ingroup attr_sql
*/
#ifndef ATTR_SQL_PLUGIN_H_
diff --git a/src/libstrongswan/plugins/attr_sql/sql_attribute.h b/src/libstrongswan/plugins/attr_sql/sql_attribute.h
index 27a39651b..ca87eb27e 100644
--- a/src/libstrongswan/plugins/attr_sql/sql_attribute.h
+++ b/src/libstrongswan/plugins/attr_sql/sql_attribute.h
@@ -15,7 +15,7 @@
/**
* @defgroup sql_attribute sql_attribute
- * @{ @ingroup sql
+ * @{ @ingroup attr_sql
*/
#ifndef SQL_ATTRIBUTE_H_
diff --git a/src/libstrongswan/plugins/padlock/padlock_rng.h b/src/libstrongswan/plugins/padlock/padlock_rng.h
index 7fb9a89d5..776be8937 100644
--- a/src/libstrongswan/plugins/padlock/padlock_rng.h
+++ b/src/libstrongswan/plugins/padlock/padlock_rng.h
@@ -44,4 +44,4 @@ struct padlock_rng_t {
*/
padlock_rng_t *padlock_rng_create(rng_quality_t quality);
-#endif /** PADLOCK_RNG_ @}*/
+#endif /** PADLOCK_RNG_H_ @}*/
diff --git a/src/libstrongswan/plugins/pem/pem_builder.h b/src/libstrongswan/plugins/pem/pem_builder.h
index cfff39125..189a5430f 100644
--- a/src/libstrongswan/plugins/pem/pem_builder.h
+++ b/src/libstrongswan/plugins/pem/pem_builder.h
@@ -45,7 +45,7 @@ private_key_t *pem_private_key_load(key_type_t type, va_list args);
public_key_t *pem_public_key_load(key_type_t type, va_list args);
/**
- * Build PEM encoded certificates..
+ * Build PEM encoded certificates.
*
* @param type type of the certificate
* @param args builder_part_t argument list
diff --git a/src/libstrongswan/plugins/pgp/pgp_builder.h b/src/libstrongswan/plugins/pgp/pgp_builder.h
index 938bbac50..1168babd6 100644
--- a/src/libstrongswan/plugins/pgp/pgp_builder.h
+++ b/src/libstrongswan/plugins/pgp/pgp_builder.h
@@ -15,7 +15,7 @@
/**
* @defgroup pgp_public_key pgp_public_key
- * @{ @ingroup pgp_p
+ * @{ @ingroup pgp
*/
#ifndef PGP_BUILDER_H_
diff --git a/src/libstrongswan/plugins/pgp/pgp_cert.h b/src/libstrongswan/plugins/pgp/pgp_cert.h
index 7845e8f04..4db795ddc 100644
--- a/src/libstrongswan/plugins/pgp/pgp_cert.h
+++ b/src/libstrongswan/plugins/pgp/pgp_cert.h
@@ -45,4 +45,4 @@ struct pgp_cert_t {
*/
pgp_cert_t *pgp_cert_load(certificate_type_t type, va_list args);
-#endif /* PGP_CERT_ @}*/
+#endif /** PGP_CERT_H_ @}*/
diff --git a/src/libstrongswan/plugins/pgp/pgp_encoder.h b/src/libstrongswan/plugins/pgp/pgp_encoder.h
index 1b66969f7..9df143399 100644
--- a/src/libstrongswan/plugins/pgp/pgp_encoder.h
+++ b/src/libstrongswan/plugins/pgp/pgp_encoder.h
@@ -29,4 +29,4 @@
bool pgp_encoder_encode(key_encoding_type_t type, chunk_t *encoding,
va_list args);
-#endif /* PGP_ENCODER_ @}*/
+#endif /** PGP_ENCODER_H_ @}*/
diff --git a/src/libstrongswan/plugins/pgp/pgp_plugin.h b/src/libstrongswan/plugins/pgp/pgp_plugin.h
index 841de5d2d..95765cd76 100644
--- a/src/libstrongswan/plugins/pgp/pgp_plugin.h
+++ b/src/libstrongswan/plugins/pgp/pgp_plugin.h
@@ -14,11 +14,11 @@
*/
/**
- * @defgroup pgp_p pgp
+ * @defgroup pgp pgp
* @ingroup plugins
*
* @defgroup pgp_plugin pgp_plugin
- * @{ @ingroup pgp_p
+ * @{ @ingroup pgp
*/
#ifndef PGP_PLUGIN_H_
diff --git a/src/libstrongswan/plugins/pgp/pgp_utils.h b/src/libstrongswan/plugins/pgp/pgp_utils.h
index 93c51c44b..203a0a85d 100644
--- a/src/libstrongswan/plugins/pgp/pgp_utils.h
+++ b/src/libstrongswan/plugins/pgp/pgp_utils.h
@@ -127,4 +127,4 @@ bool pgp_read_scalar(chunk_t *blob, size_t bytes, u_int32_t *scalar);
*/
bool pgp_read_packet(chunk_t *blob, chunk_t *data, pgp_packet_tag_t *tag);
-#endif /* PGP_UTILS_ @}*/
+#endif /** PGP_UTILS_H_ @}*/
diff --git a/src/libstrongswan/plugins/pkcs1/pkcs1_builder.h b/src/libstrongswan/plugins/pkcs1/pkcs1_builder.h
index a4a780b5f..62ca9f351 100644
--- a/src/libstrongswan/plugins/pkcs1/pkcs1_builder.h
+++ b/src/libstrongswan/plugins/pkcs1/pkcs1_builder.h
@@ -15,7 +15,7 @@
/**
* @defgroup pkcs1_public_key pkcs1_public_key
- * @{ @ingroup pkcs1_p
+ * @{ @ingroup pkcs1
*/
#ifndef PKCS1_BUILDER_H_
diff --git a/src/libstrongswan/plugins/pkcs1/pkcs1_encoder.h b/src/libstrongswan/plugins/pkcs1/pkcs1_encoder.h
index c0bb688ed..11d9f27f2 100644
--- a/src/libstrongswan/plugins/pkcs1/pkcs1_encoder.h
+++ b/src/libstrongswan/plugins/pkcs1/pkcs1_encoder.h
@@ -29,4 +29,4 @@
bool pkcs1_encoder_encode(key_encoding_type_t type, chunk_t *encoding,
va_list args);
-#endif /* PKCS1_ENCODER_ @}*/
+#endif /** PKCS1_ENCODER_H_ @}*/
diff --git a/src/libstrongswan/plugins/pkcs1/pkcs1_plugin.h b/src/libstrongswan/plugins/pkcs1/pkcs1_plugin.h
index 3b77de179..465c7ef2c 100644
--- a/src/libstrongswan/plugins/pkcs1/pkcs1_plugin.h
+++ b/src/libstrongswan/plugins/pkcs1/pkcs1_plugin.h
@@ -14,11 +14,11 @@
*/
/**
- * @defgroup pkcs1_p pkcs1
+ * @defgroup pkcs1 pkcs1
* @ingroup plugins
*
* @defgroup pkcs1_plugin pkcs1_plugin
- * @{ @ingroup pkcs1_p
+ * @{ @ingroup pkcs1
*/
#ifndef PKCS1_PLUGIN_H_
diff --git a/src/pki/pki.h b/src/pki/pki.h
index 893ab52e2..01b103c8f 100644
--- a/src/pki/pki.h
+++ b/src/pki/pki.h
@@ -36,4 +36,4 @@ bool get_form(char *form, key_encoding_type_t *type, bool pub);
*/
hash_algorithm_t get_digest(char *name);
-#endif /* PKI_ @}*/
+#endif /** PKI_H_ @}*/