r16100: Patch from Michael Wood <mwood@icts.uct.ac.za>: s/then/than/ for correct...
authorGerald Carter <jerry@samba.org>
Thu, 8 Jun 2006 15:20:05 +0000 (15:20 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:08:59 +0000 (14:08 -0500)
26 files changed:
BUGS.txt
NEWS
WHATSNEW.txt
source/auth/ntlmssp/ntlmssp_sign.c
source/heimdal/lib/gssapi/sequence.c
source/heimdal/lib/krb5/crypto.c
source/heimdal/lib/krb5/get_for_creds.c
source/heimdal/lib/krb5/heim_threads.h
source/heimdal/lib/krb5/init_creds_pw.c
source/heimdal/lib/krb5/ticket.c
source/intl/linux-msg.sed
source/lib/ldb/common/ldb_dn.c
source/lib/ldb/modules/ldb_map.h
source/lib/popt/popthelp.c
source/lib/registry/TODO
source/lib/registry/man/regtree.1.xml
source/lib/registry/reg_backend_nt4.c
source/lib/registry/registry.h
source/libcli/dgram/mailslot.c
source/librpc/idl/oxidresolver.idl
source/pidl/TODO
source/pidl/lib/Parse/Pidl/Ethereal/Conformance.pm
source/pidl/lib/Parse/Pidl/Samba3/Parser.pm
source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
source/pidl/pidl
source/wrepl_server/wrepl_server.c

index 5eab0ac8eb6a8dd4c817cd2daf8486b52d4349d1..906b2918ee3d74340384f9d55eceba0f7c6f8e42 100644 (file)
--- a/BUGS.txt
+++ b/BUGS.txt
@@ -1,5 +1,5 @@
 Samba 4 is still feature incomplete. If you are using it for anything other
 Samba 4 is still feature incomplete. If you are using it for anything other
-then education you are insane.
+than education you are insane.
 
 Please file bug reports at https://bugzilla.samba.org/, product: Samba4. 
 Please include as much information as possible, such as SVN revision number 
 
 Please file bug reports at https://bugzilla.samba.org/, product: Samba4. 
 Please include as much information as possible, such as SVN revision number 
diff --git a/NEWS b/NEWS
index 3e35a05ed89a699a26e5d267e6abf2fd54129439..44c84a46004f36c059d0b8e86f034e3dd4a66226 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,7 @@ from Samba 3 is available in source/setup/upgrade.
 
 Removal of nmbd and introduction of process models
 ==================================================
 
 Removal of nmbd and introduction of process models
 ==================================================
-smbd now implements several network protocols other then just CIFS and 
+smbd now implements several network protocols other than just CIFS and 
 DCE/RPC. nmbd's functionality has been merged into smbd. smbd supports 
 various 'process models' that specify how concurrent connections are 
 handled (when to fork, use threads, etc). 
 DCE/RPC. nmbd's functionality has been merged into smbd. smbd supports 
 various 'process models' that specify how concurrent connections are 
 handled (when to fork, use threads, etc). 
@@ -24,7 +24,7 @@ called LDB (see ldb(7) for more info).
 
 Much improved SWAT
 ==================
 
 Much improved SWAT
 ==================
-SWAT has had some rather large improvements and is now more then just a 
+SWAT has had some rather large improvements and is now more than just a 
 direct editor for smb.conf. Its layout has been improved. SWAT can now also 
 be used for editing run-time data - maintaining user information, provisioning,
 etc. TLS is supported out of the box.
 direct editor for smb.conf. Its layout has been improved. SWAT can now also 
 be used for editing run-time data - maintaining user information, provisioning,
 etc. TLS is supported out of the box.
@@ -368,7 +368,7 @@ The following parameters have been added:
        Default: Set at compile-time
        
 + ntvfs handler
        Default: Set at compile-time
        
 + ntvfs handler
-       Backend to the NT VFS to use (more then one can be specified). Available
+       Backend to the NT VFS to use (more than one can be specified). Available
        backends include: 
        
        - posix:
        backends include: 
        
        - posix:
@@ -433,7 +433,7 @@ The following parameters have been added:
        
 + client use spnego principal
        Tells the client to use the Kerberos service principal specified by the 
        
 + client use spnego principal
        Tells the client to use the Kerberos service principal specified by the 
-       server during the security protocol negotation rather the
+       server during the security protocol negotation rather tha
        looking up the principal itself (cifs/hostname).
 
        Default: false
        looking up the principal itself (cifs/hostname).
 
        Default: false
index e2d961ce519154832d23643b69835b047ca62a6a..ef131d2f1b6fd9412e0cfefe0ae41d7698441535 100644 (file)
@@ -14,7 +14,7 @@ Release date: 22 March 2006
 
  * Call the wins hook script again (metze)
 
 
  * Call the wins hook script again (metze)
 
- * Make sure no more then 25 records are added in the WINS database (metze)
+ * Make sure no more than 25 records are added in the WINS database (metze)
  
  * Documentation updates (jelmer)
 
  
  * Documentation updates (jelmer)
 
index 0999a85a31e5338ad8986e145b2150d699d690ac..2e238025194e6e294292655555f2cb6827dee3dc 100644 (file)
@@ -32,7 +32,7 @@
 #define SRV_SEAL "session key to server-to-client sealing key magic constant"
 
 /**
 #define SRV_SEAL "session key to server-to-client sealing key magic constant"
 
 /**
- * Some notes on then NTLM2 code:
+ * Some notes on the NTLM2 code:
  *
  * NTLM2 is a AEAD system.  This means that the data encrypted is not
  * all the data that is signed.  In DCE-RPC case, the headers of the
  *
  * NTLM2 is a AEAD system.  This means that the data encrypted is not
  * all the data that is signed.  In DCE-RPC case, the headers of the
index 2851b0a6c83a168bdd155938fb89e88ecb08be76..35a9b924afd32edbeb0fd08647bf47b77591e90a 100755 (executable)
@@ -159,8 +159,8 @@ _gssapi_msg_order_check(struct gss_msg_order *o, OM_uint32 seq_num)
 
     r = (o->flags & (GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG))==GSS_C_REPLAY_FLAG;
 
 
     r = (o->flags & (GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG))==GSS_C_REPLAY_FLAG;
 
-    /* sequence number larger then largest sequence number 
-     * or smaller then the first sequence number */
+    /* sequence number larger than largest sequence number 
+     * or smaller than the first sequence number */
     if (seq_num > o->elem[0]
        || seq_num < o->first_seq
        || o->length == 0) 
     if (seq_num > o->elem[0]
        || seq_num < o->first_seq
        || o->length == 0) 
index 876cbb5192b6dc74793db0a2aef1cfeabd25e345..a3c58051f9ac79fb52051a1f6ddca48af3295640 100644 (file)
@@ -2299,7 +2299,7 @@ _krb5_aes_cts_encrypt(const unsigned char *in, unsigned char *out,
 
     /*
      * In the framework of kerberos, the length can never be shorter
 
     /*
      * In the framework of kerberos, the length can never be shorter
-     * then at least one blocksize.
+     * than at least one blocksize.
      */
 
     if (encryptp) {
      */
 
     if (encryptp) {
index 661d05663b7cb1db3316b85b20395ce14e221c3f..f042cdb5735316291aaaf485254d02d379a6575e 100644 (file)
@@ -376,7 +376,7 @@ krb5_get_forwarded_creds (krb5_context          context,
        cred.enc_part.cipher.length = buf_size;
     } else {
        /* 
        cred.enc_part.cipher.length = buf_size;
     } else {
        /* 
-        * Here older versions then 0.7.2 of Heimdal used the local or
+        * Here older versions than 0.7.2 of Heimdal used the local or
         * remote subkey. That is wrong, the session key should be
         * used. Heimdal 0.7.2 and newer have code to try both in the
         * receiving end.
         * remote subkey. That is wrong, the session key should be
         * used. Heimdal 0.7.2 and newer have code to try both in the
         * receiving end.
index 3ebe66beee16b2abf1442bca3c2f6097aaec1b55..41f0f83306ba629010bcf42b8de33e28fea5b453 100755 (executable)
@@ -53,7 +53,7 @@
 /* 
  * NetBSD have a thread lib that we can use that part of libc that
  * works regardless if application are linked to pthreads or not.
 /* 
  * NetBSD have a thread lib that we can use that part of libc that
  * works regardless if application are linked to pthreads or not.
- * NetBSD newer then 2.99.11 just use pthread.h, and the same thing
+ * NetBSD newer than 2.99.11 just use pthread.h, and the same thing
  * will happen.
  */
 #include <threadlib.h>
  * will happen.
  */
 #include <threadlib.h>
index 70b6c3e4c33ea1a3ab0a4d8d9ddf614e6a09ffc0..c05386ec238cdf39868fb31151b765bdcc81b9ba 100644 (file)
@@ -1211,7 +1211,7 @@ init_cred_loop(krb5_context context,
     ctx->pk_nonce = ctx->nonce;
 
     /*
     ctx->pk_nonce = ctx->nonce;
 
     /*
-     * Increase counter when we want other pre-auth types then
+     * Increase counter when we want other pre-auth types than
      * KRB5_PA_ENC_TIMESTAMP.
      */
 #define MAX_PA_COUNTER 3 
      * KRB5_PA_ENC_TIMESTAMP.
      */
 #define MAX_PA_COUNTER 3 
@@ -1391,7 +1391,7 @@ krb5_get_init_creds(krb5_context context,
        case KRB5KDC_ERR_KEY_EXPIRED :
            /* try to avoid recursion */
 
        case KRB5KDC_ERR_KEY_EXPIRED :
            /* try to avoid recursion */
 
-           /* don't try to change password where then where none */
+           /* don't try to change password where there where none */
            if (prompter == NULL || ctx.password == NULL)
                goto out;
 
            if (prompter == NULL || ctx.password == NULL)
                goto out;
 
index b3efeb39d3ae25ee93938d9c75259512801cfc20..99cb778722a9a0d8957b38eca58dd1b6dfe53599 100644 (file)
@@ -112,7 +112,7 @@ find_type_in_ad(krb5_context context,
 
     if (level > 9) {
        krb5_set_error_string(context, "Authorization data nested deeper "
 
     if (level > 9) {
        krb5_set_error_string(context, "Authorization data nested deeper "
-                             "then %d levels, stop searching", level);
+                             "than %d levels, stop searching", level);
        ret = ENOENT; /* XXX */
        goto out;
     }
        ret = ENOENT; /* XXX */
        goto out;
     }
index 5918e720a9adca1c7983a1becf4f6a9d23cea20d..403b3ad45550e4ad0870428eca0fd7a238cc5c37 100644 (file)
@@ -68,7 +68,7 @@ $set 1 # Automatically created by po2msg.sed
   s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
 }
 #
   s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
 }
 #
-# The .msg file contains, other then the .po file, only the translations
+# The .msg file contains, other than the .po file, only the translations
 # but each given a unique ID.  Starting from 1 and incrementing by 1 for
 # each message we assign them to the messages.
 # It is important that the .po file used to generate the cat-id-tbl.c file
 # but each given a unique ID.  Starting from 1 and incrementing by 1 for
 # each message we assign them to the messages.
 # It is important that the .po file used to generate the cat-id-tbl.c file
index b90d3d8c9b6f14d0f2ef81c888660104823701fb..a659f676c6dca231d8c5411b41f7e51c112f2fb3 100644 (file)
@@ -672,7 +672,7 @@ static struct ldb_dn_component ldb_dn_copy_component(void *mem_ctx, struct ldb_d
 
 /* copy specified number of elements of a dn into a new one
    element are copied from top level up to the unique rdn
 
 /* copy specified number of elements of a dn into a new one
    element are copied from top level up to the unique rdn
-   num_el may be greater then dn->comp_num (see ldb_dn_make_child)
+   num_el may be greater than dn->comp_num (see ldb_dn_make_child)
 */
 struct ldb_dn *ldb_dn_copy_partial(void *mem_ctx, const struct ldb_dn *dn, int num_el)
 {
 */
 struct ldb_dn *ldb_dn_copy_partial(void *mem_ctx, const struct ldb_dn *dn, int num_el)
 {
index 42eba23aa6270e85be48be3eb834baf6a6a63e8d..36165a260bd71155073c03d2bdc12fd95d5ccaf1 100644 (file)
@@ -34,9 +34,9 @@
  * that any upper layers will use.
  *
  * All local attributes will have to have a definition. Not all remote 
  * that any upper layers will use.
  *
  * All local attributes will have to have a definition. Not all remote 
- * attributes need a definition as LDB is a lot less stricter then LDAP 
+ * attributes need a definition as LDB is a lot less strict than LDAP 
  * (in other words, sending unknown attributes to an LDAP server hurts us, 
  * (in other words, sending unknown attributes to an LDAP server hurts us, 
- * returning too much attributes in ldb_search() doesn't)
+ * while returning too many attributes in ldb_search() doesn't)
  */
 
 struct ldb_map_context;
  */
 
 struct ldb_map_context;
index 4d8f0efc24553666ad695d331e1806abb3314af4..7ae3de7fb554bee246c770815898b0ca4de73adb 100644 (file)
@@ -678,7 +678,7 @@ static int showShortOptions(const struct poptOption * opt, FILE * fp,
        /*@globals fileSystem @*/
        /*@modifies *str, *fp, fileSystem @*/
 {
        /*@globals fileSystem @*/
        /*@modifies *str, *fp, fileSystem @*/
 {
-    char * s = alloca(300);    /* larger then the ascii set */
+    char * s = alloca(300);    /* larger than the ascii set */
 
     s[0] = '\0';
     /*@-branchstate@*/         /* FIX: W2DO? */
 
     s[0] = '\0';
     /*@-branchstate@*/         /* FIX: W2DO? */
index 518edf6795868b6de745e062761616379105aca9..562ed5657edf2e1577d5b4f62dc84f0d700ac4e1 100644 (file)
@@ -29,6 +29,6 @@ gregedit.c:
  - support for adding/deleting keys
  - support for security descriptors
 
  - support for adding/deleting keys
  - support for security descriptors
 
-- pass parsed paths around rather then strings (i.e. just a list of strings)
+- pass parsed paths around rather than strings (i.e. just a list of strings)
 - integrate various registry tools ?
 - finish new patchfile code
 - integrate various registry tools ?
 - finish new patchfile code
index 98e58070d196b55f49de58ed0b762582351facf2..aa31855a2bbb6f3eae0838e09042d2a6c165c24e 100644 (file)
@@ -30,7 +30,7 @@
 
        <para>The regtree utility prints out all the contents of a 
                Windows registry file. Subkeys are printed with one level 
 
        <para>The regtree utility prints out all the contents of a 
                Windows registry file. Subkeys are printed with one level 
-               more indentation then their parents. </para>
+               more indentation than their parents. </para>
 
 </refsect1>
 
 
 </refsect1>
 
index d1d19f904b724091b2ca3bd95c55d79d8bb440f8..a9759b8e68c9407859f445ff4eff936e252fe9af 100644 (file)
@@ -463,7 +463,7 @@ static WERROR regf_get_value (TALLOC_CTX *ctx, const struct registry_key *key, i
        }
 
        if ((*ret)->data.length < vk->data_length) {
        }
 
        if ((*ret)->data.length < vk->data_length) {
-               DEBUG(1, ("Read data less then indicated data length!\n"));
+               DEBUG(1, ("Read data less than indicated data length!\n"));
        }
        
        return WERR_OK;
        }
        
        return WERR_OK;
index 80b412a31476c5d18e4cd3bdba7e1cdf4f26dac6..6b3675b0ee7e10ab6ecc952a5d696bf4541ed0c9 100644 (file)
@@ -103,11 +103,11 @@ struct hive_operations {
        WERROR (*num_values) (const struct registry_key *, uint32_t *count);
        WERROR (*get_subkey_by_index) (TALLOC_CTX *, const struct registry_key *, int idx, struct registry_key **);
 
        WERROR (*num_values) (const struct registry_key *, uint32_t *count);
        WERROR (*get_subkey_by_index) (TALLOC_CTX *, const struct registry_key *, int idx, struct registry_key **);
 
-       /* Can not contain more then one level */
+       /* Can not contain more than one level */
        WERROR (*get_subkey_by_name) (TALLOC_CTX *, const struct registry_key *, const char *name, struct registry_key **);
        WERROR (*get_value_by_index) (TALLOC_CTX *, const struct registry_key *, int idx, struct registry_value **);
 
        WERROR (*get_subkey_by_name) (TALLOC_CTX *, const struct registry_key *, const char *name, struct registry_key **);
        WERROR (*get_value_by_index) (TALLOC_CTX *, const struct registry_key *, int idx, struct registry_value **);
 
-       /* Can not contain more then one level */
+       /* Can not contain more than one level */
        WERROR (*get_value_by_name) (TALLOC_CTX *, const struct registry_key *, const char *name, struct registry_value **);
 
        /* Security control */
        WERROR (*get_value_by_name) (TALLOC_CTX *, const struct registry_key *, const char *name, struct registry_value **);
 
        /* Security control */
index 775f6623708f628457a96bf1ecefd14494524361..c59cab79da2447578a9a24de7f9d91b5f378a1cf 100644 (file)
 
 /*
    This implements "Class 2 mailslots", i.e. the communication mechanism 
 
 /*
    This implements "Class 2 mailslots", i.e. the communication mechanism 
-   used for all mailslot packets smaller then 425 bytes. 
+   used for all mailslot packets smaller than 425 bytes. 
 
    "Class 1 mailslots" (which use SMB) are used for messages larger 
 
    "Class 1 mailslots" (which use SMB) are used for messages larger 
-   then 426 bytes and are supported on some systems. These are not implemented
+   than 426 bytes and are supported on some systems. These are not implemented
    in Samba4 yet, as there don't appear to be any core services that use
    them.
 
    in Samba4 yet, as there don't appear to be any core services that use
    them.
 
index 835b848a4522ba90ca1f8bed7fd1de70dbceb378..beeb6a7f4f471d98c9000298de736e58c7c3a19c 100644 (file)
@@ -65,7 +65,7 @@ interface IOXIDResolver
 
        /* In some cases the client maybe unsure that a particular */
        /* binding will reach the server. (For example, when the oxid */
 
        /* In some cases the client maybe unsure that a particular */
        /* binding will reach the server. (For example, when the oxid */
-       /* bindings have more then one TCP/IP binding) This call */
+       /* bindings have more than one TCP/IP binding) This call */
        /* can be used to validate the binding */
        /* from the client. */
        [idempotent] WERROR ServerAlive ();
        /* can be used to validate the binding */
        /* from the client. */
        [idempotent] WERROR ServerAlive ();
index c7ae61a890ed0f4ec82cd05afab864b7b282b97c..bfbf5afc54037deb16eb06814a983fd58a61fa17 100644 (file)
@@ -15,4 +15,4 @@
 
 - allow data structures outside of interfaces
 
 
 - allow data structures outside of interfaces
 
-- mem_ctx in the interface rather then as struct ndr member.
+- mem_ctx in the interface rather than as struct ndr member.
index 02319a0aa9c33779bc9e1497979a0a3f9ebb24d1..e7f2922c7f806557fb91b0546a3106af5ea75fa6 100644 (file)
@@ -49,7 +49,7 @@ Generate a custom header field with specified properties.
 Force the use of new_hf_name when the parser generator was going to 
 use old_hf_name.
 
 Force the use of new_hf_name when the parser generator was going to 
 use old_hf_name.
 
-This can be used in conjunction with HF_FIELD in order to make more the
+This can be used in conjunction with HF_FIELD in order to make more tha
 one element use the same filter name.
 
 =item I<STRIP_PREFIX> prefix
 one element use the same filter name.
 
 =item I<STRIP_PREFIX> prefix
@@ -78,7 +78,7 @@ Override the text shown when a bitmap boolean value is enabled or disabled.
 
 Force pidl to not generate a particular function but allow the user 
 to write a function manually. This can be used to remove the function 
 
 Force pidl to not generate a particular function but allow the user 
 to write a function manually. This can be used to remove the function 
-for only one level for a particular element rather then all the functions and 
+for only one level for a particular element rather than all the functions and 
 ett/hf variables for a particular element as the NOEMIT command does.
 
 =back
 ett/hf variables for a particular element as the NOEMIT command does.
 
 =back
index a6b4b38cdf2d4c4290f5d5f2809aaa6051a0ce1f..57fa3867f7b8d771a64085a9583f82363e9cb570 100644 (file)
@@ -35,7 +35,7 @@ sub Align($$)
 {
        my ($a,$b) = @_;
 
 {
        my ($a,$b) = @_;
 
-       # Only align if previous element was smaller then current one
+       # Only align if previous element was smaller than current one
        if ($$a < $b) {
                pidl "if (!prs_align_custom(ps, $b))";
                pidl "\treturn False;";
        if ($$a < $b) {
                pidl "if (!prs_align_custom(ps, $b))";
                pidl "\treturn False;";
index 77482685b7d9f8d2c0badf96351748356753d811..912c4b74f9e7930c72db1fae247c261db9725e07 100644 (file)
@@ -836,7 +836,7 @@ sub ParseDataPush($$$$$)
 {
        my ($e,$l,$ndr,$var_name,$ndr_flags) = @_;
 
 {
        my ($e,$l,$ndr,$var_name,$ndr_flags) = @_;
 
-       # strings are passed by value rather then reference
+       # strings are passed by value rather than reference
        if (not Parse::Pidl::Typelist::is_scalar($l->{DATA_TYPE}) or Parse::Pidl::Typelist::scalar_is_reference($l->{DATA_TYPE})) {
                $var_name = get_pointer_to($var_name);
        }
        if (not Parse::Pidl::Typelist::is_scalar($l->{DATA_TYPE}) or Parse::Pidl::Typelist::scalar_is_reference($l->{DATA_TYPE})) {
                $var_name = get_pointer_to($var_name);
        }
@@ -2101,7 +2101,7 @@ sub ParseFunctionPull($)
        }
 
        # allocate the "simple" out ref variables. FIXME: Shouldn't this have it's
        }
 
        # allocate the "simple" out ref variables. FIXME: Shouldn't this have it's
-       # own flag rather then be in NDR_IN ?
+       # own flag rather than be in NDR_IN ?
 
        foreach my $e (@{$fn->{ELEMENTS}}) {
                next unless (grep(/out/, @{$e->{DIRECTION}}));
 
        foreach my $e (@{$fn->{ELEMENTS}}) {
                next unless (grep(/out/, @{$e->{DIRECTION}}));
index a7838791b5a12158c0920870802b197256148903..6b645411560e1d3dce81c8cd76b2511dc9ca0601 100755 (executable)
@@ -61,7 +61,7 @@ directory.
 =item I<--parse-idl-tree>
 
 Read internal tree structure from input files rather 
 =item I<--parse-idl-tree>
 
 Read internal tree structure from input files rather 
-then assuming they contain IDL.
+than assuming they contain IDL.
 
 =item I<--dump-idl>
 
 
 =item I<--dump-idl>
 
@@ -101,7 +101,7 @@ packet-dcerpc-OUTNAME.h.
        
 Pidl will read additional data from an ethereal conformance file if present. 
 Such a file should have the same location as the IDL file but with the 
        
 Pidl will read additional data from an ethereal conformance file if present. 
 Such a file should have the same location as the IDL file but with the 
-extension I<cnf> rather then I<idl>. See L<Parse::Pidl::Ethereal::Conformance>
+extension I<cnf> rather than I<idl>. See L<Parse::Pidl::Ethereal::Conformance>
 for details on the format of this file.
 
 =item I<--diff>
 for details on the format of this file.
 
 =item I<--diff>
index 688471c33281d7fe6bbe6d5c062f077cc32da292..f32c4bb9bfec57594929b74eb03eab30dbe0efdc 100644 (file)
@@ -320,7 +320,7 @@ NTSTATUS wreplsrv_add_table(struct wreplsrv_service *service,
 
        /* the min_version is always 0 here, and won't be updated */
 
 
        /* the min_version is always 0 here, and won't be updated */
 
-       /* if the given version is higher the then current nax_version, update */
+       /* if the given version is higher than the current max_version, update */
        if (cur->owner.max_version < version) {
                cur->owner.max_version = version;
                /* if it's for our local db, we need to update the wins.ldb too */
        if (cur->owner.max_version < version) {
                cur->owner.max_version = version;
                /* if it's for our local db, we need to update the wins.ldb too */