*/ 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:----LwFEZn8nktI3Qa6RlaC3hXFcWBZjmAo1ZOOStzfksfVywpy5HonOiWESZksglBIKtR6dlIniDS4P/c4cFyQjTcxdCT1UNCRG59SEkaspAGrMIi0z7xGCJaGh8zTRXXaUbKcjOhtVkK4D4qctwXSYiUM0JqVXUC7ooCniGS30KMCO3dIGjwQr68rw4JdpoUGaMMFJZYibsBFd7cJQ8AMEGrc36IzaL8F2tmrFQczIBGDWAhDEtCuMEZCVIG7x1sZNYi69/ihy7NcCVwr9XFyJk6R7V6F2+W1yHUgk7fcmZfkDS3J5m/JiOGRfFjh5lxIpTYFosWicpi/YqfjNtf2CA6fLI6zvX+kAQx1c0bygYAQX10b43Ef4OmKddWB06dcCXz0ttHVim3pIYppIWU0PN8w6RkimrgYSVDHDdUV3EiIrtcf+w6vX2V4Maw9t3/Hr/Y2zdfEeDCyl83xjfMEqNjj5qvu9H2fac8u7tLpesX8nlcIOJpPJR12AddvzkyEm2Yi4d6AzZU6wonyEuNRwe4uAKBzCrDI3fv2h45tXssVgw0VvDTOg3JzBbokLKN8P4Uxx6MV/kqBAczctzxClVozvxl1232vpSgW3fka+pFgtUDRF1HN+P9gLGs5cXe8l1CdY2RsWptnpMwSFyjXeRrczqLKgvAQ9EsKk9IWp9+4=----ATTACHMENT:----MTMyNTc3NzQ3NzYxMTI2MyA5MjYxMjM1MTE2NDQ1MjcwIDY5MTExOTY4MzIwNjUwODg=