<?php
// The flag is also the 100% discount code for the HackYeah 2019 hackathon.
// The discount code will work for the first 30 uses, and I have no way to
// count how many uses still remain so... just try it.
// The hackathon takes place 14-15.09.19, so after that date this challenge
// becomes just a fun exercise with no prizes.
// Good luck!
// -- gynvael
//
// P.S. Here's a hint: PHP's crc32 might be a different crc32 than in other
// languages. There are actually a lot of different crc32 functions.
//

if (!isset($_GET['hack'])) {
  
highlight_file("hackyeah2019.php");
  die();
}

$hack $_GET['hack'];
if (!
is_array($hack)) {
  die(
"oh no!");
}

$used_up_keys = array();
$next_key "start";

for (
$i 0$i 32$i++) {
  if (!
array_key_exists($next_key$hack) ||
      !
is_string($hack[$next_key])) {
    die(
"oh my!");
  }

  
$value $hack[$next_key];
  
$hash substr(hash("crc32"$value), 05);
  if (
$hash !== "31337") {
    die(
"oh bummer!");
  }

  if (
array_key_exists($value$used_up_keys)) {
    die(
"oh well!");
  }

  
$used_up_keys[$value] = true;
  
$next_key $value;
}

$GLOBALS['gimme_flag'] = true;
include_once(
'hackyeah2019_secret.php');





































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































// what? no, this is not one of the 'scroll down' puzzles