Whoops \ Exception \ ErrorException (E_NOTICE)
Undefined index: canon_location Whoops\Exception\ErrorException thrown with message "Undefined index: canon_location" Stacktrace: #13 Whoops\Exception\ErrorException in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php:129 #12 Whoops\Run:handleError in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php:129 #11 Lexicon\Post\Entry:combineRelations in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php:374 #10 Lexicon\Post\Entry:sourceRelations in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php:382 #9 Lexicon\Post\Entry:canon_sources in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php:425 #8 Lexicon\Post\Entry:flattened_canon_sources in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php:443 #7 Lexicon\Post\Entry:canon_references in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Site.php:158 #6 Lexicon\Site:add_to_context in /home/hplex/alchemy.hp-lexicon.org/www/wp-includes/class-wp-hook.php:287 #5 WP_Hook:apply_filters in /home/hplex/alchemy.hp-lexicon.org/www/wp-includes/plugin.php:212 #4 apply_filters in /home/hplex/alchemy.hp-lexicon.org/vendor/timber/timber/lib/Timber.php:269 #3 Timber\Timber:get_context in /home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/single-thing.php:14 #2 include in /home/hplex/alchemy.hp-lexicon.org/www/wp-includes/template-loader.php:106 #1 require_once in /home/hplex/alchemy.hp-lexicon.org/www/wp-blog-header.php:19 #0 require in /home/hplex/alchemy.hp-lexicon.org/www/index.php:17
Stack frames (14)
13
Whoops\Exception\ErrorException
/wp-content/themes/lexicon/lib/Post/LexiconTrait.php129
12
Whoops\Run handleError
/wp-content/themes/lexicon/lib/Post/LexiconTrait.php129
11
Lexicon\Post\Entry combineRelations
/wp-content/themes/lexicon/lib/Post/LexiconTrait.php374
10
Lexicon\Post\Entry sourceRelations
/wp-content/themes/lexicon/lib/Post/LexiconTrait.php382
9
Lexicon\Post\Entry canon_sources
/wp-content/themes/lexicon/lib/Post/LexiconTrait.php425
8
Lexicon\Post\Entry flattened_canon_sources
/wp-content/themes/lexicon/lib/Post/LexiconTrait.php443
7
Lexicon\Post\Entry canon_references
/wp-content/themes/lexicon/lib/Site.php158
6
Lexicon\Site add_to_context
/www/wp-includes/class-wp-hook.php287
5
WP_Hook apply_filters
/www/wp-includes/plugin.php212
4
apply_filters
/vendor/timber/timber/lib/Timber.php269
3
Timber\Timber get_context
/wp-content/themes/lexicon/single-thing.php14
2
include
/www/wp-includes/template-loader.php106
1
require_once
/www/wp-blog-header.php19
0
require
/www/index.php17
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php
        }
 
        if ($fields) {
            foreach ($fields as $field) {
                if (!empty($this->custom[$field]) && !is_array($this->custom[$field])) {
                    $this->custom[$field] = array($this->custom[$field]);
                    $this->$field = $this->custom[$field];
                }
            }
        }
    }
 
    protected function combineRelations($fields = array())
    {
        $this->enforceArrays($fields);
 
        $combined = array();
        if ($fields) {
            foreach ($fields as $field) {
                if ($this->custom[$field]) {
                    foreach ($this->custom[$field] as $id) {
                        $combined[] = $id;
                    }
                }
            }
        }
 
        $combined = array_unique($combined);
        return $combined;
    }
 
    public function type_name_singular()
    {
        $type = $this->type();
        return $type->labels->singular_name;
    }
 
    public function type_name_plural()
    {
        $type = $this->type();
Arguments
  1. "Undefined index: canon_location"
    
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php
        }
 
        if ($fields) {
            foreach ($fields as $field) {
                if (!empty($this->custom[$field]) && !is_array($this->custom[$field])) {
                    $this->custom[$field] = array($this->custom[$field]);
                    $this->$field = $this->custom[$field];
                }
            }
        }
    }
 
    protected function combineRelations($fields = array())
    {
        $this->enforceArrays($fields);
 
        $combined = array();
        if ($fields) {
            foreach ($fields as $field) {
                if ($this->custom[$field]) {
                    foreach ($this->custom[$field] as $id) {
                        $combined[] = $id;
                    }
                }
            }
        }
 
        $combined = array_unique($combined);
        return $combined;
    }
 
    public function type_name_singular()
    {
        $type = $this->type();
        return $type->labels->singular_name;
    }
 
    public function type_name_plural()
    {
        $type = $this->type();
Arguments
  1. 8
    
  2. "Undefined index: canon_location"
    
  3. "/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php"
    
  4. 129
    
  5. array:3 [
      "fields" => array:6 [
        0 => "canon_location"
        1 => "primary_canon_references"
        2 => "canon_references"
        3 => "canon_sources"
        4 => "primary_canon"
        5 => "other_canon_references"
      ]
      "combined" => []
      "field" => "canon_location"
    ]
    
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php
        $children = $this->columnize($children);
 
        $this->child_context = array(
            'id'        =>  $this->ID,
            'link'      =>  $this->link(),
            'title'     =>  $this->title(),
            'entries'   =>  $children,
        );
 
        return $this->child_context;
    }
 
    public function schema()
    {
        return 'http://schema.org/Article';
    }
 
    public function sourceRelations()
    {
        return $this->combineRelations(array('canon_location', 'primary_canon_references', 'canon_references', 'canon_sources', 'primary_canon', 'other_canon_references'));
    }
 
    public function canon_sources()
    {
        if ($this->savedCanonReferences) {
            return $this->savedCanonReferences;
        }
        $sources = $this->sourceRelations();
 
        $results = array();
        foreach ($sources as $sourceId) {
            $source = new \Lexicon\Post\Source($sourceId);
            $info = $source->identify();
            if ($info['chapter']) {
                $info['shortname'] = $info['subname'];
                $parent = $info['parent'];
                $parentLabel = $parent['label'];
                if (!isset($results[$parentLabel])) {
                    $results[$parentLabel] = $parent;
                    $results[$parentLabel]['chapters'] = array();
Arguments
  1. array:6 [
      0 => "canon_location"
      1 => "primary_canon_references"
      2 => "canon_references"
      3 => "canon_sources"
      4 => "primary_canon"
      5 => "other_canon_references"
    ]
    
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php
 
        return $this->child_context;
    }
 
    public function schema()
    {
        return 'http://schema.org/Article';
    }
 
    public function sourceRelations()
    {
        return $this->combineRelations(array('canon_location', 'primary_canon_references', 'canon_references', 'canon_sources', 'primary_canon', 'other_canon_references'));
    }
 
    public function canon_sources()
    {
        if ($this->savedCanonReferences) {
            return $this->savedCanonReferences;
        }
        $sources = $this->sourceRelations();
 
        $results = array();
        foreach ($sources as $sourceId) {
            $source = new \Lexicon\Post\Source($sourceId);
            $info = $source->identify();
            if ($info['chapter']) {
                $info['shortname'] = $info['subname'];
                $parent = $info['parent'];
                $parentLabel = $parent['label'];
                if (!isset($results[$parentLabel])) {
                    $results[$parentLabel] = $parent;
                    $results[$parentLabel]['chapters'] = array();
                }
                $results[$parentLabel]['chapters'][$info['chapter']] = $info;
            } else {
                $results[$info['label']] = $info;
            }
        }
 
        $finalResults = array();
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php
                ksort($finalResults[$name]['chapters']);
                unset($results[$name]);
            }
        }
        foreach ($results as $key => $value) {
            if (isset($value['chapters'])) {
                ksort($value['chapters']);
            }
            $finalResults[$key] = $value;
        }
 
        $this->savedCanonReferences = $finalResults;
 
        return $finalResults;
    }
 
    public function flattened_canon_sources()
    {
        $flattenedResults = array();
        $sources = $this->canon_sources();
        if ($sources) {
            foreach ($sources as $key => $value) {
                $chapters = $value['chapters'];
                unset($value['chapters']);
                $flattenedResults[$key] = $value;
                if ($chapters) {
                    foreach ($chapters as $chapter => $info) {
                        $flattenedResults[$info['label']] = $info;
                    }
                }
            }
        }
        return $flattenedResults;
    }
 
    public function canon_references()
    {
        $results = $this->flattened_canon_sources();
        return $this->columnize($results);
    }
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Post/LexiconTrait.php
        $flattenedResults = array();
        $sources = $this->canon_sources();
        if ($sources) {
            foreach ($sources as $key => $value) {
                $chapters = $value['chapters'];
                unset($value['chapters']);
                $flattenedResults[$key] = $value;
                if ($chapters) {
                    foreach ($chapters as $chapter => $info) {
                        $flattenedResults[$info['label']] = $info;
                    }
                }
            }
        }
        return $flattenedResults;
    }
 
    public function canon_references()
    {
        $results = $this->flattened_canon_sources();
        return $this->columnize($results);
    }
 
    public function icons()
    {
        if (!$this->icons) {
            $this->icons = $this->terms('icon', true, 'Lexicon\Term\Icon');
        }
        return $this->icons;
    }
 
    public function iconBanners()
    {
        if (!$this->iconBanners) {
            foreach ($this->icons() as $icon) {
                if ($icon->spoilerBanner) {
                    $this->iconBanners[] = $icon;
                }
            }
        }
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/lib/Site.php
                $artist = new \Lexicon\Post\GuestAuthor($post->post_parent);
                if ($artist->post_type == 'guest-author') {
                    $context['artists'][$post->post_parent] = $artist;
                }
            }
 
            if (!$context['artists'] && $post->artist) {
                $artists = $post->artist;
                if (!is_array($artists)) {
                    $artists = [$artists];
                }
                foreach ($artists as $artist) {
                    $context['artists'][$artist] = new \Lexicon\Post\GuestAuthor($artist);
                }
            }
        } elseif ($context['is_single']) {
            $post = Timber::query_post(null, $this->singleContentType());
 
            $context['timeline_events'] = $post->chooseEvents();
            $context['canon_references'] = $post->canon_references();
            $context['icons'] = $post->icons;
 
            //$context['comment_form'] = \Timber\Helper::get_comment_form();
            $context['post'] = $post;
            $context['share_url'] = $post->link();
            $context['short_url'] = wp_get_shortlink($post->ID);
            $context['tweet_text'] = $post->title();
 
            if ($post->post_type == 'source') {
                $context['prev_chapter'] = $post->prev_chapter();
                $context['next_chapter'] = $post->next_chapter();
            }
 
            $context = $post->add_to_context($context);
        } else {
            $context['share_url'] = 'http://www.hp-lexicon.org/';
            $context['short_url'] = 'http://hplex.org';
            $context['tweet_text'] = "The Harry Potter Lexicon";
        }
 
