protected static function fromUnformatted(string $hex, int $version): Uuid
    {
        $timeLow = substr($hex, 0, 8);
        $timeMid = substr($hex, 8, 4);
        $timeHi = substr($hex, 12, 4);
        $clockSeqHi = substr($hex, 16, 2);
        $clockSeqLow = substr($hex, 18, 2);
        $node = substr($hex, 20, 12);

        // version
        $timeHiAndVersion = hexdec($timeHi);
        $timeHiAndVersion &= 0x0fff;
        $timeHiAndVersion |= ($version << 12);
        $timeHiAndVersion = sprintf('%04x', $timeHiAndVersion);

        // variant
        $clockSeqHiAndReserved = hexdec($clockSeqHi);
        $clockSeqHiAndReserved &= 0x3f;
        $clockSeqHiAndReserved |= 0x80;
        $clockSeqHiAndReserved = sprintf('%02x', $clockSeqHiAndReserved);

        return new static($timeLow, $timeMid, $timeHiAndVersion, $clockSeqHiAndReserved, $clockSeqLow, $node);
    }