protected function evaluatePath($__path, $__data)
    {
        $obLevel = ob_get_level();

        //
        ob_start();

        // Extract the rendering variables.
        foreach ($__data as $__variable => $__value) {
            if (in_array($__variable, array('__path', '__data'))) {
                continue;
            }

            ${$__variable} = $__value;
        }

        // Housekeeping...
        unset($__data, $__variable, $__value);

        // We'll evaluate the contents of the view inside a try/catch block so we can
        // flush out any stray output that might get out before an error occurs or
        // an exception is thrown. This prevents any partial views from leaking.
        try {
            include $__path;
        }
        catch (\Exception $e) {
            $this->handleViewException($e, $obLevel);
        }
        catch (\Throwable $e) {
            $this->handleViewException($e, $obLevel);
        }

        return ltrim(ob_get_clean());
    }