{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Applying privacy metrics to ML models\n", "\n", "In this notebook we will demonstrate how to apply both the PDTP and the SHAPr privacy metrics to random forest and decision tree classifiers trained on the nursery dataset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load data and train random forest model" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "import os\n", "import sys\n", "sys.path.insert(0, os.path.abspath('..'))\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "import numpy as np\n", "\n", "from art.metrics import PDTP, SHAPr\n", "from art.utils import load_nursery\n", "\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.tree import DecisionTreeClassifier\n", "from art.estimators.classification.scikitlearn import ScikitlearnRandomForestClassifier, ScikitlearnDecisionTreeClassifier\n", "\n", "(x_train, y_train), (x_test, y_test), _, _ = load_nursery(test_set=0.5)\n", "\n", "model = RandomForestClassifier()\n", "model.fit(x_train, y_train)\n", "# An extra (unfitted) model of the same type is needed for the PDTP metric to fit alternative models and compare their outputs\n", "extra_model = RandomForestClassifier()\n", "\n", "# ART wrappers for models\n", "art_classifier = ScikitlearnRandomForestClassifier(model)\n", "extra_classifier = ScikitlearnRandomForestClassifier(extra_model)\n", "\n", "# We will run the PDTP metric only on a subset of the training samples, since it is quite slow\n", "num_samples = 100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute PDTP metric for random forest model" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average PDTP leakage random forest: 18.778\n", "Max PDTP leakage random forest: 22.0\n" ] } ], "source": [ "indexes = np.array(range(num_samples))\n", "leakage, _, _ = PDTP(art_classifier, extra_classifier, x_train, y_train, indexes=indexes)\n", "\n", "print(\"Average PDTP leakage random forest: \", np.average(leakage))\n", "print(\"Max PDTP leakage random forest: \", np.max(leakage))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Train decision tree model" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "model2 = DecisionTreeClassifier()\n", "model2.fit(x_train, y_train)\n", "extra_model2 = DecisionTreeClassifier()\n", "\n", "art_classifier2 = ScikitlearnDecisionTreeClassifier(model2)\n", "extra_classifier2 = ScikitlearnDecisionTreeClassifier(extra_model2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute PDTP metric for decision tree model" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average PDTP leakage decision tree: 1.0\n", "Max PDTP leakage decision tree: 1.0\n" ] } ], "source": [ "leakage2, _, _ = PDTP(art_classifier2, extra_classifier2, x_train, y_train, indexes=indexes, num_iter=1)\n", "print(\"Average PDTP leakage decision tree: \", np.average(leakage2))\n", "print(\"Max PDTP leakage decision tree: \", np.max(leakage2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute SHAPr metric for both models" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average SHAPr leakage random forest: 0.97360295\n", "Max SHAPr leakage random forest: 3.2778597\n", "Average SHAPr leakage decision tree: 0.981167\n", "Max SHAPr leakage decision tree: 1.003879\n" ] } ], "source": [ "SHAPr_leakage = SHAPr(art_classifier, x_train, y_train, x_test, y_test)\n", "print(\"Average SHAPr leakage random forest: \", np.average(SHAPr_leakage))\n", "print(\"Max SHAPr leakage random forest: \", np.max(SHAPr_leakage))\n", "\n", "SHAPr_leakage2 = SHAPr(art_classifier2, x_train, y_train, x_test, y_test)\n", "print(\"Average SHAPr leakage decision tree: \", np.average(SHAPr_leakage2))\n", "print(\"Max SHAPr leakage decision tree: \", np.max(SHAPr_leakage2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compare the leakage metrics for the 20 first training samples (random forest)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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bOa5MRbOc0NERGR59Pn+trg+N0RERERZYXJDREREVoXJDREREVkVJjdERERkVZjcEBERkVVhckNERERWhckNERERWRUmN0RERGRVmNwQERGRVWFyQ0RERFaFyQ0RERFZFSY3REREZFWY3BAREZFVYXJDREREVoXJDREREVmVHCc3CQkJuHz5MpKSkpSMh4iIiChX9E5u4uLi0Lt3b7i4uKBcuXKIiIgAAPzvf//DDz/8oHiARERERPrQO7kZOXIkzpw5g71798LJyUm7PygoCKtWrVI0OCIiIiJ92en7hJCQEKxatQo1a9aESqXS7i9XrhyuX7+uaHBERERE+tK75ubRo0coUKBAuv2xsbFpkh0iIiIiU9A7ualWrRr++usv7X1NQrNgwQLUqlVLuciIiIiIckDvZqmJEyeiefPmuHDhApKSkjBr1ixcuHABhw8fxr59+wwRIxEREZHO9K65qVu3Ls6cOYOkpCSUL18eO3fuRIECBfDPP/+gatWqhoiRiIiISGd61dwkJiaiX79+GD16NObPn2+omIiIiIhyTK+aG3t7e6xbt85QsRARERHlmt7NUm3btkVISIgBQiEiIiLKPb07FJcsWRLjxo3DoUOHULVqVbi6uqZ5fNCgQYoFR0RERKQvlRBC6POEgICAzAtTqXDjxo1cB2VI0dHR8PT0RFRUFDw8PEwdDhEREelAn+9vvWtuwsPDcxwYERERkaHleFVwABBCQM+KHyIiIiKDylFys3TpUpQvXx7Ozs5wdnZGhQoVsGzZMqVjIyIiItKb3s1S06dPx+jRozFw4EDUqVMHAHDw4EF89tlnePz4Mb744gvFgyQiIiLSVY46FI8dOxbdunVLs3/JkiUIDg42+z457FBMRERkefT5/ta7WSoyMhK1a9dOt7927dqIjIzUtzgiIiIiRemd3AQGBmL16tXp9q9atQolS5ZUJCgiIiKinNK7z83YsWPRqVMn7N+/X9vn5tChQwgNDc0w6SEiIiIyJr1rbjp06ICjR48iX758CAkJQUhICPLly4djx46hXbt2hoiRiIiISGd6dyi2dOxQTEREZHkM2qF469at2LFjR7r9O3bswLZt2/QtjoiIiEhReic3I0aMQHJycrr9QgiMGDFCkaCIiIiIckrv5Obq1asoW7Zsuv2lS5fGtWvXFAmKiIiIKKf0Tm48PT0zXPn72rVrcHV1VSQoIiIiopzSO7lp06YNhgwZguvXr2v3Xbt2DV9++SVat26taHBERERE+tI7uZkyZQpcXV1RunRpBAQEICAgAGXKlEHevHkxdepUQ8RIREREpDO9J/Hz9PTE4cOHsWvXLpw5c0a7Kni9evUMER8RERGRXhSZ5+b58+fw8vJSIBzD4zw3RERElseg89xMnjwZq1at0t7v2LEj8ubNiyJFiuDMmTP6R0tERESkIL2Tm7lz56JYsWIAgF27dmHXrl3Ytm0bmjdvjmHDhikeIBEREZE+9O5zc//+fW1ys2XLFnTs2BFNmjSBv78/atSooXiARERERPrQu+bG29sbt2/fBgBs374dQUFBAOQMxRnNXExERERkTHrX3LRv3x6dO3dGyZIl8eTJEzRv3hwAcPr0aQQGBioeIBEREZE+9E5uZsyYAX9/f9y+fRtTpkyBm5sbACAyMhKff/654gESERER6UORoeCWhEPBiYiILI9Bh4ITERERmTMmN0RERGRVmNwQERGRVWFyQ0RERFYlR8nN8+fPsWDBAowcORJPnz4FAJw6dQp3795VNDgiIiIifek9FPzs2bMICgqCp6cnbt68iU8//RR58uTB+vXrERERgaVLlxoiTiIiIiKd6F1zM3ToUPTo0QNXr16Fk5OTdn+LFi2wf/9+RYMjIiIi0pfeyc3x48fRr1+/dPuLFCmC+/fvKxIUERERUU7pndw4OjoiOjo63f4rV64gf/78igRFRERElFN6JzetW7fGuHHjkJiYCABQqVSIiIjA119/jQ4dOigeIBEREZE+9E5upk2bhpiYGBQoUAAvX75E/fr1ERgYCHd3d0yYMEGvsvbv349WrVrBx8cHKpUKISEhWR4fGRmJzp0746233oKNjQ2GDBmib/hERERk5fQeLeXp6Yldu3bh4MGDOHv2LGJiYlClShUEBQXpffLY2FhUrFgRvXr1Qvv27bM9Pj4+Hvnz58eoUaMwY8YMvc9HRERE1s9sFs5UqVTYsGED2rZtq9PxDRo0QKVKlTBz5ky9zsOFM4mIiCyPPt/fetfc/PTTTxnuV6lUcHJyQmBgIOrVqwdbW1t9izaI+Ph4xMfHa+9n1BmaiIiIrIfeyc2MGTPw6NEjxMXFwdvbGwDw7NkzuLi4wM3NDQ8fPkTx4sWxZ88eFCtWTPGA9TVp0iSMHTvW1GEQERGRkejdoXjixIl45513cPXqVTx58gRPnjzBlStXUKNGDcyaNQsREREoVKgQvvjiC0PEq7eRI0ciKipKe7t9+7apQyIiIiID0rvmZtSoUVi3bh1KlCih3RcYGIipU6eiQ4cOuHHjBqZMmWI2w8IdHR3h6Oho6jCIiIjISPSuuYmMjERSUlK6/UlJSdoZin18fPDixYvcR0dERESkJ72Tm4YNG6Jfv344ffq0dt/p06fRv39/vPfeewCAc+fOISAgINuyYmJiEBYWhrCwMABAeHg4wsLCEBERAUA2KXXr1i3NczTHx8TE4NGjRwgLC8OFCxf0/TWIiIjISuk9FPz+/fvo2rUrQkNDYW9vD0DW2jRq1AjLli1DwYIFsWfPHiQmJqJJkyZZlrV37140bNgw3f7u3btj8eLF6NGjB27evIm9e/emBKxSpTvez88PN2/e1Cl+DgUnIiKyPPp8f+d4nptLly7hypUrAIBSpUqhVKlSOSnG6JjcWB8hgHHjgOLFga5dTR0NEREZgkHnudEoXbo0SpcundOnEynm5EkgOBhQqYCSJYGaNU0dERERmVKOkps7d+5g06ZNiIiIQEJCQprHpk+frkhgRLo6d07+FALo0wc4dQpwcDBtTEREZDp6JzehoaFo3bo1ihcvjkuXLuHtt9/GzZs3IYRAlSpVDBEjUZb+/Tft9g8/AN99Z7p4iIjItPQeLTVy5Eh89dVXOHfuHJycnLBu3Trcvn0b9evXx4cffmiIGImypEluNGu3fv89wAF0RERvLr2Tm4sXL2qHZ9vZ2eHly5dwc3PDuHHjMHnyZMUDJMrO+fPyZ3Aw0LIlkJgIfPopoFabNCwiIjIRvZMbV1dXbT+bwoUL4/r169rHHj9+rFxkRDqIigLu3JHb5coBv/wCuLkBhw8Dv/5q2tiIiMg09E5uatasiYMHDwIAWrRogS+//BITJkxAr169UJPDVMjINM1PRYoAXl6Ar6/scwMAI0YAXEqMiOjNo3dyM336dNSoUQMAMHbsWDRq1AirVq2Cv78/Fi5cqHiARFnRNEmVK5eyr39/oFYtICZGbudsJiciIrJUeo+WKlasmHZmYldXV8ydO1f7GJulyNg0nYlTJzc2NsCCBUDlysBffwGrVgEffWSa+IiIyPj0rrn56KOPkNGkxg8ePECDBg2UiIlIZxklNwBQtizw7bdye9Ag4MkT48ZFRESmo3dyExERgT59+qTZFxkZiQYNGnDGYjI6TXLz9tvpHxsxQiY9jx4BQ4caNy4iIjIdvZObrVu34vDhwxj637fFvXv30KBBA5QvXx6rV69WPECizDx9CkRGyu2yZdM/7uAAzJ8vl2VYuhTYudO48RERkWno3ecmf/782LlzJ+rWrQsA2LJlC6pUqYIVK1bAxkbvXIkoxzS1Nr6+gLt7xsfUqgX873/ATz8B/frJpRrc3IwXIxERGV+OspFixYph165dWLFiBapXr46VK1fC1tZW6diIspRZf5vXTZggE6CbN7ksAxHRm0Cnmhtvb2+oVKp0++Pi4rB582bkzZtXu+/p06fKRUeUhaz626Tm5gbMnQu0aAHMmiVHTlWvbvj4iIjINHRKbmbOnGngMIj0l9EcN5lp3hzo0gVYsUKuHH7iBFcOJyKyViqR0bhuKxYdHQ1PT09ERUXBw8PD1OFQLhQoIEdCHT8OVKuW/fGPHgFlyshh4d9/nzJUnIiIzJ8+39+56gH86tUrREdHp7kRGcOjR/IGyIRFF/nzy2YpABg3Drh0yTCxERGRaemd3MTGxmLgwIEoUKAAXF1d4e3tneZGZAya/jbFiwOurro/r3Nn2USVkMCVw4mIrJXeyc3w4cPx999/49dff4WjoyMWLFiAsWPHwsfHB0uXLjVEjETp6NPfJjWVSq4W7uoKHDwIzJunfGxERGRaeic3mzdvxi+//IIOHTrAzs4O7777LkaNGoWJEydixYoVhoiRKB1dh4FnxM8PmDhRbg8fDty5o1xcRERkenonN0+fPkXx4sUBAB4eHtqh33Xr1sX+/fuVjY4oE7lJbgBgwACgRg3gxQvg88+5cjgRkTXRO7kpXrw4wsPDAQClS5fWLrmwefNmeHl5KRocUUaE0H2Om8zY2gILFwL29sDmzcDatcrFR0REpqV3ctOzZ0+cOXMGADBixAjMmTMHTk5O+OKLLzBs2DDFAyR63f37cl0pGxsgN2u1lisHjBwptwcOlGUSEZHly/U8N7du3cLJkycRGBiIChUqKBWXwXCeG8u3ezfQuDFQsiRw5UruyoqPBypXBi5eBHr2BH7/XZkYiYhIWUad58bPzw/t27e3iMSGrENu+9uk5ugILFggR1EtWiQTJyIismx6JzfJyckYP348ihQpAjc3N9y4cQMAMHr0aCxcuFDxAIlel9v+Nq+rXVt2KgaAvn2BuDhlyiUiItPQO7mZMGECFi9ejClTpsAh1eI8b7/9NhYsWKBocEQZyekcN1mZNAkoWhQIDwfGjFGuXCIiMj69k5ulS5di3rx56NKlC2xtbbX7K1asiEucz54MLPVIKSWTG3d3uXI4AEyfLhfWJCIiy6R3cnP37l0EBgam269Wq5GYmKhIUESZuXsXiI6WQ7nfekvZslu2BD7+WC7J0KcPwJczEZFl0ju5KVu2LA4cOJBu/9q1a1G5cmVFgiLKjKbW5q23ZGdgpc2cCeTJA5w5A0ydqnz5RERkeHb6PuG7775D9+7dcffuXajVaqxfvx6XL1/G0qVLsWXLFkPESKRliP42qRUoAMyYAXTvDowdC3TooHwNERERGZbeNTdt2rTB5s2bsXv3bri6uuK7777DxYsXsXnzZjRu3NgQMRJpGaK/zeu6dgWaNJFz4PTty5XDiYgsjd41NwDw7rvvYteuXUrHQpQtYyQ3KhXw22/yHPv2yXlw+vY13PmIiEhZuZrEj8iY1GrgwgW5rdQcN5nx9wcmTJDbw4YB9+4Z9nxERKQcnWpuvL29oVKpdCrwKRfoIQOJiABiYuRilxkM2FPc//4H/PEHcPy4XHtq/XrDn5OIiHJPp+Rm5syZBg6DKHuaJqlSpWSCY2i2trJJqmpVYMMGYN062cGYiIjMm07JTffu3Q0dB1G2jNHf5nUVKgAjRgDffy+bp1q1AlJNzE1ERGaIfW7IYii9ppSuRowAChWSSzP89ptxz01ERPpjckMWw9Bz3GTG1TVlvanx44EXL4x7fiIi0g+TG7IIajVw8aLcNnZyAwC9ewMlSwKPHsm1p4iIyHwxuSGLEB4OvHwpl1woUcL457e3l/1uALksw8OHxo+BiIh0w+SGLIKmv02ZMnIUkyl88IEcORUTkzIHDhERmR+dRku1b99e5wLXczIQMgBT9bdJzcYG+OEHoHFj4NdfgSFDgIAA08VDRKZz5AhQtizg4WHqSCgjOtXceHp6am8eHh4IDQ3FiRMntI+fPHkSoaGh8PT0NFig9GYzxTDwjAQFyVtiIvDdd6aNhYhMY948oFYtYMAAU0dCmVEJIYQ+T/j666/x9OlTzJ07F7b/tQ8kJyfj888/h4eHB3788UeDBKqU6OhoeHp6IioqCh5MuS1GpUrAmTPAxo1A69amjeXkSaBaNbkGVViYnAuHiN4MMTFyhvQHD2StzZMngF2OVmkkfenz/a13n5vff/8dX331lTaxAQBbW1sMHToUv//+u/7REmUjKSllpJSx57jJSNWqQMeOgBDAyJGmjoaIjGnmTJnYAEB0NJCqEYPMiN7JTVJSEi5dupRu/6VLl6BWqxUJiii169eBhATAxUUuaGkOvv9eXq1t3Qrs32/qaIjIGB4/BqZMkdsFCsifu3aZLh7KnN7JTc+ePdG7d29Mnz4dBw8exMGDBzFt2jT06dMHPXv2NESM9IZLPVLKxkzG95UsCfTpI7e//lrW4hCRdZs4UU7iWbkyEBws9+3ebdKQKBN6txROnToVhQoVwrRp0xAZGQkAKFy4MIYNG4Yvv/xS8QCJzKUz8eu++w5YulSOmti0CWjTxtQREZGh3LoFzJkjtydNkv1uAOCff2Q/HDc308VG6el9HWxjY4Phw4fj7t27eP78OZ4/f467d+9i+PDhafrhEClFMwzcHPrbpFa4sBwODgDffAMkJ5s0HCIyoDFjZPN4w4ZAkyZA8eKymTwxkU3T5ihHlfxJSUnYvXs3Vq5cCZVKBQC4d+8eYmJiFA2OCDDfmhsAGD4cyJMHuHBB1uIQkfU5fz7l/f3DD3KkpEol57wC2O/GHOmd3Ny6dQvly5dHmzZtMGDAADx69AgAMHnyZHz11VeKB0hvtsRE4MoVuW2OyY2np6y1AeSV3atXpo2HiJT3zTeyX12HDkD16in7g4LkT/a7MT96JzeDBw9GtWrV8OzZMzg7O2v3t2vXDqGhoYoGR3T1qkxw3NwAX19TR5OxAQOAYsWA27dT2uSJyDocPAhs3iyXfXl92ZX33pM1OOfPA/fvmyY+ypjeyc2BAwcwatQoODg4pNnv7++Pu3fvKhYYEZB22YX/WkDNjpMTMHas3J44EYiKMm08RKQMIYARI+R2r15AqVJpH8+XT46cAlh7Y270Tm7UajWSM+g5eefOHbi7uysSFJGGOfe3Sa1bN7nOzNOnKfNgEJFl27IFOHRIXsCMGZPxMZp+N0xuzIveyU2TJk0wc+ZM7X2VSoWYmBiMGTMGLVq0UDI2IotJbmxtZa0NAMyYAfw3SwIRWajk5JQZyAcPBooUyfg4Tb+bXbs435U50Tu5mTZtGg4dOoSyZcvi1atX6Ny5s7ZJavLkyYaIkd5glpLcAHLNq9q1gZcvgXHjTB0NEeXG8uXy88fLS07UmZm6dWXNzr17QAaT95OJ6L1wJiCHgq9atQpnzpxBTEwMqlSpgi5duqTpYGyuuHCm5YiPB1xd5RXUnTuZXzmZkwMHgHr1ZE3OxYtyJmMisiyvXsn+NRERwOTJcsqHrDRuLJulZs0CBg0yToxvIn2+v3OU3FgyJjeW4+xZoGJFOdz62TPz7VD8uvffB/76Sy6uuWqVqaMhIn3NmAEMHSovqK5eBbK7bp8yRdbutGolZysnwzDoquC2trZo2LAhnj59mmb/gwcPOEMxKSp1k5SlJDaA7HujUgGrVwMnT5o6GiLSR1RUypDv4ODsExsgpd/N3r1y6goyPb2TGyEE4uPjUa1aNfyr+fZJ9RiRUjQvL3NbdiE7FSoAXbrIbc0wUiKyDFOnAk+eAKVLAz166PacSpWAvHnloprHjhkyOtKV3smNSqXCunXr0KpVK9SqVQsbN25M8xiRUlLPcWNpxo0D7O1lOzyHiBJZhgcPgOnT5faECYCdjktL29gAjRrJbS7FYB5yVHNja2uLWbNmYerUqejUqRO+//77HNXa7N+/H61atYKPjw9UKhVCQkKyfc7evXtRpUoVODo6IjAwEIsXL9b7vGQZLGmk1OsCAoD+/eX2iBGAWm3aeIgoe+PHA3FxcomFdu30ey7nuzEvOVo4U6Nv377Ytm0bZs6ciW7duun9/NjYWFSsWBFzdJyzPjw8HC1btkTDhg0RFhaGIUOGoE+fPtixY4fe5ybz9vIlcP263LbE5AYAvv1WLhtx8iSwdq2poyGirFy/Dvz2m9zWLI6pD02/myNHgOhoZWMj/elY6ZbCz88vTcfhhg0b4siRI2jVqpXeJ2/evDmaN2+u8/Fz585FQEAApk2bBgAoU6YMDh48iBkzZqBp06Z6n5+M59LjS7gddRuNSzTW7fhLckKsvHmBggUNHJyBFCgAfPWV7JT47bfyStDePv1xN57dwN/hf6Nz+c5wsXcxepy5kaxOxsrzK1EufzlULlzZ1OHo7dz9CzgQfhR9qneBg61D9k94w0RHA+7ultWhP6dGjwaSkoCmTYGGDfV/vr8/EBgIXLsG7NsnR06Zq6N3jmLbtW0GPYe7gzu+rP2lQc+RFb2Tm/Dw8HT7AgMDcfr0aTx48ECRoDLzzz//IEiTHv+nadOmGDJkSKbPiY+PR3x8vPZ+NFNqo9t0eRM6re2EV0mv8F297xDcIDjb/lmWsKaULoYOlYtpXrsGLFwIfPZZ2sfPPjiLRksb4XHcY6w4twKbP94MNwc30wSrpyR1Enpu7InlZ5fD0dYR6zutR4uSljNL+f5b+xH0e0sk2sTgzzPrsbPPGjjZOZk6LLPxyy9yUdj33wd+/hnw8zN1RIZz+jSwcqXcnjQp5+UEBcn3+q5d5pvcrL+4Hh3XdESySL+MkpIKuxW2rOQmM05OTvAz8Kv//v37KPjaZXzBggURHR2Nly9fZjiJ4KRJkzBWs6ohGd3isMXos6mP9o00bv84qIUa4xqOyzLBseT+Nqm5u8srwkGD5OKaXbvKiQmBtIkNAOy9uRfNVzTH1s5b4e5o3uu0JamT0HVDV/x5/k8AQHxyPNr+2RZrPlyDNqXbmDi67P0d/jdarWyFRJs4AMCBB1vQemVrhHwUYnG1Z4YgBPBfBTm2bAH+/lu+fgcPzrj20dJplln4+OOUhTBzIigImDvXfPvdhFwKQae1nZAsktEooBFK5S2V/ZNyyNPJ02Bl60TowNvbWzx69EgIIYSXl5fw9vbO9JZTAMSGDRuyPKZkyZJi4sSJafb99ddfAoCIi4vL8DmvXr0SUVFR2tvt27cFABEVFZXjWEk3Px76USAYAsEQPUJ6pLn/bei3Qq1WZ/rc998XAhDi55+NGLCBxMcLERAgf58JE+S+M/fPiHxT8gkEQ1SbV03suLZDeE7yFAiGqLmgpnj+8rlpg85CQlKC6LCqg0AwhP04e7H6/Grx4eoPBYIh7MbZibX/rjV1iFnacW2HcPreSb4WP2kqELhV4BtXgWCIeovqiehX0aYO0eQOH5avV1dXIerVk9uAEBUqCPHPP6aOTll//y1/Nzs7Ia5dy11ZT58KoVLJ8m7fViY+pWy8tFHYj7MXCIbovK6zSEpOMnVIeouKitL5+1unmpsZM2ZoV/xOvWimsRUqVChd09eDBw/g4eGR6dIPjo6OcHR0NEZ49B8hBEbsHoEph+Xy2F/V+gpTGk+BSqWCnY0dvtjxBSYcmAC1UGPCexMyrMGx1DluMuLgIEdhfPKJnMq9boez6LBJ1thU86mGXV13wcvJC6HdQtF4WWMcuXMEQcuCsPOTnfB29jZ1+GnEJ8Wj09pO2Hh5IxxsHbCu4zq8/9b7aFemHext7fHHuT/QaW0nLG+/HB+9/ZGpw03nryt/of3q9khITkBJ9fu4+ucaIMkJWLYTTr2bY/+t/WiyvAm2ddkGLycvU4drMitWyJ/t2gFLlwJLlsj+Y2fPyvXTPvtMTlbp5WXSMHNNiJS5qPr1A0qUyF153t5AtWrA8eNAaCjQvXvuY1TClitb8MHqD5CoTsRHb3+EJW2XwNbGyifdNXyupRvoUHMzfPhw8fbbb6fZ9/HHH4umTZvqfB59Mj/SX2JyougV0ktbQzP54OR0x8w6Mkv7+Ne7vk5Xg/PiRcqV4n8VhhYvOVmIihWFQMEzwvm7lBqbZy+fpTkuLDJMW6NTaW4l8SjWfP4ALxNfihYrWggEQzh97yS2X92e5vGk5CTRfUN3gWAIm7E2YmnYUhNFmrGQiyHaK9d2f7YT79SMF4AQtWrJ15pfrePC+wdvgWCIKr9VEY9jH5s6ZJNISBAiXz75N9m2LWX/o0dC9OiR8t4sVEiIP/8UIosKWLO3dm1KDdX9+8qU+c03sswuXZQpL7f+uvKXcBjvIBAM0XFNR5GYnGjqkHJMn+9vnZKb1M062d308eLFC3H69Glx+vRpAUBMnz5dnD59Wty6dUsIIcSIESNE165dtcffuHFDuLi4iGHDhomLFy+KOXPmCFtbW7F9+/bMTpHh78LkxjBeJr4Ubf9sq/1yW3hqYabHzj46W5vgDNs5LE2Cc+yY/HAoUMAYURvPnLVnBIbJxKXCz+kTG41zD86JAj8WEAiGKP9LefEg5oFxA81AbEKsaLy0sUAwhPP3zmL39d0ZHpesThZ9NvYRCIZQBauyfA0Y05p/1wi7cXYCwRAfrv5QPHycIGxs5Ovs33/llxsgxMK/wkT+KfkFgiHe/uVtcf+FQt94FmTLlpT3X2IG34N79ghRqlRKktOsmRDXrxs9zFxLTEz5PUaPVq5cTTNXwYKmT/y2X90uHMc7CgRDdFjVQSQkJZg2oFxSPLlRqVTCxsYmy5vmGH3s2bNHAEh36969uxBCiO7du4v69eune06lSpWEg4ODKF68uFi0aJFe52RyYxjPXz4X9RfVFwiGcBzvKDZc3JDtc34++rM2wflyx5faBGfRIvnh0LChYWM2ptR9bPBpNdG517Msj7/46KIoPLWwQDBEmZ/LiHvR94wTaAZi4mNEw8UNBYIhXCe4ir3he7M8PlmdLD7f8rn2fzv3+FwjRZqxP87+IWzH2mr7GiQmJ4r16+VrrFQpecynn8r7nTsLceHhBe3fvtTsUuJO1B2Txm9sH38s/xaDBmV+zKtXQowdK4SDgzzWyUmISZNkrY+lmDdPxp4vnxBKfh28eiWEs7Ms++xZ5crV185rO7WJTbs/21l8YiOEAZKbvXv36nwzd0xulHf/xX1ReW5lgWAI94nuYk/4Hp2fO+fYHO2X4NDtQ4VarRZffSU/GP73P8PFbEypE5sy06sJOD0TNjayxiArVx5fEUWnFxUIhnhr9lsm+ZKNfhUt3v39Xe3/9uCtg2kej40Vok8fIZYsSfs8tVotBm8brP3f/nTkJyNGnWJJ2BJhM9ZGIBii+4bu2k6Un38uX2MDBsjjTpyQ9x0cZPPL1SdXRbHpxQSCIYrPKi5uPrtpkviNLTo65Yv56NHsj798WYj33kupxSlXToiDB7N/nqnFxgrh4yNjnjFD+fKbNpVlT5+ufNm62H19t7bTfJuVbUR8UrxpAlGY4smNNWFyo6wbT2+IwJ8CBYIh8k/JL07eO6l3Gb8e/1X7JThk2xDRtJlaAELMNe0FvyJeHxX17OUz0a6d/OBr0yb7519/el34zvAVCIYoMauEuPX8lsFj1nj+8rmotaCWQDCE5yRPceT2kXTHTJsmfxcPj/RX7Wq1WgzbOUz7v512eJqRIpcWnFwgVMEqgWCIPhv7iGR1svaxkiVl3CEhKcdXrSr3TfsvzPBn4aL4rOICwRDFphcTV59cNWr8prB0qfwblCype5OKWi2fp+mnA8iasCdPDBtrbvzww3/9rPxkTYvSpk6V5TdvrnzZ2Qm9ESqcv3cWCIZo9Ucrq0lshDBSchMbGysuXrwozpw5k+Zm7pjcKOfs/bPa6nv/mf7iyuMrOS7rtxO/ab8E3T4cJAC1OHBAwWBNIKPERgghLlwQ2v4ehw5lX87NZzdFwMwA7d85/Fm4QeMWQoincU/FO/PeEQiG8P7BW5y4eyLdMQkJQhQtmvKFllHFrVqtFt+Gfqv93046MMngsQuRNmH+fMvnaRKbmzdlvLa2QjxPNeL+t99Smqo0X+x3ou6IUrNLCQRDFJ5aWFx4eMEo8ZuKpsYhOFj/5z55ImvxNK+H/PmFWL7c9P1OXvf0qRBeXjLG12sclRIWJst3cZFTQRjL3vC92sSm5YqW4lWiATI3EzJocvPw4UPRsmXLTPvemDsmN8o4eOug8PrBS9vx8m703VyXOf/kfO0XEpoPFE+emNmnoh4yS2w0eveWH37vvqvbh3/E8whtDVmx6cXEtSe5nJAjC49jH4sqv1URCIbIOzmvOB15OsPjNFf5mtuwYZmXOXbvWO3/duzesYYJ/D+pR+MN3jY43Wi8BQuEdpRUatHRQri5ycf27EnZf//FffH2L29rayfDIsMMGr+p3L+fknRfzUUl1f79QpQtm/K6CAoS4krOr3sUN3y4jOvtt4VIMtBUL8nJskN2Zkm/Iey/uV+4THARCIZotryZeJn40jgnNiKDJjedO3cWderUEcePHxeurq5i586dYtmyZaJUqVJiy5YtOQrYmJjc5N5fV/7SXh3UXlhbPI17qljZI9csEBgjmxIG/DUgy4n+zFV2iY0QcoIvJyf54afr2+Zu9F1tLYLPNB9x6dElZQMXQjyMeSgq/FpBIBiiwI8FxLkH5zI8Tq0Wonx5Gf8778ifZctmXfbE/RO1Sceo0FEG+d9OPTQ101F4Gh99lPkImX795GMffZR2/6PYR9p+Zd4/eIvjd48rHrupzZwpf/caNXJfVny8nLBS8xp3dBRi3DjDNAHpI/X7bvNmw55L0zF71CjDnkcIebHpOkFORNlkWROrTGyEMHByU6hQIXH0v55m7u7u4vLly0IIITZu3Cjq1Kmjb3FGx+Qmd5afWa4dUtt8eXMRmxCraPnz5wuBygu1CU7/Lf3TNCmYO10SG41hw+SHX/ny8kpPF/df3Bfl5pQTCIYoNLWQ+PdhNr2S9RD5IlKUnVNWW3ZWTTDbtsnY3dyEuHFDNvEAQoSHZ32O1MnH8J3DFU1wUidPmc2AnZyc0jdk//70ZZw6ldKx+OHDtI89e/lM1FxQUyAYwmOShzgUoUObogXRJKk/Kdj3+9o1IZo0SanFKV3aeDUZGdE0m9Wta/jmst9/Vy5ZzMqhiEPCbaKbQDBE0NIgEZeQ8Wz91sCgyY27u7sI/+8TzNfXVxz8r2v8jRs3hLOzs77FGR2Tm5yb+c9M7ZdHl3VdDDK0cMgQ+YHQePgibWfQzzZ/ZhEJjj6JjRCyj4Km7X/ZMt3Pk7p2Jf+U/OLs/dyPN01dK1RkWhFx+fHlLI/XjJAZOlTef/ddeX/OnOzP9dORn9J0IM9tgqNWq0XwnmCdmr1On06ZtC2zvhDVqsljfvwx/WPRr6JFvUX1tMPi9RkZaM4uX07ph/RA4WmV1GohVq6U875okpyePY0/QefFi/r1dcutiAh5LhsbIZ49M8w5/rn9j3Cf6C4QDPHekvcUv9g0NwZNbqpVq6adNK9Vq1aia9eu4s6dO2L48OGiePHi+kdrZIZKbtRqIbZvlzUP1ub1TqGDtw02WLLRuLH8QJg/Xw7j1SQ4fTf1NesER9/ERmPSJPn7+vvrV2X/er+YU/dO5SxwkbY/j+8M32z782iGTdvZyQ/w1L9Hixa6nTOrDr/6eP21OXH/xCyPnzJFxtmyZebHzJ+f9Yih2IRYEbQ0KNOZmi3Rd98ZfnTP06cpzX6AEHnzyrlmoo20lFf79vK8rVsb53xCpEwSuH698mUfvXNUeEzyEAiGaLC4gdkkNmq1bII8fFj3GmldGTS5WbZsmXbivBMnToh8+fIJGxsb4eTkJP7880+9gzU2QyU3mlkplZzG2xwkJSeJfpv7ab88vt/3vUH7wWjmntAszrfszDLtPCWvD+c1FzlNbIRIO9/GrFn6nffZy2ei+vzqAsEQXj94iWN3julXgJDDnTUjsQJmBug0EqtTJxlvqsnDxdmzKZO5xer4Gbvw1EJt8vrppk/1/t++PtR86qGp2T5H00SS1dwmL14I4e4ujwsNzfiYl4kvRcsVLQWCIRzGO4iNlzbqFbs5UauFKFFC/r7Llxv+fIcOyc68miTHwUEmVb/9JkRkpGHOeeRISi3K+fOGOUdGBgyQ5/38c2XLPX73uHah3XqL6omY+BhlT5ALmtpRJychYhQOy6jz3MTGxoqTJ09qVw03d4asualeXf5TBw5UtGiTeZX4Snyw+gPtVPq/Hv/VoOd7+jTlAy/1v2f5meXaBKf3xt5mleDkJrHR0AxBzp9f/6vY5y+fi9oLa2v7gfxzW/clm689uaadQyfwp0AR8Twi2+dcv55StZ965ge1WohixeT+v/7SPf6lYUu1/9seIT10Xqk4J5MEvnyZ0pk0uy+4/v3lcZ06ZX5MfFK8dnV0u3F2YvX51TrFbm40X/wuLjKxM4aEBDkXjGa+Ic1NpZKj2H74QYhLCvWXV6uFaNBAlt+jhzJl6iokJKUWUCkn753UjlSt+3td8SLeSP80HY0eLX/ntm2VL5uT+GXBkH1uNLU39vaWudZKatGvokWjJY0EgiHsx9kb5YP7wAH59ytWLP1jK86u0H4J9gzpaRYJjhKJjRByjZu33pK/+5gx+j//9VmED9zKfoKgK4+viCLTimiXGNB1KP/AgTLOjNaq1TQ56HuVmtHyCFlJVieL/lv6axMbXZPu0FAZX+HC2Xcm1Vx92ttn3QclMTlRdF7XWSBYrqe27IwenafMhOZ/aoqFHtVqOe/TxIkpF4epb6VLCzFihKzJzWkTh6bzu6OjELeMNwemEELOo6TpbH/zZu7LO3XvlHZx1zoL64joV0Zq09NDuXL69yPUlUGTG7VaLVavXi369+8vOnToINq1a5fmZu4M3aFYMwlW584GKd4oHsY8FNXmVdN2mtx1fZdRzjt3rvzbNWuW8eMrz63M0VW+ISiV2GisWZMy+ignHTpfX/8pq46uqddOKjunrIh8oVtbwKNHKVPzZ9Rcs2lTyqyv+rZcpl7YsuOajpl2Vs/NwpwjRqRvTsuK5st2cvqF7dNISk4SvUJ6aWOad2KezjGZWkKCrDEEhNi61dTRCHHnjhC//CI/R+3t0yY6hQrJBHrbNt37pyUnC1GxYtrO78amWXV+wYLclRMWGSbyTM4jEAxRa0EtEfXK/AbFXLqU0h/PEJ2oDZrcDBo0SDg6OopmzZqJ7t27ix49eqS5mTtDJzeaoaSAvPqzNLee39KOmsk7OW+O+nHklOYK8quvMj/mz3N/aq/yu23oZpIER+nERgiZDGiG4uZ0Ta3YhFjRZFkTgWC5cndGSWnqFccr/FpBPIx5mEFJGRs7VsZXpUrGyUtMjLw61qXZJyMhF0OE/Th7gWC50N/r08YnJSeJ7hu6a2tJloYt1at8zSgoXWelXbhQHl+iRPa1Bq8vFjr76Gy9YjOVrVtTmkQzWgHclJ4/l6OsOnVK6QOlubm7C9GxoxB//JF2lunXrVghj/fwEOLxY+PFnpqmmeb1uZP0cfb+WZF3cl6BYIjq86uL5y+z+KVNSDOwIKOaXSUYNLnx9vYWf+nTqG5mjDEUXDN5U2Y1EObq34f/apsqik0vJi4+umjU8zdsKP9u2S30vvr8am2C88n6T4ya4BgisdHQNJvkplnzZeJL0WJFC4FguTr7tqvbtI+djjyt/YCsPLeyeByr+6d9XFzK/DBZjRto1kweM2VKzuL/68pf2pWM3//jfe308ambf2zH2oqV51bqVe7jx7I/ByDEXR0n046JkV+KgBC7d2d/vFqtFl/u+FKb4Ew5mMM/ghF17mwZ/QRfvZKjUT/7TDYrpk507O3lKMs5c+QkfRrx8UIULy6P+f5708W+f7+MIV++nDWtnX9wXuSfkt8gnzlK01xA/PabYcrX5/tbJYQQ0ENAQAC2bduG0qVL6/M0sxEdHQ1PT09ERUXBw8PDIOe4fh0oXRpISgL27AEaNDDIaXSSpE5CdHw0ol5FyZ/xUZne//PfP/H05VOUyVcGOz7ZgWKexYwaa8GCwMOHwLFjwDvvZH3s2gtr8dHaj5AsktGlfBcsabsEtja2Bo3v7IOzaLS0ER7HPUY1n2rY1XUXvJy8FD1H06bAzp1Aly7A8uU5KyM+KR6d1nbCxssb4WDrgLUfroWPuw8aL2uMZ6+e4R2fd7Djkx3wdvbWucxffwU+/xzw9weuXgXs7DI+bvZsYNAgoH59YO/enMW/6/outP6zNV4lvUKzwGZY/cFq9N7UG2surIGdjR3+7PAnOpTtoFeZa9cCH34IlC0L/Puv7s8bMAD45Rf53NWrsz9eCIHv9nyH7w98DwAY22AsRtcbDZVKpVe8xhATI99zcXHAkSNAjRppH09SJ+Fl4kuoVCrYqmxho7KBrY0tbFW2Jv191GrgxAkgJETeLl5M+/g77wBt2gCxcWpMmiRQsJDApUsCLq4CQggIZP8TgE7HuDu4w8XeJcu/R0ICkCcPEBsLnD4NVKqk++964dEFNFzSEA9jH6Jq4arY1XWXXu9bY4qIAPz8AJUKiIyUry2l6fP9rXdys2TJEmzfvh2///47nJ2dcxWoKRgjuQGAgQOBOXOA6tXlB8frr/1kdTISkhOQqE5EYnJihtsJyQlITE7UbickJyAmISZ9YpJFwvIy6aVecZfxqI4D/bYir0teBf8a2Xv0CChQQG6/eAG4uWX/nHUX1uGjdR8hSZ2EzuU7Y0nbJbCzyeRbN5eMkdgA8sOvShX5ejl9GqhYMWflJCYnovP6zlh7YS3sbOzgYu+C6Pho1CpaC9u6bIOnk6fOZSUnA6VKyaT9p5+A//0v82Nv3ABKlABsbYHHjwEvr5zFvyd8D95f+T7iEuOQxzkPnr58Cnsbe6ztuBatS7XWu7x+/YB584DBg4GZM3V/3tmz8n9gZwfcuaP7B/aE/RMwas8oAEC70u1QzKMYHO0c4WDrAAdbBzjaym3Nvtfv63qMg60D4pPiEZsYi9iEWMQkxOi8feFaLI6eioGTRyzervLf/oRYxCbK7YTkhCx/R1uVrTbZSZ346LJtayPv26hsoBZqJKuToRbqNLdkkcG+DI5LSk5GYrIayWo1hFADKjVgo9b9n5xL9jb28Hb2hreTN7ydvZHHOY/c/u++t5M3Fs/1xtmj3vishzcG9MqjfczZzjnTxOjS40tosLgBHsQ+QOVClbG7227kcc5jtN9LX7NmAUOGAO++C+zfb5hzGDS5efnyJdq1a4dDhw7B398f9vb2aR4/deqU/hEbkaGSm0exj9BqZSttIvIqIRHXbyZAqBLhlTcRKru0yYsm8zcWZztneDh6wNPJEx6OHnLbUW6rX3rij0UeSH5WBLVcuuLwPlejxgbIq/yGDYGAAPkFqasNFzeg49qOSFInoYh7ETjbO0MFFVQqVYY/AWT6WEY/AUAFFS49voSo+CiDJjYaH38M/Pkn0Lw5sHVrzstJUieh24ZuWHl+JQDgXd938Vfnv+Du6K5XOZpajzx55NWZazYvjzJlgEuXZE3Hhx/mNHrgwK0DaPFHC8QkxMDR1hHrO61Hi5ItclRWiRLydbV5M/D++/o9t1YteYEyaRIwYoTuz5v+z3R8ufNL/U5GFkHzWZLbz3EHW4c0SVDq5GjNhTW4H3MfFQtWRGi3UKNfcOqrfn2Z1MycKS8iDEGf72+9L3O7d++OkydP4pNPPkHBggXNsrrVFNRCjaN3j6bd6SV/PE8CkJT181VQwcHWAfa29vKnjX2abc1j7g7u6ZITTcLy+n3NPndHdzjYOmQctxp47z0geZ+8/w/kB3nNmrn5a+hP01RQrpx+z2tXph3WfrgWHdd2xN0Xd5UPLBVjJDYAMH68TCi2bQP27ZMfGjlhZ2OHZe2Wobh3cTyOe4xpTabB1UG/xFUIYMoUuT1gQPaJDQC0aCGTm7/+yl1y867fuwjtFoqph6eif7X+aBjQMEfl3Lghb3Z2Oftb9u0r3xPz5wPDhwM2Nro9b2itoShfoDwO3z6M+OR4be1rfFI8EtT//UxOSP9Yqn0ZHZNZjYqznTPcHNzg6uAKV3vX9Nv2rnB1kNsiwRWTxrpCxLthxmRXBPqlP8bV3hXO9s4QQmhrUjQ1Jxlta2pasttO/Ty1UKerydHcNLU92vuvHfP6468fk5RoA3s7G9jaQueLGV0uhDSEEIhNjMWzl8/w7NUz7c+nL5+m23f70TMcPPkMKpenyFtE7ksWsvb+QewDPIh9kOH/tHyB8tjdbbfZJzYPHgAHDsjtdu1MG4uG3jU3rq6u2LFjB+rWrWuomAzKUDU38Unx2H5te5oEJeGlPT7oYI+oJw4YN8YenTvJx1InK5rkxdD9RTIzf7788HZxAerVA7ZvB9q3B9atM24cn38u+3V8/TXwww/6P/9+zH1cf3odAHRqU9e3jd3RzhEN/RvC0c5RyV87U5q+HjVqAP/8k75Z01j27ZN9xpycgFu3UpoOs/L330CjRvLYyEjdkwFDmTdPNkvVrZvyAayPuDjAxweIipL9oRo3Vj5GfQghkKhO1CY+jnaOcLF3gY1K9z+0pm/UO+/IPm5kWEIARYrI90NoKNCwoUBMQkyaBOjZy/8So/+2ne2d8Vm1z5DPJZ+pw8+W5nukWjXg+HHDnUev7299eyuXKlVKnEk9NamFMfbCmTNmyN7jRYrIESfm5O5dITw9U6aj//fflFlCL2e9bqLi6tWT516q3+heqxUZKWeMBQyzLo2uWraUMXz2me7PiY9PGbp7zHgzCWTqgw9kLGMzX08zW5ppCjp0UC4uU9LM4TNzpqkjeXN07Sr/5iNGmDoS5Wnmd5uY9dJuuabP97fe11TTpk3D8OHDcfPmzRxlXm+a/v1lD/K7d+XVkjkZOFBejVavLjuJli0r+yMIAUyfbrw4hADOn5fbb79tvPOas0KFgKFD5fY338iRd8b277+yaUmlSolFFw4OQJMmcvuvvwwTm66Sk2VNEgAEBeW8nL595c+NG4H793MflyldvSpra2xtgY8+MnU0bw7N62/3btPGobTnz2VtFCBr/c2F3snNJ598gj179qBEiRJwd3dHnjx50twoLUdHYNw4uT1pEvDsmWnj0Vi3DtiwQfZDWLBAftABwLBh8ufixbId1RgePACePpXNFxY6w4BBDBsG5M0r+68sWWL880+dKn+2bw+ULKnfc1v81+/X1MnN6dPyteXuLpP4nCpfXnYsTkoCFi1SLj5T+OMP+TMoyDDDdSljmuTm5EngyRPTxqKkLVvk+6JcOTmq0lzo3aF4pj7jKAmAnLPkxx9l7cTkyTnrU6KkZ89krQ0gR3+UL5/y2Lvvyi+BY8eAn3+WnVsNTdOZuHhxwAJnFzAYDw/g229lrcmYMUDnzsb7+9y9C6xYIbc1Ca8+NMnNiROypqNQIeVi04fmKrlhw8zn5tFVv36y/9P8+bJvmKn7EuWEECnzJ3XpYtpY3jQ+PrJ2/MIFOf/ZBx+YOiJlrF8vf5pTrQ0A/frcJCQkiJ49e4obN27kuM3M1Izd50Zj8+aUZeDv3DHqqdPp0ydlUbqM1mhZu1Y+7u1tnFWCZ82S52vTxvDnsjQvXwrh65u7WX9zYtgwec569XJeRtWqus04bUjvvSdjmK3AaghxcUJ4ecnytm/PfXmmcPSo8VcApxSDB8u/f9++po5EGTExKevNGWO5IYP1ubG3t8c6Yw+jsRItW8rRGq9eAWPHmi6OPXtkMxQgr0AdMxj807YtEBgoa3h+/93wMbG/TeacnNI2az5/bvhzRkUBv/0mt3NSa6Nh6qapuDjg4EG5nZv+NhrOzkC3bnJb8/exNJrauDZtdJsok5Rlbf1utm8HXr6U85PldMJRQ9G7YrVt27YICQkxQCjWTaVKaY76/Xfg8mXjx/DyJfDpp3K7f3+ZbGXE1hb48r+5x6ZPN3xn1pzOcfOm+OQTmfg9eyabNQ1t3jwgOlpOxtciZ3PmAZAJPSCHTycmKhObPg4elFPfFy2qXF8ATcfiTZvksF5LkpQkJ4cE2CRlKvXry+ZRzdxLli51k5S5TXmnd3JTsmRJjBs3Dh988AEmTZqEn376Kc2NMlenDtCqlRzB8e23xj//2LFyCv0iRbLv99O9O5A/v5zbZM0aw8UkBJOb7NjaAhMnyu1Zs4B79wx3roQEeQ5A1trkpl/JO+/I11B0NHDokDLx6UNzdRwUpNwHb7ly8n2cnGycWk0l7d4t127Lly9lNBsZl7t7ygSpll57Ex8vOxMDQAf9lnozDn3bvPz9/TO9BQQE5KgdzZhM1edG49y5lNWJjx413nlPnhTC1laed+NG3Z4zbpw8vnJlIdRqw8R15448h61txv1/SFKrhahTx/Dt9YsXy3MULqzM/6NbN1neV1/lvix9Vaokz71ihbLlLl0qy/XzEyLJeAvS59onn8i4BwwwdSRvtrFj5f/hgw9MHUnubN2a8lmRk9XOc0Kf72+9kxtLZ+rkRgghuneXL4qGDQ2XNKSWmCgTFECIjh11f97jxykTye3ebZjYtm9P6dxMWTt4MCURvHRJ+fLVaiHKlZPnmDxZmTL//FOWV6aMMuXp6uFDeV5AiPv3lS07Lk52tgfkB7wliIkRwtVVxnz4sKmjebMdOiT/D3nyWFZy/DrNwJTPPzfeOQ06id9rtT4Q+q3eQJDNQw4OsnPvzp2GP9/06XK+D29vuaqzrvLmBXr1ktua9YWUxiYp3aVu1hw1Svnyt22T/w93dznsWQlNm8pmtYsXgfBwZcrUhWZSsQoVlJ/LJXXH4nnzlC3bUDZuBGJj5XQLxl43jtKqXl2+x54+lZ/LligpCdB0vTW7IeD/yVFys3TpUpQvXx7Ozs5wdnZGhQoVsGzZMqVjs1p+fnLtIEDOM6NWG+5c167JOVIAmeTo+0E/dKjsd7FzJ3DmjPLxMbnRz8SJsv/I2rXKr+GiSWD79gU8PZUp08tLJmVA7lY411fq/jaGoEn+Nm82bB8opWhGSXXpYn4dP980dnZy3iXAcvvdHDwIPH4M5Mkj1yQ0R3onN9OnT0f//v3RokULrF69GqtXr0azZs3w2WefYcaMGYaI0Sp9842cpC0sDFi1yjDnEEJ+Ub16JT/ku3fXv4yAgJSVnX/8Udn4ACY3+nr77ZRagxEj5P9YCcePy0Uy7eyAIUOUKVPD2EPChQB27ZLbhlrkskwZOeFlcjKwcKFhzqGUhw+BHTvkNkdJmQfN61LzOrU0mlFSrVsD9vamjSVT+rZ5+fv7iyVLlqTbv3jxYuHv769vcUZnDn1uNMaPl22WxYvLxQaVtmCBLN/ZWYjr13NezokTKX09bt1SLj61Wgg3N1n2v/8qV661u3lTCAcH+XfbsUOZMj/8UJbXrZsy5aV27lzKBJaxscqX/7orV+T5HBxkXxNDWbZMnqdYMfPuOzF7toyzalVTR0IaFy+mvEaN8Z5QUnKyXAgakJPTGpNB+9xERkaidu3a6fbXrl0bkZY28YOJffGFbCa6cUNOqKekyEjgq6/k9vjxsq09p6pWBd57T16lKrn6RkQEEBMjM3991y56k/n5AZ9/LreVaNa8fl2uNQakvGaUVK4c4OsraxD37FG+/NdproZr1wZcXQ13ng8+kNXyt2+n1IyYI02T1CefmDYOSlGqlJx/KSEhZaJJS3HihFyexc3NcM2+StA7uQkMDMTq1avT7V+1ahVK8htKL66uwHffye1x4+QXvVIGDZKz2VatCgwenPvyhg+XP+fNU27xT02T1FtvmXHVppn69lvZKfH0aSCDt6Nepk+XCVLz5mnXGVOKSpUyoZ8xmqYM3d9Gw8kppanXXGcsvnYNOHJE9pvjCuDmQ6Wy3NmKNU1SLVvK94DZ0rdaaO3atcLW1lY0bdpUjBs3TowbN040bdpU2NnZifXr1+eoqsmYzKlZSgghEhKEKFFCVvGNG6dMmRs2pDQjhYUpU6ZaLUSFCrLciROVKXPKFP2Hp1MKzTxEJUrkvFnz4UPZXAQI8fffysaXmmZtNV9fw05/kJgohKen8eaR0jQv2NgIcfu24c+nL82cKo0bmzoSet2KFfJ/U6mSqSPRnVotRGCgjHvVKuOf36DNUh06dMDRo0eRL18+hISEICQkBPny5cOxY8fQrl075bMvK2dvD3z/vdz+8Ufg0aPclff8eUqTxfDhyq33oVKlNFnMmiWbGHKLa0rljqZZ8/r1lPXC9DVnjvxfVqsGNGigaHhpvPeevMqLiEipsTOEkyfl2lheXrLW0tBKl5ajRdRq8+tYLASbpMxZo0byZ1hY7j/3jeX8eVkb6Ogoa3rNmhGSLbNibjU3QsgOWppJ9oYMyV1Z/frJckqWlJONKSkhQXaeBISYPz/35WlWjV63Lvdlval+/ln+DQsW1H+V59hYIfLmNd5VWPPmyk4QmBFNJ/327Q13jtdprsCLFjWvjsXHjqUMKIiONnU0lBFNbfjKlaaORDfBwTLe1q1Nc36jTeJHyrCxSVnr6Zdf5HpOObFvX0rb//z5crIxJdnbpwwTnjo1dx1Z1Wo5sRvAYeC58emnsrP4gwf6d/ZetAh48kQ+3xgTcRljSLix+tuk1qGDnPDyzh05EaK50NTatG4t+2eR+bG0fjepF8o0dzonNzY2NrC1tc3yZmdnZ8hYrVrjxrLqPiEhpZOxPl69Slnxu29fufqsIXz6qZzg7fJlOYFZTt28CcTFyZmaS5RQLLw3joNDSrPmlClyYi1dJCXJjsSAnKjRGG9dTafiQ4eU65SeWkwMcPiw3DbU/DYZcXQEevSQ2+bSsTj1CuBskjJfqee7MffJ/q9dA86elTOOt2pl6miyp3Nys2HDBqxfvz7D27Bhw+Do6MjkJhdUqpTam2XLgHPn9Hv+uHHA1atA4cLA5MnKx6fh7g707y+3czOpn6a/TZkyxvlitWadOgGVKwMvXqSsHp6d9evlFAR58wI9exo2Po2AAPn/Tk42zORlBw4AiYlyqLyxE2bNhcXWrXJouKmFhsravLx55RIYZJ7efVdeoEREyOTBnGlqbRo2lFMgmDudk5s2bdqku5UuXRqLFy/G1KlT8eGHH+Ly5cuGjNXqvfOOnDtDCDnUV1dnzqRMnf/LL7IzpSENGiTfkIcOpVwp64szEyvHxgaYNEluz5mTfbOmECmvl4EDARcXw8aXmiGHhKeeldjYSwyUKiU7ZJtLx2JNk1THjpxmwZy5usr5mADzn63YkpqkgByuLXXv3j18+umnKF++PJKSkhAWFoYlS5bAz89P6fjeOBMmyGq/zZt1m9wpKQno00deDXfoALRta/AQUbgw0LWr3M5p7Q2TG2U1aSKvqBISUtYSy8zevXJUkZNTyhpnxqLpd7Ntm/Jrqpmiv01qmvWmFiyQ70tTiY0FNmyQ22ySMn+W0O/mzh3g6FF50WCM7xgl6JXcREVF4euvv0ZgYCD+/fdfhIaGYvPmzXibY3kV89ZbQO/ecluXtYNmzZIzRnp5AbNnGzw8rS+/lD83bpT9b/TF5EZZqZs1ly5NafbLiCYh7dULyJ/f8LGlVreuXFPt0SNlF/68fz+lKVczxNbY2rUD8uWTs7cac5HQ123aJPsfBQQAtWqZLg7Sjabfzd9/mzYpzopmBfDateXFrSXQObmZMmUKihcvji1btmDlypU4fPgw3n33XUPG9sYaM0aOdDp0CNiyJfPjbtwARo+W21OnGvdFV6aMHIUhBDBtmn7PTU5OGSnFvFg51avL2jsh5MKsGTl3Ttaa2NjIjsTGZm8va5kAZROA0FD5s3JlmWCYgrl0LNY0SXXuzBXALUHVqvLiNCpK1qiaI0trkgIAlRC69dG2sbGBs7MzgoKCYGtrm+lx6zV/BTMVHR0NT09PREVFwcPDw9ThZGrkSHklXq6c7FPz+p9cCPklsXu3bI4IDTX+B9nBg7JDnKOjHP1UqJBuz7tyRfZRcHaWV5g2nJBAMZcvy9dMcrLsYFu3btrHu3eXNTsffACsWWOaGBctkrVGVavKWkcl9OgBLFkiJ640ZIf67Fy9KmtfVSr5nvD1Ne75Hz+WFzlJScCFC/IihMxfhw4ygRg/Hhg1ytTRpPX4sZwsVK2WF9QBAaaLRZ/vb52/Vrp164aOHTsiT5488PT0zPRGyvj6a8DbWzbfLF+e/vElS2Ri4+Qk13syxRVanTqy2js+Xr8mMU2TVJkyTGyUVqqUTByA9M2ad+4Af/whtzVrhZmCZmbTkyflAq+5JYTp+9tolCwpp3QQIuezRufG6tUysalShYmNJTHnfjcbN8rEpnJl0yY2ejP4lIJmxhxnKM6MZu0lX18hXr5M2X//vhDe3oaf7VUX69fLOLy8dJ8hVzOLbNeuho3tTXXnTsp6UZs2pez/8ku5r359k4WmVa2ajOX333Nf1oULsixHR+Vn5c6JP/+U8fj4yLWujKlWLXnuadOMe17KnatX5f/N3l7/mcYNrUULGdv48aaOhDMUW42BA4GiReUcCL/+mrJ/0CA5CVrlyqbpN5Fa69byavX5c92vVLmmlGEVKZKyEvzIkbKJ6vlzWcMHmLbWRkPJIeGaq926dZWflTsn2rWTHbXv3cu6z5zSbtwA/vlH1uJyBXDLUqKEnJ8pMVE2J5uLqKiU91eHDqaNRV9MbsyYszMQHCy3J0yQL7RNm2TVs62tTCZMPQGerW3KgpozZsg3Z3Y4Usrwvv5adlLUNGv+9puc5K9cOfNY8E4zJHznTjl8PTdSz29jDhwcUiZG1CSUxqBpcmzUCPDxMd55KfdUqrSzFZuLrVvl+7N0actr5mRyY+a6d5cvrCdP5LIMmhW/v/xStqubg27dgAIFZA1Tdp1UExNTho4zuTEcb29ZawPI182sWXL7q6/MYwRNtWryNfPihW7zOWUmMVHO2wOYvr9NapoZi7dvlx2LDU2IlL55XboY/nykPHPsd2OJo6Q0mNyYOTu7lCn1f/pJzqFRokT2E7UZk5OTbCoD5My3WY2/u3ZNfiG5uhp/JMmb5n//k01UERGy466PjxwebA5sbFJqkHIzJPz4cZkg5ckjm2nNRWCgrEExVsfiU6fkRYOTk2V+EVHK/Eznzsl5m0wtLi7lvWmJrykmNxagbVugZs2U+/PnG3fKfF307y8TljNnsr7y0PS3KVeOI6UMLXWzJiBXdHdwMFU06SmxSrimCr9RI/N7PWlmLJ45U84ivmWLXODWEFKvAG7GM1xQFvLlS0nQNfM2mdLOnTLB8fMzn1YCfZjZxwFlRKWS/VlcXIAvvpDz2pibPHnkBziQsm5RRtjfxrh69JAdbd96S64Wb06aNJF9ti5dkp1hc0KTSJtLf5vU2rSR68XFxsr1plq1kl9gH3wgF8d9+lSZ8yQnAytXym02SVk2c+p3k7pJyhyasvXF5MZC1KwpJ7zTdzZgY/riC/lltXs3cPp0xscwuTEuOzs5+uLyZcDcpqHy8kqZZDAnTVMvXgBHjshtc+pvo6FZXHb37pSRj7GxwLp1Kf3UGjWSc0RFROT8PH//LZsx8uQBmjVTLn4yvtT9bnSbXtcwEhLk+oaAZTZJAUxuLIpKZd4ZtJ+fXIUYkMtBZCR1sxRRboaE79snJ6wrUcJ8Jxezt0+bwJw4IZdMKV9e1rj8/bfsr6ap+h83Djh7Vr8vttQrgJtTsyPpr25dOeP73buyRtNU9u6V00cULGi565MxuSFFDRsmf65aBdy6lfax+Hg5PT3AOW5I0vS72bNH1mroQ1N1b461NhlRqeSSE5oE5to1WRNbr57sL3T6tBwoULEiULy4rAnVJHCZiYuTNUEAm6SsgbNzSm2mKUdNaZqk2rZNv/SPpWByQ4qqXFl+2SQny35CqV25Ivd7eMhRPERly8pai/h4WYuhD3NZciGnSpSQk3Du2yeblX7/XXYIdnKSw8dnzgQaNJBrtvXoIVdmjotLW8bmzbK52s9PrthMlk/zejZVv5vkZGDDBrltqU1SAJMbMgDNDLjz56ftNJm6v405N6+R8ahUKU1T+vS7uXtXLgypUsm1nCxd/vxy4r+NG+VChRs2yDmu8uSRc1wtWSJnPs6XT3ZUXrQIePQopUmqSxfzGy1GOaPpVLx3r26Toirt8GHg4UPZJ84cB6/oim8HUlxQEFCpkrzKTL1sBPvbUEZSDwnXta+JZqhs1aoyAbAmrq6yOWDxYuDBA9lkN2QI4O8PvHwpZynv1UvW6GiWd2CTlPWoVEm+plN3mDcmTZNU69ayz5ilYnJDilOpUvre/PRTytwempob9reh1Bo2lE0xt2+nJMDZMbclFwzFzk42Tc2YIYfLh4XJuYsqV5YrNQshZ3suW9bEgZJibG2Bpk3ldteuKf0UjUEIy56VODUmN2QQH34oZyB++BBYulTu4zBwyoiLS0rTki5NU0JYfn+bnFCpZGfjMWPkjMQ3b8rmquyWPCHLM3myXJD41i3g3Xfl5KjGcOqUHNXn4iLnobJkTG7IIOzt5WgPQI4IiY0Frl+X95nc0Ov0GRL+77+yA66z85vdidbPT86X4+9v6khIacWKyfmpKlaUTZMNGsi+MIamGXnXooV8f1kyJjdkMH36yAUcr1yRsxar1bItuVAhU0dG5kbT7+bwYeDZs6yP1dTavPuubM4iskYFC8pOxXXqyDlnGjeWSyIYihApyY2lN0kBZpLczJkzB/7+/nByckKNGjVw7NixTI9NTEzEuHHjUKJECTg5OaFixYrYvn27EaMlXbm5yTWnAGDSJPmTI6UoI/7+st9IcjKwY0fWx74p/W2IvLzk+6FpUzlA4/33gbVrDXOuixflhaiDQ0pNqiUzeXKzatUqDB06FGPGjMGpU6dQsWJFNG3aFA8fPszw+FGjRuG3337D7NmzceHCBXz22Wdo164dTmc23z+Z1P/+J2fc1AxpZJMUZUaXIeEJCXJeGODN6m9Dby5XVzlC7sMP5edop05yTiSlaToSN25sHYuvmjy5mT59Oj799FP07NkTZcuWxdy5c+Hi4oLfM/nvLVu2DN988w1atGiB4sWLo3///mjRogWmmfOiS2+wQoVkvwANJjeUGU3T1LZtsgYnI0eOyP5b+fMDFSoYLzYiU3JwkIuj9u4tm/d79wamT1f2HNYySkrDpMlNQkICTp48iaBUl2A2NjYICgrCP//8k+Fz4uPj4fRaQ7uzszMOHjyY6fHR0dFpbmRcX36Z0hTF5IYyU6eOXNzz8WPg+PGMj9H0t2nUiJPW0ZvF1lZOjPrVV/L+l1/KdcqUWGDzxg25/IeNjZzfxhqY9OPh8ePHSE5ORsGCBdPsL1iwIO7fv5/hc5o2bYrp06fj6tWrUKvV2LVrF9avX4/IyMgMj580aRI8PT21t2LFiin+e1DWSpUCJkwAPvooZd0UotfZ26cMP82saYr9behNplLJwRkTJsj7338vF15Vq3NXrma5hfr15SzY1sDirn1mzZqFkiVLonTp0nBwcMDAgQPRs2dP2GRyGTdy5EhERUVpb7dv3zZyxAQAI0fKalVLnvGSDC+rIeFRUYBmrAH729CbSqUCvvkGmDNH3v/5Z7lUR26WatA0SXXokPv4zIVJk5t8+fLB1tYWDx48SLP/wYMHKJTJeOH8+fMjJCQEsbGxuHXrFi5dugQ3NzcUL148w+MdHR3h4eGR5kZE5qlZM/nz1Cng9crYPXvkFepbb8kJIoneZJ9/DixfLpurli8HPvggZTZ4fURGpsyh07atoiGalEmTGwcHB1StWhWhmoViAKjVaoSGhqJWrVpZPtfJyQlFihRBUlIS1q1bhzZt2hg6XCIysIIFgXfekduvN029ibMSE2WlSxfZpOToKEdUtWwp16TSR0iI/FmzJlCkiOIhmozJm6WGDh2K+fPnY8mSJbh48SL69++P2NhY9OzZEwDQrVs3jBw5Unv80aNHsX79ety4cQMHDhxAs2bNoFarMVyzFDURWbTMhoSzvw1Req1aAdu3y3nF/v5bJv9Pnuj+fGsbJaVh8uSmU6dOmDp1Kr777jtUqlQJYWFh2L59u7aTcURERJrOwq9evcKoUaNQtmxZtGvXDkWKFMHBgwfh5eVlot+AiJSkGRK+a5ec1waQ691cuSJHczRoYLLQiMxSgway2TZvXtkvrX594N697J/35Il8HmB9yY1KCCUGklmO6OhoeHp6Iioqiv1viMyQWg34+Mg1dXbvlsO+f/9dzu1RsyaQySwRRG+8Cxdkzea9e0BAgHz/ZNIdFQCweDHQs6dcwyoszFhR5pw+398mr7khIkrNxgZo3lxua5qm2N+GKHtlywIHDwIlSgDh4XLqjfPnMz/eWpukACY3RGSGUg8JV6tTkhv2tyHKWkCAXFG8fHk5EqpePeDo0fTHvXiRshAnkxsiIiNo3BiwswMuX5ajOR49kmvs1Kxp6siIzF/hwnJF8Zo1gWfPZNNuqkHJAOQyJ/HxQMmS1jlzPJMbIjI7np4ps1l//bX8Wb++XGOHiLKXJ4/slN+okVyPrUWLlGHfALBunfzZvn3K8jjWhMkNEZklTdPUtWvyJ/vbEOnHzU027bZrJ0cefvABsHSpnOxPMwu4NTZJAUxuiMhMaYaEa7C/DZH+HB2B1avlEg3JyfJn166yNqdo0ZRJM60NkxsiMktlygD+/nK7UCHr7BdAZAx2dnI6hcGD5f21a+VPa22SApjcEJGZUqmA99+X240bW++HMJEx2NgAM2YAwcEp+6y1SQoA7EwdABFRZoKDZb+BAQNMHQmR5VOpgDFj5OKzt2/LYeLWijMUExERkdnjDMVERET0xmJyQ0RERFaFyQ0RERFZFSY3REREZFWY3BAREZFVYXJDREREVoXJDREREVkVJjdERERkVZjcEBERkVVhckNERERWhckNERERWRUmN0RERGRVmNwQERGRVWFyQ0RERFaFyQ0RERFZFSY3REREZFWY3BAREZFVYXJDREREVoXJDREREVkVJjdERERkVZjcEBERkVVhckNERERWhckNERERWRUmN0RERGRVmNwQERGRVWFyQ0RERFaFyQ0RERFZFSY3REREZFWY3BAREZFVYXJDREREVoXJDREREVkVJjdERERkVZjcEBERkVVhckNERERWhckNERERWRUmN0RERGRVmNwQERGRVWFyQ0RERFaFyQ0RERFZFSY3REREZFWY3BAREZFVYXJDREREVoXJDREREVkVJjdERERkVZjcEBERkVVhckNERERWhckNERERWRUmN0RERGRVmNwQERGRVWFyQ0RERFaFyQ0RERFZFSY3REREZFWY3BAREZFVMYvkZs6cOfD394eTkxNq1KiBY8eOZXn8zJkzUapUKTg7O6NYsWL44osv8OrVKyNFS0RERObM5MnNqlWrMHToUIwZMwanTp1CxYoV0bRpUzx8+DDD4//44w+MGDECY8aMwcWLF7Fw4UKsWrUK33zzjZEjJyIiInNk8uRm+vTp+PTTT9GzZ0+ULVsWc+fOhYuLC37//fcMjz98+DDq1KmDzp07w9/fH02aNMHHH3+cbW0PERERvRnsTHnyhIQEnDx5EiNHjtTus7GxQVBQEP75558Mn1O7dm0sX74cx44dQ/Xq1XHjxg1s3boVXbt2zfD4+Ph4xMfHa+9HRUUBAKKjoxX8TYiIiMiQNN/bQohsjzVpcvP48WMkJyejYMGCafYXLFgQly5dyvA5nTt3xuPHj1G3bl0IIZCUlITPPvss02apSZMmYezYsen2FytWLPe/ABERERnVixcv4OnpmeUxJk1ucmLv3r2YOHEifvnlF9SoUQPXrl3D4MGDMX78eIwePTrd8SNHjsTQoUO199VqNZ4+fYq8efNCpVIpGlt0dDSKFSuG27dvw8PDQ9GyDV2+Jcdu6eVbcuyWXr4lx27o8i05dksv35JjN2T5Qgi8ePECPj4+2R5r0uQmX758sLW1xYMHD9Lsf/DgAQoVKpThc0aPHo2uXbuiT58+AIDy5csjNjYWffv2xbfffgsbm7TdiBwdHeHo6Jhmn5eXl3K/RAY8PDwM8oIxRvmWHLull2/JsVt6+ZYcu6HLt+TYLb18S47dUOVnV2OjYdIOxQ4ODqhatSpCQ0O1+9RqNUJDQ1GrVq0MnxMXF5cugbG1tQWgWzscERERWTeTN0sNHToU3bt3R7Vq1VC9enXMnDkTsbGx6NmzJwCgW7duKFKkCCZNmgQAaNWqFaZPn47KlStrm6VGjx6NVq1aaZMcIiIienOZPLnp1KkTHj16hO+++w73799HpUqVsH37dm0n44iIiDQ1NaNGjYJKpcKoUaNw9+5d5M+fH61atcKECRNM9StoOTo6YsyYMemawSyhfEuO3dLLt+TYLb18S47d0OVbcuyWXr4lx26M8nWhEmzLISIiIiti8kn8iIiIiJTE5IaIiIisCpMbIiIisipMboiIiMiqMLlRyJw5c+Dv7w8nJyfUqFFD0YU89+/fj1atWsHHxwcqlQohISGKlT1p0iS88847cHd3R4ECBdC2bVtcvnxZsfJ//fVXVKhQQTuZU61atbBt2zbFyk/thx9+gEqlwpAhQxQpLzg4GCqVKs2tdOnSipStcffuXXzyySfImzcvnJ2dUb58eZw4cUKRsv39/dPFr1KpMGDAgFyXnZycjNGjRyMgIADOzs4oUaIExo8fr+hcUy9evMCQIUPg5+cHZ2dn1K5dG8ePH89RWdm9h4QQ+O6771C4cGE4OzsjKCgIV69eVaz89evXo0mTJtqZ0cPCwhQpOzExEV9//TXKly8PV1dX+Pj4oFu3brh3755isQcHB6N06dJwdXWFt7c3goKCcPToUcXKT+2zzz6DSqXCzJkzFSu/R48e6d4DzZo1Uyz2ixcvonXr1vD09ISrqyveeecdREREKFJ+Ru9flUqFH3/8UZHyY2JiMHDgQBQtWhTOzs7axat1lV35Dx48QI8ePeDj4wMXFxc0a9ZMr/dVbjC5UcCqVaswdOhQjBkzBqdOnULFihXRtGlTPHz4UJHyY2NjUbFiRcyZM0eR8lLbt28fBgwYgCNHjmDXrl1ITExEkyZNEBsbq0j5RYsWxQ8//ICTJ0/ixIkTeO+999CmTRv8+++/ipSvcfz4cfz222+oUKGCouWWK1cOkZGR2tvBgwcVK/vZs2eoU6cO7O3tsW3bNly4cAHTpk2Dt7e3IuUfP348Tey7du0CAHz44Ye5Lnvy5Mn49ddf8fPPP+PixYuYPHkypkyZgtmzZ+e6bI0+ffpg165dWLZsGc6dO4cmTZogKCgId+/e1bus7N5DU6ZMwU8//YS5c+fi6NGjcHV1RdOmTfHq1StFyo+NjUXdunUxefJkRWOPi4vDqVOnMHr0aJw6dQrr16/H5cuX0bp1a0XKB4C33noLP//8M86dO4eDBw/C398fTZo0waNHjxQpX2PDhg04cuSITlPr61t+s2bN0rwXVq5cqUjZ169fR926dVG6dGns3bsXZ8+exejRo+Hk5KRI+aljjoyMxO+//w6VSoUOHTooUv7QoUOxfft2LF++HBcvXsSQIUMwcOBAbNq0KdflCyHQtm1b3LhxAxs3bsTp06fh5+eHoKAgxb5fsiQo16pXry4GDBigvZ+cnCx8fHzEpEmTFD8XALFhwwbFy9V4+PChACD27dtnsHN4e3uLBQsWKFbeixcvRMmSJcWuXbtE/fr1xeDBgxUpd8yYMaJixYqKlJWRr7/+WtStW9dg5b9u8ODBokSJEkKtVue6rJYtW4pevXql2de+fXvRpUuXXJcthBBxcXHC1tZWbNmyJc3+KlWqiG+//TZXZb/+HlKr1aJQoULixx9/1O57/vy5cHR0FCtXrsx1+amFh4cLAOL06dN6l5td2RrHjh0TAMStW7cMUn5UVJQAIHbv3q1Y+Xfu3BFFihQR58+fF35+fmLGjBl6l51Z+d27dxdt2rTJUXnZld2pUyfxySef5LrszMp/XZs2bcR7772nWPnlypUT48aNS7Mvp++x18u/fPmyACDOnz+v3ZecnCzy588v5s+fr3f5+mLNTS4lJCTg5MmTCAoK0u6zsbFBUFAQ/vnnHxNGljNRUVEAgDx58ihednJyMv7880/ExsZmurxGTgwYMAAtW7ZM8z9QytWrV+Hj44PixYujS5cuOlc362LTpk2oVq0aPvzwQxQoUACVK1fG/PnzFSs/tYSEBCxfvhy9evVSZMHY2rVrIzQ0FFeuXAEAnDlzBgcPHkTz5s1zXTYAJCUlITk5Od0VsLOzs6K1ZwAQHh6O+/fvp3n9eHp6okaNGhb7HlapVAZZQy8hIQHz5s2Dp6cnKlasqEiZarUaXbt2xbBhw1CuXDlFynzd3r17UaBAAZQqVQr9+/fHkydPcl2mWq3GX3/9hbfeegtNmzZFgQIFUKNGDUW7DaT24MED/PXXX+jdu7diZdauXRubNm3C3bt3IYTAnj17cOXKFTRp0iTXZcfHxwNAmvewjY0NHB0dFX8PZ4TJTS49fvwYycnJ2hmVNQoWLIj79++bKKqcUavVGDJkCOrUqYO3335bsXLPnTsHNzc3ODo64rPPPsOGDRtQtmxZRcr+888/cerUKe3yHEqqUaMGFi9ejO3bt+PXX39FeHg43n33Xbx48UKR8m/cuIFff/0VJUuWxI4dO9C/f38MGjQIS5YsUaT81EJCQvD8+XP06NFDkfJGjBiBjz76CKVLl4a9vT0qV66MIUOGoEuXLoqU7+7ujlq1amH8+PG4d+8ekpOTsXz5cvzzzz+IjIxU5BwamvepNbyHX716ha+//hoff/yxogsWbtmyBW5ubnBycsKMGTOwa9cu5MuXT5GyJ0+eDDs7OwwaNEiR8l7XrFkzLF26FKGhoZg8eTL27duH5s2bIzk5OVflPnz4EDExMfjhhx/QrFkz7Ny5E+3atUP79u2xb98+haJPsWTJEri7u6N9+/aKlTl79myULVsWRYsWhYODA5o1a4Y5c+agXr16uS67dOnS8PX1xciRI/Hs2TMkJCRg8uTJuHPnjuLv4YyYfPkFMh8DBgzA+fPnFc+qS5UqhbCwMERFRWHt2rXo3r079u3bl+sE5/bt2xg8eDB27dqlcxu3PlLXQlSoUAE1atSAn58fVq9ercjVk1qtRrVq1TBx4kQAQOXKlXH+/HnMnTsX3bt3z3X5qS1cuBDNmzfXuz9DZlavXo0VK1bgjz/+QLly5RAWFoYhQ4bAx8dHsdiXLVuGXr16oUiRIrC1tUWVKlXw8ccf4+TJk4qUb20SExPRsWNHCCHw66+/Klp2w4YNERYWhsePH2P+/Pno2LEjjh49igIFCuSq3JMnT2LWrFk4deqUIjWKGfnoo4+02+XLl0eFChVQokQJ7N27F40aNcpxuWq1GgDQpk0bfPHFFwCASpUq4fDhw5g7dy7q16+fu8Bf8/vvv6NLly6KftbNnj0bR44cwaZNm+Dn54f9+/djwIAB8PHxyXVNuL29PdavX4/evXsjT548sLW1RVBQEJo3b26URa5Zc5NL+fLlg62tLR48eJBm/4MHD1CoUCETRaW/gQMHYsuWLdizZw+KFi2qaNkODg4IDAxE1apVMWnSJFSsWBGzZs3KdbknT57Ew4cPUaVKFdjZ2cHOzg779u3DTz/9BDs7u1xfmb3Oy8sLb731Fq5du6ZIeYULF06X4JUpU0bRpi8AuHXrFnbv3o0+ffooVuawYcO0tTfly5dH165d8cUXXyhag1aiRAns27cPMTExuH37No4dO4bExEQUL15csXMA0L5PLfk9rElsbt26hV27dilaawMArq6uCAwMRM2aNbFw4ULY2dlh4cKFuS73wIEDePjwIXx9fbXv4Vu3buHLL7+Ev79/7gPPQPHixZEvX75cv4/z5csHOzs7o7yHDxw4gMuXLyv6Hn758iW++eYbTJ8+Ha1atUKFChUwcOBAdOrUCVOnTlXkHFWrVkVYWBieP3+OyMhIbN++HU+ePFH8PZwRJje55ODggKpVqyI0NFS7T61WIzQ0VNF+JYYihMDAgQOxYcMG/P333wgICDD4OdVqtbY9NjcaNWqEc+fOISwsTHurVq0aunTpgrCwMMVXiY+JicH169dRuHBhRcqrU6dOumH3V65cgZ+fnyLlayxatAgFChRAy5YtFSszLi4uzYK2AGBra6u9mlWSq6srChcujGfPnmHHjh1o06aNouUHBASgUKFCad7D0dHROHr0qEW8hzWJzdWrV7F7927kzZvX4OdU6j3ctWtXnD17Ns172MfHB8OGDcOOHTsUiDS9O3fu4MmTJ7l+Hzs4OOCdd94xynt44cKFqFq1qmL9nAD5uklMTDTK+9jT0xP58+fH1atXceLECcXfwxlhs5QChg4diu7du6NatWqoXr06Zs6cidjYWPTs2VOR8mNiYtJcZYSHhyMsLAx58uSBr69vrsoeMGAA/vjjD2zcuBHu7u7aPgaenp5wdnbOVdkAMHLkSDRv3hy+vr548eIF/vjjD+zdu1eRDy53d/d0fYNcXV2RN29eRfoMffXVV2jVqhX8/Pxw7949jBkzBra2tvj4449zXTYAfPHFF6hduzYmTpyIjh074tixY5g3bx7mzZunSPmA/BJatGgRunfvDjs75d7urVq1woQJE+Dr64ty5crh9OnTmD59Onr16qXYOXbs2AEhBEqVKoVr165h2LBhKF26dI7eV9m9h4YMGYLvv/8eJUuWREBAAEaPHg0fHx+0bdtWkfKfPn2KiIgI7fwzmi/EQoUKZVs7lFXZhQsXxgcffIBTp05hy5YtSE5O1r6H8+TJAwcHh1zFnjdvXkyYMAGtW7dG4cKF8fjxY8yZMwd3797VeUqB7P42rydj9vb2KFSoEEqVKpXr8vPkyYOxY8eiQ4cOKFSoEK5fv47hw4cjMDAQTZs2zXXsw4YNQ6dOnVCvXj00bNgQ27dvx+bNm7F3795cx675bI+OjsaaNWswbdo0ncrUp/z69etj2LBhcHZ2hp+fH/bt24elS5di+vTpipS/Zs0a5M+fH76+vjh37hwGDx6Mtm3bKtJhOVsGH4/1hpg9e7bw9fUVDg4Oonr16uLIkSOKlb1nzx4BIN2te/fuuS47o3IBiEWLFuW6bCGE6NWrl/Dz8xMODg4if/78olGjRmLnzp2KlJ0RJYeCd+rUSRQuXFg4ODiIIkWKiE6dOolr164pUrbG5s2bxdtvvy0cHR1F6dKlxbx58xQtf8eOHQKAuHz5sqLlRkdHi8GDBwtfX1/h5OQkihcvLr799lsRHx+v2DlWrVolihcvLhwcHEShQoXEgAEDxPPnz3NUVnbvIbVaLUaPHi0KFiwoHB0dRaNGjfT6m2VX/qJFizJ8fMyYMbkqWzO0PKPbnj17ch37y5cvRbt27YSPj49wcHAQhQsXFq1btxbHjh1T7G/zOn2HgmdVflxcnGjSpInInz+/sLe3F35+fuLTTz8V9+/fVyz2hQsXisDAQOHk5CQqVqwoQkJCFIld47fffhPOzs45eu1nV35kZKTo0aOH8PHxEU5OTqJUqVJi2rRpOk8XkV35s2bNEkWLFhX29vbC19dXjBo1StHPiKyohDBCzx4iIiIiI2GfGyIiIrIqTG6IiIjIqjC5ISIiIqvC5IaIiIisCpMbIiIisipMboiIiMiqMLkhIiIiq8LkhojeGCqVCiEhIaYOg4gMjMkNESnm0aNH6N+/P3x9feHo6IhChQqhadOmOHTokKlDM4gBAwbgm2++AQBMnDhR0eUniCjnuLYUESmmQ4cOSEhIwJIlS1C8eHE8ePAAoaGhePLkialDM4h//vkH48ePByBXbv7ggw9MHBERAay5ISKFPH/+HAcOHMDkyZPRsGFD+Pn5oXr16hg5ciRat26tPW769OkoX748XF1dUaxYMXz++eeIiYnRPr548WJ4eXlhy5YtKFWqFFxcXPDBBx8gLi4OS5Ysgb+/P7y9vTFo0CAkJydrn+fv74/x48fj448/hqurK4oUKYI5c+ZkGfPt27fRsWNHeHl5IU+ePGjTpg1u3ryp0+8bGxuL8+fPo3bt2lCr1fjnn39Qp04d/f5oRGQQTG6ISBFubm5wc3NDSEgI4uPjMz3OxsYGP/30E/79918sWbIEf//9N4YPH57mmLi4OPz000/4888/sX37duzduxft2rXD1q1bsXXrVixbtgy//fYb1q5dm+Z5P/74IypWrIjTp09jxIgRGDx4MHbt2pVhHImJiWjatCnc3d1x4MABHDp0CG5ubmjWrBkSEhIyjf/zzz+Hl5cXChcujMTERAQEBMDb2xtRUVGoWbMmvLy8EBERocdfjogUZ5TlOYnojbB27Vrh7e0tnJycRO3atcXIkSPFmTNnsnzOmjVrRN68ebX3NStop16BvV+/fsLFxUW8ePFCu69p06aiX79+2vt+fn6iWbNmacru1KmTaN68ufY+ALFhwwYhhBDLli0TpUqVSrMCcnx8vHB2dhY7duzINN5Hjx6J8PBw0bt3b9G7d28RHh4uRo4cKdq1ayfCw8NFeHi4SExMzPJ3JiLDYs0NESmmQ4cOuHfvHjZt2oRmzZph7969qFKlChYvXqw9Zvfu3WjUqBGKFCkCd3d3dO3aFU+ePEFcXJz2GBcXF5QoUUJ7v2DBgvD394ebm1uafQ8fPkxz/lq1aqW7f/HixQxjPXPmDK5duwZ3d3dtrVOePHnw6tUrXL9+PdPfMV++fPD398fhw4fRqVMn+Pv74/jx42jfvj38/f3h7+8POzt2ZyQyJSY3RKQoJycnNG7cGKNHj8bhw4fRo0cPjBkzBgBw8+ZNvP/++6hQoQLWrVuHkydPavvFpG4Ksre3T1OmSqXKcJ9arc5xnDExMahatSrCwsLS3K5cuYLOnTtn+JwVK1ZoE6GLFy+ibdu2cHNzQ2hoKPr27Qs3NzesWLEixzERkTJ4eUFEBlW2bFnt3DInT56EWq3GtGnTYGMjr61Wr16t2LmOHDmS7n6ZMmUyPLZKlSpYtWoVChQoAA8PD53Kb926NWrUqIGNGzdi/fr1WLJkCQ4fPozvv/8eW7duBSBrlIjItFhzQ0SKePLkCd577z0sX74cZ8+eRXh4ONasWYMpU6agTZs2AIDAwEAkJiZi9uzZuHHjBpYtW4a5c+cqFsOhQ4cwZcoUXLlyBXPmzMGaNWswePDgDI/t0qUL8uXLhzZt2uDAgQMIDw/H3r17MWjQINy5cyfD57i7uyMwMBBXr15FUFAQAgMDcfPmTTRs2BCBgYEIDAyEu7u7Yr8PEeUMkxsiUoSbmxtq1KiBGTNmoF69enj77bcxevRofPrpp/j5558BABUrVsT06dMxefJkvP3221ixYgUmTZqkWAxffvklTpw4gcqVK+P777/H9OnT0bRp0wyPdXFxwf79++Hr64v27dujTJky6N27N169epVtTc7evXtRr149AMC+ffu020RkHlRCCGHqIIiIcsvf3x9DhgzBkCFDTB0KEZkYa26IiIjIqjC5ISIiIqvCZikiIiKyKqy5ISIiIqvC5IaIiIisCpMbIiIisipMboiIiMiqMLkhIiIiq8LkhoiIiKwKkxsiIiKyKkxuiIiIyKowuSEiIiKr8n91O7mp59UD7QAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.plot(range(20), leakage[:20] / 20, label=\"pdtp\", color=\"blue\")\n", "plt.plot(range(20), SHAPr_leakage[:20], label=\"shapr\", color=\"green\")\n", "plt.xticks(range(20))\n", "plt.ylim(0.8, 1.3)\n", "plt.xlabel(\"Sample #\")\n", "plt.ylabel(\"Normalized leakage score\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compare the leakage metrics for the 20 first training samples (decision tree)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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97rvsZTPb47cEBERkU5huCEiIiKdwsNSRERExVCRD0tVFDwsRURERFQEhhsiIiLSKQw3REREpFMYboiIiEinMNwQERGRTmG4ISIiIp3CcENERPQfNXDgQHTv3l3bbciO4YaIiIh0CsMNERERlSmlUgmVSqWx+gw3REREOm7Lli2oV68eTE1NYWdnh4CAAGRlZanvnz17NpydnWFnZ4eRI0ciLy9Pfd/atWvRpEkTWFpawsnJCR9++CHS0tLU98fExEChUGDnzp2oX78+TExM8NZbb+HixYvqfVatWgUbGxts374dtWvXhrGxMRITEzX2eg00VpmIiEjHCSGQnZetlec2MzSDQqF4437Jycno27cvZs2ahR49euDp06c4fPgwXl596cCBA3B2dsaBAwdw/fp19OnTBw0aNMCwYcMAAHl5eZg+fTq8vb2RlpaGcePGYeDAgdi1a1eB55kwYQIWLFgAJycnfPnllwgKCsLVq1dhaGgIAMjOzsbMmTPx888/w87ODo6OjjJ/R/4Pww0REVEJZedlwyLcQivPnRmaCXMj8zful5ycjPz8fPTs2RPu7u4AgHr16qnvr1SpEn744Qfo6+vDx8cHXbp0QXR0tDrcDB48WL1vtWrVsHDhQjRt2hSZmZmwsPi/1z5lyhS0b98eALB69WpUrVoV27ZtQ+/evQG8CEk//vgjfH19S//i34CHpYiIiHSYr68v2rVrh3r16uH999/H8uXL8fjxY/X9derUgb6+vvq2s7NzgcNOsbGxCAoKgpubGywtLdG6dWsAKHRYqXnz5uq/29rawtvbG5cvX1ZvMzIyQv369WV/fUXhyA0REVEJmRmaITM0U2vPXRz6+vqIiorCsWPHsG/fPixatAhfffUVTp48CQDqw0YvKRQK9WTfrKwsBAYGIjAwEOvXr4eDgwMSExMRGBiI3NxcSf2ampoW6zCaHBhuiIiISkihUBTr0JC2KRQKtGzZEi1btsTkyZPh7u6Obdu2vfFxV65cwcOHDzFjxgy4uroCAM6cOVPkvidOnICbmxsA4PHjx7h69Spq1aol34uQgOGGiIhIh508eRLR0dHo0KEDHB0dcfLkSdy/fx+1atXCX3/99drHurm5wcjICIsWLcLHH3+MixcvYvr06UXuO23aNNjZ2aFy5cr46quvYG9vr7UFAjnnhoiISIdZWVnh0KFD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LDV37lxMmjQJo0aNQsuWLQEAR44cwccff4wHDx5g7NixsjdJREREVFwlmlA8depUDBgwoMD21atXIywsrNzPyeGEYiIioopHo1cFT05ORosWLQptb9GiBZKTk6WWIyIiIpKV5HDj5eWFTZs2Fdq+ceNG1KhRQ5amiIiIiEpK8pybqVOnok+fPjh06JB6zs3Ro0cRHR1dZOghIiIiKkuSR2569eqFkydPwt7eHhEREYiIiIC9vT1OnTqFHj16aKJHIiIiomKTPKG4ouOEYiIioopHoxOKiYiIiMqzYs+50dPTg0KheO0+CoUC+fn5pW6KiIiIqKSKHW62bdv2yvuOHz+OhQsXQqVSydIUERERUUkVO9x069at0Lb4+HhMnDgRkZGR6NevH6ZNmyZrc0RERERSlWjOzb179zBs2DDUq1cP+fn5iIuLw+rVq+Hu7i53f0RERESSSAo36enp+OKLL+Dl5YVLly4hOjoakZGRqFu3rqb6IyIiIpKk2IelZs2ahZkzZ8LJyQkbNmwo8jAVERERkbYVe50bPT09mJqaIiAgAPr6+q/cb+vWrbI1pwlc54aIiKjikfL5XeyRmwEDBrzxVHAiIiIibSt2uFm1apUG2yAiIiKSB1coJiIiIp3CcENEREQ6heGGiIiIdArDDREREekUhhsiIiLSKQw3REREpFMYboiIiEinMNwQERGRTmG4ISIiIp3CcENEREQ6heGGiIiIdArDDREREekUhhsiIiLSKQw3REREpFMYboiIiEinMNwQERGRTikX4Wbx4sXw8PCAiYkJ/Pz8cOrUqVfum5eXh2nTpqF69eowMTGBr68v9uzZU4bdEhERUXmm9XCzceNGjBs3DlOmTMHZs2fh6+uLwMBApKWlFbn/119/jZ9++gmLFi3C33//jY8//hg9evTAuXPnyrhzIiIiKo8UQgihzQb8/PzQtGlT/PDDDwAAlUoFV1dX/O9//8PEiRML7e/i4oKvvvoKI0eOVG/r1asXTE1NsW7dujc+X0ZGBqytrZGeng4rKyv5XggRERFpjJTPb62O3OTm5iI2NhYBAQHqbXp6eggICMDx48eLfExOTg5MTEwKbDM1NcWRI0deuX9GRkaBLyIiItJdWg03Dx48gFKpROXKlQtsr1y5MlJSUop8TGBgIObOnYtr165BpVIhKioKW7duRXJycpH7h4eH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\n", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(range(20), leakage2[:20], label=\"pdtp\")\n", "plt.plot(range(20), SHAPr_leakage2[:20], label=\"shapr\", color=\"green\")\n", "plt.xticks(range(20))\n", "plt.ylim(0.8, 1.3)\n", "plt.xlabel(\"Sample #\")\n", "plt.ylabel(\"Normalized leakage score\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run a membership inference attack against each model so we can compare attack results with leakage metrics" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.749922815683853\n", "0.5529484408768138\n", "0.6514356282803334\n" ] } ], "source": [ "from art.attacks.inference.membership_inference import MembershipInferenceBlackBox\n", "\n", "attack_train_ratio = 0.5\n", "attack_train_size = int(len(x_train) * attack_train_ratio)\n", "attack_test_size = int(len(x_test) * attack_train_ratio)\n", "\n", "# random forest\n", "bb_attack = MembershipInferenceBlackBox(art_classifier)\n", "\n", "# train attack model\n", "bb_attack.fit(x_train[attack_train_size:], y_train[attack_train_size:],\n", " x_test[attack_test_size:], y_test[attack_test_size:])\n", "\n", "# get inferred values\n", "inferred_train_bb = bb_attack.infer(x_train[:attack_train_size], y_train[:attack_train_size])\n", "inferred_test_bb = bb_attack.infer(x_test[:attack_test_size], y_test[:attack_test_size])\n", "# check accuracy\n", "train_acc = np.sum(inferred_train_bb) / len(inferred_train_bb)\n", "test_acc = 1 - (np.sum(inferred_test_bb) / len(inferred_test_bb))\n", "acc = (train_acc * len(inferred_train_bb) + test_acc * len(inferred_test_bb)) / (len(inferred_train_bb) + len(inferred_test_bb))\n", "print(train_acc)\n", "print(test_acc)\n", "print(acc)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.stem(range(20), SHAPr_leakage[:20], label=\"shapr\", linefmt=\"green\")\n", "plt.stem(range(20), inferred_train_bb[:20], label=\"mem\", linefmt=\"red\")\n", "plt.xticks(range(20))\n", "plt.ylim(0.8, 1.3)\n", "plt.xlabel(\"Sample #\")\n", "plt.ylabel(\"Leakage score or inferred membership status\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6384686631676443\n", "0.35504785427601115\n", "0.4967582587218277\n" ] } ], "source": [ "# decision tree\n", "bb_attack2 = MembershipInferenceBlackBox(art_classifier2)\n", "\n", "# train attack model\n", "bb_attack2.fit(x_train[attack_train_size:], y_train[attack_train_size:],\n", " x_test[attack_test_size:], y_test[attack_test_size:])\n", "\n", "# get inferred values\n", "inferred_train_bb2 = bb_attack2.infer(x_train[:attack_train_size], y_train[:attack_train_size])\n", "inferred_test_bb2 = bb_attack2.infer(x_test[:attack_test_size], y_test[:attack_test_size])\n", "\n", "# check accuracy\n", "train_acc2 = np.sum(inferred_train_bb2) / len(inferred_train_bb2)\n", "test_acc2 = 1 - (np.sum(inferred_test_bb2) / len(inferred_test_bb2))\n", "acc2 = (train_acc2 * len(inferred_train_bb2) + test_acc2 * len(inferred_test_bb2)) / (len(inferred_train_bb2) + len(inferred_test_bb2))\n", "print(train_acc2)\n", "print(test_acc2)\n", "print(acc2)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "inferred_train_bb2_prob = bb_attack2.infer(x_train[:attack_train_size], y_train[:attack_train_size], probabilities=True)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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hIkTJ0qeIBEREZEYomcovnXrlrq42bVrF/r374+AgAB4enqidevWkidIREREJIbonptq1aohLS0NABATEwN/f38AgCAIlf5MKSIiIjJ8ontuQkJCMGjQINSrVw/3799HUFAQACApKQleXl6SJ0hEREQkhujiZtGiRahduzZSU1Mxf/58WFtbAwAyMjIwevRoyRMkIiIiEkNUcVNYWIgPPvgA06ZNQ+3atTUemzBhgqSJEREREWlD1JgbExMTbNu2Ta5ciIiIiHQmekBx7969sWPHDhlSISIiItKd6DE39erVw6xZs3Do0CG0aNECVlZWGo+PHz9esuSIiIiIxCrThTOf9fxYG41gCgWuXr2qc1Jy4oUziYiI9I/kF858VkpKitaJEREREclN6wtnFhQU4MKFCygqKpIyHyIiIiKdiC5u8vLyMGLECFhaWqJx48ZITU0FAIwbNw5ffvml5AkSERERiSG6uImMjMTp06eRkJAAc3Nzdbu/v7/G1cKJiIiIKoLoMTc7duzAli1b0KZNGygUCnV748aNceXKFUmTIyIiIhJLdM/N3bt34eTkVKI9NzdXo9ghIiIiqgiii5uWLVviv//9r/p+cUGzevVqtG3bVrrMiIiIiLQg+rDU3LlzERQUhPPnz6OoqAhLlizB+fPncfjwYezfv1+OHImIiIjKTHTPzZtvvolTp06hqKgIPj4+2Lt3L5ycnHDkyBG0aNFCjhyJiIiIykz0DMX6jjMUExER6R9ZZygGAKVSie3btyM5ORkA0KhRI/Tq1QtVqmgVjoiIiEgyoquRv//+G8HBwbh16xYaNGgAAIiKioKjoyN+++03NGnSRPIkiYiIiMpK9JibkSNHonHjxrhx4wYSExORmJiItLQ0+Pr64v3335cjRyIiIqIyE91zc+rUKZw4cQLVqlVTt1WrVg1ffPEF3njjDUmTIyIiIhJLdM9N/fr1cfv27RLtd+7cgZeXlyRJEREREWmrTMVNdna2+jZv3jyMHz8eW7duxY0bN3Djxg1s3boV4eHhiIqKkjtfIiIiopcq06ngRkZGGpdWKH5Kcduz95VKpRx5SoanghMREekfyU8Fj4+PlyQxIiIiIrmVqbjp1KmT3HkQERERSUKrWfeePHmCM2fO4M6dO1CpVBqPBQcHS5IYERERkTZEFzcxMTF47733cO/evRKP6cOYGyIiIjJsok8FHzduHPr164eMjAyoVCqNGwsbIiIiqmiii5vbt28jIiICzs7OcuRDREREpBPRxU3fvn2RkJAgQypEREREuivTPDfPysvLQ79+/eDo6AgfHx+YmJhoPD5+/HhJE5Qa57khIiLSP5LPc/OszZs3Y+/evTA3N0dCQoLG5H4KhaLSFzdERERk2EQXN1OnTsXMmTMxZcoUGBmJPqpFREREJCvR1UlBQQEGDBjAwoaIiIgqJdEVSmhoKLZs2SJHLkREREQ6E31YSqlUYv78+dizZw98fX1LDCheuHChZMkRERERiSW6uDl79iyaNWsGADh37pzGY88OLiYiIiKqCKKLG14hnIiIiCozrUcFX758GXv27MHjx48BACKnyyEiIiKSheji5v79++jatSvq16+P7t27IyMjAwAwYsQIfPzxx5InSERERCSG6OJmwoQJMDExQWpqKiwtLdXtAwYMQExMjKTJEREREYkleszN3r17sWfPHri5uWm016tXD9evX5csMSIiIiJtiO65yc3N1eixKfbgwQOYmZmJinXgwAH07NkTrq6uUCgU2LFjx0uXz8jIwKBBg1C/fn0YGRkhPDxc1OsRERGR4RNd3HTo0AEbNmxQ31coFFCpVJg/fz66dOkiKlZubi78/PywYsWKMi2fn58PR0dHfPbZZ/Dz8xP1WkRERPR6EH1Yav78+ejatStOnDiBgoICTJo0CX///TcePHiAQ4cOiYoVFBSEoKCgMi/v6emJJUuWAADWrl0r6rWIiIjo9SC6uGnSpAkuXryI5cuXw8bGBjk5OQgJCcGYMWPg4uIiR446yc/PR35+vvp+dnZ2BWZDREREchNd3ACAnZ0dpk6dKnUuspg3bx5mzpxZ0WkQERFROdGquHny5AnOnDmDO3fuQKVSaTwWHBwsSWJSiYyMREREhPp+dnY2atWqVYEZERERkZxEFzcxMTF47733cO/evRKPKRQKKJVKSRKTipmZmeizuIiIiEh/iT5baty4cejXrx8yMjKgUqk0bpWtsCEiIqLXj+iem9u3byMiIgLOzs46v3hOTg4uX76svp+SkoJTp07B3t4e7u7uiIyMRHp6usap56dOnVI/9+7duzh16hRMTU3RqFEjnfMhIiIi/Se6uOnbty8SEhJQt25dnV/8xIkTGnPjFI+NCQ0Nxbp165CRkYHU1FSN5zRr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v/8NADh69CjatGkjXXZEREREIok+LBUQEKAec/OsQ4cOlfmSC0RERERyEV3ctGnTBgEBAeqzpADgwIEDCAoKwvTp0yVNjoiIiEgs0cXN6tWr4e7ujp49eyI/Px/x8fHo0aMHZs+ejQkTJsiRIxEREVGZiS5ujIyM8NNPP8HExARvvfUWgoODMW/ePISFhcmRHxEREZEoZRpQfObMmRJtM2bMwMCBA/Huu++iY8eO6mV8fX2lzZCIiIhIhDIVN02bNoVCodCYpK/4/rfffotVq1ZBEAQoFAoolUrZkiUiIiJ6lTIVNykpKXLnQURERCSJMhU3Hh4ecudBREREJAnRk/gVO3/+PFJTU1FQUKDRHhwcrHNSRERERNoSXdxcvXoVffr0wdmzZzXG4SgUCgDgmBsiIiKqUKJPBQ8LC0Pt2rVx584dWFpa4u+//8aBAwfQsmVLJCQkyJAiERERUdmJ7rk5cuQI/vjjD1SvXh1GRkYwMjLCm2++iXnz5mH8+PFISkqSI08iIiKiMhHdc6NUKmFjYwMAqF69Om7evAng6aDjCxcuSJsdERERkUiie26aNGmC06dPo3bt2mjdujXmz58PU1NTrFq1CnXq1JEjRyIiIqIyE13cfPbZZ8jNzQUAzJo1C//617/QoUMHODg4YMuWLZInSERERCSG6OImMDBQ/X8vLy/8888/ePDgAapVq6Y+Y4qIiIiooogec1Ps8uXL2LNnDx4/fgx7e3spcyIiIiLSmuji5v79++jatSvq16+P7t27IyMjAwAwYsQIfPzxx5InSERERCSG6OJmwoQJMDExQWpqKiwtLdXtAwYMQExMjKTJEREREYkleszN3r17sWfPHri5uWm016tXD9evX5csMSIiIiJtiO65yc3N1eixKfbgwQOYmZlJkhQRERGRtkQXNx06dMCGDRvU9xUKBVQqFebPn48uXbpImhwRERGRWKIPS82fPx9du3bFiRMnUFBQgEmTJuHvv//GgwcPcOjQITlyJCIiIioz0T03TZo0wcWLF/Hmm2+iV69eyM3NRUhICJKSklC3bl05ciQiIiIqM9E9NwBgZ2eHqVOnarTduHED77//PlatWiVJYkRERETa0HoSv+fdv38fa9askSocERERkVYkK26IiIiIKgMWN0RERGRQWNwQERGRQSnzgOKQkJCXPp6ZmalrLkREREQ6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\n", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.stem(range(20), SHAPr_leakage2[:20], label=\"shapr\", linefmt=\"green\", use_line_collection=True)\n", "plt.stem(range(20), inferred_train_bb2[:20], label=\"mem\", linefmt=\"red\", use_line_collection=True)\n", "plt.xticks(range(20))\n", "plt.ylim(0.8, 1.3)\n", "plt.xlabel(\"Sample #\")\n", "plt.ylabel(\"Leakage score or inferred membership status\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check if there is a correlation between each of the metric types:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PearsonRResult(statistic=0.0035381536213372118, pvalue=0.9721301309040974)\n" ] } ], "source": [ "import scipy\n", "\n", "print(scipy.stats.pearsonr(SHAPr_leakage[:num_samples], leakage))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.6" } }, "nbformat": 4, "nbformat_minor": 4 }