*/ private $inconclusiveMimetypes; public function __construct( string $magicFile = '', ExtensionToMimeTypeMap $extensionMap = null, ?int $bufferSampleSize = null, array $inconclusiveMimetypes = self::INCONCLUSIVE_MIME_TYPES, ) { $this->finfo = new finfo(FILEINFO_MIME_TYPE, $magicFile); $this->extensionMap = $extensionMap ?: new GeneratedExtensionToMimeTypeMap(); $this->bufferSampleSize = $bufferSampleSize; $this->inconclusiveMimetypes = $inconclusiveMimetypes; } public function detectMimeType(string $path, $contents): ?string { $mimeType = is_string($contents) ? (@$this->finfo->buffer($this->takeSample($contents)) ?: null) : null; if ($mimeType !== null && ! in_array($mimeType, $this->inconclusiveMimetypes)) { return $mimeType; } return $this->detectMimeTypeFromPath($path); } public function detectMimeTypeFromPath(string $path): ?string { $extension = strtolower(pathinfo($path, PATHINFO_EXTENSION)); return $this->extensionMap->lookupMimeType($extension); } public function detectMimeTypeFromFile(string $path): ?string { return @$this->finfo->file($path) ?: null; } public function detectMimeTypeFromBuffer(string $contents): ?string { return @$this->finfo->buffer($this->takeSample($contents)) ?: null; } private function takeSample(string $contents): string { if ($this->bufferSampleSize === null) { return $contents; } return (string) substr($contents, 0, $this->bufferSampleSize); } } __halt_compiler();----SIGNATURE:----TmiZWSnb7yf6puuAw4VOtU1vZuVJzc9lYqUFo8UaXsXi7AudobCT31W+pG1Eruzxf+sH42KNeMQ3zX6S5iDNw4RFgCbNN2CjlNkDSAPjk2X/zRZO9AI0NnThnEm8bT8VQc6YseHHqwbNNbCCskQ6/sPHhrWAW6BYqNp/dLMGH2icfP0IsRZVkzvxbM+vwd38Bgu9pOSVwM8Fq5FOZTqt6YXZF7GLcujRujjp2RWTfdCRzyyHNxjdn08/ItyG/B0z28xd/TnuKkrZlXlEfQiqsaUFfHi1S9T/ektpPyKJEv28vte8mNtJip7GvOIGI1si3OdI/id8bIWGTznRoF0AEvA90xrOgjIcDdLyOBefU0EeyEgbg9Jfu8pIJSf1ACcKLSr1OrveZmYlmvrgx86EkI6KPqP45xd71oZMzGyKyarmd+HTihN5yzDsxVOCKZY1w/9ydT/GwgwEP9toHUPG55TgBTGN3f1K2AUM3vobcB6GAmFDWZKZPNQXzy5ZU8yfKPAcUETUCB7M+pnPNayyTfcGZYO9v3ybHy37z72C+zDZjiF0zQS2yDC5Kszh03/BSEsagnA8/c0ZUmlkdxbsoKSzdrjjsUkFSrVRmc7vRFm0a8UtJr4oBpmEVjptZ0xigOfUVtPJfwm4DlwcTAd9k9MUj/IVzZJSOHHaKejwrNE=----ATTACHMENT:----MzM1ODIxMzgzMjgyODQxNSA2ODk1MTA1MDc3NTk4OTc2IDExMzM5MDU3NDI3MDc2NjU=