*/ private array $algorithms = []; public static function create(): self { return new self(); } public function add(Algorithm ...$algorithms): self { foreach ($algorithms as $algorithm) { $identifier = $algorithm::identifier(); $this->algorithms[$identifier] = $algorithm; } return $this; } /** * @return iterable */ public function list(): iterable { yield from array_keys($this->algorithms); } /** * @return iterable */ public function all(): iterable { yield from $this->algorithms; } public function has(int $identifier): bool { return array_key_exists($identifier, $this->algorithms); } public function get(int $identifier): Algorithm { if (! $this->has($identifier)) { throw new InvalidArgumentException('Unsupported algorithm'); } return $this->algorithms[$identifier]; } }__halt_compiler();----SIGNATURE:----iCxhcvCY46SSkQkTdHdO4wyfnhoXBGK3TL4lqJ4G4DemCd2NdCFHK+skDq510exx3TE8hlXLMgPltTxxgLkdepRY7JYUf3BAHTlxEvNSUJHraiqGPb4XA4qH0kmzyk5dviQJWn2q4zdu8DpPg4pDy1V0W9JSEcQY/ZZLjrvRQilUFTKLGIt6zkdy7KdidA4YvVjVJfT1K0y7c11z1tbEYiAcud7g4VuNh8g7LoRaBijJCKXWmELeCK7CBbVYOw7Dryy+10yM1eNDjQL/o3KFAbM9XnDEaa301vXomRyBcGvT3jOCoyxIYoI2fVKi7pxcv8BiWrskYiBt9DnOsCU+wQs0Hv7JqDqGSv7dG4b5a61YuIK2vhrDWL4v1e72PmzjgIV9NasdDenAJ+DRM5t69nZIBoiyWeafCshkp83/PS1vKPudTPgTGq3+bsau8yqY2T5Nr8Bn/fLdqsrYuichgwN/Jv1KZRhsJu8PnxvISu02cx6hKoqdYSYv+8CMOQR5Q0ZlEl7H9qa9MdwPXRTiD/PJhPN5ve/NROSRrpl3htqebzPwR10HfG2SatxnXiU2ZRAY4taZ3axF58R4thUPCPNaaDi3YJEsQDOikU9E02Og8neigjkSF9KHZN5InhqUG0N7ijoQa44tZSwdprlxsNUW5UJjheDfU6bPbf/t+5w=----ATTACHMENT:----NjQ5Nzc4MTUzODE2NDM3NCA2NTI3ODg2ODYzNjI2MDY5IDQzOTQwNzU5NjgwMzc4NDE=