protected static function to_int($a){
return intval(implode('', array_map(function($a){
$b = intval($a, 36)-10;
return base_convert(($b < 0 ? $b+36 : $b), 10, 36);
}, str_split($a))), 36);
}
protected static function parse($a, $b){
return array_reduce(array_keys($a), function($s, $k) use($a, $b){
$q = array_map(function($a){
return self::to_int($a);
}, explode('-', $k));
return ($b >= $q[0] && $b <= $q[1]) ? $a[$k] : $s;
});
}