{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Credit Approval Tutorial\n", "This tutorial illustrates the use of several methods in the AI Explainability 360 Toolkit to provide different kinds of explanations suited to different users in the context of a credit approval process enabled by machine learning. We use data from the [FICO Explainable Machine Learning Challenge](https://community.fico.com/s/explainable-machine-learning-challenge) as [described below](#intro). The three types of users (a.k.a. consumers) that we consider are a data scientist, who evaluates the machine learning model before deployment, a loan officer, who makes the final decision based on the model's output, and a bank customer, who wants to understand the reasons for their application result. \n", "\n", "For the [data scientist](#rule-based-models), we present two directly interpretable rule-based models that provide global understanding of their behavior. These models are produced by the [Boolean Rule Column Generation](#BRCG) (BRCG, class `BooleanRuleCG`) and [Logistic Rule Regression](#LogRR) (LogRR, class `LogisticRuleRegression`) algorithms in AIX360. The former yields very simple OR-of-ANDs classification rules while the latter gives weighted combinations of rules that are more accurate and still interpretable.\n", "\n", "For the [loan officer](#prototypes), we demonstrate a different way of explaining machine learning predictions by showing examples, specifically _prototypes_ or representatives in the training data that are similar to a given loan applicant and receive the same class label. We use the ProtoDash method (class `ProtodashExplainer`) to find these prototypes.\n", "\n", "For the [bank customer](#contrastive), we consider the Contrastive Explanations Method (CEM, class `CEMExplainer`) for explaining the predictions of black box models to end users. CEM builds upon the popular approach of highlighting features present in the input instance that are responsible for the model's classification. In addition to these, CEM also identifies features that are (minimally) absent in the input instance, but whose presence would have altered the classification.\n", "\n", "The tutorial is organized around these three types of consumers, following an introduction to the dataset.\n", "1. [Introduction to FICO HELOC Dataset](#intro)\n", "2. [Data Scientist: Boolean Rules and Logistic Rule Regression models](#rule-based-models)\n", "3. [Loan Officer: Similar samples as explanations for predictions based on HELOC Dataset](#prototypes)\n", "4. [Customer: Contrastive Explanations for predictions based on HELOC Dataset](#contrastive)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 1. Introduction to FICO HELOC Dataset\n", "\n", "The FICO HELOC dataset contains anonymized information about home equity line of credit (HELOC) applications made by real homeowners. A HELOC is a line of credit typically offered by a US bank as a percentage of home equity (the difference between the current market value of a home and the outstanding balance of all liens, e.g. mortgages). The customers in this dataset have requested a credit line in the range of USD 5,000 - 150,000. The machine learning task we are considering is to use the information about the applicant in their credit report to predict whether they will make timely payments over a two year period. The machine learning prediction can then be used to decide whether the homeowner qualifies for a line of credit and, if so, how much credit should be extended. \n", "\n", "The HELOC dataset and more information about it, including instructions to download, can be found [here](https://community.fico.com/s/explainable-machine-learning-challenge?tabset-3158a=2).\n", "\n", "The table below reproduces part of the data dictionary that comes with the HELOC dataset, explaining the predictor variables and target variable. For example, NumSatisfactoryTrades is a predictor variable that counts the number of past credit agreements with the applicant, which resulted in on-time payments. The target variable to predict is a binary variable called RiskPerformance. The value “Bad” indicates that an applicant was 90 days past due or worse at least once over a period of 24 months from when the credit account was opened. The value “Good” indicates that they have made their payments without ever being more than 90 days overdue. The relationship between a predictor variable and the target is indicated in the last column of the table. If a predictor variable is monotonically decreasing with respect to probability of bad = 1, it \n", "means that as the value of the variable increases, the probability of the loan application being \"Bad\" decreases, i.e. it becomes more \"good\". For example, ExternalRiskEstimate and NumSatisfactoryTrades are shown as monotonically decreasing. Monotonically increasing has the opposite meaning.\n", "\n", "\n", "|Field | Meaning |Monotonicity Constraint (with respect to probability of bad = 1)|\n", "|------|---------|----------------------------------------------------------------|\n", "|ExternalRiskEstimate |\tConsolidated version of risk markers |Monotonically Decreasing| \n", "|MSinceOldestTradeOpen\t| Months Since Oldest Trade Open | Monotonically Decreasing|\n", "|MSinceMostRecentTradeOpen | Months Since Most Recent Trade Open |Monotonically Decreasing\n", "|AverageMInFile\t| Average Months in File |Monotonically Decreasing|\n", "|NumSatisfactoryTrades |\tNumber Satisfactory Trades |Monotonically Decreasing|\n", "|NumTrades60Ever2DerogPubRec |\tNumber Trades 60+ Ever |Monotonically Decreasing|\n", "|NumTrades90Ever2DerogPubRec | Number Trades 90+ Ever |Monotonically Decreasing| \n", "|PercentTradesNeverDelq\t| Percent Trades Never Delinquent|Monotonically Decreasing|\n", "|MSinceMostRecentDelq\t| Months Since Most Recent Delinquency|Monotonically Decreasing|\n", "|MaxDelq2PublicRecLast12M |\tMax Delq/Public Records Last 12 Months. See tab \"MaxDelq\" for each category|Values 0-7 are monotonically decreasing|\n", "|MaxDelqEver |\tMax Delinquency Ever. See tab \"MaxDelq\" for each category|Values 2-8 are monotonically decreasing|\n", "|NumTotalTrades\t| Number of Total Trades (total number of credit accounts)|No constraint|\n", "|NumTradesOpeninLast12M\t| Number of Trades Open in Last 12 Months|Monotonically Increasing| \n", "|PercentInstallTrades\t| Percent Installment Trades|No constraint|\n", "|MSinceMostRecentInqexcl7days |\tMonths Since Most Recent Inq excl 7days|Monotonically Decreasing| \n", "|NumInqLast6M\t| Number of Inq Last 6 Months|Monotonically Increasing|\n", "|NumInqLast6Mexcl7days\t| Number of Inq Last 6 Months excl 7days. Excluding the last 7 days removes inquiries that are likely due to price comparision shopping. |Monotonically Increasing|\n", "|NetFractionRevolvingBurden\t| Net Fraction Revolving Burden. This is revolving balance divided by credit limit |Monotonically Increasing|\n", "|NetFractionInstallBurden\t| Net Fraction Installment Burden. This is installment balance divided by original loan amount |Monotonically Increasing| \n", "|NumRevolvingTradesWBalance\t| Number Revolving Trades with Balance |No constraint|\n", "|NumInstallTradesWBalance\t| Number Installment Trades with Balance |No constraint|\n", "|NumBank2NatlTradesWHighUtilization\t| Number Bank/Natl Trades w high utilization ratio |Monotonically Increasing|\n", "|PercentTradesWBalance\t| Percent Trades with Balance |No constraint\n", "|RiskPerformance\t| Paid as negotiated flag (12-36 Months). String of Good and Bad | Target |\n", "\n", "\n", "#### Storing HELOC dataset to run this notebook\n", "- In this notebook, we assume that the HELOC dataset is saved as `./aix360/data/heloc_data/heloc_dataset.csv`, where \".\" is the root directory of the Git repository before running a pip install of aix360 library. \n", "- If the data is downloaded after installation, please place the file within the respective folder under site-packages of your virtual environment `path-to-your-virtual-env/lib/python3.6/site-packages/aix360/data/heloc_data/heloc_dataset.csv`\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 2. Data scientist: Boolean Rule and Logistic Rule Regression models\n", "In evaluating a machine learning model for deployment, a data scientist would ideally like to understand the behavior of the model as a whole, not just in specific instances (e.g. specific loan applicants). This is especially true in regulated industries such as banking where higher standards of explainability may be required. For example, the data scientist may have to present the model to: 1) technical and business managers for review before deployment, 2) a lending expert to compare the model to the expert's knowledge, or 3) a regulator to check for compliance. Furthermore, it is common for a model to be deployed in a different geography than the one it was trained on. A global view of the model may uncover problems with overfitting and poor generalization to other geographies before deployment.\n", "\n", "Directly interpretable models can provide such global understanding because they have a sufficiently simple form for their workings to be transparent. Below we present two directly interpretable models in the form of a [Boolean rule (BR)](#BRCG) and a [logistic rule regression (LogRR)](#LogRR) model. The former is produced by the Boolean Rule Column Generation (BRCG) algorithm while the latter is a generalized linear rule model (GLRM), both implemented in AIX360. While both models are interpretable, they provide different trade-offs between model simplicity and accuracy in predicting loan repayment. BRCG yields a very simple set of rules that has reasonable accuracy. LogRR achieves higher accuracy, higher even than some uninterpretable models, while retaining the form of a linear model. Its interpretation is enhanced by [plots as demonstrated below](#visualize)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1. Load and process data for BRCG and LogRR\n", "We use the `HELOCDataset` class in AIX360 to load the FICO HELOC data as a DataFrame. The setting `custom_preprocessing=nan_preprocessing` converts special values in the data (coded as negative integers) to `np.nan`, which can be handled properly by BRCG and LogRR, as opposed to replacing them with zeros or mean values. The data is then split into training and test sets using a fixed random seed." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using Heloc dataset: /Users/vijay/AIX360-TEST/AIX360/aix360/datasets/../data/heloc_data/heloc_dataset.csv\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
89608403194948864998
ExternalRiskEstimate64.057.059.065.065.0
MSinceOldestTradeOpen175.047.0168.0228.0117.0
MSinceMostRecentTradeOpen6.09.03.05.07.0
AverageMInFile97.035.038.069.048.0
NumSatisfactoryTrades29.05.021.024.07.0
NumTrades60Ever2DerogPubRec9.01.00.03.01.0
NumTrades90Ever2DerogPubRec9.00.00.02.01.0
PercentTradesNeverDelq63.050.0100.085.078.0
MSinceMostRecentDelq2.016.0NaN3.036.0
MaxDelq2PublicRecLast12M4.06.07.00.06.0
MaxDelqEver4.05.08.02.04.0
NumTotalTrades41.010.021.027.09.0
NumTradesOpeninLast12M1.01.012.01.02.0
PercentInstallTrades63.030.038.031.056.0
MSinceMostRecentInqexcl7days0.00.00.07.07.0
NumInqLast6M1.02.01.00.00.0
NumInqLast6Mexcl7days1.02.01.00.00.0
NetFractionRevolvingBurden16.066.085.013.054.0
NetFractionInstallBurden94.070.090.066.069.0
NumRevolvingTradesWBalance1.02.010.03.02.0
NumInstallTradesWBalance1.02.05.02.03.0
NumBank2NatlTradesWHighUtilizationNaN0.04.00.01.0
PercentTradesWBalance50.057.094.046.083.0
\n", "
" ], "text/plain": [ " 8960 8403 1949 4886 4998\n", "ExternalRiskEstimate 64.0 57.0 59.0 65.0 65.0\n", "MSinceOldestTradeOpen 175.0 47.0 168.0 228.0 117.0\n", "MSinceMostRecentTradeOpen 6.0 9.0 3.0 5.0 7.0\n", "AverageMInFile 97.0 35.0 38.0 69.0 48.0\n", "NumSatisfactoryTrades 29.0 5.0 21.0 24.0 7.0\n", "NumTrades60Ever2DerogPubRec 9.0 1.0 0.0 3.0 1.0\n", "NumTrades90Ever2DerogPubRec 9.0 0.0 0.0 2.0 1.0\n", "PercentTradesNeverDelq 63.0 50.0 100.0 85.0 78.0\n", "MSinceMostRecentDelq 2.0 16.0 NaN 3.0 36.0\n", "MaxDelq2PublicRecLast12M 4.0 6.0 7.0 0.0 6.0\n", "MaxDelqEver 4.0 5.0 8.0 2.0 4.0\n", "NumTotalTrades 41.0 10.0 21.0 27.0 9.0\n", "NumTradesOpeninLast12M 1.0 1.0 12.0 1.0 2.0\n", "PercentInstallTrades 63.0 30.0 38.0 31.0 56.0\n", "MSinceMostRecentInqexcl7days 0.0 0.0 0.0 7.0 7.0\n", "NumInqLast6M 1.0 2.0 1.0 0.0 0.0\n", "NumInqLast6Mexcl7days 1.0 2.0 1.0 0.0 0.0\n", "NetFractionRevolvingBurden 16.0 66.0 85.0 13.0 54.0\n", "NetFractionInstallBurden 94.0 70.0 90.0 66.0 69.0\n", "NumRevolvingTradesWBalance 1.0 2.0 10.0 3.0 2.0\n", "NumInstallTradesWBalance 1.0 2.0 5.0 2.0 3.0\n", "NumBank2NatlTradesWHighUtilization NaN 0.0 4.0 0.0 1.0\n", "PercentTradesWBalance 50.0 57.0 94.0 46.0 83.0" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# Load FICO HELOC data with special values converted to np.nan\n", "from aix360.datasets.heloc_dataset import HELOCDataset, nan_preprocessing\n", "data = HELOCDataset(custom_preprocessing=nan_preprocessing).data()\n", "# Separate target variable\n", "y = data.pop('RiskPerformance')\n", "\n", "# Split data into training and test sets using fixed random seed\n", "from sklearn.model_selection import train_test_split\n", "dfTrain, dfTest, yTrain, yTest = train_test_split(data, y, random_state=0, stratify=y)\n", "dfTrain.head().transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "BRCG and LogRR require non-binary features to be binarized using the provided `FeatureBinarizer` class. We use the default of nine quantile thresholds (i.e. 10 bins) to binarize ordinal (including continuous-valued) features, include all negations (e.g. '>' comparisons as well as '<='), and also return standardized versions of the original unbinarized ordinal features, which are used by LogRR but not BRCG. Below is the result of binarizing the first 'ExternalRiskEstimate' feature. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
operation<=>==!=
value59.063.066.069.072.075.078.082.086.059.063.066.069.072.075.078.082.086.0NaNNaN
896000111111111000000001
840311111111100000000001
194911111111100000000001
488600111111111000000001
499800111111111000000001
\n", "
" ], "text/plain": [ "operation <= > \\\n", "value 59.0 63.0 66.0 69.0 72.0 75.0 78.0 82.0 86.0 59.0 63.0 66.0 69.0 \n", "8960 0 0 1 1 1 1 1 1 1 1 1 0 0 \n", "8403 1 1 1 1 1 1 1 1 1 0 0 0 0 \n", "1949 1 1 1 1 1 1 1 1 1 0 0 0 0 \n", "4886 0 0 1 1 1 1 1 1 1 1 1 0 0 \n", "4998 0 0 1 1 1 1 1 1 1 1 1 0 0 \n", "\n", "operation == != \n", "value 72.0 75.0 78.0 82.0 86.0 NaN NaN \n", "8960 0 0 0 0 0 0 1 \n", "8403 0 0 0 0 0 0 1 \n", "1949 0 0 0 0 0 0 1 \n", "4886 0 0 0 0 0 0 1 \n", "4998 0 0 0 0 0 0 1 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Binarize data and also return standardized ordinal features\n", "from aix360.algorithms.rbm import FeatureBinarizer\n", "fb = FeatureBinarizer(negations=True, returnOrd=True)\n", "dfTrain, dfTrainStd = fb.fit_transform(dfTrain)\n", "dfTest, dfTestStd = fb.transform(dfTest)\n", "dfTrain['ExternalRiskEstimate'].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 2.2. Run Boolean Rule Column Generation (BRCG)\n", "First we consider BRCG, which is designed to produce a very simple OR-of-ANDs rule (known more formally as disjunctive normal form, DNF) or alternatively an AND-of-ORs rule (conjunctive normal form, CNF) to predict whether an applicant will repay the loan on time (Y = 1). For a binary classification problem such as we have here, a DNF rule is equivalent to a *rule set*, where AND clauses in the DNF correspond to individual rules in the rule set. Furthermore, it can be shown that a CNF rule for Y = 1 is equivalent to a DNF rule for Y = 0 [[1]](https://ieeexplore.ieee.org/document/7738856). BRCG is distinguished by its use of the optimization technique of column generation to search the space of possible clauses, which is exponential in size. To learn more about column generation, please see our NeurIPS paper [[2]](http://papers.nips.cc/paper/7716-boolean-decision-rules-via-column-generation). \n", "\n", "For this dataset, we find that a CNF rule for Y = 1 (i.e. a DNF for Y = 0, enabled by setting `CNF=True`) is slightly better than a DNF rule for Y = 1. The model complexity parameters `lambda0` and `lambda1` penalize the number of clauses in the rule and the number of conditions in each clause. We use the default values of 1e-3 for `lambda0` and `lambda1` (decreasing them did not increase accuracy here) and leave other parameters at their defaults as well. The model is then trained, evaluated, and printed." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Learning CNF rule with complexity parameters lambda0=0.001, lambda1=0.001\n", "Initial LP solved\n", "Iteration: 1, Objective: 0.2895\n", "Iteration: 2, Objective: 0.2895\n", "Iteration: 3, Objective: 0.2895\n", "Iteration: 4, Objective: 0.2895\n", "Iteration: 5, Objective: 0.2864\n", "Iteration: 6, Objective: 0.2864\n", "Iteration: 7, Objective: 0.2864\n", "Training accuracy: 0.719573146021883\n", "Test accuracy: 0.696515397082658\n", "Predict Y=0 if ANY of the following rules are satisfied, otherwise Y=1:\n", "['ExternalRiskEstimate <= 75.00 AND NumSatisfactoryTrades <= 17.00', 'ExternalRiskEstimate <= 72.00 AND NumSatisfactoryTrades > 17.00']\n" ] } ], "source": [ "# Instantiate BRCG with small complexity penalty and large beam search width\n", "from aix360.algorithms.rbm import BooleanRuleCG\n", "br = BooleanRuleCG(lambda0=1e-3, lambda1=1e-3, CNF=True)\n", "\n", "# Train, print, and evaluate model\n", "br.fit(dfTrain, yTrain)\n", "from sklearn.metrics import accuracy_score\n", "print('Training accuracy:', accuracy_score(yTrain, br.predict(dfTrain)))\n", "print('Test accuracy:', accuracy_score(yTest, br.predict(dfTest)))\n", "print('Predict Y=0 if ANY of the following rules are satisfied, otherwise Y=1:')\n", "print(br.explain()['rules'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The returned DNF rule for Y = 0 is indeed very simple with only two clauses, each involving the same two features. It is interesting to see that such a rule can already achieve 69.7% accuracy. 'ExternalRiskEstimate' is a consolidated version of some risk markers (higher is better), while 'NumSatisfactoryTrades' is the number of satisfactory credit accounts. It makes sense therefore that for applicants with more than 17 satisfactory accounts, the ExternalRiskEstimate threshold dividing good (Y = 1) and bad (Y = 0) credit risk is slightly lower (more lenient) than for applicants with fewer satisfactory accounts.\n", "\n", "We note that AIX360 includes only a heuristic beam search version of BRCG. The published version of BRCG [[2]](http://papers.nips.cc/paper/7716-boolean-decision-rules-via-column-generation) (not implemented in AIX360) uses integer programming to yield slightly more complex rules that are also more accurate (close to 72% test accuracy)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 2.3. Run Logistic Rule Regression (LogRR)\n", "Next we consider a LogRR model, which can improve accuracy at the cost of a more complex but still interpretable model. Specifically, LogRR fits a logistic regression model using rule-based features, where column generation is again used to generate promising candidates from the space of all possible rules. Here we are also including unbinarized ordinal features (`useOrd=True`) in addition to rules. Similar to BRCG, the complexity parameters `lambda0`, `lambda1` penalize the number of rules included in the model and the number of conditions in each rule. the The values for `lambda0`, `lambda1` below strike a good balance between accuracy and model complexity, based on our published experience with the FICO HELOC dataset [[3]](http://proceedings.mlr.press/v97/wei19a.html)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training accuracy: 0.742536809401594\n", "Test accuracy: 0.7260940032414911\n", "Probability of Y=1 is predicted as logistic(z) = 1 / (1 + exp(-z))\n", "where z is a linear combination of the following rules/numerical features:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rule/numerical featurecoefficient
0(intercept)-0.129822
1MSinceMostRecentInqexcl7days > 0.000.680258
2ExternalRiskEstimate0.654165
3NetFractionRevolvingBurden-0.554117
4NumSatisfactoryTrades0.551641
5NumInqLast6M-0.463191
6NumBank2NatlTradesWHighUtilization-0.448356
7AverageMInFile <= 52.00-0.434369
8NumRevolvingTradesWBalance <= 5.000.421528
9MaxDelq2PublicRecLast12M <= 5.00-0.418162
10PercentInstallTrades > 50.00-0.317591
11NumSatisfactoryTrades <= 12.00-0.31249
12MSinceMostRecentDelq <= 21.00-0.301577
13PercentTradesNeverDelq <= 95.00-0.273943
14ExternalRiskEstimate > 75.000.263449
15AverageMInFile <= 84.00-0.182149
16PercentInstallTrades > 42.00-0.174293
17PercentTradesNeverDelq0.16652
18AverageMInFile0.150668
19NumBank2NatlTradesWHighUtilization <= 0.000.135378
20MSinceOldestTradeOpen <= 122.00-0.132573
21PercentTradesNeverDelq <= 91.00-0.117714
22NumSatisfactoryTrades <= 17.00-0.110231
23ExternalRiskEstimate > 72.000.107622
24NumInqLast6M <= 0.000.0994023
25MSinceOldestTradeOpen <= 146.00-0.0967138
26MSinceMostRecentInqexcl7days <= 0.00-0.0900502
27AverageMInFile <= 61.00-0.0794766
28AverageMInFile <= 76.00-0.0722786
29PercentInstallTrades <= 42.000.0661076
30NetFractionRevolvingBurden <= 39.000.0627442
31MSinceOldestTradeOpen > 122.000.0602986
32NetFractionRevolvingBurden <= 50.000.0455399
33MSinceOldestTradeOpen0.0421244
34ExternalRiskEstimate > 69.000.035422
35PercentTradesWBalance <= 73.00-0.0345516
36MSinceOldestTradeOpen > 146.000.0244397
\n", "
" ], "text/plain": [ " rule/numerical feature coefficient\n", "0 (intercept) -0.129822\n", "1 MSinceMostRecentInqexcl7days > 0.00 0.680258\n", "2 ExternalRiskEstimate 0.654165\n", "3 NetFractionRevolvingBurden -0.554117\n", "4 NumSatisfactoryTrades 0.551641\n", "5 NumInqLast6M -0.463191\n", "6 NumBank2NatlTradesWHighUtilization -0.448356\n", "7 AverageMInFile <= 52.00 -0.434369\n", "8 NumRevolvingTradesWBalance <= 5.00 0.421528\n", "9 MaxDelq2PublicRecLast12M <= 5.00 -0.418162\n", "10 PercentInstallTrades > 50.00 -0.317591\n", "11 NumSatisfactoryTrades <= 12.00 -0.31249\n", "12 MSinceMostRecentDelq <= 21.00 -0.301577\n", "13 PercentTradesNeverDelq <= 95.00 -0.273943\n", "14 ExternalRiskEstimate > 75.00 0.263449\n", "15 AverageMInFile <= 84.00 -0.182149\n", "16 PercentInstallTrades > 42.00 -0.174293\n", "17 PercentTradesNeverDelq 0.16652\n", "18 AverageMInFile 0.150668\n", "19 NumBank2NatlTradesWHighUtilization <= 0.00 0.135378\n", "20 MSinceOldestTradeOpen <= 122.00 -0.132573\n", "21 PercentTradesNeverDelq <= 91.00 -0.117714\n", "22 NumSatisfactoryTrades <= 17.00 -0.110231\n", "23 ExternalRiskEstimate > 72.00 0.107622\n", "24 NumInqLast6M <= 0.00 0.0994023\n", "25 MSinceOldestTradeOpen <= 146.00 -0.0967138\n", "26 MSinceMostRecentInqexcl7days <= 0.00 -0.0900502\n", "27 AverageMInFile <= 61.00 -0.0794766\n", "28 AverageMInFile <= 76.00 -0.0722786\n", "29 PercentInstallTrades <= 42.00 0.0661076\n", "30 NetFractionRevolvingBurden <= 39.00 0.0627442\n", "31 MSinceOldestTradeOpen > 122.00 0.0602986\n", "32 NetFractionRevolvingBurden <= 50.00 0.0455399\n", "33 MSinceOldestTradeOpen 0.0421244\n", "34 ExternalRiskEstimate > 69.00 0.035422\n", "35 PercentTradesWBalance <= 73.00 -0.0345516\n", "36 MSinceOldestTradeOpen > 146.00 0.0244397" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Instantiate LRR with good complexity penalties and numerical features\n", "from aix360.algorithms.rbm import LogisticRuleRegression\n", "lrr = LogisticRuleRegression(lambda0=0.005, lambda1=0.001, useOrd=True)\n", "\n", "# Train, print, and evaluate model\n", "lrr.fit(dfTrain, yTrain, dfTrainStd)\n", "print('Training accuracy:', accuracy_score(yTrain, lrr.predict(dfTrain, dfTrainStd)))\n", "print('Test accuracy:', accuracy_score(yTest, lrr.predict(dfTest, dfTestStd)))\n", "print('Probability of Y=1 is predicted as logistic(z) = 1 / (1 + exp(-z))')\n", "print('where z is a linear combination of the following rules/numerical features:')\n", "lrr.explain()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The test accuracy of LogRR is significantly better than that of BRCG and even better than the neural network in the [Loan Officer](#c2) and [Customer](#contrastive) sections. The LogRR model remains directly interpretable as it is a logistic regression model that uses the 36 rule-based and ordinal features shown above (in addition to an intercept term). Rules are distinguished by having one or more conditions on feature values (e.g. AverageMInFile <= 52.0) while ordinal features are marked by just the feature name without conditions (e.g. ExternalRiskEstimate). Being a linear model, feature importance is naturally given by the model coefficients and thus the list is sorted in order of decreasing coefficient magnitude. The list can be truncated if the user wishes to display fewer features.\n", "\n", "Since the rules in this LogRR model happen to all be single conditions on individual features, the model contains no interactions between features. It is therefore a kind of [generalized additive model (GAM)](https://en.wikipedia.org/wiki/Generalized_additive_model), i.e. a sum of functions of individual features, where these functions are themselves sums of step function components from rules and linear components from unbinarized ordinal features. Thus a better way to visualize the model is by plotting the univariate functions that make up the GAM, as we do next." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 2.4. Visualize LogRR model as a Generalized Additive Model (GAM)\n", "We use the `visualize()` method of `LogisticRuleRegression` to plot the functions in the GAM that corresponds to the LogRR model (more generally, `visualize()` plots the GAM part of a LogRR model, excluding higher-degree rules). The plots show the sizes and shapes of the model's dependences on individual features. These can then be compared to a lending expert's knowledge. In the present case, all plots indicate that the model behaves as we would expect with some interesting nuances. \n", "\n", "The 36 features shown above involve only 14 of the original features in the data (not including the intercept), as verified below. For example, ExternalRiskEstimate appears in its unbinarized form in row 2 above and also in 3 rules (rows 14, 23, 34)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "15" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfx = lrr.explain()\n", "# Separate 1st-degree rules into (feature, operation, value) to count unique features\n", "dfx2 = dfx['rule/numerical feature'].str.split(' ', expand=True)\n", "dfx2.columns = ['feature','operation','value']\n", "dfx2['feature'].nunique() # includes intercept" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It follows that there are 14 functions to plot, which we organize into semantic groups below to ease interpretation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### ExternalRiskEstimate\n", "As expected from the BRCG Boolean rule above, 'ExternalRiskEstimate' is an important feature positively correlated with good credit risk. The jumps in the plot indicate that applicants with above average 'ExternalRiskEstimate' (the mean is 72) get an additional boost." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['ExternalRiskEstimate']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Credit inquiries\n", "The next two plots illustrate the dependence on the applicant's credit inquiries. The first plot shows a significant penalty for having less than one month since the most recent inquiry ('MSinceMostRecentInqexcl7days' = 0)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['MSinceMostRecentInqexcl7days']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The second shows that predicted risk increases with the number of inquiries in the last six months ('NumInqLast6M')." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['NumInqLast6M']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Debt level\n", "The following four plots relate to the applicant's debt level. 'NetFractionRevolvingBurden' is the ratio of revolving debt (e.g. credit card) balance to credit limit, expressed as a percentage, and has a large negative impact on the probability of good credit. A small fraction of applicants (less than 1%) actually have NetFractionRevolvingBurden greater than 100%, i.e. more revolving debt than their credit limit. This might be investigated further by the data scientist." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['NetFractionRevolvingBurden']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The second 'NumBank2NatlTradesWHighUtilization' plot shows that the number of accounts (\"trades\") with high utilization (high balance relative to credit limit for each account) also has a large impact, with a drop as soon as one account has high utilization." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['NumBank2NatlTradesWHighUtilization']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " The third plot shows that the model gives a bonus to applicants who carry balances on no more than five revolving debt accounts." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['NumRevolvingTradesWBalance']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The fourth shows an effect from the percentage of accounts with a balance that is much smaller than those from other features." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['PercentTradesWBalance']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Number and type of accounts\n", "The number of \"satisfactory\" accounts (\"trades\") has a significant positive effect on the predicted probability of good credit, with jumps at 12 and 17 accounts." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['NumSatisfactoryTrades']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, having more than 40% as installment debt accounts (e.g. car loans) is seen as a negative." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['PercentInstallTrades']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Length of credit history\n", "The 'AverageMInFile' plot shows that most of the benefit of having a longer average credit history accrues between average ages of 52 and 84 months (four to seven years). " ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['AverageMInFile']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similar but smaller gains come when the age of the oldest account ('MSinceOldestTradeOpen') exceeds 122 and 146 months (10-12 years)." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['MSinceOldestTradeOpen']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Delinquencies\n", "The last set of plots looks at the effect of delinquencies. The first plot shows that much of the change due to the percentage of accounts that were never delinquent ('PercentTradesNeverDelq') occurs between 90% and 100%." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['PercentTradesNeverDelq']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "'MaxDelq2PublicRecLast12M' measures the severity of the applicant's worst delinquency from the last 12 months of the public record. A value of 5 or below indicates that some delinquency has occurred, whether of unknown duration, 30/60/90/120 days delinquent, or a derogatory comment. " ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['MaxDelq2PublicRecLast12M']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to the last 'MSinceMostRecentDelq' plot, the effect of the most recent delinquency wears off after 21 months." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lrr.visualize(data, fb, ['MSinceMostRecentDelq']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3. Loan Officer: Prototypical explanations for HELOC use case\n", "\n", "We now show how to generate explanations in the form of selecting prototypical or similar user profiles to an applicant in question that a bank employee such as a loan officer may be interested in. This may help the employee understand the decision of an applicant's HELOC application being accepted or rejected in the context of other similar applications. Note that the selected prototypical applications are profiles that are part of the training set that has been used to train an AI model that predicts good or bad i.e. approved or rejected for these applications. In fact, the method used in this notebook can work even if we are given not just one but a set of user profiles for which we want to find similar profiles from a training dataset. Additionally, the method computes weights for each prototype showcasing its similarity to the user(s) in question.\n", "\n", "The prototypical explanations in AIX360 are obtained using the Protodash algorithm developed in the following work: [ProtoDash: Fast Interpretable Prototype Selection](https://arxiv.org/abs/1707.01212)\n", "\n", "We now provide a brief overview of the method. The method takes as input a datapoint (or group of datapoints) that we want to explain with respect to instances in a training set belonging to the same feature space. The method then tries to minimize the maximum mean discrepancy (MMD metric) between the datapoints we want to explain and a prespecified number of instances from the training set that it will select. In other words, it will try to select training instances that have the same distribution as the datapoints we want to explain. The method does greedy selection and has quality guarantees with it also returning importance weights for the chosen prototypical training instances indicative of how similar/representative they are.\n", "\n", "In this tutorial, we will see two examples of obtaining prototypes, one for a user whose HELOC application was approved and another for a user whose HELOC application was rejected. In each case, we showcase the top five prototypes from the training data along with how similar the feature values were for these prototypes.\n", "\n", "[Example 1. Obtaining similar samples as explanations for a HELOC applicant predicted as \"Good\"](#good)
\n", "[Example 2. Obtaining similar samples as explanations for a HELOC applicant predicted as \"Bad\"](#bad)
\n", "\n", "\n", "###### Why Protodash?\n", "Before we showcase the two examples we provide some motivation for using this method. The method selects applications from the training set that are similar in different ways to the user application we want to explain. For example, a users loan may be rejected justifiably because the number of satisfactory trades he performed were low similar to another rejected user, or because his/her debts were too high similar to a different rejected user. Either of these reasons in isolation may be sufficient for rejection and the method is able to surface a variety of such reasons through the selected prototypes. This is not the case using standard nearest neighbor techniques which use metrics such as euclidean distance, cosine similarity amongst others, where one might get the same type of explanation (i.e. applications with only low number of satisfactory trades). Protodash thus is able to provide a much more well rounded and comprehensive view of why the decision for the applicant may be justifiable.\n", "\n", "Another benefit of the method is that — since it does distribution matching between the user/users in question and those available in the training set — it could, in principle, be applied also in non-iid settings such as for time series data. Other approaches which find similar profiles using standard distance measures (viz. euclidean, cosine) do not have this property. Additionally, we can also highlight important features for the different prototypes that made them similar to the user/users in question.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import statements\n", "\n", "Import necessary libraries, frameworks and algorithms." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import tensorflow as tf\n", "from keras.models import Sequential, Model, load_model, model_from_json\n", "from keras.layers import Dense\n", "import matplotlib.pyplot as plt\n", "from IPython.core.display import display, HTML\n", "\n", "from aix360.algorithms.contrastive import CEMExplainer, KerasClassifier\n", "from aix360.algorithms.protodash import ProtodashExplainer\n", "from aix360.datasets.heloc_dataset import HELOCDataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load HELOC dataset and show sample applicants" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using Heloc dataset: /Users/vijay/AIX360-TEST/AIX360/aix360/datasets/../data/heloc_data/heloc_dataset.csv\n", "Size of HELOC dataset: (10459, 24)\n", "Number of \"Good\" applicants: 5000\n", "Number of \"Bad\" applicants: 5459\n", "Sample Applicants:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789
ExternalRiskEstimate55616766815954685961
MSinceOldestTradeOpen14458661693331378814832479
MSinceMostRecentTradeOpen4155127117724
AverageMInFile8441247313278376513836
NumSatisfactoryTrades202928123125172419
NumTrades60Ever2DerogPubRec3401000000
NumTrades90Ever2DerogPubRec0401000000
PercentTradesNeverDelq83100100931009192838595
MSinceMostRecentDelq2-7-776-7193155
MaxDelq2PublicRecLast12M3076744644
MaxDelqEver5886866666
NumTotalTrades237930123226182719
NumTradesOpeninLast12M1043013113
PercentInstallTrades43674457254758442626
MSinceMostRecentInqexcl7days0000000000
NumInqLast6M0045104016
NumInqLast6Mexcl7days0044104016
NetFractionRevolvingBurden3305372516289286831
NetFractionInstallBurden-8-8668389937648-886
NumRevolvingTradesWBalance80463127275
NumInstallTradesWBalance1-824147213
NumBank2NatlTradesWHighUtilization1-813032231
PercentTradesWBalance69086918094100409062
RiskPerformanceBadBadBadBadBadBadGoodGoodBadBad
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9\n", "ExternalRiskEstimate 55 61 67 66 81 59 54 68 59 61\n", "MSinceOldestTradeOpen 144 58 66 169 333 137 88 148 324 79\n", "MSinceMostRecentTradeOpen 4 15 5 1 27 11 7 7 2 4\n", "AverageMInFile 84 41 24 73 132 78 37 65 138 36\n", "NumSatisfactoryTrades 20 2 9 28 12 31 25 17 24 19\n", "NumTrades60Ever2DerogPubRec 3 4 0 1 0 0 0 0 0 0\n", "NumTrades90Ever2DerogPubRec 0 4 0 1 0 0 0 0 0 0\n", "PercentTradesNeverDelq 83 100 100 93 100 91 92 83 85 95\n", "MSinceMostRecentDelq 2 -7 -7 76 -7 1 9 31 5 5\n", "MaxDelq2PublicRecLast12M 3 0 7 6 7 4 4 6 4 4\n", "MaxDelqEver 5 8 8 6 8 6 6 6 6 6\n", "NumTotalTrades 23 7 9 30 12 32 26 18 27 19\n", "NumTradesOpeninLast12M 1 0 4 3 0 1 3 1 1 3\n", "PercentInstallTrades 43 67 44 57 25 47 58 44 26 26\n", "MSinceMostRecentInqexcl7days 0 0 0 0 0 0 0 0 0 0\n", "NumInqLast6M 0 0 4 5 1 0 4 0 1 6\n", "NumInqLast6Mexcl7days 0 0 4 4 1 0 4 0 1 6\n", "NetFractionRevolvingBurden 33 0 53 72 51 62 89 28 68 31\n", "NetFractionInstallBurden -8 -8 66 83 89 93 76 48 -8 86\n", "NumRevolvingTradesWBalance 8 0 4 6 3 12 7 2 7 5\n", "NumInstallTradesWBalance 1 -8 2 4 1 4 7 2 1 3\n", "NumBank2NatlTradesWHighUtilization 1 -8 1 3 0 3 2 2 3 1\n", "PercentTradesWBalance 69 0 86 91 80 94 100 40 90 62\n", "RiskPerformance Bad Bad Bad Bad Bad Bad Good Good Bad Bad" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "heloc = HELOCDataset()\n", "df = heloc.dataframe()\n", "pd.set_option('display.max_rows', 500)\n", "pd.set_option('display.max_columns', 24)\n", "pd.set_option('display.width', 1000)\n", "print(\"Size of HELOC dataset:\", df.shape)\n", "print(\"Number of \\\"Good\\\" applicants:\", np.sum(df['RiskPerformance']=='Good'))\n", "print(\"Number of \\\"Bad\\\" applicants:\", np.sum(df['RiskPerformance']=='Bad'))\n", "print(\"Sample Applicants:\")\n", "df.head(10).transpose()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distribution of ExternalRiskEstimate and NumSatisfactoryTrades columns:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot (example) distributions for two features\n", "print(\"Distribution of ExternalRiskEstimate and NumSatisfactoryTrades columns:\")\n", "hist = df.hist(column=['ExternalRiskEstimate', 'NumSatisfactoryTrades'], bins=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Step 1: Process and Normalize HELOC dataset for training\n", "\n", "We will first process the HELOC dataset before using it to train an NN model that can predict the\n", "target variable RiskPerformance. The HELOC dataset is a tabular dataset with numerical values. However, some of the values are negative and need to be filtered. The processed data is stored in the file heloc.npz for easy access. The dataset is also normalized for training.\n", "\n", "The data processing and the type of model built in this case is different from the Data Scientist persona described above where rule based methods are showcased. This is the reason for going through these steps again for the Loan Officer persona." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### a. Process the dataset" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# Clean data and split dataset into train/test\n", "(Data, x_train, x_test, y_train_b, y_test_b) = heloc.split()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "#### b. Normalize the dataset" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "Z = np.vstack((x_train, x_test))\n", "Zmax = np.max(Z, axis=0)\n", "Zmin = np.min(Z, axis=0)\n", "\n", "#normalize an array of samples to range [-0.5, 0.5]\n", "def normalize(V):\n", " VN = (V - Zmin)/(Zmax - Zmin)\n", " VN = VN - 0.5\n", " return(VN)\n", " \n", "# rescale a sample to recover original values for normalized values. \n", "def rescale(X):\n", " return(np.multiply ( X + 0.5, (Zmax - Zmin) ) + Zmin)\n", "\n", "N = normalize(Z)\n", "xn_train = N[0:x_train.shape[0], :]\n", "xn_test = N[x_train.shape[0]:, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Step 2. Define and train a NN classifier\n", "\n", "Let us now build a loan approval model based on the HELOC dataset.\n", "\n", "#### a. Define NN architecture\n", "We now define the architecture of a 2-layer neural network classifier whose predictions we will try to interpret. " ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# nn with no softmax\n", "def nn_small():\n", " model = Sequential()\n", " model.add(Dense(10, input_dim=23, kernel_initializer='normal', activation='relu'))\n", " model.add(Dense(2, kernel_initializer='normal')) \n", " return model " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### b. Train the NN" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From :9: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "\n", "Future major versions of TensorFlow will allow gradients to flow\n", "into the labels input on backprop by default.\n", "\n", "See `tf.nn.softmax_cross_entropy_with_logits_v2`.\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From :9: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "\n", "Future major versions of TensorFlow will allow gradients to flow\n", "into the labels input on backprop by default.\n", "\n", "See `tf.nn.softmax_cross_entropy_with_logits_v2`.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_1\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_1 (Dense) (None, 10) 240 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 2) 22 \n", "=================================================================\n", "Total params: 262\n", "Trainable params: 262\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "WARNING:tensorflow:From /Users/vijay/opt/anaconda3/envs/aix360/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:422: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/opt/anaconda3/envs/aix360/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:422: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train accuracy: 0.7387545704841614\n", "Test accuracy: 0.7224473357200623\n" ] } ], "source": [ "# Set random seeds for repeatability\n", "np.random.seed(1) \n", "tf.set_random_seed(2) \n", "\n", "class_names = ['Bad', 'Good']\n", "\n", "# loss function\n", "def fn(correct, predicted):\n", " return tf.nn.softmax_cross_entropy_with_logits(labels=correct, logits=predicted)\n", "\n", "# compile and print model summary\n", "nn = nn_small()\n", "nn.compile(loss=fn, optimizer='adam', metrics=['accuracy'])\n", "nn.summary()\n", "\n", "\n", "# train model or load a trained model\n", "TRAIN_MODEL = False\n", "\n", "if (TRAIN_MODEL): \n", " nn.fit(xn_train, y_train_b, batch_size=128, epochs=500, verbose=1, shuffle=False)\n", " nn.save_weights(\"heloc_nnsmall.h5\") \n", "else: \n", " nn.load_weights(\"heloc_nnsmall.h5\")\n", " \n", "\n", "# evaluate model accuracy \n", "score = nn.evaluate(xn_train, y_train_b, verbose=0) #Compute training set accuracy\n", "#print('Train loss:', score[0])\n", "print('Train accuracy:', score[1])\n", "\n", "score = nn.evaluate(xn_test, y_test_b, verbose=0) #Compute test set accuracy\n", "#print('Test loss:', score[0])\n", "print('Test accuracy:', score[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Step 3: Obtain similar samples as explanations for a HELOC applicant predicted as \"Good\" (Example 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### a. Normalize the data and chose a particular applicant, whose profile is displayed below." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "p_train = nn.predict_classes(xn_train) # Use trained neural network to predict train points\n", "p_train = p_train.reshape((p_train.shape[0],1))\n", "\n", "z_train = np.hstack((xn_train, p_train)) # Store (normalized) instances that were predicted as Good\n", "z_train_good = z_train[z_train[:,-1]==1, :]\n", "\n", "zun_train = np.hstack((x_train, p_train)) # Store (unnormalized) instances that were predicted as Good \n", "zun_train_good = zun_train[zun_train[:,-1]==1, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us now consider applicant 8 whose loan was approved. Note that this applicant was also considered for the contrastive explainer, however, we now justify the approved status in a different manner using prototypical examples, which is arguably a better explanation for a bank employee." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chosen Sample: 8\n", "Prediction made by the model: Good\n", "Prediction probabilities: [[-0.1889221 0.29527372]]\n", "\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0
ExternalRiskEstimate82
MSinceOldestTradeOpen280
MSinceMostRecentTradeOpen13
AverageMInFile102
NumSatisfactoryTrades22
NumTrades60Ever2DerogPubRec0
NumTrades90Ever2DerogPubRec0
PercentTradesNeverDelq91
MSinceMostRecentDelq26
MaxDelq2PublicRecLast12M6
MaxDelqEver6
NumTotalTrades23
NumTradesOpeninLast12M0
PercentInstallTrades9
MSinceMostRecentInqexcl7days0
NumInqLast6M0
NumInqLast6Mexcl7days0
NetFractionRevolvingBurden3
NetFractionInstallBurden0
NumRevolvingTradesWBalance4
NumInstallTradesWBalance1
NumBank2NatlTradesWHighUtilization1
PercentTradesWBalance42
RiskPerformanceGood
\n", "
" ], "text/plain": [ " 0\n", "ExternalRiskEstimate 82\n", "MSinceOldestTradeOpen 280\n", "MSinceMostRecentTradeOpen 13\n", "AverageMInFile 102\n", "NumSatisfactoryTrades 22\n", "NumTrades60Ever2DerogPubRec 0\n", "NumTrades90Ever2DerogPubRec 0\n", "PercentTradesNeverDelq 91\n", "MSinceMostRecentDelq 26\n", "MaxDelq2PublicRecLast12M 6\n", "MaxDelqEver 6\n", "NumTotalTrades 23\n", "NumTradesOpeninLast12M 0\n", "PercentInstallTrades 9\n", "MSinceMostRecentInqexcl7days 0\n", "NumInqLast6M 0\n", "NumInqLast6Mexcl7days 0\n", "NetFractionRevolvingBurden 3\n", "NetFractionInstallBurden 0\n", "NumRevolvingTradesWBalance 4\n", "NumInstallTradesWBalance 1\n", "NumBank2NatlTradesWHighUtilization 1\n", "PercentTradesWBalance 42\n", "RiskPerformance Good" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = 8\n", "\n", "X = xn_test[idx].reshape((1,) + xn_test[idx].shape)\n", "\n", "print(\"Chosen Sample:\", idx)\n", "print(\"Prediction made by the model:\", class_names[np.argmax(nn.predict_proba(X))])\n", "print(\"Prediction probabilities:\", nn.predict_proba(X))\n", "print(\"\")\n", "\n", "# attach the prediction made by the model to X\n", "X = np.hstack((X, nn.predict_classes(X).reshape((1,1))))\n", "\n", "Xun = x_test[idx].reshape((1,) + x_test[idx].shape) \n", "dfx = pd.DataFrame.from_records(Xun.astype('double')) # Create dataframe with original feature values\n", "dfx[23] = class_names[int(X[0, -1])]\n", "dfx.columns = df.columns\n", "dfx.transpose()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### b. Find similar applicants predicted as \"good\" using the protodash explainer. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "explainer = ProtodashExplainer()\n", "(W, S, setValues) = explainer.explain(X, z_train_good, m=5) # Return weights W, Prototypes S and objective function values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### c. Display similar applicant user profiles and the extent to which they are similar to the chosen applicant as indicated by the last row in the table below labelled as \"Weight\"." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234
ExternalRiskEstimate8589778373
MSinceOldestTradeOpen223379338789230
MSinceMostRecentTradeOpen13156265
AverageMInFile8725710910289
NumSatisfactoryTrades233164161
NumTrades60Ever2DerogPubRec00200
NumTrades90Ever2DerogPubRec00200
PercentTradesNeverDelq9110090100100
MSinceMostRecentDelq2606500
MaxDelq2PublicRecLast12M67676
MaxDelqEver68287
NumTotalTrades263214137
NumTradesOpeninLast12M00113
PercentInstallTrades933141718
MSinceMostRecentInqexcl7days10000
NumInqLast6M10112
NumInqLast6Mexcl7days10102
NetFractionRevolvingBurden402159
NetFractionInstallBurden000072
NumRevolvingTradesWBalance40139
NumInstallTradesWBalance10101
NumBank2NatlTradesWHighUtilization00017
PercentTradesWBalance500222353
RiskPerformanceGoodGoodGoodGoodGood
Weight0.7302290.06905690.09786030.04980520.0530484
\n", "
" ], "text/plain": [ " 0 1 2 3 4\n", "ExternalRiskEstimate 85 89 77 83 73\n", "MSinceOldestTradeOpen 223 379 338 789 230\n", "MSinceMostRecentTradeOpen 13 156 2 6 5\n", "AverageMInFile 87 257 109 102 89\n", "NumSatisfactoryTrades 23 3 16 41 61\n", "NumTrades60Ever2DerogPubRec 0 0 2 0 0\n", "NumTrades90Ever2DerogPubRec 0 0 2 0 0\n", "PercentTradesNeverDelq 91 100 90 100 100\n", "MSinceMostRecentDelq 26 0 65 0 0\n", "MaxDelq2PublicRecLast12M 6 7 6 7 6\n", "MaxDelqEver 6 8 2 8 7\n", "NumTotalTrades 26 3 21 41 37\n", "NumTradesOpeninLast12M 0 0 1 1 3\n", "PercentInstallTrades 9 33 14 17 18\n", "MSinceMostRecentInqexcl7days 1 0 0 0 0\n", "NumInqLast6M 1 0 1 1 2\n", "NumInqLast6Mexcl7days 1 0 1 0 2\n", "NetFractionRevolvingBurden 4 0 2 1 59\n", "NetFractionInstallBurden 0 0 0 0 72\n", "NumRevolvingTradesWBalance 4 0 1 3 9\n", "NumInstallTradesWBalance 1 0 1 0 1\n", "NumBank2NatlTradesWHighUtilization 0 0 0 1 7\n", "PercentTradesWBalance 50 0 22 23 53\n", "RiskPerformance Good Good Good Good Good\n", "Weight 0.730229 0.0690569 0.0978603 0.0498052 0.0530484" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs = pd.DataFrame.from_records(zun_train_good[S, 0:-1].astype('double'))\n", "RP=[]\n", "for i in range(S.shape[0]):\n", " RP.append(class_names[int(z_train_good[S[i], -1])]) # Append class names\n", "dfs[23] = RP\n", "dfs.columns = df.columns \n", "dfs[\"Weight\"] = np.around(W, 5)/np.sum(np.around(W, 5)) # Calculate normalized importance weights\n", "dfs.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### d. Compute how similar a feature of a prototypical user is to the chosen applicant.\n", "The more similar the feature of prototypical user is to the applicant, the closer its weight is to 1. We can see below that several features for prototypes are quite similar to the chosen applicant. A human friendly explanation is provided thereafter." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234
ExternalRiskEstimate0.590.290.420.840.21
MSinceOldestTradeOpen0.760.620.760.090.79
MSinceMostRecentTradeOpen1.000.090.830.890.87
AverageMInFile0.790.090.901.000.82
NumSatisfactoryTrades0.950.390.740.390.15
NumTrades60Ever2DerogPubRec1.001.000.081.001.00
NumTrades90Ever2DerogPubRec1.001.000.081.001.00
PercentTradesNeverDelq1.000.150.810.150.15
MSinceMostRecentDelq1.000.360.220.360.36
MaxDelq2PublicRecLast12M1.000.131.000.131.00
MaxDelqEver1.000.410.170.410.64
NumTotalTrades0.800.230.860.260.35
NumTradesOpeninLast12M1.001.000.400.400.06
PercentInstallTrades1.000.050.540.370.33
MSinceMostRecentInqexcl7days0.081.001.001.001.00
NumInqLast6M0.211.000.210.210.04
NumInqLast6Mexcl7days0.261.000.261.000.07
NetFractionRevolvingBurden0.960.880.960.920.09
NetFractionInstallBurden1.001.001.001.000.08
NumRevolvingTradesWBalance1.000.280.380.730.20
NumInstallTradesWBalance1.000.131.000.131.00
NumBank2NatlTradesWHighUtilization0.690.690.691.000.11
PercentTradesWBalance0.670.120.360.380.57
\n", "
" ], "text/plain": [ " 0 1 2 3 4\n", "ExternalRiskEstimate 0.59 0.29 0.42 0.84 0.21\n", "MSinceOldestTradeOpen 0.76 0.62 0.76 0.09 0.79\n", "MSinceMostRecentTradeOpen 1.00 0.09 0.83 0.89 0.87\n", "AverageMInFile 0.79 0.09 0.90 1.00 0.82\n", "NumSatisfactoryTrades 0.95 0.39 0.74 0.39 0.15\n", "NumTrades60Ever2DerogPubRec 1.00 1.00 0.08 1.00 1.00\n", "NumTrades90Ever2DerogPubRec 1.00 1.00 0.08 1.00 1.00\n", "PercentTradesNeverDelq 1.00 0.15 0.81 0.15 0.15\n", "MSinceMostRecentDelq 1.00 0.36 0.22 0.36 0.36\n", "MaxDelq2PublicRecLast12M 1.00 0.13 1.00 0.13 1.00\n", "MaxDelqEver 1.00 0.41 0.17 0.41 0.64\n", "NumTotalTrades 0.80 0.23 0.86 0.26 0.35\n", "NumTradesOpeninLast12M 1.00 1.00 0.40 0.40 0.06\n", "PercentInstallTrades 1.00 0.05 0.54 0.37 0.33\n", "MSinceMostRecentInqexcl7days 0.08 1.00 1.00 1.00 1.00\n", "NumInqLast6M 0.21 1.00 0.21 0.21 0.04\n", "NumInqLast6Mexcl7days 0.26 1.00 0.26 1.00 0.07\n", "NetFractionRevolvingBurden 0.96 0.88 0.96 0.92 0.09\n", "NetFractionInstallBurden 1.00 1.00 1.00 1.00 0.08\n", "NumRevolvingTradesWBalance 1.00 0.28 0.38 0.73 0.20\n", "NumInstallTradesWBalance 1.00 0.13 1.00 0.13 1.00\n", "NumBank2NatlTradesWHighUtilization 0.69 0.69 0.69 1.00 0.11\n", "PercentTradesWBalance 0.67 0.12 0.36 0.38 0.57" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z = z_train_good[S, 0:-1] # Store chosen prototypes\n", "eps = 1e-10 # Small constant defined to eliminate divide-by-zero errors\n", "fwt = np.zeros(z.shape)\n", "for i in range (z.shape[0]):\n", " for j in range(z.shape[1]):\n", " fwt[i, j] = np.exp(-1 * abs(X[0, j] - z[i,j])/(np.std(z[:, j])+eps)) # Compute feature similarity in [0,1]\n", " \n", "# move wts to a dataframe to display\n", "dfw = pd.DataFrame.from_records(np.around(fwt.astype('double'), 2))\n", "dfw.columns = df.columns[:-1]\n", "dfw.transpose() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Explanation:\n", "The above table depicts the five closest user profiles to the chosen applicant. Based on importance weight outputted by the method, we see that the prototype under column zero is the most representative user profile by far. This is (intuitively) confirmed from the feature similarity table above where more than 50% of the features (12 out of 23) of this prototype are identical to that of the chosen user whose prediction we want to explain. Also, the bank employee looking at the prototypical users and their features surmises that the approved applicant belongs to a group of approved users that have practically no debt (NetFractionInstallBurden). This justification gives the employee more confidence in approving the users application.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Example 2. Obtaining similar samples as explanations for a HELOC applicant predicted as \"Bad\". \n", "We now consider a user 1272 whose loan was denied. We obtained a contrastive explanation for this user before. Similar to user 8, we now obtain exemplar based explanations for this user to help the bank employee understand the reasons for the rejection. Steps similar to example 1 are followed in this case too, where we first process the data, obtain prototypes and their importance weights, and finally showcase how similar the features are of these prototypes to the user we want to explain." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### a. Normalize the data and chose a particular applicant, whose profile is displayed below." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "z_train_bad = z_train[z_train[:,-1]==0, :]\n", "zun_train_bad = zun_train[zun_train[:,-1]==0, :]" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chosen Sample: 1272\n", "Prediction made by the model: Bad\n", "Prediction probabilities: [[ 0.40682057 -0.391679 ]]\n", "\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0
ExternalRiskEstimate65
MSinceOldestTradeOpen256
MSinceMostRecentTradeOpen15
AverageMInFile52
NumSatisfactoryTrades17
NumTrades60Ever2DerogPubRec0
NumTrades90Ever2DerogPubRec0
PercentTradesNeverDelq100
MSinceMostRecentDelq0
MaxDelq2PublicRecLast12M7
MaxDelqEver8
NumTotalTrades19
NumTradesOpeninLast12M0
PercentInstallTrades29
MSinceMostRecentInqexcl7days2
NumInqLast6M5
NumInqLast6Mexcl7days5
NetFractionRevolvingBurden57
NetFractionInstallBurden79
NumRevolvingTradesWBalance2
NumInstallTradesWBalance4
NumBank2NatlTradesWHighUtilization2
PercentTradesWBalance60
RiskPerformanceBad
\n", "
" ], "text/plain": [ " 0\n", "ExternalRiskEstimate 65\n", "MSinceOldestTradeOpen 256\n", "MSinceMostRecentTradeOpen 15\n", "AverageMInFile 52\n", "NumSatisfactoryTrades 17\n", "NumTrades60Ever2DerogPubRec 0\n", "NumTrades90Ever2DerogPubRec 0\n", "PercentTradesNeverDelq 100\n", "MSinceMostRecentDelq 0\n", "MaxDelq2PublicRecLast12M 7\n", "MaxDelqEver 8\n", "NumTotalTrades 19\n", "NumTradesOpeninLast12M 0\n", "PercentInstallTrades 29\n", "MSinceMostRecentInqexcl7days 2\n", "NumInqLast6M 5\n", "NumInqLast6Mexcl7days 5\n", "NetFractionRevolvingBurden 57\n", "NetFractionInstallBurden 79\n", "NumRevolvingTradesWBalance 2\n", "NumInstallTradesWBalance 4\n", "NumBank2NatlTradesWHighUtilization 2\n", "PercentTradesWBalance 60\n", "RiskPerformance Bad" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = 1272 #another user to try 2385\n", "\n", "X = xn_test[idx].reshape((1,) + xn_test[idx].shape)\n", "print(\"Chosen Sample:\", idx)\n", "print(\"Prediction made by the model:\", class_names[np.argmax(nn.predict_proba(X))])\n", "print(\"Prediction probabilities:\", nn.predict_proba(X))\n", "print(\"\")\n", "\n", "X = np.hstack((X, nn.predict_classes(X).reshape((1,1))))\n", "\n", "# move samples to a dataframe to display\n", "Xun = x_test[idx].reshape((1,) + x_test[idx].shape)\n", "dfx = pd.DataFrame.from_records(Xun.astype('double'))\n", "dfx[23] = class_names[int(X[0, -1])]\n", "dfx.columns = df.columns\n", "dfx.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### b. Find similar applicants predicted as \"bad\" using the protodash explainer. " ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "(W, S, setValues) = explainer.explain(X, z_train_bad, m=5) # Return weights W, Prototypes S and objective function values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### c. Display similar applicant user profiles and the extent to which they are similar to the chosen applicant as indicated by the last row in the table below labelled as \"Weight\"." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234
ExternalRiskEstimate736164550
MSinceOldestTradeOpen19112585194383
MSinceMostRecentTradeOpen177026383
AverageMInFile533213100383
NumSatisfactoryTrades1952181
NumTrades60Ever2DerogPubRec01001
NumTrades90Ever2DerogPubRec01001
PercentTradesNeverDelq10010010084100
MSinceMostRecentDelq00010
MaxDelq2PublicRecLast12M77746
MaxDelqEver88868
NumTotalTrades2069111
NumTradesOpeninLast12M03800
PercentInstallTrades25603342100
MSinceMostRecentInqexcl7days000230
NumInqLast6M016601
NumInqLast6Mexcl7days016601
NetFractionRevolvingBurden3123265840
NetFractionInstallBurden78830480
NumRevolvingTradesWBalance41250
NumInstallTradesWBalance33330
NumBank2NatlTradesWHighUtilization11130
PercentTradesWBalance54100711000
RiskPerformanceBadBadBadBadBad
Weight0.7817730.08225250.05739460.06428440.0142955
\n", "
" ], "text/plain": [ " 0 1 2 3 4\n", "ExternalRiskEstimate 73 61 64 55 0\n", "MSinceOldestTradeOpen 191 125 85 194 383\n", "MSinceMostRecentTradeOpen 17 7 0 26 383\n", "AverageMInFile 53 32 13 100 383\n", "NumSatisfactoryTrades 19 5 2 18 1\n", "NumTrades60Ever2DerogPubRec 0 1 0 0 1\n", "NumTrades90Ever2DerogPubRec 0 1 0 0 1\n", "PercentTradesNeverDelq 100 100 100 84 100\n", "MSinceMostRecentDelq 0 0 0 1 0\n", "MaxDelq2PublicRecLast12M 7 7 7 4 6\n", "MaxDelqEver 8 8 8 6 8\n", "NumTotalTrades 20 6 9 11 1\n", "NumTradesOpeninLast12M 0 3 8 0 0\n", "PercentInstallTrades 25 60 33 42 100\n", "MSinceMostRecentInqexcl7days 0 0 0 23 0\n", "NumInqLast6M 0 1 66 0 1\n", "NumInqLast6Mexcl7days 0 1 66 0 1\n", "NetFractionRevolvingBurden 31 232 65 84 0\n", "NetFractionInstallBurden 78 83 0 48 0\n", "NumRevolvingTradesWBalance 4 1 2 5 0\n", "NumInstallTradesWBalance 3 3 3 3 0\n", "NumBank2NatlTradesWHighUtilization 1 1 1 3 0\n", "PercentTradesWBalance 54 100 71 100 0\n", "RiskPerformance Bad Bad Bad Bad Bad\n", "Weight 0.781773 0.0822525 0.0573946 0.0642844 0.0142955" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# move samples to a dataframe to display\n", "dfs = pd.DataFrame.from_records(zun_train_bad[S, 0:-1].astype('double'))\n", "RP=[]\n", "for i in range(S.shape[0]):\n", " RP.append(class_names[int(z_train_bad[S[i], -1])]) # Append class names\n", "dfs[23] = RP\n", "dfs.columns = df.columns \n", "dfs[\"Weight\"] = np.around(W, 5)/np.sum(np.around(W, 5)) # Compute normalized importance weights for prototypes\n", "dfs.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### d. Compute how similar a feature of a prototypical user is to the chosen applicant.\n", "The more similar the feature of prototypical user is to the applicant, the closer its weight is to 1. We can see below that several features for prototypes are quite similar to the chosen applicant. Following this table we provide human friendly explanation based on this table." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234
ExternalRiskEstimate0.730.860.960.680.08
MSinceOldestTradeOpen0.530.280.190.550.29
MSinceMostRecentTradeOpen0.990.950.900.930.08
AverageMInFile0.990.860.750.700.09
NumSatisfactoryTrades0.780.220.150.880.13
NumTrades60Ever2DerogPubRec1.000.131.001.000.13
NumTrades90Ever2DerogPubRec1.000.131.001.000.13
PercentTradesNeverDelq1.001.001.000.081.00
MSinceMostRecentDelq1.001.001.000.081.00
MaxDelq2PublicRecLast12M1.001.001.000.080.42
MaxDelqEver1.001.001.000.081.00
NumTotalTrades0.850.130.200.280.06
NumTradesOpeninLast12M1.000.380.081.001.00
PercentInstallTrades0.860.310.860.610.07
MSinceMostRecentInqexcl7days0.800.800.800.100.80
NumInqLast6M0.830.860.100.830.86
NumInqLast6Mexcl7days0.830.860.100.830.86
NetFractionRevolvingBurden0.720.110.910.710.49
NetFractionInstallBurden0.970.900.110.420.11
NumRevolvingTradesWBalance0.340.581.000.200.34
NumInstallTradesWBalance0.430.430.430.430.04
NumBank2NatlTradesWHighUtilization0.360.360.360.360.13
PercentTradesWBalance0.850.340.740.340.20
\n", "
" ], "text/plain": [ " 0 1 2 3 4\n", "ExternalRiskEstimate 0.73 0.86 0.96 0.68 0.08\n", "MSinceOldestTradeOpen 0.53 0.28 0.19 0.55 0.29\n", "MSinceMostRecentTradeOpen 0.99 0.95 0.90 0.93 0.08\n", "AverageMInFile 0.99 0.86 0.75 0.70 0.09\n", "NumSatisfactoryTrades 0.78 0.22 0.15 0.88 0.13\n", "NumTrades60Ever2DerogPubRec 1.00 0.13 1.00 1.00 0.13\n", "NumTrades90Ever2DerogPubRec 1.00 0.13 1.00 1.00 0.13\n", "PercentTradesNeverDelq 1.00 1.00 1.00 0.08 1.00\n", "MSinceMostRecentDelq 1.00 1.00 1.00 0.08 1.00\n", "MaxDelq2PublicRecLast12M 1.00 1.00 1.00 0.08 0.42\n", "MaxDelqEver 1.00 1.00 1.00 0.08 1.00\n", "NumTotalTrades 0.85 0.13 0.20 0.28 0.06\n", "NumTradesOpeninLast12M 1.00 0.38 0.08 1.00 1.00\n", "PercentInstallTrades 0.86 0.31 0.86 0.61 0.07\n", "MSinceMostRecentInqexcl7days 0.80 0.80 0.80 0.10 0.80\n", "NumInqLast6M 0.83 0.86 0.10 0.83 0.86\n", "NumInqLast6Mexcl7days 0.83 0.86 0.10 0.83 0.86\n", "NetFractionRevolvingBurden 0.72 0.11 0.91 0.71 0.49\n", "NetFractionInstallBurden 0.97 0.90 0.11 0.42 0.11\n", "NumRevolvingTradesWBalance 0.34 0.58 1.00 0.20 0.34\n", "NumInstallTradesWBalance 0.43 0.43 0.43 0.43 0.04\n", "NumBank2NatlTradesWHighUtilization 0.36 0.36 0.36 0.36 0.13\n", "PercentTradesWBalance 0.85 0.34 0.74 0.34 0.20" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z = z_train_bad[S, 0:-1] # Store the prototypes\n", "eps = 1e-10 # Small constant to guard against divide by zero errors\n", "fwt = np.zeros(z.shape)\n", "for i in range (z.shape[0]): # Compute feature similarity for each prototype\n", " for j in range(z.shape[1]):\n", " fwt[i, j] = np.exp(-1 * abs(X[0, j] - z[i,j])/(np.std(z[:, j])+eps))\n", " \n", "# move wts to a dataframe to display\n", "dfw = pd.DataFrame.from_records(np.around(fwt.astype('double'), 2))\n", "dfw.columns = df.columns[:-1]\n", "dfw.transpose() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Explanation:\n", "Here again, the above table depicts the five closest user profiles to the chosen applicant. Based on importance weight outputted by the method we see that the prototype under column zero is the most representative user profile by far. This is (intuitively) confirmed from the feature similarity table above where 10 features out of 23 of this prototype are highly similar (>0.9) to that of the user we want to explain. Also the bank employee can see that the applicant belongs to a group of rejected applicants with similar deliquency behavior. Realizing that the user also poses similar risk as these other applicants whose loan was rejected, the employee takes the more conservative decision of rejecting the users application as well." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 4. Customer: Contrastive explanations for HELOC Use Case\n", "\n", "We now demonstrate how to compute contrastive explanations using AIX360 and how such explanations can help home owners understand the decisions made by AI models that approve or reject their HELOC applications. \n", "\n", "Typically, home owners would like to understand why they do not qualify for a line of credit and if so what changes in their application would qualify them. On the other hand, if they qualified, they might want to know what factors led to the approval of their application. \n", "\n", "In this context, contrastive explanations provide information to applicants about what minimal changes to their profile would have changed the decision of the AI model from reject to accept or vice-versa (_pertinent negatives_). For example, increasing the number of satisfactory trades to a certain value may have led to the acceptance of the application everything else being the same. \n", "\n", "The method presented here also highlights a minimal set of features and their values that would still maintain the original decision (_pertinent positives_). For example, for an applicant whose HELOC application was approved, the \n", "explanation may say that even if the number of satisfactory trades was reduced to a lower number, the loan would have still gotten through.\n", "\n", "Additionally, organizations (Banks, financial institutions, etc.) would like to understand trends in the behavior of their AI models in approving loan applications, which could be done by studying contrastive explanations for individuals whose loans were either accepted or rejected. Looking at the aggregate statistics of pertinent positives for approved applicants the organization can get insight into what minimal set of features and their values play an important role in acceptances. While studying the aggregate statistics of pertinent negatives the organization can get insight into features that could change the status of rejected applicants and potentially uncover ways that an applicant may game the system by changing potentially non-important features that could alter the models outcome. \n", "\n", "The contrastive explanations in AIX360 are implemented using the algorithm developed in the following work:\n", "###### [Explanations based on the Missing: Towards Contrastive Explanations with Pertinent Negatives](https://arxiv.org/abs/1802.07623)\n", "\n", "We now provide a brief overview of the method. As mentioned above the algorithm outputs a contrastive explanation which consists of two parts: a) pertinent negatives (PNs) and b) pertinent positives (PPs). PNs identify a minimal set of features which if altered would change the classification of the original input. For example, in the loan case if a person's credit score is increased their loan application status may change from reject to accept. The manner in which the method accomplishes this is by optimizing a change in the prediction probability loss while enforcing an elastic norm constraint that results in minimal change of features and their values. Optionally, an auto-encoder may also be used to force these minimal changes to produce realistic PNs. PPs on the other hand identify a minimal set of features and their values that are sufficient to yield the original input's classification. For example, an individual's loan may still be accepted if the salary was 50K as opposed to 100K. Here again we have an elastic norm term so that the amount of information needed is minimal, however, the first loss term in this case tries to make the original input's class to be the winning class. For a more in-depth discussion, please refer to the above work.\n", "\n", "\n", "The three main steps to obtain a contrastive explanation are shown below. The first two steps are more about processing the data and building an AI model while the third step computes the actual explanation. \n", "\n", " [Step 1. Process and Normalize HELOC dataset for training](#c1)
\n", " [Step 2. Define and train a NN classifier](#c2)
\n", " [Step 3. Compute contrastive explanations for a few applicants](#c3)
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load HELOC dataset and show sample applicants" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using Heloc dataset: /Users/vijay/AIX360-TEST/AIX360/aix360/datasets/../data/heloc_data/heloc_dataset.csv\n", "Size of HELOC dataset: (10459, 24)\n", "Number of \"Good\" applicants: 5000\n", "Number of \"Bad\" applicants: 5459\n", "Sample Applicants:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789
ExternalRiskEstimate55616766815954685961
MSinceOldestTradeOpen14458661693331378814832479
MSinceMostRecentTradeOpen4155127117724
AverageMInFile8441247313278376513836
NumSatisfactoryTrades202928123125172419
NumTrades60Ever2DerogPubRec3401000000
NumTrades90Ever2DerogPubRec0401000000
PercentTradesNeverDelq83100100931009192838595
MSinceMostRecentDelq2-7-776-7193155
MaxDelq2PublicRecLast12M3076744644
MaxDelqEver5886866666
NumTotalTrades237930123226182719
NumTradesOpeninLast12M1043013113
PercentInstallTrades43674457254758442626
MSinceMostRecentInqexcl7days0000000000
NumInqLast6M0045104016
NumInqLast6Mexcl7days0044104016
NetFractionRevolvingBurden3305372516289286831
NetFractionInstallBurden-8-8668389937648-886
NumRevolvingTradesWBalance80463127275
NumInstallTradesWBalance1-824147213
NumBank2NatlTradesWHighUtilization1-813032231
PercentTradesWBalance69086918094100409062
RiskPerformanceBadBadBadBadBadBadGoodGoodBadBad
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9\n", "ExternalRiskEstimate 55 61 67 66 81 59 54 68 59 61\n", "MSinceOldestTradeOpen 144 58 66 169 333 137 88 148 324 79\n", "MSinceMostRecentTradeOpen 4 15 5 1 27 11 7 7 2 4\n", "AverageMInFile 84 41 24 73 132 78 37 65 138 36\n", "NumSatisfactoryTrades 20 2 9 28 12 31 25 17 24 19\n", "NumTrades60Ever2DerogPubRec 3 4 0 1 0 0 0 0 0 0\n", "NumTrades90Ever2DerogPubRec 0 4 0 1 0 0 0 0 0 0\n", "PercentTradesNeverDelq 83 100 100 93 100 91 92 83 85 95\n", "MSinceMostRecentDelq 2 -7 -7 76 -7 1 9 31 5 5\n", "MaxDelq2PublicRecLast12M 3 0 7 6 7 4 4 6 4 4\n", "MaxDelqEver 5 8 8 6 8 6 6 6 6 6\n", "NumTotalTrades 23 7 9 30 12 32 26 18 27 19\n", "NumTradesOpeninLast12M 1 0 4 3 0 1 3 1 1 3\n", "PercentInstallTrades 43 67 44 57 25 47 58 44 26 26\n", "MSinceMostRecentInqexcl7days 0 0 0 0 0 0 0 0 0 0\n", "NumInqLast6M 0 0 4 5 1 0 4 0 1 6\n", "NumInqLast6Mexcl7days 0 0 4 4 1 0 4 0 1 6\n", "NetFractionRevolvingBurden 33 0 53 72 51 62 89 28 68 31\n", "NetFractionInstallBurden -8 -8 66 83 89 93 76 48 -8 86\n", "NumRevolvingTradesWBalance 8 0 4 6 3 12 7 2 7 5\n", "NumInstallTradesWBalance 1 -8 2 4 1 4 7 2 1 3\n", "NumBank2NatlTradesWHighUtilization 1 -8 1 3 0 3 2 2 3 1\n", "PercentTradesWBalance 69 0 86 91 80 94 100 40 90 62\n", "RiskPerformance Bad Bad Bad Bad Bad Bad Good Good Bad Bad" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "heloc = HELOCDataset()\n", "df = heloc.dataframe()\n", "pd.set_option('display.max_rows', 500)\n", "pd.set_option('display.max_columns', 24)\n", "pd.set_option('display.width', 1000)\n", "print(\"Size of HELOC dataset:\", df.shape)\n", "print(\"Number of \\\"Good\\\" applicants:\", np.sum(df['RiskPerformance']=='Good'))\n", "print(\"Number of \\\"Bad\\\" applicants:\", np.sum(df['RiskPerformance']=='Bad'))\n", "print(\"Sample Applicants:\")\n", "df.head(10).transpose()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distribution of ExternalRiskEstimate and NumSatisfactoryTrades columns:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot (example) distributions for two features\n", "print(\"Distribution of ExternalRiskEstimate and NumSatisfactoryTrades columns:\")\n", "hist = df.hist(column=['ExternalRiskEstimate', 'NumSatisfactoryTrades'], bins=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Step 1. Process and Normalize HELOC dataset for training\n", "\n", "We will first process the HELOC dataset before using it to train an NN model that can predict the\n", "target variable RiskPerformance. The HELOC dataset is a tabular dataset with numerical values. However, some of the values are negative and need to be filtered. The processed data is stored in the file heloc.npz for easy access. The dataset is also normalized for training.\n", "\n", "The data processing and model building is very similar to the Loan Officer persona above, where ProtoDash was the method of choice. We repeat these steps here so that both the use cases can be run independently." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### a. Process the dataset" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "# Clean data and split dataset into train/test\n", "PROCESS_DATA = False\n", "\n", "if (PROCESS_DATA): \n", " (Data, x_train, x_test, y_train_b, y_test_b) = heloc.split()\n", " np.savez('heloc.npz', Data=Data, x_train=x_train, x_test=x_test, y_train_b=y_train_b, y_test_b=y_test_b)\n", "else:\n", " heloc = np.load('heloc.npz', allow_pickle = True)\n", " Data = heloc['Data']\n", " x_train = heloc['x_train']\n", " x_test = heloc['x_test']\n", " y_train_b = heloc['y_train_b']\n", " y_test_b = heloc['y_test_b']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "#### b. Normalize the dataset" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "Z = np.vstack((x_train, x_test))\n", "Zmax = np.max(Z, axis=0)\n", "Zmin = np.min(Z, axis=0)\n", "\n", "#normalize an array of samples to range [-0.5, 0.5]\n", "def normalize(V):\n", " VN = (V - Zmin)/(Zmax - Zmin)\n", " VN = VN - 0.5\n", " return(VN)\n", " \n", "# rescale a sample to recover original values for normalized values. \n", "def rescale(X):\n", " return(np.multiply ( X + 0.5, (Zmax - Zmin) ) + Zmin)\n", "\n", "N = normalize(Z)\n", "xn_train = N[0:x_train.shape[0], :]\n", "xn_test = N[x_train.shape[0]:, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Step 2. Define and train a NN classifier\n", "\n", "Let us now build a loan approval model based on the HELOC dataset.\n", "\n", "#### a. Define NN architecture\n", "We now define the architecture of a 2-layer neural network classifier whose predictions we will try to interpret. " ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "# nn with no softmax\n", "def nn_small():\n", " model = Sequential()\n", " model.add(Dense(10, input_dim=23, kernel_initializer='normal', activation='relu'))\n", " model.add(Dense(2, kernel_initializer='normal')) \n", " return model " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### b. Train the NN" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_2\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_3 (Dense) (None, 10) 240 \n", "_________________________________________________________________\n", "dense_4 (Dense) (None, 2) 22 \n", "=================================================================\n", "Total params: 262\n", "Trainable params: 262\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Train accuracy: 0.7387545704841614\n", "Test accuracy: 0.7224473357200623\n" ] } ], "source": [ "# Set random seeds for repeatability\n", "np.random.seed(1) \n", "tf.set_random_seed(2) \n", "\n", "class_names = ['Bad', 'Good']\n", "\n", "# loss function\n", "def fn(correct, predicted):\n", " return tf.nn.softmax_cross_entropy_with_logits(labels=correct, logits=predicted)\n", "\n", "# compile and print model summary\n", "nn = nn_small()\n", "nn.compile(loss=fn, optimizer='adam', metrics=['accuracy'])\n", "nn.summary()\n", "\n", "\n", "# train model or load a trained model\n", "TRAIN_MODEL = False\n", "\n", "if (TRAIN_MODEL): \n", " nn.fit(xn_train, y_train_b, batch_size=128, epochs=500, verbose=1, shuffle=False)\n", " nn.save_weights(\"heloc_nnsmall.h5\") \n", "else: \n", " nn.load_weights(\"heloc_nnsmall.h5\")\n", " \n", "\n", "# evaluate model accuracy \n", "score = nn.evaluate(xn_train, y_train_b, verbose=0) #Compute training set accuracy\n", "#print('Train loss:', score[0])\n", "print('Train accuracy:', score[1])\n", "\n", "score = nn.evaluate(xn_test, y_test_b, verbose=0) #Compute test set accuracy\n", "#print('Test loss:', score[0])\n", "print('Test accuracy:', score[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Step 3. Compute contrastive explanations for a few applicants\n", "\n", "Given the trained NN model to decide on loan approvals, let us first examine an applicant whose application was denied and what (minimal) changes to his/her application would lead to approval (i.e. finding pertinent negatives). We will then look at another applicant whose loan was approved and ascertain features that would minimally suffice in him/her still getting a positive outcome (i.e. finding pertinent positives).\n", "\n", "#### a. Compute Pertinent Negatives (PN): \n", "\n", "In order to compute pertinent negatives, the CEM explainer computes a user profile that is close to the original applicant but for whom the decision of HELOC application is different. The explainer alters a minimal set of features by a minimal (positive) amount. This will help the user whose loan application was initially rejected say, to ascertain how to get it accepted. " ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computing PN for Sample: 1272\n", "Prediction made by the model: [[ 0.40682057 -0.391679 ]]\n", "Prediction probabilities: Bad\n", "\n", "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:60: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:60: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:151: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:151: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:213: The name tf.train.polynomial_decay is deprecated. Please use tf.compat.v1.train.polynomial_decay instead.\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:213: The name tf.train.polynomial_decay is deprecated. Please use tf.compat.v1.train.polynomial_decay instead.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/opt/anaconda3/envs/aix360/lib/python3.6/site-packages/tensorflow/python/keras/optimizer_v2/learning_rate_schedule.py:409: div (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Deprecated in favor of operator or tf.math.divide.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/opt/anaconda3/envs/aix360/lib/python3.6/site-packages/tensorflow/python/keras/optimizer_v2/learning_rate_schedule.py:409: div (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Deprecated in favor of operator or tf.math.divide.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:216: The name tf.train.GradientDescentOptimizer is deprecated. Please use tf.compat.v1.train.GradientDescentOptimizer instead.\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:216: The name tf.train.GradientDescentOptimizer is deprecated. Please use tf.compat.v1.train.GradientDescentOptimizer instead.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/opt/anaconda3/envs/aix360/lib/python3.6/site-packages/tensorflow/python/ops/math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Use tf.where in 2.0, which has the same broadcast rule as np.where\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/opt/anaconda3/envs/aix360/lib/python3.6/site-packages/tensorflow/python/ops/math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Use tf.where in 2.0, which has the same broadcast rule as np.where\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:230: The name tf.variables_initializer is deprecated. Please use tf.compat.v1.variables_initializer instead.\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /Users/vijay/AIX360-TEST/AIX360/aix360/algorithms/contrastive/CEM_aen.py:230: The name tf.variables_initializer is deprecated. Please use tf.compat.v1.variables_initializer instead.\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "iter:0 const:[10.]\n", "Loss_Overall:0.2935, Loss_Attack:0.0000\n", "Loss_L2Dist:0.2065, Loss_L1Dist:0.8703, AE_loss:0.0\n", "target_lab_score:-1.1559, max_nontarget_lab_score:1.3184\n", "\n", "iter:500 const:[10.]\n", "Loss_Overall:0.1706, Loss_Attack:0.0000\n", "Loss_L2Dist:0.1153, Loss_L1Dist:0.5534, AE_loss:0.0\n", "target_lab_score:-0.7383, max_nontarget_lab_score:0.8658\n", "\n", "iter:0 const:[5.]\n", "Loss_Overall:0.0668, Loss_Attack:0.0000\n", "Loss_L2Dist:0.0368, Loss_L1Dist:0.3000, AE_loss:0.0\n", "target_lab_score:-0.2295, max_nontarget_lab_score:0.3076\n", "\n", "iter:500 const:[5.]\n", "Loss_Overall:1.0819, Loss_Attack:1.0453\n", "Loss_L2Dist:0.0219, Loss_L1Dist:0.1478, AE_loss:0.0\n", "target_lab_score:0.0316, max_nontarget_lab_score:0.0226\n", "\n", "iter:0 const:[2.5]\n", "Loss_Overall:2.0533, Loss_Attack:2.0489\n", "Loss_L2Dist:0.0011, Loss_L1Dist:0.0335, AE_loss:0.0\n", "target_lab_score:0.3218, max_nontarget_lab_score:-0.2978\n", "\n", "iter:500 const:[2.5]\n", "Loss_Overall:2.4962, Loss_Attack:2.4962\n", "Loss_L2Dist:0.0000, Loss_L1Dist:0.0000, AE_loss:0.0\n", "target_lab_score:0.4068, max_nontarget_lab_score:-0.3917\n", "\n", "iter:0 const:[3.75]\n", "Loss_Overall:1.1392, Loss_Attack:1.1129\n", "Loss_L2Dist:0.0113, Loss_L1Dist:0.1500, AE_loss:0.0\n", "target_lab_score:0.0727, max_nontarget_lab_score:-0.0241\n", "\n", "iter:500 const:[3.75]\n", "Loss_Overall:0.2901, Loss_Attack:0.2420\n", "Loss_L2Dist:0.0306, Loss_L1Dist:0.1749, AE_loss:0.0\n", "target_lab_score:-0.0370, max_nontarget_lab_score:0.0984\n", "\n", "iter:0 const:[3.125]\n", "Loss_Overall:1.9299, Loss_Attack:1.9179\n", "Loss_L2Dist:0.0045, Loss_L1Dist:0.0750, AE_loss:0.0\n", "target_lab_score:0.2238, max_nontarget_lab_score:-0.1899\n", "\n", "iter:500 const:[3.125]\n", "Loss_Overall:2.4110, Loss_Attack:2.4049\n", "Loss_L2Dist:0.0018, Loss_L1Dist:0.0429, AE_loss:0.0\n", "target_lab_score:0.2980, max_nontarget_lab_score:-0.2715\n", "\n", "iter:0 const:[2.8125]\n", "Loss_Overall:2.0618, Loss_Attack:2.0543\n", "Loss_L2Dist:0.0025, Loss_L1Dist:0.0502, AE_loss:0.0\n", "target_lab_score:0.2794, max_nontarget_lab_score:-0.2510\n", "\n", "iter:500 const:[2.8125]\n", "Loss_Overall:2.7157, Loss_Attack:2.7151\n", "Loss_L2Dist:0.0000, Loss_L1Dist:0.0062, AE_loss:0.0\n", "target_lab_score:0.3911, max_nontarget_lab_score:-0.3743\n", "\n", "iter:0 const:[2.65625]\n", "Loss_Overall:2.0645, Loss_Attack:2.0585\n", "Loss_L2Dist:0.0018, Loss_L1Dist:0.0419, AE_loss:0.0\n", "target_lab_score:0.3006, max_nontarget_lab_score:-0.2744\n", "\n", "iter:500 const:[2.65625]\n", "Loss_Overall:0.3235, Loss_Attack:0.2788\n", "Loss_L2Dist:0.0280, Loss_L1Dist:0.1673, AE_loss:0.0\n", "target_lab_score:-0.0178, max_nontarget_lab_score:0.0772\n", "\n", "iter:0 const:[2.734375]\n", "Loss_Overall:2.0649, Loss_Attack:2.0582\n", "Loss_L2Dist:0.0021, Loss_L1Dist:0.0460, AE_loss:0.0\n", "target_lab_score:0.2900, max_nontarget_lab_score:-0.2627\n", "\n", "iter:500 const:[2.734375]\n", "Loss_Overall:1.6931, Loss_Attack:1.6808\n", "Loss_L2Dist:0.0052, Loss_L1Dist:0.0719, AE_loss:0.0\n", "target_lab_score:0.2244, max_nontarget_lab_score:-0.1903\n", "\n", "iter:0 const:[2.7734375]\n", "Loss_Overall:2.0638, Loss_Attack:2.0567\n", "Loss_L2Dist:0.0023, Loss_L1Dist:0.0481, AE_loss:0.0\n", "target_lab_score:0.2847, max_nontarget_lab_score:-0.2568\n", "\n", "iter:500 const:[2.7734375]\n", "Loss_Overall:2.2875, Loss_Attack:2.2832\n", "Loss_L2Dist:0.0011, Loss_L1Dist:0.0328, AE_loss:0.0\n", "target_lab_score:0.3235, max_nontarget_lab_score:-0.2997\n", "\n" ] } ], "source": [ "# Some interesting user samples to try: 2344 449 1168 1272\n", "idx = 1272\n", "\n", "X = xn_test[idx].reshape((1,) + xn_test[idx].shape)\n", "print(\"Computing PN for Sample:\", idx)\n", "print(\"Prediction made by the model:\", nn.predict_proba(X))\n", "print(\"Prediction probabilities:\", class_names[np.argmax(nn.predict_proba(X))])\n", "print(\"\")\n", "\n", "mymodel = KerasClassifier(nn)\n", "explainer = CEMExplainer(mymodel)\n", "\n", "arg_mode = 'PN' # Find pertinent negatives\n", "arg_max_iter = 1000 # Maximum number of iterations to search for the optimal PN for given parameter settings\n", "arg_init_const = 10.0 # Initial coefficient value for main loss term that encourages class change\n", "arg_b = 9 # No. of updates to the coefficient of the main loss term\n", "arg_kappa = 0.2 # Minimum confidence gap between the PNs (changed) class probability and original class' probability\n", "arg_beta = 1e-1 # Controls sparsity of the solution (L1 loss)\n", "arg_gamma = 100 # Controls how much to adhere to a (optionally trained) auto-encoder\n", "my_AE_model = None # Pointer to an auto-encoder\n", "arg_alpha = 0.01 # Penalizes L2 norm of the solution\n", "arg_threshold = 1. # Automatically turn off features <= arg_threshold if arg_threshold < 1\n", "arg_offset = 0.5 # the model assumes classifier trained on data normalized\n", " # in [-arg_offset, arg_offset] range, where arg_offset is 0 or 0.5\n", "# Find PN for applicant 1272\n", "(adv_pn, delta_pn, info_pn) = explainer.explain_instance(X, arg_mode, my_AE_model, arg_kappa, arg_b,\n", " arg_max_iter, arg_init_const, arg_beta, arg_gamma,\n", " arg_alpha, arg_threshold, arg_offset)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us start by examining one particular loan application that was denied for applicant 1272. We showcase below how the decision could have been different through minimal changes to the profile conveyed by the pertinent negative. We also indicate the importance of different features to produce the change in the application status. The column delta in the table below indicates the necessary deviations for each of the features to produce this change. A human friendly explanation is then provided based on these deviations following the feature importance plot." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sample: 1272\n", "prediction(X) [[ 0.40682057 -0.391679 ]] Bad\n", "prediction(Xpn) [[-0.16797018 0.24030855]] Good\n" ] }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
X X_PN (X_PN - X)
ExternalRiskEstimate65.00000080.84000015.840000
MSinceOldestTradeOpen256.000000256.0000000.000000
MSinceMostRecentTradeOpen15.00000015.0000000.000000
AverageMInFile52.00000065.62000013.620000
NumSatisfactoryTrades17.00000021.4000004.400000
NumTrades60Ever2DerogPubRec0.0000000.0000000.000000
NumTrades90Ever2DerogPubRec0.0000000.0000000.000000
PercentTradesNeverDelq100.000000100.0000000.000000
MSinceMostRecentDelq0.0000000.0000000.000000
MaxDelq2PublicRecLast12M7.0000007.0000000.000000
MaxDelqEver8.0000008.0000000.000000
NumTotalTrades19.00000019.0000000.000000
NumTradesOpeninLast12M0.0000000.0000000.000000
PercentInstallTrades29.00000029.0000000.000000
MSinceMostRecentInqexcl7days2.0000002.0000000.000000
NumInqLast6M5.0000005.0000000.000000
NumInqLast6Mexcl7days5.0000005.0000000.000000
NetFractionRevolvingBurden57.00000057.0000000.000000
NetFractionInstallBurden79.00000079.0000000.000000
NumRevolvingTradesWBalance2.0000002.0000000.000000
NumInstallTradesWBalance4.0000004.0000000.000000
NumBank2NatlTradesWHighUtilization2.0000002.0000000.000000
PercentTradesWBalance60.00000060.0000000.000000
RiskPerformanceBadGoodNIL
" ], "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xpn = adv_pn\n", "classes = [ class_names[np.argmax(nn.predict_proba(X))], class_names[np.argmax(nn.predict_proba(Xpn))], 'NIL' ]\n", "\n", "print(\"Sample:\", idx)\n", "print(\"prediction(X)\", nn.predict_proba(X), class_names[np.argmax(nn.predict_proba(X))])\n", "print(\"prediction(Xpn)\", nn.predict_proba(Xpn), class_names[np.argmax(nn.predict_proba(Xpn))] )\n", "\n", "\n", "X_re = rescale(X) # Convert values back to original scale from normalized\n", "Xpn_re = rescale(Xpn)\n", "Xpn_re = np.around(Xpn_re.astype(np.double), 2)\n", "\n", "delta_re = Xpn_re - X_re\n", "delta_re = np.around(delta_re.astype(np.double), 2)\n", "delta_re[np.absolute(delta_re) < 1e-4] = 0\n", "\n", "X3 = np.vstack((X_re, Xpn_re, delta_re))\n", "\n", "dfre = pd.DataFrame.from_records(X3) # Create dataframe to display original point, PN and difference (delta)\n", "dfre[23] = classes\n", "\n", "dfre.columns = df.columns\n", "dfre.rename(index={0:'X',1:'X_PN', 2:'(X_PN - X)'}, inplace=True)\n", "dfret = dfre.transpose()\n", "\n", "\n", "def highlight_ce(s, col, ncols):\n", " if (type(s[col]) != str):\n", " if (s[col] > 0):\n", " return(['background-color: yellow']*ncols) \n", " return(['background-color: white']*ncols)\n", "\n", "dfret.style.apply(highlight_ce, col='(X_PN - X)', ncols=3, axis=1) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let us compute the importance of different PN features that would be instrumental in 1272 receiving a favorable outcome and display below." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxcAAAHHCAYAAADNgaU6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeVxO6f8/8Ndd6e5uX6RCKtJGIduUIUuUJcvYt0p2GWIyxCD7Mox9shemhrFnlyVLDEplS5LC6CZrTVJa3r8//O7zddxFmYwP834+HufxcK5znet6n+u+ZzrXfZ3rXBIiIjDGGGOMMcbYP6TyuQNgjDHGGGOMfR24c8EYY4wxxhirENy5YIwxxhhjjFUI7lwwxhhjjDHGKgR3LhhjjDHGGGMVgjsXjDHGGGOMsQrBnQvGGGOMMcZYheDOBWOMMcYYY6xCcOeCMcYYY4wxViG4c8EYY4x9hFGjRqFt27aitEePHqFHjx4wMjKCRCLB0qVLP09wn5GlpSV8fX0/dxj/OU+fPoWWlhYOHjz4uUNh/3HcuWCMMfZFCwsLg0QiETYNDQ3Y2Nhg9OjRePTokZAvOjpayBMXF6dUjq+vL7S1tctUZ1paGtavX4/JkyeL0seNG4cjR44gKCgIW7Zsgaen5z+7uFLMnTsXe/bs+SRl/9cdPHgQwcHBnzuMcjMyMsKQIUMwderUzx0K+4/jzgVjjLGvwsyZM7FlyxasXLkSrq6uCAkJgYuLC3Jzc5Xy/tObx2XLlsHKygqtWrUSpZ84cQJdunRBYGAgBgwYADs7u39UT2n+lzsXycnJWLdu3ecO46MdPHgQM2bM+NxhfJQRI0bg8uXLOHHixOcOhf2HceeCMcbYV6F9+/YYMGAAhgwZgrCwMAQEBCAtLQ179+4V5atfvz7279+Py5cvf1Q9BQUFCA8PR69evZSOZWZmQl9f/6PK/dyKi4uRl5f3j8uRSqWoVKlSBUT073r58uXnDuEfs7e3R926dREWFva5Q2H/Ydy5YIwx9lVq3bo1gDePML3t+++/h4GBwUePXpw9exZPnjyBu7u7kKZ4NIuIsGrVKuHxK4UXL14gICAA5ubmkEqlsLa2xoIFC1BcXCwqe9GiRXB1dYWRkRFkMhkaNmyIHTt2iPJIJBK8fPkSmzZtEupRzHHw9fWFpaWlUszBwcGieBTljB49GuHh4ahTpw6kUikOHz4MAHjw4AH8/PxgYmICqVSKOnXqYOPGjWVqn3fnXCja5uzZsxgzZgyMjY2hr6+P4cOH4/Xr13jx4gW8vb1hYGAAAwMD/PjjjyAi4fz09HRIJBIsWrQIS5YsgYWFBWQyGdzc3HDt2jWl+k+cOIHmzZtDS0sL+vr66NKlC5KSkkpsjxs3bqBfv34wMDDAt99+C19fX6xatUpon3c/x7J8Pm+37Z49e1C3bl2hDRXt+7YHDx5g8ODBqFq1KqRSKaysrDBy5Ei8fv1ayFPW7w8AtG3bFvv27RO1IWP/JrXPHQBjjDH2KaSmpgJ48yz623R1dTFu3DhMmzYNly9fhrOzc7nKPXfuHCQSCRo0aCCktWjRAlu2bMHAgQPRtm1beHt7C8dyc3Ph5uaGBw8eYPjw4ahRowbOnTuHoKAgyOVy0aTvZcuWoXPnzujfvz9ev36NrVu3omfPnti/fz86duwIANiyZQuGDBmCJk2aYNiwYQCAWrVqlesaFE6cOIE//vgDo0ePRuXKlWFpaYlHjx7hm2++EW6QjY2NcejQIQwePBjZ2dkICAj4qLq+//57mJqaYsaMGfjzzz+xdu1a6Ovr49y5c6hRowbmzp2LgwcP4ueff0bdunVFbQgAmzdvxt9//w1/f3/k5eVh2bJlaN26Na5evQoTExMAwLFjx9C+fXvUrFkTwcHBePXqFVasWIFmzZrh8uXLSh2vnj17onbt2pg7dy6ICA0aNEBGRgaioqKwZcsWpWsoy+ejcPbsWezatQujRo2Cjo4Oli9fju7du+PevXvCdzIjIwNNmjTBixcvMGzYMNjZ2eHBgwfYsWMHcnNzoa6uXq7vDwA0bNgQS5YswfXr11G3bt2P+qwY+0eIMcYY+4KFhoYSADp27Bg9fvyY7t+/T1u3biUjIyOSyWT0119/ERHRyZMnCQBt376dXrx4QQYGBtS5c2ehHB8fH9LS0vpgfQMGDCAjI6MSjwEgf39/UdqsWbNIS0uLbt26JUqfNGkSqaqq0r1794S03NxcUZ7Xr19T3bp1qXXr1qJ0LS0t8vHxUarfx8eHLCwslNKnT59O7/7JB0AqKip0/fp1UfrgwYPJzMyMnjx5Ikrv06cP6enpKcX4LgsLC1Fsis/Hw8ODiouLhXQXFxeSSCQ0YsQIIa2wsJCqV69Obm5uQlpaWhoBEH2WREQXLlwgADRu3DghrX79+lSlShV6+vSpkJaYmEgqKirk7e2t1B59+/ZVit/f31+prRTK+vkAIHV1dbp9+7YoDgC0YsUKIc3b25tUVFTo0qVLSnUp2qo83x8ionPnzhEA2rZtW4nXwNinxo9FMcYY+yq4u7vD2NgY5ubm6NOnD7S1tbF7925Uq1ZNKa+enh4CAgIQGRmJ+Pj4ctXz9OlTGBgYlDn/9u3b0bx5cxgYGODJkyfC5u7ujqKiIpw+fVrIK5PJhH8/f/4cWVlZaN68+UfPD/kQNzc3ODg4CPtEhJ07d8LLywtEJIrXw8MDWVlZHx3L4MGDRY8YNW3aFESEwYMHC2mqqqpo1KgR7ty5o3R+165dRZ9lkyZN0LRpU+HVq3K5HAkJCfD19YWhoaGQz8nJCW3bti3xFa0jRowo1zWU5/Nxd3cXjSg5OTlBV1dXuLbi4mLs2bMHXl5eaNSokdL5irYqz/cHgPDdfPLkSbmujbGKwo9FMcYY+yqsWrUKNjY2UFNTg4mJCWxtbaGiUvpvaGPHjsWSJUsQHBysNOn7Q6gcz7OnpKTgypUrMDY2LvF4Zmam8O/9+/dj9uzZSEhIQH5+vpD+7nyJimJlZSXaf/z4MV68eIG1a9di7dq1H4y3PGrUqCHa19PTAwCYm5srpT9//lzp/Nq1ayul2djY4I8//gAA3L17FwBga2urlM/e3h5HjhzBy5cvoaWlJaS/e/0fUp7P593rBd7c+Cuu7fHjx8jOzv7go0vl+f4A//fd/FTfGcY+hDsXjDHGvgpNmjQp8Rfg0ihGL4KDg8s1emFkZFTizW9piouL0bZtW/z4448lHrexsQEAnDlzBp07d0aLFi3w66+/wszMDJUqVUJoaCgiIiLKVFdpN5RFRUUlpr/9S7wiVgAYMGAAfHx8SjzHycmpTLG8S1VVtczp5em8/RPvXv/7lPfzKe16y3ttZf3+KCi+m5UrVy5XPYxVFO5cMMYY+88KCAjA0qVLMWPGjDK/QtbOzg7h4eHIysoSfn1/n1q1aiEnJ0f0dqmS7Ny5ExoaGjhy5AikUqmQHhoaqpS3tE6EgYEBXrx4oZSu+FX/Q4yNjaGjo4OioqIPxvtvS0lJUUq7deuWMEnbwsICwJt1Nt518+ZNVK5cWTRqUZrS2rY8n09ZGBsbQ1dXt8Q3Xr2trN8fBcXb0ezt7T8qLsb+KZ5zwRhj7D9LMXqxd+9eJCQklOkcFxcXEFGJq3yXpFevXjh//jyOHDmidOzFixcoLCwE8OaXbolEIhplSE9PL3GxPC0trRI7EbVq1UJWVhauXLkipMnlcuzevbtMsaqqqqJ79+7YuXNniTe9jx8/LlM5n8KePXvw4MEDYf/ixYu4cOEC2rdvDwAwMzND/fr1sWnTJlHbXLt2DUePHkWHDh3KVI+iA/Ju+5bn8ykLFRUVdO3aFfv27UNsbKzSccUIR1m/PwpxcXHQ09NDnTp1Piouxv4pHrlgjDH2n6aYe5GYmFimX7a//fZbGBkZ4dixY8JaGu8zYcIEREZGolOnTvD19UXDhg3x8uVLXL16FTt27EB6ejoqV66Mjh074pdffoGnpyf69euHzMxMrFq1CtbW1qLOAvDmdaPHjh3DL7/8gqpVq8LKygpNmzZFnz59MHHiRHTr1g1jxoxBbm4uQkJCYGNjU+aJ2PPnz8fJkyfRtGlTDB06FA4ODnj27BkuX76MY8eO4dmzZ2Uqp6JZW1vj22+/xciRI5Gfn4+lS5fCyMhI9LjQzz//jPbt28PFxQWDBw8WXkWrp6dX5nVNGjZsCAAYM2YMPDw8oKqqij59+pTr8ymruXPn4ujRo3Bzc8OwYcNgb28PuVyO7du34+zZs9DX1y/z90chKioKXl5ePOeCfT6f7T1VjDHGWAVQvOq0pNd5vu3tV9G+S/Fq0rK8ipaIaMyYMWRtba2UjhJeRUtE9Pfff1NQUBBZW1uTuro6Va5cmVxdXWnRokX0+vVrId+GDRuodu3aJJVKyc7OjkJDQ0t8jezNmzepRYsWJJPJCIDo1a9Hjx6lunXrkrq6Otna2tJvv/1W6qtoS4qViOjRo0fk7+9P5ubmVKlSJTI1NaU2bdrQ2rVrP9g2pb2K9t3PRxHT48ePRenvvhJY8Sran3/+mRYvXkzm5uYklUqpefPmlJiYqFT/sWPHqFmzZiSTyUhXV5e8vLzoxo0bZaqb6M3rcL///nsyNjYmiUQiareyfj6lte27bUNEdPfuXfL29iZjY2OSSqVUs2ZN8vf3p/z8fCFPWb8/SUlJwmuZGftcJES8hCNjjDFWHnfu3IGdnR0OHTqENm3afO5wvmrp6emwsrLCzz//jMDAwM8dzv+0gIAAnD59GnFxcTxywT4bnnPBGGOMlVPNmjUxePBgzJ8//3OHwhiAN+uvrF+/HrNnz+aOBfuseM4FY4wx9hFCQkI+dwiMCYyMjJCTk/O5w2CMRy4YY4wxxhhjFYPnXDDGGGOMMcYqBI9cMMYYY4wxxioEdy4YY4wxxhhjFYIndDPG/jXFxcXIyMiAjo4Ov82EMcYY+0IQEf7++29UrVoVKirvH5vgzgVj7F+TkZEBc3Pzzx0GY4wxxj7C/fv3Ub169ffm4c4FY+xfo6OjA+DN/5x0dXU/czSMMcYYK4vs7GyYm5sLf8ffhzsXjLF/jeJRKF1dXe5cMMYYY1+YsjzSzBO6GWOMMcYYYxWCOxeMMcYYY4yxCsGdC8YYY4wxxliF4M4FY4wxxhhjrEJw54IxxhhjjDFWIbhzwRhjjDHGGKsQ3LlgjDHGGGOMVQjuXDDGGGOMMcYqBHcuGGOMMcYYYxWCOxeMMcYYY4yxCsGdC8YYY4wxxliF4M4FY4wxxhhjrEJw54IxxhhjjDFWIbhzwRhjjDHGGKsQap87AMbYf8+qE7ehoaX9ucNgjDHGvirj2tp87hB45IJ9nSwtLbF06dJynRMWFgZ9ff0Kz1uRPua6GGOMMcb+Ldy5YPD19YVEIlHaPD09y3R+y5YtERAQ8GmD/IcsLS2F69LU1ISjoyPWr18vytO7d2/cunWrQupLT08vsU0lEgn+/PPPD55fWufl0qVLGDZsWIXE+D7ciWGMMcbYx+DHohgAwNPTE6GhoaI0qVT6r8bw+vVrqKurf7LyZ86ciaFDhyI3Nxfbt2/H0KFDUa1aNbRv3x4AIJPJIJPJKrTOY8eOoU6dOqI0IyOjjy7P2Nj4n4bEGGOMMfbJ8MgFA/CmI2FqairaDAwMEB0dDXV1dZw5c0bIu3DhQlSpUgWPHj2Cr68vTp06hWXLlgm/zKenpwMArl27hvbt20NbWxsmJiYYOHAgnjx5IpTTsmVLjB49GgEBAahcuTI8PDwQHR0NiUSC48ePo1GjRtDU1ISrqyuSk5OF81JTU9GlSxeYmJhAW1sbjRs3xrFjxz54jTo6OjA1NUXNmjUxceJEGBoaIioqSjj+7mhBYmIiWrVqBR0dHejq6qJhw4aIjY0tsezHjx+jUaNG6NatG/Lz84V0IyMjpXatVKnSe8uPjo7GoEGDkJWVJbRpcHAwAOURBYlEgjVr1qBTp07Q1NSEvb09zp8/j9u3b6Nly5bQ0tKCq6srUlNTy9x+LVu2xN27dzFu3DihfoWzZ8+iefPmkMlkMDc3x5gxY/Dy5csPtj1jjDHG/hu4c8HeS/HI08CBA5GVlYX4+HhMnToV69evh4mJCZYtWwYXFxcMHToUcrkccrkc5ubmePHiBVq3bo0GDRogNjYWhw8fxqNHj9CrVy9R+Zs2bYK6ujpiYmKwevVqIX3KlClYvHgxYmNjoaamBj8/P+FYTk4OOnTogOPHjyM+Ph6enp7w8vLCvXv3ynRNxcXF2LlzJ54/f/7ekZL+/fujevXquHTpEuLi4jBp0iShY/C2+/fvo3nz5qhbty527NhR5hGf0sp3dXXF0qVLoaurK7RpYGBgqeXMmjUL3t7eSEhIgJ2dHfr164fhw4cjKCgIsbGxICKMHj1ayP+h9tu1axeqV6+OmTNnCvUDbzolnp6e6N69O65cuYJt27bh7NmzorLflZ+fj+zsbNHGGGOMsa8XPxbFAAD79++Htrb47T2TJ0/G5MmTMXv2bERFRWHYsGG4du0afHx80LlzZwCAnp4e1NXVoampCVNTU+HclStXokGDBpg7d66QtnHjRpibm+PWrVuwsXnzNoPatWtj4cKFQh7FjeycOXPg5uYGAJg0aRI6duyIvLw8aGhooF69eqhXr55wzqxZs7B7925ERka+90Z34sSJ+Omnn5Cfn4/CwkIYGhpiyJAhpea/d+8eJkyYADs7OyHWdyUnJ6Nt27bo1q0bli5dKvqVHwBcXV2hoiLuw+fk5HywfD09PUgkElGblmbQoEFCp23ixIlwcXHB1KlT4eHhAQAYO3YsBg0aJOT/UPsZGhpCVVVVGOlRmDdvHvr37y/Mr6lduzaWL18ONzc3hISEQENDQym2efPmYcaMGR+8BsYYY4x9HbhzwQAArVq1QkhIiCjN0NAQAKCuro7w8HA4OTnBwsICS5Ys+WB5iYmJOHnypFKHBXjzC7iic9GwYcMSz3dychL+bWZmBgDIzMxEjRo1kJOTg+DgYBw4cAByuRyFhYV49erVB0cuJkyYAF9fX8jlckyYMAGjRo2CtbV1qfnHjx+PIUOGYMuWLXB3d0fPnj1Rq1Yt4firV6/QvHlz9OvXr9TJz9u2bYO9vf1HlV9Wb7eViYkJAMDR0VGUlpeXh+zsbOjq6n50+yUmJuLKlSsIDw8X0ogIxcXFSEtLK/E6g4KCMH78eGE/Ozsb5ubm5b5GxhhjjH0ZuHPBAABaWlrvvdE+d+4cAODZs2d49uwZtLS03lteTk4OvLy8sGDBAqVjis6Cot6SvP34kWI0oLi4GAAQGBiIqKgoLFq0CNbW1pDJZOjRowdev3793pgqV64Ma2trWFtbY/v27XB0dESjRo3g4OBQYv7g4GD069cPBw4cwKFDhzB9+nRs3boV3bp1A/Bmnoq7uzv279+PCRMmoFq1akplmJubl9quHyq/rEpqq0/Rfjk5ORg+fDjGjBmjdKxGjRolniOVSv/1FwMwxhhj7PPhORfsg1JTUzFu3DisW7cOTZs2hY+Pj3CjCrwZ2SgqKhKd4+zsjOvXr8PS0lK4oVdsH+qYfEhMTAx8fX3RrVs3ODo6wtTUVJhEXlbm5ubo3bs3goKC3pvPxsYG48aNw9GjR/Hdd9+J3qiloqKCLVu2oGHDhmjVqhUyMjLKfS2llV9Sm1aUsrRfaZ/pjRs3lD5Pa2vrT/qWL8YYY4x9ObhzwQC8mXj78OFD0fbkyRMUFRVhwIAB8PDwwKBBgxAaGoorV65g8eLFwrmWlpa4cOEC0tPT8eTJExQXF8Pf3x/Pnj1D3759cenSJaSmpuLIkSMYNGjQP75prl27Nnbt2oWEhAQkJiaiX79+os5OWY0dOxb79u0r8Q1Qr169wujRoxEdHY27d+8iJiYGly5dUnr0R1VVFeHh4ahXrx5at26Nhw8fio4/ffpUqV3z8vI+WL6lpSVycnJw/PhxPHnyBLm5ueW+vtKUpf0sLS1x+vRpPHjwQHjD18SJE3Hu3DmMHj0aCQkJSElJwd69e987z4Uxxhhj/y3cuWAAgMOHD8PMzEy0ffvtt5gzZw7u3r2LNWvWAHjzSNPatWvx008/ITExEcCbx2xUVVXh4OAAY2Nj3Lt3D1WrVkVMTAyKiorQrl07ODo6IiAgAPr6+koTnMvrl19+gYGBAVxdXeHl5QUPDw84OzuXuxwHBwe0a9cO06ZNUzqmqqqKp0+fwtvbGzY2NujVqxfat29f4uRkNTU1/P7776hTpw5at26NzMxM4Zi7u7tSu+7Zs+eD5bu6umLEiBHo3bs3jI2NRZPe/6mytN/MmTORnp6OWrVqCWtrODk54dSpU7h16xaaN2+OBg0aYNq0aahatWqFxcYYY4yxL5uEiOhzB8EY+2/Izs6Gnp4esrKyoKur+7nDYYwxxlgZlOfvN49cMMYYY4wxxioEdy4YY4wxxhhjFYI7F/9xEokEe/bs+dxhlCgsLAz6+vrvzRMcHIz69ev/K/F8ar6+vujatevnDoMxxhhj7KNx5+IL4+vrC4lEghEjRigd8/f3h0Qiga+vLwDg8ePHGDlyJGrUqAGpVApTU1N4eHggJiZGOEcul6N9+/b/VviCTZs2oXHjxtDU1ISOjg7c3Nywf//+fz2Od73b2WrZsiUkEkmpW8uWLT9brAr/q23JGGOMsf8e7lx8gczNzbF161a8evVKSMvLy0NERIRoMbPu3bsjPj4emzZtwq1btxAZGYmWLVvi6dOnQh5TU9N/fZGzwMBADB8+HL1798aVK1dw8eJFfPvtt+jSpQtWrlz5r8byIbt27YJcLodcLsfFixcBAMeOHRPSdu3aJcpfUFDwr8b3JbUlY4wxxv4DiH1RfHx8qEuXLlS3bl367bffhPTw8HBycnKiLl26kI+PDz1//pwAUHR09HvLA0C7d+8mIqK0tDQCQDt37qSWLVuSTCYjJycnOnfunOics2fPkpubG8lkMtLX16d27drRs2fPiIioqKiI5s6dS5aWlqShoUFOTk60fft24dzz588TAFq+fLlSLOPHj6dKlSrRvXv3iIgoNDSU9PT0RHnmzZtHVapUIW1tbfLz86OJEydSvXr1RHnWrVtHdnZ2JJVKydbWllatWiUcy8/PJ39/fzI1NSWpVEo1atSguXPnEhGRhYUFARA2CwsLUbmK9omPjxe136+//kpeXl6kqalJ06dPp8LCQvLz8xPawMbGhpYuXSoqq7CwkMaNG0d6enpkaGhIEyZMIG9vb+rSpYuQ51O05e7du8na2pqkUim1a9dOOK6wZ88eatCgAUmlUrKysqLg4GAqKCgQXe+6deuoa9euJJPJyNramvbu3atUf2mysrIIAGVlZZX5HMYYY4x9XuX5+82diy+MonPxyy+/UJs2bYT0Nm3a0JIlS4TORUFBAWlra1NAQADl5eWVWl5JnQs7Ozvav38/JScnU48ePcjCwkK4wYyPjyepVEojR46khIQEunbtGq1YsYIeP35MRESzZ88mOzs7Onz4MKWmplJoaChJpVKhkzNmzBjS1tam/Px8pVgePHhAAGjJkiVEpNy52LZtG0mlUlq/fj3dvHmTpkyZQjo6OqLOxW+//UZmZma0c+dOunPnDu3cuZMMDQ0pLCyMiIh+/vlnMjc3p9OnT1N6ejqdOXOGIiIiiIgoMzOTAFBoaCjJ5XLKzMwUxVda56JKlSq0ceNGSk1Npbt379Lr169p2rRpdOnSJbpz5w799ttvpKmpSdu2bRPOW7BgARkYGNDOnTvpxo0bNHjwYNLR0RF1Liq6LStVqkSNGjWic+fOUWxsLDVp0oRcXV2Fc06fPk26uroUFhZGqampdPToUbK0tKTg4GDR9VavXp0iIiIoJSVFiOHp06dKMZSEOxeMMcbYl4c7F18xReciMzOTpFIppaenU3p6OmloaNDjx4+FzgUR0Y4dO8jAwIA0NDTI1dWVgoKCKDExUVReSZ2L9evXC8evX79OACgpKYmIiPr27UvNmjUrMba8vDzS1NRUGukYPHgw9e3bl4iIPD09lUYa3qarq0sjR44kIuXOhYuLC40aNUqUv2nTpqLyatWqJXQWFGbNmkUuLi5ERPT9999T69atqbi4uMT6326Pd5XWuQgICCj1ehT8/f2pe/fuwr6ZmRktXLhQ2C8oKKDq1asLnYtP0ZYA6M8//xSOJyUlEQC6cOECEb3poCpGcRS2bNlCZmZmouv96aefhP2cnBwCQIcOHSoxhry8PMrKyhK2+/fvc+eCMcYY+8KUp3PBcy6+UMbGxujYsSPCwsIQGhqKjh07onLlyqI83bt3R0ZGBiIjI+Hp6Yno6Gg4OzsjLCzsvWU7OTkJ/zYzMwMAYdXphIQEtGnTpsTzbt++jdzcXLRt2xba2trCtnnzZqSmpgr56CPXbUxKSkLTpk1FaS4uLsK/X758idTUVAwePFhU/+zZs4X6fX19kZCQAFtbW4wZMwZHjx79qFje1qhRI6W0VatWoWHDhjA2Noa2tjbWrl2Le/fuAQCysrIgl8tF16KmpiYq51O0pZqaGho3bizs29nZQV9fH0lJSQCAxMREzJw5U1Tf0KFDIZfLkZubK5z39vdDS0sLurq6olXJ3zZv3jzo6ekJm7m5eZnjZYwxxtiXR+1zB8A+np+fH0aPHg3gzc1sSTQ0NNC2bVu0bdsWU6dOxZAhQzB9+nThjVIlqVSpkvBviUQCACguLgYAyGSyUs/LyckBABw4cADVqlUTHVNMGrexscHZs2fx+vVrqKuri/JkZGQgOzsbNjY2pdbxPor6161bp9QJUVVVBQA4OzsjLS0Nhw4dwrFjx9CrVy+4u7tjx44dH1Un8OYG+21bt25FYGAgFi9eDBcXF+jo6ODnn3/GhQsXyn0t/2Zb5uTkYMaMGfjuu++UjmloaAj/fvv7Abz5jii+H+8KCgrC+PHjhf3s7GzuYDDGGGNfMR65+IJ5enri9evXKCgogIeHR5nOcXBwwMuXLz+6TicnJxw/frzUsqVSKe7duwdra2vRprih7NOnD3JycrBmzRql8xctWoRKlSqhe/fuJZZvb2+vdIP+559/Cv82MTFB1apVcefOHaX6rayshHy6urro3bs31q1bh23btmHnzp149uwZgDc3zkVFReVrlHfExMTA1dUVo0aNQoMGDWBtbS0abdDT04OZmZnoWgoLCxEXFyfsf4q2LCwsRGxsrLCfnJyMFy9ewN7eHsCbjldycrJSfdbW1lBR+bj/VUilUujq6oo2xhhjjH29eOTiC6aqqio80qL4ZV7h6dOn6NmzJ/z8/ODk5AQdHR3ExsZi4cKF6NKly0fXGRQUBEdHR4waNQojRoyAuro6Tp48iZ49e6Jy5coIDAzEuHHjUFxcjG+//RZZWVmIiYmBrq4ufHx84OLigrFjx2LChAl4/fo1unbtioKCAvz2229YtmwZli5dWuov22PHjoWvry8aNWqEZs2aITw8HNevX0fNmjWFPDNmzMCYMWOgp6cHT09P5OfnIzY2Fs+fP8f48ePxyy+/wMzMDA0aNICKigq2b98OU1NTYbE+S0tLHD9+HM2aNYNUKoWBgUG526h27drYvHkzjhw5AisrK2zZsgWXLl0SdXDGjh2L+fPno3bt2rCzs8Mvv/yCFy9eCMd1dHQqvC0rVaqE77//HsuXL4eamhpGjx6Nb775Bk2aNAEATJs2DZ06dUKNGjXQo0cPqKioIDExEdeuXcPs2bPL3Q6MMcYY+w/65DNAWIVSTOgujWJCd15eHk2aNImcnZ1JT0+PNDU1ydbWln766SfKzc0V8qOECd1vT1hWvNL25MmTQlp0dDS5urqSVColfX198vDwoOfPnxMRUXFxMS1dupRsbW2pUqVKZGxsTB4eHnTq1ClRnBs2bKCGDRuShoYGaWlpUfPmzSkyMlKUp6RX0c6ZM4cqV65M2tra5OPjQz/++KPSpObw8HCqX78+qaurk4GBAbVo0YJ27dpFRERr166l+vXrk5aWFunq6lKbNm3o8uXLwrmRkZFkbW1NampqZX4V7bsTwPPy8sjX15f09PRIX1+fRo4cSZMmTRLFWVBQQGPHjiVdXV3S19en8ePHK72K9lO05c6dO6lmzZoklUrJ3d2d7t69K8p3+PBhcnV1JZlMRrq6utSkSRNau3bte69XT0+PQkNDqSz4bVGMMcbYl6c8f78lRB85u5Yx9sUICwtDQECAaHTkc8jOzoaenh6ysrL4ESnGGGPsC1Gev98854IxxhhjjDFWIbhzwRhjjDHGGKsQ3Llg7D/A19f3sz8SxRhjjLGvH3cu/kUSiQR79uz53GGw/0FhYWHCG6sYY4wxxr5U3Ll4D19fX0gkEowYMULpmL+/PyQSibAY3ePHjzFy5EjUqFEDUqkUpqam8PDwQExMjHCOXC5H+/bt/63wkZ6eDolEAlVVVTx48EB0TC6XQ01NDRKJBOnp6RVSn6+vL7p27aqULpFIhE1XVxeNGzfG3r17K6TOitSyZUsEBAQI+8HBwaLYS9o+t3PnzqFDhw4wMDCAhoYGHB0d8csvv/zjtToYY4wxxj4Gdy4+wNzcHFu3bsWrV6+EtLy8PERERKBGjRpCWvfu3REfH49Nmzbh1q1biIyMRMuWLfH06VMhj6mpqbC68r+pWrVq2Lx5syht06ZNSis/f0qhoaGQy+WIjY1Fs2bN0KNHD1y9evVfq/9jBAYGQi6XC1v16tUxc+ZMUdrbXr9+/a/Gt3v3bri5uaF69eo4efIkbt68ibFjx2L27Nno06cP+EVwjDHGGPvXfer34n7JFGtK1K1bl3777TchPTw8nJycnIQ1JRRrQURHR7+3PJSwpsTOnTupZcuWJJPJyMnJic6dOyc65+zZs+Tm5kYymYz09fWpXbt29OzZMyIiKioqorlz55KlpSVpaGiQk5MTbd++XThXUcdPP/1EtWvXFpVrY2NDU6dOJQCUlpYmpEdHR1Pjxo1JXV2dTE1NaeLEiVRQUCAc3759O9WtW5c0NDTI0NCQ2rRpQzk5OTR9+nQCINoUa2PgnbURsrOzCQAtW7ZMSLt37x717NmT9PT0yMDAgDp37iyKi+jNeg4ODg5CbP7+/sKx58+f0+DBg6ly5cqko6NDrVq1ooSEBOH49OnTqV69erR582aysLAgXV1d6t27N2VnZxPRm8/63fjfrd/CwoKWLFki7Lu5uZG/vz+NHTuWjIyMqGXLlkREtHjxYqpbty5pampS9erVaeTIkfT333+LygoNDSVzc3OSyWTUtWtXWrRokdKaHnv27KEGDRqQVColKysrCg4OFj6LnJwcMjIyou+++47eFRkZSQBo69atRPR/34Pff/+dXFxcSCqVUp06dZS+r1evXiVPT0/S0tKiKlWq0IABA+jx48ei6/3+++9pwoQJZGBgQCYmJjR9+nSl+t+H17lgjDHGvjzl+fvNIxdl4Ofnh9DQUGF/48aNGDRokLCvra0NbW1t7NmzB/n5+eUqe8qUKQgMDERCQgJsbGzQt29fFBYWAgASEhLQpk0bODg44Pz58zh79iy8vLyER17mzZuHzZs3Y/Xq1bh+/TrGjRuHAQMG4NSpU6I6OnfujOfPn+Ps2bMAgLNnz+L58+fw8vIS5Xvw4AE6dOiAxo0bIzExESEhIdiwYYOwOrNcLkffvn3h5+eHpKQkREdH47vvvgMRITAwEL169YKnp6fwq76rq6vS9RYWFmLDhg0AAHV1dQBAQUEBPDw8oKOjgzNnziAmJgba2trw9PQURgNCQkLg7++PYcOG4erVq4iMjIS1tbVQbs+ePZGZmYlDhw4hLi4Ozs7OaNOmDZ49eybkSU1NxZ49e7B//37s378fp06dwvz58wEAy5Ytg4uLC4YOHSrEX9pK4W/btGkT1NXVERMTg9WrVwMAVFRUsHz5cly/fh2bNm3CiRMn8OOPPwrnXLhwAYMHD8bo0aORkJCAVq1aKa2AfebMGXh7e2Ps2LG4ceMG1qxZg7CwMMyZMwcAcPToUTx9+hSBgYFKMXl5ecHGxga///67KH3ChAn44YcfEB8fDxcXF3h5eQkjay9evEDr1q3RoEEDxMbG4vDhw3j06BF69eqldL1aWlq4cOECFi5ciJkzZyIqKqrU9snPz0d2drZoY4wxxthX7NP3db5cipGLzMxMkkqllJ6eTunp6aShoUGPHz8WRi6IiHbs2EEGBgakoaFBrq6uFBQURImJiaLyUMLIxfr164Xj169fJwCUlJRERER9+/alZs2alRhbXl4eaWpqKo10DB48mPr27SuqIz4+ngICAmjQoEFERDRo0CAaN24cxcfHi36hnzx5Mtna2lJxcbFQ3qpVq0hbW5uKioooLi6OAFB6evp72+tdAITVo1VUVAgAWVpa0tOnT4mIaMuWLUr15ufnk0wmoyNHjhARUdWqVWnKlCkl1nvmzBnS1dWlvLw8UXqtWrVozZo1RPRm5EJTU1MYqSAimjBhAjVt2lTYd3Nzo7Fjx5ZYB1HJIxcNGjQoNb/C9u3bycjISNjv27cvdejQQZSnd+/eopGLNm3a0Ny5c0V5tmzZQmZmZkRENH/+fAIgrIz+rs6dO5O9vT0R/d/3YP78+cLxgoICql69Oi1YsICIiGbNmkXt2rUTlXH//n0CQMnJycL1fvvtt6I8jRs3pokTJ5Z67SWNaIFHLhhjjLEvCo9cVDBjY2N07NgRYWFhCA0NRceOHVG5cmVRnu7duyMjIwORkZHw9PREdHQ0nJ2dERYW9t6ynZychH+bmZkBADIzMwH838hFSW7fvo3c3Fy0bdtWGDnR1tbG5s2bkZqaqpTfz88P27dvx8OHD7F9+3b4+fkp5UlKSoKLi4toonKzZs2Qk5ODv/76C/Xq1UObNm3g6OiInj17Yt26dXj+/Pl7r09hyZIlSEhIwKFDh+Dg4ID169fD0NAQAJCYmIjbt29DR0dHuA5DQ0Pk5eUhNTUVmZmZyMjIKLUtEhMTkZOTAyMjI1FbpKWlidrC0tISOjo6wr6ZmZnQ1h+rYcOGSmnHjh1DmzZtUK1aNejo6GDgwIF4+vQpcnNzAbxp56ZNm4rOcXFxUbqmmTNniq5HMaqiKAdAueZVvF2HmpoaGjVqhKSkJKG+kydPiuqzs7MDAFEbvv19BT7chkFBQcjKyhK2+/fvlzlexhhjjH151D53AF8KPz8/jB49GgCwatWqEvNoaGigbdu2aNu2LaZOnYohQ4Zg+vTpwhulSlKpUiXh34qb+uLiYgCATCYr9bycnBwAwIEDB5QmZpc0adzR0RF2dnbo27cv7O3tUbduXSQkJJRafklUVVURFRWFc+fO4ejRo1ixYgWmTJmCCxcuwMrK6r3nmpqawtraGtbW1ggNDUWHDh1w48YNVKlSBTk5OWjYsCHCw8OVzjM2NoaKyvv7wDk5OTAzM0N0dLTSsbdf7/p2WwNv2lvR1h9LS0tLtJ+eno5OnTph5MiRmDNnDgwNDXH27FkMHjwYr1+/hqamZpnKzcnJwYwZM/Ddd98pHdPQ0ICNjQ2ANx2Vkh4/S0pKgoODQ5mvIycnB15eXliwYIHSMUWnFyh/G0ql0s/yEgPGGGOMfR48clFGiuf/FfMDysLBwQEvX7786DqdnJxw/PjxUsuWSqW4d++ecNOu2EqbK+Dn54fo6OgSRy0AwN7eHufPnxf9Gh4TEwMdHR1Ur14dwJubyWbNmmHGjBmIj4+Huro6du/eDeDNHIqyvAK1SZMmaNiwoTB/wNnZGSkpKahSpYrStejp6UFHRweWlpaltoWzszMePnwINTU1pfPfHWF6n7LG/z5xcXEoLi7G4sWL8c0338DGxgYZGRmiPPb29rhw4YIo7c8//xTtOzs7Izk5Wel6rK2toaKignbt2sHQ0BCLFy9WiiEyMhIpKSno27dvqXUUFhYiLi4O9vb2Qn3Xr1+HpaWlUn3vdqAYY4wxxkrDnYsyUlVVRVJSEm7cuAFVVVXRsadPn6J169b47bffcOXKFaSlpWH79u1YuHAhunTp8tF1BgUF4dKlSxg1ahSuXLmCmzdvIiQkBE+ePIGOjg4CAwMxbtw4bNq0Campqbh8+TJWrFiBTZs2lVje0KFD8fjxYwwZMqTE46NGjcL9+/fx/fff4+bNm9i7dy+mT5+O8ePHQ0VFBRcuXMDcuXMRGxuLe/fuYdeuXXj8+LFwg2ppaYkrV64gOTkZT548QUFBQanXFhAQgDVr1uDBgwfo378/KleujC5duuDMmTNIS0tDdHQ0xowZg7/++gvAmzUnFi9ejOXLlyMlJUW4VgBwd3eHi4sLunbtiqNHjyI9PR3nzp3DlClTEBsbW+b2trS0xIULF5Ceno4nT5581KiGtbU1CgoKsGLFCty5cwdbtmwRJnorjBkzBocPH8aiRYuQkpKClStX4vDhw6I806ZNw+bNmzFjxgxcv34dSUlJ2Lp1K3766ScAb0ZM1qxZg71792LYsGG4cuUK0tPTsWHDBvj6+qJHjx5Kk7FXrVqF3bt34+bNm/D398fz58+Fjqa/vz+ePXuGvn374tKlS0hNTcWRI0cwaNAgXjODMcYYY2XGnYty0NXVha6urlK6trY2mjZtiiVLlqBFixaoW7cupk6diqFDh2LlypUfXZ+NjQ2OHj2KxMRENGnSBC4uLti7dy/U1N48zTZr1ixMnToV8+bNg729PTw9PXHgwIFSH1FSU1ND5cqVhfPfVa1aNRw8eBAXL15EvXr1MGLECAwePFi4odXV1cXp06fRoUMH2NjY4KeffsLixYuFhQGHDh0KW1tbNGrUCMbGxqIFBN/l6ekJKysrzJkzB5qamjh9+jRq1KiB7777Dvb29hg8eDDy8vKE9vbx8cHSpUvx66+/ok6dOujUqRNSUlIAvBlNOXjwIFq0aIFBgwbBxsYGffr0wd27d2FiYlLm9g4MDISqqiocHBxgbGyMe/fulflchXr16uGXX37BggULULduXYSHh2PevHmiPN988w3WrVuHZcuWoV69ejh69KjQxgoeHh7Yv38/jh49isaNG+Obb77BkiVLYGFhIeTp0aMHTp48iXv37qF58+awtbXFkiVLMGXKFGzdulVpkb/58+dj/vz5qFevHs6ePYvIyEhhZKdq1aqIiYlBUVER2rVrB0dHRwQEBEBfX/+Dj6UxxhhjjClIqDwzQhljX5z09HRYWVkhPj4e9evX/6yxZGdnQ09PD1lZWSV21BljjDH2v6c8f7/5J0nGGGOMMcZYheDOBWOMMcYYY6xC8KtoGfvKWVpalms9jH/DqhO3oaGl/bnDYJ/AuLY2nzsExhhjnxGPXDDGBC1btkRAQICwb2lpiaVLl362eBhjjDH2ZeHOBfsinT9/HqqqqujYsePnDqVChYWFQSKRCK/3fdv27dshkUhgaWkpyv/2QoFl4evrC4lEorTdvn0bu3btwqxZs/7hVTDGGGPsv4o7F+yLtGHDBnz//fc4ffq00iJ1FYmIUFhY+MnKL4mWlhYyMzNx/vx5UfqGDRtQo0aNCqnD09MTcrlctFlZWcHQ0BA6OjoVUgdjjDHG/nu4c8G+ODk5Odi2bRtGjhyJjh07IiwsDADQr18/9O7dW5S3oKAAlStXxubNmwEAxcXFmDdvHqysrCCTyVCvXj3s2LFDyB8dHQ2JRIJDhw6hYcOGkEqlOHv2LFJTU9GlSxeYmJhAW1sbjRs3xrFjx0R1yeVydOzYETKZDFZWVoiIiFB6rOjFixcYMmQIjI2Noauri9atWyMxMVFUjpqaGvr164eNGzcKaX/99Reio6PRr1+/97ZNcHAw6tevjy1btsDS0hJ6enro06cP/v77b1E+qVQKU1NT0aaqqqr0WNS7yhI/Y4wxxv67uHPBvjh//PEH7OzsYGtriwEDBmDjxo0gIvTv3x/79u1DTk6OkPfIkSPIzc1Ft27dAADz5s3D5s2bsXr1aly/fh3jxo3DgAEDcOrUKVEdkyZNwvz585GUlAQnJyfk5OSgQ4cOOH78OOLj4+Hp6QkvLy/RQnve3t7IyMhAdHQ0du7cibVr1yIzM1NUbs+ePZGZmYlDhw4hLi4Ozs7OaNOmDZ49eybK5+fnhz/++AO5ubkA3jz+5OnpWaZFAVNTU7Fnzx7s378f+/fvx6lTpzB//vzyNXIpyhq/Qn5+PrKzs0UbY4wxxr5e3LlgX5wNGzZgwIABAN483pOVlYVTp07Bw8MDWlpa2L17t5A3IiICnTt3ho6ODvLz8zF37lxs3LgRHh4eqFmzJnx9fTFgwACsWbNGVMfMmTPRtm1b1KpVC4aGhqhXrx6GDx+OunXronbt2pg1axZq1aqFyMhIAMDNmzdx7NgxrFu3Dk2bNoWzszPWr1+PV69eCWWePXsWFy9exPbt29GoUSPUrl0bixYtgr6+vmj0BAAaNGiAmjVrYseOHSAihIWFwc/Pr0ztU1xcjLCwMNStWxfNmzfHwIEDcfz4cVGe/fv3Q1tbW9h69uz5wXLLE7/CvHnzoKenJ2zm5uZlugbGGGOMfZn4VbTsi5KcnIyLFy8KHQg1NTX07t0bGzZsQMuWLdGrVy+Eh4dj4MCBePnyJfbu3YutW7cCAG7fvo3c3Fy0bdtWVObr16/RoEEDUVqjRo1E+zk5OQgODsaBAwcgl8tRWFiIV69eCSMXycnJUFNTg7Ozs3COtbU1DAwMhP3ExETk5OTAyMhIVParV6+QmpqqdK1+fn4IDQ1FjRo18PLlS3To0AErV678YBtZWlqK5k2YmZkpjaC0atUKISEhwr6WltYHyy1v/AAQFBSE8ePHC/vZ2dncwWCMMca+Yty5YF+UDRs2oLCwEFWrVhXSiAhSqRQrV65E//794ebmhszMTERFRUEmk8HT0xMAhMelDhw4gGrVqonKlUqlov13b7YDAwMRFRWFRYsWwdraGjKZDD169MDr16/LHHtOTg7MzMwQHR2tdKykNz71798fP/74I4KDgzFw4ECoqZXtP9dKlSqJ9iUSCYqLi0VpWlpasLa2LnPsQPnjB96067ttyxhjjLGvF3cu2BejsLAQmzdvxuLFi9GuXTvRsa5du+L333/HiBEjYG5ujm3btuHQoUPo2bOncLPt4OAAqVSKe/fuwc3NrVx1x8TEwNfXV5i7kZOTg/T0dOG4ra0tCgsLER8fj4YNGwJ4M1Ly/PlzIY+zszMePnwINTU10etkS2NoaIjOnTvjjz/+wOrVq8sV76dQ3vgZY4wx9t/DnQv2xdi/fz+eP3+OwYMHQ09PT3Sse/fu2LBhA0aMGIF+/fph9erVuHXrFk6ePCnk0dHRQWBgIMaNG4fi4mJ8++23yMrKQkxMDHR1deHj41Nq3bVr18auXbvg5eUFiUSCqVOnikYD7Ozs4O7ujmHDhiEkJASVKlXCDz/8AJlMBolEAgBwd3eHi4sLunbtioULF8LGxgYZGRk4cOAAunXrpvQoFvBmIvevv/6q9CjS5/Ax8TPGGGPsv4UndLMvxoYNG+Du7q7UsQDedC5iY2Nx5coV9O/fHzdu3EC1atXQrFkzUb5Zs2Zh6tSpmDdvHuzt7eHp6YkDBw7AysrqvXX/8ssvMDAwgKurK7y8vODh4SGaXwEAmzdvhomJCVq0aIFu3bph6NCh0NHRgYaGBoA3jycdPHgQLVq0wKBBg2BjY4M+ffrg7t27pb4FSiaT/U90LICPi58xxhhj/y0SIqLPHQRjX6O//voL5ubmOHbsGNq0afO5w/mfkJ2dDT09PWRlZUFXV/dzh8MYY4yxMijP329+LIqxCnLixAnk5OTA0dERcrkcP/74IywtLdGiRYvPHRpjjDHG2L+COxeMVZCCggJMnjwZd+7cgY6ODlxdXREeHq709ibGGGOMsa8VPxbFvgjR0dFo1aoVnj9/XuprT98WExODESNG4ObNm+jYsSP27NnzyWP8EqWnp8PKygrx8fGoX7/+J69PMaw6d3ccNLS0P3l97N8xrq3N5w6BMcbYJ1Sex6J4QvdXxtfXFxKJBPPnzxel79mzR3hr0ad06tQptG7dGoaGhtDU1ETt2rXh4+NTrvUgWrZsiYCAAFGaq6sr5HJ5iZO5SzJ+/HjUr18faWlpCAsLK8cVlE4ikfwrnZTo6GhIJJL3biWtNcEYY4wx9rlx5+IrpKGhgQULFojWWPg33LhxA56enmjUqBFOnz6Nq1evYsWKFVBXV0dRUdE/KltdXR2mpqZl7iClpqaidevWqF69eplGOv5NBQUF7z2u6Egptl69esHT01OU5urqKuQvT8eNMcYYY+xT4s7FV8jd3R2mpqaYN29eiceDg4OVHoFZunSpaGE0X19fdO3aFXPnzoWJiQn09fUxc+ZMFBYWYsKECTA0NET16tURGhoqnHP06FGYmppi4cKFqFu3LmrVqgVPT0+sW7cOMpkMAPD06VP07dsX1apVg6amJhwdHfH777+L6j116hSWLVsm/Eqfnp4u/Jr/4sULAMDdu3fh5eUFAwMDaGlpoU6dOjh48CDS09MhkUjw9OlT+Pn5QSKRICwsDEVFRRg8eDCsrKwgk8lga2uLZcuWKbXNxo0bUadOHUilUpiZmWH06NEAILRNt27dIJFIRG0VEhKCWrVqQV1dHba2ttiyZYuoTIlEgpCQEHTu3BlaWlqYPXs2rK2tsWjRIlG+hIQESCQS3Lt3D6ampsImk8kglUqF/dWrV6NJkyZYv349rKyshFfdHj58GN9++y309fVhZGSETp06ITU1VVTHxYsX0aBBA2hoaKBRo0aIj49XaoNr166hffv20NbWhomJCQYOHIgnT54Ix3fs2AFHR0fhNbnu7u54+fKlUjmMMcYY++/hzsVXSFVVFXPnzsWKFSvw119/fXQ5J06cQEZGBk6fPo1ffvkF06dPR6dOnWBgYIALFy5gxIgRGD58uFCHqakp5HI5Tp8+XWqZeXl5aNiwIQ4cOIBr165h2LBhGDhwIC5evAgAWLZsGVxcXDB06FDhV3pzc3Olcvz9/ZGfny+MkCxYsADa2towNzeHXC6Hrq4uli5dCrlcjt69e6O4uBjVq1fH9u3bcePGDUybNg2TJ0/GH3/8IZQZEhICf39/DBs2DFevXkVkZCSsra0BAJcuXQIAhIaGQi6XC/u7d+/G2LFj8cMPP+DatWsYPnw4Bg0aJFq8D3jToevWrRuuXr2KwYMHw8/PT9QxU5TdokULoc73uX37Nnbu3Ildu3YhISEBAPDy5UuMHz8esbGxOH78OFRUVNCtWzdhsb+cnBx06tQJDg4OiIuLQ3BwMAIDA0XlvnjxAq1bt0aDBg0QGxuLw4cP49GjR+jVqxcAQC6Xo2/fvvDz80NSUhKio6Px3XffgaduMcYYYwzgt0V9tbp164b69etj+vTp2LBhw0eVYWhoiOXLl0NFRQW2trZYuHAhcnNzMXnyZABAUFAQ5s+fj7Nnz6JPnz7o2bMnjhw5Ajc3N5iamuKbb75BmzZt4O3tLUz+qVatmuiG9vvvv8eRI0fwxx9/oEmTJtDT04O6ujo0NTVhampaamz37t1D9+7d4ejoCACoWbOmcEzx+JSenp6ojBkzZgj/trKywvnz5/HHH38IN86zZ8/GDz/8gLFjxwr5GjduDAAwNjYGAOjr64vKXLRoEXx9fTFq1CgAb+Z6/Pnnn1i0aBFatWol5OvXrx8GDRok7Pv6+mLatGm4ePEimjRpgoKCAkRERCiNZpTm9evX2Lx5sxAX8GYhwbdt3LgRxsbGuHHjBurWrYuIiAgUFxdjw4YN0NDQQJ06dfDXX39h5MiRwjkrV65EgwYNMHfuXFE55ubmuHXrFnJyclBYWIjvvvsOFhYWACB8BiXJz89Hfn6+sJ+dnV2m62OMMcbYl4lHLr5iCxYswKZNm5CUlPRR59epUwcqKv/3FTExMRHdSKqqqsLIyAiZmZnCfmhoKP766y8sXLgQ1apVw9y5c1GnTh3I5XIAQFFREWbNmgVHR0cYGhpCW1sbR44cwb1798oV25gxYzB79mw0a9YM06dPx5UrVz54zqpVq9CwYUMYGxtDW1sba9euFerNzMxERkZGuRe7S0pKUloFvFmzZkpt3qhRI9F+1apV0bFjR2zcuBEAsG/fPuTn56Nnz55lqtfCwkLUsQCAlJQU9O3bFzVr1oSurq7w6JbiGpOSkuDk5CQ8RgUALi4uojISExNx8uRJaGtrC5udnR2AN/NY6tWrhzZt2sDR0RE9e/bEunXr3ju3Z968edDT0xO2kkahGGOMMfb14M7FV6xFixbw8PBAUFCQKF1FRUXpMZaSJhm/uz6DRCIpMU3x2I1CtWrVMHDgQKxcuRLXr19HXl4eVq9eDQD4+eefsWzZMkycOBEnT55EQkICPDw8yj0peciQIbhz5w4GDhyIq1evolGjRlixYkWp+bdu3YrAwEAMHjwYR48eRUJCAgYNGiTUq5gT8qloaWkppQ0ZMgRbt27Fq1evEBoait69e0NTU/Ojy/Py8sKzZ8+wbt06XLhwARcuXABQvgnfOTk58PLyQkJCgmhLSUlBixYtoKqqiqioKBw6dAgODg5YsWIFbG1tkZaWVmJ5QUFByMrKErb79++XORbGGGOMfXm4c/GVmz9/Pvbt24fz588LacbGxnj48KGog6F4br+iGRgYwMzMTJjwGxMTgy5dumDAgAGoV68eatasiVu3bonOKevbpczNzTFixAjs2rULP/zwA9atW1dq3piYGLi6umLUqFFo0KABrK2tRZOddXR0YGlpiePHj5daRqVKlZTisre3R0xMjFJdDg4OH4y/Q4cO0NLSQkhICA4fPgw/P78PnlOap0+fIjk5GT/99BPatGkDe3t7pREFe3t7XLlyBXl5eULan3/+Kcrj7OyM69evw9LSEtbW1qJN0aGRSCRo1qwZZsyYgfj4eKirq2P37t0lxiWVSqGrqyvaGGOMMfb14s7FV87R0RH9+/fH8uXLhbSWLVvi8ePHWLhwIVJTU7Fq1SocOnToH9e1Zs0ajBw5EkePHkVqaiquX7+OiRMn4vr16/Dy8gIA1K5dG1FRUTh37hySkpIwfPhwPHr0SFSOpaUlLly4gPT0dDx58kRpZAQAAgICcOTIEaSlpeHy5cs4efIk7O3tS42tdu3aiI2NxZEjR3Dr1i1MnTpVmJStEBwcjMWLF2P58uVISUnB5cuXRaMhis7Hw4cPhRv3CRMmICwsDCEhIUhJScEvv/yCXbt2KU2ULomqqip8fX0RFBSE2rVrKz2iVB4GBgYwMjLC2rVrcfv2bZw4cQLjx48X5enXrx8kEgmGDh2KGzdu4ODBg0pzPPz9/fHs2TP07dsXly5dQmpqKo4cOYJBgwahqKgIFy5cwNy5cxEbG4t79+5h165dePz48XvbnjHGGGP/Hdy5+A+YOXOm6Abd3t4ev/76K1atWoV69erh4sWLZboZ/pAmTZogJycHI0aMQJ06deDm5oY///wTe/bsgZubGwDgp59+grOzMzw8PNCyZUuYmpqia9euonICAwOhqqoKBwcHGBsblzgfo6ioCP7+/rC3t4enpydsbGzw66+/lhrb8OHD8d1336F3795o2rQpnj59KkzCVvDx8cHSpUvx66+/ok6dOujUqRNSUlKE44sXL0ZUVBTMzc3RoEEDAEDXrl2xbNkyLFq0CHXq1MGaNWsQGhqKli1blqnNBg8ejNevX4sme38MFRUVbN26FXFxcahbty7GjRuHn3/+WZRHW1sb+/btw9WrV9GgQQNMmTIFCxYsEOWpWrUqYmJiUFRUhHbt2sHR0REBAQHQ19eHiooKdHV1cfr0aXTo0AE2Njb46aefsHjxYrRv3/4fxc8YY4yxr4OE+B2SjH02Z86cQZs2bXD//n2YmJh87nA+uezsbOjp6WHu7jhoaGl/7nBYBRnX1uZzh8AYY+wTUvz9zsrK+uAjzvwqWsY+g/z8fDx+/BjBwcHo2bPnf6Jj8Tb/1tY8/4Ixxhj7CvFjUYx9Br///jssLCzw4sULLFy48HOHwxhjjDFWIfixKMbYv6Y8w6qMMcYY+99Qnr/fPHLxBYiOjoZEIsGLFy8+dyjsf1B6ejokEskne50wY4wxxlhZffGdC19fX0gkEsyfP1+UvmfPHkgkkk9Wb1hYGCQSyXu39PT0T1b/P/XgwQMMGDAARkZGkMlkcHR0RGxsrHCciDBt2jSYmZlBJpPB3d1d9OYkAKVe99atWz9p7AUFBZg4cSIcHR2hpaWFqlWrwtvbGxkZGaXGp6Wlhdq1a8PX1xdxcXGfNL7ysrS0FMXp7OyM7du3V2gdig6IYjM0NISbmxvOnDlTofUwxhhj7L/ti+9cAICGhgYWLFigtGjYp9S7d2/I5XJhc3FxwdChQ0Vp5ubmQv7yrkD9KT1//hzNmjVDpUqVcOjQIdy4cQOLFy+GgYGBkGfhwoVYvnw5Vq9ejQsXLkBLSwseHh6iBdgAIDQ0VHTNcrlc6dWyFen169fIzc3F5cuXMXXqVFy+fBm7du1CcnIyOnfurJRfEd/169exatUq5OTkoGnTpti8efM/jqMizZw5E3K5HPHx8WjcuDF69+6Nc+fOVWgdAHDs2DHI5XKcPn0aVatWRadOnZTWGWGMMcYY+1hfRefC3d0dpqammDdvXonHg4ODUb9+fVHa0qVLYWlpKez7+vqia9eumDt3LkxMTKCvr4+ZM2eisLAQEyZMgKGhIapXr47Q0FAAgEwmg6mpqbCpq6tDU1NT2J80aRK6d++OOXPmoGrVqrC1tQUAbNmyBY0aNYKOjg5MTU3Rr18/ZGZmimI7ePAgbGxsIJPJ0KpVqxJHQM6ePYvmzZtDJpPB3NwcY8aMEVbBBoBff/0VtWvXhoaGBkxMTNCjRw/h2IIFC2Bubo7Q0FA0adIEVlZWaNeuHWrVqgXgzajF0qVL8dNPP6FLly5wcnLC5s2bkZGRgT179oji0NfXF7WDqakpNDQ0kJ2dDZlMprQ43+7du6Gjo4Pc3FwAwP3799GrVy/o6+vD0NAQXbp0EV2v4nN5ux319PQQFRWFXr16wdbWFt988w1WrlyJuLg4pTUxFPFZWlqiXbt22LFjB/r374/Ro0eLOqMfak9LS0vMmjUL3t7e0NXVxbBhwwAAO3fuRJ06dSCVSmFpaYnFixeL6pfL5ejYsSNkMhmsrKwQEREBS0tLLF26VJRP8X2wsbHBqlWrIJPJsG/fPgBvRmBKavewsDBR2s2bN+Hq6goNDQ3UrVsXp06dwruMjIxgamqKunXrYvLkycjOzsaFCxeE49euXUP79u2hra0NExMTDBw4EE+ePBGOFxcXY+HChbC2toZUKkWNGjUwZ84cpXoYY4wx9t/0VXQuVFVVMXfuXKxYsQJ//fXXR5dz4sQJZGRk4PTp0/jll18wffp0dOrUCQYGBrhw4QJGjBiB4cOHl7mO48ePIzk5GVFRUdi/fz+AN4/0zJo1C4mJidizZw/S09Ph6+srnHP//n1899138PLyQkJCAoYMGYJJkyaJyk1NTYWnpye6d++OK1euYNu2bTh79ixGjx4NAIiNjcWYMWMwc+ZMJCcn4/Dhw2jRooVwfmRkJBo1aoSePXuiSpUqaNCgAdatWyccT0tLw8OHD+Hu7i6k6enpoWnTpjh//nyZrl1XVxedOnVCRESEKD08PBxdu3aFpqYmCgoK4OHhAR0dHZw5cwYxMTHQ1taGp6enaGSgpHZ8V1ZWFiQSCfT19T8Y27hx4/D3338jKioKwIfbU2HRokWoV68e4uPjMXXqVMTFxaFXr17o06cPrl69iuDgYEydOlV00694XCs6Oho7d+7E2rVrlTqT71JTU0OlSpXKPToyYcIE/PDDD4iPj4eLiwu8vLzw9OnTEvO+evVKGL1RV1cHALx48QKtW7dGgwYNEBsbi8OHD+PRo0fo1auXcF5QUBDmz5+PqVOn4saNG4iIiPjPvUaXMcYYY+9BXzgfHx/q0qULERF988035OfnR0REu3fvJsXlTZ8+nerVqyc6b8mSJWRhYSEqx8LCgoqKioQ0W1tbat68ubBfWFhIWlpa9PvvvyvF4ebmRmPHjhWVZ2JiQvn5+e+N/9KlSwSA/v77byIiCgoKIgcHB1GeiRMnEgB6/vw5ERENHjyYhg0bJspz5swZUlFRoVevXtHOnTtJV1eXsrOzS6xTKpWSVCqloKAgunz5Mq1Zs4Y0NDQoLCyMiIhiYmIIAGVkZIjO69mzJ/Xq1UvYB0AaGhqkpaUl2u7evUtEbz4DbW1tevnyJRERZWVlkYaGBh06dIiIiLZs2UK2trZUXFwslJmfn08ymYyOHDlS5nZ89eoVOTs7U79+/UTpAGj37t0l5gdACxYsKFN7EhFZWFhQ165dRXn69etHbdu2FaVNmDBB+PySkpIIAF26dEk4npKSQgBoyZIlQpqFhYWwn5+fT3PnziUAtH///lKvQ09Pj0JDQ4mIKC0tjQDQ/PnzheMFBQVUvXp14RoVeWQyGWlpaZFEIiEA1LBhQ3r9+jUREc2aNYvatWsnquf+/fsEgJKTkyk7O5ukUimtW7dOqU1Lk5eXR1lZWcKmKC8rK6vMZTDGGGPs88rKyirz3++vYuRCYcGCBdi0aROSkpI+6vw6depAReX/msTExASOjo7CvqqqKoyMjD74y7OCo6Oj8KuwQlxcHLy8vFCjRg3o6OjAzc0NAITHeZKSktC0aVPROS4uLqL9xMREhIWFQVtbW9g8PDxQXFyMtLQ0tG3bFhYWFqhZsyYGDhyI8PBw4TEk4M2jLc7Ozpg7dy4aNGiAYcOGYejQoVi9enWZruttS5YsQUJCgmirWrUqAKBDhw6oVKkSIiMjAbx5hEhXV1cYEUlMTMTt27eho6MjXIehoSHy8vKQmpr63nZUKCgoQK9evUBECAkJKVPM9P/fvqyY8P+h9lRo1KiRqJykpCQ0a9ZMlNasWTOkpKSgqKgIycnJUFNTg7Ozs3Dc2tpaNLdFYeLEidDW1oampiYWLFiA+fPno2PHjmW6HoW3vydqampo1KiR0n8L27ZtQ3x8PHbu3Alra2uEhYWhUqVKQjucPHlS1A52dnYA3ozuJCUlIT8/H23atClzTPPmzYOenp6wvT0PiTHGGGNfn69qhe4WLVrAw8MDQUFBokeNVFRUhBtKhYKCAqXzFTdZChKJpMS04uLiMsWjpaUl2n/58iU8PDzg4eGB8PBwGBsb4969e/Dw8CjXIzA5OTkYPnw4xowZo3SsRo0aUFdXx+XLlxEdHY2jR49i2rRpCA4OxqVLl6Cvrw8zMzM4ODiIzrO3t8fOnTsBAKampgCAR48ewczMTMjz6NEjpbkrpqamsLa2LjFOdXV19OjRAxEREejTpw8iIiLQu3dvqKmpCdfRsGFDhIeHK51rbGws/PvddlRQdCzu3r2LEydOlHndBMUNt5WVlRDH+9rzQ3FUhAkTJsDX11eY6/D2m84kEkmZvr9lYW5ujtq1a6N27dooLCxEt27dcO3aNUilUuTk5MDLywsLFixQOs/MzAx37twpd31BQUEYP368sJ+dnc0dDMYYY+wr9lWNXADA/PnzsW/fPtHcAGNjYzx8+FB0g/Y51gS4efMmnj59ivnz56N58+aws7NTGgWxt7fHxYsXRWl//vmnaN/Z2Rk3btyAtbW10qb4hV9NTQ3u7u5YuHAhrly5gvT0dJw4cQLAm1/Xk5OTRWXeunULFhYWAN7cdJuamuL48ePCccXE33dHUT6kf//+OHz4MK5fv44TJ06gf//+outISUlBlSpVlK5DT0/vveUqOhYpKSk4duwYjIyMyhzT0qVLRSMoZWnPktjb2yMmJkaUFhMTAxsbG6iqqsLW1haFhYWIj48Xjt++fbvEt5pVrlwZ1tbWMDU1VXqFsrGxMeRyubCfkpIiGolSePt7UlhYiLi4ONjb25caf48ePaCmpoZff/1VaIfr16/D0tJSqR0Ur/KVyWSi78WHSKVS6OrqijbGGGOMfb2+us6Fo6Mj+vfvj+XLlwtpLVu2xOPHj7Fw4UKkpqZi1apVSm8x+jcoRhVWrFiBO3fuIDIyErNmzRLlGTFiBFJSUjBhwgQkJycjIiJC6a1AEydOxLlz5zB69GgkJCQgJSUFe/fuFSYg79+/H8uXL0dCQgLu3r2LzZs3o7i4WHhj1bhx4/Dnn39i7ty5uH37NiIiIrB27Vr4+/sDePNLeUBAAGbPno3IyEhcvXoV3t7eqFq1qtJrZl+8eIGHDx+KtrffstSiRQuYmpqif//+sLKyEj3y1b9/f1SuXBldunTBmTNnkJaWhujoaIwZM+a9k+YLCgrQo0cPxMbGIjw8HEVFRULd744AKeK7e/cuoqKihJGUkJAQYfL3h9qzND/88AOOHz+OWbNm4datW9i0aRNWrlyJwMBAAICdnR3c3d0xbNgwXLx4EfHx8Rg2bBhkMlm51mBp3bo1Vq5cifj4eMTGxmLEiBFKI2oAsGrVKuzevRs3b96Ev78/nj9/Dj8/v1LLlUgkGDNmDObPn4/c3Fz4+/vj2bNn6Nu3Ly5duoTU1FQcOXIEgwYNQlFRETQ0NDBx4kT8+OOP2Lx5M1JTU/Hnn39iw4YNZb4WxhhjjH3lPu30j0/v7QndCmlpaaSurk5vX15ISAiZm5uTlpYWeXt705w5c5QmdL9bzruTtInEk2/fl7ek8oiIIiIiyNLSkqRSKbm4uFBkZCQBoPj4eCHPvn37yNramqRSKTVv3pw2btwomtBNRHTx4kVq27YtaWtrk5aWFjk5OdGcOXOI6M1kZDc3NzIwMCCZTEZOTk60bds2URz79u2junXrklQqJTs7O1q7dq3oeHFxMU2dOpVMTExIKpVSmzZtKDk5WZQHQInbvHnzRPl+/PFHAkDTpk1Tag+5XE7e3t5UuXJlkkqlVLNmTRo6dKgwYai0z7e0uk+ePFlifBoaGlSrVi3y8fGhuLg4pTje155EpX/uO3bsIAcHB6pUqRLVqFGDfv75Z9HxjIwMat++PUmlUrKwsKCIiAiqUqUKrV69+oNlKzx48IDatWtHWlpaVLt2bTp48GCJE7ojIiKoSZMmpK6uTg4ODnTixAmlNnv7e0ZE9PLlSzIwMBAmft+6dYu6detG+vr6JJPJyM7OjgICAoRJ90VFRTR79myysLAQrnnu3Lmlxv6u8kwIY4wxxtj/hvL8/ZYQvfMwN2Psk/nrr79gbm6OY8eOlWti9NciOzsbenp6yMrK4kekGGOMsS9Eef5+f1UTuhn7X3PixAnk5OTA0dERcrkcP/74IywtLUXrjjDGGGOMfS24c8HYJ1RQUIDJkyfjzp070NHRgaurK8LDw0ucM8EYY4wx9qXjx6IYY/8afiyKMcYY+/KU5+/3V/e2qK9RdHQ0JBIJXrx48blDYf+D0tPTIZFIPsvrlRljjDHG3vbFdy58fX0hkUgwf/58UfqePXvK9brP8goLC4NEInnvlp6e/snq/yf+/vtvBAQEwMLCAjKZDK6urrh06ZIoDxFh2rRpMDMzg0wmg7u7O1JSUkR5SrvurVu3ftL4CwoKMHHiRDg6OkJLSwtVq1aFt7c3MjIySo1PsU6Dr68v4uLiPml85WVpaSmK09nZGdu3b6/QOhQdEMVmaGgINzc3nDlzpkLrYYwxxth/2xffuQAADQ0NLFiwoMTFyT6V3r17Qy6XC5uLiwuGDh0qSnt7JeLyrMD9qQ0ZMgRRUVHYsmULrl69inbt2sHd3R0PHjwQ8ixcuBDLly/H6tWrceHCBWhpacHDwwN5eXmiskJDQ0XXLJfLldbCqEivX79Gbm4uLl++jKlTp+Ly5cvYtWsXkpOT0blzZ6X8iviuX7+OVatWIScnB02bNsXmzZv/cRwVaebMmZDL5YiPj0fjxo3Ru3dvnDt3rkLrAIBjx45BLpfj9OnTqFq1Kjp16oRHjx5VeD2MMcYY+4/6tG/F/fR8fHyoU6dOZGdnRxMmTBDSd+/eLaxzMX36dKpXr57ovCVLlpS4zsWcOXOoSpUqpKenRzNmzKCCggIKDAwkAwMDqlatGm3cuLHEOEpb52L27NlkZmZGlpaWRES0efNmatiwIWlra5OJiQn17duXHj16JCrrwIEDVLt2bdLQ0KCWLVtSaGio0joXZ86coW+//ZY0NDSoevXq9P3331NOTo5wfNWqVcJaGVWqVKHu3bsTEVFubi6pqqrS/v37RXU6OzvTlClTiOjNGhempqaiNRtevHhBUqmUfv/9dyENAO3evbvE9sjKyiINDQ06ePCgKH3Xrl2kra1NL1++JCKie/fuUc+ePUlPT48MDAyoc+fOlJaW9sF2fNfFixcJAN29e/eD8Xl7e5OOjg49e/ZMSPtQe1pYWNDMmTNp4MCBpKOjQz4+PkT0f+tcqKurk4WFBS1atEhUV0ZGBnXo0IE0NDTI0tKSwsPDlda1eHe/oKCANDU1adKkSaVeR0nrXPz+++/k4uJCUqmU6tSpQ9HR0UL+kta5uHLlCgGgvXv3CmlXr14lT09P0tLSoipVqtCAAQPo8ePHwvGioiJasGAB1apVi9TV1cnc3Jxmz56t1Mal4XUuGGOMsS9Pef5+fxUjF6qqqpg7dy5WrFjx3pWdP+TEiRPIyMjA6dOn8csvv2D69Ono1KkTDAwMcOHCBYwYMQLDhw8vcx3Hjx9HcnIyoqKisH//fgBvHumZNWsWEhMTsWfPHqSnp8PX11c45/79+/juu+/g5eWFhIQEDBkyBJMmTRKVm5qaCk9PT3Tv3h1XrlzBtm3bcPbsWWFF6djYWIwZMwYzZ85EcnIyDh8+LLz6tLCwUFht+W0ymQxnz54FAKSlpeHhw4dwd3cXjuvp6aFp06Y4f/58ma5dV1cXnTp1QkREhCg9PDwcXbt2haamJgoKCuDh4QEdHR2cOXMGMTEx0NbWhqenp2hkoKR2fFdWVhYkEomw6vb7jBs3Dn///TeioqIAfLg9FRYtWoR69eohPj4eU6dORVxcHHr16oU+ffrg6tWrCA4OxtSpU0Urqise14qOjsbOnTuxdu1aZGZmvjc+NTU1VKpUqdyjIxMmTMAPP/yA+Ph4uLi4wMvLC0+fPi0x76tXr4TRG3V1dQBvVjNv3bo1GjRogNjYWBw+fBiPHj1Cr169hPOCgoIwf/58TJ06FTdu3EBERARMTExKjSk/Px/Z2dmijTHGGGNfsX+hs/NJvb2C8zfffEN+fn5E9HEjFxYWFlRUVCSk2draUvPmzYX9wsJC0tLSEv16r1DSyIWJiQnl5+e/N/5Lly4RAPr777+JiCgoKIgcHBxEeSZOnCgauRg8eDANGzZMlOfMmTOkoqJCr169op07d5Kuri5lZ2eXWKeLiwu5ubnRgwcPqLCwkLZs2UIqKipkY2NDREQxMTEEgDIyMkTn9ezZk3r16iXs4/+vfK2lpSXaFKMHu3fvFo1SKEYzDh06REREW7ZsIVtbW2H1ZyKi/Px8kslkdOTIkTK346tXr8jZ2Zn69esnSkcpIxevXr0iAMKq1B9qT6I3owtdu3YV5enXrx+1bdtWlDZhwgTh80tKSiIAdOnSJeF4SkoKASh15CI/P5/mzp1LAITRpZKuo6SRi/nz5wvHCwoKqHr16sI1KvLIZDLS0tIiiURCAKhhw4b0+vVrIiKaNWsWtWvXTlTP/fv3CQAlJydTdnY2SaVSWrdunVKblmb69OklrqTOIxeMMcbYl+M/N3KhsGDBAmzatAlJSUkfdX6dOnWgovJ/TWJiYgJHR0dhX1VVFUZGRh/85VnB0dFR+FVYIS4uDl5eXqhRowZ0dHTg5uYGALh37x4AICkpCU2bNhWd4+LiItpPTExEWFgYtLW1hc3DwwPFxcVIS0tD27ZtYWFhgZo1a2LgwIEIDw9Hbm6ucP6WLVtARKhWrRqkUimWL1+Ovn37iq69rJYsWYKEhATRVrVqVQBAhw4dUKlSJURGRgIAdu7cCV1dXWFEJDExEbdv34aOjo5wHYaGhsjLy0Nqaup721GhoKAAvXr1AhEhJCSkTDHT/3/7smLC/4faU6FRo0aicpKSktCsWTNRWrNmzZCSkoKioiIkJydDTU0Nzs7OwnFra2sYGBgoxTRx4kRoa2tDU1MTCxYswPz589GxY8cyXY/C298TNTU1NGrUSOm/hW3btiE+Ph47d+6EtbU1wsLChDU3EhMTcfLkSVE72NnZAXgzupOUlIT8/PxyrSweFBSErKwsYbt//365rokxxhhjX5avahG9Fi1awMPDA0FBQaJHjVRUVIQbSoWCggKl899d2EwikZSYVlxcXKZ4tLS0RPsvX76Eh4cHPDw8EB4eDmNjY9y7dw8eHh7legQmJycHw4cPx5gxY5SO1ahRA+rq6rh8+TKio6Nx9OhRTJs2DcHBwbh06RL09fVRq1YtnDp1Ci9fvkR2djbMzMzQu3dv1KxZEwBgamoKAHj06BHMzMyEsh89eoT69euL6jM1NYW1tXWJcaqrq6NHjx6IiIhAnz59EBERgd69e0NNTU24joYNGyI8PFzpXGNjY+Hf77ajgqJjcffuXZw4caLM6yYobritrKyEON7Xnh+KoyJMmDABvr6+0NbWhomJiehNZxKJpEzf37IwNzdH7dq1Ubt2bRQWFqJbt264du0apFIpcnJy4OXlhQULFiidZ2Zmhjt37pS7PqlUCqlU+lGxMsYYY+zL81WNXADA/PnzsW/fPtHcAGNjYzx8+FB0g/Y51gS4efMmnj59ivnz56N58+aws7NTGgWxt7fHxYsXRWl//vmnaN/Z2Rk3btyAtbW10qb4hV9NTQ3u7u5YuHAhrly5gvT0dJw4cUJUjpaWFszMzPD8+XMcOXIEXbp0AfDmptvU1BTHjx8X8mZnZ+PChQtKoygf0r9/fxw+fBjXr1/HiRMn0L9/f9F1pKSkoEqVKkrXoaen995yFR2LlJQUHDt2DEZGRmWOaenSpaIRlLK0Z0ns7e0RExMjSouJiYGNjQ1UVVVha2uLwsJCxMfHC8dv375d4lvNKleuDGtra5iamiq9QtnY2BhyuVzYT0lJEY1EKbz9PSksLERcXBzs7e1Ljb9Hjx5QU1PDr7/+KrTD9evXYWlpqdQOilf5ymQy0feCMcYYY+xtX13nwtHREf3798fy5cuFtJYtW+Lx48dYuHAhUlNTsWrVKhw6dOhfj00xqrBixQrcuXMHkZGRmDVrlijPiBEjkJKSggkTJiA5ORkRERGiCcLAm0dozp07h9GjRyMhIQEpKSnYu3evMAF5//79WL58ORISEnD37l1s3rwZxcXFsLW1BQAcOXIEhw8fRlpaGqKiotCqVSvY2dlh0KBBAN78Uh4QEIDZs2cjMjISV69ehbe3N6pWrar0mtkXL17g4cOHou3ly5fC8RYtWsDU1BT9+/eHlZWV6JGv/v37o3LlyujSpQvOnDmDtLQ0REdHY8yYMe+dNF9QUIAePXogNjYW4eHhKCoqEup+dwRIEd/du3cRFRUljKSEhIQIk78/1J6l+eGHH3D8+HHMmjULt27dwqZNm7By5UoEBgYCAOzs7ODu7o5hw4bh4sWLiI+Px7BhwyCTycq1Bkvr1q2xcuVKxMfHIzY2FiNGjFAaUQOAVatWYffu3bh58yb8/f3x/Plz+Pn5lVquRCLBmDFjMH/+fOTm5sLf3x/Pnj1D3759cenSJaSmpuLIkSMYNGiQ8BKAiRMn4scff8TmzZuRmpqKP//8Exs2bCjztTDGGGPsK/dJZ3/8C96e0K2QlpZG6urq9PblhYSEkLm5OWlpaZG3tzfNmTOnxFfRvu3dSdpEyq8NLS1vSeUREUVERJClpSVJpVJycXGhyMhIpVeE7tu3T3iNbPPmzWnjxo1Kr6K9ePEitW3blrS1tUlLS4ucnJxozpw5RPRmMrKbmxsZGBiQTCYjJycn2rZtm3Dutm3bqGbNmqSurk6mpqbk7+9PL168EMVZXFxMU6dOJRMTE5JKpdSmTRtKTk4W5UEJE3UB0Lx580T5fvzxRwJA06ZNU2oPuVxO3t7eVLlyZZJKpVSzZk0aOnSoMGGotM+3tLpPnjxZYnwaGhpUq1Yt8vHxobi4OKU43teeRKV/7opX0VaqVIlq1Kghen0v0ZtX0bZv356kUilZWFhQREQEValShVavXv3BshUePHhA7dq1Iy0tLapduzYdPHiwxAndERER1KRJE1JXVycHBwc6ceKEUpu9/T0jInr58iUZGBgIE79v3bpF3bp1I319fZLJZGRnZ0cBAQHCpPuioiKaPXs2WVhYCNc8d+7cUmN/F7+KljHGGPvylOfvt4TonYe5GWOfzF9//QVzc3McO3asXBOjvxbZ2dnQ09NDVlZWmefIMMYYY+zzKs/f769qQjdj/2tOnDiBnJwcODo6Qi6X48cff4SlpaWw7ghjjDHG2NeEOxeMfUIFBQWYPHky7ty5Ax0dHbi6uiI8PLzEOROMMcYYY186fiyKMfav4ceiGGOMsS9Pef5+f3Vvi2JMwdfXV+ntVqzsgoODldY1YYwxxhh7H+5cfCF8fX0hkUggkUigrq4Oa2trzJw5E4WFhZ87tPeSSCTYs2ePsN+yZUvhOkraWrZs+dli/RCJRAINDQ3cvXtXlN61a1fRoo2f09vfk0qVKsHExARt27bFxo0by7z4I2OMMcbYx+LOxRfE09MTcrkcKSkp+OGHHxAcHIyff/653OUUFRV9thvNXbt2QS6XQy6XC4sFHjt2TEjbtWuXKP/HrkT9qUgkEkybNu1zh6Hk7fU9FN+T9PR0HDp0CK1atcLYsWPRqVOn//nOKGOMMca+bNy5+IJIpVKYmprCwsICI0eOhLu7OyIjI5Gfn4/AwEBUq1YNWlpaaNq0KaKjo4XzwsLCoK+vj8jISDg4OEAqleLevXvIz8/HxIkTYW5uDqlUCmtra9GCaNeuXUP79u2hra0NExMTDBw4EE+ePBGOt2zZEmPGjMGPP/4IQ0NDmJqaIjg4WDhuaWkJAOjWrRskEgksLS2FfKampjA2NgYAGBkZCWlGRkYICQlB586doaWlhTlz5qCoqAiDBw+GlZUVZDIZbG1tsWzZMlHbFBUVYfz48dDX14eRkRF+/PFHvDudqLi4GPPmzRPKqVevHnbs2CEcf/78Ofr37w9jY2PIZDLUrl0boaGhojJGjx6N3377DdeuXSv1c3pfPcXFxahevTpCQkJE58THx0NFRUUYFXnx4gWGDBkCY2Nj6OrqonXr1khMTBTyKx5ZWr9+PaysrKChoSEcU3xPqlWrBmdnZ0yePBl79+7FoUOHRAsyfqiOd5XUxj4+PvzoGWOMMcYE3Ln4gslkMrx+/RqjR4/G+fPnsXXrVly5cgU9e/aEp6cnUlJShLy5ublYsGAB1q9fj+vXr6NKlSrw9vbG77//juXLlyMpKQlr1qyBtrY2gDc3nq1bt0aDBg0QGxuLw4cP49GjR+jVq5cohk2bNkFLSwsXLlzAwoULMXPmTERFRQEALl26BAAIDQ2FXC4X9j8kODgY3bp1w9WrV+Hn5yfckG/fvh03btzAtGnTMHnyZPzxxx/COYsXL0ZYWBg2btyIs2fP4tmzZ9i9e7eo3Hnz5mHz5s1YvXo1rl+/jnHjxmHAgAE4deoUAGDq1Km4ceMGDh06hKSkJISEhKBy5cqiMpo1a4ZOnTph0qRJpcb/vnpUVFTQt29fREREiM4JDw9Hs2bNYGFhAQDo2bMnMjMzcejQIcTFxcHZ2Rlt2rTBs2fPhHNu376NnTt3YteuXUhISHhvm7Zu3Rr16tUTjQyVpY63laWN35Wfn4/s7GzRxhhjjLGv2Kddz49VlLdXqi4uLqaoqCiSSqXk6+tLqqqq9ODBA1H+Nm3aUFBQEBERhYaGEgBKSEgQjicnJxMAioqKKrG+WbNmUbt27URp9+/fJwDCSt1ubm707bffivI0btyYJk6cKOwDoN27d5dYR0mrRgOggICA0hvi//P396fu3bsL+2ZmZrRw4UJhv6CggKpXry60WV5eHmlqatK5c+dE5QwePJj69u1LREReXl40aNCgUutUXMv169dJVVWVTp8+TUREXbp0IR8fnzLXEx8fTxKJhO7evUtEb1a9rlatGoWEhBDRmxXWdXV1KS8vT1RGrVq1aM2aNURENH36dKpUqRJlZmaK8pS2MjwRUe/evcne3r5cddSrV0849qE2Lsn06dNLXEmdV+hmjDHGvhzlWaGb17n4guzfvx/a2tooKChAcXEx+vXrhx49eiAsLAw2NjaivPn5+TAyMhL21dXV4eTkJOwnJCRAVVUVbm5uJdaVmJiIkydPCiMZb0tNTRXqe7tMADAzM0NmZuZHXyMANGrUSClt1apV2LhxI+7du4dXr17h9evXwpuMsrKyIJfL0bRpUyG/mpoaGjVqJDwadfv2beTm5qJt27aicl+/fo0GDRoAAEaOHInu3bvj8uXLaNeuHbp27QpXV1elWBwcHODt7Y1JkyYhJiZGdKws9dSvXx/29vaIiIjApEmTcOrUKWRmZqJnz54A3rR9Tk6O6PMDgFevXiE1NVXYt7CwEB4tKwsigkQiKVcdCmVp45IEBQVh/Pjxwn52djbMzc3LHDNjjDHGvizcufiCtGrVCiEhIVBXV0fVqlWhpqaGbdu2QVVVFXFxcVBVVRXlf7tjIJPJhBtLxf775OTkwMvLCwsWLFA6ZmZmJvz73cXgJBLJP54srqWlJdrfunUrAgMDsXjxYri4uEBHRwc///wzLly4UOYyc3JyAAAHDhxAtWrVRMekUikAoH379rh79y4OHjyIqKgotGnTBv7+/li0aJFSeTNmzICNjY3oTVhlrQcA+vfvL3QuIiIi4OnpKdzo5+TkwMzMTDRvRkFfX1/497vt9CFJSUmwsrIqVx3/lFQqFV03Y4wxxr5u3Ln4gmhpacHa2lqU1qBBAxQVFSEzMxPNmzcvc1mOjo4oLi7GqVOn4O7urnTc2dkZO3fuhKWlJdTUPv5rUqlSJRQVFX30+QAQExMDV1dXjBo1Skh7+9d1PT09mJmZ4cKFC2jRogUAoLCwUJhHAEA0kb200RoAMDY2ho+PD3x8fNC8eXNMmDChxM6Fubk5Ro8ejcmTJ6NWrVpCelnr6devH3766SfExcVhx44dWL16tXDM2dkZDx8+hJqamjAp/p86ceIErl69inHjxn1UHWVpY8YYY4wxntD9hbOxsUH//v3h7e2NXbt2IS0tDRcvXsS8efNw4MCBUs+ztLSEj48P/Pz8sGfPHqSlpSE6OlqYJO3v749nz56hb9++uHTpElJTU3HkyBEMGjSoXJ0FS0tLHD9+HA8fPsTz588/6hpr166N2NhYHDlyBLdu3cLUqVOVJoePHTsW8+fPx549e3Dz5k2MGjUKL168EI7r6OggMDAQ48aNw6ZNm5CamorLly9jxYoV2LRpEwBg2rRp2Lt3L27fvo3r169j//79sLe3LzWuoKAgZGRk4NixY+WqR9Eurq6uGDx4MIqKitC5c2fhmLu7O1xcXNC1a1ccPXoU6enpOHfuHKZMmYLY2NgPtld+fj4ePnyIBw8e4PLly5g7dy66dOmCTp06wdvb+6Pr+FAbM8YYY4xx5+IrEBoaCm9vb/zwww+wtbVF165dcenSJdSoUeO954WEhKBHjx4YNWoU7OzsMHToULx8+RIAULVqVcTExKCoqAjt2rWDo6MjAgICoK+vDxWVsn9tFi9ejKioKJibmwtzDspr+PDh+O6779C7d280bdoUT58+FY1iAMAPP/yAgQMHwsfHR3h0qlu3bqI8s2bNwtSpUzFv3jzY29vD09MTBw4cEB4VUldXR1BQEJycnNCiRQuoqqpi69atpcZlaGiIiRMnIi8vr1z1KPTv3x+JiYno1q2b6DE1iUSCgwcPokWLFhg0aBBsbGzQp08f3L17FyYmJh9sr8OHD8PMzAyWlpbw9PTEyZMnsXz5cuzdu1d4dO5j6ihLGzPGGGPsv01C75uNyRhj7+Hr64sXL14ozT0pTXZ2NvT09JCVlQVdXd1PGxxjjDHGKkR5/n7zyAVjjDHGGGOsQnDngjHGGGOMMVYhuHPBSiWRSMr8uAv7On3oOxAWFsbfEcYYY4wJuHPxFfH19YVEIsGIESOUjvn7+0MikcDX1xcA8PjxY4wcORI1atSAVCqFqakpPDw8RIvCyeVytG/f/t8KH+np6ZBIJFBVVcWDBw9Ex+RyOdTU1CCRSJCenl4h9fn6+qJr165K6RKJRNh0dXXRuHFj7N27t0LqrEgtW7ZEQECAKE3RhopNR0cHderUgb+/P1JSUj5PoIwxxhj7z+DOxVfG3NwcW7duxatXr4S0vLw8REREiN4e1b17d8THx2PTpk24desWIiMj0bJlSzx9+lTIY2pq+lkWQKtWrRo2b94sStu0aZPSonSfUmhoKORyOWJjY9GsWTP06NEDV69e/dfq/6eOHTsGuVyOxMREzJ07F0lJSahXrx6OHz/+uUNjjDHG2FeMOxdfGWdnZ5ibm2PXrl1C2q5du1CjRg3hVbAvXrzAmTNnsGDBArRq1QoWFhZo0qQJgoKCROstvP1IjOIX8V27dqFVq1bQ1NREvXr1cP78eVH9MTExaNmyJTQ1NWFgYAAPDw9hfYvi4mLMmzcPVlZWkMlkqFevHnbs2KF0DT4+PggNDRWlhYaGwsfHRynvqVOn0KRJE0ilUpiZmWHSpEkoLCwUju/YsQOOjo6QyWQwMjKCu7s7Xr58ieDgYGzatAl79+4VfuV/e7VqfX19mJqawsbGBrNmzUJhYSFOnjwpHL9//z569eoFfX19GBoaokuXLkojKhs3bkSdOnWE2EaPHi0ce/HiBYYMGQJjY2Po6uqidevWSExMFI4HBwejfv362LJlCywtLaGnp4c+ffrg77//BvBm1OXUqVNYtmyZEP/b9RsZGcHU1BQ1a9ZEly5dcOzYMTRt2lRYV0Nh7969cHZ2hoaGBmrWrIkZM2aI2u9dFy9eRIMGDaChoYFGjRph9+7dkEgkSEhIKPUcxhhjjP13cOfiK+Tn5ye6Od+4cSMGDRok7Gtra0NbWxt79uxBfn5+ucqeMmUKAgMDkZCQABsbG/Tt21e4GU1ISECbNm3g4OCA8+fP4+zZs/Dy8hJuZufNm4fNmzdj9erVuH79OsaNG4cBAwbg1KlTojo6d+6M58+f4+zZswCAs2fP4vnz5/Dy8hLle/DgATp06IDGjRsjMTERISEh2LBhA2bPng3gzaNUffv2hZ+fH5KSkhAdHY3vvvsORITAwED06tULnp6ekMvlkMvlcHV1VbrewsJCbNiwAcCbdTAAoKCgAB4eHtDR0cGZM2cQExMDbW1teHp64vXr1wDerCHi7++PYcOG4erVq4iMjBStrt6zZ09kZmbi0KFDwirXbdq0wbNnz4Q8qamp2LNnD/bv34/9+/fj1KlTmD9/PgBg2bJlcHFxwdChQ4X4zc3NS/3cVFRUMHbsWNy9exdxcXEAgDNnzsDb2xtjx47FjRs3sGbNGoSFhWHOnDkllpGTk4NOnTrBwcEBcXFxCA4ORmBgYKl1MsYYY+w/iNhXw8fHh7p06UKZmZkklUopPT2d0tPTSUNDgx4/fkxdunQhHx8fIiLasWMHGRgYkIaGBrm6ulJQUBAlJiaKygNAu3fvJiKitLQ0AkDr168Xjl+/fp0AUFJSEhER9e3bl5o1a1ZibHl5eaSpqUnnzp0TpQ8ePJj69u0rqiM+Pp4CAgJo0KBBREQ0aNAgGjduHMXHxxMASktLIyKiyZMnk62tLRUXFwvlrVq1irS1tamoqIji4uIIAKWnp7+3vd4FgDQ0NEhLS4tUVFQIAFlaWtLTp0+JiGjLli1K9ebn55NMJqMjR44QEVHVqlVpypQpJdZ75swZ0tXVpby8PFF6rVq1aM2aNURENH36dNLU1KTs7Gzh+IQJE6hp06bCvpubG40dO1ZUxttt+K6kpCQCQNu2bSMiojZt2tDcuXNFebZs2UJmZmaitlB8B9asWUNGRkb06tUr4XhISEip9RG9+dyzsrKE7f79+wSAsrKySszPGGOMsf89WVlZZf77zSMXXyFjY2N07NgRYWFhCA0NRceOHVG5cmVRnu7duyMjIwORkZHw9PREdHQ0nJ2dERYW9t6ynZychH+bmZkBADIzMwH838hFSW7fvo3c3Fy0bdtWGDnR1tbG5s2bkZqaqpTfz88P27dvx8OHD7F9+3b4+fkp5UlKSoKLiwskEomQ1qxZM+Tk5OCvv/5CvXr10KZNGzg6OqJnz55Yt26d8IjWhyxZsgQJCQk4dOgQHBwcsH79ehgaGgIAEhMTcfv2bejo6AjXYWhoiLy8PKSmpiIzMxMZGRmltkViYiJycnJgZGQkaou0tDRRW1haWkJHR0fYNzMzE9r6Y9D/Xy9T0V6JiYmYOXOmKAbFSEhubq7S+UlJSXBycoKGhoaQ5uLi8t46582bBz09PWF73+gKY4wxxr58ap87APZp+Pn5Cc/4r1q1qsQ8GhoaaNu2Ldq2bYupU6diyJAhmD59uvBGqZJUqlRJ+LfiJrW4uBgAIJPJSj0vJycHAHDgwAGlidklTRp3dHSEnZ0d+vbtC3t7e9StW7fcz/WrqqoiKioK586dw9GjR7FixQpMmTIFFy5cgJWV1XvPNTU1hbW1NaytrREaGooOHTrgxo0bqFKlCnJyctCwYUOEh4crnWdsbAwVlff32XNycmBmZiaa46Ggr68v/PvttgbetLeirT9GUlISAAjXnpOTgxkzZuC7775Tyvt2B+KfCAoKwvjx44X97Oxs7mAwxhhjXzEeufhKKZ7/V8wPKAsHBwe8fPnyo+t0cnIq9W1EDg4OkEqluHfvnnDTrthKu9n08/NDdHR0iaMWAGBvb4/z588Lv8gDbyaU6+jooHr16gDe3JA3a9YMM2bMQHx8PNTV1bF7924Ab+ZQvD25uTRNmjRBw4YNhbkIzs7OSElJQZUqVZSuRU9PDzo6OrC0tCy1LZydnfHw4UOoqakpnf/uCNP7lDV+4E0HcPny5bCyshIm9js7OyM5OVkpBmtr6xI7SPb29rhy5Qry8vKEtD///PO99UqlUujq6oo2xhhjjH29uHPxlVJVVUVSUhJu3LgBVVVV0bGnT5+idevW+O2333DlyhWkpaVh+/btWLhwIbp06fLRdQYFBeHSpUsYNWoUrly5gps3byIkJARPnjyBjo4OAgMDMW7cOGzatAmpqam4fPkyVqxYgU2bNpVY3tChQ/H48WMMGTKkxOOjRo3C/fv38f333+PmzZvYu3cvpk+fjvHjx0NFRQUXLlzA3LlzERsbi3v37mHXrl14/Pgx7O3tAbx57OjKlStITk7GkydPUFBQUOq1BQQEYM2aNXjw4AH69++PypUro0uXLjhz5gzS0tIQHR2NMWPG4K+//gLw5m1PixcvxvLly5GSkiJcKwC4u7vDxcUFXbt2xdGjR5Geno5z585hypQpiI2NLXN7W1pa4sKFC0hPT8eTJ09EoxpPnz7Fw4cPcefOHURGRsLd3R0XL17Ehg0bhO/DtGnTsHnzZsyYMQPXr19HUlIStm7dip9++qnE+vr16weJRIKhQ4fixo0bOHjwIBYtWlTmeBljjDH2H/DJZ4Cwf01pE5QVFBO68/LyaNKkSeTs7Ex6enqkqalJtra29NNPP1Fubq6QHyVM6H574u7z588JAJ08eVJIi46OJldXV5JKpaSvr08eHh70/PlzIiIqLi6mpUuXkq2tLVWqVImMjY3Jw8ODTp06VWodb3t3QreivsaNG5O6ujqZmprSxIkTqaCggIiIbty4QR4eHmRsbExSqZRsbGxoxYoVwrmZmZnUtm1b0tbWFl3H29etUFxcTHZ2djRy5EgiIpLL5eTt7U2VK1cmqVRKNWvWpKFDh4omOq1evVq4VjMzM/r++++FY9nZ2fT9999T1apVqVKlSmRubk79+/ene/fuEdGbCd316tUTxbBkyRKysLAQ9pOTk+mbb74hmUwmtIuiDRWbpqYm2dvb06hRoyglJUWpTQ8fPkyurq4kk8lIV1eXmjRpQmvXrhWOv9sW58+fp3r16pG6ujrVr1+fdu7c+d7P7F3lmRDGGGOMsf8N5fn7LSF665kSxhgrh/T0dFhZWSE+Ph7169f/YP7s7Gzo6ekhKyuLH5FijDHGvhDl+fvNj0UxxhhjjDHGKgR3LhhjjDHGGGMVgl9Fyxj7aJaWluAnKxljjDGmwCMXDADg6+uLrl27fu4wlERHR0MikeDFixel5gkLCxOtDxEcHFym5/8ZY4wxxljF4s5FBfL19YVEIsGIESOUjvn7+0Mikbx3gbryatmyJSQSCSQSCaRSKapVqwYvLy/s2rWrwuooTUFBASZOnAhHR0doaWmhatWq8Pb2RkZGhiifIj6JRAI9PT00a9YMJ06c+KSxBQYGlrrGREksLS2FGDU1NeHo6Ij169dXaEwtW7ZEQEBAhZap8G7nSmHXrl1o164djIyMIJFIlBYhfPbsGb7//nvY2tpCJpOhRo0aGDNmDLKysoQ86enpkEgkUFVVxYMHD0Tny+VyqKmpQSKRID09/RNcGWOMMca+NNy5qGDm5ubYunUrXr16JaTl5eUhIiICNWrUqPD6hg4dCrlcjtTUVOzcuRMODg7o06cPhg0bVuF1vS03NxeXL1/G1KlTcfnyZezatQvJycno3LmzUt7Q0FDI5XLExMSgcuXK6NSpE+7cufPJYtPW1oaRkVG5zpk5cybkcjmuXbuGAQMGYOjQoTh06NAnivDf8fLlS3z77bdYsGBBicczMjKQkZGBRYsW4dq1awgLC8Phw4cxePBgpbzVqlXD5s2bRWmbNm1SWm2dMcYYY/9t3LmoYM7OzjA3NxeNHuzatQs1atQQVkYGgMOHD+Pbb7+Fvr4+jIyM0KlTJ6SmpgrHN2/eDG1tbaSkpAhpo0aNgp2dHXJzc4U0TU1NmJqaonr16vjmm2+wYMECrFmzBuvWrcOxY8eEfPfv30evXr2gr68PQ0NDdOnS5b2/Nr98+RLe3t7Q1taGmZkZFi9eLPr1XU9PD1FRUejVqxdsbW3xzTffYOXKlYiLi8O9e/dEZenr68PU1BR169ZFSEgIXr16haioKOFX8bd/UX/x4gUkEgmio6NFZcTExMDJyQkaGhr45ptvcO3atVJjL+mxqI0bN6JOnTqQSqUwMzPD6NGjRcd1dHRgamqKmjVrYuLEiTA0NERUVJQoriFDhsDY2Bi6urpo3bo1EhMTRWXs27cPjRs3hoaGBipXroxu3bqVGuO7Jk6cCBsbG2hqaqJmzZqYOnWqaFG/xMREtGrVCjo6OtDV1UXDhg0RGxuL6OhoDBo0CFlZWcLoS3BwMABg4MCBmDZtGtzd3Uuss27duti5cye8vLxQq1YttG7dGnPmzMG+fftQWFgoyuvj44PQ0FBRWmhoKHx8fMp8jYwxxhj7+nHn4hPw8/MT3Yht3LgRgwYNEuV5+fIlxo8fj9jYWBw/fhwqKiro1q2bsMqyt7c3OnTogP79+6OwsBAHDhzA+vXrER4eDk1NzffW7+PjAwMDA6GDU1BQAA8PD+jo6ODMmTOIiYmBtrY2PD098fr16xLLmDBhAk6dOoW9e/fi6NGjiI6OxuXLl99br+IGt6RHdBRkMhkAlFpvaSZMmIDFixfj0qVLMDY2hpeX13tX1H5bSEgI/P39MWzYMFy9ehWRkZGwtrYuMW9xcTF27tyJ58+fQ11dXUjv2bMnMjMzcejQIcTFxcHZ2Rlt2rTBs2fPAAAHDhxAt27d0KFDB8THx+P48eNo0qRJma9PR0cHYWFhuHHjBpYtW4Z169ZhyZIlwvH+/fujevXquHTpEuLi4jBp0iRUqlQJrq6uWLp0KXR1dSGXyyGXyxEYGFjmet+leH+1mpr4XQ+dO3fG8+fPcfbsWQDA2bNn8fz5c3h5eb23vPz8fGRnZ4s2xhhjjH3FPvWKfv8lihWyMzMzSSqVUnp6OqWnp5OGhgY9fvxYWCG7JI8fPyYAdPXqVSHt2bNnVL16dRo5ciSZmJjQnDlzROe4ubnR2LFjSyyvadOm1L59eyIi2rJlC9na2lJxcbFwPD8/n2QyGR05ckQUOxHR33//Terq6vTHH38I+Z8+fUoymazU+l69ekXOzs7Ur18/UTreWuH55cuXNGrUKFJVVaXExMQyrfp98uRJAkBbt25VimXbtm1ERBQaGkp6enrC8XdXt65atSpNmTKlxLiJiCwsLEhdXZ20tLRITU2NAJChoaGwovWZM2dIV1eX8vLyROfVqlWL1qxZQ0RELi4u1L9//1LreN9nVZKff/6ZGjZsKOzr6OhQWFhYiXnfvf53fWjlc4XHjx9TjRo1aPLkySWeGxAQQIMGDSIiokGDBtG4ceNKXDX9bdOnTxetGK7YeIVuxhhj7MtRnhW6eeTiEzA2NkbHjh0RFhaG0NBQdOzYEZUrVxblSUlJQd++fVGzZk3o6urC0tISAESPFBkYGGDDhg0ICQlBrVq1MGnSpDLHQESQSCQA3jxSc/v2bejo6EBbWxva2towNDREXl6e6FEshdTUVLx+/RpNmzYV0gwNDWFra1tiXQUFBejVqxeICCEhIUrH+/btC21tbejo6GDnzp3YsGEDnJycynwtAODi4qIUS1JS0gfPy8zMREZGBtq0afPefBMmTEBCQgJOnDiBpk2bYsmSJcLoRmJiInJycmBkZCS0n7a2NtLS0oT2S0hI+GAd77Nt2zY0a9YMpqam0NbWxk8//ST6LowfPx5DhgyBu7s75s+fX+Ln9k9kZ2ejY8eOcHBwEB6repefnx+2b9+Ohw8fYvv27fDz8/tguUFBQcjKyhK2+/fvV2jcjDHGGPvfwutcfCJ+fn7Cc/2rVq1SOu7l5QULCwusW7cOVatWRXFxMerWrav0uNDp06ehqqoKuVyOly9fQkdH54N1FxUVISUlBY0bNwYA5OTkoGHDhggPD1fKa2xs/DGXJ1B0LO7evYsTJ06UuCT8kiVL4O7uDj09PVF9Kipv+rb01joJZX3UqawUj2F9SOXKlWFtbQ1ra2ts374djo6OaNSoERwcHJCTkwMzMzOleSAAhEfAylpPSc6fP4/+/ftjxowZ8PDwgJ6eHrZu3YrFixcLeYKDg9GvXz8cOHAAhw4dwvTp07F169Zyzesozd9//w1PT0/o6Ohg9/9j787jakz//4G/TqnTctq1HNqQUrTKkoaKqEGTnTSUsjNZptAnlJCyL4MxlmpMxjIq+xIqFFmLURNSyii7Eorq+v3Rr/vrdiplLGO8n4/H/Xi4r/vaz5npvs51X/cVFwcZGZla45mbm6NNmzbw8PCAqakp2rVrJ/EGqrcJhUIIhcJ/XEdCCCGEfBlo5uIjqVnPULPe4U2PHj1CdnY2Zs+ejR49esDU1BRPnjyRyCM1NRURERHYt28fRCKRxCLkukRHR+PJkycYOHAggOpF5jdu3ICWlhZ3A11zqKioSKRv1aoVZGRkkJaWxoU9efIE169f58WrGVjcuHEDx44dq/MNTTo6OjAyMpIYyNScFxYWcmF13ayePXtWoi6mpqb19EI1JSUlGBoaNurVtHp6ehg6dCgCAwMBVPdfUVERmjRpItF/NTNSFhYWjSrjTampqTAwMEBQUBBsbW3RunVr3L59WyKesbExpk2bhqNHj2LAgAHcuh5ZWVlUVla+V9klJSXo1asXZGVlsXfvXsjJydUb38fHB0lJSQ2atSCEEELI14dmLj4SaWlp7rEdaWlp3jU1NTVoaGjgl19+gVgsRn5+vsQjT8+ePcOIESPg5+eHb7/9Frq6uujQoQPc3NwwaNAgLt6LFy9QVFSEiooK3LlzB3FxcVixYgUmTJgAJycnANWLgZcsWQJ3d3eEhoZCV1cXt2/fRmxsLGbMmAFdXV1e2SKRCL6+vggICICGhga0tLQQFBTEzTQA1QOLQYMG4dKlS9i/fz8qKytRVFQEoPqxpTcXQ9dFXl4enTt3Rnh4OFq0aIH79+9j9uzZtcYNDQ2FhoYGtLW1ERQUhKZNmzZ407+QkBCMHz8eWlpa+Pbbb/Hs2TOkpKTghx9+qDPNlClT0K5dO1y4cAHOzs6ws7NDv379sHjxYhgbG+Pu3bvcIm5bW1sEBwejR48eaNWqFYYNG4aKigocPHgQM2fO5PJ88OCBxOBJLBajdevWyM/Px/bt29GhQwccOHAAcXFxXJyXL18iICAAgwYNQosWLXDnzh2cP3+eGzwaGhqitLQUx48fh6WlJRQUFKCgoIDHjx8jPz+f23skOzsbQPVgT0dHhxtYvHjxAr/99htvwbWmpqbE9xaofvXx4MGD6120TwghhJCv2MdeAPI1eXNRdG3eXNCdkJDATE1NmVAoZBYWFiwpKYm3+HnUqFHM3Nyct4h42bJlTF1dnd25c4cxVr1IGP9/gaysrCwTi8Wsb9++LDY2VqLswsJCNnLkSNa0aVMmFApZy5Yt2ZgxY7iFOW/X/dmzZ+z7779nCgoKTFtbmy1evJi3KLlmoW9tR81ibMb4C7prk5mZyezs7Ji8vDyzsrJiR48erXVB9759+1jbtm2ZrKws69ixI8vIyODyeNeCbsYY+/nnn5mJiQmTkZFhYrGY/fDDD9w1AwMDtmLFCom6ubi4cIviS0pK2A8//MCaNWvGZGRkmJ6eHvP09GT5+flc/N27dzMrKysmKyvLmjZtygYMGMBde/OzevOYP38+Y4yxgIAApqGhwUQiERs6dChbsWIF16by8nI2bNgwpqenx2RlZVmzZs3Y5MmT2cuXL7n8x48fzzQ0NBgAFhwczPVLbWXWXK/p29qOmgXa71oM/q4F3W9rzIIwQgghhPw7NObvt4CxNx54J6Qejo6OsLKywsqVKz93VcgXqqSkBCoqKtwrbwkhhBDy79eYv9+05oIQQgghhBDyQdDgghBCCCGEEPJB0IJu0mC1vYqVEEIIIYSQGjRzQci/mLe3d4PfikUIIYQQ8rnR4IL853l7e0MgEGD8+PES1yZNmgSBQABvb+8PVp6joyMEAgEEAgGEQiGaN28ONzc3xMbGfrAyGlr+m0dt7SeEEEII+ZBocEG+Cnp6eti+fTtevnzJhZWVlWHbtm3Q19f/4OWNGTMGhYWFyMnJwe7du2FmZoZhw4Zh7NixH7ys+sp/81i8ePFHK6+yshJVVVUfLX9CCCGEfBlocEG+CjY2NtDT0+PNHsTGxkJfXx/W1tZc2OHDh/HNN99AVVUVGhoa6Nu3L3Jycrjrv/76K0QiEW7cuMGFTZw4EW3atMGLFy+4MAUFBejo6EBXVxedO3dGREQENmzYgI0bN+LYsWNcvIKCAgwZMgSqqqpQV1eHu7s78vLy6mzH8+fPMXLkSIhEIojFYixbtgyOjo6YOnUqL15N+W8eNa+O69KlC29zP6B6gz8ZGRmcPHkSAFBeXg5/f380b94cioqK6NSpE2/NTVRUFFRVVbF3716YmZlBKBQiPz+/nk+AEEIIIV8DGlyQr4aPjw8iIyO58y1btmDUqFG8OM+fP8f06dNx4cIFHD9+HFJSUujfvz/3q/zIkSPRu3dveHp6oqKiAgcOHMCmTZsQExMDBQWFesv38vKCmpoaN8B5/fo1XFxcoKSkhFOnTiElJQUikQiurq549epVrXkEBAQgOTkZe/bswdGjR5GUlIRLly41qh88PT2xfft2vLnFzY4dO9CsWTN07doVADB58mScOXMG27dvx5UrVzB48GC4urryBlUvXrxAREQENm3ahGvXrkFLS0uirPLycm7n7zd3ACeEEELIf9TH3tGPkM+tZvfx+/fvM6FQyPLy8lheXh6Tk5NjDx484O2c/rYHDx4wAOzq1atc2OPHj5muri6bMGEC09bWZgsXLuSleXMn87d16tSJ2/V769atzMTEhFVVVXHXy8vLmby8PDty5Aiv7oxV75ouKyvLdu7cycV/9OgRk5eX55Xn4ODAZGRkmKKiIu/47bffGGOM3b9/nzVp0oSdPHmSS2NnZ8dmzpzJGGPs9u3bTFpamv3999+8uvfo0YMFBgYyxv5v9+/09PRa21kjODi41h3AaYduQggh5MvRmB266VW05KuhqamJPn36ICoqCowx9OnTB02bNuXFuXHjBubOnYu0tDQ8fPiQm7HIz89Hu3btAABqamrYvHkzXFxc0KVLF8yaNavBdWCMQSAQAAAyMjJw8+ZNKCkp8eKUlZXxHsWqkZOTg1evXqFTp05cmLq6OkxMTCTienp6IigoiBemra3N9UOvXr0QExODrl27Ijc3F2fOnMGGDRsAAFevXkVlZSWMjY156cvLy6GhocGdy8rKwsLCot72BgYGYvr06dx5SUkJ9PT06k1DCCGEkC8XDS7IV8XHxweTJ08GAKxdu1biupubGwwMDLBx40Y0a9YMVVVVaNeuncRjSidPnoS0tDQKCwvx/PlziQFCbSorK3Hjxg106NABAFBaWor27dsjJiZGIq6mpub7NI+joqICIyOjOq97enrCz88Pa9aswbZt22Bubg5zc3OuXtLS0rh48SKkpaV56UQiEfdveXl5bqBUF6FQCKFQ+A9aQgghhJAvCa25IF+VmvUMNesd3vTo0SNkZ2dj9uzZ6NGjB0xNTfHkyROJPFJTUxEREYF9+/ZBJBJxg5V3iY6OxpMnTzBw4EAA1YvMb9y4AS0tLRgZGfEOFRUVifStWrWCjIwM0tLSuLAnT57g+vXrjekCAIC7uzvKyspw+PBhbNu2DZ6entw1a2trVFZW4v79+xL10tHRaXRZhBBCCPl60MwF+apIS0sjKyuL+/eb1NTUoKGhgV9++QVisRj5+fkSjzw9e/YMI0aMgJ+fH7799lvo6uqiQ4cOcHNzw6BBg7h4L168QFFRESoqKnDnzh3ExcVhxYoVmDBhApycnABUzx4sWbIE7u7uCA0Nha6uLm7fvo3Y2FjMmDEDurq6vLJFIhF8fX0REBAADQ0NaGlpISgoCFJSkr8R1JT/JqFQCDU1NQCAoqIi+vXrhzlz5iArKwseHh5cPGNjY3h6emLkyJFYtmwZrK2t8eDBAxw/fhwWFhbo06dPY7udEEIIIV8JmrkgXx1lZWXutaxvkpKSwvbt23Hx4kW0a9cO06ZNw5IlS3hxpkyZAkVFRYSFhQEAzM3NERYWhnHjxuHvv//m4m3cuBFisRitWrXCgAEDkJmZiR07dmDdunVcHAUFBZw8eRL6+voYMGAATE1N4evri7KyslrrBwBLlixB165d4ebmBmdnZ3zzzTdo3769RLya8t883hxAANWDm4yMDHTt2lVir4/IyEiMHDkSP/74I0xMTNCvXz+cP3/+o+wJQgghhJD/DgFjb7yPkhDyxXF0dISVlRVWrlz5uavyTiUlJVBRUUFxcXGdAyhCCCGE/Ls05u83zVwQQgghhBBCPggaXBBCCCGEEEI+CFrQTcgXLikp6XNXgRBCCCEEAM1cEPKvEBUVBVVV1U9erre3N/r16/fJyyWEEELIfxMNLsi/kre3NwQCAcLDw3nh8fHx79y47Z+IioqCQCCo98jLy6szfUhICKysrP5RHRwdHest39HR8R/lTwghhBDysdDggvxrycnJISIiotaN7D6WoUOHorCwkDvs7OwwZswYXpient5HrUNsbCxX1rlz5wAAx44d48JiY2N58V+/fv1R60MIIYQQ0lA0uCD/Ws7OztDR0cGiRYtqvV7bLMHKlSthaGjIndc89hMWFgZtbW2oqqoiNDQUFRUVCAgIgLq6OnR1dREZGQkAkJeXh46ODnfIyspCQUGBO3/16hUGDBgAkUgEZWVlDBkyBPfu3QNQPesxb948ZGRkcLMMUVFRAIDly5fD3NwcioqK0NPTw8SJE1FaWlpru9TV1bnyNDU1AQAaGhpcmIaGBtavX4/vvvsOioqKWLhwISorK+Hr64sWLVpAXl4eJiYmWLVqFS/fyspKTJ8+HaqqqtDQ0MCMGTPw9puoq6qqsGjRIi4fS0tL/PHHH9z1J0+ewNPTE5qampCXl0fr1q25viOEEEIIocEF+deSlpZGWFgY1qxZgzt37rx3PidOnMDdu3dx8uRJLF++HMHBwejbty/U1NSQlpaG8ePHY9y4ce8so6qqCu7u7nj8+DGSk5ORkJCAW7duYejQoQCqZz1+/PFHtG3blptlqLkmJSWF1atX49q1a4iOjsaJEycwY8aM925TSEgI+vfvj6tXr8LHxwdVVVXQ1dXFrl27kJmZiblz5+J///sfdu7cyaVZtmwZoqKisGXLFpw+fRqPHz9GXFwcL99Fixbh119/xc8//4xr165h2rRp+P7775GcnAwAmDNnDjIzM3Ho0CFkZWVh/fr1aNq0aZ31LC8vR0lJCe8ghBBCyH8YI+RfyMvLi7m7uzPGGOvcuTPz8fFhjDEWFxfHar62wcHBzNLSkpduxYoVzMDAgJePgYEBq6ys5MJMTExY165dufOKigqmqKjIfv/9d4l6ODg4sClTpjDGGDt69CiTlpZm+fn53PVr164xAOzcuXN11qk2u3btYhoaGtx5ZGQkU1FRkYiXm5vLALDLly9zYQDY1KlT31nGpEmT2MCBA7lzsVjMFi9ezJ2/fv2a6erqcv1cVlbGFBQUWGpqKi8fX19f5uHhwRhjzM3NjY0aNeqdZdcIDg5mACSO4uLiBudBCCGEkM+ruLi4wX+/aeaC/OtFREQgOjoaWVlZ75W+bdu2kJL6v6+6trY2zM3NuXNpaWloaGjg/v379eaTlZUFPT093poLMzMzqKqqvrNux44dQ48ePdC8eXMoKSlhxIgRePToEV68ePFebbK1tZUIW7t2Ldq3bw9NTU2IRCL88ssvyM/PBwAUFxejsLAQnTp14uI3adKEl8/Nmzfx4sUL9OzZEyKRiDt+/fVX5OTkAAAmTJiA7du3w8rKCjNmzEBqamq99QwMDERxcTF3FBQUvFd7CSGEEPJloMEF+dfr1q0bXFxcEBgYyAuXkpKSWDNQ2+JmGRkZ3rlAIKg1rKqq6gPVmC8vLw99+/aFhYUFdu/ejYsXL2Lt2rUAgFevXr1XnoqKirzz7du3w9/fH76+vjh69CjS09MxatSoRuVfswbkwIEDSE9P547MzExu3cW3336L27dvY9q0abh79y569OgBf3//OvMUCoVQVlbmHYQQQgj576JN9MgXITw8HFZWVjAxMeHCNDU1UVRUBMYY93ra9PT0j1YHU1NTFBQUoKCggJu9yMzMxNOnT2FmZgYAkJWVRWVlJS/dxYsXUVVVhWXLlnEzKG+uhfgQUlJS0KVLF0ycOJELq5ltAAAVFRWIxWKkpaWhW7duAICKigpcvHgRNjY2AKpnYYRCIfLz8+Hg4FBnWZqamvDy8oKXlxe6du2KgIAALF269IO2hxBCCCFfJhpckC+Cubk5PD09sXr1ai7M0dERDx48wOLFizFo0CAcPnwYhw4d+mi/jjs7O3P1WLlyJSoqKjBx4kQ4ODhwjxcZGhoiNzcX6enp0NXVhZKSEoyMjPD69WusWbMGbm5uSElJwc8///xB69a6dWv8+uuvOHLkCFq0aIGtW7fi/PnzaNGiBRdnypQpCA8PR+vWrdGmTRssX74cT58+5a4rKSnB398f06ZNQ1VVFb755hsUFxcjJSUFysrK8PLywty5c9G+fXu0bdsW5eXl2L9/P0xNTT9oWwghhBDy5aLHosgXIzQ0lPfokqmpKdatW4e1a9fC0tIS586dq/cRnX9KIBBgz549UFNTQ7du3eDs7IyWLVtix44dXJyBAwfC1dUVTk5O0NTUxO+//w5LS0ssX74cERERaNeuHWJiYup8ve77GjduHAYMGIChQ4eiU6dOePToEW8WAwB+/PFHjBgxAl5eXrCzs4OSkhL69+/PizN//nzMmTMHixYtgqmpKVxdXXHgwAFukCIrK4vAwEBYWFigW7dukJaWxvbt2z9oWwghhBDy5RKwtx9aJ4SQj6SkpAQqKiooLi6m9ReEEELIF6Ixf79p5oIQQgghhBDyQdDgghBCCCGEEPJB0OCCfFBJSUkQCAS8hcL/NY6Ojpg6dernrgYhhBBCyL8ODS4+IW9vbwgEAoSHh/PC4+PjuVepfgxRUVEQCAT1Hnl5eR+t/H+qoKAAPj4+aNasGWRlZWFgYIApU6bg0aNHn6U+sbGxmD9/fqPSCAQCxMfHf5T6eHt7o1+/fhLhCxcuRJcuXaCgoABVVVWJ6xkZGfDw8ICenh7k5eVhamqKVatW8eLUfHdqeyPUrl27IBAIYGho+IFaQgghhJAvHQ0uPjE5OTlERETgyZMnn6zMoUOHorCwkDvs7OwwZswYXtibu06/78ZuH8OtW7dga2uLGzdu4Pfff8fNmzfx888/4/jx47Czs8Pjx48/eZ3U1dWhpKT0ycttrFevXmHw4MGYMGFCrdcvXrwILS0t/Pbbb7h27RqCgoIQGBiIn376iRdPUVER9+/fx5kzZ3jhmzdvhr6+/kerPyGEEEK+PDS4+MScnZ2ho6NT56tIQ0JCYGVlxQtbuXIl79fhml+qw8LCoK2tDVVVVYSGhqKiogIBAQFQV1eHrq4uIiMjAQDy8vLQ0dHhDllZWSgoKHDns2bNwsCBA7Fw4UI0a9aM26hu69atsLW1hZKSEnR0dDB8+HDcv3+fV7eDBw/C2NgY8vLycHJyqnUG5PTp0+jatSvk5eWhp6cHPz8/PH/+nLu+bt06tG7dGnJyctDW1sagQYO4a5MmTYKsrCyOHj0KBwcH6Ovr49tvv8WxY8fw999/IygoiItraGiI+fPnw8PDA4qKimjevDm3E3aNp0+fYvTo0dDU1ISysjK6d++OjIwMif7funUrDA0NoaKigmHDhuHZs2dcnLcfizI0NERYWBh8fHygpKQEfX19/PLLL7V+vrV59OgRPDw80Lx5cygoKMDc3By///47L84ff/wBc3NzyMvLQ0NDA87Oznj+/DlCQkIQHR2NPXv2cLNQSUlJAIB58+Zh2rRpMDc3r7VcHx8frFq1Cg4ODmjZsiW+//57jBo1CrGxsbx4TZo0wfDhw7FlyxYu7M6dO0hKSsLw4cMb3E5CCCGE/PfR4OITk5aWRlhYGNasWYM7d+68dz4nTpzA3bt3cfLkSSxfvhzBwcHo27cv1NTUkJaWhvHjx2PcuHENLuP48ePIzs5GQkIC9u/fDwB4/fo15s+fj4yMDMTHxyMvLw/e3t5cmoKCAgwYMABubm5IT0/H6NGjMWvWLF6+OTk5cHV1xcCBA3HlyhXs2LEDp0+fxuTJkwEAFy5cgJ+fH0JDQ5GdnY3Dhw9zO0g/fvwYR44cwcSJEyEvL8/LV0dHB56entixYwfefJvykiVLYGlpicuXL2PWrFmYMmUKEhISuOuDBw/G/fv3cejQIW536h49evBmQHJychAfH4/9+/dj//79SE5OlniU7W3Lli2Dra0tLl++jIkTJ2LChAnIzs5uUN+XlZWhffv2OHDgAP7880+MHTsWI0aMwLlz5wAAhYWF8PDwgI+PD7KyspCUlIQBAwaAMQZ/f38MGTIErq6u3CxUly5dGlRubYqLi6Guri4R7uPjg507d+LFixcAqh+XcnV1hba29nuXRQghhJD/IEY+GS8vL+bu7s4YY6xz587Mx8eHMcZYXFwcq/kogoODmaWlJS/dihUrmIGBAS8fAwMDVllZyYWZmJiwrl27cucVFRVMUVGR/f777xL1cHBwYFOmTOHlp62tzcrLy+ut//nz5xkA9uzZM8YYY4GBgczMzIwXZ+bMmQwAe/LkCWOMMV9fXzZ27FhenFOnTjEpKSn28uVLtnv3bqasrMxKSkokyjt79iwDwOLi4mqtz/LlyxkAdu/ePcYYYwYGBszV1ZUXZ+jQoezbb7/lylVWVmZlZWW8OK1atWIbNmxgjFX3v4KCAq8+AQEBrFOnTtz52/1nYGDAvv/+e+68qqqKaWlpsfXr13Nh9bWjNn369GE//vgjY4yxixcvMgAsLy+v1rhvfq9qExkZyVRUVN5ZZkpKCmvSpAk7cuRIrWmtrKxYdHQ0q6qqYq1atWJ79uyR+G6+raysjBUXF3NHQUEBA8CKi4vfWR9CCCGE/DsUFxc3+O83zVx8JhEREYiOjkZWVtZ7pW/bti2kpP7v49PW1uY9/iItLQ0NDQ2Jx5jqYm5uDllZWV7YxYsX4ebmBn19fSgpKcHBwQEAkJ+fDwDIyspCp06deGns7Ox45xkZGYiKioJIJOIOFxcXVFVVITc3Fz179oSBgQFatmyJESNGICYmhvt1vAZrxD6Pb5dvZ2fH9XFGRgZKS0uhoaHBq09ubi5ycnK4NIaGhrw1FWKx+J39aGFhwf1bIBBAR0enwX1fWVmJ+fPnw9zcHOrq6hCJRDhy5AjXz5aWlujRowfMzc0xePBgbNy48YOv2fnzzz/h7u6O4OBg9OrVq9Y4Pj4+iIyMRHJyMp4/f47evXu/M99FixZBRUWFO95c20MIIYSQ/x4aXHwm3bp1g4uLCwIDA3nhUlJSEjfTr1+/lkgvIyPDOxcIBLWGVVVVNag+ioqKvPPnz5/DxcUFysrKiImJwfnz5xEXFwegcQu+S0tLMW7cOKSnp3NHRkYGbty4gVatWkFJSQmXLl3C77//DrFYjLlz58LS0hJPnz6FkZERBAJBnQOwrKwsqKmpQVNTs8F1EYvFvLqkp6cjOzsbAQEBXLz36cd/0vdLlizBqlWrMHPmTCQmJiI9PR0uLi5cP0tLSyMhIQGHDh2CmZkZ1qxZAxMTE+Tm5jYo/3fJzMxEjx49MHbsWMyePbvOeJ6enjh79ixCQkIwYsQINGnS5J15BwYGori4mDsKCgo+SJ0JIYQQ8u/07rsD8tGEh4fDysqKW0ANAJqamigqKgJjjHs9bXp6+iev219//YVHjx4hPDyc+7X5woULvDimpqbYu3cvL+zs2bO8cxsbG2RmZsLIyKjOspo0aQJnZ2c4OzsjODgYqqqqOHHiBAYMGICePXti3bp1mDZtGm/dRVFREWJiYjBy5Ejea3zfLv/s2bPca1RtbGxQVFSEJk2a/Kten5qSkgJ3d3d8//33AICqqipcv34dZmZmXByBQAB7e3vY29tj7ty5MDAwQFxcHKZPnw5ZWVlUVla+V9nXrl1D9+7d4eXlhYULF9YbV11dHd999x127tyJn3/+uUH5C4VCCIXC96obIYQQQr48NHPxGZmbm8PT0xOrV6/mwhwdHfHgwQMsXrwYOTk5WLt2LQ4dOvTJ66avrw9ZWVmsWbMGt27dwt69eyX2dhg/fjxu3LiBgIAAZGdnY9u2bYiKiuLFmTlzJlJTUzF58mSkp6fjxo0b2LNnD7ege//+/Vi9ejXS09Nx+/Zt/Prrr6iqquIGXD/99BPKy8vh4uKCkydPoqCgAIcPH0bPnj3RvHlziRvilJQULF68GNevX8fatWuxa9cuTJkyBUD1m7rs7OzQr18/HD16FHl5eUhNTUVQUJDEwOljyM3NlZg1ef78OVq3bo2EhASkpqYiKysL48aNw71797h0aWlpCAsLw4ULF5Cfn4/Y2Fg8ePCAGzQZGhriypUryM7OxsOHD7mZrvz8fKSnpyM/Px+VlZVcmaWlpQCqH4VycnJCr169MH36dBQVFaGoqAgPHjyosw1RUVF4+PAh2rRp8xF7ihBCCCFfKhpcfGahoaG8x2dMTU2xbt06rF27FpaWljh37hz8/f0/eb00NTURFRWFXbt2wczMDOHh4Vi6dCkvjr6+Pnbv3o34+HhYWlri559/RlhYGC+OhYUFkpOTcf36dXTt2hXW1taYO3cumjVrBgBQVVVFbGwsunfvDlNTU/z888/4/fff0bZtWwBA69atceHCBbRs2RJDhgxBq1atMHbsWDg5OeHMmTMSbzb68ccfceHCBVhbW2PBggVYvnw5XFxcAFT/+n/w4EF069YNo0aNgrGxMYYNG4bbt29/krceTZ8+HdbW1rzj8uXLmD17NmxsbODi4gJHR0fo6OjwNsVTVlbGyZMn0bt3bxgbG2P27NlYtmwZvv32WwDAmDFjYGJiAltbW2hqaiIlJQUAMHfuXFhbWyM4OBilpaVcmTUDqT/++AMPHjzAb7/9BrFYzB0dOnSosw01r8IlhBBCCKmNgDVmtSwh/2KGhoaYOnUqbw8K8u9SUlICFRUVFBcXQ1lZ+XNXhxBCCCEN0Ji/3zRzQQghhBBCCPkgaHBBCCGEEEII+SDobVHkPyMvL+9zV4EQQggh5KtGMxeEfCYhISGwsrLizr29vXkLuT8VQ0NDrFy58pOXSwghhJD/HhpckAbx9vaGQCCAQCCArKwsjIyMEBoaioqKis9dtXoJBALEx8fzwqKioqCqqvrByvgYg4Kavq7rCAkJ+aDlEUIIIYR8CPRYFGkwV1dXREZGory8HAcPHsSkSZMgIyMjscv4u1RWVkIgEEBKisa2dSksLOT+vWPHDsydOxfZ2dlcmEgk4v7NGENlZWWDdswmhBBCCPmY6O6ONJhQKISOjg4MDAwwYcIEODs7Y+/evSgvL4e/vz+aN28ORUVFdOrUCUlJSVy6mpmCvXv3wszMDEKhEPn5+SgvL8fMmTOhp6cHoVAIIyMjbN68mUv3559/4ttvv4VIJIK2tjZGjBiBhw8fctcdHR3h5+eHGTNmQF1dHTo6Orxf9Gt24e7fvz8EAkGdu3LXPJ60detWGBoaQkVFBcOGDcOzZ8+4OH/88QfMzc25fR6cnZ3x/PlzhISEIDo6Gnv27OFmFWraPnPmTBgbG0NBQQEtW7bEnDlzuA3u3kVHR4c7VFRUIBAIuPO//voLSkpKOHToENq3bw+hUIjTp08jJycH7u7u0NbWhkgkQocOHXDs2DFevvfv34ebmxvk5eXRokULxMTESJT99OlTjB49GpqamlBWVkb37t2RkZHBXc/IyICTkxOUlJSgrKyM9u3bf5JNCAkhhBDy70eDC/Le5OXl8erVK0yePBlnzpzB9u3bceXKFQwePBiurq64ceMGF/fFixeIiIjApk2bcO3aNWhpaWHkyJH4/fffsXr1amRlZWHDhg3cL/JPnz5F9+7duU3fDh8+jHv37mHIkCG8OkRHR0NRURFpaWlYvHgxQkNDkZCQAAA4f/48ACAyMhKFhYXceW1ycnIQHx+P/fv3Y//+/UhOTkZ4eDiA6lkEDw8P+Pj4ICsrC0lJSRgwYAAYY/D398eQIUPg6uqKwsJCFBYWokuXLgAAJSUlREVFITMzE6tWrcLGjRuxYsWKD9b/s2bNQnh4OLKysmBhYYHS0lL07t0bx48fx+XLl+Hq6go3Nzfk5+dzaby9vVFQUIDExET88ccfWLduHe7fv8/Ld/Dgwbh//z4OHTqEixcvwsbGBj169MDjx48BAJ6entDV1cX58+dx8eJFzJo1CzIyMrXWsby8HCUlJbyDEEIIIf9hjJAG8PLyYu7u7owxxqqqqlhCQgITCoXM29ubSUtLs7///psXv0ePHiwwMJAxxlhkZCQDwNLT07nr2dnZDABLSEiotbz58+ezXr168cIKCgoYAJadnc0YY8zBwYF98803vDgdOnRgM2fO5M4BsLi4OF6cyMhIpqKiwp0HBwczBQUFVlJSwoUFBASwTp06McYYu3jxIgPA8vLy3tk39VmyZAlr3749r1xLS8t35vN2fRMTExkAFh8f/84y27Zty9asWcMY+78+P3fuHHc9KyuLAWArVqxgjDF26tQppqyszMrKynj5tGrVim3YsIExxpiSkhKLiop6Z9k1bQQgcRQXFzcoPSGEEEI+v+Li4gb//aaHtEmD7d+/HyKRCK9fv0ZVVRWGDx+OQYMGISoqCsbGxry45eXl0NDQ4M5lZWVhYWHBnaenp0NaWhoODg61lpWRkYHExETe2oIaOTk5XHlv5gkAYrFY4pf4hjA0NISSklKt+VhaWqJHjx4wNzeHi4sLevXqhUGDBkFNTa3ePHfs2IHVq1cjJycHpaWlqKio+KC7Utva2vLOS0tLERISggMHDqCwsBAVFRV4+fIlN3ORlZWFJk2aoH379lyaNm3a8Ba3Z2RkoLS0lPfZAcDLly+Rk5MDAJg+fTpGjx6NrVu3wtnZGYMHD0arVq1qrWNgYCCmT5/OnZeUlEBPT+8ftZsQQggh/140uCAN5uTkhPXr10NWVhbNmjVDkyZNsGPHDkhLS+PixYuQlpbmxX9zYCAvLw+BQMA7r09paSnc3NwQEREhcU0sFnP/fvtxHIFAgKqqqka16135SEtLIyEhAampqTh69CjWrFmDoKAgpKWloUWLFrXmd+bMGXh6emLevHlwcXGBiooKtm/fjmXLljW6bnVRVFTknfv7+yMhIQFLly6FkZER5OXlMWjQILx69arBeZaWlkIsFvPWzNSoGYSEhIRg+PDhOHDgAA4dOoTg4GBs374d/fv3l0gjFAohFAob1S5CCCGEfLlocEEaTFFREUZGRrwwa2trVFZW4v79++jatWuD8zI3N0dVVRWSk5Ph7Owscd3Gxga7d++GoaHhP3oLkoyMDCorK987fQ2BQAB7e3vY29tj7ty5MDAwQFxcHKZPnw5ZWVmJMlJTU2FgYICgoCAu7Pbt2/+4HvVJSUmBt7c3d5NfWlrK21iwTZs2qKiowMWLF9GhQwcAQHZ2Np4+fcrFsbGxQVFREZo0aVLnAngAMDY2hrGxMaZNmwYPDw9ERkbWOrgghBBCyNeFFnSTf8TY2Bienp4YOXIkYmNjkZubi3PnzmHRokU4cOBAnekMDQ3h5eUFHx8fxMfHIzc3F0lJSdi5cycAYNKkSXj8+DE8PDxw/vx55OTk4MiRIxg1alSjBguGhoY4fvw4ioqK8OTJk/dqY1paGsLCwnDhwgXk5+cjNjYWDx48gKmpKVfGlStXkJ2djYcPH+L169do3bo18vPzsX37duTk5GD16tWIi4t7r/IbqnXr1oiNjUV6ejoyMjIwfPhw3iyOiYkJXF1dMW7cOKSlpeHixYsYPXo0bxbJ2dkZdnZ26NevH44ePYq8vDykpqYiKCgIFy5cwMuXLzF58mQkJSXh9u3bSElJwfnz57m+IIQQQsjXjQYX5B+LjIzEyJEj8eOPP8LExAT9+vXD+fPnoa+vX2+69evXY9CgQZg4cSLatGmDMWPG4Pnz5wCAZs2aISUlBZWVlejVqxfMzc0xdepUqKqqNmp/jGXLliEhIQF6enqwtrZ+r/YpKyvj5MmT6N27N4yNjTF79mwsW7YM3377LQBgzJgxMDExga2tLTQ1NZGSkoLvvvsO06ZNw+TJk2FlZYXU1FTMmTPnvcpvqOXLl0NNTQ1dunSBm5sbXFxcYGNjw4sTGRmJZs2awcHBAQMGDMDYsWOhpaXFXRcIBDh48CC6deuGUaNGwdjYGMOGDcPt27ehra0NaWlpPHr0CCNHjoSxsTGGDBmCb7/9FvPmzfuobSOEEELIl0HAGGOfuxKEkK9DSUkJVFRUUFxc/EEXtxNCCCHk42nM32+auSCEEEIIIYR8EDS4IIQQQgghhHwQNLgghBBCCCGEfBA0uGgkgUCA+Pj4z10N8hVwdHTE1KlT/1EeeXl5EAgESE9P/yB1IoQQQgipz39+cOHt7Q2BQIDx48dLXJs0aRIEAgG8vb0BAA8ePMCECROgr68PoVAIHR0duLi4ICUlhUtTWFjIvSXoU6i5OZSWlsbff//Nu1ZYWIgmTZpAIBDw9jP4J7y9vdGvXz+JcIFAwB3Kysro0KED9uzZ80HK/JBquyH/r9xgv/kZvHksWbLkc1eNEEIIIQTAVzC4AAA9PT1s374dL1++5MLKysqwbds23utSBw4ciMuXLyM6OhrXr1/H3r174ejoiEePHnFxdHR0PsuOw82bN8evv/7KC4uOjkbz5s0/WR0iIyNRWFiICxcuwN7eHoMGDcLVq1c/Wflfu8LCQt6xZcsWCAQCDBw48HNXjRBCCCEEwFcyuLCxsYGenh5iY2O5sNjYWOjr63N7Hzx9+hSnTp1CREQEnJycYGBggI4dOyIwMBDfffcdl+7Nx6JqfhGPjY2Fk5MTFBQUYGlpiTNnzvDKT0lJgaOjIxQUFKCmpgYXFxduQ7eqqiosWrQILVq0gLy8PCwtLfHHH39ItMHLywuRkZG8sMjISHh5eUnETU5ORseOHSEUCiEWizFr1ixUVFRw1//44w+Ym5tDXl4eGhoacHZ2xvPnzxESEoLo6Gjs2bOH+1U8KSmJS6eqqgodHR0YGxtj/vz5qKioQGJiIne9oKAAQ4YMgaqqKtTV1eHu7i4xo7Jlyxa0bduWq9vkyZO5a0+fPsXo0aOhqakJZWVldO/eHRkZGdz1kJAQWFlZYevWrTA0NISKigqGDRuGZ8+eAaiedUlOTsaqVau4+tc2o5OUlASBQIDjx4/D1tYWCgoK6NKlC7Kzs3nxwsPDoa2tDSUlJfj6+mLWrFmwsrLixdm0aRNMTU0hJyeHNm3aYN26ddw1Hx8fWFhYoLy8HADw6tUrWFtbY+TIkVyc+r4bb9PR0eEde/bsgZOTE1q2bMnFOXfuHKytrSEnJwdbW1tcvnyZl0dlZSV8fX2575uJiQlWrVrFXT958iRkZGRQVFTESzd16lRuB/bbt2/Dzc0NampqUFRURNu2bXHw4MFa60wIIYSQr8tXMbgAqm/03rw537JlC0aNGsWdi0QiiEQixMfHczeDDRUUFAR/f3+kp6fD2NgYHh4e3M18eno6evToATMzM5w5cwanT5+Gm5sbt8v0okWL8Ouvv+Lnn3/GtWvXMG3aNHz//fdITk7mlfHdd9/hyZMnOH36NADg9OnTePLkCdzc3Hjx/v77b/Tu3RsdOnRARkYG1q9fj82bN2PBggUAqn/99vDwgI+PD7KyspCUlIQBAwaAMQZ/f38MGTIErq6u3K/jXbp0kWhvRUUFNm/eDACQlZUFALx+/RouLi5QUlLCqVOnkJKSApFIBFdXV7x69QpA9aZ5kyZNwtixY3H16lXs3bsXRkZGXL6DBw/G/fv3cejQIVy8eBE2Njbo0aMHHj9+zMXJyclBfHw89u/fj/379yM5ORnh4eEAgFWrVsHOzg5jxozh6q+np1fv57Zs2TJcuHABTZo0gY+PD3dt586dCAkJ4XbmFovFvIEDAMTExGDu3LlYuHAhsrKyEBYWhjlz5iA6OhoAsHr1ajx//hyzZs3iynv69Cl++umnBn036nPv3j0cOHAAvr6+XFhpaSn69u0LMzMzXLx4ESEhIfD39+elq6qqgq6uLnbt2oXMzEzMnTsX//vf/7id0bt164aWLVti69atXJrXr18jJiaG659JkyahvLwcJ0+exNWrVxEREQGRSFRrPcvLy1FSUsI7CCGEEPIfxv7jvLy8mLu7O7t//z4TCoUsLy+P5eXlMTk5OfbgwQPm7u7OvLy8GGOM/fHHH0xNTY3JycmxLl26sMDAQJaRkcHLDwCLi4tjjDGWm5vLALBNmzZx169du8YAsKysLMYYYx4eHsze3r7WupWVlTEFBQWWmprKC/f19WUeHh68Mi5fvsymTp3KRo0axRhjbNSoUWzatGns8uXLDADLzc1ljDH2v//9j5mYmLCqqiouv7Vr1zKRSMQqKyvZxYsXGQCWl5dXb3+9DQCTk5NjioqKTEpKigFghoaG7NGjR4wxxrZu3SpRbnl5OZOXl2dHjhxhjDHWrFkzFhQUVGu5p06dYsrKyqysrIwX3qpVK7ZhwwbGGGPBwcFMQUGBlZSUcNcDAgJYp06duHMHBwc2ZcoUXh5v9iFjjCUmJjIA7NixY1ycAwcOMADs5cuXjDHG7Ozs2MSJE3n5dOrUiVlaWvLqtm3bNl6c+fPnMzs7O+48NTWVycjIsDlz5rAmTZqwU6dOcdfq+27U1ZYaERERTE1NjasvY4xt2LCBaWho8MLWr1/Pa3ttJk2axAYOHMjL29TUlDvfvXs3E4lErLS0lDHGmLm5OQsJCakzvzcFBwczABJHcXFxg9ITQggh5PMrLi5u8N/vr2bmQlNTE3369EFUVBQiIyPRp08fNG3alBdn4MCBuHv3Lvbu3QtXV1ckJSXBxsYGUVFR9eZtYWHB/VssFgMA7t+/D+D/fp2uzc2bN/HixQv07NmTmzkRiUT49ddfkZOTIxHfx8cHu3btQlFREXbt2sX7pb1GVlYW7OzsIBAIuDB7e3uUlpbizp07sLS0RI8ePWBubo7Bgwdj48aNdT6G87YVK1YgPT0dhw4dgpmZGTZt2gR1dXUAQEZGBm7evAklJSWuHerq6igrK0NOTg7u37+Pu3fv1tkXGRkZKC0thYaGBq8vcnNzeX1haGgIJSUl7lwsFnN93Vj1fW5ZWVno1KkTL76dnR337+fPnyMnJwe+vr68+i5YsIBXXzs7O/j7+2P+/Pn48ccf8c0333DX6vtuvMuWLVvg6ekJOTk5LiwrKwsWFha8sDfrXGPt2rVo3749NDU1IRKJ8MsvvyA/P5+77u3tjZs3b+Ls2bMAgKioKAwZMgSKiooAAD8/PyxYsAD29vYIDg7GlStX6qxnYGAgiouLuaOgoOC92ksIIYSQL0OTz12BT8nHx4d7xn/t2rW1xpGTk0PPnj3Rs2dPzJkzB6NHj0ZwcDD3RqnayMjIcP+uuamvqqoCAMjLy9eZrrS0FABw4MABiYXZtS0aNzc3R5s2beDh4QFTU1O0a9eu0W9AkpaWRkJCAlJTU3H06FGsWbMGQUFBSEtLQ4sWLepNq6OjAyMjIxgZGSEyMhK9e/dGZmYmtLS0UFpaivbt2yMmJkYinaamJqSk6h/HlpaWQiwW89Z41FBVVeX+/WZfA9X9XdPXjVXf5/YuNZ/dxo0bJQYh0tLS3L+rqqqQkpICaWlp3Lx5kxevvu9GfU6dOoXs7Gzs2LGj0Wm3b98Of39/LFu2DHZ2dlBSUsKSJUuQlpbGxdHS0oKbmxsiIyPRokULHDp0iPe5jB49Gi4uLjhw4ACOHj2KRYsWYdmyZfjhhx8kyhMKhZ/lBQiEEEII+Ty+mpkLANzz/zXrAxrCzMwMz58/f+8yLSwscPz48TrzFgqFyM/P527aa4661gr4+PggKSmp1lkLADA1NcWZM2fAGOPCUlJSoKSkBF1dXQDVN9L29vaYN28eLl++DFlZWcTFxQGoXkPRkGf+O3bsiPbt22PhwoUAqhfN37hxA1paWhJtUVFRgZKSEgwNDevsCxsbGxQVFaFJkyYS6d+eYapPQ+v/LqamprwbbgDcL/kAoK2tjWbNmuHWrVsS9X1zkLZkyRL89ddfSE5OxuHDh3nrfur7btRn8+bNaN++PSwtLSXqfOXKFZSVldVaZ6D6u9ClSxdMnDgR1tbWMDIyqnWWbPTo0dixYwd++eUXtGrVCvb29rzrenp6GD9+PGJjY/Hjjz9i48aNjW4HIYQQQv57vqrBhbS0NLKyspCZmcn7dRkAHj16hO7du+O3337DlStXkJubi127dmHx4sVwd3d/7zIDAwNx/vx5TJw4EVeuXMFff/2F9evX4+HDh1BSUoK/vz+mTZuG6Oho5OTk4NKlS1izZg23KPhtY8aMwYMHDzB69Ohar0+cOBEFBQX44Ycf8Ndff2HPnj0IDg7G9OnTISUlhbS0NG6Rcn5+PmJjY/HgwQOYmpoCqH7s6MqVK8jOzsbDhw/x+vXrOts2depUbNiwAX///Tc8PT3RtGlTuLu749SpU8jNzUVSUhL8/Pxw584dANVve1q2bBlWr16NGzducG0FAGdnZ9jZ2aFfv344evQo8vLykJqaiqCgIFy4cKHB/W1oaIi0tDTk5eXh4cOH7z2rMWXKFGzZsgWRkZG4fv06goODce3aNV6cefPmYdGiRVi9ejWuX7+Oq1evIjIyEsuXLwcAXL58GXPnzsWmTZtgb2+P5cuXY8qUKbh16xaA+r8bdSkpKcGuXbtq/fyHDx8OgUCAMWPGIDMzEwcPHsTSpUt5cVq3bo0LFy7gyJEjuH79OubMmYPz589L5OXi4gJlZWUsWLCA9+IDoPpzP3LkCHJzc3Hp0iUkJiZy3x9CCCGEfOU+/hKQz6uuBco1ahZ0l5WVsVmzZjEbGxumoqLCFBQUmImJCZs9ezZ78eIFFx+1LOh+c7HskydPGACWmJjIhSUlJbEuXbowoVDIVFVVmYuLC3vy5AljjLGqqiq2cuVKZmJiwmRkZJimpiZzcXFhycnJdZbxprcXdNeU16FDByYrK8t0dHTYzJkz2evXrxljjGVmZjIXFxemqanJhEIhMzY2ZmvWrOHS3r9/n/Xs2ZOJRCJeO95sd42qqirWpk0bNmHCBMYYY4WFhWzkyJGsadOmTCgUspYtW7IxY8bwFv/8/PPPXFvFYjH74YcfuGslJSXshx9+YM2aNWMyMjJMT0+PeXp6svz8fMZY9eLgNxdUM8bYihUrmIGBAXeenZ3NOnfuzOTl5bl+qWtBd81nUFc/Lly4kDVt2pSJRCLm5eXFZsyYIVF+TEwMs7KyYrKyskxNTY1169aNxcbGspcvXzIzMzM2duxYXvzvvvuOdenShVVUVHCfVV3fjdoWdG/YsIHJy8uzp0+fstqcOXOGWVpaMllZWWZlZcV2797Na3tZWRnz9vZmKioqTFVVlU2YMIHNmjVLol2MMTZnzhwmLS3N7t69ywufPHkya9WqFRMKhUxTU5ONGDGCPXz4sNb6vK0xC8IIIYQQ8u/QmL/fAsbeeH6GEFKnkJAQxMfHf/E7fTeUr68vHjx4gL17936wPEtKSqCiooLi4mIoKyt/sHwJIYQQ8vE05u/3V7WgmxDybsXFxbh69Sq2bdv2QQcWhBBCCPnvo8EFIYTH3d0d586dw/jx49GzZ8/PXR1CCCGEfEHosShCyCdDj0URQgghX57G/P3+qt4WRQghhBBCCPl4aHBBvjje3t4QCAQIDw/nhcfHx/N2Jv9YBAIB4uPjP2ieUVFRvM0CP7S66lxeXo6goCAYGBhAKBTC0NAQW7Zs4a6HhIRAIBDA1dVVIu2SJUsgEAjg6Oj40epNCCGEkC8LrbkgXyQ5OTlERERg3LhxUFNT+9zV+WINGTIE9+7dw+bNm2FkZITCwkKJvUHEYjESExNx584dbiNGANiyZQv09fU/dZUJIYQQ8i9GMxfki+Ts7AwdHR0sWrSo1ushISGwsrLiha1cuRKGhobcube3N/r164ewsDBoa2tDVVUVoaGhqKioQEBAANTV1aGrq8vbVftteXl5EAgEiI2NhZOTExQUFGBpaYkzZ87w4kVFRUFfXx8KCgro378/li1b1qiZisOHD+Obb76BqqoqNDQ00LdvX97O2q9evcLkyZMhFoshJycHAwMDrm9q2ty/f38IBALu/PDhw0hOTsbBgwfh7OwMQ0ND2NnZSezGraWlhV69evE2dkxNTcXDhw/Rp0+fBreBEEIIIf99NLggXyRpaWmEhYVhzZo13A7g7+PEiRO4e/cuTp48ieXLlyM4OBh9+/aFmpoa0tLSMH78eIwbN+6dZQQFBcHf3x/p6ekwNjaGh4cHKioqAABpaWnw9fXF5MmTkZ6eDicnJyxYsKBR9Xz+/DmmT5+OCxcu4Pjx45CSkkL//v25WYbVq1dj79692LlzJ7KzsxETE8MNImp24I6MjERhYSF3vnfvXtja2mLx4sVo3rw5jI2N4e/vj5cvX0qU7+Pjg6ioKO58y5Yt8PT0hKysbL31Li8vR0lJCe8ghBBCyH8XDS7IF6t///6wsrJCcHDwe+ehrq6O1atXw8TEBD4+PjAxMcGLFy/wv//9D61bt0ZgYCBkZWVx+vTpevPx9/dHnz59YGxsjHnz5uH27du4efMmAGDVqlVwdXXFjBkzYGxsDD8/P7i4uDSqngMHDsSAAQNgZGQEKysrbNmyBVevXkVmZiYAID8/H61bt8Y333wDAwMDfPPNN/Dw8AAAaGpqAgBUVVWho6PDnd+6dQunT5/Gn3/+ibi4OKxcuRJ//PEHJk6cKFF+3759UVJSgpMnT+L58+fYuXMnfHx83lnvRYsWQUVFhTv09PQa1W5CCCGEfFlocEG+aBEREYiOjkZWVtZ7pW/bti2kpP7vPwNtbW2Ym5tz59LS0tDQ0MD9+/frzcfCwoL7t1gsBgAuTVZWFjp16sSLb2dn16h63rhxAx4eHmjZsiWUlZW5WYn8/HwA1Y94paenw8TEBH5+fjh69Og786yqqoJAIEBMTAw6duyI3r17Y/ny5YiOjpaYvZCRkcH333+PyMhI7Nq1C8bGxrw21yUwMBDFxcXcUVBQ0Kh2E0IIIeTLQoML8kXr1q0bXFxcEBgYyAuXkpLC21u4vH79WiK9jIwM71wgENQa9vYi5/ryqXlj1bvSNIabmxseP36MjRs3Ii0tDWlpaQCq11oAgI2NDXJzczF//ny8fPkSQ4YMwaBBg+rNUywWo3nz5lBRUeHCTE1NwRir9TEwHx8f7Nq1C2vXrm3QrAUACIVCKCsr8w5CCCGE/HfR26LIFy88PBxWVlYwMTHhwjQ1NVFUVATGGHezn56e/lnqZ2pqyg0Gapw9e7bB6R89eoTs7Gxs3LgRXbt2BYBaH9NSVlbG0KFDMXToUAwaNAiurq54/Pgx1NXVISMjg8rKSl58e3t77Nq1C6WlpRCJRACA69evQ0pKivdWqBpt27ZF27ZtceXKFQwfPrzB9SeEEELI14MGF+SLZ25uDk9PT6xevZoLc3R0xIMHD7B48WIMGjQIhw8fxqFDhz7LL+d+fn6wt7fH0qVL4e7ujiNHjuDw4cMS8SorKyUGQEKhECYmJtDQ0MAvv/wCsViM/Px8zJo1ixdv+fLlEIvFsLa2hpSUFHbt2gUdHR3ujVSGhoY4fvw47O3tIRQKoaamhuHDh2P+/PkYNWoU5s2bh4cPHyIgIAA+Pj6Ql5evtS0nTpzA69evP+qeHIQQQgj5ctFjUeQ/ITQ0lPcYkqmpKdatW4e1a9fC0tIS586dg7+//2epW+fOnbFx40asWrUKlpaWOHr0KGbPni0Rr7S0FNbW1rzDzc0NUlJS2L59Oy5evIh27dph2rRpWLJkCS+tkpISFi9eDFtbW3To0AF5eXk4ePAgt55k2bJlSEhIgJ6eHqytrQEAIpEICQkJePr0KWxtbeHp6Qk3NzfeIO1tioqKNLAghBBCSJ0E7O0H0wkhH11UVBSmTp2Kp0+ffu6qfFIlJSVQUVFBcXExrb8ghBBCvhCN+ftNMxeEEEIIIYSQD4IGF4QQQgghhJAPggYXhHwG3t7e73wkytHREVOnTv1H5eTl5UEgEHy2N2URQggh5OtCg4t/OW9vbwgEAoSHh/PC4+PjuVesfkwCgQDx8fEfNM+oqKiPuii4rjqXl5cjKCgIBgYGEAqFMDQ0xJYtW7jrISEhEAgEcHV1lUi7ZMkSCAQCODo6frR6v4tAIKj1eHtxNyGEEELI50Kvov0CyMnJISIiAuPGjYOamtrnrs4Xa8iQIbh37x42b94MIyMjFBYWSmx0JxaLkZiYiDt37vD2etiyZQv09fU/dZV5CgsLeeeHDh2Cr68vBg4c+JlqRAghhBDCRzMXXwBnZ2fo6Ohg0aJFtV4PCQmBlZUVL2zlypUwNDTkzr29vdGvXz+EhYVBW1sbqqqqCA0NRUVFBQICAqCurg5dXV1ERkbWWY+aR2xiY2Ph5OQEBQUFWFpa4syZM7x4UVFR0NfXh4KCAvr3749ly5Y1aqbi8OHD+Oabb6CqqgoNDQ307dsXOTk53PVXr15h8uTJEIvFkJOTg4GBAdc3NW3u378/BAIBd3748GEkJyfj4MGDcHZ2hqGhIezs7GBvb88rW0tLC7169UJ0dDQXlpqaiocPH6JPnz4Sdd20aRNMTU0hJyeHNm3aYN26ddw1Hx8fWFhYoLy8nKu3tbU1Ro4cycVJSUmBo6MjFBQUoKamBhcXFzx58qTWftHR0eEde/bsgZOTE1q2bMnFOXfuHKytrSEnJwdbW1tcvnyZl0dlZSV8fX3RokULyMvLw8TEBKtWreKunzx5EjIyMigqKuKlmzp1KreB3+3bt+Hm5gY1NTUoKiqibdu2OHjwYK11JoQQQsjXhQYXXwBpaWmEhYVhzZo1uHPnznvnc+LECdy9excnT57E8uXLERwcjL59+0JNTQ1paWkYP348xo0b984ygoKC4O/vj/T0dBgbG8PDwwMVFRUAgLS0NPj6+mLy5MlIT0+Hk5MTFixY0Kh6Pn/+HNOnT8eFCxdw/PhxSElJoX///twsw+rVq7F3717s3LkT2dnZiImJ4QYR58+fBwBERkaisLCQO9+7dy9sbW2xePFiNG/eHMbGxvD398fLly8lyvfx8UFUVBR3vmXLFnh6ekJWVpYXLyYmBnPnzsXChQuRlZWFsLAwzJkzhxuYrF69Gs+fP+c2vAsKCsLTp0/x008/AajeMbxHjx4wMzPDmTNncPr0abi5uUnspF2be/fu4cCBA/D19eXCSktL0bdvX5iZmeHixYsICQmR2NujqqoKurq62LVrFzIzMzF37lz873//w86dOwEA3bp1Q8uWLbF161YuzevXrxETEwMfHx8AwKRJk1BeXo6TJ0/i6tWriIiI4Hb4JoQQQshXjpF/NS8vL+bu7s4YY6xz587Mx8eHMcZYXFwcq/n4goODmaWlJS/dihUrmIGBAS8fAwMDVllZyYWZmJiwrl27cucVFRVMUVGR/f7771wYABYXF8cYYyw3N5cBYJs2beKuX7t2jQFgWVlZjDHGPDw8WO/evXl1GTp0KFNRUeHOIyMjeefv8uDBAwaAXb16lTHG2A8//MC6d+/Oqqqqao3/Zp1ruLi4MKFQyPr06cPS0tLYgQMHmIGBAfP29ubi1PTjq1evmJaWFktOTmalpaVMSUmJZWRksClTpjAHBwcufqtWrdi2bdt45cyfP5/Z2dlx56mpqUxGRobNmTOHNWnShJ06dYq75uHhwezt7etst4ODA5syZUqt1yIiIpiamhp7+fIlF7ZhwwamoaHBC1u/fj0DwC5fvlxnOZMmTWIDBw7k5W1qasqd7969m4lEIlZaWsoYY8zc3JyFhITUmd+bysrKWHFxMXcUFBQwAKy4uLhB6QkhhBDy+RUXFzf47zfNXHxBIiIiEB0djaysrPdK37ZtW27HZgDQ1taGubk5dy4tLQ0NDQ3cv3+/3nwsLCy4f4vFYgDg0mRlZaFTp068+HZ2do2q540bN+Dh4YGWLVtCWVmZm5XIz88HUP2IV3p6OkxMTODn54ejR4++M8+qqioIBALExMSgY8eO6N27N5YvX47o6GiJ2QsZGRl8//33iIyMxK5du2BsbMxrM1A9u5KTkwNfX1+IRCLuWLBgAe8RLjs7O/j7+2P+/Pn48ccf8c0333DXamYu3kfNbIqcnBwXlpWVBQsLC15YbX2/du1atG/fHpqamhCJRPjll1+4vgWq+/fmzZs4e/YsgOrH3IYMGQJFRUUAgJ+fHxYsWAB7e3sEBwfjypUrddZz0aJFUFFR4Q49Pb33ai8hhBBCvgw0uPiCdOvWDS4uLggMDOSFS0lJgb210frr168l0svIyPDOBQJBrWFvL3KuL5+aN1a9K01juLm54fHjx9i4cSPS0tKQlpYGoHrNAgDY2NggNzcX8+fPx8uXLzFkyBAMGjSo3jzFYjGaN28OFRUVLszU1BSMsVofA/Px8cGuXbuwdu1a7nGgN5WWlgIANm7ciPT0dO74888/uZtyoLpfUlJSIC0tjZs3b/LykJeXb2CP8J06dQrZ2dkYPXp0o9Nu374d/v7+8PX1xdGjR5Geno5Ro0ZxfQtUrztxc3NDZGQk7t27h0OHDvH6YPTo0bh16xZGjBiBq1evwtbWFmvWrKm1vMDAQBQXF3NHQUFB4xtMCCGEkC8GDS6+MOHh4di3bx9vEbWmpiaKiop4A4zPta+BqakpNxio8ebN9rs8evQI2dnZmD17Nnr06AFTU9NaFzgrKytj6NCh2LhxI3bs2IHdu3fj8ePHAKoHP2+vW7C3t8fdu3e5QQEAXL9+HVJSUry3QtVo27Yt2rZtiz///BPDhw+XuK6trY1mzZrh1q1bMDIy4h0tWrTg4i1ZsgR//fUXkpOTcfjwYd6CeQsLCxw/frzBfVNj8+bNaN++PSwtLXnhpqamuHLlCsrKyriwt/s+JSUFXbp0wcSJE2FtbQ0jIyPeTEuN0aNHY8eOHfjll1/QqlUriYXvenp6GD9+PGJjY/Hjjz9i48aNtdZVKBRCWVmZdxBCCCHkv4sGF18Yc3NzeHp6YvXq1VyYo6MjHjx4gMWLFyMnJwdr167FoUOHPkv9/Pz8cPjwYSxduhQ3btzATz/9hMOHD0vEq6ys5P3in56ejqysLKipqUFDQwO//PILbt68iRMnTmD69Om8tMuXL8fvv/+Ov/76C9evX8euXbugo6PDvZHK0NAQx48fR1FRETcwGT58ODQ0NDBq1ChkZmbi5MmTCAgIgI+PT50zCCdOnEBhYWGdb7qaN28eFi1ahNWrV+P69eu4evUqIiMjsXz5cgDA5cuXMXfuXGzatAn29vZYvnw5pkyZglu3bgGo/lX//PnzmDhxIq5cuYK//voL69evx8OHD+vs35KSEuzatavWWYvhw4dDIBBgzJgxyMzMxMGDB7F06VJenNatW+PChQs4cuQIrl+/jjlz5nCL3t/k4uICZWVlLFiwAKNGjeJdmzp1Ko4cOYLc3FxcunQJiYmJMDU1rbPOhBBCCPl60ODiCxQaGsp7DMnU1BTr1q3D2rVrYWlpiXPnzkm8JehT6dy5MzZu3IhVq1bB0tISR48exezZsyXilZaWwtramne4ublBSkoK27dvx8WLF9GuXTtMmzZNYpM4JSUlLF68GLa2tujQoQPy8vJw8OBBbj3JsmXLkJCQAD09PVhbWwMARCIREhIS8PTpU9ja2sLT0xNubm68QdrbFBUV632F7ujRo7Fp0yZERkbC3NwcDg4OiIqKQosWLVBWVobvv/8e3t7ecHNzAwCMHTsWTk5OGDFiBCorK2FsbIyjR48iIyMDHTt2hJ2dHfbs2YMmTerefmb79u1gjMHDw0Pimkgkwr59+3D16lVYW1sjKCgIERERvDjjxo3DgAEDMHToUHTq1AmPHj3CxIkTJfKSkpKCt7c3Kisrea/OBaoHhpMmTYKpqSlcXV1hbGzMewUvIYQQQr5eAvb2w/qEfGBRUVGYOnUqnj59+rmrQhrB19cXDx48wN69ez9YniUlJVBRUUFxcTE9IkUIIYR8IRrz95t26CaE8BQXF+Pq1avYtm3bBx1YEEIIIeS/jwYXhBAed3d3nDt3DuPHj0fPnj0/d3UIIYQQ8gWhx6IIIZ8MPRZFCCGEfHka8/ebFnSTdzI0NMTKlSs/dzU+ipCQEFhZWTU4flRUVL2LvL8kAoEA8fHxn7sahBBCCPkPocHFP+Dt7Q2BQIDw8HBeeHx8PLe5XEPUdvOelJQEgUAgcdT25qUPpa4b5/Pnz2Ps2LEftKyavqvZyK9FixaYMWMGb4+Gf6OhQ4fi+vXrHzxfR0dH3uesra2NwYMH4/bt2x+8LEIIIYSQj4UGF/+QnJwcIiIiat3o7UPIzs5GYWEhd8yaNUsiTmVl5QfdIfttmpqaUFBQ+OD5urq6orCwELdu3cKKFSuwYcMGBAcHf/ByPiR5eXloaWl9lLzHjBmDwsJC3L17F3v27EFBQQG+//77f5TnmztvE0IIIYR8bDS4+IecnZ2ho6ODRYsW1Rnn9OnT6Nq1K+Tl5aGnpwc/Pz88f/4cQPUv1rdv38a0adO4X63fpKWlBR0dHe4QiUTcDMPevXthZmYGoVCI/Px8nD9/Hj179kTTpk2hoqICBwcHXLp0iZff06dPMW7cOGhra0NOTg7t2rXD/v37kZSUhFGjRqG4uJirR0hICADJmZX8/Hy4u7tDJBJBWVkZQ4YMwb1797jrNY8abd26FYaGhlBRUcGwYcPw7NkzXl2EQiF0dHSgp6eHfv36wdnZGQkJCdz1qqoqLFq0CC1atIC8vDwsLS3xxx9/cNd0dXWxfv16Xp6XL1+GlJQU94v/u+r6pqNHj0JOTk7ilblTpkxB9+7dAUjO7jSkrc+ePYOnpycUFRUhFouxYsUKODo6YurUqbxyFBQUoKOjA7FYjM6dO2Py5Mm8z6+2maW3Z8lq6rNp0ya0aNECcnJyAIAbN26gW7dukJOTg5mZGa+faxQUFGDIkCFQVVWFuro63N3dkZeXx1339vZGv379sHTpUojFYmhoaGDSpEl4/fp1rf1JCCGEkK8PDS7+IWlpaYSFhWHNmjW4c+eOxPWcnBy4urpi4MCBuHLlCnbs2IHTp09j8uTJAIDY2Fjo6uoiNDSUm51oiBcvXiAiIgKbNm3CtWvXoKWlhWfPnsHLywunT5/G2bNn0bp1a/Tu3Zu70a2qqsK3336LlJQU/Pbbb8jMzER4eDikpaXRpUsXrFy5EsrKylw9atuIr6qqCu7u7nj8+DGSk5ORkJCAW7duYejQoRLtjo+Px/79+7F//34kJydLPD72pj///BOpqamQlZXlwhYtWoRff/0VP//8M65du4Zp06bh+++/R3JyMqSkpODh4YFt27bx8omJiYG9vT0MDAwaXNcaPXr0gKqqKnbv3s2FVVZWYseOHfD09Kyz7u9q6/Tp05GSkoK9e/ciISEBp06dkhj0ve3x48fYuXMnOnXqVG+82ty8eRO7d+9GbGws0tPTUVVVhQEDBkBWVhZpaWn4+eefMXPmTF6a169fw8XFBUpKSjh16hRSUlIgEong6urKm/1ITExETk4OEhMTER0djaioKERFRdVZl/LycpSUlPAOQgghhPyHMfLevLy8mLu7O2OMsc6dOzMfHx/GGGNxcXGspmt9fX3Z2LFjeelOnTrFpKSk2MuXLxljjBkYGLAVK1bw4iQmJjIATFFRkXc8fPiQRUZGMgAsPT293vpVVlYyJSUltm/fPsYYY0eOHGFSUlIsOzu71viRkZFMRUVFIvzN+h09epRJS0uz/Px87vq1a9cYAHbu3DnGGGPBwcFMQUGBlZSUcHECAgJYp06duHMvLy8mLS3NFBUVmVAoZACYlJQU++OPPxhjjJWVlTEFBQWWmprKq4uvry/z8PBgjDF2+fJlJhAI2O3bt7n2Nm/enK1fv75RdbW0tOSuT5kyhXXv3p07P3LkCBMKhezJkye19tG72lpSUsJkZGTYrl27uOtPnz5lCgoKbMqUKVyYg4MDk5GRYYqKikxBQYEBYMbGxiw3N5eLU9vn8+Z3raY+MjIy7P79+7w2NGnShP39999c2KFDhxgAFhcXxxhjbOvWrczExIRVVVVxccrLy5m8vDw7cuQIY6z6MzMwMGAVFRVcnMGDB7OhQ4eyugQHBzMAEkdxcXGdaQghhBDy71JcXNzgv980c/GBREREIDo6GllZWbzwjIwMREVFQSQScYeLiwuqqqqQm5v7znxPnTqF9PR07lBTUwMAyMrKwsLCghf33r17GDNmDFq3bg0VFRUoKyujtLQU+fn5AID09HTo6urC2Nj4vduZlZUFPT096OnpcWFmZmZQVVXltd3Q0BBKSkrcuVgsxv3793l5OTk5IT09HWlpafDy8sKoUaMwcOBAANW/vr948QI9e/bk9d2vv/6KnJwcAICVlRVMTU252Yvk5GTcv38fgwcPblRd3+Tp6YmkpCTcvXsXQPVMSJ8+fep9Q1R9bb116xZev36Njh07ctdVVFRgYmJSa9np6enIyMjA6dOnYWRkhF69ekk8TvYuBgYG0NTU5M5r+qFZs2ZcmJ2dHS9NRkYGbt68CSUlJa6v1dXVUVZWxvU3ALRt2xbS0tK1trU2gYGBKC4u5o6CgoJGtYUQQgghXxbaRO8D6datG1xcXBAYGAhvb28uvLS0FOPGjYOfn59EGn19/Xfm26JFi1pvbOXl5SXWZ3h5eeHRo0dYtWoVDAwMIBQKYWdnxz3WIi8v37hG/QMyMjK8c4FAILHoXFFREUZGRgCALVu2wNLSEps3b4avry9KS0sBAAcOHEDz5s156YRCIfdvT09PbNu2DbNmzcK2bdvg6uoKDQ2N9653hw4d0KpVK2zfvh0TJkxAXFxcvY/9AA1ra0OoqKhw/WFkZITNmzdDLBZjx44dGD16NKSkpMDe2pamtvUOioqKjS67tLQU7du3R0xMjMS1NwcqjW2rUCjkfV6EEEII+W+jwcUHFB4eDisrK96v0jY2NsjMzORuGmsjKyuLysrKf1x+SkoK1q1bh969ewOoXqD78OFD7rqFhQXu3LmD69ev1zp70ZB6mJqaoqCgAAUFBdyMQGZmJp4+fQozM7P3rruUlBT+97//Yfr06Rg+fDhvobqDg0Od6YYPH47Zs2fj4sWL+OOPP/Dzzz//47p6enoiJiYGurq6kJKSQp8+fd67XS1btoSMjAzOnz/PDSaLi4tx/fp1dOvWrd60NTMEL1++BFB9k//s2TM8f/6cG0Ckp6e/sw41/VBYWAixWAwAOHv2LC+OjY0NduzYAS0tLdrcjhBCCCHvjR6L+oDMzc3h6emJ1atXc2EzZ85EamoqJk+ejPT0dNy4cQN79uzhFnQD1Y/VnDx5En///TdvMNBYrVu3xtatW5GVlYW0tDR4enryZiscHBzQrVs3DBw4EAkJCcjNzcWhQ4dw+PBhrh6lpaU4fvw4Hj58iBcvXkiU4ezszLXz0qVLOHfuHEaOHAkHBwfY2tq+d90BYPDgwZCWlsbatWuhpKQEf39/TJs2DdHR0cjJycGlS5ewZs0aREdHc2kMDQ3RpUsX+Pr6orKyEt99990/rmtN/IULF2LQoEH/6Jd3JSUleHl5ISAgAImJibh27Rp8fX0hJSUlMfP04sULFBUVoaioCBkZGZgwYQLk5OTQq1cvAECnTp2goKCA//3vf8jJycG2bdveOatS0w/Gxsbw8vJCRkYGTp06haCgIIk2N23aFO7u7jh16hRyc3ORlJQEPz+/Wl9UQAghhBBSGxpcfGChoaG8x0QsLCyQnJyM69evo2vXrrC2tsbcuXN5z7+HhoYiLy8PrVq14j2C0libN2/GkydPYGNjgxEjRsDPz09iT4bdu3ejQ4cO8PDwgJmZGWbMmMHNVnTp0gXjx4/H0KFDoampicWLF0uUIRAIsGfPHqipqaFbt25wdnZGy5YtsWPHjveud40mTZpg8uTJWLx4MZ4/f4758+djzpw5WLRoEUxNTeHq6ooDBw6gRYsWvHSenp7IyMhA//79eYOp962rkZEROnbsiCtXrtT7lqiGWr58Oezs7NC3b184OzvD3t4epqam3Gtia2zcuBFisRhisRhOTk54+PAhDh48yM2Eqaur47fffsPBgwdhbm6O33//nXtdcH2kpKQQFxeHly9fomPHjhg9ejQWLlzIi6OgoICTJ09CX18fAwYMgKmpKXx9fVFWVkYzGYQQQghpMAF7+yFuQshH9fz5czRv3hzLli2Dr6/v567OJ1VSUgIVFRUUFxfToIUQQgj5QjTm7zetuSDkI7t8+TL++usvdOzYEcXFxQgNDQUAuLu7f+aaEUIIIYR8WDS4IOQTWLp0KbKzsyErK4v27dvj1KlTaNq06eeuFiGEEELIB0WDC0I+Mmtra1y8ePFzV4MQQggh5KOjBd3kX8PQ0BArV6783NX4KBwdHTF16lTu/HO3NS8vDwKBoEGvsiWEEEIIaSgaXHwBvL29IRAIEB4ezguPj4+XeJ1pfWq7oU1KSoJAIJA4Zs+e/SGqXquoqKhaNwY8f/48xo4d+0HL8vb2Rr9+/T5Yfh9rUGBoaMj1vbS0NJo1awZfX188efLkg5dFCCGEEPKx0ODiCyEnJ4eIiIiPdrOZnZ2NwsJC7pg1a5ZEnMrKyvfaebqhNDU1oaCg8NHy/7cLDQ1FYWEh8vPzERMTg5MnT9a6s3tj1OzOTgghhBDyKdDg4gvh7OwMHR0dLFq0qM44p0+fRteuXSEvLw89PT34+fnh+fPnAKofy7l9+zamTZvG/UL+Ji0tLejo6HCHSCTiZhj27t3L2zH7/Pnz6NmzJ5o2bQoVFRU4ODjg0qVLvPyePn2KcePGQVtbG3JycmjXrh3279+PpKQkjBo1CsXFxVw9avZqeHtWID8/H+7u7hCJRFBWVsaQIUNw79497npISAisrKywdetWGBoaQkVFBcOGDcOzZ8/q7CNHR0f4+flhxowZUFdXh46ODm+vCMYYQkJCoK+vD6FQiGbNmnE3+HX14aNHj+Dh4YHmzZtDQUGB24OisZSUlKCjo4PmzZvDyckJXl5evH6tae+bVq5cCUNDQ+68ZqZm4cKFaNasGbdHxrlz52BtbQ05OTnY2tri8uXLEuX/+eef+PbbbyESiaCtrY0RI0bwNnV8V98RQgghhNDg4gshLS2NsLAwrFmzptYdk3NycuDq6oqBAwfiypUr2LFjB06fPs3tBB4bGwtdXV3u1/HCwsIGlfvixQtERERg06ZNuHbtGrS0tPDs2TN4eXnh9OnTOHv2LFq3bo3evXtzN/VVVVX49ttvkZKSgt9++w2ZmZkIDw+HtLQ0unTpgpUrV0JZWZmrh7+/v0S5VVVVcHd3x+PHj5GcnIyEhATcunULQ4cOlWh3fHw89u/fj/379yM5OVni8bG3RUdHQ1FREWlpaVi8eDFCQ0ORkJAAoHqTwRUrVmDDhg24ceMG4uPjYW5uXm8flpWVoX379jhw4AD+/PNPjB07FiNGjMC5c+ca1Me1+fvvv7Fv3z506tSp0WmPHz+O7OxsJCQkYP/+/SgtLUXfvn1hZmaGixcvIiQkRKLPnz59iu7du8Pa2hoXLlzA4cOHce/ePQwZMoQXr76+q015eTlKSkp4ByGEEEL+wxj51/Py8mLu7u6MMcY6d+7MfHx8GGOMxcXFsZqP0NfXl40dO5aX7tSpU0xKSoq9fPmSMcaYgYEBW7FiBS9OYmIiA8AUFRV5x8OHD1lkZCQDwNLT0+utX2VlJVNSUmL79u1jjDF25MgRJiUlxbKzs2uNHxkZyVRUVCTC36zf0aNHmbS0NMvPz+euX7t2jQFg586dY4wxFhwczBQUFFhJSQkXJyAggHXq1Ik7f7PvGGPMwcGBffPNN7xyO3TowGbOnMkYY2zZsmXM2NiYvXr1qta619aHtenTpw/78ccfeeVOmTKlznwMDAyYrKwsU1RUZHJycgwA69SpE3vy5AkXJzg4mFlaWvLKWbFiBTMwMOC1V1tbm5WXl3NhGzZsYBoaGtz3gDHG1q9fzwCwy5cvM8YYmz9/PuvVqxcv74KCAgaA+xzf1Xe1CQ4OZgAkjuLi4jrTEEIIIeTfpbi4uMF/v2nm4gsTERGB6OhoZGVl8cIzMjIQFRUFkUjEHS4uLqiqqkJubu478z116hTS09O5Q01NDQAgKysLCwsLXtx79+5hzJgxaN26NVRUVKCsrIzS0lLk5+cDANLT06GrqwtjY+P3bmdWVhb09PSgp6fHhZmZmUFVVZXXdkNDQygpKXHnYrEY9+/frzfvt9vzZprBgwfj5cuXaNmyJcaMGYO4uDhUVFTUm19lZSXmz58Pc3NzqKurQyQS4ciRI1x/NFRAQADS09Nx5coVHD9+HADQp08fVFZWNiofc3NzyMrKcudZWVmwsLCAnJwcF2ZnZ8dLk5GRgcTERN73p02bNgCqZ4dq1Nd3tQkMDERxcTF3FBQUNKothBBCCPmy0D4XX5hu3brBxcUFgYGB8Pb25sJLS0sxbty4WhcA6+vrvzPfFi1a1PoGJ3l5eYn1GV5eXnj06BFWrVoFAwMDCIVC2NnZcYuH5eXlG9eof0BGRoZ3LhAI3rnovL40enp6yM7OxrFjx5CQkICJEydiyZIlSE5OlkhXY8mSJVi1ahVWrlwJc3NzKCoqYurUqY1eTN20aVMYGRkBAFq3bo2VK1fCzs4OiYmJcHZ2hpSUFBhjvDSvX7+WyEdRUbFR5QLV3x83NzdERERIXBOLxdy/G9vfQqEQQqGw0fUhhBBCyJeJBhdfoPDwcFhZWXGLdQHAxsYGmZmZ3M1pbWRlZRv9K3htUlJSsG7dOvTu3RsAUFBQwFv4a2FhgTt37uD69eu1zl40pB6mpqYoKChAQUEBN3uRmZmJp0+fwszM7B+3oT7y8vJwc3ODm5sbJk2ahDZt2uDq1auwsbGpte4pKSlwd3fH999/D6B6vcj169f/cT2lpaUBAC9fvgRQ/TatoqIiMMa4AV9D9qkwNTXF1q1bUVZWxs1enD17lhfHxsYGu3fvhqGhIZo0of8tEEIIIeT90GNRXyBzc3N4enpi9erVXNjMmTORmpqKyZMnIz09HTdu3MCePXu4Bd1A9SNEJ0+exN9//80bDDRW69atsXXrVmRlZSEtLQ2enp682QoHBwd069YNAwcOREJCAnJzc3Ho0CEcPnyYq0dpaSmOHz+Ohw8f4sWLFxJlODs7c+28dOkSzp07h5EjR8LBwQG2trbvXfd3iYqKwubNm/Hnn3/i1q1b+O233yAvLw8DAwOu7m/3YevWrZGQkIDU1FRkZWVh3LhxvLdaNdSzZ89QVFSEwsJCnDt3DgEBAdDU1ESXLl0AVL+t6cGDB1i8eDFycnKwdu1aHDp06J35Dh8+HAKBAGPGjEFmZiYOHjyIpUuX8uJMmjQJjx8/hoeHB86fP4+cnBwcOXIEo0aN+iADUkIIIYR8HWhw8YUKDQ3lPY5iYWGB5ORkXL9+HV27doW1tTXmzp2LZs2a8dLk5eWhVatW0NTUfO+yN2/ejCdPnsDGxgYjRoyAn58ftLS0eHF2796NDh06wMPDA2ZmZpgxYwZ3k9qlSxeMHz8eQ4cOhaamJhYvXixRhkAgwJ49e6CmpoZu3brB2dkZLVu2xI4dO9673g2hqqqKjRs3wt7eHhYWFjh27Bj27dsHDQ0NALX34ezZs2FjYwMXFxc4OjpCR0fnvTbumzt3LsRiMZo1a4a+fftCUVERR48e5co2NTXFunXrsHbtWlhaWuLcuXO1vmnrbSKRCPv27cPVq1dhbW2NoKAgicefmjVrhpSUFFRWVqJXr14wNzfH1KlToaqqCikp+t8EIYQQQhpGwN5+iJsQQj6SkpISqKiooLi4GMrKyp+7OoQQQghpgMb8/aafJAkhhBBCCCEfBA0uCCGEEEIIIR8EDS4IIYQQQgghHwQNLr5yhoaGWLlyZYPjOzo6YurUqR+tPh9TVFRUrXt5fKka+9kRQgghhHxsX+3gwtvbGwKBAOHh4bzw+Ph4iU3jPgaBQMAdysrK6NChA/bs2fPRy/2nYmNjMX/+/A+WX0hICK8vajv+jWbNmsXtYF3jr7/+gkAg4G1uCFQPaoRCIbdfxZtta9KkCfT19TF9+nSUl5d/quoTQgghhHwUX+3gAgDk5OQQERGBJ0+efJbyIyMjUVhYiAsXLsDe3h6DBg3C1atXP0tdGkpdXR1KSkofLD9/f38UFhZyh66uLkJDQ3lhb2rsrtcfi5OTE7Kzs1FUVMSFJSYmQk9PD0lJSby4iYmJ6Ny5M28vkJrPPjc3F+vWrcPWrVuxYMGCT1V9QgghhJCP4qseXDg7O0NHRweLFi2q9XpISAisrKx4YStXroShoSF37u3tjX79+iEsLAza2tpQVVVFaGgoKioqEBAQAHV1dejq6iIyMlIif1VVVejo6MDY2Bjz589HRUUFEhMTuesFBQUYMmQIVFVVoa6uDnd3d+Tl5QEAjh49Cjk5OTx9+pSX55QpU9C9e3fufPfu3Wjbti2EQiEMDQ2xbNmyOvtj+PDhGDp0KC/s9evXaNq0KX799VcAko9FGRoaIiwsDD4+PlBSUoK+vj5++eUXXh6pqamwsrKCnJwcbG1tudmh9PR0iEQi6OjocIe0tDSUlJS482HDhmHy5MmYOnUqmjZtChcXFwDA8uXLYW5uDkVFRejp6WHixIkoLS3llRsVFQV9fX0oKCigf//+ePTokUSb9+zZAxsbG8jJyaFly5aYN28eKioqAACMMYSEhEBfXx9CoRDNmjWDn58fAOCbb76BjIwMbyCRlJTEbUZX8znVhDs5OfHKrfns9fT00LdvX7i7u+PSpUvc9ZycHLi7u0NbWxsikQgdOnTAsWPH6vzsGtInNY+FHTlyBKamphCJRHB1dZUYwG3ZsoX7zojFYt5GjE+fPsXo0aOhqakJZWVldO/eHRkZGfXWixBCCCFfj696cCEtLY2wsDCsWbMGd+7cee98Tpw4gbt37+LkyZNYvnw5goOD0bdvX6ipqSEtLQ3jx4/HuHHj6iyjoqICmzdvBgDIysoCqL6pd3FxgZKSEk6dOoWUlBTuZvDVq1fo0aMHVFVVsXv3bi6fyspK7NixA56engCAixcvYsiQIRg2bBiuXr2KkJAQzJkzB1FRUbXWw9PTE/v27ePdkB45cgQvXrxA//7962z/smXLYGtri8uXL2PixImYMGECsrOzAVS/F9nNzQ3m5ua4dOkS5s+fj5kzZza8cwFER0dDVlYWKSkp+PnnnwEAUlJSWL16Na5du4bo6GicOHECM2bM4NKkpaXB19eX27HcyclJYmbg1KlTGDlyJKZMmYLMzExs2LABUVFRWLhwIYDqgdmKFSuwYcMG3LhxA/Hx8TA3NwcAKCoqokOHDrzBYFJSEnr06AF7e3su/NatW8jPz5cYXLzp+vXrOHHiBDp16sSFlZaWonfv3jh+/DguX74MV1dXuLm5IT8/v8583tUnAPDixQssXboUW7duxcmTJ5Gfn8/biG/9+vWYNGkSxo4di6tXr2Lv3r0wMjLirg8ePBj379/HoUOHcPHiRdjY2KBHjx54/PhxrXUqLy9HSUkJ7yCEEELIfxj7Snl5eTF3d3fGGGOdO3dmPj4+jDHG4uLiWE23BAcHM0tLS166FStWMAMDA14+BgYGrLKykgszMTFhXbt25c4rKiqYoqIi+/3337kwAExOTo4pKioyKSkpBoAZGhqyR48eMcYY27p1KzMxMWFVVVVcmvLyciYvL8+OHDnCGGNsypQprHv37tz1I0eOMKFQyJ48ecIYY2z48OGsZ8+evPoHBAQwMzMz7tzAwICtWLGCMcbY69evWdOmTdmvv/7KXffw8GBDhw7lzh0cHNiUKVN46b///nvuvKqqimlpabH169czxhhbv34909DQYC9fvuTibNy4kQFgly9fZm97sz415VlbW0vEe9uuXbuYhoYGr969e/fmxRk6dChTUVHhznv06MHCwsJ4cbZu3crEYjFjjLFly5YxY2Nj9urVq1rLDAoKYsbGxowxxq5du8aUlZVZRUUFCwsLYyNHjmSMMbZ582YmJyfHysrKuHRvfvZCoZABYH379q2znBpt27Zla9as4c7f7qu3vd0nkZGRDAC7efMmF7Z27Vqmra3NnTdr1owFBQXVmt+pU6eYsrIyry2MMdaqVSu2YcOGWtMEBwczABJHcXFxvW0lhBBCyL9HcXFxg/9+f9UzFzUiIiIQHR2NrKys90rftm1bSEn9X1dqa2tzv3AD1TMkGhoauH//Pi/dihUrkJ6ejkOHDsHMzAybNm2Curo6ACAjIwM3b96EkpISRCIRRCIR1NXVUVZWhpycHADVMw1JSUm4e/cuACAmJgZ9+vTh3oiUlZUFe3t7Xpn29va4ceMGKisrJdrRpEkTDBkyBDExMQCA58+fY8+ePdxMSF0sLCy4fwsEAujo6HBtzc7OhoWFBeTk5Lg4HTt2rDe/t7Vv314i7NixY+jRoweaN28OJSUljBgxAo8ePcKLFy8AVLf9zZkAALCzs+OdZ2RkIDQ0lOtfkUiEMWPGoLCwEC9evMDgwYPx8uVLtGzZEmPGjEFcXBz3yBRQ/YjY9evXUVhYiKSkJHzzzTeQlpaGg4MD97hUUlISunTpAqFQyCu75rPPyMjA/v37cf36dYwYMYK7XlpaCn9/f5iamkJVVRUikQhZWVn1zly8q08AQEFBAa1ateLOxWIx91ndv38fd+/eRY8ePWrNPyMjA6WlpdDQ0OD1WW5uLvedfFtgYCCKi4u5o6CgoM76E0IIIeTL1+RzV+DfoFu3bnBxcUFgYCDvTT9SUlJgjPHivn79WiK9jIwM71wgENQaVlVVxQvT0dGBkZERjIyMEBkZid69eyMzMxNaWlooLS1F+/btuRv9N2lqagIAOnTogFatWmH79u2YMGEC4uLi6nzkqaE8PT3h4OCA+/fvIyEhAfLy8nB1da03TUPa+k8oKiryzvPy8tC3b19MmDABCxcuhLq6Ok6fPg1fX1+8evUKCgoKDcq3tLQU8+bNw4ABAySuycnJQU9PD9nZ2Th27BgSEhIwceJELFmyBMnJyZCRkYG9vT1kZWWRmJiIxMREODg4AKj+XB4+fIhbt24hKSkJ48aNk8i/5rMHABMTEzx79gweHh5YsGABjIyM4O/vj4SEBCxduhRGRkaQl5fHoEGD6lzQ3tA+qe2zqvmOv7ngvK7+EovFEgvWAdT5il+hUCgxsCKEEELIfxcNLv6/8PBwWFlZwcTEhAvT1NREUVERGGPcK1HT09M/SvkdO3ZE+/btsXDhQqxatQo2NjbYsWMHtLS0oKysXGc6T09PxMTEQFdXF1JSUujTpw93zdTUFCkpKbz4KSkpMDY2hrS0dK35denSBXp6etixYwcOHTqEwYMHS9yQNoaJiQl+++03lJeXczeZ58+ff+/8gOq1JFVVVVi2bBk3Y7Rz505eHFNTU6SlpfHCzp49yzu3sbFBdnY2b03B2+Tl5eHm5gY3NzdMmjQJbdq0wdWrV2FjYwN5eXl06tQJSUlJSE5ORkBAAIDqG/jOnTtj8+bNKCgoqHe9RY2az6PmdbUpKSnw9vbm1rqUlpbyFom/T5+8i5KSEgwNDXH8+PFa62xjY4OioiI0adKE91IDQgghhJAa9FjU/2dubg5PT0+sXr2aC3N0dMSDBw+wePFi5OTkYO3atTh06NBHq8PUqVOxYcMG/P333/D09ETTpk3h7u6OU6dOITc3F0lJSfDz8+MtDPf09MSlS5ewcOFCDBo0iPcr8Y8//ojjx49j/vz5uH79OqKjo/HTTz/xFvDWZvjw4fj555+RkJDwzkei3mX48OGoqqrC2LFjkZWVhSNHjmDp0qUA8N57WBgZGeH169dYs2YNbt26ha1bt3ILvWv4+fnh8OHDWLp0KW7cuIGffvoJhw8f5sWZO3cufv31V8ybNw/Xrl1DVlYWtm/fjtmzZwOofrvS5s2b8eeff+LWrVv47bffIC8vDwMDAy4PJycnbN++HWVlZbCxseHCHRwcsGbNGm7h99uePn2KoqIi3L17F8nJyQgNDYWxsTFMTU0BAK1bt0ZsbCz36FRNP/6TPmmIkJAQLFu2DKtXr8aNGzdw6dIlrFmzBkD129Xs7OzQr18/HD16FHl5eUhNTUVQUBAuXLjQ6LIIIYQQ8t9Dg4s3hIaG8m7gTE1NsW7dOqxduxaWlpY4d+7cO2/M/wlXV1e0aNECCxcuhIKCAk6ePAl9fX0MGDAApqam8PX1RVlZGW8mw8jICB07dsSVK1ckBgI2NjbYuXMntm/fjnbt2mHu3LkIDQ2V2OTtbZ6ensjMzETz5s0l1mw0lrKyMvbt24f09HRYWVkhKCgIc+fOBQDeOozGsLS0xPLlyxEREYF27dohJiZG4nXCnTt3xsaNG7Fq1SpYWlri6NGj3KChhouLC/bv34+jR4+iQ4cO6Ny5M1asWMENHlRVVbFx40bY29vDwsICx44dw759+6ChocHl4eTkhGfPnsHe3h5NmvzfRKCDgwOePXvGvbL2baNGjYJYLIauri48PDzQtm1bHDp0iMtj+fLlUFNTQ5cuXeDm5gYXFxfe4OV9+qQhvLy8sHLlSqxbtw5t27ZF3759cePGDQDVg8GDBw+iW7duGDVqFIyNjTFs2DDcvn0b2trajS6LEEIIIf89Avb2ogJCPrKYmBiMGjUKxcXF73zOn/y3lJSUQEVFBcXFxfU+7kcIIYSQf4/G/P2mNRfko/v111/RsmVLNG/eHBkZGZg5cyaGDBlCAwtCCCGEkP8YGlyQj66oqAhz585FUVERxGIxBg8ezG1URwghhBBC/jtozQX56IYMGYLbt2/j7NmzyM3Nhbu7OxQVFfH06dNPWo+QkBBYWVl90jI/JoFAgPj4+M9dDUIIIYQQDg0uPjJvb28IBAKEh4fzwuPj49/7bUmN8SFvQJOSkiAQCD7ooKCmf+o6/q2vPB02bJjE/h+HDx+GQCBASEgILzwkJAT6+voAqvejeLN9srKyMDIywoIFCyT2VCGEEEII+dLQ4OITkJOTQ0REBJ48efK5q/Kvs2rVKhQWFnIHAERGRnLnb++JUdcmcp+ak5MTUlJSeDt2JyYmQk9PT2KTucTERIl9I44dO4bCwkLcuHED8+bNw8KFC7Fly5ZPUXVCCCGEkI+GBhefgLOzM3R0dOp8NWhtj+usXLmS96u9t7c3+vXrh7CwMGhra0NVVRWhoaGoqKhAQEAA1NXVoauri8jIyDrrUfOreWxsLJycnKCgoABLS0ucOXOGi3P79m24ublBTU0NioqKaNu2LQ4ePIi8vDzuBllNTQ0CgYB7pe3hw4fxzTffQFVVFRoaGujbty9ycnIa1DcqKirQ0dHhDqD6FbA15x06dMD8+fMxcuRIKCsrY+zYsQCAmTNnwtjYGAoKCmjZsiXmzJkjsXt6eHg4tLW1oaSkxL3G922bNm2Cqakp5OTk0KZNG6xbt4679urVK0yePBlisRhycnIwMDDgPkMnJyeUlpby9ndISkrCrFmzkJaWxpVVVlaGtLQ0icGFhoYGdHR0YGBgAE9PT9jb2+PSpUvc9fPnz6Nnz55o2rQpVFRU4ODgwLtem3f1Sc33bOvWrTA0NISKigqGDRuGZ8+ecXGqqqqwePFiGBkZQSgUQl9fn7c+pqCgAEOGDIGqqirU1dXh7u5e7+Z+hBBCCPm60ODiE5CWlkZYWBjWrFnD2wCvsU6cOIG7d+/i5MmTWL58OYKDg9G3b1+oqakhLS0N48ePx7hx495ZRlBQEPz9/ZGeng5jY2N4eHhwv8BPmjQJ5eXlOHnyJK5evYqIiAiIRCLo6elh9+7dAIDs7GwUFhZi1apVAIDnz59j+vTpuHDhAo4fPw4pKSn079+/3k3fGmPp0qWwtLTE5cuXMWfOHADVu0lHRUUhMzMTq1atwsaNG7FixQouzc6dOxESEoKwsDBcuHABYrGYN3AAql+JO3fuXCxcuBBZWVkICwvDnDlzEB0dDQBYvXo19u7di507dyI7OxsxMTHcgM/Y2BjNmjVDYmIiAODZs2e4dOkSBg8eDENDQ27AlpqaivLy8np36b5w4QIuXryITp06cWHPnj2Dl5cXTp8+jbNnz6J169bo3bs3byDwtnf1CQDk5OQgPj4e+/fvx/79+5GcnMx7ZC8wMBDh4eGYM2cOMjMzsW3bNm4Pi9evX8PFxQVKSko4deoUUlJSIBKJ4Orq+q+ZUSKEEELIZ8bIR+Xl5cXc3d0ZY4x17tyZ+fj4MMYYi4uLYzXdHxwczCwtLXnpVqxYwQwMDHj5GBgYsMrKSi7MxMSEde3alTuvqKhgioqK7Pfff+fCALC4uDjGGGO5ubkMANu0aRN3/dq1awwAy8rKYowxZm5uzkJCQmptS2JiIgPAnjx5Um+bHzx4wACwq1ev8sq9fPnyO/N5s76MMWZgYMD69etXb3mMMbZkyRLWvn177tzOzo5NnDiRF6dTp068fm7VqhXbtm0bL878+fOZnZ0dY4yxH374gXXv3p1VVVXVWqanpyfr1asXY4yxAwcOMDMzM8YYY2PHjmVz585ljDE2Z84c1qJFCy5NTV/Iy8szRUVFJiMjwwCwsWPH1tu+yspKpqSkxPbt28eFvd1Xb3u7T4KDg5mCggIrKSnhwgICAlinTp0YY4yVlJQwoVDINm7cWGt+W7duZSYmJrz+KC8vZ/Ly8uzIkSO1pikrK2PFxcXcUVBQwACw4uLiettLCCGEkH+P4uLiBv/9ppmLTygiIgLR0dHIysp6r/Rt27aFlNT/fWTa2towNzfnzqWlpaGhoYH79+/Xm4+FhQX3b7FYDABcGj8/PyxYsAD29vYIDg7GlStX3lmvGzduwMPDAy1btoSysjL3635+fn6D21YfW1tbibAdO3bA3t4eOjo6EIlEmD17Nq+8rKws3kwAANjZ2XH/fv78OXJycuDr6wuRSMQdCxYs4B7p8vb2Rnp6OkxMTODn54ejR4/y8nN0dERKSgpev36NpKQkODo6Aqjenbtm3UVSUlKtsxY7duxAeno6MjIysHPnTuzZswezZs3irt+7dw9jxoxB69atoaKiAmVlZZSWltbbp+/qEwAwNDSEkpISdy4Wi7nPPisrC+Xl5ejRo0et+WdkZODmzZtQUlLi+ktdXR1lZWV1Pga3aNEiqKiocIeenl6d9SeEEELIl48GF59Qt27d4OLigsDAQF64lJSUxJuC3l4/AAAyMjK8c4FAUGvYux5HejNNzRuratKMHj0at27dwogRI3D16lXY2tpizZo19ebn5uaGx48fY+PGjUhLS0NaWhqAD7f4WlFRkXd+5swZeHp6onfv3ti/fz8uX76MoKCgRpVXWloKANi4cSPS09O5488//8TZs2cBADY2NsjNzcX8+fPx8uVLDBkyBIMGDeLycHJywvPnz3H+/HkkJibCwcEBQPXgIi0tDY8fP0ZaWhq6d+8uUb6enh6MjIxgamqKwYMHY+rUqVi2bBm3VsPLywvp6elYtWoVUlNTkZ6eDg0NjTrb2NA+qe/78q5NDUtLS9G+fXtef6Wnp+P69esYPnx4rWkCAwNRXFzMHQUFBfWWQQghhJAvG22i94mFh4fDysoKJiYmXJimpiaKiorAGONu9tPT0z9TDatvfMePH4/x48cjMDAQGzduxA8//ABZWVkAQGVlJRf30aNHyM7OxsaNG9G1a1cAwOnTpz9q/VJTU2FgYICgoCAu7Pbt27w4pqamSEtLw8iRI7mwmkEDUD3r06xZM9y6dQuenp51lqWsrIyhQ4di6NChGDRoEFxdXfH48WOoq6ujVatW0NPTw969e5Gens4NLpo3b47mzZtj2bJlePXqVb3rLWpIS0ujoqICr169gpycHFJSUrBu3Tr07t0bQPVC6ocPH/6jPnmX1q1bQ15eHsePH8fo0aMlrtvY2GDHjh3Q0tKCsrJyg/IUCoUQCoWNqgchhBBCvlw0uPjEzM3N4enpidWrV3Nhjo6OePDgARYvXoxBgwbh8OHDOHToUINv4D6kqVOn4ttvv4WxsTGePHmCxMREmJqaAgAMDAwgEAiwf/9+9O7dG/Ly8lBTU4OGhgZ++eUXiMVi5Ofn8x7v+Rhat26N/Px8bN++HR06dMCBAwcQFxfHizNlyhR4e3vD1tYW9vb2iImJwbVr19CyZUsuzrx58+Dn5wcV3yDBwwAALaJJREFUFRW4urqivLwcFy5cwJMnTzB9+nQsX74cYrEY1tbWkJKSwq5du6CjowNVVVUuDycnJ6xbtw5GRkbcwmegevZizZo13MLvtz169AhFRUWoqKjA1atXsWrVKjg5OXGfeevWrbF161bY2tqipKQEAQEB9c4sNKRP3kVOTg4zZ87EjBkzICsrC3t7ezx48ADXrl2Dr68vPD09sWTJEri7uyM0NBS6urq4ffs2YmNjMWPGDOjq6jaqPEIIIYT899BjUZ9BaGgo79ElU1NTrFu3DmvXroWlpSXOnTsHf3//z1K3yspKTJo0CaampnB1dYWxsTH3lqXmzZtj3rx5mDVrFrS1tTF58mRISUlh+/btuHjxItq1a4dp06ZhyZIlH7WO3333HaZNm4bJkyfDysoKqamp3FukagwdOhRz5szBjBkz0L59e9y+fRsTJkzgxRk9ejQ2bdqEyMhImJubw8HBAVFRUWjRogWA6rcvLV68GLa2tujQoQPy8vJw8OBB3roXJycnPHv2jFtvUcPBwQHPnj2rc9bC2dkZYrEYhoaGGDt2LHr37o0dO3Zw1zdv3ownT57AxsYGI0aMgJ+fH7S0tP5RnzTEnDlz8OOPP2Lu3LkwNTXF0KFDuTUZCgoKOHnyJPT19TFgwACYmppyr/j9HANhQgghhPz7CNjbD/sTQshHUlJSAhUVFRQXF9OAhBBCCPlCNObvN81cEEIIIYQQQj4IGlwQQgghhBBCPggaXBBCCCGEEEI+CBpc1CIvLw8CgeCzvg62IRwdHTF16tRPXq5AIEB8fPwnL/d9REVF8d7u1BDe3t7o16/fR6kPUL2xnkAgwNOnTwFI1jEkJARWVlYfrXzgy/mOE0IIIeTL0qjBhbe3NwQCAcLDw3nh8fHx3P4MH5NAIOCOJk2aQF9fH9OnT0d5eflHL/tNjx8/xg8//AATExPIy8tDX18ffn5+KC4u5uLU3LxpaWnh2bNnvPRWVlYICQlpcHlv34y+raas+o6oqKj3aOnH9ddff0EgEPD2nwCAzp07Q05OjttQDgDKysogJyeHzZs3A6h7APB2Xw0dOhTXr1//4HU3NDTEypUrJcLfHhjUNgDs0qULCgsLoaKiUmve/v7+OH78+Aera219paenh8LCQrRr1+6DlUMIIYQQ0uiZCzk5OURERODJkycfoz7vFBkZicLCQuTm5mLdunXYunUrFixY8EnrcPfuXdy9exdLly7Fn3/+iaioKBw+fBi+vr4ScZ89e4alS5d+1PrU3CjWHD/++CPatm3LCxs6dCgXv7Ky8p27eH8Kbdq0gY6ODpKSkriwZ8+e4dKlS9DU1OQNOs6cOYPy8vJad7uuj7y8fL2vcP0cZGVloaOjU+eAXCQSQUND46PWQVpaGjo6OmjShLa6IYQQQsiH0+jBhbOzM3R0dLBo0aJar9f2SMfKlSthaGjIndf8khoWFgZtbW2oqqoiNDQUFRUVCAgIgLq6OnR1dREZGSmRv6qqKnR0dKCnp4e+ffvC3d0dly5d4q7n5OTA3d0d2traEIlE6NChA44dO8bLw9DQEGFhYfDx8YGSkhL09fXxyy+/1NnmyspK+Pj4oE2bNsjPz0e7du2we/duuLm5oVWrVujevTsWLlyIffv2oaKigpf2hx9+wPLly7m9AmpTs1makpISdHR0MHz4cC5+Xl4et1eCmpoaBAIBvL29eelrbhRrDpFIhCZNmnDnhw8fhlgsxt69e2FmZgahUIj8/HycP38ePXv2RNOmTaGiogIHBwdeXwLAjRs30K1bN8jJycHMzAwJCQkS9S8oKMCQIUOgqqoKdXV1uLu7Iy8vj7uelJSEjh07QlFREaqqqrC3t+d2j3ZycuINLk6fPg1jY2O4ubnxwpOSkmBgYMDtQdFQtT0WtWDBAmhpaUFJSQmjR4/GrFmzan0MaenSpRCLxdDQ0MCkSZPw+vXrRpXt7e2N5ORkrFq1iptBysvLe+dM1Nv/DdU2E1Xz31NlZSV8fX3RokULyMvLw8TEBKtWreLlFR0djT179nBpk5KSan0sKjk5GR07doRQKIRYLMasWbN432dHR0f4+flhxowZUFdXh46OTqNm4AghhBDy39fowYW0tDTCwsKwZs0a3Llz570LPnHiBO7evYuTJ09i+fLlCA4ORt++faGmpoa0tDSMHz8e48aNq7eM69ev48SJE+jUqRMXVlpait69e+P48eO4fPkyXF1d4ebmhvz8fF7aZcuWwdbWFpcvX8bEiRMxYcIEZGdnS5RRXl6OwYMHIz09HadOnYK+vn6tdal57+/bvwR7eHjAyMgIoaGhdbbj9evXmD9/PjIyMhAfH4+8/9fencdFVe//A38NywzI5oYCspks4YY7sehAqXg1ciu9ZojmLmZqlFuKG4mmWfkgTVOgrolaYl7X1BgS5KIiqCmiIC7XwIWrsqkIfH5/8ON8HcFlYACF1/PxmMeD+cznfM77feYwzJtzPudcviwVEDY2Nvj1118BAGlpacjKylL78viiCgsLsXz5cvzwww84e/asdLpWQEAA4uLi8J///AeOjo7o37+/dBpXaWkphgwZArlcjsTERKxbtw6zZs2qELuvry9MTExw5MgRxMfHw9jYGP369UNRURGKi4sxaNAgKJVKnD59GgkJCZgwYYL0X3sfHx/ExcVJX2JjYmLg7e0NpVKJmJgYaT0xMTFPvSGdJjZv3oyQkBAsX74cSUlJsLW1xdq1ayv0i4mJQUZGBmJiYhAZGYmIiAiNTy375ptv4O7ujvHjx0tHkGxsbDSO+fEjUOnp6XBwcECvXr0AlL1H1tbW2L59O86dO4cFCxZg7ty52LZtG4CyU6yGDRuGfv36SWN4eHhUWMf169fRv39/dO/eHadOncLatWuxcePGCkcFIyMjYWRkhMTERKxYsQKLFy+utOAs9/DhQ+Tm5qo9iIiIqB4TGggICBADBw4UQgjxxhtviA8//FAIIUR0dLQoHyo4OFi4urqqLbd69WphZ2enNo6dnZ0oKSmR2pydnUXPnj2l58XFxcLIyEhs2bJFagMgDAwMhJGRkVAoFAKAePvtt0VRUdEz427Xrp1Ys2aN9NzOzk588MEH0vPS0lLRokULsXbtWiGEEJmZmQKAOHLkiHjrrbeEl5eXuHv37lPHv3XrlrC1tRVz586V2srHSE5OFvv37xf6+voiPT1dCCGEq6urCA4Ofup4x48fFwBEXl6eEEKImJgYAUDcuXNHrZ9SqRQff/xxheWffA/Cw8MFAJGSkvLUdQohRElJiTAxMRH//ve/hRBCHDhwQOjp6Ynr169Lffbt2ycAiOjoaCGEED/99JNwdnYWpaWlUp+HDx8KQ0NDceDAAZGTkyMACJVKVek6L168KACIo0ePCiGE6N69u9i2bZv4+++/hUKhEPfv3xeFhYVCoVCIyMhIabmAgAChq6srjIyM1B4GBgZq2yo8PFyYmZlJy7m5uYnAwEC1GDw9PdW2V/n+WVxcLLW99957Yvjw4dJzOzs7sXr16gr5PLntK3uPnnw/n4yxst8hIcr208GDB4uuXbuKwsLCCq+XCwwMFEOHDlXLp/z3ttzj+6cQQsydO7fC+xgWFiaMjY2l31OlUim8vLzUxunevbuYNWvWU2MJDg4WACo87t2799RliIiI6OVy7969F/77XeWrRS1fvhyRkZFITU2t0vLt2rWDjs7/rb5ly5bo0KGD9FxXVxfNmjWrcDrR6tWrkZKSglOnTmH37t24cOEC/P39pdfz8/MRFBQEFxcXNG7cGMbGxkhNTa1w5KJjx47SzzKZDBYWFhXWNWLECBQUFOD3339/6uTb3NxcDBgwAG3btn3qKSK+vr7w8vLC/PnzK309KSkJfn5+sLW1hYmJCZRKJQBUiLk65HK5Ws4AcOPGDYwfPx6Ojo4wMzODqakp8vPzpfWmpqbCxsYGVlZW0jLu7u5qY5w6dQrp6ekwMTGBsbExjI2N0bRpUzx48AAZGRlo2rQpRo8eDV9fX/j5+eGbb75BVlaWtLyDgwOsra2hUqmQm5uL5ORkKJVKWFpawtbWFgkJCdJ8iyePXPj4+CAlJUXt8cMPPzxzO6SlpaFHjx5qbU8+B8r2T11dXem5paXlM09tqw1z585FQkICfvvtNxgaGkrtYWFh6Nq1K8zNzWFsbIz169drvO+kpqbC3d1dbR6Ip6cn8vPz1Y4ePrkPPW+7zJkzB/fu3ZMe165d0yguIiIierVUeTZnr1694Ovrizlz5qjNAdDR0YEQQq1vZeeq6+vrqz2XyWSVtj058djCwgIODg4AAGdnZ+Tl5WHEiBFYunQpHBwcEBQUhIMHD2LlypVwcHCAoaEh3n33XRQVFT13/U+uq3///vjXv/6FhISESicS5+XloV+/fjAxMUF0dHSFMR8XGhoKd3d3fPrpp2rtBQUF8PX1ha+vLzZv3gxzc3NcvXoVvr6+FWKuDkNDwwoTiAMCApCTk4NvvvkGdnZ2UCgUcHd312i9+fn56Nq1KzZv3lzhNXNzcwBlk/CnTZuG/fv3Y+vWrfj8889x8OBBvPHGGwDKzuWPiYlBx44d4ejoKE3ALj81SggBBweHCqcUGRkZSftCueqcqve45+0fpqamalcHK3f37t2nFqLV8a9//QurV6+GSqVCq1atpPaoqCgEBQVh1apVcHd3h4mJCb788kskJiZqPQbgxX5vHqdQKKBQKGokFiIiInr5VOtSMaGhoejUqROcnZ2lNnNzc2RnZ0MIIX2Zrclr6Zf/d/n+/fsAgPj4eIwePRqDBw8GUPbl9/HJxZqYPHky2rdvj3feeQd79uyRjigAZUcsfH19oVAosGvXLhgYGDxzrB49emDIkCGYPXu2Wvv58+eRk5OD0NBQ6cvziRMn1PrI5XIAZZN3tSk+Ph7fffcd+vfvD6BsYvbt27el111cXHDt2jVkZWXB0tISACpcNrZLly7YunUrWrRoAVNT06euq3PnzujcuTPmzJkDd3d3/Pzzz1Jx4ePjg2nTpqFt27bw9vaWlunVqxc2bNgAIYRW5lsAZQXp8ePHMWrUKKnt+PHjVRonKSmpQvvJkyfVfh/kcnm137eEhASMGzcO33//vbTNysXHx8PDwwNTpkyR2jIyMtT6vEgMLi4u+PXXX9V+b+Pj42FiYgJra+tqxU9EREQNR7VuotehQweMHDkS3377rdTm7e2NW7duYcWKFcjIyEBYWBj27dtX7UDL3b17F9nZ2fj7778RGxuLxYsXw8nJCS4uLgAAR0dH7NixQzp16v3336/WZVc/+ugjLF26FG+//Tbi4uIAlBUWffv2RUFBATZu3Ijc3FxkZ2cjOzv7mV/iQkJC8Mcff6hNHLe1tYVcLseaNWtw6dIl7Nq1C0uWLFFbzs7ODjKZDLt378atW7eQn59f5Xwe5+joiJ9++gmpqalITEzEyJEj1U636d27N5ycnBAQEIBTp07hyJEjmDdvntoYI0eORPPmzTFw4EAcOXIEmZmZUKlUmDZtGv773/8iMzMTc+bMQUJCAq5cuYLff/8dFy9elN4voKy4KCgowKZNm9QKOKVSicTERBw7dkxrxcVHH32EjRs3IjIyEhcvXsTSpUtx+vRpje/TMmPGDOzZswchISFITU3FX3/9hXnz5iEhIQEff/yx1M/e3h6JiYm4fPkybt++rfG+mJ2djcGDB+Of//wnfH19pf3s1q1bAMrewxMnTuDAgQO4cOEC5s+fX6FYsre3x+nTp5GWlobbt29XeiRxypQpuHbtGj766COcP38ev/32G4KDgzFz5ky10xeJiIiInqXa3xoWL16s9oXJxcUF3333HcLCwuDq6opjx44hKCiouquRjBkzBpaWlrC2tsaIESPQrl077Nu3T7pK01dffYUmTZrAw8MDfn5+8PX1RZcuXaq1zunTp2PRokXo378/jh49ipMnTyIxMRFnzpyBg4MDLC0tpcezzil3cnLChx9+qHZzOHNzc0RERGD79u1o27YtQkNDK9wXo1WrVli0aBFmz56Nli1bYurUqdXKp9zGjRtx584ddOnSBf7+/pg2bZraPSF0dHQQHR2N+/fvo0ePHhg3bhxCQkLUxmjUqBH+/PNP2NraYsiQIXBxccHYsWPx4MEDmJqaolGjRjh//jyGDh0KJycnTJgwAYGBgZg4caI0RuvWrWFnZ4e8vDy14sLW1hZWVlYoKipSO6JRHSNHjsScOXMQFBSELl26IDMzE6NHj37ukacneXh4YN++fdi3bx88PT3h7e2No0eP4vDhw2o3pgsKCoKuri7atm0rnfKmifPnz+PGjRuIjIxU28+6d+8OAJg4cSKGDBmC4cOHw83NDTk5OWpHMQBg/PjxcHZ2Rrdu3WBubo74+PgK62nVqhX27t2LY8eOwdXVFZMmTcLYsWPx+eefaxQvERERNWwy8eQECaIGpk+fPrCwsMBPP/1U16HUe7m5uTAzM5Mu3UxEREQvP03+fvP2vNSgFBYWYt26dfD19YWuri62bNmCQ4cOPfNeDURERET0YlhcUIMik8mwd+9ehISE4MGDB3B2dsavv/6K3r1713VoRERERK88FhfUoBgaGuLQoUN1HQYRERFRvcTLwFCDMXr0aAwaNKiuw9CKy5cvQyaT1ehlnomIiIg0xeLiFTV69GjIZDLIZDLI5XI4ODhg8eLFKC4uruvQnkkmk2Hnzp3Sc29vbymPyh7aukqUtr3xxhuYNGmSWtu6desgk8kQERGh1j569Gj07NkTAKBSqdTyMzQ0RLt27bB+/fraCp2IiIioxrC4eIX169cPWVlZuHjxIj755BMsXLgQX375pcbjlJSUVOteINWxY8cOZGVlISsrC8eOHQMAHDp0SGrbsWOHWv/K7tFQF3x8fKBSqdTaYmJiYGNjU6FdpVJVuMN7WloasrKycO7cOUycOBGTJ0/G4cOHazhqIiIioprF4uIVplAoYGFhATs7O0yePBm9e/fGrl278PDhQwQFBaFVq1YwMjKCm5ub2hfeiIgING7cGLt27ULbtm2hUChw9epVPHz4ELNmzYKNjQ0UCgUcHBywceNGabm//voL//jHP2BsbIyWLVvC399f7Y7e3t7emDZtGj777DM0bdoUFhYWWLhwofS6vb09AGDw4MGQyWSwt7eX+llYWMDc3BwA0KxZM6mtWbNmWLt2Ld555x0YGRkhJCQEJSUlGDt2LFq3bg1DQ0M4Ozvjm2++Uds2JSUlmDlzJho3boxmzZrhs88+w5NXXS4tLcWyZcukcVxdXfHLL79Ir9+5cwcjR46Eubk5DA0N4ejoiPDwcABlxUVaWhqys7Ol/rGxsZg9e7bats7MzMSVK1cq3ASwRYsWsLCwQOvWrTFt2jS0bt0aJ0+elF7fv38/vLy8pPjffvvtCnfefjLf522T8tPCVq5cCUtLSzRr1gyBgYFqBVt19wEiIiJq2Fhc1COGhoYoKirC1KlTkZCQgKioKJw+fRrvvfce+vXrh4sXL0p9CwsLsXz5cvzwww84e/YsWrRogVGjRmHLli349ttvkZqaiu+//x7GxsYAyu6M/uabb6Jz5844ceIE9u/fjxs3bmDYsGFqMURGRsLIyAiJiYlYsWIFFi9eLF3mtfzO0eHh4cjKyqpwJ+mnWbhwIQYPHowzZ87gww8/RGlpKaytrbF9+3acO3cOCxYswNy5c7Ft2zZpmVWrViEiIgKbNm1CXFwc/ve//yE6Olpt3GXLluHHH3/EunXrcPbsWcyYMQMffPABYmNjAQDz58/HuXPnsG/fPqSmpmLt2rVo3rw5AMDT0xP6+vqIiYkBAJw7dw7379/H2LFjkZOTg8zMTABlRzMMDAzg7u5eaW5CCOzfvx9Xr16Fm5ub1F5QUICZM2fixIkTOHz4MHR0dDB48OCnHmF6kW1SHk9GRgZiYmIQGRmJiIgItdO4tLEPPO7hw4fIzc1VexAREVE9JuiVFBAQIAYOHCiEEKK0tFQcPHhQKBQKMXr0aKGrqyuuX7+u1v+tt94Sc+bMEUIIER4eLgCIlJQU6fW0tDQBQBw8eLDS9S1ZskT07dtXre3atWsCgEhLSxNCCKFUKoWXl5dan+7du4tZs2ZJzwGI6OjoSteRmZkpAIjk5GS1/tOnT3/6hvj/AgMDxdChQ6XnlpaWYsWKFdLzR48eCWtra2mbPXjwQDRq1EgcPXpUbZyxY8eKESNGCCGE8PPzE2PGjHnqOj09PcWECROEEEKEhYWJ/v37CyGE6Nu3r9i0aZMQQgh/f3/h4+MjLRMTEyMACCMjI2FkZCT09PSEjo6OWLp06TPzu3XrlgAgzpw5I4SofFs9b5sEBAQIOzs7UVxcLLW99957Yvjw4UII7ewDTwoODhYAKjzu3bv3zHyJiIjo5XHv3r0X/vvNS9G+wnbv3g1jY2M8evQIpaWleP/99/Huu+8iIiICTk5Oan0fPnyIZs2aSc/lcjk6duwoPU9JSYGuri6USmWl6zp16hRiYmKk/2I/LiMjQ1rf42MCgKWlJW7evFnlHAGgW7duFdrCwsKwadMmXL16Fffv30dRURE6deoEALh37x6ysrLUjgTo6emhW7du0qlR6enpKCwsRJ8+fdTGLSoqQufOnQEAkydPxtChQ3Hy5En07dsXgwYNgoeHh9TX29sb27dvB1A2r6J88rlSqYRKpcKYMWOgUqkwfvz4CvEfOXIEJiYmePjwIY4dO4apU6eiadOmmDx5MgDg4sWLWLBgARITE3H79m3piMXVq1fRvn37SrfTs7ZJuXbt2kFXV1d6bmlpiTNnzgDQ3j7wuDlz5mDmzJnS89zcXNjY2FQ6PhEREb36WFy8wnx8fLB27VrI5XJYWVlBT08PW7duha6uLpKSktS+RAJQ+1JoaGgImUym9vxZ8vPz4efnh+XLl1d4zdLSUvpZX19f7TWZTFbtyeJGRkZqz6OiohAUFIRVq1bB3d0dJiYm+PLLL5GYmPjCY+bn5wMA9uzZg1atWqm9plAoAAD/+Mc/cOXKFezduxcHDx7EW2+9hcDAQKxcuRJA2fYPCQnB9evXoVKpEBQUBKCsuPj++++RkZGBa9euVZjMDQCtW7dG48aNAZR94U9MTERISIhUXPj5+cHOzg4bNmyAlZUVSktL0b59exQVFVWaz4tuk2e9P9raBx6nUCik7UlERET1H4uLV5iRkREcHBzU2jp37oySkhLcvHlTuvzpi+jQoQNKS0sRGxtb6d2qu3Tpgl9//RX29vbQ06v6bqOvr4+SkpIqLw8A8fHx8PDwwJQpU6S2xyc7m5mZwdLSEomJiejVqxcAoLi4GElJSejSpQsAqE1kf9p/6gHA3NwcAQEBCAgIQM+ePfHpp59KxYWHhwfkcjm+++47PHjwAF27dgUAdO/eHbdu3cKmTZtgZGSEHj16PDcnXV1d3L9/HwCQk5ODtLQ0bNiwQXoP4+LiqrVNXkRt7QNERERUf3FCdz3j5OSEkSNHYtSoUdixYwcyMzNx7NgxLFu2DHv27Hnqcvb29ggICMCHH36InTt3IjMzEyqVSpoQHBgYiP/9738YMWIEjh8/joyMDBw4cABjxozRqFiwt7fH4cOHkZ2djTt37lQpR0dHR5w4cQIHDhzAhQsXMH/+/AqTwz/++GOEhoZi586dOH/+PKZMmYK7d+9Kr5uYmCAoKAgzZsxAZGQkMjIycPLkSaxZswaRkZEAgAULFuC3335Deno6zp49i927d8PFxUUaw9DQEG+88QbWrFkDT09P6UiRXC5Xa3/yaAEA3Lx5E9nZ2bhy5Qq2b9+On376CQMHDgQANGnSBM2aNcP69euRnp6OP/74Q+3Uoqpuk+eprX2AiIiI6i8WF/VQeHg4Ro0ahU8++QTOzs4YNGgQjh8/Dltb22cut3btWrz77ruYMmUKXn/9dYwfPx4FBQUAACsrK8THx6OkpAR9+/ZFhw4dMH36dDRu3Bg6Oi++G61atQoHDx6EjY2NNLdBUxMnTsSQIUMwfPhwuLm5IScnR+0/9gDwySefwN/fHwEBAdJpQoMHD1brs2TJEsyfPx/Lli2Di4sL+vXrhz179qB169YAyoqEOXPmoGPHjujVqxd0dXURFRWlNoaPjw/y8vIq3OxPqVQiLy+vwiVoyzk7O8PS0hIODg6YNWsWJk6ciDVr1gAAdHR0EBUVhaSkJLRv3x4zZsx47v1LXmSbvIja2AeIiIio/pIJ8cTF/4mIakhubi7MzMxw7949mJqa1nU4RERE9AI0+fvNfzcSEREREZFWsLggIiIiIiKtYHFBRERERERaweKCiIiIiIi0gsUFERERERFpBYsLIiIiIiLSChYXRERERESkFSwuiIiIiIhIK1hcEBERERGRVrC4ICIiIiIirWBxQUREREREWsHigoiIiIiItILFBRERERERaQWLCyIiIiIi0goWF0REREREpBV6dR0AETUcQggAQG5ubh1HQkRERC+q/O92+d/xZ2FxQUS1JicnBwBgY2NTx5EQERGRpvLy8mBmZvbMPiwuiKjWNG3aFABw9erV53441Re5ubmwsbHBtWvXYGpqWtfh1DjmW/81tJyZb/3W0PIFqpazEAJ5eXmwsrJ6bl8WF0RUa3R0yqZ5mZmZNZgP8XKmpqYNKmfmW/81tJyZb/3W0PIFNM/5Rf8pyAndRERERESkFSwuiIiIiIhIK1hcEFGtUSgUCA4OhkKhqOtQak1Dy5n51n8NLWfmW781tHyBms9ZJl7kmlJERERERETPwSMXRERERESkFSwuiIiIiIhIK1hcEBERERGRVrC4ICIiIiIirWBxQURaFRYWBnt7exgYGMDNzQ3Hjh17Zv/t27fj9ddfh4GBATp06IC9e/fWUqTao0nOGzZsQM+ePdGkSRM0adIEvXv3fu42etlo+h6Xi4qKgkwmw6BBg2o2QC3TNN+7d+8iMDAQlpaWUCgUcHJyeqX2a03z/frrr+Hs7AxDQ0PY2NhgxowZePDgQS1FWz1//vkn/Pz8YGVlBZlMhp07dz53GZVKhS5dukChUMDBwQERERE1Hqc2aZrzjh070KdPH5ibm8PU1BTu7u44cOBA7QSrBVV5j8vFx8dDT08PnTp1qrH4tK0q+T58+BDz5s2DnZ0dFAoF7O3tsWnTpirHwOKCiLRm69atmDlzJoKDg3Hy5Em4urrC19cXN2/erLT/0aNHMWLECIwdOxbJyckYNGgQBg0ahL/++quWI686TXNWqVQYMWIEYmJikJCQABsbG/Tt2xfXr1+v5cirRtN8y12+fBlBQUHo2bNnLUWqHZrmW1RUhD59+uDy5cv45ZdfkJaWhg0bNqBVq1a1HHnVaJrvzz//jNmzZyM4OBipqanYuHEjtm7dirlz59Zy5FVTUFAAV1dXhIWFvVD/zMxMDBgwAD4+PkhJScH06dMxbty4V+rLtqY5//nnn+jTpw/27t2LpKQk+Pj4wM/PD8nJyTUcqXZomm+5u3fvYtSoUXjrrbdqKLKaUZV8hw0bhsOHD2Pjxo1IS0vDli1b4OzsXPUgBBGRlvTo0UMEBgZKz0tKSoSVlZVYtmxZpf2HDRsmBgwYoNbm5uYmJk6cWKNxapOmOT+puLhYmJiYiMjIyJoKUauqkm9xcbHw8PAQP/zwgwgICBADBw6shUi1Q9N8165dK1577TVRVFRUWyFqlab5BgYGijfffFOtbebMmcLT07NG46wJAER0dPQz+3z22WeiXbt2am3Dhw8Xvr6+NRhZzXmRnCvTtm1bsWjRIu0HVMM0yXf48OHi888/F8HBwcLV1bVG46opL5Lvvn37hJmZmcjJydHaennkgoi0oqioCElJSejdu7fUpqOjg969eyMhIaHSZRISEtT6A4Cvr+9T+79sqpLzkwoLC/Ho0SM0bdq0psLUmqrmu3jxYrRo0QJjx46tjTC1pir57tq1C+7u7ggMDETLli3Rvn17fPHFFygpKamtsKusKvl6eHggKSlJOnXq0qVL2Lt3L/r3718rMde2V/0zSxtKS0uRl5f3SnxmVVV4eDguXbqE4ODgug6lxu3atQvdunXDihUr0KpVKzg5OSEoKAj379+v8ph6WoyPiBqw27dvo6SkBC1btlRrb9myJc6fP1/pMtnZ2ZX2z87OrrE4takqOT9p1qxZsLKyqvCF5WVUlXzj4uKwceNGpKSk1EKE2lWVfC9duoQ//vgDI0eOxN69e5Geno4pU6bg0aNHL/0Xlark+/777+P27dvw8vKCEALFxcWYNGnSK3NalKae9pmVm5uL+/fvw9DQsI4iqz0rV65Efn4+hg0bVteh1IiLFy9i9uzZOHLkCPT06v/X5EuXLiEuLg4GBgaIjo7G7du3MWXKFOTk5CA8PLxKY/LIBRFRHQkNDUVUVBSio6NhYGBQ1+FoXV5eHvz9/bFhwwY0b968rsOpFaWlpWjRogXWr1+Prl27Yvjw4Zg3bx7WrVtX16HVCJVKhS+++ALfffcdTp48iR07dmDPnj1YsmRJXYdGNeDnn3/GokWLsG3bNrRo0aKuw9G6kpISvP/++1i0aBGcnJzqOpxaUVpaCplMhs2bN6NHjx7o378/vvrqK0RGRlb56EX9L8mIqFY0b94curq6uHHjhlr7jRs3YGFhUekyFhYWGvV/2VQl53IrV65EaGgoDh06hI4dO9ZkmFqjab4ZGRm4fPky/Pz8pLbS0lIAgJ6eHtLS0tCmTZuaDboaqvL+WlpaQl9fH7q6ulKbi4sLsrOzUVRUBLlcXqMxV0dV8p0/fz78/f0xbtw4AECHDh1QUFCACRMmYN68edDRqV//w3zaZ5apqWm9P2oRFRWFcePGYfv27a/EkdaqyMvLw4kTJ5CcnIypU6cCKPvMEkJAT08Pv//+O9588806jlK7LC0t0apVK5iZmUltLi4uEELgv//9LxwdHTUes3791hNRnZHL5ejatSsOHz4stZWWluLw4cNwd3evdBl3d3e1/gBw8ODBp/Z/2VQlZwBYsWIFlixZgv3796Nbt261EapWaJrv66+/jjNnziAlJUV6vPPOO9KVdmxsbGozfI1V5f319PREenq6VEQBwIULF2BpaflSFxZA1fItLCysUECUF1Zl80nrl1f9M6uqtmzZgjFjxmDLli0YMGBAXYdTY0xNTSt8Zk2aNAnOzs5ISUmBm5tbXYeodZ6envj777+Rn58vtV24cAE6Ojqwtrau2qBamxpORA1eVFSUUCgUIiIiQpw7d05MmDBBNG7cWGRnZwshhPD39xezZ8+W+sfHxws9PT2xcuVKkZqaKoKDg4W+vr44c+ZMXaWgMU1zDg0NFXK5XPzyyy8iKytLeuTl5dVVChrRNN8nvWpXi9I036tXrwoTExMxdepUkZaWJnbv3i1atGghli5dWlcpaETTfIODg4WJiYnYsmWLuHTpkvj9999FmzZtxLBhw+oqBY3k5eWJ5ORkkZycLACIr776SiQnJ4srV64IIYSYPXu28Pf3l/pfunRJNGrUSHz66aciNTVVhIWFCV1dXbF///66SkFjmua8efNmoaenJ8LCwtQ+s+7evVtXKWhE03yf9KpdLUrTfPPy8oS1tbV49913xdmzZ0VsbKxwdHQU48aNq3IMLC6ISKvWrFkjbG1thVwuFz169BD/+c9/pNeUSqUICAhQ679t2zbh5OQk5HK5aNeundizZ08tR1x9muRsZ2cnAFR4BAcH137gVaTpe/y4V624EELzfI8ePSrc3NyEQqEQr732mggJCRHFxcW1HHXVaZLvo0ePxMKFC0WbNm2EgYGBsLGxEVOmTBF37typ/cCrICYmptLfx/IcAwIChFKprLBMp06dhFwuF6+99poIDw+v9birQ9OclUrlM/u/7KryHj/uVSsuqpJvamqq6N27tzA0NBTW1tZi5syZorCwsMoxyISoh8ctiYiIiIio1nHOBRERERERaQWLCyIiIiIi0goWF0REREREpBUsLoiIiIiISCtYXBARERERkVawuCAiIiIiIq1gcUFERERERFrB4oKIiIiqxd7eHl9//fUL9798+TJkMhlSUlJqLCYiqhssLoiIiKhajh8/jgkTJmh1zIiICDRu3FirYxJRzdOr6wCIiIjo1WZubl7XIRDRS4JHLoiIiBqY3bt3o3HjxigpKQEApKSkQCaTYfbs2VKfcePG4YMPPgAAxMXFoWfPnjA0NISNjQ2mTZuGgoICqe+Tp0WdP38eXl5eMDAwQNu2bXHo0CHIZDLs3LlTLY5Lly7Bx8cHjRo1gqurKxISEgAAKpUKY8aMwb179yCTySCTybBw4cKa2RhEpFUsLoiIiBqYnj17Ii8vD8nJyQCA2NhYNG/eHCqVSuoTGxsLb29vZGRkoF+/fhg6dChOnz6NrVu3Ii4uDlOnTq107JKSEgwaNAiNGjVCYmIi1q9fj3nz5lXad968eQgKCkJKSgqcnJwwYsQIFBcXw8PDA19//TVMTU2RlZWFrKwsBAUFaX07EJH2sbggIiJqYMzMzNCpUyepmFCpVJgxYwaSk5ORn5+P69evIz09HUqlEsuWLcPIkSMxffp0ODo6wsPDA99++y1+/PFHPHjwoMLYBw8eREZGBn788Ue4urrCy8sLISEhlcYRFBSEAQMGwMnJCYsWLcKVK1eQnp4OuVwOMzMzyGQyWFhYwMLCAsbGxjW5SYhIS1hcEBERNUBKpRIqlQpCCBw5cgRDhgyBi4sL4uLiEBsbCysrKzg6OuLUqVOIiIiAsbGx9PD19UVpaSkyMzMrjJuWlgYbGxtYWFhIbT169Kg0ho4dO0o/W1paAgBu3ryp5UyJqDZxQjcREVED5O3tjU2bNuHUqVPQ19fH66+/Dm9vb6hUKty5cwdKpRIAkJ+fj4kTJ2LatGkVxrC1ta1WDPr6+tLPMpkMAFBaWlqtMYmobrG4ICIiaoDK512sXr1aKiS8vb0RGhqKO3fu4JNPPgEAdOnSBefOnYODg8MLjevs7Ixr167hxo0baNmyJYCyS9VqSi6XSxPOiejVwdOiiIiIGqAmTZqgY8eO2Lx5M7y9vQEAvXr1wsmTJ3HhwgWp4Jg1axaOHj2KqVOnIiUlBRcvXsRvv/321Andffr0QZs2bRAQEIDTp08jPj4en3/+OYD/OzrxIuzt7ZGfn4/Dhw/j9u3bKCwsrF7CRFQrWFwQERE1UEqlEiUlJVJx0bRpU7Rt2xYWFhZwdnYGUDYvIjY2FhcuXEDPnj3RuXNnLFiwAFZWVpWOqauri507dyI/Px/du3fHuHHjpKtFGRgYvHBsHh4emDRpEoYPHw5zc3OsWLGieskSUa2QCSFEXQdBRERE9Vd8fDy8vLyQnp6ONm3a1HU4RFSDWFwQERGRVkVHR8PY2BiOjo5IT0/Hxx9/jCZNmiAuLq6uQyOiGsYJ3URERKRVeXl5mDVrFq5evYrmzZujd+/eWLVqVV2HRUS1gEcuiIiIiIhIKzihm4iIiIiItILFBRERERERaQWLCyIiIiIi0goWF0REREREpBUsLoiIiIiISCtYXBARERERkVawuCAiIiIiIq1gcUFERERERFrB4oKIiIiIiLTi/wGuEJL4n+xFfwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.rcdefaults()\n", "fi = abs((X-Xpn).astype('double'))/np.std(xn_train.astype('double'), axis=0) # Compute PN feature importance\n", "objects = df.columns[-2::-1]\n", "y_pos = np.arange(len(objects))\n", "performance = fi[0, -1::-1]\n", "\n", "plt.barh(y_pos, performance, align='center', alpha=0.5) # bar chart\n", "plt.yticks(y_pos, objects) # Display features on y-axis\n", "plt.xlabel('weight') # x-label\n", "plt.title('PN (feature importance)') # Heading\n", "\n", "plt.show() # Display PN feature importance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Explanation: \n", "We observe that the applicant 1272's loan application would have been accepted if the consolidated risk marker score (i.e. ExternalRiskEstimate) increased from 65 to 81, the loan application was on file (i.e. AverageMlnFile) for about 66 months and if the number of satisfactory trades (i.e. NumSatisfactoryTrades) increased to little over 21.\n", "\n", "_The above changes to the three suggested factors are also intuitively consistent in improving the chances of acceptance of an application, since all three are monotonic with probability of acceptance (refer HELOC description table). \n", "However, one must realize that the above explanation is for the particular applicant based on what the model would do and does not necessarily have to agree with their intuitive meaning. In fact, if the explanation is deemed unacceptable then its an indication that perhaps the model should be debugged/updated_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Compute Pertinent Positives (PP):\n", "In order to compute pertinent positives, the CEM explainer identifies a minimal set of features along with their values (as close to 0) that would still maintain the predicted loan application status of the applicant." ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computing PP for Sample: 9\n", "Prediction made by the model: Good\n", "Prediction probabilities: [[-0.4284743 0.5507633]]\n", "\n", "iter:0 const:[10.]\n", "Loss_Overall:46.4647, Loss_Attack:46.4647\n", "Loss_L2Dist:0.0000, Loss_L1Dist:0.0000, AE_loss:0.0\n", "target_lab_score:-2.3206, max_nontarget_lab_score:2.1259\n", "\n", "iter:500 const:[10.]\n", "Loss_Overall:46.4647, Loss_Attack:46.4647\n", "Loss_L2Dist:0.0000, Loss_L1Dist:0.0000, AE_loss:0.0\n", "target_lab_score:-2.3206, max_nontarget_lab_score:2.1259\n", "\n", "iter:0 const:[100.]\n", "Loss_Overall:464.6470, Loss_Attack:464.6470\n", "Loss_L2Dist:0.0000, Loss_L1Dist:0.0000, AE_loss:0.0\n", "target_lab_score:-2.3206, max_nontarget_lab_score:2.1259\n", "\n", "iter:500 const:[100.]\n", "Loss_Overall:464.6470, Loss_Attack:464.6470\n", "Loss_L2Dist:0.0000, Loss_L1Dist:0.0000, AE_loss:0.0\n", "target_lab_score:-2.3206, max_nontarget_lab_score:2.1259\n", "\n", "iter:0 const:[1000.]\n", "Loss_Overall:1009.1559, Loss_Attack:990.0610\n", "Loss_L2Dist:1.3315, Loss_L1Dist:1.7763, AE_loss:0.0\n", "target_lab_score:-0.3720, max_nontarget_lab_score:0.4181\n", "\n", "iter:500 const:[1000.]\n", "Loss_Overall:2111.5784, Loss_Attack:2101.4507\n", "Loss_L2Dist:0.6456, Loss_L1Dist:0.9482, AE_loss:0.0\n", "target_lab_score:-0.9664, max_nontarget_lab_score:0.9351\n", "\n", "iter:0 const:[550.]\n", "Loss_Overall:1165.9253, Loss_Attack:1155.7979\n", "Loss_L2Dist:0.6456, Loss_L1Dist:0.9482, AE_loss:0.0\n", "target_lab_score:-0.9664, max_nontarget_lab_score:0.9351\n", "\n", "iter:500 const:[550.]\n", "Loss_Overall:1165.9253, Loss_Attack:1155.7979\n", "Loss_L2Dist:0.6456, Loss_L1Dist:0.9482, AE_loss:0.0\n", "target_lab_score:-0.9664, max_nontarget_lab_score:0.9351\n", "\n", "iter:0 const:[775.]\n", "Loss_Overall:1638.7517, Loss_Attack:1628.6243\n", "Loss_L2Dist:0.6456, Loss_L1Dist:0.9482, AE_loss:0.0\n", "target_lab_score:-0.9664, max_nontarget_lab_score:0.9351\n", "\n", "iter:500 const:[775.]\n", "Loss_Overall:1911.7443, Loss_Attack:1903.2522\n", "Loss_L2Dist:0.6197, Loss_L1Dist:0.7872, AE_loss:0.0\n", "target_lab_score:-1.1553, max_nontarget_lab_score:1.1005\n", "\n", "iter:0 const:[887.5]\n", "Loss_Overall:1875.1649, Loss_Attack:1865.0375\n", "Loss_L2Dist:0.6456, Loss_L1Dist:0.9482, AE_loss:0.0\n", "target_lab_score:-0.9664, max_nontarget_lab_score:0.9351\n", "\n", "iter:500 const:[887.5]\n", "Loss_Overall:2188.0227, Loss_Attack:2179.5308\n", "Loss_L2Dist:0.6197, Loss_L1Dist:0.7872, AE_loss:0.0\n", "target_lab_score:-1.1553, max_nontarget_lab_score:1.1005\n", "\n", "iter:0 const:[943.75]\n", "Loss_Overall:1803.7188, Loss_Attack:1791.3525\n", "Loss_L2Dist:0.6936, Loss_L1Dist:1.1673, AE_loss:0.0\n", "target_lab_score:-0.8575, max_nontarget_lab_score:0.8406\n", "\n", "iter:500 const:[943.75]\n", "Loss_Overall:2326.1621, Loss_Attack:2317.6702\n", "Loss_L2Dist:0.6197, Loss_L1Dist:0.7872, AE_loss:0.0\n", "target_lab_score:-1.1553, max_nontarget_lab_score:1.1005\n", "\n", "iter:0 const:[915.625]\n", "Loss_Overall:1934.2682, Loss_Attack:1924.1407\n", "Loss_L2Dist:0.6456, Loss_L1Dist:0.9482, AE_loss:0.0\n", "target_lab_score:-0.9664, max_nontarget_lab_score:0.9351\n", "\n", "iter:500 const:[915.625]\n", "Loss_Overall:2257.0923, Loss_Attack:2248.6003\n", "Loss_L2Dist:0.6197, Loss_L1Dist:0.7872, AE_loss:0.0\n", "target_lab_score:-1.1553, max_nontarget_lab_score:1.1005\n", "\n", "iter:0 const:[929.6875]\n", "Loss_Overall:1912.2880, Loss_Attack:1901.4879\n", "Loss_L2Dist:0.6501, Loss_L1Dist:1.0150, AE_loss:0.0\n", "target_lab_score:-0.9363, max_nontarget_lab_score:0.9090\n", "\n", "iter:500 const:[929.6875]\n", "Loss_Overall:1963.8198, Loss_Attack:1953.6924\n", "Loss_L2Dist:0.6456, Loss_L1Dist:0.9482, AE_loss:0.0\n", "target_lab_score:-0.9664, max_nontarget_lab_score:0.9351\n", "\n" ] } ], "source": [ "# Some interesting user samples to try: 9 11 24\n", "idx = 9\n", "\n", "X = xn_test[idx].reshape((1,) + xn_test[idx].shape)\n", "print(\"Computing PP for Sample:\", idx)\n", "print(\"Prediction made by the model:\", class_names[np.argmax(nn.predict_proba(X))])\n", "print(\"Prediction probabilities:\", nn.predict_proba(X))\n", "print(\"\")\n", "\n", "\n", "mymodel = KerasClassifier(nn)\n", "explainer = CEMExplainer(mymodel)\n", "\n", "arg_mode = 'PP' # Find pertinent positives\n", "arg_max_iter = 1000 # Maximum number of iterations to search for the optimal PN for given parameter settings\n", "arg_init_const = 10.0 # Initial coefficient value for main loss term that encourages class change\n", "arg_b = 9 # No. of updates to the coefficient of the main loss term\n", "arg_kappa = 0.2 # Minimum confidence gap between the PNs (changed) class probability and original class' probability\n", "arg_beta = 10.0 # Controls sparsity of the solution (L1 loss)\n", "arg_gamma = 100 # Controls how much to adhere to a (optionally trained) auto-encoder\n", "my_AE_model = None # Pointer to an auto-encoder\n", "arg_alpha = 0.1 # Penalizes L2 norm of the solution\n", "arg_threshold = 0.0 # Automatically turn off features <= arg_threshold if arg_threshold < 1\n", "arg_offset = 0.5 # the model assumes classifier trained on data normalized\n", " # in [-arg_offset, arg_offset] range, where arg_offset is 0 or 0.5\n", "(adv_pp, delta_pp, info_pp) = explainer.explain_instance(X, arg_mode, my_AE_model, arg_kappa, arg_b,\n", " arg_max_iter, arg_init_const, arg_beta, arg_gamma,\n", " arg_alpha, arg_threshold, arg_offset)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the pertinent positives, we look at a different applicant 8 whose loan application was approved. We want to ascertain here what minimal values for this profile would still have lead to acceptance. Below, we showcase the pertinent positive as well as the important features in maintaining the approved status. The 0s in the PP column indicate that those features were not important. The 0s in the PP column indicate that those features were not important. Here too, we provide a human friendly explanation following the feature importance plot." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PP for Sample: 9\n", "Prediction(Xpp) : Good\n", "Prediction probabilities for Xpp: [[-0.29156655 0.3953777 ]]\n", "\n" ] }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
X X_PP
ExternalRiskEstimate74.00000074.000000
MSinceOldestTradeOpen181.0000000.000000
MSinceMostRecentTradeOpen1.0000000.000000
AverageMInFile65.0000004.000000
NumSatisfactoryTrades61.00000061.000000
NumTrades60Ever2DerogPubRec0.0000000.000000
NumTrades90Ever2DerogPubRec0.0000000.000000
PercentTradesNeverDelq100.000000100.000000
MSinceMostRecentDelq0.0000000.000000
MaxDelq2PublicRecLast12M6.0000000.000000
MaxDelqEver7.0000002.000000
NumTotalTrades65.0000000.000000
NumTradesOpeninLast12M5.0000000.000000
PercentInstallTrades35.0000000.000000
MSinceMostRecentInqexcl7days0.0000000.000000
NumInqLast6M0.0000000.000000
NumInqLast6Mexcl7days0.0000000.000000
NetFractionRevolvingBurden12.0000000.000000
NetFractionInstallBurden80.0000000.000000
NumRevolvingTradesWBalance9.0000000.000000
NumInstallTradesWBalance6.0000000.000000
NumBank2NatlTradesWHighUtilization2.0000000.000000
PercentTradesWBalance58.0000000.000000
RiskPerformanceGoodGood
" ], "text/plain": [ "" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xpp = delta_pp\n", "classes = [ class_names[np.argmax(nn.predict_proba(X))], class_names[np.argmax(nn.predict_proba(Xpp))]]\n", "\n", "print(\"PP for Sample:\", idx)\n", "print(\"Prediction(Xpp) :\", class_names[np.argmax(nn.predict_proba(Xpp))])\n", "print(\"Prediction probabilities for Xpp:\", nn.predict_proba(Xpp))\n", "print(\"\")\n", "\n", "X_re = rescale(X) # Convert values back to original scale from normalized\n", "adv_pp_re = rescale(adv_pp)\n", "#Xpp_re = X_re - adv_pp_re\n", "Xpp_re = rescale(Xpp)\n", "Xpp_re = np.around(Xpp_re.astype(np.double), 2)\n", "Xpp_re[Xpp_re < 1e-4] = 0\n", "\n", "X2 = np.vstack((X_re, Xpp_re))\n", "\n", "dfpp = pd.DataFrame.from_records(X2.astype('double')) # Showcase a dataframe for the original point and PP\n", "dfpp[23] = classes\n", "dfpp.columns = df.columns\n", "dfpp.rename(index={0:'X',1:'X_PP'}, inplace=True)\n", "dfppt = dfpp.transpose()\n", "\n", "dfppt.style.apply(highlight_ce, col='X_PP', ncols=2, axis=1) " ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "image/png": "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Z+Hg4PBY9To7O+PixYu4fPky2rRpA6D6UbVPSqVSSQPOiej5wW5RREREL6AWLVrA1dUVmzZtgp+fHwCgd+/eOH78OM6fPy8lHLNmzcKRI0cwdepUZGRkICcnBzt37nzogO5XX30VL730EtRqNU6ePInk5GR8+OGHAP7v7sTjsLe3R1lZGeLj43Ht2jXcunWrbg0momeCyQUREdELytfXF1VVVVJy0bJlS3Ts2BGWlpZwdnYGUD0uIjExEefPn0evXr3QtWtXzJ8/H9bW1rXWqVQqERsbi7KyMnh4eODtt9+WnhZlaGj42LF5e3vj3XffxahRo2BhYYHly5fXrbFE9EwohBBC30EQERFRw5WcnIyePXsiNzcXL730kr7DIaJ6xOSCiIiIZBUTEwMTExM4OjoiNzcX06ZNQ4sWLZCUlKTv0IionnFANxEREcmqtLQUs2bNQkFBAVq1aoV+/fphxYoV+g6LiJ4B3rkgIiIiIiJZcEA3ERERERHJgskFERERERHJgskFERERERHJgskFERERERHJgskFERERERHJgskFERERERHJgskFERERERHJgskFERERERHJgskFERERERHJ4v8BB7gqqCOANeMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.rcdefaults()\n", "fi = abs(Xpp_re.astype('double'))/np.std(x_train.astype('double'), axis=0) # Compute PP feature importance\n", " \n", "objects = df.columns[-2::-1]\n", "y_pos = np.arange(len(objects)) # Get input feature names\n", "performance = fi[0, -1::-1]\n", "\n", "plt.barh(y_pos, performance, align='center', alpha=0.5) # Bar chart\n", "plt.yticks(y_pos, objects) # Plot feature names on y-axis\n", "plt.xlabel('weight') #x-label\n", "plt.title('PP (feature importance)') # Figure heading\n", "\n", "plt.show() # Display the feature importance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Explanation: \n", "We observe that the applicant 9's loan application would still have been accepted even if only three variables maintained their original level - the consolidated risk marker score (i.e. ExternalRiskEstimate), the number of satisfactory trades (i.e. NumSatisfactoryTrades), and the percentage of trades that were never delinquent (i.e. PercentTradesNeverDelq) - and had a significant reduction in an additional variable - average months that application was on file (i.e. AverageMlnFile). MaxDelqEver is reduced to a minimum over the data.\n", "\n", "_Note that explanations may change a bit based on equivalent values in a local minima._" ] } ], "metadata": { "celltoolbar": "Edit Metadata", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.6.15" } }, "nbformat": 4, "nbformat_minor": 2 }