openethereum/CHANGELOG.md
s3krit d961010f63
V2.7.2 stable (#11454)
* update classic testnet bootnodes (#11398)

* update classic testnet bootnodes

* Update kotti.json

* Update kotti.json

* Update kotti.json

* Update mordor.json

* verification: fix race same block + misc (#11400)

* ethcore: fix race in verification

* verification: fix some nits

* verification: refactor err type `Kind::create`

* fix: tests

* address grumbles

* address grumbles: don't panic

* fix: export hardcoded sync format (#11416)

* fix: export hardcoded sync format

* address grumbles

* make tests compile with rustc_hex 2.0

* fix grumbles: impl LowerHex for encoded Header

* goerli: replace foundation bootnode (#11433)

* Remove dead bootnodes, add new geth bootnodes (#11441)

* update kvdb-rocksdb to 0.4 (#11442)

* Avoid long state queries when serving GetNodeData requests (#11444)

* Remove dead bootnodes, add new geth bootnodes

* More granular locking when fetching state
Finish GetDataNode requests early if queries take too long

* typo

* Use latest kvdb-rocksdb

* Cleanup

* Update ethcore/sync/src/chain/supplier.rs

Co-Authored-By: Andronik Ordian <write@reusable.software>

* Address review grumbles

* Fix compilation

* Address review grumbles

Co-authored-by: Andronik Ordian <write@reusable.software>

* rlp_derive: cleanup (#11446)

* rlp_derive: update syn & co

* rlp_derive: remove dummy_const

* rlp_derive: remove unused attirubutes

* rlp-derive: change authors

* Cargo.lock: cargo update -p kvdb-rocksdb (#11447)

* Cargo.lock: new lockfile format

Manual backport of https://github.com/paritytech/parity-ethereum/pull/11448

* gcc to clang (#11453)

* gcc to clang

test
```
export CC="sccache "$CC
export CXX="sccache "$CXX
```
darwin build
```
CC=clang
CXX=clang
```

* darwin - > default clang

* Bump version and CHANGELOG.md

* chore: remove unused dependencies (#11432)

* fix: compiler warnings

* chore: remove unused dependencies

* Update CHANGELOG.md

* update Cargo.lock

* update CHANGELOG.md

* backwards compatible call_type creation_method (#11450)

* rlp_derive: update syn & co

* rlp_derive: remove dummy_const

* rlp_derive: remove unused attirubutes

* rlp-derive: change authors

* rlp_derive: add rlp(default) attribute

* Revert "Revert "[Trace] Distinguish between `create` and `create2` (#11311)" (#11427)"

This reverts commit 5d4993b0f8.

* trace: backwards compatible call_type and creation_method

* trace: add rlp backward compatibility tests

* cleanup

* i know, i hate backwards compatibility too

* address review grumbles

* update CHANGELOG.md

* just to make sure we don't screw up this again (#11455)

* Update CHANGELOG.md

Co-authored-by: Talha Cross <47772477+soc1c@users.noreply.github.com>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Andronik Ordian <write@reusable.software>
Co-authored-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>
2020-02-05 17:10:36 +01:00

20 KiB

Parity-Ethereum v2.7.1

Parity Ethereum v2.7.2-stable is a patch version release of parity-ethereum. Starting in the 2.7.x series of releases, parity-ethereum is switching to a single stable release track. As a result, any clients that currently receive updates from the beta track should switch to the stable track. Due to database format changes, upgrading from 2.5.x or 2.6.x is one-way only.

The full list of included changes:

  • backwards compatible call_type creation_method (#11450 + #11455)
  • chore: remove unused dependencies (#11432)
  • Cargo.lock: new lockfile format (#11448)
  • rlp_derive: cleanup (#11446)
  • Avoid long state queries when serving GetNodeData requests (#11444)
  • update kvdb-rocksdb to 0.4 (#11442)
  • Remove dead bootnodes, add new geth bootnodes (#11441)
  • goerli: replace foundation bootnode (#11433)
  • fix: export hardcoded sync format (#11416)
  • verification: fix race same block + misc (#11400)
  • update classic testnet bootnodes (#11398)
  • gcc to clang (#11453)

Parity-Ethereum v2.7.1

Parity Ethereum v2.7.1-stable is a patch version release of parity-ethereum. Starting in the 2.7.x series of releases, parity-ethereum is switching to a single stable release track. As a result, any clients that currently receive updates from the beta track should switch to the stable track. Due to database format changes, upgrading from 2.5.x or 2.6.x is one-way only.

The full list of included changes from v2.7.0 to v2.7.1:

  • Revert "Distinguish between create and create2 (#11311)" (#11427)

Parity-Ethereum v2.7.0

Parity Ethereum v2.7.0-stable is a minor version release of parity-ethereum. As of this release, parity-ethereum is switching to a single stable release track. As a result, any clients that currently receive updates from the beta track should switch to the stable track.

The full list of included changes from v2.5-stable to v2.7-stable (the v2.6-beta branch will already include some of these changes):

  • Update POA bootnodes (#11411)
  • Update ProgPoW to 0.9.3 (#11407)
  • Add EtherCore support (#11402)
  • json-tests: Fix compile error (#11384)
  • ethcore/res: fix ethereum classic chainspec blake2_f activation block num (#11391)
  • Switching to stable-track (#11377)
  • Update copyright notice 2020 (#11386)
  • miner: fix deprecation warning Error::description (#11380)
  • Fix Aztlan hard fork issues (#11347)
  • authority_round: Fix next_step_time_duration. (#11379)
  • Set the block gas limit to the value returned by a contract call (#10928)
  • [Trace] Distinguish between create and create2 (#11311)
  • fix cargo audit (#11378)
  • Fix esoteric test config variable (#11292)
  • Rip out the C and Java bindings (#11346)
  • Encapsulate access to the client for secret store (#11232)
  • Forward-port #11356 (#11359)
  • Fix error message typo (#11363)
  • [util/migration]: remove needless static bounds (#11348)
  • Replace stale boot nodes with latest list (#11351)
  • Update to latest kvdb-*: no default column, DBValue is Vec (#11312)
  • we do not profit from incremental now (#11302)
  • update autoupdate fork blocks for nightly (#11308)
  • Add Nat PMP method to P2P module (#11210)
  • Add randomness contract support to AuthorityRound. (#10946)
  • ethcore/res: activate ecip-1061 on kotti and mordor (#11338)
  • tx-q: enable basic verification of local transactions (#11332)
  • remove null signatures (#11335)
  • ethcore/res: activate agharta on classic 9573000 (#11331)
  • [secretstore] migrate to version 4 (#11322)
  • Enable EIP-2384 for ice age hard fork (#11281)
  • Fix atomicity violation in network-devp2p (#11277)
  • Istanbul activation on xDai (#11299)
  • Istanbul activation on POA Core (#11298)
  • Adds support for ipc socket permissions (#11273)
  • Add check for deserialising hex values over U256 limit (#11309)
  • validate-chainspecs: check istanbul eips are in the foundation spec (#11305)
  • [chainspec]: add eip1344_transition for istanbul (#11301)
  • only add transactions to signing-queue if it is enabled (#11272)
  • Use upstream rocksdb (#11248)
  • Treat only blocks in queue as synced (#11264)
  • add support for evan.network chains (#11289)
  • Add benchmarks and tests for RlpNodeCodec decoding (#11287)
  • upgrade vergen to 3.0 (#11293)
  • interruptible test and build jobs (#11294)
  • Istanbul HF on POA Sokol (#11282)
  • [ethcore]: apply filter when PendingSet::AlwaysQueue in ready_transactions_filtered (#11227)
  • Update lib.rs (#11286)
  • Don't prune ancient state when instantiating a Client (#11270)
  • fixed verify_uncles error type (#11276)
  • ethcore: fix rlp deprecation warnings (#11280)
  • Upgrade trie-db to 0.16.0. (#11274)
  • Clarify what first_block None means (#11269)
  • removed redundant VMType enum with one variant (#11266)
  • Ensure jsonrpc threading settings are sane (#11267)
  • Return Ok(None) when the registrar contract returns empty slice (#11257)
  • Add a benchmark for snapshot::account::to_fat_rlps() (#11185)
  • Fix misc compile warnings (#11258)
  • simplify verification (#11249)
  • update ropsten forkCanonHash, forkBlock (#11247)
  • Make InstantSeal Instant again (#11186)
  • ropsten #6631425 foundation #8798209 (#11201)
  • Update list of bootnodes for xDai chain (#11236)
  • ethcore/res: add mordor testnet configuration (#11200)
  • [chain specs]: activate Istanbul on mainnet (#11228)
  • [builtin]: support multiple prices and activations in chain spec (#11039)
  • Insert explicit warning into the panic hook (#11225)
  • Snapshot restoration overhaul (#11219)
  • Fix docker centos build (#11226)
  • retry on gitlab system failures (#11222)
  • Update bootnodes. (#11203)
  • Use provided usd-per-eth value if an endpoint is specified (#11209)
  • Use a lock instead of atomics for snapshot Progress (#11197)
  • [informant]: MillisecondDuration -> as_millis() (#11211)
  • Step duration map configuration parameter ported from the POA Network fork (#10902)
  • Upgrade jsonrpc to latest (#11206)
  • [export hardcoded sync]: use debug for H256 (#11204)
  • Pause pruning while snapshotting (#11178)
  • Type annotation for next_key() matching of json filter options (#11192)
  • Crypto primitives removed from ethkey (#11174)
  • Made ecrecover implementation trait public (#11188)
  • Remove unused macro_use. (#11191)
  • [dependencies]: jsonrpc 14.0.1 (#11183)
  • [receipt]: add sender & receiver to RichReceipts (#11179)
  • [dependencies] bump rand 0.7 (#11022)
  • [ethcore/builtin]: do not panic in blake2pricer on short input (#11180)
  • TxPermissions ver 3: gas price & data (#11170)
  • [ethash] chainspec validate ecip1017EraRounds non-zero (#11123)
  • util Host: fix a double Read Lock bug in fn Host::session_readable() (#11175)
  • ethcore client: fix a double Read Lock bug in fn Client::logs() (#11172)
  • Aura: Report malice on sibling blocks from the same validator (#11160)
  • Change how RPCs eth_call and eth_estimateGas handle "Pending" (#11127)
  • Cleanup stratum a bit (#11161)
  • Upgrade to jsonrpc v14 (#11151)
  • Secret store: fix Instant::now() related race in net_keep_alive (#11155)
  • RPC method for clearing the engine signer (#10920)
  • Use TryFrom instead of From+panic for Builtin (#11140)
  • Fix sccache statistics (#11145)
  • Update ethereum types to 0.8.0 version (#11139)
  • [json]: add docs to hardfork specification (#11138)
  • ServiceTransactionChecker::refresh_cache: allow registrar unavailable (#11126)
  • Fix some random typos, formatting/whitespace (#11128)
  • Refactor parity_listStorageKeys with count parameter optional (#11124)
  • Make EIP712Domain Fields Optional (#11103)
  • EIP-712: bump version in prep for publishing (#11106)
  • move StateResult to common-types (#11121)
  • Deduplicate registrar contract & calling logic (#11110)
  • Refactor return type of BlockChainClient::code #7098 (#11102)
  • Switching sccache from local to Redis (#10971)
  • SIMD Implementation for EIP-152 (#11056)
  • Fix deprecated trait objects without an explicit dyn (#11112)
  • [spec] fix rinkeby spec (#11108)
  • Update to latest jsonrpc (#11111)
  • use images from our registry (#11105)
  • Correct EIP-712 encoding (#11092)
  • [CI] check evmbin build (#11096)
  • Update kvdb, kvdb-rocksdb and h2 (#11091)
  • [client]: Fix for incorrectly dropped consensus messages (#11082) (#11086)
  • Update JSON tests to d4f86ecf4aa7c (#11054)
  • fix(network): typo (#11088)
  • [ethash] remove manual unrolling (#11069)
  • ethcore/res: activate Istanbul on Ropsten, Görli, Rinkeby, Kovan (#11068)
  • [sync]: rust 2018 (#11067)
  • [ethcore]: move client test types to test-helpers (#11062)
  • [sync]: remove unused dependencies or make dev (#11061)
  • [ethcore]: reduce re-exports (#11059)
  • [evmbin] fix time formatting (#11060)
  • Update hardcoded headers (foundation, classic, kovan, xdai, ewc, ...) (#11053)
  • cargo update -p eth-secp256k1 (#11052)
  • ethcore: remove test-helper feat from build (#11047)
  • Include test-helpers from ethjson (#11045)
  • [ethcore]: cleanup dependencies (#11043)
  • add more tx tests (#11038)
  • Fix parallel transactions race-condition (#10995)
  • [ethcore]: make it compile without test-helpers feature (#11036)
  • Benchmarks for block verification (#11035)
  • Move snapshot related traits to their proper place (#11012)
  • cleanup json crate (#11027)
  • [spec] add istanbul test spec (#11033)
  • [json-spec] make blake2 pricing spec more readable (#11034)
  • Add blake2_f precompile (#11017)
  • Add new line after writing block to hex file. (#10984)
  • fix: remove unused error-chain (#11028)
  • fix: remove needless use of itertools (#11029)
  • Convert std::test benchmarks to use Criterion (#10999)
  • Fix block detail updating (#11015)
  • [trace] introduce trace failed to Ext (#11019)
  • cli: update usage and version headers (#10924)
  • [private-tx] remove unused rand (#11024)
  • Extract snapshot to own crate (#11010)
  • Edit publish-onchain.sh to use https (#11016)
  • EIP 1108: Reduce alt_bn128 precompile gas costs (#11008)
  • Fix deadlock in network-devp2p (#11013)
  • Implement EIP-1283 reenable transition, EIP-1706 and EIP-2200 (#10191)
  • EIP 1884 Re-pricing of trie-size dependent operations (#10992)
  • xDai chain support and nodes list update (#10989)
  • [trace] check mem diff within range (#11002)
  • EIP-1344 Add CHAINID op-code (#10983)
  • Make ClientIoMessage generic over the Client (#10981)
  • bump spin to 0.5.2 (#10996)
  • fix compile warnings (#10993)
  • Fix compilation on recent nightlies (#10991)
  • [ipfs] Convert to edition 2018 (#10979)
  • Extract spec to own crate (#10978)
  • EIP 2028: transaction gas lowered from 68 to 16 (#10987)
  • Extract engines to own crates (#10966)
  • Configuration map of block reward contract addresses (#10875)
  • Add a 2/3 quorum option to Authority Round. (#10909)
  • Fix rlp decode for inline trie nodes. (#10980)
  • Private contract migration and offchain state sync (#10748)
  • manual publish jobs for releases, no changes for nightlies (#10977)
  • Extract the Engine trait (#10958)
  • Better error message for rpc gas price errors (#10931)
  • [.gitlab.yml] cargo check ethcore benches (#10965)
  • Verify transaction against its block during import (#10954)
  • [evmbin] fix compilation (#10976)
  • Update to latest trie version. (#10972)
  • [blooms-db] Fix benchmarks (#10974)
  • Fix ethcore/benches build. (#10964)
  • tx-pool: accept local tx with higher gas price when pool full (#10901)
  • Disable unsyncable expanse chain (#10926)
  • Extract Machine from ethcore (#10949)
  • removed redundant state_root function from spec, improve spec error types (#10955)
  • Add support for Energy Web Foundation's new chains (#10957)
  • [evmbin] add more tests to main.rs (#10956)
  • Fix compiler warnings in util/io and upgrade to edition 2018 Upgrade mio to latest (#10953)
  • unify loading spec && further spec cleanups (#10948)
  • refactor: Refactor evmbin CLI (#10742)
  • journaldb changes (#10929)
  • Allow default block parameter to be blockHash (#10932)
  • Enable sealing when engine is ready (#10938)
  • Fix some warnings and typos. (#10941)
  • Updated security@parity.io key (#10939)
  • Change the return type of step_inner function. (#10940)
  • get rid of hidden mutability of Spec (#10904)
  • simplify BlockReward::reward implementation (#10906)
  • Kaspersky AV whitelisting (#10919)
  • additional arithmetic EVM opcode benchmarks (#10916)
  • [Cargo.lock] cargo update -p crossbeam-epoch (#10921)
  • Fixes incorrect comment. (#10913)
  • Add file path to disk map write/read warnings (#10911)
  • remove verify_transaction_unordered from engine (#10891)
  • Avast whitelist script (#10900)
  • cleanup ethcore ethereum module (#10899)
  • Move more types out of ethcore (#10880)
  • return block nonce when engine is clique (#10892)
  • TransactionQueue::import accepts iterator (#10889)
  • rename is_pruned to is_prunable (#10888)
  • simplify create_address_scheme (#10890)
  • Move DatabaseExtras back to trace (#10868)
  • Update README.md and Changelogs (#10866)
  • whisper is no longer a part of parity-ethereum repo (#10855)
  • [ethash] remove mem::uninitialized (#10861)
  • Docker images renaming (#10863)
  • Move the substate module into ethcore/executive (#10867)
  • Run cargo fix on a few of the worst offenders (#10854)
  • removed redundant fork choice abstraction (#10849)
  • Extract state-db from ethcore (#10858)
  • Fix fork choice (#10837)
  • Move more code into state-account (#10840)
  • Remove compiler warning (#10865)
  • [ethash] use static_assertions crate (#10860)
  • EIP-1702: Generalized Account Versioning Scheme (#10771)
  • ethcore-builtin (#10850)
  • removed QueueError type (#10852)
  • removed unused macros (#10851)
  • bump crossbeam (#10848)
  • removed unused trait PrivateNotify and unused Error types (#10847)
  • make fn submit_seal more idiomatic (#10843)
  • update parking-lot to 0.8 (#10845)
  • Update version to 2.7.0 (#10846)
  • update jsonrpc to 12.0 (#10841)
  • Improve logging and cleanup in miner around block sealing (#10745)
  • Extract AccountDB to account-db (#10839)
  • test: Update Whisper test for invalid pool size (#10811)
  • Extricate PodAccount and state Account to own crates (#10838)
  • logs (#10817)
  • refactor: whisper: Add type aliases and update rustdocs in message.rs (#10812)
  • Break circular dependency between Client and Engine (part 1) (#10833)
  • tests: Relates to #10655: Test instructions for Readme (#10835)
  • refactor: Related #9459 - evmbin: replace untyped json! macro with fully typed serde serialization using Rust structs (#10657)
  • idiomatic changes to PodState (#10834)
  • Allow --nat extip:your.host.here.org (#10830)
  • When updating the client or when called from RPC, sleep should mean sleep (#10814)
  • Remove excessive warning (#10831)
  • Fix typo in README.md (#10828)
  • ethcore does not use byteorder (#10829)
  • Better logging when backfilling ancient blocks fail (#10796)
  • depends: Update wordlist to v1.3 (#10823)
  • cargo update -p smallvec (#10822)
  • replace memzero with zeroize crate (#10816)
  • Don't repeat the logic from Default impl (#10813)
  • removed additional_params method (#10818)
  • Add Constantinople eips to the dev (instant_seal) config (#10809)
  • removed redundant fmt::Display implementations (#10806)
  • revert changes to .gitlab-ci.yml (#10807)
  • Add filtering capability to parity_pendingTransactions (issue 8269) (#10506)
  • removed EthEngine alias (#10805)
  • wait a bit longer in should_check_status_of_request_when_its_resolved (#10808)
  • Do not drop the peer with None difficulty (#10772)
  • ethcore-bloom-journal updated to 2018 (#10804)
  • ethcore-light uses bincode 1.1 (#10798)
  • Fix a few typos and unused warnings. (#10803)
  • updated project to ansi_term 0.11 (#10799)
  • added new ropsten-bootnode and removed old one (#10794)
  • updated price-info to edition 2018 (#10801)
  • ethcore-network-devp2p uses igd 0.9 (#10797)
  • updated parity-local-store to edition 2018 and removed redundant Error type (#10800)
  • Cleanup unused vm dependencies (#10787)
  • Removed redundant ethcore-service error type (#10788)
  • Removed machine abstraction from ethcore (#10791)
  • Updated blooms-db to rust 2018 and removed redundant deps (#10785)
  • ethkey no longer uses byteorder (#10786)
  • Log validator set changes in EpochManager (#10734)
  • Treat empty account the same as non-exist accounts in EIP-1052 (#10775)
  • docs: Update Readme with TOC, Contributor Guideline. Update Cargo package descriptions (#10652)
  • Move Engine::register_client to be before other I/O handler registration (#10767)
  • Print warnings when using dangerous settings for ValidatorSet (#10733)
  • ethcore/res: activate atlantis classic hf on block 8772000 (#10766)
  • refactor: Fix indentation (#10740)
  • Updated Bn128PairingImpl to use optimized batch pairing (#10765)
  • fix: aura don't add SystemTime::now() (#10720)
  • Initialize private tx logger only if private tx functionality is enabled (#10758)
  • Remove unused code (#10762)
  • Remove calls to heapsize (#10432)
  • [devp2p] Update to 2018 edition (#10716)
  • Add a way to signal shutdown to snapshotting threads (#10744)
  • Enable aesni (#10756)
  • remove support of old SS db formats (#10757)
  • [devp2p] Don't use rust-crypto (#10714)
  • updater: fix static id hashes initialization (#10755)
  • Use fewer threads for snapshotting (#10752)
  • Die error_chain, die (#10747)
  • Fix deprectation warnings on nightly (#10746)
  • fix docker tags for publishing (#10741)
  • DevP2p: Get node IP address and udp port from Socket, if not included in PING packet (#10705)
  • ethcore: enable ECIP-1054 for classic (#10731)
  • Stop breaking out of loop if a non-canonical hash is found (#10729)
  • Refactor Clique stepping (#10691)
  • Use RUSTFLAGS to set the optimization level (#10719)
  • SecretStore: non-blocking wait of session completion (#10303)
  • removed secret_store folder (#10722)
  • SecretStore: expose restore_key_public in HTTP API (#10241)
  • Revert "enable lto for release builds (#10717)" (#10721)
  • enable lto for release builds (#10717)
  • Merge Notifier and TransactionsPoolNotifier (#10591)
  • [devp2p] Fix warnings and re-org imports (#10710)
  • Upgrade ethereum types (#10670)
  • introduce MissingParent Error, fixes #10699 (#10700)
  • Update publishing (#10644)
  • Upgrade to parity-crypto 0.4 (#10650)
  • new image (#10673)
  • Add SealingState; don't prepare block when not ready. (#10529)
  • Fix compiler warning (that will become an error) (#10683)
  • add_sync_notifier in EthPubSubClient holds on to a Client for too long (#10689)
  • Don't panic if extra_data is longer than VANITY_LENGTH (#10682)
  • docs: evmbin - Update Rust docs (#10658)
  • Remove annoying compiler warnings (#10679)
  • Reset blockchain properly (#10669)
  • Remove support for hardware wallets (#10678)
  • [CI] allow cargo audit to fail (#10676)
  • docs: Add ProgPoW Rust docs to ethash module (#10653)
  • fix: Move PR template into .github/ folder (#10663)
  • docs: Add PR template (#10654)
  • Trivial journal for private transactions (#10056)
  • fix(compilation warnings) (#10649)
  • [whisper] Move needed aes_gcm crypto in-crate (#10647)
  • Adds parity_getRawBlockByNumber, parity_submitRawBlock (#10609)
  • Fix rinkeby petersburg fork (#10632)
  • ci: publish docs debug (#10638)
  • Fix publish docs (#10635)
  • Update kovan.json to switch validator set to POA Consensus Contracts (#10628)
  • [ethcore] remove error_chain (#10616)
  • Remove unused import (#10615)
  • evm: add some mulmod benches (#10600)
  • Clique: zero-fill extradata when the supplied value is less than 32 bytes in length (#10605)
  • Constantinople HF on POA Core (#10606)
  • adds rpc error message for --no-ancient-blocks (#10608)
  • Allow CORS requests in Secret Store API (#10584)
  • update bootnodes (#10595)
  • sccache logs to stdout (#10596)
  • fix(whisper expiry): current time + work + ttl (#10587)
  • CI improvements (#10579)
  • Watch transactions pool (#10558)
  • fix(evmbin): make benches compile again (#10586)
  • fix issue with compilation when 'slow-blocks' feature enabled (#10585)
  • Reject crazy timestamps instead of truncating. (#10574)
  • Node table limiting and cache for node filter (#10288)
  • fix(light cull): poll light cull instead of timer (#10559)
  • Update Issue Template to direct security issue to email (#10562)
  • RPC: Implements eth_subscribe("syncing") (#10311)
  • Explicitly enable or disable Stratum in config file (Issue 9785) (#10521)
  • version: bump master to 2.6 (#10560)