Commit Graph

300759 Commits

Author SHA1 Message Date
christos 59d862a1ed misc cleanups 2023-05-07 19:13:15 +00:00
christos d59d657492 merge the rest of the changes, this now builds on x86_64. 2023-05-07 18:41:34 +00:00
christos 8fbed61efd merge conflicts between 1.1.1t and 3.0.8 2023-05-07 18:40:14 +00:00
christos b0d1725196 Import OpenSSL 3.0.8, last import was 1.1.1t
### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]

  * Fixed NULL dereference during PKCS7 data verification ([CVE-2023-0401])
  * Fixed X.400 address type confusion in X.509 GeneralName ([CVE-2023-0286])
  * Fixed NULL dereference validating DSA public key ([CVE-2023-0217])
  * Fixed Invalid pointer dereference in d2i_PKCS7 functions ([CVE-2023-0216])
  * Fixed Use-after-free following BIO_new_NDEF ([CVE-2023-0215])
  * Fixed Double free after calling PEM_read_bio_ex ([CVE-2022-4450])
  * Fixed Timing Oracle in RSA Decryption ([CVE-2022-4304])
  * Fixed X.509 Name Constraints Read Buffer Overflow ([CVE-2022-4203])
  * Fixed X.509 Policy Constraints Double Locking ([CVE-2022-3996])

### Major changes between OpenSSL 3.0.6 and OpenSSL 3.0.7 [1 Nov 2022]

  * Added RIPEMD160 to the default provider.
  * Fixed regressions introduced in 3.0.6 version.
  * Fixed two buffer overflows in punycode decoding functions.
    ([CVE-2022-3786]) and ([CVE-2022-3602])

### Major changes between OpenSSL 3.0.5 and OpenSSL 3.0.6 [11 Oct 2022]

  * Fix for custom ciphers to prevent accidental use of NULL encryption
    ([CVE-2022-3358])

### Major changes between OpenSSL 3.0.4 and OpenSSL 3.0.5 [5 Jul 2022]

  * Fixed heap memory corruption with RSA private key operation
    ([CVE-2022-2274])
  * Fixed AES OCB failure to encrypt some bytes on 32-bit x86 platforms
    ([CVE-2022-2097])

### Major changes between OpenSSL 3.0.3 and OpenSSL 3.0.4 [21 Jun 2022]

  * Fixed additional bugs in the c_rehash script which was not properly
    sanitising shell metacharacters to prevent command injection
    ([CVE-2022-2068])

### Major changes between OpenSSL 3.0.2 and OpenSSL 3.0.3 [3 May 2022]

  * Fixed a bug in the c_rehash script which was not properly sanitising shell
    metacharacters to prevent command injection ([CVE-2022-1292])
  * Fixed a bug in the function `OCSP_basic_verify` that verifies the signer
    certificate on an OCSP response ([CVE-2022-1343])
  * Fixed a bug where the RC4-MD5 ciphersuite incorrectly used the
    AAD data as the MAC key ([CVE-2022-1434])
  * Fix a bug in the OPENSSL_LH_flush() function that breaks reuse of the memory
    occuppied by the removed hash table entries ([CVE-2022-1473])

### Major changes between OpenSSL 3.0.1 and OpenSSL 3.0.2 [15 Mar 2022]

  * Fixed a bug in the BN_mod_sqrt() function that can cause it to loop forever
    for non-prime moduli ([CVE-2022-0778])

### Major changes between OpenSSL 3.0.0 and OpenSSL 3.0.1 [14 Dec 2021]

  * Fixed invalid handling of X509_verify_cert() internal errors in libssl
    ([CVE-2021-4044])
  * Allow fetching an operation from the provider that owns an unexportable key
    as a fallback if that is still allowed by the property query.

