Commit Graph

344 Commits

Author SHA1 Message Date
Paulo L F Casaretto a20d3fc362 common: Add tests for Address#UnmarshalJSON 2016-04-26 09:12:36 -03:00
Felix Lange 6fdd0893c3 all: fix go vet warnings 2016-04-15 11:17:27 +02:00
Felix Lange d04a2e7557 all: update license information 2016-04-15 09:48:05 +02:00
Felix Lange 46df50be18 accounts: improve API and add documentation
- Sign takes common.Address, not Account
- Import/Export methods work with encrypted JSON keys
2016-04-12 15:59:18 +02:00
Felix Lange 46e8940b19 accounts: streamline API
- Manager.Accounts no longer returns an error.
- Manager methods take Account instead of common.Address.
- All uses of Account with unkeyed fields are converted.
2016-04-12 15:58:01 +02:00
Jeffrey Wilcke 8b2aca96c5 Merge pull request #2404 from obscuren/common-hash-json-length-validation
common: added Hash unmarshal json length validation
2016-04-01 14:53:38 +02:00
Jeffrey Wilcke d63e29241d common: added Hash unmarshal json length validation 2016-04-01 12:56:54 +02:00
Jeffrey Wilcke f0cbebb19f core: added basic chain configuration
Added chain configuration options and write out during genesis database
insertion. If no "config" was found, nothing is written to the database.

