session()->pull('url.intended'); if (! is_string($value) || $value === '') { return null; }$parts = parse_url($value); if ($parts === false) { return null; }if (isset($parts['host'])) { $port = $parts['port'] ?? (($parts['scheme'] ?? '') === 'https' ? 443 : 80); if (($parts['scheme'] ?? null) !== $r->getScheme() || $parts['host'] !== $r->getHost() || $port !== $r->getPort()) { return null; }$value = ($parts['path'] ?? '/').(isset($parts['query']) ? '?'.$parts['query'] : ''); }$decoded = $value; for ($i = 0; $i < 3; $i++) { $decoded = rawurldecode($decoded); }if (! str_starts_with($decoded, '/') || str_starts_with($decoded, '//') || Str::contains($decoded, ["\r", "\n", '\\'])) { return null; }$path = '/'.ltrim((string) parse_url($decoded, PHP_URL_PATH), '/'); if (in_array(rtrim($path, '/') ?: '/', self::UNSAFE, true) || str_starts_with($path, '/admin')) { return null; } return $value; } }