### Major changes between OpenSSL 1.1.1 and OpenSSL 3.0.0 [7 sep 2021]

  * Enhanced 'openssl list' with many new options.
  * Added migration guide to man7.
  * Implemented support for fully "pluggable" TLSv1.3 groups.
  * Added suport for Kernel TLS (KTLS).
  * Changed the license to the Apache License v2.0.
  * Moved all variations of the EVP ciphers CAST5, BF, IDEA, SEED, RC2,
    RC4, RC5, and DES to the legacy provider.
  * Moved the EVP digests MD2, MD4, MDC2, WHIRLPOOL and RIPEMD-160 to the legacy
    provider.
  * Added convenience functions for generating asymmetric key pairs.
  * Deprecated the `OCSP_REQ_CTX` type and functions.
  * Deprecated the `EC_KEY` and `EC_KEY_METHOD` types and functions.
  * Deprecated the `RSA` and `RSA_METHOD` types and functions.
  * Deprecated the `DSA` and `DSA_METHOD` types and functions.
  * Deprecated the `DH` and `DH_METHOD` types and functions.
  * Deprecated the `ERR_load_` functions.
  * Remove the `RAND_DRBG` API.
  * Deprecated the `ENGINE` API.
  * Added `OSSL_LIB_CTX`, a libcrypto library context.
  * Added various `_ex` functions to the OpenSSL API that support using
    a non-default `OSSL_LIB_CTX`.
  * Interactive mode is removed from the 'openssl' program.
  * The X25519, X448, Ed25519, Ed448, SHAKE128 and SHAKE256 algorithms are
    included in the FIPS provider.
  * X509 certificates signed using SHA1 are no longer allowed at security
    level 1 or higher. The default security level for TLS is 1, so
    certificates signed using SHA1 are by default no longer trusted to
    authenticate servers or clients.
  * enable-crypto-mdebug and enable-crypto-mdebug-backtrace were mostly
    disabled; the project uses address sanitize/leak-detect instead.
  * Added a Certificate Management Protocol (CMP, RFC 4210) implementation
    also covering CRMF (RFC 4211) and HTTP transfer (RFC 6712).
    It is part of the crypto lib and adds a 'cmp' app with a demo configuration.
    All widely used CMP features are supported for both clients and servers.
  * Added a proper HTTP client supporting GET with optional redirection, POST,
    arbitrary request and response content types, TLS, persistent connections,
    connections via HTTP(s) proxies, connections and exchange via user-defined
    BIOs (allowing implicit connections), and timeout checks.
  * Added util/check-format.pl for checking adherence to the coding guidelines.
  * Added OSSL_ENCODER, a generic encoder API.
  * Added OSSL_DECODER, a generic decoder API.
  * Added OSSL_PARAM_BLD, an easier to use API to OSSL_PARAM.
  * Added error raising macros, ERR_raise() and ERR_raise_data().
  * Deprecated ERR_put_error(), ERR_get_error_line(), ERR_get_error_line_data(),
    ERR_peek_error_line_data(), ERR_peek_last_error_line_data() and
    ERR_func_error_string().
  * Added OSSL_PROVIDER_available(), to check provider availibility.
  * Added 'openssl mac' that uses the EVP_MAC API.
  * Added 'openssl kdf' that uses the EVP_KDF API.
  * Add OPENSSL_info() and 'openssl info' to get built-in data.
  * Add support for enabling instrumentation through trace and debug
    output.
  * Changed our version number scheme and set the next major release to
    3.0.0
  * Added EVP_MAC, an EVP layer MAC API, and a generic EVP_PKEY to EVP_MAC
    bridge.  Supported MACs are: BLAKE2, CMAC, GMAC, HMAC, KMAC, POLY1305
    and SIPHASH.
  * Removed the heartbeat message in DTLS feature.
  * Added EVP_KDF, an EVP layer KDF and PRF API, and a generic EVP_PKEY to
    EVP_KDF bridge.  Supported KDFs are: HKDF, KBKDF, KRB5 KDF, PBKDF2,
    PKCS12 KDF, SCRYPT, SSH KDF, SSKDF, TLS1 PRF, X9.42 KDF and X9.63 KDF.
  * All of the low-level MD2, MD4, MD5, MDC2, RIPEMD160, SHA1, SHA224,
    SHA256, SHA384, SHA512 and Whirlpool digest functions have been
    deprecated.
  * All of the low-level AES, Blowfish, Camellia, CAST, DES, IDEA, RC2,
    RC4, RC5 and SEED cipher functions have been deprecated.
  * All of the low-level DH, DSA, ECDH, ECDSA and RSA public key functions
    have been deprecated.
  * SSL 3, TLS 1.0, TLS 1.1, and DTLS 1.0 only work at security level 0,
    except when RSA key exchange without SHA1 is used.
  * Added providers, a new pluggability concept that will replace the
    ENGINE API and ENGINE implementations.

