Commit Graph

26677 Commits

Author SHA1 Message Date
Fabien Potencier ad7db01e1c Merge branch '3.0' into 3.1
* 3.0:
  Fix PHP 7.1 related failures
  [VarDumper] Fix for 7.1
  fixed CS
  Added class existence check if is_subclass_of() fails in compiler passes
  Fix the DBAL session handler version check for Postgresql
2016-07-19 12:45:57 +02:00
Fabien Potencier 89bb250b5c Merge branch '2.8' into 3.0
* 2.8:
  Fix PHP 7.1 related failures
  [VarDumper] Fix for 7.1
  fixed CS
  Added class existence check if is_subclass_of() fails in compiler passes
  Fix the DBAL session handler version check for Postgresql
2016-07-19 12:44:15 +02:00
Fabien Potencier 15ab32bf9b Merge branch '2.7' into 2.8
* 2.7:
  Fix PHP 7.1 related failures
  [VarDumper] Fix for 7.1
2016-07-19 12:40:24 +02:00
Fabien Potencier 37cd583e78 bug #19384 Fix PHP 7.1 related failures (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

Fix PHP 7.1 related failures

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

PHP 7.1 triggers notices on previously silent implicit type changes.

Commits
-------

07467ed Fix PHP 7.1 related failures
2016-07-19 12:36:45 +02:00
Nicolas Grekas 07467ed3a3 Fix PHP 7.1 related failures 2016-07-19 10:44:18 +02:00
Fabien Potencier 37b299bb3e bug #19379 [VarDumper] Fix for PHP 7.1 (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Fix for PHP 7.1

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19377
| License       | MIT
| Doc PR        | -

Tests fail on 7.1 otherwise

Commits
-------

d422939 [VarDumper] Fix for 7.1
2016-07-18 16:29:02 +02:00
Nicolas Grekas d422939f6c [VarDumper] Fix for 7.1 2016-07-18 14:55:17 +02:00
Fabien Potencier 00ab2d661f bug #19342 Added class existence check if is_subclass_of() fails in compiler passes (SCIF)
This PR was merged into the 2.8 branch.

Discussion
----------

Added class existence check if is_subclass_of() fails in compiler passes

| Q             | A
| ------------- | ---
| Branch?       | 2.8-3.1
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

If you create an event subscriber and make typo in file name it will cause next error:

```
  [InvalidArgumentException]
  Service "event.notification_subscriber" must implement interface "Symfony\Component\EventDispatcher\EventSubscriberInterface".
```

That's because of `is_subclass_of()` fails on class absentee. I made error message more clear.

Commits
-------

72db6e7 Added class existence check if is_subclass_of() fails in compiler passes
2016-07-18 13:36:17 +02:00
Christophe Coevoet 88aff45c4d Merge branch '2.7' into 2.8
* 2.7:
  fixed CS
  Fix the DBAL session handler version check for Postgresql
2016-07-18 11:48:43 +02:00
Fabien Potencier 1376e14e7e fixed CS 2016-07-18 11:42:57 +02:00
Fabien Potencier 28029a2ed1 bug #19369 Fix the DBAL session handler version check for Postgresql (stof)
This PR was merged into the 2.7 branch.

Discussion
----------

Fix the DBAL session handler version check for Postgresql

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

https://github.com/symfony/symfony/pull/19048 broken the DBAL session handler when using Postgresql by using method which does not exist on the main DBAL Connection class.

Commits
-------

e98c584 Fix the DBAL session handler version check for Postgresql
2016-07-18 11:41:50 +02:00
Alexander Zhuravlev 72db6e7068 Added class existence check if is_subclass_of() fails in compiler passes 2016-07-18 19:09:40 +12:00
Nicolas Grekas 17de127281 Merge branch '3.0' into 3.1
* 3.0:
  [VarDumper] Fix dumping jsons casted as arrays
  PassConfig::getMergePass is not an array
  Revert "bug #19114 [HttpKernel] Dont close the reponse stream in debug (nicolas-grekas)"
  Fix the retrieval of the last username when using forwarding
  [Yaml] Fix PHPDoc of the Yaml class
  [HttpFoundation] Add OPTIONS and TRACE to the list of safe methods
  Update getAbsoluteUri() for query string uris

