<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
<?php
/*!
* Hybridauth
* https://hybridauth.github.io | https://github.com/hybridauth/hybridauth
*  (c) 2017 Hybridauth authors | https://hybridauth.github.io/license.html
*/

namespace Hybridauth\Exception;

/**
 * Hybridauth Base Exception
 */
class Exception extends \Exception implements ExceptionInterface
{
    /**
     * Shamelessly Borrowed from Slimframework
     *
     * @param $object
     */
    public function debug($object)
    {
        $title = 'Hybridauth Exception';
        $code = $this->getCode();
        $message = $this->getMessage();
        $file = $this->getFile();
        $line = $this->getLine();
        $trace = $this->getTraceAsString();

        $html = sprintf('<h1>%s</h1>', $title);
        $html .= '<p>Hybridauth has encountered the following error:</p>';
        $html .= '<h2>Details</h2>';

        $html .= sprintf('<div><strong>Exception:</strong> %s</div>', get_class($this));

        $html .= sprintf('<div><strong>Message:</strong> <font color="#cc0000">%s</font></div>', $message);

        $html .= sprintf('<div><strong>File:</strong> %s</div>', $file);

        $html .= sprintf('<div><strong>Line:</strong> %s</div>', $line);

        $html .= sprintf('<div><strong>Code:</strong> %s</div>', $code);

        $html .= '<h2>Trace</h2>';
        $html .= sprintf('<pre>%s</pre>', $trace);

        if ($object) {
            $html .= '<h2>Debug</h2>';

            $obj_dump = print_r($object, true);

            // phpcs:ignore
            $html .= sprintf('<b>' . get_class($object) . '</b> extends <b>' . get_parent_class($object) . '</b><pre>%s</pre>', $obj_dump);
        }

        $html .= '<h2>Session</h2>';

        $session_dump = print_r($_SESSION, true);

        $html .= sprintf('<pre>%s</pre>', $session_dump);

        // phpcs:ignore
        echo sprintf("<html><head><title>%s</title><style>body{margin:0;padding:30px;font:12px/1.5 Helvetica,Arial,Verdana,sans-serif;}h1{margin:0;font-size:48px;font-weight:normal;line-height:48px;}strong{display:inline-block;width:75px;}</style></head><body>%s</body></html>", $title, $html);
    }
}
