Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/PHPCSStandards/PHPCSExtra

A collection of code standards for use with PHP_CodeSniffer
https://github.com/PHPCSStandards/PHPCSExtra

Universal/KeywordSpacing: add some tests for unfixable errors

... where there is a comment between the keyword and the previous/next relevant token.

647eb222613e8bf5e7bf8ad0fda2f03aaddc71eb authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #247 from PHPCSStandards/feature/new-usestatements-keywordspacing-sniff

:sparkles: New `Universal.UseStatements.KeywordSpacing` sniff

adf5c0f56236017fb66d429d1ef94d661b7367a3 authored over 1 year ago by Juliette <[email protected]>
:sparkles: New `Universal.UseStatements.KeywordSpacing` sniff

New sniff to enforce the use of a single space after the `use`, `function`, `const` keywords and...

4fbf9d4addc322c813c913997084308b834c1785 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #246 from PHPCSStandards/universal/disallowmixedgroupuse-improve-error-message-grammar

Universal/DisallowMixedGroupUse: improve grammar of error message

fbd0b1fd4d46d711cc9df1365ccb7adcb6c1ad33 authored over 1 year ago by Juliette <[email protected]>
Universal/DisallowMixedGroupUse: improve grammar of error message

Only mention the imported constructs found and use correct singular/plural phrasing.

3c592c5d2b977d8bb5b965ce2a1e89c3802754b9 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #245 from PHPCSStandards/universal/finalmethodsintraits-change-property-to-errorcode

Universal/RequireFinalMethodsInTraits: change category + remove property, use errorcode instead

7b19d080ebafed5453ef01c7e083bb3b9aaec4b2 authored over 1 year ago by Juliette <[email protected]>
Universal/RequireFinalMethodsInTraits: remove property in favour of error code differentiation

This removes the `public` `$includeMagicMethods` property in favour of using an error code to al...

787f3f9d9c11550688d543f02f30b072cd5575ba authored over 1 year ago by jrfnl <[email protected]>
Universal/RequireFinalMethodsInTraits: move sniff to `FunctionDeclarations` category

... which feels more appropriate.

b15621230beecea197327f52e411b779766fd8fc authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #244 from PHPCSStandards/feature/new-no-useless-aliases-sniff

:sparkles: New `Universal.UseStatements.NoUselessAliases` sniff

1d700470c0c6f73d95f4ad0d5d3a50676fed3281 authored over 1 year ago by Juliette <[email protected]>
:sparkles: New `Universal.UseStatements.NoUselessAliases` sniff

New sniff to detect useless aliases in import use statements.

Aliasing something to the same na...

0d8aef917b6e00c8b4ba5910dff6b941bf8a761b authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #243 from PHPCSStandards/feature/new-final-methods-in-traits-sniff

:sparkles: New `Universal.OOStructures.RequireFinalMethodsInTraits` sniff

289f035e33d49e5e337086856068636a6cc44293 authored over 1 year ago by Juliette <[email protected]>
:sparkles: New `Universal.OOStructures.RequireFinalMethodsInTraits` sniff

New sniff to enforce non-private, non-abstract methods in traits to be declared as `final`.

Inc...

ab858ff9eaf5fd587f7920564251eb345b299d77 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #242 from PHPCSStandards/feature/new-noechosprintf-sniff

:sparkles: New `Universal.CodeAnalysis.NoEchoSprintf` sniff

e5e767fe8fcada7b58bd601d70f118a69a59475f authored over 1 year ago by Juliette <[email protected]>
:sparkles: New `Universal.CodeAnalysis.NoEchoSprintf` sniff

Detects use of the inefficient `echo [v]sprintf(...);` combi. Use `[v]printf()` instead.

Refs:
...

6ee98241cb45023d2981fad66a04af90d5c8ff93 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #241 from PHPCSStandards/feature/new-no-mixed-group-use-statements-sniff

:sparkles: New `Universal.UseStatements.DisallowMixedGroupUse` sniff

6c56daadde5a0a0687b55de76b26c6f6aea50daf authored over 1 year ago by Juliette <[email protected]>
:sparkles: New `Universal.UseStatements.DisallowMixedGroupUse` sniff

New sniff to disallow group use statements which combine imports for namespace/OO, functions and...

94da037a541cba2903e314a3b92e0ef58fb81341 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #240 from PHPCSStandards/feature/192-new-nolongclosures-sniff

:sparkles: New `Universal.FunctionDeclarations.NoLongClosures` sniff

5bf5c3b5c49ce08da88e1fe3613dcc8708c8aeae authored over 1 year ago by Juliette <[email protected]>
:sparkles: New `Universal.FunctionDeclarations.NoLongClosures` sniff