OpenSSL 1.1.1
-------------

### Major changes between OpenSSL 1.1.1k and OpenSSL 1.1.1l [24 Aug 2021]

  * Fixed an SM2 Decryption Buffer Overflow ([CVE-2021-3711])
  * Fixed various read buffer overruns processing ASN.1 strings ([CVE-2021-3712])

### Major changes between OpenSSL 1.1.1j and OpenSSL 1.1.1k [25 Mar 2021]

  * Fixed a problem with verifying a certificate chain when using the
    X509_V_FLAG_X509_STRICT flag ([CVE-2021-3450])
  * Fixed an issue where an OpenSSL TLS server may crash if sent a maliciously
    crafted renegotiation ClientHello message from a client ([CVE-2021-3449])

### Major changes between OpenSSL 1.1.1i and OpenSSL 1.1.1j [16 Feb 2021]

  * Fixed a NULL pointer deref in the X509_issuer_and_serial_hash()
    function ([CVE-2021-23841])
  * Fixed the RSA_padding_check_SSLv23() function and the RSA_SSLV23_PADDING
    padding mode to correctly check for rollback attacks
  * Fixed an overflow in the EVP_CipherUpdate, EVP_EncryptUpdate and
    EVP_DecryptUpdate functions ([CVE-2021-23840])
  * Fixed SRP_Calc_client_key so that it runs in constant time

### Major changes between OpenSSL 1.1.1h and OpenSSL 1.1.1i [8 Dec 2020]

  * Fixed NULL pointer deref in GENERAL_NAME_cmp ([CVE-2020-1971])

### Major changes between OpenSSL 1.1.1g and OpenSSL 1.1.1h [22 Sep 2020]

  * Disallow explicit curve parameters in verifications chains when
    X509_V_FLAG_X509_STRICT is used
  * Enable 'MinProtocol' and 'MaxProtocol' to configure both TLS and DTLS
    contexts
  * Oracle Developer Studio will start reporting deprecation warnings

### Major changes between OpenSSL 1.1.1f and OpenSSL 1.1.1g [21 Apr 2020]

  * Fixed segmentation fault in SSL_check_chain() ([CVE-2020-1967])

### Major changes between OpenSSL 1.1.1e and OpenSSL 1.1.1f [31 Mar 2020]

  * Revert the unexpected EOF reporting via SSL_ERROR_SSL

### Major changes between OpenSSL 1.1.1d and OpenSSL 1.1.1e [17 Mar 2020]

  * Fixed an overflow bug in the x64_64 Montgomery squaring procedure
    used in exponentiation with 512-bit moduli ([CVE-2019-1551])

### Major changes between OpenSSL 1.1.1c and OpenSSL 1.1.1d [10 Sep 2019]

  * Fixed a fork protection issue ([CVE-2019-1549])
  * Fixed a padding oracle in PKCS7_dataDecode and CMS_decrypt_set1_pkey
    ([CVE-2019-1563])
  * For built-in EC curves, ensure an EC_GROUP built from the curve name is
    used even when parsing explicit parameters
  * Compute ECC cofactors if not provided during EC_GROUP construction
    ([CVE-2019-1547])
  * Early start up entropy quality from the DEVRANDOM seed source has been
    improved for older Linux systems
  * Correct the extended master secret constant on EBCDIC systems
  * Use Windows installation paths in the mingw builds ([CVE-2019-1552])
  * Changed DH_check to accept parameters with order q and 2q subgroups
  * Significantly reduce secure memory usage by the randomness pools
  * Revert the DEVRANDOM_WAIT feature for Linux systems

### Major changes between OpenSSL 1.1.1b and OpenSSL 1.1.1c [28 May 2019]

  * Prevent over long nonces in ChaCha20-Poly1305 ([CVE-2019-1543])

### Major changes between OpenSSL 1.1.1a and OpenSSL 1.1.1b [26 Feb 2019]

  * Change the info callback signals for the start and end of a post-handshake
    message exchange in TLSv1.3.
  * Fix a bug in DTLS over SCTP. This breaks interoperability with older
    versions of OpenSSL like OpenSSL 1.1.0 and OpenSSL 1.0.2.

