digraph {
graph [overlap=false]
subgraph cluster_Config {
	label="Config";
	"Config::import";
	"Config::FETCH";
}
subgraph cluster_Tapper_MCP_Scheduler_PrioQueue {
	label="Tapper::MCP::Scheduler::PrioQueue";
	"Tapper::MCP::Scheduler::PrioQueue::get_testrequests";
}
subgraph cluster_Tapper_MCP_Scheduler_Algorithm {
	label="Tapper::MCP::Scheduler::Algorithm";
	"Tapper::MCP::Scheduler::Algorithm::__ANON__[lib/Tapper/MCP/Scheduler/Algorithm.pm:12]";
}
subgraph cluster_Exporter {
	label="Exporter";
	"Exporter::import";
}
subgraph cluster_Tapper_Model {
	label="Tapper::Model";
	"Tapper::Model::get_hardware_overview";
	"Tapper::Model::BEGIN@24";
	"Tapper::Model::free_hosts_with_features";
	"Tapper::Model::model";
}
subgraph cluster_vars {
	label="vars";
	"vars::import";
}
subgraph cluster_Tapper_MCP_Scheduler_Controller {
	label="Tapper::MCP::Scheduler::Controller";
	"Tapper::MCP::Scheduler::Controller::mark_job_as_running";
	"Tapper::MCP::Scheduler::Controller::get_next_job";
	"Tapper::MCP::Scheduler::Controller::BEGIN@8";
}
subgraph cluster_strict {
	label="strict";
	"strict::import";
	"strict::unimport";
}
subgraph cluster_main {
	label="main";
	"main::RUNTIME";
	"main::toggle_host_free";
}
subgraph cluster_Memoize {
	label="Memoize";
	"Memoize::BEGIN@95";
	"Memoize::CORE:match";
	"Memoize::_my_tie";
	"Memoize::BEGIN@321";
	"Memoize::BEGIN@225";
	"Memoize::BEGIN@25";
	"Memoize::BEGIN@27";
	"Memoize::BEGIN@28";
	"Memoize::BEGIN@284";
	"Memoize::_memoizer";
	"Memoize::BEGIN@26";
	"Memoize::BEGIN@32";
	"Memoize::_make_cref";
	"Memoize::memoize";
}
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@321";
"Memoize::BEGIN@25" -> "Exporter::import";
"Memoize::BEGIN@26" -> "Exporter::import";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@28";
"Memoize::BEGIN@28" -> "Config::import";
"Tapper::MCP::Scheduler::Controller::BEGIN@8" -> "Memoize::memoize";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@25";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@95";
"Memoize::memoize" -> "Memoize::_my_tie";
"Memoize::BEGIN@321" -> "strict::unimport";
"Memoize::BEGIN@225" -> "strict::unimport";
"Memoize::BEGIN@95" -> "strict::unimport";
"Memoize::BEGIN@284" -> "strict::unimport";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@284";
"Memoize::BEGIN@27" -> "vars::import";
"Tapper::MCP::Scheduler::PrioQueue::get_testrequests" -> "Memoize::_memoizer";
"Tapper::Model::get_hardware_overview" -> "Memoize::_memoizer";
"Tapper::MCP::Scheduler::Controller::get_next_job" -> "Memoize::_memoizer";
"Tapper::MCP::Scheduler::Controller::mark_job_as_running" -> "Memoize::_memoizer";
"Tapper::Model::free_hosts_with_features" -> "Memoize::_memoizer";
"main::RUNTIME" -> "Memoize::_memoizer";
"main::toggle_host_free" -> "Memoize::_memoizer";
"Tapper::MCP::Scheduler::Algorithm::__ANON__[lib/Tapper/MCP/Scheduler/Algorithm.pm:12]" -> "Memoize::_memoizer";
"Memoize::memoize" -> "Config::FETCH";
"Memoize::BEGIN@32" -> "strict::import";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@32";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@26";
"Memoize::_memoizer" -> "Tapper::Model::model";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@27";
"Memoize::memoize" -> "Memoize::_make_cref";
"Tapper::Model::BEGIN@24" -> "Memoize::BEGIN@225";
"Memoize::_make_cref" -> "Memoize::CORE:match";
"Memoize::memoize" -> "Memoize::CORE:match";
}
