public function stream_read($count)
    {
        if (!$this->handle) {
            return false;
        }
        self::restorePrev();
        $buffer = \fread($this->handle, $count);
        $bufferLen = \strlen($buffer);
        $backtrace = \debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
        $isRequire = !\in_array($backtrace[1]['function'], array('file_get_contents'));
        if (!$this->declaredTicks && $isRequire) {
            foreach (self::$pathsExclude as $excludePath) {
                if (\strpos($this->filepath, $excludePath.DIRECTORY_SEPARATOR) === 0) {
                    $this->declaredTicks = true;
                }
            }
        }
        if (!$this->declaredTicks && $isRequire) {
            // insert declare(ticks=1);  without adding any new lines
            $buffer = \preg_replace(
                '/^(<\?php\s*)$/m',
                '$0 declare(ticks=1);',
                $buffer,
                1
            );
            $this->declaredTicks = true;
            self::$filesModified[] = $this->filepath;
        }
        $buffer = $this->bufferPrepend.$buffer;
        $bufferLenAfter = \strlen($buffer);
        $diff = $bufferLenAfter - $bufferLen;
        $this->bufferPrepend = '';
        if ($diff) {
            $this->bufferPrepend = \substr($buffer, $count);
            $buffer = \substr($buffer, 0, $count);
        }
        self::register();
        return $buffer;
    }