Conflicts:
	src/Symfony/Component/Yaml/Yaml.php
2016-07-17 16:02:08 +02:00
Nicolas Grekas 8a2d5cd1df Merge branch '2.8' into 3.0
* 2.8:
  [VarDumper] Fix dumping jsons casted as arrays
  PassConfig::getMergePass is not an array
  Revert "bug #19114 [HttpKernel] Dont close the reponse stream in debug (nicolas-grekas)"
  Fix the retrieval of the last username when using forwarding
  [Yaml] Fix PHPDoc of the Yaml class
  [HttpFoundation] Add OPTIONS and TRACE to the list of safe methods
  Update getAbsoluteUri() for query string uris
2016-07-17 15:54:30 +02:00
Nicolas Grekas 7a57903fd8 Merge branch '2.7' into 2.8
* 2.7:
  [VarDumper] Fix dumping jsons casted as arrays
  PassConfig::getMergePass is not an array
  Revert "bug #19114 [HttpKernel] Dont close the reponse stream in debug (nicolas-grekas)"
  Fix the retrieval of the last username when using forwarding
  [Yaml] Fix PHPDoc of the Yaml class
  [HttpFoundation] Add OPTIONS and TRACE to the list of safe methods
  Update getAbsoluteUri() for query string uris
2016-07-17 11:06:15 +02:00
Nicolas Grekas 45907598bc bug #19368 [VarDumper] Fix dumping jsons casted as arrays (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Fix dumping jsons casted as arrays

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19356
| License       | MIT
| Doc PR        | -

Commits
-------

56549e7 [VarDumper] Fix dumping jsons casted as arrays
2016-07-17 11:05:05 +02:00
Nicolas Grekas 56549e7a70 [VarDumper] Fix dumping jsons casted as arrays 2016-07-16 15:16:34 +02:00
Christophe Coevoet e98c5841da Fix the DBAL session handler version check for Postgresql 2016-07-15 19:07:32 +02:00
Fabien Potencier d303b9dffe minor #19343 PassConfig::getMergePass is not an array (aschempp)
This PR was squashed before being merged into the 2.7 branch (closes #19343).

Discussion
----------

PassConfig::getMergePass is not an array

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Just a minor glitch my IDE noticed :-)

Commits
-------

edbefac PassConfig::getMergePass is not an array
2016-07-14 11:24:46 +02:00
Andreas Schempp edbefacdd1 PassConfig::getMergePass is not an array 2016-07-14 11:24:45 +02:00
Fabien Potencier 482e185daf Revert "bug #19114 [HttpKernel] Dont close the reponse stream in debug (nicolas-grekas)"
This reverts commit a0cdcb0ffb, reversing
changes made to 9c8a3e9563.
2016-07-13 12:53:11 +02:00
Fabien Potencier 30997a4005 bug #19334 [Security] Fix the retrieval of the last username when using forwarding (stof)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] Fix the retrieval of the last username when using forwarding

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