New sniff to check for "long" closures and recommend using named functions instead.

The sniff i...

104aec2afaf9a5d92905c6bccd2884c3551fb3bf authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #239 from PHPCSStandards/develop

Release PHPCSExtra 1.0.4

029af41e270ae73f10c0e9a1ce376b12da4e4810 authored over 1 year ago by Juliette <[email protected]>
Merge pull request #236 from PHPCSStandards/feature/changelog-1.0.4

Changelog for PHPCSExtra 1.0.4

c8ba5b37f9a214c4ee6db88b469cf1d0cee80054 authored over 1 year ago by Juliette <[email protected]>
Changelog for PHPCSExtra 1.0.4

0837f100b0f2b501b2905bc284941b9df1790f19 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #237 from PHPCSStandards/feature/update-composer-version-constraints

Composer: update version constraints

3955b6a0c7ec99021c007dbf9d5c1cd57cfad768 authored over 1 year ago by Juliette <[email protected]>
Composer: update version constraints

... of various dependencies.

Refs:
* https://github.com/PHPCSStandards/PHPCSUtils/releases
* ht...

c6330968e348de4c003da9ebb82ed1cb4bbda3a5 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #238 from PHPCSStandards/feature/ghactions-test-tweaks

GH Actions: run tests against lowest supported PHPCSUtils

ef8a70b9f5d59b21236c0765b17892f9c40884cd authored over 1 year ago by Juliette <[email protected]>
GH Actions: run tests against lowest supported PHPCSUtils

... in the same builds as "lowest supported PHPCS".

02cfb7db48f2cecc0bff93706eb5d15164158fbb authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #235 from PHPCSStandards/feature/remarklint-ignore-release-compare-link

Remark lint: ignore version release compare links

0e6d22aa742a77e601d90300c66057a2d9dc2da9 authored over 1 year ago by Juliette <[email protected]>
Remark lint: ignore version release compare links

... as those won't work until a release has been tagged and cause release PR builds to fail.

35893f20c9d0d23599fdd2077a7aff672dfc8143 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #234 from PHPCSStandards/feature/minor-cs-tweaks

CS: minor tweaks

055056c60ba123dc7e868397135f134affff88f6 authored over 1 year ago by Juliette <[email protected]>
CS: minor tweaks

e401c6ffe735472e90503e279a57bf99a3d4db10 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #230 from PHPCSStandards/feature/partial-revert-remark-fix

GH Actions: tweaks for the markdown QA check

056ac4d6ba120e4fa905b7fe43f098dfb21b812d authored over 1 year ago by Juliette <[email protected]>
Merge pull request #229 from PHPCSStandards/feature/add-security-file

Add `security.md` file

abec86ea71ef1afb3c66048a3a185883d8edecc9 authored over 1 year ago by Juliette <[email protected]>
GH Actions: tweaks for the markdown QA check

Looks like the `remark-lint` project has released a new version fixing the bug causing the faili...

7fca5c84aed9e8a758f232e321c1f9f27509db54 authored over 1 year ago by jrfnl <[email protected]>
Add `security.md` file

... containing information about how to report security issues and what versions of PHPCompatibi...

2cd1fa45e33efa5685c0fd52b5044ffac224910c authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #228 from PHPCSStandards/feature/remark-fix-build

GH Actions: prevent failing build

410c1355284b6e24b51e2f3babe05873ee3b44f8 authored over 1 year ago by Juliette <[email protected]>
GH Actions: prevent failing build

Somewhere in the Remark toolchain something has changed which means that it now throws warnings ...

a6133cdcbd61afd804356a3c2416cb5375fe4d4f authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #227 from PHPCSStandards/feature/ghactions-use-coveralls-token

Coveralls: use Coveralls specific token

b62cdf02730515ff7503f1a42af53354be5b1582 authored over 1 year ago by Juliette <[email protected]>
Coveralls: use Coveralls specific token

Coveralls prefers for repos to be identified with the Coveralls specific token they provide. Whi...

7072b3810063baed3cdb1ca8077d42fcce25ec18 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #226 from PHPCSStandards/universal/lowercaseclassresolutionkeyword-fix-bug-with-method-names

Universal/LowercaseClassResolutionKeyword: bug fix for functions called "class"

e46d5072b53d130316ccd94c2954a1b96fc1a941 authored over 1 year ago by Juliette <[email protected]>
Merge pull request #224 from PHPCSStandards/feature/readme-fix-link

README/CHANGELOG: use language agnostic link