Configurations are written on a per genesis base. This means
that any chain (which is identified by it's genesis hash) can have their
own chain settings.
2016-04-01 01:01:10 +02:00
Jeffrey Wilcke 14013372ae core: Added EVM configuration options
The EVM is now initialised with an additional configured object that
allows you to turn on debugging options.
2016-03-23 23:02:42 +01:00
Rémy Roy de1831b6e9 common/compiler: fix path problem with filepath.Glob on Windows 2016-03-07 17:52:19 -05:00
Ricardo Catalinas Jiménez 8f65444bf3 common/natspec: Remove old unnused file 2016-02-21 22:46:31 +00:00
Ricardo Catalinas Jiménez e6af65d02a common: Remove dead code 2016-02-21 22:46:31 +00:00
Ricardo Catalinas Jiménez fbf3b2ede2 common: Remove empty lines 2016-02-21 22:46:31 +00:00
Ricardo Catalinas Jiménez 436fc8d76a all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()
As we aren't really using the standarized SHA-3
2016-02-21 22:34:34 +00:00
Jeffrey Wilcke b6d88a0e9f core, core/vm, crypto: fixes for homestead
* Removed some strange code that didn't apply state reverting properly
* Refactored code setting from vm & state transition to the executioner
* Updated tests
2016-02-18 10:11:48 +01:00
Péter Szilágyi 900e124bee cmd, common, node, rpc: rework naming convention to canonical one 2016-02-09 13:24:42 +02:00
Péter Szilágyi a13bc9d7a1 cmd, common, node, rpc: move HTTP RPC into node, drop singletone aspect 2016-02-05 13:45:36 +02:00
Péter Szilágyi 188ab928c3 cmd, common, node, rpc: move IPC into the node itself 2016-02-04 11:23:15 +02:00
Bas van Kervel 19b2640e89 rpc: migrated the RPC insterface to a new reflection based RPC layer 2016-01-26 13:51:50 +01:00
Lefteris Karapetsas e2fdd33541 common: Fix HomeDir detection
I am working on porting geth to [Ubuntu Core](https://developer.ubuntu.com/en/snappy/https://developer.ubuntu.com/en/snappy/). I am testing geth on a Raspberry PI and for Ubuntu Core the $HOME directory is unique for each application. See [here](https://developer.ubuntu.com/en/snappy/guides/filesystem-layout) for more information of their filesystem layout.

For some reason in Go `usr.HomeDir` returns a different value than `$HOME` in Ubuntu Core.

Adding this at the end of `HomeDir()`
```go
fmt.Printf("at HomeDir, user.HomeDir = %s and $HOME is %s\n", usr.HomeDir, os.Getenv("HOME"))
```

gives the following output

```
at HomeDir, user.HomeDir = /home/ubuntu and $HOME is /home/ubuntu/apps/geth.sideload/IJcODREBYbHO
```

With this commit, I propose giving precedence to the `$HOME` environment variable as is also suggested by the [homedir](https://github.com/mitchellh/go-homedir/blob/master/homedir.go) project.
2016-01-08 13:36:37 +01:00
Felix Lange e6fb69296e common: remove old RLP implementation, Value and ExtPackage
In order to make this happen, kill all remaining trivial uses of
common/{rlp,value}.go. The non-trivial ones have been updated earlier.
2015-12-18 12:09:10 +01:00
Bas van Kervel eae81465c1 rpc: new RPC implementation with pub/sub support 2015-12-14 16:34:05 +01:00
Péter Szilágyi 18ea468cf8 common: fix #2008, wrong hex prefix check 2015-11-27 19:32:46 +02:00
Péter Szilágyi 1e806c4c77 cmd, common, core, eth, node, rpc, tests, whisper, xeth: use protocol stacks 2015-11-27 11:06:12 +02:00
Drake Burroughs 05ea8926c3 cmd/utils, crypto: add --lightkdf flag for lighter KDF 2015-10-28 18:46:39 +01:00
zelig 4d005a2c1d rpc api: eth_getNatSpec
* xeth, rpc: implement eth_getNatSpec for tx confirmations
* rename silly docserver -> httpclient
* eth/backend: httpclient now accessible via eth.Ethereum init-d via config.DocRoot
* cmd: introduce separate CLI flag for DocRoot (defaults to homedir)
* common/path: delete unused assetpath func, separate HomeDir func
2015-10-26 22:24:09 +01:00
zelig 8b81ad1fc4 console:
* lines with leading space are ommitted from history
* exit processed even with whitespace around
* all whitespace lines (not only empty ones) are ignored

add 7 missing commands to admin api autocomplete

registrar: methods now return proper error if reg addresses are not set. fixes #1457

rpc/console: fix personal.newAccount() regression. Now all comms accept interactive password

registrar: add registrar tests for errors

crypto: catch AES decryption error on presale wallet import + fix error msg format. fixes #1580

CLI: improve error message when starting a second instance of geth. fixes #1564

cli/accounts: unlock multiple accounts. fixes #1785
* make unlocking multiple accounts work with inline <() fd
* passwdfile now correctly read only once
* improve logs
* fix CLI help text for unlocking

fix regression with docRoot / admin API
* docRoot/jspath passed to rpc/api ParseApis, which passes onto adminApi
* docRoot field for JS console in order to pass when RPC is (re)started
* improve flag desc for jspath

common/docserver: catch http errors from response

fix rpc/api tests

common/natspec: fix end to end test (skipped because takes 8s)

registrar: fix major regression:
* deploy registrars on frontier
* register HashsReg and UrlHint in GlobalRegistrar.
* set all 3 contract addresses in code
* zero out addresses first in tests
2015-10-22 00:22:39 +02:00
Jeffrey Wilcke d5327ddc5f Merge pull request #1869 from Gustav-Simonsson/gpu_miner
all: Add GPU mining, disabled by default
2015-10-16 06:25:33 -07:00
Gustav Simonsson 2db9798646 common, crypto: add ICAP functions 2015-10-13 17:44:14 +02:00
Gustav Simonsson ec6a548ee3 all: Add GPU mining, disabled by default 2015-10-07 13:19:30 +02:00
Péter Szilágyi 74578ab22b common: fix #1818, secondary datadir paths to fall back to 2015-10-01 12:26:19 +03:00
Jeffrey Wilcke eaa4473dbd core, core/types: readd transactions after chain re-org
Added a `Difference` method to `types.Transactions` which sets the
receiver to the difference of a to b (NOTE: not a **and** b).

Transaction pool subscribes to RemovedTransactionEvent adding back to
those potential missing from the chain.

When a chain re-org occurs remove any transactions that were removed
from the canonical chain during the re-org as well as the receipts that
were generated in the process.

Closes #1746
2015-09-21 20:33:28 +02:00
Felix Lange ac6248ed7a Merge pull request #1793 from jeffallen/typo
common: Update README.md for the current package name
2015-09-17 19:26:49 +02:00
Jeffrey Wilcke 985b5f29ed Merge pull request #1801 from fjl/ethdb
all: move common.Database to ethdb and add NewBatch
2015-09-16 07:50:14 -07:00
zelig 3a5e7ed9a6 new solc api:
* use legacy version matcher
* optimise just a boolean flag
* skipf for messages in tests
2015-09-15 00:35:22 +02:00
Felix Lange 8c4dab77ba all: move common.Database to package ethdb 2015-09-14 23:36:30 +02:00
zelig 17b729759b Solidity Compiler - solc new API
* adapt to new compiler versioning
* use compiler version as language version
* implement new solc API for versions >= 0.1.[2-9][0-9]* fixes #1770
* add optimize=1 to options
* backward compatibility (for now) for <= 0.1.1, and old versions (0.[2-9][0-9]*.[0-9]+)
* introduce compilerOptions to ContractInfo
* clean up flair, include full version string to version line and ContractInfo
2015-09-12 10:52:52 +02:00
Jeff R. Allen 4ce3dfe9c8 common: Update README.md for the current package name 2015-09-10 23:59:38 +06:00
Péter Szilágyi 101418b275 common/compiler: fix #1598, expose solidity errors 2015-08-26 10:04:23 +03:00
Felix Lange 3832019964 common/compiler, common/docserver, jsre: fix tests on windows 2015-08-06 17:18:59 +02:00
Felix Lange 78b101e15d common: remove windows path functions
They were unused and their tests failed on Windows.
2015-08-06 16:43:43 +02:00
Felix Lange fd2356c620 common: remove config.go
The code in config.go is unused. The main reason for removing it is to
get rid github.com/rakyll/goini in Godeps (it has no license).
2015-07-24 11:43:32 +02:00
Felix Lange bfbcfbe4a9 all: fix license headers one more time
I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
2015-07-23 18:35:11 +02:00
Felix Lange 3f047be5aa all: update license headers to distiguish GPL/LGPL
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
2015-07-22 18:51:45 +02:00
Jeffrey Wilcke a32c51effd cmd, core, eth, common: genesis preparation
Implemented the --genesis flag thru which we can set a custom genesis
block, including the official Ethereum genesis block.
2015-07-10 17:37:41 +02:00
Jeffrey Wilcke df54510e3e common/natspec: fixed test 2015-07-07 14:55:27 +02:00
Felix Lange 4fb28e0dab all: goimports -w 2015-07-07 14:12:45 +02:00
Felix Lange bdae4fd573 all: add some godoc synopsis comments 2015-07-07 14:12:45 +02:00
Felix Lange ea54283b30 all: update license information 2015-07-07 14:12:44 +02:00
zelig c5cb6e8e70 fix/skip tests, adapt registrar to no contract address
registry initialisers now return the txhash which caller can use to retrieve receipt
2015-07-07 11:30:55 +02:00
zelig 1208ac83d5 fix natspec test
* registar url string retrieval chop leading zeros now
* rewrite test using test mining
* remove temporary applyTxs from xeth
2015-07-07 10:43:49 +02:00
zelig aa22cf323e fix js arguments and TestContract passes 2015-07-07 10:43:49 +02:00
zelig 518dc87db3 fix sleepBlocks, implement sleep 2015-07-07 10:43:49 +02:00
zelig 83ee39448e Registrar and contractInfo handling
* resolver -> common/registrar
  * global registrar name registry interface
  * add Call to resolver backend interface
  * the hashReg and UrlHing contracts now initialised from global registry
  * initialization of contracts uniform
  * improve errors and more econsistent method names
* common/registrar/ethreg: versioned registrar
* integrate new naming and registrar in natspec
* js console api: setGlobalRegistrar, setHashReg, setUrlHint
* js test TestContract uses mining - tests fixed all pass
* eth/backend: allow PoW test mode (small ethash DAG)
* console jsre refers to resolver.abi/addr,
* cmd/geth/contracts.go moved to common/registrar
2015-07-07 10:43:31 +02:00
Gustav Simonsson d23ec6c419 Change keystore to version 3
* Change password protection crypto in keystore to version 3
* Update KeyStoreTests/basic_tests.json
* Add support for PBKDF2 with HMAC-SHA256
* Change MAC and encryption key to avoid unnecessary hashing
* Add tests for test vectors in new wiki page defining version 3
* Add tests for new keystore tests in ethereum/tests repo
* Move JSON loading util to common for use in both tests and
  crypto packages
* Add backwards compatibility with key store version 1
2015-06-24 06:03:23 +02:00
obscuren c590b505ed core, ethdb, trie: validate database errors 2015-06-21 16:59:15 +02:00
obscuren 787a61bb27 core/state, core/vm: reworked storage get / set to use common.Hash 2015-06-17 11:24:40 +02:00
obscuren 21fa29111b core: reduce max allowed queued txs per address
Transactions in the queue are now capped to a maximum of 200
transactions. This number is completely arbitrary.
2015-06-15 12:16:29 +02:00
Bas van Kervel 359e6414e5 fixed windows ipc path issue 2015-06-12 09:32:37 +02:00
Bas van Kervel 2a0d888326 added API/IPC commandline flags 2015-06-11 14:01:39 +02:00
obscuren 76148515fa skip sol on new compiler 2015-06-09 15:19:20 +02:00
obscuren 2bb0e48a7b skipped failing natspec tests 2015-06-04 13:17:47 +02:00
obscuren 9b27fb91c0 cmd/geth, common/natspec: updating tests (still failing?) 2015-06-04 11:41:20 +02:00
obscuren b26f5e0bb7 types: block json unmarshal method added 2015-06-03 22:39:17 +02:00
obscuren 020006a8ed common, ethdb: removed caching and LastTD 2015-05-27 18:03:16 +02:00
Marek Kotewicz c31f8e2bd7 compile solidity contracts with std library 2015-05-24 19:12:18 +02:00
zelig b0ae84aa0d multiple contract source for solidity compiler: returns contract array if multiple contracts. fixes #1023 2015-05-20 04:11:48 +01:00
zelig 4201a18117 remove solc flair 2015-05-20 02:47:13 +01:00
zelig f9abcee0f9 fix solc tests unskip 2015-05-20 02:47:13 +01:00
obscuren 79fa05867f xeth: set balance max balance to from in call. Closes #951 2015-05-16 00:03:08 +02:00
Gustav Simonsson e389585f1f Change default keystore dir 2015-05-12 18:33:04 +02:00
Gustav Simonsson 8001e48115 Fix natspec test (again x2) types 2015-05-12 17:22:17 +02:00
Gustav Simonsson fe9e95a3fd Fix natspec e2e test accounts type (again) 2015-05-12 17:22:17 +02:00
Jeffrey Wilcke 58d6ec689f Merge pull request #933 from bas-vk/issue928
replaced path with platform aware filepath module
2015-05-12 08:23:46 -07:00
obscuren dca290d525 sol: skipped source checking step 2015-05-12 16:19:14 +02:00
Bas van Kervel b79dd188d9 replaced several path.* with filepath.* which is platform independent 2015-05-12 14:24:11 +02:00
zelig 03bf902b92 compiler, cli/js: fix solidity compiler tests failing when a different version of solc installed 2015-05-12 12:36:54 +02:00
obscuren a2919b5e17 core, eth, miner: improved tx removal & fatal error on db sync err
* core: Added GasPriceChange event
* eth: When one of the DB flush methods error a fatal error log message
  is given. Hopefully this will prevent corrupted databases from
  occuring.
* miner: remove transactions with low gas price. Closes #906, #903
2015-05-11 11:39:33 +02:00
zelig 009b221692 solidity compiler and contract metadocs integration
* common/compiler: solidity compiler + tests
* rpc: eth_compilers, eth_compileSolidity + tests
* fix natspec test using keystore API, notice exp dynamically changes addr, cleanup
* resolver implements registrars and needs to create reg contract (temp)
* xeth: solidity compiler. expose getter Solc() and paths setter SetSolc(solcPath)
* ethereumApi: implement compiler related RPC calls using XEth - json struct tests
* admin: make use of XEth.SetSolc to allow runtime setting of compiler paths
* cli: command line flags solc to set custom solc bin path
* js admin api with new features debug and contractInfo modules
* wiki is the doc https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions
2015-05-07 12:58:21 +02:00
Jeffrey Wilcke 24d44f35f2 Merge pull request #791 from fjl/discover-sha3-distance
p2p/discover: sha3-based node distance
2015-05-06 13:48:57 -07:00
obscuren 03bb88dec0 xeth, rpc: added nonce setting through RPC and xeth transact 2015-05-06 18:30:55 +02:00
Felix Lange d457a1187d common: add Hash.Generate 2015-04-30 15:02:23 +02:00
Taylor Gerring f8cdff9a5d Remove path separator literals 2015-04-29 00:30:25 -05:00
obscuren 3bb6da9bd3 natspec: disabled natspec test 2015-04-24 17:44:22 +02:00
Bas van Kervel c273ed7d82 Moved leveldb update loop to eth/backend
change order of block insert and update LastBlock

bugfix, wrong hash stored in blockDb
2015-04-23 17:58:58 +02:00
obscuren d7bab21681 natspec: fixed test to work with new queued transactions 2015-04-23 11:50:12 +02:00
Felix Lange 9d152d6191 common: delete BinaryLength
The test is failing the 32bit build and the function
is not used anywhere.
2015-04-22 12:31:19 +02:00
zelig 093a9106b0 contract addresses include hex prefix
- simplify resolver and tests
- added missing test for KeyToUrl
- fix notice error message and its test with !%x(MISSING)
- natspec test: insertTx modified - does not prepend 0x to contract address
- disable networking in e2e test
2015-04-19 21:09:30 +01:00
zelig 71c974f3eb fix end to end test import cycle 2015-04-19 20:57:50 +01:00
zsfelfoldi e9874cbcc1 fixed resolver test 2015-04-19 20:57:50 +01:00
zsfelfoldi 929428d602 URLhint support for URLs longer than 32 bytes 2015-04-19 20:57:49 +01:00
zsfelfoldi b6fe9e0c83 added missing source file 2015-04-19 20:57:49 +01:00
zsfelfoldi d8fb834386 test account is no longer permanently in genesis block, only put there when testing 2015-04-19 20:57:49 +01:00
zsfelfoldi dba2367157 NatSpec contracts are now not in the genesis block but added by the test 2015-04-19 20:57:49 +01:00
zsfelfoldi f255336c2c utils linked to natspec notice eval, test notice now using utils.toHex() 2015-04-19 20:57:49 +01:00
zsfelfoldi c4b7d4d3f7 NatSpec cli option, resolver tests passing 2015-04-19 20:57:49 +01:00
zsfelfoldi b46e152171 default fallback NatSpec messages 2015-04-19 20:57:49 +01:00
zsfelfoldi 8e6a068d2d natspec test bugfix 2015-04-19 20:57:49 +01:00
zsfelfoldi b635cad9fe NatSpec passing end to end test 2015-04-19 20:57:49 +01:00
zsfelfoldi 94489b2269 s 2015-04-19 20:57:49 +01:00
zsfelfoldi e2d333d209 NatSpec contracts in genesis block, end to end test (unfinished) 2015-04-19 20:57:49 +01:00
zelig ac0e5e8b6d resolver tests
- add resolver tests and fix resolver to pass
- statereg constructor fixed
- comments added to natspec plus docserver integration for natspec userdoc fetching
2015-04-19 20:57:49 +01:00
zelig 3a540425a3 reorg:
- statereg methods move to natspec/resolver/docserver
- fix failing test on invalid js input
2015-04-19 20:57:48 +01:00
zelig 5b0ea1044a add docserver using net/http Transport/Roundtrip 2015-04-19 20:57:48 +01:00
zsfelfoldi 3136bae4a5 NatSpec, URL register storage retrieval
fixed 2/3 tests
2015-04-19 20:57:48 +01:00
zelig 97a602864a add common/resolver skeleton 2015-04-19 20:57:48 +01:00
zelig d0b3536593 new natspec
- constructor takes abidoc, userdoc
- json parsing of userdoc
- method found by abi data
- notice found from method
2015-04-19 20:57:48 +01:00
obscuren 52c874a609 common: Added debug reporter
NOTE: For known, non-consensus, hard to reproduce bugs consider the
following method `common.Report("extra", stuff, "you need logged")` will
give you a stack trace and a friendly request to submit it as an issue
on our issue tracker.
2015-04-15 16:39:44 +02:00
obscuren 7f32a08b60 Queued level db writes and batch writes. Closes #647 2015-04-07 22:19:01 +02:00
Taylor Gerring aa71e27a3b Detect non-valid strings for blockheight 2015-04-02 15:53:04 +02:00
Taylor Gerring ac03ff6f05 Fix block size output #613 2015-04-01 15:44:09 +02:00
zelig 4ec38e3932 common: remove WriteFile and ReadAllFile (use ioutil instead) 2015-03-26 19:00:18 +00:00
zelig 53af810851 natspec: minor fix in test 2015-03-23 17:36:04 +00:00
Jeffrey Wilcke 8affdf96e2 Merge pull request #547 from tgerring/commoncleanup
common/common.go cleanup
2015-03-22 21:46:46 +01:00
Jeffrey Wilcke 3133372a6a Merge pull request #536 from zsfelfoldi/develop
using robertkrimen/otto, godeps updated
2015-03-22 21:45:56 +01:00
Taylor Gerring bf73f02fe0 Remove common.go 2015-03-22 13:48:07 +01:00
Taylor Gerring 360c66c65d Move Big* vars to big.go 2015-03-22 13:46:38 +01:00
Taylor Gerring 2477d10aa0 Move MakeName to path 2015-03-22 13:46:21 +01:00
Taylor Gerring c0741edc34 Move OS-specific funcs to path.go 2015-03-22 13:44:17 +01:00
Taylor Gerring 82a41a198e Move CurrencyToString to size 2015-03-22 13:35:13 +01:00
Taylor Gerring 08b21acff1 Move ToHex/FromHex into bytes 2015-03-22 13:32:52 +01:00
Felix Lange 28ddc16a9b Merge remote-tracking branch 'ethereum/conversion' into conversion 2015-03-20 14:01:35 +01:00
Felix Lange c161d73d42 common: drop accessors for Value.Val
I don't see why we would need two different accessors for a public field.
2015-03-20 14:00:26 +01:00
Felix Lange dcb9614dfe common: drop unused kind field from Value
This makes Value 24 bytes smaller on 64bit systems.
2015-03-20 14:00:26 +01:00
Felix Lange f7d1d601e9 common: make Value encodable with package rlp
Value.{Encode,Decode} are gone. It implements rlp.Encoder and rlp.Decoder
instead, so Value can be decoded into directly.
2015-03-20 14:00:26 +01:00
zsfelfoldi 8324b683b4 using robertkrimen/otto, godeps updated 2015-03-20 13:22:01 +01:00
obscuren 62236dd95e copy over loop 2015-03-19 23:20:41 +01:00
obscuren df5901fdc5 Removed more casts 2015-03-19 22:45:03 +01:00
obscuren f9a6038f5b merge 2015-03-18 18:23:37 +01:00
obscuren 48dd601de0 prep template for fixed size hashes 2015-03-18 14:15:58 +01:00
obscuren cd52ef315c Added Hex methods 2015-03-18 11:44:17 +01:00
obscuren 0fa7859b94 Fixed VM & Tests w/ conversion 2015-03-17 13:24:25 +01:00
obscuren ff55c6f5ba Merge branch 'develop' into conversion
Conflicts:
	common/types.go
2015-03-17 13:09:22 +01:00
obscuren 843db4978e updated blockpool 2015-03-16 23:10:26 +01:00
obscuren 91b0b14845 converted vm 2015-03-16 18:42:18 +01:00
obscuren e620bde405 conversion state 2015-03-16 17:09:08 +01:00
Maran 7330c97b5b DRY up the use of toHex in the project and move it to common 2015-03-16 16:56:11 +01:00
obscuren 76f215b0fe Getters shouldn't need to be pointer receiver 2015-03-16 16:44:27 +01:00
obscuren d338650089 compilable trie (tests fail) 2015-03-16 16:28:16 +01:00
obscuren 20b7162a62 Added functions to Hash & Address
* Set, SetString, SetBytes
* StringTo*, BytesTo*
2015-03-16 13:23:06 +01:00
obscuren dc864ee3a5 Added ToString methods 2015-03-16 12:20:17 +01:00
obscuren 3cf51d5479 tmp 2015-03-16 12:03:52 +01:00
obscuren f486c0ae56 new type + additional methods 2015-03-16 11:59:52 +01:00
obscuren b523441361 Moved ethutil => common 2015-03-16 11:27:38 +01:00