function classifyResult = challenge(recordName)

load('feat_selector.mat','feat_selector');
load('opt_selector_arr.mat','opt_selector_arr');
load('mother_of_selectors.mat','mother_of_selectors');
load('predict_obj','predict_obj');

total_feat_0 = challenge_features_0(recordName);
total_feat = challenge_features(recordName);
N_WIN = 3000;
N_HOP =  300;
chop_feat_0 = zeros(100,40);
chop_feat   = zeros(100,40);
for j=1:100
    try
        tmp_chop_0 = challenge_features_0_chop(recordName,1+(j-1)*N_HOP,N_WIN);
        chop_feat_0(j,:) = tmp_chop_0;
        tmp_chop   = challenge_features_chop(recordName,1+(j-1)*N_HOP,N_WIN);
        chop_feat(j,:) = tmp_chop;
    catch
        chop_feat_0 = chop_feat_0(1:j-1,:);
        chop_feat   = chop_feat(1:j-1,:);
        break
    end
end
if isempty(chop_feat_0)
    chop_feat_0 = total_feat_0;
end
if isempty(chop_feat)
    chop_feat = total_feat;
end
total_feat_0 = [total_feat_0(:,feat_selector) total_feat];
chop_feat_0  = [chop_feat_0(:,feat_selector) chop_feat];

total_feat_0 = total_feat_0(:,opt_selector_arr);
chop_feat_0 = chop_feat_0(:,opt_selector_arr);

combined_feat = [total_feat_0 min(chop_feat_0,[],1) mean(chop_feat_0,1) median(chop_feat_0,1) max(chop_feat_0,[],1) std(chop_feat_0,[],1)];

combined_feat = combined_feat(mother_of_selectors);

classifyResult = predict(predict_obj,combined_feat);
classifyResult = classifyResult{1};