From 56f8411942433d1f9aecb5249c20d88f1f63b27d Mon Sep 17 00:00:00 2001
From: Tim O'Donnell <timodonnell@gmail.com>
Date: Wed, 17 May 2017 09:28:31 -0400
Subject: [PATCH] Begin rewrite

---
 .../data_combined_iedb_kim2014/README.md      |    13 -
 .../create-combined-class1-dataset.py         |   167 -
 .../create-iedb-class1-dataset.py             |   171 -
 .../GENERATE.sh                               |    22 +-
 .../GENERATE.sh                               |    53 -
 .../README.md                                 |    29 -
 .../models-summary/README.md                  |    12 -
 .../models-summary/report.html                | 18543 ----------------
 .../models-summary/report.ipynb               |  1093 -
 .../models.py                                 |    24 -
 .../GENERATE.sh                               |    53 -
 .../README.md                                 |    21 -
 .../imputer.json                              |     8 -
 .../models.py                                 |    15 -
 .../GENERATE.sh                               |    54 -
 .../README.md                                 |     4 -
 .../imputer.json                              |     8 -
 .../models.py                                 |    16 -
 mhcflurry/__init__.py                         |    17 +-
 mhcflurry/affinity_measurement_dataset.py     |   843 -
 mhcflurry/amino_acid.py                       |    90 +-
 .../mhcflurry_trained_on_hits.py              |     2 +-
 .../class1_affinity_prediction/__init__.py    |     7 +
 .../class1_binding_predictor.py               |   636 +
 .../cv_and_train_command.py                   |     0
 .../multi_allele_predictor_ensemble.py        |   300 +
 .../scoring.py                                |     0
 .../train_allele_specific_models_command.py   |   357 +
 mhcflurry/class1_allele_specific/__init__.py  |    21 -
 ...llele_specific_kmer_ic50_predictor_base.py |   172 -
 .../class1_binding_predictor.py               |   334 -
 ...ss1_single_model_multi_allele_predictor.py |   150 -
 .../cross_validation.py                       |   203 -
 mhcflurry/class1_allele_specific/train.py     |   355 -
 .../__init__.py                               |    12 -
 .../class1_ensemble_multi_allele_predictor.py |   791 -
 .../train_command.py                          |   232 -
 mhcflurry/common.py                           |    68 +-
 mhcflurry/dataset_helpers.py                  |   278 -
 mhcflurry/encodable_sequences.py              |   263 +
 mhcflurry/feedforward.py                      |   140 -
 mhcflurry/ic50_predictor_base.py              |    96 -
 mhcflurry/imputation_helpers.py               |   149 -
 mhcflurry/keras_layers/drop_mask.py           |    16 -
 .../masked_global_average_pooling.py          |    31 -
 .../keras_layers/masked_global_max_pooling.py |    24 -
 mhcflurry/keras_layers/masked_slice.py        |    37 -
 mhcflurry/measurement_collection.py           |   217 -
 mhcflurry/parallelism.py                      |   120 -
 mhcflurry/peptide_encoding.py                 |   407 -
 mhcflurry/predict_command.py                  |     4 +-
 mhcflurry/prediction.py                       |    60 -
 mhcflurry/regression_target.py                |    49 +-
 mhcflurry/training_helpers.py                 |   155 -
 requirements.txt                              |     5 +-
 setup.py                                      |    15 +-
 ...s1_allele_specific_cv_and_train_command.py |     8 +-
 test/test_cross_validation.py                 |     4 +-
 test/test_ensemble.py                         |     2 +-
 test/test_hyperparameters.py                  |     2 +-
 test/test_known_class1_epitopes.py            |     4 +-
 test/test_serialization.py                    |     2 +-
 62 files changed, 1689 insertions(+), 25295 deletions(-)
 delete mode 100644 downloads-generation/data_combined_iedb_kim2014/README.md
 delete mode 100755 downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py
 delete mode 100755 downloads-generation/data_combined_iedb_kim2014/create-iedb-class1-dataset.py
 rename downloads-generation/{data_combined_iedb_kim2014 => data_iedb}/GENERATE.sh (50%)
 delete mode 100755 downloads-generation/models_class1_allele_specific_ensemble/GENERATE.sh
 delete mode 100644 downloads-generation/models_class1_allele_specific_ensemble/README.md
 delete mode 100644 downloads-generation/models_class1_allele_specific_ensemble/models-summary/README.md
 delete mode 100644 downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html
 delete mode 100644 downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.ipynb
 delete mode 100644 downloads-generation/models_class1_allele_specific_ensemble/models.py
 delete mode 100755 downloads-generation/models_class1_allele_specific_single/GENERATE.sh
 delete mode 100644 downloads-generation/models_class1_allele_specific_single/README.md
 delete mode 100644 downloads-generation/models_class1_allele_specific_single/imputer.json
 delete mode 100644 downloads-generation/models_class1_allele_specific_single/models.py
 delete mode 100755 downloads-generation/models_class1_allele_specific_single_kim2014_only/GENERATE.sh
 delete mode 100644 downloads-generation/models_class1_allele_specific_single_kim2014_only/README.md
 delete mode 100644 downloads-generation/models_class1_allele_specific_single_kim2014_only/imputer.json
 delete mode 100644 downloads-generation/models_class1_allele_specific_single_kim2014_only/models.py
 delete mode 100644 mhcflurry/affinity_measurement_dataset.py
 create mode 100644 mhcflurry/class1_affinity_prediction/__init__.py
 create mode 100644 mhcflurry/class1_affinity_prediction/class1_binding_predictor.py
 rename mhcflurry/{class1_allele_specific => class1_affinity_prediction}/cv_and_train_command.py (100%)
 create mode 100644 mhcflurry/class1_affinity_prediction/multi_allele_predictor_ensemble.py
 rename mhcflurry/{class1_allele_specific => class1_affinity_prediction}/scoring.py (100%)
 create mode 100644 mhcflurry/class1_affinity_prediction/train_allele_specific_models_command.py
 delete mode 100644 mhcflurry/class1_allele_specific/__init__.py
 delete mode 100644 mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py
 delete mode 100644 mhcflurry/class1_allele_specific/class1_binding_predictor.py
 delete mode 100644 mhcflurry/class1_allele_specific/class1_single_model_multi_allele_predictor.py
 delete mode 100644 mhcflurry/class1_allele_specific/cross_validation.py
 delete mode 100644 mhcflurry/class1_allele_specific/train.py
 delete mode 100644 mhcflurry/class1_allele_specific_ensemble/__init__.py
 delete mode 100644 mhcflurry/class1_allele_specific_ensemble/class1_ensemble_multi_allele_predictor.py
 delete mode 100644 mhcflurry/class1_allele_specific_ensemble/train_command.py
 delete mode 100644 mhcflurry/dataset_helpers.py
 create mode 100644 mhcflurry/encodable_sequences.py
 delete mode 100644 mhcflurry/feedforward.py
 delete mode 100644 mhcflurry/ic50_predictor_base.py
 delete mode 100644 mhcflurry/imputation_helpers.py
 delete mode 100644 mhcflurry/keras_layers/drop_mask.py
 delete mode 100644 mhcflurry/keras_layers/masked_global_average_pooling.py
 delete mode 100644 mhcflurry/keras_layers/masked_global_max_pooling.py
 delete mode 100644 mhcflurry/keras_layers/masked_slice.py
 delete mode 100644 mhcflurry/measurement_collection.py
 delete mode 100644 mhcflurry/parallelism.py
 delete mode 100644 mhcflurry/peptide_encoding.py
 delete mode 100644 mhcflurry/prediction.py
 delete mode 100644 mhcflurry/training_helpers.py

diff --git a/downloads-generation/data_combined_iedb_kim2014/README.md b/downloads-generation/data_combined_iedb_kim2014/README.md
deleted file mode 100644
index 55672b6e..00000000
--- a/downloads-generation/data_combined_iedb_kim2014/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# The combined training set
-
-This download contains the data used to train the production class1 MHCflurry models. This data is derived from a recent [IEDB](http://www.iedb.org/home_v3.php) export as well as the data from [Kim 2014](http://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-15-241). 
-
-The latest IEDB data is downloaded as part of generating this dataset. The Kim 2014 data is in its own MHCflurry download [here](../data_kim2014). 
-
-Since affinity is measured using a variety of assays, some of which are incompatible, the `create-combined-class1-dataset.py` script filters the available Class I binding assays in IEDB by only retaining those with high correlation to overlapping measurements in BD2013. 
-
-To generate this download run:
-
-```
-./GENERATE.sh
-```
\ No newline at end of file
diff --git a/downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py b/downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py
deleted file mode 100755
index 07b7f1d9..00000000
--- a/downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Combine 2013 Kim/Peters NetMHCpan dataset[*] with more recent IEDB entries
-
-* = "AffinityMeasurementDataset size and composition impact the reliability..."
-"""
- 
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-    unicode_literals
-)
-import pickle
-from collections import Counter
-import argparse
-
-import pandas as pd
-
-parser = argparse.ArgumentParser(usage=__doc__)
-
-parser.add_argument(
-    "--ic50-fraction-tolerance",
-    default=0.01,
-    type=float,
-    help=(
-        "How much can the IEDB and NetMHCpan IC50 differ and still be"
-        " considered compatible (as a fraction of the NetMHCpan value). "
-        "Default: %(default)s"))
-
-parser.add_argument(
-    "--min-assay-overlap-size",
-    type=int,
-    default=1,
-    help="Minimum number of entries overlapping between IEDB assay and "
-    "NetMHCpan data. Default: %(default)s")
-
-
-parser.add_argument(
-    "--min-assay-fraction-same",
-    type=float,
-    help="Minimum fraction of peptides whose IC50 values agree with the "
-    "NetMHCpan data. Default: %(default)s",
-    default=0.9)
-
-parser.add_argument(
-    "--iedb-pickle-path",
-    required=True,
-    help="Path to .pickle file containing dictionary of IEDB assay datasets.")
-
-parser.add_argument(
-    "--netmhcpan-csv-path",
-    required=True,
-    help="Path to CSV with NetMHCpan dataset from 2013 Peters paper.")
-
-parser.add_argument(
-    "--output-csv-filename",
-    required=True,
-    help="Name of combined CSV file.")
-
-parser.add_argument(
-    "--extra-dataset-csv-path",
-    default=[],
-    action="append",
-    help="Additional CSV data source with columns (species, mhc, peptide, meas)")
-
-if __name__ == "__main__":
-    args = parser.parse_args()
-
-    print("Reading %s..." % args.iedb_pickle_path)
-    with open(args.iedb_pickle_path, "rb") as f:
-        iedb_datasets = pickle.load(f)
-
-    print("Reading %s..." % args.netmhcpan_csv_path)
-    nielsen_data = pd.read_csv(args.netmhcpan_csv_path, sep="\t")
-    print("Size of 2013 NetMHCpan dataset: %d" % len(nielsen_data))
-
-    new_allele_counts = Counter()
-    combined_columns = {
-        "species": list(nielsen_data["species"]),
-        "mhc": list(nielsen_data["mhc"]),
-        "peptide": list(nielsen_data["sequence"]),
-        "peptide_length": list(nielsen_data["peptide_length"]),
-        "meas": list(nielsen_data["meas"]),
-    }
-
-    all_datasets = {
-        path: pd.read_csv(path) for path in args.extra_dataset_csv_path
-    }
-    all_datasets.update(iedb_datasets)
-    for assay, assay_dataset in sorted(all_datasets.items(), key=lambda x: len(x[1])):
-        joined = nielsen_data.merge(
-            assay_dataset,
-            left_on=["mhc", "sequence"],
-            right_on=["mhc", "peptide"],
-            how="outer")
-
-        if len(joined) == 0:
-            continue
-
-        # drop NaN binding values and entries without values in both datasets
-        left_missing = joined["meas"].isnull()
-        right_missing = joined["value"].isnull()
-        overlap_filter_mask = ~(left_missing | right_missing)
-        filtered = joined[overlap_filter_mask]
-        n_overlap = len(filtered)
-
-        if n_overlap < args.min_assay_overlap_size:
-            continue
-        # let's count what fraction of this IEDB assay is within 1% of the values in the
-        # Nielsen dataset
-        tolerance = filtered["meas"] * args.ic50_fraction_tolerance
-        abs_diff = (filtered["value"] - filtered["meas"]).abs()
-        similar_values = abs_diff <= tolerance
-        fraction_similar = similar_values.mean()
-        print("Assay=%s, count=%d" % (assay, len(assay_dataset)))
-        print("  # entries w/ values in both data sets: %d" % n_overlap)
-        print("  fraction similar binding values=%0.4f" % fraction_similar)
-        new_peptides = joined[left_missing & ~right_missing]
-        if fraction_similar > args.min_assay_fraction_same:
-            print("---")
-            print("\t using assay: %s" % (assay,))
-            print("---")
-            combined_columns["mhc"].extend(new_peptides["mhc"])
-            combined_columns["peptide"].extend(new_peptides["peptide"])
-            combined_columns["peptide_length"].extend(new_peptides["peptide"].str.len())
-            combined_columns["meas"].extend(new_peptides["value"])
-            # TODO: make this work for non-human data
-            combined_columns["species"].extend(["human"] * len(new_peptides))
-            for allele in new_peptides["mhc"]:
-                new_allele_counts[allele] += 1
-
-    combined_df = pd.DataFrame(
-        combined_columns,
-        columns=["species", "mhc", "peptide", "peptide_length", "meas"])
-
-    # filter out post-translation modifications and peptides with unknown
-    # residues
-    modified_peptide_mask = combined_df.peptide.str.contains("\+")
-    n_modified = modified_peptide_mask.sum()
-    if n_modified > 0:
-        print("Dropping %d modified peptides" % n_modified)
-        combined_df = combined_df[~modified_peptide_mask]
-
-    print("New entry allele distribution")
-    for (allele, count) in new_allele_counts.most_common():
-        print("%s: %d" % (allele, count))
-    print("Combined DataFrame size: %d (+%d)" % (
-        len(combined_df),
-        len(combined_df) - len(nielsen_data)))
-    print("Writing %s..." % args.output_csv_filename)
-    combined_df.to_csv(args.output_csv_filename, index=False)
diff --git a/downloads-generation/data_combined_iedb_kim2014/create-iedb-class1-dataset.py b/downloads-generation/data_combined_iedb_kim2014/create-iedb-class1-dataset.py
deleted file mode 100755
index 3c770a40..00000000
--- a/downloads-generation/data_combined_iedb_kim2014/create-iedb-class1-dataset.py
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Turn a raw CSV snapshot of the IEDB contents into a usable
-class I binding prediction dataset by grouping all unique pMHCs
-"""
-from collections import defaultdict
-import pickle
-import argparse
-
-import numpy as np
-import pandas as pd
-
-parser = argparse.ArgumentParser(usage=__doc__)
-
-parser.add_argument(
-    "--input-csv",
-    required=True,
-    help="CSV file with IEDB's MHC binding data.")
-
-parser.add_argument(
-    "--output-pickle-filename",
-    required=True,
-    help="Path to .pickle file containing dictionary of IEDB assay datasets.")
-
-parser.add_argument(
-    "--alleles",
-    metavar="ALLELE",
-    nargs="+",
-    default=[],
-    help="Restrict dataset to specified alleles")
-
-
-def filter_class1_alleles(df):
-    mhc_class = df["MHC"]["MHC allele class"]
-    print("MHC class counts: \n%s" % (mhc_class.value_counts(),))
-    class1_mask = mhc_class == "I"
-    return df[class1_mask]
-
-
-def filter_allele_names(df):
-    alleles = df["MHC"]["Allele Name"]
-    invalid_allele_mask = alleles.str.contains(" ") | alleles.str.contains("/")
-    invalid_alleles = alleles[invalid_allele_mask]
-    print("-- Invalid allele names: %s" % (list(sorted(set(invalid_alleles)))))
-    print("Dropping %d with complex alleles (e.g. descriptions of mutations)" %
-          len(invalid_alleles))
-    return df[~invalid_allele_mask]
-
-
-def filter_affinity_values(df):
-    affinities = df["Assay"]["Quantitative measurement"]
-    finite_affinity_mask = ~affinities.isnull() & np.isfinite(affinities)
-    invalid_affinity_mask = ~finite_affinity_mask
-
-    print("Dropping %d rows without finite affinity measurements" % (
-        invalid_affinity_mask.sum(),))
-    return df[finite_affinity_mask]
-
-
-def filter_mhc_dataframe(df):
-    filter_functions = [
-        filter_class1_alleles,
-        filter_allele_names,
-        filter_affinity_values,
-    ]
-
-    for fn in filter_functions:
-        df = fn(df)
-
-    return df
-
-
-def groupby_assay(df):
-    assay_group = df["Assay"]["Assay Group"]
-    assay_method = df["Assay"]["Method/Technique"]
-    groups = df.groupby([assay_group, assay_method])
-
-    # speed up repeated calls to np.log by caching log affinities as a column
-    # in the dataframe
-    df["_log_affinity"] = np.log(df["Assay"]["Quantitative measurement"])
-
-    # speed up computing percent positive with the helper column
-    qualitative = df["Assay"]["Qualitative Measure"]
-    df["_qualitative_positive"] = qualitative.str.startswith("Positive")
-    print("---")
-    print("Assays")
-    assay_dataframes = {}
-    # create a dataframe for every distinct kind of assay which is used
-    # by IEDB submitters to measure peptide-MHC affinity or stability
-    for (assay_group, assay_method), group_data in sorted(
-            groups,
-            key=lambda x: len(x[1]),
-            reverse=True):
-        print("- %s (%s): %d" % (assay_group, assay_method, len(group_data)))
-        group_alleles = group_data["MHC"]["Allele Name"]
-        group_peptides = group_data["Epitope"]["Description"]
-        distinct_pmhc = group_data.groupby([group_alleles, group_peptides])
-        columns = defaultdict(list)
-        for (allele, peptide), pmhc_group in distinct_pmhc:
-            columns["mhc"].append(allele)
-            columns["peptide"].append(peptide)
-            positive = pmhc_group["_qualitative_positive"]
-            count = len(pmhc_group)
-            if count == 1:
-                ic50 = pmhc_group["Assay"]["Quantitative measurement"].mean()
-            else:
-                ic50 = np.exp(np.mean(pmhc_group["_log_affinity"]))
-            # averaging the log affinities preserves orders of magnitude better
-            columns["value"].append(ic50)
-            columns["percent_positive"].append(positive.mean())
-            columns["count"].append(count)
-        assay_dataframes[(assay_group, assay_method)] = pd.DataFrame(
-            columns,
-            columns=[
-                "mhc",
-                "peptide",
-                "value",
-                "percent_positive",
-                "count"])
-        print("# distinct pMHC entries: %d" % len(columns["mhc"]))
-    return assay_dataframes
-
-if __name__ == "__main__":
-    args = parser.parse_args()
-    df = pd.read_csv(
-        args.input_csv,
-        error_bad_lines=False,
-        encoding="latin-1",
-        header=[0, 1])
-
-    df = filter_mhc_dataframe(df)
-
-    alleles = df["MHC"]["Allele Name"]
-
-    n = len(alleles)
-
-    print("# Class I rows: %d" % n)
-    print("# Class I alleles: %d" % len(set(alleles)))
-    print("Unique alleles: %s" % list(sorted(set(alleles))))
-
-    if args.alleles:
-        print("User-supplied allele whitelist: %s" % (args.alleles,))
-        mask = np.zeros(n, dtype=bool)
-        for pattern in args.alleles:
-            pattern_mask = alleles.str.startswith(pattern)
-            print("# %s: %d" % (pattern, pattern_mask.sum()))
-            mask |= pattern_mask
-        df = df[mask]
-        print("# entries matching alleles %s: %d" % (
-            args.alleles,
-            len(df)))
-
-    assay_dataframes = groupby_assay(df)
-
-    with open(args.output_pickle_filename, "wb") as f:
-        pickle.dump(assay_dataframes, f, pickle.HIGHEST_PROTOCOL)
diff --git a/downloads-generation/data_combined_iedb_kim2014/GENERATE.sh b/downloads-generation/data_iedb/GENERATE.sh
similarity index 50%
rename from downloads-generation/data_combined_iedb_kim2014/GENERATE.sh
rename to downloads-generation/data_iedb/GENERATE.sh
index 562a320d..5e16b6ce 100755
--- a/downloads-generation/data_combined_iedb_kim2014/GENERATE.sh
+++ b/downloads-generation/data_iedb/GENERATE.sh
@@ -3,10 +3,9 @@
 set -e
 set -x
 
-DOWNLOAD_NAME=data_combined_iedb_kim2014
+DOWNLOAD_NAME=data_iedb
 SCRATCH_DIR=/tmp/mhcflurry-downloads-generation
 SCRIPT_ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
-SCRIPT_DIR=$(dirname "$SCRIPT_ABSOLUTE_PATH")
 
 mkdir -p "$SCRATCH_DIR"
 rm -rf "$SCRATCH_DIR/$DOWNLOAD_NAME"
@@ -18,28 +17,13 @@ exec 2> >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt" >&2)
 
 # Log some environment info
 date
-pip freeze
-git rev-parse HEAD
-git status
 
-cd "$SCRATCH_DIR/$DOWNLOAD_NAME"
-
-mkdir .tmp  # By starting with a dot, we won't include it in the tar archive
-cd .tmp
+cd $SCRATCH_DIR/$DOWNLOAD_NAME
 
 wget --quiet http://www.iedb.org/doc/mhc_ligand_full.zip
 unzip mhc_ligand_full.zip
+rm mhc_ligand_full.zip
 
-$SCRIPT_DIR/create-iedb-class1-dataset.py \
-    --input-csv mhc_ligand_full.csv \
-    --output-pickle-filename iedb_human_class1_assay_datasets.pickle
-
-$SCRIPT_DIR/create-combined-class1-dataset.py \
-    --iedb-pickle-path iedb_human_class1_assay_datasets.pickle \
-    --netmhcpan-csv-path "$(mhcflurry-downloads path data_kim2014)/bdata.20130222.mhci.public.1.txt" \
-    --output-csv-filename ../combined_human_class1_dataset.csv
-
-cd ..
 cp $SCRIPT_ABSOLUTE_PATH .
 tar -cjf "../${DOWNLOAD_NAME}.tar.bz2" *
 
diff --git a/downloads-generation/models_class1_allele_specific_ensemble/GENERATE.sh b/downloads-generation/models_class1_allele_specific_ensemble/GENERATE.sh
deleted file mode 100755
index 0e45c61f..00000000
--- a/downloads-generation/models_class1_allele_specific_ensemble/GENERATE.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-
-if [[ $# -eq 0 ]] ; then
-    echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train'
-    echo 'See README.md'
-fi
-
-set -e
-set -x
-
-DOWNLOAD_NAME=models_class1_allele_specific_ensemble
-SCRATCH_DIR=/tmp/mhcflurry-downloads-generation
-SCRIPT_ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
-SCRIPT_DIR=$(dirname "$SCRIPT_ABSOLUTE_PATH")
-export PYTHONUNBUFFERED=1
-
-mkdir -p "$SCRATCH_DIR"
-rm -rf "$SCRATCH_DIR/$DOWNLOAD_NAME"
-mkdir "$SCRATCH_DIR/$DOWNLOAD_NAME"
-
-# Send stdout and stderr to a logfile included with the archive.
-exec >  >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt")
-exec 2> >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt" >&2)
-
-# Log some environment info
-date
-pip freeze
-git rev-parse HEAD
-git status
-
-cd $SCRATCH_DIR/$DOWNLOAD_NAME
-
-mkdir models
-
-cp $SCRIPT_DIR/models.py .
-python models.py > models.json
-
-time mhcflurry-class1-allele-specific-ensemble-train \
-    --ensemble-size 16 \
-    --model-architectures models.json \
-    --train-data "$(mhcflurry-downloads path data_combined_iedb_kim2014)/combined_human_class1_dataset.csv" \
-    --min-samples-per-allele 20 \
-    --out-manifest selected_models.csv \
-    --out-model-selection-manifest all_models.csv \
-    --out-models models \
-    --verbose \
-    "$@"
-
-bzip2 all_models.csv
-cp $SCRIPT_ABSOLUTE_PATH .
-tar -cjf "../${DOWNLOAD_NAME}.tar.bz2" *
-
-echo "Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2"
diff --git a/downloads-generation/models_class1_allele_specific_ensemble/README.md b/downloads-generation/models_class1_allele_specific_ensemble/README.md
deleted file mode 100644
index 604852a6..00000000
--- a/downloads-generation/models_class1_allele_specific_ensemble/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Class I allele-specific models (ensemble)
-
-This download contains trained MHC Class I allele-specific MHCflurry models. For each allele, an ensemble of predictors is trained on random halves of the training data. Model architectures are selected based on performance on the other half of the dataset, so in general each ensemble contains predictors of different architectures. At prediction time the geometric mean IC50 is taken over the trained models. The training data used is in the [data_combined_iedb_kim2014](../data_combined_iedb_kim2014) MHCflurry download.
-
-The training script supports multi-node parallel execution using the [kubeface](https://github.com/hammerlab/kubeface) library.
-
-To use kubeface, you should make a google storage bucket and pass it below with the --storage-prefix argument. 
-
-To generate this download we run:
-
-```
-./GENERATE.sh \
-    --parallel-backend kubeface \
-    --target-tasks 200 \
-    --kubeface-backend kubernetes \
-    --kubeface-storage gs://kubeface-tim \
-    --kubeface-worker-image hammerlab/mhcflurry-misc:latest \
-    --kubeface-kubernetes-task-resources-memory-mb 10000 \
-    --kubeface-worker-path-prefix venv-py3/bin \
-    --kubeface-max-simultaneous-tasks 200 \
-    --kubeface-speculation-max-reruns 3 \
-```
-
-To debug locally:
-```
-./GENERATE.sh \
-    --parallel-backend local-threads \
-    --target-tasks 1
-```
diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/README.md b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/README.md
deleted file mode 100644
index 3cf13db5..00000000
--- a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Class1 allele-specific ensemble models
-
-To generate the report, run:
-
-```
-time jupyter-nbconvert report.ipynb \
-    --execute \
-    --ExecutePreprocessor.kernel_name=python \
-    --ExecutePreprocessor.timeout=60 \
-    --to html \
-    --stdout > report.html
-```
diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html
deleted file mode 100644
index a98510c0..00000000
--- a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html
+++ /dev/null
@@ -1,18543 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head><meta charset="utf-8" />
-<title>report</title>
-
-<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
-<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
-
-<style type="text/css">
-    /*!
-*
-* Twitter Bootstrap
-*
-*/
-/*!
- * Bootstrap v3.3.6 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
-html {
-  font-family: sans-serif;
-  -ms-text-size-adjust: 100%;
-  -webkit-text-size-adjust: 100%;
-}
-body {
-  margin: 0;
-}
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
-  display: block;
-}
-audio,
-canvas,
-progress,
-video {
-  display: inline-block;
-  vertical-align: baseline;
-}
-audio:not([controls]) {
-  display: none;
-  height: 0;
-}
-[hidden],
-template {
-  display: none;
-}
-a {
-  background-color: transparent;
-}
-a:active,
-a:hover {
-  outline: 0;
-}
-abbr[title] {
-  border-bottom: 1px dotted;
-}
-b,
-strong {
-  font-weight: bold;
-}
-dfn {
-  font-style: italic;
-}
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0;
-}
-mark {
-  background: #ff0;
-  color: #000;
-}
-small {
-  font-size: 80%;
-}
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline;
-}
-sup {
-  top: -0.5em;
-}
-sub {
-  bottom: -0.25em;
-}
-img {
-  border: 0;
-}
-svg:not(:root) {
-  overflow: hidden;
-}
-figure {
-  margin: 1em 40px;
-}
-hr {
-  box-sizing: content-box;
-  height: 0;
-}
-pre {
-  overflow: auto;
-}
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em;
-}
-button,
-input,
-optgroup,
-select,
-textarea {
-  color: inherit;
-  font: inherit;
-  margin: 0;
-}
-button {
-  overflow: visible;
-}
-button,
-select {
-  text-transform: none;
-}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-  -webkit-appearance: button;
-  cursor: pointer;
-}
-button[disabled],
-html input[disabled] {
-  cursor: default;
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  border: 0;
-  padding: 0;
-}
-input {
-  line-height: normal;
-}
-input[type="checkbox"],
-input[type="radio"] {
-  box-sizing: border-box;
-  padding: 0;
-}
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-input[type="search"] {
-  -webkit-appearance: textfield;
-  box-sizing: content-box;
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-fieldset {
-  border: 1px solid #c0c0c0;
-  margin: 0 2px;
-  padding: 0.35em 0.625em 0.75em;
-}
-legend {
-  border: 0;
-  padding: 0;
-}
-textarea {
-  overflow: auto;
-}
-optgroup {
-  font-weight: bold;
-}
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-td,
-th {
-  padding: 0;
-}
-/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
-@media print {
-  *,
-  *:before,
-  *:after {
-    background: transparent !important;
-    color: #000 !important;
-    box-shadow: none !important;
-    text-shadow: none !important;
-  }
-  a,
-  a:visited {
-    text-decoration: underline;
-  }
-  a[href]:after {
-    content: " (" attr(href) ")";
-  }
-  abbr[title]:after {
-    content: " (" attr(title) ")";
-  }
-  a[href^="#"]:after,
-  a[href^="javascript:"]:after {
-    content: "";
-  }
-  pre,
-  blockquote {
-    border: 1px solid #999;
-    page-break-inside: avoid;
-  }
-  thead {
-    display: table-header-group;
-  }
-  tr,
-  img {
-    page-break-inside: avoid;
-  }
-  img {
-    max-width: 100% !important;
-  }
-  p,
-  h2,
-  h3 {
-    orphans: 3;
-    widows: 3;
-  }
-  h2,
-  h3 {
-    page-break-after: avoid;
-  }
-  .navbar {
-    display: none;
-  }
-  .btn > .caret,
-  .dropup > .btn > .caret {
-    border-top-color: #000 !important;
-  }
-  .label {
-    border: 1px solid #000;
-  }
-  .table {
-    border-collapse: collapse !important;
-  }
-  .table td,
-  .table th {
-    background-color: #fff !important;
-  }
-  .table-bordered th,
-  .table-bordered td {
-    border: 1px solid #ddd !important;
-  }
-}
-@font-face {
-  font-family: 'Glyphicons Halflings';
-  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
-  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
-}
-.glyphicon {
-  position: relative;
-  top: 1px;
-  display: inline-block;
-  font-family: 'Glyphicons Halflings';
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-.glyphicon-asterisk:before {
-  content: "\002a";
-}
-.glyphicon-plus:before {
-  content: "\002b";
-}
-.glyphicon-euro:before,
-.glyphicon-eur:before {
-  content: "\20ac";
-}
-.glyphicon-minus:before {
-  content: "\2212";
-}
-.glyphicon-cloud:before {
-  content: "\2601";
-}
-.glyphicon-envelope:before {
-  content: "\2709";
-}
-.glyphicon-pencil:before {
-  content: "\270f";
-}
-.glyphicon-glass:before {
-  content: "\e001";
-}
-.glyphicon-music:before {
-  content: "\e002";
-}
-.glyphicon-search:before {
-  content: "\e003";
-}
-.glyphicon-heart:before {
-  content: "\e005";
-}
-.glyphicon-star:before {
-  content: "\e006";
-}
-.glyphicon-star-empty:before {
-  content: "\e007";
-}
-.glyphicon-user:before {
-  content: "\e008";
-}
-.glyphicon-film:before {
-  content: "\e009";
-}
-.glyphicon-th-large:before {
-  content: "\e010";
-}
-.glyphicon-th:before {
-  content: "\e011";
-}
-.glyphicon-th-list:before {
-  content: "\e012";
-}
-.glyphicon-ok:before {
-  content: "\e013";
-}
-.glyphicon-remove:before {
-  content: "\e014";
-}
-.glyphicon-zoom-in:before {
-  content: "\e015";
-}
-.glyphicon-zoom-out:before {
-  content: "\e016";
-}
-.glyphicon-off:before {
-  content: "\e017";
-}
-.glyphicon-signal:before {
-  content: "\e018";
-}
-.glyphicon-cog:before {
-  content: "\e019";
-}
-.glyphicon-trash:before {
-  content: "\e020";
-}
-.glyphicon-home:before {
-  content: "\e021";
-}
-.glyphicon-file:before {
-  content: "\e022";
-}
-.glyphicon-time:before {
-  content: "\e023";
-}
-.glyphicon-road:before {
-  content: "\e024";
-}
-.glyphicon-download-alt:before {
-  content: "\e025";
-}
-.glyphicon-download:before {
-  content: "\e026";
-}
-.glyphicon-upload:before {
-  content: "\e027";
-}
-.glyphicon-inbox:before {
-  content: "\e028";
-}
-.glyphicon-play-circle:before {
-  content: "\e029";
-}
-.glyphicon-repeat:before {
-  content: "\e030";
-}
-.glyphicon-refresh:before {
-  content: "\e031";
-}
-.glyphicon-list-alt:before {
-  content: "\e032";
-}
-.glyphicon-lock:before {
-  content: "\e033";
-}
-.glyphicon-flag:before {
-  content: "\e034";
-}
-.glyphicon-headphones:before {
-  content: "\e035";
-}
-.glyphicon-volume-off:before {
-  content: "\e036";
-}
-.glyphicon-volume-down:before {
-  content: "\e037";
-}
-.glyphicon-volume-up:before {
-  content: "\e038";
-}
-.glyphicon-qrcode:before {
-  content: "\e039";
-}
-.glyphicon-barcode:before {
-  content: "\e040";
-}
-.glyphicon-tag:before {
-  content: "\e041";
-}
-.glyphicon-tags:before {
-  content: "\e042";
-}
-.glyphicon-book:before {
-  content: "\e043";
-}
-.glyphicon-bookmark:before {
-  content: "\e044";
-}
-.glyphicon-print:before {
-  content: "\e045";
-}
-.glyphicon-camera:before {
-  content: "\e046";
-}
-.glyphicon-font:before {
-  content: "\e047";
-}
-.glyphicon-bold:before {
-  content: "\e048";
-}
-.glyphicon-italic:before {
-  content: "\e049";
-}
-.glyphicon-text-height:before {
-  content: "\e050";
-}
-.glyphicon-text-width:before {
-  content: "\e051";
-}
-.glyphicon-align-left:before {
-  content: "\e052";
-}
-.glyphicon-align-center:before {
-  content: "\e053";
-}
-.glyphicon-align-right:before {
-  content: "\e054";
-}
-.glyphicon-align-justify:before {
-  content: "\e055";
-}
-.glyphicon-list:before {
-  content: "\e056";
-}
-.glyphicon-indent-left:before {
-  content: "\e057";
-}
-.glyphicon-indent-right:before {
-  content: "\e058";
-}
-.glyphicon-facetime-video:before {
-  content: "\e059";
-}
-.glyphicon-picture:before {
-  content: "\e060";
-}
-.glyphicon-map-marker:before {
-  content: "\e062";
-}
-.glyphicon-adjust:before {
-  content: "\e063";
-}
-.glyphicon-tint:before {
-  content: "\e064";
-}
-.glyphicon-edit:before {
-  content: "\e065";
-}
-.glyphicon-share:before {
-  content: "\e066";
-}
-.glyphicon-check:before {
-  content: "\e067";
-}
-.glyphicon-move:before {
-  content: "\e068";
-}
-.glyphicon-step-backward:before {
-  content: "\e069";
-}
-.glyphicon-fast-backward:before {
-  content: "\e070";
-}
-.glyphicon-backward:before {
-  content: "\e071";
-}
-.glyphicon-play:before {
-  content: "\e072";
-}
-.glyphicon-pause:before {
-  content: "\e073";
-}
-.glyphicon-stop:before {
-  content: "\e074";
-}
-.glyphicon-forward:before {
-  content: "\e075";
-}
-.glyphicon-fast-forward:before {
-  content: "\e076";
-}
-.glyphicon-step-forward:before {
-  content: "\e077";
-}
-.glyphicon-eject:before {
-  content: "\e078";
-}
-.glyphicon-chevron-left:before {
-  content: "\e079";
-}
-.glyphicon-chevron-right:before {
-  content: "\e080";
-}
-.glyphicon-plus-sign:before {
-  content: "\e081";
-}
-.glyphicon-minus-sign:before {
-  content: "\e082";
-}
-.glyphicon-remove-sign:before {
-  content: "\e083";
-}
-.glyphicon-ok-sign:before {
-  content: "\e084";
-}
-.glyphicon-question-sign:before {
-  content: "\e085";
-}
-.glyphicon-info-sign:before {
-  content: "\e086";
-}
-.glyphicon-screenshot:before {
-  content: "\e087";
-}
-.glyphicon-remove-circle:before {
-  content: "\e088";
-}
-.glyphicon-ok-circle:before {
-  content: "\e089";
-}
-.glyphicon-ban-circle:before {
-  content: "\e090";
-}
-.glyphicon-arrow-left:before {
-  content: "\e091";
-}
-.glyphicon-arrow-right:before {
-  content: "\e092";
-}
-.glyphicon-arrow-up:before {
-  content: "\e093";
-}
-.glyphicon-arrow-down:before {
-  content: "\e094";
-}
-.glyphicon-share-alt:before {
-  content: "\e095";
-}
-.glyphicon-resize-full:before {
-  content: "\e096";
-}
-.glyphicon-resize-small:before {
-  content: "\e097";
-}
-.glyphicon-exclamation-sign:before {
-  content: "\e101";
-}
-.glyphicon-gift:before {
-  content: "\e102";
-}
-.glyphicon-leaf:before {
-  content: "\e103";
-}
-.glyphicon-fire:before {
-  content: "\e104";
-}
-.glyphicon-eye-open:before {
-  content: "\e105";
-}
-.glyphicon-eye-close:before {
-  content: "\e106";
-}
-.glyphicon-warning-sign:before {
-  content: "\e107";
-}
-.glyphicon-plane:before {
-  content: "\e108";
-}
-.glyphicon-calendar:before {
-  content: "\e109";
-}
-.glyphicon-random:before {
-  content: "\e110";
-}
-.glyphicon-comment:before {
-  content: "\e111";
-}
-.glyphicon-magnet:before {
-  content: "\e112";
-}
-.glyphicon-chevron-up:before {
-  content: "\e113";
-}
-.glyphicon-chevron-down:before {
-  content: "\e114";
-}
-.glyphicon-retweet:before {
-  content: "\e115";
-}
-.glyphicon-shopping-cart:before {
-  content: "\e116";
-}
-.glyphicon-folder-close:before {
-  content: "\e117";
-}
-.glyphicon-folder-open:before {
-  content: "\e118";
-}
-.glyphicon-resize-vertical:before {
-  content: "\e119";
-}
-.glyphicon-resize-horizontal:before {
-  content: "\e120";
-}
-.glyphicon-hdd:before {
-  content: "\e121";
-}
-.glyphicon-bullhorn:before {
-  content: "\e122";
-}
-.glyphicon-bell:before {
-  content: "\e123";
-}
-.glyphicon-certificate:before {
-  content: "\e124";
-}
-.glyphicon-thumbs-up:before {
-  content: "\e125";
-}
-.glyphicon-thumbs-down:before {
-  content: "\e126";
-}
-.glyphicon-hand-right:before {
-  content: "\e127";
-}
-.glyphicon-hand-left:before {
-  content: "\e128";
-}
-.glyphicon-hand-up:before {
-  content: "\e129";
-}
-.glyphicon-hand-down:before {
-  content: "\e130";
-}
-.glyphicon-circle-arrow-right:before {
-  content: "\e131";
-}
-.glyphicon-circle-arrow-left:before {
-  content: "\e132";
-}
-.glyphicon-circle-arrow-up:before {
-  content: "\e133";
-}
-.glyphicon-circle-arrow-down:before {
-  content: "\e134";
-}
-.glyphicon-globe:before {
-  content: "\e135";
-}
-.glyphicon-wrench:before {
-  content: "\e136";
-}
-.glyphicon-tasks:before {
-  content: "\e137";
-}
-.glyphicon-filter:before {
-  content: "\e138";
-}
-.glyphicon-briefcase:before {
-  content: "\e139";
-}
-.glyphicon-fullscreen:before {
-  content: "\e140";
-}
-.glyphicon-dashboard:before {
-  content: "\e141";
-}
-.glyphicon-paperclip:before {
-  content: "\e142";
-}
-.glyphicon-heart-empty:before {
-  content: "\e143";
-}
-.glyphicon-link:before {
-  content: "\e144";
-}
-.glyphicon-phone:before {
-  content: "\e145";
-}
-.glyphicon-pushpin:before {
-  content: "\e146";
-}
-.glyphicon-usd:before {
-  content: "\e148";
-}
-.glyphicon-gbp:before {
-  content: "\e149";
-}
-.glyphicon-sort:before {
-  content: "\e150";
-}
-.glyphicon-sort-by-alphabet:before {
-  content: "\e151";
-}
-.glyphicon-sort-by-alphabet-alt:before {
-  content: "\e152";
-}
-.glyphicon-sort-by-order:before {
-  content: "\e153";
-}
-.glyphicon-sort-by-order-alt:before {
-  content: "\e154";
-}
-.glyphicon-sort-by-attributes:before {
-  content: "\e155";
-}
-.glyphicon-sort-by-attributes-alt:before {
-  content: "\e156";
-}
-.glyphicon-unchecked:before {
-  content: "\e157";
-}
-.glyphicon-expand:before {
-  content: "\e158";
-}
-.glyphicon-collapse-down:before {
-  content: "\e159";
-}
-.glyphicon-collapse-up:before {
-  content: "\e160";
-}
-.glyphicon-log-in:before {
-  content: "\e161";
-}
-.glyphicon-flash:before {
-  content: "\e162";
-}
-.glyphicon-log-out:before {
-  content: "\e163";
-}
-.glyphicon-new-window:before {
-  content: "\e164";
-}
-.glyphicon-record:before {
-  content: "\e165";
-}
-.glyphicon-save:before {
-  content: "\e166";
-}
-.glyphicon-open:before {
-  content: "\e167";
-}
-.glyphicon-saved:before {
-  content: "\e168";
-}
-.glyphicon-import:before {
-  content: "\e169";
-}
-.glyphicon-export:before {
-  content: "\e170";
-}
-.glyphicon-send:before {
-  content: "\e171";
-}
-.glyphicon-floppy-disk:before {
-  content: "\e172";
-}
-.glyphicon-floppy-saved:before {
-  content: "\e173";
-}
-.glyphicon-floppy-remove:before {
-  content: "\e174";
-}
-.glyphicon-floppy-save:before {
-  content: "\e175";
-}
-.glyphicon-floppy-open:before {
-  content: "\e176";
-}
-.glyphicon-credit-card:before {
-  content: "\e177";
-}
-.glyphicon-transfer:before {
-  content: "\e178";
-}
-.glyphicon-cutlery:before {
-  content: "\e179";
-}
-.glyphicon-header:before {
-  content: "\e180";
-}
-.glyphicon-compressed:before {
-  content: "\e181";
-}
-.glyphicon-earphone:before {
-  content: "\e182";
-}
-.glyphicon-phone-alt:before {
-  content: "\e183";
-}
-.glyphicon-tower:before {
-  content: "\e184";
-}
-.glyphicon-stats:before {
-  content: "\e185";
-}
-.glyphicon-sd-video:before {
-  content: "\e186";
-}
-.glyphicon-hd-video:before {
-  content: "\e187";
-}
-.glyphicon-subtitles:before {
-  content: "\e188";
-}
-.glyphicon-sound-stereo:before {
-  content: "\e189";
-}
-.glyphicon-sound-dolby:before {
-  content: "\e190";
-}
-.glyphicon-sound-5-1:before {
-  content: "\e191";
-}
-.glyphicon-sound-6-1:before {
-  content: "\e192";
-}
-.glyphicon-sound-7-1:before {
-  content: "\e193";
-}
-.glyphicon-copyright-mark:before {
-  content: "\e194";
-}
-.glyphicon-registration-mark:before {
-  content: "\e195";
-}
-.glyphicon-cloud-download:before {
-  content: "\e197";
-}
-.glyphicon-cloud-upload:before {
-  content: "\e198";
-}
-.glyphicon-tree-conifer:before {
-  content: "\e199";
-}
-.glyphicon-tree-deciduous:before {
-  content: "\e200";
-}
-.glyphicon-cd:before {
-  content: "\e201";
-}
-.glyphicon-save-file:before {
-  content: "\e202";
-}
-.glyphicon-open-file:before {
-  content: "\e203";
-}
-.glyphicon-level-up:before {
-  content: "\e204";
-}
-.glyphicon-copy:before {
-  content: "\e205";
-}
-.glyphicon-paste:before {
-  content: "\e206";
-}
-.glyphicon-alert:before {
-  content: "\e209";
-}
-.glyphicon-equalizer:before {
-  content: "\e210";
-}
-.glyphicon-king:before {
-  content: "\e211";
-}
-.glyphicon-queen:before {
-  content: "\e212";
-}
-.glyphicon-pawn:before {
-  content: "\e213";
-}
-.glyphicon-bishop:before {
-  content: "\e214";
-}
-.glyphicon-knight:before {
-  content: "\e215";
-}
-.glyphicon-baby-formula:before {
-  content: "\e216";
-}
-.glyphicon-tent:before {
-  content: "\26fa";
-}
-.glyphicon-blackboard:before {
-  content: "\e218";
-}
-.glyphicon-bed:before {
-  content: "\e219";
-}
-.glyphicon-apple:before {
-  content: "\f8ff";
-}
-.glyphicon-erase:before {
-  content: "\e221";
-}
-.glyphicon-hourglass:before {
-  content: "\231b";
-}
-.glyphicon-lamp:before {
-  content: "\e223";
-}
-.glyphicon-duplicate:before {
-  content: "\e224";
-}
-.glyphicon-piggy-bank:before {
-  content: "\e225";
-}
-.glyphicon-scissors:before {
-  content: "\e226";
-}
-.glyphicon-bitcoin:before {
-  content: "\e227";
-}
-.glyphicon-btc:before {
-  content: "\e227";
-}
-.glyphicon-xbt:before {
-  content: "\e227";
-}
-.glyphicon-yen:before {
-  content: "\00a5";
-}
-.glyphicon-jpy:before {
-  content: "\00a5";
-}
-.glyphicon-ruble:before {
-  content: "\20bd";
-}
-.glyphicon-rub:before {
-  content: "\20bd";
-}
-.glyphicon-scale:before {
-  content: "\e230";
-}
-.glyphicon-ice-lolly:before {
-  content: "\e231";
-}
-.glyphicon-ice-lolly-tasted:before {
-  content: "\e232";
-}
-.glyphicon-education:before {
-  content: "\e233";
-}
-.glyphicon-option-horizontal:before {
-  content: "\e234";
-}
-.glyphicon-option-vertical:before {
-  content: "\e235";
-}
-.glyphicon-menu-hamburger:before {
-  content: "\e236";
-}
-.glyphicon-modal-window:before {
-  content: "\e237";
-}
-.glyphicon-oil:before {
-  content: "\e238";
-}
-.glyphicon-grain:before {
-  content: "\e239";
-}
-.glyphicon-sunglasses:before {
-  content: "\e240";
-}
-.glyphicon-text-size:before {
-  content: "\e241";
-}
-.glyphicon-text-color:before {
-  content: "\e242";
-}
-.glyphicon-text-background:before {
-  content: "\e243";
-}
-.glyphicon-object-align-top:before {
-  content: "\e244";
-}
-.glyphicon-object-align-bottom:before {
-  content: "\e245";
-}
-.glyphicon-object-align-horizontal:before {
-  content: "\e246";
-}
-.glyphicon-object-align-left:before {
-  content: "\e247";
-}
-.glyphicon-object-align-vertical:before {
-  content: "\e248";
-}
-.glyphicon-object-align-right:before {
-  content: "\e249";
-}
-.glyphicon-triangle-right:before {
-  content: "\e250";
-}
-.glyphicon-triangle-left:before {
-  content: "\e251";
-}
-.glyphicon-triangle-bottom:before {
-  content: "\e252";
-}
-.glyphicon-triangle-top:before {
-  content: "\e253";
-}
-.glyphicon-console:before {
-  content: "\e254";
-}
-.glyphicon-superscript:before {
-  content: "\e255";
-}
-.glyphicon-subscript:before {
-  content: "\e256";
-}
-.glyphicon-menu-left:before {
-  content: "\e257";
-}
-.glyphicon-menu-right:before {
-  content: "\e258";
-}
-.glyphicon-menu-down:before {
-  content: "\e259";
-}
-.glyphicon-menu-up:before {
-  content: "\e260";
-}
-* {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-*:before,
-*:after {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-html {
-  font-size: 10px;
-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-body {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 1.42857143;
-  color: #000;
-  background-color: #fff;
-}
-input,
-button,
-select,
-textarea {
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit;
-}
-a {
-  color: #337ab7;
-  text-decoration: none;
-}
-a:hover,
-a:focus {
-  color: #23527c;
-  text-decoration: underline;
-}
-a:focus {
-  outline: thin dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-figure {
-  margin: 0;
-}
-img {
-  vertical-align: middle;
-}
-.img-responsive,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  display: block;
-  max-width: 100%;
-  height: auto;
-}
-.img-rounded {
-  border-radius: 3px;
-}
-.img-thumbnail {
-  padding: 4px;
-  line-height: 1.42857143;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 2px;
-  -webkit-transition: all 0.2s ease-in-out;
-  -o-transition: all 0.2s ease-in-out;
-  transition: all 0.2s ease-in-out;
-  display: inline-block;
-  max-width: 100%;
-  height: auto;
-}
-.img-circle {
-  border-radius: 50%;
-}
-hr {
-  margin-top: 18px;
-  margin-bottom: 18px;
-  border: 0;
-  border-top: 1px solid #eeeeee;
-}
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-}
-.sr-only-focusable:active,
-.sr-only-focusable:focus {
-  position: static;
-  width: auto;
-  height: auto;
-  margin: 0;
-  overflow: visible;
-  clip: auto;
-}
-[role="button"] {
-  cursor: pointer;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
-  font-family: inherit;
-  font-weight: 500;
-  line-height: 1.1;
-  color: inherit;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
-  font-weight: normal;
-  line-height: 1;
-  color: #777777;
-}
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
-  margin-top: 18px;
-  margin-bottom: 9px;
-}
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
-  font-size: 65%;
-}
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
-  margin-top: 9px;
-  margin-bottom: 9px;
-}
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
-  font-size: 75%;
-}
-h1,
-.h1 {
-  font-size: 33px;
-}
-h2,
-.h2 {
-  font-size: 27px;
-}
-h3,
-.h3 {
-  font-size: 23px;
-}
-h4,
-.h4 {
-  font-size: 17px;
-}
-h5,
-.h5 {
-  font-size: 13px;
-}
-h6,
-.h6 {
-  font-size: 12px;
-}
-p {
-  margin: 0 0 9px;
-}
-.lead {
-  margin-bottom: 18px;
-  font-size: 14px;
-  font-weight: 300;
-  line-height: 1.4;
-}
-@media (min-width: 768px) {
-  .lead {
-    font-size: 19.5px;
-  }
-}
-small,
-.small {
-  font-size: 92%;
-}
-mark,
-.mark {
-  background-color: #fcf8e3;
-  padding: .2em;
-}
-.text-left {
-  text-align: left;
-}
-.text-right {
-  text-align: right;
-}
-.text-center {
-  text-align: center;
-}
-.text-justify {
-  text-align: justify;
-}
-.text-nowrap {
-  white-space: nowrap;
-}
-.text-lowercase {
-  text-transform: lowercase;
-}
-.text-uppercase {
-  text-transform: uppercase;
-}
-.text-capitalize {
-  text-transform: capitalize;
-}
-.text-muted {
-  color: #777777;
-}
-.text-primary {
-  color: #337ab7;
-}
-a.text-primary:hover,
-a.text-primary:focus {
-  color: #286090;
-}
-.text-success {
-  color: #3c763d;
-}
-a.text-success:hover,
-a.text-success:focus {
-  color: #2b542c;
-}
-.text-info {
-  color: #31708f;
-}
-a.text-info:hover,
-a.text-info:focus {
-  color: #245269;
-}
-.text-warning {
-  color: #8a6d3b;
-}
-a.text-warning:hover,
-a.text-warning:focus {
-  color: #66512c;
-}
-.text-danger {
-  color: #a94442;
-}
-a.text-danger:hover,
-a.text-danger:focus {
-  color: #843534;
-}
-.bg-primary {
-  color: #fff;
-  background-color: #337ab7;
-}
-a.bg-primary:hover,
-a.bg-primary:focus {
-  background-color: #286090;
-}
-.bg-success {
-  background-color: #dff0d8;
-}
-a.bg-success:hover,
-a.bg-success:focus {
-  background-color: #c1e2b3;
-}
-.bg-info {
-  background-color: #d9edf7;
-}
-a.bg-info:hover,
-a.bg-info:focus {
-  background-color: #afd9ee;
-}
-.bg-warning {
-  background-color: #fcf8e3;
-}
-a.bg-warning:hover,
-a.bg-warning:focus {
-  background-color: #f7ecb5;
-}
-.bg-danger {
-  background-color: #f2dede;
-}
-a.bg-danger:hover,
-a.bg-danger:focus {
-  background-color: #e4b9b9;
-}
-.page-header {
-  padding-bottom: 8px;
-  margin: 36px 0 18px;
-  border-bottom: 1px solid #eeeeee;
-}
-ul,
-ol {
-  margin-top: 0;
-  margin-bottom: 9px;
-}
-ul ul,
-ol ul,
-ul ol,
-ol ol {
-  margin-bottom: 0;
-}
-.list-unstyled {
-  padding-left: 0;
-  list-style: none;
-}
-.list-inline {
-  padding-left: 0;
-  list-style: none;
-  margin-left: -5px;
-}
-.list-inline > li {
-  display: inline-block;
-  padding-left: 5px;
-  padding-right: 5px;
-}
-dl {
-  margin-top: 0;
-  margin-bottom: 18px;
-}
-dt,
-dd {
-  line-height: 1.42857143;
-}
-dt {
-  font-weight: bold;
-}
-dd {
-  margin-left: 0;
-}
-@media (min-width: 541px) {
-  .dl-horizontal dt {
-    float: left;
-    width: 160px;
-    clear: left;
-    text-align: right;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-  .dl-horizontal dd {
-    margin-left: 180px;
-  }
-}
-abbr[title],
-abbr[data-original-title] {
-  cursor: help;
-  border-bottom: 1px dotted #777777;
-}
-.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
-}
-blockquote {
-  padding: 9px 18px;
-  margin: 0 0 18px;
-  font-size: inherit;
-  border-left: 5px solid #eeeeee;
-}
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
-  margin-bottom: 0;
-}
-blockquote footer,
-blockquote small,
-blockquote .small {
-  display: block;
-  font-size: 80%;
-  line-height: 1.42857143;
-  color: #777777;
-}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
-  content: '\2014 \00A0';
-}
-.blockquote-reverse,
-blockquote.pull-right {
-  padding-right: 15px;
-  padding-left: 0;
-  border-right: 5px solid #eeeeee;
-  border-left: 0;
-  text-align: right;
-}
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
-  content: '';
-}
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
-  content: '\00A0 \2014';
-}
-address {
-  margin-bottom: 18px;
-  font-style: normal;
-  line-height: 1.42857143;
-}
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace;
-}
-code {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #c7254e;
-  background-color: #f9f2f4;
-  border-radius: 2px;
-}
-kbd {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #888;
-  background-color: transparent;
-  border-radius: 1px;
-  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-kbd kbd {
-  padding: 0;
-  font-size: 100%;
-  font-weight: bold;
-  box-shadow: none;
-}
-pre {
-  display: block;
-  padding: 8.5px;
-  margin: 0 0 9px;
-  font-size: 12px;
-  line-height: 1.42857143;
-  word-break: break-all;
-  word-wrap: break-word;
-  color: #333333;
-  background-color: #f5f5f5;
-  border: 1px solid #ccc;
-  border-radius: 2px;
-}
-pre code {
-  padding: 0;
-  font-size: inherit;
-  color: inherit;
-  white-space: pre-wrap;
-  background-color: transparent;
-  border-radius: 0;
-}
-.pre-scrollable {
-  max-height: 340px;
-  overflow-y: scroll;
-}
-.container {
-  margin-right: auto;
-  margin-left: auto;
-  padding-left: 0px;
-  padding-right: 0px;
-}
-@media (min-width: 768px) {
-  .container {
-    width: 768px;
-  }
-}
-@media (min-width: 992px) {
-  .container {
-    width: 940px;
-  }
-}
-@media (min-width: 1200px) {
-  .container {
-    width: 1140px;
-  }
-}
-.container-fluid {
-  margin-right: auto;
-  margin-left: auto;
-  padding-left: 0px;
-  padding-right: 0px;
-}
-.row {
-  margin-left: 0px;
-  margin-right: 0px;
-}
-.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
-  position: relative;
-  min-height: 1px;
-  padding-left: 0px;
-  padding-right: 0px;
-}
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
-  float: left;
-}
-.col-xs-12 {
-  width: 100%;
-}
-.col-xs-11 {
-  width: 91.66666667%;
-}
-.col-xs-10 {
-  width: 83.33333333%;
-}
-.col-xs-9 {
-  width: 75%;
-}
-.col-xs-8 {
-  width: 66.66666667%;
-}
-.col-xs-7 {
-  width: 58.33333333%;
-}
-.col-xs-6 {
-  width: 50%;
-}
-.col-xs-5 {
-  width: 41.66666667%;
-}
-.col-xs-4 {
-  width: 33.33333333%;
-}
-.col-xs-3 {
-  width: 25%;
-}
-.col-xs-2 {
-  width: 16.66666667%;
-}
-.col-xs-1 {
-  width: 8.33333333%;
-}
-.col-xs-pull-12 {
-  right: 100%;
-}
-.col-xs-pull-11 {
-  right: 91.66666667%;
-}
-.col-xs-pull-10 {
-  right: 83.33333333%;
-}
-.col-xs-pull-9 {
-  right: 75%;
-}
-.col-xs-pull-8 {
-  right: 66.66666667%;
-}
-.col-xs-pull-7 {
-  right: 58.33333333%;
-}
-.col-xs-pull-6 {
-  right: 50%;
-}
-.col-xs-pull-5 {
-  right: 41.66666667%;
-}
-.col-xs-pull-4 {
-  right: 33.33333333%;
-}
-.col-xs-pull-3 {
-  right: 25%;
-}
-.col-xs-pull-2 {
-  right: 16.66666667%;
-}
-.col-xs-pull-1 {
-  right: 8.33333333%;
-}
-.col-xs-pull-0 {
-  right: auto;
-}
-.col-xs-push-12 {
-  left: 100%;
-}
-.col-xs-push-11 {
-  left: 91.66666667%;
-}
-.col-xs-push-10 {
-  left: 83.33333333%;
-}
-.col-xs-push-9 {
-  left: 75%;
-}
-.col-xs-push-8 {
-  left: 66.66666667%;
-}
-.col-xs-push-7 {
-  left: 58.33333333%;
-}
-.col-xs-push-6 {
-  left: 50%;
-}
-.col-xs-push-5 {
-  left: 41.66666667%;
-}
-.col-xs-push-4 {
-  left: 33.33333333%;
-}
-.col-xs-push-3 {
-  left: 25%;
-}
-.col-xs-push-2 {
-  left: 16.66666667%;
-}
-.col-xs-push-1 {
-  left: 8.33333333%;
-}
-.col-xs-push-0 {
-  left: auto;
-}
-.col-xs-offset-12 {
-  margin-left: 100%;
-}
-.col-xs-offset-11 {
-  margin-left: 91.66666667%;
-}
-.col-xs-offset-10 {
-  margin-left: 83.33333333%;
-}
-.col-xs-offset-9 {
-  margin-left: 75%;
-}
-.col-xs-offset-8 {
-  margin-left: 66.66666667%;
-}
-.col-xs-offset-7 {
-  margin-left: 58.33333333%;
-}
-.col-xs-offset-6 {
-  margin-left: 50%;
-}
-.col-xs-offset-5 {
-  margin-left: 41.66666667%;
-}
-.col-xs-offset-4 {
-  margin-left: 33.33333333%;
-}
-.col-xs-offset-3 {
-  margin-left: 25%;
-}
-.col-xs-offset-2 {
-  margin-left: 16.66666667%;
-}
-.col-xs-offset-1 {
-  margin-left: 8.33333333%;
-}
-.col-xs-offset-0 {
-  margin-left: 0%;
-}
-@media (min-width: 768px) {
-  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
-    float: left;
-  }
-  .col-sm-12 {
-    width: 100%;
-  }
-  .col-sm-11 {
-    width: 91.66666667%;
-  }
-  .col-sm-10 {
-    width: 83.33333333%;
-  }
-  .col-sm-9 {
-    width: 75%;
-  }
-  .col-sm-8 {
-    width: 66.66666667%;
-  }
-  .col-sm-7 {
-    width: 58.33333333%;
-  }
-  .col-sm-6 {
-    width: 50%;
-  }
-  .col-sm-5 {
-    width: 41.66666667%;
-  }
-  .col-sm-4 {
-    width: 33.33333333%;
-  }
-  .col-sm-3 {
-    width: 25%;
-  }
-  .col-sm-2 {
-    width: 16.66666667%;
-  }
-  .col-sm-1 {
-    width: 8.33333333%;
-  }
-  .col-sm-pull-12 {
-    right: 100%;
-  }
-  .col-sm-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-sm-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-sm-pull-9 {
-    right: 75%;
-  }
-  .col-sm-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-sm-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-sm-pull-6 {
-    right: 50%;
-  }
-  .col-sm-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-sm-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-sm-pull-3 {
-    right: 25%;
-  }
-  .col-sm-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-sm-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-sm-pull-0 {
-    right: auto;
-  }
-  .col-sm-push-12 {
-    left: 100%;
-  }
-  .col-sm-push-11 {
-    left: 91.66666667%;
-  }
-  .col-sm-push-10 {
-    left: 83.33333333%;
-  }
-  .col-sm-push-9 {
-    left: 75%;
-  }
-  .col-sm-push-8 {
-    left: 66.66666667%;
-  }
-  .col-sm-push-7 {
-    left: 58.33333333%;
-  }
-  .col-sm-push-6 {
-    left: 50%;
-  }
-  .col-sm-push-5 {
-    left: 41.66666667%;
-  }
-  .col-sm-push-4 {
-    left: 33.33333333%;
-  }
-  .col-sm-push-3 {
-    left: 25%;
-  }
-  .col-sm-push-2 {
-    left: 16.66666667%;
-  }
-  .col-sm-push-1 {
-    left: 8.33333333%;
-  }
-  .col-sm-push-0 {
-    left: auto;
-  }
-  .col-sm-offset-12 {
-    margin-left: 100%;
-  }
-  .col-sm-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-sm-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-sm-offset-9 {
-    margin-left: 75%;
-  }
-  .col-sm-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-sm-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-sm-offset-6 {
-    margin-left: 50%;
-  }
-  .col-sm-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-sm-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-sm-offset-3 {
-    margin-left: 25%;
-  }
-  .col-sm-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-sm-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-sm-offset-0 {
-    margin-left: 0%;
-  }
-}
-@media (min-width: 992px) {
-  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
-    float: left;
-  }
-  .col-md-12 {
-    width: 100%;
-  }
-  .col-md-11 {
-    width: 91.66666667%;
-  }
-  .col-md-10 {
-    width: 83.33333333%;
-  }
-  .col-md-9 {
-    width: 75%;
-  }
-  .col-md-8 {
-    width: 66.66666667%;
-  }
-  .col-md-7 {
-    width: 58.33333333%;
-  }
-  .col-md-6 {
-    width: 50%;
-  }
-  .col-md-5 {
-    width: 41.66666667%;
-  }
-  .col-md-4 {
-    width: 33.33333333%;
-  }
-  .col-md-3 {
-    width: 25%;
-  }
-  .col-md-2 {
-    width: 16.66666667%;
-  }
-  .col-md-1 {
-    width: 8.33333333%;
-  }
-  .col-md-pull-12 {
-    right: 100%;
-  }
-  .col-md-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-md-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-md-pull-9 {
-    right: 75%;
-  }
-  .col-md-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-md-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-md-pull-6 {
-    right: 50%;
-  }
-  .col-md-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-md-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-md-pull-3 {
-    right: 25%;
-  }
-  .col-md-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-md-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-md-pull-0 {
-    right: auto;
-  }
-  .col-md-push-12 {
-    left: 100%;
-  }
-  .col-md-push-11 {
-    left: 91.66666667%;
-  }
-  .col-md-push-10 {
-    left: 83.33333333%;
-  }
-  .col-md-push-9 {
-    left: 75%;
-  }
-  .col-md-push-8 {
-    left: 66.66666667%;
-  }
-  .col-md-push-7 {
-    left: 58.33333333%;
-  }
-  .col-md-push-6 {
-    left: 50%;
-  }
-  .col-md-push-5 {
-    left: 41.66666667%;
-  }
-  .col-md-push-4 {
-    left: 33.33333333%;
-  }
-  .col-md-push-3 {
-    left: 25%;
-  }
-  .col-md-push-2 {
-    left: 16.66666667%;
-  }
-  .col-md-push-1 {
-    left: 8.33333333%;
-  }
-  .col-md-push-0 {
-    left: auto;
-  }
-  .col-md-offset-12 {
-    margin-left: 100%;
-  }
-  .col-md-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-md-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-md-offset-9 {
-    margin-left: 75%;
-  }
-  .col-md-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-md-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-md-offset-6 {
-    margin-left: 50%;
-  }
-  .col-md-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-md-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-md-offset-3 {
-    margin-left: 25%;
-  }
-  .col-md-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-md-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-md-offset-0 {
-    margin-left: 0%;
-  }
-}
-@media (min-width: 1200px) {
-  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
-    float: left;
-  }
-  .col-lg-12 {
-    width: 100%;
-  }
-  .col-lg-11 {
-    width: 91.66666667%;
-  }
-  .col-lg-10 {
-    width: 83.33333333%;
-  }
-  .col-lg-9 {
-    width: 75%;
-  }
-  .col-lg-8 {
-    width: 66.66666667%;
-  }
-  .col-lg-7 {
-    width: 58.33333333%;
-  }
-  .col-lg-6 {
-    width: 50%;
-  }
-  .col-lg-5 {
-    width: 41.66666667%;
-  }
-  .col-lg-4 {
-    width: 33.33333333%;
-  }
-  .col-lg-3 {
-    width: 25%;
-  }
-  .col-lg-2 {
-    width: 16.66666667%;
-  }
-  .col-lg-1 {
-    width: 8.33333333%;
-  }
-  .col-lg-pull-12 {
-    right: 100%;
-  }
-  .col-lg-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-lg-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-lg-pull-9 {
-    right: 75%;
-  }
-  .col-lg-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-lg-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-lg-pull-6 {
-    right: 50%;
-  }
-  .col-lg-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-lg-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-lg-pull-3 {
-    right: 25%;
-  }
-  .col-lg-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-lg-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-lg-pull-0 {
-    right: auto;
-  }
-  .col-lg-push-12 {
-    left: 100%;
-  }
-  .col-lg-push-11 {
-    left: 91.66666667%;
-  }
-  .col-lg-push-10 {
-    left: 83.33333333%;
-  }
-  .col-lg-push-9 {
-    left: 75%;
-  }
-  .col-lg-push-8 {
-    left: 66.66666667%;
-  }
-  .col-lg-push-7 {
-    left: 58.33333333%;
-  }
-  .col-lg-push-6 {
-    left: 50%;
-  }
-  .col-lg-push-5 {
-    left: 41.66666667%;
-  }
-  .col-lg-push-4 {
-    left: 33.33333333%;
-  }
-  .col-lg-push-3 {
-    left: 25%;
-  }
-  .col-lg-push-2 {
-    left: 16.66666667%;
-  }
-  .col-lg-push-1 {
-    left: 8.33333333%;
-  }
-  .col-lg-push-0 {
-    left: auto;
-  }
-  .col-lg-offset-12 {
-    margin-left: 100%;
-  }
-  .col-lg-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-lg-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-lg-offset-9 {
-    margin-left: 75%;
-  }
-  .col-lg-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-lg-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-lg-offset-6 {
-    margin-left: 50%;
-  }
-  .col-lg-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-lg-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-lg-offset-3 {
-    margin-left: 25%;
-  }
-  .col-lg-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-lg-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-lg-offset-0 {
-    margin-left: 0%;
-  }
-}
-table {
-  background-color: transparent;
-}
-caption {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  color: #777777;
-  text-align: left;
-}
-th {
-  text-align: left;
-}
-.table {
-  width: 100%;
-  max-width: 100%;
-  margin-bottom: 18px;
-}
-.table > thead > tr > th,
-.table > tbody > tr > th,
-.table > tfoot > tr > th,
-.table > thead > tr > td,
-.table > tbody > tr > td,
-.table > tfoot > tr > td {
-  padding: 8px;
-  line-height: 1.42857143;
-  vertical-align: top;
-  border-top: 1px solid #ddd;
-}
-.table > thead > tr > th {
-  vertical-align: bottom;
-  border-bottom: 2px solid #ddd;
-}
-.table > caption + thead > tr:first-child > th,
-.table > colgroup + thead > tr:first-child > th,
-.table > thead:first-child > tr:first-child > th,
-.table > caption + thead > tr:first-child > td,
-.table > colgroup + thead > tr:first-child > td,
-.table > thead:first-child > tr:first-child > td {
-  border-top: 0;
-}
-.table > tbody + tbody {
-  border-top: 2px solid #ddd;
-}
-.table .table {
-  background-color: #fff;
-}
-.table-condensed > thead > tr > th,
-.table-condensed > tbody > tr > th,
-.table-condensed > tfoot > tr > th,
-.table-condensed > thead > tr > td,
-.table-condensed > tbody > tr > td,
-.table-condensed > tfoot > tr > td {
-  padding: 5px;
-}
-.table-bordered {
-  border: 1px solid #ddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > tbody > tr > th,
-.table-bordered > tfoot > tr > th,
-.table-bordered > thead > tr > td,
-.table-bordered > tbody > tr > td,
-.table-bordered > tfoot > tr > td {
-  border: 1px solid #ddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > thead > tr > td {
-  border-bottom-width: 2px;
-}
-.table-striped > tbody > tr:nth-of-type(odd) {
-  background-color: #f9f9f9;
-}
-.table-hover > tbody > tr:hover {
-  background-color: #f5f5f5;
-}
-table col[class*="col-"] {
-  position: static;
-  float: none;
-  display: table-column;
-}
-table td[class*="col-"],
-table th[class*="col-"] {
-  position: static;
-  float: none;
-  display: table-cell;
-}
-.table > thead > tr > td.active,
-.table > tbody > tr > td.active,
-.table > tfoot > tr > td.active,
-.table > thead > tr > th.active,
-.table > tbody > tr > th.active,
-.table > tfoot > tr > th.active,
-.table > thead > tr.active > td,
-.table > tbody > tr.active > td,
-.table > tfoot > tr.active > td,
-.table > thead > tr.active > th,
-.table > tbody > tr.active > th,
-.table > tfoot > tr.active > th {
-  background-color: #f5f5f5;
-}
-.table-hover > tbody > tr > td.active:hover,
-.table-hover > tbody > tr > th.active:hover,
-.table-hover > tbody > tr.active:hover > td,
-.table-hover > tbody > tr:hover > .active,
-.table-hover > tbody > tr.active:hover > th {
-  background-color: #e8e8e8;
-}
-.table > thead > tr > td.success,
-.table > tbody > tr > td.success,
-.table > tfoot > tr > td.success,
-.table > thead > tr > th.success,
-.table > tbody > tr > th.success,
-.table > tfoot > tr > th.success,
-.table > thead > tr.success > td,
-.table > tbody > tr.success > td,
-.table > tfoot > tr.success > td,
-.table > thead > tr.success > th,
-.table > tbody > tr.success > th,
-.table > tfoot > tr.success > th {
-  background-color: #dff0d8;
-}
-.table-hover > tbody > tr > td.success:hover,
-.table-hover > tbody > tr > th.success:hover,
-.table-hover > tbody > tr.success:hover > td,
-.table-hover > tbody > tr:hover > .success,
-.table-hover > tbody > tr.success:hover > th {
-  background-color: #d0e9c6;
-}
-.table > thead > tr > td.info,
-.table > tbody > tr > td.info,
-.table > tfoot > tr > td.info,
-.table > thead > tr > th.info,
-.table > tbody > tr > th.info,
-.table > tfoot > tr > th.info,
-.table > thead > tr.info > td,
-.table > tbody > tr.info > td,
-.table > tfoot > tr.info > td,
-.table > thead > tr.info > th,
-.table > tbody > tr.info > th,
-.table > tfoot > tr.info > th {
-  background-color: #d9edf7;
-}
-.table-hover > tbody > tr > td.info:hover,
-.table-hover > tbody > tr > th.info:hover,
-.table-hover > tbody > tr.info:hover > td,
-.table-hover > tbody > tr:hover > .info,
-.table-hover > tbody > tr.info:hover > th {
-  background-color: #c4e3f3;
-}
-.table > thead > tr > td.warning,
-.table > tbody > tr > td.warning,
-.table > tfoot > tr > td.warning,
-.table > thead > tr > th.warning,
-.table > tbody > tr > th.warning,
-.table > tfoot > tr > th.warning,
-.table > thead > tr.warning > td,
-.table > tbody > tr.warning > td,
-.table > tfoot > tr.warning > td,
-.table > thead > tr.warning > th,
-.table > tbody > tr.warning > th,
-.table > tfoot > tr.warning > th {
-  background-color: #fcf8e3;
-}
-.table-hover > tbody > tr > td.warning:hover,
-.table-hover > tbody > tr > th.warning:hover,
-.table-hover > tbody > tr.warning:hover > td,
-.table-hover > tbody > tr:hover > .warning,
-.table-hover > tbody > tr.warning:hover > th {
-  background-color: #faf2cc;
-}
-.table > thead > tr > td.danger,
-.table > tbody > tr > td.danger,
-.table > tfoot > tr > td.danger,
-.table > thead > tr > th.danger,
-.table > tbody > tr > th.danger,
-.table > tfoot > tr > th.danger,
-.table > thead > tr.danger > td,
-.table > tbody > tr.danger > td,
-.table > tfoot > tr.danger > td,
-.table > thead > tr.danger > th,
-.table > tbody > tr.danger > th,
-.table > tfoot > tr.danger > th {
-  background-color: #f2dede;
-}
-.table-hover > tbody > tr > td.danger:hover,
-.table-hover > tbody > tr > th.danger:hover,
-.table-hover > tbody > tr.danger:hover > td,
-.table-hover > tbody > tr:hover > .danger,
-.table-hover > tbody > tr.danger:hover > th {
-  background-color: #ebcccc;
-}
-.table-responsive {
-  overflow-x: auto;
-  min-height: 0.01%;
-}
-@media screen and (max-width: 767px) {
-  .table-responsive {
-    width: 100%;
-    margin-bottom: 13.5px;
-    overflow-y: hidden;
-    -ms-overflow-style: -ms-autohiding-scrollbar;
-    border: 1px solid #ddd;
-  }
-  .table-responsive > .table {
-    margin-bottom: 0;
-  }
-  .table-responsive > .table > thead > tr > th,
-  .table-responsive > .table > tbody > tr > th,
-  .table-responsive > .table > tfoot > tr > th,
-  .table-responsive > .table > thead > tr > td,
-  .table-responsive > .table > tbody > tr > td,
-  .table-responsive > .table > tfoot > tr > td {
-    white-space: nowrap;
-  }
-  .table-responsive > .table-bordered {
-    border: 0;
-  }
-  .table-responsive > .table-bordered > thead > tr > th:first-child,
-  .table-responsive > .table-bordered > tbody > tr > th:first-child,
-  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
-  .table-responsive > .table-bordered > thead > tr > td:first-child,
-  .table-responsive > .table-bordered > tbody > tr > td:first-child,
-  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
-    border-left: 0;
-  }
-  .table-responsive > .table-bordered > thead > tr > th:last-child,
-  .table-responsive > .table-bordered > tbody > tr > th:last-child,
-  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
-  .table-responsive > .table-bordered > thead > tr > td:last-child,
-  .table-responsive > .table-bordered > tbody > tr > td:last-child,
-  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
-    border-right: 0;
-  }
-  .table-responsive > .table-bordered > tbody > tr:last-child > th,
-  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
-  .table-responsive > .table-bordered > tbody > tr:last-child > td,
-  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
-    border-bottom: 0;
-  }
-}
-fieldset {
-  padding: 0;
-  margin: 0;
-  border: 0;
-  min-width: 0;
-}
-legend {
-  display: block;
-  width: 100%;
-  padding: 0;
-  margin-bottom: 18px;
-  font-size: 19.5px;
-  line-height: inherit;
-  color: #333333;
-  border: 0;
-  border-bottom: 1px solid #e5e5e5;
-}
-label {
-  display: inline-block;
-  max-width: 100%;
-  margin-bottom: 5px;
-  font-weight: bold;
-}
-input[type="search"] {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-input[type="radio"],
-input[type="checkbox"] {
-  margin: 4px 0 0;
-  margin-top: 1px \9;
-  line-height: normal;
-}
-input[type="file"] {
-  display: block;
-}
-input[type="range"] {
-  display: block;
-  width: 100%;
-}
-select[multiple],
-select[size] {
-  height: auto;
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
-  outline: thin dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-output {
-  display: block;
-  padding-top: 7px;
-  font-size: 13px;
-  line-height: 1.42857143;
-  color: #555555;
-}
-.form-control {
-  display: block;
-  width: 100%;
-  height: 32px;
-  padding: 6px 12px;
-  font-size: 13px;
-  line-height: 1.42857143;
-  color: #555555;
-  background-color: #fff;
-  background-image: none;
-  border: 1px solid #ccc;
-  border-radius: 2px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-.form-control:focus {
-  border-color: #66afe9;
-  outline: 0;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
-}
-.form-control::-moz-placeholder {
-  color: #999;
-  opacity: 1;
-}
-.form-control:-ms-input-placeholder {
-  color: #999;
-}
-.form-control::-webkit-input-placeholder {
-  color: #999;
-}
-.form-control::-ms-expand {
-  border: 0;
-  background-color: transparent;
-}
-.form-control[disabled],
-.form-control[readonly],
-fieldset[disabled] .form-control {
-  background-color: #eeeeee;
-  opacity: 1;
-}
-.form-control[disabled],
-fieldset[disabled] .form-control {
-  cursor: not-allowed;
-}
-textarea.form-control {
-  height: auto;
-}
-input[type="search"] {
-  -webkit-appearance: none;
-}
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
-  input[type="date"].form-control,
-  input[type="time"].form-control,
-  input[type="datetime-local"].form-control,
-  input[type="month"].form-control {
-    line-height: 32px;
-  }
-  input[type="date"].input-sm,
-  input[type="time"].input-sm,
-  input[type="datetime-local"].input-sm,
-  input[type="month"].input-sm,
-  .input-group-sm input[type="date"],
-  .input-group-sm input[type="time"],
-  .input-group-sm input[type="datetime-local"],
-  .input-group-sm input[type="month"] {
-    line-height: 30px;
-  }
-  input[type="date"].input-lg,
-  input[type="time"].input-lg,
-  input[type="datetime-local"].input-lg,
-  input[type="month"].input-lg,
-  .input-group-lg input[type="date"],
-  .input-group-lg input[type="time"],
-  .input-group-lg input[type="datetime-local"],
-  .input-group-lg input[type="month"] {
-    line-height: 45px;
-  }
-}
-.form-group {
-  margin-bottom: 15px;
-}
-.radio,
-.checkbox {
-  position: relative;
-  display: block;
-  margin-top: 10px;
-  margin-bottom: 10px;
-}
-.radio label,
-.checkbox label {
-  min-height: 18px;
-  padding-left: 20px;
-  margin-bottom: 0;
-  font-weight: normal;
-  cursor: pointer;
-}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
-  position: absolute;
-  margin-left: -20px;
-  margin-top: 4px \9;
-}
-.radio + .radio,
-.checkbox + .checkbox {
-  margin-top: -5px;
-}
-.radio-inline,
-.checkbox-inline {
-  position: relative;
-  display: inline-block;
-  padding-left: 20px;
-  margin-bottom: 0;
-  vertical-align: middle;
-  font-weight: normal;
-  cursor: pointer;
-}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
-  margin-top: 0;
-  margin-left: 10px;
-}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-input[type="radio"].disabled,
-input[type="checkbox"].disabled,
-fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"] {
-  cursor: not-allowed;
-}
-.radio-inline.disabled,
-.checkbox-inline.disabled,
-fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox-inline {
-  cursor: not-allowed;
-}
-.radio.disabled label,
-.checkbox.disabled label,
-fieldset[disabled] .radio label,
-fieldset[disabled] .checkbox label {
-  cursor: not-allowed;
-}
-.form-control-static {
-  padding-top: 7px;
-  padding-bottom: 7px;
-  margin-bottom: 0;
-  min-height: 31px;
-}
-.form-control-static.input-lg,
-.form-control-static.input-sm {
-  padding-left: 0;
-  padding-right: 0;
-}
-.input-sm {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 1px;
-}
-select.input-sm {
-  height: 30px;
-  line-height: 30px;
-}
-textarea.input-sm,
-select[multiple].input-sm {
-  height: auto;
-}
-.form-group-sm .form-control {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 1px;
-}
-.form-group-sm select.form-control {
-  height: 30px;
-  line-height: 30px;
-}
-.form-group-sm textarea.form-control,
-.form-group-sm select[multiple].form-control {
-  height: auto;
-}
-.form-group-sm .form-control-static {
-  height: 30px;
-  min-height: 30px;
-  padding: 6px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-}
-.input-lg {
-  height: 45px;
-  padding: 10px 16px;
-  font-size: 17px;
-  line-height: 1.3333333;
-  border-radius: 3px;
-}
-select.input-lg {
-  height: 45px;
-  line-height: 45px;
-}
-textarea.input-lg,
-select[multiple].input-lg {
-  height: auto;
-}
-.form-group-lg .form-control {
-  height: 45px;
-  padding: 10px 16px;
-  font-size: 17px;
-  line-height: 1.3333333;
-  border-radius: 3px;
-}
-.form-group-lg select.form-control {
-  height: 45px;
-  line-height: 45px;
-}
-.form-group-lg textarea.form-control,
-.form-group-lg select[multiple].form-control {
-  height: auto;
-}
-.form-group-lg .form-control-static {
-  height: 45px;
-  min-height: 35px;
-  padding: 11px 16px;
-  font-size: 17px;
-  line-height: 1.3333333;
-}
-.has-feedback {
-  position: relative;
-}
-.has-feedback .form-control {
-  padding-right: 40px;
-}
-.form-control-feedback {
-  position: absolute;
-  top: 0;
-  right: 0;
-  z-index: 2;
-  display: block;
-  width: 32px;
-  height: 32px;
-  line-height: 32px;
-  text-align: center;
-  pointer-events: none;
-}
-.input-lg + .form-control-feedback,
-.input-group-lg + .form-control-feedback,
-.form-group-lg .form-control + .form-control-feedback {
-  width: 45px;
-  height: 45px;
-  line-height: 45px;
-}
-.input-sm + .form-control-feedback,
-.input-group-sm + .form-control-feedback,
-.form-group-sm .form-control + .form-control-feedback {
-  width: 30px;
-  height: 30px;
-  line-height: 30px;
-}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline,
-.has-success.radio label,
-.has-success.checkbox label,
-.has-success.radio-inline label,
-.has-success.checkbox-inline label {
-  color: #3c763d;
-}
-.has-success .form-control {
-  border-color: #3c763d;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-success .form-control:focus {
-  border-color: #2b542c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
-}
-.has-success .input-group-addon {
-  color: #3c763d;
-  border-color: #3c763d;
-  background-color: #dff0d8;
-}
-.has-success .form-control-feedback {
-  color: #3c763d;
-}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline,
-.has-warning.radio label,
-.has-warning.checkbox label,
-.has-warning.radio-inline label,
-.has-warning.checkbox-inline label {
-  color: #8a6d3b;
-}
-.has-warning .form-control {
-  border-color: #8a6d3b;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-warning .form-control:focus {
-  border-color: #66512c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
-}
-.has-warning .input-group-addon {
-  color: #8a6d3b;
-  border-color: #8a6d3b;
-  background-color: #fcf8e3;
-}
-.has-warning .form-control-feedback {
-  color: #8a6d3b;
-}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline,
-.has-error.radio label,
-.has-error.checkbox label,
-.has-error.radio-inline label,
-.has-error.checkbox-inline label {
-  color: #a94442;
-}
-.has-error .form-control {
-  border-color: #a94442;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-error .form-control:focus {
-  border-color: #843534;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
-}
-.has-error .input-group-addon {
-  color: #a94442;
-  border-color: #a94442;
-  background-color: #f2dede;
-}
-.has-error .form-control-feedback {
-  color: #a94442;
-}
-.has-feedback label ~ .form-control-feedback {
-  top: 23px;
-}
-.has-feedback label.sr-only ~ .form-control-feedback {
-  top: 0;
-}
-.help-block {
-  display: block;
-  margin-top: 5px;
-  margin-bottom: 10px;
-  color: #404040;
-}
-@media (min-width: 768px) {
-  .form-inline .form-group {
-    display: inline-block;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .form-inline .form-control {
-    display: inline-block;
-    width: auto;
-    vertical-align: middle;
-  }
-  .form-inline .form-control-static {
-    display: inline-block;
-  }
-  .form-inline .input-group {
-    display: inline-table;
-    vertical-align: middle;
-  }
-  .form-inline .input-group .input-group-addon,
-  .form-inline .input-group .input-group-btn,
-  .form-inline .input-group .form-control {
-    width: auto;
-  }
-  .form-inline .input-group > .form-control {
-    width: 100%;
-  }
-  .form-inline .control-label {
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .form-inline .radio,
-  .form-inline .checkbox {
-    display: inline-block;
-    margin-top: 0;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .form-inline .radio label,
-  .form-inline .checkbox label {
-    padding-left: 0;
-  }
-  .form-inline .radio input[type="radio"],
-  .form-inline .checkbox input[type="checkbox"] {
-    position: relative;
-    margin-left: 0;
-  }
-  .form-inline .has-feedback .form-control-feedback {
-    top: 0;
-  }
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
-  margin-top: 0;
-  margin-bottom: 0;
-  padding-top: 7px;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
-  min-height: 25px;
-}
-.form-horizontal .form-group {
-  margin-left: 0px;
-  margin-right: 0px;
-}
-@media (min-width: 768px) {
-  .form-horizontal .control-label {
-    text-align: right;
-    margin-bottom: 0;
-    padding-top: 7px;
-  }
-}
-.form-horizontal .has-feedback .form-control-feedback {
-  right: 0px;
-}
-@media (min-width: 768px) {
-  .form-horizontal .form-group-lg .control-label {
-    padding-top: 11px;
-    font-size: 17px;
-  }
-}
-@media (min-width: 768px) {
-  .form-horizontal .form-group-sm .control-label {
-    padding-top: 6px;
-    font-size: 12px;
-  }
-}
-.btn {
-  display: inline-block;
-  margin-bottom: 0;
-  font-weight: normal;
-  text-align: center;
-  vertical-align: middle;
-  touch-action: manipulation;
-  cursor: pointer;
-  background-image: none;
-  border: 1px solid transparent;
-  white-space: nowrap;
-  padding: 6px 12px;
-  font-size: 13px;
-  line-height: 1.42857143;
-  border-radius: 2px;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus,
-.btn.focus,
-.btn:active.focus,
-.btn.active.focus {
-  outline: thin dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-.btn:hover,
-.btn:focus,
-.btn.focus {
-  color: #333;
-  text-decoration: none;
-}
-.btn:active,
-.btn.active {
-  outline: 0;
-  background-image: none;
-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
-  cursor: not-allowed;
-  opacity: 0.65;
-  filter: alpha(opacity=65);
-  -webkit-box-shadow: none;
-  box-shadow: none;
-}
-a.btn.disabled,
-fieldset[disabled] a.btn {
-  pointer-events: none;
-}
-.btn-default {
-  color: #333;
-  background-color: #fff;
-  border-color: #ccc;
-}
-.btn-default:focus,
-.btn-default.focus {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #8c8c8c;
-}
-.btn-default:hover {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-.btn-default:active:hover,
-.btn-default.active:hover,
-.open > .dropdown-toggle.btn-default:hover,
-.btn-default:active:focus,
-.btn-default.active:focus,
-.open > .dropdown-toggle.btn-default:focus,
-.btn-default:active.focus,
-.btn-default.active.focus,
-.open > .dropdown-toggle.btn-default.focus {
-  color: #333;
-  background-color: #d4d4d4;
-  border-color: #8c8c8c;
-}
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
-  background-image: none;
-}
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.btn-default.disabled:focus,
-.btn-default[disabled]:focus,
-fieldset[disabled] .btn-default:focus,
-.btn-default.disabled.focus,
-.btn-default[disabled].focus,
-fieldset[disabled] .btn-default.focus {
-  background-color: #fff;
-  border-color: #ccc;
-}
-.btn-default .badge {
-  color: #fff;
-  background-color: #333;
-}
-.btn-primary {
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #2e6da4;
-}
-.btn-primary:focus,
-.btn-primary.focus {
-  color: #fff;
-  background-color: #286090;
-  border-color: #122b40;
-}
-.btn-primary:hover {
-  color: #fff;
-  background-color: #286090;
-  border-color: #204d74;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
-  color: #fff;
-  background-color: #286090;
-  border-color: #204d74;
-}
-.btn-primary:active:hover,
-.btn-primary.active:hover,
-.open > .dropdown-toggle.btn-primary:hover,
-.btn-primary:active:focus,
-.btn-primary.active:focus,
-.open > .dropdown-toggle.btn-primary:focus,
-.btn-primary:active.focus,
-.btn-primary.active.focus,
-.open > .dropdown-toggle.btn-primary.focus {
-  color: #fff;
-  background-color: #204d74;
-  border-color: #122b40;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
-  background-image: none;
-}
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.btn-primary.disabled:focus,
-.btn-primary[disabled]:focus,
-fieldset[disabled] .btn-primary:focus,
-.btn-primary.disabled.focus,
-.btn-primary[disabled].focus,
-fieldset[disabled] .btn-primary.focus {
-  background-color: #337ab7;
-  border-color: #2e6da4;
-}
-.btn-primary .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.btn-success {
-  color: #fff;
-  background-color: #5cb85c;
-  border-color: #4cae4c;
-}
-.btn-success:focus,
-.btn-success.focus {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #255625;
-}
-.btn-success:hover {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #398439;
-}
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #398439;
-}
-.btn-success:active:hover,
-.btn-success.active:hover,
-.open > .dropdown-toggle.btn-success:hover,
-.btn-success:active:focus,
-.btn-success.active:focus,
-.open > .dropdown-toggle.btn-success:focus,
-.btn-success:active.focus,
-.btn-success.active.focus,
-.open > .dropdown-toggle.btn-success.focus {
-  color: #fff;
-  background-color: #398439;
-  border-color: #255625;
-}
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
-  background-image: none;
-}
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.btn-success.disabled:focus,
-.btn-success[disabled]:focus,
-fieldset[disabled] .btn-success:focus,
-.btn-success.disabled.focus,
-.btn-success[disabled].focus,
-fieldset[disabled] .btn-success.focus {
-  background-color: #5cb85c;
-  border-color: #4cae4c;
-}
-.btn-success .badge {
-  color: #5cb85c;
-  background-color: #fff;
-}
-.btn-info {
-  color: #fff;
-  background-color: #5bc0de;
-  border-color: #46b8da;
-}
-.btn-info:focus,
-.btn-info.focus {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #1b6d85;
-}
-.btn-info:hover {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #269abc;
-}
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #269abc;
-}
-.btn-info:active:hover,
-.btn-info.active:hover,
-.open > .dropdown-toggle.btn-info:hover,
-.btn-info:active:focus,
-.btn-info.active:focus,
-.open > .dropdown-toggle.btn-info:focus,
-.btn-info:active.focus,
-.btn-info.active.focus,
-.open > .dropdown-toggle.btn-info.focus {
-  color: #fff;
-  background-color: #269abc;
-  border-color: #1b6d85;
-}
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
-  background-image: none;
-}
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.btn-info.disabled:focus,
-.btn-info[disabled]:focus,
-fieldset[disabled] .btn-info:focus,
-.btn-info.disabled.focus,
-.btn-info[disabled].focus,
-fieldset[disabled] .btn-info.focus {
-  background-color: #5bc0de;
-  border-color: #46b8da;
-}
-.btn-info .badge {
-  color: #5bc0de;
-  background-color: #fff;
-}
-.btn-warning {
-  color: #fff;
-  background-color: #f0ad4e;
-  border-color: #eea236;
-}
-.btn-warning:focus,
-.btn-warning.focus {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #985f0d;
-}
-.btn-warning:hover {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #d58512;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #d58512;
-}
-.btn-warning:active:hover,
-.btn-warning.active:hover,
-.open > .dropdown-toggle.btn-warning:hover,
-.btn-warning:active:focus,
-.btn-warning.active:focus,
-.open > .dropdown-toggle.btn-warning:focus,
-.btn-warning:active.focus,
-.btn-warning.active.focus,
-.open > .dropdown-toggle.btn-warning.focus {
-  color: #fff;
-  background-color: #d58512;
-  border-color: #985f0d;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
-  background-image: none;
-}
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.btn-warning.disabled:focus,
-.btn-warning[disabled]:focus,
-fieldset[disabled] .btn-warning:focus,
-.btn-warning.disabled.focus,
-.btn-warning[disabled].focus,
-fieldset[disabled] .btn-warning.focus {
-  background-color: #f0ad4e;
-  border-color: #eea236;
-}
-.btn-warning .badge {
-  color: #f0ad4e;
-  background-color: #fff;
-}
-.btn-danger {
-  color: #fff;
-  background-color: #d9534f;
-  border-color: #d43f3a;
-}
-.btn-danger:focus,
-.btn-danger.focus {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #761c19;
-}
-.btn-danger:hover {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #ac2925;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #ac2925;
-}
-.btn-danger:active:hover,
-.btn-danger.active:hover,
-.open > .dropdown-toggle.btn-danger:hover,
-.btn-danger:active:focus,
-.btn-danger.active:focus,
-.open > .dropdown-toggle.btn-danger:focus,
-.btn-danger:active.focus,
-.btn-danger.active.focus,
-.open > .dropdown-toggle.btn-danger.focus {
-  color: #fff;
-  background-color: #ac2925;
-  border-color: #761c19;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
-  background-image: none;
-}
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.btn-danger.disabled:focus,
-.btn-danger[disabled]:focus,
-fieldset[disabled] .btn-danger:focus,
-.btn-danger.disabled.focus,
-.btn-danger[disabled].focus,
-fieldset[disabled] .btn-danger.focus {
-  background-color: #d9534f;
-  border-color: #d43f3a;
-}
-.btn-danger .badge {
-  color: #d9534f;
-  background-color: #fff;
-}
-.btn-link {
-  color: #337ab7;
-  font-weight: normal;
-  border-radius: 0;
-}
-.btn-link,
-.btn-link:active,
-.btn-link.active,
-.btn-link[disabled],
-fieldset[disabled] .btn-link {
-  background-color: transparent;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-}
-.btn-link,
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active {
-  border-color: transparent;
-}
-.btn-link:hover,
-.btn-link:focus {
-  color: #23527c;
-  text-decoration: underline;
-  background-color: transparent;
-}
-.btn-link[disabled]:hover,
-fieldset[disabled] .btn-link:hover,
-.btn-link[disabled]:focus,
-fieldset[disabled] .btn-link:focus {
-  color: #777777;
-  text-decoration: none;
-}
-.btn-lg,
-.btn-group-lg > .btn {
-  padding: 10px 16px;
-  font-size: 17px;
-  line-height: 1.3333333;
-  border-radius: 3px;
-}
-.btn-sm,
-.btn-group-sm > .btn {
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 1px;
-}
-.btn-xs,
-.btn-group-xs > .btn {
-  padding: 1px 5px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 1px;
-}
-.btn-block {
-  display: block;
-  width: 100%;
-}
-.btn-block + .btn-block {
-  margin-top: 5px;
-}
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
-  width: 100%;
-}
-.fade {
-  opacity: 0;
-  -webkit-transition: opacity 0.15s linear;
-  -o-transition: opacity 0.15s linear;
-  transition: opacity 0.15s linear;
-}
-.fade.in {
-  opacity: 1;
-}
-.collapse {
-  display: none;
-}
-.collapse.in {
-  display: block;
-}
-tr.collapse.in {
-  display: table-row;
-}
-tbody.collapse.in {
-  display: table-row-group;
-}
-.collapsing {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  -webkit-transition-property: height, visibility;
-  transition-property: height, visibility;
-  -webkit-transition-duration: 0.35s;
-  transition-duration: 0.35s;
-  -webkit-transition-timing-function: ease;
-  transition-timing-function: ease;
-}
-.caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  margin-left: 2px;
-  vertical-align: middle;
-  border-top: 4px dashed;
-  border-top: 4px solid \9;
-  border-right: 4px solid transparent;
-  border-left: 4px solid transparent;
-}
-.dropup,
-.dropdown {
-  position: relative;
-}
-.dropdown-toggle:focus {
-  outline: 0;
-}
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 160px;
-  padding: 5px 0;
-  margin: 2px 0 0;
-  list-style: none;
-  font-size: 13px;
-  text-align: left;
-  background-color: #fff;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  border-radius: 2px;
-  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-  background-clip: padding-box;
-}
-.dropdown-menu.pull-right {
-  right: 0;
-  left: auto;
-}
-.dropdown-menu .divider {
-  height: 1px;
-  margin: 8px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
-}
-.dropdown-menu > li > a {
-  display: block;
-  padding: 3px 20px;
-  clear: both;
-  font-weight: normal;
-  line-height: 1.42857143;
-  color: #333333;
-  white-space: nowrap;
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
-  text-decoration: none;
-  color: #262626;
-  background-color: #f5f5f5;
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
-  color: #fff;
-  text-decoration: none;
-  outline: 0;
-  background-color: #337ab7;
-}
-.dropdown-menu > .disabled > a,
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  color: #777777;
-}
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  text-decoration: none;
-  background-color: transparent;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  cursor: not-allowed;
-}
-.open > .dropdown-menu {
-  display: block;
-}
-.open > a {
-  outline: 0;
-}
-.dropdown-menu-right {
-  left: auto;
-  right: 0;
-}
-.dropdown-menu-left {
-  left: 0;
-  right: auto;
-}
-.dropdown-header {
-  display: block;
-  padding: 3px 20px;
-  font-size: 12px;
-  line-height: 1.42857143;
-  color: #777777;
-  white-space: nowrap;
-}
-.dropdown-backdrop {
-  position: fixed;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  top: 0;
-  z-index: 990;
-}
-.pull-right > .dropdown-menu {
-  right: 0;
-  left: auto;
-}
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
-  border-top: 0;
-  border-bottom: 4px dashed;
-  border-bottom: 4px solid \9;
-  content: "";
-}
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 2px;
-}
-@media (min-width: 541px) {
-  .navbar-right .dropdown-menu {
-    left: auto;
-    right: 0;
-  }
-  .navbar-right .dropdown-menu-left {
-    left: 0;
-    right: auto;
-  }
-}
-.btn-group,
-.btn-group-vertical {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-}
-.btn-group > .btn,
-.btn-group-vertical > .btn {
-  position: relative;
-  float: left;
-}
-.btn-group > .btn:hover,
-.btn-group-vertical > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group-vertical > .btn:focus,
-.btn-group > .btn:active,
-.btn-group-vertical > .btn:active,
-.btn-group > .btn.active,
-.btn-group-vertical > .btn.active {
-  z-index: 2;
-}
-.btn-group .btn + .btn,
-.btn-group .btn + .btn-group,
-.btn-group .btn-group + .btn,
-.btn-group .btn-group + .btn-group {
-  margin-left: -1px;
-}
-.btn-toolbar {
-  margin-left: -5px;
-}
-.btn-toolbar .btn,
-.btn-toolbar .btn-group,
-.btn-toolbar .input-group {
-  float: left;
-}
-.btn-toolbar > .btn,
-.btn-toolbar > .btn-group,
-.btn-toolbar > .input-group {
-  margin-left: 5px;
-}
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
-  border-radius: 0;
-}
-.btn-group > .btn:first-child {
-  margin-left: 0;
-}
-.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
-  border-bottom-right-radius: 0;
-  border-top-right-radius: 0;
-}
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  border-bottom-left-radius: 0;
-  border-top-left-radius: 0;
-}
-.btn-group > .btn-group {
-  float: left;
-}
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-  border-bottom-right-radius: 0;
-  border-top-right-radius: 0;
-}
-.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  border-bottom-left-radius: 0;
-  border-top-left-radius: 0;
-}
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-.btn-group > .btn + .dropdown-toggle {
-  padding-left: 8px;
-  padding-right: 8px;
-}
-.btn-group > .btn-lg + .dropdown-toggle {
-  padding-left: 12px;
-  padding-right: 12px;
-}
-.btn-group.open .dropdown-toggle {
-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-}
-.btn-group.open .dropdown-toggle.btn-link {
-  -webkit-box-shadow: none;
-  box-shadow: none;
-}
-.btn .caret {
-  margin-left: 0;
-}
-.btn-lg .caret {
-  border-width: 5px 5px 0;
-  border-bottom-width: 0;
-}
-.dropup .btn-lg .caret {
-  border-width: 0 5px 5px;
-}
-.btn-group-vertical > .btn,
-.btn-group-vertical > .btn-group,
-.btn-group-vertical > .btn-group > .btn {
-  display: block;
-  float: none;
-  width: 100%;
-  max-width: 100%;
-}
-.btn-group-vertical > .btn-group > .btn {
-  float: none;
-}
-.btn-group-vertical > .btn + .btn,
-.btn-group-vertical > .btn + .btn-group,
-.btn-group-vertical > .btn-group + .btn,
-.btn-group-vertical > .btn-group + .btn-group {
-  margin-top: -1px;
-  margin-left: 0;
-}
-.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
-  border-radius: 0;
-}
-.btn-group-vertical > .btn:first-child:not(:last-child) {
-  border-top-right-radius: 2px;
-  border-top-left-radius: 2px;
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.btn-group-vertical > .btn:last-child:not(:first-child) {
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
-  border-bottom-right-radius: 2px;
-  border-bottom-left-radius: 2px;
-}
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
-}
-.btn-group-justified {
-  display: table;
-  width: 100%;
-  table-layout: fixed;
-  border-collapse: separate;
-}
-.btn-group-justified > .btn,
-.btn-group-justified > .btn-group {
-  float: none;
-  display: table-cell;
-  width: 1%;
-}
-.btn-group-justified > .btn-group .btn {
-  width: 100%;
-}
-.btn-group-justified > .btn-group .dropdown-menu {
-  left: auto;
-}
-[data-toggle="buttons"] > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn input[type="checkbox"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
-  position: absolute;
-  clip: rect(0, 0, 0, 0);
-  pointer-events: none;
-}
-.input-group {
-  position: relative;
-  display: table;
-  border-collapse: separate;
-}
-.input-group[class*="col-"] {
-  float: none;
-  padding-left: 0;
-  padding-right: 0;
-}
-.input-group .form-control {
-  position: relative;
-  z-index: 2;
-  float: left;
-  width: 100%;
-  margin-bottom: 0;
-}
-.input-group .form-control:focus {
-  z-index: 3;
-}
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
-  height: 45px;
-  padding: 10px 16px;
-  font-size: 17px;
-  line-height: 1.3333333;
-  border-radius: 3px;
-}
-select.input-group-lg > .form-control,
-select.input-group-lg > .input-group-addon,
-select.input-group-lg > .input-group-btn > .btn {
-  height: 45px;
-  line-height: 45px;
-}
-textarea.input-group-lg > .form-control,
-textarea.input-group-lg > .input-group-addon,
-textarea.input-group-lg > .input-group-btn > .btn,
-select[multiple].input-group-lg > .form-control,
-select[multiple].input-group-lg > .input-group-addon,
-select[multiple].input-group-lg > .input-group-btn > .btn {
-  height: auto;
-}
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 1px;
-}
-select.input-group-sm > .form-control,
-select.input-group-sm > .input-group-addon,
-select.input-group-sm > .input-group-btn > .btn {
-  height: 30px;
-  line-height: 30px;
-}
-textarea.input-group-sm > .form-control,
-textarea.input-group-sm > .input-group-addon,
-textarea.input-group-sm > .input-group-btn > .btn,
-select[multiple].input-group-sm > .form-control,
-select[multiple].input-group-sm > .input-group-addon,
-select[multiple].input-group-sm > .input-group-btn > .btn {
-  height: auto;
-}
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  display: table-cell;
-}
-.input-group-addon:not(:first-child):not(:last-child),
-.input-group-btn:not(:first-child):not(:last-child),
-.input-group .form-control:not(:first-child):not(:last-child) {
-  border-radius: 0;
-}
-.input-group-addon,
-.input-group-btn {
-  width: 1%;
-  white-space: nowrap;
-  vertical-align: middle;
-}
-.input-group-addon {
-  padding: 6px 12px;
-  font-size: 13px;
-  font-weight: normal;
-  line-height: 1;
-  color: #555555;
-  text-align: center;
-  background-color: #eeeeee;
-  border: 1px solid #ccc;
-  border-radius: 2px;
-}
-.input-group-addon.input-sm {
-  padding: 5px 10px;
-  font-size: 12px;
-  border-radius: 1px;
-}
-.input-group-addon.input-lg {
-  padding: 10px 16px;
-  font-size: 17px;
-  border-radius: 3px;
-}
-.input-group-addon input[type="radio"],
-.input-group-addon input[type="checkbox"] {
-  margin-top: 0;
-}
-.input-group .form-control:first-child,
-.input-group-addon:first-child,
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group > .btn,
-.input-group-btn:first-child > .dropdown-toggle,
-.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
-  border-bottom-right-radius: 0;
-  border-top-right-radius: 0;
-}
-.input-group-addon:first-child {
-  border-right: 0;
-}
-.input-group .form-control:last-child,
-.input-group-addon:last-child,
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group > .btn,
-.input-group-btn:last-child > .dropdown-toggle,
-.input-group-btn:first-child > .btn:not(:first-child),
-.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
-  border-bottom-left-radius: 0;
-  border-top-left-radius: 0;
-}
-.input-group-addon:last-child {
-  border-left: 0;
-}
-.input-group-btn {
-  position: relative;
-  font-size: 0;
-  white-space: nowrap;
-}
-.input-group-btn > .btn {
-  position: relative;
-}
-.input-group-btn > .btn + .btn {
-  margin-left: -1px;
-}
-.input-group-btn > .btn:hover,
-.input-group-btn > .btn:focus,
-.input-group-btn > .btn:active {
-  z-index: 2;
-}
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group {
-  margin-right: -1px;
-}
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group {
-  z-index: 2;
-  margin-left: -1px;
-}
-.nav {
-  margin-bottom: 0;
-  padding-left: 0;
-  list-style: none;
-}
-.nav > li {
-  position: relative;
-  display: block;
-}
-.nav > li > a {
-  position: relative;
-  display: block;
-  padding: 10px 15px;
-}
-.nav > li > a:hover,
-.nav > li > a:focus {
-  text-decoration: none;
-  background-color: #eeeeee;
-}
-.nav > li.disabled > a {
-  color: #777777;
-}
-.nav > li.disabled > a:hover,
-.nav > li.disabled > a:focus {
-  color: #777777;
-  text-decoration: none;
-  background-color: transparent;
-  cursor: not-allowed;
-}
-.nav .open > a,
-.nav .open > a:hover,
-.nav .open > a:focus {
-  background-color: #eeeeee;
-  border-color: #337ab7;
-}
-.nav .nav-divider {
-  height: 1px;
-  margin: 8px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
-}
-.nav > li > a > img {
-  max-width: none;
-}
-.nav-tabs {
-  border-bottom: 1px solid #ddd;
-}
-.nav-tabs > li {
-  float: left;
-  margin-bottom: -1px;
-}
-.nav-tabs > li > a {
-  margin-right: 2px;
-  line-height: 1.42857143;
-  border: 1px solid transparent;
-  border-radius: 2px 2px 0 0;
-}
-.nav-tabs > li > a:hover {
-  border-color: #eeeeee #eeeeee #ddd;
-}
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:hover,
-.nav-tabs > li.active > a:focus {
-  color: #555555;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-  cursor: default;
-}
-.nav-tabs.nav-justified {
-  width: 100%;
-  border-bottom: 0;
-}
-.nav-tabs.nav-justified > li {
-  float: none;
-}
-.nav-tabs.nav-justified > li > a {
-  text-align: center;
-  margin-bottom: 5px;
-}
-.nav-tabs.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
-}
-@media (min-width: 768px) {
-  .nav-tabs.nav-justified > li {
-    display: table-cell;
-    width: 1%;
-  }
-  .nav-tabs.nav-justified > li > a {
-    margin-bottom: 0;
-  }
-}
-.nav-tabs.nav-justified > li > a {
-  margin-right: 0;
-  border-radius: 2px;
-}
-.nav-tabs.nav-justified > .active > a,
-.nav-tabs.nav-justified > .active > a:hover,
-.nav-tabs.nav-justified > .active > a:focus {
-  border: 1px solid #ddd;
-}
-@media (min-width: 768px) {
-  .nav-tabs.nav-justified > li > a {
-    border-bottom: 1px solid #ddd;
-    border-radius: 2px 2px 0 0;
-  }
-  .nav-tabs.nav-justified > .active > a,
-  .nav-tabs.nav-justified > .active > a:hover,
-  .nav-tabs.nav-justified > .active > a:focus {
-    border-bottom-color: #fff;
-  }
-}
-.nav-pills > li {
-  float: left;
-}
-.nav-pills > li > a {
-  border-radius: 2px;
-}
-.nav-pills > li + li {
-  margin-left: 2px;
-}
-.nav-pills > li.active > a,
-.nav-pills > li.active > a:hover,
-.nav-pills > li.active > a:focus {
-  color: #fff;
-  background-color: #337ab7;
-}
-.nav-stacked > li {
-  float: none;
-}
-.nav-stacked > li + li {
-  margin-top: 2px;
-  margin-left: 0;
-}
-.nav-justified {
-  width: 100%;
-}
-.nav-justified > li {
-  float: none;
-}
-.nav-justified > li > a {
-  text-align: center;
-  margin-bottom: 5px;
-}
-.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
-}
-@media (min-width: 768px) {
-  .nav-justified > li {
-    display: table-cell;
-    width: 1%;
-  }
-  .nav-justified > li > a {
-    margin-bottom: 0;
-  }
-}
-.nav-tabs-justified {
-  border-bottom: 0;
-}
-.nav-tabs-justified > li > a {
-  margin-right: 0;
-  border-radius: 2px;
-}
-.nav-tabs-justified > .active > a,
-.nav-tabs-justified > .active > a:hover,
-.nav-tabs-justified > .active > a:focus {
-  border: 1px solid #ddd;
-}
-@media (min-width: 768px) {
-  .nav-tabs-justified > li > a {
-    border-bottom: 1px solid #ddd;
-    border-radius: 2px 2px 0 0;
-  }
-  .nav-tabs-justified > .active > a,
-  .nav-tabs-justified > .active > a:hover,
-  .nav-tabs-justified > .active > a:focus {
-    border-bottom-color: #fff;
-  }
-}
-.tab-content > .tab-pane {
-  display: none;
-}
-.tab-content > .active {
-  display: block;
-}
-.nav-tabs .dropdown-menu {
-  margin-top: -1px;
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
-}
-.navbar {
-  position: relative;
-  min-height: 30px;
-  margin-bottom: 18px;
-  border: 1px solid transparent;
-}
-@media (min-width: 541px) {
-  .navbar {
-    border-radius: 2px;
-  }
-}
-@media (min-width: 541px) {
-  .navbar-header {
-    float: left;
-  }
-}
-.navbar-collapse {
-  overflow-x: visible;
-  padding-right: 0px;
-  padding-left: 0px;
-  border-top: 1px solid transparent;
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-  -webkit-overflow-scrolling: touch;
-}
-.navbar-collapse.in {
-  overflow-y: auto;
-}
-@media (min-width: 541px) {
-  .navbar-collapse {
-    width: auto;
-    border-top: 0;
-    box-shadow: none;
-  }
-  .navbar-collapse.collapse {
-    display: block !important;
-    height: auto !important;
-    padding-bottom: 0;
-    overflow: visible !important;
-  }
-  .navbar-collapse.in {
-    overflow-y: visible;
-  }
-  .navbar-fixed-top .navbar-collapse,
-  .navbar-static-top .navbar-collapse,
-  .navbar-fixed-bottom .navbar-collapse {
-    padding-left: 0;
-    padding-right: 0;
-  }
-}
-.navbar-fixed-top .navbar-collapse,
-.navbar-fixed-bottom .navbar-collapse {
-  max-height: 340px;
-}
-@media (max-device-width: 540px) and (orientation: landscape) {
-  .navbar-fixed-top .navbar-collapse,
-  .navbar-fixed-bottom .navbar-collapse {
-    max-height: 200px;
-  }
-}
-.container > .navbar-header,
-.container-fluid > .navbar-header,
-.container > .navbar-collapse,
-.container-fluid > .navbar-collapse {
-  margin-right: 0px;
-  margin-left: 0px;
-}
-@media (min-width: 541px) {
-  .container > .navbar-header,
-  .container-fluid > .navbar-header,
-  .container > .navbar-collapse,
-  .container-fluid > .navbar-collapse {
-    margin-right: 0;
-    margin-left: 0;
-  }
-}
-.navbar-static-top {
-  z-index: 1000;
-  border-width: 0 0 1px;
-}
-@media (min-width: 541px) {
-  .navbar-static-top {
-    border-radius: 0;
-  }
-}
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-}
-@media (min-width: 541px) {
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    border-radius: 0;
-  }
-}
-.navbar-fixed-top {
-  top: 0;
-  border-width: 0 0 1px;
-}
-.navbar-fixed-bottom {
-  bottom: 0;
-  margin-bottom: 0;
-  border-width: 1px 0 0;
-}
-.navbar-brand {
-  float: left;
-  padding: 6px 0px;
-  font-size: 17px;
-  line-height: 18px;
-  height: 30px;
-}
-.navbar-brand:hover,
-.navbar-brand:focus {
-  text-decoration: none;
-}
-.navbar-brand > img {
-  display: block;
-}
-@media (min-width: 541px) {
-  .navbar > .container .navbar-brand,
-  .navbar > .container-fluid .navbar-brand {
-    margin-left: 0px;
-  }
-}
-.navbar-toggle {
-  position: relative;
-  float: right;
-  margin-right: 0px;
-  padding: 9px 10px;
-  margin-top: -2px;
-  margin-bottom: -2px;
-  background-color: transparent;
-  background-image: none;
-  border: 1px solid transparent;
-  border-radius: 2px;
-}
-.navbar-toggle:focus {
-  outline: 0;
-}
-.navbar-toggle .icon-bar {
-  display: block;
-  width: 22px;
-  height: 2px;
-  border-radius: 1px;
-}
-.navbar-toggle .icon-bar + .icon-bar {
-  margin-top: 4px;
-}
-@media (min-width: 541px) {
-  .navbar-toggle {
-    display: none;
-  }
-}
-.navbar-nav {
-  margin: 3px 0px;
-}
-.navbar-nav > li > a {
-  padding-top: 10px;
-  padding-bottom: 10px;
-  line-height: 18px;
-}
-@media (max-width: 540px) {
-  .navbar-nav .open .dropdown-menu {
-    position: static;
-    float: none;
-    width: auto;
-    margin-top: 0;
-    background-color: transparent;
-    border: 0;
-    box-shadow: none;
-  }
-  .navbar-nav .open .dropdown-menu > li > a,
-  .navbar-nav .open .dropdown-menu .dropdown-header {
-    padding: 5px 15px 5px 25px;
-  }
-  .navbar-nav .open .dropdown-menu > li > a {
-    line-height: 18px;
-  }
-  .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-nav .open .dropdown-menu > li > a:focus {
-    background-image: none;
-  }
-}
-@media (min-width: 541px) {
-  .navbar-nav {
-    float: left;
-    margin: 0;
-  }
-  .navbar-nav > li {
-    float: left;
-  }
-  .navbar-nav > li > a {
-    padding-top: 6px;
-    padding-bottom: 6px;
-  }
-}
-.navbar-form {
-  margin-left: 0px;
-  margin-right: 0px;
-  padding: 10px 0px;
-  border-top: 1px solid transparent;
-  border-bottom: 1px solid transparent;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-  margin-top: -1px;
-  margin-bottom: -1px;
-}
-@media (min-width: 768px) {
-  .navbar-form .form-group {
-    display: inline-block;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .form-control {
-    display: inline-block;
-    width: auto;
-    vertical-align: middle;
-  }
-  .navbar-form .form-control-static {
-    display: inline-block;
-  }
-  .navbar-form .input-group {
-    display: inline-table;
-    vertical-align: middle;
-  }
-  .navbar-form .input-group .input-group-addon,
-  .navbar-form .input-group .input-group-btn,
-  .navbar-form .input-group .form-control {
-    width: auto;
-  }
-  .navbar-form .input-group > .form-control {
-    width: 100%;
-  }
-  .navbar-form .control-label {
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .radio,
-  .navbar-form .checkbox {
-    display: inline-block;
-    margin-top: 0;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .radio label,
-  .navbar-form .checkbox label {
-    padding-left: 0;
-  }
-  .navbar-form .radio input[type="radio"],
-  .navbar-form .checkbox input[type="checkbox"] {
-    position: relative;
-    margin-left: 0;
-  }
-  .navbar-form .has-feedback .form-control-feedback {
-    top: 0;
-  }
-}
-@media (max-width: 540px) {
-  .navbar-form .form-group {
-    margin-bottom: 5px;
-  }
-  .navbar-form .form-group:last-child {
-    margin-bottom: 0;
-  }
-}
-@media (min-width: 541px) {
-  .navbar-form {
-    width: auto;
-    border: 0;
-    margin-left: 0;
-    margin-right: 0;
-    padding-top: 0;
-    padding-bottom: 0;
-    -webkit-box-shadow: none;
-    box-shadow: none;
-  }
-}
-.navbar-nav > li > .dropdown-menu {
-  margin-top: 0;
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
-}
-.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
-  margin-bottom: 0;
-  border-top-right-radius: 2px;
-  border-top-left-radius: 2px;
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.navbar-btn {
-  margin-top: -1px;
-  margin-bottom: -1px;
-}
-.navbar-btn.btn-sm {
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-.navbar-btn.btn-xs {
-  margin-top: 4px;
-  margin-bottom: 4px;
-}
-.navbar-text {
-  margin-top: 6px;
-  margin-bottom: 6px;
-}
-@media (min-width: 541px) {
-  .navbar-text {
-    float: left;
-    margin-left: 0px;
-    margin-right: 0px;
-  }
-}
-@media (min-width: 541px) {
-  .navbar-left {
-    float: left !important;
-    float: left;
-  }
-  .navbar-right {
-    float: right !important;
-    float: right;
-    margin-right: 0px;
-  }
-  .navbar-right ~ .navbar-right {
-    margin-right: 0;
-  }
-}
-.navbar-default {
-  background-color: #f8f8f8;
-  border-color: #e7e7e7;
-}
-.navbar-default .navbar-brand {
-  color: #777;
-}
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
-  color: #5e5e5e;
-  background-color: transparent;
-}
-.navbar-default .navbar-text {
-  color: #777;
-}
-.navbar-default .navbar-nav > li > a {
-  color: #777;
-}
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
-  color: #333;
-  background-color: transparent;
-}
-.navbar-default .navbar-nav > .active > a,
-.navbar-default .navbar-nav > .active > a:hover,
-.navbar-default .navbar-nav > .active > a:focus {
-  color: #555;
-  background-color: #e7e7e7;
-}
-.navbar-default .navbar-nav > .disabled > a,
-.navbar-default .navbar-nav > .disabled > a:hover,
-.navbar-default .navbar-nav > .disabled > a:focus {
-  color: #ccc;
-  background-color: transparent;
-}
-.navbar-default .navbar-toggle {
-  border-color: #ddd;
-}
-.navbar-default .navbar-toggle:hover,
-.navbar-default .navbar-toggle:focus {
-  background-color: #ddd;
-}
-.navbar-default .navbar-toggle .icon-bar {
-  background-color: #888;
-}
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
-  border-color: #e7e7e7;
-}
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .open > a:hover,
-.navbar-default .navbar-nav > .open > a:focus {
-  background-color: #e7e7e7;
-  color: #555;
-}
-@media (max-width: 540px) {
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
-    color: #777;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
-    color: #333;
-    background-color: transparent;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
-    color: #555;
-    background-color: #e7e7e7;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
-    color: #ccc;
-    background-color: transparent;
-  }
-}
-.navbar-default .navbar-link {
-  color: #777;
-}
-.navbar-default .navbar-link:hover {
-  color: #333;
-}
-.navbar-default .btn-link {
-  color: #777;
-}
-.navbar-default .btn-link:hover,
-.navbar-default .btn-link:focus {
-  color: #333;
-}
-.navbar-default .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-default .btn-link:hover,
-.navbar-default .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-default .btn-link:focus {
-  color: #ccc;
-}
-.navbar-inverse {
-  background-color: #222;
-  border-color: #080808;
-}
-.navbar-inverse .navbar-brand {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-brand:hover,
-.navbar-inverse .navbar-brand:focus {
-  color: #fff;
-  background-color: transparent;
-}
-.navbar-inverse .navbar-text {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-nav > li > a {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-nav > li > a:hover,
-.navbar-inverse .navbar-nav > li > a:focus {
-  color: #fff;
-  background-color: transparent;
-}
-.navbar-inverse .navbar-nav > .active > a,
-.navbar-inverse .navbar-nav > .active > a:hover,
-.navbar-inverse .navbar-nav > .active > a:focus {
-  color: #fff;
-  background-color: #080808;
-}
-.navbar-inverse .navbar-nav > .disabled > a,
-.navbar-inverse .navbar-nav > .disabled > a:hover,
-.navbar-inverse .navbar-nav > .disabled > a:focus {
-  color: #444;
-  background-color: transparent;
-}
-.navbar-inverse .navbar-toggle {
-  border-color: #333;
-}
-.navbar-inverse .navbar-toggle:hover,
-.navbar-inverse .navbar-toggle:focus {
-  background-color: #333;
-}
-.navbar-inverse .navbar-toggle .icon-bar {
-  background-color: #fff;
-}
-.navbar-inverse .navbar-collapse,
-.navbar-inverse .navbar-form {
-  border-color: #101010;
-}
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .open > a:hover,
-.navbar-inverse .navbar-nav > .open > a:focus {
-  background-color: #080808;
-  color: #fff;
-}
-@media (max-width: 540px) {
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
-    border-color: #080808;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
-    background-color: #080808;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
-    color: #9d9d9d;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
-    color: #fff;
-    background-color: transparent;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
-    color: #fff;
-    background-color: #080808;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
-    color: #444;
-    background-color: transparent;
-  }
-}
-.navbar-inverse .navbar-link {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-link:hover {
-  color: #fff;
-}
-.navbar-inverse .btn-link {
-  color: #9d9d9d;
-}
-.navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link:focus {
-  color: #fff;
-}
-.navbar-inverse .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-inverse .btn-link:focus {
-  color: #444;
-}
-.breadcrumb {
-  padding: 8px 15px;
-  margin-bottom: 18px;
-  list-style: none;
-  background-color: #f5f5f5;
-  border-radius: 2px;
-}
-.breadcrumb > li {
-  display: inline-block;
-}
-.breadcrumb > li + li:before {
-  content: "/\00a0";
-  padding: 0 5px;
-  color: #5e5e5e;
-}
-.breadcrumb > .active {
-  color: #777777;
-}
-.pagination {
-  display: inline-block;
-  padding-left: 0;
-  margin: 18px 0;
-  border-radius: 2px;
-}
-.pagination > li {
-  display: inline;
-}
-.pagination > li > a,
-.pagination > li > span {
-  position: relative;
-  float: left;
-  padding: 6px 12px;
-  line-height: 1.42857143;
-  text-decoration: none;
-  color: #337ab7;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  margin-left: -1px;
-}
-.pagination > li:first-child > a,
-.pagination > li:first-child > span {
-  margin-left: 0;
-  border-bottom-left-radius: 2px;
-  border-top-left-radius: 2px;
-}
-.pagination > li:last-child > a,
-.pagination > li:last-child > span {
-  border-bottom-right-radius: 2px;
-  border-top-right-radius: 2px;
-}
-.pagination > li > a:hover,
-.pagination > li > span:hover,
-.pagination > li > a:focus,
-.pagination > li > span:focus {
-  z-index: 2;
-  color: #23527c;
-  background-color: #eeeeee;
-  border-color: #ddd;
-}
-.pagination > .active > a,
-.pagination > .active > span,
-.pagination > .active > a:hover,
-.pagination > .active > span:hover,
-.pagination > .active > a:focus,
-.pagination > .active > span:focus {
-  z-index: 3;
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #337ab7;
-  cursor: default;
-}
-.pagination > .disabled > span,
-.pagination > .disabled > span:hover,
-.pagination > .disabled > span:focus,
-.pagination > .disabled > a,
-.pagination > .disabled > a:hover,
-.pagination > .disabled > a:focus {
-  color: #777777;
-  background-color: #fff;
-  border-color: #ddd;
-  cursor: not-allowed;
-}
-.pagination-lg > li > a,
-.pagination-lg > li > span {
-  padding: 10px 16px;
-  font-size: 17px;
-  line-height: 1.3333333;
-}
-.pagination-lg > li:first-child > a,
-.pagination-lg > li:first-child > span {
-  border-bottom-left-radius: 3px;
-  border-top-left-radius: 3px;
-}
-.pagination-lg > li:last-child > a,
-.pagination-lg > li:last-child > span {
-  border-bottom-right-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.pagination-sm > li > a,
-.pagination-sm > li > span {
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-}
-.pagination-sm > li:first-child > a,
-.pagination-sm > li:first-child > span {
-  border-bottom-left-radius: 1px;
-  border-top-left-radius: 1px;
-}
-.pagination-sm > li:last-child > a,
-.pagination-sm > li:last-child > span {
-  border-bottom-right-radius: 1px;
-  border-top-right-radius: 1px;
-}
-.pager {
-  padding-left: 0;
-  margin: 18px 0;
-  list-style: none;
-  text-align: center;
-}
-.pager li {
-  display: inline;
-}
-.pager li > a,
-.pager li > span {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 15px;
-}
-.pager li > a:hover,
-.pager li > a:focus {
-  text-decoration: none;
-  background-color: #eeeeee;
-}
-.pager .next > a,
-.pager .next > span {
-  float: right;
-}
-.pager .previous > a,
-.pager .previous > span {
-  float: left;
-}
-.pager .disabled > a,
-.pager .disabled > a:hover,
-.pager .disabled > a:focus,
-.pager .disabled > span {
-  color: #777777;
-  background-color: #fff;
-  cursor: not-allowed;
-}
-.label {
-  display: inline;
-  padding: .2em .6em .3em;
-  font-size: 75%;
-  font-weight: bold;
-  line-height: 1;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: .25em;
-}
-a.label:hover,
-a.label:focus {
-  color: #fff;
-  text-decoration: none;
-  cursor: pointer;
-}
-.label:empty {
-  display: none;
-}
-.btn .label {
-  position: relative;
-  top: -1px;
-}
-.label-default {
-  background-color: #777777;
-}
-.label-default[href]:hover,
-.label-default[href]:focus {
-  background-color: #5e5e5e;
-}
-.label-primary {
-  background-color: #337ab7;
-}
-.label-primary[href]:hover,
-.label-primary[href]:focus {
-  background-color: #286090;
-}
-.label-success {
-  background-color: #5cb85c;
-}
-.label-success[href]:hover,
-.label-success[href]:focus {
-  background-color: #449d44;
-}
-.label-info {
-  background-color: #5bc0de;
-}
-.label-info[href]:hover,
-.label-info[href]:focus {
-  background-color: #31b0d5;
-}
-.label-warning {
-  background-color: #f0ad4e;
-}
-.label-warning[href]:hover,
-.label-warning[href]:focus {
-  background-color: #ec971f;
-}
-.label-danger {
-  background-color: #d9534f;
-}
-.label-danger[href]:hover,
-.label-danger[href]:focus {
-  background-color: #c9302c;
-}
-.badge {
-  display: inline-block;
-  min-width: 10px;
-  padding: 3px 7px;
-  font-size: 12px;
-  font-weight: bold;
-  color: #fff;
-  line-height: 1;
-  vertical-align: middle;
-  white-space: nowrap;
-  text-align: center;
-  background-color: #777777;
-  border-radius: 10px;
-}
-.badge:empty {
-  display: none;
-}
-.btn .badge {
-  position: relative;
-  top: -1px;
-}
-.btn-xs .badge,
-.btn-group-xs > .btn .badge {
-  top: 0;
-  padding: 1px 5px;
-}
-a.badge:hover,
-a.badge:focus {
-  color: #fff;
-  text-decoration: none;
-  cursor: pointer;
-}
-.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.list-group-item > .badge {
-  float: right;
-}
-.list-group-item > .badge + .badge {
-  margin-right: 5px;
-}
-.nav-pills > li > a > .badge {
-  margin-left: 3px;
-}
-.jumbotron {
-  padding-top: 30px;
-  padding-bottom: 30px;
-  margin-bottom: 30px;
-  color: inherit;
-  background-color: #eeeeee;
-}
-.jumbotron h1,
-.jumbotron .h1 {
-  color: inherit;
-}
-.jumbotron p {
-  margin-bottom: 15px;
-  font-size: 20px;
-  font-weight: 200;
-}
-.jumbotron > hr {
-  border-top-color: #d5d5d5;
-}
-.container .jumbotron,
-.container-fluid .jumbotron {
-  border-radius: 3px;
-  padding-left: 0px;
-  padding-right: 0px;
-}
-.jumbotron .container {
-  max-width: 100%;
-}
-@media screen and (min-width: 768px) {
-  .jumbotron {
-    padding-top: 48px;
-    padding-bottom: 48px;
-  }
-  .container .jumbotron,
-  .container-fluid .jumbotron {
-    padding-left: 60px;
-    padding-right: 60px;
-  }
-  .jumbotron h1,
-  .jumbotron .h1 {
-    font-size: 59px;
-  }
-}
-.thumbnail {
-  display: block;
-  padding: 4px;
-  margin-bottom: 18px;
-  line-height: 1.42857143;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 2px;
-  -webkit-transition: border 0.2s ease-in-out;
-  -o-transition: border 0.2s ease-in-out;
-  transition: border 0.2s ease-in-out;
-}
-.thumbnail > img,
-.thumbnail a > img {
-  margin-left: auto;
-  margin-right: auto;
-}
-a.thumbnail:hover,
-a.thumbnail:focus,
-a.thumbnail.active {
-  border-color: #337ab7;
-}
-.thumbnail .caption {
-  padding: 9px;
-  color: #000;
-}
-.alert {
-  padding: 15px;
-  margin-bottom: 18px;
-  border: 1px solid transparent;
-  border-radius: 2px;
-}
-.alert h4 {
-  margin-top: 0;
-  color: inherit;
-}
-.alert .alert-link {
-  font-weight: bold;
-}
-.alert > p,
-.alert > ul {
-  margin-bottom: 0;
-}
-.alert > p + p {
-  margin-top: 5px;
-}
-.alert-dismissable,
-.alert-dismissible {
-  padding-right: 35px;
-}
-.alert-dismissable .close,
-.alert-dismissible .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  color: inherit;
-}
-.alert-success {
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-  color: #3c763d;
-}
-.alert-success hr {
-  border-top-color: #c9e2b3;
-}
-.alert-success .alert-link {
-  color: #2b542c;
-}
-.alert-info {
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-  color: #31708f;
-}
-.alert-info hr {
-  border-top-color: #a6e1ec;
-}
-.alert-info .alert-link {
-  color: #245269;
-}
-.alert-warning {
-  background-color: #fcf8e3;
-  border-color: #faebcc;
-  color: #8a6d3b;
-}
-.alert-warning hr {
-  border-top-color: #f7e1b5;
-}
-.alert-warning .alert-link {
-  color: #66512c;
-}
-.alert-danger {
-  background-color: #f2dede;
-  border-color: #ebccd1;
-  color: #a94442;
-}
-.alert-danger hr {
-  border-top-color: #e4b9c0;
-}
-.alert-danger .alert-link {
-  color: #843534;
-}
-@-webkit-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-.progress {
-  overflow: hidden;
-  height: 18px;
-  margin-bottom: 18px;
-  background-color: #f5f5f5;
-  border-radius: 2px;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-}
-.progress-bar {
-  float: left;
-  width: 0%;
-  height: 100%;
-  font-size: 12px;
-  line-height: 18px;
-  color: #fff;
-  text-align: center;
-  background-color: #337ab7;
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -webkit-transition: width 0.6s ease;
-  -o-transition: width 0.6s ease;
-  transition: width 0.6s ease;
-}
-.progress-striped .progress-bar,
-.progress-bar-striped {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-size: 40px 40px;
-}
-.progress.active .progress-bar,
-.progress-bar.active {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-  -o-animation: progress-bar-stripes 2s linear infinite;
-  animation: progress-bar-stripes 2s linear infinite;
-}
-.progress-bar-success {
-  background-color: #5cb85c;
-}
-.progress-striped .progress-bar-success {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-bar-info {
-  background-color: #5bc0de;
-}
-.progress-striped .progress-bar-info {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-bar-warning {
-  background-color: #f0ad4e;
-}
-.progress-striped .progress-bar-warning {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-bar-danger {
-  background-color: #d9534f;
-}
-.progress-striped .progress-bar-danger {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.media {
-  margin-top: 15px;
-}
-.media:first-child {
-  margin-top: 0;
-}
-.media,
-.media-body {
-  zoom: 1;
-  overflow: hidden;
-}
-.media-body {
-  width: 10000px;
-}
-.media-object {
-  display: block;
-}
-.media-object.img-thumbnail {
-  max-width: none;
-}
-.media-right,
-.media > .pull-right {
-  padding-left: 10px;
-}
-.media-left,
-.media > .pull-left {
-  padding-right: 10px;
-}
-.media-left,
-.media-right,
-.media-body {
-  display: table-cell;
-  vertical-align: top;
-}
-.media-middle {
-  vertical-align: middle;
-}
-.media-bottom {
-  vertical-align: bottom;
-}
-.media-heading {
-  margin-top: 0;
-  margin-bottom: 5px;
-}
-.media-list {
-  padding-left: 0;
-  list-style: none;
-}
-.list-group {
-  margin-bottom: 20px;
-  padding-left: 0;
-}
-.list-group-item {
-  position: relative;
-  display: block;
-  padding: 10px 15px;
-  margin-bottom: -1px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-.list-group-item:first-child {
-  border-top-right-radius: 2px;
-  border-top-left-radius: 2px;
-}
-.list-group-item:last-child {
-  margin-bottom: 0;
-  border-bottom-right-radius: 2px;
-  border-bottom-left-radius: 2px;
-}
-a.list-group-item,
-button.list-group-item {
-  color: #555;
-}
-a.list-group-item .list-group-item-heading,
-button.list-group-item .list-group-item-heading {
-  color: #333;
-}
-a.list-group-item:hover,
-button.list-group-item:hover,
-a.list-group-item:focus,
-button.list-group-item:focus {
-  text-decoration: none;
-  color: #555;
-  background-color: #f5f5f5;
-}
-button.list-group-item {
-  width: 100%;
-  text-align: left;
-}
-.list-group-item.disabled,
-.list-group-item.disabled:hover,
-.list-group-item.disabled:focus {
-  background-color: #eeeeee;
-  color: #777777;
-  cursor: not-allowed;
-}
-.list-group-item.disabled .list-group-item-heading,
-.list-group-item.disabled:hover .list-group-item-heading,
-.list-group-item.disabled:focus .list-group-item-heading {
-  color: inherit;
-}
-.list-group-item.disabled .list-group-item-text,
-.list-group-item.disabled:hover .list-group-item-text,
-.list-group-item.disabled:focus .list-group-item-text {
-  color: #777777;
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
-  z-index: 2;
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.list-group-item.active .list-group-item-heading,
-.list-group-item.active:hover .list-group-item-heading,
-.list-group-item.active:focus .list-group-item-heading,
-.list-group-item.active .list-group-item-heading > small,
-.list-group-item.active:hover .list-group-item-heading > small,
-.list-group-item.active:focus .list-group-item-heading > small,
-.list-group-item.active .list-group-item-heading > .small,
-.list-group-item.active:hover .list-group-item-heading > .small,
-.list-group-item.active:focus .list-group-item-heading > .small {
-  color: inherit;
-}
-.list-group-item.active .list-group-item-text,
-.list-group-item.active:hover .list-group-item-text,
-.list-group-item.active:focus .list-group-item-text {
-  color: #c7ddef;
-}
-.list-group-item-success {
-  color: #3c763d;
-  background-color: #dff0d8;
-}
-a.list-group-item-success,
-button.list-group-item-success {
-  color: #3c763d;
-}
-a.list-group-item-success .list-group-item-heading,
-button.list-group-item-success .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-success:hover,
-button.list-group-item-success:hover,
-a.list-group-item-success:focus,
-button.list-group-item-success:focus {
-  color: #3c763d;
-  background-color: #d0e9c6;
-}
-a.list-group-item-success.active,
-button.list-group-item-success.active,
-a.list-group-item-success.active:hover,
-button.list-group-item-success.active:hover,
-a.list-group-item-success.active:focus,
-button.list-group-item-success.active:focus {
-  color: #fff;
-  background-color: #3c763d;
-  border-color: #3c763d;
-}
-.list-group-item-info {
-  color: #31708f;
-  background-color: #d9edf7;
-}
-a.list-group-item-info,
-button.list-group-item-info {
-  color: #31708f;
-}
-a.list-group-item-info .list-group-item-heading,
-button.list-group-item-info .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-info:hover,
-button.list-group-item-info:hover,
-a.list-group-item-info:focus,
-button.list-group-item-info:focus {
-  color: #31708f;
-  background-color: #c4e3f3;
-}
-a.list-group-item-info.active,
-button.list-group-item-info.active,
-a.list-group-item-info.active:hover,
-button.list-group-item-info.active:hover,
-a.list-group-item-info.active:focus,
-button.list-group-item-info.active:focus {
-  color: #fff;
-  background-color: #31708f;
-  border-color: #31708f;
-}
-.list-group-item-warning {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-}
-a.list-group-item-warning,
-button.list-group-item-warning {
-  color: #8a6d3b;
-}
-a.list-group-item-warning .list-group-item-heading,
-button.list-group-item-warning .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-warning:hover,
-button.list-group-item-warning:hover,
-a.list-group-item-warning:focus,
-button.list-group-item-warning:focus {
-  color: #8a6d3b;
-  background-color: #faf2cc;
-}
-a.list-group-item-warning.active,
-button.list-group-item-warning.active,
-a.list-group-item-warning.active:hover,
-button.list-group-item-warning.active:hover,
-a.list-group-item-warning.active:focus,
-button.list-group-item-warning.active:focus {
-  color: #fff;
-  background-color: #8a6d3b;
-  border-color: #8a6d3b;
-}
-.list-group-item-danger {
-  color: #a94442;
-  background-color: #f2dede;
-}
-a.list-group-item-danger,
-button.list-group-item-danger {
-  color: #a94442;
-}
-a.list-group-item-danger .list-group-item-heading,
-button.list-group-item-danger .list-group-item-heading {
-  color: inherit;
-}
-a.list-group-item-danger:hover,
-button.list-group-item-danger:hover,
-a.list-group-item-danger:focus,
-button.list-group-item-danger:focus {
-  color: #a94442;
-  background-color: #ebcccc;
-}
-a.list-group-item-danger.active,
-button.list-group-item-danger.active,
-a.list-group-item-danger.active:hover,
-button.list-group-item-danger.active:hover,
-a.list-group-item-danger.active:focus,
-button.list-group-item-danger.active:focus {
-  color: #fff;
-  background-color: #a94442;
-  border-color: #a94442;
-}
-.list-group-item-heading {
-  margin-top: 0;
-  margin-bottom: 5px;
-}
-.list-group-item-text {
-  margin-bottom: 0;
-  line-height: 1.3;
-}
-.panel {
-  margin-bottom: 18px;
-  background-color: #fff;
-  border: 1px solid transparent;
-  border-radius: 2px;
-  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
-}
-.panel-body {
-  padding: 15px;
-}
-.panel-heading {
-  padding: 10px 15px;
-  border-bottom: 1px solid transparent;
-  border-top-right-radius: 1px;
-  border-top-left-radius: 1px;
-}
-.panel-heading > .dropdown .dropdown-toggle {
-  color: inherit;
-}
-.panel-title {
-  margin-top: 0;
-  margin-bottom: 0;
-  font-size: 15px;
-  color: inherit;
-}
-.panel-title > a,
-.panel-title > small,
-.panel-title > .small,
-.panel-title > small > a,
-.panel-title > .small > a {
-  color: inherit;
-}
-.panel-footer {
-  padding: 10px 15px;
-  background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
-  border-bottom-right-radius: 1px;
-  border-bottom-left-radius: 1px;
-}
-.panel > .list-group,
-.panel > .panel-collapse > .list-group {
-  margin-bottom: 0;
-}
-.panel > .list-group .list-group-item,
-.panel > .panel-collapse > .list-group .list-group-item {
-  border-width: 1px 0;
-  border-radius: 0;
-}
-.panel > .list-group:first-child .list-group-item:first-child,
-.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
-  border-top: 0;
-  border-top-right-radius: 1px;
-  border-top-left-radius: 1px;
-}
-.panel > .list-group:last-child .list-group-item:last-child,
-.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
-  border-bottom: 0;
-  border-bottom-right-radius: 1px;
-  border-bottom-left-radius: 1px;
-}
-.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
-}
-.panel-heading + .list-group .list-group-item:first-child {
-  border-top-width: 0;
-}
-.list-group + .panel-footer {
-  border-top-width: 0;
-}
-.panel > .table,
-.panel > .table-responsive > .table,
-.panel > .panel-collapse > .table {
-  margin-bottom: 0;
-}
-.panel > .table caption,
-.panel > .table-responsive > .table caption,
-.panel > .panel-collapse > .table caption {
-  padding-left: 15px;
-  padding-right: 15px;
-}
-.panel > .table:first-child,
-.panel > .table-responsive:first-child > .table:first-child {
-  border-top-right-radius: 1px;
-  border-top-left-radius: 1px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
-  border-top-left-radius: 1px;
-  border-top-right-radius: 1px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
-  border-top-left-radius: 1px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
-  border-top-right-radius: 1px;
-}
-.panel > .table:last-child,
-.panel > .table-responsive:last-child > .table:last-child {
-  border-bottom-right-radius: 1px;
-  border-bottom-left-radius: 1px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
-  border-bottom-left-radius: 1px;
-  border-bottom-right-radius: 1px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
-  border-bottom-left-radius: 1px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
-  border-bottom-right-radius: 1px;
-}
-.panel > .panel-body + .table,
-.panel > .panel-body + .table-responsive,
-.panel > .table + .panel-body,
-.panel > .table-responsive + .panel-body {
-  border-top: 1px solid #ddd;
-}
-.panel > .table > tbody:first-child > tr:first-child th,
-.panel > .table > tbody:first-child > tr:first-child td {
-  border-top: 0;
-}
-.panel > .table-bordered,
-.panel > .table-responsive > .table-bordered {
-  border: 0;
-}
-.panel > .table-bordered > thead > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
-.panel > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-bordered > thead > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
-.panel > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-bordered > tfoot > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
-  border-left: 0;
-}
-.panel > .table-bordered > thead > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
-.panel > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-bordered > thead > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
-.panel > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-bordered > tfoot > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
-  border-right: 0;
-}
-.panel > .table-bordered > thead > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
-.panel > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-bordered > thead > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
-.panel > .table-bordered > tbody > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
-  border-bottom: 0;
-}
-.panel > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-bordered > tfoot > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
-  border-bottom: 0;
-}
-.panel > .table-responsive {
-  border: 0;
-  margin-bottom: 0;
-}
-.panel-group {
-  margin-bottom: 18px;
-}
-.panel-group .panel {
-  margin-bottom: 0;
-  border-radius: 2px;
-}
-.panel-group .panel + .panel {
-  margin-top: 5px;
-}
-.panel-group .panel-heading {
-  border-bottom: 0;
-}
-.panel-group .panel-heading + .panel-collapse > .panel-body,
-.panel-group .panel-heading + .panel-collapse > .list-group {
-  border-top: 1px solid #ddd;
-}
-.panel-group .panel-footer {
-  border-top: 0;
-}
-.panel-group .panel-footer + .panel-collapse .panel-body {
-  border-bottom: 1px solid #ddd;
-}
-.panel-default {
-  border-color: #ddd;
-}
-.panel-default > .panel-heading {
-  color: #333333;
-  background-color: #f5f5f5;
-  border-color: #ddd;
-}
-.panel-default > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #ddd;
-}
-.panel-default > .panel-heading .badge {
-  color: #f5f5f5;
-  background-color: #333333;
-}
-.panel-default > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #ddd;
-}
-.panel-primary {
-  border-color: #337ab7;
-}
-.panel-primary > .panel-heading {
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.panel-primary > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #337ab7;
-}
-.panel-primary > .panel-heading .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.panel-primary > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #337ab7;
-}
-.panel-success {
-  border-color: #d6e9c6;
-}
-.panel-success > .panel-heading {
-  color: #3c763d;
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-}
-.panel-success > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #d6e9c6;
-}
-.panel-success > .panel-heading .badge {
-  color: #dff0d8;
-  background-color: #3c763d;
-}
-.panel-success > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #d6e9c6;
-}
-.panel-info {
-  border-color: #bce8f1;
-}
-.panel-info > .panel-heading {
-  color: #31708f;
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-}
-.panel-info > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #bce8f1;
-}
-.panel-info > .panel-heading .badge {
-  color: #d9edf7;
-  background-color: #31708f;
-}
-.panel-info > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #bce8f1;
-}
-.panel-warning {
-  border-color: #faebcc;
-}
-.panel-warning > .panel-heading {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-  border-color: #faebcc;
-}
-.panel-warning > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #faebcc;
-}
-.panel-warning > .panel-heading .badge {
-  color: #fcf8e3;
-  background-color: #8a6d3b;
-}
-.panel-warning > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #faebcc;
-}
-.panel-danger {
-  border-color: #ebccd1;
-}
-.panel-danger > .panel-heading {
-  color: #a94442;
-  background-color: #f2dede;
-  border-color: #ebccd1;
-}
-.panel-danger > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #ebccd1;
-}
-.panel-danger > .panel-heading .badge {
-  color: #f2dede;
-  background-color: #a94442;
-}
-.panel-danger > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #ebccd1;
-}
-.embed-responsive {
-  position: relative;
-  display: block;
-  height: 0;
-  padding: 0;
-  overflow: hidden;
-}
-.embed-responsive .embed-responsive-item,
-.embed-responsive iframe,
-.embed-responsive embed,
-.embed-responsive object,
-.embed-responsive video {
-  position: absolute;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  height: 100%;
-  width: 100%;
-  border: 0;
-}
-.embed-responsive-16by9 {
-  padding-bottom: 56.25%;
-}
-.embed-responsive-4by3 {
-  padding-bottom: 75%;
-}
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border: 1px solid #e3e3e3;
-  border-radius: 2px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-}
-.well blockquote {
-  border-color: #ddd;
-  border-color: rgba(0, 0, 0, 0.15);
-}
-.well-lg {
-  padding: 24px;
-  border-radius: 3px;
-}
-.well-sm {
-  padding: 9px;
-  border-radius: 1px;
-}
-.close {
-  float: right;
-  font-size: 19.5px;
-  font-weight: bold;
-  line-height: 1;
-  color: #000;
-  text-shadow: 0 1px 0 #fff;
-  opacity: 0.2;
-  filter: alpha(opacity=20);
-}
-.close:hover,
-.close:focus {
-  color: #000;
-  text-decoration: none;
-  cursor: pointer;
-  opacity: 0.5;
-  filter: alpha(opacity=50);
-}
-button.close {
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-}
-.modal-open {
-  overflow: hidden;
-}
-.modal {
-  display: none;
-  overflow: hidden;
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1050;
-  -webkit-overflow-scrolling: touch;
-  outline: 0;
-}
-.modal.fade .modal-dialog {
-  -webkit-transform: translate(0, -25%);
-  -ms-transform: translate(0, -25%);
-  -o-transform: translate(0, -25%);
-  transform: translate(0, -25%);
-  -webkit-transition: -webkit-transform 0.3s ease-out;
-  -moz-transition: -moz-transform 0.3s ease-out;
-  -o-transition: -o-transform 0.3s ease-out;
-  transition: transform 0.3s ease-out;
-}
-.modal.in .modal-dialog {
-  -webkit-transform: translate(0, 0);
-  -ms-transform: translate(0, 0);
-  -o-transform: translate(0, 0);
-  transform: translate(0, 0);
-}
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-}
-.modal-content {
-  position: relative;
-  background-color: #fff;
-  border: 1px solid #999;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 3px;
-  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
-  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
-  background-clip: padding-box;
-  outline: 0;
-}
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000;
-}
-.modal-backdrop.fade {
-  opacity: 0;
-  filter: alpha(opacity=0);
-}
-.modal-backdrop.in {
-  opacity: 0.5;
-  filter: alpha(opacity=50);
-}
-.modal-header {
-  padding: 15px;
-  border-bottom: 1px solid #e5e5e5;
-}
-.modal-header .close {
-  margin-top: -2px;
-}
-.modal-title {
-  margin: 0;
-  line-height: 1.42857143;
-}
-.modal-body {
-  position: relative;
-  padding: 15px;
-}
-.modal-footer {
-  padding: 15px;
-  text-align: right;
-  border-top: 1px solid #e5e5e5;
-}
-.modal-footer .btn + .btn {
-  margin-left: 5px;
-  margin-bottom: 0;
-}
-.modal-footer .btn-group .btn + .btn {
-  margin-left: -1px;
-}
-.modal-footer .btn-block + .btn-block {
-  margin-left: 0;
-}
-.modal-scrollbar-measure {
-  position: absolute;
-  top: -9999px;
-  width: 50px;
-  height: 50px;
-  overflow: scroll;
-}
-@media (min-width: 768px) {
-  .modal-dialog {
-    width: 600px;
-    margin: 30px auto;
-  }
-  .modal-content {
-    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
-    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
-  }
-  .modal-sm {
-    width: 300px;
-  }
-}
-@media (min-width: 992px) {
-  .modal-lg {
-    width: 900px;
-  }
-}
-.tooltip {
-  position: absolute;
-  z-index: 1070;
-  display: block;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-style: normal;
-  font-weight: normal;
-  letter-spacing: normal;
-  line-break: auto;
-  line-height: 1.42857143;
-  text-align: left;
-  text-align: start;
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  white-space: normal;
-  word-break: normal;
-  word-spacing: normal;
-  word-wrap: normal;
-  font-size: 12px;
-  opacity: 0;
-  filter: alpha(opacity=0);
-}
-.tooltip.in {
-  opacity: 0.9;
-  filter: alpha(opacity=90);
-}
-.tooltip.top {
-  margin-top: -3px;
-  padding: 5px 0;
-}
-.tooltip.right {
-  margin-left: 3px;
-  padding: 0 5px;
-}
-.tooltip.bottom {
-  margin-top: 3px;
-  padding: 5px 0;
-}
-.tooltip.left {
-  margin-left: -3px;
-  padding: 0 5px;
-}
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
-  color: #fff;
-  text-align: center;
-  background-color: #000;
-  border-radius: 2px;
-}
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: #000;
-}
-.tooltip.top-left .tooltip-arrow {
-  bottom: 0;
-  right: 5px;
-  margin-bottom: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: #000;
-}
-.tooltip.top-right .tooltip-arrow {
-  bottom: 0;
-  left: 5px;
-  margin-bottom: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: #000;
-}
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-width: 5px 5px 5px 0;
-  border-right-color: #000;
-}
-.tooltip.left .tooltip-arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-width: 5px 0 5px 5px;
-  border-left-color: #000;
-}
-.tooltip.bottom .tooltip-arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.tooltip.bottom-left .tooltip-arrow {
-  top: 0;
-  right: 5px;
-  margin-top: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.tooltip.bottom-right .tooltip-arrow {
-  top: 0;
-  left: 5px;
-  margin-top: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1060;
-  display: none;
-  max-width: 276px;
-  padding: 1px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-style: normal;
-  font-weight: normal;
-  letter-spacing: normal;
-  line-break: auto;
-  line-height: 1.42857143;
-  text-align: left;
-  text-align: start;
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  white-space: normal;
-  word-break: normal;
-  word-spacing: normal;
-  word-wrap: normal;
-  font-size: 13px;
-  background-color: #fff;
-  background-clip: padding-box;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 3px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-}
-.popover.top {
-  margin-top: -10px;
-}
-.popover.right {
-  margin-left: 10px;
-}
-.popover.bottom {
-  margin-top: 10px;
-}
-.popover.left {
-  margin-left: -10px;
-}
-.popover-title {
-  margin: 0;
-  padding: 8px 14px;
-  font-size: 13px;
-  background-color: #f7f7f7;
-  border-bottom: 1px solid #ebebeb;
-  border-radius: 2px 2px 0 0;
-}
-.popover-content {
-  padding: 9px 14px;
-}
-.popover > .arrow,
-.popover > .arrow:after {
-  position: absolute;
-  display: block;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-.popover > .arrow {
-  border-width: 11px;
-}
-.popover > .arrow:after {
-  border-width: 10px;
-  content: "";
-}
-.popover.top > .arrow {
-  left: 50%;
-  margin-left: -11px;
-  border-bottom-width: 0;
-  border-top-color: #999999;
-  border-top-color: rgba(0, 0, 0, 0.25);
-  bottom: -11px;
-}
-.popover.top > .arrow:after {
-  content: " ";
-  bottom: 1px;
-  margin-left: -10px;
-  border-bottom-width: 0;
-  border-top-color: #fff;
-}
-.popover.right > .arrow {
-  top: 50%;
-  left: -11px;
-  margin-top: -11px;
-  border-left-width: 0;
-  border-right-color: #999999;
-  border-right-color: rgba(0, 0, 0, 0.25);
-}
-.popover.right > .arrow:after {
-  content: " ";
-  left: 1px;
-  bottom: -10px;
-  border-left-width: 0;
-  border-right-color: #fff;
-}
-.popover.bottom > .arrow {
-  left: 50%;
-  margin-left: -11px;
-  border-top-width: 0;
-  border-bottom-color: #999999;
-  border-bottom-color: rgba(0, 0, 0, 0.25);
-  top: -11px;
-}
-.popover.bottom > .arrow:after {
-  content: " ";
-  top: 1px;
-  margin-left: -10px;
-  border-top-width: 0;
-  border-bottom-color: #fff;
-}
-.popover.left > .arrow {
-  top: 50%;
-  right: -11px;
-  margin-top: -11px;
-  border-right-width: 0;
-  border-left-color: #999999;
-  border-left-color: rgba(0, 0, 0, 0.25);
-}
-.popover.left > .arrow:after {
-  content: " ";
-  right: 1px;
-  border-right-width: 0;
-  border-left-color: #fff;
-  bottom: -10px;
-}
-.carousel {
-  position: relative;
-}
-.carousel-inner {
-  position: relative;
-  overflow: hidden;
-  width: 100%;
-}
-.carousel-inner > .item {
-  display: none;
-  position: relative;
-  -webkit-transition: 0.6s ease-in-out left;
-  -o-transition: 0.6s ease-in-out left;
-  transition: 0.6s ease-in-out left;
-}
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  line-height: 1;
-}
-@media all and (transform-3d), (-webkit-transform-3d) {
-  .carousel-inner > .item {
-    -webkit-transition: -webkit-transform 0.6s ease-in-out;
-    -moz-transition: -moz-transform 0.6s ease-in-out;
-    -o-transition: -o-transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    -moz-backface-visibility: hidden;
-    backface-visibility: hidden;
-    -webkit-perspective: 1000px;
-    -moz-perspective: 1000px;
-    perspective: 1000px;
-  }
-  .carousel-inner > .item.next,
-  .carousel-inner > .item.active.right {
-    -webkit-transform: translate3d(100%, 0, 0);
-    transform: translate3d(100%, 0, 0);
-    left: 0;
-  }
-  .carousel-inner > .item.prev,
-  .carousel-inner > .item.active.left {
-    -webkit-transform: translate3d(-100%, 0, 0);
-    transform: translate3d(-100%, 0, 0);
-    left: 0;
-  }
-  .carousel-inner > .item.next.left,
-  .carousel-inner > .item.prev.right,
-  .carousel-inner > .item.active {
-    -webkit-transform: translate3d(0, 0, 0);
-    transform: translate3d(0, 0, 0);
-    left: 0;
-  }
-}
-.carousel-inner > .active,
-.carousel-inner > .next,
-.carousel-inner > .prev {
-  display: block;
-}
-.carousel-inner > .active {
-  left: 0;
-}
-.carousel-inner > .next,
-.carousel-inner > .prev {
-  position: absolute;
-  top: 0;
-  width: 100%;
-}
-.carousel-inner > .next {
-  left: 100%;
-}
-.carousel-inner > .prev {
-  left: -100%;
-}
-.carousel-inner > .next.left,
-.carousel-inner > .prev.right {
-  left: 0;
-}
-.carousel-inner > .active.left {
-  left: -100%;
-}
-.carousel-inner > .active.right {
-  left: 100%;
-}
-.carousel-control {
-  position: absolute;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  width: 15%;
-  opacity: 0.5;
-  filter: alpha(opacity=50);
-  font-size: 20px;
-  color: #fff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
-  background-color: rgba(0, 0, 0, 0);
-}
-.carousel-control.left {
-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
-  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
-  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
-}
-.carousel-control.right {
-  left: auto;
-  right: 0;
-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
-  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
-  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
-}
-.carousel-control:hover,
-.carousel-control:focus {
-  outline: 0;
-  color: #fff;
-  text-decoration: none;
-  opacity: 0.9;
-  filter: alpha(opacity=90);
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-left,
-.carousel-control .glyphicon-chevron-right {
-  position: absolute;
-  top: 50%;
-  margin-top: -10px;
-  z-index: 5;
-  display: inline-block;
-}
-.carousel-control .icon-prev,
-.carousel-control .glyphicon-chevron-left {
-  left: 50%;
-  margin-left: -10px;
-}
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-right {
-  right: 50%;
-  margin-right: -10px;
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next {
-  width: 20px;
-  height: 20px;
-  line-height: 1;
-  font-family: serif;
-}
-.carousel-control .icon-prev:before {
-  content: '\2039';
-}
-.carousel-control .icon-next:before {
-  content: '\203a';
-}
-.carousel-indicators {
-  position: absolute;
-  bottom: 10px;
-  left: 50%;
-  z-index: 15;
-  width: 60%;
-  margin-left: -30%;
-  padding-left: 0;
-  list-style: none;
-  text-align: center;
-}
-.carousel-indicators li {
-  display: inline-block;
-  width: 10px;
-  height: 10px;
-  margin: 1px;
-  text-indent: -999px;
-  border: 1px solid #fff;
-  border-radius: 10px;
-  cursor: pointer;
-  background-color: #000 \9;
-  background-color: rgba(0, 0, 0, 0);
-}
-.carousel-indicators .active {
-  margin: 0;
-  width: 12px;
-  height: 12px;
-  background-color: #fff;
-}
-.carousel-caption {
-  position: absolute;
-  left: 15%;
-  right: 15%;
-  bottom: 20px;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: #fff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
-}
-.carousel-caption .btn {
-  text-shadow: none;
-}
-@media screen and (min-width: 768px) {
-  .carousel-control .glyphicon-chevron-left,
-  .carousel-control .glyphicon-chevron-right,
-  .carousel-control .icon-prev,
-  .carousel-control .icon-next {
-    width: 30px;
-    height: 30px;
-    margin-top: -10px;
-    font-size: 30px;
-  }
-  .carousel-control .glyphicon-chevron-left,
-  .carousel-control .icon-prev {
-    margin-left: -10px;
-  }
-  .carousel-control .glyphicon-chevron-right,
-  .carousel-control .icon-next {
-    margin-right: -10px;
-  }
-  .carousel-caption {
-    left: 20%;
-    right: 20%;
-    padding-bottom: 30px;
-  }
-  .carousel-indicators {
-    bottom: 20px;
-  }
-}
-.clearfix:before,
-.clearfix:after,
-.dl-horizontal dd:before,
-.dl-horizontal dd:after,
-.container:before,
-.container:after,
-.container-fluid:before,
-.container-fluid:after,
-.row:before,
-.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
-.btn-toolbar:before,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after,
-.nav:before,
-.nav:after,
-.navbar:before,
-.navbar:after,
-.navbar-header:before,
-.navbar-header:after,
-.navbar-collapse:before,
-.navbar-collapse:after,
-.pager:before,
-.pager:after,
-.panel-body:before,
-.panel-body:after,
-.modal-header:before,
-.modal-header:after,
-.modal-footer:before,
-.modal-footer:after,
-.item_buttons:before,
-.item_buttons:after {
-  content: " ";
-  display: table;
-}
-.clearfix:after,
-.dl-horizontal dd:after,
-.container:after,
-.container-fluid:after,
-.row:after,
-.form-horizontal .form-group:after,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:after,
-.nav:after,
-.navbar:after,
-.navbar-header:after,
-.navbar-collapse:after,
-.pager:after,
-.panel-body:after,
-.modal-header:after,
-.modal-footer:after,
-.item_buttons:after {
-  clear: both;
-}
-.center-block {
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
-}
-.pull-right {
-  float: right !important;
-}
-.pull-left {
-  float: left !important;
-}
-.hide {
-  display: none !important;
-}
-.show {
-  display: block !important;
-}
-.invisible {
-  visibility: hidden;
-}
-.text-hide {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-.hidden {
-  display: none !important;
-}
-.affix {
-  position: fixed;
-}
-@-ms-viewport {
-  width: device-width;
-}
-.visible-xs,
-.visible-sm,
-.visible-md,
-.visible-lg {
-  display: none !important;
-}
-.visible-xs-block,
-.visible-xs-inline,
-.visible-xs-inline-block,
-.visible-sm-block,
-.visible-sm-inline,
-.visible-sm-inline-block,
-.visible-md-block,
-.visible-md-inline,
-.visible-md-inline-block,
-.visible-lg-block,
-.visible-lg-inline,
-.visible-lg-inline-block {
-  display: none !important;
-}
-@media (max-width: 767px) {
-  .visible-xs {
-    display: block !important;
-  }
-  table.visible-xs {
-    display: table !important;
-  }
-  tr.visible-xs {
-    display: table-row !important;
-  }
-  th.visible-xs,
-  td.visible-xs {
-    display: table-cell !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-block {
-    display: block !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-inline {
-    display: inline !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm {
-    display: block !important;
-  }
-  table.visible-sm {
-    display: table !important;
-  }
-  tr.visible-sm {
-    display: table-row !important;
-  }
-  th.visible-sm,
-  td.visible-sm {
-    display: table-cell !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm-block {
-    display: block !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md {
-    display: block !important;
-  }
-  table.visible-md {
-    display: table !important;
-  }
-  tr.visible-md {
-    display: table-row !important;
-  }
-  th.visible-md,
-  td.visible-md {
-    display: table-cell !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md-block {
-    display: block !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg {
-    display: block !important;
-  }
-  table.visible-lg {
-    display: table !important;
-  }
-  tr.visible-lg {
-    display: table-row !important;
-  }
-  th.visible-lg,
-  td.visible-lg {
-    display: table-cell !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-block {
-    display: block !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (max-width: 767px) {
-  .hidden-xs {
-    display: none !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  .hidden-sm {
-    display: none !important;
-  }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
-  .hidden-md {
-    display: none !important;
-  }
-}
-@media (min-width: 1200px) {
-  .hidden-lg {
-    display: none !important;
-  }
-}
-.visible-print {
-  display: none !important;
-}
-@media print {
-  .visible-print {
-    display: block !important;
-  }
-  table.visible-print {
-    display: table !important;
-  }
-  tr.visible-print {
-    display: table-row !important;
-  }
-  th.visible-print,
-  td.visible-print {
-    display: table-cell !important;
-  }
-}
-.visible-print-block {
-  display: none !important;
-}
-@media print {
-  .visible-print-block {
-    display: block !important;
-  }
-}
-.visible-print-inline {
-  display: none !important;
-}
-@media print {
-  .visible-print-inline {
-    display: inline !important;
-  }
-}
-.visible-print-inline-block {
-  display: none !important;
-}
-@media print {
-  .visible-print-inline-block {
-    display: inline-block !important;
-  }
-}
-@media print {
-  .hidden-print {
-    display: none !important;
-  }
-}
-/*!
-*
-* Font Awesome
-*
-*/
-/*!
- *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
-  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-.fa {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-/* makes the font 33% larger relative to the icon container */
-.fa-lg {
-  font-size: 1.33333333em;
-  line-height: 0.75em;
-  vertical-align: -15%;
-}
-.fa-2x {
-  font-size: 2em;
-}
-.fa-3x {
-  font-size: 3em;
-}
-.fa-4x {
-  font-size: 4em;
-}
-.fa-5x {
-  font-size: 5em;
-}
-.fa-fw {
-  width: 1.28571429em;
-  text-align: center;
-}
-.fa-ul {
-  padding-left: 0;
-  margin-left: 2.14285714em;
-  list-style-type: none;
-}
-.fa-ul > li {
-  position: relative;
-}
-.fa-li {
-  position: absolute;
-  left: -2.14285714em;
-  width: 2.14285714em;
-  top: 0.14285714em;
-  text-align: center;
-}
-.fa-li.fa-lg {
-  left: -1.85714286em;
-}
-.fa-border {
-  padding: .2em .25em .15em;
-  border: solid 0.08em #eee;
-  border-radius: .1em;
-}
-.pull-right {
-  float: right;
-}
-.pull-left {
-  float: left;
-}
-.fa.pull-left {
-  margin-right: .3em;
-}
-.fa.pull-right {
-  margin-left: .3em;
-}
-.fa-spin {
-  -webkit-animation: fa-spin 2s infinite linear;
-  animation: fa-spin 2s infinite linear;
-}
-@-webkit-keyframes fa-spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg);
-  }
-}
-@keyframes fa-spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg);
-  }
-}
-.fa-rotate-90 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-  -webkit-transform: rotate(90deg);
-  -ms-transform: rotate(90deg);
-  transform: rotate(90deg);
-}
-.fa-rotate-180 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-  -webkit-transform: rotate(180deg);
-  -ms-transform: rotate(180deg);
-  transform: rotate(180deg);
-}
-.fa-rotate-270 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-  -webkit-transform: rotate(270deg);
-  -ms-transform: rotate(270deg);
-  transform: rotate(270deg);
-}
-.fa-flip-horizontal {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-.fa-flip-vertical {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(1, -1);
-  transform: scale(1, -1);
-}
-:root .fa-rotate-90,
-:root .fa-rotate-180,
-:root .fa-rotate-270,
-:root .fa-flip-horizontal,
-:root .fa-flip-vertical {
-  filter: none;
-}
-.fa-stack {
-  position: relative;
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  line-height: 2em;
-  vertical-align: middle;
-}
-.fa-stack-1x,
-.fa-stack-2x {
-  position: absolute;
-  left: 0;
-  width: 100%;
-  text-align: center;
-}
-.fa-stack-1x {
-  line-height: inherit;
-}
-.fa-stack-2x {
-  font-size: 2em;
-}
-.fa-inverse {
-  color: #fff;
-}
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-.fa-glass:before {
-  content: "\f000";
-}
-.fa-music:before {
-  content: "\f001";
-}
-.fa-search:before {
-  content: "\f002";
-}
-.fa-envelope-o:before {
-  content: "\f003";
-}
-.fa-heart:before {
-  content: "\f004";
-}
-.fa-star:before {
-  content: "\f005";
-}
-.fa-star-o:before {
-  content: "\f006";
-}
-.fa-user:before {
-  content: "\f007";
-}
-.fa-film:before {
-  content: "\f008";
-}
-.fa-th-large:before {
-  content: "\f009";
-}
-.fa-th:before {
-  content: "\f00a";
-}
-.fa-th-list:before {
-  content: "\f00b";
-}
-.fa-check:before {
-  content: "\f00c";
-}
-.fa-remove:before,
-.fa-close:before,
-.fa-times:before {
-  content: "\f00d";
-}
-.fa-search-plus:before {
-  content: "\f00e";
-}
-.fa-search-minus:before {
-  content: "\f010";
-}
-.fa-power-off:before {
-  content: "\f011";
-}
-.fa-signal:before {
-  content: "\f012";
-}
-.fa-gear:before,
-.fa-cog:before {
-  content: "\f013";
-}
-.fa-trash-o:before {
-  content: "\f014";
-}
-.fa-home:before {
-  content: "\f015";
-}
-.fa-file-o:before {
-  content: "\f016";
-}
-.fa-clock-o:before {
-  content: "\f017";
-}
-.fa-road:before {
-  content: "\f018";
-}
-.fa-download:before {
-  content: "\f019";
-}
-.fa-arrow-circle-o-down:before {
-  content: "\f01a";
-}
-.fa-arrow-circle-o-up:before {
-  content: "\f01b";
-}
-.fa-inbox:before {
-  content: "\f01c";
-}
-.fa-play-circle-o:before {
-  content: "\f01d";
-}
-.fa-rotate-right:before,
-.fa-repeat:before {
-  content: "\f01e";
-}
-.fa-refresh:before {
-  content: "\f021";
-}
-.fa-list-alt:before {
-  content: "\f022";
-}
-.fa-lock:before {
-  content: "\f023";
-}
-.fa-flag:before {
-  content: "\f024";
-}
-.fa-headphones:before {
-  content: "\f025";
-}
-.fa-volume-off:before {
-  content: "\f026";
-}
-.fa-volume-down:before {
-  content: "\f027";
-}
-.fa-volume-up:before {
-  content: "\f028";
-}
-.fa-qrcode:before {
-  content: "\f029";
-}
-.fa-barcode:before {
-  content: "\f02a";
-}
-.fa-tag:before {
-  content: "\f02b";
-}
-.fa-tags:before {
-  content: "\f02c";
-}
-.fa-book:before {
-  content: "\f02d";
-}
-.fa-bookmark:before {
-  content: "\f02e";
-}
-.fa-print:before {
-  content: "\f02f";
-}
-.fa-camera:before {
-  content: "\f030";
-}
-.fa-font:before {
-  content: "\f031";
-}
-.fa-bold:before {
-  content: "\f032";
-}
-.fa-italic:before {
-  content: "\f033";
-}
-.fa-text-height:before {
-  content: "\f034";
-}
-.fa-text-width:before {
-  content: "\f035";
-}
-.fa-align-left:before {
-  content: "\f036";
-}
-.fa-align-center:before {
-  content: "\f037";
-}
-.fa-align-right:before {
-  content: "\f038";
-}
-.fa-align-justify:before {
-  content: "\f039";
-}
-.fa-list:before {
-  content: "\f03a";
-}
-.fa-dedent:before,
-.fa-outdent:before {
-  content: "\f03b";
-}
-.fa-indent:before {
-  content: "\f03c";
-}
-.fa-video-camera:before {
-  content: "\f03d";
-}
-.fa-photo:before,
-.fa-image:before,
-.fa-picture-o:before {
-  content: "\f03e";
-}
-.fa-pencil:before {
-  content: "\f040";
-}
-.fa-map-marker:before {
-  content: "\f041";
-}
-.fa-adjust:before {
-  content: "\f042";
-}
-.fa-tint:before {
-  content: "\f043";
-}
-.fa-edit:before,
-.fa-pencil-square-o:before {
-  content: "\f044";
-}
-.fa-share-square-o:before {
-  content: "\f045";
-}
-.fa-check-square-o:before {
-  content: "\f046";
-}
-.fa-arrows:before {
-  content: "\f047";
-}
-.fa-step-backward:before {
-  content: "\f048";
-}
-.fa-fast-backward:before {
-  content: "\f049";
-}
-.fa-backward:before {
-  content: "\f04a";
-}
-.fa-play:before {
-  content: "\f04b";
-}
-.fa-pause:before {
-  content: "\f04c";
-}
-.fa-stop:before {
-  content: "\f04d";
-}
-.fa-forward:before {
-  content: "\f04e";
-}
-.fa-fast-forward:before {
-  content: "\f050";
-}
-.fa-step-forward:before {
-  content: "\f051";
-}
-.fa-eject:before {
-  content: "\f052";
-}
-.fa-chevron-left:before {
-  content: "\f053";
-}
-.fa-chevron-right:before {
-  content: "\f054";
-}
-.fa-plus-circle:before {
-  content: "\f055";
-}
-.fa-minus-circle:before {
-  content: "\f056";
-}
-.fa-times-circle:before {
-  content: "\f057";
-}
-.fa-check-circle:before {
-  content: "\f058";
-}
-.fa-question-circle:before {
-  content: "\f059";
-}
-.fa-info-circle:before {
-  content: "\f05a";
-}
-.fa-crosshairs:before {
-  content: "\f05b";
-}
-.fa-times-circle-o:before {
-  content: "\f05c";
-}
-.fa-check-circle-o:before {
-  content: "\f05d";
-}
-.fa-ban:before {
-  content: "\f05e";
-}
-.fa-arrow-left:before {
-  content: "\f060";
-}
-.fa-arrow-right:before {
-  content: "\f061";
-}
-.fa-arrow-up:before {
-  content: "\f062";
-}
-.fa-arrow-down:before {
-  content: "\f063";
-}
-.fa-mail-forward:before,
-.fa-share:before {
-  content: "\f064";
-}
-.fa-expand:before {
-  content: "\f065";
-}
-.fa-compress:before {
-  content: "\f066";
-}
-.fa-plus:before {
-  content: "\f067";
-}
-.fa-minus:before {
-  content: "\f068";
-}
-.fa-asterisk:before {
-  content: "\f069";
-}
-.fa-exclamation-circle:before {
-  content: "\f06a";
-}
-.fa-gift:before {
-  content: "\f06b";
-}
-.fa-leaf:before {
-  content: "\f06c";
-}
-.fa-fire:before {
-  content: "\f06d";
-}
-.fa-eye:before {
-  content: "\f06e";
-}
-.fa-eye-slash:before {
-  content: "\f070";
-}
-.fa-warning:before,
-.fa-exclamation-triangle:before {
-  content: "\f071";
-}
-.fa-plane:before {
-  content: "\f072";
-}
-.fa-calendar:before {
-  content: "\f073";
-}
-.fa-random:before {
-  content: "\f074";
-}
-.fa-comment:before {
-  content: "\f075";
-}
-.fa-magnet:before {
-  content: "\f076";
-}
-.fa-chevron-up:before {
-  content: "\f077";
-}
-.fa-chevron-down:before {
-  content: "\f078";
-}
-.fa-retweet:before {
-  content: "\f079";
-}
-.fa-shopping-cart:before {
-  content: "\f07a";
-}
-.fa-folder:before {
-  content: "\f07b";
-}
-.fa-folder-open:before {
-  content: "\f07c";
-}
-.fa-arrows-v:before {
-  content: "\f07d";
-}
-.fa-arrows-h:before {
-  content: "\f07e";
-}
-.fa-bar-chart-o:before,
-.fa-bar-chart:before {
-  content: "\f080";
-}
-.fa-twitter-square:before {
-  content: "\f081";
-}
-.fa-facebook-square:before {
-  content: "\f082";
-}
-.fa-camera-retro:before {
-  content: "\f083";
-}
-.fa-key:before {
-  content: "\f084";
-}
-.fa-gears:before,
-.fa-cogs:before {
-  content: "\f085";
-}
-.fa-comments:before {
-  content: "\f086";
-}
-.fa-thumbs-o-up:before {
-  content: "\f087";
-}
-.fa-thumbs-o-down:before {
-  content: "\f088";
-}
-.fa-star-half:before {
-  content: "\f089";
-}
-.fa-heart-o:before {
-  content: "\f08a";
-}
-.fa-sign-out:before {
-  content: "\f08b";
-}
-.fa-linkedin-square:before {
-  content: "\f08c";
-}
-.fa-thumb-tack:before {
-  content: "\f08d";
-}
-.fa-external-link:before {
-  content: "\f08e";
-}
-.fa-sign-in:before {
-  content: "\f090";
-}
-.fa-trophy:before {
-  content: "\f091";
-}
-.fa-github-square:before {
-  content: "\f092";
-}
-.fa-upload:before {
-  content: "\f093";
-}
-.fa-lemon-o:before {
-  content: "\f094";
-}
-.fa-phone:before {
-  content: "\f095";
-}
-.fa-square-o:before {
-  content: "\f096";
-}
-.fa-bookmark-o:before {
-  content: "\f097";
-}
-.fa-phone-square:before {
-  content: "\f098";
-}
-.fa-twitter:before {
-  content: "\f099";
-}
-.fa-facebook:before {
-  content: "\f09a";
-}
-.fa-github:before {
-  content: "\f09b";
-}
-.fa-unlock:before {
-  content: "\f09c";
-}
-.fa-credit-card:before {
-  content: "\f09d";
-}
-.fa-rss:before {
-  content: "\f09e";
-}
-.fa-hdd-o:before {
-  content: "\f0a0";
-}
-.fa-bullhorn:before {
-  content: "\f0a1";
-}
-.fa-bell:before {
-  content: "\f0f3";
-}
-.fa-certificate:before {
-  content: "\f0a3";
-}
-.fa-hand-o-right:before {
-  content: "\f0a4";
-}
-.fa-hand-o-left:before {
-  content: "\f0a5";
-}
-.fa-hand-o-up:before {
-  content: "\f0a6";
-}
-.fa-hand-o-down:before {
-  content: "\f0a7";
-}
-.fa-arrow-circle-left:before {
-  content: "\f0a8";
-}
-.fa-arrow-circle-right:before {
-  content: "\f0a9";
-}
-.fa-arrow-circle-up:before {
-  content: "\f0aa";
-}
-.fa-arrow-circle-down:before {
-  content: "\f0ab";
-}
-.fa-globe:before {
-  content: "\f0ac";
-}
-.fa-wrench:before {
-  content: "\f0ad";
-}
-.fa-tasks:before {
-  content: "\f0ae";
-}
-.fa-filter:before {
-  content: "\f0b0";
-}
-.fa-briefcase:before {
-  content: "\f0b1";
-}
-.fa-arrows-alt:before {
-  content: "\f0b2";
-}
-.fa-group:before,
-.fa-users:before {
-  content: "\f0c0";
-}
-.fa-chain:before,
-.fa-link:before {
-  content: "\f0c1";
-}
-.fa-cloud:before {
-  content: "\f0c2";
-}
-.fa-flask:before {
-  content: "\f0c3";
-}
-.fa-cut:before,
-.fa-scissors:before {
-  content: "\f0c4";
-}
-.fa-copy:before,
-.fa-files-o:before {
-  content: "\f0c5";
-}
-.fa-paperclip:before {
-  content: "\f0c6";
-}
-.fa-save:before,
-.fa-floppy-o:before {
-  content: "\f0c7";
-}
-.fa-square:before {
-  content: "\f0c8";
-}
-.fa-navicon:before,
-.fa-reorder:before,
-.fa-bars:before {
-  content: "\f0c9";
-}
-.fa-list-ul:before {
-  content: "\f0ca";
-}
-.fa-list-ol:before {
-  content: "\f0cb";
-}
-.fa-strikethrough:before {
-  content: "\f0cc";
-}
-.fa-underline:before {
-  content: "\f0cd";
-}
-.fa-table:before {
-  content: "\f0ce";
-}
-.fa-magic:before {
-  content: "\f0d0";
-}
-.fa-truck:before {
-  content: "\f0d1";
-}
-.fa-pinterest:before {
-  content: "\f0d2";
-}
-.fa-pinterest-square:before {
-  content: "\f0d3";
-}
-.fa-google-plus-square:before {
-  content: "\f0d4";
-}
-.fa-google-plus:before {
-  content: "\f0d5";
-}
-.fa-money:before {
-  content: "\f0d6";
-}
-.fa-caret-down:before {
-  content: "\f0d7";
-}
-.fa-caret-up:before {
-  content: "\f0d8";
-}
-.fa-caret-left:before {
-  content: "\f0d9";
-}
-.fa-caret-right:before {
-  content: "\f0da";
-}
-.fa-columns:before {
-  content: "\f0db";
-}
-.fa-unsorted:before,
-.fa-sort:before {
-  content: "\f0dc";
-}
-.fa-sort-down:before,
-.fa-sort-desc:before {
-  content: "\f0dd";
-}
-.fa-sort-up:before,
-.fa-sort-asc:before {
-  content: "\f0de";
-}
-.fa-envelope:before {
-  content: "\f0e0";
-}
-.fa-linkedin:before {
-  content: "\f0e1";
-}
-.fa-rotate-left:before,
-.fa-undo:before {
-  content: "\f0e2";
-}
-.fa-legal:before,
-.fa-gavel:before {
-  content: "\f0e3";
-}
-.fa-dashboard:before,
-.fa-tachometer:before {
-  content: "\f0e4";
-}
-.fa-comment-o:before {
-  content: "\f0e5";
-}
-.fa-comments-o:before {
-  content: "\f0e6";
-}
-.fa-flash:before,
-.fa-bolt:before {
-  content: "\f0e7";
-}
-.fa-sitemap:before {
-  content: "\f0e8";
-}
-.fa-umbrella:before {
-  content: "\f0e9";
-}
-.fa-paste:before,
-.fa-clipboard:before {
-  content: "\f0ea";
-}
-.fa-lightbulb-o:before {
-  content: "\f0eb";
-}
-.fa-exchange:before {
-  content: "\f0ec";
-}
-.fa-cloud-download:before {
-  content: "\f0ed";
-}
-.fa-cloud-upload:before {
-  content: "\f0ee";
-}
-.fa-user-md:before {
-  content: "\f0f0";
-}
-.fa-stethoscope:before {
-  content: "\f0f1";
-}
-.fa-suitcase:before {
-  content: "\f0f2";
-}
-.fa-bell-o:before {
-  content: "\f0a2";
-}
-.fa-coffee:before {
-  content: "\f0f4";
-}
-.fa-cutlery:before {
-  content: "\f0f5";
-}
-.fa-file-text-o:before {
-  content: "\f0f6";
-}
-.fa-building-o:before {
-  content: "\f0f7";
-}
-.fa-hospital-o:before {
-  content: "\f0f8";
-}
-.fa-ambulance:before {
-  content: "\f0f9";
-}
-.fa-medkit:before {
-  content: "\f0fa";
-}
-.fa-fighter-jet:before {
-  content: "\f0fb";
-}
-.fa-beer:before {
-  content: "\f0fc";
-}
-.fa-h-square:before {
-  content: "\f0fd";
-}
-.fa-plus-square:before {
-  content: "\f0fe";
-}
-.fa-angle-double-left:before {
-  content: "\f100";
-}
-.fa-angle-double-right:before {
-  content: "\f101";
-}
-.fa-angle-double-up:before {
-  content: "\f102";
-}
-.fa-angle-double-down:before {
-  content: "\f103";
-}
-.fa-angle-left:before {
-  content: "\f104";
-}
-.fa-angle-right:before {
-  content: "\f105";
-}
-.fa-angle-up:before {
-  content: "\f106";
-}
-.fa-angle-down:before {
-  content: "\f107";
-}
-.fa-desktop:before {
-  content: "\f108";
-}
-.fa-laptop:before {
-  content: "\f109";
-}
-.fa-tablet:before {
-  content: "\f10a";
-}
-.fa-mobile-phone:before,
-.fa-mobile:before {
-  content: "\f10b";
-}
-.fa-circle-o:before {
-  content: "\f10c";
-}
-.fa-quote-left:before {
-  content: "\f10d";
-}
-.fa-quote-right:before {
-  content: "\f10e";
-}
-.fa-spinner:before {
-  content: "\f110";
-}
-.fa-circle:before {
-  content: "\f111";
-}
-.fa-mail-reply:before,
-.fa-reply:before {
-  content: "\f112";
-}
-.fa-github-alt:before {
-  content: "\f113";
-}
-.fa-folder-o:before {
-  content: "\f114";
-}
-.fa-folder-open-o:before {
-  content: "\f115";
-}
-.fa-smile-o:before {
-  content: "\f118";
-}
-.fa-frown-o:before {
-  content: "\f119";
-}
-.fa-meh-o:before {
-  content: "\f11a";
-}
-.fa-gamepad:before {
-  content: "\f11b";
-}
-.fa-keyboard-o:before {
-  content: "\f11c";
-}
-.fa-flag-o:before {
-  content: "\f11d";
-}
-.fa-flag-checkered:before {
-  content: "\f11e";
-}
-.fa-terminal:before {
-  content: "\f120";
-}
-.fa-code:before {
-  content: "\f121";
-}
-.fa-mail-reply-all:before,
-.fa-reply-all:before {
-  content: "\f122";
-}
-.fa-star-half-empty:before,
-.fa-star-half-full:before,
-.fa-star-half-o:before {
-  content: "\f123";
-}
-.fa-location-arrow:before {
-  content: "\f124";
-}
-.fa-crop:before {
-  content: "\f125";
-}
-.fa-code-fork:before {
-  content: "\f126";
-}
-.fa-unlink:before,
-.fa-chain-broken:before {
-  content: "\f127";
-}
-.fa-question:before {
-  content: "\f128";
-}
-.fa-info:before {
-  content: "\f129";
-}
-.fa-exclamation:before {
-  content: "\f12a";
-}
-.fa-superscript:before {
-  content: "\f12b";
-}
-.fa-subscript:before {
-  content: "\f12c";
-}
-.fa-eraser:before {
-  content: "\f12d";
-}
-.fa-puzzle-piece:before {
-  content: "\f12e";
-}
-.fa-microphone:before {
-  content: "\f130";
-}
-.fa-microphone-slash:before {
-  content: "\f131";
-}
-.fa-shield:before {
-  content: "\f132";
-}
-.fa-calendar-o:before {
-  content: "\f133";
-}
-.fa-fire-extinguisher:before {
-  content: "\f134";
-}
-.fa-rocket:before {
-  content: "\f135";
-}
-.fa-maxcdn:before {
-  content: "\f136";
-}
-.fa-chevron-circle-left:before {
-  content: "\f137";
-}
-.fa-chevron-circle-right:before {
-  content: "\f138";
-}
-.fa-chevron-circle-up:before {
-  content: "\f139";
-}
-.fa-chevron-circle-down:before {
-  content: "\f13a";
-}
-.fa-html5:before {
-  content: "\f13b";
-}
-.fa-css3:before {
-  content: "\f13c";
-}
-.fa-anchor:before {
-  content: "\f13d";
-}
-.fa-unlock-alt:before {
-  content: "\f13e";
-}
-.fa-bullseye:before {
-  content: "\f140";
-}
-.fa-ellipsis-h:before {
-  content: "\f141";
-}
-.fa-ellipsis-v:before {
-  content: "\f142";
-}
-.fa-rss-square:before {
-  content: "\f143";
-}
-.fa-play-circle:before {
-  content: "\f144";
-}
-.fa-ticket:before {
-  content: "\f145";
-}
-.fa-minus-square:before {
-  content: "\f146";
-}
-.fa-minus-square-o:before {
-  content: "\f147";
-}
-.fa-level-up:before {
-  content: "\f148";
-}
-.fa-level-down:before {
-  content: "\f149";
-}
-.fa-check-square:before {
-  content: "\f14a";
-}
-.fa-pencil-square:before {
-  content: "\f14b";
-}
-.fa-external-link-square:before {
-  content: "\f14c";
-}
-.fa-share-square:before {
-  content: "\f14d";
-}
-.fa-compass:before {
-  content: "\f14e";
-}
-.fa-toggle-down:before,
-.fa-caret-square-o-down:before {
-  content: "\f150";
-}
-.fa-toggle-up:before,
-.fa-caret-square-o-up:before {
-  content: "\f151";
-}
-.fa-toggle-right:before,
-.fa-caret-square-o-right:before {
-  content: "\f152";
-}
-.fa-euro:before,
-.fa-eur:before {
-  content: "\f153";
-}
-.fa-gbp:before {
-  content: "\f154";
-}
-.fa-dollar:before,
-.fa-usd:before {
-  content: "\f155";
-}
-.fa-rupee:before,
-.fa-inr:before {
-  content: "\f156";
-}
-.fa-cny:before,
-.fa-rmb:before,
-.fa-yen:before,
-.fa-jpy:before {
-  content: "\f157";
-}
-.fa-ruble:before,
-.fa-rouble:before,
-.fa-rub:before {
-  content: "\f158";
-}
-.fa-won:before,
-.fa-krw:before {
-  content: "\f159";
-}
-.fa-bitcoin:before,
-.fa-btc:before {
-  content: "\f15a";
-}
-.fa-file:before {
-  content: "\f15b";
-}
-.fa-file-text:before {
-  content: "\f15c";
-}
-.fa-sort-alpha-asc:before {
-  content: "\f15d";
-}
-.fa-sort-alpha-desc:before {
-  content: "\f15e";
-}
-.fa-sort-amount-asc:before {
-  content: "\f160";
-}
-.fa-sort-amount-desc:before {
-  content: "\f161";
-}
-.fa-sort-numeric-asc:before {
-  content: "\f162";
-}
-.fa-sort-numeric-desc:before {
-  content: "\f163";
-}
-.fa-thumbs-up:before {
-  content: "\f164";
-}
-.fa-thumbs-down:before {
-  content: "\f165";
-}
-.fa-youtube-square:before {
-  content: "\f166";
-}
-.fa-youtube:before {
-  content: "\f167";
-}
-.fa-xing:before {
-  content: "\f168";
-}
-.fa-xing-square:before {
-  content: "\f169";
-}
-.fa-youtube-play:before {
-  content: "\f16a";
-}
-.fa-dropbox:before {
-  content: "\f16b";
-}
-.fa-stack-overflow:before {
-  content: "\f16c";
-}
-.fa-instagram:before {
-  content: "\f16d";
-}
-.fa-flickr:before {
-  content: "\f16e";
-}
-.fa-adn:before {
-  content: "\f170";
-}
-.fa-bitbucket:before {
-  content: "\f171";
-}
-.fa-bitbucket-square:before {
-  content: "\f172";
-}
-.fa-tumblr:before {
-  content: "\f173";
-}
-.fa-tumblr-square:before {
-  content: "\f174";
-}
-.fa-long-arrow-down:before {
-  content: "\f175";
-}
-.fa-long-arrow-up:before {
-  content: "\f176";
-}
-.fa-long-arrow-left:before {
-  content: "\f177";
-}
-.fa-long-arrow-right:before {
-  content: "\f178";
-}
-.fa-apple:before {
-  content: "\f179";
-}
-.fa-windows:before {
-  content: "\f17a";
-}
-.fa-android:before {
-  content: "\f17b";
-}
-.fa-linux:before {
-  content: "\f17c";
-}
-.fa-dribbble:before {
-  content: "\f17d";
-}
-.fa-skype:before {
-  content: "\f17e";
-}
-.fa-foursquare:before {
-  content: "\f180";
-}
-.fa-trello:before {
-  content: "\f181";
-}
-.fa-female:before {
-  content: "\f182";
-}
-.fa-male:before {
-  content: "\f183";
-}
-.fa-gittip:before {
-  content: "\f184";
-}
-.fa-sun-o:before {
-  content: "\f185";
-}
-.fa-moon-o:before {
-  content: "\f186";
-}
-.fa-archive:before {
-  content: "\f187";
-}
-.fa-bug:before {
-  content: "\f188";
-}
-.fa-vk:before {
-  content: "\f189";
-}
-.fa-weibo:before {
-  content: "\f18a";
-}
-.fa-renren:before {
-  content: "\f18b";
-}
-.fa-pagelines:before {
-  content: "\f18c";
-}
-.fa-stack-exchange:before {
-  content: "\f18d";
-}
-.fa-arrow-circle-o-right:before {
-  content: "\f18e";
-}
-.fa-arrow-circle-o-left:before {
-  content: "\f190";
-}
-.fa-toggle-left:before,
-.fa-caret-square-o-left:before {
-  content: "\f191";
-}
-.fa-dot-circle-o:before {
-  content: "\f192";
-}
-.fa-wheelchair:before {
-  content: "\f193";
-}
-.fa-vimeo-square:before {
-  content: "\f194";
-}
-.fa-turkish-lira:before,
-.fa-try:before {
-  content: "\f195";
-}
-.fa-plus-square-o:before {
-  content: "\f196";
-}
-.fa-space-shuttle:before {
-  content: "\f197";
-}
-.fa-slack:before {
-  content: "\f198";
-}
-.fa-envelope-square:before {
-  content: "\f199";
-}
-.fa-wordpress:before {
-  content: "\f19a";
-}
-.fa-openid:before {
-  content: "\f19b";
-}
-.fa-institution:before,
-.fa-bank:before,
-.fa-university:before {
-  content: "\f19c";
-}
-.fa-mortar-board:before,
-.fa-graduation-cap:before {
-  content: "\f19d";
-}
-.fa-yahoo:before {
-  content: "\f19e";
-}
-.fa-google:before {
-  content: "\f1a0";
-}
-.fa-reddit:before {
-  content: "\f1a1";
-}
-.fa-reddit-square:before {
-  content: "\f1a2";
-}
-.fa-stumbleupon-circle:before {
-  content: "\f1a3";
-}
-.fa-stumbleupon:before {
-  content: "\f1a4";
-}
-.fa-delicious:before {
-  content: "\f1a5";
-}
-.fa-digg:before {
-  content: "\f1a6";
-}
-.fa-pied-piper:before {
-  content: "\f1a7";
-}
-.fa-pied-piper-alt:before {
-  content: "\f1a8";
-}
-.fa-drupal:before {
-  content: "\f1a9";
-}
-.fa-joomla:before {
-  content: "\f1aa";
-}
-.fa-language:before {
-  content: "\f1ab";
-}
-.fa-fax:before {
-  content: "\f1ac";
-}
-.fa-building:before {
-  content: "\f1ad";
-}
-.fa-child:before {
-  content: "\f1ae";
-}
-.fa-paw:before {
-  content: "\f1b0";
-}
-.fa-spoon:before {
-  content: "\f1b1";
-}
-.fa-cube:before {
-  content: "\f1b2";
-}
-.fa-cubes:before {
-  content: "\f1b3";
-}
-.fa-behance:before {
-  content: "\f1b4";
-}
-.fa-behance-square:before {
-  content: "\f1b5";
-}
-.fa-steam:before {
-  content: "\f1b6";
-}
-.fa-steam-square:before {
-  content: "\f1b7";
-}
-.fa-recycle:before {
-  content: "\f1b8";
-}
-.fa-automobile:before,
-.fa-car:before {
-  content: "\f1b9";
-}
-.fa-cab:before,
-.fa-taxi:before {
-  content: "\f1ba";
-}
-.fa-tree:before {
-  content: "\f1bb";
-}
-.fa-spotify:before {
-  content: "\f1bc";
-}
-.fa-deviantart:before {
-  content: "\f1bd";
-}
-.fa-soundcloud:before {
-  content: "\f1be";
-}
-.fa-database:before {
-  content: "\f1c0";
-}
-.fa-file-pdf-o:before {
-  content: "\f1c1";
-}
-.fa-file-word-o:before {
-  content: "\f1c2";
-}
-.fa-file-excel-o:before {
-  content: "\f1c3";
-}
-.fa-file-powerpoint-o:before {
-  content: "\f1c4";
-}
-.fa-file-photo-o:before,
-.fa-file-picture-o:before,
-.fa-file-image-o:before {
-  content: "\f1c5";
-}
-.fa-file-zip-o:before,
-.fa-file-archive-o:before {
-  content: "\f1c6";
-}
-.fa-file-sound-o:before,
-.fa-file-audio-o:before {
-  content: "\f1c7";
-}
-.fa-file-movie-o:before,
-.fa-file-video-o:before {
-  content: "\f1c8";
-}
-.fa-file-code-o:before {
-  content: "\f1c9";
-}
-.fa-vine:before {
-  content: "\f1ca";
-}
-.fa-codepen:before {
-  content: "\f1cb";
-}
-.fa-jsfiddle:before {
-  content: "\f1cc";
-}
-.fa-life-bouy:before,
-.fa-life-buoy:before,
-.fa-life-saver:before,
-.fa-support:before,
-.fa-life-ring:before {
-  content: "\f1cd";
-}
-.fa-circle-o-notch:before {
-  content: "\f1ce";
-}
-.fa-ra:before,
-.fa-rebel:before {
-  content: "\f1d0";
-}
-.fa-ge:before,
-.fa-empire:before {
-  content: "\f1d1";
-}
-.fa-git-square:before {
-  content: "\f1d2";
-}
-.fa-git:before {
-  content: "\f1d3";
-}
-.fa-hacker-news:before {
-  content: "\f1d4";
-}
-.fa-tencent-weibo:before {
-  content: "\f1d5";
-}
-.fa-qq:before {
-  content: "\f1d6";
-}
-.fa-wechat:before,
-.fa-weixin:before {
-  content: "\f1d7";
-}
-.fa-send:before,
-.fa-paper-plane:before {
-  content: "\f1d8";
-}
-.fa-send-o:before,
-.fa-paper-plane-o:before {
-  content: "\f1d9";
-}
-.fa-history:before {
-  content: "\f1da";
-}
-.fa-circle-thin:before {
-  content: "\f1db";
-}
-.fa-header:before {
-  content: "\f1dc";
-}
-.fa-paragraph:before {
-  content: "\f1dd";
-}
-.fa-sliders:before {
-  content: "\f1de";
-}
-.fa-share-alt:before {
-  content: "\f1e0";
-}
-.fa-share-alt-square:before {
-  content: "\f1e1";
-}
-.fa-bomb:before {
-  content: "\f1e2";
-}
-.fa-soccer-ball-o:before,
-.fa-futbol-o:before {
-  content: "\f1e3";
-}
-.fa-tty:before {
-  content: "\f1e4";
-}
-.fa-binoculars:before {
-  content: "\f1e5";
-}
-.fa-plug:before {
-  content: "\f1e6";
-}
-.fa-slideshare:before {
-  content: "\f1e7";
-}
-.fa-twitch:before {
-  content: "\f1e8";
-}
-.fa-yelp:before {
-  content: "\f1e9";
-}
-.fa-newspaper-o:before {
-  content: "\f1ea";
-}
-.fa-wifi:before {
-  content: "\f1eb";
-}
-.fa-calculator:before {
-  content: "\f1ec";
-}
-.fa-paypal:before {
-  content: "\f1ed";
-}
-.fa-google-wallet:before {
-  content: "\f1ee";
-}
-.fa-cc-visa:before {
-  content: "\f1f0";
-}
-.fa-cc-mastercard:before {
-  content: "\f1f1";
-}
-.fa-cc-discover:before {
-  content: "\f1f2";
-}
-.fa-cc-amex:before {
-  content: "\f1f3";
-}
-.fa-cc-paypal:before {
-  content: "\f1f4";
-}
-.fa-cc-stripe:before {
-  content: "\f1f5";
-}
-.fa-bell-slash:before {
-  content: "\f1f6";
-}
-.fa-bell-slash-o:before {
-  content: "\f1f7";
-}
-.fa-trash:before {
-  content: "\f1f8";
-}
-.fa-copyright:before {
-  content: "\f1f9";
-}
-.fa-at:before {
-  content: "\f1fa";
-}
-.fa-eyedropper:before {
-  content: "\f1fb";
-}
-.fa-paint-brush:before {
-  content: "\f1fc";
-}
-.fa-birthday-cake:before {
-  content: "\f1fd";
-}
-.fa-area-chart:before {
-  content: "\f1fe";
-}
-.fa-pie-chart:before {
-  content: "\f200";
-}
-.fa-line-chart:before {
-  content: "\f201";
-}
-.fa-lastfm:before {
-  content: "\f202";
-}
-.fa-lastfm-square:before {
-  content: "\f203";
-}
-.fa-toggle-off:before {
-  content: "\f204";
-}
-.fa-toggle-on:before {
-  content: "\f205";
-}
-.fa-bicycle:before {
-  content: "\f206";
-}
-.fa-bus:before {
-  content: "\f207";
-}
-.fa-ioxhost:before {
-  content: "\f208";
-}
-.fa-angellist:before {
-  content: "\f209";
-}
-.fa-cc:before {
-  content: "\f20a";
-}
-.fa-shekel:before,
-.fa-sheqel:before,
-.fa-ils:before {
-  content: "\f20b";
-}
-.fa-meanpath:before {
-  content: "\f20c";
-}
-/*!
-*
-* IPython base
-*
-*/
-.modal.fade .modal-dialog {
-  -webkit-transform: translate(0, 0);
-  -ms-transform: translate(0, 0);
-  -o-transform: translate(0, 0);
-  transform: translate(0, 0);
-}
-code {
-  color: #000;
-}
-pre {
-  font-size: inherit;
-  line-height: inherit;
-}
-label {
-  font-weight: normal;
-}
-/* Make the page background atleast 100% the height of the view port */
-/* Make the page itself atleast 70% the height of the view port */
-.border-box-sizing {
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-}
-.corner-all {
-  border-radius: 2px;
-}
-.no-padding {
-  padding: 0px;
-}
-/* Flexible box model classes */
-/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
-/* This file is a compatability layer.  It allows the usage of flexible box 
-model layouts accross multiple browsers, including older browsers.  The newest,
-universal implementation of the flexible box model is used when available (see
-`Modern browsers` comments below).  Browsers that are known to implement this 
-new spec completely include:
-
-    Firefox 28.0+
-    Chrome 29.0+
-    Internet Explorer 11+ 
-    Opera 17.0+
-
-Browsers not listed, including Safari, are supported via the styling under the
-`Old browsers` comments below.
-*/
-.hbox {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: horizontal;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: horizontal;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: row;
-  align-items: stretch;
-}
-.hbox > * {
-  /* Old browsers */
-  -webkit-box-flex: 0;
-  -moz-box-flex: 0;
-  box-flex: 0;
-  /* Modern browsers */
-  flex: none;
-}
-.vbox {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: vertical;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: vertical;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-}
-.vbox > * {
-  /* Old browsers */
-  -webkit-box-flex: 0;
-  -moz-box-flex: 0;
-  box-flex: 0;
-  /* Modern browsers */
-  flex: none;
-}
-.hbox.reverse,
-.vbox.reverse,
-.reverse {
-  /* Old browsers */
-  -webkit-box-direction: reverse;
-  -moz-box-direction: reverse;
-  box-direction: reverse;
-  /* Modern browsers */
-  flex-direction: row-reverse;
-}
-.hbox.box-flex0,
-.vbox.box-flex0,
-.box-flex0 {
-  /* Old browsers */
-  -webkit-box-flex: 0;
-  -moz-box-flex: 0;
-  box-flex: 0;
-  /* Modern browsers */
-  flex: none;
-  width: auto;
-}
-.hbox.box-flex1,
-.vbox.box-flex1,
-.box-flex1 {
-  /* Old browsers */
-  -webkit-box-flex: 1;
-  -moz-box-flex: 1;
-  box-flex: 1;
-  /* Modern browsers */
-  flex: 1;
-}
-.hbox.box-flex,
-.vbox.box-flex,
-.box-flex {
-  /* Old browsers */
-  /* Old browsers */
-  -webkit-box-flex: 1;
-  -moz-box-flex: 1;
-  box-flex: 1;
-  /* Modern browsers */
-  flex: 1;
-}
-.hbox.box-flex2,
-.vbox.box-flex2,
-.box-flex2 {
-  /* Old browsers */
-  -webkit-box-flex: 2;
-  -moz-box-flex: 2;
-  box-flex: 2;
-  /* Modern browsers */
-  flex: 2;
-}
-.box-group1 {
-  /*  Deprecated */
-  -webkit-box-flex-group: 1;
-  -moz-box-flex-group: 1;
-  box-flex-group: 1;
-}
-.box-group2 {
-  /* Deprecated */
-  -webkit-box-flex-group: 2;
-  -moz-box-flex-group: 2;
-  box-flex-group: 2;
-}
-.hbox.start,
-.vbox.start,
-.start {
-  /* Old browsers */
-  -webkit-box-pack: start;
-  -moz-box-pack: start;
-  box-pack: start;
-  /* Modern browsers */
-  justify-content: flex-start;
-}
-.hbox.end,
-.vbox.end,
-.end {
-  /* Old browsers */
-  -webkit-box-pack: end;
-  -moz-box-pack: end;
-  box-pack: end;
-  /* Modern browsers */
-  justify-content: flex-end;
-}
-.hbox.center,
-.vbox.center,
-.center {
-  /* Old browsers */
-  -webkit-box-pack: center;
-  -moz-box-pack: center;
-  box-pack: center;
-  /* Modern browsers */
-  justify-content: center;
-}
-.hbox.baseline,
-.vbox.baseline,
-.baseline {
-  /* Old browsers */
-  -webkit-box-pack: baseline;
-  -moz-box-pack: baseline;
-  box-pack: baseline;
-  /* Modern browsers */
-  justify-content: baseline;
-}
-.hbox.stretch,
-.vbox.stretch,
-.stretch {
-  /* Old browsers */
-  -webkit-box-pack: stretch;
-  -moz-box-pack: stretch;
-  box-pack: stretch;
-  /* Modern browsers */
-  justify-content: stretch;
-}
-.hbox.align-start,
-.vbox.align-start,
-.align-start {
-  /* Old browsers */
-  -webkit-box-align: start;
-  -moz-box-align: start;
-  box-align: start;
-  /* Modern browsers */
-  align-items: flex-start;
-}
-.hbox.align-end,
-.vbox.align-end,
-.align-end {
-  /* Old browsers */
-  -webkit-box-align: end;
-  -moz-box-align: end;
-  box-align: end;
-  /* Modern browsers */
-  align-items: flex-end;
-}
-.hbox.align-center,
-.vbox.align-center,
-.align-center {
-  /* Old browsers */
-  -webkit-box-align: center;
-  -moz-box-align: center;
-  box-align: center;
-  /* Modern browsers */
-  align-items: center;
-}
-.hbox.align-baseline,
-.vbox.align-baseline,
-.align-baseline {
-  /* Old browsers */
-  -webkit-box-align: baseline;
-  -moz-box-align: baseline;
-  box-align: baseline;
-  /* Modern browsers */
-  align-items: baseline;
-}
-.hbox.align-stretch,
-.vbox.align-stretch,
-.align-stretch {
-  /* Old browsers */
-  -webkit-box-align: stretch;
-  -moz-box-align: stretch;
-  box-align: stretch;
-  /* Modern browsers */
-  align-items: stretch;
-}
-div.error {
-  margin: 2em;
-  text-align: center;
-}
-div.error > h1 {
-  font-size: 500%;
-  line-height: normal;
-}
-div.error > p {
-  font-size: 200%;
-  line-height: normal;
-}
-div.traceback-wrapper {
-  text-align: left;
-  max-width: 800px;
-  margin: auto;
-}
-/**
- * Primary styles
- *
- * Author: Jupyter Development Team
- */
-body {
-  background-color: #fff;
-  /* This makes sure that the body covers the entire window and needs to
-       be in a different element than the display: box in wrapper below */
-  position: absolute;
-  left: 0px;
-  right: 0px;
-  top: 0px;
-  bottom: 0px;
-  overflow: visible;
-}
-body > #header {
-  /* Initially hidden to prevent FLOUC */
-  display: none;
-  background-color: #fff;
-  /* Display over codemirror */
-  position: relative;
-  z-index: 100;
-}
-body > #header #header-container {
-  padding-bottom: 5px;
-  padding-top: 5px;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-}
-body > #header .header-bar {
-  width: 100%;
-  height: 1px;
-  background: #e7e7e7;
-  margin-bottom: -1px;
-}
-@media print {
-  body > #header {
-    display: none !important;
-  }
-}
-#header-spacer {
-  width: 100%;
-  visibility: hidden;
-}
-@media print {
-  #header-spacer {
-    display: none;
-  }
-}
-#ipython_notebook {
-  padding-left: 0px;
-  padding-top: 1px;
-  padding-bottom: 1px;
-}
-@media (max-width: 991px) {
-  #ipython_notebook {
-    margin-left: 10px;
-  }
-}
-#noscript {
-  width: auto;
-  padding-top: 16px;
-  padding-bottom: 16px;
-  text-align: center;
-  font-size: 22px;
-  color: red;
-  font-weight: bold;
-}
-#ipython_notebook img {
-  height: 28px;
-}
-#site {
-  width: 100%;
-  display: none;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  overflow: auto;
-}
-@media print {
-  #site {
-    height: auto !important;
-  }
-}
-/* Smaller buttons */
-.ui-button .ui-button-text {
-  padding: 0.2em 0.8em;
-  font-size: 77%;
-}
-input.ui-button {
-  padding: 0.3em 0.9em;
-}
-span#login_widget {
-  float: right;
-}
-span#login_widget > .button,
-#logout {
-  color: #333;
-  background-color: #fff;
-  border-color: #ccc;
-}
-span#login_widget > .button:focus,
-#logout:focus,
-span#login_widget > .button.focus,
-#logout.focus {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #8c8c8c;
-}
-span#login_widget > .button:hover,
-#logout:hover {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-span#login_widget > .button:active,
-#logout:active,
-span#login_widget > .button.active,
-#logout.active,
-.open > .dropdown-togglespan#login_widget > .button,
-.open > .dropdown-toggle#logout {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-span#login_widget > .button:active:hover,
-#logout:active:hover,
-span#login_widget > .button.active:hover,
-#logout.active:hover,
-.open > .dropdown-togglespan#login_widget > .button:hover,
-.open > .dropdown-toggle#logout:hover,
-span#login_widget > .button:active:focus,
-#logout:active:focus,
-span#login_widget > .button.active:focus,
-#logout.active:focus,
-.open > .dropdown-togglespan#login_widget > .button:focus,
-.open > .dropdown-toggle#logout:focus,
-span#login_widget > .button:active.focus,
-#logout:active.focus,
-span#login_widget > .button.active.focus,
-#logout.active.focus,
-.open > .dropdown-togglespan#login_widget > .button.focus,
-.open > .dropdown-toggle#logout.focus {
-  color: #333;
-  background-color: #d4d4d4;
-  border-color: #8c8c8c;
-}
-span#login_widget > .button:active,
-#logout:active,
-span#login_widget > .button.active,
-#logout.active,
-.open > .dropdown-togglespan#login_widget > .button,
-.open > .dropdown-toggle#logout {
-  background-image: none;
-}
-span#login_widget > .button.disabled:hover,
-#logout.disabled:hover,
-span#login_widget > .button[disabled]:hover,
-#logout[disabled]:hover,
-fieldset[disabled] span#login_widget > .button:hover,
-fieldset[disabled] #logout:hover,
-span#login_widget > .button.disabled:focus,
-#logout.disabled:focus,
-span#login_widget > .button[disabled]:focus,
-#logout[disabled]:focus,
-fieldset[disabled] span#login_widget > .button:focus,
-fieldset[disabled] #logout:focus,
-span#login_widget > .button.disabled.focus,
-#logout.disabled.focus,
-span#login_widget > .button[disabled].focus,
-#logout[disabled].focus,
-fieldset[disabled] span#login_widget > .button.focus,
-fieldset[disabled] #logout.focus {
-  background-color: #fff;
-  border-color: #ccc;
-}
-span#login_widget > .button .badge,
-#logout .badge {
-  color: #fff;
-  background-color: #333;
-}
-.nav-header {
-  text-transform: none;
-}
-#header > span {
-  margin-top: 10px;
-}
-.modal_stretch .modal-dialog {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: vertical;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: vertical;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-  min-height: 80vh;
-}
-.modal_stretch .modal-dialog .modal-body {
-  max-height: calc(100vh - 200px);
-  overflow: auto;
-  flex: 1;
-}
-@media (min-width: 768px) {
-  .modal .modal-dialog {
-    width: 700px;
-  }
-}
-@media (min-width: 768px) {
-  select.form-control {
-    margin-left: 12px;
-    margin-right: 12px;
-  }
-}
-/*!
-*
-* IPython auth
-*
-*/
-.center-nav {
-  display: inline-block;
-  margin-bottom: -4px;
-}
-/*!
-*
-* IPython tree view
-*
-*/
-/* We need an invisible input field on top of the sentense*/
-/* "Drag file onto the list ..." */
-.alternate_upload {
-  background-color: none;
-  display: inline;
-}
-.alternate_upload.form {
-  padding: 0;
-  margin: 0;
-}
-.alternate_upload input.fileinput {
-  text-align: center;
-  vertical-align: middle;
-  display: inline;
-  opacity: 0;
-  z-index: 2;
-  width: 12ex;
-  margin-right: -12ex;
-}
-.alternate_upload .btn-upload {
-  height: 22px;
-}
-/**
- * Primary styles
- *
- * Author: Jupyter Development Team
- */
-ul#tabs {
-  margin-bottom: 4px;
-}
-ul#tabs a {
-  padding-top: 6px;
-  padding-bottom: 4px;
-}
-ul.breadcrumb a:focus,
-ul.breadcrumb a:hover {
-  text-decoration: none;
-}
-ul.breadcrumb i.icon-home {
-  font-size: 16px;
-  margin-right: 4px;
-}
-ul.breadcrumb span {
-  color: #5e5e5e;
-}
-.list_toolbar {
-  padding: 4px 0 4px 0;
-  vertical-align: middle;
-}
-.list_toolbar .tree-buttons {
-  padding-top: 1px;
-}
-.dynamic-buttons {
-  padding-top: 3px;
-  display: inline-block;
-}
-.list_toolbar [class*="span"] {
-  min-height: 24px;
-}
-.list_header {
-  font-weight: bold;
-  background-color: #EEE;
-}
-.list_placeholder {
-  font-weight: bold;
-  padding-top: 4px;
-  padding-bottom: 4px;
-  padding-left: 7px;
-  padding-right: 7px;
-}
-.list_container {
-  margin-top: 4px;
-  margin-bottom: 20px;
-  border: 1px solid #ddd;
-  border-radius: 2px;
-}
-.list_container > div {
-  border-bottom: 1px solid #ddd;
-}
-.list_container > div:hover .list-item {
-  background-color: red;
-}
-.list_container > div:last-child {
-  border: none;
-}
-.list_item:hover .list_item {
-  background-color: #ddd;
-}
-.list_item a {
-  text-decoration: none;
-}
-.list_item:hover {
-  background-color: #fafafa;
-}
-.list_header > div,
-.list_item > div {
-  padding-top: 4px;
-  padding-bottom: 4px;
-  padding-left: 7px;
-  padding-right: 7px;
-  line-height: 22px;
-}
-.list_header > div input,
-.list_item > div input {
-  margin-right: 7px;
-  margin-left: 14px;
-  vertical-align: baseline;
-  line-height: 22px;
-  position: relative;
-  top: -1px;
-}
-.list_header > div .item_link,
-.list_item > div .item_link {
-  margin-left: -1px;
-  vertical-align: baseline;
-  line-height: 22px;
-}
-.new-file input[type=checkbox] {
-  visibility: hidden;
-}
-.item_name {
-  line-height: 22px;
-  height: 24px;
-}
-.item_icon {
-  font-size: 14px;
-  color: #5e5e5e;
-  margin-right: 7px;
-  margin-left: 7px;
-  line-height: 22px;
-  vertical-align: baseline;
-}
-.item_buttons {
-  line-height: 1em;
-  margin-left: -5px;
-}
-.item_buttons .btn,
-.item_buttons .btn-group,
-.item_buttons .input-group {
-  float: left;
-}
-.item_buttons > .btn,
-.item_buttons > .btn-group,
-.item_buttons > .input-group {
-  margin-left: 5px;
-}
-.item_buttons .btn {
-  min-width: 13ex;
-}
-.item_buttons .running-indicator {
-  padding-top: 4px;
-  color: #5cb85c;
-}
-.item_buttons .kernel-name {
-  padding-top: 4px;
-  color: #5bc0de;
-  margin-right: 7px;
-  float: left;
-}
-.toolbar_info {
-  height: 24px;
-  line-height: 24px;
-}
-.list_item input:not([type=checkbox]) {
-  padding-top: 3px;
-  padding-bottom: 3px;
-  height: 22px;
-  line-height: 14px;
-  margin: 0px;
-}
-.highlight_text {
-  color: blue;
-}
-#project_name {
-  display: inline-block;
-  padding-left: 7px;
-  margin-left: -2px;
-}
-#project_name > .breadcrumb {
-  padding: 0px;
-  margin-bottom: 0px;
-  background-color: transparent;
-  font-weight: bold;
-}
-#tree-selector {
-  padding-right: 0px;
-}
-#button-select-all {
-  min-width: 50px;
-}
-#select-all {
-  margin-left: 7px;
-  margin-right: 2px;
-}
-.menu_icon {
-  margin-right: 2px;
-}
-.tab-content .row {
-  margin-left: 0px;
-  margin-right: 0px;
-}
-.folder_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f114";
-}
-.folder_icon:before.pull-left {
-  margin-right: .3em;
-}
-.folder_icon:before.pull-right {
-  margin-left: .3em;
-}
-.notebook_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f02d";
-  position: relative;
-  top: -1px;
-}
-.notebook_icon:before.pull-left {
-  margin-right: .3em;
-}
-.notebook_icon:before.pull-right {
-  margin-left: .3em;
-}
-.running_notebook_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f02d";
-  position: relative;
-  top: -1px;
-  color: #5cb85c;
-}
-.running_notebook_icon:before.pull-left {
-  margin-right: .3em;
-}
-.running_notebook_icon:before.pull-right {
-  margin-left: .3em;
-}
-.file_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f016";
-  position: relative;
-  top: -2px;
-}
-.file_icon:before.pull-left {
-  margin-right: .3em;
-}
-.file_icon:before.pull-right {
-  margin-left: .3em;
-}
-#notebook_toolbar .pull-right {
-  padding-top: 0px;
-  margin-right: -1px;
-}
-ul#new-menu {
-  left: auto;
-  right: 0;
-}
-.kernel-menu-icon {
-  padding-right: 12px;
-  width: 24px;
-  content: "\f096";
-}
-.kernel-menu-icon:before {
-  content: "\f096";
-}
-.kernel-menu-icon-current:before {
-  content: "\f00c";
-}
-#tab_content {
-  padding-top: 20px;
-}
-#running .panel-group .panel {
-  margin-top: 3px;
-  margin-bottom: 1em;
-}
-#running .panel-group .panel .panel-heading {
-  background-color: #EEE;
-  padding-top: 4px;
-  padding-bottom: 4px;
-  padding-left: 7px;
-  padding-right: 7px;
-  line-height: 22px;
-}
-#running .panel-group .panel .panel-heading a:focus,
-#running .panel-group .panel .panel-heading a:hover {
-  text-decoration: none;
-}
-#running .panel-group .panel .panel-body {
-  padding: 0px;
-}
-#running .panel-group .panel .panel-body .list_container {
-  margin-top: 0px;
-  margin-bottom: 0px;
-  border: 0px;
-  border-radius: 0px;
-}
-#running .panel-group .panel .panel-body .list_container .list_item {
-  border-bottom: 1px solid #ddd;
-}
-#running .panel-group .panel .panel-body .list_container .list_item:last-child {
-  border-bottom: 0px;
-}
-.delete-button {
-  display: none;
-}
-.duplicate-button {
-  display: none;
-}
-.rename-button {
-  display: none;
-}
-.shutdown-button {
-  display: none;
-}
-.dynamic-instructions {
-  display: inline-block;
-  padding-top: 4px;
-}
-/*!
-*
-* IPython text editor webapp
-*
-*/
-.selected-keymap i.fa {
-  padding: 0px 5px;
-}
-.selected-keymap i.fa:before {
-  content: "\f00c";
-}
-#mode-menu {
-  overflow: auto;
-  max-height: 20em;
-}
-.edit_app #header {
-  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-}
-.edit_app #menubar .navbar {
-  /* Use a negative 1 bottom margin, so the border overlaps the border of the
-    header */
-  margin-bottom: -1px;
-}
-.dirty-indicator {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  width: 20px;
-}
-.dirty-indicator.pull-left {
-  margin-right: .3em;
-}
-.dirty-indicator.pull-right {
-  margin-left: .3em;
-}
-.dirty-indicator-dirty {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  width: 20px;
-}
-.dirty-indicator-dirty.pull-left {
-  margin-right: .3em;
-}
-.dirty-indicator-dirty.pull-right {
-  margin-left: .3em;
-}
-.dirty-indicator-clean {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  width: 20px;
-}
-.dirty-indicator-clean.pull-left {
-  margin-right: .3em;
-}
-.dirty-indicator-clean.pull-right {
-  margin-left: .3em;
-}
-.dirty-indicator-clean:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f00c";
-}
-.dirty-indicator-clean:before.pull-left {
-  margin-right: .3em;
-}
-.dirty-indicator-clean:before.pull-right {
-  margin-left: .3em;
-}
-#filename {
-  font-size: 16pt;
-  display: table;
-  padding: 0px 5px;
-}
-#current-mode {
-  padding-left: 5px;
-  padding-right: 5px;
-}
-#texteditor-backdrop {
-  padding-top: 20px;
-  padding-bottom: 20px;
-}
-@media not print {
-  #texteditor-backdrop {
-    background-color: #EEE;
-  }
-}
-@media print {
-  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
-  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
-    background-color: #fff;
-  }
-}
-@media not print {
-  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
-  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
-    background-color: #fff;
-  }
-}
-@media not print {
-  #texteditor-backdrop #texteditor-container {
-    padding: 0px;
-    background-color: #fff;
-    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-  }
-}
-/*!
-*
-* IPython notebook
-*
-*/
-/* CSS font colors for translated ANSI colors. */
-.ansibold {
-  font-weight: bold;
-}
-/* use dark versions for foreground, to improve visibility */
-.ansiblack {
-  color: black;
-}
-.ansired {
-  color: darkred;
-}
-.ansigreen {
-  color: darkgreen;
-}
-.ansiyellow {
-  color: #c4a000;
-}
-.ansiblue {
-  color: darkblue;
-}
-.ansipurple {
-  color: darkviolet;
-}
-.ansicyan {
-  color: steelblue;
-}
-.ansigray {
-  color: gray;
-}
-/* and light for background, for the same reason */
-.ansibgblack {
-  background-color: black;
-}
-.ansibgred {
-  background-color: red;
-}
-.ansibggreen {
-  background-color: green;
-}
-.ansibgyellow {
-  background-color: yellow;
-}
-.ansibgblue {
-  background-color: blue;
-}
-.ansibgpurple {
-  background-color: magenta;
-}
-.ansibgcyan {
-  background-color: cyan;
-}
-.ansibggray {
-  background-color: gray;
-}
-div.cell {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: vertical;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: vertical;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-  border-radius: 2px;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  border-width: 1px;
-  border-style: solid;
-  border-color: transparent;
-  width: 100%;
-  padding: 5px;
-  /* This acts as a spacer between cells, that is outside the border */
-  margin: 0px;
-  outline: none;
-  border-left-width: 1px;
-  padding-left: 5px;
-  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
-}
-div.cell.jupyter-soft-selected {
-  border-left-color: #90CAF9;
-  border-left-color: #E3F2FD;
-  border-left-width: 1px;
-  padding-left: 5px;
-  border-right-color: #E3F2FD;
-  border-right-width: 1px;
-  background: #E3F2FD;
-}
-@media print {
-  div.cell.jupyter-soft-selected {
-    border-color: transparent;
-  }
-}
-div.cell.selected {
-  border-color: #ababab;
-  border-left-width: 0px;
-  padding-left: 6px;
-  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
-}
-@media print {
-  div.cell.selected {
-    border-color: transparent;
-  }
-}
-div.cell.selected.jupyter-soft-selected {
-  border-left-width: 0;
-  padding-left: 6px;
-  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
-}
-.edit_mode div.cell.selected {
-  border-color: #66BB6A;
-  border-left-width: 0px;
-  padding-left: 6px;
-  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
-}
-@media print {
-  .edit_mode div.cell.selected {
-    border-color: transparent;
-  }
-}
-.prompt {
-  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
-  min-width: 14ex;
-  /* This padding is tuned to match the padding on the CodeMirror editor. */
-  padding: 0.4em;
-  margin: 0px;
-  font-family: monospace;
-  text-align: right;
-  /* This has to match that of the the CodeMirror class line-height below */
-  line-height: 1.21429em;
-  /* Don't highlight prompt number selection */
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  /* Use default cursor */
-  cursor: default;
-}
-@media (max-width: 540px) {
-  .prompt {
-    text-align: left;
-  }
-}
-div.inner_cell {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: vertical;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: vertical;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-  /* Old browsers */
-  -webkit-box-flex: 1;
-  -moz-box-flex: 1;
-  box-flex: 1;
-  /* Modern browsers */
-  flex: 1;
-}
-@-moz-document url-prefix() {
-  div.inner_cell {
-    overflow-x: hidden;
-  }
-}
-/* input_area and input_prompt must match in top border and margin for alignment */
-div.input_area {
-  border: 1px solid #cfcfcf;
-  border-radius: 2px;
-  background: #f7f7f7;
-  line-height: 1.21429em;
-}
-/* This is needed so that empty prompt areas can collapse to zero height when there
-   is no content in the output_subarea and the prompt. The main purpose of this is
-   to make sure that empty JavaScript output_subareas have no height. */
-div.prompt:empty {
-  padding-top: 0;
-  padding-bottom: 0;
-}
-div.unrecognized_cell {
-  padding: 5px 5px 5px 0px;
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: horizontal;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: horizontal;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: row;
-  align-items: stretch;
-}
-div.unrecognized_cell .inner_cell {
-  border-radius: 2px;
-  padding: 5px;
-  font-weight: bold;
-  color: red;
-  border: 1px solid #cfcfcf;
-  background: #eaeaea;
-}
-div.unrecognized_cell .inner_cell a {
-  color: inherit;
-  text-decoration: none;
-}
-div.unrecognized_cell .inner_cell a:hover {
-  color: inherit;
-  text-decoration: none;
-}
-@media (max-width: 540px) {
-  div.unrecognized_cell > div.prompt {
-    display: none;
-  }
-}
-div.code_cell {
-  /* avoid page breaking on code cells when printing */
-}
-@media print {
-  div.code_cell {
-    page-break-inside: avoid;
-  }
-}
-/* any special styling for code cells that are currently running goes here */
-div.input {
-  page-break-inside: avoid;
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: horizontal;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: horizontal;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: row;
-  align-items: stretch;
-}
-@media (max-width: 540px) {
-  div.input {
-    /* Old browsers */
-    display: -webkit-box;
-    -webkit-box-orient: vertical;
-    -webkit-box-align: stretch;
-    display: -moz-box;
-    -moz-box-orient: vertical;
-    -moz-box-align: stretch;
-    display: box;
-    box-orient: vertical;
-    box-align: stretch;
-    /* Modern browsers */
-    display: flex;
-    flex-direction: column;
-    align-items: stretch;
-  }
-}
-/* input_area and input_prompt must match in top border and margin for alignment */
-div.input_prompt {
-  color: #303F9F;
-  border-top: 1px solid transparent;
-}
-div.input_area > div.highlight {
-  margin: 0.4em;
-  border: none;
-  padding: 0px;
-  background-color: transparent;
-}
-div.input_area > div.highlight > pre {
-  margin: 0px;
-  border: none;
-  padding: 0px;
-  background-color: transparent;
-}
-/* The following gets added to the <head> if it is detected that the user has a
- * monospace font with inconsistent normal/bold/italic height.  See
- * notebookmain.js.  Such fonts will have keywords vertically offset with
- * respect to the rest of the text.  The user should select a better font.
- * See: https://github.com/ipython/ipython/issues/1503
- *
- * .CodeMirror span {
- *      vertical-align: bottom;
- * }
- */
-.CodeMirror {
-  line-height: 1.21429em;
-  /* Changed from 1em to our global default */
-  font-size: 14px;
-  height: auto;
-  /* Changed to auto to autogrow */
-  background: none;
-  /* Changed from white to allow our bg to show through */
-}
-.CodeMirror-scroll {
-  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
-  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
-  overflow-y: hidden;
-  overflow-x: auto;
-}
-.CodeMirror-lines {
-  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
-  /* we have set a different line-height and want this to scale with that. */
-  padding: 0.4em;
-}
-.CodeMirror-linenumber {
-  padding: 0 8px 0 4px;
-}
-.CodeMirror-gutters {
-  border-bottom-left-radius: 2px;
-  border-top-left-radius: 2px;
-}
-.CodeMirror pre {
-  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
-  /* .CodeMirror-lines */
-  padding: 0;
-  border: 0;
-  border-radius: 0;
-}
-/*
-
-Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
-Adapted from GitHub theme
-
-*/
-.highlight-base {
-  color: #000;
-}
-.highlight-variable {
-  color: #000;
-}
-.highlight-variable-2 {
-  color: #1a1a1a;
-}
-.highlight-variable-3 {
-  color: #333333;
-}
-.highlight-string {
-  color: #BA2121;
-}
-.highlight-comment {
-  color: #408080;
-  font-style: italic;
-}
-.highlight-number {
-  color: #080;
-}
-.highlight-atom {
-  color: #88F;
-}
-.highlight-keyword {
-  color: #008000;
-  font-weight: bold;
-}
-.highlight-builtin {
-  color: #008000;
-}
-.highlight-error {
-  color: #f00;
-}
-.highlight-operator {
-  color: #AA22FF;
-  font-weight: bold;
-}
-.highlight-meta {
-  color: #AA22FF;
-}
-/* previously not defined, copying from default codemirror */
-.highlight-def {
-  color: #00f;
-}
-.highlight-string-2 {
-  color: #f50;
-}
-.highlight-qualifier {
-  color: #555;
-}
-.highlight-bracket {
-  color: #997;
-}
-.highlight-tag {
-  color: #170;
-}
-.highlight-attribute {
-  color: #00c;
-}
-.highlight-header {
-  color: blue;
-}
-.highlight-quote {
-  color: #090;
-}
-.highlight-link {
-  color: #00c;
-}
-/* apply the same style to codemirror */
-.cm-s-ipython span.cm-keyword {
-  color: #008000;
-  font-weight: bold;
-}
-.cm-s-ipython span.cm-atom {
-  color: #88F;
-}
-.cm-s-ipython span.cm-number {
-  color: #080;
-}
-.cm-s-ipython span.cm-def {
-  color: #00f;
-}
-.cm-s-ipython span.cm-variable {
-  color: #000;
-}
-.cm-s-ipython span.cm-operator {
-  color: #AA22FF;
-  font-weight: bold;
-}
-.cm-s-ipython span.cm-variable-2 {
-  color: #1a1a1a;
-}
-.cm-s-ipython span.cm-variable-3 {
-  color: #333333;
-}
-.cm-s-ipython span.cm-comment {
-  color: #408080;
-  font-style: italic;
-}
-.cm-s-ipython span.cm-string {
-  color: #BA2121;
-}
-.cm-s-ipython span.cm-string-2 {
-  color: #f50;
-}
-.cm-s-ipython span.cm-meta {
-  color: #AA22FF;
-}
-.cm-s-ipython span.cm-qualifier {
-  color: #555;
-}
-.cm-s-ipython span.cm-builtin {
-  color: #008000;
-}
-.cm-s-ipython span.cm-bracket {
-  color: #997;
-}
-.cm-s-ipython span.cm-tag {
-  color: #170;
-}
-.cm-s-ipython span.cm-attribute {
-  color: #00c;
-}
-.cm-s-ipython span.cm-header {
-  color: blue;
-}
-.cm-s-ipython span.cm-quote {
-  color: #090;
-}
-.cm-s-ipython span.cm-link {
-  color: #00c;
-}
-.cm-s-ipython span.cm-error {
-  color: #f00;
-}
-.cm-s-ipython span.cm-tab {
-  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
-  background-position: right;
-  background-repeat: no-repeat;
-}
-div.output_wrapper {
-  /* this position must be relative to enable descendents to be absolute within it */
-  position: relative;
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: vertical;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: vertical;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-  z-index: 1;
-}
-/* class for the output area when it should be height-limited */
-div.output_scroll {
-  /* ideally, this would be max-height, but FF barfs all over that */
-  height: 24em;
-  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
-  width: 100%;
-  overflow: auto;
-  border-radius: 2px;
-  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
-  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
-  display: block;
-}
-/* output div while it is collapsed */
-div.output_collapsed {
-  margin: 0px;
-  padding: 0px;
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: vertical;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: vertical;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-}
-div.out_prompt_overlay {
-  height: 100%;
-  padding: 0px 0.4em;
-  position: absolute;
-  border-radius: 2px;
-}
-div.out_prompt_overlay:hover {
-  /* use inner shadow to get border that is computed the same on WebKit/FF */
-  -webkit-box-shadow: inset 0 0 1px #000;
-  box-shadow: inset 0 0 1px #000;
-  background: rgba(240, 240, 240, 0.5);
-}
-div.output_prompt {
-  color: #D84315;
-}
-/* This class is the outer container of all output sections. */
-div.output_area {
-  padding: 0px;
-  page-break-inside: avoid;
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: horizontal;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: horizontal;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: row;
-  align-items: stretch;
-}
-div.output_area .MathJax_Display {
-  text-align: left !important;
-}
-div.output_area .rendered_html table {
-  margin-left: 0;
-  margin-right: 0;
-}
-div.output_area .rendered_html img {
-  margin-left: 0;
-  margin-right: 0;
-}
-div.output_area img,
-div.output_area svg {
-  max-width: 100%;
-  height: auto;
-}
-div.output_area img.unconfined,
-div.output_area svg.unconfined {
-  max-width: none;
-}
-/* This is needed to protect the pre formating from global settings such
-   as that of bootstrap */
-.output {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: vertical;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: vertical;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-}
-@media (max-width: 540px) {
-  div.output_area {
-    /* Old browsers */
-    display: -webkit-box;
-    -webkit-box-orient: vertical;
-    -webkit-box-align: stretch;
-    display: -moz-box;
-    -moz-box-orient: vertical;
-    -moz-box-align: stretch;
-    display: box;
-    box-orient: vertical;
-    box-align: stretch;
-    /* Modern browsers */
-    display: flex;
-    flex-direction: column;
-    align-items: stretch;
-  }
-}
-div.output_area pre {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  vertical-align: baseline;
-  color: black;
-  background-color: transparent;
-  border-radius: 0;
-}
-/* This class is for the output subarea inside the output_area and after
-   the prompt div. */
-div.output_subarea {
-  overflow-x: auto;
-  padding: 0.4em;
-  /* Old browsers */
-  -webkit-box-flex: 1;
-  -moz-box-flex: 1;
-  box-flex: 1;
-  /* Modern browsers */
-  flex: 1;
-  max-width: calc(100% - 14ex);
-}
-div.output_scroll div.output_subarea {
-  overflow-x: visible;
-}
-/* The rest of the output_* classes are for special styling of the different
-   output types */
-/* all text output has this class: */
-div.output_text {
-  text-align: left;
-  color: #000;
-  /* This has to match that of the the CodeMirror class line-height below */
-  line-height: 1.21429em;
-}
-/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
-div.output_stderr {
-  background: #fdd;
-  /* very light red background for stderr */
-}
-div.output_latex {
-  text-align: left;
-}
-/* Empty output_javascript divs should have no height */
-div.output_javascript:empty {
-  padding: 0;
-}
-.js-error {
-  color: darkred;
-}
-/* raw_input styles */
-div.raw_input_container {
-  line-height: 1.21429em;
-  padding-top: 5px;
-}
-pre.raw_input_prompt {
-  /* nothing needed here. */
-}
-input.raw_input {
-  font-family: monospace;
-  font-size: inherit;
-  color: inherit;
-  width: auto;
-  /* make sure input baseline aligns with prompt */
-  vertical-align: baseline;
-  /* padding + margin = 0.5em between prompt and cursor */
-  padding: 0em 0.25em;
-  margin: 0em 0.25em;
-}
-input.raw_input:focus {
-  box-shadow: none;
-}
-p.p-space {
-  margin-bottom: 10px;
-}
-div.output_unrecognized {
-  padding: 5px;
-  font-weight: bold;
-  color: red;
-}
-div.output_unrecognized a {
-  color: inherit;
-  text-decoration: none;
-}
-div.output_unrecognized a:hover {
-  color: inherit;
-  text-decoration: none;
-}
-.rendered_html {
-  color: #000;
-  /* any extras will just be numbers: */
-}
-.rendered_html em {
-  font-style: italic;
-}
-.rendered_html strong {
-  font-weight: bold;
-}
-.rendered_html u {
-  text-decoration: underline;
-}
-.rendered_html :link {
-  text-decoration: underline;
-}
-.rendered_html :visited {
-  text-decoration: underline;
-}
-.rendered_html h1 {
-  font-size: 185.7%;
-  margin: 1.08em 0 0 0;
-  font-weight: bold;
-  line-height: 1.0;
-}
-.rendered_html h2 {
-  font-size: 157.1%;
-  margin: 1.27em 0 0 0;
-  font-weight: bold;
-  line-height: 1.0;
-}
-.rendered_html h3 {
-  font-size: 128.6%;
-  margin: 1.55em 0 0 0;
-  font-weight: bold;
-  line-height: 1.0;
-}
-.rendered_html h4 {
-  font-size: 100%;
-  margin: 2em 0 0 0;
-  font-weight: bold;
-  line-height: 1.0;
-}
-.rendered_html h5 {
-  font-size: 100%;
-  margin: 2em 0 0 0;
-  font-weight: bold;
-  line-height: 1.0;
-  font-style: italic;
-}
-.rendered_html h6 {
-  font-size: 100%;
-  margin: 2em 0 0 0;
-  font-weight: bold;
-  line-height: 1.0;
-  font-style: italic;
-}
-.rendered_html h1:first-child {
-  margin-top: 0.538em;
-}
-.rendered_html h2:first-child {
-  margin-top: 0.636em;
-}
-.rendered_html h3:first-child {
-  margin-top: 0.777em;
-}
-.rendered_html h4:first-child {
-  margin-top: 1em;
-}
-.rendered_html h5:first-child {
-  margin-top: 1em;
-}
-.rendered_html h6:first-child {
-  margin-top: 1em;
-}
-.rendered_html ul {
-  list-style: disc;
-  margin: 0em 2em;
-  padding-left: 0px;
-}
-.rendered_html ul ul {
-  list-style: square;
-  margin: 0em 2em;
-}
-.rendered_html ul ul ul {
-  list-style: circle;
-  margin: 0em 2em;
-}
-.rendered_html ol {
-  list-style: decimal;
-  margin: 0em 2em;
-  padding-left: 0px;
-}
-.rendered_html ol ol {
-  list-style: upper-alpha;
-  margin: 0em 2em;
-}
-.rendered_html ol ol ol {
-  list-style: lower-alpha;
-  margin: 0em 2em;
-}
-.rendered_html ol ol ol ol {
-  list-style: lower-roman;
-  margin: 0em 2em;
-}
-.rendered_html ol ol ol ol ol {
-  list-style: decimal;
-  margin: 0em 2em;
-}
-.rendered_html * + ul {
-  margin-top: 1em;
-}
-.rendered_html * + ol {
-  margin-top: 1em;
-}
-.rendered_html hr {
-  color: black;
-  background-color: black;
-}
-.rendered_html pre {
-  margin: 1em 2em;
-}
-.rendered_html pre,
-.rendered_html code {
-  border: 0;
-  background-color: #fff;
-  color: #000;
-  font-size: 100%;
-  padding: 0px;
-}
-.rendered_html blockquote {
-  margin: 1em 2em;
-}
-.rendered_html table {
-  margin-left: auto;
-  margin-right: auto;
-  border: 1px solid black;
-  border-collapse: collapse;
-}
-.rendered_html tr,
-.rendered_html th,
-.rendered_html td {
-  border: 1px solid black;
-  border-collapse: collapse;
-  margin: 1em 2em;
-}
-.rendered_html td,
-.rendered_html th {
-  text-align: left;
-  vertical-align: middle;
-  padding: 4px;
-}
-.rendered_html th {
-  font-weight: bold;
-}
-.rendered_html * + table {
-  margin-top: 1em;
-}
-.rendered_html p {
-  text-align: left;
-}
-.rendered_html * + p {
-  margin-top: 1em;
-}
-.rendered_html img {
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
-}
-.rendered_html * + img {
-  margin-top: 1em;
-}
-.rendered_html img,
-.rendered_html svg {
-  max-width: 100%;
-  height: auto;
-}
-.rendered_html img.unconfined,
-.rendered_html svg.unconfined {
-  max-width: none;
-}
-div.text_cell {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: horizontal;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: horizontal;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: row;
-  align-items: stretch;
-}
-@media (max-width: 540px) {
-  div.text_cell > div.prompt {
-    display: none;
-  }
-}
-div.text_cell_render {
-  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
-  outline: none;
-  resize: none;
-  width: inherit;
-  border-style: none;
-  padding: 0.5em 0.5em 0.5em 0.4em;
-  color: #000;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-}
-a.anchor-link:link {
-  text-decoration: none;
-  padding: 0px 20px;
-  visibility: hidden;
-}
-h1:hover .anchor-link,
-h2:hover .anchor-link,
-h3:hover .anchor-link,
-h4:hover .anchor-link,
-h5:hover .anchor-link,
-h6:hover .anchor-link {
-  visibility: visible;
-}
-.text_cell.rendered .input_area {
-  display: none;
-}
-.text_cell.rendered .rendered_html {
-  overflow-x: auto;
-  overflow-y: hidden;
-}
-.text_cell.unrendered .text_cell_render {
-  display: none;
-}
-.cm-header-1,
-.cm-header-2,
-.cm-header-3,
-.cm-header-4,
-.cm-header-5,
-.cm-header-6 {
-  font-weight: bold;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-.cm-header-1 {
-  font-size: 185.7%;
-}
-.cm-header-2 {
-  font-size: 157.1%;
-}
-.cm-header-3 {
-  font-size: 128.6%;
-}
-.cm-header-4 {
-  font-size: 110%;
-}
-.cm-header-5 {
-  font-size: 100%;
-  font-style: italic;
-}
-.cm-header-6 {
-  font-size: 100%;
-  font-style: italic;
-}
-/*!
-*
-* IPython notebook webapp
-*
-*/
-@media (max-width: 767px) {
-  .notebook_app {
-    padding-left: 0px;
-    padding-right: 0px;
-  }
-}
-#ipython-main-app {
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  height: 100%;
-}
-div#notebook_panel {
-  margin: 0px;
-  padding: 0px;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  height: 100%;
-}
-div#notebook {
-  font-size: 14px;
-  line-height: 20px;
-  overflow-y: hidden;
-  overflow-x: auto;
-  width: 100%;
-  /* This spaces the page away from the edge of the notebook area */
-  padding-top: 20px;
-  margin: 0px;
-  outline: none;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  min-height: 100%;
-}
-@media not print {
-  #notebook-container {
-    padding: 15px;
-    background-color: #fff;
-    min-height: 0;
-    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-  }
-}
-@media print {
-  #notebook-container {
-    width: 100%;
-  }
-}
-div.ui-widget-content {
-  border: 1px solid #ababab;
-  outline: none;
-}
-pre.dialog {
-  background-color: #f7f7f7;
-  border: 1px solid #ddd;
-  border-radius: 2px;
-  padding: 0.4em;
-  padding-left: 2em;
-}
-p.dialog {
-  padding: 0.2em;
-}
-/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
-   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
- */
-pre,
-code,
-kbd,
-samp {
-  white-space: pre-wrap;
-}
-#fonttest {
-  font-family: monospace;
-}
-p {
-  margin-bottom: 0;
-}
-.end_space {
-  min-height: 100px;
-  transition: height .2s ease;
-}
-.notebook_app > #header {
-  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-}
-@media not print {
-  .notebook_app {
-    background-color: #EEE;
-  }
-}
-kbd {
-  border-style: solid;
-  border-width: 1px;
-  box-shadow: none;
-  margin: 2px;
-  padding-left: 2px;
-  padding-right: 2px;
-  padding-top: 1px;
-  padding-bottom: 1px;
-}
-/* CSS for the cell toolbar */
-.celltoolbar {
-  border: thin solid #CFCFCF;
-  border-bottom: none;
-  background: #EEE;
-  border-radius: 2px 2px 0px 0px;
-  width: 100%;
-  height: 29px;
-  padding-right: 4px;
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: horizontal;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: horizontal;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: row;
-  align-items: stretch;
-  /* Old browsers */
-  -webkit-box-pack: end;
-  -moz-box-pack: end;
-  box-pack: end;
-  /* Modern browsers */
-  justify-content: flex-end;
-  display: -webkit-flex;
-}
-@media print {
-  .celltoolbar {
-    display: none;
-  }
-}
-.ctb_hideshow {
-  display: none;
-  vertical-align: bottom;
-}
-/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
-   Cell toolbars are only shown when the ctb_global_show class is also set.
-*/
-.ctb_global_show .ctb_show.ctb_hideshow {
-  display: block;
-}
-.ctb_global_show .ctb_show + .input_area,
-.ctb_global_show .ctb_show + div.text_cell_input,
-.ctb_global_show .ctb_show ~ div.text_cell_render {
-  border-top-right-radius: 0px;
-  border-top-left-radius: 0px;
-}
-.ctb_global_show .ctb_show ~ div.text_cell_render {
-  border: 1px solid #cfcfcf;
-}
-.celltoolbar {
-  font-size: 87%;
-  padding-top: 3px;
-}
-.celltoolbar select {
-  display: block;
-  width: 100%;
-  height: 32px;
-  padding: 6px 12px;
-  font-size: 13px;
-  line-height: 1.42857143;
-  color: #555555;
-  background-color: #fff;
-  background-image: none;
-  border: 1px solid #ccc;
-  border-radius: 2px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 1px;
-  width: inherit;
-  font-size: inherit;
-  height: 22px;
-  padding: 0px;
-  display: inline-block;
-}
-.celltoolbar select:focus {
-  border-color: #66afe9;
-  outline: 0;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
-}
-.celltoolbar select::-moz-placeholder {
-  color: #999;
-  opacity: 1;
-}
-.celltoolbar select:-ms-input-placeholder {
-  color: #999;
-}
-.celltoolbar select::-webkit-input-placeholder {
-  color: #999;
-}
-.celltoolbar select::-ms-expand {
-  border: 0;
-  background-color: transparent;
-}
-.celltoolbar select[disabled],
-.celltoolbar select[readonly],
-fieldset[disabled] .celltoolbar select {
-  background-color: #eeeeee;
-  opacity: 1;
-}
-.celltoolbar select[disabled],
-fieldset[disabled] .celltoolbar select {
-  cursor: not-allowed;
-}
-textarea.celltoolbar select {
-  height: auto;
-}
-select.celltoolbar select {
-  height: 30px;
-  line-height: 30px;
-}
-textarea.celltoolbar select,
-select[multiple].celltoolbar select {
-  height: auto;
-}
-.celltoolbar label {
-  margin-left: 5px;
-  margin-right: 5px;
-}
-.completions {
-  position: absolute;
-  z-index: 110;
-  overflow: hidden;
-  border: 1px solid #ababab;
-  border-radius: 2px;
-  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
-  box-shadow: 0px 6px 10px -1px #adadad;
-  line-height: 1;
-}
-.completions select {
-  background: white;
-  outline: none;
-  border: none;
-  padding: 0px;
-  margin: 0px;
-  overflow: auto;
-  font-family: monospace;
-  font-size: 110%;
-  color: #000;
-  width: auto;
-}
-.completions select option.context {
-  color: #286090;
-}
-#kernel_logo_widget {
-  float: right !important;
-  float: right;
-}
-#kernel_logo_widget .current_kernel_logo {
-  display: none;
-  margin-top: -1px;
-  margin-bottom: -1px;
-  width: 32px;
-  height: 32px;
-}
-#menubar {
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  margin-top: 1px;
-}
-#menubar .navbar {
-  border-top: 1px;
-  border-radius: 0px 0px 2px 2px;
-  margin-bottom: 0px;
-}
-#menubar .navbar-toggle {
-  float: left;
-  padding-top: 7px;
-  padding-bottom: 7px;
-  border: none;
-}
-#menubar .navbar-collapse {
-  clear: left;
-}
-.nav-wrapper {
-  border-bottom: 1px solid #e7e7e7;
-}
-i.menu-icon {
-  padding-top: 4px;
-}
-ul#help_menu li a {
-  overflow: hidden;
-  padding-right: 2.2em;
-}
-ul#help_menu li a i {
-  margin-right: -1.2em;
-}
-.dropdown-submenu {
-  position: relative;
-}
-.dropdown-submenu > .dropdown-menu {
-  top: 0;
-  left: 100%;
-  margin-top: -6px;
-  margin-left: -1px;
-}
-.dropdown-submenu:hover > .dropdown-menu {
-  display: block;
-}
-.dropdown-submenu > a:after {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  display: block;
-  content: "\f0da";
-  float: right;
-  color: #333333;
-  margin-top: 2px;
-  margin-right: -10px;
-}
-.dropdown-submenu > a:after.pull-left {
-  margin-right: .3em;
-}
-.dropdown-submenu > a:after.pull-right {
-  margin-left: .3em;
-}
-.dropdown-submenu:hover > a:after {
-  color: #262626;
-}
-.dropdown-submenu.pull-left {
-  float: none;
-}
-.dropdown-submenu.pull-left > .dropdown-menu {
-  left: -100%;
-  margin-left: 10px;
-}
-#notification_area {
-  float: right !important;
-  float: right;
-  z-index: 10;
-}
-.indicator_area {
-  float: right !important;
-  float: right;
-  color: #777;
-  margin-left: 5px;
-  margin-right: 5px;
-  width: 11px;
-  z-index: 10;
-  text-align: center;
-  width: auto;
-}
-#kernel_indicator {
-  float: right !important;
-  float: right;
-  color: #777;
-  margin-left: 5px;
-  margin-right: 5px;
-  width: 11px;
-  z-index: 10;
-  text-align: center;
-  width: auto;
-  border-left: 1px solid;
-}
-#kernel_indicator .kernel_indicator_name {
-  padding-left: 5px;
-  padding-right: 5px;
-}
-#modal_indicator {
-  float: right !important;
-  float: right;
-  color: #777;
-  margin-left: 5px;
-  margin-right: 5px;
-  width: 11px;
-  z-index: 10;
-  text-align: center;
-  width: auto;
-}
-#readonly-indicator {
-  float: right !important;
-  float: right;
-  color: #777;
-  margin-left: 5px;
-  margin-right: 5px;
-  width: 11px;
-  z-index: 10;
-  text-align: center;
-  width: auto;
-  margin-top: 2px;
-  margin-bottom: 0px;
-  margin-left: 0px;
-  margin-right: 0px;
-  display: none;
-}
-.modal_indicator:before {
-  width: 1.28571429em;
-  text-align: center;
-}
-.edit_mode .modal_indicator:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f040";
-}
-.edit_mode .modal_indicator:before.pull-left {
-  margin-right: .3em;
-}
-.edit_mode .modal_indicator:before.pull-right {
-  margin-left: .3em;
-}
-.command_mode .modal_indicator:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: ' ';
-}
-.command_mode .modal_indicator:before.pull-left {
-  margin-right: .3em;
-}
-.command_mode .modal_indicator:before.pull-right {
-  margin-left: .3em;
-}
-.kernel_idle_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f10c";
-}
-.kernel_idle_icon:before.pull-left {
-  margin-right: .3em;
-}
-.kernel_idle_icon:before.pull-right {
-  margin-left: .3em;
-}
-.kernel_busy_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f111";
-}
-.kernel_busy_icon:before.pull-left {
-  margin-right: .3em;
-}
-.kernel_busy_icon:before.pull-right {
-  margin-left: .3em;
-}
-.kernel_dead_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f1e2";
-}
-.kernel_dead_icon:before.pull-left {
-  margin-right: .3em;
-}
-.kernel_dead_icon:before.pull-right {
-  margin-left: .3em;
-}
-.kernel_disconnected_icon:before {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  content: "\f127";
-}
-.kernel_disconnected_icon:before.pull-left {
-  margin-right: .3em;
-}
-.kernel_disconnected_icon:before.pull-right {
-  margin-left: .3em;
-}
-.notification_widget {
-  color: #777;
-  z-index: 10;
-  background: rgba(240, 240, 240, 0.5);
-  margin-right: 4px;
-  color: #333;
-  background-color: #fff;
-  border-color: #ccc;
-}
-.notification_widget:focus,
-.notification_widget.focus {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #8c8c8c;
-}
-.notification_widget:hover {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-.notification_widget:active,
-.notification_widget.active,
-.open > .dropdown-toggle.notification_widget {
-  color: #333;
-  background-color: #e6e6e6;
-  border-color: #adadad;
-}
-.notification_widget:active:hover,
-.notification_widget.active:hover,
-.open > .dropdown-toggle.notification_widget:hover,
-.notification_widget:active:focus,
-.notification_widget.active:focus,
-.open > .dropdown-toggle.notification_widget:focus,
-.notification_widget:active.focus,
-.notification_widget.active.focus,
-.open > .dropdown-toggle.notification_widget.focus {
-  color: #333;
-  background-color: #d4d4d4;
-  border-color: #8c8c8c;
-}
-.notification_widget:active,
-.notification_widget.active,
-.open > .dropdown-toggle.notification_widget {
-  background-image: none;
-}
-.notification_widget.disabled:hover,
-.notification_widget[disabled]:hover,
-fieldset[disabled] .notification_widget:hover,
-.notification_widget.disabled:focus,
-.notification_widget[disabled]:focus,
-fieldset[disabled] .notification_widget:focus,
-.notification_widget.disabled.focus,
-.notification_widget[disabled].focus,
-fieldset[disabled] .notification_widget.focus {
-  background-color: #fff;
-  border-color: #ccc;
-}
-.notification_widget .badge {
-  color: #fff;
-  background-color: #333;
-}
-.notification_widget.warning {
-  color: #fff;
-  background-color: #f0ad4e;
-  border-color: #eea236;
-}
-.notification_widget.warning:focus,
-.notification_widget.warning.focus {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #985f0d;
-}
-.notification_widget.warning:hover {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #d58512;
-}
-.notification_widget.warning:active,
-.notification_widget.warning.active,
-.open > .dropdown-toggle.notification_widget.warning {
-  color: #fff;
-  background-color: #ec971f;
-  border-color: #d58512;
-}
-.notification_widget.warning:active:hover,
-.notification_widget.warning.active:hover,
-.open > .dropdown-toggle.notification_widget.warning:hover,
-.notification_widget.warning:active:focus,
-.notification_widget.warning.active:focus,
-.open > .dropdown-toggle.notification_widget.warning:focus,
-.notification_widget.warning:active.focus,
-.notification_widget.warning.active.focus,
-.open > .dropdown-toggle.notification_widget.warning.focus {
-  color: #fff;
-  background-color: #d58512;
-  border-color: #985f0d;
-}
-.notification_widget.warning:active,
-.notification_widget.warning.active,
-.open > .dropdown-toggle.notification_widget.warning {
-  background-image: none;
-}
-.notification_widget.warning.disabled:hover,
-.notification_widget.warning[disabled]:hover,
-fieldset[disabled] .notification_widget.warning:hover,
-.notification_widget.warning.disabled:focus,
-.notification_widget.warning[disabled]:focus,
-fieldset[disabled] .notification_widget.warning:focus,
-.notification_widget.warning.disabled.focus,
-.notification_widget.warning[disabled].focus,
-fieldset[disabled] .notification_widget.warning.focus {
-  background-color: #f0ad4e;
-  border-color: #eea236;
-}
-.notification_widget.warning .badge {
-  color: #f0ad4e;
-  background-color: #fff;
-}
-.notification_widget.success {
-  color: #fff;
-  background-color: #5cb85c;
-  border-color: #4cae4c;
-}
-.notification_widget.success:focus,
-.notification_widget.success.focus {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #255625;
-}
-.notification_widget.success:hover {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #398439;
-}
-.notification_widget.success:active,
-.notification_widget.success.active,
-.open > .dropdown-toggle.notification_widget.success {
-  color: #fff;
-  background-color: #449d44;
-  border-color: #398439;
-}
-.notification_widget.success:active:hover,
-.notification_widget.success.active:hover,
-.open > .dropdown-toggle.notification_widget.success:hover,
-.notification_widget.success:active:focus,
-.notification_widget.success.active:focus,
-.open > .dropdown-toggle.notification_widget.success:focus,
-.notification_widget.success:active.focus,
-.notification_widget.success.active.focus,
-.open > .dropdown-toggle.notification_widget.success.focus {
-  color: #fff;
-  background-color: #398439;
-  border-color: #255625;
-}
-.notification_widget.success:active,
-.notification_widget.success.active,
-.open > .dropdown-toggle.notification_widget.success {
-  background-image: none;
-}
-.notification_widget.success.disabled:hover,
-.notification_widget.success[disabled]:hover,
-fieldset[disabled] .notification_widget.success:hover,
-.notification_widget.success.disabled:focus,
-.notification_widget.success[disabled]:focus,
-fieldset[disabled] .notification_widget.success:focus,
-.notification_widget.success.disabled.focus,
-.notification_widget.success[disabled].focus,
-fieldset[disabled] .notification_widget.success.focus {
-  background-color: #5cb85c;
-  border-color: #4cae4c;
-}
-.notification_widget.success .badge {
-  color: #5cb85c;
-  background-color: #fff;
-}
-.notification_widget.info {
-  color: #fff;
-  background-color: #5bc0de;
-  border-color: #46b8da;
-}
-.notification_widget.info:focus,
-.notification_widget.info.focus {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #1b6d85;
-}
-.notification_widget.info:hover {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #269abc;
-}
-.notification_widget.info:active,
-.notification_widget.info.active,
-.open > .dropdown-toggle.notification_widget.info {
-  color: #fff;
-  background-color: #31b0d5;
-  border-color: #269abc;
-}
-.notification_widget.info:active:hover,
-.notification_widget.info.active:hover,
-.open > .dropdown-toggle.notification_widget.info:hover,
-.notification_widget.info:active:focus,
-.notification_widget.info.active:focus,
-.open > .dropdown-toggle.notification_widget.info:focus,
-.notification_widget.info:active.focus,
-.notification_widget.info.active.focus,
-.open > .dropdown-toggle.notification_widget.info.focus {
-  color: #fff;
-  background-color: #269abc;
-  border-color: #1b6d85;
-}
-.notification_widget.info:active,
-.notification_widget.info.active,
-.open > .dropdown-toggle.notification_widget.info {
-  background-image: none;
-}
-.notification_widget.info.disabled:hover,
-.notification_widget.info[disabled]:hover,
-fieldset[disabled] .notification_widget.info:hover,
-.notification_widget.info.disabled:focus,
-.notification_widget.info[disabled]:focus,
-fieldset[disabled] .notification_widget.info:focus,
-.notification_widget.info.disabled.focus,
-.notification_widget.info[disabled].focus,
-fieldset[disabled] .notification_widget.info.focus {
-  background-color: #5bc0de;
-  border-color: #46b8da;
-}
-.notification_widget.info .badge {
-  color: #5bc0de;
-  background-color: #fff;
-}
-.notification_widget.danger {
-  color: #fff;
-  background-color: #d9534f;
-  border-color: #d43f3a;
-}
-.notification_widget.danger:focus,
-.notification_widget.danger.focus {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #761c19;
-}
-.notification_widget.danger:hover {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #ac2925;
-}
-.notification_widget.danger:active,
-.notification_widget.danger.active,
-.open > .dropdown-toggle.notification_widget.danger {
-  color: #fff;
-  background-color: #c9302c;
-  border-color: #ac2925;
-}
-.notification_widget.danger:active:hover,
-.notification_widget.danger.active:hover,
-.open > .dropdown-toggle.notification_widget.danger:hover,
-.notification_widget.danger:active:focus,
-.notification_widget.danger.active:focus,
-.open > .dropdown-toggle.notification_widget.danger:focus,
-.notification_widget.danger:active.focus,
-.notification_widget.danger.active.focus,
-.open > .dropdown-toggle.notification_widget.danger.focus {
-  color: #fff;
-  background-color: #ac2925;
-  border-color: #761c19;
-}
-.notification_widget.danger:active,
-.notification_widget.danger.active,
-.open > .dropdown-toggle.notification_widget.danger {
-  background-image: none;
-}
-.notification_widget.danger.disabled:hover,
-.notification_widget.danger[disabled]:hover,
-fieldset[disabled] .notification_widget.danger:hover,
-.notification_widget.danger.disabled:focus,
-.notification_widget.danger[disabled]:focus,
-fieldset[disabled] .notification_widget.danger:focus,
-.notification_widget.danger.disabled.focus,
-.notification_widget.danger[disabled].focus,
-fieldset[disabled] .notification_widget.danger.focus {
-  background-color: #d9534f;
-  border-color: #d43f3a;
-}
-.notification_widget.danger .badge {
-  color: #d9534f;
-  background-color: #fff;
-}
-div#pager {
-  background-color: #fff;
-  font-size: 14px;
-  line-height: 20px;
-  overflow: hidden;
-  display: none;
-  position: fixed;
-  bottom: 0px;
-  width: 100%;
-  max-height: 50%;
-  padding-top: 8px;
-  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-  /* Display over codemirror */
-  z-index: 100;
-  /* Hack which prevents jquery ui resizable from changing top. */
-  top: auto !important;
-}
-div#pager pre {
-  line-height: 1.21429em;
-  color: #000;
-  background-color: #f7f7f7;
-  padding: 0.4em;
-}
-div#pager #pager-button-area {
-  position: absolute;
-  top: 8px;
-  right: 20px;
-}
-div#pager #pager-contents {
-  position: relative;
-  overflow: auto;
-  width: 100%;
-  height: 100%;
-}
-div#pager #pager-contents #pager-container {
-  position: relative;
-  padding: 15px 0px;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-}
-div#pager .ui-resizable-handle {
-  top: 0px;
-  height: 8px;
-  background: #f7f7f7;
-  border-top: 1px solid #cfcfcf;
-  border-bottom: 1px solid #cfcfcf;
-  /* This injects handle bars (a short, wide = symbol) for 
-        the resize handle. */
-}
-div#pager .ui-resizable-handle::after {
-  content: '';
-  top: 2px;
-  left: 50%;
-  height: 3px;
-  width: 30px;
-  margin-left: -15px;
-  position: absolute;
-  border-top: 1px solid #cfcfcf;
-}
-.quickhelp {
-  /* Old browsers */
-  display: -webkit-box;
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: stretch;
-  display: -moz-box;
-  -moz-box-orient: horizontal;
-  -moz-box-align: stretch;
-  display: box;
-  box-orient: horizontal;
-  box-align: stretch;
-  /* Modern browsers */
-  display: flex;
-  flex-direction: row;
-  align-items: stretch;
-  line-height: 1.8em;
-}
-.shortcut_key {
-  display: inline-block;
-  width: 20ex;
-  text-align: right;
-  font-family: monospace;
-}
-.shortcut_descr {
-  display: inline-block;
-  /* Old browsers */
-  -webkit-box-flex: 1;
-  -moz-box-flex: 1;
-  box-flex: 1;
-  /* Modern browsers */
-  flex: 1;
-}
-span.save_widget {
-  margin-top: 6px;
-}
-span.save_widget span.filename {
-  height: 1em;
-  line-height: 1em;
-  padding: 3px;
-  margin-left: 16px;
-  border: none;
-  font-size: 146.5%;
-  border-radius: 2px;
-}
-span.save_widget span.filename:hover {
-  background-color: #e6e6e6;
-}
-span.checkpoint_status,
-span.autosave_status {
-  font-size: small;
-}
-@media (max-width: 767px) {
-  span.save_widget {
-    font-size: small;
-  }
-  span.checkpoint_status,
-  span.autosave_status {
-    display: none;
-  }
-}
-@media (min-width: 768px) and (max-width: 991px) {
-  span.checkpoint_status {
-    display: none;
-  }
-  span.autosave_status {
-    font-size: x-small;
-  }
-}
-.toolbar {
-  padding: 0px;
-  margin-left: -5px;
-  margin-top: 2px;
-  margin-bottom: 5px;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-}
-.toolbar select,
-.toolbar label {
-  width: auto;
-  vertical-align: middle;
-  margin-right: 2px;
-  margin-bottom: 0px;
-  display: inline;
-  font-size: 92%;
-  margin-left: 0.3em;
-  margin-right: 0.3em;
-  padding: 0px;
-  padding-top: 3px;
-}
-.toolbar .btn {
-  padding: 2px 8px;
-}
-.toolbar .btn-group {
-  margin-top: 0px;
-  margin-left: 5px;
-}
-#maintoolbar {
-  margin-bottom: -3px;
-  margin-top: -8px;
-  border: 0px;
-  min-height: 27px;
-  margin-left: 0px;
-  padding-top: 11px;
-  padding-bottom: 3px;
-}
-#maintoolbar .navbar-text {
-  float: none;
-  vertical-align: middle;
-  text-align: right;
-  margin-left: 5px;
-  margin-right: 0px;
-  margin-top: 0px;
-}
-.select-xs {
-  height: 24px;
-}
-.pulse,
-.dropdown-menu > li > a.pulse,
-li.pulse > a.dropdown-toggle,
-li.pulse.open > a.dropdown-toggle {
-  background-color: #F37626;
-  color: white;
-}
-/**
- * Primary styles
- *
- * Author: Jupyter Development Team
- */
-/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
- * of chance of beeing generated from the ../less/[samename].less file, you can
- * try to get back the less file by reverting somme commit in history
- **/
-/*
- * We'll try to get something pretty, so we
- * have some strange css to have the scroll bar on
- * the left with fix button on the top right of the tooltip
- */
-@-moz-keyframes fadeOut {
-  from {
-    opacity: 1;
-  }
-  to {
-    opacity: 0;
-  }
-}
-@-webkit-keyframes fadeOut {
-  from {
-    opacity: 1;
-  }
-  to {
-    opacity: 0;
-  }
-}
-@-moz-keyframes fadeIn {
-  from {
-    opacity: 0;
-  }
-  to {
-    opacity: 1;
-  }
-}
-@-webkit-keyframes fadeIn {
-  from {
-    opacity: 0;
-  }
-  to {
-    opacity: 1;
-  }
-}
-/*properties of tooltip after "expand"*/
-.bigtooltip {
-  overflow: auto;
-  height: 200px;
-  -webkit-transition-property: height;
-  -webkit-transition-duration: 500ms;
-  -moz-transition-property: height;
-  -moz-transition-duration: 500ms;
-  transition-property: height;
-  transition-duration: 500ms;
-}
-/*properties of tooltip before "expand"*/
-.smalltooltip {
-  -webkit-transition-property: height;
-  -webkit-transition-duration: 500ms;
-  -moz-transition-property: height;
-  -moz-transition-duration: 500ms;
-  transition-property: height;
-  transition-duration: 500ms;
-  text-overflow: ellipsis;
-  overflow: hidden;
-  height: 80px;
-}
-.tooltipbuttons {
-  position: absolute;
-  padding-right: 15px;
-  top: 0px;
-  right: 0px;
-}
-.tooltiptext {
-  /*avoid the button to overlap on some docstring*/
-  padding-right: 30px;
-}
-.ipython_tooltip {
-  max-width: 700px;
-  /*fade-in animation when inserted*/
-  -webkit-animation: fadeOut 400ms;
-  -moz-animation: fadeOut 400ms;
-  animation: fadeOut 400ms;
-  -webkit-animation: fadeIn 400ms;
-  -moz-animation: fadeIn 400ms;
-  animation: fadeIn 400ms;
-  vertical-align: middle;
-  background-color: #f7f7f7;
-  overflow: visible;
-  border: #ababab 1px solid;
-  outline: none;
-  padding: 3px;
-  margin: 0px;
-  padding-left: 7px;
-  font-family: monospace;
-  min-height: 50px;
-  -moz-box-shadow: 0px 6px 10px -1px #adadad;
-  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
-  box-shadow: 0px 6px 10px -1px #adadad;
-  border-radius: 2px;
-  position: absolute;
-  z-index: 1000;
-}
-.ipython_tooltip a {
-  float: right;
-}
-.ipython_tooltip .tooltiptext pre {
-  border: 0;
-  border-radius: 0;
-  font-size: 100%;
-  background-color: #f7f7f7;
-}
-.pretooltiparrow {
-  left: 0px;
-  margin: 0px;
-  top: -16px;
-  width: 40px;
-  height: 16px;
-  overflow: hidden;
-  position: absolute;
-}
-.pretooltiparrow:before {
-  background-color: #f7f7f7;
-  border: 1px #ababab solid;
-  z-index: 11;
-  content: "";
-  position: absolute;
-  left: 15px;
-  top: 10px;
-  width: 25px;
-  height: 25px;
-  -webkit-transform: rotate(45deg);
-  -moz-transform: rotate(45deg);
-  -ms-transform: rotate(45deg);
-  -o-transform: rotate(45deg);
-}
-ul.typeahead-list i {
-  margin-left: -10px;
-  width: 18px;
-}
-ul.typeahead-list {
-  max-height: 80vh;
-  overflow: auto;
-}
-ul.typeahead-list > li > a {
-  /** Firefox bug **/
-  /* see https://github.com/jupyter/notebook/issues/559 */
-  white-space: normal;
-}
-.cmd-palette .modal-body {
-  padding: 7px;
-}
-.cmd-palette form {
-  background: white;
-}
-.cmd-palette input {
-  outline: none;
-}
-.no-shortcut {
-  display: none;
-}
-.command-shortcut:before {
-  content: "(command)";
-  padding-right: 3px;
-  color: #777777;
-}
-.edit-shortcut:before {
-  content: "(edit)";
-  padding-right: 3px;
-  color: #777777;
-}
-#find-and-replace #replace-preview .match,
-#find-and-replace #replace-preview .insert {
-  background-color: #BBDEFB;
-  border-color: #90CAF9;
-  border-style: solid;
-  border-width: 1px;
-  border-radius: 0px;
-}
-#find-and-replace #replace-preview .replace .match {
-  background-color: #FFCDD2;
-  border-color: #EF9A9A;
-  border-radius: 0px;
-}
-#find-and-replace #replace-preview .replace .insert {
-  background-color: #C8E6C9;
-  border-color: #A5D6A7;
-  border-radius: 0px;
-}
-#find-and-replace #replace-preview {
-  max-height: 60vh;
-  overflow: auto;
-}
-#find-and-replace #replace-preview pre {
-  padding: 5px 10px;
-}
-.terminal-app {
-  background: #EEE;
-}
-.terminal-app #header {
-  background: #fff;
-  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
-}
-.terminal-app .terminal {
-  float: left;
-  font-family: monospace;
-  color: white;
-  background: black;
-  padding: 0.4em;
-  border-radius: 2px;
-  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
-  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
-}
-.terminal-app .terminal,
-.terminal-app .terminal dummy-screen {
-  line-height: 1em;
-  font-size: 14px;
-}
-.terminal-app .terminal-cursor {
-  color: black;
-  background: white;
-}
-.terminal-app #terminado-container {
-  margin-top: 20px;
-}
-/*# sourceMappingURL=style.min.css.map */
-    </style>
-<style type="text/css">
-    .highlight .hll { background-color: #ffffcc }
-.highlight  { background: #f8f8f8; }
-.highlight .c { color: #408080; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #008000; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
-.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
-.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
-.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
-.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #008000 } /* Keyword.Pseudo */
-.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #B00040 } /* Keyword.Type */
-.highlight .m { color: #666666 } /* Literal.Number */
-.highlight .s { color: #BA2121 } /* Literal.String */
-.highlight .na { color: #7D9029 } /* Name.Attribute */
-.highlight .nb { color: #008000 } /* Name.Builtin */
-.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
-.highlight .no { color: #880000 } /* Name.Constant */
-.highlight .nd { color: #AA22FF } /* Name.Decorator */
-.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #0000FF } /* Name.Function */
-.highlight .nl { color: #A0A000 } /* Name.Label */
-.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #19177C } /* Name.Variable */
-.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mb { color: #666666 } /* Literal.Number.Bin */
-.highlight .mf { color: #666666 } /* Literal.Number.Float */
-.highlight .mh { color: #666666 } /* Literal.Number.Hex */
-.highlight .mi { color: #666666 } /* Literal.Number.Integer */
-.highlight .mo { color: #666666 } /* Literal.Number.Oct */
-.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
-.highlight .sc { color: #BA2121 } /* Literal.String.Char */
-.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
-.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
-.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.highlight .sx { color: #008000 } /* Literal.String.Other */
-.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
-.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
-.highlight .ss { color: #19177C } /* Literal.String.Symbol */
-.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #19177C } /* Name.Variable.Class */
-.highlight .vg { color: #19177C } /* Name.Variable.Global */
-.highlight .vi { color: #19177C } /* Name.Variable.Instance */
-.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
-    </style>
-<style type="text/css">
-    
-/* Temporary definitions which will become obsolete with Notebook release 5.0 */
-.ansi-black-fg { color: #3E424D; }
-.ansi-black-bg { background-color: #3E424D; }
-.ansi-black-intense-fg { color: #282C36; }
-.ansi-black-intense-bg { background-color: #282C36; }
-.ansi-red-fg { color: #E75C58; }
-.ansi-red-bg { background-color: #E75C58; }
-.ansi-red-intense-fg { color: #B22B31; }
-.ansi-red-intense-bg { background-color: #B22B31; }
-.ansi-green-fg { color: #00A250; }
-.ansi-green-bg { background-color: #00A250; }
-.ansi-green-intense-fg { color: #007427; }
-.ansi-green-intense-bg { background-color: #007427; }
-.ansi-yellow-fg { color: #DDB62B; }
-.ansi-yellow-bg { background-color: #DDB62B; }
-.ansi-yellow-intense-fg { color: #B27D12; }
-.ansi-yellow-intense-bg { background-color: #B27D12; }
-.ansi-blue-fg { color: #208FFB; }
-.ansi-blue-bg { background-color: #208FFB; }
-.ansi-blue-intense-fg { color: #0065CA; }
-.ansi-blue-intense-bg { background-color: #0065CA; }
-.ansi-magenta-fg { color: #D160C4; }
-.ansi-magenta-bg { background-color: #D160C4; }
-.ansi-magenta-intense-fg { color: #A03196; }
-.ansi-magenta-intense-bg { background-color: #A03196; }
-.ansi-cyan-fg { color: #60C6C8; }
-.ansi-cyan-bg { background-color: #60C6C8; }
-.ansi-cyan-intense-fg { color: #258F8F; }
-.ansi-cyan-intense-bg { background-color: #258F8F; }
-.ansi-white-fg { color: #C5C1B4; }
-.ansi-white-bg { background-color: #C5C1B4; }
-.ansi-white-intense-fg { color: #A1A6B2; }
-.ansi-white-intense-bg { background-color: #A1A6B2; }
-
-.ansi-bold { font-weight: bold; }
-
-    </style>
-
-
-<style type="text/css">
-/* Overrides of notebook CSS for static HTML export */
-body {
-  overflow: visible;
-  padding: 8px;
-}
-
-div#notebook {
-  overflow: visible;
-  border-top: none;
-}
-
-@media print {
-  div.cell {
-    display: block;
-    page-break-inside: avoid;
-  } 
-  div.output_wrapper { 
-    display: block;
-    page-break-inside: avoid; 
-  }
-  div.output { 
-    display: block;
-    page-break-inside: avoid; 
-  }
-}
-</style>
-
-<!-- Custom stylesheet, it must be in the same directory as the html file -->
-<link rel="stylesheet" href="custom.css">
-
-<!-- Loading mathjax macro -->
-<!-- Load mathjax -->
-    <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
-    <!-- MathJax configuration -->
-    <script type="text/x-mathjax-config">
-    MathJax.Hub.Config({
-        tex2jax: {
-            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
-            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
-            processEscapes: true,
-            processEnvironments: true
-        },
-        // Center justify equations in code and markdown cells. Elsewhere
-        // we use CSS to left justify single line equations in code cells.
-        displayAlign: 'center',
-        "HTML-CSS": {
-            styles: {'.MathJax_Display': {"margin": 0}},
-            linebreaks: { automatic: true }
-        }
-    });
-    </script>
-    <!-- End of mathjax configuration --></head>
-<body>
-  <div tabindex="-1" id="notebook" class="border-box-sizing">
-    <div class="container" id="notebook-container">
-
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[1]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">warnings</span>
-<span class="n">warnings</span><span class="o">.</span><span class="n">simplefilter</span><span class="p">(</span><span class="s2">&quot;ignore&quot;</span><span class="p">)</span>
-
-<span class="kn">import</span> <span class="nn">mhcflurry</span>
-<span class="kn">import</span> <span class="nn">numpy</span>
-<span class="kn">import</span> <span class="nn">seaborn</span>
-<span class="kn">import</span> <span class="nn">logging</span>
-<span class="kn">import</span> <span class="nn">pandas</span>
-<span class="kn">from</span> <span class="nn">os</span> <span class="k">import</span> <span class="n">environ</span>
-<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="k">import</span> <span class="n">pyplot</span>
-<span class="kn">from</span> <span class="nn">mhcflurry.downloads</span> <span class="k">import</span> <span class="n">get_path</span>
-
-<span class="o">%</span> <span class="n">matplotlib</span> <span class="n">inline</span>
-
-<span class="kn">import</span> <span class="nn">IPython.core.display</span> <span class="k">as</span> <span class="nn">display</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt"></div>
-<div class="output_subarea output_stream output_stderr output_text">
-<pre>Using Theano backend.
-/Users/tim/miniconda3/envs/py3k/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
-  &#34;This module will be removed in 0.20.&#34;, DeprecationWarning)
-</pre>
-</div>
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[2]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">IPython.core.display</span> <span class="k">as</span> <span class="nn">di</span>
-
-<span class="c1"># This line will hide code by default when the notebook is exported as HTML</span>
-<span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s1">&#39;&lt;script&gt;jQuery(function() {if (jQuery(&quot;body.notebook_app&quot;).length == 0) { jQuery(&quot;.input_area&quot;).toggle(); jQuery(&quot;.prompt&quot;).toggle(); jQuery(&quot;div.output_stderr&quot;).toggle();}});&lt;/script&gt;&#39;</span><span class="p">,</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt"></div>
-
-<div class="output_html rendered_html output_subarea ">
-<script>jQuery(function() {if (jQuery("body.notebook_app").length == 0) { jQuery(".input_area").toggle(); jQuery(".prompt").toggle(); jQuery("div.output_stderr").toggle();}});</script>
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing text_cell rendered">
-<div class="prompt input_prompt">
-</div>
-<div class="inner_cell">
-<div class="text_cell_render border-box-sizing rendered_html">
-<h1 id="MHCflurry-models">MHCflurry models<a class="anchor-link" href="#MHCflurry-models">&#182;</a></h1><h2 id="Class-1-allele-specific-ensemble-models">Class 1 allele specific ensemble models<a class="anchor-link" href="#Class-1-allele-specific-ensemble-models">&#182;</a></h2><p>This report describes the models published with MHCflurry for Class I affinity prediction. These models were trained on the "data_combined_iedb_kim2014" affinity measurement dataset (mostly from IEDB) distributed with MHCflurry.</p>
-<p>Each allele's predictor is an ensemble of 16 models. The models were trained on a random 1/2 of the data for the allele and tested on the other half. The best performing model in terms of sum of AUC (at 500nM), F1, and Kendall Tau for each 50/50 split of the data was selected for inclusion in the ensemble.</p>
-
-</div>
-</div>
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[3]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_models_df</span> <span class="o">=</span> <span class="n">pandas</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">get_path</span><span class="p">(</span><span class="s2">&quot;models_class1_allele_specific_ensemble&quot;</span><span class="p">,</span> <span class="s2">&quot;all_models.csv.bz2&quot;</span><span class="p">))</span>
-<span class="n">all_models_df</span><span class="p">[</span><span class="s2">&quot;hyperparameters_layer_sizes&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="p">[</span><span class="s2">&quot;hyperparameters_layer_sizes&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">eval</span><span class="p">)</span>
-
-<span class="n">full_training_data</span> <span class="o">=</span> <span class="n">mhcflurry</span><span class="o">.</span><span class="n">affinity_measurement_dataset</span><span class="o">.</span><span class="n">AffinityMeasurementDataset</span><span class="o">.</span><span class="n">from_csv</span><span class="p">(</span>
-    <span class="n">get_path</span><span class="p">(</span><span class="s2">&quot;data_combined_iedb_kim2014&quot;</span><span class="p">,</span> <span class="s2">&quot;combined_human_class1_dataset.csv&quot;</span><span class="p">))</span>
-
-<span class="n">training_sizes</span> <span class="o">=</span> <span class="n">full_training_data</span><span class="o">.</span><span class="n">to_dataframe</span><span class="p">()</span><span class="o">.</span><span class="n">allele</span><span class="o">.</span><span class="n">value_counts</span><span class="p">()</span>
-
-<span class="n">all_models_df</span><span class="p">[</span><span class="s2">&quot;train_size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">allele</span><span class="p">]</span><span class="o">.</span><span class="n">values</span>
-
-<span class="p">(</span><span class="n">ensemble_size</span><span class="p">,)</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ensemble_size</span><span class="o">.</span><span class="n">value_counts</span><span class="p">()</span><span class="o">.</span><span class="n">index</span>
-<span class="n">ensemble_size</span>
-
-<span class="n">selected_models_df</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">weight</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">]</span>
-<span class="n">selected_models_df</span><span class="o">.</span><span class="n">shape</span>
-
-<span class="n">alleles</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">sort_values</span><span class="p">()</span><span class="o">.</span><span class="n">index</span> <span class="k">if</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">selected_models_df</span><span class="o">.</span><span class="n">allele</span><span class="o">.</span><span class="n">values</span><span class="p">]</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[4]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">training_sizes_for_included_alleles</span> <span class="o">=</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span>
-    <span class="n">training_sizes</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">isin</span><span class="p">(</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">allele</span><span class="p">)</span>
-<span class="p">]</span>
-
-<span class="n">lines</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="k">def</span> <span class="nf">row</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-    <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;&lt;tr&gt;&lt;td&gt;&lt;b&gt;</span><span class="si">%s</span><span class="s1">&lt;/b&gt;&lt;/td&gt;&lt;td&gt;</span><span class="si">%s</span><span class="s1">&lt;/td&gt;&lt;/tr&gt;&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
-
-<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;&lt;h1&gt;Models summary&lt;/h1&gt;&#39;</span><span class="p">)</span>
-<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;&lt;table&gt;&#39;</span><span class="p">)</span>
-
-<span class="n">row</span><span class="p">(</span><span class="s2">&quot;Num Alleles&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">{:,d}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">allele</span><span class="o">.</span><span class="n">nunique</span><span class="p">()))</span>
-<span class="n">row</span><span class="p">(</span><span class="s2">&quot;Ensemble size&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">{:,d}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ensemble_size</span><span class="p">))</span>
-<span class="n">row</span><span class="p">(</span><span class="s2">&quot;Num architectures&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">{:,d}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">hyperparameters_architecture_num</span><span class="o">.</span><span class="n">nunique</span><span class="p">()))</span>
-<span class="n">row</span><span class="p">(</span><span class="s2">&quot;Num selected models&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">{:,d}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">((</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">weight</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">sum</span><span class="p">()))</span>
-<span class="n">row</span><span class="p">(</span><span class="s2">&quot;Total models tested&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">{:,d}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">all_models_df</span><span class="p">)))</span>
-<span class="n">row</span><span class="p">(</span><span class="s2">&quot;Total training measurements&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">{:,d}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">sum</span><span class="p">()))</span>
-<span class="n">row</span><span class="p">(</span><span class="s2">&quot;Training measurement per allele&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;min=</span><span class="si">{:,g}</span><span class="s2">; max=</span><span class="si">{:,g}</span><span class="s2">; median=</span><span class="si">{:,g}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
-        <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">min</span><span class="p">(),</span>
-        <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">max</span><span class="p">(),</span>
-        <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">median</span><span class="p">()))</span>
-
-
-<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;&lt;/table&gt;&#39;</span><span class="p">)</span>
-<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;&lt;p&gt;&lt;b&gt;Alleles included: &lt;/b&gt;</span><span class="si">%s</span><span class="s2">&lt;/p&gt;&quot;</span> <span class="o">%</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-        <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">index</span><span class="p">))</span>
-
-
-<span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lines</span><span class="p">),</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt"></div>
-
-<div class="output_html rendered_html output_subarea ">
-<h1>Models summary</h1>
-<table>
-<tr><td><b>Num Alleles</b></td><td>132</td></tr>
-<tr><td><b>Ensemble size</b></td><td>16</td></tr>
-<tr><td><b>Num architectures</b></td><td>162</td></tr>
-<tr><td><b>Num selected models</b></td><td>2,112</td></tr>
-<tr><td><b>Total models tested</b></td><td>342,144</td></tr>
-<tr><td><b>Total training measurements</b></td><td>192,177</td></tr>
-<tr><td><b>Training measurement per allele</b></td><td>min=26; max=12,357; median=721.5</td></tr>
-</table>
-<p><b>Alleles included: </b>HLA-A0201 HLA-A0301 HLA-A0203 HLA-A1101 H-2-KB HLA-A3101 HLA-A0206 HLA-A6802 H-2-DB HLA-A0101 HLA-B0702 HLA-A2601 HLA-B1501 HLA-A0202 HLA-A6801 HLA-A3301 HLA-B2705 HLA-B0801 HLA-A2402 HLA-B4001 HLA-B3501 HLA-B5801 HLA-B5101 HLA-B5701 HLA-A3001 HLA-B1801 HLA-A2902 Mamu-A01 HLA-A6901 HLA-A2301 HLA-B4402 Mamu-A100101 HLA-A3002 HLA-B4601 Mamu-B17 HLA-B3901 HLA-B5301 HLA-B1517 HLA-B4403 Mamu-A02 Mamu-B01704 Mamu-A11 HLA-A0219 HLA-A2403 HLA-B5401 HLA-A0212 HLA-A8001 Mamu-B03 HLA-A3201 Mamu-B08 H-2-KD HLA-A0211 HLA-B4501 HLA-B4002 HLA-B0802 HLA-A2501 HLA-A0216 Patr-B0101 Mamu-A101101 Mamu-B52 HLA-B4801 Mamu-B01 HLA-B2703 HLA-B1509 Patr-A0901 H-2-KK HLA-B1503 Mamu-A2201 Mamu-A07 Patr-A0701 HLA-A2602 H-2-DD Mamu-A100201 HLA-A2603 Patr-A0101 HLA-C0401 HLA-B3801 H-2-LD HLA-B0803 Mamu-B3901 Mamu-B8301 Patr-B2401 HLA-C0602 Patr-A0301 HLA-B1542 HLA-B4506 HLA-A0217 HLA-B8301 Patr-A0401 Patr-B1301 HLA-B3503 HLA-C1402 HLA-EQCA100101 HLA-B4201 Mamu-A2601 HLA-B1402 HLA-C1502 HLA-C1203 HLA-C0501 HLA-B1502 HLA-C0303 Mamu-B1001 Mamu-B8701 Mamu-A20102 HLA-C0702 HLA-RT1A HLA-A0250 HLA-B7301 HLA-A0205 Mamu-A70103 Mamu-B6601 HLA-B2720 HLA-A3207 HLA-C0802 HLA-A6823 HLA-B7 HLA-A6601 HLA-A0207 HLA-A2 HLA-A11 HLA-A3215 HLA-B3701 HLA-E0103 HLA-BOLA601301 HLA-B4013 HLA-BOLAHD6 HLA-B5802 HLA-B1401 HLA-B5703 HLA-A0319 HLA-B8101 HLA-A0302</p>
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[5]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">architecture_num_to_row</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;hyperparameters_architecture_num&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">df</span><span class="p">:</span> <span class="n">df</span><span class="o">.</span><span class="n">iloc</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
-
-<span class="n">hyperparameters</span> <span class="o">=</span> <span class="p">[</span>
-    <span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">architecture_num_to_row</span><span class="o">.</span><span class="n">columns</span>
-    <span class="k">if</span> <span class="n">x</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;hyperparameters_&quot;</span><span class="p">)</span> <span class="ow">and</span> <span class="n">pandas</span><span class="o">.</span><span class="n">Series</span><span class="p">([</span>
-        <span class="nb">str</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">architecture_num_to_row</span><span class="p">[</span><span class="n">x</span><span class="p">]</span>
-    <span class="p">])</span><span class="o">.</span><span class="n">nunique</span><span class="p">()</span> <span class="o">&gt;</span> <span class="mi">1</span>
-<span class="p">]</span>
-<span class="n">architecture_num_to_hyperparameters</span> <span class="o">=</span> <span class="p">{}</span>
-<span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">architecture_num_to_row</span><span class="o">.</span><span class="n">iterrows</span><span class="p">():</span>
-    <span class="n">architecture_num_to_hyperparameters</span><span class="p">[</span><span class="n">row</span><span class="o">.</span><span class="n">hyperparameters_architecture_num</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span>
-        <span class="n">row</span><span class="p">[</span><span class="n">hyperparameters</span><span class="p">]</span><span class="o">.</span><span class="n">to_dict</span><span class="p">())</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing text_cell rendered">
-<div class="prompt input_prompt">
-</div>
-<div class="inner_cell">
-<div class="text_cell_render border-box-sizing rendered_html">
-<h1 id="Best-models">Best models<a class="anchor-link" href="#Best-models">&#182;</a></h1><p>This table gives the models most often selected for alleles with less than or equal to the given number of training samples.</p>
-
-</div>
-</div>
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[6]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">result_df</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="n">cutoffs</span> <span class="o">=</span> <span class="p">[</span><span class="mi">100</span><span class="p">,</span> <span class="mi">500</span><span class="p">,</span> <span class="mi">1000</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">inf</span><span class="p">]</span>
-<span class="k">for</span> <span class="n">cutoff</span> <span class="ow">in</span> <span class="n">cutoffs</span><span class="p">:</span>
-    <span class="n">selected_rates</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span>
-        <span class="n">all_models_df</span><span class="o">.</span><span class="n">train_size</span> <span class="o">&lt;=</span> <span class="n">cutoff</span>
-    <span class="p">]</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;hyperparameters_architecture_num&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">weight</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-    <span class="n">best_architecture</span> <span class="o">=</span> <span class="n">selected_rates</span><span class="o">.</span><span class="n">index</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-    <span class="n">d</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span>
-        <span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;hyperparameters_&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">),</span> <span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> <span class="ow">in</span> 
-        <span class="n">architecture_num_to_hyperparameters</span><span class="p">[</span><span class="n">best_architecture</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-    <span class="n">d</span><span class="p">[</span><span class="s2">&quot;architecture selection rate (%)&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">selected_rates</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">best_architecture</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span>
-    <span class="n">result_df</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
-<span class="n">result_df</span> <span class="o">=</span> <span class="n">pandas</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">result_df</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">cutoffs</span><span class="p">)</span>
-<span class="n">result_df</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;Training size cutoff&quot;</span>
-<span class="n">result_df</span><span class="o">.</span><span class="n">T</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[6]:</div>
-
-<div class="output_html rendered_html output_subarea output_execute_result">
-<div>
-<table border="1" class="dataframe">
-  <thead>
-    <tr style="text-align: right;">
-      <th>Training size cutoff</th>
-      <th>100.0</th>
-      <th>500.0</th>
-      <th>1000.0</th>
-      <th>inf</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <th>architecture selection rate (%)</th>
-      <td>3.27381</td>
-      <td>2.04545</td>
-      <td>2.27273</td>
-      <td>3.64583</td>
-    </tr>
-    <tr>
-      <th>architecture_num</th>
-      <td>112</td>
-      <td>81</td>
-      <td>112</td>
-      <td>27</td>
-    </tr>
-    <tr>
-      <th>dropout_probability</th>
-      <td>0.1</td>
-      <td>0</td>
-      <td>0.1</td>
-      <td>0.1</td>
-    </tr>
-    <tr>
-      <th>embedding_output_dim</th>
-      <td>8</td>
-      <td>8</td>
-      <td>8</td>
-      <td>8</td>
-    </tr>
-    <tr>
-      <th>fraction_negative</th>
-      <td>0.1</td>
-      <td>0</td>
-      <td>0.1</td>
-      <td>0</td>
-    </tr>
-    <tr>
-      <th>impute</th>
-      <td>True</td>
-      <td>True</td>
-      <td>True</td>
-      <td>False</td>
-    </tr>
-    <tr>
-      <th>layer_sizes</th>
-      <td>[64]</td>
-      <td>[12]</td>
-      <td>[64]</td>
-      <td>[12]</td>
-    </tr>
-  </tbody>
-</table>
-</div>
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[7]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">dropna</span><span class="p">()</span>
-<span class="n">selected_scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">weight</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">dropna</span><span class="p">()</span>
-
-<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
-<span class="n">seaborn</span><span class="o">.</span><span class="n">distplot</span><span class="p">(</span><span class="n">all_scores</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;All. Mean=</span><span class="si">%0.2f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">all_scores</span><span class="o">.</span><span class="n">mean</span><span class="p">())</span>
-<span class="n">seaborn</span><span class="o">.</span><span class="n">distplot</span><span class="p">(</span><span class="n">selected_scores</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Selected. Mean=</span><span class="si">%0.2f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">selected_scores</span><span class="o">.</span><span class="n">mean</span><span class="p">())</span>
-<span class="c1">#seaborn.set_context(&#39;talk&#39;)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="s2">&quot;x-large&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;AUC&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="s2">&quot;x-large&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;AUCs across models and alleles&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="s2">&quot;xx-large&quot;</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[7]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>&lt;matplotlib.text.Text at 0x1177537b8&gt;</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-JCX1ZeLEySxc+Bg7d+4gJWU7f/7z3UyaNLnZJE0IIYTwpy7bUuWwde6klu093urV1pNv4eERTbad
-d96FvPvuW3z22UoSEvo0u/8111zG8cefwD33/KXZ7fVbjpQaTnR0L4YPH0FwcHCTsiEhISxa9DRL
-liziuuuuICQklMmTp3LjjX8E4IILLiYtbQ933XUrmqYxbJji9tvv4e9//yt5eblNjtceF110KUVF
-RTz88F8wDINp02bwhz/cWrd98eIn2LRpI//73/sALFjwIM8//wwPPHAvlZWVjB07jqee+mfd+f3l
-Lw/x9NNPcscdt1BdXc20aTO4+eY/HVWMQgghREfQjrZlwktmbm7LrTXNFO+wQI6sa81Q3hXExUXS
-tvsnuhK5f4FL7l1gk/sXuOLiItuVDHTRlipJbIQQQggRWLpoUiWEEEII77W3h0caMXxJkiohhBCi
-G1iXsxGXYXhV1mGzMSFh/JELijaRpEoIIYToBlyGgdt0e1fYu9xLtJFMqSCEEEII4QOSVAkhhBBC
-+IAkVUIIIYQQPiBJlRBCCCGED0hSJYQQQgjhA100qTL9uLSN2+3m5Zdf4je/+TUzZ07izDNP4/77
-7yU7O8vrOh555AEWLLirzcduztdfryE391C793/mmcXcdNN1XpXNyTnAlCkTmD79FIqLi5ts//bb
-tUyZMsFn5+YLLpeLRYv+xq9+NYv582fz7LNLWn3fYXFxMQ8+uID582dz7rnzePHF5xuUb2t9Qggh
-uq8uO6VCW+bb8IX2ztnx/PNPs3btV9xyyx307z+AwsICli79N7///TW88sr/mn0nYEfJycnh3ntv
-Z/nyN4iL693uetr6/j+bzca3337NGWfMb7B+zZrPsdm6Vt7+z38+zbp1P7Jw4RLKy8t58MEFRERE
-cNllVzVb/p57bqOkpJi//e1JbDaNxx57mKqqKm644Q/tqk8IIUT31bW+8eqpnW+js5b2JnAff/wB
-V155LSeddAoJCQkMHz6Shx56lPLycr7+eo1vL8oRmKZx1C9Ebo9x405ocq5ut5vvvlvLqFHHdXo8
-Lamurub999/mpptuZcSIUZxwwgSuv/5G3n77jWbLp6buZMuWTSxY8BCjRo1mxIhR3HHHvbz11utU
-VVW2uT4hhBDdW5dtqQoUmmZjw4afmDVrDna7HYDg4BCWLXuF6OjounIrVnzE8uVLyc09RHLyQK6+
-+jomTpzcbJ3ff/8t//rXM2Rk7CMpqS8XX/xb5s07s277l19+xn/+s5TMzH307duPa6/9PaeeOoUL
-LzwbTdO4/PKLufLKa7jyymvYvv1nnn76H+j6TuLj4znzzHO45JL/q0u+fvjhO557bgnZ2VmceOJJ
-REf3avM1mDp1Os888yRVVVUEBwcDsHHjeuLi4unbtx8VFRV1ZY8Uz6pVK3jlleVkZu7D6XQyfvyJ
-3HHHfURHR7Np0wYWLLiTG2+8hRdffJ6CgnzGjz+Re+65n+joaJYu/RfLlv27mXuksWTJP3E6g6iq
-qmLcuOPrto0bN57Dhw+TnZ1FUlLfBvtlZ2cREhLCkCFD69YNGTKUmpoadu5MweFwtqk+IYQQ3VuX
-bakKFBdffCmffPIh5503j0ceeYAVKz7i8OECkpL6EhYWDsCPP37PU0/9g2uvvYHly9/g7LPPY8GC
-u9i+/ecm9aWl7WHBgjv59a8v5OWX3+SKK67hmWee5PPPVwNWsnL//fcyb958li9/g3nzzmTBgrvI
-yNjHv//9H0zT5Kmn/sUll/wfhw8f5k9/uolTT53Cf//7Jn/84+28++5bvPrqcgAyMvZx991/YsaM
-2bz00mscd9xYPv74/Tadv6ZpjBkzlrCwMH788fu69V999SXTp89sUPbw4YJW4/n55608+uiDXHrp
-5bz22js8+ugTpKbqvPzy0ro6SkpK+PDD93jkkYUsWfI8O3em1G3/zW8u44MPVjZZ3n9/JaNHjyEv
-7xDBwSF19wUgJqYXpmly6NDBJucWExNLVVUVxcVFdetycg4AUFh4uM31CSGE6N6kpeoo/fa3V9Cv
-XzLvvfcWn322kk8//RhN0zj33PO5+ebb0DSNl19exiWX/B8zZswG4KyzzmXnzh288cYrPPjgow3q
-e+21l5k7dx7z558DQGJiEtnZmbz++n+ZNWsO7777FlOmTOPCC38DwEUXXUplZSUVFRX07Gm1jEVF
-RRESEsIrr/yHkSNH89vfXlFX17XX3sDixU9w6aWX89FH7zNkyDCuuOJqAC699HI2btxATU11m66B
-ptmYPHkaa9euYerU6Zimydq1a3jyyWd57bWX68q9887/Wo0nKCiIO++8j9NOOx2A+PgEpkyZRlra
-nro6TNPkpptuYejQYQCcdtoZ7NhhJachISGEhIS0GGdlZSXBwUEN1gUFWf+uqalpUn7UqNEkJvbl
-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
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[8]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;allele&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">to_frame</span><span class="p">()</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s2">&quot;scores_auc&quot;</span><span class="p">,</span> <span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-<span class="n">scores</span><span class="p">[</span><span class="s2">&quot;size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">scores</span><span class="o">.</span><span class="n">allele</span><span class="p">]</span><span class="o">.</span><span class="n">values</span>
-
-<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Mean AUC over all models&quot;</span><span class="p">)</span>
-<span class="n">seaborn</span><span class="o">.</span><span class="n">barplot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s2">&quot;allele&quot;</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="s2">&quot;scores_auc&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">scores</span><span class="p">,</span> <span class="n">orient</span><span class="o">=</span><span class="s2">&quot;h&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">)</span>
-
-<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Mean AUC over all models&quot;</span><span class="p">)</span>
-<span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="s2">&quot;size&quot;</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="s2">&quot;scores_auc&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">scores</span><span class="p">,</span> <span class="n">logx</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[8]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>(0.5, 1.0)</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-vZK0Djdl2GO7k4DX2V4JIGk+sNj20cC1raA6A9p+/g8piepq4Be2N9S4NcD/N1InbK+T9Lik2ZQl
-BYcDZ4/S14iIiIie1atJ61D92UvSnZTEcAg4A6CVsFbXARdJmmX7wWHttJYHbKQsBTjR9ipJ35T0
-Dcp61uW2v7yJviwCrqznL7N91wh9jYiIiOhpqYjVJQYGBoay5VVERMS219/fz4oVd5MPQ7fcllTE
-6tWZ1q6TOsgRERHPjPzNnRiZae0SzWZzaOJrMMeWmBz1s2NLZfw6V8aus02O8ctM65bKTGsPmzp1
-KvnH05kydp0t49e5MnadLePXe5K0dolms0m+s9WZMnadLePXuTJ2nW1yjF+S5mdSktYuMTg4SKPR
-mOhuREREdL2+vj6WLFk60d3oOT2TtNZKVLcCx9i+uu34t4Fv2j5xG19/T+B+4A22r63HpgAfBPYB
-HgPeZPuBtnMuBFba/shY7TcaDbJ7QERERHSr7Sa6A8+wlcAxrReSXgjs8gxd+wTgEuDUtmN/DOxo
-ey5wJqWiFpJ2l3QD8PpnqG8RERERk1rPzLRW9wLPlzTD9jpKydbPAM+TdCpwFCWJ/RlwJHAcJXHc
-mVKa9VLgCGAv4Azbn5f0Y9t7Aki6Crjc9m0jXHsBcADwL5JeYPt7wP7AlwBs3yHpZTV2V+As4NVb
-/TcQERER0YF6baYVSinWo+rzVwBfB6YCM20fansOsAPw8hqzq+3XAhcAi2wfBZxCmTmFcawCl3Qo
-cJ/th4GPA4vrW7sBj7SFNiVtZ3tVrYyVFd4RERER9N5M6xClZOqHJP0AuI2SGG4ENtSZ0vXALEri
-CnBPfVwDfL8+/zmwU33enlhOAZD0Xsos6hBwKLAQmF0/8t8R2LuWf10LzGg7fzvbG7fOrUZERER0
-j15LWrG9StJ04DTKOtJ+yoznEbbnSNoZ+BZPJaNjzaRuL2kX4EnKsgFsv6v1pqTdgX1tz2479mHg
-eGA58EfAP0vaD7jv6d9hRERERPfpuaS1+hywwPb9kvqBDcB6Scvr+z8CnjvOti4BvgE8AKwa4f2/
-oCxJaPdR4JOUJHdQ0u31+AnD4iZ6A7qIiIiISSFlXLvEwMDAULa8ioiI2Pb6+/tZseJu8tWTLZcy
-rj2sr69vorsQERHRE/I3d2JkprVLNJvNodWr1090N2ILzJw5nYxd58r4da6MXWebHOOXmdYtlZnW
-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
-"
->
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-62nBXREREelkHdXPqAV3RUREpJN1VHCbvyyIFtwVERGRTtLSrtKNpgV3RUREpJN1VHDTgrsiIiLS
-yUIf3DSTVERERLpF6IObZpKKiIhItwj95ATNJBUREZFuEfrgVj9z1PM8crMlHn70NEefvoDrLbln
-vYiIiEiohL6rtH4maW62xNAVv+KmblMRERHpNKEKbq7rcfTpC9dMRKiGs4cfPd1wf3WbioiISCcJ
-VXB77Otnl5yIsG8wU7u9eiwiIiLSKUIV3F66NNlwPL+ipgV4RUREpJOFKrhdv6uPp0+N1I7nV9S0
-AK+IiIh0slAFt7e8+jqmpmZVURMREZGuFKrgFomooiYiIiLdK/TruImIiIh0CwU3ERERkZBQcBMR
-EREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQ
-cBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERER
-kZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3
-ERERkZBQcBMREREJCQU3ERERkZCIbXYDNovreRw7fpGhkRn2DWa47/BuIo6z2c0SERERWVSogpvr
-ehx9+sK6hK1jxy/yhafOA3BqaByA19+xZ93aKiIiIrLeQhXcHvv62XULW0MjM0sei4iIiLSbUI1x
-e+nSZMPxWsLWvsHMksciIiIi7SZUFbfrd/Xx9KmR2vFawtZ9h3cDNHS7ioiIiLSzlgY3Y4wD/D5w
-BzALfNBae6bu/KuB3woOLwHvt9YWF3u+t7z6OqamZtclbEUcR2PaREREJFRa3VX6biBprb0X+GXg
-Q/PO/yHwI9baNwCfAw4s9WSRiMN9h3ezbzDD0MgMx45fpOy6HH36Ag8/epqjT1/A9byWvBERERGR
-zdbqrtL78QMZ1tonjDH3VE8YY24BrgI/Z4y5Dfi0tfb0ck947PhFHntyiJl8ma8+d5HPfPUl8sUK
-iVgUe24M0OxQERER6Uytrrj1ARN1x2VjTPU1twOvA34HeCvwVmPMG5d7wqGRGWbyZaZyRfKFCiPj
-s+Rm/eOZfFmzQ0VERKRjtbriNgn01h1HrLVu8PNV4Hlr7SkAY8zngHuALy31hIcObuNr3x7GcRzA
-w4n467g5jkPZdTl0cBuDg71LPUVX07VZG12/1dO1Wxtdv7XR9Vs9Xbv20urgdgx4J/BXxpjXAs/U
-nfeIONQAAAqySURBVDsDZI0xB4MJC68HHlruCQ/fsJXbrh/g+JmrxKIOpbJLPBYhEnG47foBDt+w
-lZGRqZa8mbAbHOzVtVkDXb/V07VbG12/tdH1Wz1du7VpRehtdXD7JPCAMeZYcPygMea9QMZa+5Ax
-5seAh40xAF+x1v7dck8YcRwefMchjh2/yLnL0+QLZXpSMfYPZrVtlYiIiHS0lgY3a60H/NS8m0/V
-nf8ScGSlz6ulPERERKQbhWrnBBEREZFupuAmIiIiEhIKbiIiIiIhEaq9SgFcz+PY8YsN215pQoKI
-iIh0g9AFt2PHL/KFp84DcGpoHNBOCSIiItIdQtdVOjQyg+d5TOdKjE7O8sTJYe1PKiIiIl0hdMFt
-32CmtuVVoVhheDTPseMXN7tZIiIiIi0XuuB23+Hd7BzoIZmI0ptOkE3HtT+piIiIdIXQjXGLOA5H
-Du1kZrZcu23fYGYTWyQiIiKyMUIX3MCvugENM0tFREREOl0og5u2vBIREZFuFLoxbiIiIiLdSsFN
-REREJCQU3ERERERCQsFNREREJCRCOTlhJbS3qYiIiHSKjg9u//j0Bf72Ky9TLFdIxKJ4nscb7ty7
-2c0SERERWbGO7yr92rcv17bHmsoV+dq3L292k0RERERWpeODm4iIiEin6Pjg9ppDO+lNJ2p7m77m
-0M7NbpKIiIjIqnT8GLf7D+/GQdtjiYiISPh1fHDT9lgiIiLSKUIf3LTch4iIiHSL0Ae3Y8cv8oWn
-zgNwamgcQBU2ERER6Uihn5wwNDKz5LGIiIhIpwh9cNs3mFnyWERERKRThL6rtDpLVLNGRUREpNOF
-Prhp1qiIiIh0i9AFN80iFRERkW4VuuCmWaQiIiLSrUI3OUGzSEVERKRbhS64aRapiIiIdKvQdZVq
-FqmIiIh0q9BV3ERERES6VegqbpqcICIiIt0qdBU3TU4QERGRbhW64KbJCSIiItKtQtdVqskJIiIi
-0q1CF9y0xZWIiIh0q9B1lYqIiIh0q1BV3B554mVOnrmqPUpFRESkK4UquH32Ky9SKrtaBkRERES6
-UqiCW5XneTxxcrhhgoKqbyIiItLpQhncZvJl/2u2rOqbiIiIdI1QTU54+703cMu+fnYO9JBNx2u3
-axFeERER6QahCm4PHDnAe996M0cO7Wy4XYvwioiISDcIZVepFuEVERGRbhTK4KZFeEVERKQbtTS4
-GWMc4PeBO4BZ4IPW2jN1538W+CBwObjpX1hrT7eyTSIiIiJh1eqK27uBpLX2XmPMEeBDwW1VrwI+
-YK19qsXtEBEREQm9Vk9OuB/4HIC19gngnnnnXwX8sjHmqDHm/2pxW0RERERCrdXBrQ+YqDsuG2Pq
-X/Nh4CeBNwH3G2Pe3uL2iIiIiIRWq7tKJ4HeuuOItdatO/7v1tpJAGPMZ4C7gM8u8XzO4GDvEqdl
-Obp+a6Prt3q6dmuj67c2un6rp2vXXlpdcTsGvB3AGPNa4JnqCWNMH/CsMSYdTGJ4M/DNFrdHRERE
-JLQcz/Na9uR1s0oPBzc9iD+uLWOtfcgY8z7g3+DPOH3MWvsrLWuMiIiISMi1NLiJiIiIyPoJ1ZZX
-IiIiIt1MwU1EREQkJBTcREREREIiFHuVLrd1VjczxsSAPwGuBxLAfwZOAH8KuMCz1tp/Gdz3x4Gf
-AErAf7bWfsYYkwL+AtiBv3zLD1trr27w29h0xpgdwDeAtwIVdP2aEiyc/U+BOP7f0S+ja9eU4O/u
-n+H/3S0DP45+95oS7MTzG9baNxljbmSN1yxY9eC3g/s+Yq391Q1/Uxto3vW7E/gd/N/BAvz/7d1t
-iFRVHMfxr2lKxaqUPZAVSdEvhAitLE1dexBNgogCHzDJCkpMIjHLwiCKyggzEyyUwESTHjBMMLOS
-WvOFRkZE+bcCfRNYVuITFML24pzRcd3d2U13Z+/O7/Nm9p65s9z5MXfmf+859x6mRcQfzq955dmV
-tU0BHo2IEXm5Q7Mryhm3Y1NnAfNIU2dZMhXYFxGjgfHAElI+T0dEPXCGpLskXQjMAobn9V6SdCYw
-A/g+v34lML8ab6Ka8g/om8CR3OT82kBSPTA875djgMtwdu0xAegZETcDzwMv4vwqkvQEsAzok5tO
-R2ZLgUkRMQq4UdK1nfeOOlcz+S0CZkbErcBa4Enn17xmskPSEOCBsuUOz64ohVulqbNq2Xsc/wD0
-JB01DY2Ihty2ARgLDAO2RMTRfNPjn0lnMI9lm9e9vbM2vAt5lbTz/Ab0wPm11TjSvRg/AtYB63F2
-7bEL6JV7FPqRjridX2W/AHeXLV93CpndJqkO6B0Ru3P7Rrp3lk3zmxgRpXus9iL1ajm/5p2QnaTz
-gBdItzUr6fDsilK4VZo6q2ZFxJGIOJw/AO8Dz5CKj5KDpPzqODHDQ6Qfi/L20ro1Q9L9wO8RsYnj
-uZV/tpxfywaQ7st4L+lochXOrj0OAYOAncBbpO4q77sVRMRa0gFqyalkVmo70OR/9Du9W911NM0v
-IvYCSBoBzARe4+TfXOfHidnlGmQ5MBs4XLZah2dXlOKn0tRZNU3SpcAXwIqIWEMa61FSB+wnZdi3
-SfvfnJhtad1aMh0YK2kz6ajoHeD8suedX8v+BDbmI8tdpCP18i8dZ9e6x4FPIkIc/+z1Lnve+bXN
-qX7fNS16ay5LSRNJY1Qn5HGSzq+yocCVpN6ad4HBkhbSCdkVpXBrceqsWpf70zcCcyNiRW7eIWl0
-/vsOoAHYDoyU1FtSP+Bq4AdgKznb/NhADYmI+oi4JQ80/Q64D9jg/NpkC2kMB5IuBs4BPs9j38DZ
-VfIXx4/A95O6qXY4v3b79lT214g4CPwjaVDuth5HDWUpaSrpTNuYiNiTm7fh/FrTIyK+iYhr8tjA
-ScCPETGbTsiuEFeVkgZMjpX0dV6eXs2N6WLmAf2B+ZKeBRpJ/e1v5AGRPwEfRESjpMWkH9sepMG8
-/0paCqyQ1EC6omhKVd5F1zIHWOb8WpevlBolaRspkxnAbmC5s2uTRcDbkr4iXZX7FGm+ZufXPqdj
-f30EWE06mfFpRGzv9HdRBbm773VgD7BWUiPwZUQ85/xa1eKUUxGxt6Oz85RXZmZmZgVRlK5SMzMz
-s5rnws3MzMysIFy4mZmZmRWECzczMzOzgnDhZmZmZlYQLtzMzMzMCsKFm5nVHEnrJV1U7e0wM2sv
-38fNzMzMrCCKMnOCmdn/ImkgsAo4mzSv5WPAGqCeNNvDeNKd0PsDAyKir6QbgIXAWcA+4OGy6YDM
-zKrGXaVm1t09CHwcEcOAucBI8pQ1ETEvIoYANwF7gel56qRlwOSIuJ5UwC2vypabmTXhws3MurvP
-gDmSVgEDgSWkOQTLLQc2R8SHwFXAFcA6STuAl4HLO29zzcxa5q5SM+vWImKrpMHAncBEYDplk0RL
-mkPqIp2Wm3oCv0bE0Px8D8AXMphZl+AzbmbWrUlaAEyLiJXALGBo2XPjSV2pk8teshM4V9LIvPwQ
-aYycmVnV+apSM+vWJF0CrAbqgKPAAuAVYAywiXSGbX9+bATuAS4AFgN9gAOkwm93J2+6mdlJXLiZ
-mZmZFYS7Ss3MzMwKwoWbmZmZWUG4cDMzMzMrCBduZmZmZgXhws3MzMysIFy4mZmZmRWECzczMzOz
-gnDhZmZmZlYQ/wGJNgKxqRN/kQAAAABJRU5ErkJggg==
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[9]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;hyperparameters_dropout_probability&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">to_frame</span><span class="p">()</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s2">&quot;scores_auc&quot;</span><span class="p">,</span> <span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-
-<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Dropout&quot;</span><span class="p">)</span>
-<span class="n">ax</span> <span class="o">=</span> <span class="n">seaborn</span><span class="o">.</span><span class="n">barplot</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="s2">&quot;hyperparameters_dropout_probability&quot;</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="s2">&quot;scores_auc&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">all_models_df</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[9]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>(0.5, 1)</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[10]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">count_impute</span> <span class="o">=</span> <span class="n">selected_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;allele&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">hyperparameters_impute</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span>
-
-<span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span><span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">alleles</span><span class="p">],</span> <span class="n">count_impute</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">alleles</span><span class="p">])</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="mi">10000</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">16</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Number of models (out of 16 total in each allele&#39;s ensemble)</span><span class="se">\n</span><span class="s2">that use imputation&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Training points for allele&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Num models&quot;</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[10]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>&lt;matplotlib.text.Text at 0x11e086dd8&gt;</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[11]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">impute_cums_df</span> <span class="o">=</span> <span class="n">selected_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;allele&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">hyperparameters_impute</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">to_frame</span><span class="p">()</span>
-<span class="n">impute_cums_df</span><span class="p">[</span><span class="s2">&quot;size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">training_sizes</span>
-<span class="n">impute_cums_df</span> <span class="o">=</span> <span class="n">impute_cums_df</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s2">&quot;size&quot;</span><span class="p">)</span>
-<span class="n">impute_cums_df</span><span class="p">[</span><span class="s2">&quot;cum_mean&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span>
-    <span class="n">impute_cums_df</span><span class="o">.</span><span class="n">hyperparameters_impute</span><span class="o">.</span><span class="n">cumsum</span><span class="p">()</span> <span class="o">/</span> <span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">impute_cums_df</span><span class="p">))</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
-<span class="n">impute_cums_df</span>
-<span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span><span class="s2">&quot;size&quot;</span><span class="p">,</span> <span class="s2">&quot;cum_mean&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">impute_cums_df</span><span class="p">,</span> <span class="n">fit_reg</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">logx</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xscale</span><span class="p">(</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;IEDB Measurements&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Fraction of models using imputation&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span>
-    <span class="s2">&quot;Fraction of best models for alleles with &lt;= x measurements</span><span class="se">\n</span><span class="s2">&quot;</span>
-    <span class="s2">&quot;that use imputation&quot;</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[11]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>&lt;matplotlib.text.Text at 0x11977ab00&gt;</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[12]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">train_size</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_dropout_probability</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">x_jitter</span><span class="o">=.</span><span class="mi">015</span><span class="p">,</span>
-    <span class="n">y_jitter</span><span class="o">=.</span><span class="mi">015</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Dropout rate of selected models&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Training points for allele&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Dropout rate&quot;</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[12]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>&lt;matplotlib.text.Text at 0x11f7f0c50&gt;</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-wM823LolEjK0oCTXdiCWKO8DWQ6W4+VDvCVybQeyede5+P/3yZveCooFE52JmSzf/MFFTx7FXZ7X
-xc25DI3O1uRQjrx8hbFYOnAmlTAth+lEpupA+oMTE0XbRwfH+eG5GN0d0WCQ7+tpDX72t5dKpdnI
-8FiCyXianOeQh8cSSz5vJXb2tPLCqQlypkXetIPPxnEcLk+m+Nxjp5c8I1pvYT+FYi2wkEM5JKV8
-R+ELUsqcEOI/AmtKHDIa1nFwcymVQlbLxdA1Qsa8gyp1HtWwK9QRzySzNEfd0JRtOzQVSM0P9HbU
-dN6RiTnaWsIkUrlgtlTx+g5cnkxVfK+S+ORcxnW8WzqbOXpijB2bW+nb0kpzU4hdPW3ce2h7TfYV
-Umk2MjSaCK6VN22GRuvjUAq9q65rOLYD7n/MzOV4/IURmiIGtuPwuhpnK42aTSkUG5mFHEp5WRMg
-pXTWmvRKrQN9LRQ6Ect2lnXu9tYwiVS+aBYRDs3nKaJhg327u2hpCtPX08obbt/N1NTiVdn+zGGx
-deABqlUiN4U1Mvlyp5LJWSRTeZKpfDDo3/+qncseRAvDUMlUnm8/P1K2MFgskeW3P/Z9phM5utoj
-/OF776ApVEtar5hLkynaWsJAmInpFKlssey/ZTvMZUy+8exwzQ6lUWE/xbVBLbnKjchCd7jQo/6G
-asMzdI2ot/iUpuGpAi9vtmPoGm+7ezfX9bajaW6orCVqsGNLK20tYbo7mmhvjdDSFObhN97Iaw7v
-QNc1bMfhyWOX+dxjp3ny2GXsCjGtew9tp29LK2alpFEJ3e3l4pIAt9ywpeLr0bDOtu5mWpvnB/Sr
-GUT9MFkylSOezDIeT5P2pGj89SHjiSzj8Qx5y2Y8nuH3/+aZq7oWuM6jmruNVVjpsho7NjczGU9z
-eXKOyXiaHZsrKz4rFJX41NdP8oOT44zGUvzg5Dif+vrJ1TZpRVjocfCgEOJchdc1YOkxkDWGrs3P
-GuxlzkQq0RQxOD86h+lAd3sTOdPi0HWbuXFXJ094IRQoz0s89fIVvnpkiGzexHHg6Ikx7ty/rSh2
-r2saTdEQdg2OrtrCW60tUVqbQsEsxOfQdd3sH9gchHkq2bgU/DDZl586h2U7WDkrcCShkLvoV6kN
-U0solCjk7pt7OXUxzsXx5CKzt9pzIKdHZkhl3d+FadmcHpnhda/qW5Z9paj8zMbn4nhywe2NykIO
-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
-CcX/A806CSYCWac5AAAAAElFTkSuQmCC
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[13]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">train_size</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_embedding_output_dim</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">x_jitter</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
-    <span class="n">y_jitter</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Embedding output dimensions of selected models&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Training points for allele&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Embedding output dimensions&quot;</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[13]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>&lt;matplotlib.text.Text at 0x11f7e65c0&gt;</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[14]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">train_size</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_layer_sizes</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">x_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
-    <span class="n">y_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Hidden layer size of selected models&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Training points for allele&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Hidden layer size&quot;</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[14]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>&lt;matplotlib.text.Text at 0x12214b940&gt;</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,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
-AElFTkSuQmCC
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[15]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_embedding_output_dim</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_layer_sizes</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">values</span><span class="p">,</span>
-    <span class="n">x_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
-    <span class="n">y_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Hidden layer size vs. embedding output dims of selected models&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Embedding output dimensions&quot;</span><span class="p">)</span>
-<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Hidden layer size&quot;</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt output_prompt">Out[15]:</div>
-
-
-<div class="output_text output_subarea output_execute_result">
-<pre>&lt;matplotlib.text.Text at 0x12214b710&gt;</pre>
-</div>
-
-</div>
-
-<div class="output_area"><div class="prompt"></div>
-
-
-<div class="output_png output_subarea ">
-<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYkAAAEZCAYAAABiu9n+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
-AAALEgAACxIB0t1+/AAAIABJREFUeJzsvXeYHVd98P+ZmVv37q6klVa9uICPZGK5YQt3Y8CEFhKS
-/EggCfBSUiCk8r78SCPtJdUEkrxUU1IgBN4QTIxpLkGWsWVbtmQj6Ui2rLLSane1fW+fmfP+cWbu
-zr177+5dafuez/Po0d4yM987c2a+51uPpZTCYDAYDIZ62PMtgMFgMBgWLkZJGAwGg6EhRkkYDAaD
-oSFGSRgMBoOhIUZJGAwGg6EhRkkYDAaDoSGLSkkIIXwhREfNe28TQnwz+PuPhRC/UGe71UIIv8E+
-f0cI8fnZlHG+aHQ+FjvRa34B+5hqTHwu+PszQog7LuRYF4oQ4tNCiKsvYPt2IcT9TX73m0KIXwr+
-3ieEaD/f404XIYQthPiGEOKwEOLXZmB/LwghrjnPbS8SQnztPLab0efJFMd6Rghx6xTfueB7JXYh
-G88DjYo6FICU8o8afG5Nsu1k+z0fFkzhySTnYylwoed5qjEBgJTy3Rd4nJngVcAnL2D7DuC66W4k
-pTyvB+wFsBn9WzNSyvm+jy4CLjvPbedb9louSJ7FpiSsyT4MNPgzUsq7hBBvAv4MyAJPRL4TA/4e
-eCXQA/QCQ8Fn7cDHgB8D4sD9wAeklL4QIg/8BXoQbwA+LqX8WCMZhRAtwCeAF6Nv0lHgLUAB+BGw
-SUo5GnxXAj8DnJjk+AXgG8BO4K1Syn2R33Qz8Ldoy1ABH5FSfj08H8DDwKeCzyxgK/CslPI2IcQO
-4O8CGZ3gd32h5ry+CvhbKeXO4PUK4AXg4uA3/TJQDH7bL0spDze4ROH+bgD+EmgBfODDUspvCSHe
-Bvw0kEbfpCeBfwTeF5zHu6SUHw12s1EIcR+wETgOvFtK2TvFNTyfMfFg8NmTwb6+BewCVgG/L6X8
-dyFEGv0QfxkwCBwCkFK+o+Z3x4C7gFcALvAY8FtSyqwQ4gXgp8PrGr4G3hT8xn8Nzs9fAgeBlwKr
-gX+RUn5YCLENfU3bgu2jrz8HtAgh9gHXRh/AQogNwBfRY/oksDbymQ+sAd4wxXX5aHDPrQP+KZAL
-4FtSyj+kBiHELcBfBfsrAX8A7AHuC67Zk0KIn5ZSvhDZptEYjwfn5Fb0+H0KeL+UcqzmmG8Afi/Y
-fw49Jh4VQjjAXwOvA8rAI8Hv+gzBGJNSvkYIcSP6/g/H7B9LKe+dbOzUHH+qsf1RKeVdwXf/APi5
-QJ4jwK9LKXuCe/VzwT5kIEu4/1r5Piyl/FaNDG8KzoEX/PuAlPLhWllrWVTupoAHAzN4nxDiKeBP
-ar8ghFgL3A38lJTyOvTDN+S9wIuA7cCd6AdmyEeBJ4JtrgE6gd8OPksCvVLKm4GfBf5CCJGoI194
-A74GGJRS3iil3I5+KL1PSnkK+D7w1kDWO4BzUspnpjh+AviGlHJHVEEEfBj9EL8OeCdQ5R6RUu6V
-Ul4dzAzfjVZY7wpukK8C/yvY9nbgA0KI62u2/x6QiZjuPw98M9jPR4FXSyl3AZ8Gbq5zTioIIVYC
-nwd+QUr5UuCNwCeFEJuDr9wMvE1K+WJgHfBmKeUd6Jv4zyO7ejHwa1LKK4Fn0YqBRufwAsZElEuA
-+4Lf+kH0wwngDwFHSinQk4irqT97+330w/iKQO7wAdUQKeXvA2eAt0gp9wZvbwVuAK4F3iyEeG3w
-fu0xw9fvAHJSymvqzND/EfihlPIK4P3oc1C7PUx+Xf4s+M67geeD63or8CIhRFv0YIEr9qvoB99V
-wNuBf0ErltcC+UDOF6jmw9Qf4x8EylLKl0oprwa60Q/L6DFfhB47r5FSXoue1PxHoNzfi75eV0gp
-fwxoQ9/f7wp+y2uCMfs5qsfsJ4Ix2+zYaeocCiHeAbwarcyvQk8oQ/fVvwKfCt7/GLAt2KaefNF7
-KuSvgF+VUl6PVsy3TyJrhcVmSQDcLqUcDF9ENHSUm4EDUkoZvP4U4w+YVwBfklJ6QE4I8a/AFcFn
-rweuE0K8K3idQmvlkHsApJT7AgWRQc+EoljBd/6vEOKYEOJ96EF0O3qWAvB/0A+YTwLvCV43c/xG
-Wv8rwD8KIX4CrYA+VO9Lwc3yH+gHztFgZnIp8DkhRGilpdA3zd6azT+HvqH3oR86vxvMzv8d+KEQ
-4l7gu8CXGsgYcgP6QfmfkWN6aAsJ4HEp5Zng7xeCfQI8DyQDCw3g+5EHyd0ReeudQ8X5j4koJSnl
-fcHf+9DWF+gJwW8BSClHhRBfbLD9a4APSSnDa/r3wNfrfK8eUSv6U8E+hoUQX0U/VH7U5H5qeSXw
-OwBSyueFEA80OGYz1+XbwL2BFfN94IOhtRxhF3BUSvlEcMyDQog96PvjoUnkbDTGXw+sEELcGbyO
-o2f0UV4FrAfuj4w5F31fvgL4ZyllKZDn5wGEELdFtp9szDY7dqC5c/jjwOellIXgs48BPcEkZyfw
-z4Gcjwghnm1CvihfDr5zL/A9tNKYksWoJCZ1OQUoqq0kr+az6D7cyN8O8LPhgyRwq0Qf0vkmZFHB
-tr+Knln9PXoGMIA2M5FSfl8I0RJYEbcAvxRsa09x/CoTOkRK+ZkgOHUn+kH0YSFE1UANBtm3qDYx
-HbS1c03N9yaYy+jZzD4hxN3ACinl7uDYvySEuBz9sPlf6FneT9aTM3LMg1LKGyLH3IA2038B7baK
-Um6wn+g1tSPfq72GYeD1FVRfr2bHRJTohCC6jTvJvqPUWu4O+qFWT4Z6Vmo9+ezgeLVjfrLto/g0
-/u1RS2LK6yKlfEIIcTF6LNwBPC6EeKOU8tEaeWuxGT8PdWkwxneiz+FvSCm/AxU3b6pmcwe4P1QA
-wfc2oy00N/o7g/Ff7zrVG7N9aKukmbEDzY3teseOPqfrjbOp7ikApJR/ENy/d6InfB9EW9uTshjd
-Tc2wG7g88qB8e+SzbwO/JIRICiFSwJsjn32HwL0jhEiiLYf3NThGI2UVvn8nekbweeAo2q/rRL73
-CeCzwL+Gs5hpHr9CMBO7Rkr5T+hBuwLtMw8/zwD3AndLKb8S2VQCBSFE6PragnbdXFt7jGAGtBc9
-A/9s8P3VQoiTQL+U8uNod0rt7KWWR4EXB35phBBXoc/Pxql+J9Xn/OURc/pX0AoQJp7Db6JdAruB
-l5zHmGh0/Cj3Au8QQljBQ+ot1Hc3fQf4FSFETAhhA7/G+GyyDx1nQAjxMvTMMMSl+iH6C8GxVgH/
-H3qcDAFxIUToLnpTzfbRsRfl22hrFiHEVuDlTfzeWsI43EeAP5RS3iOl/E20dVMb/H1Uf1WEv/Ul
-6InSg5Mds8EYX4k+p+8TQsSDc3o38JGazR8A7hRCiGBfrwX2o13I3wfeIoRIBNt/Ah0PcBlXtI3G
-7AaaHztTEf7u76DHUmgxvx/4byllL9pl/a5AhmsYt1imvKeEEI7Qca5WKeWn0WNvu9AxnUlZbEqi
-qSi9lPIc+kb9khDiCQLfXcCn0EHIZ9ED81jks/ejA3zPAE+jB1JokjXy9zaS8W/QD4R9aNPuSbR5
-G/JP6GyOT0Xe+41pHD/KB4A/EUKEwdUPSylPRrb5dfSA+kkRxHKEEPuklGX0rP9dQoj96AH/e1LK
-HzY4zmeAq9CBTqSU/cCfAg8E5/kjaEsCIcQvCyE+XbuD4Nr8NPDXQoing329NYjV1DLZOT+AdpM9
-A2whcJnQ4BpewJhQDf6O8hH0LPEA+qHfgw6O1vJnwNlArh+hZ4i/GXz2v4DfDMbLO4kE1oH/BL4i
-hHhl8DqNVtiPAP8gpXxISjkC/E/g20KIx6i2ZrqBp4QQBwPFEuV9aOX5I/T1faqJ39vouvwdcJUQ
-4oAQ4nH0efxy9IvBmPlZ4B+EEAfQ8Yi3Symfn+KYjcb4n6ITF55CXz/F+FgIsx4PohXhvwkdx/xj
-4A1Syjzj1/5J9Fg5DXwcfX08IcSjU4zZycbOZDQ6h3ejFdfe4Jpcxbg18Bbg54N79ffQCQxN3VOB
-O+w30OP/SeDfgXcEz4BJsUyr8PlBCPHz6EDT6+ZbFsOFIYR4MzAipbwv8An/X+A7UspPTbHp+Rzr
-QeDvpZT/MdP7NhjqMeuWhBBiVzCwo++9RQjxSOT1u4UQjwshHhFCLPmHZnA+fp/xGY9hcfMs8HvB
-LPVZ9Gz0s7N0LDOrM8wps2pJCCE+APwiMCalvDF472p02l+LlPJGoXOrv4cOoLSgM3iubcYMMhgM
-BsPsMtuWxHPAT4UvhBCr0X7Z34h853rgYSmlG/hVjzJ18NNgMBgMc8CsKgkp5dcJUsKCzIHPojNP
-spGvtQPDkddj6MwFg8FgMMwzc1kncQ06u+cT6OyMHUKIu9AZAdEmYm3Uz9OvQimlLKvZDD2DwWAw
-BEzrwTlXSsIKKiyvgEpfmS9LKX87iEn8mdAVzGl0efuzjXcV7NCy6OurLeZceHR2thk5Z5DFIOdi
-kBGMnDPNYpJzOsxVnUTD6LiUsgedl/wwQbl9pLjMYDAYDPPIrFsSUsoTwI2TvSelvBtdRGIwGAyG
-BcRiq7g2GAwGwxxilITBYDAYGmKUhMFgMBgaYpSEwWAwGBpilITBYDAYGrIYFx2aNr5S7DnQTVdf
-ls2dGW7auQG7iUI8Xyke3n+GvYd7Abh+xzpuvGI9P3zmbMN9hds8erCHEz2jKAWb1rTwgbdeQ8Kp
-39K/3nFublLGpUy96zaXx1ru53+h4Lo+d//XQU72jJJMOGxb387Wta0Nr1F4LU/1jpEvugyOFsGC
-67ev5cadGya9fxvuq2+MfMElnYyxZZJjL0WWhZLYc6CbB546jVKKJ4/08u29J1nZmmRVa4KWdJzN
-azJgWXQFA2FgtIBlWazMJDh8aoixXBmlFM91DfOl70k8H2KORcyxeexQD7t2rKsMmj0HuvnmIyfo
-HylUjv/8mVH+6l/2sWF1hlO9Y2xZ28qLNq/g9LksuXyZZ1/oZySnF7SygJ6BHBZwy5XNrMOztHB9
-ny9+6zCnesdIxG1Kro9lWRzp0kX4b3ple9X3Gz3cp/vQD8cIUDnWcjz/C5F/+OrTPH64F89X+L6i
-uz/H00djPHqwh462JAOjRYbGiqxsTbBrxzqwLB586jRjuTJDY3oxOMe26BnIc+TUEPuf76fs+sRj
-Np5S3HrlxrqTkT0HunnsUA89A3mUUozly7S1JDh6WncRWi7jY1koiVO9Y4zlymQLZUplvRZLz0AO
-X+nBo5TCsS0ScYdCycP3VWUtSdsG3w+rAcdrAj1fUSz7HDo+yImzo3x77wlWtaVQwFh+YgPbY92j
-vHB2FNuyOH0uy9PPnSOViDEwWiDaiFcBg2MlTvXVXal0yfPFbx3m0YM9KEApRdyxSSYcEjGnck6i
-CiBXKHOqb6xKkdy0cwOfv/cQB471k4g5PCl7JyjzkHBf9z/ZRbbg0tqiF+rq6ssa62IB4CvFgef6
-cH2F8vWNUih5lF2fbKHMkVM+SimUgt7BPL2DBdZ1pAEouV5VFW+2UGbv4V5cT2EBZdfne4+fwrGs
-CRMEgAf2dXHmXA7X87EtC8exKLkeEKerL9p+bmmzLJREvugyki3iempC6bcXDDzfU5S96uVpFeD5
-TIoCsgWXbMGlZ7BA3LEou/U3Ugq8QCPkCi6Fkke9Tu2+r8gXJlsqd+ly6OQgvj+ukkvBuSyWvMo5
-ic76B0YK+L7Cti0SMYeTvaMcuXeIxw/34no+Y5RBQa7oVpT3LVdurCiAcKYIiqGxEtlCmUwqzqbO
-jLEuFgB7DnTr+8Qfv3c9X+Erhe3reyoYLvi+olgev2/ijo1SChSUlcLyxqd54f+Fksdjh3oYGCmQ
-iDlk0rGKAugbylMOHgCeUviuorUlzliuzOlzY+zef2ZZTByWhZJIp2Ik4s4EJTDT+L6i6Kumumdp
-BdR4LY90cllcmgkk49VxG9uiYkmE5yS0DEuuRzGYVcZjNsWSx4mzo/QM5oMHyfh+yq5PNu9WHgAP
-H+jmm3uOM5Ir4fuKZFzncFSuiVJ0nategXQ5zR4XCl19WTpXpSmWvMqEAcIJV/V3VfD+9dvXYlkW
-jx7soVj28HxF2fVJJRxKZY9yZMNy2eVsf45iSY8lgM2dGQCK5erJnh14HYplj7F8uTKBWOoTh2WR
-3bSlsxXbnjttf6HLOFkWbFnbOiOyLDbuvG4LLakYsZhNImazsjVJR3uK1pZ45ZzkCtrXnM2XKXs+
-MccimXBoa0lQKHl4nl+xRkC7DbXFV2bTGr2+/N5DPYzmSriej+crCiUP27awgJFcie88fooNa1qq
-ZAsfHoa5wfV9Xugepqt3DF/pyddkk3bLgkTMBsvipp0b2NzZypqVadZ1tGgF4fpE704LKJR1zKut
-JUEy4bBuVRoFlZhY7f5dT1UmHLA8Jg7LYrp6wxXrufeHxxnNLY7F7hIxmxuuWD/fYswZUd//pjUt
-/OzLX8Tp4G8si9M1AcXBbND/0bKwlMJxbDraUwDEHYti2a9S1AogiDtFnzKeryruPl+B8vzK656B
-HM+dGuKOqzfNSXaVYSJf/NZhTvZoBeEFLkUYd9nWopR2T97z8At8Z+9JAEayJYolD9fX17/WeHds
-HWdIxLQFW3I9HgwshHQyhuf5eL72EtiWRansB/FIl1biy2LisCyUxA+fOUuuuHh8/MWyzyMHurn1
-qk3zLcqsEVUM2XyJw6eGKLs+iZjDG27cxptf8aK6GSffe+wEPQPaDRSzLcBiVVuSyzavZHNnhpO9
-Y3T1ZVGuX+XHBh0I7wqC39dtX8uRUzrOYFnQknTIFb3Kdy3Loqsvy7ve8JI5OR8GTXRcHDoxGCSV
-2NiWIpOOsb4jw5lzWcby5bru2kLJI9sgnhf9vmVpS8JXkE44DGdLWJbFqd4xMqk4bZkErek4ybjD
-WL5ccWtalp50OLbNy6/auCwmDstCSXT1ZYOLvXgUxd7DvUtaSUSDwj0DOcquj2NbFEseew/3YjXI
-ONn9TDdWEPXRLgj996ZQkRzo5ulUnPJYsUZBQK7oceC5czqQXSiTiNt4no5mFss+iZhNKfBDK6WW
-rctvPomOi2LZw1fjPvHLt3Xwztdfjq8Un7/3EI8d6sGtCUz4DayMCeh4NomYzXC2hOspHFsrklzR
-pS2TmLDfMOZhWzoR4mjXMDcv8XgELJOYxKY1LYzmzBIVC4laX27trV37eVdftvJeJh0jlXCCzBbF
-uaE839xznD0Hurlp5wbElhXEYzaOU+3AtoC+4QIPP9PNvqPnAB2MtAI3RiYdpyUVIx6zuWRjO297
-7faZ+8GGKfGV4rGDPfQM5OgZyFVS020btq5r5RdfIyqWRjoV4/od61i7MkkiZhNzLBIxm7jTXOxR
-oa99Mu5gWTogDdr9FFqmWzpbGcmWGMuXq5SRr7T76cCxfvYc6J6NU7GgWBaWBJY1ZSrrQiIRs7lu
-+9r5FmNW2dyZqVgIjm3hWBa2bZEJbn6Lagsi9P0e6x4mm9fpw5Vgpm1Tcj26+rLYlkUmnWBdRwtK
-KfqHC+SLLpZl6foXpV0SlqVnhI6t50mt6TjrO1rYtKaVzZ0Zbpiist4w8+w50M2JnlGKpfH6Bh1G
-chgcLfHYsz0AFUtDKUV7Jkm+pBMVyq5Pa0uCgZFi08cM3dChokjEHV513RZuv2oTf/NvTzVMZw8L
-+5ZDPdOyUBJdfWOTZkUsJOKOTVtLnKW+fnfoy33sYA+9vo9CUXYVq9qS3HjF+soDOWyHcKp3jM2d
-Gbaub+fk2TMV/3KYSpyIORVFEiogy7JYvSJFImbTM5gnV3AjKa6QiDtBFpVDa0u8Umy350A3f/fv
-++kZyNPaEjc1EnNEV19W36dhOlqA5/uM5ko8dqiHjWsyKKXI5l2yhTJld7yYznF0wGB1ezLiQrJw
-bJ2VVBvCiFoPJaVwYg6pRGyCe8W2LDw1ntqu0DGNsusvi3qmZaEkcvkyXm1SdYCFbrFRbvD5XBP6
-VE8vg9Q6gLODOQql8Wyk42dH+cK9h8ikE2zuzLB5TYYHnz4DwNHTw/i+mpDdkko4vP7GbRXFE/4f
-9u5JJR3WrWrh0IlBBoM2DbZlcdH6Nl72kvVV1kLoEx8YKVTy5ltblleF7XyxuTOjs8uiHQgUgatH
-ceTUEMWSy2iuxEh2YuDa9XQWVMyxSSdjlMoe8ZjN+o4WBkYKDGdLeD6Vh722XOOUXI+YYxOP2bS2
-xDkd1Mdct30tJ86O4pXGExocx9JxCVunzS6Heqal/wvRbS4si7rVzQomBL/mE89XZAvukk+tC4vZ
-hsdKVfEI11M8erCHTDpOIuawdlWqart8ya0qVrQs9OzPsib0bMoXXbrOjT/cd2xbxeGTQ5WUx10v
-WV9RDF192UpTOIBEzCFXcCuxrE1L/HosBG7auYFHD57lhe7RSjyi5PqV+9P1FKfP5UjGncpsPnpP
-69m9R77oVtxBMcem7Cl2bOvgWPcwZ/vz41XXSjGSLZIICjjDNNjw3gvHWbQDgOcpsCAeuCmX+n0K
-y0RJNFIQIQtHRWg8z2fXj62bbzFmlbCYTdW5ML6CbL5M0fFIxO3KTQyw89I1PH20j+GxEr5SOiPJ
-9Xgs6Pe0N2izkUnHGBwtEndsLEvnwrekYrzhxm2cPperWA6hsiq5umdXeyZOqaxQSvuiK0WYzWbN
-GM4b27J42eXrdZubvEvJ9cjEdApq+KB2Pd1IzUK7icJWO6F3VlsRjq6kD6ujc2XSqRgvuWg1I9mz
-5ApuJVPJsi0sy2Lrula2rW9j69o2brhiPbv3n+GBfae1tRJxf4U93XQBpssiCnWeN8tCSbx0+1oO
-HR+cbzGaxvUV/3yf5J2vv3y+RZlVosVstfhKf76qLcmuHesqLqGfuP3F3PPQUR471MOJs6OUXZ9i
-yeP42RFO9IxScv0gQK3jFNnC+AOmdyAPlsWmzgyPHjzLt/eeZCRbohC4E8LK61TCIRHX1d6ZdAzL
-siouCMPsctPODRw5NcTTz/VRdlXFpWRFdLVtA552zTqOVal3SMZtXTCJTv5wXV0cOZorkS+4XLZl
-JY8dijZ31MV38ZjuNrx1bRu3XLlRK4inTpMtuBTLE/urqSC7qez6PHG4l9uXcKo6LBMlYTM/1sJU
-FkzD7aDi9liqXL99LcfOjFT8/rVYFsRjNtfvWFcVMI7FbG65Uhcx3fWVp3X7hJjDWL5E2fP1AyPI
-dV+7Kk0ibjOWL1eC06GlMTRWrHT7hWrXQtn1ac8kqiyY5eBWWAjYlkVLKg5YlIMurpYF7S2JigLI
-pGMMjBQrDTJ9pbAsi3QyTiYdozUdD7orFAjn/id7x3jxlpWkEs6EzgulslfV1yuaaj00NrFHFCw8
-78NssizqJE6fy9Fs66ap+sM0S5iDXfezJva/1Au5br5yI9de1kk8ZhMmtISnJeZYtKbjXHtZJzc3
-qGi1LYtdO9ZV+jpZllVxQdi2RUsqxiuu2cyrr99a+U5IyfWq3FzR6x3+vaotyR1Xb+KyzSu54+pN
-y6KydqGwuTNTaeYXXtMVmQRvvPli2jIJbNvGti1dCxO4i3THYA8rGBevvHYza1amSSXilF2fXMHl
-wadO43p+RdmEhO7IaHZc+H485kx4HoQ9otpaEly/xFPVYZlYEps7M8Qci5LbWP/bFly8sZ2h0SIl
-16+sO+H5Cs8bX1+i4p+09OBd2ZZkcKRQVYeRjNtsWdtKPGZz5NRQ1WcWumirWHIrKXmer8s/4zEb
-BWxb17rkC7lsy+Idr9sBwJNH+ioV1/GYzbb1bXXXfqglfHB39WXZvCZTFZR+w00XVVqCW+F3OnX6
-ZM9AnpzlopTCtnSPnvZMgpGsTnBIxmMTLBjD3HHTzg3sPnCGY92jgZKwK6vBAZV1RA6dHGQsV66M
-my1rWyvjJuT+J7sAKpOEVCJWac7n+4p4TK9XsvOS1ROy48JxdfD4ALkgGN65Is0lG9urVqhb6lj1
-AocziRBiF/AXUsqXCyGuAj4OuEAR+CUpZZ8Q4t3Ae4Ay8OdSynub2LXq6xttSoawjP/JI32USh4+
-Wimkkg6ep+hoT/Hq67ZULW24qTMDSrH3cC9nB3IoX5EveaxqS3LJhvFBcsMV63nkQDePHe5laLTI
-ytYku3asrZTrf/n+o5WqzHTC4fKLOmgJ1itA6WyN6N/zVbjV2dlGs+dzJpnu0q2N5Gx2gSBfKR4+
-0M1jB88yNFZiVWuS6y+felna6TBf53K6LGQ5oysUvnjrKt58x6XE7HHHR7PjJowvhNx+1Uae6xrm
-ZO8YybhdCVZPtRRqM+NiIZ/PKJ2dbdMa2LOqJIQQHwB+ERiTUt4ohHgI+HUp5TNCiPcAlwF/DXwP
-uAZoAR4GrpVSTtWytWklATWdRqfxUL7Q1clWr27lPx84suArdxfRAF/wci4GGWF5yDmXqwsuovM5
-rRMw2+6m54CfAv45eP1mKWVP5NgF4HrgYSmlC4wIIY4CO4EnZ1IQ27LOy31wvttVtrcvbHuDwXD+
-XOj9a5hlJSGl/LoQYlvkdQ+AEOJG4L3ArcCPA8ORzcaAFc3sv7OzbeaEnUWMnDPLYpBzMcgIRs6Z
-ZrHIOR3mPHAthHgz8P8Dr5VS9gshRoD2yFfagKG6G9ewSEw7I+cMshjkXAwygpFzpllMck6HOVUS
-QohfQAeob5dShopgL/BnQogEkAa2A8/OpVwGg8FgqM+cKQkhhA18DDgBfF0IoYD/llL+sRDi4+iA
-tQV8SEppFn8wGAyGBcCsKwkp5QngxuDl6gbfuRu4e7ZlMRgMBsP0WBYV1waDwWA4P4ySMBgMBkND
-jJIwGAwGQ0OMkjAYDAZDQ4ySMBgMBkNDjJIwGAwGQ0OMkjAYDAZDQ4ySMBgMBkNDjJIwGAwGQ0OM
-kjAYDAZDQ4ySMBgMBkNDjJIwGAwGQ0OMkjAYDAZDQ4ySMBgMBkNDjJIwGAwGQ0OMkjAYDAZDQ4yS
-MBgMBkNDjJIwGAwGQ0OMkjAYDAZDQ4ySMBgMBkNDjJIwGAwGQ0OMkjAYDAZDQ4ySMBgMBkNDjJIw
-GAwGQ0OO+z4IAAAgAElEQVRis30AIcQu4C+klC8XQlwKfAHwgWellO8NvvNu4D1AGfhzKeW9sy2X
-wWAwGKZmVi0JIcQHgM8AyeCtu4APSSlvA2whxBuFEOuAXwduAH4c+IgQIj6bchkMBoOhOWbb3fQc
-8FOR19dKKXcHf98HvAq4HnhYSulKKUeAo8DOWZbLYDAYDE0wq+4mKeXXhRDbIm9Zkb9HgXagDRiO
-vD8GrGhm/52dbRcs41xg5JxZFoOci0FGMHLONItFzukw6zGJGvzI323AEDCCVha1709JX9/ozEk2
-S3R2thk5Z5DFIOdikBGMnDPNYpJzOsx1dtM+IcStwd+vAXYDjwM3CyESQogVwHbg2TmWy2AwGAx1
-mGtL4neBzwSB6UPA16SUSgjxceBhtDvqQ1LK0hzLZTAYDIY6zLqSkFKeAG4M/j4K3F7nO3cDd8+2
-LAaDwWCYHqaYzmAwGAwNMUrCYDAYDA0xSsJgMBgMDZkyJiGEWAX8FXAp8LPAXwO/I6UcnGXZDAaD
-wTDPNGNJfAadproaXQDXDfzLbAplMBgMhoVBM0riYinlpwFfSlmSUv4esHmW5TIYDAbDAqAZJeEG
-RW4KQAjxYqorpw0Gg8GwRGmmTuKPgIeArUKI/0R3a/0fsymUwWAwGBYGUyoJKeW3hRBPALsAB/hl
-muytZDAYDIbFTTPZTQeA90QXAhJC7AOumU3BDAaDwTD/NBOT6ADuDlaPC7EafdlgMBgMS4dmYhK9
-wCuBrwohrgXeRxDENhgMBsPSphlLwpJSDgB3otegfghIzaZQBoPBYFgYNKMkDgBIKT0p5a8DX0RX
-XxsMBoNhidNMdtPbal5/Bl2FbTAYDIYlTkMlIYTYJ6W8RgjhMx6DCAPWSkrpzLp0BoPBYJhXGioJ
-KeU1wf+mU6zBYDAsahS+UriuzzceOtT6xtt3jDW7ZTN1EpcCLwO+BHwSXR/xW1LKh89bXoPBYDDM
-EgrP93FdRdlTuJ5P2fXxfO0QOt2bbQVmTkkAnwf+HngjIIDfBv4GrTgMBoPBMC9o68DzfMouuJ6v
-//Z8/BksUmjGlZSSUn4VeD3wr1LK3UB85kQwGAwGw+QoXM8jX3QZy5cZHC1ybqhA72CB/pESI7kS
-uaJL0Z1ZBQHNWRKeEOKn0UriD4QQPwl4MyuGwWAwGEDh+4qy5+N6OobgBn/PVwVzM0riPcBvAe+V
-UnYLIX4OeNfsimUwGAxLHVVRAK6nKAcKwZtpU+ACaaZO4hkircGllD83qxIZDAbDkmLcOvA8HUz2
-XJ+y76MWlj6oSzOWxIwihIihq7YvAlzg3Wj31RfQixk9K6V871zLZTAYDBeCUgrfD91DsxdInmvm
-owbitYAjpbwJ+FPgfwN3AR+SUt4G2EKIN86DXAaDwdAECl/5lF2XXMFlJFdicKRAz0CW3qECA6Oz
-G0iea5qpk/iulPLOGTzmESAmhLCAFeimgbuCrCmA+4BXAd+YwWMaDAbDNFEopSoxg/H4Qf24gbeA
-F3VWSjGaLzM0Wpz2ts24m9JCiC1SylPTF60uY8DFwGFgNfAG4JbI56No5WEwGAxzglL6wV92FZ4f
-KALXx/XnL6touvhKMZIt0T9SYGC4QP9Igf7hon49UqDkai32ml2bprXfZpTEGuC4EKIXyKP7Nykp
-5SXT/A0hvwV8W0r5e0KITejW44nI5200uTxqZ2fbeYowtxg5Z5bFIOdikBGWn5xKqUAZeLoK2fWD
-dFNQDjiOhUP1A2k6dHRkZkTORvi+YmCkQN9Qnt6BHH2DeXoHc/QN5ekbzOPOgjnTjJL48Rk+5gDa
-xQRaGcSAp4QQt0kp/xt4DfBAMzvq6xudYdFmns7ONiPnDLIY5FwMMsLSl1OpSHqpN64QZitG0NGR
-YWAge8H78XyfwdEi/cMF+keKVZbB4GhxWimyjm3R0Z5kdXua1SuSdLSncN3y1BtGaCYF9oQQ4i3A
-S4A/B35GSvlP0zpKNX8HfE4I8QN05fYHgSeBzwoh4sAh4GsXsH+DwbCsWHgFaFNRdgNFMFIIlIF2
-CfUPFxgaK05LkcUdm9UrUoEySNHRnmLNihSrV6Rob0lg29WrTe/eP73IQTOB678ANgPXAn8JvEMI
-caWU8nemdaQAKWUWeHOdj24/n/0ZDIblwwTrIPjfX4ApRKWyx0DFIqhWBsNjpWkpsGTcYXV7ko4V
-KVa3B/+Cv9ta4liWNfVOzpNm3E2vRnd+3SelHBFCvAq9Wt15KQmDwWCYmvFOpqPZIsNjxQVpHRRK
-LgOBSygv+zh1dqTiHhrJTc+tk0o4rFmhLYGoEli9IkUmFZtVRTAZzSiJMBISXptk5D2DwWC4AGo6
-mfoTYwdWIk6+NH/t4vJFd9waiFgE/SNFsvnpKYJMKqZdQ22BEqhYBklaUguzb2ozSuLfga8AHUKI
-3wR+Eb22hMFgMEyDcG2DMMNIVyS78+wqUkqRLVQrgoGKMiiSL7rT2l97S1y7hQJF0BEogdUrUqQS
-c97k4oJpJnD9l0KIVwMngK3AH0kp/2vWJTMYDIuUwFUUFqEtgECyUorRXLnGEgizhooUy81bKhaw
-ojUxwS108ZaVxJQiEV9aKzs3E7i+F91X6UNSyunZVgaDYQkzN4veNEulmGxCoFjHDMpu815yy4KV
-rcnqGEF7ktUr0qxqSxKPTexoNFMpsAuNZmyfvwTeBvyVEOJbwBeklI/PrlgGg2HhML32FLOJ5yuG
-x6pTR8Oq4sHRAq7XvDy2ZbGqPcma9lSQNZSsWAYrW5PEnPlobbfwaMbd9APgB0KINPAzwH8IIYaB
-zwKfkFJOvxmIwWBYoEyMG/je3LancD2fobCGYKRAtuhxundMK4KRIv40+mvHHCtiCQS1BIF7aEVr
-Eseen4yhxURTURQhxO3ogPWd6AZ8X0E34bsHnSJrMBgWFQrX9SiWXL2+gTe3cYOy6+vgcCRjKHQL
-DY0Vp7XOQiJm1wSI05XCsvZMAnueUkcXAralq64ty8KxLWzbYsOaltx09tFMTOIEcAz4PPA+KWU+
-eP8hwLidDIYFzXgQOVzwxvd8Sp5PCYvBsdKsHblY9iJZQkGLieGgmCw7veMm49EagmQlfbSjPUVb
-enaLyRYilgUxy8Kyxx/+tm1hWxaODXbwvj4v1efmp+64fGQ6x2rGkrhDSvl87ZtSSg9dZGcwGOYd
-HUTWmUTVyqDxrPzCH6yFklsdII5kDo1Os5isJRmrai8RuoUu3dZBKV9aFoog+vAPH/xOkw//2aIZ
-JbFBCHEX0IqWygG2SSkvmk3BDAZDPeY2iKyU0sVkkQBxVBHkCtOrIWhNxycogfDvdLL+46itJcFA
-YXEnVoZuH9u2gxk/4xaANT8P/2ZpRkl8Fp3h9Hbg4+gurftmUSaDwQCEQeTQTTRbaxwopRjLlysx
-gerMoQKFaVY7t2cS44qgvbqgbDEWk01GdObfknAopmKVh38487ethfnwb5ZmrlheSvl5IcRFwCB6
-TeonZ1WqGcb1fb74rcOc7B0jEbPI5l1G82XaM3HuvG4rt1y5sSq45SvFngPddPVl2dyZ4aadGwDY
-/fRpvvtEFyPZEu2ZBK+8dhPHzoxysmeURNwhV3Aplj22b13J21+3g5g9MYWu3r6Xc2Ct0bludI58
-X7F7/5mmzt909z1/1HQx9ZRuTeFP5iqaHn5YTBbEBPpHCozmXbrP6ayhUnkaNQToYrKoJdBRUQZJ
-ErH5KSbzleLJw70cONYPwM5L13DNZWt46sg5zg7kWN/RwjWic8K9vk/2Tfi81udv1XH7hAogfPiv
-WpHGLU3PsloMWGqKUSiE+CHwOvS6EhdJKf+3EEJKKcVcCDgJqtke83f/10EeP9yLW6fIx7JgTXsS
-x7EpuT7bt64CpThwrJ9SWZvwrek4L7loFfuf7yc7hXltoQfQtnUZ+kdKZAtl4o7NRRva2HX5elCK
-B546TTbvki2UWdWW5NXXbeHGnRv44TNn5+3hNV9rC+zef4YHnjpdeX3H1XrVrNr3brlyIwBPHxvg
-Gz8YD5FtXpOhJRWve85+sP8M39xznJLrkYg5vOGmi7CCfSulyOZd1nWk2bVj3Yye78bnUisDN1jk
-ZqaLz3xfMRysTBZVBmHmUHkaC9LYQTFZqAjC9tMdK1J0tM1tDUG0SK3RQx3gicO9PPBkF9nANZVJ
-xblkYztnB/OAvjdf9pJ1XL9jHZYFTx/pY/+xfs4NFcikYuSKZeIxh/aWOKtaU6RSMbZ0tjY9NhbR
-+hzTGujNWBJ3oVNe3wQ8LoR4K4vMkjjZO0a5QQBPKegbHi/1eOTZsxO+M5wt8ciPepo6lkIX/Bzr
-Hqu853oeh04McezMCC2pOKWyR77oohT0DOa555Hj7D5whtPndGZaSyqGUopbr5reMoOLiXCWf/+T
-XWQLLpl0jGze5f4nu2hNxxnLlSsP91N94+fy+NnxxIyxXJkDx/rpaE9xpEsvZhgqE4C9h3oYzeks
-mlzB5Z6HXyCZcBjNlVBKp2GWXI9swUUphWVZM6KklVL4yq8Ekd0gxXQmlIHnK4bGxgPEA1X9hqa/
-IM2qtomKYHV7ipVtCZw6lvB8s0/28ehBfS8eP6sfyNeITp6SfTx+qAdX+SRi2r1jOzA0WiSdcIL1
-NBVjuTKdK1Ps3t/Nnh/1MDBSoFjyGBor6uU9lVaQCkjEHTKpOAq4NTKulhvNFNN9VQjxNSmlEkJc
-C1wGPD37os0cxZI7Y2b7BclR9im7Ogc8FEf5isHRIgMj44qqUPJ49ODZJa0k9hzo1hZVwWU0V2I0
-V8L1lc6WGdF+cMe2KJY88hHr7aL17ew/0gdQUSIhXX3jLRF8pc+r6/ko9GRgJFdCBV8JlUK4HOR3
-Hj9V6blzpGsIhX6uTK406geRPduib7Bw3ufG9RotSFNkcPTCisnG208nuXhLB0ND00qZn3XqWQoW
-quLqGRotkozbYFlYwGiuyHcePcEzL/TjeopcwQ1qAiCZsNmwJkPXufFxsXFNBrAqYyUR025iPxLn
-CYu2S66Pnyux91CPURL1EEJ8nvFnGUJM8C79j1mSacZJ1OmzMl/Um+jVu+e7+/OzL8w8cqpvrGIt
-WJae1VuWRansYdsW8ZhNPGaTiDlVWS+vuG4ro6MFuvqy5ArlKitjc+f4+sJ7DnRTKntYloXyFVaQ
-TaIUlZW6PE9XFIcZPDHHJpOKk0nH2Huop+JaPNI1hIVi10vW4XpUFrtplFHUjFdntovJVrfrpSon
-KyarXbFsrqmX7vnkoV6efu4cWNAzmGNFJs5OsY54oLa3rmtl//P9lQlCNu/yzAsDFIPgejoZI5lw
-WN/RwvU71vGyH1vHP98nOdU7xpa1rdxwxXpAj5UjXUPagi2UKbvehOtW7+wsx5jiZJbEQ3MlxGyz
-bX07p/tzC8KaaJal3i4gH1gQAK6vJvi4o79/89rWyt+2bVVcSvVu2KgbC7RfPVso43paCbmeT1tL
-gkw6xvBYiVzRrVgUZdcnVygRc8L20WVijkM66SC7hnnRllXT+o3FkjduBVxgMVkq4VS5hcKCsoVY
-TGZBdYFXE0HfkLOD+SrF29WXq84Mqvmdg9kSiZhTURK2bfHGmy6ujJHd+8/QdS6LZVt0ncvyw2fO
-csuVGytJDF19WbZ0tnLwxAAj2TK+UlhAzLFJJhwSMYfrt6+tHC+0gIG6Ls6lSEMlIaX84lwKMpu8
-7bXbefaFgWnfmPNJR3tyvkWYVdLJGG0tCUquRzyY6SfjMUqux9qVKYbGtJUBTDC1apXDm1/xosps
-LgyEazdWWSuEVIxCyas8rNauSrGmPcWR0hCuZ+F6ikTMIh5zgngCnBsqUCh7WEB7S4JrL2up+zvG
-awgiS1PmyvT05xib5oI0LalYXbdQR3uKluT8rUwWpZLfb9UogCDl0wnqADTTlzec4YfkCmX+4JOP
-UCq7XL99LV3nsrS2xIF45Qj6tXY/7rxkdUUBQLULMvratqonG3f929PkCsN4vv59qUSM9pY4W9e1
-oZTiy98/yubOTJXlWm//S5GllbTcgJhts7Ezs6iUxNbI7HkpsmVtK0dPDzOW0zf3ulVp4jFbPwgV
-tLZA+CAIA/ohtbM53/d57vQIp4IEhZhj0ZJyKJZtfN+nrSWG7Wj3UsyJsWZFGt9X2LZN3HEoe65u
-aKe0UlJ4lD0fC+0edByLzpUpnjraV+UW6h8ukJvmgjRt6XglXTSqBFa3Ny4mm23CjLzwwe/YtS0e
-5i7fPzrDzxXKHDoxyFi+rJNBzoywuTNTiSeN5cq0pGJsXpMhnYyxZe3ETKRapRN1SYbYlg7gl1yd
-3OJ6irJbIubYHD45xKGTg1hYPHrwLOtWpau2rbe/pcayUBK+UpQWWf5ycRp564uRm3Zu4MipIZ4M
-gtBnzmVJJ+O0tujMJqCS8XT63Bg/2H8GlGIgV+a5k4MAlTTW//jBMcquVg6er0glHOLxGJ7nE7ct
-uvvzlD1VmQVn82Uu2tDOC2dHaUnH8ZVPznMplbWroVz2K4FrgP6RIp+652DTv21lW5JVlfTRZFUd
-QXKOF6Rp5PpxbIs1K1I4vhvJYloIlsr4DP/L3z8aZITp1OFi2eNEzxjb1rWSiDuM5cpk82VyBbcq
-TTpKVOls7sxwwxXr69bZDIwWiFYoKqhYsmXXx/d1V9wTZ0fZtr6Niza0V9JjlzrNdoFtB1YQGUVS
-ypOzJdRM8/CB7gmz0YXOwOjS78B+rHtE+5It7VEquT6ZdIxMOkZrOo5Siv7hAqd6xzjePYJjWyQS
-Dr7nE487WFgUS+UglVURzgNKro9te8RsCx8qawz4SgdKh7JF+oZ1YsDQWLGSjgxVz4mGVc2WBSsy
-CdZEuo1G4wXr1rbNyeIzUQXg1CiA6Hvj364mmYjh2AtvFbXQnXj63Bi+r8Yzj5SuBekZzLNlbWvF
-zQTNu30eOdDNg0+fAcZjCjft3MBQnUaHYeZc2dUJCr6v82N7BvPcsnPjko9FhDTTBfZDwAeB/sjb
-CrhktoSaafYe6pnWqlQLgaGxpa0k9hzoZnC0WLn5QT/Mx3JlVrQmuH7HWp6UvYQFaOHaBsWyzkZa
-GXNwbIuY4+D52kVUCV0o8HyfMpCvaSlRcn2OnRnl2Jmpi57CjKit69rYsW1VRRGsmoNisnpdPh3b
-rmrydiG+/4VM1J2YSjgodOwnVIr1KrobuX1qXZOZoAZpLFdmJFfiS98/yu4DZyiW3EpM3LEtLlrf
-xkXr29nYmWHPgTO80D1W+bzs+jx2qGdZZDZBc5bEO4FLpZR9sy2MYZz2yCxpKdLVl6W9Rd+wUfKl
-Mt6I4gf7zzCSLVXaRZQDayDmAEpnQ61dmea508OVjJTzSV4LXVRRMZJxm1TcwfUVccdmXUeam66Y
-WbdC7Yy/6rVjRR4+S/8hVEu1VWDpGFMyRr7oEo/ZZNIxrt++tlL8uCmIU4TB5ejDu9bCGBzVtSZh
-PyrX83ju9AiZlMOqthQl12PL2lZ++81XYVsWu/efoewp0kldT6HQhZE9A3n2HOheFtZEM0riJDAw
-kwcVQnwQ+Al0ZPL/AD9Ar6PtA89KKd87k8e7fvtanj89POdLLV4I01mGcWEz3qTO9XXRme/5rGyN
-E4/HcL3ihPz0fLHESLZUWUdYEVTBqvHz0t2fo7u/OReihc4c2rgmw46LVrFmRZqnj56juz+LZVmc
-G87rmEYwM4/HHEbz5UpcolicXoM724K4ozt+ViuChd3tc6GwqTPDviN9lFyPQtEjFrNIJ2KkEjEy
-qRivuGZzlSLYvf8M9wetbh49eJYjp4Z4x+t2YFtWVeB6LFdGBeOxlkLJZ81KnTW1a8e6yr5P9Y6R
-zbsV5Y1SJOIOJddbNtZEM0riKPCwEOJBoFJGKqX8k/M5oBDiNuAGKeWNQogM8Lvo1h8fklLuFkJ8
-QgjxRinlN85n//W4+cqNPPxMN8e6R7VfcRFQWlTuMb2WgRfpSeR6Ct9vvNLZjos7GBgt4bo+/SOF
-CbN5HThs7hzEHF0kF62ajbIik+Dyizt4/Y0XVd4bGi1ydkArmXTCwbEsPKXwPUWhWK4UPSrgZO8o
-vlI6uweIhUFgx45YAOPWQefqDLHFVJSz0AjOXdnVrUxcX9ecpJMxxJYVdPVl2XOgu/KA7urL6qad
-Qd3NgWP9PLz/DJZlcap3jM1rMqSSMQ4eH2AgGGu1tKbjZFL6caigcr3zxfH9KqVTfAslDwWcODvK
-wwe6l3w1djNK4nTwD2Zm6vNq4FkhxH8CbcD/BN4lpdwdfH4femnUGVMStmVx0Yb2oNXB4vD1b1mQ
-qXU1Der88dbV9W68QsmtpIsO1LSfHpnmgjRhMdlIrkSh4BJ3bNKpGBdvbGdgpMCpnjHqzffTCQdQ
-HO0a4u57D7LzktVcu30t14hOAM4O5Fi3Ks3JnlEOnRzEt8BXFomI2ztXcDl6aohbdm5oKg6wEOoZ
-FjOnz+VobYlTcj3KZQ8fwLIoFF2ekH26r1JMpzffdvVmNndmePTgWT3RAOK+4rHDvVVrXWxek6FU
-9rXbsl6TzxXJSg+vb+45zt5DPezasY5UpJ4nzLAK3Zv5ksd39p7k5iVuTTTTu+mPgxn/pcCzQFpK
-eSGpG2uArcDr0cHve4BoFHAUnUk1o2zpbOWHdZr3GWrR/Yg8X1U1p9PuookN6vJFt2oRmuhSldlp
-FpOFjdWik3DH1t08X/HSLZzoHqFnIBesvKZncz0DOc4O5Ou651rTcdZ1pOk+l6VQcskVyoxmy5wd
-yNKSirNpdYa3vuoy4jGLrz10jLgzTK7sTrB+XAseP9zLbUu4l9ZCYtOaFvYd6dOpp4qKleZ6ipKr
-61dc1+e7T3Rxy1Wb8IIV+TxfpzmXXZ+h0WKlFxdot1FrS5xCySVf8rCCWot4TLdiKZV9bMeuWCRh
-48fNazJBWjZVFoUK/hgYKSz52EQz2U13AJ9Gr0h3I3BACPFWKeV3z/OY/cAhKaULHBFCFIDNkc/b
-gKG6W9bQ2dnW9EF/8o7L+OYPj0/Z6nuhcHYoP63fNx2UiloE+uYaHMljxRxtHfgKHLAdi7hSFHJl
-+kZz9A3m6RvK0zuYo3cwT99gbtork7VnEqxd1YJSilO9o3ierrZubYnTmo4HOetFcoGCsW0bHzh0
-YpAXzgxXKYN8yeN0X1ZnOcV05o9Cr4fcmorzxtsu5Uz/GEOjRXIFF9eD0XyJgyeG6FyZ5kTPGCtX
-tvCqXdvYfvFqnn7unJ5N1shsB6m307kes3XtZpqFKGdbWxrHsUgG5pxl6dXp+kcKEFHgo7ky+48N
-8u3HTlIsh4WQkEw4rO1oqZqkbFvfzomzI6xfk2E0WyKZ0K082jIJrMjnrq/bt6STMeIxm45Vaa69
-fD3/tecYjmORzZdwvXGbNR6z6c+WKudxIZ7PC6UZd9NHgJuB+6SU3UFM4cvA+SqJh4H3Ax8VQmwE
-MsD9QojbpJT/jV757oFmdjTd3u0rMwnODZ1/d86ZIJOKBVkSk7NhVcsF9qZXeL62ADyfwDIIX1db
-BEopnESc508O1F24PrwBm2VFJhGpGxhvOLe6PVWZ3f3XI8fpH8pXev+Xyz5r16c5O5gnFjXdlSLp
-2Fgo3f2Tam+BDv/qoHjMdrjyRWtIB+sAXPviNRTyZcCquMOUsojZdiUl+tCxfq66pIOdF69iZNdW
-7nnkOMNjpUp7DtB9fK66ZHXT12MRrSuwIOU8/EI/6WSsUoG+qi1F54oUL3QPc+zMyHi8SCnuf/yE
-To+1LG0dBPu4+tLVVa3fb7hifdV6LY1eP3aoh56BPOlkjLLrs6Y1yVWXdDA6WuCBp06TL7rYlhck
-U+gEhNWZBH19owv2fNYyXUXWjJKwpZRnwy6wUsqDdTrCNo2U8l4hxC1CiL3oe/xXgePAZ4UQceAQ
-8LXzPsAkbFvfzvGzo01lDlmRnErLqt+9darta2OXLUn9EDt0fIDRoNWAzXhrYtAn5NJN7bzttdun
-OMK4W0g/+PWD0msQMPaVYiRYkCZcg+BcpMXEdOpIrHBBmshqZGvawwVpUpWspMlY39FSWQ/AV4od
-21byptsuZf/Rfs4OZimVPIZzZSxLcc2LOwGLewbyjOVdfBXUEdgWngp7CcGVL1rDO19/edVxbtq5
-AYWulQE9UYi2jg7z623L4tarNmFZFvfsOc5oroTnK+Ixm2sv6+TmJexOWGjUttK49epNXHVJB67v
-80d37+XccIFEzK70N0vEHIq2nsjEYzY7L1nNzTWrTcLERnz1Xt+0c0Pd1QzD/0MlAtr1VdsrainS
-zMp0XwfuBv4EuAN4L/AyKeUbZl+8SWl6ZbqQ3fvP8MC+Ls4F6/b6qjqjxrEgEbdpTSdIJWNsXdvK
-pRvbePzIOYZGi+gHM5TK2iQtll1akjEScYdk3CEesxjOllnZmuSll63mkYO9nD6XxVKwbX0rL3vJ
-Bm6smcHsCloZHzo5SDLucOd1WyLLqY4rgrIbKgTdIqBesNjzFcNj4+sUDwxH/h4pTCut1rasSjVx
-R6S9hF6QZnrFZGFhmO3YkRRQvZJYd3+OzZ0ZbrxiPbbVeJ++Ujy8/wxPPd9P70COlW1JXio6eb5r
-WHfyXNvK2167ve6SsbX7mazVs68UDx/oriiV67evrfvAmYzFNKNciHLWXqOfvOMy+vt1Y73alQxf
-ftVGsKwLul4XIlt0/CzU81nLdFema0ZJrAU+BrwSHZe4H3i/lLL7fIWcIaatJGov8K6aXvMz8ZCp
-ZeqBE6aPjlcWu4Fl4HsTF713PR2UGw8Uj/89OHL+C9JsXNtKJulUFMGK1uS02pXXFoTFHB0jiDlh
-V9DZXhp04bAYZITFKedCXs9hEZ3PmVUSC5hpK4n5QA+ckUAB6NTRMD7gN8gYKrs+A6OhW6h6hbLp
-LkgTj9mV2EC4NGVH8H90QZroOsK11LME5qs4bDHciItBRjByzjSLSM6ZWeNaCPECk3Q6kFIumt5N
-s02HJlQAACAASURBVI+qUgKhZeD5CuXY9A7mJzzYS2WvEhweqEkhHcmWptViIhl3KovQjMcJ9P/N
-LkhjWWq8StixiAUVpjHHCrqELozZmsFgmFsmC1zfjn4y/CFwDN02wwXeClw824ItLKYIEtdUC4cU
-Si792RLHTg3VZA0VGJ1mMVk6GatSBOGi9R3tKTKp5haksS29tobjWDhBtXDM0VWka1e3El+0RqXB
-YJgtJluZ7gSAEGKnlDK6nvXfCiGenHXJ5gxV6VevrQGdWuf60ffqVxSHayNHXUIDEYtgujUZmXR8
-PEAcKIA1gUJoSU2diFZpGeFErIEJTePqKxNTJWwwGOrRTAqsJYR4uZTyQQAhxGvQFsUiYNwCCBWA
-H7EI/KBwbLL0VqUUY/ly1WpkUddQoTS9GoL2TGLCQjRhsDiZaK63v16DNwgOO3bwt2kcZzAYZp5m
-lMS7gC8KITag22ccB35xNoVqBh1wDwrD/PGCsVABKL9+ULgevlKM5soTLIFQGZSmsUqcBaxoHS8m
-27y+nZa4TUcQPK7XC78Rjh3GBmrjBCZGYDAY5oZmejc9BewUQqwGlJRyRtuGny89A1nODeSbDvD6
-vmI4KCarVQYDI0XKddoHN8K29BKV0dhAmDW0qjVZVUw2WdZQuK+JcQL9z1gFBoNhvpksu+lB6mQ3
-RSqv75g9saZGr0ZW+55iaKxYsQKiWUMDI8VprSfh2Hpx9GqXUPK8ismgWhnEYlEXkbEKDAbDwmUy
-S+LDwf/vBvLAF9GxiJ8H0rMr1tQ889w5jp8eirSh1itOnW8xWVWvofMoJguJB4HjMGawZkWKmPIm
-DRobDAbDQmWy7Kb/BhBC/I2U8rrIR48KIZ6Ydcmm4B+/tr+p7+keL6maGgLda6gtUkw2XZygqjhU
-Bo1cRMlEbNJ2EwaDwbCQaSZwnRZCXCalPAIghLgCvezogiEZd6qUQLSeoLXJYrJ6hFlEth1VBuA4
-trEMDAbDsqAZJfHbwENCiNPo3k2dwFtmVaomePvrLyflWKxekaIl2VwxWSP0msTj6aSm0thgMBg0
-zWQ3fVcIcRFwBTpWfCBYMGheedmPbZg0a6iWUBGE8YJK/6EpiswMBoNhOTNZdtOHpZQfFkJ8nppE
-IiEENVXYC4Z6VkF8hjuRGgwGw3JhMksibL3x0BzIMW0sFAnHxonZxB2rEjMwysBgMBhmjsmym74Z
-/P/FuROneTasaV1Y0XODwWBYgkzmbvKp3yrcQldeN99fYhYwDekMBoNh9pnMkqgk9wshnpJSXj03
-IhkMBoNhodBslZdZacBgMBiWIc0qCePbMRgMhmWIsSQMBoPB0JBm17jeJIQ4FvwdBq7NGtcGg8Gw
-xJlqjWuDwWAwLGOmXON6thBCrAWeAF4JeMAXAB94Vkr53tk8tsFgMBiaY156WAshYsAngVzw1l3A
-h6SUtwG2EOKN8yGXwWAwGKqZr4UO/gb4BHAGHeO4Rkq5O/jsPrR1YTAYDIZ5Zs6VhBDi7UCvlPJ7
-jKfWRuUYBVbMtVwGg8FgmEgz60nMNO8AfCHEq4ArgX9Cr1ER0gYMNbOjzs62mZduFjByziyLQc7F
-ICMYOWeaxSLndJhzJRHEHQAQQjwA/Arw10KIW/9fe2ceJddVHvjfe6+W3rVYrZbUai/I42sZJHmX
-9w2cGDwJ5GSYOQnO2J4kQIYDmDmEgyFmSQJnQozDwQQCNsYeE4ITQhKDAwJbAgl5kS1rsS3pSpa1
-tdSb1N3qrr3eMn/cV9XVpS6rW5ZUVarvd47UVW+576v73rvfvd/33e9qrdcC7wZWT6esoaHxUyPk
-SaSzs13kPInUg5z1ICOInCebepJzJlRjJDEVnwQeUkpFge3Aj6osjyAIgkCVlYTW+paSrzdVSw5B
-EARhaqoV3SQIgiDUAaIkBEEQhIqIkhAEQRAqIkpCEARBqIgoCUEQBKEioiQEQRCEioiSEARBECoi
-SkIQBEGoiCgJQRAEoSKiJARBEISKiJIQBEEQKiJKQhAEQaiIKAlBEAShIqIkBEEQhIqIkhAEQRAq
-IkpCEARBqIgoCUEQBKEioiQEQRCEioiSEARBECoiSkIQBEGoiCgJQRAEoSKiJARBEISKiJIQBEEQ
-KiJKQhAEQahI5HRfUCkVAR4BzgViwJeAbcCjgA+8qrX+yOmWSxAEQTiWaowk7gAOa61vAG4DvgE8
-AHxGa30jYCul3lsFuQRBEIQyqqEk/hm4L/zsAC5wqdZ6XbjtZ8C7qiCXIAiCUMZpNzdprVMASql2
-4F+AzwL3lxwyDsw63XIJgiAIx3LalQSAUqoH+DHwDa31D5VSXynZ3Q6MTqeczs72UyHeSUfkPLnU
-g5z1ICOInCebepFzJlTDcd0FrAI+orVeE27epJS6QWu9Fng3sHo6ZQ0NjZ8iKU8enZ3tIudJpB7k
-rAcZQeQ82dSTnDOhGiOJe4HZwH1Kqc8BAfBx4EGlVBTYDvyoCnIJgiAIZVTDJ3EPcM8Uu246ldf1
-g4D1W/voHUqyuLOVle/o4vGfabbvHyEedbj1sm5sx+HgUJLuzlaCIOCFbf0cOpIik/UAmNsR49bL
-FvN6XwK9b4RU1sV1PWzbZm5HnJa4w4HBJK4XEI85nLugnUWdbfQdTmBZFlcu7eK65QtxfZ+//cdN
-9A4l8P2AIAgIAojHHC4+fx533b6UiN04U1jK7821yxdiW9ZJK2e65Zce1z2vBR94accgAFdeOJ/r
-Viw6IbmE6VGo/wNDCdIZl+Z4hJ75bbzvlgtmXMZMn6WT9QyeiVhBEFRbhhMlmMnQbu3mgzz57F5S
-GRfX8/G9AP8UCleJtuYIibT7pscsWdTOvX90+Wl9SKs5VF635RCrNx0sfr/lkm6uX7Foyhe3a35H
-RTmnKufa5Qt55KfbeHnXYQAc2+LsrjauumjBMQ1B6fmHR9Pk8h6eH4Bl0RxzeP/N53PDikXH/T31
-ZHaoJTkL9Z9I5RlP5WhvidHWEuW9Nyzh4rfNrXhe6XOSyuTpPZws7rv5km4ANmwfACaUPTDp2QqC
-gDWbDxXPKzyDM6HW6rMSnZ3tM2pYquK4Pt34QcCqF/czPJattijHVRAAb/SNs35r34wf0nqldyg5
-5ff1W/t45uVekmmX57f1s/PAKJ+688pjzi80Es9s7CWZcWltjmBZFr1DSdZv7ePlXYfJ5jwK3aE9
-feOkwtFhaR0fGEyQSOVJZvKTjicISGddNmwfmJaSEE6Mwn3PuV7J3yh7+8feVEmUPidjqRyxiE08
-6pD3fFZt2E8255FI5wHY1z/Ohh2DzGmLF5XJzt5RWpsmN4Xlz2Qj0xBKYu2WQ/QdSVdbjGkTBLBv
-YIzrOTMbpPIRQve8Fnb2moC2RCrPwcMJ1m05ZBrtdJ6jiRwBsHHnEF9/4mVsLBZ3tnL1sgU890o/
-z2/rZ/9AAs8PyOY9EmmbtuYY3Z2tU77srucTBMEx+9JZl/FUDtcPKB9fW2J6OOUs7mxlZ+8osYhD
-NucRizgAnLug403P6x1Kkkybe+f7AamsSybn4dgWeXfCXuD5AW7W5cBgggODCWIRh7aWaEVZBEND
-KIlfvnig2iLMmFfeGK62CKeM9Vv7imadnb2j3HjxIhbPa2X7/hESqTyZXJ6B4TQXnj2bVMbF902T
-nc15rNnYSyzq0Bx3+PXmgxw6kiKb9wgCsC2jYHN5n6N+llUb9nPegnZamiLkwmPANBaDI2l6Otvw
-g6BocmpuitDeEmMsmcMvURO2BbNaY1x54fzTW1ENxrXLFwIUfRJNMYd01uXXm3p5esO+ok8PJpuK
-ujtbeX5bP2DMiXZg/FB+EOC7AVhgYSJkLMsiYlskMy7JtEsmZ67TEo+weF4rzU0RejrbuHb5QvFT
-hDSEkshkj2/iqTWGxzPVFuGUUd6Df2nHIMmMSyrjknd9PN8im8vw6p5h0+tn4iUPAsjkPLI5j9FE
-DgKKzXmoSwgAzwsYGEmTy/tc2DObzbsPk854xTLyrsf+wclmvZ7ONnb1HiXneviZAAiwLIuOlhi/
-e915xQZKODXYljXJ/LduyyGeXL+XRDpPEAQMDKcpNNGlnYybLl5E15xm9g8kiEZMwEcq61JwOkYj
-Ns3xiPFF+j7JTJ6cax6WZPjMBUGK3qEEy992VlEZrN18kJ88u49s3iUI4IVtA6y8qKvhlEVDKIk5
-bTFGErlqizEjPK/aEpw6CmaFSgRBgBfA0eTEPSs3/wThf6WvamEkUdAoFsauPZrM4bqTTUieD6mM
-xwvbB4o9xauXLQDghe0D7OsfJ5f3sCzL/IOGahiqQXl00/6BcZKZPIW7n3O9Kc2HL+4YZHgsi21b
-eH7A7PYYrueTy/tgge+bUcW82c0cHk2TyZtOY6HjkXN9RsazWBZs2X242HHYsGOQ8VQOzw/w/YA3
-+sZIhh3ORvEXQoMoiXS+GnFMQiWuXb6QgImIk9mtMeNwboqQd30sC3zv+FF3jgWEIa5Rx2ZJ9yzy
-YUOSd30c2yratf0poviSmTwDw6Y3WVBa169YxLXLF/LVH25iT5+JVAkIODCYODk/XqhIwQxZiG4C
-yHt+0UQUizhFX0FpJ2NkPFt0TANYWEQc2yiJADyCosnSti0itl0coRYojDCD4NiRbnkEaKM5tRtC
-SWTzZ3C3vA6xw555MmN6ZYl0np7ONobHI6QyLuncsffLCrt9QbEM6JzTzNyOJsCENl6zfCHPbu3j
-hR2DjI5nmd0WZ+VS40fY1z+O602YHSOOxZz2ONmcx/BYhoht8fMN+3lmYy8989uY3RorNiyJVJ50
-HZos643S6CYvnD9kARYBjmPjBwF6/wj/8z0XFo9f3NnKc9v6GRxJh6PLgEzWpb0lasKXMc+K6/kM
-j2Xw/YBY1JRV2F+KZU04ra9c2sXAcJpkJk/e9WmJRyYFVjSK2akhlMSFPbN59rWBaosxI1qbnGqL
-cEophJvmXBPFMjyeYXAkQ6aCQi+YBgo0xyPctvKcSSGp67YcKsa6x6IOV13UVZxv4QcB//GbPSQz
-Li3xCG8/bw7b9o4ylsxNlJvI4dgW/cMpzprVRDRik3d9ohGbpnhDvCpVpTS6KYk7KaIsnfXI5X2e
-3zbA4GiaT99xGWBGH0fHTVRT4T4eTeaw0+bcjpYYYDqKedfHdX1s28K2YKonbcHclqID/brlC7Ew
-z2o66/JG3xgj41kGhoOiT6QRzE4N8eS/rbuD514bOMauXcu0xM9cJeEHAXv7xxgJnfNJy0xw9Pyp
-zYIRx8KxLTzPLzqnO1pjXLNswaQIlIOHJ5uEeoeSxf0v6SEijsOieXGSaZetu4dJl86FCCn0YI8c
-zeCGpo4g79Vl8EO9cfWyBew8MMr2fSPEI7YJIAhNQECx57/70Bj3PfwCLXGHwdEM6aw76T76gTFX
-WhgH9pz2OJZlmRBZwPd8muMR8t7kexqP2py7sKM4Oih1pK/bcoitbxzB9wPGU3nAahizU0MoiWc2
-HqwrBQEwPJ4//kF1yvqtfQyMmHkrfgBWEDCWypnRQsmNsiwzIlg8r4W+IylyeTOasC0TDvvYf+4o
-9u5a4pGw52k81znXI5XJs27zQX763H7Gwhj6IAjIez6ZnHeMrbmAHxhbeBAaqpuaIjTLSOKU89wr
-/ezYP1r0L5j6P3YUGQTQdyQFHLuvlAATxZbNe6QyE85qLAvbtohHHVzXx8eEQceiDj2dbVOW1TuU
-LM7fAGMSa5S5FA3x5NenT6Le1Nr0KbxwScuFIChGKpX+YtsyMe1tTVFGE/kwysg0EBHHBgs2bB8s
-OiDzrs+s1ijprGkUIo7N/sFxXnnjCOPpfFH5JDN5Io5tFMSbVHGp/khn3YZpEKpJ71CyONsaKCp9
-x7bIVwhkON5b4vkmBN73jQ+iKeYQi9gsnNfKnLY4BwbHOTKWJef6dM1pLka4TTXhUx+IEBCQyri0
-NUcJQjPmme6XaAglUY8+iTO557q4sxV9YIRMzi06r0uJOCbs1LEtWpsjjIxnyeUnolFcz2csaUIT
-C9s8P+BoIo8Xtu5512dwJE3O9Sc1+BHH5uyuNvqHU6TD1Byz22Jk8x7prEdrU4TRRG6SUzOA0HMu
-nEoWd7ZO6q03xYzJNRKxcSyLuR1x9vSNV3Q425ZFPGqTc308b+LZyGQ9M6HOMiGyF507l7tvXwrA
-957azkgiR0dLjJzr89wr/Vy/YhG/2XJo0hyJnq42YhGbwA/CqDmbNZsPYZXN7TgTOXNbohKW9Mzi
-+W0DTPFs1SyFSUFnIsWZtYMJ9vaPHfPiB4GxDzfFjAnJ9wNc3z9ut9ELJjfs2bxPxLFww16oZcE5
-C9pZubSL1ZsO0hEODm4Jk8AV8v+UX6g5ZrIDC6eWQmj0C9v6GU1kIbBIZV2ijoXqmcMHbruAB/5p
-M7sPjRUVf8SxQlORTSzqcGHPbPb0j4cdC+PT8AECsJmY7/DAE5sBE95aiJCDiQirwhyJgtlx14Gj
-2LZlRg9+wOGjGc6a1dQQfomGUBIbtw/VlYKAiV7UmUipQ9APAr731HY27hzC9XxcLyDiGHvxBT2z
-2Ns/Tt71zUQ5jE254Mc4XgJjy4JYxMb3TWNhWxazWqPsODDKeCpHPOrwW5cvLiotvX+El3cdDifP
-mcJbmiLMm9Uk5qbTgG1Z3LBiERbw5Pq9jCZMyKrtWLykB9n8usnkO7s1RjrnMac9zq1X9GADBw+n
-ihlgY1FnYmJlKZaF6/kMDKcYGE5hhSOP5ni0mMOp9D6bIIbSzxPf0zmPZLoxzJANoSRGEtXP/jpT
-zu0685ZBnArbsrj79qVc0DO7mMW18MLu7R/nyNFMOOPVjK68IMDyjR342NikCSygrSlCa3OUnJsh
-CEcTL+0wHQbHtkiQ5/WDY9x4yWIARpM58q5fnB/hOFZx5HGtpOQ4bRR8E0VTohfgeQHZvG8cz00R
-uua2cMHi2dx0cXfxvH96elfxsx/2KKwS11MsYodRdGaj8SlA19xmuue1FfMzgZkj8cahMfyyvGC2
-bcyO0YhN19zmhnguGkJJzG6LFaMh6oWjqTM3uqmc0pFF6XoQhYADJ3wx41GH2e1xBoYLkS0ToS/l
-6iIasYlFI8ztaCKZcYt2btfzJ/kXymdSl5YTcWy657Wd8TbnWqPgm0gxObS1ELyWCzO7lvfiy9O9
-2JbJ7BcA7c1RrrhwPq/tHWZwJD1pBv7KpV3H3OPrli9k14FRtuw+XFQOzTGHVNYlHo3Q1hJl5dKu
-M95pDQ2iJFZetIDdB48Wk3pNl4mAyrcWaxRxLBwLstO8/pn/2E1NoVdWiCjZeWCUF8OV4RzbYvmS
-s7h06QJ+sGoHOdcr+m08PyCXN98jjk1Ha4w57fFi1taB4XRRSUQce5L/o2f+RMjjlUu72Nc/Tjrn
-YWFMTY1gTqg1imlbtg0wksiSybmMJfPYlhkhzJvVVFxQqvw8CJ+fea3s2D9CzvWJRRx+59pzuWHF
-ItZuOcRP1u8Nc0LBZRd0TjkaKIxwSyOcCqnpS7PCNgINoSSuW76QIAj4xYsHOHI0Q4CxLZrEX5OV
-geNYnL+og7NmNdMUd0hnXEYSOUYT2WJc/ay2GMNjWUbGswQBnNURY0n3LEYTeUbGM6SyLo5lEYnY
-tDZH6T6rlf/xW+fzV4+8xJGjGZMszraIRmyWnTcHy7F5cfsQnm8mAM1pb8y01OVZQAvhiAcGE/TM
-b+PO91xIV2cHiUSmuMQolkVvOCO2NM1zoYdX6DFuCJXN5aqT3QfHJpVZoJDltXQVs0ZpCGqJgm+i
-MJt+zpxW7n/8xUn3bKrlfct9XeVpvmFiFvV00n+XP4/QGDOsy2mY5UtLKc822RRzyOS8KRuZt8p0
-lzSsdu76Olp6seblrAcZQeQ82dSRnLJ86fGYqodQbWpRJkEQhDM3GF8QBEF4y4iSEARBECoiSkIQ
-BEGoSM34JJRSFvBNYAWQAf5Ea/1GdaUSBEFobGppJPE+IK61vga4F3igyvIIgiA0PLWkJK4Dfg6g
-tX4BuLy64giCIAi1pCQ6gKMl312lVC3JJwiC0HDUjE8CGANKs9rZWuup17M0WJ2d9ZEET+Q8udSD
-nPUgI4icJ5t6kXMm1FJPfT3wHgCl1FXAK9UVRxAEQailkcS/AbcqpdaH3++upjCCIAhCfeduEgRB
-EE4xtWRuEgRBEGoMURKCIAhCRURJCIIgCBWpJcf1tKj19B1KqZXA/9Va36yUWgI8CvjAq1rrj1RV
-OEApFQEeAc4FYsCXgG3Unpw28BCgMHJ9GMhSY3IWUErNB14C3gV41KCcSqmNTMxF2gN8mdqU89PA
-7wJRzLu+lhqTUyl1J3AXZr2yZkx7dD3wNWpLzgjwGOZ9d4E/ZYbPZz2OJGo2fYdS6s8xDVs83PQA
-8Bmt9Y2ArZR6b9WEm+AO4LDW+gbgNuAb1KacvwMEWuvrgPswDVotyll4Ef8BKCykXnNyKqXiAFrr
-W8J/f0xtynkjcHX4ft8EnE0Nyqm1fkxrfbPW+hZgI/Ax4HPUmJyYaQWO1vpa4K84gfeoHpVELafv
-eB34vZLvl2mt14Wff4bpZVabf8Y0ugAOpndxaa3JqbX+D+CD4ddzgBFqUM6Q+4FvAYcwq+DWopwr
-gFal1Cql1NPhiLcW5fxt4FWl1L8DTwI/pTblBEApdTlwkdb6YWrzfd8JREILzCwgzwzrsx6VRM2m
-79Ba/xum0S1QukzgOOYmVRWtdUprnVRKtQP/AnyWGpQTQGvtK6UeBb4O/IAalFMpdRcwqLX+JRPy
-lT6PNSEnZpTzt1rr3wb+DPhHarA+gXnAZcB/Y0LOWqzPAvcCX5hie63ImQDOA3YA38a8SzO67zXR
-uM6QmabvqCalcrUDo9USpBSlVA+wGnhMa/1DalROAK31XcAFwMMY22+BWpHzbswk0DWY3vr/AzpL
-9teKnDsxDS5a613AEaCrZH+tyHkEWKW1drXWOzF+x9JGrFbkRCk1C7hAa7023FSL79EngJ9rrRUT
-z2esZP9x5axHJVFP6TteVkrdEH5+N7DuzQ4+HSiluoBVwKe01o+FmzfVoJx3hA5MMA2FB7wU2qyh
-RuTUWt8Y2qZvBjYDfwT8rNbqE/hfwFcBlFKLMCPyX9RafQK/wfjKCnK2As/UoJwANwDPlHyvufcI
-GGbC8jKKCVbaNJP6rLvoJuorfccngYeUUlFgO/CjKssDZng8G7hPKfU5THTGx4EHa0zOHwPfU0r9
-GvOcfgwzZH64xuScilq879/F1Oc6TI/3LkyvvabqU2v9lFLqeqXUBoxZ5M+AvdSYnCEKKI2srMX7
-/jXgEaXUWky02KcxjvZp16ek5RAEQRAqUo/mJkEQBOE0IUpCEARBqIgoCUEQBKEioiQEQRCEioiS
-EARBECoiSkIQBEGoSD3OkxCqhFLqHMzM3deYmNofAA9prb81zTLWAJ8vmaU6UxmmPF8p9T1gDfDL
-UJ7/eiLlvxWUUqvDhG8ncu6fAmNa6yeOc5yvtbaVUh/CJED8zolc70RQSi2kSnUrVA9REsJMOai1
-vrTaQlRCa90HVKsRu+ktnHsNRskdjwBAa/3tt3CtE6LKdStUCVESwklDKdUH/ASTV78PsxbAx4Bu
-4K6SzJMfUkr9Xfj5/2itf62UagX+Hng7Jjvt32itn1BKxTB5my4D9gFnlVzvAeB2TPZVB1gTjnZ+
-pbU+LxxdHA3P7Qb+Umv9qFKqA5PDZglmXYXFwPu01vtLyrYws1XfiZmh/H2t9VfCdAZfCNNwFEYw
-vwIuDb8/p7W+Wik1FNbFZZh8Yx/QWu9XSu0Bbgw/34hJDvfXmPUTblZK9YXJAgtynAN8H5Oe4oWS
-7Z/HjCT+cjr1Hq5t8i1gLibZ30e11lumqKMvaq0fU0q9E/ib8LePAH+AyfNTqNv5mFncZ2Myi35W
-a70qlKsb+C/hvu9qrb+slFoGfCe8Txngbq31boSaR3wSwkzpVkq9HP7bFP59e7ivC3hSa700/P6+
-cN2KLwL3lJQxrrW+DJMa4vEwPcBfAC9pra8AbgT+Qil1LvBRTGP4dkzDtwRAKfX7mIRlS4H3A+eX
-lF+aRmCx1vp6TCN8f7jt88AOrfWyULZlU/zOD4fnvgNYCfy+UurdU5RPKN/HAbTWV4fbzgJWa61X
-AE9gsm9ORaC1fgaTFvtzpQoi5BvAI+Hobf0xZxumU++PAX+utb4c+FAoU4HSOvpquO2zwIe01ldi
-FFBh9Fj47Q8Cz4S/7/2Y1A+FxIbLMOmnrwI+HSrlTwD3h+U9GO4T6gBREsJMOai1vjT8d0n497Vw
-X0C41gem17+65POckjK+C6C1fgUYxDT07wI+rJTahFmJrBkzqrgJswYGWuvXgWfDMm4Cfqy19rXW
-h4H/rCDvL8JzXy2R4V3A4+H2jcDWKc67BbN6F1rrNCaD6jsrVcoUpLXW3w8/PxaWdyLcRPj7Qxny
-FY6rWO/hKO0KTO6mTZi06y1KqUJ9TFVHTwL/rpR6EKNQny673i1M3Mc9wPMYZQqwRmvtaa2HMPmh
-ZgFPAX+vlHo4/A0/mHYNCFVFlIRwUtFal66n4VY4rHS7DeQwZog7QsVzCcZGvwqjeEqfUy/8W769
-0rUyU2zzys61pjim/N2wMObZ8utGK1y3NG10YXEnwvML16t0bnk5NoDWOigrt8hx6t3BKK1LS+r3
-Kq31SLj/mDrSWn8NM6LbBXxFKXVv2SHl9WMzYb4uL8/SWv8rcAnGZHYPZm0DoQ4QJSHMlKka1Ons
-K+UDUFzVqx3TEK0G/ne4fSGmd98DPA38oVLKCu3z14RlPA28XykVC3vEt81A9l8CfxheaxlmxFJu
-QloN3KmUspVSLaHMa4DDwHnhdedi/AAFShfAalVK3R5+vpuJkc5QeD2A0mUjXaZWGk9j0o8XTGzx
-KY55U7TWY8AupVSh3m/FjNYqopR6HujQWn8d+DsmzE0FngH+JDz2bZj78tyblPdDYKXW+iHMJXzW
-VQAAAVRJREFUyoiXzPR3CNVBHNfCTFmolHq5bNtarfU9TG5oK6UXDoC2sAwX+AOttaeU+iLwTaXU
-K5jOyye11nuUUt8E3gFsw5hPXgHQWj+plLoCeBXjrH2twrWm+v7XGNPLZmA30A+ky479Nmaxoy2Y
-9+TxcElVlFJPhdfby+TG9klgS6j8wCixLwMHgTvDbV/ApGX/PGakVOBp4EtKqRGt9Y9Ltn8U47f5
-IPAixgn+Zr+zUr3fAfyDUupTQBb478c5/jPAo0opF+Po/nDZ/o8D31FK3Y0Z3fyx1npAKVVJti9j
-0lPfhzE3faLCdYUaQ1KFCw1H2KN+Q2v9XLhK36+01ktO8jV8rbWM1IW6R0YSQiOyA9OrLvgKPngK
-riG9L+GMQEYSgiAIQkVkOCwIgiBURJSEIAiCUBFREoIgCEJFREkIgiAIFRElIQiCIFRElIQgCIJQ
-kf8PCsz+fJ3oB8IAAAAASUVORK5CYII=
-"
->
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[16]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">log_path</span> <span class="o">=</span> <span class="n">get_path</span><span class="p">(</span><span class="s2">&quot;models_class1_allele_specific_ensemble&quot;</span><span class="p">,</span> <span class="s2">&quot;GENERATE.sh&quot;</span><span class="p">)</span>
-<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">log_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">fd</span><span class="p">:</span>
-    <span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s2">&quot;&lt;h1&gt;Model selection invocation&lt;/h1&gt;&lt;pre&gt;</span><span class="si">%s</span><span class="s2">&lt;/pre&gt;&quot;</span> <span class="o">%</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(),</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt"></div>
-
-<div class="output_html rendered_html output_subarea ">
-<h1>Model selection invocation</h1><pre>#!/bin/bash
-
-if [[ $# -eq 0 ]] ; then
-    echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train'
-    echo 'See README.md'
-fi
-
-set -e
-set -x
-
-DOWNLOAD_NAME=models_class1_allele_specific_ensemble
-SCRATCH_DIR=/tmp/mhcflurry-downloads-generation
-SCRIPT_ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
-SCRIPT_DIR=$(dirname "$SCRIPT_ABSOLUTE_PATH")
-export PYTHONUNBUFFERED=1
-
-mkdir -p "$SCRATCH_DIR"
-rm -rf "$SCRATCH_DIR/$DOWNLOAD_NAME"
-mkdir "$SCRATCH_DIR/$DOWNLOAD_NAME"
-
-# Send stdout and stderr to a logfile included with the archive.
-exec >  >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt")
-exec 2> >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt" >&2)
-
-# Log some environment info
-date
-pip freeze
-git rev-parse HEAD
-git status
-
-cd $SCRATCH_DIR/$DOWNLOAD_NAME
-
-mkdir models
-
-cp $SCRIPT_DIR/models.py .
-python models.py > models.json
-
-time mhcflurry-class1-allele-specific-ensemble-train \
-    --ensemble-size 16 \
-    --model-architectures models.json \
-    --train-data "$(mhcflurry-downloads path data_combined_iedb_kim2014)/combined_human_class1_dataset.csv" \
-    --min-samples-per-allele 20 \
-    --out-manifest selected_models.csv \
-    --out-model-selection-manifest all_models.csv \
-    --out-models models \
-    --verbose \
-    "$@"
-
-bzip2 all_models.csv
-cp $SCRIPT_ABSOLUTE_PATH .
-tar -cjf "../${DOWNLOAD_NAME}.tar.bz2" *
-
-echo "Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2"
-</pre>
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-<div class="cell border-box-sizing code_cell rendered">
-<div class="input">
-<div class="prompt input_prompt">In&nbsp;[17]:</div>
-<div class="inner_cell">
-    <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">log_path</span> <span class="o">=</span> <span class="n">get_path</span><span class="p">(</span><span class="s2">&quot;models_class1_allele_specific_ensemble&quot;</span><span class="p">,</span> <span class="s2">&quot;LOG.txt&quot;</span><span class="p">)</span>
-<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">log_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">fd</span><span class="p">:</span>
-    <span class="n">lines</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">readlines</span><span class="p">(</span><span class="mi">100000</span><span class="p">)</span>
-    <span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s2">&quot;&lt;h1&gt;Model selection log (beginning)&lt;/h1&gt;&lt;pre&gt;</span><span class="si">%s</span><span class="s2">&lt;/pre&gt;&quot;</span> <span class="o">%</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lines</span><span class="p">),</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</pre></div>
-
-</div>
-</div>
-</div>
-
-<div class="output_wrapper">
-<div class="output">
-
-
-<div class="output_area"><div class="prompt"></div>
-
-<div class="output_html rendered_html output_subarea ">
-<h1>Model selection log (beginning)</h1><pre>+ date
-Thu Mar 16 13:18:34 UTC 2017
-+ pip freeze
-alabaster==0.7.9
-anaconda-clean==1.0
-anaconda-client==1.5.1
-anaconda-navigator==1.3.1
-appdirs==1.4.0
-argcomplete==1.0.0
-astroid==1.4.7
-astropy==1.2.1
-Babel==2.3.4
-backports.shutil-get-terminal-size==1.0.0
-beautifulsoup4==4.5.1
-biopython==1.68
-bitarray==0.8.1
-blaze==0.10.1
-bokeh==0.12.2
-boto==2.42.0
-bottle==0.12.13
-Bottleneck==1.1.0
-cffi==1.7.0
-chest==0.2.3
-click==6.6
-climate==0.4.6
-cloudpickle==0.2.1
-clyent==1.2.2
-colorama==0.3.7
-conda==4.2.9
-conda-build==2.0.2
-configobj==5.0.6
-contextlib2==0.5.3
-cryptography==1.5
-CVXcanon==0.1.1
-cvxpy==0.4.8
-cycler==0.10.0
-Cython==0.24.1
-cytoolz==0.8.0
-dask==0.11.0
-datacache==0.4.20
-datashape==0.5.2
-decorator==4.0.10
-dill==0.2.5
-docutils==0.12
-downhill==0.4.0
-dynd==0.7.3.dev1
-ecos==2.0.4
-et-xmlfile==1.0.1
-fancyimpute==0.1.0
-fastcache==1.0.2
-filelock==2.0.6
-Flask==0.11.1
-Flask-Cors==2.1.2
-gevent==1.1.2
-google-api-python-client==1.5.5
-greenlet==0.4.10
-gtfparse==0.0.6
-h5py==2.6.0
-HeapDict==1.0.0
-httplib2==0.9.2
-humanize==0.5.1
-idna==2.1
-imagesize==0.7.1
-ipdb==0.10.2
-ipykernel==4.5.0
-ipython==5.1.0
-ipython-genutils==0.1.0
-ipywidgets==5.2.2
-itsdangerous==0.24
-jdcal==1.2
-jedi==0.9.0
-Jinja2==2.8
-joblib==0.10.3
-jsonschema==2.5.1
-jupyter==1.0.0
-jupyter-client==4.4.0
-jupyter-console==5.0.0
-jupyter-core==4.2.0
-Keras==1.2.0
-knnimpute==0.0.1
--e git+git@github.com:hammerlab/kubeface.git@91fa80a571b9f870c4ec945b834a97fdf863fbc7#egg=kubeface
-lazy-object-proxy==1.2.1
-llvmlite==0.13.0
-locket==0.2.0
-lxml==3.6.4
-MarkupSafe==0.23
-matplotlib==1.5.3
-memoized-property==1.0.3
--e git+git@github.com:hammerlab/mhcflurry.git@2925ce8d6c08e8ac0170504b06f1be384a0fc169#egg=mhcflurry
-mhcnames==0.1.0
-mhctools==0.4.1
-mistune==0.7.3
-mock==2.0.0
-mpmath==0.19
-multipledispatch==0.4.8
-multiprocess==0.70.4
-nb-anacondacloud==1.2.0
-nb-conda==2.0.0
-nb-conda-kernels==2.0.0
-nbconvert==4.2.0
-nbformat==4.1.0
-nbpresent==3.0.2
--e git+git@github.com:hammerlab/neon.git@f343737d19e1b9509137bf63b9d291d2d8c8bcaf#egg=neon
-networkx==1.11
-nltk==3.2.1
-nose==1.3.7
-notebook==4.2.3
-numba==0.28.1
-numexpr==2.6.1
-numpy==1.11.1
-oauth2client==4.0.0
-odo==0.5.0
-openpyxl==2.3.2
-pandas==0.18.1
-parse==1.6.6
-partd==0.3.6
-path.py==0.0.0
-pathlib2==2.1.0
-patsy==0.4.1
-pbr==1.10.0
-pep8==1.7.0
-pepdata==0.7.0
-pexpect==4.0.1
-pickleshare==0.7.4
-Pillow==3.3.1
-pkginfo==1.3.2
-plac==0.9.6
-ply==3.9
-progressbar33==2.4
-prompt-toolkit==1.0.3
-psutil==4.3.1
-ptyprocess==0.5.1
-py==1.4.31
-pyasn1==0.1.9
-pyasn1-modules==0.0.8
-pycosat==0.6.1
-pycparser==2.14
-pycrypto==2.6.1
-pycurl==7.43.0
-pyensembl==1.0.3
-pyflakes==1.3.0
-Pygments==2.1.3
-pylint==1.5.4
-pyopen==0.0.6
-pyOpenSSL==16.0.0
-pyparsing==2.1.4
-pytest==2.9.2
-python-dateutil==2.5.3
-pytz==2016.6.1
-PyVCF==0.6.8
-PyYAML==3.12
-pyzmq==15.4.0
-QtAwesome==0.3.3
-qtconsole==4.2.1
-QtPy==1.1.2
-redis==2.10.5
-requests==2.11.1
-rope-py3k==0.9.4.post1
-rsa==3.4.2
-ruamel-yaml===-VERSION
-scikit-image==0.12.3
-scikit-learn==0.18.1
-scipy==0.18.1
-scs==1.2.6
-seaborn==0.7.1
-sercol==0.0.2
-serializable==0.1.1
-simplegeneric==0.8.1
-simplejson==3.10.0
-singledispatch==3.4.0.3
-six==1.10.0
-sklearn==0.0
-snowballstemmer==1.2.1
-sockjs-tornado==1.0.3
-Sphinx==1.4.6
-spyder==3.0.0
-SQLAlchemy==1.0.13
-statsmodels==0.6.1
-sympy==1.0
-tables==3.2.3.1
-terminado==0.6
-Theano==0.8.2
-tinytimer==0.0.0
-toolz==0.8.0
-tornado==4.4.1
-traitlets==4.3.0
-typechecks==0.0.2
-unicodecsv==0.14.1
-uritemplate==3.0.0
-varcode==0.5.11
-wcwidth==0.1.7
-Werkzeug==0.11.11
-widgetsnbextension==1.2.6
-wrapt==1.10.6
-xlrd==1.0.0
-XlsxWriter==0.9.3
-xlwt==1.1.2
-You are using pip version 8.1.2, however version 9.0.1 is available.
-You should consider upgrading via the 'pip install --upgrade pip' command.
-+ git rev-parse HEAD
-2925ce8d6c08e8ac0170504b06f1be384a0fc169
-+ git status
-On branch add-class1-ensemble
-Your branch is up-to-date with 'origin/add-class1-ensemble'.
-nothing to commit, working directory clean
-+ cd /tmp/mhcflurry-downloads-generation/models_class1_allele_specific_ensemble
-+ mkdir models
-+ cp /home/tim/sinai/git/mhcflurry/downloads-generation/models_class1_allele_specific_ensemble/models.py .
-+ python models.py
-Using Theano backend.
-/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
-  "This module will be removed in 0.20.", DeprecationWarning)
-Models: 162
-++ mhcflurry-downloads path data_combined_iedb_kim2014
-Using Theano backend.
-/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
-  "This module will be removed in 0.20.", DeprecationWarning)
-+ mhcflurry-class1-allele-specific-ensemble-train --ensemble-size 16 --model-architectures models.json --train-data /home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv --min-samples-per-allele 20 --out-manifest selected_models.csv --out-model-selection-manifest all_models.csv --out-models models --verbose --parallel-backend kubeface --target-tasks 10000 --kubeface-backend kubernetes --kubeface-storage gs://kubeface-tim --kubeface-worker-image hammerlab/mhcflurry-misc:latest --kubeface-kubernetes-task-resources-memory-mb 6000 --kubeface-worker-path-prefix venv-py3/bin --kubeface-max-simultaneous-tasks 200 --kubeface-speculation-max-reruns 3 --kubeface-cache-key-prefix tim-note-tim-2017-03-12-16-37-22-27499bde
-Using Theano backend.
-/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
-  "This module will be removed in 0.20.", DeprecationWarning)
-To show stack trace, run:
-kill -s USR1 992
-INFO:root:Running with arguments: Namespace(alleles=None, dask_scheduler=None, ensemble_size=16, kubeface_backend='kubernetes', kubeface_cache_key_prefix='tim-note-tim-2017-03-12-16-37-22-27499bde', kubeface_kubernetes_cluster=None, kubeface_kubernetes_image_pull_policy='Always', kubeface_kubernetes_retries=12, kubeface_kubernetes_task_resources_cpu=1, kubeface_kubernetes_task_resources_memory_mb=6000.0, kubeface_local_process_docker_command='docker', kubeface_max_simultaneous_tasks=200, kubeface_never_cleanup=False, kubeface_poll_seconds=30.0, kubeface_speculation_max_reruns=3, kubeface_speculation_percent=20, kubeface_speculation_runtime_percentile=99, kubeface_storage='gs://kubeface-tim', kubeface_wait_to_raise_task_exception=False, kubeface_worker_image='hammerlab/mhcflurry-misc:latest', kubeface_worker_kubeface_install_command='{pip} install https://github.com/hammerlab/kubeface/archive/master.zip', kubeface_worker_kubeface_install_policy='if-not-present', kubeface_worker_path_prefix='venv-py3/bin', kubeface_worker_pip='pip', kubeface_worker_pip_packages=[], max_models=None, min_samples_per_allele=20, model_architectures=<_io.TextIOWrapper name='models.json' mode='r' encoding='UTF-8'>, num_local_processes=None, num_local_threads=1, out_manifest='selected_models.csv', out_model_selection_manifest='all_models.csv', out_models_dir='models', parallel_backend='kubeface', quiet=False, target_tasks=10000, train_data='/home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv', verbose=True)
-Using parallel backend: <Kubeface backend, client=<kubeface.client.Client object at 0x7fe5429fdac8>>
-INFO:root:Read 162 model architectures
-INFO:root:Loaded training data: Dataset(n=192550, alleles=['ELA-A1', 'Gogo-B0101', 'H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KBM8', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'H-2-LQ', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0204', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0210', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A1', 'HLA-A11', 'HLA-A1101', 'HLA-A1102', 'HLA-A2', 'HLA-A2301', 'HLA-A24', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A26', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3', 'HLA-A3/11', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A7401', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B27', 'HLA-B2701', 'HLA-B2702', 'HLA-B2703', 'HLA-B2704', 'HLA-B2705', 'HLA-B2706', 'HLA-B2710', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3508', 'HLA-B3701', 'HLA-B3801', 'HLA-B39', 'HLA-B3901', 'HLA-B40', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4202', 'HLA-B44', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B51', 'HLA-B5101', 'HLA-B5201', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5702', 'HLA-B5703', 'HLA-B58', 'HLA-B5801', 'HLA-B5802', 'HLA-B60', 'HLA-B62', 'HLA-B7', 'HLA-B7301', 'HLA-B8', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA102101', 'HLA-BOLA200801', 'HLA-BOLA201201', 'HLA-BOLA402401', 'HLA-BOLA601301', 'HLA-BOLA601302', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-C4', 'HLA-E0101', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'HLA-RT1BL', 'HLA-SLA10401', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B04', 'Mamu-B06502', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0602', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B0901', 'Patr-B1301', 'Patr-B1701', 'Patr-B2401'])
-INFO:root:Filtered training dataset to alleles with >= 20 observations: Dataset(n=192177, alleles=['H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A11', 'HLA-A1101', 'HLA-A2', 'HLA-A2301', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B2703', 'HLA-B2705', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3701', 'HLA-B3801', 'HLA-B3901', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B5101', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5703', 'HLA-B5801', 'HLA-B5802', 'HLA-B7', 'HLA-B7301', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA601301', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B1301', 'Patr-B2401'])
-INFO:root:Imputing: 16 tasks, imputation args: {'impute_min_observations_per_peptide': 3, 'imputer_args': {'n_imputations': 50, 'n_burn_in': 5, 'n_nearest_columns': 25}, 'impute_method': 'mice', 'impute_min_observations_per_allele': 3}
-Job status available at:
-	https://storage.cloud.google.com/kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json	[ gs://kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json ]
-	https://storage.cloud.google.com/kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html	[ gs://kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html ]
-WARNING:googleapiclient.discovery_cache:file_cache is unavailable when using oauth2client >= 4.0.0
-Traceback (most recent call last):
-  File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/__init__.py", line 36, in autodetect
-    from google.appengine.api import memcache
-ImportError: No module named 'google'
-
-During handling of the above exception, another exception occurred:
-
-Traceback (most recent call last):
-  File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 33, in <module>
-    from oauth2client.contrib.locked_file import LockedFile
-ImportError: No module named 'oauth2client.contrib.locked_file'
-
-During handling of the above exception, another exception occurred:
-
-Traceback (most recent call last):
-  File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 37, in <module>
-    from oauth2client.locked_file import LockedFile
-ImportError: No module named 'oauth2client.locked_file'
-
-During handling of the above exception, another exception occurred:
-
-Traceback (most recent call last):
-  File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/__init__.py", line 41, in autodetect
-    from . import file_cache
-  File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 41, in <module>
-    'file_cache is unavailable when using oauth2client >= 4.0.0')
-ImportError: file_cache is unavailable when using oauth2client >= 4.0.0
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/discovery/v1/apis/storage/v1/rest
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000&alt=json&maxResults=100000
-INFO:oauth2client.transport:Attempting refresh to obtain initial access_token
-INFO:root:Submitting 200 tasks
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000000+0+1489457655+1489457740++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000001+1+1489457864+1489457929++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000002+0+1489457663+1489457721++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000003+0+1489457666+1489457726++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000004+0+1489457670+1489457730++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000005+0+1489457673+1489457758++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000006+0+1489457677+1489457770++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000007+0+1489457680+1489457744++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000008+1+1489457864+1489457929++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000009+0+1489457688+1489457749++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000010+0+1489457692+1489457802++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000011+0+1489457696+1489457783++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000012+0+1489457700+1489457809++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000013+0+1489457704+1489457802++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000014+0+1489457708+1489457792++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000015+1+1489457864+1489457923++value
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000&alt=json&maxResults=100000
-INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/upload/storage/v1/b/kubeface-tim/o?uploadType=multipart&alt=json
-INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/upload/storage/v1/b/kubeface-tim/o?uploadType=multipart&alt=json
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000&alt=json&maxResults=100000
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000000%2B0%2B1489457655%2B1489457740%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:21 2017
- *              run time : 0:01:18.176892
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000000-700a7d3f
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000000
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000000+0+1489457655+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000001%2B1%2B1489457864%2B1489457929%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:17:49 2017
- *              run time : 0:00:58.846496
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000001-ffcc73bc
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000001
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000001+1+1489457864+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000002%2B0%2B1489457663%2B1489457721%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:27 2017
- *              run time : 0:00:52.098150
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000002-8d3af68e
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000002
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000002+0+1489457663+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000003%2B0%2B1489457666%2B1489457726%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:31 2017
- *              run time : 0:00:53.772626
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000003-d1067c7f
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000003
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000003+0+1489457666+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000004%2B0%2B1489457670%2B1489457730%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:36 2017
- *              run time : 0:00:53.499716
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000004-dc19071a
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000004
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000004+0+1489457670+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000005%2B0%2B1489457673%2B1489457758%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:38 2017
- *              run time : 0:01:18.616956
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000005-839b9d82
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000005
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000005+0+1489457673+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000006%2B0%2B1489457677%2B1489457770%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:42 2017
- *              run time : 0:01:26.611738
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000006-20b45486
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000006
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000006+0+1489457677+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000007%2B0%2B1489457680%2B1489457744%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:46 2017
- *              run time : 0:00:56.961026
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000007-5eefd3f5
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000007
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000007+0+1489457680+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000008%2B1%2B1489457864%2B1489457929%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:17:49 2017
- *              run time : 0:00:58.927556
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000008-524729ed
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000008
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000008+1+1489457864+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000009%2B0%2B1489457688%2B1489457749%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:53 2017
- *              run time : 0:00:54.847812
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000009-502c6a6d
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000009
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000009+0+1489457688+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000010%2B0%2B1489457692%2B1489457802%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:14:57 2017
- *              run time : 0:01:43.951529
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000010-1b765a46
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000010
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000010+0+1489457692+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000011%2B0%2B1489457696%2B1489457783%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:15:03 2017
- *              run time : 0:01:19.163020
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000011-47f45acf
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000011
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000011+0+1489457696+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000012%2B0%2B1489457700%2B1489457809%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:15:07 2017
- *              run time : 0:01:41.604208
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000012-2408acf0
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000012
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000012+0+1489457700+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000013%2B0%2B1489457704%2B1489457802%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:15:10 2017
- *              run time : 0:01:30.512149
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000013-74fc3d7a
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000013
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000013+0+1489457704+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000014%2B0%2B1489457708%2B1489457792%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:15:15 2017
- *              run time : 0:01:16.764111
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000014-be568f1b
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000014
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000014+0+1489457708+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000015%2B1%2B1489457864%2B1489457923%2B%2Bvalue?alt=media
-DEBUG:root:Download 100%.
-DEBUG:root:Result (success): 
- *           result type : value
- *            start time : Tue Mar 14 02:17:49 2017
- *              run time : 0:00:52.669978
- *              hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000015-2dc3bbf2
- *              platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty
- *        python version : 3.4.3 (default, Nov 17 2016, 01:08:31) 
- *                         [GCC 4.8.4]
- *  invocation arguments : venv-py3/bin/_kubeface-run-task
- *                         gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000015
- *                         gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000015+1+1489457864+{result_time}++{result_type}
- *                         --verbose
- *            input size : 10.0 MiB
- *           result size : 956.0 B
- *     return value type : <class 'list'>
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=active%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html&alt=json&maxResults=100000
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=active%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json&alt=json&maxResults=100000
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=done%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html&alt=json&maxResults=100000
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=done%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json&alt=json&maxResults=100000
-INFO:root:Marking job 'tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332' done: renaming active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html -> done::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html
-INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html/rewriteTo/b/kubeface-tim/o/done%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html?alt=json
-INFO:googleapiclient.discovery:URL being requested: DELETE https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html?
-INFO:root:Marking job 'tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332' done: renaming active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json -> done::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json
-INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json/rewriteTo/b/kubeface-tim/o/done%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json?alt=json
-INFO:googleapiclient.discovery:URL being requested: DELETE https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json?
-INFO:root:Imputation completed.
-INFO:root:Training and scoring models: 9504 tasks (target was 10000), total work: 132 alleles * 16 ensemble size * 162 models = 342144, allele/models per task: (min=36 mean=36.000000 max=36)
-Job status available at:
-	https://storage.cloud.google.com/kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.json	[ gs://kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.json ]
-	https://storage.cloud.google.com/kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.html	[ gs://kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.html ]
-INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAwOTk5KzArMTQ4OTQ2OTY4MCsxNDg5NDczOTg4Kyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAxOTk5KzArMTQ4OTQ4NDQxOCsxNDg5NDg2NjIwKyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAyOTk5KzArMTQ4OTQ5OTU0MCsxNDg5NTAwMjU4Kyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAzOTk5KzArMTQ4OTUxNDUxNSsxNDg5NTE1NzczKyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA0OTk5KzArMTQ4OTUzNzY1MSsxNDg5NTM4NDQxKyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA1OTkzKzArMTQ4OTU5ODE1MisxNDg5NTk5NjAzKyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA2OTkzKzArMTQ4OTYxMjIxNisxNDg5NjE1MjA0Kyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA3OTkzKzArMTQ4OTYyNjI5MisxNDg5NjI3MjU2Kyt2YWx1ZQ%3D%3D
-INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA4OTkzKzArMTQ4OTY0MDc5MSsxNDg5NjQxODkwKyt2YWx1ZQ%3D%3D
-INFO:root:Submitting 200 tasks
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000000+0+1489458019+1489458400++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000001+0+1489458019+1489458434++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000002+0+1489458021+1489458422++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000003+0+1489458021+1489458476++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000004+0+1489458021+1489458540++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000005+0+1489458022+1489458562++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000006+0+1489458022+1489458629++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000007+0+1489458023+1489458656++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000008+0+1489458023+1489458869++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000009+0+1489458024+1489458596++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000010+0+1489595903+1489596458++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000011+0+1489458025+1489458441++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000012+0+1489458025+1489458467++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000013+0+1489458025+1489458503++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000014+0+1489458026+1489458515++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000015+0+1489458026+1489458633++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000016+0+1489458027+1489458556++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000017+0+1489458027+1489458634++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000018+0+1489458028+1489458658++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000019+0+1489458028+1489458958++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000020+0+1489458029+1489458591++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000021+0+1489458029+1489458813++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000022+0+1489595903+1489596632++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000023+0+1489458030+1489458505++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000024+0+1489458031+1489458523++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000025+0+1489458031+1489458547++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000026+0+1489595904+1489596627++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000027+0+1489458032+1489458651++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000028+0+1489458033+1489458723++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000029+0+1489458033+1489458772++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000030+0+1489458034+1489459085++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000031+0+1489458034+1489458677++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000032+0+1489458035+1489458961++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000033+0+1489458035+1489458625++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000034+0+1489458036+1489458532++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000035+0+1489458036+1489458589++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000036+0+1489458037+1489458619++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000037+0+1489595904+1489596492++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000038+0+1489458038+1489458744++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000039+0+1489458038+1489458958++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000040+0+1489595905+1489596441++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000041+0+1489458039+1489459572++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000042+0+1489458040+1489458866++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000043+0+1489458041+1489459228++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000044+0+1489595906+1489596703++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000045+0+1489458042+1489458602++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000046+0+1489595906+1489596653++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000047+0+1489458042+1489458736++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000048+0+1489458043+1489458855++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000049+0+1489458043+1489458868++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000050+0+1489458044+1489459058++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000051+0+1489458045+1489459204++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000052+0+1489458045+1489459723++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000053+0+1489458046+1489458939++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000054+0+1489458046+1489459355++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000055+0+1489458047+1489458660++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000056+0+1489458047+1489458625++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000057+0+1489458048+1489458664++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000058+0+1489458048+1489458779++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000059+0+1489458048+1489458991++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000060+0+1489595907+1489597567++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000061+0+1489458049+1489459214++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000062+0+1489595907+1489597108++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000063+0+1489458050+1489459831++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000064+0+1489595908+1489597561++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000065+0+1489458052+1489459628++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000066+0+1489458052+1489458700++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000067+0+1489458053+1489458746++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000068+0+1489458053+1489458764++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000069+1+1489649935+1489650676++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000070+0+1489458054+1489459238++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000071+0+1489458055+1489459195++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000072+0+1489458055+1489459311++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000073+0+1489458056+1489459636++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000074+0+1489458056+1489460483++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000075+0+1489458057+1489459463++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000076+0+1489458057+1489460044++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000077+0+1489458058+1489458802++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000078+0+1489458058+1489458831++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000079+0+1489458059+1489458924++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000080+0+1489595909+1489597328++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000081+0+1489458060+1489459267++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000082+1+1489649541+1489651104++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000083+0+1489458061+1489459426++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000084+0+1489458062+1489459630++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000085+0+1489458062+1489460680++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000086+0+1489458063+1489459519++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000087+0+1489458063+1489460252++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000088+0+1489458064+1489458834++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000089+0+1489458064+1489458960++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000090+0+1489595910+1489597719++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000091+0+1489458065+1489459041++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000092+0+1489458066+1489459377++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000093+0+1489458066+1489459268++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000094+1+1489649112+1489650749++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000095+0+1489458067+1489459895++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000096+0+1489458067+1489460869++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000097+0+1489458068+1489459671++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000098+0+1489458068+1489460449++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000099+0+1489458069+1489458549++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000100+0+1489595911+1489596353++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000101+0+1489595911+1489596327++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000102+0+1489458070+1489458642++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000103+0+1489458071+1489458742++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000104+0+1489458071+1489460003++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000105+0+1489458072+1489460432++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000106+0+1489458072+1489460360++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000107+0+1489458073+1489461423++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000108+0+1489458073+1489459744++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000109+0+1489458074+1489462692++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000110+0+1489458074+1489458948++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000111+0+1489458074+1489462203++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000112+0+1489458075+1489462657++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000113+0+1489458075+1489459352++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000114+0+1489458076+1489459170++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000115+0+1489458076+1489460944++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000116+0+1489458077+1489459340++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000117+0+1489458077+1489460231++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000118+0+1489458078+1489460638++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000119+0+1489458078+1489460697++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000120+0+1489458079+1489459698++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000121+0+1489458081+1489464019++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000122+0+1489458082+1489459067++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000123+0+1489458083+1489459098++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000124+0+1489458083+1489459346++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000125+0+1489458084+1489459511++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000126+0+1489458084+1489460475++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000127+0+1489458085+1489459904++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000128+0+1489458085+1489459917++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000129+0+1489458086+1489465379++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000130+0+1489458086+1489459792++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000131+0+1489458087+1489461125++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000132+0+1489458087+1489459758++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000133+0+1489458088+1489459424++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000134+0+1489458088+1489461160++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000135+0+1489458089+1489459631++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000136+0+1489458089+1489462651++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000137+0+1489458089+1489463343++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000138+0+1489458090+1489459677++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000139+0+1489458090+1489460631++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000140+0+1489458091+1489464476++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000141+0+1489458091+1489459731++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000142+0+1489458092+1489460031++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000143+0+1489458092+1489459741++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000144+0+1489458093+1489464063++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000145+0+1489458093+1489461520++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000146+0+1489458093+1489462194++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000147+0+1489458094+1489460258++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000148+0+1489458094+1489459444++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000149+0+1489458095+1489460788++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000150+0+1489458095+1489461183++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000151+0+1489458096+1489461212++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000152+0+1489458096+1489461615++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000153+0+1489458097+1489461864++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000154+0+1489458097+1489464987++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000155+0+1489458098+1489460949++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000156+0+1489458098+1489461545++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000157+0+1489458098+1489461130++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000158+0+1489458099+1489461456++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000159+0+1489458099+1489459654++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000160+0+1489458100+1489459550++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000161+0+1489458100+1489460440++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000162+0+1489458101+1489460927++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000163+0+1489458101+1489462167++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000164+0+1489458102+1489460262++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000165+0+1489458102+1489460918++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000166+0+1489458103+1489459525++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000167+0+1489458112+1489459825++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000168+0+1489458113+1489459516++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000169+0+1489458113+1489459856++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000170+0+1489458114+1489459656++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000171+0+1489458115+1489460286++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000172+0+1489458115+1489460216++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000173+0+1489458116+1489461338++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000174+0+1489458116+1489460060++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000175+0+1489458117+1489460829++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000176+0+1489458117+1489460440++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000177+0+1489458118+1489462512++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000178+0+1489458118+1489459587++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000179+0+1489458119+1489461929++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000180+0+1489458119+1489460111++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000181+0+1489458120+1489459974++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000182+0+1489458120+1489460400++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000183+0+1489458121+1489461809++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000184+0+1489458121+1489461880++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000185+0+1489458122+1489460176++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000186+0+1489458122+1489463550++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000187+0+1489458123+1489460379++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000188+0+1489458123+1489459415++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000189+0+1489458123+1489461261++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000190+0+1489458124+1489460594++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000191+0+1489458124+1489460791++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000192+0+1489458125+1489462264++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000193+0+1489458126+1489461229++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000194+0+1489458126+1489460700++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000195+0+1489458126+1489461467++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000196+0+1489458127+1489461427++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000197+0+1489458128+1489460984++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000198+0+1489458128+1489460369++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000199+0+1489458129+1489460011++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000200+0+1489458431+1489458925++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000201+0+1489458432+1489459877++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000202+0+1489458462+1489459267++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000203+0+1489458463+1489460501++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000204+0+1489458493+1489460057++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000205+0+1489458494+1489460351++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000206+0+1489458525+1489462540++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000207+0+1489458525+1489459254++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000208+0+1489458526+1489459525++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000209+0+1489458556+1489459467++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000210+0+1489458557+1489462883++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000211+0+1489458557+1489459122++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000212+0+1489458557+1489460878++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000213+0+1489458558+1489463175++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000214+0+1489458588+1489461622++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000215+0+1489458589+1489461340++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000216+0+1489458620+1489459603++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000217+0+1489458620+1489460853++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000218+0+1489458621+1489460535++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000219+0+1489458621+1489460341++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000220+0+1489458652+1489459237++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000221+0+1489458652+1489460268++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000222+0+1489458653+1489459870++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000223+0+1489458653+1489461243++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000224+0+1489458653+1489459707++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000225+0+1489458654+1489460605++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000226+0+1489458654+1489459590++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000227+0+1489458685+1489459604++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000228+0+1489458685+1489462983++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000229+0+1489458686+1489459701++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000230+0+1489458686+1489460851++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000231+0+1489458687+1489459413++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000232+0+1489458687+1489460586++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000233+0+1489458718+1489459448++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000234+0+1489458749+1489459606++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000235+0+1489458749+1489460541++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000236+0+1489458780+1489459678++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000237+0+1489458781+1489459860++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000238+0+1489458781+1489460537++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000239+0+1489458781+1489461773++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000240+0+1489458782+1489460351++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000241+0+1489458813+1489461391++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000242+0+1489458813+1489460298++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000243+0+1489458844+1489459914++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000244+0+1489458844+1489459683++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000245+0+1489458845+1489460611++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000246+0+1489458875+1489462491++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000247+0+1489458906+1489460183++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000248+0+1489458906+1489460638++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000249+0+1489458907+1489465041++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000250+0+1489458937+1489460986++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000251+0+1489458938+1489460314++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000252+0+1489458969+1489460935++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000253+0+1489458969+1489459822++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000254+0+1489458970+1489461192++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000255+0+1489458970+1489460899++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000256+0+1489458971+1489460860++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000257+0+1489459001+1489460429++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000258+0+1489459032+1489462464++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000259+0+1489459062+1489461346++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000260+0+1489459093+1489460789++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000261+0+1489459093+1489461614++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000262+0+1489459094+1489460419++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000263+0+1489459124+1489464016++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000264+0+1489459155+1489460363++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000265+0+1489459186+1489462876++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000266+0+1489459216+1489461356++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000267+0+1489459247+1489460143++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000268+0+1489459247+1489463170++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000269+0+1489459248+1489460951++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000270+0+1489459248+1489461126++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000271+0+1489459279+1489463130++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000272+0+1489459280+1489461692++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000273+0+1489459280+1489460944++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000274+0+1489459310+1489461449++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000275+0+1489459311+1489461706++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000276+0+1489459342+1489460699++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000277+0+1489459372+1489461760++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000278+0+1489459373+1489460833++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000279+0+1489459373+1489461744++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000280+0+1489459374+1489460955++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000281+0+1489459404+1489466817++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000282+0+1489459435+1489464774++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000283+0+1489459435+1489462883++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000284+0+1489459436+1489461553++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000285+0+1489459466+1489463958++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000286+0+1489459467+1489461781++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000287+0+1489459467+1489461059++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000288+0+1489459498+1489460715++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000289+0+1489459498+1489461807++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000290+0+1489459530+1489461549++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000291+0+1489459530+1489467193++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000292+0+1489459561+1489461609++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000293+0+1489459561+1489461793++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000294+0+1489459562+1489470429++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000295+0+1489459562+1489466141++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000296+0+1489459593+1489463045++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000297+0+1489459623+1489462060++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000298+0+1489459624+1489460237++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000299+0+1489459624+1489461582++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000300+0+1489459625+1489461420++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000301+0+1489459625+1489460967++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000302+0+1489459656+1489461143++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000303+0+1489459656+1489461899++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000304+0+1489459657+1489461990++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000305+0+1489459687+1489461698++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000306+0+1489459688+1489461239++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000307+0+1489459689+1489460797++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000308+0+1489459689+1489464727++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000309+0+1489459720+1489461921++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000310+0+1489459720+1489461844++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000311+0+1489459721+1489461255++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000312+0+1489459721+1489461862++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000313+0+1489459721+1489461143++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000314+0+1489459722+1489460608++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000315+0+1489459752+1489460863++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000316+0+1489459753+1489461305++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000317+0+1489459753+1489461080++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000318+0+1489459754+1489460993++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000319+0+1489459784+1489462420++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000320+0+1489459815+1489462019++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000321+0+1489459846+1489461131++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000322+0+1489459846+1489461432++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000323+0+1489459877+1489461071++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000324+0+1489459877+1489466127++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000325+0+1489459877+1489463792++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000326+0+1489459878+1489461192++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000327+0+1489459908+1489465753++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000328+0+1489459939+1489463234++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000329+0+1489459940+1489461722++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000330+0+1489459940+1489463715++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000331+0+1489459941+1489466134++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000332+0+1489460002+1489462115++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000333+0+1489460032+1489463008++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000334+0+1489460033+1489462221++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000335+0+1489460063+1489461636++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000336+0+1489460094+1489462406++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000337+0+1489460094+1489463155++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000338+0+1489460095+1489463464++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000339+0+1489460156+1489462669++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000340+0+1489460186+1489464537++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000341+0+1489460217+1489461693++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000342+0+1489460217+1489461078++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000343+0+1489460248+1489461718++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000344+0+1489460248+1489463691++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000345+0+1489460249+1489464702++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000346+0+1489460279+1489466194++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000347+0+1489460280+1489462252++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000348+0+1489460280+1489462679++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000349+0+1489460281+1489463338++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000350+0+1489460312+1489463423++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000351+0+1489460312+1489466139++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000352+0+1489460343+1489461567++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000353+0+1489460373+1489463040++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000354+0+1489460374+1489462086++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000355+0+1489460374+1489461508++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000356+0+1489460375+1489462151++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000357+0+1489460375+1489461795++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000358+0+1489460376+1489461811++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000359+0+1489460406+1489462189++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000360+0+1489460437+1489462732++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000361+0+1489460438+1489462751++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000362+0+1489460468+1489462740++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000363+0+1489460469+1489462119++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000364+0+1489460469+1489461845++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000365+0+1489460470+1489461930++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000366+0+1489460500+1489462283++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000367+0+1489460501+1489462114++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000368+0+1489460532+1489463354++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000369+0+1489460532+1489464241++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000370+0+1489460563+1489463763++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000371+0+1489460563+1489464682++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000372+0+1489460564+1489463069++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000373+0+1489460595+1489463420++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000374+0+1489460626+1489462476++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000375+0+1489460627+1489461669++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000376+0+1489460627+1489461739++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000377+0+1489460628+1489462690++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000378+0+1489460658+1489462958++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000379+0+1489460659+1489463224++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000380+0+1489460659+1489463576++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000381+0+1489460720+1489463354++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000382+0+1489460721+1489464660++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000383+0+1489460721+1489463038++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000384+0+1489460752+1489464495++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000385+0+1489460752+1489462627++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000386+0+1489460813+1489467029++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000387+0+1489460814+1489461976++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000388+0+1489460814+1489466797++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000389+0+1489460815+1489462657++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000390+0+1489460845+1489462745++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000391+0+1489460876+1489463007++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000392+0+1489460876+1489464013++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000393+0+1489460877+1489465761++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000394+0+1489460877+1489464147++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000395+0+1489460877+1489466287++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000396+0+1489460908+1489462448++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000397+0+1489460909+1489462779++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000398+0+1489460909+1489464407++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000399+0+1489460940+1489464875++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000400+0+1489460971+1489462720++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000401+0+1489460971+1489463610++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000402+0+1489460972+1489463361++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000403+0+1489460972+1489462261++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000404+0+1489460972+1489462362++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000405+0+1489460973+1489463671++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000406+0+1489461003+1489462305++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000407+0+1489461004+1489463390++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000408+0+1489461005+1489465235++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000409+0+1489461005+1489461994++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000410+0+1489461036+1489463564++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000411+0+1489461096+1489462659++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000412+0+1489461097+1489462567++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000413+0+1489461098+1489464166++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000414+0+1489461098+1489463177++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000415+0+1489461159+1489464328++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000416+0+1489461160+1489465001++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000417+0+1489461160+1489462994++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000418+0+1489461161+1489461903++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000419+0+1489461161+1489463730++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000420+0+1489461161+1489463854++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000421+0+1489461192+1489462422++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000422+0+1489461223+1489465175++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000423+0+1489461223+1489462167++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000424+0+1489461223+1489463329++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000425+0+1489461254+1489462726++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000426+0+1489461255+1489464227++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000427+0+1489461255+1489463434++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000428+0+1489461256+1489465876++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000429+0+1489461286+1489462817++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000430+0+1489461287+1489462344++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000431+0+1489461317+1489462364++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000432+0+1489461348+1489462905++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000433+0+1489461379+1489464705++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000434+0+1489461379+1489463804++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000435+0+1489461379+1489463515++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000436+0+1489461410+1489463225++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000437+0+1489461441+1489464736++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000438+0+1489461441+1489464152++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000439+0+1489461442+1489465996++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000440+0+1489461473+1489464533++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000441+0+1489461473+1489462714++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000442+0+1489461504+1489462752++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000443+0+1489461504+1489462591++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000444+0+1489461535+1489464057++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000445+0+1489461535+1489463552++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000446+0+1489461566+1489464037++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000447+0+1489461596+1489463830++value
-INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000448+0+1489461597+1489465607++value
-</pre>
-</div>
-
-</div>
-
-</div>
-</div>
-
-</div>
-    </div>
-  </div>
-</body>
-</html>
diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.ipynb b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.ipynb
deleted file mode 100644
index 92b58a43..00000000
--- a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.ipynb
+++ /dev/null
@@ -1,1093 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 61,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [],
-   "source": [
-    "import warnings\n",
-    "warnings.simplefilter(\"ignore\")\n",
-    "\n",
-    "import mhcflurry\n",
-    "import numpy\n",
-    "import seaborn\n",
-    "import logging\n",
-    "import pandas\n",
-    "from os import environ\n",
-    "from matplotlib import pyplot\n",
-    "from mhcflurry.downloads import get_path\n",
-    "\n",
-    "% matplotlib inline\n",
-    "\n",
-    "import IPython.core.display as display"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<script>jQuery(function() {if (jQuery(\"body.notebook_app\").length == 0) { jQuery(\".input_area\").toggle(); jQuery(\".prompt\").toggle();}});</script>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "import IPython.core.display as di\n",
-    "\n",
-    "# This line will hide code by default when the notebook is exported as HTML\n",
-    "di.display_html('<script>jQuery(function() {if (jQuery(\"body.notebook_app\").length == 0) { jQuery(\".input_area\").toggle(); jQuery(\".prompt\").toggle(); jQuery(\"div.output_stderr\").toggle();}});</script>', raw=True)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# MHCflurry models\n",
-    "\n",
-    "## Class 1 allele specific ensemble models\n",
-    "\n",
-    "This report describes the models published with MHCflurry for Class I affinity prediction. These models were trained on the \"data_combined_iedb_kim2014\" affinity measurement dataset (mostly from IEDB) distributed with MHCflurry.\n",
-    "\n",
-    "Each allele's predictor is an ensemble of 16 models. The models were trained on a random 1/2 of the data for the allele and tested on the other half. The best performing model in terms of sum of AUC (at 500nM), F1, and Kendall Tau for each 50/50 split of the data was selected for inclusion in the ensemble."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 66,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [],
-   "source": [
-    "all_models_df = pandas.read_csv(get_path(\"models_class1_allele_specific_ensemble\", \"all_models.csv.bz2\"))\n",
-    "all_models_df[\"hyperparameters_layer_sizes\"] = all_models_df[\"hyperparameters_layer_sizes\"].map(eval)\n",
-    "\n",
-    "full_training_data = mhcflurry.affinity_measurement_dataset.AffinityMeasurementDataset.from_csv(\n",
-    "    get_path(\"data_combined_iedb_kim2014\", \"combined_human_class1_dataset.csv\"))\n",
-    "\n",
-    "training_sizes = full_training_data.to_dataframe().allele.value_counts()\n",
-    "\n",
-    "all_models_df[\"train_size\"] = training_sizes.ix[all_models_df.allele].values\n",
-    "\n",
-    "(ensemble_size,) = all_models_df.ensemble_size.value_counts().index\n",
-    "ensemble_size\n",
-    "\n",
-    "selected_models_df = all_models_df.ix[all_models_df.weight > 0]\n",
-    "selected_models_df.shape\n",
-    "\n",
-    "alleles = [x for x in training_sizes.sort_values().index if x in selected_models_df.allele.values]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 60,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<h1>Models summary</h1>\n",
-       "<table>\n",
-       "<tr><td><b>Num Alleles</b></td><td>132</td></tr>\n",
-       "<tr><td><b>Ensemble size</b></td><td>16</td></tr>\n",
-       "<tr><td><b>Num architectures</b></td><td>162</td></tr>\n",
-       "<tr><td><b>Num selected models</b></td><td>2,112</td></tr>\n",
-       "<tr><td><b>Total models tested</b></td><td>342,144</td></tr>\n",
-       "<tr><td><b>Total training measurements</b></td><td>192,177</td></tr>\n",
-       "<tr><td><b>Training measurement per allele</b></td><td>min=26; max=12,357; median=721.5</td></tr>\n",
-       "</table>\n",
-       "<p><b>Alleles included: </b>HLA-A0201 HLA-A0301 HLA-A0203 HLA-A1101 H-2-KB HLA-A3101 HLA-A0206 HLA-A6802 H-2-DB HLA-A0101 HLA-B0702 HLA-A2601 HLA-B1501 HLA-A0202 HLA-A6801 HLA-A3301 HLA-B2705 HLA-B0801 HLA-A2402 HLA-B4001 HLA-B3501 HLA-B5801 HLA-B5101 HLA-B5701 HLA-A3001 HLA-B1801 HLA-A2902 Mamu-A01 HLA-A6901 HLA-A2301 HLA-B4402 Mamu-A100101 HLA-A3002 HLA-B4601 Mamu-B17 HLA-B3901 HLA-B5301 HLA-B1517 HLA-B4403 Mamu-A02 Mamu-B01704 Mamu-A11 HLA-A0219 HLA-A2403 HLA-B5401 HLA-A0212 HLA-A8001 Mamu-B03 HLA-A3201 Mamu-B08 H-2-KD HLA-A0211 HLA-B4501 HLA-B4002 HLA-B0802 HLA-A2501 HLA-A0216 Patr-B0101 Mamu-A101101 Mamu-B52 HLA-B4801 Mamu-B01 HLA-B2703 HLA-B1509 Patr-A0901 H-2-KK HLA-B1503 Mamu-A2201 Mamu-A07 Patr-A0701 HLA-A2602 H-2-DD Mamu-A100201 HLA-A2603 HLA-C0401 Patr-A0101 HLA-B3801 H-2-LD HLA-B0803 Mamu-B3901 Mamu-B8301 Patr-B2401 HLA-C0602 Patr-A0301 HLA-B1542 HLA-B4506 HLA-A0217 HLA-B8301 Patr-A0401 Patr-B1301 HLA-B3503 HLA-C1402 HLA-EQCA100101 HLA-B4201 Mamu-A2601 HLA-B1402 HLA-C1502 HLA-C0501 HLA-C1203 HLA-B1502 HLA-C0303 Mamu-B1001 Mamu-B8701 Mamu-A20102 HLA-C0702 HLA-RT1A HLA-A0250 HLA-B7301 HLA-A0205 Mamu-A70103 Mamu-B6601 HLA-B2720 HLA-C0802 HLA-A3207 HLA-B7 HLA-A6823 HLA-A6601 HLA-A0207 HLA-A2 HLA-A11 HLA-A3215 HLA-B3701 HLA-E0103 HLA-B4013 HLA-BOLA601301 HLA-BOLAHD6 HLA-B5802 HLA-B1401 HLA-B5703 HLA-A0319 HLA-A0302 HLA-B8101</p>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "training_sizes_for_included_alleles = training_sizes.ix[\n",
-    "    training_sizes.index.isin(all_models_df.allele)\n",
-    "]\n",
-    "\n",
-    "lines = []\n",
-    "def row(label, value):\n",
-    "    lines.append('<tr><td><b>%s</b></td><td>%s</td></tr>' % (label, value))\n",
-    "\n",
-    "lines.append('<h1>Models summary</h1>')\n",
-    "lines.append('<table>')\n",
-    "\n",
-    "row(\"Num Alleles\", \"{:,d}\".format(all_models_df.allele.nunique()))\n",
-    "row(\"Ensemble size\", \"{:,d}\".format(ensemble_size))\n",
-    "row(\"Num architectures\", \"{:,d}\".format(all_models_df.hyperparameters_architecture_num.nunique()))\n",
-    "row(\"Num selected models\", \"{:,d}\".format((all_models_df.weight > 0).sum()))\n",
-    "row(\"Total models tested\", \"{:,d}\".format(len(all_models_df)))\n",
-    "row(\"Total training measurements\", \"{:,d}\".format(training_sizes_for_included_alleles.sum()))\n",
-    "row(\"Training measurement per allele\",\n",
-    "    \"min={:,g}; max={:,g}; median={:,g}\".format(\n",
-    "        training_sizes_for_included_alleles.min(),\n",
-    "        training_sizes_for_included_alleles.max(),\n",
-    "        training_sizes_for_included_alleles.median()))\n",
-    "\n",
-    "\n",
-    "lines.append('</table>')\n",
-    "lines.append(\"<p><b>Alleles included: </b>%s</p>\" % \" \".join(\n",
-    "        training_sizes_for_included_alleles.index))\n",
-    "\n",
-    "\n",
-    "di.display_html(\"\\n\".join(lines), raw=True)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 81,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [],
-   "source": [
-    "architecture_num_to_row = all_models_df.groupby(\"hyperparameters_architecture_num\").apply(lambda df: df.iloc[0])\n",
-    "\n",
-    "hyperparameters = [\n",
-    "    x for x in architecture_num_to_row.columns\n",
-    "    if x.startswith(\"hyperparameters_\") and pandas.Series([\n",
-    "        str(item) for item in architecture_num_to_row[x]\n",
-    "    ]).nunique() > 1\n",
-    "]\n",
-    "architecture_num_to_hyperparameters = {}\n",
-    "for _, row in architecture_num_to_row.iterrows():\n",
-    "    architecture_num_to_hyperparameters[row.hyperparameters_architecture_num] = (\n",
-    "        row[hyperparameters].to_dict())"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Best models\n",
-    "\n",
-    "This table gives the models most often selected for alleles with less than or equal to the given number of training samples."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 100,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th>Training size cutoff</th>\n",
-       "      <th>100.0</th>\n",
-       "      <th>500.0</th>\n",
-       "      <th>1000.0</th>\n",
-       "      <th>inf</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>architecture_num</th>\n",
-       "      <td>112</td>\n",
-       "      <td>81</td>\n",
-       "      <td>112</td>\n",
-       "      <td>27</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>best architecture selected rate (%)</th>\n",
-       "      <td>3.27381</td>\n",
-       "      <td>2.04545</td>\n",
-       "      <td>2.27273</td>\n",
-       "      <td>3.64583</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>dropout_probability</th>\n",
-       "      <td>0.1</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0.1</td>\n",
-       "      <td>0.1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>embedding_output_dim</th>\n",
-       "      <td>8</td>\n",
-       "      <td>8</td>\n",
-       "      <td>8</td>\n",
-       "      <td>8</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>fraction_negative</th>\n",
-       "      <td>0.1</td>\n",
-       "      <td>0</td>\n",
-       "      <td>0.1</td>\n",
-       "      <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>impute</th>\n",
-       "      <td>True</td>\n",
-       "      <td>True</td>\n",
-       "      <td>True</td>\n",
-       "      <td>False</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>layer_sizes</th>\n",
-       "      <td>[64]</td>\n",
-       "      <td>[12]</td>\n",
-       "      <td>[64]</td>\n",
-       "      <td>[12]</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "Training size cutoff                100.000000  500.000000  1000.000000  \\\n",
-       "architecture_num                            112          81         112   \n",
-       "best architecture selected rate (%)     3.27381     2.04545     2.27273   \n",
-       "dropout_probability                         0.1           0         0.1   \n",
-       "embedding_output_dim                          8           8           8   \n",
-       "fraction_negative                           0.1           0         0.1   \n",
-       "impute                                     True        True        True   \n",
-       "layer_sizes                                [64]        [12]        [64]   \n",
-       "\n",
-       "Training size cutoff                inf          \n",
-       "architecture_num                             27  \n",
-       "best architecture selected rate (%)     3.64583  \n",
-       "dropout_probability                         0.1  \n",
-       "embedding_output_dim                          8  \n",
-       "fraction_negative                             0  \n",
-       "impute                                    False  \n",
-       "layer_sizes                                [12]  "
-      ]
-     },
-     "execution_count": 100,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "result_df = []\n",
-    "cutoffs = [100, 500, 1000, numpy.inf]\n",
-    "for cutoff in cutoffs:\n",
-    "    selected_rates = all_models_df.ix[\n",
-    "        all_models_df.train_size <= cutoff\n",
-    "    ].groupby(\"hyperparameters_architecture_num\").weight.mean().sort_values(ascending=False)\n",
-    "    best_architecture = selected_rates.index[0]\n",
-    "    d = dict(\n",
-    "        (key.replace(\"hyperparameters_\", \"\"), value) for (key, value) in \n",
-    "        architecture_num_to_hyperparameters[best_architecture].items())\n",
-    "    d[\"architecture selection rate (%)\"] = selected_rates.ix[best_architecture] * 100\n",
-    "    result_df.append(d)\n",
-    "result_df = pandas.DataFrame(result_df, index=cutoffs)\n",
-    "result_df.index.name = \"Training size cutoff\"\n",
-    "result_df.T"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Full hyperparameters of best model"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 112,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "{'activation': 'tanh',\n",
-       " 'architecture_num': 27,\n",
-       " 'batch_normalization': True,\n",
-       " 'batch_size': 128,\n",
-       " 'dropout_probability': 0.1,\n",
-       " 'embedding_output_dim': 8,\n",
-       " 'fraction_negative': 0,\n",
-       " 'impute': False,\n",
-       " 'impute_method': 'mice',\n",
-       " 'impute_min_observations_per_allele': 3,\n",
-       " 'impute_min_observations_per_peptide': 3,\n",
-       " 'imputer_args': {'n_burn_in': 5,\n",
-       "  'n_imputations': 50,\n",
-       "  'n_nearest_columns': 25},\n",
-       " 'include_ms': True,\n",
-       " 'init': 'glorot_uniform',\n",
-       " 'kmer_size': 9,\n",
-       " 'layer_sizes': [12],\n",
-       " 'loss': 'mse',\n",
-       " 'max_ic50': 50000.0,\n",
-       " 'ms_decoy_affinity': 20000.0,\n",
-       " 'ms_hit_affinity': 1.0,\n",
-       " 'n_training_epochs': 250,\n",
-       " 'optimizer': 'rmsprop',\n",
-       " 'output_activation': 'sigmoid',\n",
-       " 'pretrain_decay': 'numpy.exp(-epoch)'}"
-      ]
-     },
-     "execution_count": 112,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "best_hyperparameters = eval(\n",
-    "    architecture_num_to_row.ix[result_df.ix[numpy.inf].architecture_num].hyperparameters)\n",
-    "best_hyperparameters"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Accuracy"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.text.Text at 0x11b5ecd68>"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\nJCX1ZeLEySxc+Bg7d+4gJWU7f/7z3UyaNLnZJE0IIYTwpy7bUuWwde6klu093urV1pNv4eERTbad\nd96FvPvuW3z22UoSEvo0u/8111zG8cefwD33/KXZ7fVbjpQaTnR0L4YPH0FwcHCTsiEhISxa9DRL\nliziuuuuICQklMmTp3LjjX8E4IILLiYtbQ933XUrmqYxbJji9tvv4e9//yt5eblNjtceF110KUVF\nRTz88F8wDINp02bwhz/cWrd98eIn2LRpI//73/sALFjwIM8//wwPPHAvlZWVjB07jqee+mfd+f3l\nLw/x9NNPcscdt1BdXc20aTO4+eY/HVWMQgghREfQjrZlwktmbm7LrTXNFO+wQI6sa81Q3hXExUXS\ntvsnuhK5f4FL7l1gk/sXuOLiItuVDHTRlipJbIQQQggRWLpoUiWEEEII77W3h0caMXxJkiohhBCi\nG1iXsxGXYXhV1mGzMSFh/JELijaRpEoIIYToBlyGgdt0e1fYu9xLtJFMqSCEEEII4QOSVAkhhBBC\n+IAkVUIIIYQQPiBJlRBCCCGED0hSJYQQQgjhA100qTL9uLSN2+3m5Zdf4je/+TUzZ07izDNP4/77\n7yU7O8vrOh555AEWLLirzcduztdfryE391C793/mmcXcdNN1XpXNyTnAlCkTmD79FIqLi5ts//bb\ntUyZMsFn5+YLLpeLRYv+xq9+NYv582fz7LNLWn3fYXFxMQ8+uID582dz7rnzePHF5xuUb2t9Qggh\nuq8uO6VCW+bb8IX2ztnx/PNPs3btV9xyyx307z+AwsICli79N7///TW88sr/mn0nYEfJycnh3ntv\nZ/nyN4iL693uetr6/j+bzca3337NGWfMb7B+zZrPsdm6Vt7+z38+zbp1P7Jw4RLKy8t58MEFRERE\ncNllVzVb/p57bqOkpJi//e1JbDaNxx57mKqqKm644Q/tqk8IIUT31bW+8eqpnW+js5b2JnAff/wB\nV155LSeddAoJCQkMHz6Shx56lPLycr7+eo1vL8oRmKZx1C9Ebo9x405ocq5ut5vvvlvLqFHHdXo8\nLamurub999/mpptuZcSIUZxwwgSuv/5G3n77jWbLp6buZMuWTSxY8BCjRo1mxIhR3HHHvbz11utU\nVVW2uT4hhBDdW5dtqQoUmmZjw4afmDVrDna7HYDg4BCWLXuF6OjounIrVnzE8uVLyc09RHLyQK6+\n+jomTpzcbJ3ff/8t//rXM2Rk7CMpqS8XX/xb5s07s277l19+xn/+s5TMzH307duPa6/9PaeeOoUL\nLzwbTdO4/PKLufLKa7jyymvYvv1nnn76H+j6TuLj4znzzHO45JL/q0u+fvjhO557bgnZ2VmceOJJ\nREf3avM1mDp1Os888yRVVVUEBwcDsHHjeuLi4unbtx8VFRV1ZY8Uz6pVK3jlleVkZu7D6XQyfvyJ\n3HHHfURHR7Np0wYWLLiTG2+8hRdffJ6CgnzGjz+Re+65n+joaJYu/RfLlv27mXuksWTJP3E6g6iq\nqmLcuOPrto0bN57Dhw+TnZ1FUlLfBvtlZ2cREhLCkCFD69YNGTKUmpoadu5MweFwtqk+IYQQ3VuX\nbakKFBdffCmffPIh5503j0ceeYAVKz7i8OECkpL6EhYWDsCPP37PU0/9g2uvvYHly9/g7LPPY8GC\nu9i+/ecm9aWl7WHBgjv59a8v5OWX3+SKK67hmWee5PPPVwNWsnL//fcyb958li9/g3nzzmTBgrvI\nyNjHv//9H0zT5Kmn/sUll/wfhw8f5k9/uolTT53Cf//7Jn/84+28++5bvPrqcgAyMvZx991/YsaM\n2bz00mscd9xYPv74/Tadv6ZpjBkzlrCwMH788fu69V999SXTp89sUPbw4YJW4/n55608+uiDXHrp\n5bz22js8+ugTpKbqvPzy0ro6SkpK+PDD93jkkYUsWfI8O3em1G3/zW8u44MPVjZZ3n9/JaNHjyEv\n7xDBwSF19wUgJqYXpmly6NDBJucWExNLVVUVxcVFdetycg4AUFh4uM31CSGE6N6kpeoo/fa3V9Cv\nXzLvvfcWn322kk8//RhN0zj33PO5+ebb0DSNl19exiWX/B8zZswG4KyzzmXnzh288cYrPPjgow3q\ne+21l5k7dx7z558DQGJiEtnZmbz++n+ZNWsO7777FlOmTOPCC38DwEUXXUplZSUVFRX07Gm1jEVF\nRRESEsIrr/yHkSNH89vfXlFX17XX3sDixU9w6aWX89FH7zNkyDCuuOJqAC699HI2btxATU11m66B\nptmYPHkaa9euYerU6Zimydq1a3jyyWd57bWX68q9887/Wo0nKCiIO++8j9NOOx2A+PgEpkyZRlra\nnro6TNPkpptuYejQYQCcdtoZ7NhhJachISGEhIS0GGdlZSXBwUEN1gUFWf+uqalpUn7UqNEkJvbl\n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\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x125007be0>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "all_scores = all_models_df.scores_auc.dropna()\n",
-    "selected_scores = all_models_df.ix[all_models_df.weight > 0].scores_auc.dropna()\n",
-    "\n",
-    "pyplot.figure(figsize=(10, 5))\n",
-    "seaborn.distplot(all_scores, label=\"All. Mean=%0.2f\" % all_scores.mean())\n",
-    "seaborn.distplot(selected_scores, label=\"Selected. Mean=%0.2f\" % selected_scores.mean())\n",
-    "#seaborn.set_context('talk')\n",
-    "pyplot.legend(loc='upper left', fontsize=\"x-large\")\n",
-    "pyplot.xlim(xmin=0.5, xmax=1)\n",
-    "pyplot.xlabel(\"AUC\", fontsize=\"x-large\")\n",
-    "pyplot.title(\"AUCs across models and alleles\", fontsize=\"xx-large\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 63,
-   "metadata": {
-    "collapsed": false,
-    "scrolled": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(0.5, 1.0)"
-      ]
-     },
-     "execution_count": 63,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAq0AAAbECAYAAADW6C0qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X+4nFV57vFvCL80JGjKURRPx3RvvT1FQbEViAQk4sYq\nLVVsSzAeEIwGDT1tAak9rfzQkqIV0JZyEE+pvyCVQ2ItoAQJrUajoKGYqrlbixkp2qJEIAWFMNnn\nj7WmTMe9s5MQsvfM3J/rmmtm3nne9a53Ly59smbNeqaNjo4SERERETGV7TbZHYiIiIiImEiS1oiI\niIiY8pK0RkRERMSUl6Q1IiIiIqa8JK0RERERMeUlaY2IiIiIKW/3ye5ARMRkktQAvgt8wfYruj67\nCjgZ2M/2xl3Unw8AS4A5tr/f1Zd1ti/uit8EHGj7e/X9ycDbgL2BPYHVwDm2H9gV/d9ekm4F/gz4\nOvCPtmfugmv+GfBD2xdsJaaxq/oTEdsmM60REfBT4PmS/nv7gKSnAi8Hdtlm1pL2At4EXAucsY2n\n/Wf/JP0BcCrwa7YPAQ4GHgM+s5O7+mSZahuHT7X+RAy0zLRGREAL+GtgIbC0Hns98DfA77WDJB0H\n/CGwB/AwcLbtr0h6BnAF8Axgf6AJ/KbtH0n6LvBXwCuB/w58yvY54/RjAfAd4GLgZknn2/7pBH2f\nVvv2VOBdwMG2fwRguyXpLOB1kna3/VjniZJ+HXg3ZQLjwXqvX6/9/3Xba2vcNcDf2b6iJsavr+ds\nAN5u+9/qjOlGQMDlti/ruM5TgcuB5wGzgU3ASbb/eYJ7a894rqqPwyn/v3U2ZTb5BcDXbJ84zv2c\naft2STOBjwAHAT+gjPcP6znPBv6cMjZ7AMts/0lXH15Qz9+r/r3/r+3LJ+p7ROxcmWmNiCgzah+j\nJK1tJwNXtd9IGgYuBH7F9kspSdNySU8BTgS+bPvltoeAn1BmTNtm2D6SMnN7Rk3ExrIY+HhNFr9f\n+7CtXgA8ZPuuzoO2f2r7mjESVlESydfZfjFwLmVGdgbwf4E317inA8cAV0t6E/Ai4GV1JvezNbZt\no+0Xdias1a8AP7Y91/YLgK9RlkBsqznAp22/kJK8Xgr8FnAgME/SYePcz99I2ge4AHjY9v8AfpOS\nWLd9nJKE/jJwKPAqSW/ouv5ZwGdqzGuBedvR94jYSZK0RkQAtu8Atkh6iaTnAPvY/hZ1JhN4FWUW\n9RZJdwCfpHz1Pmz7Q8AaSb8r6S8oydQ+Hc3/Tb3G94F7KbON/4WkQ4AXA8vqoY8Bv9MRsmWcru9G\nmTncwvb9b/p84PO2m7Vvt9a+vZSSrP+GpN0ps79/a3sTcBwlsft6/Rssocyetn1xrAvZvg74qKQl\nki4FXsF//ftM5FHbN9TX/0L5B8JDth+hJPezx7mffwd+iTLL/bF6/EfACvjPGeCjgPfU+/kKZcb1\nxV3XXwG8U9J1lFnm396OvkfETpKkNSLicR+nzJC+qb6Gx9c1TgdusX2I7ZfYfgkwF/impIuA8ylJ\n3xXAzTye7EKZeaWjvc7P2t4ObKYkhHdR1rQ+T9Kr6+c/An6u84T6tfdewI+BbwF7SPqFrpi9JN0g\naf+u6431v/+7AXvUH3WtBX4VOAX4cMff4KKO+/8l4IiO8/9jjDaRdDplRvYhSrJ/zTh/g/E82vV+\n8zh9725zOmU5wZauzx7r+Bzg8I57Opwyo/6fasL8PMoSkhcD/yhpznb0PyJ2giStERGPJzSfAH6D\n8hXy1V2frQJG6tfQSHoNcCclaRwBLrX9SUpy+SoeT4gmJOlplCUGr7X9C/Xx85QEr72m9rPAb0p6\nVsepv0PZ9eBh248CFwF/WdfYtn/YdSnwVNv/1nXZ9v08t8bOB54DfLV+/hHgHOAptr9Sj90EvKUm\nywDv5fHkfmtGgKtsXwX8MyUZHuvvM14iuy0J7irKV/vPhZ+5n5uA0yRNq8sdjgeos8dfoXz93x6H\nL7U/b5P0SeBE258C3gE8QJmRjYhdKElrRESdTa1f338L+Cfb93d99i3grcCy+lXy+cCv2v4JZc3k\nByTdDvw/ytfkw53nd1+ry/8Evmn7C13H3wu8QtIv2v47SlJ6o6S1kr4N/A/K1/fUPv4JcB1wk6S1\nwB31esd3tYvtb1Nmd1dI+gZldvG4mshBWd/aoCSvbR8Brge+Imkd8EIeX3e7tV/a/ymwuPbpZsqP\nvcb6+4zXxtbabo/P1u7nPMrs6rcpSzW+0XH+G4HD6jlrgE/avqbrGu8B3tixhGD5GGMVEU+yaaOj\n2dEjIiIiIqa2zLRGRERExJSXpDUiIiIiprwkrREREREx5SVpjYiIiIgpL2Vc+8Sjjz46+sADE1V7\njKlo3333JmPXuzJ+vStj19syflPN9my9DP/tv83cvhNI0to3fuVXfoVmsznZ3YiIiIgB0mg0WLZs\nxS65Vt8nrZKOAhbbXtBxbCmwvh4/fJzz7gBW2z5jnM+vAg4B7gP2Bu4CTrbdkrSIsp/jZuCPbd8g\naRalPOM+wE+BhbbvlXQYZfPvzcDNti+o7b+PUmlmOnCl7Y+wFc1mk3/5l3/Ztj9KRERERI8ZlDWt\n423uPeYmtZLmAuuA+ZJmbKXds23Ptz2XMi9+vKRnUsovHg68GlgqaQ9KKcRv2D4S+BRwdm3jckql\nlXnAoZIOlvQKYKi2Ow84R9K+23XHEREREX1kUJLW7nUTE62jWARcC6ygJJtbbVfSdGAWpe74yygz\ntI/ZfpBSsvAgShI8q543C9hcSyHuaXtDPX4TcAzwZeDUjuvsxti1tiMiIiIGQt8vD6jmS1pVX08D\n5gDnjhVYE8kjgNMoSwhWAJeN0+5Fks4BDgAeptQh/zVKXeq2/wD2pdQjH5H0TeDplBnUWcCDHbGb\ngDm1hvijknYH/gq4wvbD23PDEREREf1kUJLWW2yf1H4j6cKtxC6kJLbX1+f9JR0NzAaWUJYUnFlj\n32l7ZW3zfOBiSl3rWR3tzQTupyTJF9m+UtKLgOWU5HisWCQ9nTLbu8r2+3bkpiMiIiL6xaAkrd2m\ndT13Og04zvZ6AEkLgCW2TwCuawdJ6j7/bqAB3A78saQ9gacALwD+EdjI4zOwPwRm2t4k6RFJc4AN\nwLHAeZL2Bj4P/Knta5747UZERET0tkFNWkfr40BJt1GSz1HgLIB2wlotBy6RdIDte7raaS8P2EJZ\nd3qq7X+X9CFgdW33D2w/KundwEckvYPyd39LbeN04Op6/k22b5f0O5QlDIskvbX27c22s6dVRERE\nDKRpo6Nj/oA+eszw8PBotryKiIiIXWloaIg1a9aS4gKxzRqNxmR3ISIiIgbMrsw/MtPaJ1qt1ujG\njQ9NdjdiB8yePYOMXe/K+PWujF1vy/hNNZlpjW00ffp0tvc/mJgaMna9LePXuzJ2vS3jN3iStPaJ\nVqvFOAW+YorL2PW2jF/vytj1tozfrjb5/0BI0tonRkZGaDazuUBERETsPI1Gg2XLVkx2N4ABSFol\nHQUstr2g49hSSrWrxbYPH+e8OyjlWM+YoP2fiZP0u8BvUf4JeKPt93R89gLgK8Az6lZYhwGXUsq0\n3mz7ghr3x8ArKdtpvcv232+tH81mk+weEBEREf1qt8nuwC7S/f3B6DjHAZA0F1hHKf86Y7xGx4qr\nhQIW2D6sJsTHSnph/Wwm8KfATzuauRw40fY84FBJB0t6MfAy24cBC4APbt/tRkRERPSXQUlauxdi\nTLQwYxGlhOoK4JTtjLsbeHVHzB48nqR+GHgX8DD8ZxK7p+0N9fObgGNs/wOlOhbAc4EfT9DfiIiI\niL7W98sDqvmSVtXX0yjVps4dK7AmkkdQyrmupySkl21rnO3HKCVbkfR+YK3t70g6D7je9jpJ7aR5\nFvBgR7Obat+wvUXSe4Ez6iMiIiJiYA1K0nqL7ZPabyRduJXYhZTE9vr6vL+ko4HZwBLKkoIzgUPH\nirN9q6S9gL8EHrB9em33jcDdkt4C7A+sBH6Vkri2zQTub7+x/Yd1/e1XJX3R9nd3+C8QERER0cMG\nJWntNq3rudNpwHG21wNIWgAssX0CcF07SNKVY8UBtwKfAT5v+/3teNvP6zj3u8CrbG+W9EhdB7uB\nsiTgvJokn2B7CfBofWzZKXceERER0YMGNWkdrY8DJd1GSV5HgbMA2olotRy4RNIBtu8BkPSSrcS9\nEZgH7CHpNbXdd9n+atf12wnzYuBqyvrilbZvl7Qb8BuSVtfjl9nOflYRERExsFLGtU8MDw+PZsur\niIiI2JmGhoZYs2YtO7u4QMq4DrBGozHZXYiIiIg+M5Xyi8y09olWqzW6ceNDk92N2AGzZ88gY9e7\nMn69K2PX2zJ+u9rkz7QOyj6tEREREbFDdm7CuqOyPKBPjIyM0Gzmt1oRERGxczQaDZYtWzHZ3fhP\nfZ+0SjoKWGx7QcexpZSCAItrqdWxzrsDWG17zI39JV0FHALcB+wN3AWcbLsl6R3AyZRtqj5g+1pJ\ns4BlwD6UClkLbd8r6TDgUmAzcLPtCzquMQwst33QRPfZbDbJD7EiIiKiXw3K8oDuhbuj4xwHQNJc\nYB2lktaMrbR7tu35tudS5s6Pl/RzwNuAw4BjgA/U2FOAb9g+EvgUcHY9fjlwou15wKGSDq59WAhc\nA+y3zXcZERER0acGJWntXowx0eKMRcC1lNKsp0zUrqTplMpW99q+D3ix7S3As4Cf1Nh1PF79ahaw\nuZaC3dP2hnr8JkqiC6UU7JET9DMiIiJiIPT98oBqvqRV9fU0YA5w7liBNZE8glIZaz0lcb1snHYv\nknQOcADwMHAngO0tdYnAecCHaux9wIikbwJPpxQgmAU82NHepto3bN9Y+7OdtxoRERHRfwYlab3F\n9kntN5Iu3ErsQkpie3193r+WVZ1NKdM6CpxZY99pe2Vt83zgYsosLbYvk3QF8DlJXwTOAC6yfaWk\nF1EqaB3B47OvADOB+5/ozUZERET0m0FJWrtN63rudBpwXLtEq6QFwBLbJwDXtYPqDGjn+XcDDUnP\nB5bW+BblR1ctytf9D9TYHwIzbW+S9IikOcAG4FjK7OxYfY2IiIgYWIOatI7Wx4GSbqMkhqPAWQDt\nhLVaDlwi6QDb93S1014esIWyPvhU2xsk/YOkNfX4Z21/UdJ3gI/UZQO7A2+pbZwOXF3PX2n79jH6\nGhERETHQUhGrTwwPD49my6uIiIjYWYaGhlizZi1Pxpe+qYgVEREREX1pUJcH9J1GozHZXYiIiIg+\nMtVyiywP6BOtVmt048aHJrsbsQNmz55Bxq53Zfx6V8aut2X8dqWpsTwgM60RERERMYaptYFRktY+\nMTIyQrPZnOxuRERERI9rNBosW7ZisrvxM/o+aZV0FLDY9oKOY0sp1a4W2z58nPPuAFbbPmOC9n8m\nTtLvAr9F2a7qs7YvqMf/FfinGrbG9v+WdBhwKbAZuLkdW+OHgeW2D5roPpvNJtk9ICIiIvpV3yet\nVffC3dFxjgMgaS6wjlL+dYbtMRfNjBVXCwUssP2yGrNa0nLgJ8DXbR/f1czlwOvq/q43SDrY9p2S\nFgL/C9hvB+43IiIioq8MStLavShjokUai4Brge8BpwCXbUfc3cCrO2L2oFTFeinwHEmrgIeB3wX+\nDdjT9oYaexNwDHAnpYLWkUCmTyMiImLgDUrSOr8mi1AS1jnAuWMFSpoJHEEp57oeWMEYSet4cbYf\noyScSHo/sNb2dyQ9C7jQ9nWSXg58Engd8GBHs5tq37B9Y23jCdx2RERERH8YlKT1Ftsntd9IunAr\nsQspie319Xl/SUcDs4EllCUFZwKHjhVn+1ZJewF/CTwAvL22+zXgMQDbX6pJ7IPArI5rzwTuf4L3\nGhEREdF3BiVp7Tat67nTacBxttcDSFoALLF9AnBdO0jSlWPFAbcCnwE+b/v9He2eC9wHvF/SwcDd\ntjdJeqSug90AHAucN05fIyIiIgbWoCato/VxoKTbKInhKHAWQDsRrZYDl0g6wPY9AJJespW4NwLz\ngD0kvaa2+y5gKfBJSa+l7BRwSj3vdOBqSkndlbZvH6OvEREREQMtFbH6xPDw8Gi2vIqIiIgnamho\niDVr1vJkftmbilgDbKrVB46IiIjeNFVzisy09olWqzWaGsy9KfWze1vGr3dl7Hpbxm9XyExrPAmm\nT59OfrPVmzJ2vS3j17sydr0t4zd4krT2iVarRX6z1Zsydr0t49e7Mna9LeP3ZJqa/xhI0tonRkZG\naDabk92NiIiI6FGNRoNly1ZMdjfGNTBJq6SjKHuonmj7Ux3HvwF8zfapT+K1vwu0M8qnAtfafr+k\nacBfAAdTSr2+xfZdHeddDKy3/eGJrtFsNsnuAREREdGvdpvsDuxi64ET228kvZCSRD7ZRoFX2X4F\nMBd4m6T9gF8H9rI9l7KX68W1X/tJuhH41V3Qt4iIiIgpb2BmWqs7gedLmml7E6Vk6yeAn5f0DuD1\nlCT2R8DrgDdSEsenAPsDHwKOBw4EzrL9t5J+YPtZAJKuAS63/YWu607j8X8g7AM8CjwMHAF8DsD2\nVyW9tCPmXOBXdvL9R0RERPSkQZtphVKK9fX19cuALwPTgdm2X2n7cGAP4JdrzD62Xwu8D1hs+/XA\n24A318+3dRX4TZL+jjLbu8b2w8As4IGOmJak3WxvqJWxpuZK6IiIiIhdbNBmWkcpJVP/T11n+gVK\nYrgF2FxnSh8CDqAkrgB31Of7gW/X1z8G9q6vOxPLaQCS3kOZRR0Fjqmfvcr2Zkm7A5+t5V4fAGZ2\nnL+b7S0740YjIiIi+smgJa3Y3iBpBnAGZR3pEGXG83jbh0t6CvB1Hk9GJ5pJ3V3SU4HHKMsGsP1H\nnQGSoM5q235M0r9TkuIvAb8G/D9JhwHrnvgdRkRERPSfgUtaq78GFtr+jqQhYDPwkKTV9fPvA8/e\nxrY+CHwFuAvYME7MKGV5QIuSrH4P+CQl0R2R9KUa9+YxzouIiIgYeCnj2ieGh4dHs+VVRERE7Kih\noSHWrFnLrvhJTcq4DrBGozHZXYiIiIgeNtVzicy09olWqzW6ceNDk92N2AGzZ88gY9e7Mn69K2PX\n2zJ+T6bMtEZERETElNMbO2wmae0TIyMjNJvNiQMjIiIiKMsBli1bMdnd2GZ9n7RKOopSFGBBx7Gl\nlE3+F9diAmOddwew2vYZ43x+FXAIcB9lz9a7gJNtt+rn04AbgE/b/rCkWcAySrWrn1J2L7i3bnV1\nKWUHg5ttX9BxjWFgue2DJrrPZrNJfogVERER/WpQKmJ1L9wdHec4AJLmUvZMnV/3dB3P2bbn255L\nmVs/vuOz9wJP63h/CvAN20cCnwLOrscvB060PQ84VNLBtQ8LgWuA/Sa4t4iIiIi+NyhJa/dijYkW\nbywCrgVWUJLNrbYraTqlQMG99f0JQAv4XEfsuhpDfd4saSawp+0N9fhNPF5BayNw5AT9jIiIiBgI\nfb88oJovaVV9PQ2YA5w7VmBNJI8ATqMsIVgBXDZOuxdJOodS9vVh4E5JLwROAt4AvLsj9j5KIYFv\nAk8H5lGS1wc7YjbVvmH7xtqf7brRiIiIiH40KEnrLbZPar+RdOFWYhdSEtvr6/P+ko4GZgNLKEsK\nzqyx77S9srZ5PnAxJTl9NrAKeC7wiKQNwNuAi2xfKelFwHJKctyefQWYCdz/RG40IiIioh8NStLa\nbVrXc6fTgONsrweQtABYYvsE4Lp2UJ0B7Tz/bqBh+/c7Ys4FfmB7paTfAB6oH/0QmGl7k6RHJM2h\nlIA9FjhvnL5GREREDKxBTVpH6+NASbdREsNR4CyAdsJaLQcukXSA7Xu62mkvD9hCWR986lau+W7g\nI5LeQfm7v6UePx24up6/0vbtY/Q1IiIiYqClIlafGB4eHs2WVxEREbGthoaGWLNmLZPxpe6OVMQa\nlN0DIiIiIqKHDerygL7TaDQmuwsRERHRQ3otd8jygD7RarVGN258aLK7ETtg9uwZZOx6V8avd2Xs\nelvGb2fK8oCIiIiIiJ0iywP6xMjICM1mc7K7ERERET2i0WiwbNmKye7GNuv7pFXSUcBi2ws6ji2l\nVLtabPvwcc67A1ht+4wJ2v+ZOElnAgsopVyX2v60pL2BTwDPoFTBOtn2fZIOAy4FNgM3276go51h\nYLntgya6z2azSXYPiIiIiH41KMsDuhfujo5zHABJc4F1lPKvM8ZrdKw4SfsCvw0cSikWcGkNPx34\nhu0jgY8Df1SPXw6caHsecKikg2s7C4FrgP224z4jIiIi+tKgJK3di30nWvy7CLgWWAGcsp1xD1Gq\nW80E9qHMtkIp2fq5+vqzwCslzQT2tL2hHr8JOKa+3ggcOUE/IyIiIgZC3y8PqOZLWlVfTwPmAOeO\nFVgTySMo5VzXUxLSy7Yz7l+Bb1H+UbC0HpvF42VcNwH7UhLbBzua3VT7hu0b63W260YjIiIi+tGg\nJK232D6p/UbShVuJXUhJbK+vz/tLOhqYDSyhLCk4k/L1/1hx+wD7A416fKWkL1MS1pn1GjOB+ylJ\n6qyOa7ePR0RERESHQUlau03reu50GnCc7fUAkhYAS2yfAFzXDpJ05VhxwMXAT2xvrsfvp8yqfgl4\nLfA14DXAF21vkvSIpDmUJQXHAueN09eIiIiIgTWoSetofRwo6TZKYjgKnAXQTkSr5cAlkg6wfQ+A\npJeMF0f5EdbXJH2Fsp51te3PS/oS8FFJXwQeAdozv4uBqylLCVbavn2MvkZEREQMtFTE6hPDw8Oj\n2fIqIiIittXQ0BBr1qylVypiDepMa9/ptfrBERERMbl6LXfITGufaLVao6nB3JtSP7u3Zfx6V8au\nt2X8dqbMtMYuNH36dPKbrd6UsettGb/elbHrbRm/wZOktU+0Wi3ym63elLHrbRm/3pWx620Zv52p\nN5L/JK19YmRkhGazOdndiIiIiB7RaDRYtmzFZHdjm/V90irpKGCx7QUdx5ZSqlgttn34OOfdQdmu\n6owJ2v+ZOEm/C/wW5Z+AN9p+j6TdKHu4vhTYCzjP9o2SDgMuBTYDN9u+oLbxPkrFrenAlbY/srV+\nNJtNsntARERE9KvdJrsDu0j39wej4xwHQNJcYB2l/OuM8RodK64WClhg+7CaEB8r6YXAm4Ddbc8D\nfh0Yrs1cDpxYjx8q6WBJrwCGbM8F5gHnSNp3u+86IiIiok8MStLavVhjosUbi4BrgRXAKdsZdzfw\n6o6Y3YGfUqpdfV/S9cCHgb+VNBPY0/aGGnsTcAzwZeDUjjZ2o8zERkRERAykvl8eUM2XtKq+ngbM\nAc4dK7AmkkdQyrmupySkl21rnO3HgI015v3AWtvfkbQfZfb0OElHAn9FqYr1YEezm4A5th8FHpW0\ne427wvbDO377EREREb1tUJLWW2y3y6Yi6cKtxC6kJLbX1+f9JR0NzAaWUJYUnAkcOlac7Vsl7QX8\nJfAA8I7a7n01FttfkPS8+vmsjmvPBO6vfXw6ZRZ3le33PYF7j4iIiOh5g5K0dpvW9dzpNOA42+sB\nJC0Altg+AbiuHSTpyrHigFuBzwCft/3+jnZXA68BVkg6GPie7f+Q9EhdB7uBsoTgPEl7A58H/tT2\nNTvrpiMiIiJ61aAmraP1caCk2yjJ6yhwFkA7Ea2WA5dIOsD2PQCSXrKVuDdSfjy1h6TX1HbfBVwJ\nXC5pTY1fXJ9PB66mrFu9yfbtkn6HsoRhkaS31jbebDt7WkVERMRAShnXPjE8PDyaLa8iIiJiWw0N\nDbFmzVpSxjV2qUajMdldiIiIiB7Sa7lDZlr7RKvVGt248aHJ7kbsgNmzZ5Cx610Zv96VsettGb+d\nKTOtsQtNnz6dXqkdHP9Vxq63Zfx6V8aut2X8Bk+S1j7RarUYp8BXTHEZu96W8etdGbvelvHbWXon\n8e/7pFXSUcBi2ws6ji2lFARYXEutjnXeHcBq22eM8/lVwCGU/Vf3Bu4CTrbdqp9PA24APm37w5J2\nAy4GXgrsBZxn+0ZJhwGXUipe3Wz7go5rDAPLbR800X2OjIzQbGZzgYiIiJhYo9Fg2bIVk92N7dL3\nSWvV/U+x0XGOAyBpLrCOUklrhu3xFs2cbXtlPeeTwPGUra8A3gs8rSP2TcDutudJejbwhnr8cuB1\ntjdIukHSwbbvlLQQ+F/Afttyg81mk+weEBEREf1qt8nuwC7SPfc90Vz4Iko1qhXAKRO1K2k6pbLV\nvfX9CUAL+FxH7LHA9yVdD3wY+NtaCnZP2xtqzE3AMfX1RuDICfoZERERMRAGJWmdL2lVfdwKLBgv\nsCaSR1C+2v8oZfP/8VwkaRXwLeA5wJ2SXgicBJzLf02O9wOGbB8HvA/4K0qi+2BHzCZgXwDbN9r+\nyXbdZURERESfGpTlAbfYPqn9RtKFW4ldSEk2r6/P+0s6GphNKdM6CpxZY9/ZsTzgfMqa1fuAZwOr\ngOcCj0jaUI9fD2D7C5KeBzxASVzbZgL3P4H7jIiIiOhLg5K0dpvW9dzpNOC4dolWSQuAJbZPAK5r\nB0nqPv9uoGH79ztizgV+YHtlTVJfA6yQdDDwPdv/IekRSXOADZQlBOeN09eIiIiIgTWoSetofRwo\n6TZKYjgKnAXQTlir5cAlkg6wfU9XOxdJOgfYQllqcepWrnklcLmkNfX94vp8OnB1PX+l7dvH6GtE\nRETEQEtFrD4xPDw8mt0DIiIiYlsMDQ2xZs1aJusL3R2piDUoP8SKiIiIiB42qMsD+k6j0ZjsLkRE\nRESP6MW8IcsD+kSr1RrduHG8Gggxlc2ePYOMXe/K+PWujF1vy/jtLFkeEBERERGx02R5QJ8YGRmh\n2WxOdjciIiKiBzQaDZYtWzHZ3dgufZ+0SjoKWGx7QcexpcD6evzwcc67A1ht+4xxPr8KOIRSNGBv\n4C7gZNut+vk0SlWtT9v+sKS9gU8Az6BUwTrZ9n2SDgMuBTYDN9u+oOMaw8By2wdNdJ/NZpPsHhAR\nERH9alCWB3Qv3B0d5zgAkuYC6yjlX2dspd2zbc+3PZeyKOT4js/eCzyt4/3pwDdsHwl8HPijevxy\n4ETb84DQfyO2AAAgAElEQVRDa+EBJC0ErqGUf42IiIgYaIOStHYv9p1o8e8i4FpgBXDKRO1Kmk4p\nx3pvfX8C0AI+1xF7RMf7zwKvlDQT2NP2hnr8JuCY+nojcOQE/YyIiIgYCH2/PKCaL2lVfT0NmAOc\nO1ZgTSSPoJRzXU9JXC8bp912RawDgIeBOyW9EDgJeAPw7o7YWcAD9fUmYF9gJmWpAB3H5wDYvrH2\nZ5tvMiIiIqJfDUrSeovtk9pvJF24ldiFlMT2+vq8v6SjgdnAEsqSgjNr7Dttr6xtng9cTFnj+mxg\nFfBc4BFJGygJ68x63kzgfkqSOqvj2u3jEREREdFhUJLWbtO6njudBhxnez2ApAXAEtsnANe1g+oM\naOf5dwMN27/fEXMu8APbK+sM7GuAr9XnL9reJOkRSXOADcCxwHnj9DUiIiJiYA1q0jpaHwdKuo2S\nGI4CZwG0E9ZqOXCJpANs39PVTnt5wBbK+uBTt3LNy4GPSvoi8AhlCQHAYuDqev5K27eP0deIiIiI\ngZaKWH1ieHh4NFteRURExLYYGhpizZq19FJFrEGdae07vVhDOCIiIiZHL+YNmWntE61WazQ1mHtT\n6mf3toxf78rY9baM386SmdbYxaZPn05+s9WbMna9LePXuzJ2vS3jN3iStPaJVqtFfrPVmzJ2vS3j\n17sydr0t47ez9E7in6S1T4yMjNBsNie7GxEREdEDGo0Gy5atmOxubJe+T1olHQUstr2g49hSSrWr\nxbYPH+e8O4DVts8Y5/OrgEMoxQT2Bu4CTrbdkvQO4GTKVlgfsH1tPedfgX+qTayx/b8lHQZcCmwG\nbrZ9QY39Y+CVtY132f77rd1ns9kkuwdEREREv+r7pLXq/v5gdJzjAEiaC6yjlH+dYXu8ld5nd1TE\n+iRwvKS/B94GvBh4KvAt4FpJQ8DXbR/f1cblwOtsb5B0g6SDKXP1L7N9mKQG8De1vYiIiIiBtNtk\nd2AX6V6wMdECjkXAtcAK4JSJ2pU0nVKO9V7b9wEvtr0FeBbwkxr7UuA5klZJul7S8yTNBPa0vaHG\n3AQcY/sfKNWxoJSC/fEE/Y2IiIjoa4OStM6vyeIqSbcCC8YLrInkEcANwEeB07fS7kWSVlFmU58D\n3Alge0tdIvBl4BM19gfAhbbnA0uBT1IS3Qc72tsE7NvRxnuBzwBXbef9RkRERPSVQVkecIvtdtlU\nJF24ldiFlBnU6+vz/pKOBmYDSyhLCs6sse/sWB5wPnAxZZYW25dJugL4nKQvALcBj9XPviTpWZSE\ndVbHtWcC97ff2P7Duv72q5K+aPu7O/oHiIiIiOhlg5K0dpvW9dzpNOA42+sBJC0Altg+AbiuHSSp\n+/y7gYak5wNLa3wL+Cnlx1TnUn609f66bvVu25skPSJpDrCBsiTgvJokn2B7CfBofWzZKXceERER\n0YMGNWkdrY8DJd1GST5HgbMA2glrtRy4RNIBtu/pauciSedQEsrdgFPrD6r+QdKaevyztr8oaR3w\nCUmvpewUcEpt43Tg6nr+Stu3S9oN+A1Jq+vxy2xnP6uIiIgYWCnj2ieGh4dHs+VVREREbIuhoSHW\nrFlLyrjGLtdoNCa7CxEREdEjejFvyExrn2i1WqMbN463nWxMZbNnzyBj17syfr0rY9fbMn47S2Za\nYxebPn06vVQ/OB6XsettGb/elbHrbRm/wZOktU+0Wi3GKfAVU1zGrrdl/HpXxq63ZfyeqN5L+JO0\n9omRkRGazWwwEBEREeNrNBosW7ZisruxQwYmaZV0FHArcKLtT3Uc/wbwNdunPsnXfxbwHeB/2r6u\nHpsG/AVwMGU/17fYvkvSNcAzKf8Mei6wprM4wliazSbZPSAiIiL61aCUcW1bD5zYfiPphcBTd9G1\n3wx8EHhHx7FfB/ayPRd4F6WiFrYX1HKvrwN+DPzOLupjRERExJQ0MDOt1Z3A8yXNtL2JUrL1E8DP\nS3oH8HpKEvsjSsL4RuBXgacA+wMfAo4HDgTOsv23kn5g+1kAdYb0cttfGOPaC4F5wN9I+kXb3wKO\nAD4HYPurkn6p65zzgT+zfe/O+xNERERE9J5Bm2mFUor19fX1y4AvA9OB2bZfaftwYA/gl2vMPrZf\nC7wPWGz79cDbKDOnsA2rwCW9Elhn+z7gKmBJ/WgW8EBH6GO1GhaS/hswH/irHbnJiIiIiH4yaDOt\no5SSqf9H0neBL1DWjW4BNteZ0oeAAyiJK8Ad9fl+4Nv19Y+Bvevrzp/fTQOQ9B7KLOoo8EpgETBH\n0o3AXsBBtfzrg8DMjvN3s72lvn4DcLXt/DQyIiIiBt6gJa3Y3iBpBnAGZR3pEGXG83jbh0t6CvB1\nHk9GJ0oad5f0VOAxyrIBbP9R+0NJ+wGH2p7TcewK4BRgNfBrwP+TdBiwrqPdY4D37Oh9RkRERPST\ngUtaq78GFtr+jqQhYDPwkKTV9fPvA8/exrY+CHwFuAvYMMbnb6IsSej0EeCjlCR3RNKX6vE3d8Q8\nv7YZERERMfBSxrVPDA8Pj2bLq4iIiNiaoaEh1qxZy2QXF0gZ1wHWaDQmuwsRERExxfVyvpCZ1j7R\narVGN258aLK7ETtg9uwZZOx6V8avd2XselvG74nKTGtERERETFmTm6w+EUla+8TIyAjNZnOyuxER\nERFTUKPRYNmyFZPdjSek75NWSUdRigIs6Di2lFLSdXEtJjDWeXcAq22fMc7nVwGHAPdR9my9CzjZ\ndqtW1zqZsv/rB2xfK+nplOpbM+s5i2z/qG51dSllB4ObbV/QcY1hYLntgya6z2azSX6IFREREf1q\nUCpidS/cHR3nOACS5lL2TJ1f93Qdz9m259ueS5lvP17Sz1EqZh1G2Wv1AzX2D4Av2j4S+HNgaT1+\nOXCi7XnAoZIOrn1YCFwD7LfttxkRERHRnwYlae1ewDHRgo5FwLXACkoRgK22K2k6pUDBvbVU64tr\nZatnAT+psb8IfLa+/hLwckkzgT1tb6jHb6IkugAbgSMn6GdERETEQOj75QHVfEmr6utpwBzg3LEC\nayJ5BHAaZQnBCuCycdq9qJZjPQB4GLgTwPaWukTgPOBDNfYOSvWrO4HjgadSEt0HO9rbVPuG7Rtr\nf7bvTiMiIiL60KAkrbfYPqn9RtKFW4ldSElsr6/P+0s6GpgNLKEsKTizxr7T9sra5vnAxZRZWmxf\nVsu1fk7SF4A/AT4k6e+AG4G7KQnrrI5rzwTuf2K3GhEREdF/BiVp7Tat67nTacBxttcDSFoALLF9\nAh3lWOsMaOf5dwMNSc8Hltb4FvAI5QdZRwIftv0VSa8HvmR7k6RHJM2hlIA9ljI7O1ZfIyIiIgbW\noCato/VxoKTbKInhKHAWQDthrZYDl0g6wPY9Xe20lwdsoawPPtX2Bkn/IGlNPf5Z21+UNAR8rCa7\n/0pJjgEWA1fX81favn2MvkZEREQMtFTE6hPDw8Oj2fIqIiIixjI0NMSaNWuZKl/gpiLWAOvlWsIR\nERHx5OqHPCEzrX2i1WqNpgZzb0r97N6W8etdGbvelvHbUZlpjUk2ffp0psp/iLF9Mna9LePXuzJ2\nvS3jN3iStPaJVqtFfrPVmzJ2vS3j17sydr0t47ejejfRT9LaJ0ZGRmg2m5PdjYiIiJiCGo0Gy5at\nmOxuPCF9n7RKOgpYbHtBx7GllGpXi20fPs55dwCrbZ8xQfs/EydpEfBWYDPwx7ZvkDQL+ASlmMAe\nwO/Z/qqkw4BLa+zNti+obXwa+Ll6/Ce2X7u1fjSbTbJ7QERERPSr3Sa7A7tI9/cHo+McB0DSXGAd\npfzrjPEaHStO0jOBM4DDgVcDSyXtAfwe8HnbrwDeDPxFbeZy4ETb84BDJR1cjz/P9jzb8ydKWCMi\nIiL6Xd/PtFbdCzgmWtCxCLgW+B5wCnDZdsS9jDLz+hjwoKR/Bg6ilHh9pJ63B/ATSTOBPW1vqMdv\nAo6R9APgaZI+AzwNuMj2DRPfZkRERER/GpSkdb6kVfX1NGAOcO5YgTWRPIJSsWo9sIIxktatxM0C\nHugI/Q9gX9sP1vP2Bz4O/HaNfbAjdlPt2x7AnwIfpCwR+JKkr9r+0fbeeEREREQ/GJSk9RbbJ7Xf\nSLpwK7ELKYnt9fV5f0lHA7OBJZQlBWcCh44T9yAlGW2bCdxfr/siSsnWM22vronvWLH/Blxhewvw\nw7puVkCS1oiIiBhIg5K0dpvW9dzpNOA42+sBJC0Altg+AbiuHSTpyrHigLcD75W0J/AU4AXAP0r6\nReBTwG/aXgdge5OkRyTNATYAxwLnAa+irIt9raR9gAOBb++824+IiIjoLYOatI7Wx4GSbqMkr6PA\nWQDtRLRaDlwi6QDb9wBIesl4cZS/6YeA1bXdP7D9aJ3d3Qv4oKRpwP22XwecTpl93Q1Yafv2eo0R\nSWuAFvAu2xufhL9DRERERE9IGdc+MTw8PJotryIiImIsQ0NDrFmzlqlSXCBlXAdYo9GY7C5ERETE\nFNUPeUJmWvtEq9Ua3bjxocnuRuyA2bNnkLHrXRm/3pWx620Zvx2VmdaYZNOnT2eq/IcY2ydj19sy\nfr0rY9fbMn6DJ0lrn2i1WoxT4CumuIxdb8v49a6MXW/L+O2o3k30k7T2iZGREZrN5mR3IyIiIqag\nRqPBsmUrJrsbT0jfJ62SjgIW217QcWwppYrVYtuHj3PeHZRyrGdM0P7PxElaBLwV2Az8se0bJM0C\nPkEpJrAHpcDAV2r8dGAZcKXtlfXYpcDLKVWyft/2bVvrR7PZJLsHRERERL/abbI7sIt0f38wOs5x\nACTNBdZRyr/OGK/RseIkPZNSGOBw4NXAUkl7AL8HfN72K4A3U0vDSvoF4O+BX+po97XA823/MvAb\njFFGNiIiImKQDErS2r2AY6IFHYuAa4EVwCnbGfcyyszrY7YfBP4ZOAi4GLiixuwB/KS+nkGpwnVr\nR7u/CNwEYPs+oCXpGRP0OSIiIqJv9f3ygGq+pFX19TRgDnDuWIGSZgJHUBLJ9ZSE9GdmOrcSNwt4\noCP0P4B9awKLpP2BjwO/DdAu6VqrZLX9A/B7ki4Dfp6SxI474xsRERHR7wYlab3F9kntN7Wk6ngW\nUhLb6+vz/pKOBmYDSyhLCs4EDh0n7kFK4to2E7i/XvdFlJKtZ9pePV4HbN8s6Zcps6/fBL4O3Lc9\nNxwRERHRTwYlae02reu502nAcbbXA0haACyxfQJwXTtI0pVjxQFvB94raU/gKcALgH+U9IvAp4Df\nbM+ujkfS84C7bc+T9Bzgo+2Z2oiIiIhBNKhJ62h9HCjpNkryOgqcBdBORKvlwCWSDrB9D4Ckl4wX\nR/mbfghYXdv9A9uP1tndvYAP1qUA99t+XVef2r5H+QHX2ylrX9+xc247IiIiojeljGufGB4eHs2W\nVxERETGWoaEh1qxZy1QpLpAyrgOs0WhMdhciIiJiiuqHPCEzrX2i1WqNbtz40GR3I3bA7NkzyNj1\nroxf78rY9baM347q3ZnWQdmnNSIiIiJ6WJYH9ImRkRGazeZkdyMiIiKmoEajwbJlKya7G09I3yet\nko4CFtte0HFsKaUgwGLbh49z3h2UylZnjPP5VcAhlP1T9wbuAk623ZJ0KfByYFMNP54yH78M2Af4\nKbDQ9r2SDgMuBTYDN9u+oOMaw8By2wdNdJ/NZpP8ECsiIiL61aAsD+heuDs6znEAJM0F1lEqaW2t\nEtXZtufbnktJSo+vx18KHFs/m297E6XM6zdsH0nZr/XsGns5cKLtecChkg6ufVgIXAPstx33GRER\nEdGXBiVp7V7sO9Hi30XAtZTSrKdM1K6k6ZQqWPfWPVifB3xY0mpJb66x63i8UtYsYHMtBbun7Q31\n+E3AMfX1RuDICfoZERERMRD6fnlANV/Sqvp6GjAHOHeswJpIHkGpjLWekrheNk67F0k6BzgAeBi4\nE5hBKS5wMeXve6uk2ynLCEYkfRN4OjCPkrx2VrraVPuG7Rtrf3bgdiMiIiL6y6AkrbfYPqn9plan\nGs9CSmJ7fX3eX9LRwGxKmdZR4Mwa+07bK2ub51MS1bcCH7L903p8FfBi4HXARbavlPQiSgWtI3h8\n9hVgJnD/E7zXiIiIiL4zKElrt2ldz51OA45rl2iVtABYYvsE4Lp2UJ0B7Tz/bqABCPhrSS+m/H1f\nDvwVcBTwQI39ITDT9iZJj0iaA2wAjgXOG6evEREREQNrUJPW0fo4UNJtlMRwFDgLoJ2wVsuBSyQd\nYPuernbaywO2UNYHn2p7g6SPAV8FHgU+Zvvbkt4NfETSOyh/97fUNk4Hrq7nr7R9+xh9jYiIiBho\nqYjVJ4aHh0ez5VVERESMZWhoiDVr1jJVvsDdkYpYgzrT2nf6oaZwREREPDn6IU/ITGufaLVao6nB\n3JtSP7u3Zfx6V8aut2X8dlRmWmOSTZ8+nanyH2Jsn4xdb8v49a6MXW/L+A2eJK19otVqkd9s9aaM\nXW/L+PWujF1vy/jtiN5O8pO09omRkRGazeZkdyMiIiKmmEajwbJlKya7G09YktbtIOkoYLHtBR3H\nlgLftv2xjmOvBN5D2fLqXuB/tosNdMTcCrzN9j91tf8p4JuULbB2Bz5o+9qJ+tZsNsnuAREREdGv\ndpvsDvSgbfku4s+BX7P9CuA7PL4n67a4xfb8eu6xwDmSDtruXkZERET0kSSt229bFoS8wvaP6uvd\ngZ9uLXg8th8CrgDesCPnR0RERPSLLA/YfvMlraqvpwFzgHd3Btj+dwBJrwdeAfzhE7jevwMveQLn\nR0RERPS8JK3b7xbbJ7XfSLoQmFnXqI4Cb7T9A0m/A5wAHGv70Vq+9Q01ZuF2XK8B/OvO635ERERE\n70nS+sRNAzbZPrp9QNL/psyOHmP7EQDblwGXdcS0zx2rvXbMLGARJfmNiIiIGFhJWp+4//LDLEnP\noCwX+DrwOUmjwF/bvmKMc6+V1F7v+nfADcDRdfnBFmA68Ee2//nJ6nxEREREL0gZ1z4xPDw8mi2v\nIiIiotvQ0BBr1qxlKhUXSBnXAdZoNCa7CxERETEF9UuOkJnWPtFqtUY3bnxosrsRO2D27Blk7HpX\nxq93Zex6W8ZvR2SmNaaA6dOnM5X+Y4xtl7HrbRm/3pWx620Zv8GTpLVPtFottq1YV0w1GbvelvHr\nXRm73pbx2xG9neQnae0TIyMjNJvNye5GRERETDGNRoNly1ZMdjeesL5PWiUdBSy2vaDj2FJgfT1+\n+Djn3QGstn3GOJ9fBRwC3AfsDdwFnGy7Jel3gd+i/BPwRtvvkXQO8Op67OnAM20/W9JhwKXAZuBm\n2xfU9j8N/Fw9/hPbr93afTabTbJ7QERERPSrvk9aq+7vD0bHOQ6ApLnAOkrJ1hm2x1vpfbbtlfWc\nTwLH12R3ge2X1eOrJa2wfRFwUT32t8BZtY3LgdfZ3iDpBkkH274TeJ7tA3fsdiMiIiL6y26T3YFd\npHsRx0SLOhYB1wIrgFMmalfSdGAWcC/wPcqMatseQLuAAJJeD2y0fYukmcCetjfUj28CjqkFCp4m\n6TOSviBpq7OsEREREf1uUGZa59cqU1ASzTnAuWMF1kTyCOA0yhKCFXSUX+1yUf3a/wDgYeBO2y1g\nY23r/cBa29/pOOf3gRPr61nAgx2fbap92wP4U+CDlCUCX5L0Vds/2uY7joiIiOgjg5K03mL7pPYb\nSRduJXYhJbG9vj7vL+loYDawhLKk4Mwa+86O5QHnAxcDiyTtBfwl8ADw9o7r/g/gx7bvqocepCSu\nbTOB+4F/A66wvQX4YV1yICBJa0RERAykQUlau03reu50GnCc7fUAkhYAS2yfAFzXDpLUff7dQLvk\nxGeAz9t+f1fbxwCfbb+xvUnSI5LmABuAY4HzgFcBZwCvlbQPcCDw7e2+y4iIiIg+MahJ62h9HCjp\nNkryOUr9cVQ7Ya2WA5dIOsD2PV3ttJcHbKGsDz5V0q8D84A9JL2mtvsu218Fng/c3NXGYuDqev5K\n27cDSBqRtAZo1fM37qR7j4iIiOg5KePaJ4aHh0ez5VVERER0GxoaYs2atUyl4gIp4zrAGo3GxEER\nERExcPolR8hMa59otVqjGzeOt51sTGWzZ88gY9e7Mn69K2PX2zJ+O6K3Z1oHZZ/WiIiIiAE2dRLW\nHZXlAX1iZGSEZrM52d2IiIiIKaTRaLBs2YrJ7sZO0fdJq6SjgMW2F3QcW0opHLDY9uHjnHcHsNr2\nGeN8fhVwCHAfsDdwF3Cy7ZakRcBbgc3Ae23fWHcZeDVlN4GnA8+0/WxJhwGX1tibbV9Q238fpcjB\ndOBK2x/Z2n02m03yQ6yIiIjoV4OyPKB74e7oOMcBkDQXWEeppDVjK+2ebXu+7bmUeffjJT2Tssfq\n4ZQk9U8k7WH7IttH254P/CvwptrG5cCJtucBh0o6WNIrgKHa7jzgHEn7bu9NR0RERPSLQUlauxdy\nTLSwYxFwLaWE6ykTtStpOqWy1b3AyygztI/ZfhD4Z+Cg9gmSXg9stH1LLRm7p+0N9eObKAUIvgyc\n2nGd3SgzsREREREDqe+XB1TzJa2qr6cBc4BzxwqsieQRlMpY6ymJ62XjtNsuLnAA8DD8f/buP86u\nqr73/2sYEsCYUKdUountaZypHysVRFsgaZAQcPBWKoX4tQRSBUIwSmJbQa3aCiKQipZfDyki/Var\nCCNckttbQPmRUDU4ChqKode8qw/MUdErV2JIDELgcO4fax09HOZkZgJhZu/9fj4e8zjn7P3Z66w9\nax6PfLLOOuvDfcCbSOVbW34BtM+S/g1wYn4+g1TKtWUbMFvSDmBHROwJfIZU0vXR0W/TzMzMrJyq\nkrSukXRS60VEXLiT2MWkxPam/DgzIo4E+oDlpCUFZ+XY90q6Lbf5YeBi4F9JyWjLdGBLjvl94OeS\nHsjntu4k9kWk2d61ki4a7w2bmZmZlUlVktZOPR2P7ZYAx7ZKuUbEImC5pIXAja2giOi8/odADbgH\nuCAipgL7AK8A7s8xRwNfbF0gaVtEPB4Rs4FNwDHAuRGxN3AH8HFJ1z27WzUzMzMrvqomrc38c0BE\n3E1KPpvA2QCthDVbBVwSEbMkPdjRTmt5wFOkdaenSfppRFwOrMvtfiB/3A/wcuD2jjaWAdfm62+V\ndE9E/BVpCcPSiDgj9+1USd7TyszMzCrJFbFKYmBgoOktr8zMzKxdf38/w8PrmWzFBXalIlZVZ1pL\npyx1hc3MzOy5U6b8wDOtJdFoNJquwVxMrp9dbB6/4vLYFZvHb7w802qTRG9vL5PtD9LGxmNXbB6/\n4vLYFZvHr3qctJZEo9GgS4Evm+Q8dsXm8Ssuj12xefzGoxzJvZPWkhgcHKRe9+YCZmZmltRqNYaG\nVk90N54zTlrHKCKOAJZJWtR2bCXwHUmfbTt2FPARYAeprOtbJT3W0dadpD1cHwWmAg8Afynp5xHx\naeA1wMPA3vnc2yQ1dta/er2Odw8wMzOzstpjojtQMGP5HOITwJskzQe+B5zeJe4vJC2QNA/4EnB1\n27n35HNzSXP6xz2LPpuZmZkVnpPW8RnLopD5kn6Wn+8JPNYl7ldtSboWeE2uovWrcxHRSyrz+tCu\nddfMzMysHLw8YHwWRMTa/LyHVLXqQ+0Bkn4KEBEnAPOBvx1j2z8HfiM/b1XamkVaQnDfs+u2mZmZ\nWbE5aR2fNZJOar2IiAuB6XmNahM4WdJPchnWhcAxknZExJnAm3PM4i5tz5T0UEQAvFfSbfk9Pgxc\nDCzdbXdlZmZmNsk5aX12eoBtko5sHYiIDwIHA0dLehxA0hXAFW0xT2skIk4H1nS02/JDoDzlLMzM\nzMx2gZPWZ+dpX8yKiBeTlgt8C/hSRDSBL0i6aoRrPxsR20kJ6o+AM9vOtZYHPEVad3za7ui8mZmZ\nWVG4jGtJDAwMNL3llZmZmbX09/czPLyeyVhcwGVcK6xW8woCMzMz+7Wy5QaeaS2JRqPR3Lx5+0R3\nw3ZBX980PHbF5fErLo9dsXn8xsMzrTaJ9Pb2Mhn/KG10Hrti8/gVl8eu2Dx+1eOktSQajQZjK9hl\nk43Hrtg8fsXlsSs2j994lCO5d9JaEoODg9Tr9YnuhpmZmU0StVqNoaHVE92N50zpk9aIOAJYJmlR\n27GVwMZ8fE6X6+4F1klaMUr7z4iLiKXAGcATwAWSbo6IGcA1pLKsU4CzJH09x/cCQ8DVbUUFLgLm\nAb35+D/trB/1eh3vHmBmZmZltcdEd+B50vn5QbPLcQAiYi6wgVS2dVq3RkeKi4j9gRXAHOANwMqI\nmAK8G7hD0nzgVHKxgYh4GfBl4A/b2p0P9EuaCxwOvC8i9h3H/ZqZmZmVSlWS1s7FHKMt7lgK3ACs\nBk4ZZ9whpJnXJyVtBb4LHEgqxdoqMjAF+GV+Pg1YAtzZ1u7XeHpBgT1Is7ZmZmZmlVT65QHZgohY\nm5/3ALOBc0YKjIjppI/ll5CWEKymrQTrGOJmAI+0hf4C2DcnsETETOBzwLsAJG3Ix3+VSEvaAeyI\niD2BzwBXSXp0F+7bzMzMrBSqkrSukXRS60VEXLiT2MWkxPam/DgzIo4E+oDlpCUFZwGHdonbSkpc\nW6YDW/L7vgq4lrSedd3OOhwRvwH8D2CtpIvGfqtmZmZm5VOVpLVTT8djuyXAsZI2AkTEImC5pIXA\nja2giLh6pDjgncD5ETEV2Ad4BXB/RLwSuB54S2t2tZuI2BtYA3xc0nW7fptmZmZm5VDVpLWZfw6I\niLtJyWsTOBuglYhmq4BLImKWpAcBIuLgbnGk3+nlwLrc7gck7cizu3sBl+WlAFskHd/Rp5ZlpCUM\nSyPijHzuVEne08rMzMwqyWVcS2JgYKDpLa/MzMyspb+/n+Hh9UzG4gIu41phtVptortgZmZmk0jZ\ncgPPtJZEo9Fobt68faK7Ybugr28aHrvi8vgVl8eu2Dx+41GOmdaq7NNqZmZmVkGTL2HdVV4eUBKD\ng6jG9dYAACAASURBVIPU6/6elpmZmaWlAUNDqye6G8+p0ietEXEEsEzSorZjK0kFAZZJmtPluntJ\nla1WjNL+M+IiYilwBqmK1QWSbo6IGcA1pD1cp5D2av16ju8FhoCrJd3W1s4AsErSgaPdZ71ex1/E\nMjMzs7KqyvKAzoW7zS7HAYiIucAGUiWtad0aHSkuIvYHVgBzgDcAKyNiCvBu4A5J84FTyVW2IuJl\nwJeBP+xoezFwHbDfmO/SzMzMrKSqkrR2LugYbYHHUuAGUmnWU8YZdwhp5vXJXLr1u8CBwMXAVTlm\nCvDL/HwaqaDBnR1tbwZeN0o/zczMzCqh9MsDsgURsTY/7yFt3H/OSIERMR2YR0okN5IS0ivGETcD\neKQt9BfAvjmBJSJmAp8D3gXQqo6VCw78iqRb8vFx36yZmZlZ2VQlaV0j6aTWi1ydqpvFpMT2pvw4\nMyKOBPpIZVqbwFnAoV3itpIS15bpwJb8vq8CriWtZ1333NyamZmZWflVJWnt1NPx2G4JcGyrRGtE\nLAKWS1oI3NgKioirR4oD3gmcHxFTgX2AVwD3R8QrgeuBt7RmV8fZVzMzM7PKqmrS2sw/B0TE3aTE\nsAmcDdBKRLNVwCURMUvSgwARcXC3ONLv9HJgXW73A5J25NndvYDL8lKALZKO7+hTt76amZmZVZor\nYpXEwMBA01temZmZGUB/fz/Dw+uZrB/YuiKWmZmZmZVSVZcHlE6tVpvoLpiZmdkkUca8wMsDSqLR\naDQ3b94+0d2wXdDXNw2PXXF5/IrLY1dsHr+x8vIAMzMzM7PnjZcHlMTg4CD1en2iu2FmZmaTQK1W\nY2ho9UR34zlV6KQ1Io4glT89UdL1bce/DXxT0mm7+f1fAnwPeKukG/OxPYF/Bn4XmApcIOnfIuLV\npK2wngQez9f834hYCpwBPJFjb25r/3jgzZJOHq0v9Xod7x5gZmZmZVWG5QEbgRNbLyLiD4AXPE/v\nfSpwGXBm27HFwM8kvQ7478An8vFLgTMlLSCVfH1fROwPrADmAG8AVkbEFICIuBS4gMm6GMXMzMzs\neVTomdbsPuDlETFd0jZS0ngN8DsRcSZwAimJ/RlwPHAy8KekalUzSbOfxwEHAGfnWdGfSHoJQERc\nB1wp6SsjvPdi4HDgXyPilZL+N6nq1Q35/B6kGVSAP5f00/x8T+Ax4BBgnaQnga0R8V3gQOBbwF2k\n5Pbtz/o3ZGZmZlZwZZhphVRe9YT8/BDga0Av0CfpKElzgCnAH+WYF0p6I3ARsEzSCaTk8NR8ftQt\nFSLiKGCDpIeBT5NKuCLpUUnbI2I6KXn9YD7+03zdXNLM7CXADOCRtmZ/Aeyb42/AzMzMzIByzLQ2\ngWuBT0bE94GvkD5Sfwp4Is+UbgdmkRJXgHvz4xbgO/n5z4G98/P2j+R7ACLiI8C8/H5HAUuB2RFx\nC6k864ER8T5J2yLiv5HKun5C0hdaDUXEnwPvB/5E0sMRsZWUuLZMz30yMzMzszZlSFqRtCkippHW\nh74f6Cclg8dJmhMR+5A+cm8lo6PNpO4ZES8gfWnqgPwef9c6GRH7AYdKmt127CrglIj4AnAraf3q\nnW3nF5O+cDVfUisxvRs4PyKmkpYrvAK4f1d+B2ZmZmZlVoqkNfsCsFjS9yKin7SWdHtErMvnfwy8\ndIxtXQZ8HXgA2DTC+b8gLUlo90/AvwAvA34D+LuI+BApQT42t1kHVkdEE/iypA9HxOXAOlJC/QFJ\nO8bYRzMzM7PKcEWskhgYGGh6yyszMzMD6O/vZ3h4PZN1E6JdqYhVppnWSitjjWEzMzPbNWXMCzzT\nWhKNRqPpGszF5PrZxebxKy6PXbF5/MbKM602yfT29jJZ/zBt5zx2xebxKy6PXbF5/KrHSWtJNBoN\nxrC9rE1CHrti8/gVl8eu2Dx+Y1WexN5Ja0kMDg5Sr9cnuhtmZmY2CdRqNYaGVk90N55TpU9aI+II\nUtWrRW3HVgIb8/E5Xa67l1RidcUo7T8jLiKWkvZkfQK4QNLNETGDVF52BqnIwVmSvp7je4Eh4GpJ\nt+VjpwDLSFXL/lXSBTvrR71ex7sHmJmZWVmVpYzraDo/P2h2OQ78qtTqBmBBLlowopHiImJ/UpGD\nOcAbgJURMQV4N3CHpPmkcrFX5PiXAV8G/rCt3ZeRysoeARwKTM2JrZmZmVklVSVp7VzQMdoCj6XA\nDcBq4JRxxh1Cmnl9UtJW4LvAgcDFwFU5Zgrwy/x8GrAE+FX1LOBoUgWvzwL/DtwlqTFKn83MzMxK\nq/TLA7IFEbE2P+8BZgPnjBQYEdOBeaREciMpIb1iHHEzgEfaQn8B7JsTWCJiJvA54F0Akjbk4+2J\n9H7A4aTZ2mnAuoj4o1YbZmZmZlVTlaR1jaSTWi8i4sKdxC4mJbY35ceZEXEk0AcsJy0pOIv0sf1I\ncVtJiWvLdGBLft9XAdeS1rOuo7uHgX+X9CjwaER8B3g58M0x37GZmZlZiVQlae3U0/HYbglwrKSN\nABGxCFguaSFwYysoIq4eKQ54J3B+REwF9gFeAdwfEa8Ergfe0ppd3Ym7gHfmNqYAvw98b5fu1MzM\nzKwEqpq0NvPPARFxNyl5bQJnA7QS0WwVcElEzJL0IEBEHNwtjvQ7vRxYl9v9gKQdeXZ3L+CyvBRg\ni6TjO/pEbvf+iPj/ga/lQ+dJ2vLc3LqZmZlZ8biMa0kMDAw0veWVmZmZAfT39zM8vJ7JWlzAZVwr\nrFarTXQXzMzMbJIoY17gmdaSaDQazc2bt090N2wX9PVNw2NXXB6/4vLYFZvHb6zKM9NalX1azczM\nzCpmciasu8rLA0picHCQer0+0d0wMzOzCVar1RgaWj3R3XjOlT5pjYgjgGWSFrUdW0kqCLBM0pwu\n191Lqmy1osv5TwOvIe2pujfwAPA2SY2IuBT4Y2BbDj+OtBXWG0i7BLwI2F/SSyPiMOBS4Angdknn\ntb3HALBK0oGj3We9XsdfxDIzM7OyKn3SmnUu3G12OQ5ARMwFNpAqaU2T1G3RzHsk3Zav+TwpOV0F\nvBY4RtLmttiP5h8i4t/I22sBVwLHS9oUETdHxEGS7ouIxcBfkqpjmZmZmVVaVda0di7qGG2Rx1Lg\nBlJp1lNGazcieklVsB7Ke7D+HvCpiFgXEae2XxARJwCbJa3JpWCnStqUT98KHJ2fbwZeN0o/zczM\nzCqhKjOtCyJibX7eA8wGzhkpMCeS80iVsTaSEtcrurT70Yh4HzALeBS4D5hGKi5wMen3e2dE3CPp\n/nzN3wAn5uczSGVfW7blviHpltyfcd2omZmZWRlVJWldI+mk1otcnaqbxaTE9qb8ODMijgT6SGVa\nm8BZOfa9bcsDPkxKVM8ALpf0WD6+FjiIVMr194GfS3ogX7+VlLi2TAdc+crMzMysQ1WS1k49HY/t\nlgDHtkq0RsQiYLmkhcCNraA8A9p+/Q+BGhDAFyLi1aTf7zzgMznmaOCLrQskbYuIxyNiNrAJOAY4\nt0tfzczMzCqrqklrM/8cEBF3kxLDJvnLUa2ENVsFXBIRsyQ92NFOa3nAU6T1waflL1R9FvgGsAP4\nF0nfyfEvB27vaGMZcG2+/jZJ94zQVzMzM7NKc0WskhgYGGh6yyszMzPr7+9neHg9k/nDWlfEMjMz\nM7NSqurygNKp1WoT3QUzMzObBMqaE3h5QEk0Go3m5s3daiDYZNbXNw2PXXF5/IrLY1dsHr+x8PIA\nMzMzM5vUJm/Cuqu8PKAkBgcHqdfrE90NMzMzm0C1Wo2hodUT3Y3dovRJa0QcASyTtKjt2EpStatl\nkuZ0ue5eYJ2kFaO0/4y4iFhKKjLwBHCBpJsjYgZwDamYwBTg3ZK+ERGHAZfm2NslndfWzgCwStKB\no91nvV7HuweYmZlZWVVleUDnwt1ml+MARMRcYAOp/Ou0bo2OFBcR+wMrgDnAG4CVETEFeDdwh6T5\nwKnAP+ZmrgROlHQ4cGhEHJTbWQxcB+w3vls1MzMzK5+qJK2dCztGW+ixFLgBWA2cMs64Q0gzr09K\n2gp8FziQVOL1qhwzBfhlREwHpkralI/fSqqaBbAZeN0o/TQzMzOrhNIvD8gWRMTa/LwHmA2cM1Jg\nTiTnkcq5biQlpFeMI24G8Ehb6C+AfXMCS0TMBD4HvCvHbm2L3Zb7hqRbcvy4b9bMzMysbKqStK6R\ndFLrRURcuJPYxaTE9qb8ODMijgT6gOWkJQVnAYd2idtKSkZbpgNb8vu+ilSy9SxJ63LiO2KsmZmZ\nmf1aVZLWTj0dj+2WAMdK2ggQEYuA5ZIWAje2giLi6pHigHcC50fEVGAf4BXA/RHxSuB64C2SNgBI\n2hYRj0fEbGATcAxwbpe+mpmZmVVWVZPWZv45ICLuJiWGTeBsgFYimq0CLomIWZIeBIiIg7vFkX6n\nlwPrcrsfkLQjz+7uBVwWET3AFknHA+8gzb7uAdwm6Z4R+mpmZmZWaa6IVRIDAwNNb3llZmZWbf39\n/QwPr2eyf1C7KxWxqjrTWjplrTNsZmZmY1fmfMAzrSXRaDSarsFcTK6fXWwev+Ly2BWbx280nmm1\nSaq3t5fJ/gdqI/PYFZvHr7g8dsXm8aseJ60l0Wg08He2isljV2wev+Ly2BWbx29nypnMO2kticHB\nQer1+kR3w8zMzCZIrVZjaGj1RHdjtyl90hoRRwDLJC1qO7aSVMVqmaQ5Xa67l1SOdcUo7T8jLiKW\nAmcATwAXSLo5ImYA15CKCUwB3i3pGxHxZ8DHgR/ky8+R9NWIOAf4k9zGX4+wFdbT1Ot1vHuAmZmZ\nldUeE92B50nn5wfNLscBiIi5wAZS+ddp3RodKS4i9gdWAHOANwArI2IK8G7gDknzgVOBf8zNvBZ4\nj6QF+eereR/YwyUdCixihDKyZmZmZlVSlaS1c3HHaIs9lgI3AKuBU8YZdwhp5vVJSVuB7wIHAhcD\nV+WYKcAv8/PXAqdFxFci4mMR0QvMA24DkPRDoDcifnOUPpuZmZmVVumXB2QLImJtft4DzAbOGSkw\nIqaTksYlpCUEqxlhpnMncTOAR9pCfwHsmxNYImIm8DngXfn8bcD/lLQpIq4EluU2ftbZBvDwuO7a\nzMzMrCSqkrSukXRS60UuqdrNYlJie1N+nBkRRwJ9wHLSkoKzgEO7xG0lJZ0t04Et+X1fRSrZepak\ndfn8pyW1ktz/BSwE/qNbG2ZmZmZVVJWktVNPx2O7JcCxkjYCRMQiYLmkhcCNraCIuHqkOOCdwPkR\nMRXYB3gFcH9EvBK4HniLpA1t7/ftiJgj6cfAUcA3gbuBj0bEx4H/BvRI2vwc3buZmZlZ4VQ1aW3m\nnwMi4m5S8toEzgZoJaLZKuCSiJgl6UGA/EWpEeNIv9PLgXW53Q9I2pFnd/cCLouIHmCLpONJSfLq\niHgU+N/A1ZIaEfFVYDi3cebu+CWYmZmZFYXLuJbEwMBA01temZmZVVd/fz/Dw+spQnEBl3GtsFqt\nNtFdMDMzswlU9lzAM60l0Wg0mps3b5/obtgu6OubhseuuDx+xeWxKzaP386Uc6a1Kvu0mpmZmVXA\n5E9Yd5WXB5TE4OAg9Xp9orthZmZmE6BWqzE0tHqiu7FblT5pjYgjgGWSFrUdW0kqCLBM0pwu191L\nqmy1osv5TwOvIW34vzfwAPA2SY18/rdIOwi8StKOfOxHwH/lJoYlfTAf7wWGSDsH3BYRxwB/Q9rR\nYA9SEYMDJKnbfdbrdfxFLDMzMyur0ietWefC3WaX4wBExFxgA6mS1jRJ3RbNvEfSbfmazwPHAasi\nYhD4e2D/tjb7gW9JOq7jvV4GfBaYBVwNIOlW4NZ8/mzgqztLWM3MzMzKriprWjsXeIy24GMpcAOp\nNOspo7WbZ0pnAA/l4w1SoYD2ggCvBX47ItZGxE0R8fJ8fBppr9Y7OxuPiN8mVeg6b5T+mpmZmZVa\nVWZaF0TE2vy8B5gNnDNSYERMJ30cv4S0hGA1cEWXdj8aEe8jzZI+CtwHIGlNbqs9Of4xcKGkGyPi\nj4FrgENa1bE6Ylv+GrhE0hNjvVEzMzOzMqpK0rpG0kmtF7k6VTeLSYntTflxZkQcCfSRyrQ2gbNy\n7Hvblgd8GLiYNEvb0r784FvAkwCS7oqIl+yswzmJPRb4wKh3Z2ZmZlZyVUlaO/V0PLZbAhzbKtEa\nEYuA5ZIWAje2giKi8/ofAp27+rafP4f0pa2PRcRBOX5n/gD4jqTHR4kzMzMzK72qJq3N/HNARNxN\nSi6bwNkArYQ1WwVcEhGzJD3Y0U5recBTpPXBp43wPi1/D1wTEW8EnuCZa2U7vxQWpB0JzMzMzCrP\nFbFKYmBgoOktr8zMzKqpv7+f4eH1FKW4gCtimZmZmVkpVXV5QOnUap3Lac3MzKwqqpAHeHlASTQa\njebmzd1qINhk1tc3DY9dcXn8istjV2wev268PMDMzMzMbMJ4eUBJDA4OUq/XJ7obZmZmNgFqtRpD\nQ6snuhu7VemT1og4AlgmaVHbsZWkalfLJM3pct29wDpJK0Zp/xlxEbEUOIO0tdUFkm5uO3c88GZJ\nJ+fXhwKX5djbJZ3XFjsArJJ04Gj3Wa/X8e4BZmZmVlZVWR7QuXC32eU4ABExF9hAKv86rVujI8VF\nxP7ACmAO8AZgZURMyecuBS7g6QtOPgmcKOlw4NBceICIWAxcB+w3jvs0MzMzK6WqJK2di31HW/y7\nFLgBWM0ziwCMFncIaeb1SUlbge8CrZnSu4B3tC6OiOnAVEmb8qFbgaPz883A60bpp5mZmVklVCVp\nXRARa/PPncCiboE5kZwH3Az8C21J5hjjZgCPtIX+AtgXQNINHc3MALa2vd7WFnuLpF+O6e7MzMzM\nSq70a1qzNZJOar2IiAt3EruYNBN7U36cGRFHAn3ActKSgrOAQ7vEbSUloy3TgS1d3ms8sWZmZmaV\nVZWktVNPx2O7JcCxkjYCRMQiYLmkhcCNraCIuHqkOOCdwPkRMRXYB3gFcP9InZC0LSIej4jZwCbg\nGODcLn01MzMzq6yqJq3N/HNARNxNSgybwNkArUQ0WwVcEhGzJD0IEBEHd4sj/U4vB9bldj8gacdO\n+rIMuJa0VOM2SfeM0FczMzOzSnNFrJIYGBhoessrMzOzaurv72d4eD1F+YB2VypiVXWmtXSqUHPY\nzMzMRlaFPMAzrSXRaDSarsFcTK6fXWwev+Ly2BWbx68bz7TaJNfb20tR/lDt6Tx2xebxKy6PXbF5\n/KrHSWtJNBoN/J2tYvLYFZvHr7g8dsXm8WtXjeTdSWtJDA4OUq/XJ7obZmZm9jyp1WoMDa2e6G48\nb5y0jlFEHAEsk7So7dhK4DuSPtt27CjgI8AO4CHgrZIe62jrTtIero8CU4EHgL+U9POI+DTwGuBh\nYArwf4F3t5V6HVG9Xse7B5iZmVlZVaWM63NlLJ9DfAJ4k6T5wPeA07vE/YWkBZLmAV8Crm479558\n7nDgYuD6Z9FnMzMzs8Jz0jo+Y1k0Ml/Sz/LzPYHHusT9qi1J1wKvyVW0nkbSOmBHRLxsvJ01MzMz\nKwsvDxifBRGxNj/vAWYDH2oPkPRTgIg4AZgP/O0Y2/458Btdzj0E7EdaRmBmZmZWOU5ax2eNpJNa\nLyLiQmB6XqPaBE6W9JOI+CtgIXCMpB0RcSbw5hyzuEvbMyU9FBEjnasBP3oub8TMzMysSJy0Pjs9\nwDZJR7YORMQHgYOBoyU9DiDpCuCKtpinNRIRpwNrOtptnXs9sF3Sj3fHDZiZmZkVgZPWZ+dpX8yK\niBeTlgt8C/hSRDSBL0i6aoRrPxsR20kJ6o+AM9vOfTQi3gc8BWwF/nx3dN7MzMysKFzGtSQGBgaa\n3vLKzMysOvr7+xkeXk8Riwu4jGuF1Wq1ie6CmZmZPY+q9m+/Z1pLotFoNDdv3j7R3bBd0Nc3DY9d\ncXn8istjV2wev3aeabUC6e3tpYh/tOaxKzqPX3F57IrN41c9TlpLotFoMLaCXTbZeOyKzeNXXB67\nYvP4tatG8l76pDUijgCWSVrUdmwlsDEfn9PlunuBdZJWjNL+iHER8VvAOuBVkna0HT8eeLOkk/Pr\nQ4HLgCeA2yWd1xY7AKySdOBo9zk4OEi9Xh8tzMzMzEqiVqsxNLR6orvxvCl90pp1/les2eU4ABEx\nF9hAqoA1TdKIi2a6xUXEIPD3wP4d8ZcCg8B/tB3+JHC8pE0RcXNEHCTpvohYDPwlqRLWqOr1Ot49\nwMzMzMpqj4nuwPOkc958tHn0pcANwGrglF2IawBHAZs74u8C3tF6ERHTgamSNuVDtwJH5+ebgdeN\n0k8zMzOzSqjKTOuCiFibn/cAs4FzRgrMieQ8YAlpCcFq2qpZjSVO0poc87TkWNINeblCywxS8YCW\nbblvSLoltzGO2zQzMzMrp6okrWskndR6EREX7iR2MSmxvSk/zoyII4E+YDlpScFZwKEjxUm6s62t\n0VaIbyUlri3TgS1juiMzMzOzCqlK0tqpp+Ox3RLgWEkbASJiEbBc0kLgxlZQRFw9UhzQnrTudBmC\npG0R8XhEzAY2AccA53bpq5mZmVllVTVpbeafAyLiblJi2ATOBmglotkq4JKImCXpQYCIOHgscYxt\nL45lwLWk9cW3SbpnhL6amZmZVZorYpXEwMBA07sHmJmZVUd/fz/Dw+sp4oeyu1IRqyq7B5iZmZlZ\ngVV1eUDp1Gq1ie6CmZmZPY+q9m+/lweURKPRaG7ePGINBJvk+vqm4bErLo9fcXnsis3j187LA8zM\nzMzMJgUvDyiJwcFB6vX6RHfDzMzMnie1Wo2hodUT3Y3nTWWS1lyJ6k7gREnXtx3/NvBNSaftxvf+\nPtDKKF8A3CDpY7li1j8CBwGPAadLeiAiXglcleO/m48/tbP3qNfrePcAMzMzK6uqLQ/YCJzYehER\nf0BKIne3JvB6SfOBucDbI2I/4M+AvSTNBd4PXJzjLwD+RtLhpIUqf/o89NHMzMxs0qrMTGt2H/Dy\niJguaRupZOs1wO9ExJnACaQk9mfA8cDJpIRxH2AmcDlwHHAAcLakf4uIn0h6CUBEXAdcKekrHe/b\nw6//g/BCYAfwKDAP+BKApG9ExB/mmBMkNSNian7fR57j34OZmZlZoVRtphVSKdYT8vNDgK8BvUCf\npKMkzQGmAH+UY14o6Y3ARcAySScAbwdOzefHuv3CrRHx76TZ3mFJjwIzeHpC+mRE7JET1t8B7gd+\nk5Rsm5mZmVVW1WZam6SSqZ/M60y/QpoFfQp4Is+UbgdmkRJXgHvz4xbgO/n5z4G98/P2LRt6ACLi\nI6RZ1CZwdD73eklPRMSewBcj4mRSwjq97fo9WmtXJf2ANCu8BLgEOOXZ3bqZmZlZcVVuplXSJmAa\nsIK0NADSjOdxkhbl4738OhkdbSZ1z4h4Qf4o/4D8Hn8n6UhJC9q+QLVHPvck8FNSUnwX8EaAiDgM\n2JCf/2tEDOTrtgGNXb9jMzMzs+Kr2kxryxeAxZK+FxH9wBPA9ohYl8//GHjpGNu6DPg68ACwqUtM\nk7Q8oEFKVn8AfB54EhiMiLtyXGvJwUrgMxHxOGnt6+ljvTEzMzOzMnJFrJIYGBhoessrMzOz6ujv\n72d4eD1VqYhV1ZnW0qla/WEzM7Oqq9q//Z5pLYlGo9F0DeZicv3sYvP4FZfHrtg8fu0802oF0tvb\n/t0xKxKPXbF5/IrLY1dsHr/qcdJaEo1Gg7FvGWuTiceu2Dx+xeWxKzaPX0t1EncnrSUxODhIvV6f\n6G6YmZnZ86BWqzE0tHqiu/G8Kn3SGhFHkCpZLWo7tpJUmWpZroA10nX3Auskrehy/tPAa4CHSYUG\nHgDeJqmRz/cANwP/U9Kn2q57BWmLrBdL2pH3Z72UtO3W7ZLOy3EXkQoU9AJXS/qnnd1nvV7HuweY\nmZlZWVWluEDn5wfNLscBiIi5pI3+F0TEtJ20+55cQGAuaX7+uLZz5wO/0dHudODjwGNth68ETpR0\nOHBoRBwUEfOB/tzu4cD7ImLfnd2gmZmZWZlVJWntXPAx2gKQpcANwGp2Xj61Vba1l1RV66H8eiGp\nitWXOuI/BbyfVDCglcROzVW6AG4llX39GnBa23V7kGZizczMzCqp9MsDsgURsTY/7wFmA+eMFJgT\nyXnAEtISgtXAFV3a/WhEvA+YRUpE74uIPwBOAt4MfKit3XOBmyRtyEsHICW6W9va2wbMlrQD2BER\newKfAa6S9Oi47tjMzMysRKqStK6RdFLrRURcuJPYxaTE9qb8ODMijgT6gOWkJQVn5dj3Srott/lh\n4GLSGteXAmuB3wUej4g6KZH9UUScDswEbgP+lJS4tkwHtuT2XkSa7V0r6aJdvnMzMzOzEqhK0tqp\np+Ox3RLgWEkbASJiEbBc0kLgxlZQRHRe/0OgJulv2mLOAX4i6Vbg5W3Hvw+8XtITEfF4RMwGNgHH\nAOdGxN7AHcDHJV33bG/WzMzMrOiqmrQ2888BEXE3KflsAmcDtBLWbBVwSUTMkvRgRzut5QFPkdad\nnsbYNPl1wrsMuDZff6ukeyLir0hLGJZGxBk5/lRJ3tPKzMzMKsllXEtiYGCg6S2vzMzMqqG/v5/h\n4fUUtbiAy7hWWK1Wm+gumJmZ2fOkiv/ue6a1JBqNRnPz5u0T3Q3bBX190/DYFZfHr7g8dsXm8Wvx\nTKsVTG9vL0X9w606j12xefyKy2NXbB6/6nHSWhKNRoMuBb5skvPYFZvHr7g8dsXm8atewu6ktSQG\nBwep1725gJmZWZnVajWGhlZPdDcmROmT1og4AlgmaVHbsZWkalfLJM3pct29wDpJK0Zp/xlxEfHX\nwJ+T/gt4i6SPRMQepOIDrwX2As6VdEtEHAZcSirTeruk89raGQBWSTpwtPus1+t49wAzMzMrqz0m\nugPPk87PD5pdjgMQEXOBDaTyr9O6NTpSXC4UsEjSYTkhPiaXdv0LYE9JhwN/BgzkZq4ETszHx/UH\nkwAAIABJREFUD42Ig3I7i4HrgP3GfbdmZmZmJVOVpLVz4cdoC0GWkkqorgZOGWfcD4E3tMXsCTxG\nqnb144i4CfgU8G8RMR2YKmlTjr0VODo/3wy8bpR+mpmZmVVC6ZcHZAsiYm1+3kOqNnXOSIE5kZxH\nKue6kZSQXjHWOElPkhJOIuJjwHpJ34uI/YB+ScdGxOuAzwAnAVvbmt2W+4akW3Ibu37XZmZmZiVR\nlaR1jaSTWi8i4sKdxC4mJbY35ceZEXEk0AcsJy0pOAs4dKQ4SXdGxF7APwOPAGfmdh/OsUj6SkT8\nXj4/o+29pwNbnuW9mpmZmZVOVZLWTj0dj+2WAMdK2ggQEYuA5ZIWAje2giLi6pHigDuB/wXcIelj\nbe2uA/4EWJ3Xrf5A0i8i4vG8DnYTaQnBuV36amZmZlZZVU1am/nngIi4m5QYNoGzAVqJaLYKuCQi\nZkl6ECAiDt5J3MnA4cCUiPiT3O77gauBKyNiOMcvy4/vAK4lrS++TdI9I/TVzMzMrNJcxrUkBgYG\nmt7yyszMrNz6+/sZHl5P0T+IdRnXCqvVahPdBTMzM9vNqvzvvWdaS6LRaDQ3b94+0d2wXdDXNw2P\nXXF5/IrLY1dsHr/qzbRWZZ9WMzMzs5IodsK6q7w8oCQGBwep1+sT3Q0zMzPbTWq1GkNDqye6GxPG\nSes4RMQRwDJJi9qOrQS+I+mzbceOAj4C7AAeAt4q6bGOtu4E3i7pvyLihaQ9XG8BvgB8G/gWaSb8\nBcAHJN2xs77V63X8RSwzMzMrKy8PGL+xLAL+BPAmSfOB7wGndwvMlbW+CFwn6aJ8+D8lLcjXnwxc\n8qx6bGZmZlZwTlrHbywLSeZL+ll+vifwWJe4FwG3A5+SdFWX9+gDfjruXpqZmZmViJcHjN+CiFib\nn/cAs4EPtQdI+ilARJwAzAf+tktb1wA/AWZ1HH9lfo8pwKuBFc9Jz83MzMwKyknr+K2RdFLrRURc\nCEzPa1SbwMmSfhIRfwUsBI6RtCMizgTenGMW58vfC9wBfDMi7pL01Xz8PyUtyO2/GPiPiFgj6YfP\nyx2amZmZTTJOWp+9HmCbpCNbByLig8DBwNGSHgeQdAVwRVsMpOR0W0S8Fbg+Il7b1mbLFuBRPFZm\nZmZWYV7T+uw97YtZeWb0Q8BLgS9FxNqIePvOrpP0DeAq4FrSmPx+vm4N8GXSmtfv764bMDMzM5vs\nXBGrJAYGBpre8srMzKy8+vv7GR5eTxmKC+xKRSx/5FwSVa5FbGZmVgVV/7feM60l0Wg0mtWuwVxc\nrp9dbB6/4vLYFVu1x88zrVZgvb29lOGPuIo8dsXm8Ssuj12xefyqx0lrSTQaDcZWrMsmG49dsXn8\nistjV2zVHr9qJutOWkticHCQer0+0d0wMzOz3aRWqzE0tHqiuzFhSp+0RsQRwDJJi9qOrQQ25uNz\nulx3L7BO0ojVqCLi08BrgIeBvYEHgLdJauTzvwWsA14laUfbda8Avg68OBcdOAy4FHgCuF3SeTnu\nImAe0AtcLemfdnaf9Xod7x5gZmZmZVWVfVo7Pz9odjkOQETMBTaQSrZO20m775G0QNJc0lz9cfn6\nQeBWYP+OdqcDHwceazt8JXCipMOBQyPioIiYD/Tndg8H3hcR+45+m2ZmZmblVJWktXPxx2iLQZYC\nNwCrgVNGazcieoEZwEP5eAM4CtjcEf8p4P2kCletJHaqpE35/K3A0cDXgNPartuDNBNrZmZmVkml\nXx6QLYiItfl5DzAbOGekwJxIzgOWkJYQrKat/GqHj0bE+4BZpET0PgBJa3Jbv0qOI+Ic4CZJG9qO\nzwC2trW3DZidlxPsiIg9gc8AV0l6dFx3bGZmZlYiVUla10g6qfUiIi7cSexiUmJ7U36cGRFHAn3A\nctKSgrNy7Hsl3Zbb/DBwMWmWtqV9+cFi4IcRcTowE7gN+FNS4toyHdiS23sRabZ3raSLxnW3ZmZm\nZiVTlaS1U0/HY7slwLGSNgJExCJguaSFwI2toIjovP6HQGepil+dl/R7bdd+H3i9pCci4vGImA1s\nAo4Bzo2IvYE7gI9Lum6X7tDMzMysRKqatDbzzwERcTcpuWwCZwO0EtZsFXBJRMyS9GBHO63lAU+R\n1p2e1nG+2wZyTX6d0C4Drs3X3yrpnoj4K9IShqURcUaOP1WS97QyMzOzSnIZ15IYGBhoessrMzOz\n8urv72d4eD1lKC7gMq4VVqt1rkwwMzOzMqn6v/WeaS2JRqPR3Lx5+0R3w3ZBX980PHbF5fErLo9d\nsVV7/DzTagXW29tLGf6Iq8hjV2wev+Ly2BWbx696nLSWRKPRoPv3vmwy89gVm8evuDx2xVbt8atm\nsu6ktSQGBwep1725gJmZWVnVajWGhlZPdDcmjJPWcYiII4Blkha1HVsJfEfSZ9uOHQV8BNhBKu36\nVkmPdbR1J/B2Sf8VES8kFTO4BfgCMCRpTo6bB/wzsFDShm59q9frePcAMzMzK6s9JroDBTSWzyI+\nAbxJ0nzge8Dp3QJz2dgvAte1Vb5q5nPzgU8C/31nCauZmZlZ2TlpHb+xLCSZL+ln+fmewGNd4l4E\n3A58StJV7e+RZ2uvAI6R5ClUMzMzqzQvDxi/BRGxNj/vIVWu+lB7gKSfAkTECcB84G+7tHUN8BNg\nVsfxfuB8YC9g2nPSazMzM7MCc9I6fmskndR6EREXAtPzGtUmcLKkn+RSrAtJM6U7IuJM4M05ZnG+\n/L3AHcA3I+IuSV/Nxx8F3gDMA66PiEMlPf683J2ZmZnZJOSk9dnrAbZJOrJ1ICI+CBwMHN1KNiVd\nQfq4vxUD8J+StkXEW0nJ6Wvz6R9LegS4OSKOydd1XRdrZmZmVnZe0/rsPe2LWRHxYtJygZcCX4qI\ntRHx9p1dJ+kbwFXAtTxzTN4D/FFELMbMzMysolzGtSQGBgaa3vLKzMysvPr7+xkeXk8Zigu4jGuF\n1Wq1ie6CmZmZ7UZV/7feM60l0Wg0mps3b5/obtgu6OubhseuuDx+xeWxK7Zqj181Z1q9ptXMzMys\nMIqfsO4qLw8oicHBQer1+kR3w8zMzHaDWq3G0NDqie7GhKpM0hoRRwB3AidKur7t+LeBb0o6bTe+\n9/eBVkb5AuAGSR+LiB7gH4GDSFWzTpf0QEQcRCrf+gTwX5JG3e6qXq/jL2KZmZlZWVVtecBG4MTW\ni4j4A1ISubs1gddLmg/MBd4eEfsBfwbsJWku8H7g4hx/DnCupNcBe0fEG5+HPpqZmZlNWpWZac3u\nA14eEdMlbSNVproG+J1cseoEUhL7M+B44GTgT4F9gJnA5cBxwAHA2ZL+LSJ+IuklABFxHXClpK90\nvG8Pv/4PwguBHaSqV/OAL0Haq7WtuMC9wH55JnY6acbVzMzMrLKqNtMKcCMpOQU4BPga0Av0STpK\n0hxgCvBHOeaFkt4IXAQsk3QC8Hbg1Hx+rNsv3BoR/06a7R2W9CgwA3ikLaYREXsA3yUlyP8JvBj4\n9/HepJmZmVmZVG2mtUmqOvXJvM70K6RZ0KeAJ/JM6XZgFilxhTTrCbAF+E5+/nNg7/y8/Wt8PQAR\n8RHSLGoTODqfe72kJyJiT+CLEXEyKWGd3nb9HpKeiojLgD+WtDEi3klaNrD8Wd+9mZmZWUFVLWlF\n0qaImAasIK0j7SfNeB4naU5E7AN8i18no6PNpO4ZES8AniQtG0DS37UHRATkWW1JT0bET0lJ8V3A\nm4D/ERGHARvyJQ8D2/LzH5PWwZqZmZlVVuWS1uwLwGJJ34uIftKa0e0RsS6f/zHw0jG2dRnwdeAB\nYFOXmCZpeUCDlKz+APg8KdEdjIi7clxrycHpwBci4gnS+telY70xMzMzszJyRaySGBgYaHrLKzMz\ns3Lq7+9neHg9ZSkusCsVsao601o6Va9HbGZmVmb+d94zraXRaDSa1a3BXGzVrp9dfB6/4vLYFVt1\nx88zrVZwvb29lOUPuWo8dsXm8Ssuj12xefyqx0lrSTQaDca+ZaxNJh67YvP4FZfHrtiqO37VTdSd\ntJbE4OAg9Xp9orthZmZmu0GtVmNoaPVEd2NClT5pjYgjSJWsFrUdW0mqTLUsV8Aa6bp7gXWSVozS\n/jPicknYt5GKFvyDpBsiYm9SydgXA1uBt0l6OO/Peilp263bJZ3X1s4AsErSgaPdZ71ex7sHmJmZ\nWVlVpYxr5+cHzS7HAYiIuaSN/hfkQgQjGikuIn6TVOb1MFI1rH/I4e8Avi3pdcDngFYBgiuBEyUd\nDhwaEQfldhYD1wH7jeM+zczMzEqpKklr5wKQ0RaELAVuAFYDp4wnTtLDwKslPQW8BPhljp0HfCk/\n/yJwVERMB6ZK2pSP38qvy75uBl43Sj/NzMzMKqH0ywOyBRGxNj/vAWYD54wUmBPJecAS0hKC1cAV\n44mT9FReIvBhUsUsSKViH8nPtwH7AtNJSwVoOz47t3FLfp9x36yZmZlZ2VQlaV0j6aTWi4i4cCex\ni0mJ7U35cWZEHAn0ActJSwrOAg4dKU7SnQCSroiIq4AvRcRXSQnr9Pwe04EtpCR1Rtt7t46bmZmZ\nWZuqJK2dejoe2y0BjpW0ESAiFgHLJS0EbmwFRcTVI8VFxIPAyhzfAB7Lj3cBbwS+CfwJ8FVJ2yLi\n8YiYDWwCjgHO7dJXMzMzs8qqatLazD8HRMTdpMSwCZwN0EpEs1XAJRExS9KDABFxcLc4YDvwHxEx\nTNo94IuSvhoR3wT+Jc+6Pg60Zn6XAdeS1hffJumeEfpqZmZmVmku41oSAwMDTW95ZWZmVk79/f0M\nD6+nLB/AuoxrhdVqtYnugpmZme0m/nfeM62l0Wg0mps3b5/obtgu6OubhseuuDx+xeWxK7bqjp9n\nWq3gent7KcsfctV47IrN41dcHrti8/hVj5PWkmg0Gvg7W8XksSs2j19xeeyKrZrjV+0k3UlrSQwO\nDlKv1ye6G2ZmZvYcq9VqDA2tnuhuTLjSJ60RcQSwTNKitmMrSVWslkma0+W6e4F1klaM0v4z4iJi\nKXAG8ARwgaSbI2IGcA2pmMAU4N2SvhERhwGX5tjbJZ2X27gAOIq0bdb7JX15Z/2o1+t49wAzMzMr\nqz0mugPPk87PD5pdjgMQEXOBDaTyr9O6NTpSXETsD6wA5gBvAFZGxBTg3cAdkuYDpwL/mJu5EjhR\n0uHAoRFxUES8GjhE0mHAIn5dCtbMzMyskqqStHYuAhltUchS4AZgNXDKOOMOIc28PilpK/Bd4EDg\nYuCqHDMF+GVETAemStqUj98KHC3pP0jVsQB+F/j5KP01MzMzK7XSLw/IFkTE2vy8B5gNnDNSYE4k\n55HKuW4kJaRXjCNuBvBIW+gvgH1zAktEzAQ+B7wrx25ti92W+4akpyLifNKs7U6XKJiZmZmVXVWS\n1jWSWmVTiYgLdxK7mJTY3pQfZ0bEkUAfsJy0pOAs4NAucVtJyWjLdGBLft9XkUq2niVpXU58R4wF\nkPS3ef3tNyLiq5K+vys3b2ZmZlZ0VUlaO/V0PLZbAhwraSNARCwClktaCNzYCoqIq0eKA94JnB8R\nU4F9gFcA90fEK4HrgbdI2gAgaVtEPB4Rs4FNpCUB5+bkd6Gk5cCO/PPUc/kLMDMzMyuSqiatzfxz\nQETcTUpem8DZAK1ENFsFXBIRsyQ9CBARB3eLI/1OLwfW5XY/IGlHnt3dC7gsInqALZKOB95Bmn3d\nA7hN0j0RsQfw/0XEunz8Cknez8rMzMwqy2VcS2JgYKDpLa/MzMzKp7+/n+Hh9ZSpuIDLuFZYrVab\n6C6YmZnZbuB/4xPPtJZEo9Fobt68faK7Ybugr28aHrvi8vgVl8eu2Ko5ftWeaa3KPq1mZmZmVmBe\nHlASg4OD1Ov+rpaZmVnZ1Go1hoZWT3Q3Jlzpk9aIOAJYJmlR27GVpIIAyyTN6XLdvaTKViNu7B8R\nnwZeAzwM7A08ALxNUiOf/y3SDgKvkrQjH/sR8F+5iWFJH4yIw4BLgSeA2yWdl2MvAI4ibXX1fklf\n3tl91ut1/EUsMzMzK6vSJ61Z58LdZpfjAETEXGADqZLWNEndFs28R9Jt+ZrPA8cBqyJiEPh7YP+2\nNvuBb0k6rqONK4HjJW2KiJsj4iDSopVDJB0WETXgX4FXj/VmzczMzMqmKklr52Lf0Rb/LgVuAH4A\nnMIIZVzb24mIXlJlq4fy8QZplvRbbbGvBX47l5N9FPhr4P8AUyVtyjG3AkdL+oeIOCYf+13g56P0\n18zMzKzUqpK0LsjJIqREczZwzkiBubTqPFJlrI3AaronrR+NiPcBs0iJ6H0AktbkttqT4x8DF0q6\nMSL+GPg8cDyp7GvLttw3JD0VEecDK/KPmZmZWWVVJWldI+mk1otcnaqbxaTE9qb8ODOXVe0jlWlt\nAmfl2Pe2LQ/4MHAxaZa2pX35wbeAJwEk3RURLyElrDP+H3t3H2Z3Vd97/52MRo5xQhm522i8uxtn\n2q9XoTzouZuQ5oFEnFTlaNscb5mYUyIxNdTk3G0DKOqRhwopWiFYOdyCl0jlYVoukp6egBKacJDg\nVNAgTeudj21tdgEfqExDIkqAnX3/sdYuu5vZM0ngOPn9fp/Xdc219177+1t7/Vjxmq9rr1nftphe\nYG/rhaSP5v23X4uI+yT906HfspmZmVl5VCVp7TSl47HdKuDMVonWiBgC1kpaBtzeCoqIzusfATpP\n/21//yLSH219Mu9bfUTS/og4EBGzgT3AUuDinCQvk7QWeCb/HDySGzUzMzMrg6omrc38c0JEPEBK\nLpvAeQCthDXbBFwVEbMkPdbRT2t7wEHSmbfnjPE5LX8E3BQRbyedFLAyt58L3JKv3yrpwYiYCrwr\nInbk9msk+TwrMzMzqyxXxCqJgYGBpo+8MjMzK5/+/n5GRnZS9YpYVV1pLR3XJTYzMysn/45PvNJa\nEo1Go1m9GszlUM362eXh+Ssuz12xVXP+vNJqJdDT00OZ/jFXieeu2Dx/xeW5KzbPX/U4aS2JRqNB\nlwJfdpTz3BWb56+4PHfFVr35c4LupLUkBgcHqdd9wICZmVmZ1Go1hoc3T/YwjgqlT1ojYhGwRtJQ\nW9sGUrWrNZJO63LdQ8AOSWNWo4qIG4A3ks5ePQb4DnC2pEZErAZ+h3S01WWS7oiIGcAw8CrgaWCF\npMcjYi6wMcfeLenSts8YADZJOmmi+6zX6/j0ADMzMyurqZM9gJ+Szu8Pml3aAYiIecAuUvnX6eP0\ne76kJZLmkdbt3xkRP0cqu3oa8OvAhoh4Oelc1r+RtBD4c+D83Me1wFmSFgBzcuEBImIFcCtw/GHd\nqZmZmVkJVSVp7dwIMtHGkNXAbcBmni8C0LXfiOghlWN9HPhV0grtc5L2AX8PnERKglslW2cAz0ZE\nLzBN0p7cfhdwRn4+CiycYJxmZmZmlVD67QHZkojYnp9PAWaTyqq+QE4k55PKue4mJa7XdOm3VRFr\nFvBj4GHgHcCTbTE/Ao4FfggMRsTfAccBC0jJ67622P15bEi6M4/ncO7TzMzMrJSqkrRuk7S89SIi\nLh8ndgUpsd2SH2dGxGKgD1hL2lKwPsdeIGlr7vMS4Ergf/D8iipAL7CXlCRfIen6iPgVUnnY+V1i\nzczMzKxNVZLWTlM6HtutAs6UtBsgIoaAtZKWAbe3gvIKaPv1jwA14EHgsoiYBvwH4A3A35K+7m+t\nwP4L0Ctpf0QciIjZwB5gKXBxl7GamZmZVVZVk9Zm/jkhIh4gJYZN4DyAVsKabQKuiohZkh7r6Ke1\nPeAgaX/wOZJ+EBGfBnbkfj8s6ZmI+BjwuYj4AOm/+/tyH+cCt+Trt0p6cIyxmpmZmVWay7iWxMDA\nQNNHXpmZmZVLf38/IyM7KdsXry7jWmG1Wm2yh2BmZmYvMf9+f55XWkui0Wg0R0efmuxh2BHo65uO\n5664PH/F5bkrturNn1davdJaEj09PZTtH3RVeO6KzfNXXJ67YvP8VY+T1pJoNBr4b7aKyXNXbJ6/\n4vLcFVt15s+JeYuT1pIYHBykXq9P9jDMzMzsJVCr1Rge3jzZwziqlD5pjYhFwBpJQ21tG0jVrtZI\nOq3LdQ+RyrGum6D/F8RFxFuBj+WX35C0NiKOA24iFRB4Algt6YcRMRfYCDwL3C3p0rZ+BoBNkk6a\n6D7r9To+PcDMzMzKaupkD+CnpPP7g2aXdgAiYh6wi1T+dXq3TseKi4hXAZ8A3p4T4j0R8Wrgw8B9\nkhYCnwE25G6uBc6StACYExEn535WALcCxx/uzZqZmZmVTVWS1s4NIRNtEFkN3AZsBlYeZlwrkb0y\nIr4C/EDSE8AvA1/KMfcDvxYRvcA0SXty+13AGfn5KLBwgnGamZmZVULptwdkSyJie34+BZgNXDRW\nYE4k55PKue4mJaTXHEbc8cDpwMnAj4H7ImIEeAh4B/Aw8E7glcAMYF9bt/vz2JB0Z/6cI7tjMzMz\nsxKpStK6TdLy1ouIuHyc2BWkxHZLfpwZEYuBPmAtaUvBemBOl7gngAcl/Uv+rK8ApwB/BHw6Iv4X\ncCfwCClhndH22b3A3hd7s2ZmZmZlU5WktdOUjsd2q4AzJe0GiIghYK2kZcDtraCIuH6sOGANcGJE\n9JGS0rnAdaSv+q+T9NcR8VvA/ZL2R8SBiJgN7AGWAhd3GauZmZlZZVU1aW3mnxMi4gFSYtgEzgNo\nJaLZJuCqiJgl6TGAiDi1WxwwDbgQ2Jr7/DNJ34qIA8Cf5q/7HyUlx5CS3FtI+4u3SnpwjLGamZmZ\nVZrLuJbEwMBA00demZmZlUN/fz8jIzsp6xeuLuNaYbVabbKHYGZmZi8R/15/Ia+0lkSj0WiOjj41\n2cOwI9DXNx3PXXF5/orLc1ds1Zk/r7S2VOWcVjMzMzMrMG8PKInBwUHq9fpkD8PMzMxeArVajeHh\nzZM9jKNK6ZPWiFgErJE01Na2gVQQYE0utTrWdQ8BOyStm6D/F8RFxGrgd4Bngcsk3RERrySdEnAc\ncAA4W9L3ImIusDHH3i3p0rZ+BoBNkk6a6D7r9Tr+QywzMzMrq6psD+jcuNvs0g5ARLRKsS6JiOnd\nOh0rLiJ+DlgHnAb8OrAhIl5OKvn6dUmLgJuBC3I31wJnSVoAzImIk3M/K4BbSRW2zMzMzCqtKklr\n52bfiTb/rgZuI5VmXXmYcb9KWnl9TtI+4O+BkyRdDVyWY34e2JtLwU6TtCe33wWckZ+PkgoSmJmZ\nmVVe6bcHZEsiYnt+PgWYDVw0VmBOJOeTDv/fTUpIrzmMuBnAk22hPwKOBZDUjIhtwInAW3LsvrbY\n/XlsSLozf85h36yZmZlZ2VQlad0maXnrRURcPk7sClJiuyU/zoyIxUAfqUxrE1gPzOkSt4+UjLb0\nAntbLyS9OVImegdwynixZmZmZpZUJWntNKXjsd0q4MxWidaIGALWSloG3N4Kiojrx4oDfhf4eERM\nA/4D8AbgbyPiQ8Cjkm4CngKek/SjiDgQEbOBPcBS4OIuYzUzMzOrrKomrc38c0JEPEBKDJvAeQCt\nRDTbBFwVEbMkPQYQEad2iyP9N/00sCP3+2FJz0TE54EbI2IVaS/xynzduaRTBaYCWyU9OMZYzczM\nzCrNFbFKYmBgoOkjr8zMzMqhv7+fkZGdlPULV1fEMjMzM7NSqur2gNKp1WqTPQQzMzN7ifj3+gt5\ne0BJNBqN5ujoU5M9DDsCfX3T8dwVl+evuDx3xVad+fP2gBZvDzAzMzOzo563B5TE4OAg9Xp9sodh\nZmZmL4Farcbw8ObJHsZRpfRJa0QsAtZIGmpr20CqYrVG0mldrnuIVI51XZf3bwDeCDwBHAN8Bzhb\nUiO/P4VUQOAvJF2X2x4Fvp27GJH0kYiYC2wEngXulnRp22cMAJsknTTRfdbrdXx6gJmZmZVVVbYH\ndG7cbXZpByAi5gG7SOVfp4/T7/mSlkiaR9p08s629z4O/Exbn/3AN3L8EkkfyW9dC5wlaQEwJyJO\nzvErgFuB4w/pDs3MzMxKrPQrrVnnZt+JNv+uBm4D/plUBOCa8fqNiB5SOdbH8+tlQAP4clvsm4DX\nRcR24MfA7wPfB6ZJ2pNj7gLOAB4GRoGFgJdPzczMrPKqstK6JCK25597gKFugRHRC8wnfbV/I6li\nVTdX5CT0W8DrgIcj4kRgOXAR/z45/h5wuaQlwAbgZlKiu68tZj9wLICkOyX95PBu08zMzKycqrLS\nuk3S8taLiLh8nNgVpGRzS36cGRGLgT5gLWlLwfoce4GkrbnPS4ArSXtcXwtsB34BOBARe4D7gOcA\nJN0fEa8hJawz2j67F9j7Iu7TzMzMrJSqkrR2mtLx2G4VcKak3QARMQSslbQMuL0VFBGd1z8C1CR9\nqC3mIuB7krZGxB+REtpP5n2rj0jaHxEHImI2sAdYClzcZaxmZmZmlVXVpLWZf06IiAdIiWETOA+g\nlbBmm4CrImKWpMc6+rkiIj4IHCRttThnnM/8I+CmiHg76aSAlbn9XOCWfP1WSQ+OMVYzMzOzSnNF\nrJIYGBho+sgrMzOzcujv72dkZCdl/cL1SCpiVXWltXRco9jMzKw8/Hv9hbzSWhKNRqNZjRrM5VOd\n+tnl5PkrLs9dsVVn/rzS2uKV1pLo6emhrP+wy85zV2yev+Ly3BWb5696nLSWRKPRwH+zVUyeu2Lz\n/BWX567YqjF/TsrbOWkticHBQer1+mQPw8zMzF6kWq3G8PDmyR7GUaf0SWtELAL+HPi73HQMcIuk\nz3SJXw18XlJjnD7PBi4llVh9Galk629LeiQi5gIbScda3S3p0rbrBoBNkk7Kr19NOu7qGOC7wHsl\nPZ3feyWwFThH0rcnus96vY5PDzAzM7OyqkoZ122SluQSqqcD6yNiRpfYDwM9h9DnzbnPhaTE8/zc\nfi1wlqQFwJxcSICIWAHcChzf1sfHcj+LgG8Ca3Lsm4B7gdcfxj2amZmZlVbpV1qz9k0p34VCAAAg\nAElEQVQhM0jlVE/JFaumAK8ClgMLgZnAcERcDVwBHACuk3TzOH0eBzweEb3ANEl7cvtdwBnAw8Bo\n7r99OXQ+cFl+/qX8fCMwDfgN4ItHeL9mZmZmpVKVpHVJRGwn7dh+BlgH/DLwHknfj4gLgXdJ2hAR\nHwXeDcwDXiFpbpc+l0fEHKAX6AcWkRLifW0x+4HZAJLuhH8r/9rSCzzZFntsjh3Jsd6BbWZmZkZ1\nktZtkpa3N0TEO4A/iYj9wOuAHfmtKTy/iqoc2w98jpT0fpFUtvVmSR/O7y8mlXt9IylxbekF9o4z\nrn055sAhxJqZmZlVVlWS1rFcD7xe0lMR8QWeT1QbPL+n9SCApH8EFrcuzH+I1b4K+ijwckn7I+JA\nRMwG9gBLgYs7Prf9uvuBtwF/CrwVuO9F35WZmZlZCVU5af0isCMifgT8AHhtbt8B3AFcMsH1Q3l7\nQIO0J/b9uf1c0h9mTQW2Snqw47r2Q+UuA27MJxb8kLSvtlusmZmZWWW5jGtJDAwMNH3klZmZWfH1\n9/czMrKTMhcXcBnXCqvVapM9BDMzM3sJ+Hf62LzSWhKNRqM5OvrUZA/DjkBf33Q8d8Xl+Ssuz12x\nVWP+vNLarirFBczMzMyswLw9oCQGBwep1+uTPQwzMzN7kWq1GsPDmyd7GEedUietEbEIWCNpqK1t\nA7A7t5/W5bqHgB2S1o3T92pgBelYrJcBH5V0b0S8mnR6wDHAd4H3Sno6Iv4v4FP58u/na58F/jtw\nMvA08D5J34mIU4BPkyp3HQB+W9K/jHev9Xod/yGWmZmZlVUVtgd0btptdmkHICLmAbtIVbSmd4l5\nN6k862JJi4H/AvxpRPQBHyMVHlgEfJPnj8K6DlgpaSHwZaBGKtX6CknzgAuBK3PsRuADkpYAm4EP\nHd4tm5mZmZVLFZLWzo2+E238XQ3cRkoWV3aJeT9wuaRW8YE9wCmSRoH5pKQU4EvAGRHxS8ATwB9E\nxP8C+iT9fXuspK8Bb8rXvVvSrvz8ZcBPJhizmZmZWamVentAtiQitufnU4DZwEVjBUZELymRXEXa\nQrAZuGaM0NcC32lvkPSv+Wkv8GR+vh84FjgemAf8br5uS0R8g1Ty9cm2bhoRMVXSD/J45gEfABYe\n6s2amZmZlVEVktZtkv6t0lREXD5O7ApSYrslP86MiMVAH7CWtKXgPFKJ1v8T+FZbv4PA3wD7SInr\ngfy4l7TK+veSvp1jvwz8R1LC2tv2+VNbq7d5C8KFwNskPXGE925mZmZWClXYHtBpSsdju1XAmZLe\nJumtwDpgraTbJS2WtETSTuAG4L9FRA9A/vr/etIfTt0PvD3391bgPtLq6qsi4vW5fQHwt8BXW7ER\nMZe0l5aIWEFaYT1dko8EMDMzs8qrwkprp2b+OSEiHiAlr60VVCTtbovdBFwVEbMkPdZqlPRnEfEa\nYEdEPENK/t8j6YcRcRlwY0S8D/ghsFzSsxGxCrg1IgC+KulLETEFeEtE3J+7XhkRU4GrgTqwOSKa\nwL2SLvnf9R/EzMzM7GjnilglMTAw0PSRV2ZmZsXX39/PyMhOXBHr36vi9gAzMzMzK5gqbg8opVqt\nNtlDMDMzs5eAf6ePzdsDSqLRaDRHR5+a7GHYEejrm47nrrg8f8XluSu2asyftwe08/YAMzMzs6NO\neRPWI+XtASUxODhIve7TsczMzIqsVqsxPLx5sodxVCp90hoRi4A1koba2jaQKl6tkXRal+seAnZI\nWjdB/y+Ii4jfB95NOkrrTkl/mI+yupJUqvUVwMWS7szns24EngXulnRp7uMy4M3AQeBCSfeON456\nvY5PDzAzM7Oyqsr2gM6Nu80u7cC/lU/dRSoBO71bp2PFRcRsYEjS3JwQL42IE4H/ArxM0gLgN4CB\n3M21wFm5fU5EnBwRpwC/KmkuMEQ6t9XMzMyssqqStHZuDJloo8hq4DZgM7DyMOMeAX69LeZlwNPA\nUuC7EbEFuA74nxHRC0yTtCfH3gWcIembOR7gF4B/nWC8ZmZmZqVWlaR1SURszz/3kFYvx5QTyfnA\nHcCNwLmHEyfpOUmjOeaTwE5J/wAcD/RLOhP4BPAFYAawr63b/cCxuZ+DEfFx4C9JZWPNzMzMKqv0\ne1qzbZKWt15ExOXjxK4grcRuyY8zI2Ix0AesJW0pWA/MGStO0j0R8Qrg88CTwAdyv0/kWCR9JSJ+\nMb8/o+2ze4G9rReSPpr3334tIu6T9E9H+h/AzMzMrMiqkrR2mtLx2G4VcKak3QARMQSslbQMuL0V\nFBHXjxUH3ENaHf0rSZ9s63cH8DZgc0ScDPyzpB9FxIG8D3YPaUvAxTlJXiZpLfBM/jn40ty6mZmZ\nWfFUNWlt5p8TIuIBUvLaBM4DaCWi2SbgqoiYJekxgIg4dZy49wALgJdHxNtyvxcC1wPXRsRIjl+T\nH88FbiFt1dgq6cF80sC7ImJHbr9Gks+zMjMzs8pyRaySGBgYaPrIKzMzs2Lr7+9nZGQnZS8ucCQV\nsaq60lo6rlNsZmZWfP593p1XWkui0Wg0y1+DuZyqUT+7vDx/xeW5K7byz59XWjt5pbUkenp6KPs/\n8LLy3BWb56+4PHfF5vmrHietJdFoNOhS4MuOcp67YvP8FZfnrtjKPX9OxsfipLUkBgcHqdd9wICZ\nmVlR1Wo1hoc3T/YwjlqlT1ojYhGwRtJQW9sGYHduP63LdQ8BOyStm6D/F8RFxAeAs0lnq35K0m0R\nMQO4iVRM4OXAH0j6WkTMBTYCzwJ3S7q0rZ8BYJOkkya6z3q9jk8PMDMzs7KqShnXzu8Pml3aAYiI\necAuUvnX6d06HSsuIl4NvB+YC5wBfCqH/wGp4MDpwHuB/57brwXOkrQAmJMLDxARK4BbSeVfzczM\nzCqtKklr5+aQiTaLrAZuAzYDKw8nTtITwCmSDgKvAX6SY68EPpufvxz4SUT0AtMk7cntd5ESXYBR\nYOEE4zQzMzOrhNJvD8iWRMT2/HwKMBu4aKzAnEjOJ5Vz3U1KSK85nDhJB/MWgYuBT+e2ffm6mcAX\ngf9K2iqwr63b/XlsSLozxx/ZHZuZmZmVSFWS1m2SlrdeRMTl48SuICW2W/LjzIhYDPQBa0lbCtYD\nc8aKk3QPgKRrIuKzwJcj4iuS7o2IXyGVbF0vaUdOfGe0fXYvsPeluWUzMzOz8qhK0tppSsdju1XA\nmZJ2A0TEELBW0jLg9lZQRFw/VlxEPAZsyPEN4ABwMCJ+Gfhz4P+WtAtA0v6IOBARs4E9wFLS6uxY\nYzUzMzOrrKomrc38c0JEPEBKDJvAeQCtRDTbBFwVEbMkPQYQEad2iwOeAr4ZESOk0wPulHRfRPwF\n8Arg6oiYAuyV9JvAuaTV16nAVkkPjjFWMzMzs0pzGdeSGBgYaPrIKzMzs+Lq7+9nZGQnVfiS1WVc\nK6xWq032EMzMzOxF8O/y8XmltSQajUZzdPSpyR6GHYG+vul47orL81dcnrtiK/f8eaV1LFU5p9XM\nzMzMCszbA0picHCQer0+2cMwMzOzI1Sr1Rge3jzZwzhqlT5pjYhFwBpJQ21tG0gFAdZIOq3LdQ8B\nOyStm6D/F8RFxFuBj+WX35C0NiJmAMPAq4CngRWSHo+IucBG4FngbkmX5j4+QSpe0ANcL+lz442j\nXq/jP8QyMzOzsqrK9oDOjbvNLu0ARMQ8YBepktb0bp2OFRcRrwI+Abw9J8R7IuLVpDKvfyNpIem8\n1vNzN9cCZ0laAMyJiJMj4nSgX9I8YAHwwYg49jDv2czMzKw0qpK0dm72nWjz72rgNlJp1pWHGddK\nZK+MiK8AP5D0RG5rVb+aATybK2JNk7Qnt98FnAF8FTin7XOmklZizczMzCqp9NsDsiURsT0/nwLM\nBi4aKzAnkvNJlbF2kxLSaw4j7njgdOBk4MfAfbnQwBPAYET8HXAcaQV1BrCvrdv9wGxJzwDPRMTL\ngC8An5X04yO8dzMzM7PCq0rSuk3S8taLiLh8nNgVpMR2S36cGRGLgT5gLWlLwXpgTpe4J4AHJf1L\n/qyvAKcCZwFXSLo+In6FVEFrPs+vvgL0AnvzdceRVnG3S/rEi7t9MzMzs2KrStLaaUrHY7tVwJmt\nEq0RMQSslbQMuL0VFBHXjxUHrAFOjIg+0irqXOA6YBR4Ml/+L0CvpP0RcSAiZgN7gKXAxRFxDPBX\nwB9LuvWlu20zMzOzYqpq0trMPydExAOk5LUJnAfQSkSzTcBVETFL0mMAEXFqtzhgGnAhsDX3+WeS\nvhURHwM+FxEfIP13f1++7lzgFtK+1bskPRgRv0fawrA6In4n9/NeST7TyszMzCrJFbFKYmBgoOkj\nr8zMzIqrv7+fkZGduCLW2KpyeoCZmZmZFVhVtweUTq1Wm+whmJmZ2Yvg3+Xj8/aAkmg0Gs3R0acm\nexh2BPr6puO5Ky7PX3F57oqt3PPn7QFj8fYAMzMzs6NG+RPWI+XtASUxODhIve7DBczMzIqoVqsx\nPLx5sodxVCt90hoRi4A1koba2jaQqlitkXRal+seAnZIWjdB/y+Ii4jfB95NOqrqTkl/GBGvJB1t\ndRxwADhb0vciYi6wkVSm9W5Jl7b1MwBsknTSRPdZr9fx6QFmZmZWVlXZHtC5cbfZpR2AiJgH7CKV\nf53erdOx4nKhgCFJc3NCvDQiTgRWA1+XtAi4Gbggd3MtcJakBcCciDg597MCuJVUFtbMzMys0qqS\ntHZuEJlow8hqUgnVzcDKw4x7BPj1tpiXA09Luhq4LLf9PLA3InqBaZL25Pa7gDPy81Fg4QTjNDMz\nM6uE0m8PyJZExPb8fAqp2tRFYwXmRHI+qZzrblJCes2hxkl6jpRwEhGfBHZK+gcASc2I2AacCLwF\nmEEq9dqyP48NSXfmPo74ps3MzMzKoipJ6zZJy1svIuLycWJXkBLbLflxZkQsBvqAtaQtBeuBOWPF\nSbonIl4BfB54Evjd9s4lvTlSJnoHcAopcW3pBfa+mBs1MzMzK6OqJK2dpnQ8tlsFnClpN0BEDAFr\nJS0Dbm8FRcT1Y8UB9wB/CfyVpE+2xX8IeFTSTcBTwHOSfhQRB/I+2D3AUuDiLmM1MzMzq6yqJq3N\n/HNCRDxASgybwHkArUQ02wRcFRGzJD0GEBGnjhP3HmAB8PKIeFvu90LSyuuNEbGKtJd4Zb7uXNKp\nAlOBrZIeHGOsZmZmZpXmilglMTAw0PSRV2ZmZsXU39/PyMhOqvIF65FUxKrqSmvpuF6xmZlZcfn3\n+MS80loSjUajWd4azOVW7vrZ5ef5Ky7PXbGVd/680tqNV1pLoqenh6r8Qy8bz12xef6Ky3NXbJ6/\n6nHSWhKNRgP/zVYxee6KzfNXXJ67Yivn/DkJH4+T1pIYHBykXq9P9jDMzMzsMNVqNYaHN0/2MI56\npU9aI2IRsEbSUFvbBlIVqzWSTuty3UPADknrurx/A/BG4AngGOA7wNmSGvn9/wPYAfyKpGdy26PA\nt3MXI5I+EhFzgY3As8Ddki5t+4wBYJOkkya6z3q9jk8PMDMzs7KaOtkD+Cnp/P6g2aUdgIiYB+wi\nlX+dPk6/50taImkeaU3/nfn6QeAu4Ofa+uwHvpHjl0j6SH7rWuAsSQuAORFxco5fAdwKHH8Y92lm\nZmZWSqVfac06N4lMtGlkNXAb8M+kIgDXjNdvRPSQyrE+ntsbwJuBb7TFvgl4XURsB34M/D7wfWCa\npD055i7gDOBhYBRYCHj51MzMzCqvKknrkpwsQko0ZwMXjRUYEb3AfFI5193AZronrVdExAeBWaRE\n9GEASdtyX+3J8XeByyXdHhG/BtwM/Cawry1mfx4bku7MfRzWjZqZmZmVUVWS1m2SlrdeRMTl48Su\nICW2W/LjzIhYDPQBa0lbCtbn2Askbc19XgJcSVqlbWnffvAN4DkASfdHxGtICeuMtpheYO9h352Z\nmZlZyVUlae00peOx3SrgTEm7ASJiCFgraRlweysor4C2X/8I0FnOov39i0h/tPXJvG/1EUn7I+JA\nRMwG9gBLgYvH6cPMzMyskqqatDbzzwkR8QApMWwC5wG0EtZsE3BVRMyS9FhHP63tAQdJf9R2zhif\n0/JHwE0R8XbSSQErc/u5wC35+q2SHhynDzMzM7NKchnXkhgYGGj6yCszM7Pi6e/vZ2RkJ1X6ctVl\nXCusVuvcmWBmZmZF4N/hh8YrrSXRaDSao6NPTfYw7Aj09U3Hc1dcnr/i8twVWznnzyut4/FKa0n0\n9PRQpX/sZeK5KzbPX3F57orN81c9TlpLotFo4L/ZKibPXbF5/orLc1ds5Zs/J+ATKX3SGhGLgDWS\nhtraNpAKB6yRdFqX6x4Cdkha1+X9G4A3ko6xOgb4DnC2pEZEbAR+jVQsAOCdkvbn694A/DXws5Ke\niYi5wEbSiQJ3S7q07TMGgE2STproPgcHB6nX6xOFmZmZ2VGkVqsxPLx5sodRCKVPWrPO/yvW7NIO\nQETMA3aRKmlNl9Rt08z5bcUFbgbeSToi603AUkmjHf32An8MPN3WfC3wm5L2RMQdEXGypIcjYgXw\n/wDHH8oN1ut1fHqAmZmZldXUyR7AT0nnmvtEa/CrgdtIJVxXTtRvRPSQKls9nku3/iJwXUTsiIj3\ntsVfB1xIKvnaSmKnSdqT378LOCM/HwUWTjBOMzMzs0qoykrrkojYnp9PAWaTKlS9QE4k55MqY+0m\nJa7XdOm3VVxgFikRfRiYDnyaVNL1ZcD2iPg68FvAFkm7cmILKdHd19bf/jw2JN2Zx3PYN2tmZmZW\nNlVJWrdJWt56ERGXjxO7gpTYbsmPMyNiMdAHrCVtKVifYy9o2x5wCSlR/R3g05Kezu33ACcD7wEe\njYj3ATOBrcB/IiWuLb3A3hd3q2ZmZmblU5WktdOUjsd2q4AzW6VcI2IIWCtpGXB7KyivgLZf/whQ\nAwL4s4g4hfTfdz7wBUm/1HbtPwFvkfRsRByIiNnAHmApcHGXsZqZmZlVVlWT1mb+OSEiHiAlhk3g\nPIBWwpptAq6KiFmSHuvop7U94CBpf/A5+Q+q/hT4GvAMcKOk/2+Mz28lo2uAW/L1WyU9OEasmZmZ\nWaW5IlZJDAwMNH16gJmZWbH09/czMrKTqn2xeiQVsapyeoCZmZmZFVhVtweUTq1Wm+whmJmZ2WHy\n7+9D5+0BJdFoNJqjo91qINjRrK9vOp674vL8FZfnrtjKN3/eHjARbw8wMzMzs6OetweUxODgIPV6\nfbKHYWZmZoehVqsxPLx5sodRCKVPWiNiEbBG0lBb2wZStas1kk7rct1DwA5J67q8fwPwRuAJ4Bjg\nO8DZkhoR8QHgbNJRWJ+SdFu+5lHg27mLEUkfiYi5wEbgWeBuSZe2fcYAsEnSSRPdZ71ex6cHmJmZ\nWVlVZXtA58bdZpd2ACJiHrCLVP51+jj9ni9piaR5pM0o74yIVwPvB+YCZwCfyn32A9/I8UskfST3\ncS1wlqQFwJyIODnHrwBuBY4/zHs1MzMzK52qJK2dm30n2vy7GrgN2AysnKjfiOghlWN9XNITwCmS\nDgKvAX6SY98EvC4itkfEloj4xYjoBaZJ2pNj7iIlugCjwMKJbszMzMysCqqStC7JyeL2iLgHGOoW\nmBPJ+cAdwI3AueP0e0VEbAe+BbwOeBhA0sG8ReCrwE059nvA5ZKWABuAm0mJ7r62/vYDx+Y+7pT0\nE8zMzMys/Htas22SlrdeRMTl48SuIK2gbsmPMyNiMdAHrCVtKVifYy+QtDX3eQlwJWmVFknXRMRn\ngS9HxFeAB4Dn8nv3R8RrSAnrjLbP7gX2vsh7NTMzMyudqiStnaZ0PLZbBZwpaTdARAwBayUtA25v\nBUVE5/WPALWI+CVgQ45vAE+T/iDrItIfbX0y71t9RNL+iDgQEbOBPcBS4OIuYzUzMzOrrKomrc38\nc0JEPEBKDJvAeQCthDXbBFwVEbMkPdbRzxUR8UFSUjoVOEfSnoj4ZkSM5PYvSbovInYBN0XE20kn\nBazMfZwL3JKv3yrpwTHGamZmZlZprohVEgMDA00feWVmZlYs/f39jIzspGpfrB5JRayqrrSWjmsX\nm5mZFY9/fx86r7SWRKPRaJarBnN1lK9+drV4/orLc1ds5Zs/r7ROxCutJdHT00PV/sGXheeu2Dx/\nxeW5KzbPX/U4aS2JRqOB/2armDx3xeb5Ky7PXbGVa/6cfB8KJ60lMTg4SL1en+xhmJmZ2SGq1WoM\nD2+e7GEURumT1ohYBKyRNNTWtgHYndtP63LdQ8AOSeu6vH8D8EbS2avHAN8BzpbUyO9PIVXV+gtJ\n17Vd9wbgr4GflfRMRMwFNpKOwbpb0qU57jLgzaRjsy6UdO9491mv1/HpAWZmZlZWVSnj2vn9QbNL\nOwARMQ/YRSr/On2cfs+XtETSPNLa/jvb3vs48DMd/fYCf0wqONByLXCWpAXAnIg4OSJOAX5V0lxS\nydmrx707MzMzs5KrStLauVlkos0jq4HbgM08XwSga78R0UMqx/p4ft2qhvXljvjrgAuBH+e4XmCa\npD35/buAMyR9k1QdC+AXgH+dYLxmZmZmpVaVpHVJRGzPP/eQVi/HlBPJ+aSv9m8kVazq5oqI2A58\nC3gd8HBEnAgsJ5Vt/bfkOCIuBrZI2tXWPgPY19bffuBYAEkHI+LjwF8CNxzGvZqZmZmVTun3tGbb\nJC1vvYiIy8eJXUFKKrfkx5kRsRjoA9aSthSsz7EXSNqa+7wEuJK0x/W1wHbSKumBiKiTEtlHI+J9\nwExgK/CfSIlrSy+wt/VC0kfz/tuvRcR9kv7pyG7fzMzMrNiqkrR2mtLx2G4VcKak3QARMQSslbQM\nuL0VFBGd1z8C1CR9qC3mIuB7ku4Cfqmt/Z+At0h6NiIORMRsYA9pS8DFOUleJmkt8Ez+OfjibtnM\nzMysuKqatDbzzwkR8QAp+WwC5wG0EtZsE3BVRMyS9FhHP1dExAdJCeVU4JzD+PxWwrsGuCVfv1XS\ngxExFXhXROzI7ddI8nlWZmZmVlku41oSAwMDTR95ZWZmVhz9/f2MjOykisUFXMa1wmq12mQPwczM\nzA6Df3cfHq+0lkSj0WiOjj412cOwI9DXNx3PXXF5/orLc1ds5Zo/r7QeCq+0lkRPTw9V/EdfBp67\nYvP8FZfnrtg8f9XjpLUkGo0GXQp82VHOc1dsnr/i8twVW3nmz4n3oXLSWhKDg4PU6z5gwMzMrAhq\ntRrDw5snexiFUvqkNSIWAWskDbW1bQB25/bTulz3ELBD0roJ+n9BXER8ADibdBTWpyTdFhGvJB1t\ndRxwADhb0vciYi6wEXgWuFvSpW39DACbJJ000X3W63V8eoCZmZmVVVXKuHZ+f9Ds0g5ARMwDdpHK\nv07v1ulYcRHxauD9wFzgDOBTOXw18HVJi4CbgQty+7XAWZIWAHMi4uTczwrgVuD4w7hPMzMzs1Kq\nStLauWFkog0kq4HbgM3AysOJk/QEcIqkg8BrgJ/k9quBy/J1Pw/sjYheYJqkPbn9LlKiCzAKLJxg\nnGZmZmaVUPrtAdmSiNien08BZgMXjRWYE8n5pHKuu0kJ6TWHEyfpYN4icDHw6dY1kpoRsQ04EXgL\nMAPY19bt/jw2JN2ZP+dI7tfMzMysVKqStG6TtLz1IiIuHyd2BSmx3ZIfZ0bEYqAPWEvaUrAemDNW\nnKR7ACRdExGfBb4cEV+RdG9uf3OkTPQO4BRS4trSC+x9KW7YzMzMrEyqkrR2mtLx2G4VcKak3QAR\nMQSslbQMuL0VFBHXjxUXEY8BG3J8A3gaOBgRHwIelXQT8BTwnKQfRcSBiJgN7AGWklZnxxqrmZmZ\nWWVVNWlt5p8TIuIBUmLYBM4DaCWi2SbgqoiYJekxgIg4tVscKSH9ZkSMkE4P+JKk+yJCwI0RsYq0\nl3hlvu5c0qkCU4Gtkh4cY6xmZmZmleYyriUxMDDQ9JFXZmZmxdDf38/IyE6q+oWqy7hWWK1Wm+wh\nmJmZ2SHy7+3D55XWkmg0Gs3R0acmexh2BPr6puO5Ky7PX3F57oqtPPPnldZDVZVzWs3MzMyswLw9\noCQGBwep1+uTPQwzMzM7BLVajeHhzZM9jEIpfdIaEYuANZKG2to2kAoCrJF0WpfrHgJ2SFrX5f0b\ngDcCTwDHAN8BzpbUiIj1wBDpyKsNkv4iIl5JOiXgOOBAjv1eRMwFNgLPAndLurTtMwaATZJOmug+\n6/U6/kMsMzMzK6uqbA/o3Ljb7NIOQETMA3aRKmlNH6ff8yUtkTSPtCnlnRFxLPBfScUHlpISUkgl\nX78uaRFwM3BBbr8WOEvSAmBORJycx7ACuBU4/tBv08zMzKycqpK0dm72nWjz72rgNlJp1pUT9RsR\nPaTKVo+TzmndQ6pu9SrSaiuSrgYuy9f9PLA3l4KdJmlPbr8LOCM/HwUWTjBOMzMzs0oo/faAbElE\nbM/PpwCzgYvGCsyJ5HxSZazdpMT1mi79XhERHwRmAT8GHs7tjwLfIv2fgg2tYEnNiNgGnAi8hZTo\n7mvrb38eG5LuzOM5nPs0MzMzK6WqJK3bJC1vvYiIy8eJXUFKbLfkx5kRsRjoA9aSthSsz7EXSNqa\n+7wEuBL4S2AmUMvXb42I+yV9HUDSmyNloncAp5AS15ZeYO+LvFczMzOz0qlK0tppSsdju1XAma0S\nrRExBKyVtAy4vRWUV0Dbr3+ElKiOAj+R9GyO2wv8TER8CHhU0k2kLQTPSfpRRByIiNmkLQVLgYu7\njNXMzMyssqqatDbzzwkR8QApMWwC5wG0EtZsE3BVRMyS9FhHP63tAQdJWwHOkbQnIr4eEX9N2s+6\nQ9JfRcTfADdGxKocuzL3cS7pVIGpwFZJD44xVjMzM7NKc0WskhgYGGj6yCszM7Ni6O/vZ2RkJ1X9\nQvVIKmJVdaW1dFzD2MzMrDj8e/vweaW1JBqNRrMcNZirpzz1s6vJ81dcnrtiK/As/moAACAASURB\nVM/8eaX1UHmltSR6enqo6j/8ovPcFZvnr7g8d8Xm+aseJ60l0Wg08N9sFZPnrtg8f8XluSu24s+f\nE+7D5aS1JAYHB6nX65M9DDMzMxtHrVZjeHjzZA+jkEqftEbEIuDPgb/LTccAt0j6TJf41cDnJTXG\n6fNs4FLgH0n/DRvAb0t6JL/fAwwD17cVH7gMeDPpeKwLJd0bEa8mHXd1DPBd4L2Sns7xrwS2ko7R\n+vZE91mv1/HpAWZmZlZWUyd7AD8l2yQtkbQEOB1YHxEzusR+GOg5hD5vzn0uJCWe5wNExOuBe4H/\n2AqMiFOAX5U0FxgCrs5vfSz3swj4JrAmx78p9/H6w7pLMzMzs5Iq/Upr1r5xZAbwHHBKRFyU33sV\nsBxYSCrBOhwRVwNXAAeA6yTdPE6fxwGP5+fTSVW1Pth6U9I3I2JpfvkLwL/m5/OBy/LzL+XnG4Fp\nwG8AXzyCezUzMzMrnaokrUsiYjtpx/YzwDrgl4H3SPp+RFwIvEvShoj4KPBuYB7wirw6OpblETEH\n6AX6gUUAknYBRMS/22Et6WBEfDx/9rrcPAN4Mj/fDxybY0fG6sPMzMysqqqStG6TtLy9ISLeAfxJ\nROwHXgfsyG9N4flVVOXYfuBzpKT3i6R9qTdL+nB+fzGp3OsvjjcISR+NiA3A1yJiBylh7SWt5vYC\ne1/kfZqZmZmVUlWS1rFcD7xe0lMR8QWeT1QbPL+n9SCApH8EFrcuzH+I1b4K+ijw8m4flJPaZZLW\nklZ6n8mfcz/wduBG4K3AfS/6rszMzMxKqMpJ6xeBHRHxI+AHwGtz+w7gDuCSCa4fytsDGqQ9se/v\neL/98Lh7gXfl1dWpwDWS6vlEgRsj4n3AD0n7arv1YWZmZlZZLuNaEgMDA00feWVmZnZ06+/vZ2Rk\nJ1UvLuAyrhVWq9UmewhmZmY2Af++PnJeaS2JRqPRHB19arKHYUegr286nrvi8vwVl+eu2Io/f15p\nPdxrvNJaEj09PVT9fwBF5bkrNs9fcXnuis3zVz1OWkui0Wjgv9sqJs9dsXn+istzV2zFnj8n20fC\nSWtJDA4OUq/XJ3sYZmZm1kWtVmN4ePNkD6OwSp+0RsQi4M+Bv8tNxwC3SPpMl/jVwOclNcbp82zg\nUuAfSf8NG8BvS3okIt4M/CHpLNbHc/vT+bpXks5m/aCkrRHxauCWPKbvAu/tiN0KnCPp2xPdZ71e\nx6cHmJmZWVlNnewB/JRsk7RE0hLgdGB9RMzoEvthni8uMJ6bc58LSYnn+bn9M8A7JJ0O/APwvrZr\nPkMuWJB9LPezCPgmsAYgIt5EOtv19YcwDjMzM7PSK/1Ka9a+eWQG8BxwSkRclN97Felg/4XATGA4\nIq4GriCVWL1O0s3j9HkcaVUV4HRJP8zPXwa0Vk7Xk1ZZ280HLsvPv5SfbwSmAb9BKoBgZmZmVnlV\nSVqXRMR20o7tZ4B1wC8D75H0/Yi4EHiXpA0R8VHg3cA84BWS5nbpc3muiNUL9AOLACT9ACAifou0\nqvvRvGVgQNK5ETG/rY8ZwJP5+X7g2NzHSO7DO7XNzMzMqE7Suk3SvyuRGhHvAP4kIvYDryOVb4W0\ngtpKFpVj+4HPkZLeL5K+4r9Z0ofz+4uBTcAv5te/BywDlkp6JiLOAX4+Iu4B3gCcGhE/ICWsvaTV\n3F5g7/+GezczMzMrvKokrWO5Hni9pKci4gs8n6g2eH5P60EASf8ILG5dmP8Qq30V9FHg5fm9jwCn\nAmdIOpCvf0/btTcAt0p6OCLuB94G/CnwVuC+l/gezczMzEqhyknrF4EdEfEj4AfAa3P7DuAO4JIJ\nrh/K2wMapD2x74+InyX9cdU3gC9HRBP4M0mfbbuu/VC5y4Ab84kFPyTtq6VLrJmZmVlluYxrSQwM\nDDR95JWZmdnRq7+/n5GRnbi4gMu4VlqtVpvsIZiZmdk4/Lv6xfFKa0k0Go3m6OhTkz0MOwJ9fdPx\n3BWX56+4PHfFVuz580rrkay0VqW4gJmZmZkVmLcHlMTg4CD1en2yh2FmZmZd1Go1hoc3T/YwCqv0\nSWtELALWSBpqa9sA7M7tp3W57iFgh6R1E/T/griI+ABwNunIrE9Juq3tvd8E/nPrGKx8AsHVwLPA\n3ZIubYsdADZJOmmi+6zX6/gPsczMzKysqrI9oHPjbrNLOwARMQ/YRaqkNb1bp2PFRcSrgfcDc4Ez\ngE+1xW8kHXPVvo/j/wXOkrQAmBMRJ+fYFcCtwPGHeI9mZmZmpVWVpLVzs+9Em39XA7cBm4GVhxMn\n6QngFEkHgdcAP2mLvx84t/UiInqBaZL25Ka7SIkuwCiwcIJxmpmZmVVCVZLWJRGxPf/cAwx1C8yJ\n5HxSgYEbaUsyDzVO0sG8ReCrwE1t7bd1dDMD2Nf2ej9wbI69U9JPMDMzM7Py72nNtkn6t2pTEXH5\nOLErSCuxW/LjzIhYDPQBa0lbCtYDc8aKk3QPgKRrIuKzpMpYX5F07xiftY+UuLb0AnuP8B7NzMzM\nSqsqSWunKR2P7VYBZ0raDRARQ8BaScuA21tBEXH9WHER8RiwIcc3gAOkP8h6AUn7I+JARMwG9gBL\ngYu7jNXMzMyssqqatDbzzwkR8QApMWwC5wG0EtFsE3BVRMyS9BhARJzaLQ54CvhmRIyQktUvSbpv\nnLGsAW4hbdXYKunBMcZqZmZmVmmuiFUSAwMDTR95ZWZmdvTq7+9nZGQn/hL1yCpiVXWltXRcz9jM\nzOzo5t/VL45XWkui0Wg0i1uDudqKXT/bPH/F5bkrtmLPn1davdJaYT09Pfh/BMXkuSs2z19xee6K\nzfNXPU5aS6LRaOC/2Somz12xef6Ky3NXbMWdPyfaR8pJa0kMDg5Sr9cnexhmZmY2hlqtxvDw5ske\nRqGVPmmNiEXAGklDbW0bgN25/bQu1z0E7JC0rsv7NwBvBJ4AjgG+A5wtqZHfn0KqlvUXkq6LiGNI\n1bF+llRU4GxJT0TEXGAj8Cxwt6RL8/WfIFXc6gGul/S58e6zXq/j0wPMzMysrKpSxrXz+4Nml3YA\nImIesItU/nX6OP2eL2mJpHmk9f53tr33ceBn2l6fC/yNpIXAF4H/ltuvBc6StACYExEnR8TpQH/u\ndwHwwYg4dqKbNDMzMyurqiStnRtIJtpQshq4DdgMrJyo34joIZVjfTy/blXD+nJb7Py2118C3hwR\nvcA0SXty+13AGcBXgXParp1KWok1MzMzq6TSbw/IlkTE9vx8CjAbuGiswJxIzieVc91NSlyv6dLv\nFRHxQWAW8GPg4Yg4EVgO/GfgY22xM4An8/P9wLFAL2mrAG3tsyU9AzwTES8DvgB8VtKPD/luzczM\nzEqmKknrNknLWy8i4vJxYleQEtst+XFmRCwG+oC1pC0F63PsBZK25j4vAa4k7XF9LbAd+AXgQETs\nISWsvfm6XmAvKUmd0fbZrXYi4jjSau92SZ84gns2MzMzK42qJK2dpnQ8tlsFnClpN0BEDAFrJS0D\nbm8FRUTn9Y8ANUkfaou5CPiepK15BfZtwNfz432S9kfEgYiYDewBlgIX5z/a+ivgjyXd+lLcsJmZ\nmVmRVTVpbeafEyLiAVLy2QTOA2glrNkm4KqImCXpsY5+WtsDDpL2nZ5Dd9cCN0bEfcAB0hYCgDXA\nLfn6uyQ9GBG/R9rCsDoifieP7b2SfKaVmZmZVZLLuJbEwMBA00demZmZHZ36+/sZGdmJiwskLuNa\nYbVabbKHYGZmZl349/SL55XWkmg0Gs3R0acmexh2BPr6puO5Ky7PX3F57oqtuPPnlVbwSmul9fT0\n4P8hFJPnrtg8f8XluSs2z1/1OGktiUajQZcCX3aU89wVm+evuDx3xVbc+XOifaSctJbE4OAg9boP\nFzAzMzsa1Wo1hoc3T/YwCq30SWtELALWSBpqa9tAqna1RtJpXa57CNghad0E/b8gLiJ+H3g36f8C\n3inpD9veewPw18DPSnomIuYCG0llWu+WdGmO+wSpMlcPcL2kz403jnq9jk8PMDMzs7KaOtkD+Cnp\n/P6g2aUdgIiYB+wilX/9/9m79zi7q/re/68QCJcQ/JnSCqZ1mjNT360oeHkoJHINONRbKdALgVS5\nGIgSWk9BLbYKYgHFHm4touLxLkQo5NeKKEFAMRgBhSJe8m45mF2LHlFiSBoEws6cP9bash1nMpOQ\nMLP3fj8fj3nsvb/7813f9Z31yGM+WXvt9Zk+WqMjxdVCAfNt71cT4sNrYYFWidh/AB5ra+Zy4Bjb\nBwD7StpH0sFAv+25wAHAOyQ9a7PuOCIiIqKL9ErSOnwByVgLShZSSqguBY7fzLgfAn/YFrMDTyWp\nHwHOBB6FXyax02yvqu/fCBwGfJ1fLVSwHWUmNiIiIqIndf3ygGqepFvq8ymUalNnjRRYE8n9KeVc\nV1IS0svGG2f7SWB1jfkAcLft+yWdDVxv+z5JraR5N2BtW7PrgNm2nwCekLQ98Angw7Yf3cJ7j4iI\niOh4vZK03my7VTYVSedtInYBJbG9vj7uIekQYCawmLKk4HRg35HibN8qaUfgY8Ajtt9c2z0O+KGk\nNwF7AMuA11MS15YZwJrax2dTZnFvsX3B07n5iIiIiE7XK0nrcFOGPbY7CXid7ZUAkuYDi20fDVzb\nCpJ0xUhxwK3AvwJftv2BVrzt32s79wfAq2xvkPR4XQe7CjgcOFvSTsCXgX+wfdVWuueIiIiIjtWr\nSetQ/dlL0p2U5HUIOAOglYhW1wEXSZpl+0EASS/ZRNxxlC9P7SDpNbXdM23fMez6rYR5EXAlZd3q\njbbvkvRWyhKGhZJOrvEn2M6eVhEREdGTUsa1SwwMDAxly6uIiIjJqb+/nxUr7ibFBYqUce1hfX19\nE92FiIiIGEX+Tj99mWntEs1mc2j16vUT3Y3YAjNnTidj17kyfp0rY9fZOnf8MtMKWzbT2iv7tEZE\nREREB8vygC4xODhIo5HvaUVERExGfX19LFmydKK70dG6PmmVdBCwyPb8tmPnUwoCLKqlVkc67x5g\nue3TRnn/48BLgYeBnYAHgDfabkpaCJxMqWJ1ru0vSNoNWALsSqmQtcD2Q5L2Ay6usTfZPqe2fy5w\nKLCRsvvAVzd1n41Gg3wRKyIiIrpVrywPGL5wd2iU4wBImgvcR6mkNX0T7b7N9jzbcymLVI6Q9Bzg\nNGAOpZzr+ZJ2oJR5/bbtA4GrgbfVNi4HjrF9ALCvpH0kvRh4he39gPnAJZt3uxERERHdpVeS1uGL\nfcda/LuQUo1qKSXZ3GS7kqZSKls9BLyCMkP7pO21wH8Ae1OS4Fb1q92ADbUU7DTbq+rxG4HDbP8b\npdAAwO8CPx+jvxERERFdreuXB1TzJN1Sn0+hbNx/1kiBNZHcn1IZayUlcb1slHbfL+kdwCzgUeBe\n4I+AR9pi/ht4FvAzYFDSd4FnUwoQ7AasbYtdV/uG7Y2S/p4yazviEoWIiIiIXtErSevNto9tvZB0\n3iZiF1AS2+vr4x6SDgFmUsq0DgGn19i3215W23wPcCHwLzw1owowA1hDSZLfb/sKSS+iVNDaf5RY\nAGz/XV1/e4ekr9n+wWbfeUREREQX6JWkdbgpwx7bnQS8rlWiVdJ8YLHto4FrW0GShp//Q6APuAs4\nV9I0YGfg94HvAKt5agb2p8AM2+skPS5pNrCKsiTg7JokH217MfBE/dn4dG86IiIiolP1atI6VH/2\nknQnJfkcAs4AaCWs1XXARZJm2X5wWDut5QEbKeuDT7T9E0mXAstru++0/YSkdwMflXQq5ff+ptrG\nm4Er6/nLbN8laTvgTyUtr8cvs539rCIiIqJnpSJWlxgYGBjKllcRERGTU39/PytW3E0qYhVbUhGr\nV2dau05qGkdERExe+Tv99GWmtUs0m82hzqzBHJ1bPzsg49fJMnadrXPHLzOtkJnWnjZ16lTyD6Ez\nZew6W8avc2XsOlvGr/ckae0SzWaTUQp8xSSXsetsGb/OlbHrbJ07fkm0t1SS1i4xODhIo5ENBiIi\nIiajvr4+lixZOtHd6Ghdn7RKOghYZHt+27HzKdWuFtmeM8p591DKsY5YjUrSx4GXAg8DOwEPAG+0\n3ZR0MfBKSoUrgCNsr6vnHQn8ie3j6ut9gUuADcBNts9pu8YAcJ3tvce6z0ajQXYPiIiIiG613UR3\n4Bky/PODoVGOAyBpLnAfpfzr9E20+zbb82zPpcz3H1GPvww4vL43ry1hvRg4l1/9bOBDwDG2DwD2\nlbRPjV0AXAXsPt6bjIiIiOhWvZK0Dl9AMtaCkoXANcBS4Pix2pU0lVKO9SFJU4DfAz4iabmkE9ri\nb6cUE6CeNwOYZntVPXQjcFh9vho4cIx+RkRERPSEXkla50m6pf7cCswfLbAmkvsDXwA+SVuSOYL3\nS7oF+B7w28C9wHTgUmAB8IfAWyS9EMD2NcPO3w1Y2/Z6HfCsGnuD7V+M/xYjIiIiulfXr2mtbrZ9\nbOuFpPM2EbuAMoN6fX3cQ9IhwExgMWVJwek19u22l9U23wNcCJwMXGr7sXr8FmAf4DsjXGstJXFt\nmQGs2ey7i4iIiOhyvZK0Djdl2GO7k4DX2V4JIGk+sNj20cC1rSBJw8//IdAHCPicpBdTfr/7A58Y\nqRO210l6XNJsYBVwOHD2KH2NiIiI6Fm9mrQO1Z+9JN1JSQyHgDMAWglrdR1wkaRZth8c1s77Jb0D\n2EhZanGi7VWSPgXcATwBfNL29zfRl0XAlfX8ZbbvGqGvERERET0tZVy7xMDAwFC2vIqIiJic+vv7\nWbHibvIBapEyrj2sr69vorsQERERo8jf6acvM61dotlsDq1evX6iuxFbYObM6WTsOlfGr3Nl7Dpb\n545fZlohM609berUqeQfQmfK2HW2jF/nyth1toxf70nS2iWazSb5zlZnyth1toxf58rYdbbOHL8k\n2U9HktYuMTg4SKPRmOhuRERExDB9fX0sWbJ0orvR8bo+aZV0ELDI9vy2Y+cDK+vxOaOcdw+w3PZp\no7z/ceClwMPATsADwBttN+v7vwksB15k+4l67L+Af69NrLD9t5L2Ay4GNgA32T6nxl4MvJJSJetv\nbN+5qftsNBpk94CIiIjoVl2ftFbDPz8YGuU4AJLmAvdRyr9Otz3aSu+3tVXE+ixwBHCdpEHgfcBz\n2trsB75l+4hhbVwOHFn3d/2CpH0oJWGfb/vlkn4D+BLw8vHebERERES36ZWkdfgikrEWlSwErgH+\nEzgeuGxT7UqaSinH+lA93gQOBb7VFvsy4LdrWddHgf8J/F9gmu1VNeZG4FW13RsBbD8sqSnpt2w/\nREREREQP6pWkdV5NFqEkhLOBs0YKlDSDUnr1JMoSgqWMnrS2KmLNoiSi9wLYvrm21Z4c/wg4z/a1\nkl4JfBY4EljbFrOu9u024HRJlwHPA14ATN+cG46IiIjoJr2StN5s+9jWC0nnbSJ2ASWxvb4+7iHp\nEGAmsJiypOD0Gvv2tuUB7wEupMzStrQvP/gW8CSA7dsl7UlJWHdri5kBrLH9ZUmvAG4FvlvPfXiz\n7jgiIiKii/RK0jrclGGP7U4CXmd7JYCk+cBi20cD17aCJA0//4fA8HIX7e+fRUk8P1DXrf7Q9jpJ\nj0uaDawCDgfOlvR79f0DJP028Enba4mIiIjoUb2atA7Vn70k3UlJLoeAMwBaCWt1HXCRpFm2HxzW\nTmt5wEZgO+DEEa7T8j7gM5JeS9kp4Ph6/M3AlfX8ZbbvkrQjcL6ktwC/AE59OjcbERER0elSxrVL\nDAwMDGXLq4iIiMmnv7+fFSvuJsUFnpIyrj2sr2/4yoSIiIiYDPI3euvITGuXaDabQ6tXj7adbExm\nM2dOJ2PXuTJ+nStj19k6c/wy09qyJTOt222LjkREREREbE1ZHtAlBgcHaTQaE92NiIiIGKavr48l\nS5ZOdDc63riTVkm/C+xFKSn6PNs/2Fad2lokHQQssj2/7dj5lKIBi2zPGeW8e4Dltk/bRNsLKXu6\nbqT8Hv/O9ldr2dUrgZ0oBQVOsP2YpLcCb+KpqlmnAPcDHwT2AR4D3mT7gbZrXAistP2Rse610WiQ\nL2JFREREtxrX8gBJfw58HrgU+A1ghaQF27JjW9HwRbtDoxwHQNJc4D5KFa0Rq1DV38dhwCG2DwH+\nAviUpJnAu4HP2j4I+DdKcgqljOtf2J5Xf/4D+GNgR9tzgTMpxQmQtLukG4DXb9EdR0RERHSZ8a5p\nfQcwF1hr+yHgJZQkqxMMX+g71sLfhcA1lPKtx48ScwqlJOtGANurgBfbXk0pAfulGvdFSnILJWk9\nU9LX6t6utMfavqPGAOxKKUbw6TH6GhEREdETxrs8oFmrNwFg+8eSNm67bm1V8yTdUp9PAWZTEsJf\nI2kGJZE8ibKEYClw2QihzwUeaD9g++f16Qzgkfp8HfCs+vyq2tZaYKmk71BKuD7S1kxT0nY1CV4l\n6TXjvMeIiIiIrjbepPW7khYDO0h6MfAWykffneBm28e2Xkg6bxOxCyiJ7fX1cQ9JhwAzgcU8VTVr\nFfA7wPfa2h0Evk1JSmcAj9fHNTXkklYp1vrR/0soCeuMtutv15q9jYiIiIinjHd5wKnALEpJ0Y9R\nErO3bKtObWNThj22Owl4ne3X2H41cBqw2Pa1tg+pa1HvBj4OvEvSVABJzweuAJ4EbgdeW9t7NfA1\nSbsB35G0i6QpwDzgm8DXW7GS9qOspY2IiIiIYcY102p7PWUNa6esY92Uofqzl6Q7KclrawYV2yvb\nYq8DLpI0y/aDrYO2PydpT2C5pCcoyf9xtn8m6Vzgk5LeBPwMONb2LySdCXyFskvAzba/VBPYV0m6\nvTZ9wgh9jYiIiOh5m6yIVdetjhQwBRiyPXVbdSw2z8DAwFC2vIqIiJh8+vv7WbHiblIR6ylbUhFr\nkzOttlMxKyIiIiIm3LiWB0iaRvn4XJR1nm8F3mf7iW3Yt9gMfX19E92FiIiIGEH+Rm8d49094DLg\np5R9RJ8EBoD/TdlUPyaBZcuWsXr1+onuRmyBmTOnZ+w6WMavc2XsOlvGr/eM9+P/l9l+J7DB9qPA\nGylbNkVEREREbHPjnWkdqksEWl/K2p18s31SGRwcpNFoTHQ3IiIiYpi+vj6WLFk60d3oeONNWi8G\nvkzZbP9i4EjgPdusV1uRpIOARbbntx07n1LxapHtOaOcdw+w3PZpY7T/a3GSFgInAxuAc21/oe7V\n+hlKFawdgL+2fUfdn/XiGnuT7XNqGxdQqnNNBa6w/dFN9aPRaJDdAyIiIqJbjWt5gO1PA4uAcynl\nS19v+2PbsmNb2fBZ4aFRjgMgaS5lo/95kqaP1uhIcZKeQ/my2hzgD4HzJe0A/DXwZdsHU/Zj/WBt\n5nLgGNsHAPtK2kfSwUC/7bnAAcA7JD2LiIiIiB61yZlWSW8YdmhdfXyxpBfb/tS26dZWN3wvsLH2\nBlsIXAP8J3A85Yto4417BWXm9UlgraT/APYGLqSUdoUy0/oLSTOAabZX1eM3AocB/wjc03ad7Sgz\nsRERERE9aazlAYeM8X6nJK3zJN1Sn08BZgNnjRRYE8n9KSVdVwJLGSFp3UTcbsAjbaH/DTzL9tp6\n3h7Ap4G/rLFr22LXAbPrVmJPSNoe+ATw4foFuIiIiIieNFZxgeFlRTvVzbaPbb2QdN4mYhdQEtvr\n6+Mekg4BZgKLKUsKTgf2HSVuLSUZbZkBrKnXfRFwJXC67eU18R0t9tmUWdxbbF+whfcdERER0RXG\nWh7wA0bfJWDIdv/W79IzYsqwx3YnAa+zvRJA0nxgse2jgWtbQZKuGCkOeAvw93W3hZ2B3we+I+kF\nwNXAn9m+D8D2OkmPS5oNrAIOB86WtBPli2//YPuqrXvrEREREZ1nrOUBB9fHnYHXALsCDco32sda\nOjCZDdWfvSTdSUlehyhVv2glotV1wEWSZtl+EEDSS0aLo/xOLwWW13bfafuJOru7I3CJpCnAGttH\nAm+mzL5uB9xo+y5Jb6UsYVgo6eTatxNsZ0+riIiI6ElThobG3m5V0heAXSiVsL4GHAissP2n27Z7\nMV4DAwND2fIqIiJi8unv72fFirsZ+3vgveM3f3PGZv8yxrtPq4DfAy4BPkaZkfznzb1YbDupaxwR\nETE55W/01jHepPUh20OSVgJ72/6UpB23Zcdi8yxbtiw1mDtU6md3toxf58rYdbaMX+8Zb9L6HUn/\nSNkI/7OSnkvZazQmialTp5KPHTpTxq6zZfw6V8aus2X8es94k9Y3A3Ntf0/SWcChwLFjnBPPoGaz\nyegbPcRklrHrbBm/zpWx62ydNX5JrreGcX0RKya/Qw89dKjRyOYCERERk0VfXx9LliwlSeuv25Zf\nxOpYkg4CFtme33bsfEoVq0W254xy3j2UcqynjdH+r8VJWgicTCm9eq7tL0jaDfgMpZjADsBf275D\n0n7AxTX2Jtvn1DaOBxZRtsL6F9vnbqofjUaD7B4QERER3Wq7ie7AM2T4dPLQKMcBkDQXuI9S/nX6\naI2OFCfpOcBpwBzgD4HzJe0A/DXwZdsHAycAH6zNXA4cY/sAYF9J+0j6H8ApwEGUylvTJE3dvFuO\niIiI6B5dP9NaDZ+CHmtKeiGlhOp/AscDl21G3CsoM69PAmsl/QewN3Ah8Hg9bwfgF7WM6zTbq+rx\nG4FXUUrBfgv4FLAHZba2OdZNRkRERHSrXkla50m6pT6fQqk2ddZIgTWR3J9SznUlsJQRktZNxO0G\nPNIW+t/As2yvreftAXwa+Msau7Ytdl3t2zTgAMps7XRguaSXt9qIiIiI6DW9krTebPuXux3Ukqqj\nWUBJbK+vj3tIOgSYCSymLCk4nfKx/UhxaynJaMsMYE297osoJVtPt728Jr4jxa4HvmL7UeBRSd8H\nng98c8tuPyIiIqKz9UrSOtyUYY/tTgJeZ3slgKT5wGLbRwPXtoIkXTFSc5/JdQAAIABJREFUHPAW\n4O8lTQN2Bn6fss/tC4CrgT+zfR+A7XWSHpc0G1gFHA6cDfwCeEttYwfgD4D7t97tR0RERHSWXk1a\nh+rPXpLupCSvQ5TytLQS0eo64CJJs2w/CCDpJaPFUX6nlwLLa7vvtP1End3dEbhE0hRgje0jKXvg\nXkn5Utwy23fVa/xv4Ou17XNsr9nKv4OIiIiIjpF9WrvEwMDAULa8ioiImDz6+/tZseJusk/rr8s+\nrT2sr69vorsQERERbfK3eevKTGuXaDabQ6tXr5/obsQWmDlzOhm7zpXx61wZu87WWeOXmdbhtmSm\ntVeKC0RERERMgCSsW0uWB3SJwcFBGo3GRHcjIiIiKEsDlixZOtHd6Co9k7RKOgi4lVIy9eq2498G\nvmn7xG147R8ArYxyF+Aa2x9oe39f4H22D6mvrwKeQ/nv2e8CK9r3mR1Jo9EgX8SKiIiIbtVrywNW\nAse0Xkh6ISWJ3NaGgFfZPhiYC5wiaffah7cBV1C2wwLA9nzb84AjgZ8Db30G+hgRERExafXMTGt1\nL/B8STNsr6NUv/oM8DxJpwJHUZLYn1ESxuOA11OKBOxB2X/1CGAv4Azbn5f0Y9t7wi9nSC+3fduw\n607hqf8g7Ao8ATxaX99fr/XpEfr7HuAfbT/0tO88IiIiooP12kwrlKpWR9Xnr6Bs4D8VmGn7UNtz\nKFWoXl5jdrX9WuACYJHto4BTgBPq++PdfuFGSV8Bvk/5uP9RANtLgSeHB0v6TWAe8InNuruIiIiI\nLtRrM61DlOpTH6rrTG+jzIJuBDbUmdL1wCxK4gpwT31cQ0k4oXxkv1N93v61wCkAkt4L7F+vd1h9\n71W2N0jaHviipGNtX7mJvv4JcKXt7EkWERERPa/XklZsr5I0HTgNOBPoB3YDjrA9R9LOwLd4Khkd\nK2ncXtIulNnSveo13tUeIAnqrLbtJyX9BJg2rJ3he2IcBrx3M24tIiIiomv1XNJafQ5YYPt+Sf3A\nBmC9pOX1/R8Bzx1nW5cA3wAeAFaNEjNEWR7QpMzg/ifw2RFi2j2/thkRERHR81IRq0sMDAwMZcur\niIiIyaG/v58VK+4mxQVGlopYEREREdGVenV5QNfp6+ub6C5ERERElb/LW1+WB3SJZrM5tHr1+onu\nRmyBmTOnk7HrXBm/zpWx62ydM35ZHjCSLA+IiIiImDSSsG5NWR7QJQYHB2k0GhPdjYiIiJ7X19fH\nkiVLJ7obXadnklZJBwG3AsfYvrrt+LeBb9o+cRte+wdAK6PcBbjG9gfqe98CHqnv/cD2SZJeTCkZ\n+yTwOPAG2z/d1DUajQbZPSAiIiK6Vc8krdVK4BjgagBJL6QkkdvaEL9aEWulpI8D6wBszxsWfzFw\nqu37JJ0M/A1w+jPQz4iIiIhJqdeS1nuB50uaYXsdsAD4DPA8SacCR1GS2J8BRwLHAa8Hdgb2oMx+\nHkGpfHWG7c9L+rHtPQFqGdjLbd827LpTeGr98K7AE8CjwD7AdEk3AlOBv7V9B/Dntn9S47cHfrGV\nfw8RERERHaUXv4h1LSU5BXgF8HVKwjjT9qG251CqVr28xuxq+7XABcAi20cBpwAn1PfHu/3CjZK+\nAnwfWGH7UUri+gHbhwNvBj4rabtWwippLnAqcNEW321EREREF+i1mdYh4ErgQ3Wd6W2UWdCNwIY6\nU7oemEVJXAHuqY9rKAknwM+Bnerz9q8GTgGQ9F5g/3q9w+p77csDvijpWOCfgfsBbP+HpIeBPYEH\nJf05cCbwGtsPb6X7j4iIiOhIvZa0YnuVpOnAaZSksB/YDTjC9hxJOwPf4qlkdKyZ1O0l7UL50tRe\n9Rrvag+QBHVW2/aTkn4CTANOBF4EnCrpucAM4MeSFgAnAwfbXvM0bzkiIiKi4/Vc0lp9Dlhg+35J\n/cAGYL2k5fX9HwHPHWdblwDfAB4AVo0SM0RZHtCkzOD+J/DZ+t7HJX2NMtvbWnJwCWW3gaWShoCv\n2n7PeG8uIiIiotukIlaXGBgYGMqWVxEREROvv7+fFSvuJsUFRrclFbF6daa166TGcURExOSQv8nb\nRmZau0Sz2RzqjBrMMVzn1M+OkWT8OlfGrrN1xvhlpnU0mWntYVOnTiX/ODpTxq6zZfw6V8aus2X8\nek+S1i7RbDYZ/5axMZlk7Dpbxq9zZew62+QfvyTUW1uS1i4xODhIo9GY6G5ERET0tL6+PpYsWTrR\n3ehKXZ+0SjqIUslqftux84GV9ficUc67B1hu+7RR3v848FLgYUqhgQeAN9puSroYeCWwroYfATQp\nhQ2eDTxeY38saT/gYsq2WzfZPqftGgPAdbb3Hus+G40G2T0gIiIiulWvlHEd/vnB0CjHgV+WT70P\nmFcLEYzmbbbn2Z5L+RzgiHr8ZcDh9b15ttcBC4Fv2j6Iskfr22vs5cAxtg8A9pW0T+3DAuAqYPfN\nudGIiIiIbtQrSevwhSVjLTRZCFwDLAWOH6tdSVMpVbUekjQF+D3gI5KWSzoBwPYlwLn1vOcBayTN\nAKbZXlWP38hTZV9XAweO0c+IiIiIntD1ywOqeZJuqc+nALOBs0YKrInk/sBJlCUES4HLRmn3/ZLe\nAcwCHgXuBaYDlwIXUn6/t0q6y/Z3bA9Juhl4IfAqSqK7tq29dbVv2L6h9meLbjgiIiKim/RK0nqz\n7WNbLySdt4nYBZTE9vr6uIekQ4CZwGLKkoLTa+zbbS+rbb6HkqieDFxq+7F6/BZgH+A7ALYPVclE\nvwC8mJK4tswA1jy9W42IiIjoPr2StA43Zdhju5OA19leCSBpPrDY9tHAta2gOgPafv4PgT5AwOck\nvZjy+90f+ISkvwH+y/ZngPXAk7b/W9LjkmYDq4DDgbNH6WtEREREz+rVpHWo/uwl6U5KYjgEnAHQ\nSlir64CLJM2y/eCwdlrLAzZS1gefaHuVpE8BdwBPAJ+0/X1JDwOflHRSjT2+tvFmyq4C2wHLbN81\nQl8jIiIielrKuHaJgYGBoWx5FRERMbH6+/tZseJu8kHppqWMaw/r6+ub6C5ERET0vPw93nYy09ol\nms3m0OrV6ye6G7EFZs6cTsauc2X8OlfGrrNN/vHLTOumZKY1IiIiYkIkSd3WkrR2icHBQRqNxkR3\nIyIioqf09fWxZMnSie5GT+j6pFXSQcAi2/Pbjp1PKRywyPacUc67B1hu+7Qx2v+1OEmvBt5dX37L\n9mJJuwFLgF2Bx4AFth+StB9wMbABuMn2OW3tDADX2d57rPtsNBrki1gRERHRrXqljOvwhbtDoxwH\nQNJc4D5KJa3pozU6UpykXYELgNfWhHiVpN+gbHH1bdsHAlcDb6vNXA4cY/sAYF9J+9R2FgBXAbtv\n5r1GREREdJ1eSVqHLzQZa+HJQuAaSgnX4zczrpXIXijpNuAnth+ux1rVr3YDNtSSsdNsr6rHbwQO\nq89XAweO0c+IiIiIntD1ywOqebWcKpSEdTZw1kiBNZHcn1IZayUlIb1sM+J2Bw6mlG59FPiapBXA\nw8CgpO8CzwYOoCSva9uaXVf7hu0b6nW28JYjIiIiukevJK032z629ULSeZuIXUBJbK+vj3tIOgSY\nCSymLCk4Hdh3lLiHgbts/7Re6zbgJcAxwPttXyHpRZRKW/vz1OwrwAxgzdO/3YiIiIju0itJ63BT\nhj22Owl4XauUq6T5wGLbRwPXtoIkXTFSHLAIeKGkmZRZ1P2Aj1A+7n+knv5TYIbtdZIelzQbWAUc\nDpw9Sl8jIiIielavJq1D9WcvSXdSEsMh4AyAViJaXQdcJGmW7QcBJL1ktDhgGnAmsKy2+Tnb35P0\nbuCjkk6l/N7fVM97M3AlZX3xMtt3jdDXiIiIiJ6WilhdYmBgYChbXkVERDyz+vv7WbHibvLB6ObZ\nkopYvbJ7QERERER0sF5dHtB1+vr6JroLERERPSd/f585WR7QJZrN5tDq1esnuhuxBWbOnE7GrnNl\n/DpXxq6zTb7xy/KAzZHlARERERHPuCSsz4QsD+gSg4ODNBqNie5GREREz+jr62PJkqUT3Y2ekaR1\nnCQdBCyyPb/t2PnA921/qu3YocB7gSeAh4A32H5sWFu3AqfY/ndJu1IKFNwAfA74NvAtyiz4NOCz\ntn+tItdwjUaD7B4QERER3SrLAzbPeBYA/xPwR7YPBu7nqf1Yf00tBftF4CrbF9TD37U9r55/APBq\nSa99Wr2OiIiI6HBJWjfPeBatHGz7Z/X59sBjo8Q9G7gJ+IjtD48UYLsJXEIpARsRERHRs7I8YPPM\nk3RLfT4FmA28uz3A9k8AJB0FHAz83ShtfQb4MTBrjGv+BPiNLexvRERERFdI0rp5brZ9bOuFpPOA\nGXWN6hBwnO0fS3orcDRwuO0naunWP6kxC+rpbwe+DHxT0u22vzbKNfuA/9pG9xMRERHREZK0Pj1T\ngHW2D2kdkPS3wEuAw2w/DlC/SHVZWwyUtavrJL0BuFrSy9rabMXtCPwVcN62vpGIiIiIySxrWp+e\nX/lilqTfoiwXeC7wJUm3SDplU+fZvgP4MHAlZTz+oJ53M7AMuNr2LSO0EREREdEzUhGrSwwMDAxl\ny6uIiIhnTn9/PytW3E2KC2y+LamIleUBXSK1jyMiIp5Z+dv7zMpMa5doNptDk6sGc4zX5KufHZsj\n49e5MnadbXKNX2ZaN1dmWnvY1KlTyT+azpSx62wZv86VsetsGb/ek6S1SzSbTcZXsCsmm4xdZ8v4\nda6MXWebHOOXpPmZlKS1SwwODtJoNCa6GxEREV2vr6+PJUuWTnQ3ek7XJ62SDgIW2Z7fdux8YGU9\nPmeU8+4Blts+bZT3Pw68FHgY2Al4AHhjLb2KpN8ElgMvqgUGdgOWALtSSrsusP2QpP2Ai4ENwE22\nz2m7xgBwne29x7rPRqNBdg+IiIiIbtUr+7QO//xgaJTjAEiaC9xHKds6fRPtvs32PNtzKZ8RHFHP\nHwRuBJ7TFns88G3bBwJXA2+rxy8HjrF9ALCvpH1qGwuAq4Ddx3WHEREREV2sV5LW4YtOxlqEshC4\nBlhKSTY32a6kqcBuwEP1eBM4FFjdFntfjaE+bpA0A5hme1U9fiNwWH2+GjhwjH5GRERE9ISuXx5Q\nzZPUqio1BZgNnDVSYE0k9wdOoiwhWEpbCdZh3i/pHcAs4FHgXgDbN9e22pPjh4FBSd8Fng0cQEle\n17bFrKt9w/YNtY3Nuc+IiIiIrtQrSevNto9tvZB03iZiF1AS2+vr4x6SDgFmAospSwpOr7Fvt72s\ntvke4ELKLG1L+/KDs4D3275C0ouA6yjJ8W5tMTOANZt/exERERHdrVeS1uGmDHtsdxLwOtsrASTN\nBxbbPhq4thVUZ0Dbz/8hMLw0Rvv7q4FH6vOfAjNsr5P0uKTZwCrgcODsTbQRERER0ZN6NWkdqj97\nSbqTkhgOAWcAtBLW6jrgIkmzbD84rJ3W8oCNlPXBJ45wnZZ3Ax+VdCrl9/6mevzNwJX1/GW279pE\nGxERERE9KWVcu8TAwMBQtryKiIjY9vr7+1mx4m7yYeiWSxnXHtbXN3xlQkRERGwL+Zs7MTLT2iWa\nzebQ6tXrJ7obsQVmzpxOxq5zZfw6V8aus02O8ctM65bKTGsPmzp1KvnH05kydp0t49e5MnadLePX\ne5K0dolms0m+s9WZMnadLePXuTJ2nW1yjF+S5mdS1yetkg6ilE39bj20E3Cl7X8aJX4h8DHbzXG0\n/UFgX9svazu2L3AJsAG4yfY59fi5lCpZG4EzbX9V0m9Qdg7YCfgRcILtx2r8LsAy4ETb/z5WXwYH\nB2k0GmOFRURExNPU19fHkiVLJ7obPafrk9bql8UFJE0DLOlTtteOEPtO4JOUUqyjkrQz8ErgPkkH\n2f5qfetDwJG2V0n6gqR9KP8Ve4Xt/ST1Af8CvJiyDdZnbX+qbp21CLhY0stqO7PGe4ONRoPsHhAR\nERHdqleS1vb5+92AJ4EXSzqrvrcrcCxwILAHsETSJcD7gceBj9j+7LA2/wz4MvBFSqWsr9YSsNNs\nr6oxNwKH2f5fkg6vx34X+Hl9vj9wbn3+xfr8YmAa8MfAp5/ebUdERER0h15JWudJuoWy+OUJ4DTg\nBcBxtv+vpDOBP7V9vqS/A/4cmAvsaHu/Udp8E3AyYOBDkvakFAhon71dB8wGsL1R0t/Xa59W39+N\np6pkrQOeVWNXAEjKYpmIiIgIeidp/eXygBZJfwT8o6R1wG8Dy+tbU3hqZtY1th/4KCXp/TSwAngh\n8L9q7EbKR/v/QElEW2YAa1ovbP+dpPOBOyQtpySsMyizub8SGxERERFP6ZWkdSRXAP/D9npJn+Cp\nRLUJTK3PNwLY/j/AIa0TJf0D8E7bl9fXvwN8Hfh74HFJs4FVwOHA2ZIOAY62vZgy0/tEvc7twGsp\na2hfDXxtW91sRERERCfbbqI7MIE+DSyX9DXKmtbn1uPLgS+MdpKkHYBjgM+1jtn+IXAvcDRlxvVK\n4BvA3bbvAr4KbFdnV78KXGa7QVnDekztw37A8B0NJnovj4iIiIhJIRWxusTAwMBQdg+IiIjY9vr7\n+1mx4m6yT+uW25KKWL080xoRERERHaKX17R2lb6+vonuQkRERE/I39yJkeUBXaLZbA6tXr1+orsR\nW2DmzOlk7DpXxq9zZew62+QYvywP2FJZHhARERERXSnLA7rE4OAgjUZjorsRERHR9fr6+liyZOlE\nd6PndH3SKukgYJHt+W3HzgdW1uNzRjnvHmC57dNGef/jwEuBh4GdgAeAN9puSjodmE/Zi/V82/9/\n23lHAn9i+7j6el/gEmADcJPtc9piB4DrbO891n02Gg2ye0BERER0q15ZHjB84e7QKMcBkDQXuI9S\n/nX6Jtp9m+15tudSFrYcIelZwF8C+1KKC1zc1u7FlL1Z29dxfAg4xvYBwL6S9qmxC4CrgN3Hd4sR\nERER3atXktbhi33HWvy7ELgGWAocP1a7kqZSyrc+BKynVMOaQSla0GyLvx14c+uFpBnANNur6qEb\ngcPq89XAgWP0MyIiIqIndP3ygGqepFvq8ynAbOCskQJrIrk/cBJlCcFS4LJR2n2/pHcAs4BHKVWx\nAP4L+B7lPwXnt4JtX1OXK7TsBqxte72u9g3bN9T+jO8OIyIiIrpYryStN9s+tvVC0nmbiF1ASWyv\nr497SDoEmAkspiwpOL3Gvt32strme4ALgX8F9gD66vnLJN1u+5sjXGstJXFtmQGs2fzbi4iIiOhu\nvZK0Djdl2GO7k4DX2V4JIGk+sNj20cC1raA6A9p+/g8piepq4Be2N9S4NcD/N1InbK+T9Lik2ZQl\nBYcDZ4/S14iIiIie1atJ61D92UvSnZTEcAg4A6CVsFbXARdJmmX7wWHttJYHbKQsBTjR9ipJ35T0\nDcp61uW2v7yJviwCrqznL7N91wh9jYiIiOhpqYjVJQYGBoay5VVERMS219/fz4oVd5MPQ7fcllTE\n6tWZ1q6TOsgRERHPjPzNnRiZae0SzWZzaOJrMMeWmBz1s2NLZfw6V8aus02O8ctM65bKTGsPmzp1\nKvnH05kydp0t49e5MnadLePXe5K0dolms0m+s9WZMnadLePXuTJ2nW1yjF+S5mdSktYuMTg4SKPR\nmOhuREREdL2+vj6WLFk60d3oOT2TtNZKVLcCx9i+uu34t4Fv2j5xG19/T+B+4A22r63HpgAfBPYB\nHgPeZPuBtnMuBFba/shY7TcaDbJ7QERERHSr7Sa6A8+wlcAxrReSXgjs8gxd+wTgEuDUtmN/DOxo\ney5wJqWiFpJ2l3QD8PpnqG8RERERk1rPzLRW9wLPlzTD9jpKydbPAM+TdCpwFCWJ/RlwJHAcJXHc\nmVKa9VLgCGAv4Azbn5f0Y9t7Aki6Crjc9m0jXHsBcADwL5JeYPt7wP7AlwBs3yHpZTV2V+As4NVb\n/TcQERER0YF6baYVSinWo+rzVwBfB6YCM20fansOsAPw8hqzq+3XAhcAi2wfBZxCmTmFcawCl3Qo\ncJ/th4GPA4vrW7sBj7SFNiVtZ3tVrYyVFd4RERER9N5M6xClZOqHJP0AuI2SGG4ENtSZ0vXALEri\nCnBPfVwDfL8+/zmwU33enlhOAZD0Xsos6hBwKLAQmF0/8t8R2LuWf10LzGg7fzvbG7fOrUZERER0\nj15LWrG9StJ04DTKOtJ+yoznEbbnSNoZ+BZPJaNjzaRuL2kX4EnKsgFsv6v1pqTdgX1tz2479mHg\neGA58EfAP0vaD7jv6d9hRERERPfpuaS1+hywwPb9kvqBDcB6Scvr+z8CnjvOti4BvgE8AKwa4f2/\noCxJaPdR4JOUJHdQ0u31+AnD4iZ6A7qIiIiISSFlXLvEwMDAULa8ioiI2Pb6+/tZseJu8tWTLZcy\nrj2sr69vorsQERHRE/I3d2JkprVLNJvNodWr1090N2ILzJw5nYxd58r4da6MXWebHOOXmdYtlZnW\n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\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x11b990860>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "image/png": "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\nvWPV1iWYbPBTC+4+WfP4FeC2zfp5WnBXREREWllL9TNqwV0RERFpZS0V3BYuC6IFd0VERKSVNLSr\ndKtpwV0RERFpZS0V3LTgroiIiLSy0Ac3zSQVERGRdhH64KaZpCIiItIuQj85QTNJRUREpF2EPrjV\nzhz1PI9cvsiDD5/i0acv4Hor7lkvIiIiEiqh7yqtnUmayxc5d8WvuKnbVERERFpNqIKb63o8+vSF\nRRMRKuHswYdPzXu+uk1FRESklYQquD3yrTMrTkTYP5ip3l85FhEREWkVoQpur1yanHe8sKKmBXhF\nRESklYUquF29u5unTw5XjxdW1LQAr4iIiLSyUAW3t73+KrLZvCpqIiIi0pZCFdwiEVXUREREpH2F\nfh03ERERkXah4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYi\nIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh\n4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIi\nIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISErHtbsB2cT2PY8cvcm54mv2D\nGe4+soeI42x3s0RERESWFarg5roejz59YVPC1rHjF/nSU+cBOHluHIB7b967aW0VERER2WyhCm6P\nfOvMpoWtc8PTKx6LiIiINJtQjXF75dLkvOONhK39g5kVj0VERESaTagqblfv7ubpk8PV442ErbuP\n7AGY1+0qIiIi0swaGtyMMQ7we8DNQB74kLX2dM3jrwd+Mzi8BHzAWltY7nxve/1VZLP5TQlbEcfR\nmDYREREJlUZ3lb4XSFpr7wJ+Gfjwgsf/APgxa+2bgC8AB1c6WSTicPeRPewfzHBueJpjxy9Scl0e\nffoCDz58ikefvoDreQ15IyIiIiLbrdFdpffgBzKstY8bY+6oPGCMuQEYAX7OGHMT8Flr7anVTnjs\n+EUeefIc0zMlvvHcRT73jVeYKZRJxKLYs2OAZoeKiIhIa2p0xa0bmKg5LhljKj9zAHgj8NvA24G3\nG2PevNoJzw1PMz1TIpsrMDNbZng8Ty7vH0/PlDQ7VERERFpWoytuk0BXzXHEWusGt0eAF621JwGM\n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\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x12da37128>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "scores = all_models_df.groupby(\"allele\").scores_auc.mean().to_frame().reset_index().sort_values(\"scores_auc\", ascending=False)\n",
-    "scores[\"size\"] = training_sizes.ix[scores.allele].values\n",
-    "\n",
-    "pyplot.figure(figsize=(10, 30))\n",
-    "pyplot.title(\"Mean AUC over all models\")\n",
-    "seaborn.barplot(y=\"allele\", x=\"scores_auc\", data=scores, orient=\"h\", color=\"black\")\n",
-    "\n",
-    "pyplot.figure(figsize=(10, 5))\n",
-    "pyplot.title(\"Mean AUC over all models\")\n",
-    "seaborn.regplot(x=\"size\", y=\"scores_auc\", data=scores, logx=True)\n",
-    "pyplot.xlim(xmin=0)\n",
-    "pyplot.ylim(ymin=0.5, ymax=1.0)\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(0.5, 1)"
-      ]
-     },
-     "execution_count": 8,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmAAAAFRCAYAAADTpRFFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHstJREFUeJzt3XmYHVWd//F3J5EIMYEE4y4ILl8dRRSCLLIvogIOivqT\nQUZZXBBX1BEUJy4o4wI/BGUUIwHFcUQQFRyjIJtkGDaRRfELCMroOCxJIJgQIEnPH1VXLm26UyFd\np7tvv1/Pkye36lTV/d6betKfPnXqVF9/fz+SJEkqZ8JIFyBJkjTeGMAkSZIKM4BJkiQVZgCTJEkq\nzAAmSZJUmAFMkiSpsEkjXYAkramI2Bj4HXB9vWoi8BBwYmZ+a8QKAyLi48CvMvPckaxD0uhmAJM0\nVi3NzC06CxGxEfDziPhLZp4zgnXtCvx6BN9f0hjQ50SsksaaugfshsycNmD9/sB7gd8CM4BNgfOA\nY4GvAC8BVgLzgKMyc2VEPAycAOwCrAd8rBPg6t6sNwEPAzcD787MuyLiIuCkzPx+vd1FwEnAU4DP\nAXcBR2TmD9v7FiSNZY4Bk9RLrgM2A/qBdTNzs8w8CjgRuCczNwNmAZsDH6r3mVi3zQL+H3BqRGwY\nEQcBewJbZuZLqHq1ThvqzTPzZOBq4MOGL0lDMYBJ6iX9wNL69WVd618FfBkgMx8Gvlqv6+i03UA1\nrmwn4JXA3MxcVm/zJWC3iHDohqS1ZgCT1Eu24pGB+X/pWt83YLsJwOO6lld0vZ4ILOdv/3+cSDVu\nto8q6HUfc53HWK+kccoAJmmselSoiojnAUcDxw1sA34KHF5vNxl4O/CzrvZ/rNu2AAK4pN7noIhY\nr97mvcAldQ/a3VSXMomIZwMv7jrWch4d7iTpb9iVLmmsenxE/LJ+3Q88AByZmT+JiDcM2PZ9wEkR\ncQNVOJoHfLar/eUR8Q6q4PbGzLwvIr4BPAO4MiL6gFuBN9fbHwOcHhF7UQ34v6TrWOcCX4yIdUZ6\nSgxJo5d3QUoa1yJiJbBhZi4a6VokjR+tX4KMiK3rW7QHrt8nIq6MiPkRcWjbdUjSIAaO55Kk1rXa\nAxYRHwYOBP6Smdt1rZ8E3ARsSXXZYD6wV2be3VoxkiRJo0TbPWC3Aq9dxfoXALdk5uJ6QOtlwI4t\n1yJJkjQqtBrA6tmkl6+iaRpwX9fy/cD6bdYiSZI0WozUXZCLqUJYx1Tg3tXttHz5iv5Jkya2VpQk\nSdIwGnR8aakANrCAm4DnRMQGVLNW7wh8YXUHWbRo6eo2kSRJGhVmzpw6aFupANYPf31Q7pTMnBMR\nR1BNhNgHzMnMPxeqRZIkaUSNqXnA7r77/rFTrCRJGtdmzpw66CVIH0UkSZJUmAFMkiSpMAOYJElS\nYQYwSZKkwgxgkiRJhRnAJEmSCjOASZIkFWYAkyRJKswAJkmSVJgBTJIkqTADmCRJUmEGMEmSpMIM\nYJIkSYUZwCRJkgozgEmSJBVmAJMkSSrMACZJklSYAUySJKkwA5gkSVJhBjBJkqTCDGCSJEmFGcAk\nSZIKM4BJkiQVZgCTJEkqzAAmSZJUmAFMkiSpMAOYJElSYQYwSZKkwgxgkiRJhRnAJEmSCjOASZIk\nFWYAkyRJKswAJkmSVJgBTJIkqTADmCRJUmEGMEmSpMIMYJIkSYUZwCRJkgozgEmSJBVmAJMkSSrM\nACZJklSYAUySJKkwA5gkSVJhBjBJkqTCDGCSJEmFGcAkSZIKM4BJkiQVZgCTJEkqbFKbB4+IPuBk\nYHNgGXBoZt7W1X4g8CHgXuD0zDy1zXokSZJGg7Z7wPYFJmfmdsBRwPGdhojYEPgUsCOwM3BARGzU\ncj2SJEkjru0Atj0wDyAzrwBmdbVtCvwqM+/LzH7gKmCbluuRJEkacW0HsGnAfV3LyyOi8563AC+M\niJkRsR6wGzCl5XokSZJGXKtjwIDFwNSu5QmZuRIgM++NiCOAs4EFwDXAPUMdbPr09Zg0aWJbtUqS\nJBXRdgCbD+wNnBUR2wA3dBoiYiKwRWbuGBHrAD8DPjrUwRYtWtpmrZIkScNm5sypg7a1HcDOAfaI\niPn18kERsT8wJTPnRAQR8UvgAeC4zFzYcj2SJEkjrq+/v3+ka2js7rvvHzvFSpKkcW3mzKl9g7U5\nEaskSVJhBjBJkqTCDGCSJEmFGcAkSZIKM4BJkiQVZgCTJEkqzAAmSZJUmAFMkiSpMAOYJElSYQYw\nSZKkwgxgkiRJhRnAJEmSCjOASZIkFWYAkyRJKswAJkmSVJgBTJIkqTADmCRJUmEGMEmSpMIMYJIk\nSYUZwCRJkgozgEmSJBVmAJMkSSrMACZJklSYAUySJKkwA5gkSVJhBjBJkqTCDGCSJEmFTRrpAiRJ\neuz6R7oA9ay+Vo9uAJMkjWk3f/1kHlywcKTLUI+YvOEMnve2d7X+PgYwSdKY9uCChSy7++6RLkNa\nI44BkyRJKsweMKlnOTZGbWl3bIw0HhjApB4258rTWLjk3pEuQz1ixpQNOPRlbx3pMqSeYACTetjC\nJfdy95IFI12GJGkAx4BJkiQVZgCTJEkqrNElyIjYBNgbeC6wErgVODcz/9BibZIkST1pyAAWEU8F\nTgA2BuZTBa+HgU2AMyPi98AHM/OP7ZYpSZLUO1bXA/YvwCcz8zeraoyIzYFjgQOHuzBJkqReNWQA\ny8y3dF5HxKTMXB4Rk4DJmbkkM6/D8CVJkrRGGg3Cj4g3AtfWixsDGRF/31pVGhVOPfUU3vSmfTn1\n1FNGuhRJknpK07sgjwZ2B8jM3wFbAJ9sq6j29ftnNX+WLVvK+ef/BIDzz5/HsmVLR7ymsfFHkqTV\nazoR6zqZeWdnITPviogx/SyKr551OQvue2Ckyxi1Vix/iP7+KlD09/fz+dMvYeKkdUa4qtFrw/XX\n5Z2v33aky5AkjRFNA9hlEfEd4Nv18huBy9spqYwF9z3AXQuXjHQZo9q6M1/AA3ffxLozn8+CxQ9T\n3QArSZLWVtMAdjjwHuAdVD+FLwVObqsojQ7TNtqWaRvZqyNJ0nBrGsCeDJxZ/+l4CnDHsFckSZLU\n45oGsEt4ZITxOlTh61pgqzaKkiRJ6mWNAlhmbtK9HBEvo7osOaR6oP7JwObAMuDQzLytq/0A4Ahg\nOTA3M7/avHRJkqSx6TE9jDszrwS2bLDpvlSTtm4HHAUcP6D9C8CuwPbAByNi/cdSjyRJ0ljS9GHc\n/9y12Af8HXDnIJt32x6YB5CZV0TErAHt1wHTeeTyphMpSZKknte0B6yv608/1ZiwNzTYbxpwX9fy\n8ojofs9fA9cANwDnZebihvVIkiSNWU3HgD1q1vt6bNcmwMLV7LoYmNq1PCEzV9bH2AzYi+rRRkuA\nb0fEfpl59mAHmz59PSZNmtik5CGtWLFirY8hDTRjxhQmTlz783O4eJ6rDZ7nGg9KnOdNL0G+G/gs\nMKVr9e+BZ69m1/nA3sBZEbENVU9Xx33AUuDBzOyPiLuoLkcOatGipU3KbcArnRp+CxcuoeokHi08\nzzX8PM81HgzXeT5z5tRB25pOQ/FBqjsZPwN8FNgZ2KPBfucAe0TE/Hr5oIjYH5iSmXMi4hSqWfYf\nBH4HnNawHkmSpDGraQC7KzNvj4jrgc0y87S6V2xImdkPHDZg9c1d7V8Dvta4WkmSpB7QdBD+kojY\nBbge2CcinsJqLhdKkiRp1ZoGsPcA+1BNKbEh8FvgpLaKkiRJ6mVN74L8NdWM9QD7dbdFxCmZ+fbh\nLkySJKlXPaaZ8AcYOLmqJEmShjAcAUySJElrwAAmSZJUmAFMkiSpsOEIYKNpSmRJkqRR7zEFsIiY\n1rV4/jDVIkmSNC40fRbk3sAOwKeBq4CZETE7M7+Smf/UZoGSJEm9pmkP2GxgLvAm4ErgWcBBLdUk\nSZLU0xpfgszM3wJ7AT/KzL8A67RWlSRJUg9rGsDujIiTqCZdnRcRxwF3tFeWJElS72oawPanGvu1\nc2YuAW6r10mSJGkNNQpgmXk/sAI4OCLWA+6v10mSJGkNNQpgEfEvwKuA11HdOXlQfRlSkiRJa6jp\nJcg9gQOBZZm5GNiDKpBJkiRpDTUNYCvrv/vrvyd3rZMkSdIaaBrAzgS+C8yIiPcDlwL/1lpVkiRJ\nPazRTPjAF4HdgT8AGwGzM/O81qqSJEnqYU0D2FWZuQXw0zaLkSRJGg/WZCLWHSJicqvVSJIkjQNN\ne8BmAZcARERnXX9mTmyjKEmSpF7WKIBl5sy2C5EkSRovGgWwevb72cBu9T4XAh+vH0skSZKkNdB0\nDNiXgSnAwcBbgHWAr7ZVlCRJUi9rOgZsy8zcvGv53RHxmzYKkiRJ6nVNe8AmRMQGnYX69fJ2SpIk\nSeptTXvAjgeuiogf1cuvAY5tpyRJkqTe1qgHLDPnAq8FbgN+D7w2M09tsS5JkqSe1SiARcRmwNGZ\n+RXgAuDk6JoQTJIkSc01HQP2deA0gMy8Cfg08I2WapIkSeppTQPYlMyc11nIzPOppqWQJEnSGmo6\nCP+uiHgncEa9vD9wZzslSZIk9bamPWAHAXsDfwb+ALwaOLStoiRJknpZ02dB3kEVwIiI9YFnZOYf\n2yxMkiSpVzV9FuQhwMuBjwDXAvdHxNmZeXSbxUmSJPWippcg3wV8iGrs1w+BzYBXtlWUJElSL2sa\nwMjMhVRjv36cmcuBdVurSpIkqYc1DWC/jojzgE2BCyLiTOCq9sqSJEnqXU0D2MHA54FtMvMh4Ft4\nF6QkSdJjMuQg/Ig4FvhcZt4LXNpZn5nn1u0zgI9k5kdarVKSJKmHrO4uyDOBH0TE/1AFsD8Cy4GN\ngV2BpwHvb7VCSZKkHjNkAMvMa4GdI2IX4DVUc4GtBH4HfC0zL2y/REmSpN7SdCLWi4CLWq5FkiRp\nXGg6EeuewDHADKCvsz4zN22pLkmSpJ7V9GHcJwFHADcC/e2VI0mS1PuaBrB7MvO8ViuRJEkaJ5oG\nsF9ExPHAPGBZZ2VmXjr4LhARfcDJwOb1fodm5m1125OBf6fqUesDXkI1pcUpa/ohJEmSxpKmAexl\n9d8v7VrXTzUVxVD2BSZn5nYRsTVwfL2OzLwT2AUgIrahGmP29Yb1SJIkjVlN74Lc5TEef3uqXjMy\n84qImDXIdicB+2em48skSVLPa3oX5PbAh4EnUF0unAhsnJnPWs2u04D7upaXR8SEzFzZdex9gBsz\n89Y1KVySJGmsanoJcg7wOeCtwInAq4BfNthvMTC1a/lR4av2ZuCEJkVMn74ekyZNbLLpkFasWLHW\nx5AGmjFjChMnrv35OVw8z9UGz3ONByXO86YB7IHMnBsRzwIWAW8Drmmw33yq2fPPqsd53bCKbWZl\n5uVNili0aGnDclfHK50afgsXLqFrmrxRwPNcw8/zXOPBcJ3nM2dOHbRtQsNjLKsfvJ3ANvVYrSkN\n9jsHeDAi5gPHAR+IiP0j4lCAiHgij75EKUmS1POa9oAdD3wXeB1wVUQcAFy9up3qoHbYgNU3d7Xf\nA2zRsAZJkqSe0KgHLDO/B7wiM+8HtqQat3Vgm4VJkiT1qkYBLCKmA6dExIXA44H3AOu3WZgkSVKv\najoG7OvAVcCGwP3An4Ez2ipKkiSplzUNYJvUjwhamZkPZebHgGe0WJckSVLPahrAlkfE+tT3+0bE\nc4GB83lJkiSpgaZ3Qc4GLgaeGRE/ALYFDm6rKEmSpF7WtAfsGqo5vW4HNgK+T3U3pCRJktZQ0x6w\n/wCuB87rWjeapkKWJEkaM5oGMDLzkDYLkSRJGi+aBrAf1I8PuhBY3lmZmXe0UpUkSVIPaxrA1geO\nBO7pWtcPbDrsFUmSJPW4pgFsP+BJmflAm8VIkiSNB03vgrwNmN5mIZIkSeNF0x6wfuA3EXEj8FBn\nZWbu2kpVkiRJPaxpAPtMq1VIkiSNI40CWGZe0nYhkiRJ40XTMWCSJEkaJgYwSZKkwgxgkiRJhRnA\nJEmSCjOASZIkFWYAkyRJKswAJkmSVJgBTJIkqTADmCRJUmEGMEmSpMIMYJIkSYUZwCRJkgozgEmS\nJBVmAJMkSSrMACZJklSYAUySJKkwA5gkSVJhBjBJkqTCDGCSJEmFGcAkSZIKM4BJkiQVZgCTJEkq\nzAAmSZJUmAFMkiSpMAOYJElSYQYwSZKkwgxgkiRJhRnAJEmSCjOASZIkFWYAkyRJKswAJkmSVJgB\nTJIkqbBJbR48IvqAk4HNgWXAoZl5W1f7VsBx9eL/Am/OzIfarEmSJGmktd0Dti8wOTO3A44Cjh/Q\nfgrw1szcEZgHbNxyPZIkSSOu7QC2PVWwIjOvAGZ1GiLiecAC4IiIuBiYkZm3tFyPJEnSiGs7gE0D\n7utaXh4Rnfd8IrAtcCKwO7B7ROzccj2SJEkjrtUxYMBiYGrX8oTMXFm/XgDcmpk3A0TEPKoesosH\nO9j06esxadLEtS5qxYoVa30MaaAZM6YwceLan5/DxfNcbfA813hQ4jxvO4DNB/YGzoqIbYAbutpu\nA54QEZvWA/N3AOYMdbBFi5YOU1n9w3Qc6RELFy4B+ka6jC6e5xp+nucaD4brPJ85c+qgbW0HsHOA\nPSJifr18UETsD0zJzDkRcQjwnYgA+M/M/EnL9UiSJI24VgNYZvYDhw1YfXNX+8XA1m3WIEmSNNo4\nEaskSVJhBjBJkqTCDGCSJEmFGcAkSZIKM4BJkiQVZgCTJEkqzAAmSZJUmAFMkiSpMAOYJElSYQYw\nSZKkwgxgkiRJhRnAJEmSCjOASZIkFWYAkyRJKswAJkmSVJgBTJIkqTADmCRJUmEGMEmSpMIMYJIk\nSYUZwCRJkgozgEmSJBVmAJMkSSrMACZJklSYAUySJKkwA5gkSVJhBjBJkqTCDGCSJEmFGcAkSZIK\nM4BJkiQVZgCTJEkqzAAmSZJUmAFMkiSpMAOYJElSYQYwSZKkwgxgkiRJhRnAJEmSCjOASZIkFWYA\nkyRJKswAJkmSVJgBTJIkqTADmCRJUmEGMEmSpMIMYJIkSYUZwCRJkgozgEmSJBVmAJMkSSrMACZJ\nklSYAUySJKmwSW0ePCL6gJOBzYFlwKGZeVtX+/uBQ4G76lXvyMxb2qxJkiRppLUawIB9gcmZuV1E\nbA0cX6/r2BI4MDOvbbkOSZKkUaPtS5DbA/MAMvMKYNaA9i2BoyLiFxFxZMu1SJIkjQptB7BpwH1d\ny8sjovs9vwO8E9gF2D4iXt1yPZIkSSOur7+/v7WDR8RxwOWZeVa9fEdmbtTVPi0zF9evDwNmZOZn\nWitIkiRpFGi7B2w+8GqAiNgGuKHTEBHTgBsjYr16sP6uwDUt1yNJkjTi2u4B69wF+eJ61UFU476m\nZOaciDgAeB/VHZI/z8xPtlaMJEnSKNFqAJMkSdLfciJWSZKkwgxgkiRJhRnAJEmSCmt7JnyNEQ0e\nG7UP8HHgYWBuZs4ZkUKltbC687zeZj3gZ8DBmXlz+SqlNdfg//D9qW56exi4ITPfVa+/hkfm67w9\nMw8pWvg4Zg+YOv762CjgKKrHRgEQEZPq5d2BnYG3R8TMkShSWkuDnucAEbElcAmw6QjUJq2Nof4P\nfzzwKWCnzNwB2CAi9o6IyQCZuWv9x/BVkAFMHUM9NuoFwC2ZuTgzHwYuA3YsX6K01lb3eLR1qH6Q\n/bZwXdLaGurcfhDYLjMfrJcnUfWSbQ5MiYifRsQF9TObVYgBTB1DPTZqYNv9wPqlCpOG0ZCPR8vM\nyzPzT0Bf8cqktTPouZ2Z/Zl5N0BEvIdqLs4LgKXAFzJzT+Aw4NsDHheoFjkGTB2LgaldyxMyc2VX\n27SutqnAvaUKk4bRUOe5NJYNeW7XY8Q+DzwXeF29+mbgVoDMvCUiFgBPBf5UpOJxzqSrjkEfGwXc\nBDwnIjaIiHWoLj9eXr5Eaa0NdZ5LY9nqzu1TqMaI7dt1KfJg4Lh6n6dRBbg/lylXzoQvoNFjo/YC\nZlNdmvlGZn51ZCqVHrvVnedd210IvNO7IDVWDHVuUz1n+SrgF3VbP/Al4MfA6cBGwErgI5n5XwXL\nHtcMYJIkSYV5CVKSJKkwA5gkSVJhBjBJkqTCDGCSJEmFGcAkSZIKM4BJkiQVZgCTRqmI2CkiLhrp\nOkZSPR9XyfcbkVnxI2JaRJxT4H3W6PNFxNyI+MdVrN8nIj5Rv749IjYasO4TEfHy4ahZ6lU+ikga\n3cb7RH07F36/kfq+Z1A9GLltw/L5MvNc4NzuYw5YtxNQNDxLY40BTBrdnhQRPwaeDSTwa6A/Mz8G\nEBGnAj+hegTJSmAzqud2HpOZZ0TEFOArwAuBicDnMvO7EfEW4C3AhlQ/NJ8+yP5PA75B9fD1pwLf\nycyPrmL/7wAnUc26/STguMz8ckTMppple3NgJvBxYFdga+C6zHxT/Tk+AryRqlf+p5l5ZER8qW67\nPDO3jYhXAp+k+n/rduBtmbkoIm4Hrqjf4xXAvwJPrr+/T2bmeYN9uRGxMXBGXfcVXetnA9sAzwS+\nDPyc6lEuM4C/AO/NzGsiYu4g39u6wNfrmlbU38e36u9t58w8qH6fi6ieMPFB4OkRcXZm7jdEvXcB\n51HNcL4YOCAz7xjwHewA7AMcUdd2DfDuzFwK9EXE14CXAXcDB2fmHyNiJ+AYYF1gOvBPmXl2/bb7\nRMR7gcfVn+979efYKTMPpn5weeezUQWvWcCciHgd8OPM3LjeZkfgyMx89WCfURovvAQpjW7PBA7L\nzOcDTwH+G+iElilUYeYH9bZPpwoNuwFfjIgnAUcDV2fmVlS9EkdHxLO6tn9JZh49xP77A/+WmdtR\n/XA/PCJmrGL/Q4BPZ+bWdU2f7foMLwK2Ag4ETgWOrddtERGbRcSeVIFiFrAF8IyI+IfMfB9AHb6e\nWO/3iszcEvgZ1YOFO36cmS8AdgFurz/vgVRhZChfBk7NzC2onqXXbXJmvqh+7NYZwAmZuTlVsDk7\nIh43xPf2CeCezNysXv+JiHhRvf2qeqHeC/xpqPBVeyJwYV3Hd4ETu9o638FTgKOAHertllKFvI6L\nMvOlwDld+x8OHJKZs4BDgX/u2n5dqn+/VwJfqj/fYPoz81vA1fXxbgRui4id6/a3AHNX8xmlccEA\nJo1u12XmHfXrm4AlwO8jYgfgtVQ/dB+u2+dm5srM/BNwGVX42B14Z0RcC1xK9cP0hfX2v8zM7jAw\ncP/tM/M44L8j4oNUz457HFVv0cD9PwSsGxFHAp/p2gbg/Hq7PwD/k5UVwJ+oelt2p+qRuQb4JVUY\n+7t6387xt6bqSbuo/iyHU/UKdlxZ//2fwL71eKrtgU8P/tUCVY/NmfXrbwMPd7VdAX8Nus/OzB8C\nZOYVwAIgBvnedqAKod+ot19AFZJ3Xk0tTTyQmWfUr0+v36ej8x3sBJybmffWy6dQhcDO/v9evz6j\nq6YDgc0i4miq3rgndB339Mzsz8w/U32/Wzesta/+ey5wYN0ruBuP/MIgjWsGMGl0W971uhNGTgUO\nAP4BOG2QbSdShYkJwJsz86V1r8d2wE/rbR4Y4r0mAssj4ovAe6gu+R0D3MMjP1i79/8esC/VJdKP\nDjjuQ4O8R/d7nZCZW9Q1bsOje9A62/yia5utgDd0tT8AkJm3As+nChc7UD2AeCgrqf8frENi9yD1\nzuebwCOfma51nSEcq/reB9u+f0Db41gz3fVNHPDe3fV26+uqdcWA9Z1/m8uovtOrqQJ0d43d7zGB\nR4fUJr5HdWn49Tz6FwZpXDOASWPP2VQ9CU/OzO6A8Ub467imlwG/AC4C3lWvfypwPdVlzVVZ1f57\nAF/IzO9T9UA9neoH/0C7Af9cD8TeuT7OwBACfxtMoBozdGBETImISVQ9JK+v21ZExASq3qhtI+K5\n9frZwBcGHigiDgc+VY9fOhyYGRHTBvm8ABdQ9f4QEfsBkwdukJn3A7+LiH3r7bahGmN2Y73JYN/7\nIfX6JwJ/D1xMFWBfUK/fBHhxfYzlNBuTOyUi9qpfHwT8xyq2uRh4TURsUC+/jUcGxD8hIvauXx8C\nXBAR04HnUP37zQP25NH/xvt3fb5ZPNLTNpTl1OEyMx+gGqf4GR79C4M0rhnApLGjc7fZMuC/qAa+\nd1svIq6mGhT/tsxcRDVofd2IuIEqbHwoM28f5Pir2v9Y4IyIuIrq0tTVwCar2PcTwPx6/z2oesxW\ntV3/wNf1IPmzqULW9VSXNr9Zb/Mj4DpgEXAwcGZEXAe8hGos1sBjfhOIiLieKojMzszFg3xeqHr3\n9ouIX1GNcRps2zcD76uPeyLw2szs9Ayt6nv7FLBhVx3HZOavqP4N/hgRvwX+P1VYA7iT6lLvz4eo\nteMN9XewB/CBgd9BZt5A9e92aUT8huoGio/XzYuoLtH+iio0f6Cudw7wm4i4hmqc2br1JUOAv9Tr\nfwS8PTMXDqhnVWPa5gH/WodVqMarLR7wC4M0rvX194/3u9ylsaXu0ZkP7JaZd9Xr5lINrv7mkDsP\nfsy12n+8Kv29RcTKzBxTvzhHxESq3q//zcwTRroeabRwGgppDImIrah6F2Z3wldtbX+T6tnfxCLi\n81S9RQM/49WZ+fa1PPywfm8R8Xjg8gHH7auXZw/3+xVyFdWUF68Z6UKk0cQeMEmSpMLGVFe2JElS\nLzCASZIkFWYAkyRJKswAJkmSVJgBTJIkqTADmCRJUmH/B6hj9ZB95DaWAAAAAElFTkSuQmCC\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x117545898>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "scores = all_models_df.groupby(\"hyperparameters_dropout_probability\").scores_auc.mean().to_frame().reset_index().sort_values(\"scores_auc\", ascending=False)\n",
-    "\n",
-    "pyplot.figure(figsize=(10, 5))\n",
-    "pyplot.title(\"Dropout\")\n",
-    "ax = seaborn.barplot(x=\"hyperparameters_dropout_probability\", y=\"scores_auc\", data=all_models_df)\n",
-    "pyplot.ylim(ymin=0.5, ymax=1)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.text.Text at 0x120f4c0b8>"
-      ]
-     },
-     "execution_count": 12,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAElCAYAAAD3KtVsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYJFWV9/FvZi29VBfQQAENzSbqwRkB2WVRFEFe0FFx\nnVEWF9RRcBmVGXEZ0BFlZhzHbVwGFBEdNxR3RAREdhGQReAgOw0NXfRCd1d1d1VWxvvHjciMzMol\nqiqzKqvr93mefjojMuLGzVuZceLGjTiRi6IIERGRZvIzXQEREZkdFDBERCQTBQwREclEAUNERDJR\nwBARkUwUMEREJJNZHzDMbFczK5rZW6vmf9DMzm/hdh40s/1aVV6TbfWb2bVmdoeZHd/mbe1vZg9m\nWO5KM3v1BMve0cx+NoW6bWFml09ivZPN7GEzu6TBMueb2Qeq5r3bzG42s7+Y2YVm1lNjvQPM7KsZ\n6pB1uXH1iOd/wsxOaLZ+u9Sr1wTLKJrZ1vHf4xdZl2+yzINmdtJU6jWT6v2O4v3Yugzrv9fMTmxP\n7Zqb9QEjVgQ+a2bPrJo/W28y2RcYcPe93P3iadheu9rpXOCsKay/NXDgJNY7CTjD3Y+tfsPM9oyD\n0Ouq5r8aOBU40t3/FpgP/FONsp8L7JShDlmXq8ndz3T370x2/Q4R1XmdZfl6hoGhyVWn42X5/F8G\n3m9m27W7MrV0z8RG22AD8F/A983s+e5eSL8Z9zTucPfPVU/HR9f/B7yMsIM6CzgM2B8YAV7h7k/E\nRZ1mZvsAvcDn3P38uLyXAx8Deghf6A+5+41mdiZwCLAEuM3dK46MzOxVwL8SAvda4IPA08A3gB3N\n7BbgEHfflFrnSuBm4EhgAPgisD1wBLAQeL27/8XMdgK+CuwWr/ptd/9sXMa7gPcDa4A7q+r0EeDV\ncZ0eAt6d+vyYWRfhS3to3D4PAG9x9+Gqcg4mBL1b4+ma9TGzXYE73b0/Xi49/U1gYdwO+7t7lCp/\nC+B/gOcRDhguAT4K/CdwELCbmQ24+xeodGpc7sNV808E/svdn46n30X4e6Y/01LgE8AWZvYNd3+b\nmb0DeA9QAJ6MX29ILwecAnw+rlc/kANOcffrqaPqO7oBOAc4mvBd+mKNz4WZ7Ql8gfA97gK+5O7n\nm1kO+G/g4Ortm1kf8CXCd34U+Km7fywu8jAzew3h+3UH8EZ331C1zWcR/g59wI7An4E3uPtInc+1\nRVzH58btezlwursX43oly70VeHc8byVwmrvfC/weuDWu9/nAMwl//5vd/Z01trcj4fu6c7y977v7\nOfH37HLg13G7LAY+6u4/MjMj/Abnxdv/hrt/NS6v5u8j6+8yrtarzewMYAHwf+7+6Rr1rt7Oqe6+\n3N2LZvZD4MPAlHqAk7G59DAidz+bcOTxmUmsP8/dnwd8CPhf4L/j6WXAm1PLDbv7/sBLgXPM7Dlx\nr+bTwLHxe+8ELjazBfE6uwDPqxEsjLADPT7e1pnAz4DHCTuY+919v3SwSNnV3fcDXgP8O3CFux8I\nXErYYQF8F7jc3fcGDgdOMLPXxwHvTOBwdz+YsNNP6nQSsBdwUFz+JYQfTtohwBHuvk+8zQeAvWvU\n8bXAL1PTNesTv1d9ZJVMv4XQ5vulg0Xsi8BT7r4XcAAhcHzQ3T8A/ImwExq3U3X397j7d0ntnGLP\nBrY3s0vM7M+ENlpTte4yQoC/Og4WRxK+M0e4+77A9wg73IrlCDukHdz9EHd/LvBtwg8+q3nACnc/\nnNAzOsfMetMLxIH8IuBf4r/Li4APmdlB8faX1Nn+vxG+/0bo2R5mZi+M39uRsAN8NmGHW+uU5NuB\nb7n7YcCzgGcQDr5gfBtDCFx/iuu4H2HnWn1q8IXAyYTv6P6Eg4CLAdz9VHd/ADgeWBR/Tw+K13tG\nje1dSNjhHxi3w9Fm9tr4vWcAl8S/gw8D/xHPPx34ebzOy4AXxOWfSOPfR5bfJYSgfRDht3SCmR1T\n9flr/Q7PSy3yC2r/Ldpuc+lhJE4AbjGzSye43o/j/+8Hlrv7nanp9DnVrwO4+3Iz+w3wEmCMcNR3\neXwkB+FoMzk9dkONnR2EH+Lv3P3huMwrzexJQs+mmZ+k6hcRvpDJ9BFmtpBwxHh0XPZaM/sWcByw\nFLjU3Qfjdf4XSL6wLyOcAro5xDPyhKOgtDuAgpndGG/3J+5+U4067knYgdKgPscCN2b4vLUcS+jl\n4O6jZvY14H2Uf/QT1QMcBbwC2ETYqZ5N46O4Y4AfuPuquB4XmNnn46PXEne/wcw+bmb/COxB2Jmv\nnWD9fh6XdUscLPpIBXvCTn0P4Jup7+F8YF93/3qD7b+E+NSbu48CLwYws7cQgt+mePpOoNZpkH8h\n7IRPj+uwBFjU4HO8HDjQzE5J1bFYtczL4npel/osW5nZVu6eBPFrgLPjI/vLgM/HgaQk/t4dASw2\ns0/Fs/sIBxc3ASPunoxz3UL5t34xcEHcS/4d8N503an/+2j4u0wtd168T1hnZhcRfhf3VH3+Rtu5\nH9jFzHrr9eTaZbMKGO7+aHy65QLCDz4RUXm0U3F0RthBJEYbbGIs9TofL9tD2PH/Q/JGfOriccJR\nwPo6ZdXq3XXF5TWqQ3V9cfexqvdrlZ0n/L2LVe+nT991Af/u7l8HsDDou7hqW0+b2fMIO+sjgR+Y\n2RdqHM0X4/Ia1aeH8LdJv1/9t6mn+ug1KW+yHgcudvchADP7DvDxJus0+lwlZvYywimpzwI/Jewc\n3jTB+m2omq7+/F3A6viINNnudsCaJtsvkOrhxd/d5PRi+ntY/RtKfJ/wmX9I6FHuklqu1oFSF/A6\nd/d4e1tSDhhRapkL3f2MVL12SgUL3P2huHf/IsL38HIzO83dk512Ug6kTuua2TaEthygMuCWPp+7\n/yo+1XY04SDiTDM7lOa/j2a/y0R6fo7xv/da29m66v0i4wNt220up6RKX2R3v4jQhXt/6v1BwmkL\nzGxb4i7mJLw5LmMXwhfpcuAK4KXxKSbM7DjgNsJphEaS9XaL1zuScPQ/0SPucT9id18P3EA4X5/8\nKE8Cfks4Yjo6PrcL4bRP4lLgFDPrj6c/RejSl8Q7n8uB6939k4TAvE+Net1L6PI3q88aoCc+/w6V\nXe0C5R99tUtT5c0D3hGXN1kXAa8zs/nxUe2rCEeh1QqUA8KlwBvi71RyVP6Uu99XtdxRhFMcXyec\n535Vg8+VRa0dtwMbzexNcV12JoxP7d9k+78DTjazXNyOFwEvrC68gaOBT7r7j+J6HZwqu1Y9LyXu\ntcXb+zlwWtXyvwX+wcx2iJd7d1zPkri39C13vywOLJcSxkXKDeK+jvC9+1C8zlbAtcArG9QPM/su\n8Pfu/kPCOMrTxD1zmvw+UmqWHTsp3s5i4A2EcZT0OrW2kz4AfgbwoFeN1U6HzSVgVB/JvJcwUJTM\n/xJhEPluwh/4ygbrNtrGfDO7mXAkdZq73+fudxF2Vt83s1sJg51/Vz04WM3d7yZ8GS82s9sJ4yAv\nj7/kzerRaDpxAnBUXPYNwI/c/dvx6bZ/Bq4wsz9SeUR/XvzZbjCzOwg/wJOrtvNrwo7oTjO7iXAe\n9qwa27+IcNoo8aY69Vkb1+c38Wmu9NHXcsIA513xjyvtfYQxhzsIAfpuQhs2apO06mW+Qtgp3Qzc\nRTh18ZEa610P7GlmP3b33xGO3K+I63Ei4bRFxXKEsaoXxWMj1wL3AbtPoH5N/+bx6aRXEnY0twG/\nIQziXg98rcH2P0E4wr0t/uy/dPefNqlP2keAn8bfpa8QBqWf2WCd9xIuZLiDMEB+G+XTiFH8WX5L\nGAO4LK7z3xPGLNK+DeTj78ZNhHGBcWNWwBuB58ffu+uB77r795p8pn8D3hT/nm8gnHb9A9l+H9SZ\nTs9/Ot6PXAN8wd2vrlqn1nbenCrj/wE/qlN+W+WU3lzaJR7n+Zi7/2mm6yKyOYgvbrgZODo1Djlt\nNpcehnSmdxKuFhKR1ngP4SrOaQ8WoB6GiIhkpB6GiIhkooAhM8LMLrU4b5BNIk+XZczV1GpmdouF\nu5XbvZ2Pm9nfTWQ5m+H8U7L526zuw5BZ5egprj+lXE2Tlb7Poc2OBP7SdKnUcu5+ZltrJHOexjBk\n2pnZNwmXCd5BuKv1asLduvsSbqj6jrt/zOrkQAIeJVweugXhkse3VZX/IPAad78lPU24hLNmHiwz\nO4RwKedCwg1Rn3D3X9WoexHYFvi7uMwFhPxYjxByKp1GSJHxOXf/bzM7GfgHQm9+J0K6mZO9nH/o\nS8nNZsk0sENclxWEexbuoka+prgt0su9inL+qRcQLlddEH/Wj7v7pXF9jo8/47MIN5udFF8eLtKQ\nTknJtHP3JBX9i+K8SwAbUvl+PmghWWHNHEg1cjVlVTMPVnxD1/nACe5+AOF+hq/Gdz1XSx9hHU7Y\n+T+LkGjuDe5+JCEInp1a7lDgXR6y4N5CyINVl7t/hZAP60Pu/jPq5GuqsRwA8am+HwHv8ZCn7M3A\nd6ycsuSFhGR2ewHXEXIniTSlgCEzKX037P8BuPuThKyv27n7DcDHzewfzew/CQkNG+UpaqaUB8vM\nPgn8ON5GklH4p/HNWr8m3EBYK6li2k3u/nj8+kHKd5rfD8yLcxkB/Nbd749fn0s5d1czSfv8C/CU\nhXxNX2V8vqbqu4oPBv6a3P8S9x6uIaTRgJDZdXn8Op1DSaQhjWHITEofrY/LWzSFHEw1c4fVyIP1\nQzP7AmEHf5e7H5KsYGZLCKd6GqnOJFwvB1h1vq7kbvZmOc4SjfI11ZKv8X46T1k6C0G9HFEi46iH\nITOlQPNEg41yIKVzNVVbQTl32PMJR+SN8mDdADwrPu9PHFT+ShgvqJZ155pe7iVxAIJwM+PP49fp\nHGd7UNmjSX++RvmaarXDDcCzzSwp+28J+dN+n7HuIjUpYMhMuRi4Jt6Z1cvD0ygHUjpXU7UPE55K\ndgvwNsJ5fghJKcflwXL3pwgD2P8Zb+sC4E3u/miNshvlCKo3vQy40MzuAnal/CS/TwHHxHmOPgNc\nlVrnF4SnSJ5I43xN6eWSXEwrCc/N+HJc9neAN8dJEUUmre1XSVnIKX+Ou7/YzAYI53C3IhwhneTu\nTZ8nLTJbxVclvcbdXzHTdRGZqrb2MOJBunMpp/r+D8Ilky8iPGtgzzqriohIh2n3Kan7qExLfBiw\n1MwuI6Qd/n2bty8yo9z9AvUuZHPR1oDh7hdTeYXIbsAqdz+acPPVRJ5rLCIiM2i6B71XEgbpiP/P\n8vxqERHpANN9H8bVwHHAdwl3mzbNlRNFUZTL6TJxEZEJavmOc7oDxoeA88zsXYTn5L6x2Qq5XI7B\nwWZPLZ0bBgb61RYxtUWZ2qJMbVE2MNDffKEJanvAcPeHCXfW4u6PAC9t9zZFRKT1dOOeiIhkooAh\nIiKZKGCIiEgmChgiIpKJAoaIiGSigCEiIpkoYIiISCYKGCIikokChoiIZDKrnuldjCKuvX05ywaH\nWDrQx2F7LyGvPFMiItNiVgWMa29fzhW3PgbAvcvWAPCCfWo9dllERFptVp2SWjY41HBaRETaZ1YF\njKUDfQ2nRUSkfWbVKanD9l4CUDGGISIi02NWBYx8LqcxCxGRGTKrTkmJiMjMUcAQEZFMFDBERCQT\nBQwREclEAUNERDJpe8Aws4PN7MqqeW80s+vavW0REWmdtl5Wa2anAycC61Pz9gXe2s7tiohI67W7\nh3EfcHwyYWbbAJ8C3tfm7YqISIu1NWC4+8VAAcDM8sB5wAeAIUBpZkVEZpFcFEVt3YCZ7Qp8D3gv\ncD4wCCwAngN8090/0KSI9lZQRGTz1PKD8ulKDZJz9z8Be0E5iGQIFgAMDq5rZ91mjYGBfrVFTG1R\nprYoU1uUDQz0t7zM6bqsVr0EEZFZru09DHd/GDi02TwREelsunFPREQyUcAQEZFMFDBERCQTBQwR\nEclEAUNERDJRwBARkUwUMEREJBMFDBERyWS6UoNMWrEY8Yc/P8Yf71kBwEHP2Z7D915CPpctTUox\nirj29uUsGxxi6UAfh2VYdzLryMSpnUVml44PGJff9Ai/uO5h1g2PAPDkqg3kgBfss2Om9a+9fTlX\n3PoYAPcuWwMZ1p3MOjJxameR2aXjT0k99MRaRgpjpemRwhjLBocyr1+9bJZ1J7OOTJzaWWR26fiA\nsdsOW9Db3VWa7u3uYulAX+b1q5fNsu5k1pGJUzuLzC4df0rqJQfuwtq1GyrGMA7be0nm9ZNl0+fJ\n27GOTJzaWWR2afsDlFogUn77QLn+y9QWZWqLMrVF2cBAf8uvIOn4U1IiItIZFDBERCQTBQwREclE\nAUNERDJRwBARkUwUMEREJJO234dhZgcD57j7i83secAXgQKwCTjJ3QfbXQcREZm6tvYwzOx04Fxg\nXjzr88Cp7n4kcDHw4XZuX0REWqfdPYz7gOOBC+PpN7j7k6ltb5hogYVikQt+fQ+PrljPztst4uTj\n9qQ7P/G416pMqcUo4prbHp90Nl0RkdmirQHD3S82s11T008CmNmhwKnACyda5gW/voeb4p3zE6uG\nAXjby/9mwnVrVabUa29fPqVsuiIis8W055IyszcAZwDHufvKLOsMDPSXXi9fPUwudfS+fPVwxftZ\nrRwaoac7XzE92XIKxWKpToVicdJlZdGucmcjtUWZ2qJMbdE+0xowzOwE4B3Ai9x9Tdb10rlhlixe\nyLIn11dMTyZ3zDZ9vYwWihXTky2nO58nigoAdOfzky6rGeXJKVNblKktytQWZe0InNMWMMwsD3wB\neBi42Mwi4Cp3/8REyjn5uD0BKsYwJqNVmVIP23sJURRNOpuuiMhsoWy1s4iOnsrUFmVqizK1RZmy\n1YqIyIxRwBARkUwUMEREJBMFDBERyUQBQ0REMlHAEBGRTBQwREQkEwUMERHJZNpzSU3Updc/yEVX\n/JV1w6P0L+xh9x23pG9+NzsPLBqXYbZVGWinqlPqISLSSh0fMC749d2sGx4FYGhjgRWrN7C4fz5/\nXfY0UJkVtlUZaKeqU+ohItJKHX9KatPoWMV0FMFIIcxbNjhU8V6z6enSKfUQEWmljg8Y83q6KqZz\nOejtDvOWDvRVvNdserp0Sj1ERFqp409JnXzccxqOYaS1KgPtVHVKPUREWqnjA8Yxh+zOfs/cNtOy\n+VyuI8YKOqUeIiKt1PGnpEREpDMoYIiISCYKGCIikokChoiIZKKAISIimShgiIhIJm2/rNbMDgbO\ncfcXm9kewLeAInCnu5/a7u2LiEhrtLWHYWanA+cC8+JZnwM+4u5HAHkze2U7ty8iIq2TqYdhZkvc\nfbmZvQDYG/iWu2dJkHQfcDxwYTy9v7tfHb++BDga+FmjAorFiKtuXcalNz3KuuFRtujr5agDltKV\nz/NYVTbYWlligZZmjk228eiK9WzYVGBBVeZcZaoVGU+/i81D04BhZl8Fimb2P8D/Ab8FjgRe02xd\nd7/YzHZNzUp/Q9YBWzYr4/KbHuGiqx5gaGMBCBlrf3D5ffQv7GXRwp6KbLC1ssQCLc0cm2xj/fAo\n64ZH6F/YW5E5V5lqRcbT72LzkKWHcRBwAHAm8A13P8vMbprk9oqp1/3AmnoLJh56Yi2jY8WKeYVi\nkUKxSE93OKO2cmiEgYF+Vg6NlOYl84Fx8wYG+idZfUrbKBSL5HK5Uj0a1WEq26vWyrJmO7VFWae3\nRbt/F2md3hazWZaA0UUY63gl8I9mthCYbPrVW8zshe7+B+BY4IpmK+y2wxb0dOUZGS0Hje58nu58\nntFCmLdNXy+Dg+vYpq+3NC+ZD4ybNzi4bpLVp7SN7nyeKCqU6tGoDlPZXtrAQH/Lyprt1BZls6Et\n2vm7SJsNbTFd2hE4swSMbwPLgWvd/UYzuxv42iS39yHgXDPrAe4GLmq2wksO3IWnnx5uOoYBjbPE\ntipzbLJ+rTGMZnUQmav0u9g85KIoarqQmXW5+1j8elt3f6rtNSuLdMQQ6OipTG1RprYoU1uUDQz0\nt/yqgro9DDO7EohS0+n3cPcjW10ZERHpXI1OSZ01XZUQEZHOVzdguPtVyWszOwzYCzgfODgetBYR\nkTmk6Z3eZvY+4FPAB4BFwNfN7EPtrpiIiHSWLKlB3gwcAwy5+0rgQOCt7ayUiIh0niwBY8zdR1LT\nG4GxNtVHREQ6VJaAcZWZfRboM7NXAT8HLm9vtUREpNNkCRinA38FbgNOAn5NuAFPRETmkEb3YeyS\nmrwk/pfYEXikXZVKu+zGh7nr/qfYsKnA/HldbNw0xoL53Szdtg9yOR4bHGKnbReWXi8d6OOQvXbg\n+jueYFmT95pltK3OsHnwc7fnwkucR1esZ+lAH8/ceSseHxyquOO70bbTGTpblb2z1VlAW1GeMpNO\nntpOOlmj+zCuIty4Nx/YHniAMHbxTOB+wOqv2jq/vu5BVq/dxLrhkLxstFCkf2Evt94bbjZftLCH\nW+4dLL2+d9ka7n10DcueCtnXG73XLKNtdYbNq29/nEeeXA/AY08Ncdv9K5nf212RtbbRtpNyoXXZ\nO1udBbQV5Skz6eSp7aSTNboPY3cAM/s+8D/JcyzM7EDgn6enesFIYSz+v0guNR30pKZ7gJDnKZfP\nVaxb6z0IuW2qJfOq33ty1YbS6yiKGC0UyeeTuo0BPQ23nS6vuuxa9ciiVeW0srxW12kuUdtJJ8sy\nhvGc1EOPcPebgD3bV6Xxeru74v/zpenkX3o6sfN2iyrWrfcewNKBPpYO9I2bl/4/sf3WC0qvc7kc\nPd35ijo023a6vHrbnKhWldPK8lpdp7lEbSedLEu22mVm9kngB4QAcwJwb1trlXLcobtPyxgGjM+k\nWZ1hsxVjGIlWZe9sdRbQVpSnzKSTp7aTTtY0W62ZLQY+CbyI8ACk3wFnuft0pYRUttqYMnGWqS3K\n1BZlaouyac1Wm3D31XEP47eEhyldP43BQkREOkSWXFLHAH8mpAg5GbjdzF7e5nqJiEiHyTKGcTZw\nuLs/CGBmzwB+AvyynRVLjIwWKIyNkc/nqq5H17XpIiLTKUvA6EmCBYC7P2BmWa6uaonBNRtZ9fSm\n0nQuB/lcLnSN4tfkcuTzObryOfI54uBCKciERZIAo0AjIjIZWQLGI2b2fuAb8fQpwMPtq1JjUQRj\nUZTKftj8EbMQwkQSSHK5HLlc+nVlcEnm5/Px/+rZiMi0G79vi6IozI0gIiKKwj6R5HXpvfbIEjDe\nBnwJ+ChhzONy4B1tqk/bRMBYMQk0E2/Oyp5NOcgkAScHqddJr4bx7+VqBSFQIBLpJFPbWVe8R/I6\npH4p7dCjKLVsFG+jXEgU16JinQnYeYLLZ5HlKqkVwBtatUEz6wYuAHYDCsDb3X3a7uuYrMqeTWvi\ndwgkIRDlkhlx4EgCDXFPiFyOnvkbWb9htLxOjorX5fXCykmgGr9Vkcmq/d2vtTMtvxfeqLVTHV9O\neRvVy9S7BSBKveiet5Gnh0bShZXeH7d6Uueq7bZiZ725ahowzOy1wBnA4vR8d3/GJLd5HNDl7oeZ\n2VHAp4HXTrKsWS35QRQrvsn1v5pDGwus3zA64e1U9HKoChm59HK50v9JkErFsNKiyXL5+M10sKpR\nbCl4lZepF7TSR1nllkgCK6meW6EwxlhxLH6/csO1A2XVltI7kyg5DqxeJlVsneKa3MZELpf6PKk9\nWxRV7uhS/5XXrVto5eSGTaOMjBbKZVTtkCu2W1XvKErvyKOq9dI70PKOs5i814E70vmbCmzYVJjp\namy2spyS+i/gRFo3bnEv0G1mOWBLYKTRwj/9/X0sH1zPdosXsPce23D3Q6u5+5HV5HKw9x7bcsCe\n25Uyy958zwpuf2AlEN7b3wbGnfopRhG3+CDLVw6xcVOBpzeMkmuwfK11n1g1zA5bL2S/JstPVHX5\n+z57W26996nS9FHP321S5Sa9o1t8RZO6Ry35jNNRxli+i1VrNo1b51Yf5MnVw2y/9UL2ffYAXal1\nohrLPrF6mO0Xh/KBtv59s3yuyayf6+lh1br6P6N2f29l7sgSMO4DrnH3You2uR7YHbgH2AZoeE/H\nb24ox6nL/rSs4r0HHl/HL659iHm9XUTFiE2jYxSjcAD20PJ1XHfHcrbZcj7dXXl6uvP0dOVZuXYj\ny1cOUygU2TQajlDzOVj+1BDLnxpiz10Xl5btrvg/x+33r+Sme1aQy+V46Ilw7+IBe27XomYJO6sb\n7noSgIeeWMdDy9fyxOoNpem+vl6es/NWLSkbatc963Kt2NbUyhi/w0uv88DydURR/e2ml31wefk+\n1KnWu5mptk2t9V966KJGq7Tk7yEC2XsYV5rZVYQxBwDc/ZOT3OY/Ab9x94+a2U5x2c+tegxsZmPF\niOGNlV3QZID7ydUbeHL1htorpsuIYHjTGDfc9WTph9VMLge/vP4hrrrt8VISwu7uPL3dcXDq7or/\nr5zu7cnT3ZWnt6er4r3e7jwPPbmOYrFYGiBfvmqIrny+dDrkscH1HLbPThNsoWDN8AjdXbmK6a23\nHp/YLutyrdjWVMuonp7IdmstC0y53s1MtW3q1btRGa34e8wmm/Nnm2lZb9y7lfAsjFb0Y1cByYn4\nNXEduuotvLh/HmPFiCiK6Jvfzep1mxgtFImA7nyegcXzWbSgl9VrN7Jq3SbGiuHEQy6XZLfNMVoo\nVo0TTF0UwchokZVPb2xpuY08/tQw19/xBD1duareTwg83V35Um+quytX0VNasXKYp9ePxOf4cwwN\nj3L9n5eNW783n2fTaLE0brDVwl5WrZpYiu2tFvZSGIsqpltdxtZb940rcyLbrbUsMOV6NzPVtqlX\n70ZltOLvMVvU+l7MVTsNNO55TkaW5IN3uvtzW7VBM+sDvgksITwo4vPu/oN6y//wdx7d/+ia0jn9\nW3yw5jhFszGMsWJEoVBkpDAWjwuELLPrNo5CBLvusAW77dBfWm60UKQwVmR0LPW6UOSJVcMMbSzQ\n252nb35PaZlCIf5/LDwnoxCv02mDghOVz+Xo7s5VBJXq4NSTClLd8XtPrdnA8MYCWy7qZfclW5R7\nU3EA6676NcjoAAAYyklEQVQqr6cq2EU0Hk+otWOYyLn6WsvSZJut0I4xjG23WdRwJzmXxjAUMMr2\nsu1b/kfOEjDOAZYBvyE1QO3u0/KI1scG10ez9QsQRRFjxagi4CRBpRRgqv9PlisFrHIAy3flGdow\nUnqvOkgl85Ne1mzW3ZVrGFQWLuihWCxWBZp0UMqNC04Vy8bjUqX3uvPx5cmzb0eqnWSZ2qKsHQEj\nyymp5B6MD6bmRcBkL6udM3K5XGnH1wpZfwzFYlS351MKNmOVvahCIRrfq6oKYuX/o3FBrlAo0so4\nVRiLKIyNsXFkrPnCLZLLUTMAdadPAXZV9pTKQSlX1duq0RNLlqt6L5+ffUFK5qYsN+7tPh0VkdbJ\n53P05rvo7ak7NNQWY8U48KR7UxVBqbKXVR2UxgeoKLV8ZRAbK0aMjI5VnJufqigKjwEeKRRhU/Pl\nW6UrHw4qkl5PdcAZf8Venp7ucu9oi/75jGwqjAtytXtVSaCanb0pmVlZehgzqic+tZDcfFa6masF\nX/bqIqrPzjU6XZesGsWvi/EdT8ndoekbqOaKrnyerl6YV/8ahpZJeltRFMW9kWKNU3/pIBPVON1X\n2QObyOnBVl5EMVaMGCuOlS7zni7VQaW7uzJIlQNQ49OD6WBX3ROr7pF1qTc1q3V8wNhucR+5Qqtu\nAZkOte4YbpY2IbxZjCgFmfRdusk6ixb0sGl+dyn3TDEq36lbuksXKu/e3cyFZ6uHHd+CedO33bFi\nZZBq2DsadwFFOThVnuqr7Iklp/7S22jl3zQ57beB6QtU+RzjT+/VucKvundVDk65muv3dOXZMBYx\nvH5TqkcWgt3mOsg/3To+YMw+47+YSUqOqV6UvOWieYxsaHS7yvjdSbEY7t4uFiPGiuWB+GLyL5me\nC9GlhbryObryXcybxtN+yd+usucTsbBvHitXDY0bb6oMSjUCWJ3TfRW9rXi6VYrx5egjo9N7EFi6\niCJ9IUTSI6rRqyoHtVzlFX4T6Il15Te/035ZckkZITttdS6pt7arUjJZ47+c+XycYbfhfi2KeywR\nxWK69xKfXkv9n/ReisWiAs00S19EMb+3PH/rrftY1Nu+R9QUo4ixBuNJtU/1RZVBqU4PrFC1ftsv\nopjG3lQux/ieU43xpPGn+uoHsno9sPT67byIIksP42Lg+8DtbauFzLBwJNSVg4ld0JUONKEHE/6P\nSv9HxYhCsVZqP5kt8rkc+fi033Qq3RPV6NRd1dhTz7xunl67seFpwur7q8rrh1OArRJFlALhhmm8\niCKfC3+ri85p/ZO0swSMNVNIAyKbtcpA01NzmRAqKgNJuKIqOS1WiN8TSevK5+jq7ZrQRRRTvQ+j\n4iKKcVf2lYPK+EvN0/9XXXZe5/L0JNi1+t6pYhS17QKKLAHjW2Z2NuHBSelcUn9oS41q2FgocOa5\nN7Jq7Qi9vXlefcQz6Onq4rHBIZYO9HHY3ksAuPb25Ty6Yj0bNhVYML+bnQcWcdjeS0oDXsUo4trb\nl7MstV71e4+uWM/wxlFWD42QAw56zvYcnlquWTnNTGXdVpXTqjpkKzNOhZ4PTzCsLfxYQhBh3Kmx\nZKwlSgJOFNFsSH823d08U3edy3gVF1FM43aTe6eq73Wqe+9U1fhUdXAabdOFQlkCxouAA4FDU/Mi\n4Mh2VKiWs877I4Pxc703bBrje5f9lcX981m0sId7l60pLXfFrY+xfniUdcMj9C/s5a/LngbgBfvs\nCISAcsWtjwGU1qt+b/3wKGvWh2115XM8uWoDudRyzcppZirrtqqcVtWhdWWGHWFXvivjKbGIbbbp\no6s4FvdSCKfDooixsdBz+ePdT/LHe56kWOz8DK21sslC+zPnSueYqXunJipLwDjA3Z/V9po0sLoq\n138xgpHCGMlJkGWD5S5omF9+P/1e+nX1dPJ6pDAW7r+Ij+ZGCmMN16s13chU1u20OrS7zPpy5PP5\nhgFm1bqRMADYE/6Oa4dGWLSgpxRQxpIxljbWMqsnVg03nK43T2S6ZTmeu8PM9m57TRpY3N9bMZ3P\nQW93ORIvHehj6UBIaZzMT/5P5le/rvdeb3dX+TLYeLrRerWmG5nKup1Wh3aXORVLB/ooRsnVMRE7\nb7eIRQt62HLRPBZvMZ9tt5rP9lsvYGCreWyzRS9b9vWyaEEPC+d1M6+ni56uXN2n7LXaDlsvHDdd\na57ITMvSw3gGcKuZLSckH8wB0RQe0TphZ51yUKYxDKDmGEYieb2sxnrJ61pjGOnlmpXTzFTW7bQ6\ntLvM9tan8jRYT81fQlS6pLR6sD65AmwsmvqlxcmYRfUYRr15IjMlS7baXWvNd/dWPbK1mWhwcF3z\npeaAgYF+1BZB57RFVHEz5Fhp0L7q0uIoGpd6plWUobVMbVE2U9lqj6gz/9utrIjI7JSLb6ij6c2R\npftVxsqBpXzXvW6ElM6XJWC8OPW6B3gB8AcUMEQmIBdugOuC7rqBpXwKLBmUL4xFFOPr9DtlkF7m\nrizpzd+SnjazrYG6T8gTkcmKg0p3rZsgQ6hIbvIaGytfRtwbZ4EtKqBIm00m+eB6YLcW10NEGgqn\no7u7ukIPJRVRBhYvhEK4p3asWCyd8kp6JcVi6KW0cxxF5oYsyQevJPUYCsJVU79qZ6VEZKKy3PzY\n/Kov5f2SRrL0MM5KvY6Ap9z9rvZUR0Tap3zKq7bmeb80ljK31f3qmNku8csHa73n7o9MdqNm9mHg\nFYSO9Vfc/fzJliUirZI971d1VuKKZ6yop7LZatTDuIryE0gTEbAjYUc/qaQnZnYEcIi7H2pmfcAH\nJ1OOiMyEiQeV6sASqacya9UNGO6+e3razBYB/wUcA7x9Cts8BrjTzH4K9AOnZ1kpyYb68BNrueOB\nlawdLjCvJ8/f7L6Yp4dGx2WWLUYR19z2ODfe/SRr1o+wuH8eB+65HblcruIO8YlmAG1HptfNQb12\nqZ5/yF47cP0dT0x7++nvNp0qg0qjtPflMRRKPZP06S9d+dVZMl0lZWYvAc4FLgP2cvep3GK7LbAL\n8HLCAPrPgT2brZRkQ13+1BAjcereTaNj3PCXFfHjMiszy157+3J+cd3DrFm/iWIxYsXqDTz8xDrm\n93ZXZLmdaJbWdmR63RzUa5fq+fc+uoZlTw2NW26m6iczpSo1S81lxgeVih7LWPkRwzI9GgaM+JTR\n54h7Fe5+WQu2uRK4290LwL1mttHMtnX3p+qtMDDQz8qhEXq68xSKtfO853I5CsUiK4dGSsuXlo0P\nJEfHinQXi6UnhyXLTqjycT3S0xMtYyqmc1sTUa9dqucvXz3csvabyHoz/Xdrt83ps0xEktpoLL4/\npTBWZIuFPaWgUkhdBRaoVzkVjQa9072K57r7+hZt8xrgvcB/m9mOwEJCEKlrcHAd2/T1Mloo0p3P\nM1IjaERRRHc+zzZ9vaXlu5OTrPFITE9Xnu58vvRwkWTZiUjqkZ6erpxGnZM/abx67VI9f+m2faUe\nRnq5iZpoW8zk363dOvl7Md2q2yIHdBGRj9J30ZfTsoRLjIthkH4z66jsNLCo5WU26mFcBowCLwVu\nN7Nk/pSy1br7r8zsBWb2x7isd7t70z9Vkm202RhGstxhey8hiqKmYxgT1WlZWTtFvXapnl9rDGMm\n6ydzQZZn1o9Py5K81k2PZXWz1dbLUptQttrppyPJMrVFmdqirH1tUXmlVzqoJGnuO20sZVqz1U5j\nQBAR6XC5pld9Vae5H6u42mvzyEY8mVxSIiJSIUua+3JQGSs9i74yxX2nj6UoYIiITItyUGmW4r7Y\nIKjMZE9FAUNEpGNke25K3Z7KWLF0A2Q7KGCIiMwqzXoq7et+KGCIiGxW2ndzYt2rkkVERNIUMERE\nJJOOPyVVKBQ59+d3cvsDq4iiiCXb9rHbDluwy3aLxmVEfXTFejZsKrBgfjdLt+2DOplpG2UurfUe\nwDW3Pc4f71kBlLPiApPKgNpJmVOTrL5/vGcFURSxdf98FszvZueBRcrouhnppO+czF4dHzC+/KM/\nc8PdK0rXJt//2FqeWDnMfY8tACozoq4fHmXd8Aj9C3u59d6Qy7BWZtpGmUtrvQfwi+seZt3wCEAp\nKy4wqQyonZQ5Ncnqu254JL5T9Wm2WjSPvy57ekbrJa3VSd85mb06PmA8uPzpcTeyJEnklg0OVfw/\nUhir+D/oqVim+nXW99JljhTGxi1Xa916Gm1/ui0bHCp9tiiKIJeLp3tmtF7SWp30nZPZq+PHMHZf\nsiXVPeckTfXSgb6K/3vja8x6u7tK/xLJMtWvs7y3dKCvoqze7q7S/HrlNDLZ9doh/dlyuRw5yu04\nk/WS1uqk75zMXh3fwzjtdc9jeHhT3TEMKGcibTaGkWiUubTee1EUVYxhpNeZaAbUTsqcmmT1rTeG\nIZuHTvrOyexVN1ttB1G22piykpapLcrUFmVqi7KBgf6WX9XQ8aekRESkMyhgiIhIJgoYIiKSiQKG\niIhkooAhIiKZKGCIiEgmM3YfhpltB/wJOMrd752peoiISDYz0sMws27ga8DwTGxfREQmbqZ6GJ8F\nvgqckWXhepk225GBM529FcqZaTeXzJ7KWioikzXtAcPM3gyscPfLzOwjWdapl2mzHRk409lboZyZ\ndnPJ7KmspSIyWTPRw3gLUDSzo4HnAd82s1e4+4p6K6wcGiklHEymBwb6686fipVDIxSKRXLxUXeh\nWGxJua3Sis/X6jabKbO13u2gtihTW7TPtAcMdz8ieW1mVwLvbBQsALbp6y2lNE+mBwfX1Z0/Fdv0\n9dKdzxNFBQC68/mWlNsKrciT0442mwnKGVSmtihTW5S1I3DOdLbaTJkP62XabEcGznT2VhifmXa2\nU9ZSEZksZaudRXT0VKa2KFNblKktypStVkREZowChoiIZKKAISIimShgiIhIJgoYIiKSiQKGiIhk\nooAhIiKZKGCIiEgmM32nd8dRNlcRkdoUMKoom6uISG06JVVl2eBQw2kRkblKAaPK0oG+htMiInOV\nTklVUTZXEZHaFDCq5HM5jVmIiNSgU1IiIpKJAoaIiGSigCEiIpkoYIiISCYKGCIikokChoiIZDLt\nl9WaWTfwTWA3oBc4291/Md31EBGRiZmJHsYJwFPu/kLgWODLM1AHERGZoJm4ce+HwI/i13lgdAbq\nICIiEzTtAcPdhwHMrJ8QOD463XUQEZGJy0VRNO0bNbOdgZ8AX3b3C5osPv0VFBGZ/Vr+IJ9pDxhm\ntj1wJXCqu1+ZYZVocHBdm2s1OwwM9KO2CNQWZWqLMrVF2cBAf8sDxkyMYZwBbAV83Mz+ldCDONbd\nN81AXUREJKOZGMN4P/D+6d6uiIhMjW7cExGRTBQwREQkEwUMERHJRAFDREQyUcAQEZFMFDBERCQT\nBQwREclEAUNERDJRwBARkUwUMEREJBMFDBERyUQBQ0REMlHAEBGRTBQwREQkEwUMERHJRAFDREQy\nUcAQEZFMFDBERCQTBQwREclEAUNERDLpnu4NmlkO+AqwD7AROMXdH5jueoiIyMTMRA/jVcA8dz8U\nOAP43AzUQUREJmgmAsbhwG8A3P1G4IAZqIOIiEzQTASMLYCnU9MFM9NYiohIh5v2MQxgLdCfms67\ne7HB8rmBgf4Gb88taosytUWZ2qJMbdE+M3Fkfy1wHICZPR+4YwbqICIiEzQTPYyLgaPN7Np4+i0z\nUAcREZmgXBRFM10HERGZBTTYLCIimShgiIhIJgoYIiKSyUwMemcyV1KImFk38E1gN6AXOBu4C/gW\nUATudPdT42XfDrwDGAXOdvdfmdl84DvAdoRLlk9295XT/DFaysy2A/4EHAWMMUfbwsw+DLwC6CH8\nFv7AHGyL+DdyAeE3UgDezhz8XpjZwcA57v5iM9uDKX7++CrVz8fLXubun2xWh07uYcyVFCInAE+5\n+wuB/wd8mfBZP+LuRwB5M3ulmW0PvAc4JF7uM2bWA7wLuD1e/0Lg4zPxIVol3jl8DRiOZ83JtjCz\nI4BD4u//i4BdmKNtQbgMv8vdDwP+Dfg0c6wtzOx04FxgXjyrFZ//q8Dfu/sLgIPNbJ9m9ejkgDFX\nUoj8kPIfsItwBLWfu18dz7sEOBo4CLjG3Qvuvhb4K6H3VWqneNmjpqvibfJZwhf5cSDH3G2LY4A7\nzeynwM+BXzJ32+JeoDs+67Al4Yh4rrXFfcDxqen9p/D5X2Jm/UCvuz8Uz7+UDO3SyQFjTqQQcfdh\ndx+K/4A/Aj5K2FEm1hHaop/K9lhP+PGk5yfLzkpm9mZghbtfRrkN0n/zOdMWwLbA/sBrCUeI32Xu\ntsV6YHfgHuDrwBeZY78Rd7+YcDCZmMrnT+atrSpjy2b16OQd8ERTiMxaZrYzcAVwgbt/n3BeMtEP\nrCG0xxZV81dT2U7JsrPVWwg3dV5JODL6NjCQen8utcVK4NL4aPFewjhe+gc9l9rin4DfuLtR/l70\npt6fS22RmOo+ojpwZmqXTg4YcyKFSHze8VLgn939gnj2rWb2wvj1scDVwE3A4WbWa2ZbAnsCdwLX\nEbdT/P/VzFLufoS7v9jdXwz8GTgRuGQutgVwDeE8NGa2I9AHXB6PbcDcaotVlI+Q1xAu1rl1jrZF\n4pap/C7cfR2wycx2j0/1HUOGdunYO71TV0ntHc96S3yktVkxs88Dryd0t3NABLwP+BLh6pi7gbe7\ne2RmbwPeGS93trv/1MwWEK4gWQJsAt7o7ium/5O0lpldAfwjoT3OZQ62hZmdAxxJ+IxnAA8B5zHH\n2sLM+ghXEi4hfPbPAzczx9rCzHYFvufuh5rZs5ji78LMDgK+QOg4/Nbdm14M0LEBQ0REOksnn5IS\nEZEOooAhIiKZKGCIiEgmChgiIpKJAoaIiGSigCEiIpl0bLZamb3M7MvAYYS7cZ8J/CV+6wupmxOb\nlfEJ4CZ3/2WDZW5x9/2mWt+JarZdM9sN+Ji7n5KxvGMJ+bOudvcTW1NLiO+YP5NwTf5Z8Q2R9ZY9\nH7jS3b/dqu3L5kcBQ1rO3U+D0o1GV05mp+7uZ2ZYZtqDRcbt7gY8YwJFvhb4lLufN+lKNacbrmTK\nFDBkWpnZmcDzgZ0JqdzvIjwDZAGwmJAi5cfJES9wFXAxIcXBvsATwOvcfY2ZFd09H5e5E/AsQhrw\nb7j7p1Op0g8jZL+NgE+6+x9S9TkC+AQhA+rOwI2EZ6+MmtlbgA8Q8vbcDJzm7sMNtnueu3+GcPfs\n7mb2JeAcQuLAhXE573X3P6a2/zZCKv+XmFmRkJ7hf4GtCcnj3uvuN8ftsQ2wR9xGv0qV8bq4nvPj\ndjzF3a+p0/57EHozWxNSyL/H3W+rWuZE4P2EnsnNwKnuPlKrPJlbNIYhM2Geuz/X3b8GnAa8zd0P\nAE4B/rXG8vsAn3X3vQg5hd4Uz08fNe9FSM/8fODDZrYFIcvrQnd/DiGxYb0U+QcC73L3PQk73FPN\n7LnAR4AXuPs+hJ1r0uupt90z4u2+F/iTu78HeBvwC3c/CPhnQqrpEnf/BiF9+b+6+zcJD7r5fLzN\nDwA/jp9pAOG5KX9bFSxyhAfmvMzd9wX+HTi9zueEkCLi9Li93wn8IP2mmf0N4QFFh8Q9qcEm5ckc\noh6GzIQbU69PBF5uZq8n7HQX1Vj+SXe/PX59J+HouNqV7j4GDJrZSkJm16MIR+u4+yNmdnmd+vzB\n3e+LX19I+YllP3f3JIPn/xLyGWXZbtrvCDv9/YBfEXpVNcU5k/Zw95/Fdb4xLtPiRW6sXifOH/Rq\n4O/MzAgPWypUL5cq/0Dg/DjQACw0s8WpxV5MGHe6IV6mB7ilXp1lblEPQ2bChtTrawg7sT8RTk3l\naiy/MfU6msAyY1R+x2utB5U72DwhWOSqls9R+wBrY9V0xTbc/TrgbwgPsHk94UFI9eRr1DGf2u6G\nqveSIHATYdzkKsY/KyKtC9jg7vu5+75xj+T57r66apkfJssQHspzWoM6yxyigCHtVm/nRXxk+0zC\n6ZjfEFIsd02gjGbzLwP+Pt7WjoSj71qDv4eb2ZL4AV0nEZ5KdhXhqH2reJm3E55Z0vAzxQrEO3kz\n+3fgJHe/kPD4zH3rrRSnnL7fzF4Vr/t8YHtCr6qeZwNj7v5pwpjPsdRuQ5KnsJnZm+LyjyY8Jzzt\n98DxZjYQ9zC+RhjPEFHAkLare3VOfGR7HnCXmd1MeMrcgjgdc3q9emU0m38usN7MbgfOJ6QHH3eU\nDiwnPJTnTuBRwuD1HcBngD+Y2V2EU01J+udm270b2MrMLiAc8b/GzG4FfkJI2d7oc5wIvC+u8xeB\n49290GCbtwF/NjMnDFCvA3ZtUM8TgFPM7DZCj+716WXjU3+fIATHOwjB8Zw625Y5RunNZbNlZscB\nOXf/VTwYfQtwQGpcIrlK6kx3P3Km6ikyW2jQWzZndwEXmtmnCEfQH08HCxGZGPUwREQkE41hiIhI\nJgoYIiKSiQKGiIhkooAhIiKZKGCIiEgmChgiIpLJ/wd8oK1z0Qmg3QAAAABJRU5ErkJggg==\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x11f7077f0>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "count_impute = selected_models_df.groupby(\"allele\").hyperparameters_impute.sum()\n",
-    "\n",
-    "seaborn.regplot(training_sizes.ix[alleles], count_impute.ix[alleles])\n",
-    "pyplot.xlim(xmin=0, xmax=10000)\n",
-    "pyplot.ylim(ymin=0, ymax=16)\n",
-    "pyplot.title(\"Number of models (out of 16 total in each allele's ensemble)\\nthat use imputation\")\n",
-    "pyplot.xlabel(\"Training points for allele\")\n",
-    "pyplot.ylabel(\"Num models\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.text.Text at 0x120fb1518>"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x120dcf320>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "impute_cums_df = selected_models_df.groupby(\"allele\").hyperparameters_impute.mean().to_frame()\n",
-    "impute_cums_df[\"size\"] = training_sizes\n",
-    "impute_cums_df = impute_cums_df.sort_values(\"size\")\n",
-    "impute_cums_df[\"cum_mean\"] = (\n",
-    "    impute_cums_df.hyperparameters_impute.cumsum() / (numpy.arange(len(impute_cums_df)) + 1))\n",
-    "impute_cums_df\n",
-    "seaborn.regplot(\"size\", \"cum_mean\", data=impute_cums_df, fit_reg=False, logx=True)\n",
-    "pyplot.xscale(\"log\")\n",
-    "pyplot.xlabel(\"IEDB Measurements\")\n",
-    "pyplot.ylabel(\"Fraction of models using imputation\")\n",
-    "pyplot.title(\n",
-    "    \"Fraction of best models for alleles with <= x measurements\\n\"\n",
-    "    \"that use imputation\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.text.Text at 0x11e610da0>"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\nhAAAAABJRU5ErkJggg==\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x120393550>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "seaborn.regplot(\n",
-    "    selected_models_df.train_size.values,\n",
-    "    selected_models_df.hyperparameters_dropout_probability.values,\n",
-    "    x_jitter=.015,\n",
-    "    y_jitter=.015)\n",
-    "pyplot.xlim(xmin=0)\n",
-    "pyplot.ylim(ymin=0)\n",
-    "pyplot.title(\"Dropout rate of selected models\")\n",
-    "pyplot.xlabel(\"Training points for allele\")\n",
-    "pyplot.ylabel(\"Dropout rate\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.text.Text at 0x120db5f98>"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x11e6162b0>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "seaborn.regplot(\n",
-    "    selected_models_df.train_size.values,\n",
-    "    selected_models_df.hyperparameters_embedding_output_dim.values,\n",
-    "    x_jitter=1,\n",
-    "    y_jitter=1)\n",
-    "pyplot.xlim(xmin=0)\n",
-    "pyplot.ylim(ymin=0)\n",
-    "pyplot.title(\"Embedding output dimensions of selected models\")\n",
-    "pyplot.xlabel(\"Training points for allele\")\n",
-    "pyplot.ylabel(\"Embedding output dimensions\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 16,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.text.Text at 0x1203ab588>"
-      ]
-     },
-     "execution_count": 16,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\nsgAAAABJRU5ErkJggg==\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x1208414a8>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "seaborn.regplot(\n",
-    "    selected_models_df.train_size.values,\n",
-    "    selected_models_df.hyperparameters_layer_sizes.map(lambda x: x[0]).values,\n",
-    "    x_jitter=5,\n",
-    "    y_jitter=5)\n",
-    "pyplot.xlim(xmin=0)\n",
-    "pyplot.ylim(ymin=0)\n",
-    "pyplot.title(\"Hidden layer size of selected models\")\n",
-    "pyplot.xlabel(\"Training points for allele\")\n",
-    "pyplot.ylabel(\"Hidden layer size\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 17,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.text.Text at 0x11e6cbe10>"
-      ]
-     },
-     "execution_count": 17,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\nSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJlpJ\naDQajab+7ainAAAgAElEQVQmWkloNBqNpiZaSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2m\nJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJpFGX0AIcTXw\nt1LKVwohzgf+DXCBZ6WU7/Pf8x7gvUAJ+Bsp5T2Nlkuj0Wg009NQS0II8UHgC0Dcf+pO4MNSypsA\nUwjxJiHEeuB3gGuAnwM+LoSINlIujUaj0dRHo91NzwO/GHp8uZRyp//3fcBrgKuAR6WUtpRyDDgC\n7GiwXBqNRqOpg4a6m6SU3xZCnB16ygj9nQLagFZgNPR8GlhVz/k7O1vPWMb5QMs5tywFOZeCjKDl\nnGuWipwzoeExiQrc0N+twAgwhlIWlc9PS39/au4kaxCdna1azjlkKci5FGQELedcs5TknAnznd30\ntBDiRv/vW4GdwE+B64UQMSHEKmAb8Ow8y6XRaDSaKsy3JfFHwBf8wPRB4JtSSk8I8RngUZQ76sNS\nyuI8y6XRaDSaKjRcSUgpjwPX+n8fAW6u8p67gLsaLYtGo9FoZoYuptNoNBpNTbSS0Gg0Gk1NtJLQ\naDQaTU2mjUkIIdYAfw+cD/wy8AngD6WUww2WTaPRaDQLTD2WxBdQaaodqAK4buA/GymURqPRaBYH\n9SiJc6WUnwdcKWVRSvkRYHOD5dJoNBrNIqAeJWH7RW4egBDiJUysnNZoNBrNMqWeOok/Bx4Gtgoh\nvoPq1vp/GimURqPRaBYH0yoJKeUPhBBPAVcDFvAb1NlbSaPRaDRLm3qym/YD7w1vBCSEeBq4rJGC\naTQajWbhqScm0Q7c5e8eF2DUerNGo9Folg/1xCT6gFcD3xBCXA68Hz+IrdFoNJrlTT2WhCGlHAJe\ni9qD+mEg0UihNBqNRrM4qEdJ7AeQUjpSyt8B7kZVX2s0Go1mmVNPdtPtFY+/gKrC1mg0Gs0yp6aS\nEEI8LaW8TAjhMh6DCALWnpTSarh0Go1Go1lQaioJKeVl/r+6U6xGo9EsQTzPxXE9SraH7bjYjseP\nnzq28e23XtRd7znqqZM4H3gF8FXgX1H1Eb8vpXx01pJrNBqNZg7xcD0P21aKoOQEf7uTUlFHUoUZ\n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\nAABJRU5ErkJggg==\n",
-      "text/plain": [
-       "<matplotlib.figure.Figure at 0x11fbc9c18>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "seaborn.regplot(\n",
-    "    selected_models_df.hyperparameters_embedding_output_dim.values,\n",
-    "    selected_models_df.hyperparameters_layer_sizes.map(lambda x: x[0]).values,\n",
-    "    x_jitter=5,\n",
-    "    y_jitter=5)\n",
-    "pyplot.xlim(xmin=0)\n",
-    "pyplot.ylim(ymin=0)\n",
-    "pyplot.title(\"Hidden layer size vs. embedding output dims of selected models\")\n",
-    "pyplot.xlabel(\"Embedding output dimensions\")\n",
-    "pyplot.ylabel(\"Hidden layer size\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 101,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<h1>Model selection invocation</h1><pre>#!/bin/bash\n",
-       "\n",
-       "if [[ $# -eq 0 ]] ; then\n",
-       "    echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train'\n",
-       "    echo 'See README.md'\n",
-       "fi\n",
-       "\n",
-       "set -e\n",
-       "set -x\n",
-       "\n",
-       "DOWNLOAD_NAME=models_class1_allele_specific_ensemble\n",
-       "SCRATCH_DIR=/tmp/mhcflurry-downloads-generation\n",
-       "SCRIPT_ABSOLUTE_PATH=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)/$(basename \"${BASH_SOURCE[0]}\")\"\n",
-       "SCRIPT_DIR=$(dirname \"$SCRIPT_ABSOLUTE_PATH\")\n",
-       "export PYTHONUNBUFFERED=1\n",
-       "\n",
-       "mkdir -p \"$SCRATCH_DIR\"\n",
-       "rm -rf \"$SCRATCH_DIR/$DOWNLOAD_NAME\"\n",
-       "mkdir \"$SCRATCH_DIR/$DOWNLOAD_NAME\"\n",
-       "\n",
-       "# Send stdout and stderr to a logfile included with the archive.\n",
-       "exec >  >(tee -ia \"$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt\")\n",
-       "exec 2> >(tee -ia \"$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt\" >&2)\n",
-       "\n",
-       "# Log some environment info\n",
-       "date\n",
-       "pip freeze\n",
-       "git rev-parse HEAD\n",
-       "git status\n",
-       "\n",
-       "cd $SCRATCH_DIR/$DOWNLOAD_NAME\n",
-       "\n",
-       "mkdir models\n",
-       "\n",
-       "cp $SCRIPT_DIR/models.py .\n",
-       "python models.py > models.json\n",
-       "\n",
-       "time mhcflurry-class1-allele-specific-ensemble-train \\\n",
-       "    --ensemble-size 16 \\\n",
-       "    --model-architectures models.json \\\n",
-       "    --train-data \"$(mhcflurry-downloads path data_combined_iedb_kim2014)/combined_human_class1_dataset.csv\" \\\n",
-       "    --min-samples-per-allele 20 \\\n",
-       "    --out-manifest selected_models.csv \\\n",
-       "    --out-model-selection-manifest all_models.csv \\\n",
-       "    --out-models models \\\n",
-       "    --verbose \\\n",
-       "    \"$@\"\n",
-       "\n",
-       "bzip2 all_models.csv\n",
-       "cp $SCRIPT_ABSOLUTE_PATH .\n",
-       "tar -cjf \"../${DOWNLOAD_NAME}.tar.bz2\" *\n",
-       "\n",
-       "echo \"Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2\"\n",
-       "</pre>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "log_path = get_path(\"models_class1_allele_specific_ensemble\", \"GENERATE.sh\")\n",
-    "with open(log_path) as fd:\n",
-    "    di.display_html(\"<h1>Model selection invocation</h1><pre>%s</pre>\" % fd.read(), raw=True)\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 102,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<h1>Model selection log (beginning)</h1><pre>+ date\n",
-       "Thu Mar 16 13:18:34 UTC 2017\n",
-       "+ pip freeze\n",
-       "alabaster==0.7.9\n",
-       "anaconda-clean==1.0\n",
-       "anaconda-client==1.5.1\n",
-       "anaconda-navigator==1.3.1\n",
-       "appdirs==1.4.0\n",
-       "argcomplete==1.0.0\n",
-       "astroid==1.4.7\n",
-       "astropy==1.2.1\n",
-       "Babel==2.3.4\n",
-       "backports.shutil-get-terminal-size==1.0.0\n",
-       "beautifulsoup4==4.5.1\n",
-       "biopython==1.68\n",
-       "bitarray==0.8.1\n",
-       "blaze==0.10.1\n",
-       "bokeh==0.12.2\n",
-       "boto==2.42.0\n",
-       "bottle==0.12.13\n",
-       "Bottleneck==1.1.0\n",
-       "cffi==1.7.0\n",
-       "chest==0.2.3\n",
-       "click==6.6\n",
-       "climate==0.4.6\n",
-       "cloudpickle==0.2.1\n",
-       "clyent==1.2.2\n",
-       "colorama==0.3.7\n",
-       "conda==4.2.9\n",
-       "conda-build==2.0.2\n",
-       "configobj==5.0.6\n",
-       "contextlib2==0.5.3\n",
-       "cryptography==1.5\n",
-       "CVXcanon==0.1.1\n",
-       "cvxpy==0.4.8\n",
-       "cycler==0.10.0\n",
-       "Cython==0.24.1\n",
-       "cytoolz==0.8.0\n",
-       "dask==0.11.0\n",
-       "datacache==0.4.20\n",
-       "datashape==0.5.2\n",
-       "decorator==4.0.10\n",
-       "dill==0.2.5\n",
-       "docutils==0.12\n",
-       "downhill==0.4.0\n",
-       "dynd==0.7.3.dev1\n",
-       "ecos==2.0.4\n",
-       "et-xmlfile==1.0.1\n",
-       "fancyimpute==0.1.0\n",
-       "fastcache==1.0.2\n",
-       "filelock==2.0.6\n",
-       "Flask==0.11.1\n",
-       "Flask-Cors==2.1.2\n",
-       "gevent==1.1.2\n",
-       "google-api-python-client==1.5.5\n",
-       "greenlet==0.4.10\n",
-       "gtfparse==0.0.6\n",
-       "h5py==2.6.0\n",
-       "HeapDict==1.0.0\n",
-       "httplib2==0.9.2\n",
-       "humanize==0.5.1\n",
-       "idna==2.1\n",
-       "imagesize==0.7.1\n",
-       "ipdb==0.10.2\n",
-       "ipykernel==4.5.0\n",
-       "ipython==5.1.0\n",
-       "ipython-genutils==0.1.0\n",
-       "ipywidgets==5.2.2\n",
-       "itsdangerous==0.24\n",
-       "jdcal==1.2\n",
-       "jedi==0.9.0\n",
-       "Jinja2==2.8\n",
-       "joblib==0.10.3\n",
-       "jsonschema==2.5.1\n",
-       "jupyter==1.0.0\n",
-       "jupyter-client==4.4.0\n",
-       "jupyter-console==5.0.0\n",
-       "jupyter-core==4.2.0\n",
-       "Keras==1.2.0\n",
-       "knnimpute==0.0.1\n",
-       "-e git+git@github.com:hammerlab/kubeface.git@91fa80a571b9f870c4ec945b834a97fdf863fbc7#egg=kubeface\n",
-       "lazy-object-proxy==1.2.1\n",
-       "llvmlite==0.13.0\n",
-       "locket==0.2.0\n",
-       "lxml==3.6.4\n",
-       "MarkupSafe==0.23\n",
-       "matplotlib==1.5.3\n",
-       "memoized-property==1.0.3\n",
-       "-e git+git@github.com:hammerlab/mhcflurry.git@2925ce8d6c08e8ac0170504b06f1be384a0fc169#egg=mhcflurry\n",
-       "mhcnames==0.1.0\n",
-       "mhctools==0.4.1\n",
-       "mistune==0.7.3\n",
-       "mock==2.0.0\n",
-       "mpmath==0.19\n",
-       "multipledispatch==0.4.8\n",
-       "multiprocess==0.70.4\n",
-       "nb-anacondacloud==1.2.0\n",
-       "nb-conda==2.0.0\n",
-       "nb-conda-kernels==2.0.0\n",
-       "nbconvert==4.2.0\n",
-       "nbformat==4.1.0\n",
-       "nbpresent==3.0.2\n",
-       "-e git+git@github.com:hammerlab/neon.git@f343737d19e1b9509137bf63b9d291d2d8c8bcaf#egg=neon\n",
-       "networkx==1.11\n",
-       "nltk==3.2.1\n",
-       "nose==1.3.7\n",
-       "notebook==4.2.3\n",
-       "numba==0.28.1\n",
-       "numexpr==2.6.1\n",
-       "numpy==1.11.1\n",
-       "oauth2client==4.0.0\n",
-       "odo==0.5.0\n",
-       "openpyxl==2.3.2\n",
-       "pandas==0.18.1\n",
-       "parse==1.6.6\n",
-       "partd==0.3.6\n",
-       "path.py==0.0.0\n",
-       "pathlib2==2.1.0\n",
-       "patsy==0.4.1\n",
-       "pbr==1.10.0\n",
-       "pep8==1.7.0\n",
-       "pepdata==0.7.0\n",
-       "pexpect==4.0.1\n",
-       "pickleshare==0.7.4\n",
-       "Pillow==3.3.1\n",
-       "pkginfo==1.3.2\n",
-       "plac==0.9.6\n",
-       "ply==3.9\n",
-       "progressbar33==2.4\n",
-       "prompt-toolkit==1.0.3\n",
-       "psutil==4.3.1\n",
-       "ptyprocess==0.5.1\n",
-       "py==1.4.31\n",
-       "pyasn1==0.1.9\n",
-       "pyasn1-modules==0.0.8\n",
-       "pycosat==0.6.1\n",
-       "pycparser==2.14\n",
-       "pycrypto==2.6.1\n",
-       "pycurl==7.43.0\n",
-       "pyensembl==1.0.3\n",
-       "pyflakes==1.3.0\n",
-       "Pygments==2.1.3\n",
-       "pylint==1.5.4\n",
-       "pyopen==0.0.6\n",
-       "pyOpenSSL==16.0.0\n",
-       "pyparsing==2.1.4\n",
-       "pytest==2.9.2\n",
-       "python-dateutil==2.5.3\n",
-       "pytz==2016.6.1\n",
-       "PyVCF==0.6.8\n",
-       "PyYAML==3.12\n",
-       "pyzmq==15.4.0\n",
-       "QtAwesome==0.3.3\n",
-       "qtconsole==4.2.1\n",
-       "QtPy==1.1.2\n",
-       "redis==2.10.5\n",
-       "requests==2.11.1\n",
-       "rope-py3k==0.9.4.post1\n",
-       "rsa==3.4.2\n",
-       "ruamel-yaml===-VERSION\n",
-       "scikit-image==0.12.3\n",
-       "scikit-learn==0.18.1\n",
-       "scipy==0.18.1\n",
-       "scs==1.2.6\n",
-       "seaborn==0.7.1\n",
-       "sercol==0.0.2\n",
-       "serializable==0.1.1\n",
-       "simplegeneric==0.8.1\n",
-       "simplejson==3.10.0\n",
-       "singledispatch==3.4.0.3\n",
-       "six==1.10.0\n",
-       "sklearn==0.0\n",
-       "snowballstemmer==1.2.1\n",
-       "sockjs-tornado==1.0.3\n",
-       "Sphinx==1.4.6\n",
-       "spyder==3.0.0\n",
-       "SQLAlchemy==1.0.13\n",
-       "statsmodels==0.6.1\n",
-       "sympy==1.0\n",
-       "tables==3.2.3.1\n",
-       "terminado==0.6\n",
-       "Theano==0.8.2\n",
-       "tinytimer==0.0.0\n",
-       "toolz==0.8.0\n",
-       "tornado==4.4.1\n",
-       "traitlets==4.3.0\n",
-       "typechecks==0.0.2\n",
-       "unicodecsv==0.14.1\n",
-       "uritemplate==3.0.0\n",
-       "varcode==0.5.11\n",
-       "wcwidth==0.1.7\n",
-       "Werkzeug==0.11.11\n",
-       "widgetsnbextension==1.2.6\n",
-       "wrapt==1.10.6\n",
-       "xlrd==1.0.0\n",
-       "XlsxWriter==0.9.3\n",
-       "xlwt==1.1.2\n",
-       "You are using pip version 8.1.2, however version 9.0.1 is available.\n",
-       "You should consider upgrading via the 'pip install --upgrade pip' command.\n",
-       "+ git rev-parse HEAD\n",
-       "2925ce8d6c08e8ac0170504b06f1be384a0fc169\n",
-       "+ git status\n",
-       "On branch add-class1-ensemble\n",
-       "Your branch is up-to-date with 'origin/add-class1-ensemble'.\n",
-       "nothing to commit, working directory clean\n",
-       "+ cd /tmp/mhcflurry-downloads-generation/models_class1_allele_specific_ensemble\n",
-       "+ mkdir models\n",
-       "+ cp /home/tim/sinai/git/mhcflurry/downloads-generation/models_class1_allele_specific_ensemble/models.py .\n",
-       "+ python models.py\n",
-       "Using Theano backend.\n",
-       "/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
-       "  \"This module will be removed in 0.20.\", DeprecationWarning)\n",
-       "Models: 162\n",
-       "++ mhcflurry-downloads path data_combined_iedb_kim2014\n",
-       "Using Theano backend.\n",
-       "/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
-       "  \"This module will be removed in 0.20.\", DeprecationWarning)\n",
-       "+ mhcflurry-class1-allele-specific-ensemble-train --ensemble-size 16 --model-architectures models.json --train-data /home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv --min-samples-per-allele 20 --out-manifest selected_models.csv --out-model-selection-manifest all_models.csv --out-models models --verbose --parallel-backend kubeface --target-tasks 10000 --kubeface-backend kubernetes --kubeface-storage gs://kubeface-tim --kubeface-worker-image hammerlab/mhcflurry-misc:latest --kubeface-kubernetes-task-resources-memory-mb 6000 --kubeface-worker-path-prefix venv-py3/bin --kubeface-max-simultaneous-tasks 200 --kubeface-speculation-max-reruns 3 --kubeface-cache-key-prefix tim-note-tim-2017-03-12-16-37-22-27499bde\n",
-       "Using Theano backend.\n",
-       "/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
-       "  \"This module will be removed in 0.20.\", DeprecationWarning)\n",
-       "To show stack trace, run:\n",
-       "kill -s USR1 992\n",
-       "INFO:root:Running with arguments: Namespace(alleles=None, dask_scheduler=None, ensemble_size=16, kubeface_backend='kubernetes', kubeface_cache_key_prefix='tim-note-tim-2017-03-12-16-37-22-27499bde', kubeface_kubernetes_cluster=None, kubeface_kubernetes_image_pull_policy='Always', kubeface_kubernetes_retries=12, kubeface_kubernetes_task_resources_cpu=1, kubeface_kubernetes_task_resources_memory_mb=6000.0, kubeface_local_process_docker_command='docker', kubeface_max_simultaneous_tasks=200, kubeface_never_cleanup=False, kubeface_poll_seconds=30.0, kubeface_speculation_max_reruns=3, kubeface_speculation_percent=20, kubeface_speculation_runtime_percentile=99, kubeface_storage='gs://kubeface-tim', kubeface_wait_to_raise_task_exception=False, kubeface_worker_image='hammerlab/mhcflurry-misc:latest', kubeface_worker_kubeface_install_command='{pip} install https://github.com/hammerlab/kubeface/archive/master.zip', kubeface_worker_kubeface_install_policy='if-not-present', kubeface_worker_path_prefix='venv-py3/bin', kubeface_worker_pip='pip', kubeface_worker_pip_packages=[], max_models=None, min_samples_per_allele=20, model_architectures=<_io.TextIOWrapper name='models.json' mode='r' encoding='UTF-8'>, num_local_processes=None, num_local_threads=1, out_manifest='selected_models.csv', out_model_selection_manifest='all_models.csv', out_models_dir='models', parallel_backend='kubeface', quiet=False, target_tasks=10000, train_data='/home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv', verbose=True)\n",
-       "Using parallel backend: <Kubeface backend, client=<kubeface.client.Client object at 0x7fe5429fdac8>>\n",
-       "INFO:root:Read 162 model architectures\n",
-       "INFO:root:Loaded training data: Dataset(n=192550, alleles=['ELA-A1', 'Gogo-B0101', 'H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KBM8', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'H-2-LQ', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0204', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0210', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A1', 'HLA-A11', 'HLA-A1101', 'HLA-A1102', 'HLA-A2', 'HLA-A2301', 'HLA-A24', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A26', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3', 'HLA-A3/11', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A7401', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B27', 'HLA-B2701', 'HLA-B2702', 'HLA-B2703', 'HLA-B2704', 'HLA-B2705', 'HLA-B2706', 'HLA-B2710', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3508', 'HLA-B3701', 'HLA-B3801', 'HLA-B39', 'HLA-B3901', 'HLA-B40', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4202', 'HLA-B44', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B51', 'HLA-B5101', 'HLA-B5201', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5702', 'HLA-B5703', 'HLA-B58', 'HLA-B5801', 'HLA-B5802', 'HLA-B60', 'HLA-B62', 'HLA-B7', 'HLA-B7301', 'HLA-B8', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA102101', 'HLA-BOLA200801', 'HLA-BOLA201201', 'HLA-BOLA402401', 'HLA-BOLA601301', 'HLA-BOLA601302', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-C4', 'HLA-E0101', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'HLA-RT1BL', 'HLA-SLA10401', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B04', 'Mamu-B06502', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0602', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B0901', 'Patr-B1301', 'Patr-B1701', 'Patr-B2401'])\n",
-       "</pre>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "log_path = get_path(\"models_class1_allele_specific_ensemble\", \"LOG.txt\")\n",
-    "with open(log_path) as fd:\n",
-    "    lines = fd.readlines(100000)\n",
-    "    di.display_html(\"<h1>Model selection log (beginning)</h1><pre>%s</pre>\" % \"\".join(lines), raw=True)\n"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python [py3k]",
-   "language": "python",
-   "name": "Python [py3k]"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.5.2"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 0
-}
diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models.py b/downloads-generation/models_class1_allele_specific_ensemble/models.py
deleted file mode 100644
index 08be5252..00000000
--- a/downloads-generation/models_class1_allele_specific_ensemble/models.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import sys
-from mhcflurry.class1_allele_specific_ensemble import HYPERPARAMETER_DEFAULTS
-import json
-
-models = HYPERPARAMETER_DEFAULTS.models_grid(
-    impute=[False, True],
-    activation=["tanh"],
-    layer_sizes=[[12], [64], [128]],
-    embedding_output_dim=[8, 32, 64],
-    dropout_probability=[0, .1, .25],
-    fraction_negative=[0, .1, .2],
-    n_training_epochs=[250],
-
-    # Imputation arguments
-    impute_method=["mice"],
-    imputer_args=[
-        # Arguments specific to imputation method (mice)
-        {"n_burn_in": 5, "n_imputations": 50, "n_nearest_columns": 25}
-    ],
-    impute_min_observations_per_peptide=[3],
-    impute_min_observations_per_allele=[3])
-
-sys.stderr.write("Models: %d\n" % len(models))
-print(json.dumps(models, indent=4))
diff --git a/downloads-generation/models_class1_allele_specific_single/GENERATE.sh b/downloads-generation/models_class1_allele_specific_single/GENERATE.sh
deleted file mode 100755
index 93463556..00000000
--- a/downloads-generation/models_class1_allele_specific_single/GENERATE.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-
-if [[ $# -eq 0 ]] ; then
-    echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train'
-    echo 'At minimum you probably want to pass --dask-scheduler <IP:PORT> as training many models on one node is extremely '
-    echo 'slow.'
-fi
-
-set -e
-set -x
-
-DOWNLOAD_NAME=models_class1_allele_specific_single
-SCRATCH_DIR=/tmp/mhcflurry-downloads-generation
-SCRIPT_ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
-SCRIPT_DIR=$(dirname "$SCRIPT_ABSOLUTE_PATH")
-export PYTHONUNBUFFERED=1
-
-mkdir -p "$SCRATCH_DIR"
-rm -rf "$SCRATCH_DIR/$DOWNLOAD_NAME"
-mkdir "$SCRATCH_DIR/$DOWNLOAD_NAME"
-
-# Send stdout and stderr to a logfile included with the archive.
-exec >  >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt")
-exec 2> >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt" >&2)
-
-# Log some environment info
-date
-# pip freeze
-# git rev-parse HEAD
-# git status
-
-cd $SCRATCH_DIR/$DOWNLOAD_NAME
-
-mkdir models
-
-cp $SCRIPT_DIR/models.py $SCRIPT_DIR/imputer.json .
-python models.py > models.json
-
-time mhcflurry-class1-allele-specific-cv-and-train \
-    --model-architectures models.json \
-    --imputer-description imputer.json \
-    --train-data "$(mhcflurry-downloads path data_combined_iedb_kim2014)/combined_human_class1_dataset.csv" \
-    --min-samples-per-allele 200 \
-    --out-cv-results cv.csv \
-    --out-production-results production.csv \
-    --out-models models \
-    --verbose \
-    "$@"
-
-cp $SCRIPT_ABSOLUTE_PATH .
-tar -cjf "../${DOWNLOAD_NAME}.tar.bz2" *
-
-echo "Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2"
diff --git a/downloads-generation/models_class1_allele_specific_single/README.md b/downloads-generation/models_class1_allele_specific_single/README.md
deleted file mode 100644
index 0003e3cd..00000000
--- a/downloads-generation/models_class1_allele_specific_single/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Class I allele-specific models (single)
-
-This download contains trained MHC Class I allele-specific MHCflurry models. The training data used is in the [data_combined_iedb_kim2014](../data_combined_iedb_kim2014) MHCflurry download. We first select network hyperparameters for each allele individually using cross validation over the models enumerated in [models.py](models.py). The best hyperparameter settings are selected via average of AUC (at 500nm), F1, and Kendall's Tau over the training folds. We then train the production models over the full training set using the selected hyperparameters.
-
-The training script supports multi-node parallel execution using the [kubeface](https://github.com/hammerlab/kubeface) librarie.
-
-To use kubeface, you should make a google storage bucket and pass it below with the --storage-prefix argument. 
-
-To generate this download we run:
-
-```
-./GENERATE.sh \
-    --cv-folds-per-task 10 \
-    --backend kubernetes \
-    --storage-prefix gs://kubeface \
-    --worker-image hammerlab/mhcflurry:latest \
-    --kubernetes-task-resources-memory-mb 10000 \
-    --worker-path-prefix venv-py3/bin \
-    --max-simultaneous-tasks 200 \
-
-```
diff --git a/downloads-generation/models_class1_allele_specific_single/imputer.json b/downloads-generation/models_class1_allele_specific_single/imputer.json
deleted file mode 100644
index f7614316..00000000
--- a/downloads-generation/models_class1_allele_specific_single/imputer.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "imputation_method_name": "mice",
-    "n_burn_in": 5,
-    "n_imputations": 50,
-    "n_nearest_columns": 25,
-    "min_observations_per_peptide": 5,
-    "min_observations_per_allele": 100 
-}
diff --git a/downloads-generation/models_class1_allele_specific_single/models.py b/downloads-generation/models_class1_allele_specific_single/models.py
deleted file mode 100644
index 30f8e3d5..00000000
--- a/downloads-generation/models_class1_allele_specific_single/models.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import sys
-from mhcflurry.class1_allele_specific.train import HYPERPARAMETER_DEFAULTS
-import json
-
-models = HYPERPARAMETER_DEFAULTS.models_grid(
-    impute=[False, True],
-    activation=["tanh"],
-    layer_sizes=[[12], [64], [128]],
-    embedding_output_dim=[8, 32, 64],
-    dropout_probability=[0, .1, .25],
-    fraction_negative=[0, .1, .2],
-    n_training_epochs=[250])
-
-sys.stderr.write("Models: %d\n" % len(models))
-print(json.dumps(models, indent=4))
diff --git a/downloads-generation/models_class1_allele_specific_single_kim2014_only/GENERATE.sh b/downloads-generation/models_class1_allele_specific_single_kim2014_only/GENERATE.sh
deleted file mode 100755
index 943cc6fc..00000000
--- a/downloads-generation/models_class1_allele_specific_single_kim2014_only/GENERATE.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-
-if [[ $# -eq 0 ]] ; then
-    echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train'
-    echo 'At minimum you probably want to pass --dask-scheduler <IP:PORT> as training many models on one node is extremely '
-    echo 'slow.'
-fi
-
-set -e
-set -x
-
-DOWNLOAD_NAME=models_class1_allele_specific_single_kim2014_only
-SCRATCH_DIR=/tmp/mhcflurry-downloads-generation
-SCRIPT_ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
-SCRIPT_DIR=$(dirname "$SCRIPT_ABSOLUTE_PATH")
-export PYTHONUNBUFFERED=1
-
-mkdir -p "$SCRATCH_DIR"
-rm -rf "$SCRATCH_DIR/$DOWNLOAD_NAME"
-mkdir "$SCRATCH_DIR/$DOWNLOAD_NAME"
-
-# Send stdout and stderr to a logfile included with the archive.
-exec >  >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt")
-exec 2> >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt" >&2)
-
-# Log some environment info
-date
-pip freeze
-git rev-parse HEAD
-git status
-
-cd $SCRATCH_DIR/$DOWNLOAD_NAME
-
-mkdir models
-
-cp $SCRIPT_DIR/models.py $SCRIPT_DIR/imputer.json .
-python models.py > models.json
-
-time mhcflurry-class1-allele-specific-cv-and-train \
-    --model-architectures models.json \
-    --imputer-description imputer.json \
-    --train-data "$(mhcflurry-downloads path data_kim2014)/bdata.2009.mhci.public.1.txt" \
-    --test-data "$(mhcflurry-downloads path data_kim2014)/bdata.2013.mhci.public.blind.1.txt" \
-    --min-samples-per-allele 50 \
-    --out-cv-results cv.csv \
-    --out-production-results production.csv \
-    --out-models models \
-    --verbose \
-    "$@"
-
-cp $SCRIPT_ABSOLUTE_PATH .
-tar -cjf "../${DOWNLOAD_NAME}.tar.bz2" *
-
-echo "Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2"
diff --git a/downloads-generation/models_class1_allele_specific_single_kim2014_only/README.md b/downloads-generation/models_class1_allele_specific_single_kim2014_only/README.md
deleted file mode 100644
index 6cecfebb..00000000
--- a/downloads-generation/models_class1_allele_specific_single_kim2014_only/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Class I allele specific models (single) trained and tested in Kim 2014 dataset
-
-This is a reimplementation of the analysis in [Predicting Peptide-MHC Binding Affinities With Imputed Training Data](http://biorxiv.org/content/early/2016/05/22/054775).
-
diff --git a/downloads-generation/models_class1_allele_specific_single_kim2014_only/imputer.json b/downloads-generation/models_class1_allele_specific_single_kim2014_only/imputer.json
deleted file mode 100644
index c17f86cc..00000000
--- a/downloads-generation/models_class1_allele_specific_single_kim2014_only/imputer.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "imputation_method_name": "mice",
-    "n_burn_in": 5,
-    "n_imputations": 50,
-    "n_nearest_columns": 25,
-    "min_observations_per_peptide": 2,
-    "min_observations_per_allele": 2 
-}
diff --git a/downloads-generation/models_class1_allele_specific_single_kim2014_only/models.py b/downloads-generation/models_class1_allele_specific_single_kim2014_only/models.py
deleted file mode 100644
index 6375cd45..00000000
--- a/downloads-generation/models_class1_allele_specific_single_kim2014_only/models.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import sys
-from mhcflurry.class1_allele_specific.train import HYPERPARAMETER_DEFAULTS
-import json
-
-models = HYPERPARAMETER_DEFAULTS.models_grid(
-    #impute=[False, True],
-    impute=[False],
-    activation=["tanh"],
-    layer_sizes=[[12], [64], [128]],
-    embedding_output_dim=[8, 32, 64],
-    dropout_probability=[0, .1, .25],
-    # fraction_negative=[0, .1, .2],
-    n_training_epochs=[250])
-
-sys.stderr.write("Models: %d\n" % len(models))
-print(json.dumps(models, indent=4))
diff --git a/mhcflurry/__init__.py b/mhcflurry/__init__.py
index bb50dabc..4420dcbb 100644
--- a/mhcflurry/__init__.py
+++ b/mhcflurry/__init__.py
@@ -12,24 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from .class1_allele_specific.class1_binding_predictor import (
+from .class1_affinity_prediction.class1_binding_predictor import (
     Class1BindingPredictor)
-from .prediction import predict
-from .affinity_measurement_dataset import AffinityMeasurementDataset
-from .class1_allele_specific_ensemble import Class1EnsembleMultiAllelePredictor
-from .class1_allele_specific import Class1SingleModelMultiAllelePredictor
-from .measurement_collection import MeasurementCollection
-from . import parallelism
+from .class1_affinity_prediction.multi_allele_predictor_ensemble import (
+    MultiAllelePredictorEnsemble)
 
 __version__ = "0.2.0"
 
 __all__ = [
     "Class1BindingPredictor",
-    "predict",
-    "parallelism",
-    "AffinityMeasurementDataset",
-    "Class1EnsembleMultiAllelePredictor",
-    "Class1SingleModelMultiAllelePredictor",
-    "MeasurementCollection",
+    "MultiAllelePredictorEnsemble",
     "__version__",
 ]
diff --git a/mhcflurry/affinity_measurement_dataset.py b/mhcflurry/affinity_measurement_dataset.py
deleted file mode 100644
index 72444219..00000000
--- a/mhcflurry/affinity_measurement_dataset.py
+++ /dev/null
@@ -1,843 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import print_function, division, absolute_import
-from collections import defaultdict, OrderedDict
-import logging
-
-
-from six import string_types
-import pandas as pd
-import numpy as np
-from typechecks import require_iterable_of
-from sklearn.cross_validation import StratifiedKFold
-
-from .common import geometric_mean, groupby_indices, shuffle_split_list
-from .dataset_helpers import (
-    prepare_pMHC_affinity_arrays,
-    load_dataframe
-)
-from .peptide_encoding import fixed_length_index_encoding
-from .imputation_helpers import (
-    check_dense_pMHC_array,
-    prune_dense_matrix_and_labels,
-    dense_pMHC_matrix_to_nested_dict,
-    imputer_from_name
-)
-
-
-class AffinityMeasurementDataset(object):
-    """
-    Peptide-MHC binding dataset with helper methods for constructing
-    different representations (arrays, DataFrames, dictionaries, &c).
-
-    This class is specific for affinity measurements (IC50s), whereas the
-    MeasurementCollection class supports both affinitites and other
-    measurement types like mass spec hits.
-
-    Design considerations:
-        - want to allow multiple measurements for each pMHC pair (which can
-          be dynamically combined)
-        - optional sample weights associated with each pMHC measurement
-    """
-    def __init__(self, df):
-        """
-        Constructs a AffinityMeasurementDataset from a pandas DataFrame with the following
-        columns:
-            - allele
-            - peptide
-            - affinity
-
-        Also, there is an optional column:
-            - sample_weight
-
-        If `sample_weight` is missing then it is filled with a default value
-        of 1.0
-
-        Parameters
-        ----------
-        df : pandas.DataFrame
-        """
-        columns = set(df.columns)
-
-        for expected_column_name in {"allele", "peptide", "affinity"}:
-            if expected_column_name not in columns:
-                raise ValueError(
-                    "Missing column '%s' from DataFrame" %
-                    expected_column_name)
-        # make allele and peptide columns the index, and copy it
-        # so we can add a column without any observable side-effect in
-        # the calling code
-        df = df.set_index(["allele", "peptide"], drop=False)
-
-        if "sample_weight" not in columns:
-            df["sample_weight"] = np.ones(len(df), dtype=float)
-
-        self._df = df
-        self._alleles = np.asarray(df["allele"])
-        self._peptides = np.asarray(df["peptide"])
-        self._affinities = np.asarray(df["affinity"])
-        self._sample_weights = np.asarray(df["sample_weight"])
-
-    def to_dataframe(self):
-        """
-        Returns DataFrame representation of data contained in AffinityMeasurementDataset
-        """
-        return self._df
-
-    @property
-    def peptides(self):
-        """
-        Array of peptides from pMHC measurements.
-        """
-        return self._df["peptide"].values
-
-    @property
-    def alleles(self):
-        """
-        Array of MHC allele names from pMHC measurements.
-        """
-        return self.to_dataframe()["allele"].values
-
-    @property
-    def affinities(self):
-        """
-        Array of affinities from pMHC measurements.
-        """
-        return self.to_dataframe()["affinity"].values
-
-    @property
-    def sample_weights(self):
-        """
-        Array of sample weights for each pMHC measurement.
-        """
-        return self.to_dataframe()["sample_weight"].values
-
-    def __len__(self):
-        return len(self.to_dataframe())
-
-    def __str__(self):
-        return "AffinityMeasurementDataset(n=%d, alleles=%s)" % (
-            len(self), list(sorted(self.unique_alleles())))
-
-    def __repr__(self):
-        return str(self)
-
-    def __eq__(self, other):
-        """
-        Two datasets are equal if they contain the same number of samples
-        with the same properties and values.
-        """
-        if type(other) is not AffinityMeasurementDataset:
-            return False
-        elif len(self) != len(other):
-            return False
-
-        columns = self.columns
-        if len(columns) != len(other.columns):
-            return False
-        elif set(columns) != set(other.columns):
-            return False
-
-        # test for equality of the rows of the two DataFrames regardless
-        # of order
-        my_dict = self.allele_and_peptide_pair_to_row_dictionary()
-        other_dict = other.allele_and_peptide_pair_to_row_dictionary()
-
-        if set(my_dict.keys()) != set(other_dict.keys()):
-            return False
-
-        for key, my_row in my_dict.items():
-            for column in columns:
-                if my_row[column] != other_dict[key][column]:
-                    return False
-        return True
-
-    def iterrows(self):
-        """
-        Iterate over tuples containing: (allele, peptide), other_fields
-        for each pMHC measurement.
-        """
-        return self.to_dataframe().iterrows()
-
-    def allele_and_peptide_pair_to_row_dictionary(self):
-        """
-        Returns a dictionary mapping (allele, peptide) pairs to rows.
-        """
-        return {key: row for (key, row) in self.iterrows()}
-
-    @property
-    def columns(self):
-        return self.to_dataframe().columns
-
-    def unique_alleles(self):
-        """
-        Returns the set of allele names contained in this AffinityMeasurementDataset.
-        """
-        return set(self.alleles)
-
-    def unique_peptides(self):
-        """
-        Returns the set of peptide sequences contained in this AffinityMeasurementDataset.
-        """
-        return set(self.peptides)
-
-    def unique_allele_peptide_pairs(self):
-        """
-        Returns set of every unique pMHC pairing in the dataset.
-        """
-        return set(zip(self.alleles, self.peptides))
-
-    def groupby_allele(self):
-        """
-        Yields a sequence of tuples of allele names with Datasets containing
-        entries just for that allele.
-        """
-        for (allele_name, group_df) in self.to_dataframe().groupby("allele"):
-            yield (allele_name, AffinityMeasurementDataset(group_df))
-
-    def groupby_allele_dictionary(self):
-        """
-        Returns dictionary mapping each allele name to a AffinityMeasurementDataset containing
-        only entries from that allele.
-        """
-        return dict(self.groupby_allele())
-
-    def allele_counts_dictionary(self):
-        """
-        Returns a dictionary mapping each allele name to the number of entries
-        associated with it.
-        """
-        return {
-            allele_name: len(allele_dataset)
-            for allele_name, allele_dataset
-            in self.groupby_allele()
-        }
-
-    def filter_alleles_by_count(self, min_peptides_per_allele=0):
-        return self.concat([
-            allele_dataset
-            for (_, allele_dataset)
-            in self.groupby_allele()
-            if len(allele_dataset) >= min_peptides_per_allele])
-
-    def to_nested_dictionary(self, combine_fn=geometric_mean):
-        """
-        Returns a dictionary mapping from allele name to a dictionary which
-        maps from peptide to measured value. Caution, this eliminates sample
-        weights!
-
-        Parameters
-        ----------
-        combine_fn : function
-            How to combine multiple measurements for the same pMHC complex.
-            Takes affinities and optional `weights` argument.
-        """
-        allele_to_peptide_to_affinities_dict = defaultdict(dict)
-        allele_to_peptide_to_weights_dict = defaultdict(dict)
-        key_pairs = set([])
-        for allele, peptide, affinity, weight in zip(
-                self.alleles, self.peptides, self.affinities, self.sample_weights):
-            # dictionary mapping each peptide to a list of affinities
-            if peptide not in allele_to_peptide_to_affinities_dict[allele]:
-                allele_to_peptide_to_affinities_dict[allele][peptide] = [affinity]
-                allele_to_peptide_to_weights_dict[allele][peptide] = [weight]
-            else:
-                allele_to_peptide_to_affinities_dict[allele][peptide].append(affinity)
-                allele_to_peptide_to_weights_dict[allele][peptide].append(weight)
-            key_pairs.add((allele, peptide))
-        return {
-            allele: {
-                peptide: combine_fn(
-                    allele_to_peptide_to_affinities_dict[allele][peptide],
-                    allele_to_peptide_to_weights_dict[allele][peptide])
-                for peptide in allele_to_peptide_to_affinities_dict[allele].keys()
-            }
-            for allele in allele_to_peptide_to_affinities_dict.keys()
-        }
-
-    @classmethod
-    def from_sequences(
-            cls,
-            alleles,
-            peptides,
-            affinities,
-            sample_weights=None,
-            extra_columns={}):
-        """
-        Parameters
-        ----------
-        alleles : numpy.ndarray, pandas.Series, or list
-            Name of allele for that pMHC measurement
-
-        peptides : numpy.ndarray, pandas.Series, or list
-            Sequence of peptide in that pMHC measurement.
-
-        affinities : numpy.ndarray, pandas.Series, or list
-            Affinity value (typically IC50 concentration) for that pMHC
-
-        sample_weights : numpy.ndarray of float, optional
-
-        extra_columns : dict
-            Dictionary of any extra properties associated with a
-            pMHC measurement
-        """
-        alleles, peptides, affinities, sample_weights = \
-            prepare_pMHC_affinity_arrays(
-                alleles=alleles,
-                peptides=peptides,
-                affinities=affinities,
-                sample_weights=sample_weights)
-        df = pd.DataFrame()
-        df["allele"] = alleles
-        df["peptide"] = peptides
-        df["affinity"] = affinities
-        df["sample_weight"] = sample_weights
-        for column_name, column in extra_columns.items():
-            if len(column) != len(alleles):
-                raise ValueError(
-                    "Wrong length for column '%s', expected %d but got %d" % (
-                        column_name,
-                        len(alleles),
-                        len(column)))
-            df[column_name] = np.asarray(column)
-        return cls(df)
-
-    @classmethod
-    def from_single_allele_dataframe(cls, allele_name, single_allele_df):
-        """
-        Construct a AffinityMeasurementDataset from a single MHC allele's DataFrame
-        """
-        df = single_allele_df.copy()
-        df["allele"] = allele_name
-        return cls(df)
-
-    @classmethod
-    def from_nested_dictionary(
-            cls,
-            allele_to_peptide_to_affinity_dict):
-        """
-        Given nested dictionaries mapping allele -> peptide -> affinity,
-        construct a AffinityMeasurementDataset with uniform sample weights.
-        """
-        alleles = []
-        peptides = []
-        affinities = []
-        for allele, allele_dict in allele_to_peptide_to_affinity_dict.items():
-            for peptide, affinity in allele_dict.items():
-                alleles.append(allele)
-                peptides.append(peptide)
-                affinities.append(affinity)
-        return cls.from_sequences(
-            alleles=alleles,
-            peptides=peptides,
-            affinities=affinities)
-
-    @classmethod
-    def create_empty(cls):
-        """
-        Returns an empty AffinityMeasurementDataset containing no pMHC entries.
-        """
-        return cls.from_nested_dictionary({})
-
-    @classmethod
-    def from_single_allele_dictionary(
-            cls,
-            allele_name,
-            peptide_to_affinity_dict):
-        """
-        Given a peptide->affinity dictionary for a single allele,
-        create a AffinityMeasurementDataset.
-        """
-        return cls.from_nested_dictionary({allele_name: peptide_to_affinity_dict})
-
-    @classmethod
-    def from_csv(
-            cls,
-            filename,
-            sep=None,
-            allele_column_name=None,
-            peptide_column_name=None,
-            affinity_column_name=None):
-        df, allele_column_name, peptide_column_name, affinity_column_name = \
-            load_dataframe(
-                filename=filename,
-                sep=sep,
-                allele_column_name=allele_column_name,
-                peptide_column_name=peptide_column_name,
-                affinity_column_name=affinity_column_name)
-        df = df.rename(columns={
-            allele_column_name: "allele",
-            peptide_column_name: "peptide",
-            affinity_column_name: "affinity"})
-        return cls(df)
-
-    def get_allele(self, allele_name):
-        """
-        Get AffinityMeasurementDataset for a single allele
-        """
-        if allele_name not in self.unique_alleles():
-            raise KeyError("Allele '%s' not found, available alleles: %s" % (
-                allele_name, list(sorted(self.unique_alleles()))))
-        df = self.to_dataframe()
-        df_allele = df[df.allele == allele_name]
-        return self.__class__(df_allele)
-
-    def get_alleles(self, allele_names):
-        """
-        Restrict AffinityMeasurementDataset to several allele names.
-        """
-        datasets = []
-        for allele_name in allele_names:
-            datasets.append(self.get_allele(allele_name))
-        return self.concat(datasets)
-
-    @classmethod
-    def concat(cls, datasets):
-        """
-        Concatenate several datasets into a single object.
-        """
-        dataframes = [dataset.to_dataframe() for dataset in datasets]
-        return cls(pd.concat(dataframes))
-
-    def replace_allele(self, allele_name, new_dataset):
-        """
-        Replace data for given allele with new entries.
-        """
-        if allele_name not in self.unique_alleles():
-            raise ValueError("Allele '%s' not found" % (allele_name,))
-        df = self.to_dataframe()
-        df_without = df[df.allele != allele_name]
-        new_df = new_dataset.to_dataframe()
-        combined_df = pd.concat([df_without, new_df])
-        return self.__class__(combined_df)
-
-    def flatmap_peptides(self, peptide_fn):
-        """
-        Create zero or more peptides from each pMHC entry. The affinity of all
-        new peptides is identical to the original, but sample weights are
-        divided across the number of new peptides.
-
-        Parameters
-        ----------
-        peptide_fn : function
-            Maps each peptide to a list of peptides.
-        """
-        columns = self.to_dataframe().columns
-        new_data_dict = OrderedDict(
-            (column_name, [])
-            for column_name in columns
-        )
-        if "original_peptide" not in new_data_dict:
-            create_original_peptide_column = True
-            new_data_dict["original_peptide"] = []
-
-        for (allele, peptide), row in self.iterrows():
-            new_peptides = peptide_fn(peptide)
-            n = len(new_peptides)
-            weight = row["sample_weight"]
-            # we're either going to create a fresh original peptide column
-            # or extend the existing original peptide tuple that tracks
-            # the provenance of entries in the new AffinityMeasurementDataset
-            original_peptide = row.get("original_peptide")
-            if original_peptide is None:
-                original_peptide = ()
-            elif isinstance(original_peptide, string_types):
-                original_peptide = (original_peptide,)
-            else:
-                original_peptide = tuple(original_peptide)
-
-            for new_peptide in new_peptides:
-                for column_name in columns:
-                    if column_name == "peptide":
-                        new_data_dict["peptide"].append(new_peptide)
-                    elif column_name == "sample_weight":
-                        new_data_dict["sample_weight"].append(weight / n)
-                    elif column_name == "original_peptide":
-                        new_data_dict["original_peptide"] = original_peptide + (peptide,)
-                    else:
-                        new_data_dict[column_name].append(row[column_name])
-                if create_original_peptide_column:
-                    new_data_dict["original_peptide"].append((peptide,))
-        df = pd.DataFrame(new_data_dict)
-        return self.__class__(df)
-
-    def kmer_index_encoding(
-            self,
-            kmer_size=9,
-            allow_unknown_amino_acids=True):
-        """
-        Encode peptides in this dataset using a fixed-length vector
-        representation.
-
-        Parameters
-        ----------
-        kmer_size : int
-            Length of encoding for each peptide
-
-        allow_unknown_amino_acids : bool
-            If True, then extend shorter amino acids using "X" character,
-            otherwise fill in all possible combinations of real amino acids.
-
-        Returns:
-            - 2d array of encoded kmers
-            - 1d array of affinity value corresponding to the source
-              peptide for each kmer
-            - sample_weights (1 / kmer count per peptide)
-            - indices of original peptides from which kmers were extracted
-        """
-        if len(self.peptides) == 0:
-            return (
-                np.empty((0, kmer_size), dtype=int),
-                np.empty((0,), dtype=float),
-                np.empty((0,), dtype=float),
-                np.empty((0,), dtype=int)
-            )
-
-        X_index, _, original_peptide_indices, counts = \
-            fixed_length_index_encoding(
-                peptides=self.peptides,
-                desired_length=kmer_size,
-                start_offset_shorten=0,
-                end_offset_shorten=0,
-                start_offset_extend=0,
-                end_offset_extend=0,
-                allow_unknown_amino_acids=allow_unknown_amino_acids)
-        original_peptide_indices = np.asarray(original_peptide_indices)
-
-        counts = np.asarray(counts)
-        kmer_affinities = self.affinities[original_peptide_indices]
-        kmer_sample_weights = self.sample_weights[original_peptide_indices]
-
-        assert len(original_peptide_indices) == len(kmer_affinities)
-        assert len(counts) == len(kmer_affinities)
-        assert len(kmer_sample_weights) == len(kmer_affinities)
-
-        # combine the original sample weights of varying length peptides
-        # with a 1/n_kmers factor for the number of kmers pulled out of each
-        # original peptide
-        combined_sample_weights = kmer_sample_weights * (1.0 / counts)
-        return X_index, kmer_affinities, combined_sample_weights, original_peptide_indices
-
-    def to_dense_pMHC_affinity_matrix(
-            self,
-            min_observations_per_peptide=1,
-            min_observations_per_allele=1):
-        """
-        Returns a tuple with a dense matrix of affinities, a dense matrix of
-        sample weights, a list of peptide labels for each row and a list of
-        allele labels for each column.
-
-        Parameters
-        ----------
-        min_observations_per_peptide : int
-            Drop peptide rows with fewer than this number of observed values.
-
-        min_observations_per_allele : int
-            Drop allele columns with fewer than this number of observed values.
-        """
-        allele_to_peptide_to_affinity_dict = self.to_nested_dictionary()
-        peptides_list = list(sorted(self.unique_peptides()))
-        peptide_order = {p: i for (i, p) in enumerate(peptides_list)}
-        n_peptides = len(peptides_list)
-        alleles_list = list(sorted(self.unique_alleles()))
-        allele_order = {a: i for (i, a) in enumerate(alleles_list)}
-        n_alleles = len(alleles_list)
-        shape = (n_peptides, n_alleles)
-        X = np.ones(shape, dtype=float) * np.nan
-        for (allele, allele_dict) in allele_to_peptide_to_affinity_dict.items():
-            column_index = allele_order[allele]
-            for (peptide, affinity) in allele_dict.items():
-                row_index = peptide_order[peptide]
-                X[row_index, column_index] = affinity
-
-        check_dense_pMHC_array(X, peptides_list, alleles_list)
-
-        # drop alleles and peptides with small amounts of data
-        return prune_dense_matrix_and_labels(
-            X, peptides_list, alleles_list,
-            min_observations_per_peptide=min_observations_per_peptide,
-            min_observations_per_allele=min_observations_per_allele)
-
-    def slice(self, indices):
-        """
-        Create a new AffinityMeasurementDataset by slicing through all columns of this dataset
-        with the given indices.
-        """
-        indices = np.asarray(indices)
-        max_index = indices.max()
-        n_total = len(self)
-        if max_index >= len(self):
-            raise ValueError("Invalid index %d for AffinityMeasurementDataset of size %d" % (
-                max_index, n_total))
-
-        df = self.to_dataframe()
-        df_subset = pd.DataFrame()
-        for column_name in df.columns:
-            df_subset[column_name] = np.asarray(df[column_name].values)[indices]
-        return self.__class__(df_subset)
-
-    def random_split(self, n=None, stratify_fn=None):
-        """
-        Randomly split the AffinityMeasurementDataset into smaller AffinityMeasurementDataset objects.
-
-        Parameters
-        ----------
-        n : int, optional
-            Size of the left split, half of the dataset if omitted.
-
-        stratify_fn : function, optional
-            Function that takes a row and returns bool, stratifying sampling
-            into two groups.
-
-        Returns a pair of AffinityMeasurementDataset objects.
-        """
-        n_total = len(self)
-        if n is None:
-            n = n_total // 2
-        elif n >= n_total:
-            raise ValueError(
-                "Training subset can't have more than %d samples (given n=%d)" % (
-                    n_total - 1,
-                    n))
-
-        index_groups = groupby_indices(
-            iterable=(pair[1] for pair in self.iterrows()),
-            key_fn=stratify_fn if stratify_fn else lambda _: 0)
-
-        fraction = float(n) / n_total
-
-        left_indices = []
-        right_indices = []
-
-        for _, group_indices in index_groups.items():
-            left, right = shuffle_split_list(group_indices, fraction)
-            left_indices.extend(left)
-            right_indices.extend(right)
-
-        left = self.slice(left_indices)
-        right = self.slice(right_indices)
-        return left, right
-
-    def cross_validation_iterator(
-            self,
-            test_allele=None,
-            n_folds=3,
-            shuffle=True,
-            stratify_fn=None):
-        """
-        Yields a sequence of training/test splits of this dataset.
-
-        If test_allele is None then split across all pMHC entries, otherwise
-        only split the measurements of the specified allele (other alleles
-        will then always be included in the training datasets).
-        """
-
-        n_total = len(self)
-        if test_allele is None:
-            test_samples = self
-            test_sample_indices = np.arange(n_total)
-        elif test_allele not in self.unique_alleles():
-            raise ValueError("Allele '%s' not in AffinityMeasurementDataset" % test_allele)
-
-        else:
-            test_sample_indices = np.where(self.alleles == test_allele)[0]
-            test_samples = self.slice(test_sample_indices)
-
-        n_test_samples = len(test_sample_indices)
-
-        # for uniformity we're using StratifiedKFold even for regular CV
-        # but with a single label/category
-        if stratify_fn is None:
-            stratify_labels = [0] * n_test_samples
-        else:
-            stratify_labels = [
-                stratify_fn(row) for (_, row) in test_samples.iterrows()
-            ]
-
-        assert len(stratify_labels) == n_test_samples
-
-        for _, test_indices_in_single_allele in StratifiedKFold(
-                y=stratify_labels,
-                n_folds=n_folds,
-                shuffle=shuffle):
-            test_data = test_samples.slice(test_indices_in_single_allele)
-            test_indices_across_alleles = test_sample_indices[test_indices_in_single_allele]
-            train_mask = np.ones(n_total, dtype=bool)
-            train_mask[test_indices_across_alleles] = False
-            train_data = self.slice(train_mask)
-            yield train_data, test_data
-
-    def split_allele_randomly_and_impute_training_set(
-            self,
-            allele,
-            n_training_samples=None,
-            stratify_fn=None,
-            **kwargs):
-        """
-        Split an allele into training and test sets, and then impute values
-        for peptides missing from the training set using data from other alleles
-        in this AffinityMeasurementDataset.
-
-        (apologies for the wordy name, this turns out to be a common operation)
-
-        Parameters
-        ----------
-        allele : str
-            Name of allele
-
-        n_training_samples : int, optional
-            Size of the training set to return for this allele.
-
-        stratify_fn : function
-            Function mapping from rows of the AffinityMeasurementDataset to booleans for stratifying
-            by two groups.
-
-        **kwargs : dict
-            Extra keyword arguments passed to AffinityMeasurementDataset.impute_missing_values
-
-        Returns three AffinityMeasurementDataset objects:
-            - training set with original pMHC affinities for given allele
-            - larger imputed training set for given allele
-            - test set
-        """
-        dataset_allele = self.get_allele(allele)
-        dataset_allele_train, dataset_allele_test = dataset_allele.random_split(
-            n=n_training_samples, stratify_fn=stratify_fn)
-        full_dataset_without_test_samples = self.difference(dataset_allele_test)
-        imputed_dataset = full_dataset_without_test_samples.impute_missing_values(**kwargs)
-        imputed_dataset_allele = imputed_dataset.get_allele(allele)
-        return dataset_allele_train, imputed_dataset_allele, dataset_allele_test
-
-    def drop_allele_peptide_lists(self, alleles, peptides):
-        """
-        Drop all allele-peptide pairs in the given lists.
-
-        Parameters
-        ----------
-        alleles : list of str
-
-        peptides : list of str
-
-        The two arguments are assumed to be the same length.
-
-        Returns AffinityMeasurementDataset of equal or smaller size.
-        """
-        if len(alleles) != len(peptides):
-            raise ValueError(
-                "Expected alleles to be same length (%d) as peptides (%d)" % (
-                    len(alleles), len(peptides)))
-        return self.drop_allele_peptide_pairs(list(zip(alleles, peptides)))
-
-    def drop_allele_peptide_pairs(self, allele_peptide_pairs):
-        """
-        Drop all allele-peptide tuple pairs in the given list.
-
-        Parameters
-        ----------
-        allele_peptide_pairs : list of (str, str) tuples
-        The two arguments are assumed to be the same length.
-
-        Returns AffinityMeasurementDataset of equal or smaller size.
-        """
-        require_iterable_of(allele_peptide_pairs, tuple)
-        keys_to_remove_set = set(allele_peptide_pairs)
-        remove_mask = np.array([
-            (k in keys_to_remove_set)
-            for k in zip(self.alleles, self.peptides)
-        ])
-        keep_mask = remove_mask == False
-        return self.slice(keep_mask)
-
-    def difference(self, other_dataset):
-        """
-        Remove all pMHC pairs in the other dataset from this one.
-
-        Parameters
-        ----------
-        other_dataset : AffinityMeasurementDataset
-
-        Returns a new Dataset object of equal or lesser size.
-        """
-        return self.drop_allele_peptide_lists(
-            alleles=other_dataset.alleles,
-            peptides=other_dataset.peptides)
-
-    def intersection(self, other_dataset):
-        not_in_other = self.difference(other_dataset)
-        return self.difference(not_in_other)
-
-    def impute_missing_values(
-            self,
-            imputation_method,
-            log_transform=True,
-            min_observations_per_peptide=1,
-            min_observations_per_allele=1):
-        """
-        Synthesize new measurements for missing pMHC pairs using the given
-        imputation_method.
-
-        Parameters
-        ----------
-        imputation_method : object
-            Expected to have a method called `complete` which takes a 2d array
-            of floats and replaces some or all NaN values with synthetic
-            affinities.
-
-        log_transform : bool
-            Transform affinities with to log10 values before imputation
-            (and then transform back afterward).
-
-        min_observations_per_peptide : int
-            Drop peptide rows with fewer than this number of observed values.
-
-        min_observations_per_allele : int
-            Drop allele columns with fewer than this number of observed values.
-
-        Returns AffinityMeasurementDataset with original pMHC affinities and additional
-        synthetic samples.
-        """
-        if isinstance(imputation_method, string_types):
-            imputation_method = imputer_from_name(imputation_method)
-
-        X_incomplete, peptide_list, allele_list = self.to_dense_pMHC_affinity_matrix(
-            min_observations_per_peptide=min_observations_per_peptide,
-            min_observations_per_allele=min_observations_per_allele)
-
-        if imputation_method is None:
-            logging.warn("No imputation method given")
-            # without an imputation method we should leave all the values
-            # incomplete and return an empty dataset
-            X_complete = np.ones_like(X_incomplete) * np.nan
-        else:
-            if log_transform:
-                X_incomplete = np.log(X_incomplete)
-
-            if np.isnan(X_incomplete).sum() == 0:
-                # if all entries in the matrix are already filled in then don't
-                # try using an imputation algorithm since it might raise an
-                # exception.
-                logging.warn("No missing values, using original data instead of imputation")
-                X_complete = X_incomplete
-            else:
-                X_complete = imputation_method.complete(X_incomplete)
-
-            if log_transform:
-                X_complete = np.exp(X_complete)
-
-        allele_to_peptide_to_affinity_dict = dense_pMHC_matrix_to_nested_dict(
-            X=X_complete,
-            peptide_list=peptide_list,
-            allele_list=allele_list)
-        return self.from_nested_dictionary(allele_to_peptide_to_affinity_dict)
diff --git a/mhcflurry/amino_acid.py b/mhcflurry/amino_acid.py
index 3762a42e..e5e59cf1 100644
--- a/mhcflurry/amino_acid.py
+++ b/mhcflurry/amino_acid.py
@@ -17,84 +17,10 @@ from __future__ import (
     division,
     absolute_import,
 )
-import numpy as np
+import collections
+from copy import copy
 
-
-class Alphabet(object):
-    """
-    Used to track the order of amino acids used for peptide encodings
-    """
-
-    def __init__(self, **kwargs):
-        self.letters_to_names = {}
-        for (k, v) in kwargs.items():
-            self.add(k, v)
-
-    def add(self, letter, name):
-        assert letter not in self.letters_to_names
-        assert len(letter) == 1
-        self.letters_to_names[letter] = name
-
-    def letters(self):
-        return list(sorted(self.letters_to_names.keys()))
-
-    def names(self):
-        return [self.letters_to_names[k] for k in self.letters()]
-
-    def index_dict(self):
-        return {c: i for (i, c) in enumerate(self.letters())}
-
-    def copy(self):
-        return Alphabet(**self.letters_to_names)
-
-    def __getitem__(self, k):
-        return self.letters_to_names[k]
-
-    def __setitem__(self, k, v):
-        self.add(k, v)
-
-    def __len__(self):
-        return len(self.letters_to_names)
-
-    def index_encoding_list(self, peptides):
-        index_dict = self.index_dict()
-        return [
-            [index_dict[amino_acid] for amino_acid in peptide]
-            for peptide in peptides
-        ]
-
-    def index_encoding(self, peptides, peptide_length):
-        """
-        Encode a set of equal length peptides as a matrix of their
-        amino acid indices.
-        """
-        X = np.zeros((len(peptides), peptide_length), dtype=int)
-        index_dict = self.index_dict()
-        for i, peptide in enumerate(peptides):
-            for j, amino_acid in enumerate(peptide):
-                X[i, j] = index_dict[amino_acid]
-        return X
-
-    def hotshot_encoding(
-            self,
-            peptides,
-            peptide_length):
-        """
-        Encode a set of equal length peptides as a binary matrix,
-        where each letter is transformed into a length 20 vector with a single
-        element that is 1 (and the others are 0).
-        """
-        shape = (len(peptides), peptide_length, 20)
-        index_dict = self.index_dict()
-        X = np.zeros(shape, dtype=bool)
-        for i, peptide in enumerate(peptides):
-            for j, amino_acid in enumerate(peptide):
-                k = index_dict[amino_acid]
-                X[i, j, k] = 1
-        return X
-
-
-common_amino_acids = Alphabet(**{
+COMMON_AMINO_ACIDS = collections.OrderedDict(sorted({
     "A": "Alanine",
     "R": "Arginine",
     "N": "Asparagine",
@@ -115,9 +41,9 @@ common_amino_acids = Alphabet(**{
     "W": "Tryptophan",
     "Y": "Tyrosine",
     "V": "Valine",
-})
-common_amino_acid_letters = common_amino_acids.letters()
+}.items()))
+COMMON_AMINO_ACIDS_WITH_UNKNOWN = copy(COMMON_AMINO_ACIDS)
+COMMON_AMINO_ACIDS_WITH_UNKNOWN["X"] = "Unknown"
 
-amino_acids_with_unknown = common_amino_acids.copy()
-amino_acids_with_unknown.add("X", "Unknown")
-amino_acids_with_unknown_letters = amino_acids_with_unknown.letters()
+AMINO_ACID_INDEX = dict(
+    (letter, i) for (i, letter) in enumerate(COMMON_AMINO_ACIDS_WITH_UNKNOWN))
diff --git a/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py b/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py
index 47be4dca..58d0101e 100644
--- a/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py
+++ b/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py
@@ -4,7 +4,7 @@ import pandas
 from numpy import log, exp, nanmean
 
 from ...affinity_measurement_dataset import AffinityMeasurementDataset
-from ...class1_allele_specific import Class1BindingPredictor
+from ...class1_affinity_prediction import Class1BindingPredictor
 from ...common import normalize_allele_name
 
 from .mhc_binding_component_model_base import MHCBindingComponentModelBase
diff --git a/mhcflurry/class1_affinity_prediction/__init__.py b/mhcflurry/class1_affinity_prediction/__init__.py
new file mode 100644
index 00000000..7deec3d1
--- /dev/null
+++ b/mhcflurry/class1_affinity_prediction/__init__.py
@@ -0,0 +1,7 @@
+from __future__ import absolute_import
+
+from .class1_binding_predictor import Class1BindingPredictor
+
+__all__ = [
+    'Class1BindingPredictor',
+]
diff --git a/mhcflurry/class1_affinity_prediction/class1_binding_predictor.py b/mhcflurry/class1_affinity_prediction/class1_binding_predictor.py
new file mode 100644
index 00000000..4424aee9
--- /dev/null
+++ b/mhcflurry/class1_affinity_prediction/class1_binding_predictor.py
@@ -0,0 +1,636 @@
+import time
+import os
+import tempfile
+import logging
+
+import numpy
+import pandas
+
+import keras.models
+import keras.layers.pooling
+import keras.regularizers
+from keras.layers import Input
+import keras.layers.merge
+from keras.layers.core import Dense, Flatten, Dropout, Reshape
+from keras.layers.embeddings import Embedding
+from keras.layers.normalization import BatchNormalization
+from keras.callbacks import EarlyStopping
+import keras.backend as K
+import theano.tensor
+
+from mhcflurry.hyperparameters import HyperparameterDefaults
+
+from ..encodable_sequences import EncodableSequences
+from ..regression_target import to_ic50, from_ic50
+from ..common import random_peptides, amino_acid_distribution
+
+
+
+class Class1BindingPredictor(object):
+    network_hyperparameter_defaults = HyperparameterDefaults(
+        kmer_size=15,
+        use_embedding=True,
+        embedding_input_dim=21,
+        embedding_output_dim=8,
+        pseudosequence_use_embedding=True,
+        pseudosequence_generate_weights=False,
+        extra_data_length=None,
+        extra_data_layer_sizes=(),
+        multiple_output_strategy=None,
+        multiple_output_activity_regularizer=1.0,
+        layer_sizes=[100, 32],
+        dense_layer_l1_regularization=0.0,
+        dense_layer_l2_regularization=0.0,
+        activation="tanh",
+        init="glorot_uniform",
+        output_activation="sigmoid",
+        dropout_probability=0.0,
+        batch_normalization=True,
+        embedding_init_method="glorot_uniform",
+        locally_connected=None,
+        concatenate_locally_connected_with_raw_embedding=False,
+        optimizer="rmsprop",
+    )
+
+    input_encoding_hyperparameter_defaults = HyperparameterDefaults(
+        left_edge=4,
+        right_edge=4)
+
+    fit_hyperparameter_defaults = HyperparameterDefaults(
+        max_epochs=250,
+        validation_split=None,
+        early_stopping=False,
+        take_best_epoch=False,
+        random_negative_rate=0.0,
+        random_negative_constant=0,
+        random_negative_affinity_min=50000.0,
+        random_negative_affinity_max=50000.0,
+        random_negative_match_distribution=True,
+        random_negative_distribution_smoothing=0.0)
+
+    early_stopping_hyperparameter_defaults = HyperparameterDefaults(
+        monitor='val_loss',
+        min_delta=0,
+        patience=0,
+        verbose=1,
+        mode='auto')
+
+    hyperparameter_defaults = network_hyperparameter_defaults.extend(
+        input_encoding_hyperparameter_defaults).extend(
+        fit_hyperparameter_defaults).extend(
+        early_stopping_hyperparameter_defaults)
+
+    def __init__(self, **hyperparameters):
+        self.hyperparameters = self.hyperparameter_defaults.with_defaults(
+            hyperparameters)
+        self.network = None
+        self.fit_history = None
+        self.fit_seconds = None
+        self.output_names = None
+
+    def __getstate__(self):
+        result = dict(self.__dict__)
+        del result['network']
+        result['fit_history'] = None
+        result['network_json'] = self.network.to_json()
+        result['network_weights'] = self.get_weights()
+        return result
+
+    def __setstate__(self, state):
+        network_json = state.pop('network_json')
+        network_weights = state.pop('network_weights')
+        self.__dict__.update(state)
+        self.network = keras.models.model_from_json(network_json)
+        self.set_weights(network_weights)
+
+    def get_weights(self):
+        """
+        Returns weights, which can be passed to set_weights later.
+        """
+        return [x.copy() for x in self.network.get_weights()]
+
+    def set_weights(self, weights):
+        """
+        Reset the model weights.
+        """
+        self.network.set_weights(weights)
+
+    def peptides_to_network_input(self, peptides):
+        encoder = EncodableSequences.create(peptides)
+        if self.hyperparameters['use_embedding']:
+            encoded = encoder.fixed_length_categorical_encoding(
+                max_length=self.hyperparameters['kmer_size'],
+                **self.input_encoding_hyperparameter_defaults.subselect(
+                    self.hyperparameters))
+        else:
+            encoded = encoder.fixed_length_one_hot_encoding(
+                max_length=self.hyperparameters['kmer_size'],
+                **self.input_encoding_hyperparameter_defaults.subselect(
+                    self.hyperparameters))
+        assert len(encoded) == len(peptides)
+        return encoded
+
+    def pseudosequence_to_network_input(self, pseudosequences):
+        encoder = EncodableSequences.create(pseudosequences)
+        if self.hyperparameters['pseudosequence_use_embedding']:
+            encoded = encoder.categorical_encoding()
+        else:
+            encoded = encoder.one_hot_encoding()
+        assert len(encoded) == len(pseudosequences)
+        return encoded
+
+    def fit(
+            self,
+            peptides,
+            affinities,
+            output_assignments,
+            allele_pseudosequences=None,
+            sample_weights=None,
+            verbose=1):
+        self.output_names = sorted(set(output_assignments))
+
+        encodable_peptides = EncodableSequences.create(peptides)
+        peptide_encoding = self.peptides_to_network_input(encodable_peptides)
+        peptide_to_encoding = dict(
+            zip(encodable_peptides.sequences, peptide_encoding))
+
+        length_counts = (
+            pandas.Series(encodable_peptides.sequences)
+            .str.len().value_counts().to_dict())
+
+        num_random_negative = {}
+        for length in range(8, 16):
+            num_random_negative[length] = int(
+                length_counts.get(length, 0) *
+                self.hyperparameters['random_negative_rate'] +
+                self.hyperparameters['random_negative_constant'])
+        num_random_negative = pandas.Series(num_random_negative)
+        print("Random negative counts per length: %s" % (
+            str(num_random_negative)))
+
+        aa_distribution = None
+        if self.hyperparameters['random_negative_match_distribution']:
+            aa_distribution = amino_acid_distribution(
+                encodable_peptides.sequences,
+                smoothing=self.hyperparameters[
+                    'random_negative_distribution_smoothing'])
+            print("Using amino acid distribution for random negative: %s" % (
+                str(aa_distribution)))
+
+        y_values = from_ic50(affinities)
+        assert numpy.isnan(y_values).sum() == 0, (
+            numpy.isnan(y_values).sum())
+
+        if self.hyperparameters['multiple_output_strategy'] is not None:
+            network_output_names = self.output_names
+            y_df = pandas.DataFrame({
+                'y': y_values,
+                'output_assignment': output_assignments,
+            }).pivot(values="y", columns="output_assignment")
+            y_df["peptide"] = encodable_peptides.sequences
+            y_df.groupby("peptide").mean()
+            network_output_names = self.output_names
+
+            y_dict = dict((c, y_df[c].values) for c in y_df.columns)
+            x = numpy.stack(
+                y_df.peptide.map(peptide_to_encoding).values)
+        else:
+            network_output_names = ["output"]
+            y_dict = {'output': y_values}
+            x = peptide_encoding
+
+        try:
+            callbacks = []
+            if self.hyperparameters['take_best_epoch']:
+                weights_file_fd = tempfile.NamedTemporaryFile(
+                    prefix="mhcflurry-model-checkpoint-",
+                    suffix=".hdf5",
+                    delete=False)
+                weights_file = weights_file_fd.name
+                print("Checkpointing to: %s" % weights_file)
+                weights_file_fd.close()
+
+                checkpointer = keras.callbacks.ModelCheckpoint(
+                    weights_file,
+                    monitor="val_loss",
+                    save_best_only=True,
+                    save_weights_only=False)
+                callbacks.append(checkpointer)
+            else:
+                weights_file = None
+
+            if self.hyperparameters['early_stopping']:
+                assert self.hyperparameters['validation_split'] > 0
+                callback = EarlyStopping(
+                    **self.early_stopping_hyperparameter_defaults.subselect(
+                        self.hyperparameters))
+                callbacks.append(callback)
+
+            x_dict = {
+                'peptide': x,
+            }
+            pseudosequence_length = None
+            if allele_pseudosequences is not None:
+                pseudosequences_input = self.pseudosequence_to_network_input(
+                    allele_pseudosequences)
+                pseudosequence_length = len(pseudosequences_input[0])
+                x_dict['pseudosequence'] = pseudosequences_input
+
+            if self.network is None:
+                self.network = self.make_network(
+                    output_names=network_output_names,
+                    pseudosequence_length=pseudosequence_length,
+                    **self.network_hyperparameter_defaults.subselect(
+                        self.hyperparameters))
+
+            start = time.time()
+            if num_random_negative.sum() == 0:
+                self.fit_history = self.network.fit(
+                    x_dict,
+                    y_dict,
+                    shuffle=True,
+                    verbose=verbose,
+                    epochs=self.hyperparameters['max_epochs'],
+                    validation_split=self.hyperparameters['validation_split'],
+                    sample_weight=sample_weights,
+                    callbacks=callbacks)
+            else:
+                assert len(y_dict) == 1
+                y_dict['output'] = numpy.concatenate([
+                    from_ic50(
+                        numpy.random.uniform(
+                            self.hyperparameters[
+                                'random_negative_affinity_min'],
+                            self.hyperparameters[
+                                'random_negative_affinity_max'],
+                            int(num_random_negative.sum()))),
+                    y_dict['output'],
+                ])
+                if sample_weights is not None:
+                    sample_weights = numpy.concatenate([
+                        numpy.ones(int(num_random_negative.sum())),
+                        sample_weights])
+                val_losses = []
+                min_val_loss_iteration = None
+                min_val_loss = None
+
+                for i in range(self.hyperparameters['max_epochs']):
+                    # TODO: handle pseudosequence here
+                    assert len(x_dict) == 1
+                    random_negative_peptides_list = []
+                    for (length, count) in num_random_negative.items():
+                        random_negative_peptides_list.extend(
+                            random_peptides(
+                                count,
+                                length=length,
+                                distribution=aa_distribution))
+                        #peptide_lengths.extend([length] * count)
+                    #peptide_lengths.extend([
+                    #    len(s) for s in encodable_peptides.sequences
+                    #])
+                    random_negative_peptides_encodable = (
+                        EncodableSequences.create(
+                            random_negative_peptides_list))
+                    random_negative_peptides_encoding = (
+                        self.peptides_to_network_input(
+                            random_negative_peptides_encodable))
+                    x_dict["peptide"] = numpy.concatenate([
+                        random_negative_peptides_encoding, x
+                    ])
+                    print("Epoch %3d / %3d. Min val loss at epoch %s" % (
+                        i,
+                        self.hyperparameters['max_epochs'],
+                        min_val_loss_iteration))
+                    self.fit_history = self.network.fit(
+                        x_dict,
+                        y_dict,
+                        shuffle=True,
+                        verbose=verbose,
+                        epochs=1,
+                        validation_split=self.hyperparameters[
+                            'validation_split'],
+                        sample_weight=sample_weights,
+                        callbacks=callbacks)
+
+                    if self.hyperparameters['validation_split']:
+                        val_loss = self.fit_history.history['val_loss'][-1]
+                        val_losses.append(val_loss)
+
+                        if min_val_loss is None or val_loss <= min_val_loss:
+                            min_val_loss = val_loss
+                            min_val_loss_iteration = i
+
+                        if self.hyperparameters['early_stopping']:
+                            threshold = (
+                                min_val_loss_iteration +
+                                self.hyperparameters['patience'])
+                            if i > threshold:
+                                print("Early stopping")
+                                break
+            if weights_file is not None:
+                self.network.load_weights(weights_file)
+            self.fit_seconds = time.time() - start
+
+        finally:
+            if weights_file is not None:
+                os.unlink(weights_file)
+
+    def predict(self, peptides, allele_pseudosequences=None):
+        x_dict = {
+            'peptide': self.peptides_to_network_input(peptides)
+        }
+        if allele_pseudosequences is not None:
+            pseudosequences_input = self.pseudosequence_to_network_input(
+                allele_pseudosequences)
+            x_dict['pseudosequence'] = pseudosequences_input
+        predictions_raw = numpy.array(self.network.predict(x_dict))
+        if predictions_raw.ndim == 3:
+            predictions_raw = numpy.squeeze(predictions_raw, axis=2).T
+
+        assert predictions_raw.shape == (
+            len(peptides),
+            len(self.network.output_layers)), predictions_raw.shape
+
+        result = dict(
+            (k.name, to_ic50(v))
+            for (k, v)
+            in zip(self.network.output_layers, predictions_raw.T))
+
+        if set(result) != set(self.output_names):
+            # Simulate multiple outputs
+            assert set(result) == set(["output"]), set(result)
+            result = dict((k, result["output"]) for k in self.output_names)
+        return result
+
+    @staticmethod
+    def make_network(
+            output_names,
+            pseudosequence_length,
+            kmer_size,
+            use_embedding,
+            embedding_input_dim,
+            embedding_output_dim,
+            pseudosequence_use_embedding,
+            pseudosequence_generate_weights,
+            extra_data_length,
+            extra_data_layer_sizes,
+            multiple_output_strategy,
+            multiple_output_activity_regularizer,
+            layer_sizes,
+            dense_layer_l1_regularization,
+            dense_layer_l2_regularization,
+            activation,
+            init,
+            output_activation,
+            dropout_probability,
+            batch_normalization,
+            embedding_init_method,
+            locally_connected,
+            concatenate_locally_connected_with_raw_embedding,
+            optimizer):
+
+        if multiple_output_strategy is None:
+            assert len(output_names) == 1
+        else:
+            assert multiple_output_strategy in ("simple", "bottleneck")
+
+        if use_embedding:
+            peptide_input = Input(
+                shape=(kmer_size,), dtype='int32', name='peptide')
+            raw_embedding_layer = Embedding(
+                input_dim=embedding_input_dim,
+                output_dim=embedding_output_dim,
+                input_length=kmer_size,
+                embeddings_initializer=embedding_init_method)(peptide_input)
+        else:
+            peptide_input = Input(
+                shape=(kmer_size, 21), dtype='float32', name='peptide')
+            raw_embedding_layer = peptide_input
+
+        inputs = [peptide_input]
+
+        embedding_layer = raw_embedding_layer
+
+        if locally_connected is not None:
+            for locally_connected_params in locally_connected:
+                embedding_layer = keras.layers.LocallyConnected1D(
+                    **locally_connected_params)(embedding_layer)
+            if concatenate_locally_connected_with_raw_embedding:
+                embedding_layer = keras.layers.concatenate([
+                    Flatten()(raw_embedding_layer),
+                    Flatten()(embedding_layer),
+                ])
+            else:
+                embedding_layer = Flatten()(embedding_layer)
+        else:
+            embedding_layer = Flatten()(embedding_layer)
+        if batch_normalization:
+            embedding_layer = BatchNormalization()(embedding_layer)
+        if dropout_probability:
+            embedding_layer = Dropout(dropout_probability)(embedding_layer)
+
+        if extra_data_length:
+            extra_info_input = Input(
+                shape=(extra_data_length,), dtype='float32', name='extra')
+            inputs.append(extra_info_input)
+
+            for layer_size in extra_data_layer_sizes:
+                extra_info_input = Dense(layer_size, activation=activation)(
+                    extra_info_input)
+                if batch_normalization:
+                    extra_info_input = BatchNormalization()(
+                        extra_info_input)
+                if dropout_probability > 0:
+                    extra_info_input = Dropout(dropout_probability)(
+                        extra_info_input)
+            x = keras.layers.concatenate([embedding_layer, extra_info_input])
+        else:
+            x = embedding_layer
+
+        if pseudosequence_length:
+            if pseudosequence_use_embedding:
+                pseudosequence_input = Input(
+                    shape=(pseudosequence_length,),
+                    dtype='int32',
+                    name='pseudosequence')
+                pseudo_embedding_layer = Embedding(
+                    input_dim=embedding_input_dim,
+                    output_dim=embedding_output_dim,
+                    input_length=pseudosequence_length,
+                    embeddings_initializer=embedding_init_method)(
+                    pseudosequence_input)
+            else:
+                pseudosequence_input = Input(
+                    shape=(pseudosequence_length, 21),
+                    dtype='float32', name='peptide')
+                pseudo_embedding_layer = pseudosequence_input
+            inputs.append(pseudosequence_input)
+            pseudo_embedding_layer = Flatten()(pseudo_embedding_layer)
+            
+            if pseudosequence_generate_weights:
+                pseudo_dense = Dense(
+                    32, activation="tanh")(pseudo_embedding_layer)
+                
+                num_filters = 7
+                kernel_size = 3
+                output_length = 11
+                
+                pseudo_lc1_kernel_shape = (output_length * kernel_size * embedding_output_dim, num_filters)
+                pseudo_lc2_kernel_shape = (output_length * kernel_size * num_filters, num_filters)
+                
+                
+                pseudo_lc1_kernel = Dense(numpy.prod(pseudo_lc1_kernel_shape), activation="tanh")(pseudo_dense)
+                pseudo_lc1_bias = Dense(num_filters * 11, activation="tanh")(pseudo_dense)
+                pseudo_lc2_kernel = Dense(numpy.prod(pseudo_lc2_kernel_shape), activation="tanh")(pseudo_dense)
+                pseudo_lc2_bias = Dense(num_filters * 11, activation="tanh")(pseudo_dense)
+                pseudo_hidden_kernel = Dense(num_filters * 11 * 32, activation="tanh")(pseudo_dense)
+                pseudo_hidden_bias = Dense(32, activation="tanh")(pseudo_dense)
+                
+                pseudo_lc1_kernel = Reshape(pseudo_lc1_kernel_shape)(pseudo_lc1_kernel)
+                #pseudo_lc1_bias = Reshape((11, num_filters))(pseudo_lc1_bias)
+                pseudo_lc2_kernel = Reshape(pseudo_lc2_kernel_shape)(pseudo_lc2_kernel)
+                #pseudo_lc2_bias = Reshape((11, num_filters))(pseudo_lc2_bias)
+                pseudo_hidden_kernel = Reshape((num_filters * 11, 32))(pseudo_hidden_kernel)
+                
+                def make_peptide_tiles(input_tensor):
+                    components = []
+                    for start in range(11):
+                        components.append(K.flatten(
+                            input_tensor[:, start : start + kernel_size]))
+                    return K.concatenate(components, axis=0)
+                
+                print("Raw embedding layer", raw_embedding_layer)
+                peptide_tiles = keras.layers.Lambda(
+                    make_peptide_tiles,
+                    output_shape=(11 * kernel_size * embedding_output_dim,))(
+                    raw_embedding_layer)
+                
+                def merger(inputs):
+                    # TODO: A*b + c
+                    print("inside merger", inputs)
+                    kernel = inputs[0]
+                    bias = inputs[1]
+                    data = inputs[2]
+                    print("kernel", kernel._keras_shape)
+                    print("data", data._keras_shape)
+                    _, kernel_size, filters = kernel._keras_shape
+                    print(kernel_size, filters)
+                    
+                    #dots = []
+                    #for f in range(filters):
+                    #    dots.append(K.dot(data, kernel[:,:,f]))))
+                    
+                    #result = K.reshape(K.concatenate(dots), (-1, )
+                    #print("after dot", result._keras_shape)
+                    #assert result._keras_shape[1:] == (), result._keras_shape
+                    #result += K.reshape(bias, (1, output_length, filters))
+                    return result
+                
+                lc1_output = keras.layers.merge(
+                    [pseudo_lc1_kernel, pseudo_lc1_bias, peptide_tiles],
+                    mode=merger,
+                    output_shape=(11 * num_filters,)
+                )
+                print("merged", lc1_output._keras_shape)
+                lc1_output = keras.layers.Activation("relu")(lc1_output)
+                
+                #lc1_output_tiles = keras.layers.Lambda(
+                #    make_peptide_tiles,
+                #    output_shape=(11 * kernel_size * num_filters,))(lc1_output)
+                
+                #lc2_output = keras.layers.merge(
+                #    [pseudo_lc1_kernel, pseudo_lc1_bias, lc1_output_tiles],
+                #    mode=merger,
+                #    output_shape=(11, num_filters)
+                #)                
+                #lc2_output = keras.layers.Activation("relu")(lc2_output)
+                #lc2_output = Flatten()(lc2_output)
+                lc2_output = lc1_output
+                
+                #def dense_merger(inputs):
+                #    print("inside dense merger", inputs)
+                #    print([i._keras_shape for i in inputs])
+                #    return inputs[0]
+                
+                x = keras.layers.merge(
+                    [pseudo_hidden_kernel, pseudo_hidden_bias, lc2_output],
+                    mode=merger,
+                    output_shape=(32, 1))
+                x = keras.layers.Activation("relu")(x)
+                print("x shape", type(x), x._keras_shape)
+            else:
+                x = keras.layers.concatenate([
+                    x, pseudo_embedding_layer
+                ])
+            
+        for layer_size in layer_sizes:
+            kernel_regularizer = None
+            l1 = dense_layer_l1_regularization
+            l2 = dense_layer_l2_regularization
+            if l1 > 0 or l2 > 0:
+                kernel_regularizer = keras.regularizers.l1_l2(l1, l2)
+
+            x = Dense(
+                layer_size,
+                activation=activation,
+                kernel_regularizer=kernel_regularizer)(x)
+            if batch_normalization:
+                x = BatchNormalization()(x)
+            if dropout_probability > 0:
+                x = Dropout(dropout_probability)(x)
+
+        outputs = []
+        if multiple_output_strategy == "bottleneck":
+            print("x shape2", type(x), x._keras_shape)
+            bottleneck = Dense(
+                1,
+                kernel_initializer=init,
+                activation="linear")(x)
+
+            peptide_average = keras.layers.pooling.AveragePooling1D(
+                pool_size=1)(raw_embedding_layer)
+            peptide_average = Flatten()(peptide_average)
+
+            peptide_and_bottleneck = keras.layers.concatenate([
+                bottleneck, peptide_average
+            ])
+
+            for output_name in output_names:
+                nudge = Dense(
+                    8,
+                    kernel_initializer=init,
+                    activation=activation,
+                )(peptide_and_bottleneck)
+
+                nudge = Dense(
+                    1,
+                    kernel_initializer="zeros",
+                    activity_regularizer=keras.regularizers.l2(
+                        multiple_output_activity_regularizer))(nudge)
+
+                output = keras.layers.add(
+                    [bottleneck, nudge])
+                output = keras.layers.Activation(
+                    output_activation, name=output_name)(output)
+                outputs.append(output)
+        else:
+            for output_name in output_names:
+                output = Dense(
+                    1,
+                    kernel_initializer=init,
+                    activation=output_activation,
+                    name=output_name)(x)
+                outputs.append(output)
+        model = keras.models.Model(inputs=inputs, outputs=outputs)
+        model.compile(
+            loss="mse" if len(output_names) == 1 else mse_loss_supporting_nans,
+            optimizer=optimizer)
+        return model
+
+
+def mse_loss_supporting_nans(y_true, y_pred):
+    squared = K.square(y_pred - y_true)
+    loss = K.sum(
+        K.switch(theano.tensor.isnan(y_true), 0.0, squared),
+        axis=-1)
+    return loss
diff --git a/mhcflurry/class1_allele_specific/cv_and_train_command.py b/mhcflurry/class1_affinity_prediction/cv_and_train_command.py
similarity index 100%
rename from mhcflurry/class1_allele_specific/cv_and_train_command.py
rename to mhcflurry/class1_affinity_prediction/cv_and_train_command.py
diff --git a/mhcflurry/class1_affinity_prediction/multi_allele_predictor_ensemble.py b/mhcflurry/class1_affinity_prediction/multi_allele_predictor_ensemble.py
new file mode 100644
index 00000000..4e8b965c
--- /dev/null
+++ b/mhcflurry/class1_affinity_prediction/multi_allele_predictor_ensemble.py
@@ -0,0 +1,300 @@
+import collections
+import pickle
+import time
+import hashlib
+from os.path import join, exists
+
+import numpy
+import pandas
+
+import mhcnames
+
+from ..encodable_sequences import EncodableSequences
+
+from .class1_binding_predictor import Class1BindingPredictor
+
+
+class MultiAllelePredictorEnsemble(object):
+    def __init__(
+            self,
+            allele_to_allele_specific_models={},
+            class1_pan_allele_models=[],
+            allele_to_pseudosequence=None,
+            manifest_df=None):
+
+        if class1_pan_allele_models:
+            assert allele_to_pseudosequence, "Pseudosequences required"
+
+        self.allele_to_allele_specific_models = (
+            allele_to_allele_specific_models)
+        self.class1_pan_allele_models = class1_pan_allele_models
+        self.allele_to_pseudosequence = allele_to_pseudosequence
+
+        if manifest_df is None:
+            manifest_df = pandas.DataFrame()
+            manifest_df["name"] = []
+            manifest_df["allele"] = []
+            manifest_df["hyperparameters"] = []
+            manifest_df["history"] = []
+            manifest_df["num_measurements"] = []
+            manifest_df["random_negative_rate"] = []
+            manifest_df["sources"] = []
+            manifest_df["fit_seconds"] = []
+            manifest_df["model"] = []
+        self.manifest_df = manifest_df
+
+    def save(self, models_dir, model_names_to_write=None):
+        num_models = len(self.class1_pan_allele_models) + sum(
+            len(v) for v in self.allele_to_allele_specific_models.values())
+        assert len(self.manifest_df) == num_models, (
+            "Manifest seems out of sync with models: %d vs %d entries" % (
+                len(self.manifest_df), num_models))
+
+        if model_names_to_write is None:
+            # Write all models
+            models_names_to_write = self.manifest_df.model_name.values
+
+        sub_manifest_df = self.manifest_df.ix[
+            self.manifest_df.model_name.isin(models_names_to_write)
+        ]
+
+        for (_, row) in sub_manifest_df.iterrows():
+            model_path = join(models_dir, "%s.pickle" % row.name)
+            with open(join(model_path), 'wb') as fd:
+                pickle.dump(row.model, fd, protocol=2)
+            print("Wrote: %s" % model_path)
+
+        write_manifest_df = self.manifest_df[[
+            c for c in self.manifest_df.columns if c != "model"
+        ]]
+        manifest_path = join(models_dir, "manifest.csv")
+        write_manifest_df.to_csv(manifest_path, index=False)
+        print("Wrote: %s" % manifest_path)
+
+    @staticmethod
+    def model_name(allele, num):
+        random_string = hashlib.sha1(
+            str(time.time()).encode()).hexdigest()[:16]
+        return "%s-%d-%s" % (allele, num, random_string)
+
+    @staticmethod
+    def load(models_dir, max_models=None):
+        manifest_path = join(models_dir, "manifest.csv")
+        manifest_df = pandas.read_csv(manifest_path, nrows=max_models)
+        manifest_df["hyperparameters"] = manifest_df.hyperparameters.map(eval)
+        manifest_df["history"] = manifest_df.history.map(eval)
+
+        allele_to_allele_specific_models = collections.defaultdict(list)
+        class1_pan_allele_models = []
+        all_models = []
+        for (_, row) in manifest_df.iterrows():
+            model_path = join(models_dir, "%s.pickle" % row["name"])
+            print("Loading model: %s" % model_path)
+            with open(model_path, 'rb') as fd:
+                model = pickle.load(fd)
+            if row.allele == "pan-class1":
+                class1_pan_allele_models.append(model)
+            else:
+                allele_to_allele_specific_models[row.allele].append(model)
+            all_models.append(model)
+
+        manifest_df["model"] = all_models
+
+        pseudosequences = None
+        if exists(join(models_dir, "pseudosequences.csv")):
+            pseudosequences = pandas.read_csv(
+                join(models_dir, "pseudosequences.csv"),
+                index_col="allele").to_dict()
+
+        print(
+            "Loaded %d class1 pan allele predictors, %d pseudosequences, and "
+            "%d allele specific models: %s" % (
+                len(class1_pan_allele_models),
+                len(pseudosequences) if pseudosequences else 0,
+                sum(len(v) for v in allele_to_allele_specific_models.values()),
+                ", ".join(
+                    "%s (%d)" % (allele, len(v))
+                    for (allele, v)
+                    in sorted(allele_to_allele_specific_models.items()))))
+
+        result = MultiAllelePredictorEnsemble(
+            allele_to_allele_specific_models=allele_to_allele_specific_models,
+            class1_pan_allele_models=class1_pan_allele_models,
+            allele_to_pseudosequence=pseudosequences,
+            manifest_df=manifest_df)
+        return result
+
+    def fit_allele_specific_predictors(
+            self,
+            n_models,
+            architecture_hyperparameters,
+            allele,
+            peptides,
+            affinities,
+            output_assignments=None,
+            models_dir_for_save=None,
+            verbose=1):
+
+        allele = mhcnames.normalize_allele_name(allele)
+        models = self._fit_predictors(
+            n_models=n_models,
+            architecture_hyperparameters=architecture_hyperparameters,
+            peptide=peptides,
+            affinities=affinities,
+            output_assignments=output_assignments,
+            allele_pseudosequences=None,
+            verbose=verbose)
+
+        models_list = []
+        for (i, model) in enumerate(models):
+            name = self.model_name(allele, i)
+            models_list.append(model)  # models is a generator
+            row = pandas.Series({
+                "allele": allele,
+                "hyperparameters": architecture_hyperparameters,
+                "history": model.fit_history.history,
+                "name": name,
+                "num_measurements": len(peptides),
+                "fit_seconds": model.fit_seconds,
+                "model": model,
+            }).to_frame().T
+            self.manifest_df = pandas.concat(
+                [self.manifest_df, row], ignore_index=True)
+            if models_dir_for_save:
+                self.save(models_dir_for_save, model_names_to_write=[name])
+
+        if allele not in self.allele_to_allele_specific_models:
+            self.allele_to_allele_specific_models[allele] = []
+        self.allele_to_allele_specific_models[allele].extend(models_list)
+        return models
+
+    def fit_class1_pan_allele_models(
+            self,
+            n_models,
+            architecture_hyperparameters,
+            alleles,
+            peptides,
+            affinities,
+            output_assignments=None,
+            models_dir_for_save=None,
+            verbose=1):
+
+        alleles = pandas.Series(alleles).map(mhcnames.normalize_allele_name)
+        allele_pseudosequences = alleles.map(self.allele_to_pseudosequence)
+
+        models = self._fit_predictors(
+            n_models=n_models,
+            architecture_hyperparameters=architecture_hyperparameters,
+            peptides=peptides,
+            affinities=affinities,
+            output_assignments=output_assignments,
+            allele_pseudosequences=allele_pseudosequences)
+
+        models_list = []
+        for (i, model) in enumerate(models):
+            name = self.model_name("pan-class1", i)
+            models_list.append(model)  # models is a generator
+            row = pandas.Series({
+                "allele": "pan-class1",
+                "hyperparameters": architecture_hyperparameters,
+                "history": model.fit_history.history,
+                "name": name,
+                "num_measurements": len(peptides),
+                "fit_seconds": model.fit_seconds,
+                "model": model,
+            }).to_frame().T
+            self.manifest_df = pandas.concat(
+                [self.manifest_df, row], ignore_index=True)
+            if models_dir_for_save:
+                self.save(models_dir_for_save, model_names_to_write=[name])
+
+        self.class1_pan_allele_models.extend(models_list)
+        return models
+
+    def _fit_predictors(
+            self,
+            n_models,
+            architecture_hyperparameters,
+            peptides,
+            affinities,
+            output_assignments,
+            allele_pseudosequences,
+            verbose=1):
+
+        encodable_peptides = EncodableSequences.create(peptides)
+        if output_assignments is None:
+            output_assignments = ["output"] * len(encodable_peptides.sequences)
+        for i in range(n_models):
+            print("Training model %d / %d" % (i + 1, n_models))
+            model = Class1BindingPredictor(**architecture_hyperparameters)
+            model.fit(
+                encodable_peptides,
+                affinities,
+                output_assignments=output_assignments,
+                allele_pseudosequences=allele_pseudosequences,
+                verbose=verbose)
+            yield model
+
+    def predict(
+            self,
+            peptides,
+            alleles,
+            include_mean=True,
+            include_peptides_and_alleles=True):
+        input_df = pandas.DataFrame({
+            'peptide': peptides,
+            'allele': alleles,
+        })
+        input_df["allele"] = input_df.allele.map(
+            mhcnames.normalize_allele_name)
+
+        result_dataframes = []
+
+        if self.class1_pan_allele_models:
+            allele_pseudosequences = input_df.allele.map(
+                self.allele_to_pseudosequence)
+            encodable_peptides = EncodableSequences.create(
+                input_df.peptide.values)
+            for model in self.class1_pan_allele_models:
+                result_df = pandas.DataFrame(
+                    model.predict(
+                        encodable_peptides,
+                        allele_pseudosequences=allele_pseudosequences))
+                result_dataframes.append(result_df)
+
+        if self.allele_to_allele_specific_models:
+            for allele in input_df.allele.unique():
+                mask = (input_df.allele == allele).values
+                allele_peptides = EncodableSequences.create(
+                    input_df.ix[mask].peptide.values)
+                models = self.allele_to_allele_specific_models.get(allele, [])
+                for model in models:
+                    result_df = pandas.DataFrame(
+                        model.predict(allele_peptides),
+                        index=input_df.index[mask].values)
+                    result_dataframes.append(result_df)
+
+        model_predictions = pandas.Panel(
+            dict(enumerate(result_dataframes)),
+            major_axis=input_df.index)
+
+        # Geometric mean
+        log_means = numpy.log(model_predictions).mean(0)
+        first_columns = []
+        if include_mean:
+            log_means["mean"] = log_means.mean(1)
+            first_columns.append("mean")
+
+        result = numpy.exp(log_means)
+
+        if include_peptides_and_alleles:
+            result["peptide"] = input_df.peptide.values
+            result["allele"] = input_df.allele.values
+            first_columns.append("allele")
+            first_columns.append("peptide")
+
+        assert len(result) == len(peptides), result.shape
+        return result[
+            list(reversed(first_columns)) +
+            [c for c in result.columns if c not in first_columns]
+        ]
diff --git a/mhcflurry/class1_allele_specific/scoring.py b/mhcflurry/class1_affinity_prediction/scoring.py
similarity index 100%
rename from mhcflurry/class1_allele_specific/scoring.py
rename to mhcflurry/class1_affinity_prediction/scoring.py
diff --git a/mhcflurry/class1_affinity_prediction/train_allele_specific_models_command.py b/mhcflurry/class1_affinity_prediction/train_allele_specific_models_command.py
new file mode 100644
index 00000000..359cdaaa
--- /dev/null
+++ b/mhcflurry/class1_affinity_prediction/train_allele_specific_models_command.py
@@ -0,0 +1,357 @@
+"""
+Train single allele models
+
+"""
+import sys
+import argparse
+import json
+import os
+import pickle
+
+import pandas
+
+import mhcnames
+
+
+from .class1_binding_predictor import Class1BindingPredictor
+from ..common import random_peptides
+
+
+def normalize_allele_name(s):
+    try:
+        return mhcnames.normalize_allele_name(s)
+    except Exception:
+        return "UNKNOWN"
+
+
+parser = argparse.ArgumentParser(usage=__doc__)
+
+parser.add_argument(
+    "--data-csv",
+    help="Path to data csv")
+parser.add_argument(
+    "--iedb-data-csv",
+    help="Path to IEDB mhc_ligand_full.csv")
+
+parser.add_argument(
+    "--out-models-dir",
+    help="Directory to write models and manifest")
+parser.add_argument(
+    "--hyperparameters",
+    required=True,
+    help="JSON of hyperparameters")
+parser.add_argument(
+    "--allele",
+    default=None,
+    nargs="+",
+    help="Alleles")
+parser.add_argument(
+    "--min-measurements-per-category",
+    type=int,
+    default=500,
+    help="Alleles")
+parser.add_argument(
+    "--min-measurements-per-allele",
+    type=int,
+    default=50,
+    help="Alleles")
+parser.add_argument(
+    "--random-negative-rate",
+    type=float,
+    default=0.0)
+parser.add_argument(
+    "--random-negative-fixed",
+    type=int,
+    default=0)
+parser.add_argument(
+    "--pretrain",
+    action="store_true",
+    default=False)
+parser.add_argument(
+    "--only-quantitative",
+    action="store_true",
+    default=False)
+parser.add_argument(
+    "--verbose",
+    type=int,
+    default=1,
+    help="Alleles")
+
+
+def add_random_negative_peptides(
+        df,
+        rate=1,
+        fixed=0,
+        affinity=50000.0,
+        weight=1.0,
+        lengths=range(8, 16)):
+    new_dfs = [df]
+    measurement_sources = df.measurement_source.unique()
+    (allele,) = df.allele.unique()
+    length_counts = df.peptide.str.len().value_counts().to_dict()
+    for length in lengths:
+        count = length_counts.get(length, 0)
+        desired = int((count * rate + fixed))
+        print("Adding %d * %d + %d = %d random negative %d-mers" % (
+            count, rate, fixed, desired, length))
+        peptides = random_peptides(desired, length=length)
+
+        for measurement_source in measurement_sources:
+            new_df = pandas.DataFrame({
+                "allele": allele,
+                "peptide": peptides,
+                "measurement_type": "affinity",
+                "measurement_source": measurement_source,
+                "measurement_value": affinity,
+                "weight": weight,
+            })
+            new_dfs.append(new_df)
+    result = pandas.concat(new_dfs, ignore_index=True)
+    print("Final result shape: %s" % str(result.shape))
+    return result
+
+
+def load_data_csv(filename, alleles):
+    df = pandas.read_csv(filename)
+    if alleles:
+        df = df.ix[df.allele.isin(alleles)]
+    return df
+
+
+upper_thresholds = {
+    "Negative": 50000.0,
+    "Positive": 100.0,
+    "Positive-High": 50.0,
+    "Positive-Intermediate": 500.0,
+    "Positive-Low": 5000.0,
+}
+
+
+def load_iedb_data_csv(
+        iedb_csv,
+        alleles=None,
+        min_measurements_per_category=100,
+        min_measurements_per_allele=50,
+        include_qualitative=True):
+    iedb_df = pandas.read_csv(iedb_csv, skiprows=1)
+    print("Loaded iedb data: %s" % str(iedb_df.shape))
+    iedb_df["allele"] = iedb_df["Allele Name"].map(normalize_allele_name)
+    print("Dropping un-parseable alleles: %s" % ", ".join(
+        iedb_df.ix[iedb_df.allele == "UNKNOWN"]["Allele Name"].unique()))
+    iedb_df = iedb_df.ix[iedb_df.allele != "UNKNOWN"]
+
+    if not alleles:
+        print("Taking all alleles with %d measurements" % (
+            min_measurements_per_allele))
+        allele_counts = iedb_df.allele.value_counts()
+        alleles = list(allele_counts.ix[
+            allele_counts > min_measurements_per_allele
+        ].index)
+    print("Selected alleles: %s" % ' '.join(alleles))
+
+    iedb_df = iedb_df.ix[
+        iedb_df.allele.isin(alleles)
+    ]
+    print("IEDB measurements per allele:\n%s" % iedb_df.allele.value_counts())
+
+    quantitative = iedb_df.ix[iedb_df["Units"] == "nM"]
+    print("Quantitative measurements: %d" % len(quantitative))
+
+    qualitative = iedb_df.ix[iedb_df["Units"] != "nM"].copy()
+    print("Qualitative measurements: %d" % len(qualitative))
+    non_mass_spec_qualitative = qualitative.ix[
+        (~qualitative["Method/Technique"].str.contains("mass spec"))
+    ].copy()
+    non_mass_spec_qualitative["Quantitative measurement"] = (
+        non_mass_spec_qualitative["Qualitative Measure"].map(upper_thresholds))
+    print("Qualitative measurements after dropping MS: %d" % (
+        len(non_mass_spec_qualitative)))
+
+    iedb_df = pandas.concat(
+        (
+            ([quantitative]) +
+            ([non_mass_spec_qualitative] if include_qualitative else [])),
+        ignore_index=True)
+
+    print("IEDB measurements per allele:\n%s" % iedb_df.allele.value_counts())
+
+    print("Subselecting to valid peptides. Starting with: %d" % len(iedb_df))
+    iedb_df["Description"] = iedb_df.Description.str.strip()
+    iedb_df = iedb_df.ix[
+        iedb_df.Description.str.match("^[ACDEFGHIKLMNPQRSTVWY]+$")
+    ]
+    print("Now: %d" % len(iedb_df))
+
+    print("Subselecting to 8-to-15-mers")
+    iedb_df = iedb_df.ix[
+        (iedb_df["Description"].str.len() >= 8) &
+        (iedb_df["Description"].str.len() <= 15)
+    ].copy()
+    print("IEDB measurements per allele:\n%s" % iedb_df.allele.value_counts())
+
+    print("Annotating last author and category")
+    iedb_df["last_author"] = iedb_df.Authors.map(
+        lambda x: (
+            x.split(";")[-1]
+            .split(",")[-1]
+            .split(" ")[-1]
+            .strip()
+            .replace("*", "")))
+    iedb_df["category"] = (
+        iedb_df["last_author"] + " - " + iedb_df["Method/Technique"])
+
+    to_concat = []
+
+    for allele in alleles:
+        sub_df = iedb_df.ix[iedb_df.allele == allele]
+        top_categories = sub_df.category.value_counts().ix[
+            sub_df.category.value_counts() >
+            min_measurements_per_category
+        ]
+
+        top_categories = top_categories.index
+
+        train_data = pandas.DataFrame()
+        train_data["peptide"] = sub_df.Description
+        train_data["measurement_value"] = sub_df[
+            "Quantitative measurement"
+        ]
+        train_data["original_measurement_source"] = (
+            sub_df.category.values)
+
+        train_data["allele"] = sub_df["allele"]
+        train_data["measurement_type"] = "affinity"
+        train_data["measurement_source"] = [
+            s if s in (top_categories) else "other"
+            for s in train_data.original_measurement_source
+        ]
+        train_data["weight"] = 1.0
+        train_data = train_data.drop_duplicates().reset_index(
+            drop=True)
+        to_concat.append(train_data)
+
+    return pandas.concat(to_concat, ignore_index=True)
+
+
+def run():
+    args = parser.parse_args(sys.argv[1:])
+
+    hyperparameters_lst = json.load(open(args.hyperparameters))
+    if not isinstance(hyperparameters_lst, list):
+        hyperparameters_lst = [hyperparameters_lst]
+    print("Loaded hyperparameters list: %s" % str(hyperparameters_lst))
+
+    dfs = []
+    if args.iedb_data_csv:
+        iedb_df = load_iedb_data_csv(
+            args.iedb_data_csv,
+            alleles=args.allele,
+            min_measurements_per_category=args.min_measurements_per_category,
+            include_qualitative=not args.only_quantitative)
+        dfs.append(iedb_df)
+    if args.data_csv:
+        extra_data_csv = load_data_csv(
+            args.data_csv, alleles=args.allele)
+        print("Loaded extra data csv: %s %s" % (
+            args.data_csv, str(extra_data_csv.shape)))
+        dfs.append(extra_data_csv)
+
+    df = pandas.concat(dfs, ignore_index=True)
+    print("Combined df: %s" % (str(df.shape)))
+    allele_counts = df.allele.value_counts()
+    alleles = list(allele_counts.ix[
+        allele_counts > args.min_measurements_per_allele
+    ].index)
+    print("Selected alleles: %s" % ' '.join(alleles))
+
+    df = df.ix[df.allele.isin(alleles)]
+
+    print("Combined allele-selected df: %s" % (str(df.shape)))
+
+    manifest = pandas.DataFrame()
+    manifest["name"] = []
+    manifest["hyperparameters_index"] = []
+    manifest["model_group"] = []
+    manifest["allele"] = []
+    manifest["hyperparameters"] = []
+    manifest["history"] = []
+    manifest["num_measurements"] = []
+    manifest["random_negative_rate"] = []
+    manifest["random_negative_fixed"] = []
+    manifest["sources"] = []
+    manifest["fit_seconds"] = []
+
+    manifest_path = os.path.join(args.out_models_dir, "manifest.csv")
+
+    for (h, hyperparameters) in enumerate(hyperparameters_lst):
+        n_models = hyperparameters.pop("n_models")
+        for model_group in range(n_models):
+            for (i, allele) in enumerate(alleles):
+                print(
+                    "[%2d / %2d hyperparameters] "
+                    "[%2d / %2d replicates] "
+                    "[%4d / %4d alleles]: %s" % (
+                        h + 1,
+                        len(hyperparameters_lst),
+                        model_group + 1,
+                        n_models,
+                        i + 1,
+                        len(alleles), allele))
+
+                train_data = df.ix[df.allele == allele]
+
+                train_data_expanded = add_random_negative_peptides(
+                    train_data,
+                    rate=args.random_negative_rate,
+                    fixed=args.random_negative_fixed)
+
+                train_data_expanded = train_data_expanded.dropna().sample(
+                    frac=1.0)
+
+                print("Measurement sources:\n%s" % (
+                    train_data_expanded.measurement_source.value_counts()))
+
+                model = Class1BindingPredictor(
+                    verbose=args.verbose,
+                    **hyperparameters)
+
+                model.fit(
+                    train_data_expanded.peptide.values,
+                    train_data_expanded.measurement_value.values,
+                    output_assignments=(
+                        train_data_expanded.measurement_source.values))
+                print("Done fitting in %0.2f sec" % model.fit_seconds)
+
+                name = "%s-%d-%d" % (
+                    allele.replace("*", "_"),
+                    h,
+                    model_group)
+
+                row = pandas.Series({
+                    "hyperparameters_index": h,
+                    "model_group": model_group,
+                    "allele": allele,
+                    "hyperparameters": hyperparameters,
+                    "history": model.fit_history.history,
+                    "name": name,
+                    "num_measurements": len(train_data),
+                    "random_negative_rate": args.random_negative_rate,
+                    "random_negative_fixed": args.random_negative_fixed,
+                    "sources": train_data_expanded.measurement_source.unique(),
+                    "fit_seconds": model.fit_seconds,
+                }).to_frame().T
+                manifest = pandas.concat([manifest, row], ignore_index=True)
+                print(manifest)
+
+                manifest.to_csv(manifest_path, index=False)
+                print("Wrote: %s" % manifest_path)
+
+                model_path = os.path.join(
+                    args.out_models_dir, "%s.pickle" % name)
+                with open(model_path, 'wb') as fd:
+                    pickle.dump(model, fd, protocol=2)
+                print("Wrote: %s" % model_path)
+
+
+if __name__ == '__main__':
+    run()
diff --git a/mhcflurry/class1_allele_specific/__init__.py b/mhcflurry/class1_allele_specific/__init__.py
deleted file mode 100644
index 228b33d9..00000000
--- a/mhcflurry/class1_allele_specific/__init__.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from __future__ import absolute_import
-
-from .class1_binding_predictor import Class1BindingPredictor
-from .train import train_across_models_and_folds, AlleleSpecificTrainTestFold
-from .cross_validation import cross_validation_folds
-from .class1_single_model_multi_allele_predictor import (
-    from_allele_name,
-    supported_alleles,
-    get_downloaded_predictor,
-    Class1SingleModelMultiAllelePredictor)
-
-__all__ = [
-    'Class1BindingPredictor',
-    'AlleleSpecificTrainTestFold',
-    'cross_validation_folds',
-    'train_across_models_and_folds',
-    'from_allele_name',
-    'supported_alleles',
-    'get_downloaded_predictor',
-    'Class1SingleModelMultiAllelePredictor',
-]
diff --git a/mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py b/mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py
deleted file mode 100644
index b309df00..00000000
--- a/mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-
-from six import string_types
-
-from ..peptide_encoding import encode_peptides
-from ..amino_acid import (
-    amino_acids_with_unknown,
-    common_amino_acids
-)
-from ..ic50_predictor_base import IC50PredictorBase
-from ..hyperparameters import HyperparameterDefaults
-
-
-class Class1AlleleSpecificKmerIC50PredictorBase(IC50PredictorBase):
-    """
-    Base class for all mhcflurry predictors which used fixed-length
-    k-mer representation of peptides and don't require scanning over
-    a longer sequence to find a binding core (like you might for Class II).
-    """
-    hyperparameter_defaults = (HyperparameterDefaults(
-        kmer_size=9)
-        .extend(IC50PredictorBase.hyperparameter_defaults))
-
-    def __init__(
-            self,
-            name,
-            allow_unknown_amino_acids,
-            verbose,
-            **hyperparameters):
-        effective_hyperparameters = (
-            self.hyperparameter_defaults.with_defaults(hyperparameters))
-        IC50PredictorBase.__init__(
-            self,
-            name=name,
-            verbose=verbose,
-            **IC50PredictorBase.hyperparameter_defaults.subselect(
-                effective_hyperparameters))
-        self.allow_unknown_amino_acids = allow_unknown_amino_acids
-        self.kmer_size = effective_hyperparameters["kmer_size"]
-
-    def __repr__(self):
-        return (
-            "%s(name=%s, max_ic50=%f, allow_unknown_amino_acids=%s, "
-            "kmer_size=%d)" % (
-                self.__class__.__name__,
-                self.name,
-                self.max_ic50,
-                self.allow_unknown_amino_acids,
-                self.kmer_size))
-
-    def __str__(self):
-        return repr(self)
-
-    @property
-    def amino_acids(self):
-        """
-        Amino acid alphabet used for encoding peptides, may include
-        "X" if allow_unknown_amino_acids is True.
-        """
-        if self.allow_unknown_amino_acids:
-            return amino_acids_with_unknown
-        else:
-            return common_amino_acids
-
-    @property
-    def max_amino_acid_encoding_value(self):
-        return len(self.amino_acids)
-
-    def encode_peptides(self, peptides):
-        return encode_peptides(
-            peptides, kmer_size=self.kmer_size, allow_unknown_amino_acids=self.allow_unknown_amino_acids)
-
-    def predict_scores(self, peptides):
-        """
-        Given a list of peptides of any length, returns an array of predicted
-        normalized affinity values. Unlike IC50, a higher value here
-        means a stronger affinity. Peptides of lengths other than 9 are
-        transformed into a set of k-mers either by deleting or inserting
-        amino acid characters. The prediction for a single peptides will be
-        the average of expanded k-mers.
-        """
-        if isinstance(peptides, string_types):
-            raise TypeError("Input must be a list of peptides, not %s : %s" % (
-                peptides, type(peptides)))
-
-        encoded_peptides = self.encode_peptides(peptides)
-        return encoded_peptides.combine_predictions(
-            self.predict_scores_for_kmer_encoded_array(encoded_peptides.encoded_matrix))
-
-    def fit_dataset(
-            self,
-            dataset,
-            pretraining_dataset=None,
-            sample_censored_affinities=False,
-            **kwargs):
-        """
-        Fit the model parameters on the given training data.
-
-        Parameters
-        ----------
-        dataset : AffinityMeasurementDataset
-
-        pretraining_dataset : AffinityMeasurementDataset
-
-        sample_censored_affinities : bool
-            If a column named 'inequality' is in the AffinityMeasurementDataset then every
-            peptide with a value of '>' on each training epoch, gets a
-            randomly sampled IC50 between its observed value and the
-            max_ic50 of the predictor. Default is False.
-
-        **kwargs : dict
-            Extra arguments are passed on to the fit_encoded_kmer_arrays()
-            method.
-        """
-        if len(dataset.unique_alleles()) > 1:
-            raise ValueError(
-                "Allele-specific predictor can't be trained on multi-allele "
-                "data: %s" % dataset)
-
-        if pretraining_dataset and len(pretraining_dataset.unique_alleles()) > 1:
-            raise ValueError(
-                "Allele-specific predictor can't pretrain on data from multiple alleles: %s" %
-                (pretraining_dataset,))
-
-        X, ic50, sample_weights, original_peptide_indices = \
-            dataset.kmer_index_encoding(
-                kmer_size=self.kmer_size,
-                allow_unknown_amino_acids=self.allow_unknown_amino_acids)
-        if pretraining_dataset is None:
-            X_pretrain = ic50_pretrain = sample_weights_pretrain = None
-        else:
-            X_pretrain, ic50_pretrain, sample_weights_pretrain, _ = \
-                pretraining_dataset.kmer_index_encoding(
-                    kmer_size=self.kmer_size,
-                    allow_unknown_amino_acids=self.allow_unknown_amino_acids)
-
-        if sample_censored_affinities and 'inequality' in dataset.columns:
-            df = dataset.to_dataframe()
-            inequalities = df["inequality"]
-            censored_mask_for_variable_length_peptides = (inequalities == ">")
-            censored_mask_for_kmers = censored_mask_for_variable_length_peptides[
-                original_peptide_indices]
-        else:
-            censored_mask_for_kmers = None
-
-        return self.fit_kmer_encoded_arrays(
-            X=X,
-            ic50=ic50,
-            sample_weights=sample_weights,
-            right_censoring_mask=censored_mask_for_kmers,
-            X_pretrain=X_pretrain,
-            ic50_pretrain=ic50_pretrain,
-            sample_weights_pretrain=sample_weights_pretrain,
-            **kwargs)
diff --git a/mhcflurry/class1_allele_specific/class1_binding_predictor.py b/mhcflurry/class1_allele_specific/class1_binding_predictor.py
deleted file mode 100644
index 31024b67..00000000
--- a/mhcflurry/class1_allele_specific/class1_binding_predictor.py
+++ /dev/null
@@ -1,334 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Allele specific MHC Class I binding affinity predictor
-"""
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-
-import tempfile
-import os
-
-import numpy as np
-
-import keras.models
-
-from ..feedforward import make_embedding_network
-from .class1_allele_specific_kmer_ic50_predictor_base import (
-    Class1AlleleSpecificKmerIC50PredictorBase,
-)
-from ..peptide_encoding import check_valid_index_encoding_array
-from ..regression_target import MAX_IC50, ic50_to_regression_target
-from ..training_helpers import (
-    combine_training_arrays,
-    extend_with_negative_random_samples,
-)
-from ..regression_target import regression_target_to_ic50
-from ..hyperparameters import HyperparameterDefaults
-
-
-class Class1BindingPredictor(Class1AlleleSpecificKmerIC50PredictorBase):
-    """
-    Allele-specific Class I MHC binding predictor which uses
-    fixed-length (k-mer) index encoding for inputs and outputs
-    a value between 0 and 1 (where 1 is the strongest binder).
-    """
-
-    network_hyperparameter_defaults = HyperparameterDefaults(
-        embedding_output_dim=32,
-        layer_sizes=[64],
-        init="glorot_uniform",
-        loss="mse",
-        optimizer="rmsprop",
-        output_activation="sigmoid",
-        activation="tanh",
-        dropout_probability=0.0)
-
-    fit_hyperparameter_defaults = HyperparameterDefaults(
-        n_training_epochs=250,
-        batch_size=128,
-        pretrain_decay="numpy.exp(-epoch)",
-        fraction_negative=0.0,
-        batch_normalization=True)
-
-    hyperparameter_defaults = (
-        Class1AlleleSpecificKmerIC50PredictorBase.hyperparameter_defaults
-        .extend(network_hyperparameter_defaults)
-        .extend(fit_hyperparameter_defaults))
-
-    def __init__(
-            self,
-            model=None,
-            name=None,
-            max_ic50=MAX_IC50,
-            allow_unknown_amino_acids=True,
-            kmer_size=9,
-            n_amino_acids=20,
-            verbose=False,
-            **hyperparameters):
-        Class1AlleleSpecificKmerIC50PredictorBase.__init__(
-            self,
-            name=name,
-            max_ic50=max_ic50,
-            allow_unknown_amino_acids=allow_unknown_amino_acids,
-            verbose=verbose,
-            kmer_size=kmer_size)
-
-        specified_network_hyperparameters = (
-            self.network_hyperparameter_defaults.subselect(hyperparameters))
-
-        effective_hyperparameters = (
-            self.hyperparameter_defaults.with_defaults(hyperparameters))
-
-        if model is None:
-            model = make_embedding_network(
-                peptide_length=kmer_size,
-                n_amino_acids=n_amino_acids + int(allow_unknown_amino_acids),
-                **self.network_hyperparameter_defaults.subselect(
-                    effective_hyperparameters))
-        elif specified_network_hyperparameters:
-            raise ValueError(
-                "Do not specify network hyperparameters when passing a model. "
-                "Network hyperparameters specified: %s"
-                % " ".join(specified_network_hyperparameters))
-
-        self.hyperparameters = effective_hyperparameters
-        self.name = name
-        self.model = model
-
-    def __getstate__(self):
-        result = dict(self.__dict__)
-        del result['model']
-        result['model_json'] = self.model.to_json()
-        result['model_weights'] = self.get_weights()
-        return result
-
-    def __setstate__(self, state):
-        model_bytes = model_json = model_weights = None
-        try:
-            model_bytes = state.pop('model_bytes')
-        except KeyError:
-            model_json = state.pop('model_json')
-            model_weights = state.pop('model_weights')
-        self.__dict__.update(state)
-
-        if model_bytes is not None:
-            # Old format
-            fd = tempfile.NamedTemporaryFile(suffix='.hdf5', delete=False)
-            try:
-                fd.write(model_bytes)
-
-                # HDF5 has issues when the file is open multiple times, so we close
-                # it here before loading it into keras.
-                fd.close()
-                self.model = keras.models.load_model(fd.name)
-            finally:
-                os.unlink(fd.name)
-        else:
-            self.model = keras.models.model_from_json(model_json)
-            self.set_weights(model_weights)
-
-    def get_weights(self):
-        """
-        Returns weights, which can be passed to set_weights later.
-        """
-        return [x.copy() for x in self.model.get_weights()]
-
-    def set_weights(self, weights):
-        """
-        Reset the model weights.
-        """
-        self.model.set_weights(weights)
-
-    def fit_kmer_encoded_arrays(
-            self,
-            X,
-            ic50,
-            sample_weights=None,
-            right_censoring_mask=None,
-            X_pretrain=None,
-            ic50_pretrain=None,
-            sample_weights_pretrain=None,
-            n_random_negative_samples=None,
-            pretrain_decay=None,
-            n_training_epochs=None,
-            batch_size=None,
-            verbose=False):
-        """
-        Train predictive model from index encoding of fixed length k-mer
-        peptides.
-
-        Parameters
-        ----------
-        X : array
-            Training data with shape (n_samples, n_dims)
-
-        ic50 : array
-            Training IC50 values with shape (n_samples,)
-
-        sample_weights : array
-            Weight of each training sample with shape (n_samples,)
-
-        right_censoring_mask : array, optional
-            Boolean array which indicates whether each IC50 value is actually
-            right censored (a lower bound on the true value). Censored values
-            are transformed during training by sampling between the observed
-            and maximum values on each iteration.
-
-        X_pretrain : array
-            Extra samples used for soft pretraining of the predictor,
-            should have same number of dimensions as X.
-            During training the weights of these samples will decay after
-            each epoch.
-
-        ic50_pretrain : array
-            IC50 values for extra samples, shape
-
-        pretrain_decay : int -> float function
-            decay function for pretraining, mapping epoch number to decay
-            factor
-
-        sample_weights_pretrain : array
-            Initial weights for the rows of X_pretrain. If not specified then
-            initialized to ones.
-
-        n_random_negative_samples : int
-            Number of random samples to generate as negative examples.
-
-        n_training_epochs : int
-
-        verbose : bool
-
-        batch_size : int
-        """
-
-        # Apply defaults from hyperparameters
-        if n_random_negative_samples is None:
-            n_random_negative_samples = (
-                int(self.hyperparameters["fraction_negative"] * len(ic50)))
-
-        if pretrain_decay is None:
-            pretrain_decay = (
-                lambda epoch:
-                eval(
-                    self.hyperparameters["pretrain_decay"],
-                    {'epoch': epoch, 'numpy': np}))
-
-        if n_training_epochs is None:
-            n_training_epochs = self.hyperparameters["n_training_epochs"]
-
-        if batch_size is None:
-            batch_size = self.hyperparameters["batch_size"]
-
-        X_combined, ic50_combined, combined_weights, n_pretrain = \
-            combine_training_arrays(
-                X, ic50, sample_weights,
-                X_pretrain, ic50_pretrain, sample_weights_pretrain)
-
-        Y_combined = ic50_to_regression_target(
-            ic50_combined, max_ic50=self.max_ic50)
-
-        # create a censored IC50 mask for all combined samples and then fill
-        # in the training censoring mask if it's given
-        right_censoring_mask_combined = np.zeros(len(Y_combined), dtype=bool)
-        if right_censoring_mask is not None:
-            right_censoring_mask = np.asarray(right_censoring_mask)
-            if len(right_censoring_mask.shape) != 1:
-                raise ValueError("Expected 1D censor mask, got shape %s" % (
-                    right_censoring_mask.shape,))
-            if len(right_censoring_mask) != len(ic50):
-                raise ValueError(
-                    "Wrong length for censoring mask, expected %d not %d" % (
-                        len(ic50),
-                        len(right_censoring_mask)))
-            right_censoring_mask_combined[n_pretrain:] = right_censoring_mask
-
-        n_censored = right_censoring_mask_combined.sum()
-
-        total_pretrain_sample_weight = combined_weights[:n_pretrain].sum()
-        total_train_sample_weight = combined_weights[n_pretrain:].sum()
-        total_combined_sample_weight = (
-            total_pretrain_sample_weight + total_train_sample_weight)
-
-        for epoch in range(n_training_epochs):
-            decay_factor = pretrain_decay(epoch)
-
-            # if the contribution of synthetic samples is less than a
-            # thousandth of the actual data, then stop using it
-            pretrain_contribution = total_pretrain_sample_weight * decay_factor
-            pretrain_fraction_contribution = (
-                pretrain_contribution / total_combined_sample_weight)
-
-            if n_censored > 0:
-                # shrink the output values by a uniform amount to some value
-                # between the lowest representable affinity and the observed
-                # censored value
-                Y_adjusted_for_censoring = Y_combined.copy()
-                Y_adjusted_for_censoring[right_censoring_mask_combined] *= (
-                    np.random.rand(n_censored))
-            else:
-                Y_adjusted_for_censoring = Y_combined
-
-            # only use synthetic data if it contributes at least 1/1000th of
-            # sample weight
-            if pretrain_fraction_contribution > 0.001:
-                combined_weights[:n_pretrain] *= decay_factor
-                X_curr_iter = X_combined
-                Y_curr_iter = Y_adjusted_for_censoring
-                weights_curr_iter = combined_weights
-            else:
-                X_curr_iter = X_combined[n_pretrain:]
-                Y_curr_iter = Y_adjusted_for_censoring[n_pretrain:]
-                weights_curr_iter = combined_weights[n_pretrain:]
-
-            if n_random_negative_samples > 0:
-                X_curr_iter, Y_curr_iter, weights_curr_iter = \
-                    extend_with_negative_random_samples(
-                        X_curr_iter,
-                        Y_curr_iter,
-                        weights_curr_iter,
-                        n_random_negative_samples,
-                        max_amino_acid_encoding_value=(
-                            self.max_amino_acid_encoding_value))
-
-            self.model.fit(
-                X_curr_iter,
-                Y_curr_iter,
-                sample_weight=weights_curr_iter,
-                nb_epoch=1,
-                verbose=0,
-                batch_size=batch_size,
-                shuffle=True)
-
-    def predict_scores_for_kmer_encoded_array(self, X):
-        """
-        Given an encoded array of amino acid indices, returns a vector
-        of affinity scores (values between 0 and 1).
-        """
-        X = check_valid_index_encoding_array(
-            X,
-            allow_unknown_amino_acids=self.allow_unknown_amino_acids)
-        return self.model.predict(X, verbose=False).flatten()
-
-    def predict_ic50_for_kmer_encoded_array(self, X):
-        """
-        Given an encoded array of amino acid indices,
-        returns a vector of IC50 predictions.
-        """
-        scores = self.predict_scores_for_kmer_encoded_array(X)
-        return regression_target_to_ic50(scores, max_ic50=self.max_ic50)
diff --git a/mhcflurry/class1_allele_specific/class1_single_model_multi_allele_predictor.py b/mhcflurry/class1_allele_specific/class1_single_model_multi_allele_predictor.py
deleted file mode 100644
index 1dca8766..00000000
--- a/mhcflurry/class1_allele_specific/class1_single_model_multi_allele_predictor.py
+++ /dev/null
@@ -1,150 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-'''
-Load predictors
-'''
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-import pickle
-from os.path import join
-
-import pandas
-
-from ..downloads import get_path
-from ..common import normalize_allele_name, UnsupportedAllele
-
-CACHED_PREDICTOR = None
-
-
-def from_allele_name(allele_name):
-    """
-    Load a single-allele predictor.
-
-    Parameters
-    ----------
-    allele_name : class I allele name
-
-    Returns
-    ----------
-    Class1BindingPredictor
-    """
-    return get_downloaded_predictor().predictor_for_allele(allele_name)
-
-
-def supported_alleles():
-    """
-    Return a list of the names of the alleles for which there are trained
-    predictors in the default laoder.
-    """
-    return get_downloaded_predictor().supported_alleles
-
-
-def get_downloaded_predictor():
-    """
-    Return a Class1AlleleSpecificPredictorLoader that uses downloaded models.
-    """
-    global CACHED_PREDICTOR
-
-    # Some of the unit tests manipulate the downloads directory configuration
-    # so get_path here may return different results in the same Python process.
-    # For this reason we check the path and invalidate the loader if it's
-    # different.
-    path = get_path("models_class1_allele_specific_single")
-    if CACHED_PREDICTOR is None or path != CACHED_PREDICTOR.path:
-        CACHED_PREDICTOR = (
-            Class1SingleModelMultiAllelePredictor
-                .load_from_download_directory(path))
-    return CACHED_PREDICTOR
-
-
-class Class1SingleModelMultiAllelePredictor(object):
-    """
-    Factory for Class1BindingPredictor instances that are stored on disk
-    using this directory structure:
-
-        production.csv - Manifest file giving information on all models
-
-        models/ - directory of models with names given in the manifest file
-            MODEL-BAR.pickle
-            MODEL-FOO.pickle
-            ...
-    """
-
-    @staticmethod
-    def load_from_download_directory(directory):
-        return Class1SingleModelMultiAllelePredictor(directory)
-
-    def __init__(self, path):
-        """
-        Parameters
-        ----------
-        path : string
-            Path to directory containing manifest and models
-        """
-        self.path = path
-        self.path_to_models_csv = join(path, "production.csv")
-        self.df = pandas.read_csv(self.path_to_models_csv)
-        self.df.index = self.df["allele"]
-        self.supported_alleles = list(sorted(self.df.allele))
-        self.predictors_cache = {}
-
-    def predictor_for_allele(self, allele):
-        """
-        Load a predictor for an allele.
-
-        Parameters
-        ----------
-        allele : class I allele name
-
-        Returns
-        ----------
-        Class1BindingPredictor
-        """
-        allele = normalize_allele_name(allele)
-        if allele not in self.predictors_cache:
-            try:
-                predictor_name = self.df.ix[allele].predictor_name
-            except KeyError:
-                raise UnsupportedAllele(
-                    "No models for allele '%s'. Alleles with models: %s"
-                    " in models file: %s" % (
-                        allele,
-                        ' '.join(self.supported_alleles),
-                        self.path_to_models_csv))
-
-            model_path = join(self.path, "models", predictor_name + ".pickle")
-            with open(model_path, 'rb') as fd:
-                self.predictors_cache[allele] = pickle.load(fd)
-        return self.predictors_cache[allele]
-
-    def predict(self, measurement_collection):
-        if (measurement_collection.df.measurement_type != "affinity").any():
-            raise ValueError("Only affinity measurements supported")
-
-        result = pandas.Series(
-            index=measurement_collection.df.index)
-        for (allele, sub_df) in measurement_collection.df.groupby("allele"):
-            result.loc[sub_df.index] = self.predict_for_allele(
-                allele, sub_df.peptide.values)
-        assert not result.isnull().any()
-        return result
-
-    def predict_for_allele(self, allele, peptides):
-        predictor = self.predictor_for_allele(allele)
-        result = predictor.predict(peptides)
-        assert len(result) == len(peptides)
-        return result
diff --git a/mhcflurry/class1_allele_specific/cross_validation.py b/mhcflurry/class1_allele_specific/cross_validation.py
deleted file mode 100644
index c819bc4e..00000000
--- a/mhcflurry/class1_allele_specific/cross_validation.py
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-import collections
-import logging
-
-from pepdata.reduced_alphabet import make_alphabet_transformer, gbmr4
-
-from .train import impute_and_select_allele, AlleleSpecificTrainTestFold
-from ..parallelism import get_default_backend
-
-gbmr4_transformer = make_alphabet_transformer(gbmr4)
-
-
-def default_projector(peptide):
-    """
-    Given a peptide, return a list of projections for it. The projections are:
-        - the gbmr4 reduced representation
-        - for all positions in the peptide, the peptide with a "." replacing
-          the residue at that position
-
-    Peptides with overlapping projections are considered similar when doing
-    cross validation.
-
-    Parameters
-    ----------
-    peptide : string
-
-    Returns
-    ----------
-    string list
-    """
-    def projections(peptide, edit_distance=1):
-        if edit_distance == 0:
-            return set([peptide])
-        return set.union(*[
-            projections(p, edit_distance - 1)
-            for p in (
-                peptide[0:i] + "." + peptide[(i + 1):]
-                for i in range(len(peptide)))
-        ])
-    return sorted(projections(peptide)) + [gbmr4_transformer(peptide)]
-
-
-def similar_peptides(set1, set2, projector=default_projector):
-    """
-    Given two sets of peptides, return a list of the peptides whose reduced
-    representations are found in both sets.
-
-    Parameters
-    ----------
-    projector : (string -> string) or (string -> string list)
-        Function giving projection(s) of a peptide
-
-    Returns
-    ----------
-    string list of peptides which approximately overlap between the two input
-    sets.
-    """
-    result = collections.defaultdict(lambda: ([], []))
-    for (index, peptides) in enumerate([set1, set2]):
-        for peptide in peptides:
-            projections = projector(peptide)
-            if not isinstance(projections, list):
-                projections = [projections]
-            for projection in projections:
-                result[projection][index].append(peptide)
-
-    common = set()
-    for (peptides1, peptides2) in result.values():
-        if peptides1 and peptides2:
-            common.update(peptides1 + peptides2)
-
-    return sorted(common)
-
-
-def cross_validation_folds(
-        train_data,
-        alleles=None,
-        n_folds=3,
-        drop_similar_peptides=False,
-        imputer=None,
-        impute_kwargs={
-            'min_observations_per_peptide': 2,
-            'min_observations_per_allele': 2,
-        },
-        parallel_backend=None):
-    '''
-    Split a AffinityMeasurementDataset into n_folds cross validation folds for each allele,
-    optionally performing imputation.
-
-    Parameters
-    -----------
-    train_data : mhcflurry.AffinityMeasurementDataset
-
-    alleles : string list, optional
-        Alleles to run cross validation on. Default: all alleles in
-        train_data.
-
-    n_folds : int, optional
-        Number of cross validation folds for each allele.
-
-    drop_similar_peptides : boolean, optional
-        For each fold, remove peptides from the test data that are similar
-        to peptides in the train data. Similarity is defined as in the
-        similar_peptides function.
-
-    imputer : fancyimpute.Solver, optional
-        Imputer to use. If not specified, no imputation is done.
-
-    impute_kwargs : dict, optional
-        Additional kwargs to pass to mhcflurry.AffinityMeasurementDataset.impute_missing_values.
-
-    parallel_backend : mhcflurry.parallelism.ParallelBackend, optional
-        Futures implementation to use for running on multiple threads,
-        processes, or nodes
-
-    Returns
-    -----------
-    list of AlleleSpecificTrainTestFold of length num alleles * n_folds
-
-    '''
-    if parallel_backend is None:
-        parallel_backend = get_default_backend()
-
-    if alleles is None:
-        alleles = train_data.unique_alleles()
-
-    result_folds = []
-    imputation_args = []
-    for allele in alleles:
-        logging.info("Allele: %s" % allele)
-        cv_iter = train_data.cross_validation_iterator(
-            allele, n_folds=n_folds, shuffle=True)
-        for (all_allele_train_split, full_test_split) in cv_iter:
-            peptides_to_remove = []
-            if drop_similar_peptides:
-                peptides_to_remove = similar_peptides(
-                    all_allele_train_split.get_allele(allele).peptides,
-                    full_test_split.get_allele(allele).peptides
-                )
-
-            if peptides_to_remove:
-                # TODO: instead of dropping peptides, downweight the
-                # peptides which get grouped together
-                # For example, we could replace this code with
-                #   test_peptides, test_peptide_weights = ....
-                test_split = full_test_split.drop_allele_peptide_lists(
-                    [allele] * len(peptides_to_remove),
-                    peptides_to_remove)
-                logging.info(
-                    "After dropping similar peptides, test size %d->%d" % (
-                        len(full_test_split), len(test_split)))
-            else:
-                test_split = full_test_split
-
-            if imputer is not None:
-                base_args = dict(impute_kwargs)
-                base_args.update(dict(
-                    dataset=all_allele_train_split,
-                    imputer=imputer,
-                    allele=allele))
-                imputation_args.append(base_args)
-
-            train_split = all_allele_train_split.get_allele(allele)
-            fold = AlleleSpecificTrainTestFold(
-                imputed_train=None,  # updated later
-                allele=allele,
-                train=train_split,
-                test=test_split)
-            result_folds.append(fold)
-
-    if imputation_args:
-        assert len(imputation_args) == len(result_folds)
-        imputation_results = parallel_backend.map(
-            lambda kwargs: impute_and_select_allele(**kwargs),
-            imputation_args)
-
-        # Here _replace is a method on named tuples that returns a new named
-        # tuple with the specified key set to the given value and all other
-        # key/values the same as the original.
-        return [
-            result_fold._replace(imputed_train=imputation_result)
-            for (result_fold, imputation_result) in zip(
-                result_folds, imputation_results)
-        ]
-    return result_folds
diff --git a/mhcflurry/class1_allele_specific/train.py b/mhcflurry/class1_allele_specific/train.py
deleted file mode 100644
index cfc22344..00000000
--- a/mhcflurry/class1_allele_specific/train.py
+++ /dev/null
@@ -1,355 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-import collections
-import logging
-import time
-import socket
-import math
-
-import numpy
-import pandas
-
-from .scoring import make_scores
-from .class1_binding_predictor import Class1BindingPredictor
-from ..hyperparameters import HyperparameterDefaults
-from ..parallelism import get_default_backend
-
-
-TRAIN_HYPERPARAMETER_DEFAULTS = HyperparameterDefaults(impute=False)
-HYPERPARAMETER_DEFAULTS = (
-    Class1BindingPredictor.hyperparameter_defaults
-    .extend(TRAIN_HYPERPARAMETER_DEFAULTS))
-
-
-AlleleSpecificTrainTestFold = collections.namedtuple(
-    "AlleleSpecificTrainTestFold",
-    "allele train imputed_train test")
-
-
-def impute_and_select_allele(dataset, imputer, allele=None, **kwargs):
-    '''
-    Run imputation and optionally filter to the specified allele.
-
-    Useful as a parallelized task where we want to filter to the desired
-    data *before* sending the result back to the master process.
-
-    Parameters
-    -----------
-    dataset : mhcflurry.AffinityMeasurementDataset
-
-    imputer : object or string
-        See AffinityMeasurementDataset.impute_missing_values
-
-    allele : string [optional]
-        Allele name to subselect to after imputation
-
-    **kwargs : passed on to dataset.impute_missing_values
-
-    Returns
-    -----------
-    list of dict
-    '''
-    result = dataset.impute_missing_values(imputer, **kwargs)
-
-    if allele is not None:
-        try:
-            result = result.get_allele(allele)
-        except KeyError:
-            result = None
-    return result
-
-
-def train_and_test_one_model(model_description, folds, **kwargs):
-    '''
-    Train one model on some number of folds.
-
-    Parameters
-    -----------
-    model_description : dict of model hyperparameters
-
-    folds : list of AlleleSpecificTrainTestFold
-
-    **kwargs : passed on to train_and_test_one_model_one_fold
-
-    Returns
-    -----------
-    list of dict giving the train and test results for each fold
-    '''
-    logging.info("Training 1 model on %d folds: %s" % (len(folds), folds))
-
-    return [
-        train_and_test_one_model_one_fold(
-            model_description,
-            fold.train,
-            fold.test,
-            fold.imputed_train,
-            **kwargs)
-        for fold in folds
-    ]
-
-
-def train_and_test_one_model_one_fold(
-        model_description,
-        train_dataset,
-        test_dataset=None,
-        imputed_train_dataset=None,
-        return_train_scores=True,
-        return_predictor=False,
-        return_train_predictions=False,
-        return_test_predictions=False):
-    '''
-    Task for instantiating, training, and testing one model on one fold.
-
-    Parameters
-    -----------
-    model_description : dict of model parameters
-
-    train_dataset : mhcflurry.AffinityMeasurementDataset
-        AffinityMeasurementDataset to train on. Must include only one allele.
-
-    test_dataset : mhcflurry.AffinityMeasurementDataset, optional
-        AffinityMeasurementDataset to test on. Must include only one allele. If not specified
-        no testing is performed.
-
-    imputed_train_dataset : mhcflurry.AffinityMeasurementDataset, optional
-        Required only if model_description["impute"] == True
-
-    return_train_scores : boolean
-        Calculate and include in the result dict the auc/f1/tau scores on the
-        training data.
-
-    return_predictor : boolean
-        Calculate and include in the result dict the trained predictor.
-
-    return_train_predictions : boolean
-        Calculate and include in the result dict the model predictions on the
-        train data.
-
-    return_test_predictions : boolean
-        Calculate and include in the result dict the model predictions on the
-        test data.
-
-    Returns
-    -----------
-    dict
-    '''
-    assert len(train_dataset.unique_alleles()) == 1, "Multiple train alleles"
-    allele = train_dataset.alleles[0]
-    if test_dataset is not None:
-        assert len(train_dataset.unique_alleles()) == 1, \
-            "Multiple test alleles"
-        assert train_dataset.alleles[0] == allele, \
-            "Wrong test allele %s != %s" % (train_dataset.alleles[0], allele)
-    if imputed_train_dataset is not None:
-        assert len(imputed_train_dataset.unique_alleles()) == 1, \
-            "Multiple imputed train alleles"
-        assert imputed_train_dataset.alleles[0] == allele, \
-            "Wrong imputed train allele %s != %s" % (
-                imputed_train_dataset.alleles[0], allele)
-
-    if model_description["impute"]:
-        assert imputed_train_dataset is not None
-
-    # Make a predictor
-    model_params = dict(model_description)
-    fraction_negative = model_params.pop("fraction_negative")
-    impute = model_params.pop("impute")
-    n_training_epochs = model_params.pop("n_training_epochs")
-    pretrain_decay = model_params.pop("pretrain_decay")
-    batch_size = model_params.pop("batch_size")
-    max_ic50 = model_params.pop("max_ic50")
-
-    logging.info(
-        "%10s train_size=%d test_size=%d impute=%s model=%s" %
-        (allele,
-            len(train_dataset),
-            len(test_dataset) if test_dataset is not None else 0,
-            impute,
-            model_description))
-
-    predictor = Class1BindingPredictor(
-        max_ic50=max_ic50,
-        **model_params)
-
-    # Train predictor
-    fit_time = -time.time()
-    predictor.fit_dataset(
-        train_dataset,
-        pretrain_decay=lambda epoch: eval(pretrain_decay, {
-            'epoch': epoch, 'numpy': numpy}),
-        pretraining_dataset=imputed_train_dataset if impute else None,
-        verbose=True,
-        batch_size=batch_size,
-        n_training_epochs=n_training_epochs,
-        n_random_negative_samples=int(fraction_negative * len(train_dataset)))
-    fit_time += time.time()
-
-    result = {
-        'fit_time': fit_time,
-        'fit_host': socket.gethostname(),
-    }
-
-    if return_predictor:
-        result['predictor'] = predictor
-
-    if return_train_scores or return_train_predictions:
-        train_predictions = predictor.predict(train_dataset.peptides)
-        if return_train_scores:
-            result['train_scores'] = make_scores(
-                train_dataset.affinities,
-                train_predictions,
-                max_ic50=model_description["max_ic50"])
-        if return_train_predictions:
-            result['train_predictions'] = train_predictions
-
-    if test_dataset is not None:
-        test_predictions = predictor.predict(test_dataset.peptides)
-        result['test_scores'] = make_scores(
-            test_dataset.affinities,
-            test_predictions,
-            max_ic50=model_description["max_ic50"])
-        if return_test_predictions:
-            result['test_predictions'] = test_predictions
-    logging.info("Training result: %s" % result)
-    return result
-
-
-def train_across_models_and_folds(
-        folds,
-        model_descriptions,
-        cartesian_product_of_folds_and_models=True,
-        return_predictors=False,
-        folds_per_task=1,
-        parallel_backend=None):
-    '''
-    Train and optionally test any number of models across any number of folds.
-
-    Parameters
-    -----------
-    folds : list of AlleleSpecificTrainTestFold
-
-    model_descriptions : list of dict
-        Models to test
-
-    cartesian_product_of_folds_and_models : boolean, optional
-        If true, then a predictor is treained for each fold and model
-        description.
-        If false, then len(folds) must equal len(model_descriptions), and
-        the i'th model is trained on the i'th fold.
-
-    return_predictors : boolean, optional
-        Include the trained predictors in the result.
-
-    parallel_backend : mhcflurry.parallelism.ParallelBackend, optional
-        Futures implementation to use for running on multiple threads,
-        processes, or nodes
-
-    Returns
-    -----------
-    pandas.DataFrame
-    '''
-    if parallel_backend is None:
-        parallel_backend = get_default_backend()
-
-    if cartesian_product_of_folds_and_models:
-        tasks_per_model = int(math.ceil(float(len(folds)) / folds_per_task))
-        fold_index_groups = [[] for _ in range(tasks_per_model)]
-        index_group = 0
-        for index in range(len(folds)):
-            fold_index_groups[index_group].append(index)
-            index_group += 1
-            if index_group == len(fold_index_groups):
-                index_group = 0
-
-        task_model_and_fold_indices = [
-            (model_num, group)
-            for group in fold_index_groups
-            for model_num in range(len(model_descriptions))
-        ]
-    else:
-        assert len(folds) == len(model_descriptions), \
-            "folds and models have different lengths and " \
-            "cartesian_product_of_folds_and_models is False"
-
-        task_model_and_fold_indices = [
-            (num, [num])
-            for num in range(len(folds))
-        ]
-
-    logging.info("Training %d architectures on %d folds = %d tasks." % (
-        len(model_descriptions), len(folds), len(task_model_and_fold_indices)))
-
-    def train_and_test_one_model_task(model_and_fold_nums_pair):
-        (model_num, fold_nums) = model_and_fold_nums_pair
-        return train_and_test_one_model(
-            model_descriptions[model_num],
-            [folds[i] for i in fold_nums],
-            return_predictor=return_predictors)
-
-    task_results = parallel_backend.map(
-        train_and_test_one_model_task,
-        task_model_and_fold_indices)
-
-    logging.info("Done.")
-
-    results_dict = collections.OrderedDict()
-
-    def column(key, value):
-        if key not in results_dict:
-            results_dict[key] = []
-        results_dict[key].append(value)
-
-    for ((model_num, fold_nums), task_results_for_folds) in zip(
-            task_model_and_fold_indices, task_results):
-        for (fold_num, task_result) in zip(fold_nums, task_results_for_folds):
-            fold = folds[fold_num]
-            model_description = model_descriptions[model_num]
-
-            column("allele", fold.allele)
-            column("fold_num", fold_num)
-            column("model_num", model_num)
-
-            column("train_size", len(fold.train))
-
-            column(
-                "test_size",
-                len(fold.test) if fold.test is not None else None)
-
-            column(
-                "imputed_train_size",
-                len(fold.imputed_train)
-                if fold.imputed_train is not None else None)
-
-            # Scores
-            for score_kind in ['train', 'test']:
-                field = "%s_scores" % score_kind
-                for (score, value) in task_result.pop(field, {}).items():
-                    column("%s_%s" % (score_kind, score), value)
-
-            # Misc. fields
-            for (key, value) in task_result.items():
-                column(key, value)
-
-            # Model parameters
-            for (model_param, value) in model_description.items():
-                column("model_%s" % model_param, value)
-
-    results_df = pandas.DataFrame(results_dict)
-    return results_df
diff --git a/mhcflurry/class1_allele_specific_ensemble/__init__.py b/mhcflurry/class1_allele_specific_ensemble/__init__.py
deleted file mode 100644
index 4bc67405..00000000
--- a/mhcflurry/class1_allele_specific_ensemble/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from .class1_ensemble_multi_allele_predictor import (
-    Class1EnsembleMultiAllelePredictor,
-    get_downloaded_predictor,
-    supported_alleles,
-    HYPERPARAMETER_DEFAULTS)
-
-__all__ = [
-    "Class1EnsembleMultiAllelePredictor",
-    "get_downloaded_predictor",
-    "supported_alleles",
-    "HYPERPARAMETER_DEFAULTS",
-]
diff --git a/mhcflurry/class1_allele_specific_ensemble/class1_ensemble_multi_allele_predictor.py b/mhcflurry/class1_allele_specific_ensemble/class1_ensemble_multi_allele_predictor.py
deleted file mode 100644
index c3ec0ae7..00000000
--- a/mhcflurry/class1_allele_specific_ensemble/class1_ensemble_multi_allele_predictor.py
+++ /dev/null
@@ -1,791 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-This module defines a multi-allele Class I affinity predictor,
-Class1EnsembleMultiAllelePredictor, whose predictions are generated by an
-ensemble of Class1BindingPredictor instances.
-"""
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-
-import pickle
-import os
-import math
-import logging
-import collections
-import time
-from functools import partial
-
-import numpy
-import pandas
-
-from ..hyperparameters import HyperparameterDefaults
-from ..class1_allele_specific import Class1BindingPredictor, scoring
-from ..downloads import get_path
-from ..common import normalize_allele_name, UnsupportedAllele
-from .. import parallelism, common
-from ..peptide_encoding import encode_peptides
-
-
-MEASUREMENT_COLLECTION_HYPERPARAMETER_DEFAULTS = HyperparameterDefaults(
-    include_ms=True,
-    ms_hit_affinity=1.0,
-    ms_decoy_affinity=20000.0)
-
-IMPUTE_HYPERPARAMETER_DEFAULTS = HyperparameterDefaults(
-    impute_method='mice',
-    impute_min_observations_per_peptide=5,
-    impute_min_observations_per_allele=5,
-    imputer_args={"n_burn_in": 5, "n_imputations": 25})
-
-HYPERPARAMETER_DEFAULTS = (
-    HyperparameterDefaults(
-        impute=True,
-        architecture_num=None)
-    .extend(MEASUREMENT_COLLECTION_HYPERPARAMETER_DEFAULTS)
-    .extend(IMPUTE_HYPERPARAMETER_DEFAULTS)
-    .extend(Class1BindingPredictor.hyperparameter_defaults))
-
-
-CACHED_PREDICTOR = None
-CACHED_PREDICTOR_PATH = None
-
-
-def supported_alleles():
-    """
-    Return a list of the names of the alleles for which there are trained
-    predictors in the default laoder.
-    """
-    return get_downloaded_predictor().supported_alleles
-
-
-def get_downloaded_predictor():
-    """
-    Return a Class1AlleleSpecificPredictorLoader that uses downloaded models.
-    """
-    global CACHED_PREDICTOR, CACHED_PREDICTOR_PATH
-
-    # Some of the unit tests manipulate the downloads directory configuration
-    # so get_path here may return different results in the same Python process.
-    # For this reason we check the path and invalidate the loader if it's
-    # different.
-    path = get_path("models_class1_allele_specific_ensemble")
-    if CACHED_PREDICTOR_PATH != path:
-        CACHED_PREDICTOR_PATH = path
-        CACHED_PREDICTOR = (
-            Class1EnsembleMultiAllelePredictor
-                .load_from_download_directory(path))
-    return CACHED_PREDICTOR
-
-
-class Class1EnsembleMultiAllelePredictor(object):
-    """
-    Multi-allele affinity predictor that uses ensembles of allele-specific
-    models.
-
-    The individual models are selected via hyperparameter selection over a fixed
-    universe of models.
-
-    Metadata for the individual models, including hyperparameters and test
-    scores are stored in the "manifest_df" dataframe. This dataframe is generated
-    in fit() and saved to / loaded from a CSV file when saving and loading
-    models. The individual allele-specific models are stored as .pickle files in
-    a directory, and named according to the `model_name` column in the manifest
-    dataframe. They are loaded lazily as they are needed and cached in the
-    `allele_to_models` attribute.
-    """
-    @staticmethod
-    def load_from_download_directory(directory):
-        """
-        Instantiate a Class1EnsembleMultiAllelePredictor from a directory with
-        structure:
-
-            selected_models.csv
-                Manifest file describing selected models
-
-            models/
-                Subdir with model pickle files
-
-        Parameters
-        -----------
-        directory : string
-            Path to directory
-
-        Returns
-        -----------
-        Class1EnsembleMultiAllelePredictor
-        """
-        return Class1EnsembleMultiAllelePredictor.load_fit(
-            os.path.join(directory, "models"),
-            os.path.join(directory, "selected_models.csv"),
-        )
-
-    @staticmethod
-    def load_fit(path_to_models_dir, path_to_manifest):
-        """
-        Instantiate a Class1EnsembleMultiAllelePredictor from the given manifest
-        file and models directory.
-
-        Parameters
-        -----------
-        path_to_models_dir : string
-            Path to models/ directory
-
-        path_to_manifest : string
-            Path to manifest csv file
-
-        Returns
-        -----------
-        Class1EnsembleMultiAllelePredictor
-        """
-        manifest_df = pandas.read_csv(path_to_manifest, index_col="model_name")
-        # Convert string-serialized dicts into Python objects.
-        manifest_df["hyperparameters"] = [
-            eval(s) for s in manifest_df.hyperparameters
-        ]
-        hyperparameters_to_search = list(dict(
-            (row.hyperparameters_architecture_num, row.hyperparameters)
-            for (_, row) in manifest_df.iterrows()
-        ).values())
-        (ensemble_size,) = list(manifest_df.ensemble_size.unique())
-        assert (
-            manifest_df.ix[manifest_df.weight > 0]
-            .groupby("allele")
-            .weight
-            .count() == ensemble_size).all()
-        result = Class1EnsembleMultiAllelePredictor(
-            ensemble_size=ensemble_size,
-            hyperparameters_to_search=hyperparameters_to_search)
-        result.manifest_df = manifest_df
-        result.allele_to_models = {}
-        result.models_dir = os.path.abspath(path_to_models_dir)
-        return result
-
-    def __init__(self, ensemble_size, hyperparameters_to_search):
-        """
-        Parameters
-        -----------
-        ensemble_size : int
-            Number of models in each allele's ensemble
-
-        hyperparameters_to_search : list of dict
-            List of model architectures to perform model selection over
-        """
-        self.imputation_hyperparameters = None  # None indicates no imputation
-        self.hyperparameters_to_search = []
-        for (num, params) in enumerate(hyperparameters_to_search):
-            params = dict(params)
-            params["architecture_num"] = num
-            params = HYPERPARAMETER_DEFAULTS.with_defaults(params)
-            self.hyperparameters_to_search.append(params)
-
-            if params['impute']:
-                imputation_args = IMPUTE_HYPERPARAMETER_DEFAULTS.subselect(
-                    params)
-                if self.imputation_hyperparameters is None:
-                    self.imputation_hyperparameters = imputation_args
-                if self.imputation_hyperparameters != imputation_args:
-                    raise NotImplementedError(
-                        "Only one set of imputation parameters is supported: "
-                        "%s != %s" % (
-                            str(self.imputation_hyperparameters),
-                            str(imputation_args)))
-
-        self.ensemble_size = ensemble_size
-        self.manifest_df = None
-        self.allele_to_models = None
-        self.models_dir = None
-
-    @property
-    def supported_alleles(self):
-        """
-        List of alleles this predictor has models for.
-        """
-        return list(
-            self.manifest_df.ix[self.manifest_df.weight > 0].allele.unique())
-
-    def description(self):
-        """
-        Human readable description of this model.
-
-        Returns
-        -----------
-        str
-        """
-        lines = []
-        kvs = []
-
-        def kv(key, value):
-            kvs.append((key, value))
-
-        kv("ensemble size", self.ensemble_size)
-        kv("num architectures considered",
-            len(self.hyperparameters_to_search))
-        if self.allele_to_models is not None:
-            kv("supported alleles", " ".join(self.supported_alleles))
-        kv("models dir", self.models_dir)
-
-        lines.append("%s Ensemble: %s" % (
-            "Untrained" if self.allele_to_models is None else "Trained",
-            self))
-        for (key, value) in kvs:
-            lines.append("* %s: %s" % (key, value))
-
-        if self.manifest_df is not None:
-            models_used = self.manifest_df.ix[self.manifest_df.weight > 0]
-
-            ignored_properties = set(['hyperparameters', 'scores'])
-            lines.append("* Attributes common to all models:")
-            unique = None
-            for col in models_used.columns:
-                unique = models_used[col].map(str).unique()
-                if len(unique) == 1:
-                    lines.append("\t%s: %s" % (col, unique[0]))
-                    ignored_properties.add(col)
-            if unique is None:
-                lines.append("\t(none)")
-
-            for (allele, manifest_rows) in models_used.groupby("allele"):
-                lines.append("***")
-                for (i, (name, row)) in enumerate(manifest_rows.iterrows()):
-                    lines.append("* %s model %d: %s" % (
-                        allele, i + 1, name))
-                    for (k, v) in row.iteritems():
-                        if k not in ignored_properties:
-                            lines.append("\t%s: %s" % (k, v))
-                    lines.append("")
-        return "\n".join(lines)
-
-    def models_for_allele(self, allele):
-        """
-        Return the single-allele models in the ensemble for the given allele.
-
-        Parameters
-        -----------
-        allele : str
-
-        Returns
-        -----------
-        list of Class1BindingPredictor instances
-        """
-        allele = normalize_allele_name(allele)
-        if allele not in self.allele_to_models:
-            model_names = self.manifest_df.ix[
-                (self.manifest_df.weight > 0) &
-                (self.manifest_df.allele == allele)
-            ].index
-            if len(model_names) == 0:
-                raise UnsupportedAllele(
-                    "Unsupported allele: %s. Supported alleles: %s" % (
-                        allele,
-                        ", ".join(self.supported_alleles)))
-            assert len(model_names) == self.ensemble_size
-            models = []
-            for name in model_names:
-                filename = os.path.join(
-                    self.models_dir, "%s.pickle" % name)
-                with open(filename, 'rb') as fd:
-                    model = pickle.load(fd)
-                    assert model.name == name
-                    models.append(model)
-            self.allele_to_models[allele] = models
-        result = self.allele_to_models[allele]
-        assert len(result) == self.ensemble_size
-        return result
-
-    def write_fit(
-            self,
-            models_dir=None,
-            selected_models_csv=None,
-            all_models_csv=None):
-        """
-        Write the models and metadata to disk.
-
-        Any arguments left unspecified result in the corresponding file not
-        being written.
-
-        The manifest CSV has a 'weight' column. The weight is set to 1.0 for
-        selected models and 0.0 for non-selected models.
-
-        Parameters
-        -----------
-        models_dir : str, optional
-            Path to dir in which to write models.
-
-        selected_models_csv : str, optional
-            Path to selected models manifest csv. Descriptions and scores for
-            the selected models are written here.
-
-        all_models_csv : str, optional
-            Path to manifest csv. Descriptions and scores for all models, both
-            selected and unselected, are written here.
-        """
-        if all_models_csv:
-            self.manifest_df.to_csv(all_models_csv)
-            logging.debug("Wrote: %s" % all_models_csv)
-        if selected_models_csv:
-            self.manifest_df.ix[
-                self.manifest_df.weight > 0
-            ].to_csv(selected_models_csv)
-            logging.debug("Wrote: %s" % selected_models_csv)
-
-        if models_dir:
-            models_written = []
-            for (allele, models) in self.allele_to_models.items():
-                for model in models:
-                    filename = os.path.join(
-                        models_dir, "%s.pickle" % model.name)
-                    with open(filename, 'wb') as fd:
-                        pickle.dump(model, fd)
-                    logging.debug("Wrote: %s" % filename)
-                    models_written.append(model.name)
-            assert set(models_written) == set(
-                self.manifest_df.ix[self.manifest_df.weight > 0].index)
-
-    def predict_measurement_collection(self, measurement_collection):
-        """
-        Return affinity predictions for the (allele, peptide) pairs given in
-        the specified measurement collection.
-
-        Parameters
-        -----------
-        measurement_collection : MeasurementCollection
-
-        Returns
-        -----------
-        pandas.Series of predictions corresponding to each row in
-        measurement_collection.df.
-        """
-        result = pandas.Series(
-            index=measurement_collection.df.index)
-        for (allele, sub_df) in measurement_collection.df.groupby("allele"):
-            result.loc[sub_df.index] = self.predict_for_allele(
-                allele, sub_df.peptide.values)
-        assert not result.isnull().any()
-        return result
-
-    def predict_for_allele(self, allele, peptides):
-        """
-        Return affinity predictions for a list of peptides on a single allele.
-
-        Parameters
-        -----------
-        allele : string
-
-        peptides : list of string
-
-        Returns
-        -----------
-        numpy array of predictions for each peptide
-        """
-        encoded = encode_peptides(peptides)
-        values = [
-            model.predict(encoded)
-            for model in self.models_for_allele(allele)
-        ]
-
-        # Geometric mean
-        result = numpy.exp(numpy.nanmean(numpy.log(values), axis=0))
-        assert len(result) == len(peptides)
-        return result
-
-    def fit(
-            self,
-            measurement_collection,
-            parallel_backend=None,
-            target_tasks=1):
-        """
-        Fit the predictor for any number of alleles. This method supports
-        parallel execution and works as follows.
-
-        (1) Split the dataset into `ensemble_size` random (test, train) splits.
-            Stratify by allele so each allele has about the same fraction of
-            points in each split.
-        (2) Run imputation on each split (if any models require imputation)
-        (3) For each allele and each split, perform model selection over all
-            len(hyperparameters_to_search) architectures to pick the best model.
-
-        The final predictor for allele is then an ensemble of the
-        `ensemble_size` best models, which in general have different
-        hyperparameters.
-
-        Parameters
-        -----------
-        measurement_collection : MeasurementCollection
-            training data
-
-        parallel_backend : mhcflurry.parallelism.ParallelBackend instance
-            Implementation to use for parallel execution
-
-        target_tasks : int, optional
-            Approximate number of parallel tasks to split the work into
-        """
-        if parallel_backend is None:
-            parallel_backend = parallelism.get_default_backend()
-
-        # Unique name for this fit to be used in the model filenames.
-        fit_name = time.asctime().replace(" ", "_")
-        assert len(measurement_collection.df) > 0
-
-        # (1) Split the data
-        splits = measurement_collection.half_splits(
-            self.ensemble_size, random_state=0)
-
-        # (2) perform imputation if necessary
-        if self.imputation_hyperparameters is not None:
-            logging.info("Imputing: %d tasks, imputation args: %s" % (
-                len(splits), str(self.imputation_hyperparameters)))
-            imputed_trains = list(parallel_backend.map(
-                partial(
-                    impute, parallel_backend, self.imputation_hyperparameters),
-                [train for (train, test) in splits]))
-            logging.info("Imputation completed.")
-        else:
-            logging.info("No imputation required.")
-            imputed_trains = None
-
-        assert len(splits) == self.ensemble_size, len(splits)
-
-        alleles = set(measurement_collection.df.allele.unique())
-
-        # (3) Train and select models
-        total_work = (
-            len(alleles) *
-            self.ensemble_size *
-            len(self.hyperparameters_to_search))
-        work_per_task = int(math.ceil(total_work / target_tasks))
-
-        # tasks is a list of tuples. Each tuple represents a task and is the
-        # arguments to the fit_and_test() top-level function.
-        tasks = []
-        for (fold_num, (train_split, test_split)) in enumerate(splits):
-            assert len(train_split.df) > 0
-            assert len(test_split.df) > 0
-
-            # For efficiency, we pass around RemoteObject references to the
-            # train and test data, so they are only uploaded once.
-            train_remote_object = parallel_backend.remote_object(train_split)
-            test_remote_object = parallel_backend.remote_object(test_split)
-            imputed_train_remote_object = None
-            if imputed_trains is not None:
-                imputed_train_remote_object = imputed_trains[fold_num]
-
-            # Buffer of alleles and models to use in the next task.
-            task_allele_model_pairs = []
-
-            # This function appends a new task to the tasks list and resets
-            # the task_allele_model_pairs buffer.
-            def make_task():
-                if task_allele_model_pairs:
-                    tasks.append((
-                        parallel_backend,
-                        fold_num,
-                        train_remote_object,
-                        imputed_train_remote_object,
-                        test_remote_object,
-                        list(task_allele_model_pairs)))
-                    task_allele_model_pairs[:] = []
-
-            assert all(
-                allele in set(train_split.df.allele.unique())
-                for allele in alleles), (
-                "%s not in %s" % (
-                    alleles, set(train_split.df.allele.unique())))
-            assert all(
-                allele in set(test_split.df.allele.unique())
-                for allele in alleles), (
-                "%s not in %s" % (
-                    alleles, set(test_split.df.allele.unique())))
-
-            # Loop through models and alleles and generate new tasks whenever
-            # the current task's work exceeds work_per_task.
-            for model in self.hyperparameters_to_search:
-                for allele in alleles:
-                    task_allele_model_pairs.append((allele, model))
-                    if len(task_allele_model_pairs) > work_per_task:
-                        make_task()
-            make_task()
-            assert not task_allele_model_pairs
-
-        allele_models_per_task = numpy.array([
-            len(task[-1]) for task in tasks
-        ])
-        logging.info(
-            "Training and scoring models: %d tasks (target was %d), "
-            "total work: %d alleles * %d ensemble size * %d models = %d, "
-            "allele/models per task: (min=%d mean=%f max=%d)" % (
-                len(tasks),
-                target_tasks,
-                len(alleles),
-                self.ensemble_size,
-                len(self.hyperparameters_to_search),
-                total_work,
-                allele_models_per_task.min(),
-                allele_models_per_task.max(),
-                allele_models_per_task.mean()))
-
-        assert len(tasks) > 0
-        results = parallel_backend.map(call_fit_and_test, tasks)
-
-        # Iterate over results, keeping track of the best model seen so far for
-        # each (fold, allele) pair.
-        # Also track metadata for all models in manifest_rows, which will be
-        # used to generate the manifest dataframe.
-
-        # fold number -> allele -> best model
-        results_per_fold = [
-            {}
-            for _ in range(len(splits))
-        ]
-        next_model_num = 1
-        manifest_rows = []
-        for result in results:
-            logging.debug("Received task result with %d items." % len(result))
-            for item in result:
-                item['model_name'] = "%s.%d.%s" % (
-                    item['allele'], next_model_num, fit_name)
-                next_model_num += 1
-
-                scores = pandas.Series(item['scores'])
-                item['summary_score'] = scores.fillna(0).sum()
-                fold_results = results_per_fold[item['fold_num']]
-                allele = item['allele']
-                current_best = float('-inf')
-                if allele in fold_results:
-                    current_best = fold_results[allele]['summary_score']
-
-                if item['summary_score'] > current_best:
-                    logging.info("Updating current best: %s" % str(item))
-                    fold_results[allele] = item
-
-                manifest_entry = dict(item)
-                del manifest_entry['model']
-                for key in ['hyperparameters', 'scores']:
-                    for (sub_key, value) in item[key].items():
-                        manifest_entry["%s_%s" % (key, sub_key)] = value
-                manifest_rows.append(manifest_entry)
-
-        assert len(manifest_rows) > 0
-        manifest_df = pandas.DataFrame(manifest_rows)
-        manifest_df.index = manifest_df.model_name
-        del manifest_df["model_name"]
-        manifest_df["weight"] = 0.0
-        manifest_df["ensemble_size"] = self.ensemble_size
-
-        logging.info("Done collecting results.")
-
-        self.allele_to_models = collections.defaultdict(list)
-        for fold_results in results_per_fold:
-            assert set(fold_results) == set(alleles), (
-                "%s != %s" % (set(fold_results), set(alleles)))
-            for (allele, item) in fold_results.items():
-                model = item['model'].value
-                model.name = item['model_name']
-                self.allele_to_models[allele].append(model)
-                manifest_df.loc[model.name, "weight"] = 1.0
-
-        self.manifest_df = manifest_df
-
-def call_fit_and_test(args):
-    """
-    Call fit_and_test with the given arguments and return the result.
-
-    This top-level function exists as a convenience for parallel execution of
-    fit_and_test using a parallel map.
-    """
-    return fit_and_test(*args)
-
-
-def fit_and_test(
-        parallel_backend,
-        fold_num,
-        train_mc_remote_object,
-        imputed_mc_remote_object,
-        test_mc_remote_object,
-        allele_and_hyperparameter_pairs):
-    """
-    Fit and test one or more models on one or more alleles. When running
-    parallel jobs, this function is the entry point for each task.
-
-    The input measurement collections and output trained models are passed
-    as kubeface.RemoteObject instances instead of by value. This is an
-    optimization that enables the master node to upload each measurement
-    collection only once and run many tasks that use it. For the returned models,
-    it allows the master to download only the models that actually perform best.
-
-    Parameters
-    -----------
-
-    parallel_backend : mhcflurry.parallelism.ParallelBackend instance
-        Implementation to use for parallel execution
-
-    fold_num : int
-        Which split of the data is being fit. For an ensemble of size 16,
-        0 <= fold_num < 16.
-
-    train_mc_remote_object : kubeface.RemoteObject of MeasurementCollection
-        train MeasurementCollection
-
-    imputed_mc_remote_object : kubeface.RemoteObject of MeasurementCollection
-        imputed (pre-training) MeasurementCollection
-
-    test_mc_remote_object : kubeface.RemoteObject of MeasurementCollection
-        test MeasurementCollection
-
-    allele_and_hyperparameter_pairs : list of (string, dict) pairs
-        The "work" of the task: the alleles and model hyperparameters to train
-        and evaluate.
-
-    Returns
-    -----------
-    list of dict giving scores, metadata, and remote objects pointing to the
-    trained models
-    """
-
-    logging.info(
-        "Fit and test: fold=%d train=%s,%s test=%s alleles/models [%d]=%s" % (
-            fold_num,
-            train_mc_remote_object.value,
-            imputed_mc_remote_object,
-            test_mc_remote_object.value,
-            len(allele_and_hyperparameter_pairs),
-            "\n".join("Allele: %s, hyperparameters: %s" % (
-                allele, hyperparameters)
-                for (allele, hyperparameters)
-                in allele_and_hyperparameter_pairs)))
-
-    assert len(train_mc_remote_object.value.df) > 0
-    assert len(test_mc_remote_object.value.df) > 0
-
-    train_mc_hash = common.dataframe_cryptographic_hash(
-        train_mc_remote_object.value.df)
-
-    imputed_mc_hash = None
-    if imputed_mc_remote_object is not None:
-        imputed_mc_hash = common.dataframe_cryptographic_hash(
-            imputed_mc_remote_object.value.df)
-    test_mc_hash = common.dataframe_cryptographic_hash(
-        test_mc_remote_object.value.df)
-
-    common_result_entries = {
-        'fold_num': fold_num,
-        'all_alleles_train_data_hash': train_mc_hash,
-        'all_alleles_imputed_data_hash': imputed_mc_hash,
-        'all_alleles_test_data_hash': test_mc_hash,
-    }
-
-    results = []
-    for (i, (allele, all_hyperparameters)) in enumerate(
-            allele_and_hyperparameter_pairs):
-        logging.info("Model %d / %d: allele=%s hyperparameters=%s" % (
-            i + 1,
-            len(allele_and_hyperparameter_pairs),
-            allele,
-            str(all_hyperparameters)))
-
-        start = time.time()
-        measurement_collection_hyperparameters = (
-            MEASUREMENT_COLLECTION_HYPERPARAMETER_DEFAULTS.subselect(
-                all_hyperparameters))
-        model_hyperparameters = (
-            Class1BindingPredictor.hyperparameter_defaults.subselect(
-                all_hyperparameters))
-
-        train_dataset = (
-            train_mc_remote_object
-            .value
-            .select_allele(allele)
-            .to_dataset(**measurement_collection_hyperparameters))
-        if all_hyperparameters['impute'] and (
-                allele in
-                imputed_mc_remote_object.value.alleles):
-            imputed_train_dataset = (
-                imputed_mc_remote_object
-                .value
-                .select_allele(allele)
-                .to_dataset(**measurement_collection_hyperparameters))
-        else:
-            imputed_train_dataset = None
-        test_dataset = (
-            test_mc_remote_object
-            .value
-            .select_allele(allele)
-            .to_dataset(**measurement_collection_hyperparameters))
-
-        assert len(train_dataset) > 0
-        assert len(test_dataset) > 0
-
-        model = Class1BindingPredictor(**model_hyperparameters)
-
-        train_start = time.time()
-        model.fit_dataset(
-            train_dataset,
-            pretraining_dataset=imputed_train_dataset)
-        train_end = time.time()
-        predictions = model.predict(test_dataset.peptides)
-        test_end = time.time()
-        assert len(test_dataset.affinities) == len(predictions)
-        scores = scoring.make_scores(
-            test_dataset.affinities, predictions)
-
-        result = dict(common_result_entries)
-        result.update({
-            'allele': allele,
-            'hyperparameters': all_hyperparameters,
-            'model': parallel_backend.remote_object(model),
-            'scores': scores,
-            'train_size': len(train_dataset),
-            'test_size': len(test_dataset),
-            'pretrain_size': (
-                0 if imputed_train_dataset is None
-                else len(imputed_train_dataset)),
-            'train_time': train_end - train_start,
-            'predict_time': test_end - train_end,
-        })
-        results.append(result)
-        logging.info("Done training model in %0.2f sec" % (
-            time.time() - start))
-    return results
-
-
-def impute(parallel_backend, hyperparameters, measurement_collection):
-    """
-    Run imputation on a measurement collection and return the resulting
-    measurement collection. When running parallel jobs, this function is the
-    entry point for each imputation task.
-
-    Parameters
-    -----------
-
-    parallel_backend : mhcflurry.parallelism.ParallelBackend instance
-        Implementation to use for parallel execution
-
-    hyperparameters : dict
-        Imputation hyperparameters. See IMPUTE_HYPERPARAMETER_DEFAULTS.
-
-    measurement_collection : MeasurementCollection
-        data to run imputation on
-
-    Returns
-    -----------
-    RemoteObject of MeasurementCollection
-
-    the imputed data
-    """
-    return parallel_backend.remote_object(
-        measurement_collection.impute(**hyperparameters))
\ No newline at end of file
diff --git a/mhcflurry/class1_allele_specific_ensemble/train_command.py b/mhcflurry/class1_allele_specific_ensemble/train_command.py
deleted file mode 100644
index cabe40cd..00000000
--- a/mhcflurry/class1_allele_specific_ensemble/train_command.py
+++ /dev/null
@@ -1,232 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-'''
-Ensemble class1 allele-specific model selection and training script.
-
-Procedure
-    - N (ensemble size) times:
-        - Split full dataset (all alleles) into 50/50 train and test splits.
-          Stratify by allele.
-        - Perform imputation on train subset.
-        - For each allele and architecture, train and test on splits.
-
-    The final predictor is an ensemble of the N best predictors for each
-    allele.
-
-The parallelization is primary intended to be used with an
-alternative concurrent.futures Executor such as dask-distributed that supports
-multi-node parallelization. Theano in particular seems to have deadlocks
-when running with single-node parallelization.
-'''
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-import sys
-import argparse
-import json
-import logging
-import os
-import traceback
-import signal
-
-from .. import parallelism
-from ..affinity_measurement_dataset import AffinityMeasurementDataset
-
-from .class1_ensemble_multi_allele_predictor import (
-    Class1EnsembleMultiAllelePredictor)
-from ..measurement_collection import MeasurementCollection
-
-parser = argparse.ArgumentParser(
-    description=__doc__,
-    formatter_class=argparse.RawDescriptionHelpFormatter)
-
-parser.add_argument(
-    "--train-data",
-    metavar="X.csv",
-    required=True,
-    help="Training data")
-
-parser.add_argument(
-    "--model-architectures",
-    metavar="X.json",
-    type=argparse.FileType('r'),
-    required=True,
-    help="JSON file giving model architectures to assess in cross validation."
-    " Can be - to read from stdin")
-
-parser.add_argument(
-    "--alleles",
-    metavar="ALLELE",
-    nargs="+",
-    default=None,
-    help="Use only the specified alleles")
-
-parser.add_argument(
-    "--out-manifest",
-    metavar="X.csv",
-    help="Write descriptions of selected models to given file")
-
-parser.add_argument(
-    "--out-model-selection-manifest",
-    metavar="X.csv",
-    help="Write complete results of all models to the given file")
-
-parser.add_argument(
-    "--out-models-dir",
-    metavar="DIR",
-    help="Write production models to files in this dir")
-
-parser.add_argument(
-    "--max-models",
-    type=int,
-    metavar="N",
-    help="Use only the first N models")
-
-parser.add_argument(
-    "--ensemble-size",
-    type=int,
-    metavar="N",
-    required=True,
-    help="Number of models to use per allele")
-
-parser.add_argument(
-    "--target-tasks",
-    type=int,
-    metavar="N",
-    required=True,
-    help="Target number of tasks to submit")
-
-parser.add_argument(
-    "--min-samples-per-allele",
-    default=100,
-    metavar="N",
-    help="Don't train predictors for alleles with fewer than N samples. "
-    "Set to 0 to disable filtering. Default: %(default)s",
-    type=int)
-
-parser.add_argument(
-    "--quiet",
-    action="store_true",
-    default=False,
-    help="Output less info")
-
-parser.add_argument(
-    "--verbose",
-    action="store_true",
-    default=False,
-    help="Output more info")
-
-parser.add_argument(
-    "--dask-scheduler",
-    metavar="HOST:PORT",
-    help="Host and port of dask distributed scheduler")
-
-parser.add_argument(
-    "--parallel-backend",
-    choices=("local-threads", "local-processes", "kubeface", "dask"),
-    default="local-threads",
-    help="Backend to use, default: %(default)s")
-
-parser.add_argument(
-    "--num-local-processes",
-    metavar="N",
-    type=int,
-    help="Processes (exclusive with --dask-scheduler and --num-local-threads)")
-
-parser.add_argument(
-    "--num-local-threads",
-    metavar="N",
-    type=int,
-    default=1,
-    help="Threads (exclusive with --dask-scheduler and --num-local-processes)")
-
-try:
-    import kubeface
-    kubeface.Client.add_args(parser)
-except ImportError:
-    logging.error("Kubeface support disabled, not installed.")
-
-
-def run(argv=sys.argv[1:]):
-    # On sigusr1 print stack trace
-    print("To show stack trace, run:\nkill -s USR1 %d" % os.getpid())
-    signal.signal(signal.SIGUSR1, lambda sig, frame: traceback.print_stack())
-
-    args = parser.parse_args(argv)
-    if args.verbose:
-        logging.root.setLevel(level="DEBUG")
-    elif not args.quiet:
-        logging.root.setLevel(level="INFO")
-
-    logging.info("Running with arguments: %s" % args)
-
-    # Set parallel backend
-    if args.parallel_backend == "dask":
-        backend = parallelism.DaskDistributedParallelBackend(
-            args.dask_scheduler)
-    elif args.parallel_backend == "kubeface":
-        backend = parallelism.KubefaceParallelBackend(args)
-    elif args.parallel_backend == "local-threads":
-        backend = parallelism.ConcurrentFuturesParallelBackend(
-            args.num_local_threads,
-            processes=False)
-    elif args.parallel_backend == "local-processes":
-        backend = parallelism.ConcurrentFuturesParallelBackend(
-            args.num_local_processes,
-            processes=True)
-    else:
-        assert False, args.parallel_backend
-
-    parallelism.set_default_backend(backend)
-    print("Using parallel backend: %s" % backend)
-    go(args)
-
-
-def go(args):
-    model_architectures = json.loads(args.model_architectures.read())
-    logging.info("Read %d model architectures" % len(model_architectures))
-    if args.max_models:
-        model_architectures = model_architectures[:args.max_models]
-        logging.info(
-            "Subselected to %d model architectures" % len(model_architectures))
-
-    train_dataset = AffinityMeasurementDataset.from_csv(args.train_data)
-    logging.info("Loaded training data: %s" % train_dataset)
-
-    if args.alleles:
-        train_dataset = train_dataset.get_alleles(args.alleles)
-        logging.info(
-            "Filtered training dataset by allele to: %s" % train_dataset)
-
-    if args.min_samples_per_allele:
-        train_dataset = train_dataset.filter_alleles_by_count(
-            args.min_samples_per_allele)
-        logging.info(
-            "Filtered training dataset to alleles with >= %d observations: %s"
-            % (args.min_samples_per_allele, train_dataset))
-
-    train_mc = MeasurementCollection.from_dataset(train_dataset)
-    model = Class1EnsembleMultiAllelePredictor(
-        args.ensemble_size,
-        model_architectures)
-    model.fit(train_mc, target_tasks=args.target_tasks)
-    logging.info("Done fitting.")
-
-    model.write_fit(
-        selected_models_csv=args.out_manifest,
-        all_models_csv=args.out_model_selection_manifest,
-        models_dir=args.out_models_dir)
diff --git a/mhcflurry/common.py b/mhcflurry/common.py
index da205c34..42aced01 100644
--- a/mhcflurry/common.py
+++ b/mhcflurry/common.py
@@ -15,16 +15,18 @@
 from __future__ import print_function, division, absolute_import
 from math import exp, log
 import itertools
-from collections import defaultdict
+import collections
 import logging
 import hashlib
 import time
 import sys
 from os import environ
 
-import numpy as np
+import numpy
 import pandas
 
+from . import amino_acid
+
 
 class UnsupportedAllele(Exception):
     pass
@@ -110,7 +112,7 @@ def groupby_indices(iterable, key_fn=lambda x: x):
     Returns dictionary mapping unique values to list of indices that
     had those values.
     """
-    index_groups = defaultdict(list)
+    index_groups = collections.defaultdict(list)
     for i, x in enumerate(key_fn(x) for x in iterable):
         index_groups[x].append(i)
     return index_groups
@@ -240,3 +242,63 @@ def drop_nulls_and_warn(df, related_df_with_same_index_to_describe=None):
                 new_df.shape,
                 describe_nulls(df, related_df_with_same_index_to_describe)))
     return new_df
+
+
+def from_ic50(ic50):
+    x = 1.0 - (numpy.log(ic50) / numpy.log(50000))
+    return numpy.minimum(
+        1.0,
+        numpy.maximum(0.0, x))
+
+
+def to_ic50(x):
+    return 50000.0 ** (1.0 - x)
+
+
+def amino_acid_distribution(peptides, smoothing=0.0):
+    peptides = pandas.Series(peptides)
+    aa_counts = pandas.Series(peptides.map(collections.Counter).sum())
+    normalized = aa_counts / aa_counts.sum()
+    if smoothing:
+        normalized += smoothing
+        normalized /= normalized.sum()
+    return normalized
+
+
+def random_peptides(num, length=9, distribution=None):
+    """
+    Generate random peptides (kmers).
+
+    Parameters
+    ----------
+    num : int
+        Number of peptides to return
+
+    length : int
+        Length of each peptide
+
+    distribution : pandas.Series
+        Maps 1-letter amino acid abbreviations to
+        probabilities. If not specified a uniform
+        distribution is used.
+
+    Returns
+    ----------
+    list of string
+
+    """
+    if num == 0:
+        return []
+    if distribution is None:
+        distribution = pandas.Series(
+            1, index=amino_acid.common_amino_acid_letters)
+        distribution /= distribution.sum()
+
+    return [
+        ''.join(peptide_sequence)
+        for peptide_sequence in
+        numpy.random.choice(
+            distribution.index,
+            p=distribution.values,
+            size=(int(num), int(length)))
+    ]
diff --git a/mhcflurry/dataset_helpers.py b/mhcflurry/dataset_helpers.py
deleted file mode 100644
index dc509371..00000000
--- a/mhcflurry/dataset_helpers.py
+++ /dev/null
@@ -1,278 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-
-from typechecks import require_instance
-import numpy as np
-import pandas as pd
-
-from .common import normalize_allele_name
-from .peptide_encoding import (
-    indices_to_hotshot_encoding,
-    fixed_length_index_encoding,
-    check_valid_index_encoding_array,
-)
-
-
-def check_pMHC_affinity_arrays(alleles, peptides, affinities, sample_weights):
-    """
-    Make sure that we have the same number of peptides, affinity values,
-    and weights.
-    """
-    require_instance(alleles, np.ndarray)
-    require_instance(peptides, np.ndarray)
-    require_instance(affinities, np.ndarray)
-    require_instance(sample_weights, np.ndarray)
-
-    if len(alleles.shape) != 1:
-        raise ValueError("Expected 1d array of alleles but got shape %s" % (
-            alleles.shape,))
-    if len(peptides.shape) != 1:
-        raise ValueError("Expected 1d array of peptides but got shape %s" % (
-            peptides.shape,))
-    if len(affinities.shape) != 1:
-        raise ValueError(
-            "Expected 1d array of affinity values but got shape %s" % (
-                alleles.shape,))
-    if len(sample_weights.shape) != 1:
-        raise ValueError(
-            "Expected 1d array of sample weights but got shape %s" % (
-                sample_weights.shape,))
-
-    n = len(alleles)
-    if len(peptides) != n:
-        raise ValueError(
-            "Expected %d peptides but got %d" % (n, len(peptides)))
-    if len(affinities) != n:
-        raise ValueError(
-            "Expected %d affinity values but got %d" % (n, len(affinities)))
-    if len(sample_weights) != n:
-        raise ValueError(
-            "Expected %d sample weights but got %d" % (n, len(sample_weights)))
-
-
-def prepare_pMHC_affinity_arrays(alleles, peptides, affinities, sample_weights=None):
-    """
-    Converts every sequence to an array and if sample_weights is missing then
-    create an array of ones.
-    """
-    alleles = np.asarray(alleles)
-    peptides = np.asarray(peptides)
-    affinities = np.asarray(affinities)
-    if sample_weights is None:
-        sample_weights = np.ones(len(alleles), dtype=float)
-    check_pMHC_affinity_arrays(
-        alleles=alleles,
-        peptides=peptides,
-        affinities=affinities,
-        sample_weights=sample_weights)
-    return alleles, peptides, affinities, sample_weights
-
-
-def infer_csv_separator(filename):
-    """
-    Determine if file is separated by comma, tab, or whitespace.
-    Default to whitespace if the others are not detected.
-
-    Returns (sep, delim_whitespace)
-    """
-    for candidate in [",", "\t"]:
-        with open(filename, "r") as f:
-            for line in f:
-                if line.startswith("#"):
-                    continue
-                if candidate in line:
-                    return candidate, False
-    return None, True
-
-def load_dataframe(
-        filename,
-        sep=None,
-        allele_column_name=None,
-        peptide_column_name=None,
-        affinity_column_name=None,
-        filter_peptide_length=None,
-        normalize_allele_names=True):
-    """
-    Load a dataframe of peptide-MHC affinity measurements
-
-    filename : str
-        TSV filename with columns:
-            - 'species'
-            - 'mhc'
-            - 'peptide_length'
-            - 'sequence'
-            - 'meas'
-
-    sep : str, optional
-        Separator in CSV file, default is to let Pandas infer
-
-    allele_column_name : str, optional
-        Default behavior is to try {"mhc", "allele", "hla"}
-
-    peptide_column_name : str, optional
-        Default behavior is to try  {"sequence", "peptide", "peptide_sequence"}
-
-    affinity_column_name : str, optional
-        Default behavior is to try {"meas", "ic50", "affinity", "aff"}
-
-    filter_peptide_length : int, optional
-        Which length peptides to use (default=load all lengths)
-
-    normalize_allele_names : bool
-        Normalize MHC names or leave them alone
-
-    Returns:
-        - DataFrame
-        - peptide column name
-        - allele column name
-        - affinity column name
-    """
-    if sep is None:
-        sep, delim_whitespace = infer_csv_separator(filename)
-    else:
-        delim_whitespace = False
-
-    df = pd.read_csv(
-        filename,
-        sep=sep,
-        delim_whitespace=delim_whitespace,
-        engine="c")
-
-    columns = set(df.keys())
-
-    if allele_column_name is None:
-        for candidate in ["mhc", "allele", "hla"]:
-            if candidate in columns:
-                allele_column_name = candidate
-                break
-        if allele_column_name is None:
-            raise ValueError(
-                "Couldn't find alleles, available columns: %s" % (
-                    columns,))
-
-    if peptide_column_name is None:
-        for candidate in ["sequence", "peptide", "peptide_sequence"]:
-            if candidate in columns:
-                peptide_column_name = candidate
-                break
-        if peptide_column_name is None:
-            raise ValueError(
-                "Couldn't find peptides, available columns: %s" % (
-                    columns,))
-
-    if affinity_column_name is None:
-        for candidate in ["meas", "ic50", "affinity"]:
-            if candidate in columns:
-                affinity_column_name = candidate
-                break
-        if affinity_column_name is None:
-            raise ValueError(
-                "Couldn't find affinity values, available columns: %s" % (
-                    columns,))
-    if filter_peptide_length:
-        length_mask = df[peptide_column_name].str.len() == filter_peptide_length
-        df = df[length_mask]
-    df[allele_column_name] = df[allele_column_name].map(normalize_allele_name)
-    return df, allele_column_name, peptide_column_name, affinity_column_name
-
-
-def encode_peptide_to_affinity_dict(
-        peptide_to_affinity_dict,
-        peptide_length=9,
-        flatten_binary_encoding=True,
-        allow_unknown_amino_acids=True):
-    """
-    Given a dictionary mapping from peptide sequences to affinity values, return
-    both index and binary encodings of fixed length peptides, and
-    a vector of their affinities.
-
-    Parameters
-    ----------
-    peptide_to_affinity_dict : dict
-        Keys are peptide strings (of multiple lengths), each mapping to a
-        continuous affinity value.
-
-    peptide_length : int
-        Length of vector encoding
-
-    flatten_binary_encoding : bool
-        Should the binary encoding of a peptide be two-dimensional (9x20)
-        or a flattened 1d vector
-
-    allow_unknown_amino_acids : bool
-        When extending a short vector to the desired peptide length, should
-        we insert every possible amino acid or a designated character "X"
-        indicating an unknown amino acid.
-
-    Returns tuple with the following fields:
-        - kmer_peptides: fixed length peptide strings
-        - original_peptides: variable length peptide strings
-        - counts: how many fixed length peptides were made from this original
-        - X_index: index encoding of fixed length peptides
-        - X_binary: binary encoding of fixed length peptides
-        - Y: affinity values associated with original peptides
-    """
-    raw_peptides = list(sorted(peptide_to_affinity_dict.keys()))
-    X_index, kmer_peptides, original_peptides, counts = \
-        fixed_length_index_encoding(
-            peptides=raw_peptides,
-            desired_length=peptide_length,
-            start_offset_shorten=0,
-            end_offset_shorten=0,
-            start_offset_extend=0,
-            end_offset_extend=0,
-            allow_unknown_amino_acids=allow_unknown_amino_acids)
-
-    n_samples = len(kmer_peptides)
-
-    assert n_samples == len(original_peptides), \
-        "Mismatch between # of samples (%d) and # of peptides (%d)" % (
-            n_samples, len(original_peptides))
-    assert n_samples == len(counts), \
-        "Mismatch between # of samples (%d) and # of counts (%d)" % (
-            n_samples, len(counts))
-    assert n_samples == len(X_index), \
-        "Mismatch between # of sample (%d) and index feature vectors (%d)" % (
-            n_samples, len(X_index))
-    X_index = check_valid_index_encoding_array(X_index, allow_unknown_amino_acids)
-    n_indices = 20 + allow_unknown_amino_acids
-    X_binary = indices_to_hotshot_encoding(
-        X_index,
-        n_indices=n_indices)
-
-    assert X_binary.shape[0] == X_index.shape[0], \
-        ("Mismatch between number of samples for index encoding (%d)"
-         " vs. binary encoding (%d)") % (
-            X_binary.shape[0],
-            X_index.shape[0])
-
-    if flatten_binary_encoding:
-        # collapse 3D input into 2D matrix
-        n_binary_features = peptide_length * n_indices
-        X_binary = X_binary.reshape((n_samples, n_binary_features))
-
-    # easier to work with counts when they're an array instead of list
-    counts = np.array(counts)
-
-    Y = np.array([peptide_to_affinity_dict[p] for p in original_peptides])
-    assert n_samples == len(Y), \
-        "Mismatch between # peptides %d and # regression outputs %d" % (
-            n_samples, len(Y))
-    return (kmer_peptides, original_peptides, counts, X_index, X_binary, Y)
diff --git a/mhcflurry/encodable_sequences.py b/mhcflurry/encodable_sequences.py
new file mode 100644
index 00000000..15e7ced7
--- /dev/null
+++ b/mhcflurry/encodable_sequences.py
@@ -0,0 +1,263 @@
+# Copyright (c) 2016. Mount Sinai School of Medicine
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import (
+    print_function,
+    division,
+    absolute_import,
+)
+
+import math
+
+import pandas
+import numpy
+
+from . import amino_acid
+
+
+def index_encoding(sequences, letter_to_index_dict):
+    """
+    Given a sequence of n strings all of length k, return a k * n array where
+    the (i, j)th element is letter_to_index_dict[sequence[i][j]].
+    
+    Parameters
+    ----------
+    sequences : list of length n of strings of length k
+    letter_to_index_dict : dict : string -> int
+
+    Returns
+    -------
+    numpy.array of integers with shape (k, n)
+    """
+    df = pandas.DataFrame(iter(s) for s in sequences)
+    result = df.replace(letter_to_index_dict)
+    return result.values
+
+
+def one_hot_encoding(index_encoded, alphabet_size):
+    """
+    Given an n * k array of integers in the range [0, alphabet_size), return
+    an n * k * alphabet_size array where element (i, k, j) is 1 if element
+    (i, k) == j in the input array and zero otherwise.
+    
+    Parameters
+    ----------
+    index_encoded : numpy.array of integers with shape (n, k)
+    alphabet_size : int 
+
+    Returns
+    -------
+    numpy.array of integers of shape (n, k, alphabet_size)
+
+    """
+    (num_sequences, sequence_length) = index_encoded.shape
+    result = numpy.zeros(
+        (num_sequences, sequence_length, alphabet_size),
+        dtype='int32')
+    for position in range(sequence_length):
+        result[:, position, index_encoded[:, position]] = 1
+    return result
+
+
+class EncodableSequences(object):
+    """
+    Sequences of amino acids.
+    
+    This class caches various encodings of a list of sequences.
+    """
+    unknown_character = "X"
+
+    @classmethod
+    def create(klass, sequences):
+        """
+        Factory that returns an EncodableSequences given a list of
+        strings. As a convenience, you can also pass it an EncodableSequences
+        instance, in which case the object is returned unchanged.
+        """
+        if isinstance(sequences, klass):
+            return sequences
+        return klass(sequences)
+
+    def __init__(self, sequences):
+        self.sequences = sequences
+        self.encoding_cache = {}
+        self.fixed_sequence_length = None
+        if sequences and all(len(s) == len(sequences[0]) for s in sequences):
+            self.fixed_sequence_length = len(sequences[0])
+
+    def __len__(self):
+        return len(self.sequences)
+
+    def fixed_length_to_categorical(self):
+        """
+        Returns a categorical encoding (i.e. integers 0 <= x < 21) of the
+        sequences, which must already be all the same length.
+        
+        Returns
+        -------
+        numpy.array of integers
+        """
+        cache_key = ("categorical",)
+        if cache_key not in self.encoding_cache:
+            assert self.fixed_sequence_length
+            self.encoding_cache[cache_key] = index_encoding(
+                self.sequences, amino_acid.AMINO_ACID_INDEX)
+        return self.encoding_cache[cache_key]
+
+    def fixed_length_one_hot(self):
+        """
+        Returns a binary one-hot encoding of the  sequences, which must already
+        be all the same length.
+        
+        Returns
+        -------
+        numpy.array of integers
+        """
+        cache_key = ("one_hot",)
+        if cache_key not in self.encoding_cache:
+            assert self.fixed_sequence_length
+            encoded = self.categorical_encoding()
+            result = one_hot_encoding(
+                encoded, alphabet_size=len(amino_acid.AMINO_ACID_INDEX))
+            self.encoding_cache[cache_key] = result
+        return self.encoding_cache[cache_key]
+
+    def variable_length_to_fixed_length_categorical(
+            self, left_edge=4, right_edge=4, max_length=15):
+        """
+        Encode variable-length sequences using a fixed-length encoding designed
+        for preserving the anchor positions of class I peptides.
+        
+        The sequences must be of length at least left_edge + right_edge, and at
+        most max_length.
+        
+        Parameters
+        ----------
+        left_edge : int, size of fixed-position left side
+        right_edge : int, size of the fixed-position right side
+        max_length : sequence length of the resulting encoding
+
+        Returns
+        -------
+        numpy.array of integers with shape (num sequences, max_length)
+        """
+
+        cache_key = (
+            "fixed_length_categorical",
+            left_edge,
+            right_edge,
+            max_length)
+
+        if cache_key not in self.encoding_cache:
+            fixed_length_sequences = [
+                self.sequence_to_fixed_length_string(
+                    sequence,
+                    left_edge=left_edge,
+                    right_edge=right_edge,
+                    max_length=max_length)
+                for sequence in self.sequences
+            ]
+            self.encoding_cache[cache_key] = index_encoding(
+                fixed_length_sequences, amino_acid.AMINO_ACID_INDEX)
+        return self.encoding_cache[cache_key]
+
+    def variable_length_to_fixed_length_one_hot(
+            self, left_edge=4, right_edge=4, max_length=15):
+        """
+        Encode variable-length sequences using a fixed-length encoding designed
+        for preserving the anchor positions of class I peptides.
+
+        The sequences must be of length at least left_edge + right_edge, and at
+        most max_length.
+
+        Parameters
+        ----------
+        left_edge : int, size of fixed-position left side
+        right_edge : int, size of the fixed-position right side
+        max_length : sequence length of the resulting encoding
+
+        Returns
+        -------
+        binary numpy.array with shape (num sequences, max_length, 21)
+        """
+
+        cache_key = (
+            "fixed_length_one_hot",
+            left_edge,
+            right_edge,
+            max_length)
+
+        if cache_key not in self.encoding_cache:
+            encoded = self.fixed_length_categorical_encoding(
+                left_edge=left_edge,
+                right_edge=right_edge,
+                max_length=max_length)
+            result = one_hot_encoding(
+                encoded, alphabet_size=len(amino_acid.AMINO_ACID_INDEX))
+            assert result.shape == (
+                len(self.sequences),
+                encoded.shape[1],
+                len(amino_acid.AMINO_ACID_INDEX))
+            self.encoding_cache[cache_key] = result
+        return self.encoding_cache[cache_key]
+
+    @classmethod
+    def sequence_to_fixed_length_string(
+            klass, sequence, left_edge=4, right_edge=4, max_length=15):
+        """
+        Transform a string of length at least left_edge + right_edge and at
+        most max_length into a string of length max_length using a scheme
+        designed to preserve the anchor positions of class I peptides.
+        
+        The first left_edge characters in the input always map to the first
+        left_edge characters in the output. Similarly for the last right_edge
+        characters. The middle characters are filled in based on the length,
+        with the X character filling in the blanks.
+        
+        For example, using defaults:
+        
+        AAAACDDDD -> AAAAXXXCXXXDDDD
+        
+        
+        Parameters
+        ----------
+        sequence : string
+        left_edge : int
+        right_edge : int
+        max_length : int
+
+        Returns
+        -------
+        string of length max_length
+
+        """
+        assert len(klass.unknown_character) == 1
+        assert len(sequence) >= left_edge + right_edge, sequence
+        assert len(sequence) <= max_length, sequence
+
+        middle_length = max_length - left_edge - right_edge
+
+        num_null = max_length - len(sequence)
+        num_null_left = int(math.ceil(num_null / 2))
+        num_null_right = int(math.floor(num_null / 2))
+        num_not_null_middle = middle_length - num_null
+        string_encoding = "".join([
+            sequence[:left_edge],
+            klass.unknown_character * num_null_left,
+            sequence[left_edge:left_edge + num_not_null_middle],
+            klass.unknown_character * num_null_right,
+            sequence[-right_edge:],
+        ])
+        assert len(string_encoding) == max_length
+        return string_encoding
diff --git a/mhcflurry/feedforward.py b/mhcflurry/feedforward.py
deleted file mode 100644
index f8296c28..00000000
--- a/mhcflurry/feedforward.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-
-from keras.models import Sequential
-from keras.layers.core import Dense, Activation, Flatten, Dropout
-from keras.layers.embeddings import Embedding
-from keras.layers.normalization import BatchNormalization
-
-import theano
-
-theano.config.exception_verbosity = 'high'
-
-
-def make_network(
-        input_size,
-        embedding_input_dim=None,
-        embedding_output_dim=None,
-        layer_sizes=[100],
-        activation="tanh",
-        init="glorot_uniform",
-        output_activation="sigmoid",
-        dropout_probability=0.0,
-        batch_normalization=True,
-        initial_embedding_weights=None,
-        embedding_init_method="glorot_uniform",
-        model=None,
-        optimizer="rmsprop",
-        loss="mse"):
-
-    if model is None:
-        model = Sequential()
-
-    if embedding_input_dim:
-        if not embedding_output_dim:
-            raise ValueError(
-                "Both embedding_input_dim and embedding_output_dim must be "
-                "set")
-
-        if initial_embedding_weights:
-            n_rows, n_cols = initial_embedding_weights.shape
-            if n_rows != embedding_input_dim or n_cols != embedding_output_dim:
-                raise ValueError(
-                    "Wrong shape for embedding: expected (%d, %d) but got "
-                    "(%d, %d)" % (
-                        embedding_input_dim, embedding_output_dim,
-                        n_rows, n_cols))
-            model.add(Embedding(
-                input_dim=embedding_input_dim,
-                output_dim=embedding_output_dim,
-                input_length=input_size,
-                weights=[initial_embedding_weights],
-                dropout=dropout_probability))
-        else:
-            model.add(Embedding(
-                input_dim=embedding_input_dim,
-                output_dim=embedding_output_dim,
-                input_length=input_size,
-                init=embedding_init_method,
-                dropout=dropout_probability))
-        model.add(Flatten())
-
-        input_size = input_size * embedding_output_dim
-
-    layer_sizes = (input_size,) + tuple(layer_sizes)
-
-    for i, dim in enumerate(layer_sizes):
-        if i == 0:
-            # input is only conceptually a layer of the network,
-            # don't need to actually do anything
-            continue
-
-        previous_dim = layer_sizes[i - 1]
-
-        # hidden layer fully connected layer
-        model.add(
-            Dense(
-                input_dim=previous_dim,
-                output_dim=dim,
-                init=init))
-        model.add(Activation(activation))
-
-        if batch_normalization:
-            model.add(BatchNormalization())
-
-        if dropout_probability > 0:
-            model.add(Dropout(dropout_probability))
-
-    # output
-    model.add(Dense(
-        input_dim=layer_sizes[-1],
-        output_dim=1,
-        init=init))
-    model.add(Activation(output_activation))
-    model.compile(loss=loss, optimizer=optimizer)
-    return model
-
-
-def make_hotshot_network(
-        peptide_length=9,
-        n_amino_acids=20,
-        **kwargs):
-    """
-    Construct a feed-forward neural network whose inputs are binary vectors
-    representing a "one-hot" or "hot-shot" encoding of a fixed length amino
-    acid sequence.
-    """
-    return make_network(input_size=peptide_length * n_amino_acids, **kwargs)
-
-
-def make_embedding_network(
-        peptide_length=9,
-        n_amino_acids=20,
-        embedding_output_dim=20,
-        **kwargs):
-    """
-    Construct a feed-forward neural network whose inputs are vectors of integer
-    indices.
-    """
-    return make_network(
-        input_size=peptide_length,
-        embedding_input_dim=n_amino_acids,
-        embedding_output_dim=embedding_output_dim,
-        **kwargs)
diff --git a/mhcflurry/ic50_predictor_base.py b/mhcflurry/ic50_predictor_base.py
deleted file mode 100644
index 38f6fa49..00000000
--- a/mhcflurry/ic50_predictor_base.py
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-
-import numpy as np
-
-from .regression_target import regression_target_to_ic50, MAX_IC50
-from .affinity_measurement_dataset import AffinityMeasurementDataset
-from .hyperparameters import HyperparameterDefaults
-
-
-class IC50PredictorBase(object):
-    """
-    Base class for all mhcflurry predictors which predict IC50 values
-    (using any representation of peptides)
-    """
-    hyperparameter_defaults = HyperparameterDefaults(max_ic50=MAX_IC50)
-
-    def __init__(
-            self,
-            name,
-            verbose=False,
-            max_ic50=hyperparameter_defaults.defaults["max_ic50"]):
-        self.name = name
-        self.max_ic50 = max_ic50
-        self.verbose = verbose
-
-    def __repr__(self):
-        return "%s(name=%s, max_ic50=%f)" % (
-            self.__class__.__name__,
-            self.name,
-            self.max_ic50)
-
-    def __str__(self):
-        return repr(self)
-
-    def predict_scores(self, peptides, combine_fn=np.mean):
-        raise NotImplementedError(
-            "predict_scores expected to be implemented in sub-class")
-
-    def predict(self, peptides):
-        """
-        Predict IC50 affinities for peptides of any length
-        """
-        scores = self.predict_scores(peptides)
-        return regression_target_to_ic50(scores, max_ic50=self.max_ic50)
-
-    def fit_dictionary(self, peptide_to_ic50_dict, **kwargs):
-        """
-        Fit the model parameters using the given peptide->IC50 dictionary,
-        all samples are given the same weight.
-
-        Parameters
-        ----------
-        peptide_to_ic50_dict : dict
-            Dictionary that maps peptides to IC50 values.
-        """
-        dataset = AffinityMeasurementDataset.from_peptide_to_affinity_dictionary(
-            allele_name=self.name,
-            peptide_to_affinity_dict=peptide_to_ic50_dict)
-        return self.fit_dataset(dataset, **kwargs)
-
-    def fit_sequences(
-            self,
-            peptides,
-            affinities,
-            sample_weights=None,
-            alleles=None, **kwargs):
-        if alleles is None:
-            alleles = [self.name] * len(peptides)
-        dataset = AffinityMeasurementDataset.from_sequences(
-            alleles=alleles,
-            peptides=peptides,
-            affinities=affinities,
-            sample_weights=sample_weights)
-        return self.fit_dataset(dataset, **kwargs)
-
-    def fit_dataset(self, dataset, pretraining_dataset=None, *args, **kwargs):
-        raise NotImplementedError(
-            "fit_dataset expected to be implemented in sub-class")
diff --git a/mhcflurry/imputation_helpers.py b/mhcflurry/imputation_helpers.py
deleted file mode 100644
index b03d75e3..00000000
--- a/mhcflurry/imputation_helpers.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-from collections import defaultdict
-
-import numpy as np
-from fancyimpute.knn import KNN
-from fancyimpute.iterative_svd import IterativeSVD
-from fancyimpute.simple_fill import SimpleFill
-from fancyimpute.soft_impute import SoftImpute
-from fancyimpute.mice import MICE
-from fancyimpute.biscaler import BiScaler
-
-
-def check_dense_pMHC_array(X, peptide_list, allele_list):
-    if len(peptide_list) != len(set(peptide_list)):
-        raise ValueError("Duplicate peptides detected in peptide list")
-    if len(allele_list) != len(set(allele_list)):
-        raise ValueError("Duplicate alleles detected in allele list")
-    n_rows, n_cols = X.shape
-    if n_rows != len(peptide_list):
-        raise ValueError(
-            "Expected dense array with shape %s to have %d rows" % (
-                X.shape, len(peptide_list)))
-    if n_cols != len(allele_list):
-        raise ValueError(
-            "Expected dense array with shape %s to have %d columns" % (
-                X.shape, len(allele_list)))
-
-
-def prune_dense_matrix_and_labels(
-        X,
-        peptide_list,
-        allele_list,
-        min_observations_per_peptide=1,
-        min_observations_per_allele=1):
-    """
-    Filter the dense matrix of pMHC binding affinities according to
-    the given minimum number of row/column observations.
-
-    Parameters
-    ----------
-    X : numpy.ndarray
-        Incomplete dense matrix of pMHC affinity with n_peptides rows and
-        n_alleles columns.
-
-    peptide_list : list of str
-        Expected to have n_peptides entries
-
-    allele_list : list of str
-        Expected to have n_alleles entries
-
-    min_observations_per_peptide : int
-        Drop peptide rows with fewer than this number of observed values.
-
-    min_observations_per_allele : int
-        Drop allele columns with fewer than this number of observed values.
-    """
-    observed_mask = np.isfinite(X)
-    n_observed_per_peptide = observed_mask.sum(axis=1)
-    too_few_peptide_observations = (
-        n_observed_per_peptide < min_observations_per_peptide)
-    if too_few_peptide_observations.any():
-        drop_peptide_indices = np.where(too_few_peptide_observations)[0]
-        keep_peptide_indices = np.where(~too_few_peptide_observations)[0]
-        print("Dropping %d peptides with <%d observations" % (
-            len(drop_peptide_indices),
-            min_observations_per_peptide))
-        X = X[keep_peptide_indices]
-        observed_mask = observed_mask[keep_peptide_indices]
-        peptide_list = [peptide_list[i] for i in keep_peptide_indices]
-
-    n_observed_per_allele = observed_mask.sum(axis=0)
-    too_few_allele_observations = (
-        n_observed_per_allele < min_observations_per_peptide)
-    if too_few_peptide_observations.any():
-        drop_allele_indices = np.where(too_few_allele_observations)[0]
-        keep_allele_indices = np.where(~too_few_allele_observations)[0]
-        print("Dropping %d alleles with <%d observations: %s" % (
-            len(drop_allele_indices),
-            min_observations_per_allele,
-            [allele_list[i] for i in drop_allele_indices]))
-        X = X[:, keep_allele_indices]
-        observed_mask = observed_mask[:, keep_allele_indices]
-        allele_list = [allele_list[i] for i in keep_allele_indices]
-    check_dense_pMHC_array(X, peptide_list, allele_list)
-    return X, peptide_list, allele_list
-
-
-def dense_pMHC_matrix_to_nested_dict(X, peptide_list, allele_list):
-    """
-    Converts a dense matrix of (n_peptides, n_alleles) floats to a nested
-    dictionary from allele -> peptide -> affinity.
-    """
-    allele_to_peptide_to_ic50_dict = defaultdict(dict)
-    for row_index, peptide in enumerate(peptide_list):
-        for column_index, allele_name in enumerate(allele_list):
-            affinity = X[row_index, column_index]
-            if np.isfinite(affinity):
-                allele_to_peptide_to_ic50_dict[allele_name][peptide] = affinity
-    return allele_to_peptide_to_ic50_dict
-
-
-def imputer_from_name(imputation_method_name, **kwargs):
-    """
-    Helper function for constructing an imputation object from a name given
-    typically from a commandline argument.
-    """
-    imputation_method_name = imputation_method_name.strip().lower()
-    if imputation_method_name == "mice":
-        kwargs["n_burn_in"] = kwargs.get("n_burn_in", 5)
-        kwargs["n_imputations"] = kwargs.get("n_imputations", 25)
-        kwargs["n_nearest_columns"] = kwargs.get("n_nearest_columns", 25)
-        return MICE(**kwargs)
-    elif imputation_method_name == "knn":
-        kwargs["k"] = kwargs.get("k", 3)
-        kwargs["orientation"] = kwargs.get("orientation", "columns")
-        kwargs["print_interval"] = kwargs.get("print_interval", 10)
-        return KNN(**kwargs)
-    elif imputation_method_name == "svd":
-        kwargs["rank"] = kwargs.get("rank", 10)
-        return IterativeSVD(**kwargs)
-    elif imputation_method_name in ("svt", "softimpute"):
-        kwargs["init_fill_method"] = kwargs.get("init_fill_method", "min")
-        kwargs["normalizer"] = kwargs.get("normalizer", BiScaler())
-        return SoftImpute(**kwargs)
-    elif imputation_method_name == "mean":
-        return SimpleFill("mean", **kwargs)
-    elif imputation_method_name == "none":
-        return None
-    else:
-        raise ValueError(
-            "Invalid imputation method: %s" % imputation_method_name)
diff --git a/mhcflurry/keras_layers/drop_mask.py b/mhcflurry/keras_layers/drop_mask.py
deleted file mode 100644
index 8ea799ca..00000000
--- a/mhcflurry/keras_layers/drop_mask.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from keras.layers import Layer
-
-class DropMask(Layer):
-    """
-    Sometimes we know that a mask is always going to contain 1s (and never 0s)
-    due to e.g. slicing the beginning of a sequence with a known min length.
-    In that case it can be useful to drop the sequence mask and feed the
-    activations to a layer which does not support masking (e.g. Dense).
-    """
-    supports_masking = True
-
-    def call(self, x, mask):
-        return x
-
-    def compute_mask(self, x, mask):
-        return None
diff --git a/mhcflurry/keras_layers/masked_global_average_pooling.py b/mhcflurry/keras_layers/masked_global_average_pooling.py
deleted file mode 100644
index 187cc9c8..00000000
--- a/mhcflurry/keras_layers/masked_global_average_pooling.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import keras.layers
-import keras.backend as K
-
-class MaskedGlobalAveragePooling1D(keras.layers.pooling._GlobalPooling1D):
-    """
-    Takes an embedded representation of a sentence with dims
-    (n_samples, max_length, n_dims)
-    where each sample is masked to allow for variable-length inputs.
-    Returns a tensor of shape (n_samples, n_dims) after averaging across
-    time in a mask-sensitive fashion.
-    """
-    supports_masking = True
-
-    def call(self, x, mask):
-        expanded_mask = K.expand_dims(mask)
-        # zero embedded vectors which come from masked characters
-        x_masked = x * expanded_mask
-        # how many non-masked characters are in each row?
-        mask_counts = K.sum(mask, axis=-1)
-        # add up the vector representations along the time dimension
-        # the result should have dimension (n_samples, n_embedding_dims)
-        x_sums = K.sum(x_masked, axis=1)
-        # cast the number of non-zero elements to float32 and
-        # give it an extra dimension so it can broadcast properly in
-        # an elementwise divsion
-        counts_cast = K.expand_dims(K.cast(mask_counts, "float32"))
-        return x_sums / counts_cast
-
-    def compute_mask(self, x, mask):
-        return None
-
diff --git a/mhcflurry/keras_layers/masked_global_max_pooling.py b/mhcflurry/keras_layers/masked_global_max_pooling.py
deleted file mode 100644
index 5bec252a..00000000
--- a/mhcflurry/keras_layers/masked_global_max_pooling.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import keras.layers
-import keras.backend as K
-
-class MaskedGlobalMaxPooling1D(keras.layers.pooling._GlobalPooling1D):
-    """
-    Takes an embedded representation of a sentence with dims
-    (n_samples, max_length, n_dims)
-    where each sample is masked to allow for variable-length inputs.
-    Returns a tensor of shape (n_samples, n_dims) after averaging across
-    time in a mask-sensitive fashion.
-    """
-    supports_masking = True
-
-    def call(self, x, mask):
-        expanded_mask = K.expand_dims(mask)
-        # zero embedded vectors which come from masked characters
-        x_masked = x * expanded_mask
-
-        # one flaw here is that we're returning max(0, max(x[:, i])) instead of
-        # max(x[:, i])
-        return K.max(x_masked, axis=1)
-
-    def compute_mask(self, x, mask):
-        return None
diff --git a/mhcflurry/keras_layers/masked_slice.py b/mhcflurry/keras_layers/masked_slice.py
deleted file mode 100644
index 022c7f79..00000000
--- a/mhcflurry/keras_layers/masked_slice.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import keras.layers
-
-class MaskedSlice(keras.layers.Lambda):
-    """
-    Takes an embedded representation of a sentence with dims
-    (n_samples, max_length, n_dims)
-    where each sample is masked to allow for variable-length inputs.
-    Returns a tensor of shape (n_samples, n_dims) which are the first
-    and last vectors in each sentence.
-    """
-    supports_masking = True
-
-    def __init__(
-            self,
-            time_start,
-            time_end,
-            *args,
-            **kwargs):
-        assert time_start >= 0
-        assert time_end >= 0
-        self.time_start = time_start
-        self.time_end = time_end
-        super(MaskedSlice, self).__init__(*args, **kwargs)
-
-    def call(self, x, mask):
-        return x[:, self.time_start:self.time_end, :]
-
-    def compute_mask(self, x, mask):
-        return mask[:, self.time_start:self.time_end, :]
-
-    def get_output_shape_for(self, input_shape):
-        assert len(input_shape) == 3
-        output_shape = (
-            input_shape[0],
-            self.time_end - self.time_start + 1,
-            input_shape[2])
-        return output_shape
diff --git a/mhcflurry/measurement_collection.py b/mhcflurry/measurement_collection.py
deleted file mode 100644
index 3bcc6863..00000000
--- a/mhcflurry/measurement_collection.py
+++ /dev/null
@@ -1,217 +0,0 @@
-from sklearn.model_selection import StratifiedKFold
-import pandas
-
-from .affinity_measurement_dataset import AffinityMeasurementDataset
-from .imputation_helpers import imputer_from_name
-
-COLUMNS = [
-    "allele",
-    "peptide",
-    "measurement_type",
-    "measurement_source",
-    "measurement_value",
-    "weight",
-]
-
-MEASUREMENT_TYPES = [
-    "affinity",
-    "ms_hit",
-]
-
-MEASUREMENT_SOURCES = [
-    "in_vitro_affinity_assay",
-    "imputed",
-    "ms_hit",
-    "ms_decoy",
-]
-
-
-class MeasurementCollection(object):
-    """
-    A measurement collection is a set of observations for allele/peptide pairs.
-    A single measurement collection may have both MS hits and affinity measurements.
-
-    This is more general than a AffinityMeasurementDataset since it supports MS hits. It is also
-    simpler, as the user is expected to manipulate the underlying dataframe.
-    Later we may want to retire AffinityMeasurementDataset or combine it with this class.
-    """
-
-    def __init__(self, df, check=True):
-        if check:
-            for col in COLUMNS:
-                assert col in df.columns, col
-
-            for measurement_type in df.measurement_type.unique():
-                assert measurement_type in MEASUREMENT_TYPES, measurement_type
-        self.df = df[COLUMNS]
-        self.alleles = set(df.allele)
-
-    @staticmethod
-    def from_dataset(dataset):
-        """
-        Given a AffinityMeasurementDataset, return a MeasurementCollection
-        """
-        dataset_df = dataset.to_dataframe()
-        df = dataset_df.reset_index(drop=True)[["allele", "peptide"]].copy()
-        df["measurement_type"] = "affinity"
-        df["measurement_source"] = "in_vitro_affinity_assay"
-        df["measurement_value"] = dataset_df.affinity.values
-        df["weight"] = dataset_df.sample_weight.values
-        return MeasurementCollection(df)
-
-    def select_measurement_type(self, kind):
-        """
-        Return a new MeasurementCollection containing only measurements of the
-        given type.
-
-        Parameters
-        -----------
-        kind : string
-            "affinity" or "ms_hit"
-
-        Returns
-        -----------
-        MeasurementCollection instance
-        """
-        if kind not in MEASUREMENT_TYPES:
-            raise ValueError(
-                "Unknown measurement type: %s. Supported types: %s" % (
-                    kind, ", ".join(MEASUREMENT_TYPES)))
-        return MeasurementCollection(
-            self.df.ix[self.df.measurement_type == kind],
-            check=False)
-
-    def select_allele(self, allele):
-        """
-        Return a new MeasurementCollection containing only observations for the
-        specified allele.
-        """
-        assert isinstance(allele, str), type(allele)
-        assert len(self.df) > 0
-        alleles = set(self.df.allele.unique())
-        assert allele in alleles, "%s not in %s" % (allele, alleles)
-        return MeasurementCollection(
-            self.df.ix[self.df.allele == allele],
-            check=False)
-
-    def half_splits(self, num, random_state=None):
-        """
-        Split the MeasurementCollection into disjoint pairs of
-        MeasurementCollection instances, each containing half the observations.
-
-        Parameters
-        -------------
-        num : int
-            Number of pairs to return
-
-        random_state : int, optional
-
-        Returns
-        -------------
-        list of (MeasurementCollection, MeasurementCollection) pairs
-        Each pair gives a disjoint train and test split.
-        """
-        assert num > 0
-        results = []
-        while True:
-            cv = StratifiedKFold(
-                n_splits=2,
-                shuffle=True,
-                random_state=(
-                    None if random_state is None
-                    else random_state + len(results)))
-            stratification_groups = self.df.allele + self.df.measurement_type
-            #assert len(stratification_groups.unique()) > 1, (
-            #    stratification_groups.unique())
-            (indices1, indices2) = next(
-                cv.split(self.df.values, stratification_groups))
-            assert len(indices1) > 0
-            assert len(indices2) > 0
-            mc1 = MeasurementCollection(self.df.iloc[indices1], check=False)
-            mc2 = MeasurementCollection(self.df.iloc[indices2], check=False)
-            for pair in [(mc1, mc2), (mc2, mc1)]:
-                results.append(pair)
-                if len(results) == num:
-                    return results
-
-    def to_dataset(
-            self,
-            include_ms=False,
-            ms_hit_affinity=1.0,
-            ms_decoy_affinity=20000):
-        """
-        Return a AffinityMeasurementDataset containing the observations in the collection.
-        Mass-spec data are converted to affinities according to
-        ms_hit_affinity and ms_decoy_affinity.
-
-        Parameters
-        -------------
-        include_ms : bool
-            If True then mass spec data is included; otherwise it is dropped
-
-        ms_hit_affinity : float
-            nM affinity to assign to mass-spec hits (relevant only if
-            include_ms=True)
-
-        ms_decoy_affinity : float
-            nM affinity to assign to mass-spec decoys (relevant only if
-            include_ms=True)
-
-        Returns
-        -------------
-        AffinityMeasurementDataset instance
-        """
-        if include_ms:
-            dataset = AffinityMeasurementDataset(pandas.DataFrame({
-                "allele": self.df.allele,
-                "peptide": self.df.peptide,
-                "affinity": [
-                    row.measurement_value if row.measurement_type == "affinity"
-                    else (
-                        ms_hit_affinity if row.value > 0
-                        else ms_decoy_affinity)
-                    for (_, row) in self.df.iterrows()
-                ],
-                "sample_weight": self.df.weight,
-            }))
-        else:
-            df = self.df.ix[
-                (self.df.measurement_type == "affinity") &
-                (self.df.measurement_source == "in_vitro_affinity_assay")
-            ]
-            dataset = AffinityMeasurementDataset(pandas.DataFrame({
-                "allele": df.allele,
-                "peptide": df.peptide,
-                "affinity": df.measurement_value,
-                "sample_weight": df.weight,
-            }))
-        return dataset
-
-    def impute(
-            self,
-            impute_method="mice",
-            impute_log_transform=True,
-            impute_min_observations_per_peptide=1,
-            impute_min_observations_per_allele=1,
-            imputer_args={}):
-        """
-        Return a new MeasurementCollection after applying imputation to
-        this collection. The imputed collection will have the
-        observations in the current collection plus the imputed data.
-        """
-        assert len(self.df) > 0
-
-        dataset = self.to_dataset(include_ms=False)
-        assert len(dataset) > 0
-        imputer = imputer_from_name(impute_method, **imputer_args)
-        result_df = dataset.impute_missing_values(
-            imputation_method=imputer,
-            log_transform=impute_log_transform,
-            min_observations_per_peptide=impute_min_observations_per_peptide,
-            min_observations_per_allele=impute_min_observations_per_allele
-        ).to_dataframe()
-        result_df["measurement_type"] = "affinity"
-        result_df["measurement_source"] = "imputed"
-        result_df["measurement_value"] = result_df.affinity
-        result_df["weight"] = result_df.sample_weight
-        return MeasurementCollection(result_df)
diff --git a/mhcflurry/parallelism.py b/mhcflurry/parallelism.py
deleted file mode 100644
index f89d17d8..00000000
--- a/mhcflurry/parallelism.py
+++ /dev/null
@@ -1,120 +0,0 @@
-import logging
-from concurrent import futures
-
-DEFAULT_BACKEND = None
-
-
-class RemoteObjectStub(object):
-    def __init__(self, value):
-        self.value = value
-
-
-class ParallelBackend(object):
-    """
-    Thin wrapper of futures implementations. Designed to support
-    concurrent.futures as well as dask.distributed's workalike implementation.
-    """
-    def __init__(self, executor, module, verbose=1):
-        self.executor = executor
-        self.module = module
-        self.verbose = verbose
-
-    def remote_object(self, value):
-        return RemoteObjectStub(value)
-
-
-class KubefaceParallelBackend(ParallelBackend):
-    """
-    ParallelBackend that uses kubeface
-    """
-    def __init__(self, args):
-        from kubeface import Client  # pylint: disable=import-error
-        self.client = Client.from_args(args)
-
-    def map(self, func, iterable):
-        return self.client.map(func, iterable)
-
-    def remote_object(self, value):
-        return self.client.remote_object(value)
-
-    def __str__(self):
-        return "<Kubeface backend, client=%s>" % self.client
-
-
-class DaskDistributedParallelBackend(ParallelBackend):
-    """
-    ParallelBackend that uses dask.distributed
-    """
-    def __init__(self, scheduler_ip_and_port, verbose=1):
-        from dask import distributed  # pylint: disable=import-error
-        executor = distributed.Executor(scheduler_ip_and_port)
-        ParallelBackend.__init__(self, executor, distributed, verbose=verbose)
-        self.scheduler_ip_and_port = scheduler_ip_and_port
-
-    def map(self, func, iterable):
-        fs = [
-            self.executor.submit(func, arg) for arg in iterable
-        ]
-        return self.wait(fs)
-
-    def wait(self, fs):
-        result_dict = {}
-        for finished_future in self.module.as_completed(fs):
-            result = finished_future.result()
-            logging.info("%3d / %3d tasks completed" % (
-                len(result_dict), len(fs)))
-            result_dict[finished_future] = result
-
-        return [result_dict[future] for future in fs]
-
-    def __str__(self):
-        return "<Dask distributed backend, scheduler=%s, total_cores=%d>" % (
-            self.scheduler_ip_and_port,
-            sum(self.executor.ncores().values()))
-
-
-class ConcurrentFuturesParallelBackend(ParallelBackend):
-    """
-    ParallelBackend that uses Python's concurrent.futures module.
-    Can use either threads or processes.
-    """
-    def __init__(self, num_workers=1, processes=False, verbose=1):
-        if processes:
-            executor = futures.ProcessPoolExecutor(num_workers)
-        else:
-            executor = futures.ThreadPoolExecutor(num_workers)
-        ParallelBackend.__init__(self, executor, futures, verbose=verbose)
-        self.num_workers = num_workers
-        self.processes = processes
-
-    def __str__(self):
-        return "<Concurrent futures %s parallel backend, num workers = %d>" % (
-            ("processes" if self.processes else "threads"), self.num_workers)
-
-    def map(self, func, iterable):
-        fs = [
-            self.executor.submit(func, arg) for arg in iterable
-        ]
-        return self.wait(fs)
-
-    def wait(self, fs):
-        result_dict = {}
-        for finished_future in self.module.as_completed(fs):
-            result = finished_future.result()
-            logging.info("%3d / %3d tasks completed" % (
-                len(result_dict), len(fs)))
-            result_dict[finished_future] = result
-
-        return [result_dict[future] for future in fs]
-
-
-def set_default_backend(backend):
-    global DEFAULT_BACKEND
-    DEFAULT_BACKEND = backend
-
-
-def get_default_backend():
-    global DEFAULT_BACKEND
-    if DEFAULT_BACKEND is None:
-        set_default_backend(ConcurrentFuturesParallelBackend())
-    return DEFAULT_BACKEND
diff --git a/mhcflurry/peptide_encoding.py b/mhcflurry/peptide_encoding.py
deleted file mode 100644
index 07380371..00000000
--- a/mhcflurry/peptide_encoding.py
+++ /dev/null
@@ -1,407 +0,0 @@
-# Copyright (c) 2015. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import print_function, division, absolute_import
-import itertools
-import logging
-
-import pandas
-import numpy as np
-
-from .amino_acid import common_amino_acids, amino_acids_with_unknown
-
-common_amino_acid_letters = common_amino_acids.letters()
-
-
-class KmerEncodedPeptides(object):
-    """
-    Variable-length peptides encoded into a fixed length matrix using netmhc-style reduction to kmers (usually 9mers).
-
-    Parameters
-    ----------
-    peptides : str list
-        Peptide strings of any length
-
-    encoded_matrix : int array of shape (R, k)
-        The encoded peptides. R >= len(peptides) is the number of kmers needed to represent the peptides.
-        If all peptides are length k then R == len(peptides).
-
-    indices : int array of length R
-        peptides[indices[i]] gives the peptide that gave rise to row encoded_matrix[i] for all 0 < i < R.
-
-    kmer_size : int
-        k (usually 9)
-
-    allow_unknown_amino_acids : bool
-    """
-    def __init__(self, peptides, encoded_matrix, indices, kmer_size, allow_unknown_amino_acids):
-        assert len(indices) == len(encoded_matrix)
-        assert len(peptides) == 0 or len(peptides) == max(indices) + 1
-        self.encoded_matrix = encoded_matrix
-        self.kmer_size = kmer_size
-        self.allow_unknown_amino_acids = allow_unknown_amino_acids
-        self.peptides = peptides
-        self.indices = indices
-        self.unique_peptides = np.unique(peptides)
-
-    def __len__(self):
-        return len(self.peptides)
-
-    def combine_predictions(self, predictions):
-        assert len(predictions) == len(self.encoded_matrix)
-        assert len(predictions) == len(self.indices)
-        df = pandas.DataFrame({
-            'original_peptide_index': self.indices,
-            'prediction': predictions,
-        })
-        predictions_by_index = df.groupby("original_peptide_index").prediction.mean()
-        return predictions_by_index[np.arange(0, max(self.indices) + 1)].values
-
-
-def encode_peptides(peptides, kmer_size=9, allow_unknown_amino_acids=True):
-    """
-    Encode peptides of any length into KmerEncodedPeptides instance
-
-    Parameters
-    ----------
-    peptides : str list or KmerEncodedPeptides
-        Peptide strings of any length. For convenience, if a KmerEncodedPeptides instance is passed then it is returned.
-
-    """
-    if isinstance(peptides, KmerEncodedPeptides):
-        assert peptides.kmer_size == kmer_size
-        assert peptides.allow_unknown_amino_acids == allow_unknown_amino_acids
-        return peptides
-
-    if len(peptides) == 0:
-        combined_matrix = np.zeros((0, kmer_size))
-        indices = []
-    else:
-        indices = []
-        encoded_matrices = []
-        for i, peptide in enumerate(peptides):
-            matrix, _, _, _ = fixed_length_index_encoding(
-                peptides=[peptide],
-                desired_length=kmer_size,
-                allow_unknown_amino_acids=allow_unknown_amino_acids)
-            encoded_matrices.append(matrix)
-            indices.extend([i] * len(matrix))
-        combined_matrix = np.concatenate(encoded_matrices)
-    index_array = np.array(indices)
-    expected_shape = (len(index_array), kmer_size)
-    assert combined_matrix.shape == expected_shape, \
-        "Expected shape %s but got %s" % (
-            expected_shape, combined_matrix.shape)
-
-    return KmerEncodedPeptides(
-        peptides,
-        combined_matrix,
-        index_array,
-        kmer_size=kmer_size,
-        allow_unknown_amino_acids=allow_unknown_amino_acids)
-
-
-
-def all_kmers(k, alphabet=common_amino_acid_letters):
-    """
-    Generates all k-mer peptide sequences
-
-    Parameters
-    ----------
-    k : int
-
-    alphabet : str | list of characters
-    """
-    alphabets = [alphabet] * k
-    return [
-        "".join(combination)
-        for combination
-        in itertools.product(*alphabets)
-    ]
-
-
-class CombinatorialExplosion(Exception):
-    pass
-
-
-def extend_peptide(
-        peptide,
-        desired_length,
-        start_offset,
-        end_offset,
-        insert_amino_acid_letters=common_amino_acid_letters):
-    """Extend peptide by inserting every possible amino acid combination
-    if we're trying to e.g. turn an 8mer into 9mers.
-
-    Parameters
-    ----------
-    peptide : str
-
-    desired_length : int
-
-    start_offset : int
-        How many characters (from the position before the start of the string)
-        to skip before inserting characters.
-
-
-    end_offset : int
-        Last character position from the end where we insert new characters,
-        where 0 is the position after the last character.
-
-    insert_alphabet : str | list of character
-    """
-    n = len(peptide)
-    assert n < desired_length, \
-        "%s (length = %d) is too long! Must be shorter than %d" % (
-            peptide, n, desired_length)
-    n_missing = desired_length - n
-    if n_missing > 3:
-        raise CombinatorialExplosion(
-            "Cannot transform %s of length %d into a %d-mer peptide" % (
-                peptide, n, desired_length))
-    return [
-        peptide[:i] + extra + peptide[i:]
-        for i in range(start_offset, n - end_offset + 1)
-        for extra in all_kmers(
-            n_missing,
-            alphabet=insert_amino_acid_letters)
-    ]
-
-
-def shorten_peptide(
-        peptide,
-        desired_length,
-        start_offset,
-        end_offset,
-        insert_amino_acid_letters=common_amino_acid_letters):
-    """Shorten peptide if trying to e.g. turn 10mer into 9mers
-
-    Parameters
-    ----------
-
-    peptide : str
-
-    desired_length : int
-
-    start_offset : int
-
-    end_offset : int
-
-    alphabet : str | list of characters
-    """
-    n = len(peptide)
-    assert n > desired_length, \
-        "%s (length = %d) is too short! Must be longer than %d" % (
-            peptide, n, desired_length)
-    n_skip = n - desired_length
-    assert n_skip > 0, \
-        "Expected length of peptide %s %d to be greater than %d" % (
-            peptide, n, desired_length)
-    end_range = n - end_offset - n_skip + 1
-    return [
-        peptide[:i] + peptide[i + n_skip:]
-        for i in range(start_offset, end_range)
-    ]
-
-def fixed_length_from_many_peptides(
-        peptides,
-        desired_length,
-        start_offset_extend=2,
-        end_offset_extend=1,
-        start_offset_shorten=2,
-        end_offset_shorten=0,
-        insert_amino_acid_letters=common_amino_acid_letters):
-    """
-    Create a set of fixed-length k-mer peptides from a collection of varying
-    length peptides.
-
-    Shorter peptides are filled in using all possible amino acids at any
-    insertion site between start_offset_shorten and -end_offset_shorten
-    where start_offset_extend=0 represents insertions before the string
-    and end_offset_extend=0 represents insertions after the string's ending.
-
-    Longer peptides are shortened by deleting contiguous residues, starting
-    from start_offset_shorten and ending with -end_offset_shorten. Unlike
-    peptide extensions, the offsets for shortening a peptide range between
-    the first and last positions (rather than between the positions *before*
-    the string starts and the position *after*).
-
-    We can recreate the methods from:
-       Accurate approximation method for prediction of class I MHC
-       affinities for peptides of length 8, 10 and 11 using prediction
-       tools trained on 9mers.
-    by Lundegaard et. al. (http://bioinformatics.oxfordjournals.org/content/24/11/1397)
-    with the following settings:
-        - desired_length = 9
-        - start_offset_extend = 3
-        - end_offset_extend = 2
-        - start_offset_shorten = 3
-        - end_offset_shorten = 1
-
-    Returns three lists:
-        - a list of fixed length peptides (all of length `desired_length`)
-        - a list of indices of the original peptides from which subsequences
-          were contracted or lengthened
-        - a list of counts for each fixed length peptide indicating the
-          number extracted from its corresponding shorter/longer peptide
-
-    Example:
-        kmers, original, counts = fixed_length_from_many_peptides(
-            peptides=["ABC", "A"]
-            desired_length=2,
-            start_offset_extend=0,
-            end_offset_extend=0,
-            start_offset_shorten=0,
-            end_offset_shorten=0,
-            insert_amino_acid_letters="ABC")
-        kmers == ["BC", "AC", "AB", "AA", "BA", "CA", "AA", "AB", "AC"]
-        original == ["ABC", "ABC", "ABC", "A", "A", "A", "A", "A", "A"]
-        counts == [3, 3, 3, 6, 6, 6, 6, 6, 6]
-
-    Parameters
-    ----------
-    peptides : list of str
-
-    desired_length : int
-
-    start_offset_extend : int
-
-    end_offset_extend : int
-
-    start_offset_shorten : int
-
-    end_offset_shorten : int
-
-    insert_amino_acid_letters : str | list of characters
-    """
-    all_fixed_length_peptides = []
-    indices = []
-    counts = []
-    for i, peptide in enumerate(peptides):
-        n = len(peptide)
-        if n == desired_length:
-            fixed_length_peptides = [peptide]
-        elif n < desired_length:
-            try:
-                fixed_length_peptides = extend_peptide(
-                    peptide=peptide,
-                    desired_length=desired_length,
-                    start_offset=start_offset_extend,
-                    end_offset=end_offset_extend,
-                    insert_amino_acid_letters=insert_amino_acid_letters)
-            except CombinatorialExplosion:
-                logging.warn(
-                    "Peptide %s is too short to be extended to length %d" % (
-                        peptide, desired_length))
-                continue
-        else:
-            fixed_length_peptides = shorten_peptide(
-                peptide=peptide,
-                desired_length=desired_length,
-                start_offset=start_offset_shorten,
-                end_offset=end_offset_shorten,
-                insert_amino_acid_letters=insert_amino_acid_letters)
-        n_fixed_length = len(fixed_length_peptides)
-        all_fixed_length_peptides.extend(fixed_length_peptides)
-        indices.extend([i] * n_fixed_length)
-        counts.extend([n_fixed_length] * n_fixed_length)
-    return all_fixed_length_peptides, indices, counts
-
-
-def indices_to_hotshot_encoding(X, n_indices=None, first_index_value=0):
-    """
-    Given an (n_samples, peptide_length) integer matrix
-    convert it to a binary encoding of shape:
-        (n_samples, peptide_length * n_indices)
-    """
-    (n_samples, peptide_length) = X.shape
-    if not n_indices:
-        n_indices = X.max() - first_index_value + 1
-    X_binary = np.zeros((n_samples, peptide_length * n_indices), dtype=bool)
-    for i, row in enumerate(X):
-        for j, xij in enumerate(row):
-            X_binary[i, n_indices * j + xij - first_index_value] = 1
-    return X_binary.astype(float)
-
-
-def fixed_length_index_encoding(
-        peptides,
-        desired_length,
-        start_offset_shorten=0,
-        end_offset_shorten=0,
-        start_offset_extend=0,
-        end_offset_extend=0,
-        allow_unknown_amino_acids=True):
-    """
-    Take peptides of varying lengths, chop them into substrings of fixed
-    length and apply index encoding to these substrings.
-
-    If a string is longer than the desired length, then it's reduced to
-    the desired length by deleting characters at all possible positions. When
-    positions at the start or end of a string should be exempt from deletion
-    then the number of exempt characters can be controlled via
-    `start_offset_shorten` and `end_offset_shorten`.
-
-    If a string is shorter than the desired length then it is filled
-    with all possible characters of the alphabet at all positions. The
-    parameters `start_offset_extend` and `end_offset_extend` control whether
-    certain positions are excluded from insertion. The positions are
-    in a "inter-residue" coordinate system, where `start_offset_extend` = 0
-    refers to the position *before* the start of a peptide and, similarly,
-    `end_offset_extend` = 0 refers to the position *after* the peptide.
-
-    Returns tuple with the following fields:
-        - index encoded feature matrix X
-        - list of fixed length peptides
-        - list of "original" peptides of varying lengths
-        - list of integer counts indicating how many rows came from
-          that original peptide.
-
-    When two rows are expanded out of a single original peptide, they will both
-    have a count of 2. These counts can be useful for down-weighting the
-    importance of multiple feature vectors which originate from the same sample.
-    """
-    if allow_unknown_amino_acids:
-        insert_letters = ["X"]
-        index_encoding = amino_acids_with_unknown.index_encoding
-    else:
-        insert_letters = common_amino_acid_letters
-        index_encoding = common_amino_acids.index_encoding
-
-    fixed_length, original_peptide_indices, counts = \
-        fixed_length_from_many_peptides(
-            peptides=peptides,
-            desired_length=desired_length,
-            start_offset_shorten=start_offset_shorten,
-            end_offset_shorten=end_offset_shorten,
-            start_offset_extend=start_offset_extend,
-            end_offset_extend=end_offset_extend,
-            insert_amino_acid_letters=insert_letters)
-    X = index_encoding(fixed_length, desired_length)
-    return (X, fixed_length, original_peptide_indices, counts)
-
-def check_valid_index_encoding_array(X, allow_unknown_amino_acids=True):
-        X = np.asarray(X)
-        if len(X.shape) != 2:
-            raise ValueError("Expected 2d input, got array with shape %s" % (
-                X.shape,))
-        max_expected_index = 20 if allow_unknown_amino_acids else 19
-        if X.max() > max_expected_index:
-            raise ValueError(
-                "Got index %d in peptide encoding, max expected %d" % (
-                    X.max(),
-                    max_expected_index))
-        return X
-
-
diff --git a/mhcflurry/predict_command.py b/mhcflurry/predict_command.py
index 05c4c809..2231c2a2 100644
--- a/mhcflurry/predict_command.py
+++ b/mhcflurry/predict_command.py
@@ -46,7 +46,7 @@ import pandas
 import itertools
 
 from .downloads import get_path
-from . import class1_allele_specific, class1_allele_specific_ensemble
+from . import class1_affinity_prediction, class1_allele_specific_ensemble
 
 parser = argparse.ArgumentParser(
     description=__doc__,
@@ -163,7 +163,7 @@ def run(argv=sys.argv[1:]):
             # them to download the models if needed.
             models_dir = get_path("models_class1_allele_specific_single")
         predictor = (
-            class1_allele_specific
+            class1_affinity_prediction
                 .class1_single_model_multi_allele_predictor
                 .Class1SingleModelMultiAllelePredictor
         ).load_from_download_directory(models_dir)
diff --git a/mhcflurry/prediction.py b/mhcflurry/prediction.py
deleted file mode 100644
index 36e1f0e7..00000000
--- a/mhcflurry/prediction.py
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (c) 2015. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from collections import OrderedDict
-
-import pandas
-import numpy
-
-from .class1_allele_specific_ensemble import class1_ensemble_multi_allele_predictor
-from .common import normalize_allele_name, UnsupportedAllele
-from .peptide_encoding import encode_peptides
-
-
-def predict(alleles, peptides, predictor=None):
-    """
-    Make predictions across all combinations of the specified alleles and
-    peptides.
-
-    Parameters
-    ----------
-    alleles : list of str
-        Names of alleles to make predictions for.
-
-    peptides : list of str
-        Peptide amino acid sequences.
-
-    predictor : Predictor to use. Defaults to downloaded Class1SingleModelMultiAllelePredictor.
-
-    Returns DataFrame with columns "Allele", "Peptide", and "Prediction"
-    """
-    if predictor is None:
-        predictor = class1_ensemble_multi_allele_predictor.get_downloaded_predictor()
-
-    if len(peptides) == 0 or len(alleles) == 0:
-        return pandas.DataFrame(columns=["Peptide", "Allele", "Prediction"])
-
-    peptides = numpy.unique(peptides)
-    encoded_peptides = encode_peptides(peptides)
-    result_dfs = []
-    result_df = pandas.DataFrame()
-    result_df["Peptide"] = peptides
-    for allele in alleles:
-        allele = normalize_allele_name(allele)
-        predictions = predictor.predict_for_allele(allele, encoded_peptides)
-        result_df = result_df.copy()
-        result_df["Allele"] = allele
-        result_df["Prediction"] = predictions
-        result_dfs.append(result_df)
-    return pandas.concat(result_dfs, ignore_index=True)
diff --git a/mhcflurry/regression_target.py b/mhcflurry/regression_target.py
index 66ca26cd..cbd572cc 100644
--- a/mhcflurry/regression_target.py
+++ b/mhcflurry/regression_target.py
@@ -12,40 +12,39 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import numpy as np
+import numpy
 
-MAX_IC50 = 50000.0
 
-def ic50_to_regression_target(ic50, max_ic50=MAX_IC50):
+def from_ic50(ic50):
     """
-    Transform IC50 inhibitory binding concentrations to affinity values between
-    [0,1] where 0 means a value greater or equal to max_ic50 and 1 means very
-    strong binder.
-
+    Convert ic50s to regression targets in the range [0.0, 1.0].
+    
     Parameters
     ----------
-    ic50 : numpy.ndarray
+    ic50 : numpy.array of float
+
+    Returns
+    -------
+    numpy.array of float
 
-    max_ic50 : float
-    """
-    log_ic50 = np.log(ic50) / np.log(max_ic50)
-    regression_target = 1.0 - log_ic50
-    # clamp to values between 0, 1
-    regression_target = np.maximum(regression_target, 0.0)
-    regression_target = np.minimum(regression_target, 1.0)
-    return regression_target
-
-def regression_target_to_ic50(y, max_ic50=MAX_IC50):
     """
-    Transform values between [0,1] to IC50 inhibitory binding concentrations
-    between [1.0, infinity]
+    x = 1.0 - (numpy.log(ic50) / numpy.log(50000))
+    return numpy.minimum(
+        1.0,
+        numpy.maximum(0.0, x))
 
+
+def to_ic50(x):
+    """
+    Convert regression targets in the range [0.0, 1.0] to ic50s in the range
+    [0, 50000.0].
+    
     Parameters
     ----------
-    y : numpy.ndarray of float
-
-    max_ic50 : float
+    x : numpy.array of float
 
-    Returns numpy.ndarray
+    Returns
+    -------
+    numpy.array of float
     """
-    return max_ic50 ** (1.0 - y)
+    return 50000.0 ** (1.0 - x)
diff --git a/mhcflurry/training_helpers.py b/mhcflurry/training_helpers.py
deleted file mode 100644
index 5a3be5c4..00000000
--- a/mhcflurry/training_helpers.py
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright (c) 2016. Mount Sinai School of Medicine
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Helper functions for training predictors on fixed length encoding of peptides
-along with vectors representing affinity and sample weights.
-
-Eventually we'll have to generalize or split this to work with sequence
-inputs for RNN predictors.
-"""
-
-from __future__ import (
-    print_function,
-    division,
-    absolute_import,
-)
-
-import numpy as np
-
-def check_encoded_array_shapes(X, Y, sample_weights):
-    """
-    Check to make sure that the shapes of X, Y, and weights are all compatible.
-    This function differs from check_pMHC_affinity_array_lengths in that the
-    peptides are assumed to be encoded into a single 2d array of features X
-    and the data is either for a single allele or allele features are included
-    in X.
-
-    Returns the numbers of rows and columns in X.
-    """
-    if len(X.shape) != 2:
-        raise ValueError("Expected X to be 2d, got shape: %s" % (X.shape,))
-
-    if len(Y.shape) != 1:
-        raise ValueError("Expected Y to be 1d, got shape: %s" % (Y.shape,))
-
-    if len(sample_weights.shape) != 1:
-        raise ValueError("Expected weights to be 1d, got shape: %s" % (
-            sample_weights.shape,))
-
-    n_samples, n_dims = X.shape
-    if len(Y) != n_samples:
-        raise ValueError("Mismatch between len(X) = %d and len(Y) = %d" % (
-            n_samples, len(Y)))
-
-    if len(sample_weights) != n_samples:
-        raise ValueError(
-            "Length of sample_weights (%d) doesn't match number of samples (%d)" % (
-                len(sample_weights),
-                n_samples))
-
-    return n_samples, n_dims
-
-def combine_training_arrays(
-        X,
-        Y,
-        sample_weights,
-        X_pretrain,
-        Y_pretrain,
-        sample_weights_pretrain):
-    """
-    Make sure the shapes of given training and pre-training data
-    conform with each other. Then concatenate the pre-training and the
-    training data.
-
-    Returns (X_combined, Y_combined, weights_combined, n_pretrain_samples)
-    """
-    X = np.asarray(X)
-    Y = np.asarray(Y)
-    if sample_weights is None:
-        sample_weights = np.ones_like(Y)
-    else:
-        sample_weights = np.asarray(sample_weights)
-
-    n_samples, n_dims = check_encoded_array_shapes(X, Y, sample_weights)
-
-    if X_pretrain is None or Y_pretrain is None:
-        X_pretrain = np.zeros((0, n_dims), dtype=X.dtype)
-        Y_pretrain = np.zeros((0,), dtype=Y.dtype)
-    else:
-        X_pretrain = np.asarray(X_pretrain)
-        Y_pretrain = np.asarray(Y_pretrain)
-
-    if sample_weights_pretrain is None:
-        sample_weights_pretrain = np.ones_like(Y_pretrain)
-    else:
-        sample_weights_pretrain = np.asarray(sample_weights_pretrain)
-
-    n_pretrain_samples, n_pretrain_dims = check_encoded_array_shapes(
-        X_pretrain, Y_pretrain, sample_weights_pretrain)
-
-    X_combined = np.vstack([X_pretrain, X])
-    Y_combined = np.concatenate([Y_pretrain, Y])
-    combined_weights = np.concatenate([
-        sample_weights_pretrain,
-        sample_weights,
-    ])
-    return X_combined, Y_combined, combined_weights, n_pretrain_samples
-
-
-def extend_with_negative_random_samples(
-        X, Y, weights, n_random_negative_samples, max_amino_acid_encoding_value):
-    """
-    Extend training data with randomly generated negative samples. Assumes that
-    X is an integer array of amino acid indices for fixed length peptides.
-
-    Parameters
-    ----------
-    X : numpy.ndarray
-        2d array of integer amino acid encodings
-
-    Y : numpy.ndarray
-        1d array of regression targets
-
-    weights : numpy.ndarray
-        1d array of sample weights (must be same length as X and Y)
-
-    n_random_negative_samples : int
-        Number of random negative samplex to create
-
-    max_amino_acid_encoding_value : int
-        Typically 20 for the standard set of amino acids or 21 if we're
-        including the null character "X" used to extend 8mers into 9mers
-
-    Returns X, Y, weights (extended with random negative samples)
-    """
-    assert len(X) == len(Y) == len(weights)
-    if n_random_negative_samples == 0:
-        return X, Y, weights
-    n_cols = X.shape[1]
-    X_random = np.random.randint(
-        low=0,
-        high=max_amino_acid_encoding_value,
-        size=(n_random_negative_samples, n_cols)).astype(X.dtype)
-    Y_random = np.zeros(n_random_negative_samples, dtype=float)
-    weights_random = np.ones(n_random_negative_samples, dtype=float)
-    X_with_negative = np.vstack([X, X_random])
-    Y_with_negative = np.concatenate([Y, Y_random])
-    weights_with_negative = np.concatenate([
-        weights,
-        weights_random])
-    assert len(X_with_negative) == len(X) + n_random_negative_samples
-    assert len(Y_with_negative) == len(Y) + n_random_negative_samples
-    assert len(weights_with_negative) == len(weights) + n_random_negative_samples
-    return X_with_negative, Y_with_negative, weights_with_negative
diff --git a/requirements.txt b/requirements.txt
index 9b6ae49d..757af426 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,9 +1,8 @@
 numpy>= 1.11
 pandas>=0.13.1
 appdirs
-theano==0.8.2
-keras==1.2.0
-fancyimpute>=0.0.12
+theano
+keras
 scikit-learn
 h5py
 typechecks
diff --git a/setup.py b/setup.py
index e4853ddd..42f50f45 100644
--- a/setup.py
+++ b/setup.py
@@ -52,9 +52,8 @@ if __name__ == '__main__':
         'numpy>=1.11',
         'pandas>=0.13.1',
         'appdirs',
-        'theano==0.8.2',
-        'keras==1.2.0',
-        'fancyimpute>=0.0.12',
+        'theano',
+        'keras',
         'scikit-learn',
         'h5py',
         'typechecks',
@@ -79,10 +78,9 @@ if __name__ == '__main__':
             'console_scripts': [
                 'mhcflurry-downloads = mhcflurry.downloads_command:run',
                 'mhcflurry-predict = mhcflurry.predict_command:run',
-                'mhcflurry-class1-allele-specific-ensemble-train = '
-                    'mhcflurry.class1_allele_specific_ensemble.train_command:run',
-                'mhcflurry-class1-allele-specific-cv-and-train = '
-                    'mhcflurry.class1_allele_specific.cv_and_train_command:run',
+                'mhcflurry-class1-train-allele-specific-models = '
+                    'mhcflurry.class1_affinity_prediction.'
+                    'train_allele_specific_models_command:run',
             ]
         },
         classifiers=[
@@ -101,7 +99,6 @@ if __name__ == '__main__':
         long_description=readme,
         packages=[
             'mhcflurry',
-            'mhcflurry.class1_allele_specific',
-            'mhcflurry.class1_allele_specific_ensemble',
+            'mhcflurry.class1_affinity_prediction',
         ],
     )
diff --git a/test/test_class1_allele_specific_cv_and_train_command.py b/test/test_class1_allele_specific_cv_and_train_command.py
index eb722ffe..29e4e491 100644
--- a/test/test_class1_allele_specific_cv_and_train_command.py
+++ b/test/test_class1_allele_specific_cv_and_train_command.py
@@ -9,9 +9,9 @@ from os import mkdir, environ
 
 import pandas
 
-from mhcflurry.class1_allele_specific import cv_and_train_command
-from mhcflurry import downloads, predict, class1_allele_specific
-from mhcflurry.class1_allele_specific.train import HYPERPARAMETER_DEFAULTS
+from mhcflurry.class1_affinity_prediction import cv_and_train_command
+from mhcflurry import downloads, predict, class1_affinity_prediction
+from mhcflurry.class1_affinity_prediction.train import HYPERPARAMETER_DEFAULTS
 
 try:
     import kubeface
@@ -116,7 +116,7 @@ def verify_trained_models(base_temp_dir):
         data["prediction"] = predict(
             data.allele,
             data.peptide,
-            predictor=class1_allele_specific.get_downloaded_predictor()
+            predictor=class1_affinity_prediction.get_downloaded_predictor()
         ).Prediction
         print(data)
         mean_binder = data.ix[data.binder].prediction.mean()
diff --git a/test/test_cross_validation.py b/test/test_cross_validation.py
index fdcd160f..dd577707 100644
--- a/test/test_cross_validation.py
+++ b/test/test_cross_validation.py
@@ -7,11 +7,11 @@ import fancyimpute
 
 from mhcflurry.downloads import get_path
 
-from mhcflurry.class1_allele_specific import (
+from mhcflurry.class1_affinity_prediction import (
     cross_validation_folds,
     train_across_models_and_folds)
 
-from mhcflurry.class1_allele_specific.train import (
+from mhcflurry.class1_affinity_prediction.train import (
     HYPERPARAMETER_DEFAULTS)
 
 from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset
diff --git a/test/test_ensemble.py b/test/test_ensemble.py
index 24ea46c9..210989e3 100644
--- a/test/test_ensemble.py
+++ b/test/test_ensemble.py
@@ -14,7 +14,7 @@ from nose.tools import eq_
 
 from . import make_random_peptides
 
-from mhcflurry.class1_allele_specific import scoring
+from mhcflurry.class1_affinity_prediction import scoring
 from mhcflurry.measurement_collection import MeasurementCollection
 from mhcflurry.class1_allele_specific_ensemble import train_command
 from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset
diff --git a/test/test_hyperparameters.py b/test/test_hyperparameters.py
index afce49f8..a840bbf7 100644
--- a/test/test_hyperparameters.py
+++ b/test/test_hyperparameters.py
@@ -1,6 +1,6 @@
 from numpy.testing import assert_equal
 
-from mhcflurry.class1_allele_specific import Class1BindingPredictor
+from mhcflurry.class1_affinity_prediction import Class1BindingPredictor
 
 
 def test_all_combinations_of_hyperparameters():
diff --git a/test/test_known_class1_epitopes.py b/test/test_known_class1_epitopes.py
index a1c35794..50685d0a 100644
--- a/test/test_known_class1_epitopes.py
+++ b/test/test_known_class1_epitopes.py
@@ -15,12 +15,12 @@
 import cProfile
 
 import mhcflurry
-import mhcflurry.class1_allele_specific
+import mhcflurry.class1_affinity_prediction
 import mhcflurry.class1_allele_specific_ensemble
 
 
 predictors = [
-    mhcflurry.class1_allele_specific.get_downloaded_predictor(),
+    mhcflurry.class1_affinity_prediction.get_downloaded_predictor(),
     mhcflurry.class1_allele_specific_ensemble.get_downloaded_predictor(),
 ]
 
diff --git a/test/test_serialization.py b/test/test_serialization.py
index 494f5584..98870bb8 100644
--- a/test/test_serialization.py
+++ b/test/test_serialization.py
@@ -1,7 +1,7 @@
 import pickle
 import numpy as np
 
-from mhcflurry.class1_allele_specific import Class1BindingPredictor
+from mhcflurry.class1_affinity_prediction import Class1BindingPredictor
 
 
 def test_predict_after_saving_model_to_disk():
-- 
GitLab