2ddc30b440d7b03193e5fa4e9fbae533ece74ffa authored over 1 year ago by Juliette <[email protected]>
Universal/LowercaseClassResolutionKeyword: bug fix for functions called "class"

Since PHP 7.0, `class` can be used as a method name. The sniff did not take this into account co...

6127b3570fb301b247530c43e0c12d4a4b95e1eb authored over 1 year ago by jrfnl <[email protected]>
README/CHANGELOG: use language agnostic link

8ba642ca89dad2fe26cc45e48261aa293c9b3689 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #225 from PHPCSStandards/feature/ghactions-run-basics-always

GH Actions; tweak related to remark job

089f49c348175ccd6f9eb27dc2a8eeebf68874fd authored over 1 year ago by Juliette <[email protected]>
GH Actions: run `basics` always

As the `basics` workflow includes markdown related jobs, the `paths-ignore` for markdown files o...

d369c50506920a77f9570bd9353ff0494aa51cf0 authored over 1 year ago by jrfnl <[email protected]>
RemarkLint: switch plugin

The [`remark-lint-are-links-valid-alive`](https://github.com/wemake-services/remark-lint-are-lin...

8808b708e6e2946e5eacbbb53bcfef510e152283 authored over 1 year ago by jrfnl <[email protected]>
Merge pull request #222 from PHPCSStandards/feature/release-checklist-tweak

Release checklist: minor tweak

d24e897319108cdbbf42d247e0c17a095c935f20 authored almost 2 years ago by Juliette <[email protected]>
Release checklist: minor tweak

8d8c02718ac75ba3a106a15abd2948864ef7a432 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #221 from PHPCSStandards/develop

Release PHPCSExtra 1.0.3

7029c051cd310e2e17c6caea3429bfbe290c41ae authored almost 2 years ago by Juliette <[email protected]>
Merge pull request #220 from PHPCSStandards/feature/changelog-1.0.3

Changelog for PHPCSExtra 1.0.3

cdf5de5a26bdf86df5046c1d8013c1cdf36b8c58 authored almost 2 years ago by Juliette <[email protected]>
Changelog for PHPCSExtra 1.0.3

d7e490bfbc145982571198ad1ae43810a604e9ec authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #219 from PHPCSStandards/universal/disallow-requireanonclassparentheses-add-tests-with-attributes

Univeral/[Disallow|Require]AnonClassParentheses: add tests with anon classes with attributes

d2adbf92ee74aed1225f88184a89e609d8dda1e3 authored almost 2 years ago by Juliette <[email protected]>
Univeral/[Disallow|Require]AnonClassParentheses: add tests with anon classes with attributes

f7ad0f381829510455f4e861a4922dfb8dc989a1 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #218 from PHPCSStandards/feature/ghactions-minor-tweaks

GH Actions: improve some step descriptions

1f438a488066f13cae67c46ac229fd4419a1bda4 authored almost 2 years ago by Juliette <[email protected]>
GH Actions: improve some step descriptions

d3491d9dd3c8c4298f30e379db826228c1fcdcfd authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #217 from PHPCSStandards/universal/disallowinlinetabs-add-extra-tests

Universal/DisallowInlineTabs: add extra tests + remove redundancy

75c6ef9cdacc99f638f5277faed64782aee4f3b0 authored almost 2 years ago by Juliette <[email protected]>
Universal/DisallowInlineTabs: remove some redundant code

The `'orig_content'` key only gets set when there are tabs in the token content, so no need for ...

de1e48749645af3251cf621affaa3378556b6057 authored almost 2 years ago by jrfnl <[email protected]>
Universal/DisallowInlineTabs: add extra tests + fix test tab handling

* Add a space-based test case file which shouldn't yield any errors or warnings at all.
* Make s...

19bc00367d0cd3e524e5f238950c15bf154278ee authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #216 from PHPCSStandards/universal/disallowinlinetabs-improve-performance

Universal/DisallowInlineTabs: improve sniff performance

5226c513f9ce260263d986cbc630ba183000616e authored almost 2 years ago by Juliette <[email protected]>
Universal/DisallowInlineTabs: improve sniff performance

This seemingly small change makes a huge difference in performance for this sniff.

On a run of ...

7d1521855db90b84cffe158714fb81dc53b3c605 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #214 from PHPCSStandards/feature/ghactions-various-tweaks

GH Actions: various tweaks

398cb7aed793fb0476920d5870c9eb5af19cb8ab authored almost 2 years ago by Juliette <[email protected]>
GH Actions: tweak the way the PHPCS versions are set

As things were, whenever the minimum PHPCS version would be changed, the branch protection setti...

6dedf633ae4eac7b03055706badc5c8fa70a87ac authored almost 2 years ago by jrfnl <[email protected]>
GH Actions: minor tweak to composer install

Since Composer 2.2, we can be more specific about which platform requirements should be ignored....

2a1c569eec32855aef8c322a536a5f131bc7ec0f authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #215 from PHPCSStandards/feature/readme-fix-license-link

README: fix license link

59818ac3230507a849515e97fb6e5ab9248f39c2 authored almost 2 years ago by Juliette <[email protected]>
README: fix license link

To go to the local version of the license instead of an external website.

1ff6b425113c2b2c1b107444a2800c712bda2261 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #213 from PHPCSStandards/feature/modernize-dirname-simplify-attributes-fix

Modernize.FunctionCalls.Dirname: use PHPCSUtils for attributes fix

87e5c0abe04381910b702d3484e462c6098c7512 authored almost 2 years ago by Juliette <[email protected]>
Modernize.FunctionCalls.Dirname: use PHPCSUtils for attributes fix

52eb4cd581941dafe3dcb5aab912b27b966f5f3c authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #212 from PHPCSStandards/feature/ghactions-various-minor-tweaks

GH Actions: various minor tweaks

852240b3775e0051ba8c2672eba4cfcf0813b934 authored almost 2 years ago by Juliette <[email protected]>
GH Actions: fix CI

Grrr....

When PHPUnit has been installed on a high PHP version, some of the dependencies of PHP...

54faa035edfdff69a2b967b822306f0c772c6414 authored almost 2 years ago by jrfnl <[email protected]>
GH Actions: used a named branch for coverallsapp

The `coverallsapp/github-action` action runner has (finally) created a named branch for the 1.x ...

d883bc19958bf0d011ff4e1de79d6a3d08ab967f authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #211 from PHPCSStandards/feature/modernize-dirname-prevent-false-positive-on-attributes

Modernize.FunctionCalls.Dirname: prevent false positives on PHP 8.0+ attributes

643b29477b26326d833ddc9d9f9e47f625dfb1b6 authored almost 2 years ago by Juliette <[email protected]>
Modernize.FunctionCalls.Dirname: prevent false positives on PHP 8.0+ attributes

`T_STRING` tokens in PHP 8.0+ attributes are either class names or possibly constant names (as a...

0317f8d7e86ca64875480b095ddcfa3f011297a9 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #210 from PHPCSStandards/develop

Release PHPCSExtra 1.0.2

a077c4ad65b906768ed2f820701958b57f605be0 authored almost 2 years ago by Juliette <[email protected]>
Merge pull request #209 from PHPCSStandards/feature/changelog-1.0.2

Changelog and readme updates for PHPCSExtra 1.0.2

b36dd99efe58300307cb39d1fe5b1e562be07a39 authored almost 2 years ago by Juliette <[email protected]>
Changelog and readme updates for PHPCSExtra 1.0.2

18b236151f208fe47e77133a998b4f896514eae8 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #208 from PHPCSStandards/universal/207-constructordestructorreturn

ConstructorDestructorReturn: respect a potentially set `php_version` config value

39ac431d8f33cd07679db9227aa771e578bd25e9 authored almost 2 years ago by Juliette <[email protected]>
ConstructorDestructorReturn: respect a potentially set `php_version` config value

PHP4-style constructors - methods with the same name as the class - are no longer regarded as co...

eff67eceb902fd186aabb06cc4765e744a31ba72 authored almost 2 years ago by jrfnl <[email protected]>
ConstructorDestructorReturn: allow for multiple test files

fa57a475a2b772818a8c5631254ee76c2e000180 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #205 from PHPCSStandards/develop

Release PHPCSExtra 1.0.1

0f55c12dc6a81c7728794b01a4aea44f11c83991 authored almost 2 years ago by Juliette <[email protected]>
Merge pull request #204 from PHPCSStandards/feature/changelog-1.0.1

Changelog for PHPCSExtra 1.0.1

a1ff522af1ce83e25844184ceb1a26d5b97bd2aa authored almost 2 years ago by Juliette <[email protected]>
Changelog for PHPCSExtra 1.0.1

e1791d5f24a19ab68128b7bc10ac096558d74fa1 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #202 from PHPCSStandards/feature/201-constructordestructorreturn-bug-fix-nested-functions

Universal/ConstructorDestructorReturn: ignore nested functions/closures

936d574e171e1547ea771c0bfcb58563b36e1c4d authored almost 2 years ago by Juliette <[email protected]>
Merge pull request #203 from PHPCSStandards/feature/release-checklist-tweak

Release checklist: minor tweak

0aea1bd38f7ea1ec12de5fe3143c4fdc646b537d authored almost 2 years ago by Juliette <[email protected]>
Universal/ConstructorDestructorReturn: ignore nested functions/closures

Closures and named (global) functions can be declared _within_ a constructor/destructor method a...

a1628fc7dc124385bf500158909f3797df806b06 authored almost 2 years ago by jrfnl <[email protected]>
Release checklist: minor tweak

e0034567ac320d6501bb9930dc570a45f5d41b1d authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #200 from PHPCSStandards/develop

Release PHPCSExtra 1.0.0

5ab4e9ea784af5690f55a9dbf546e4af0f20cf28 authored almost 2 years ago by Juliette <[email protected]>
Merge pull request #197 from PHPCSStandards/feature/changelog-1.0.0

Changelog for PHPCSExtra 1.0.0

fcd8cb54d17219dd7dc5f5b6667292c26c307b91 authored almost 2 years ago by Juliette <[email protected]>
Changelog for PHPCSExtra 1.0.0

c7c004b200a86578107619102c2d25a8904b932c authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #199 from PHPCSStandards/feature/add-release-checklist

Add release checklist

ecb1700018e1891fdca00b3b22cf6005400e7ac9 authored almost 2 years ago by Juliette <[email protected]>
Add release checklist

... for use in the release PRs to merge `develop` into `stable`.

edf9e072085c8e073d68006fcbca556f5a8eade9 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #198 from PHPCSStandards/feature/composer-remove-plugin

Composer: remove dependency on the Composer PHPCS plugin

fcff7af75e976f0590d94a216958da4a7a26621e authored almost 2 years ago by Juliette <[email protected]>
Composer: remove dependency on the Composer PHPCS plugin

... in favour of inheriting the dependency from PHPCSUtils.

be5b97290dc57765aff0073125d976df5590d549 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #196 from PHPCSStandards/feature/update-for-1.0-release-phpcsutils

Composer: update for PHPCSUtils 1.0.0

334e728fe12dc602374ccabe123dc21c9d3f9af3 authored almost 2 years ago by Juliette <[email protected]>
Composer: update for PHPCSUtils 1.0.0

PHPCSUtils 1.0.0 has been tagged & released. :tada:

This means that the `dev-develop` branch sh...

84e63ac53d8bf0158840a1083331e5168b641844 authored almost 2 years ago by jrfnl <[email protected]>
Merge pull request #194 from PHPCSStandards/universal/disallowshortlistsyntax-minor-simplification

Universal/DisallowShortListSyntax: minor simplification

0ce07ffe7b3832104a419f387402794873c40c3e authored about 2 years ago by Juliette <[email protected]>
Merge pull request #195 from PHPCSStandards/universal/class-modifierkeywords-simplify

Universal/Classes/ModifierKeywordOrder: defer to PHPCSUtils for class properties

5aef381b382162db66d83fe160538ad671d24ba8 authored about 2 years ago by Juliette <[email protected]>
Merge pull request #193 from PHPCSStandards/universal/constant-modifierkeywords-minor-tweak

Universal/Constants/ModifierKeywordOrder: defer to PHPCSUtils for modifier keywords

b81ea62c805068f72a50f33f6166479dceda6c1a authored about 2 years ago by Juliette <[email protected]>
Universal/Classes/ModifierKeywordOrder: defer to PHPCSUtils for class properties

PHPCSUtils 1.0.0-RC1 added the token pointers for the modifier keywords to the return value of t...

143a55fe2edf76051fd17ba09cdd10f1f91794dc authored about 2 years ago by jrfnl <[email protected]>
Universal/DisallowShortListSyntax: minor simplification

PHPCSUtils 1.0.0-rc1 introduces the `Collections::listOpenTokensBC()` token collection which can...

f714293943b9cf00afba8696a635ed940f6c3628 authored about 2 years ago by jrfnl <[email protected]>
Universal/Constants/ModifierKeywordOrder: defer to PHPCSUtils for modifier keywords

PHPCSUtils 1.0.0-RC1 introduces a new `Collections::constantModifierKeywords()` token array, so ...

46bbcb41eb3c59cb304d37efa5bbf258c7237272 authored about 2 years ago by jrfnl <[email protected]>
Merge pull request #189 from PHPCSStandards/feature/gitattributes-update

.gitattributes: update export-ignores

b00e49fe3a04eafe47016fb26779d8ea3267035c authored about 2 years ago by Juliette <[email protected]>
.gitattributes: update export-ignores

Follow up on 186 which added some new configuration files, but didn't export ignore them.

Inclu...

e44ac56c55879f9fa8e6d355d529d878c69f304e authored about 2 years ago by jrfnl <[email protected]>