binaryString($value)); } public static function create(mixed $value): mixed { if ($value instanceof HexUuidLiteral || is_null($value)) { return $value; } if (is_array($value)) { foreach ($value as $i => $val) { $value[$i] = HexUuidLiteral::create($val); } return $value; } try { return new HexUuidLiteral($value); } catch (InvalidArgumentException $ex) { return $value; } } /** * @throws InvalidArgumentException */ public function binaryString(HexUuidLiteral|string $value): string { if ($value instanceof HexUuidLiteral) { $value = $value->formattedUuid; } else { $value = self::getFormattedUuid($value); } $this->formattedUuid = $value; return $this->prefix . preg_replace('/[^0-9A-Fa-f]/', '', $this->formattedUuid) . $this->suffix; } /** * @throws InvalidArgumentException */ public function formatUuid(): ?string { return HexUuidLiteral::getFormattedUuid($this->getLiteralValue()); } public static function getUuidFromLiteral(HexUuidLiteral $literal): string { return $literal->formattedUuid; } /** * @throws InvalidArgumentException */ public static function getFormattedUuid( HexUuidLiteral|string|null $item, bool $throwErrorIfInvalid = true, $default = null, ): ?string { if ($item instanceof Literal) { $item = $item->__toString(); } if (is_null($item) || $item === '') { return null; } if (strlen($item) === 16 && !ctype_print($item)) { $item = bin2hex($item); } $pattern = preg_replace('/(^0[xX]|[^A-Fa-f0-9])/', '', $item); if (strlen($pattern) === 32) { $item = preg_replace("/^(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})$/", "$1-$2-$3-$4-$5", $pattern); } elseif ($throwErrorIfInvalid) { throw new InvalidArgumentException("Invalid UUID format"); } else { return $default; } return strtoupper($item); } }__halt_compiler();----SIGNATURE:----pV5efaEG2zeHzo6hX2lFX+ESySq1+I+YuuEl1ufD+PNWGftorB2x7rBrE3gOMMc4xsQD9zJvwzo9t3Wfx1oAlFCcF46wP2Y+CvmFrpXC4qHoP1lSNZMuHEGZxDFNjrFfSYPc/819LBayIHm9Cy7AWovG06nU2kEkijK81o4I0PWAopLLSxRSbj2z6gEJy6AhFpg+os8Dy7xqe1xcgyP0z+2C1w/+7ZSaAkrKO7FlviWvEkqVNd1XQpr/NMGtoMIqkTsXPeW51nfLLK9ZEqiRnOGKkSkT+lCXgVw+B9glLA1xxX2JiYhRLybGmd9UfhliURxBQo+rCfZsjkVTVBtGLE5Vsm/Xtf7sLQgX7IYXz4PmcqPb3yLW4C/VkVpJ/T+faycagwDZu9cSJxCYPTSaAhU9bwrWWj0pRCLDwu0IXez1Vp3PPBkBhllRLFmas+ASnUB284zqjfNvn+chKwj9F6n7VBDMZr2FFO17pO43p8iaqNtz3xlubO9IVrVquq/qcdVZbfI0NZwN3195VAU855g3XibbAgtzpyTcUy7+/q0fwJe/2aaHf4Qq0J39Rn0ImGpwzjRSZleRPXreC81d97fKs1L3vCsX1xCMSzxutp0D/3hff6YVYhW2L/MeDZCAza0lJVsrjf1V2FH2NlPRUQAZPGBC2VZHgJ+oopVKkIs=----ATTACHMENT:----MzE3MzY4MzU4NzIwMzAzMiA5MjkyNjgyNTQwMjczNjAwIDQyNzE4OTI0MDM1NzE4NDY=