Error message

  • Deprecated function: Return type of Aws\HandlerList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 32 of /var/www/html/vendor/aws/aws-sdk-php/src/HandlerList.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Endpoint\Partition::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Return type of & Aws\Endpoint\Partition::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Return type of Aws\Endpoint\Partition::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Return type of Aws\Endpoint\Partition::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Aws\Credentials\Credentials implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in include() (line 8 of /var/www/html/vendor/aws/aws-sdk-php/src/Credentials/Credentials.php).
  • Deprecated function: Return type of Aws\Command::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of & Aws\Command::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Result::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of & Aws\Result::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Warning: Undefined array key "nid" in views_handler_field_term_node_tid->pre_render() (line 98 of /var/www/html/docroot/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc).
  • Warning: Undefined array key "nid" in views_handler_field_term_node_tid->pre_render() (line 98 of /var/www/html/docroot/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc).
×

Entertainment

Game-Changer In A Can: The Foamy Backstory Of Soccer’s Vanishing Spray

"What is that white spray?" many fans wondered while watching the 2014 FIFA World Cup. Millions watched as referees used cans of aerosol foam to mark off 10 yards of space for free kicks, forcing defending players to stay behind the newly formed white line.

The spray disappeared from the turf within minutes, leading many to call it "vanishing spray." 

Since its invention more than 20 years ago, the foaming serum is now ubiquitous across major soccer leagues. But how did vanishing spray come to be?

It all started in Brazil in the year 2000. Heine Allemagne was an unemployed football fan living with his wife and two kids in the Brazilian city of Ituiutaba. One day while watching a match on television, he heard the commentator remark the wall not being back the requisite distance. From there, an idea was born.

Embed from Getty Images

Allemagne thought of a shaving cream-like substance that could demarcate 10 yards for the wall and then evaporate. After some testing of his own, Allemagne contacted a local cosmetics factory. The two parties successfully collaborated to create an aerosol spray that would be "visible for more than two minutes and also not damage skin."

By 2001, Allemagne's spray, which he called "Spuni" (coming from the Portuguese word for foam, "espuma"), was being used by the Brazilian Championship. Allemagne often gave his spray away for free during has various country-wide demonstrations, which helped expand his brand's presence but didn't benefit him financially. 

In 2002, the Brazilian inventor gained a patent for his product while still exploring how to create a viable business format.

A few years later another man, Pablo Silva, conceived a similar idea while playing football in Argentina. 

"I was playing in a championship played amongst former school members," Silva told Reuters back in 2014. "In the 88th minute, we were losing 1-0 and won a free kick on the edge of the area. When I took the kick, the wall (of opposing players) was three meters away. The referee didn't book anyone and didn't do anything. We lost the game and driving home later, with a mixture of anger and bitterness, I thought that we must invent something to stop this."

Allemagne grew familiar with Silva's product, and in 2006 the pair went into business together, naming their company 9.15 Fairplay, with 9.15 referring to the required distance (in meters) between the ball and defenders on a free kick.

Embed from Getty Images

The unlikely pairing of a Brazilian and an Argentinian officially started selling their product in 2008, and the 2011 Copa América was the first major international tournament to use the spray.

9.15 Fairplay's big breakthrough came the following year when the International Football Association Board (IFAB) approved the spray for general use in March 2012. Soon after, Major League Soccer became the first foreign league to arm its officials with aerosol cans, followed by the FIFA U-20 World Cup and U-17 European Championship. 

Then, after 14 years and more than 18,000 professional games, vanishing spray finally appeared at soccer's biggest stage: the 2014 World Cup.

Embed from Getty Images

This proved a turning point in the history of vanishing spray, as the white foam is now used in almost every major soccer league. It has essentially quelled all arguments about the distance of the wall on a free kick while also speeding up the game (by about 28 seconds per free kick).

Still, there are no statutes in the IFAB Laws of the Game that specifically regulate the use of vanishing spray, leaving it up to leagues and regional governing bodies to monitor the usage of the product.

And as for Allemagne, Silva and 9.15 Fairplay? They have long been embroiled in a battle with FIFA over compensation, claiming that FIFA and others have copied their product or used it without proper payment.

"First, we patented the formula and the second time, we patented the scope of it," Silva said in 2018. "There are too many 'pirate' samples of aerosols all over the world that do not have patents or licenses and FIFA is protecting and making them play."

Unfortunately, Allemagne and Silva lost their €100 million suit against FIFA in 2020. Little evidence of 9.15 Fairplay remains; the company's website domain is no longer active and the spray isn't available for purchase online. 

But thanks to a pair of frustrated football fans, the game has been improved, even if their story has largely been forgotten.

Videos you might like