/home/hplex/alchemy.hp-lexicon.org/www/wp-includes/class-wp-hook.php
 
        $nesting_level = $this->nesting_level++;
 
        $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
        $num_args                           = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
            $priority                                 = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 == $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int) $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        $this->nesting_level--;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
Arguments
  1. array:13 [
      "http_host" => "https://alchemy.hp-lexicon.org"
      "wp_title" => "Privet – Harry Potter Lexicon"
      "body_class" => "thing-template-default single single-thing postid-1976"
      "site" => Timber\Site {#2644}
      "request" => Timber\Request {#2619}
      "user" => false
      "theme" => Timber\Theme {#2665}
      "posts" => Timber\PostQuery {#2625
        +found_posts: 1
        #userQuery: false
        #queryIterator: Timber\QueryIterator {#2638}
        #pagination: null
        storage: array:1 [
          0 => Timber\Post {#2640}
        ]
        flag::STD_PROP_LIST: false
        flag::ARRAY_AS_PROPS: false
        iteratorClass: "Timber\PostsIterator"
      }
      "wp_head" => Timber\FunctionWrapper {#2639}
      "wp_footer" => Timber\FunctionWrapper {#2642}
      "is_single" => true
      "is_attachment" => false
      "timeline_events" => []
    ]
    
/home/hplex/alchemy.hp-lexicon.org/www/wp-includes/plugin.php
    if ( isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $tag;
        _wp_call_all_hook( $args );
    }
 
    if ( ! isset( $wp_filter[ $tag ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
        return $value;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $tag;
    }
 
    // Don't pass the tag name to WP_Hook.
    array_shift( $args );
 
    $filtered = $wp_filter[ $tag ]->apply_filters( $value, $args );
 
    array_pop( $wp_current_filter );
 
    return $filtered;
}
 
/**
 * Calls the callback functions that have been added to a filter hook, specifying arguments in an array.
 *
 * @since 3.0.0
 *
 * @see apply_filters() This function is identical, but the arguments passed to the
 * functions hooked to `$tag` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $tag  The name of the filter hook.
 * @param array  $args The arguments supplied to the functions hooked to $tag.
 * @return mixed The filtered value after all hooked functions are applied to it.
Arguments
  1. array:10 [
      "http_host" => "https://alchemy.hp-lexicon.org"
      "wp_title" => "Privet – Harry Potter Lexicon"
      "body_class" => "thing-template-default single single-thing postid-1976"
      "site" => Timber\Site {#2644}
      "request" => Timber\Request {#2619}
      "user" => false
      "theme" => Timber\Theme {#2665}
      "posts" => Timber\PostQuery {#2625
        +found_posts: 1
        #userQuery: false
        #queryIterator: Timber\QueryIterator {#2638}
        #pagination: null
        storage: array:1 [
          0 => Timber\Post {#2640}
        ]
        flag::STD_PROP_LIST: false
        flag::ARRAY_AS_PROPS: false
        iteratorClass: "Timber\PostsIterator"
      }
      "wp_head" => Timber\FunctionWrapper {#2639}
      "wp_footer" => Timber\FunctionWrapper {#2642}
    ]
    
  2. array:1 [
      0 => array:10 [
        "http_host" => "https://alchemy.hp-lexicon.org"
        "wp_title" => "Privet – Harry Potter Lexicon"
        "body_class" => "thing-template-default single single-thing postid-1976"
        "site" => Timber\Site {#2644}
        "request" => Timber\Request {#2619}
        "user" => false
        "theme" => Timber\Theme {#2665}
        "posts" => Timber\PostQuery {#2625
          +found_posts: 1
          #userQuery: false
          #queryIterator: Timber\QueryIterator {#2638}
          #pagination: null
          storage: array:1 [
            0 => Timber\Post {#2640}
          ]
          flag::STD_PROP_LIST: false
          flag::ARRAY_AS_PROPS: false
          iteratorClass: "Timber\PostsIterator"
        }
        "wp_head" => Timber\FunctionWrapper {#2639}
        "wp_footer" => Timber\FunctionWrapper {#2642}
      ]
    ]
    
/home/hplex/alchemy.hp-lexicon.org/vendor/timber/timber/lib/Timber.php
            self::$context_cache['http_host'] = URLHelper::get_scheme().'://'.URLHelper::get_host();
            self::$context_cache['wp_title'] = Helper::get_wp_title();
            self::$context_cache['body_class'] = implode(' ', get_body_class());
 
            self::$context_cache['site'] = new Site();
            self::$context_cache['request'] = new Request();
            $user = new User();
            self::$context_cache['user'] = ($user->ID) ? $user : false;
            self::$context_cache['theme'] = self::$context_cache['site']->theme;
 
            self::$context_cache['posts'] = new PostQuery();
 
            /**
             * @deprecated as of Timber 1.3.0
             * @todo remove in Timber 1.4.*
             */
            self::$context_cache['wp_head'] = new FunctionWrapper( 'wp_head' );
            self::$context_cache['wp_footer'] = new FunctionWrapper( 'wp_footer' );
 
            self::$context_cache = apply_filters('timber_context', self::$context_cache);
            self::$context_cache = apply_filters('timber/context', self::$context_cache);
        }
 
 
        return self::$context_cache;
    }
 
    /**
     * Compile a Twig file.
     *
     * Passes data to a Twig file and returns the output.
     * If the template file doesn't exist it will throw a warning when WP_DEBUG is enabled.
     *
     * @api
     * @example
     * ```php
     * $data = array(
     *     'firstname' => 'Jane',
     *     'lastname' => 'Doe',
     *     'email' => '[email protected]',
Arguments
  1. "timber_context"
    
  2. array:10 [
      "http_host" => "https://alchemy.hp-lexicon.org"
      "wp_title" => "Privet – Harry Potter Lexicon"
      "body_class" => "thing-template-default single single-thing postid-1976"
      "site" => Timber\Site {#2644}
      "request" => Timber\Request {#2619}
      "user" => false
      "theme" => Timber\Theme {#2665}
      "posts" => Timber\PostQuery {#2625
        +found_posts: 1
        #userQuery: false
        #queryIterator: Timber\QueryIterator {#2638}
        #pagination: null
        storage: array:1 [
          0 => Timber\Post {#2640}
        ]
        flag::STD_PROP_LIST: false
        flag::ARRAY_AS_PROPS: false
        iteratorClass: "Timber\PostsIterator"
      }
      "wp_head" => Timber\FunctionWrapper {#2639}
      "wp_footer" => Timber\FunctionWrapper {#2642}
    ]
    
/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/single-thing.php
<?php
use Timber\Timber;
 
/**
 * The Template for displaying all single posts
 *
 * Methods for TimberHelper can be found in the /lib sub-directory
 *
 * @package  WordPress
 * @subpackage  Timber
 * @since    Timber 0.1
 */
 
$context = Timber::get_context();
$context['type'] = $context['type_info'] = $context['post']->type();
$context['iconbanners'] = $context['post']->iconBanners();
 
 
if (isset($_REQUEST['debug']) && $_REQUEST['debug'] == 'breakthisnick') {
    dd($context);
}
 
if (post_password_required($post->ID)) {
    Timber::render('single-password.twig', $context);
} else {
    $post = $context['post'];
 
    $templates = array('single-thing.twig', 'single.twig');
 
    if ($post->terms('type')) {
        foreach ($post->terms('type') as $type) {
            array_unshift($templates, "single-thing-{$type->slug}.twig");
        }
    }
 
    array_unshift($templates, "single-{$post->ID}.twig");
 
    Timber::render($templates, $context);
}
 
/home/hplex/alchemy.hp-lexicon.org/www/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
Arguments
  1. "/home/hplex/alchemy.hp-lexicon.org/wp-content/themes/lexicon/single-thing.php"
    
/home/hplex/alchemy.hp-lexicon.org/www/wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
Arguments
  1. "/home/hplex/alchemy.hp-lexicon.org/www/wp-includes/template-loader.php"
    
/home/hplex/alchemy.hp-lexicon.org/www/index.php
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
 
Arguments
  1. "/home/hplex/alchemy.hp-lexicon.org/www/wp-blog-header.php"
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE
"Apache/2.4.43 (Ubuntu)"
REQUEST_URI
"/thing/privet/"
USER
"www-data"
HOME
"/var/www"
SCRIPT_NAME
"/index.php"
QUERY_STRING
""
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.1"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_URL
"/thing/privet/"
REMOTE_PORT
"43382"
SCRIPT_FILENAME
"/home/hplex/alchemy.hp-lexicon.org/www/index.php"
SERVER_ADMIN
"[no address given]"
CONTEXT_DOCUMENT_ROOT
"/home/hplex/alchemy.hp-lexicon.org/www"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"https"
DOCUMENT_ROOT
"/home/hplex/alchemy.hp-lexicon.org/www"
REMOTE_ADDR
"3.237.66.86"
SERVER_PORT
"443"
SERVER_ADDR
"10.138.0.2"
SERVER_NAME
"alchemy.hp-lexicon.org"
SERVER_SIGNATURE
"<address>Apache/2.4.43 (Ubuntu) Server at alchemy.hp-lexicon.org Port 443</address>\n"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
HTTP_CDN_LOOP
"cloudflare"
HTTP_CF_CONNECTING_IP
"3.237.66.86"
HTTP_CF_REQUEST_ID
"06a4d2504400000c950c94d000000001"
HTTP_IF_MODIFIED_SINCE
"Fri, 25 Sep 2020 15:50:23 GMT"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_CF_VISITOR
"{\"scheme\":\"https\"}"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_CF_RAY
"5f8186606df00c95-EWR"
HTTP_CF_IPCOUNTRY
"US"
HTTP_ACCEPT_ENCODING
"gzip"
HTTP_CONNECTION
"Keep-Alive"
HTTP_HOST
"alchemy.hp-lexicon.org"
proxy-nokeepalive
"1"
SSL_TLS_SNI
"alchemy.hp-lexicon.org"
HTTPS
"on"
proxyssl
"1"
REDIRECT_STATUS
"200"
REDIRECT_SSL_TLS_SNI
"alchemy.hp-lexicon.org"
REDIRECT_HTTPS
"on"
REDIRECT_proxyssl
"1"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1606371850.7538
REQUEST_TIME
1606371850
HTTP_X_FORWARDED_FOR
"3.237.66.86"
empty
0. Whoops\Handler\PrettyPageHandler