### Major changes between OpenSSL 1.1.1 and OpenSSL 1.1.1a [20 Nov 2018]

  * Timing vulnerability in DSA signature generation ([CVE-2018-0734])
  * Timing vulnerability in ECDSA signature generation ([CVE-2018-0735])

### Major changes between OpenSSL 1.1.0i and OpenSSL 1.1.1 [11 Sep 2018]

  * Support for TLSv1.3 added. The TLSv1.3 implementation includes:
    * Fully compliant implementation of RFC8446 (TLSv1.3) on by default
    * Early data (0-RTT)
    * Post-handshake authentication and key update
    * Middlebox Compatibility Mode
    * TLSv1.3 PSKs
    * Support for all five RFC8446 ciphersuites
    * RSA-PSS signature algorithms (backported to TLSv1.2)
    * Configurable session ticket support
    * Stateless server support
    * Rewrite of the packet construction code for "safer" packet handling
    * Rewrite of the extension handling code
    For further important information, see the [TLS1.3 page](
    https://wiki.openssl.org/index.php/TLS1.3) in the OpenSSL Wiki.

  * Complete rewrite of the OpenSSL random number generator to introduce the
    following capabilities
      * The default RAND method now utilizes an AES-CTR DRBG according to
        NIST standard SP 800-90Ar1.
      * Support for multiple DRBG instances with seed chaining.
      * There is a public and private DRBG instance.
      * The DRBG instances are fork-safe.
      * Keep all global DRBG instances on the secure heap if it is enabled.
      * The public and private DRBG instance are per thread for lock free
      operation
  * Support for various new cryptographic algorithms including:
      * SHA3
      * SHA512/224 and SHA512/256
      * EdDSA (both Ed25519 and Ed448) including X509 and TLS support
      * X448 (adding to the existing X25519 support in 1.1.0)
      * Multi-prime RSA
      * SM2
      * SM3
      * SM4
      * SipHash
      * ARIA (including TLS support)
  * Significant Side-Channel attack security improvements
  * Add a new ClientHello callback to provide the ability to adjust the SSL
  object at an early stage.
  * Add 'Maximum Fragment Length' TLS extension negotiation and support
  * A new STORE module, which implements a uniform and URI based reader of
   stores that can contain keys, certificates, CRLs and numerous other
  objects.
  * Move the display of configuration data to configdata.pm.
  * Allow GNU style "make variables" to be used with Configure.
  * Claim the namespaces OSSL and OPENSSL, represented as symbol prefixes
  * Rewrite of devcrypto engine
2023-05-07 18:29:10 +00:00
lukem 309d990f5b CHANGES: ftp(1) ssl connection timeout 2023-05-07 18:15:38 +00:00
sjg 9c8e40c4fa make.1: lose the trailing blank lines 2023-05-07 16:43:50 +00:00
sjg 5a93219217 make: fix description of .PREFIX
For at least 20 years, the setting of .PREFIX in make
has not matched the documentation.
Since the documented behavior does not match reality or
POSIX make, fix the documentation.

In FindDepsRegularPath str_basename is applied to .PREFIX
this is wrong, but I was unable to verify fixing it
was benign in NetBSD build - my NetBSD box (7.2)
was unable to build known-good src with or without any patches.

For now just document the behavior more accurately.
2023-05-07 16:32:47 +00:00
christos bfed990fa6 Adjust for 3.x 2023-05-07 16:24:28 +00:00
christos f4748aaa01 more checkpointing 2023-05-07 16:22:10 +00:00
christos 325dc460fc more engines and maps for them 2023-05-07 16:21:19 +00:00
christos 0d03387a80 make this link 2023-05-07 16:19:24 +00:00
oster 3e0cc22b37 Don't allow "wgconfig add peer ..." to accept invalid options.
Addresses PR bin/57392 .
2023-05-07 16:05:07 +00:00
martin f0e8611029 Not hacks to use old binutils (2.34 instead of 2.39) on mips64*
(but not mipsn64*).
2023-05-07 12:43:32 +00:00
skrll 75b842b847 RISC-V support that works on QEMU with a single hart.
Thanks for Simon Burge for plic(4).
2023-05-07 12:41:45 +00:00
martin bb0d78374f Switch mips64eb back to old binutils too, with new binutils it causes
random autobuild failures (same reason mips64el had been switched back
before)
2023-05-07 12:26:32 +00:00
andvar bddff27ba4 s/inferface/interface/ 2023-05-07 11:41:49 +00:00
andvar 4afbf57932 few more typos in the word "register", mainly s/resister/register/.
In one comment I assume that it was meant to be pull-up resistor.
2023-05-06 22:17:28 +00:00
andvar ee31f12086 s/Regiser/Register/ and s/regester/register/ in comments. 2023-05-06 21:53:26 +00:00
andvar 2e66ab7313 s/Registre/Register/ in comment. 2023-05-06 21:37:37 +00:00
andvar c10545c3c7 s/regster/register/ in comments and error messages. 2023-05-06 21:34:39 +00:00
christos 5583db7c1e move the generator script here. 2023-05-06 17:21:51 +00:00
christos 782713e6c1 checkpoint 2023-05-06 17:07:22 +00:00
uwe da0afac854 ktrace(1): tweak -c wording for clarity 2023-05-06 10:45:14 +00:00
skrll f64a275a51 Add imx6sx dtb files for BE too 2023-05-06 08:43:20 +00:00
gutteridge 09bc0ce2d8 t_sed.sh: add a test case for relative addressing
At one time, this didn't always work correctly, per PR bin/49109. Test
case from https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192108
2023-05-06 02:12:11 +00:00
gutteridge f12d9a9c2d t_sed.sh: fix grammar, spelling, and formatting issues (NFC) 2023-05-06 02:07:42 +00:00
lukem 55c16b26b6 add timeout for ssl connect
Implement a timeout for SSL connection setup, using -q QUITTIME,
defaulting to 60 seconds.
SSL_connect(3) (unlike connect(2)) doesn't timeout by default.

Adapt ssl error messages destination: if unexpected error
from local API, use warn()/warnx() to stderr;
if expected error from a network operation (e.g., timeouts),
use fprintf to ttyout (which might be stdout).

Consistently use ftp_poll() instead of select();
ssl.c (using select()) was added 7 years after the
previous uses of select() were converted to poll().

Check EAGAIN as well as existing EINTR error from ftp_poll(),
for portability.
2023-05-05 15:46:06 +00:00
bouyer 5ed51d49c5 remove commented out entries, leftover from the imx6q ccm code. 2023-05-05 09:34:09 +00:00
bouyer 5ed50a4c53 Fix typo, preventing i2c4 from attaching 2023-05-05 09:29:35 +00:00
kre da39777e71 If chown and chgrp can grow -d flags to suppress performing the
operation when it will have no effect (other than changing the
inode's ctime value) then chmod and chflags should also have -d
flags for the same purpose.   Make it so.
2023-05-05 04:14:02 +00:00
gutteridge 9e739a8449 t_trapsignal.sh: fix head() function definitions of test cases 2023-05-05 01:27:18 +00:00
manu 9754ab85fc Add a SELFRELOC kernel option for the sake of documentation clarity.
Instead of telling that x86/boot(8) reloc command needs a kernel able
to self relocate, we can tell it needs a kernel built with the
SELFRELOC option. This keeps the reader from wondering what could
make a kernel able to self relocate.
2023-05-05 00:34:40 +00:00
sjg ef3bc782c6 Compat_RunCommand mark bp volatile
gcc 4.8.5 (NetBSD 7.2) gets upset about bp.
2023-05-04 22:31:17 +00:00
christos b7424e7c5d KNF: no space after ( and before ), constants on the RHS (like everywhere else
in this file).
2023-05-04 18:34:55 +00:00
martin 5495155076 Cast -1 to expected type and fix a edititing mishap to make this build. 2023-05-04 18:04:55 +00:00
bouyer 1b53f88670 The i.mx6sx has 2 OTG and one host-only USB controller, while the 6q has
only one OTG.
Add a "uintptr_t data" argument to all sc_*_md_hook callbacks, which
gets the sc_md_hook_data value when called.
In imx6_usb.c use this to pass the number of OTG controllers to the callbacks.
imx6_usb_init() can then properly call init_otg() or init_h1() for unit 1.

In imx6_usb_attach(), test if there is a vbus-supply property in the fdt,
and enable the regulator if present.

Now the USB port of the UDOO Neo works.
2023-05-04 17:09:44 +00:00
pgoyette 0f8326b377 Add a -d flag to avoid changing a file's owner/group to the current
value.  This avoids some unnecessary operations on the file.

As discussed on tech-userlevel@
2023-05-04 17:07:56 +00:00
bouyer eacf400a5c Add imx6sx dtb files 2023-05-04 13:41:46 +00:00
bouyer 8740631940 experimental IMX6SX support:
- add options SOC_IMX6SX
- add imx6sxccm device

tested on a UDOO Neo Full board.
known to work:
- uart (console)
- sdmmc0
- ethernet (enet0)

known to not work:
- USB (device not detected).

needs a modified device tree at this time (add arm,cortex-a9-twd-timer entry
copied from the imx6qdl dtsi); for unkown reason the imx6sx.dtsi file lacks
an entry for the a9ptmr although it is present in the soc (and, from what I
understood, in all cortex A9 SoCs).
2023-05-04 13:39:51 +00:00
bouyer 1dc22f602b Also build dtb files for CONFIG_SOC_IMX6SX 2023-05-04 13:31:36 +00:00
bouyer a33a6c4380 Add i.mx6sx compatible entries to drivers that should work as is. 2023-05-04 13:29:33 +00:00
bouyer 1eb9da638b i.mx6sx platform support:
- the i.mx6sx has a third AIPS, so KERNEL_IO_IOREG map has to be larger
- the uart clock is at 24Mhz instead of 80.
2023-05-04 13:28:04 +00:00
bouyer 5fd4005d8b i.mx6sx CPU support in the CCM module: the clock tree si different from
the i.mx6q
- move i.mx6q-specific functions and data to imx6_clk.c
- add i.mx6sx specific imx6sx_clk.c
- add a imx6sxccm device
2023-05-04 13:25:07 +00:00
uwe fadf4dba80 Fix spelling of Kurt Shoens surname.
PR misc/57389
2023-05-04 11:30:25 +00:00
rillig a2ba4e4c85 zz9k.4: clean up manual page
New sentence, new line; spelling, duplicate words.
2023-05-04 09:20:00 +00:00
gutteridge 3a6eaa3511 t_fexecve.sh: fix head() function definitions of test cases 2023-05-04 00:02:10 +00:00
phx 8d9149a73d Driver for the MNT ZZ9000 Zorro board. Submitted by Alain Runa.
It was formerly known as mntzz, which Alain released three years ago.
Since then, the ZZ9000 had several firmware updates which changed some
hardware interface details rendering the former driver non functional in some
aspects. Also the audio card plug-in ZZ9000AX became available from MNT
Research. Considering the major rewrite of the driver in some areas he
decided to rename it to zz9k(9). The driver consists of several sub-drivers
each addressing different functionality of the MNT ZZ9000 & ZZ9000AX combo
card.

zz9k* is the main card driver and need to be enabled if any of the sub-driver
is enabled. zz9k on its own is not very useful, it only provides a common
zz9kbus for the other sub-drivers to connect to, so only enable it if one of
the zz9k sub-drivers are enabled.
zzfb* represents the graphics driver for the boot console and the dumb
framebuffer for X11 based on WSCONS. ZZFB_CONSOLE option enables the ZZ9000
to become the boot console.
zz* represents the ethernet interface of the ZZ9000. It basically works but
is considered experimental.
zzax* represents the ZZ9000AX audio card driver, audio* attaches to it to
provide audio output and input functionality. The driver is not functional
yet.
zzusb* represents the ZZ9000AX usb driver. It was not implemented yet and
probably never will.
2023-05-03 13:49:29 +00:00
jmcneill dad5cb8d9d Cleanup previous: Try new bindings first, document old with DTCOMPAT, KNF 2023-05-02 23:08:58 +00:00
macallan fc476eaeb5 apparently the 'ahb' and 'ths' clocks were renamed to 'bus' and 'mod' in the
fdt at some point, so look for those as well
with this my pinebook's sensors work again
2023-05-02 10:18:54 +00:00
jmcneill 44c2d104bb TS7200: Defer event counter registration until after evcnt is initialized
Patch from Lloyd Parkes <lloyd@must-have-coffee.gen.nz> in PR# kern/57386
2023-05-02 09:49:33 +00:00