When using forwarding to render the login page (which is not the default), the info are stored in the subrequest attributes rather than the session. ``getLastAuthenticationError`` was handling this properly but ``getLastUsername`` was not checking the attributes.
This fixes it by checking the attributes (I'm checking them before the session, to be consistent with ``getLastAuthenticationError``)

Commits
-------

e041365 Fix the retrieval of the last username when using forwarding
2016-07-13 10:42:38 +02:00
Fabien Potencier cf691fb51f bug #19352 [Serializer] Include the format in the cache key (dunglas)
This PR was squashed before being merged into the 3.1 branch (closes #19352).

Discussion
----------

[Serializer] Include the format in the cache key

| Q             | A
| ------------- | ---
| Branch?       | 3.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Attributes to normalize can vary by format. For instance in API Platform normalized attributes aren't the same in JSON-LD (all attributes) and HAL (relations are not serialized in the document body).
This PR fixes that.

Commits
-------

282eb9c [Serializer] Include the format in the cache key
2016-07-13 10:40:10 +02:00
Kévin Dunglas 282eb9c410 [Serializer] Include the format in the cache key 2016-07-13 10:40:09 +02:00
Christophe Coevoet e04136524c Fix the retrieval of the last username when using forwarding 2016-07-11 11:55:50 +02:00
Fabien Potencier 414d9efd02 minor #19333 [DoctrineBridge] add missing error code (xabbuh)
This PR was merged into the 3.1 branch.

Discussion
----------

[DoctrineBridge] add missing error code

| Q             | A
| ------------- | ---
| Branch?       | 3.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

1ea90c3 [DoctrineBridge] add missing error code
2016-07-11 09:21:18 +02:00
Christian Flothmann 5922d715d8 minor #19327 [Yaml] Fix PHPDoc of the Yaml class (dunglas)
This PR was squashed before being merged into the 2.7 branch (closes #19327).

Discussion
----------

[Yaml] Fix PHPDoc of the Yaml class

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

The YAML dumper is able to serialize any PHP type, not just arrays.

Commits
-------

a3fd991 [Yaml] Fix PHPDoc of the Yaml class
2016-07-11 09:20:57 +02:00
Kévin Dunglas a3fd991c4b [Yaml] Fix PHPDoc of the Yaml class 2016-07-11 09:20:55 +02:00
Christian Flothmann 1ea90c3e14 [DoctrineBridge] add missing error code 2016-07-10 22:39:03 +02:00
Fabien Potencier 500c2cd694 bug #19321 [HttpFoundation] Add OPTIONS and TRACE to the list of safe methods (dunglas)
This PR was squashed before being merged into the 2.7 branch (closes #19321).

Discussion
----------

[HttpFoundation] Add OPTIONS and TRACE to the list of safe methods

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

According to [RFC 7231](https://tools.ietf.org/html/rfc7231#section-8.1.3) `OPTIONS` and `TRACE` are safe methods.

Commits
-------

1404607 [HttpFoundation] Add OPTIONS and TRACE to the list of safe methods
2016-07-10 11:40:50 +02:00
Kévin Dunglas 1404607072 [HttpFoundation] Add OPTIONS and TRACE to the list of safe methods 2016-07-10 11:40:48 +02:00
Fabien Potencier 8b6d74e1e7 bug #19317 [BrowserKit] Update Client::getAbsoluteUri() for query string only URIs (georaldc)
This PR was merged into the 2.7 branch.

Discussion
----------

[BrowserKit] Update Client::getAbsoluteUri() for query string only URIs

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19303
| License       | MIT
| Doc PR        | -

This PR allows BrowserKit to treat a value containing only query string parameters the same way anchor/hash values are treated when passed as a URI argument to the getAbsoluteUri() method. Helps when encountering sites that force a redirect with a location header value containing only a query string.

Commits
-------

965408f Update getAbsoluteUri() for query string uris
2016-07-10 11:39:24 +02:00
Nicolas Grekas f2599e4db2 Merge branch '3.0' into 3.1
* 3.0:
  [HttpKernel] fixed internal subrequests having an if-modified-since-header
  [Security] Fix deprecated usage of DigestAuthenticationEntryPoint::getKey() in DigestAuthenticationListener
  [Validator] Added additional MasterCard range to the CardSchemeValidator
  Make the exception message more clear.
  [Form] fixed bug - name in ButtonBuilder
  [DoctrineBridge] added missing error code for constraint.
  [ClassLoader] Fix declared classes being computed when not needed
  [varDumper] Fix missing usage of ExceptionCaster::$traceArgs
2016-07-10 10:05:47 +02:00
Nicolas Grekas 06879e982d Merge branch '2.8' into 3.0
* 2.8:
  [HttpKernel] fixed internal subrequests having an if-modified-since-header
  [Security] Fix deprecated usage of DigestAuthenticationEntryPoint::getKey() in DigestAuthenticationListener
  [Validator] Added additional MasterCard range to the CardSchemeValidator
  Make the exception message more clear.
  [Form] fixed bug - name in ButtonBuilder
  [DoctrineBridge] added missing error code for constraint.
  [ClassLoader] Fix declared classes being computed when not needed
  [varDumper] Fix missing usage of ExceptionCaster::$traceArgs

Conflicts:
	src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php
	src/Symfony/Component/ClassLoader/ClassCollectionLoader.php
2016-07-10 10:04:44 +02:00
Nicolas Grekas 1f2d6fb590 Merge branch '2.7' into 2.8
* 2.7:
  [HttpKernel] fixed internal subrequests having an if-modified-since-header
  [Validator] Added additional MasterCard range to the CardSchemeValidator
  Make the exception message more clear.
  [Form] fixed bug - name in ButtonBuilder
  [ClassLoader] Fix declared classes being computed when not needed
2016-07-10 10:00:51 +02:00
Nicolas Grekas 7c39ac1350 bug #19298 [ClassLoader] Fix declared classes being computed when not needed (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[ClassLoader] Fix declared classes being computed when not needed

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

d513eae [ClassLoader] Fix declared classes being computed when not needed
2016-07-10 09:26:25 +02:00
georaldc 965408fd2d Update getAbsoluteUri() for query string uris
Apply same rules to query string only URIs as what's being used for URIs containing only hash/anchor values
2016-07-08 11:46:34 -07:00
Fabien Potencier b7ed32a36b bug #19316 [Validator] Added additional MasterCard range to the CardSchemeValidator (Dennis Væversted)
This PR was merged into the 2.7 branch.

Discussion
----------

[Validator] Added additional MasterCard range to the CardSchemeValidator

From October 2016 MasterCard will introduce a new card range, 222100 through 272099.
See: https://www.mctestcards.com/ (click the help in top right)
This implements the additional regex for validation to succeed, and some additional unit tests for this new range.

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

4d68f56 [Validator] Added additional MasterCard range to the CardSchemeValidator
2016-07-08 12:15:13 +02:00
Fabien Potencier b795cfadcb bug #19290 [HttpKernel] fixed internal subrequests having an if-modified-since-header (MalteWunsch)
This PR was squashed before being merged into the 2.7 branch (closes #19290).

Discussion
----------

[HttpKernel] fixed internal subrequests having an if-modified-since-header

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

As the InlineFragmentRenderer has no access to a cached copy of a subrequest's target and hence couldn't handle a response with a HTTP status code of 304 (not modified), it makes no sense to send an if-not-modified-since header.

Commits
-------

e90038c [HttpKernel] fixed internal subrequests having an if-modified-since-header
2016-07-08 12:11:06 +02:00
Malte Wunsch e90038c52e [HttpKernel] fixed internal subrequests having an if-modified-since-header 2016-07-08 12:11:03 +02:00
Fabien Potencier 0bac08aad1 bug #19307 [Security] Fix deprecated usage of DigestAuthenticationEntryPoint::getKey() in DigestAuthenticationListener (Maxime STEINHAUSSER)
This PR was squashed before being merged into the 2.8 branch (closes #19307).

Discussion
----------

[Security] Fix deprecated usage of DigestAuthenticationEntryPoint::getKey() in DigestAuthenticationListener

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Fix the following deprecation triggered by Symfony when using the `http_digest` authentication:

<details>
 <summary>Symfony\Component\Security\Http\EntryPoint\DigestAuthenticationEntryPoint::getKey() is deprecated since version 2.8 and will be removed in 3.0. Use getSecret() instead. </summary>
> DigestAuthenticationEntryPoint::getKey() (called from DigestAuthenticationListener.php at line 81)
DigestAuthenticationListener::handle() (called from classes.php at line 2622)
Firewall::onKernelRequest()
call_user_func() (called from WrappedListener.php at line 61)
WrappedListener::__invoke()
call_user_func() (called from classes.php at line 1858)
EventDispatcher::doDispatch() (called from classes.php at line 1773)
EventDispatcher::dispatch() (called from TraceableEventDispatcher.php at line 140)
TraceableEventDispatcher::dispatch() (called from HttpKernel.php at line 125)
HttpKernel::handleRaw() (called from HttpKernel.php at line 64)
HttpKernel::handle() (called from ContainerAwareHttpKernel.php at line 69)
ContainerAwareHttpKernel::handle() (called from Kernel.php at line 193)
Kernel::handle() (called from app_dev.php at line 36)
</details>

Refs: #16493

Commits
-------

880a392 [Security] Fix deprecated usage of DigestAuthenticationEntryPoint::getKey() in DigestAuthenticationListener
2016-07-08 11:55:24 +02:00
Maxime STEINHAUSSER 880a392d37 [Security] Fix deprecated usage of DigestAuthenticationEntryPoint::getKey() in DigestAuthenticationListener 2016-07-08 11:55:21 +02:00
Dennis Væversted 4d68f56242 [Validator] Added additional MasterCard range to the CardSchemeValidator
From October 2016 MasterCard will introduce a new card range,
222100 through 272099.
See: https://www.mctestcards.com/ (click the help in top right)
Implements unit tests and validation for this new card range.
2016-07-08 11:49:25 +02:00
Fabien Potencier c4f28992b6 minor #19310 Make the exception message more clear. (Nyholm)
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes #19310).

Discussion
----------

Make the exception message more clear.

| Q             | A
| ------------- | ---
| Branch?       | "master"
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

A small change that makes the error message more clear. If your property is named "type", "value" or something similar it is not obvious that we refer to the property name.

See example: https://github.com/schmittjoh/JMSTranslationBundle/issues/373

Commits
-------

6344ccd Make the exception message more clear.
2016-07-08 08:55:07 +02:00
Tobias Nyholm 6344ccd7b1 Make the exception message more clear. 2016-07-08 08:55:07 +02:00
Fabien Potencier f8d3ef7bc4 bug #19309 [DoctrineBridge] added missing error code for constraint. (Koc)
This PR was merged into the 2.8 branch.

Discussion
----------

[DoctrineBridge] added missing error code for constraint.

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | wait for travis
| Fixed tickets | #15154
| License       | MIT
| Doc PR        | -

Commits
-------

32cb269 [DoctrineBridge] added missing error code for constraint.
2016-07-08 08:53:03 +02:00
Fabien Potencier 41d6758ee5 bug #19306 [Form] fixed bug - name in ButtonBuilder (cheprasov)
This PR was squashed before being merged into the 2.7 branch (closes #19306).

Discussion
----------

[Form] fixed bug - name in ButtonBuilder

| Q             | A
| ------------- | ---
| Branch?       |  2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? |no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

**Bug:**

For any scalar of name, expression `empty($name) && 0 != $name` is never true,
and as result - empty string ('') is allowed.

**Examples:**

```php
$name = ''; var_dump(empty($name) && 0 != $name); // false
$name = '0'; var_dump(empty($name) && 0 != $name); // false
$name = null; var_dump(empty($name) && 0 != $name); // false
$name = false; var_dump(empty($name) && 0 != $name); // false
$name = 0; var_dump(empty($name) && 0 != $name); // false
```

Commits
-------

f507023 [Form] fixed bug - name in ButtonBuilder
2016-07-08 08:48:29 +02:00
Alexander Cheprasov f507023e50 [Form] fixed bug - name in ButtonBuilder 2016-07-08 08:48:27 +02:00
Konstantin.Myakshin 32cb269614 [DoctrineBridge] added missing error code for constraint. 2016-07-07 18:14:45 +03:00
Nicolas Grekas 1f7083764a bug #19292 [varDumper] Fix missing usage of ExceptionCaster::$traceArgs (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[varDumper] Fix missing usage of ExceptionCaster::$traceArgs

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Used in 2.7 but lost in 2.8

Commits
-------

6c5237c [varDumper] Fix missing usage of ExceptionCaster::$traceArgs
2016-07-06 11:25:47 +02:00