Commit Graph

14926 Commits

Author SHA1 Message Date
Rashmirreddy f7bd54590a Fixed a link issue. (#7395) 2023-06-20 14:38:52 +02:00
dependabot[bot] 5a16ebc3a5 Bump parity-scale-codec from 3.5.0 to 3.6.1 (#2760)
Bumps [parity-scale-codec](https://github.com/paritytech/parity-scale-codec) from 3.5.0 to 3.6.1.
- [Release notes](https://github.com/paritytech/parity-scale-codec/releases)
- [Changelog](https://github.com/paritytech/parity-scale-codec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/paritytech/parity-scale-codec/compare/parity-scale-codec-v3.5.0...parity-scale-codec-v3.6.1)

---
updated-dependencies:
- dependency-name: parity-scale-codec
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-20 13:50:12 +02:00
Mira Ressel 6ea3736004 ci: bump ci image for rust 1.70 (#14399)
* ci: bump ci image for rust 1.70

* ".git/.scripts/commands/update-ui/update-ui.sh" 1.70

* chore: ignore the new let_with_type_underscore lint

---------

Co-authored-by: command-bot <>
2023-06-20 13:26:03 +02:00
Kian Paimani f4c00ecc3f Update DOCUMENTATION_GUIDELINES.md (#14369)
* Update DOCUMENTATION_GUIDELINES.md

* update ToC

* Update docs/DOCUMENTATION_GUIDELINES.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update docs/DOCUMENTATION_GUIDELINES.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* fix

---------

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>
2023-06-19 22:56:22 +02:00
Xavier Lau 5838ab681d Add sudo to template node (#2748)
* Add sudo to template node

* Fix

* Change as suggest

* Update parachain-template/runtime/src/lib.rs

Co-authored-by: Squirrel <giles@parity.io>

* Change as suggest

---------

Co-authored-by: Squirrel <giles@parity.io>
2023-06-19 16:53:57 +00:00
Chevdor 1e417710f5 Renaming of the Asset Hubs (#2755) 2023-06-19 16:51:40 +00:00
Egor_P 7c28c5319a [Backport] version bumps from 9430 (#2709)
* Bump crate versions

* Bump spec_version to 9430
2023-06-19 13:57:25 +00:00
Oleg Plakida 0aa79f87ca ".git/.scripts/commands/bench-vm/bench-vm.sh" all (#13933)
Co-authored-by: command-bot <>
2023-06-19 14:31:20 +01:00
Oliver Tale-Yazdi 05592a84eb Refactor BlockBuilder::propose_with (#14405)
* Add log target

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Factor out apply_inherents

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Factor out apply_extrinsics

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Factor out print_summary

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Pimp print_summary

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fixes

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update client/basic-authorship/src/basic_authorship.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
2023-06-19 10:12:43 +00:00
Gavin Wood cf68e59132 Fellowship: Voters can initiate proposals on their votable tracks (#2725)
* Voters can initiate proposals on their tracks in Fellowship

* Bump

* Remove it_builds

* Docs
2023-06-19 10:41:50 +01:00
dependabot[bot] 6beb11e8cc Bump serde_json from 1.0.96 to 1.0.97 (#2749)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.96 to 1.0.97.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.96...v1.0.97)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-19 06:51:08 +00:00
Gavin Wood a846d00866 Runtime: Kusama gets Society v2 (#7356)
* Remove println

* Kusama gets the new society

* Integrate migration

* Formatting

* Add Society weights

* Remive diener

* Fixes

* Update Cargo.toml

Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>

* Add real historical payment info for Society.

* Fixes

* Bump Substrate

---------

Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>
2023-06-18 18:54:31 +02:00
Gavin Wood 33a6536299 Society v2 (#11324)
* New Society

* More logic drafting

* More work

* Building

* Some tests

* Fixes

* Improvements to the voting process

* More tests

* Test number 20

* Tests

* 30 tests

* Another test]

* All tests enabled

* Minor stuff

* generate_storage_alias: Rewrite as proc macro attribute

This rewrites the `generate_storage_alias!` declarative macro as proc-macro attribute. While doing
this the name is changed to `storage_alias`. The prefix can now also be the name of a pallet. This
makes storage aliases work in migrations for all kind of chains and not just for the ones that use
predefined prefixes.

* Maintenance operations don't pay fee

* Fix compilation and FMT

* Moare fixes

* Migrations

* Fix tests and add migration testing

* Introduce lazy-cleanup and avoid unbounded prefix removal

* Fixes

* Fixes

* [WIP][Society] Adding benchmarking to the v2. (#11776)

* [Society] Adding benchmarking to the v2.

* [Society] Code review.

* [Society] Better code.

* Using clear() + clear_prefix() and adding more tests.

* Benchmarking again...

* Fix Cargo

* Fixes

* Fixes

* Spelling

* Fix benchmarks

* Another fix

* Remove println

---------

Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Artur Gontijo <arturgontijo@users.noreply.github.com>
2023-06-18 17:22:17 +01:00
Oliver Tale-Yazdi 116b6e65dc pallet benchmarking: Bump default steps and repeat (#14408)
* Bump default steps and repeats to useful values

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add check that scheduler weight depends on component

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add test to whitelist pallet

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add env var to disable checks

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* remove tests

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-06-18 11:50:34 +00:00
wangjj9219 d8b18417a0 expose the fields of Dust type to public (#14388) 2023-06-18 09:14:08 +00:00
Dmitry Markin 4652eaeef8 [network] Extend Notifications logs with SetId where missing (#14406)
* Extend `Notifications` logs with `SetId` where missing

* Downgrade "Ignoring request to disconnect reserved peer"

* minor: log formatting
2023-06-16 17:01:26 +00:00
Sam Johnson 18df38a4b6 update macro_magic to 0.4.1 (#14356)
* update to macro_magic 0.4.0

* remove deprecated syntax and related doc comments

* upgrade to macro_magic v0.4.1

* fix import issue

* fix UI tests

* resolve frame_support path properly

* add docs note about importing

* fix typo

* Update frame/support/procedural/src/lib.rs

Co-authored-by: Guillaume Yu Thiolliere <gui.thiolliere@gmail.com>

* revert UI tests changes because we can't use rust 1.70

* fix UI tests

* fix another UI test

* use simplified import style

* switch back import since tests are written expecting it that way

---------

Co-authored-by: Guillaume Yu Thiolliere <gui.thiolliere@gmail.com>
2023-06-16 13:06:28 +00:00
Anton 1453bc9a2d [frame/im-online] remove ensure from pre_upgrade (#14401)
* [frame/im-online] remove ensure from pre_upgrade

modify ensure in post_upgrade to allow for future upgrades
refs https://github.com/paritytech/substrate/pull/14251#discussion_r1230973672

* cargo fmt
2023-06-16 12:17:01 +00:00
Oliver Tale-Yazdi 0895f4904f Delete 1D weight ctors and set explicit deprecation dates (#14397)
* Delete old weight functions

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add explicit removal dates

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Upate UI tests

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-06-16 12:09:28 +00:00
Juan ced77b3d30 Companion for Soft deprecate GenesisConfig (#7288)
* update genesis config

* fix wrong RuntimeGenesisConfig name

* update lockfile for {"substrate"}

---------

Co-authored-by: parity-processbot <>
2023-06-16 11:34:50 +00:00
Mira Ressel e75607108e docs: update references to NetworkConfiguration::extra_sets (#7386)
* docs: update references to NetworkConfiguration::extra_sets

Since paritytech/substrate#14080, this struct field no longer exists,
now the `add_notification_protocol()` function of
`sc_network::config::FullNetworkConfiguration` is used.

Also neuter the doc links for now; rustdoc can't resolve them
(presumably because sc_network::config isn't in scope, though weirdly
enough even spelling the link out as
``[`FullNetworkConfiguration`](struct@sc_network::config::FullNetworkConfiguration)``
doesn't work?). Normally this wouldn't be an issue and rustdoc would
just not generate links, but rust 1.70 has a bug that completely crashes
rustdoc in this case.
2023-06-16 13:14:16 +02:00
Sacha Lansky ebf7c1c478 Fix links (#14371) 2023-06-16 11:14:05 +00:00
Juan d77a8826d1 Companion for Soft deprecate GenesisConfig (#2636)
* update genesis config

* rebase and fix errors

---------

Co-authored-by: parity-processbot <>
Co-authored-by: joepetrowski <joe@parity.io>
2023-06-16 11:05:45 +00:00
Juan 6673f836ea Add a deprecation warning to the old runtime GenesisConfig (#14224)
* soft deprecate genesisconfig

* temporarily add a deprecation attr

* update tests

* update mocks

* update genesis config

* update genesis config

* update genesis config

* update genesis config

* remove deprecation warning

* add a deprecation warning to the old runtime GenesisConfig

* add a date to the deprecation message

---------

Co-authored-by: parity-processbot <>
2023-06-16 10:54:21 +00:00
Bastian Köcher 53f4b4df76 Run all tests with try-runtime feature enabled (#14396)
* Run all tests with `try-runtime` feature enabled

There are some tests that are guarded behind the `try-runtime` feature which are currently not being
executed. This pull requests changes this and enables the feature for the test run.

* Add some docs

* Rename variable
2023-06-16 12:16:19 +02:00
Aaro Altonen 134655ee27 Wait peers to connect before doing anything else (#7375)
There is a race condition in `NetworkBridgeRx` between registering
incoming peers and handling overseer signals. While the peer connection
was sent to `NetworkBridgeRx` first, sometimes the peer would be added to
`validation/collation_peers` with enough delay that the bridge handled
an overseer signal that was meant do send notifications to the registered
peer and as the peer was not present in the bridge, the notification was
never sent and the test would hang.

When peers are registered to `NetworkBridgeRx` using `connect_peer()`,
wait until they show up in `shared.validation/collation_peers` before
doing anything else.

Co-authored-by: parity-processbot <>
2023-06-16 09:32:52 +02:00
Adrian Catangiu 4311411133 sc-consensus-beefy: fix flaky test beefy_reports_equivocations (#14382)
Test was using too small a timeout of 250ms to verify equivocation is reported.

If the test machine is loaded with many async tasks running, the voters work
and subsequent gossiping does not fit within the 250ms window.

Do multiple tries to verify equivocation reporting with exponential timeouts,
most times it will be within 250ms, but the test will retry several times up
to 5seconds total before giving up.

Signed-off-by: Adrian Catangiu <adrian@parity.io>
2023-06-16 10:00:11 +03:00
Bulat Saifullin 185d376446 Rename Statemint* bootnodes to Asset Hub (#2683) 2023-06-16 09:37:52 +03:00
Marijn Schouten 5426b17f9c fix clippy warnings in node template (#14390) 2023-06-15 20:17:38 +00:00
Keith Yeung 9e31bcdc00 [XCM] Make NetworkId and Junction versioned (#7376)
* [XCM] Make NetworkId and Junction versioned

* Fixes

---------

Co-authored-by: parity-processbot <>
2023-06-15 18:22:35 +00:00
dependabot[bot] 094d0b8ad8 Bump ruby/setup-ruby from 1.151.0 to 1.152.0 (#2737)
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.151.0 to 1.152.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/bc1dd263b68cb5626dbb55d5c89777d79372c484...250fcd6a742febb1123a77a841497ccaa8b9e939)

---
updated-dependencies:
- dependency-name: ruby/setup-ruby
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-15 14:51:35 +00:00
Andrei Eres 0a1bc654d9 Delay reputation updates (#7214)
* Add futures-timer

* Make cost_or_benefit public

* Update ReportPeer message format

* Add delay to reputation updates (dirtywork)

* Update ReputationAggregator

* Update tests

* Fix flucky tests

* Move reputation to state

* Use the main loop for handling reputation sendings

* Update

* Move reputation to utils

* Update reputation sending

* Fix arguments order

* Update state

* Remove new from state

* Add constant

* Add failing test for delay

* Change mocking approach

* Fix type errors

* Fix comments

* Add message handling to select

* Fix bitfields-distribution tests

* Add docs to reputation aggregator

* Replace .into_base_rep

* Use one REPUTATION_CHANGE_INTERVAL by default

* Add reputation change to statement-distribution

* Update polkadot-availability-bitfield-distribution

* Update futures selecting in subsystems

* Update reputation adding

* Send malicious changes right away without adding to state

* Add reputation to StatementDistributionSubsystem

* Handle reputation in statement distribution

* Add delay test for polkadot-statement-distribution

* Fix collator-protocol tests before applying reputation delay

* Remove into_base_rep

* Add reputation to State

* Fix failed tests

* Add reputation delay

* Update tests

* Add batched network message for peer reporting

* Update approval-distribution tests

* Update bitfield-distribution tests

* Update statement-distribution tests

* Update collator-protocol tests

* Remove levels in matching

* Address clippy errors

* Fix overseer test

* Add a metric for original count of rep changes

* Update Reputation

* Revert "Add a metric for original count of rep changes"

This reverts commit 6c9b0c1ec34491d16e562bdcba8db6b9dcf484db.

* Update node/subsystem-util/src/reputation.rs

Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io>

* Remove redundant vec

---------

Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io>
2023-06-15 13:46:06 +00:00
dependabot[bot] 0b77f18d22 Bump clap from 4.3.3 to 4.3.4 (#2738)
Bumps [clap](https://github.com/clap-rs/clap) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.3.3...v4.3.4)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-15 11:12:02 +00:00
Anton d3d9d4ae66 [frame/im-online] remove network state from heartbeats (#7309)
* [frame/im-online] remove external_addresses from heartbeat

* new benchmarks

* format code

* Revert "format code"

This reverts commit 586ddaa6f588b4aef92a0169cfd6a9610d1337b8.

* remove MaxPeerDataEncodingSize

* update lockfile for {"substrate"}

---------

Co-authored-by: parity-processbot <>
2023-06-15 10:25:57 +00:00
Anton 6cd2c8b395 [frame/im-online] remove network state from heartbeats (#14251)
* [frame/im-online] remove `external_addresses` from heartbeats

Users should use DHT for discovering new nodes. The reason for adding external addresses was
unstable work of authority discovery (see https://github.com/paritytech/substrate/issues/2719),
which is now stable. Hence we can safely remove `external_addresses`.

Refs https://github.com/paritytech/polkadot/issues/7181

* remove unused import

* run benchmark

* remove external_addresses from offchain NetworkState

* add missing fn to TestNetwork

* Revert "run benchmark"

This reverts commit a282042c2d6bf8bae2c383f6e2699c3fe2970a3d.

* update weights

* address @bkchr comments

* remove duplicate fn

* cleanup benchmarking.rs

* fix executor tests

* remove peer_id from hearbeat as well

https://github.com/paritytech/substrate/pull/14251#discussion_r1210887220

* remove MaxPeerDataEncodingSize

* change storage value type to `()`

https://github.com/paritytech/substrate/pull/14251#discussion_r1214268931

* scaffold storage migration

* no need to check the type actually

* remove unnecessary types from v0 mod

* add a test for migration

* expose Config types

+ pre_upgrade and post_upgrade working fn

* fix test

* replace dummy type with ConstU32

* add some comments to migration test

* fix comment

* respond to @bkchr comments

* use BoundedOpaqueNetworkState::default

intead of using default for each field
2023-06-15 09:42:36 +00:00
Branislav Kontur 4f62a41a33 Bump substrate (#2741) 2023-06-15 11:01:20 +02:00
Mira Ressel ed227b9bbe ci: add new test-linux-oldkernel-stable job (#7371)
closes paritytech/ci_cd#811
2023-06-15 10:30:37 +02:00
Branislav Kontur 4057ef1554 Fix for pallet_assets::create benchmark (#14384)
* Fix for `pallet_assets::create` benchmark

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet-assets

---------

Co-authored-by: command-bot <>
2023-06-14 20:03:37 +00:00
Michal Kucharczyk 52a0910c71 construct_runtime: support for expanding the macro code (#14379)
* construct_runtime: support for expanding the macro code

* Update frame/support/procedural/src/construct_runtime/mod.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update frame/support/procedural/Cargo.toml

Co-authored-by: Bastian Köcher <git@kchr.de>

* fmt added

* fmt removed

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-06-14 18:49:48 +00:00
kostekIV e9bb5e737a Expose ExtraFlags struct (#14376) 2023-06-14 16:44:47 +00:00
Andrei Sandu edfbbc8c51 adjust buckets (#7368)
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
2023-06-14 15:02:53 +00:00
Guillaume Yu Thiolliere 7db4d74c43 Restructure macro-related exports into private mods for frame (#14375)
* minor refactor

* Update frame/election-provider-support/src/lib.rs

* Update frame/election-provider-support/solution-type/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* ".git/.scripts/commands/fmt/fmt.sh"

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: command-bot <>
2023-06-14 12:44:01 +00:00
Guillaume Yu Thiolliere c519c78809 minor refactor (#2733) 2023-06-14 12:43:41 +00:00
s0me0ne-unkn0wn 21897336d7 Hotfix for #7360 (#7365)
* CI job hotfix
* Instruct `cargo` to build all the binaries
2023-06-14 14:43:32 +02:00
Mira Ressel b78473d28a cargo-hfuzz ci: specify manifest patches via cargo --config (#14372)
This is less brittle than locally editing Cargo.toml, which breaks when
our devs submit PRs such as #13992 that also temporarily add a patch
section.
2023-06-14 13:54:58 +02:00
Branislav Kontur 2dbba10f6e Add TransactionPaymentCallApi to Bridge Hubs (#2729) 2023-06-14 11:53:29 +00:00
s0me0ne-unkn0wn ce76f6d373 Patch CI for split out worker binaries (#7360) 2023-06-14 09:55:41 +00:00
eskimor 596a9ccd02 Unify code paths of create_inherent and enter (#7137)
* Remove redundant enter call.

* Remove optionality in dispute signature checking

* Make enter_inner and create_inherent the same.

* Remove redundant metric.

* Unification: enter and create_inherent.

* Remove `enter_inner` function.

* Remove dead code.

* Remove redundant import.

* Remove dead code in disputes.

* ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent

* ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras_inherent

* ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras_inherent

* Merge fix.

* Fix tests.

* Remove obsolete comment.

* ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent

* ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras_inherent

* ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras_inherent

* Review remarks, fixes.

* Guide updates.

* Fmt.

* ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent

---------

Co-authored-by: eskimor <eskimor@no-such-url.com>
Co-authored-by: command-bot <>
2023-06-14 10:57:06 +02:00
Bastian Köcher 1eb3b31ad0 sc-executor-wasmtime: Do not use absolute path to Cargo.toml in test (#14370)
* sc-executor-wasmtime: Do not use absolute path to `Cargo.toml` in test

As the test is executed inside the workspace, `cargo metadata` will automatically detect the correct
`Cargo.toml`. This is required for the mono repo.

* ".git/.scripts/commands/fmt/fmt.sh"

---------

Co-authored-by: command-bot <>
2023-06-13 21:14:53 +02:00
Oliver Tale-Yazdi fda776951d benchmark pallet: Error if files are overwritten twice (#14352)
* benchmark pallet: Error if files are overwritten twice

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix error message

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-06-13 16:51:18 +00:00