Skip to content

Instantly share code, notes, and snippets.

@pybokeh
Created November 26, 2019 17:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pybokeh/7f0e9cb399e3b4217b721860a9f02552 to your computer and use it in GitHub Desktop.
Save pybokeh/7f0e9cb399e3b4217b721860a9f02552 to your computer and use it in GitHub Desktop.
/weibull/Weibull_Analysis.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Weibull Analysis for Failure Forecasting"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Created by Daniel Kim - Honda Market Quality\nJune 30, 2011"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<a name=\"sections\"></a>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Sections"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "- [Part 1 - Weibull analysis with complete failure data](#part1)\n- [Part 2 - Weibull analysis with failure data and unfailed data (suspensions)](#part2)\n- [Part 3 - Weibull analysis with Maximum Likelihood Estimation (MLE)](#MLE)"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Weibull analysis is the process of modelling data that we suspect follows a Weibull distribution. &nbsp;Most failures or \"life data\" follow the Weibull distribution due to its versatile nature and therefore it is probably the most used distribution to model such failures. It has many applications, but I use it to forecast warranty part failures.<br><br>To determine if a set of data follows a Weibull distribution, the graphical method is the most popular method. The graphical method entails graphing the failure times against a probability scale with a model that best fits the data using linear regression. In Part 1 of a 3-part series, I will cover how to perform Weibull analysis when we have complete failure data. That is, we waited for all of our units in the test or in the field to fail. &nbsp;Part 2 in the series covers how to do Weibull analysis when we have data that also includes data for unfailed units or units that failed due to a different reason. &nbsp;In Part 3, I will cover how to estimate the Weibull parameters using MLE method. &nbsp;To be honest, I do not have a strong enough statistics and mathematics background to go into details and explain the theory on which method to use, although the general consensus is to use rank regression method if you have small-ish sample sizes (< 30). If you have very large quantities of suspensions, MLE method seems to be the preferred method.<br><br>I created this IPython notebook as a benefit to me as I will very soon have to train fellow data analysts at my place of occupation. &nbsp;I think this notebook format helps me organize my thoughts as I am explaining things and it also allows for me to interact with the data and charts as I go along. Therefore, I feel the IPython notebook format provides a pedagogic benefit to me and hopefully for others as well. &nbsp;This Weibull analysis series assumes you already have Python programming experience and have some statistics background."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<a name=\"part1\"></a>\n<br>\n<br>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Part 1 - Weibull analysis with complete failure data"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "[[back to top](#sections)]"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### The Weibull distribution is a statistical distribution (Normal distribution being the most known) that is commonly used to model life data or failure times of various types of failures. The 2-parameter version of the Weibull distribution is the most widely-used version of the Weibull distribution."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<h3><strong>2-parameter Weibull Cumulative Distribution Function (CDF):</strong></h3><center>$\\huge{F(x) = 1 - e^{(\\frac{x}{\\lambda})^k}}$,</center><br>\n<center><p>where k is the shape parameter and $\\lambda$ is the scale parameter.</p></center>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center><h3>Let's say we were to model car battery failures and we found the failures follow a Weibull distribution. &nbsp;It allows us to answer questions such as \"What percent of the batteries will have failed after 200 days?\"</h3></center>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<p>We will plot data points (failure times) and try to fit them onto a straight line in order to estimate our 2 Weibull parameters (k and $\\lambda$). Since the Weibull CDF is a logarithmic function, if we attempt to plot the data ploints on 1-1 scale x and y-axis, the data will not fall onto a straight line. To address this, we need to apply linear transformation to the Weibull CDF equation by using laws of exponents and laws of logarithms:</p>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center>$\\large{F(x) = 1 - e^{(\\frac{x}{\\lambda})^k}}$</center><br><br>\n<center>$1-F(x)=e^{-(\\frac{x}{\\lambda})^k}$</center><br><br>\n<center>$ln(1-F(x))=-(\\frac{x}{\\lambda})^k$</center><br><br>\n<center>$ln\\left(\\frac{1}{1-F(x)}\\right)=(\\frac{x}{\\lambda})^k$</center><br><br>\n<center>$ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)=k{\\space}ln(\\frac{x}{\\lambda})$</center><br><br>\n<center>$\\underbrace{ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)}=\\underbrace{k{\\space}lnx}-\\underbrace{k{\\space}ln\\lambda}$</center><br>\n<center>$\\space\\space\\space y\\space\\space\\space\\space\\space\\space\\space\\space\\space\\space=\\space mx\\space+\\space\\space b$</center><br>\n<center>(\"linearized\" Weibull CDF)</center><br><br>\nWith the Weibull CDF in its linear form, <strong>y</strong> is then equal to $ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right){\\space}$,&nbsp;the slope <strong>m</strong> equals k,&nbsp;<strong>x</strong> equals ln(x), and the y-intercept <strong>b</strong> equals $-k{\\space}ln\\lambda\\space\\space$.<br><br>\nSince<br><br>$b=-k{\\space}ln\\lambda{\\space}{\\space}$&nbsp;&nbsp;, then solving for $\\lambda$ :<br><br>\n$\\large{\\lambda=e^{-(\\frac{b}{k})}}$<br><br>\n<p>So now that we know how to estimate the 2 Weibull parameters ($\\lambda$ and k), we are almost ready to create a Weibull probability plot later on.<br><br>A Weibull probability plot is simply plotting ln(x) versus $ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)$<br><br>\nBut what is F(x)? F(x) is based on calcuations for the \"Median Ranks\". There are different ways to calculate median ranks. But for Weibull distribution, it is suggested to use Bernard's formula for median ranks:</p><br>\n<center>$\\huge{\\frac{(rank - 0.3)}{(n + 0.4)}}$</center><br>\n<center>where rank is the rank of the data from smallest to largest and n equals the total number of data points</center><br><br>\nNow we are ready to make a table with the necessary calcuations to plot a Weibull plot. Let's say we have 10 failures with failure times measured in minutes:<br>\n<strong>150, 85, 135, 150, 240, 190, 240, 200, 250, 200</strong><br>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### The following is the table containing necessary calculations for our x and y cordinates of the data that we are going to use to create the Weibull 1-1 scale probability plot:"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<table border=\"1\">\n <col width=\"70\">\n <col width=\"100\">\n <col width=\"70\">\n <col width=\"80\">\n <col width=\"130\">\n<tr>\n<th style=\"text-align: center;\">Data<br>$x$</th>\n<th style=\"text-align: center;\">x<br>$ln(x)$</th>\n<th style=\"text-align: center;\">Rank</th>\n<th style=\"text-align: center;\">Median Rank F(x)<br>$\\frac{(rank - 0.3)}{(n + 0.4)}$</th>\n <th style=\"text-align: center;\">y<br>$\\small{ln(ln(\\frac{1}{1-F(x)}))}$</th>\n</tr>\n<tr>\n<td>85</td>\n<td>4.44265126</td>\n<td style=\"text-align: center;\">1</td>\n<td>0.06730769</td>\n<td>-2.66384309</td>\n</tr>\n<tr>\n<td>135</td>\n<td>4.90527478</td>\n<td style=\"text-align: center;\">2</td>\n<td>0.16346154</td>\n<td>-1.72326315</td>\n</tr>\n<tr>\n<td>150</td>\n<td>5.01063529</td>\n<td style=\"text-align: center;\">3</td>\n<td>0.25961538</td>\n<td>-1.20202312</td>\n</tr>\n<tr>\n<td>150</td>\n<td>5.01063529</td>\n<td style=\"text-align: center;\">4</td>\n<td>0.35576923</td>\n<td>-0.82166652</td>\n</tr>\n<tr>\n<td>190</td>\n<td>5.24702407</td>\n<td style=\"text-align: center;\">5</td>\n<td>0.45192308</td>\n<td>-0.50859539</td>\n</tr>\n<tr>\n<td>200</td>\n<td>5.29831737</td>\n<td style=\"text-align: center;\">6</td>\n<td>0.54807692</td>\n<td>-0.23036544</td>\n</tr>\n<tr>\n<td>200</td>\n<td>5.29831737</td>\n<td style=\"text-align: center;\">7</td>\n<td>0.64423077</td>\n<td>0.03292496</td>\n</tr>\n<tr>\n<td>240</td>\n<td>5.48063892</td>\n<td style=\"text-align: center;\">8</td>\n<td>0.74038462</td>\n<td>0.29903293</td>\n</tr>\n<tr>\n<td>240</td>\n<td>5.48063892</td>\n<td style=\"text-align: center;\">9</td>\n<td>0.83653846</td>\n<td>0.59397722</td>\n</tr>\n<tr>\n<td>250</td>\n<td>5.52146092</td>\n<td style=\"text-align: center;\">10</td>\n<td>0.93269231</td>\n<td>0.99268893</td>\n</tr>\n</table>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "**NOTE:** We have to sort our failure times from smallest to greatest when performing the calculations."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### With Python, Numpy/Scipy numerical/scientific packages, and MATPLOTLIB plotting package, we can generate the calculations and create the plot easily"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "%matplotlib inline\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom numpy import log as ln\n\ndata = np.array([85,135,150,150,190,200,200,240,240,250])\ny = ln(data)\nrank = np.arange(1,data.size+1) # ranks = {1, 2, 3, ... 10}\nmedian_rank = (rank - 0.3)/(rank.size + 0.4)\nx = ln(-ln(1 - median_rank))\n\nplt.scatter(x,y)\nplt.title(\"Weibull Probability Plot of Failure Times\", weight='bold')\nplt.xlabel(r'$ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)$', fontsize=16)\nplt.ylabel('ln(x)', fontsize=16)\nplt.grid()\nplt.show()\n\nprint(\"x and y coordinates of the Weibull probability plot:\")\nfor value in zip(x,y):\n print(\"( \" + str(value[0]) + \" , \" + str(value[1]) + \" )\")",
"execution_count": 1,
"outputs": [
{
"data": {
"image/png": "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\nCnPRMDOzwv4/nywFSAkRLtAAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f54dc36a7f0>"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "x and y coordinates of the Weibull probability plot:\n( -2.66384308539 , 4.44265125649 )\n( -1.72326315028 , 4.90527477844 )\n( -1.20202311525 , 5.0106352941 )\n( -0.821666515129 , 5.0106352941 )\n( -0.508595393734 , 5.24702407216 )\n( -0.230365444733 , 5.29831736655 )\n( 0.0329249619143 , 5.29831736655 )\n( 0.299032931862 , 5.48063892334 )\n( 0.59397721666 , 5.48063892334 )\n( 0.99268892949 , 5.52146091786 )\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Also note above, we are plotting the failure times along the y-axis, instead of the x-axis because according to prominent Weibull analysts, we want to do regression analysis on the x direction, instead of the y direction. This is called \"X on Y\" median rank regression."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### With least-squares [linear regression](http://austingwalters.com/introduction-to-linear-regression/) method, let's generate a line that will \"fit\" through the data points as best as possible. From this \"ideal\" line, we are going to use the line's slope and y-intercept to calcuate the shape and scale parameter of the ideal Weibull distribution:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "import scipy.stats as stats # scipy is a statistical package for Python\nimport math\n\n# Use Scipy's stats package to perform least-squares fit\nslope, intercept, r_value, p_value, std_err = stats.linregress(x,y)\n\nline = slope*x+intercept\nplt.scatter(x,y)\nplt.plot(x,line)\nplt.title(\"Linear Regression - Least Squares Method\", weight='bold')\nplt.grid()\nplt.show()\n\n# Since we plot failure times on the y-axis, the actual slope is inverted\nshape = 1/slope\n# Since we plot failure times on the y-axis, we want the x-intercept, not the y-intercept\n# x-intercept is equal to the negative y-intercept divided by the slope/shape parameter\n# Basically you are solving for x: 0 = mx + b, equation of the line where y = 0\nx_intercept = - intercept / shape\n\nprint(\"r^2 value:\", r_value**2)\nprint(\"slope/shape parameter:\", shape)\nscale = math.exp(-x_intercept/slope)\nprint(\"scale parameter:\", scale)",
"execution_count": 2,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAEKCAYAAAD3tSVSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucVHX9x/HXBwRbRUBq0TLd9RJSKSKKl0yBAksz07wg\nP28UpqWZ90upYXlNf1qa4iU30Yr1Rpq3vKBspP4qEpCbXBRnVVKcVAR0kYX9/v74npVxnN097FzO\nd2fez8djHrsz5+w57/nOmc+c+czZM+acQ0REylO3pAOIiEjxqMiLiJQxFXkRkTKmIi8iUsZU5EVE\nypiKvIhIGauoIm9mx5tZi5k9nXSWSmJmKTNbZ2b7JZ1FKk+0/bUUcvszs4nRMq8t1DKLpeyKfMYD\nenCOyfOB3wD3ljhWh8ysJsrdelltZkvM7LKksxXAbfhxfz3JEEk+MTPW/fMO5tvWzP5sZsvMrMnM\nXjOzv5rZtqXKWipmNj5je781a9rijGmxinM7O3EuuhRSMZZZFBslHaAI2hx859x0YHpp43ySmfVw\nzjW3MdkBNwObAEcB55tZyjn3u4Ty5M05d2mxlr2Bknxixl33A8BOwFPAYuDzwH7AZ4FXipauA0Xe\nRhxwlJmd5ZxbaWajgO3Z8MfKCh+t6yu7Pfn2ZL/Sm9mw6PorZvbTaO9pmZmdnfE33c3sXDObb2ar\nzGyemf0gY/pIM5thZsvNbE30TuLiHOv8u5lNMLMVwE87iHq+c+57QD1+w90lY3lbm9ldZva6mb1r\nZo+b2Zczpn/RzP5hZu+b2cNmdn20/j/nuM/jzey/+BcVzOyrZtZgZu+Y2VIzqzOzftG0Hmb2OzN7\nI3qX8aqZPZix3suj21ZH8zxmZptH0z72dtnMNjGzq83sJTNbaWYzzeyYjGW17uHda2Z3RPMsNrOv\nx36wO8HMvmxmj0TbwFtmdp+ZbZ0xfVI07qvNbIWZPWVmO2VMPz26T6vNLG1mU81sgJndDhwfzXZx\ndN9+n2P9mwM7A8udc/s7505xzn0H6A/MyJjv1GgPP21m51jWu9foMWwxs+Oi662P+ZLo+kZm9mT0\nOH0YbUd/MbPPZ6yjdS/6tOjvXoxu36aD7S/XGHyhg6F/F9gUOC66/iPgA+DDrPFp87loZscDv8e/\nMAzPvL8ZhpjZ9OhvHzGzPhnL3s/MpkX3aamZ/dHMPpsx/atmNif62zuAT9FVXlScc2V1we/trAMO\n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\nOVnU3vQAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f54b7a4a3c8>"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "r^2 value: 0.953902860399\nslope/shape parameter: 3.41595091809\nscale parameter: 204.93601772144896\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### From the least-squares fit method above, we now have the Weibull shape and scale parameter. Next we can plot the actual failure times versus the \"ideal\" Weibull distribution. We will plot on a more useful log-log scale where the x axis is the failure time and y axis is the cumulative distribuion function."
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "import numpy as np\nfrom numpy import random\nfrom matplotlib.ticker import FuncFormatter\n\n# I'm used to the ln notation for the natural log\nfrom numpy import log as ln\n\n# Since we are going to plot failure times on log scale, we don't need to take the log of the failure times\nx = data\nrank = np.arange(1,x.size+1) # ranks = {1, 2, 3, ... 10}\nmedian_rank = (rank - 0.3)/(rank.size + 0.4)\ny = ln(-ln(1 - median_rank))\n\n# Generate 1000 numbers following a Weibull distribution that we think ideally fits our data using the shape and scale parameter\nx_ideal = scale *random.weibull(shape, size=100)\nx_ideal.sort()\nF = 1 - np.exp( -(x_ideal/scale)**shape )\ny_ideal = ln(-ln(1 - F))\n\n# Weibull plot\nfig1 = plt.figure()\nfig1.set_size_inches(11,9)\nax = plt.subplot(111)\nplt.semilogx(x, y, \"bs\")\nplt.semilogx(x_ideal, y_ideal, 'r-', label=\"beta= %5G\\neta = %.5G\" % (shape, scale) )\nplt.title(\"Weibull Probability Plot on Log Scale\", weight=\"bold\")\nplt.xlabel('x (time)', weight=\"bold\")\nplt.ylabel('Cumulative Distribution Function', weight=\"bold\")\nplt.legend(loc='lower right')\n\n# Generate ticks\ndef weibull_CDF(y, pos):\n return \"%G %%\" % (100*(1-np.exp(-np.exp(y))))\n\nformatter = FuncFormatter(weibull_CDF)\nax.yaxis.set_major_formatter(formatter)\n\nyt_F = np.array([ 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5,\n 0.6, 0.7, 0.8, 0.9, 0.95, 0.99])\nyt_lnF = ln( -ln(1-yt_F))\nplt.yticks(yt_lnF)\nax.yaxis.grid()\nax.xaxis.grid(which='both')\nplt.show()",
"execution_count": 4,
"outputs": [
{
"data": {
"image/png": "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\n+Hnr1q107dr1kDk++uijvPXWW9xwww0AfP311zRq1OiAZRo1asSOHTsA2LFjB7m5uUyaNOmQsY89\n9liaN2/OhAkT2LdvH/PmzeOll17im2++qXIsn0T9ZCoRERGRwD744AM++eQTmjZtCiTOJhYWFvKj\nH/2o3HXmzp3LmDFjWLduHYWFhezatYuTTqrwqe7VNnPmTHJzc1mwYEFxjg0bNmT79u0HLPfVV1+R\nlZUFwOjRo+nbty+tW7c+ZPxatWoxc+ZMBg4cyPjx4+ncuTOXXnopdevWrXIsrwTtHfDphee9MyIi\nIunM539nX3vtNWvfvn2579922212xRVXFE/v3r3b6tevb3/961+toKDAzMwuuOACu/nmm8tcf8mS\nJdawYUPLyso64LV/3iuvvFLutufOnWvNmze3f/3rXwfM37lzp9WtW/eAHtUrrriiuEe1Y8eOdsQR\nR1iLFi2sRYsWVrNmTWvWrJnl5eUdeoeYWdeuXW3KlClJiVWR8j4XJKFHVWdURUREJO116dKFrKws\n8vLyGDx4MLVr12bNmjXs2rWLzp07c+SRR/KPf/wDM8M5x549e9izZw+HH344NWrUYO7cucybN48T\nTzyxzPinn3568SX5qli4cCF9+vRh5syZdOrU6YD36tevz89//nNuueUWpkyZwttvv82sWbOK+10X\nLlzI3r17i5fv3Lkz9957b7k9pitXrqR9+/YUFBTwwAMPsHnzZq688spqxfKFelQlkLj2P/k6LvWo\nhh9TPaqZIa77PK7jKkuNGjWYPXs2y5cv5+ijj6Z58+YMGDCg+NL6xRdfjJnRrFkzOnfuTMOGDZk4\ncSIXX3wxTZs2ZcaMGZx//vlJz2vs2LFs376dXr16kZWVRaNGjTjnnHOK3588eTLffPMNzZs3p0+f\nPjz00EN06NABgOzsbJo3b178qlWrFk2aNKF+/foA3HXXXQfEmjZtGi1btqRFixYsWrSI+fPnU7t2\n7UrF8pXOqIqIiEgstGjRgunTp5f5XtOmTQ/6otT111/P9ddfn9KcDnVT/ezsbJ577rlKxdq4ceMB\n0yNGjDhgOi8vj7y8vGrF8pVLtBDEg3PO4jQeERERn5T3THfJbOV9LormuyCxdelfRERERLykQlUC\niWv/k6/jUo9q+DHVo5oZ4rrP4zouyRwqVEVERETES+pRFRERkUpRj6qUJZU9qvrWv4iIiFRK27Zt\ncS5Q3SEx1LZt25TF1qV/CSSu/U++jks9quHHVI9qZojrPk/2uPLz85PyJMlFixZF8gTLVG83FfGT\nFTNInEOtm5+fn9TPWUkqVEVEPLN8+fKoUxAR8YJ6VEVEPDN69GhGjx4ddRoiIoHoPqoSOV0uC5cu\n/YcfM4pL/xK+uP5d+TouHcvCj5muxzIVqhLI448/HnUKKeHruKLKK9XbTUX8ZMUMEqe666ay30vK\n5uvvfFC+jkvHsvBjRnEsS4bYXfqPOgcRERERSQh66T9WhaqIiIiIxIcu/YuIiIiIl1SoioiIiIiX\nVKiKiIiIiJdUqIqIiIiIl1SoioiIiIiXYl+oOueOds5Ndc49E3UuIiLV5Zw73zn3iHPuaefc/406\nHxGR6nDOHeece9A592fn3FWHXD5Tbk/lnHvGzC6JOg8RkSCcc02A35vZgKhzERGpLuecA2aY2aUV\nLZd2Z1Sdc390zn3mnHun1Pyezrk1zrl1zrnhUeUnIlIZAY5lo4DJ4WQpIlKx6hzLnHPnAn8HZhwq\nftoVqsBjwE9LznDO1QDuL5p/PPAL59xxpdYL9GQEEZEkq/KxzDk3DphjZsvDTFREpAJVPpaZ2Swz\n6wX0O1TwtCtUzewVYFup2V2Af5vZB2a2l0SFfj6Ac66pc+5BoKPOtIqIL6pxLBsEnAVc5Jy7JtRk\nRUTKUY1j2ZnOuYnOuYeBRYeKXyvZCUfkKOCjEtMfk9hJmNlW4LookhIRqaKKjmX3AfdFkZSISBVV\ndCx7CXipsoHS7oyqiIiIiGSGuBSqnwBtSkx/p2ieiEg60bFMROIgaceydC1UHQd+OepN4BjnXFvn\nXB3gMuBvkWQmIlJ5OpaJSByk7FiWdoWqc2468CrQ3jn3oXOuv5kVAIOAecB7JO7LtTrKPEVEKqJj\nmYjEQaqPZRlzw38RERERSS9pd0ZVRERERDKDClURERER8ZIKVRERERHxkgpVEREREfGSClURERER\n8ZIKVRERERHxkgpVEREREfGSClURkRA45+o65z51zt1VNH22c+5W51ybEsu875zbnsRtNnXOfeOc\nG5ysmCIiYVKhKiISjj7AkcAjRdPnALcAOSWWGQRcmawNmtlW4C/AkGTFFBEJkwpVEZFqcs5d55wr\ndM5d45xrVHTGdKVzrnYZi/8CWG1m7zvnrgSuL5q/2DlXUPTz/cCfimL3K4o93Tn3nnPuP865S51z\nzzrndjrn/uqcq1G07KnOuVedczucc2udc5eV2O4soK1z7pTU7AURkdRRoSoiUk1m9iCwABgPTAUO\nB/qa2d6SyxUVlP8HeLNo1ksknoENMAbYX1iWfKb1/p+7Ag8AzYCngc1F658P/Mw5lw3MBhoDY4F8\n4Enn3ElF678JOOCMYKMVEQmfClURkWCuBmoCvYHxZrasjGUOB+oDnwKYWT7w76L3FprZsxXE/5OZ\nTQY2AQXAUODPRe8dDZwKZAPHAXcCPyFRmHYvWubToj9zqjguEZHI1Yo6ARGRNNcEqFv0c8tDLOtK\n/GzlLnWgr4r+3AvsMrN9zrn9sWqWWO4JYFqJ6fwytikiklZ0RlVEpJqcc7VI9JRuIXF5/lfOubPL\nWPRzYBfQqsS8bSSKyIudc70CpPEasBXoCXQATgRGAEcVvb9/mx8E2IaISCRUqIqIVN/NJArD3wA3\nAGuBR5xzjUouZGaFJArKziVmPwWsBq4D/lBy8VI/l9W3WvyemW0jcQeB9cBdwEhgJ/89o9q5aNmX\nqzw6EZGIObPKXn0SEZHqcs71J/GFq/8xs40hbvdJoKuZfTesbYqIJIvOqIqIhOMpEl+IGhDWBovu\nCHABB56xFRFJGzqjKiIiIiJe0hlVEREREfGSClURERER8ZIKVRERERHxkgpVEREREfGSClURERER\n8dL/B3h0J9OY9PIlAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f54ab4fbd68>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Since it can be difficult to read certain x and y (CDF) values from the Weibull log-log scale plot above, let's create an output containing x values and their corresponding y (CDF) values."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<h4><strong>2-parameter Weibull Cumulative Distribution Function (CDF):</strong></h4><center>$\\large{F(x) = 1 - e^{(\\frac{x}{\\lambda})^k}}$,</center><br>\n<center><p>where k is the shape parameter and $\\lambda$ is the scale parameter.</p></center>"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x2 = np.arange(0,400)\ny2 = 1-np.exp(-(x2/scale)**shape) # This is the equation for Weibull CDF as illustrated above\n\nplt.plot(x2,y2)\nplt.title(\"Weibull CDF - Prediction\",weight='bold')\nplt.grid()\nplt.show()",
"execution_count": 16,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x7ff602db7f60>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Finally,&nbsp;the point of doing all of this is to allow us to predict failures after x units of time.<br><br>Based on the output above, if someone were to ask us \"What percent of the population will have failed after 200 days?\" The answer would be approximately 60%."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<a name=\"part2\"></a>\n<br>\n<br>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Part 2 - Weibull Analysis with Suspensions/Censored Data"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "[[back to top](#sections)]"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### In this Part 2 of the series, I will cover how to do Weibull analysis when our data set also includes data from units that didn't fail or failed for a different reason or for a different failure mode. This scenario where our data set includes data from units that have not failed yet is very common in the industry since most of the time it would be unfeasible or time consuming to wait for all units to have failed. When our data includes data such as these, the data set as a whole is what is referred to as \"failure data with suspensions or censored data\". This is just fancy talk by statisticians.<br><br> To perform Weibull analysis on data with suspensions, the \"rank\" of the data has to be adjusted due to the suspension data. Then we can accordingly calculate the proper median ranks using Bernard's formula.<br><br> Let's get some failure data that is saved in a csv file:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "import pandas\n\n# Open csv file\ndf = pandas.read_csv('/home/pybokeh/Dropbox/python/jupyter_notebooks/weibull/Weibull_Suspensions.csv')\n# Ensure that the data is sorted by DTF in ascending order\ndf.sort_values(by=\"DTF\")\nprint(\"What the CSV data looks like:\")\nprint(df)",
"execution_count": 18,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "What the CSV data looks like:\n VIN DTF STATUS\n0 6 10 SUSPENDED\n1 1 30 FAILED\n2 7 45 SUSPENDED\n3 2 49 FAILED\n4 3 82 FAILED\n5 4 90 FAILED\n6 5 96 FAILED\n7 8 100 SUSPENDED\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### From the output above, we see that we have 8 rows of data, where we have 5 failed units and 3 suspensions.<br><br> The equation for calculating the adjusted rank is as follows:<br><br> <center>$\\large{Adjusted Rank = \\frac{(Reverse Rank)(Previous AdjustedRank)+(N+1)}{(Reverse Rank)+1}}$</center>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Now we are ready to create 4 additional columns. We need: rank, reverse rank, adjusted rank, and median rank. The Python script below will create those 4 columns for us using the dataframe's apply() method, which allows us to create Excel-like functions to create new columns:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "# Reference material on how to use the apply() function in a dataframe:\n# http://stackoverflow.com/questions/13331698/how-to-apply-a-function-to-two-columns-of-pandas-dataframe or\n# http://manishamde.github.io/blog/2013/03/07/pandas-and-python-top-10/\n\n# Make sure the data set is sorted by DTF in ascending order\ndf.sort_values(by=\"DTF\")\n\nglobal prev_adj_rank\nprev_adj_rank = [0]\n\ndef adj_rank(series):\n if series[\"STATUS\"] == \"SUSPENDED\":\n return \"SUSPENSION\"\n else:\n adjusted_rank = (series[\"REV_RANK\"] * 1.0 * prev_adj_rank[-1] + (len(df) + 1))/(series[\"REV_RANK\"] + 1)\n prev_adj_rank.append(adjusted_rank)\n return adjusted_rank\n \ndef median_rank(series):\n if series[\"ADJ_RANK\"] == \"SUSPENSION\":\n return np.nan\n else:\n median_rank = (series[\"ADJ_RANK\"] - 0.3)/(len(df) + 0.4)\n return median_rank\n\ndf[\"RANK\"]=df.index+1\ndf[\"REV_RANK\"]=len(df)+1-df[\"RANK\"]\ndf[\"ADJ_RANK\"] = df.apply(adj_rank,axis=1)\ndf[\"MEDIAN_RANK\"] = df.apply(median_rank, axis=1)\nprint(\"What the data looks like with the 4 additional columns(\\\"NaN\\\"=Not A Number):\")\nprint(df)",
"execution_count": 22,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "What the data looks like with the 4 additional columns(\"NaN\"=Not A Number):\n VIN DTF STATUS RANK REV_RANK ADJ_RANK MEDIAN_RANK\n0 6 10 SUSPENDED 1 8 SUSPENSION NaN\n1 1 30 FAILED 2 7 1.125 0.098214\n2 7 45 SUSPENDED 3 6 SUSPENSION NaN\n3 2 49 FAILED 4 5 2.4375 0.254464\n4 3 82 FAILED 5 4 3.75 0.410714\n5 4 90 FAILED 6 3 5.0625 0.566964\n6 5 96 FAILED 7 2 6.375 0.723214\n7 8 100 SUSPENDED 8 1 SUSPENSION NaN\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Since we will actually only plot data from failed units and not the suspensions, we want to limit our data set to those 5 rows where status equals \"FAILED\":"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "print(\"What the data looks like with just failed data:\")\ndf_final = df[df.STATUS == \"FAILED\"]\nprint(df_final)",
"execution_count": 23,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "What the data looks like with just failed data:\n VIN DTF STATUS RANK REV_RANK ADJ_RANK MEDIAN_RANK\n1 1 30 FAILED 2 7 1.125 0.098214\n3 2 49 FAILED 4 5 2.4375 0.254464\n4 3 82 FAILED 5 4 3.75 0.410714\n5 4 90 FAILED 6 3 5.0625 0.566964\n6 5 96 FAILED 7 2 6.375 0.723214\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Now we can start creating the usual probability plots:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "data = df_final[\"DTF\"].values\ny = ln(data)\nmedian_rank = df_final[\"MEDIAN_RANK\"].values\nx = ln(-ln(1 - median_rank))\n\nplt.scatter(x,y)\nplt.title(\"Weibull Probability Plot of Failure Times\", weight='bold')\nplt.grid()\nplt.show()\n\nprint(\"x and y coordinates of the Weibull plot:\")\nfor value in zip(x,y):\n print(\"( \" + str(value[0]) + \" , \" + str(value[1]) + \" )\")",
"execution_count": 24,
"outputs": [
{
"data": {
"image/png": "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\nmJO8mVnC/h3x+odWnmskbAAAAABJRU5ErkJggg==\n",
"text/plain": "<matplotlib.figure.Figure at 0x7ff6031273c8>"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "x and y coordinates of the Weibull plot:\n( -2.26935967679 , 3.40119738166 )\n( -1.22535907083 , 3.89182029811 )\n( -0.637061542208 , 4.40671924726 )\n( -0.178008782168 , 4.49980967033 )\n( 0.25037862029 , 4.56434819147 )\n"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "import scipy.stats as stats # scipy is a statistical package for Python\n\n# Use Scipy's stats package to perform least-squares fit\nslope, intercept, r_value, p_value, std_err = stats.linregress(x,y)\n\nline = slope*x+intercept\nplt.scatter(x,y)\nplt.plot(x,line)\nplt.title(\"Linear Regression - Least Squares Method\", weight='bold')\nplt.grid()\nplt.show()\n\n# Since we plot failure times on the y-axis, the actual slope is inverted\nshape = 1/slope\n# Since we plot failure times on the y-axis, we want the x-intercept, not the y-intercept\n# x-intercept is equal to the negative y-intercept divided by the slope/shape parameter\n# Basically you are solving for x: 0 = mx + b, equation of the line where y = 0\nx_intercept = - intercept / shape\n\nprint(\"r^2 value:\", r_value**2)\nprint(\"slope/shape parameter:\", shape)\nscale = math.exp(-x_intercept/slope)\nprint(\"scale parameter:\", scale)",
"execution_count": 25,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAEKCAYAAAD3tSVSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8FPXVx/HPF0Qai4DUaL2R1FqLoIhS1KqV0IrXFltr\nvVVsFAWK11aRVh+KWq+tt1rFakXR+hRtxSpeEZRI1UdBJIggVKWhQhXjBURucjnPH79ZWNcN2WR3\ns7uT83698kpmZ3b2d3ZmT2bP/OY3MjOcc87FU5tCN8A551z+eJJ3zrkY8yTvnHMx5kneOedizJO8\nc87FmCd555yLsVaV5CX9TNIGSc8Wui2tiaQ6SeslHVLotrjWJ9r/NuRy/5M0NlrnDblaZ77ELskn\nbdABaWbPBW4C/t7CzWqUpIqo3Ymf1ZIWSLqy0G3LgTsJ7/uiQjaikB/MpNf+TSPLfU3SQ5KWSFol\n6R1JT0r6Wku1taVIGpW0v9+RMu/NpHkZJefNHMRZ9JNL+VhnXmxR6AbkQYNvvplNB6a3bHO+SNIW\nZraugdkG/AnYCjgR+JWkOjP7c4HakzUzuyJf626iQn4wM33th4E9gWeAN4GdgUOAHYB/5611jcjz\nPmLAiZIuMLPlkvoDX6fp20q5b1rpi92R/Oak/qeX1Dea/rekX0dHT0skXZj0nLaSLpI0V9KnkuZI\nOjNp/qGSXpW0VNJn0TeJS9O85j8ljZb0CXBxI039lZmdBowj7Lh7J61vF0n3S1ok6WNJEyX1SJq/\nh6SXJK2Q9Jikm6PXfyhNzKMkfQDcHs07WFKNpI8kLZY0RlKXaF47SX+W9G70LeM/kiYkve5V0WOr\no2WekrRNNO9zX5clbSXp95LekrRc0kxJpyStK3GE93dJ90TLvCnpexlv7GaQ1EPS49E+8L6kByXt\nkjT/r9H7vlrSJ5KekbRn0vzzo5hWS6qXNEXS7pLuBn4WLXZpFNtdaV5/G2AvYKmZHWZmZ5nZMcB2\nwKtJy50THeHXSxqulG+v0TbcIOnUaDqxzRdE01tImhRtpzXRfvSIpJ2TXiNxFH1e9Lx50eNdG9n/\n0r0H32jkrf8Y+DJwajT9c2AlsCbl/WnwsyjpZ8BdhH8MVcnxJtlX0vTouY9L6pS07kMkTY1iWizp\nPkk7JM0/WNLs6Ln3AF+iVP6pmFmsfghHO+uBAWnm/QzYADwbTfeNptcDrwMPRtPrgK9Hy1wdPTaX\nkAzfjqYHJq1zInAboSzxYbS+41Necz3wRrTcKWnaVpG0XCdgG+DFaPrMaJky4K2ofY8DYwkfhPeA\nLkDbaP56YBrwN2BtNP1Qmpj/Q/jWcD7QA1gNLAP+F3giWm5y9LwzounXgFuAh4D3o3nfi+YtiObd\nTyjNdE3ZJodE03+Llp8XvWefRvNPiOaPSmrj09H7sAGoy3LfuDta5w1p5m0PfBS9Bw8CD0SvOQdo\nFy3zT+AvwB+BKYn50byvR9NLgNHAfdG2OITwjWxO9NovAjcAJ6ZpwxbAJ9FyM4HrgWOArZKW6Re9\nztqoLTOj/WHjPh+1bT1waso2XxBNbxltx7ujWF6J5j+R9DqJ9//TaLlbaXz/a/A9aGB7JLbzPwjf\nWmYDOwKfRfvFxyn7TbrP4npgIPAtwudwA2G/vgG4JGn/2wAsj2Kpj553WTS/ZxTHOuCvwAvR8rWE\nz1SnpLZMAh5Les+/sC8V208cyzXNsR7oZ2b1kuqAXQhHz28DZxGODl4kHF28DnyNcLTxF+Be4H1g\nX+Ar0XN6A98lJLOE5cB+ZrY8g/Z8HP024BbbVKo5GtiVkED/FT32n+ix4wiJZNfotQ4xs9WSHgbS\nnZ8woK+Z/RtA0i2ED/+rUTzvExJKP0m7s6m0N5vwQZhL+IcA0C76/RbhfMdcM6tPF5ik8qitBhxq\nZoskvUao2Z9DSK4Jc8zsMEmVhH8gu0jqYmYfpaxzG0LCSHy9f8rMJqZ7/c0YCHSO4noneqwe6EZ4\nH54GTgCOBXYivA99gW6Svpr0HvyXkLTmmtliSTIzk3R4tK6nzOzydA0ws3WSTgfuICSensAvgCWS\nvm9mM4CfRnHebWaDo9jfowmlVzP7TNKxwA+ArxL26X2jeFKdZWb3AEg6js3vf1Mbeg8aaxIhaf+O\nkITbEg6GfpzaFhr4LJrZgZL+CvQH3jKzX6Z5jVFmdoPCN+3fAPtE84YS3r+7zewMSVtEMe5F2Pbb\nExL9m2bWP3ovXkl6flHzJB+8l5SUlhKSfAdJ2wIdCDvIaUnLG+GoBcKR8Jl8sX5YnjI9J8MEn1jn\nPsD+wA8kXWpmHwOV0fydgHNT2rNb1HaAd8xsdfT3XNIn+SWJBB9JrHv/6Cd13fcQksAxhCNTgMmS\nfkhIgLcSEuWzgKIPwQ/MbEnK6yZeZ5WZJU7Ezot+V6QsWxv9Xpr0WAfCEXeyjoT3I7ENPiYc1TVF\nol17RD8JBuwWffWfSSgrfGFbm9lshZOq5wJPEd6D+YRENTfTRpjZgwplsL7Adwj71nbASOCHhCNd\niJKsmX0s6UNCImpI2+QJSd8hHO23SYnlS5K2TtlPX0z6uzL6nbr/AexmZndk8R7cBfyWkKSnm9mM\n5P8NGX4WG5O6P3WIfif2u3mw8Z/tAsJnuIJw8Abh20bCvyiRJN+qavKbkXxCaeNOb2YfACuiyb3N\nrG3iB+gTPX589JyB0eN/ItTqUo9e1pC5EYSv+fMJO1mihl8X/Z6R0pavAFcCi6P5O0tqH/2dnLA2\n157Eum9MWfc3zOwJYL2ZnURIqHsAk4FDCUe2bc3sHDPrTPiHcC/h6/MZaV438TplSTXgbinzEhLb\nZbMn4MxsoZm1SWp32iPlRiRe+x8p8e8EjCF8i/oyIdF3JhwBJ0hSG+AqM9uOsM2uBb5JOBKH8G0R\nNvOZi2rlB5nZZ2Y2ycx+A1xD2Je2jhZbHE1/M3pOFzYloYTEPtsx+r1Xyvxjo3Y8FsV0QHIzUpZN\n3k/qot+p+18X4MoM3oMGRd/OHiRs69vSzM/ks9jYe9zQ/lRHiLsbhPNPhG8nAAvZ9LlKPreweyMh\nFY24HskL+J2kXyc9NryZ67o1eu4kSY8SPmz7AzXA6YT6Y0fgPElHAT9qbqOTyMzWSvotoa45RKEr\n5ROE+mJvSS8Q6qoVhKO+Iwm1xLcIRzbPSfoP4St5Jr0U7iAcNZ4naVfgA6A7IQFsAZwkaQShfvsp\nmxLHUuBASWOB/yMcZR8UvebHpIhKYg8Sju4mR3Ek/lHekvE71Hwi9OT4dtJj4wjnIS4GfiTpKcIH\nfzfCP9vdCNsZwof7ZqBXynp3AV6WNJVQ6kp9D96JXnugpM7Aw2ZWk7KO9sA/Jb1B+GeyinD0boRv\nSxBKZYOAakllhJ44bVPWMxM4CrhAUgVf/GebiOXbhPc8XZkmncb2v4WNvAeNGU4o1zzfwPzGPouJ\nMltvSbcCM83szgxeN7Hv/0zSVlFM2xFKcjWEI/5lhG90kwn/+EriKB6I9YnX5J91hJLFz6LpZ2zT\nCan1wNtJz5/J509abQFcSKj/rQDeJezsh0fzDybUwlcQur9dHz1/fDT/c6+5mXYnTryuAzpGj7Uh\nfC1cD4yMHutKSPz/iV7zTcKRz/bR/G6Er9ifAo8Sap0bgHENxZzUhoMJR+j1hJ16JnB5NO8A4Llo\n3urofb40mrcboTzyXjRvESF5tEvaJuvYdALty8B1hPMXywlfowcmtWNU1MYx0XSnpPemaxb7RuLE\na+rPDdH8PYFHom28PNqu1xO6s7YhJIOlhGT2k6R9qyfhRPkjUeyro/fiPqBTtO4dCSduV0XP+2Wa\n9rWN3pcZhBP4K6PtPwpok7TcWdH2ryckvcQ+nzjxug3hxOgnhC7DI5O3efT+j49inM+mfTR530v7\nfrOZ/a+x9yBNvIntPL6B+R+n7Ddt2fxnUYTzZEuj9T7SwP53HimfScLnYmr0moujdu+Y8tl4jfC5\n+ivh3NF64PpC57zGfhQF0Kjoq9grwCIzG5Ayr2P0pnSNNsT1ZjY2oxW7nJLU0cw+SZqeSCirXGFm\nowrXMpcvkv5N+Oz9yMwmNLa8a12aUq45j3DypGOaeWcRTiwOiE6QzJd0n+XxAhvXoEslfZ3wD3kf\nwoms5YQTW865ViajE6/RCbKjCH1X0zE2nRjaGvjQE3zBzCLU0i8m1CsfI3SVXFjQVrl8y+wruWt1\nMirXSPo7ofdGJ+CCNOWaDsAEQj24A+Gilidz31znnHNN0eiRvKSjCX2qa0nfNRDgcMKZ7B0JJYJb\no8TvnHOugDKpyR8EDIi6B5YBW0u618xOTVrmNMIlx5jZ29GJoG6EuvBGkvwrpXPONYOZNWusnEaP\n5M3sYjPrama7Eq50fDYlwUPoUnYogKTtCX2JUwcHSqwvtj+jRo0qeBs8Po+vtcXWGuLLRrMvhpI0\nJORsuwO4AhgbjUECcJGljC/SGtTV1RW6CXnl8ZWuOMcG8Y8vG01K8mb2HOGCGMzs9qTH3yXU5Z1z\nzhURH7smh6qrqwvdhLzy+EpXnGOD+MeXjYyveM3Ji4VRV1vs9ZxzLg4kYfk68eoyV1NTU+gm5JXH\nV7riHBvEP75seJJ3zrkY83KNc84VOS/XOOecS8uTfA7FvS7o8ZWuOMcG8Y8vG57knXMuxrwm75xz\nRc5r8s4559LyJJ9Dca8LenylK86xQfzjy4Yneeeca6JSqjp7Td455zK0ahVcdRV88gn84Q8t97pe\nk3fOuTybOBH23BPmz4eLLip0azLnST6H4l4X9PhKV5xjg/zG99//woknws9/DrfcAn/7G+y0U95e\nLuc8yTvnXBrr14ekvvfesNtu8PrrcOSRhW5V03lN3jnnUsyYAUOGQIcOcNttsMcehW2P1+Sdcy4H\nli2Dc8+Fo48Ov6dMKXyCz5Yn+Rzyumdpi3N8cY4Nso/PLNTau3eH1athzhw49VRQs46di0vG93iV\n1AZ4BVhkZgPSzK8CbgTaAfVm1i9XjXTOuXx5+2046yxYvDgk+oMOKnSLcivjmrykXwC9gY6pSV5S\nJ+BF4DAzWyxpWzP7IM06vCbvnCsKa9bA738PN90EI0bA+edDu3aFblV6ea/JS9oZOAq4s4FFTgbG\nm9ligHQJ3jnnisWUKaHXzLRp4STr8OHFm+CzlWlN/kZgONDQYfjuQBdJUyRNlzQwJ60rMV73LG1x\nji/OsUHm8b3/fqi1V1fDtdfChAlQUZHXphVco0le0tHAEjOrBRT9pNoC2Bc4EjgCGClpt1w21Dnn\nmmvDBrjjjnDF6vbbhxOrxxxT6Fa1jExOvB4EDJB0FFAGbC3pXjM7NWmZRcAHZrYaWC1pKrA38Fbq\nyqqrq6msrASgc+fO9OrVi6qqKmDTf+NSnU48Vizt8fg8vsR0VVVVUbWnJePr0qWKoUNh2bIarr4a\nBg0qfHsbm66pqWHs2LEAG/NlczXpYihJfYEL0px47Qb8kXAU3x54GTjBzOamLOcnXp1zLeLTT+Gy\ny+Cee+DKK2HQIGiTg07j9fX11NXVUVlZSXl5efYrzEBBLoaSNETSYAAzmwdMBF4DXgLuSE3wrUHi\nP3FceXylK86xwRfje+QR6NEDliwJwxGceWZuEvy4cQ9QUdGN/v2HUlHRjXHjHsh+pXmWcT95ADN7\nDngu+vv2lHnXAdflrmnOOdc0CxeGK1Xnz4exY6FfDq/Wqa+vZ9CgYaxaNYVVq3oCrzFoUD8OPfS7\nLXZE3xw+do1zruStXRv6u197bejvPnw4tG+f29eYPn06/fsPZdmyGRsf69hxXyZPvp0+ffrk9sVS\nZFOuadKRvHPOFZsXXoChQ2HHHeGll8KIkflQWVnJZ5/VEarS4Uh+7dqFWZ8YzTcfuyaHWlvdM27i\nHF8cY/vww1BrP/54OPbYGp56Kn8JHqC8vJwxY0ZTVtaPjh33paysH2PGjC7qUg14knfOlRiz0GOm\nRw8oK4O5c0PtvSUGEzvppBNYuHAekyffzsKF8zjppBPy/6JZ8pq8c65kvPFGuEPTp5/Cn/4E3/pW\noVvUMnw8eedcrK1cCZdcAoccAscdBy+/3HoSfLY8yedQHOueyTy+0lVMsdXX1zN9+nTq6+szWv6p\np2CvveCtt2DWLDj7bGjb9vPLFFN8xcaTvHOuxTTlYqLFi8NJ1bPOgltvhQceCD1oXNN4Td451yLq\n6+upqOjGqlVTSHRBLCvrx8KF8z7XQ2XdOhg9Gi6/PNTfL744nGBtzbyfvHOu6NXV1bHllpXR1aIA\nPWnXroK6urqNSX769NDnvWNHeP556NatcO2NCy/X5FDc64IeX+kqhtg+fzERJF9MtGxZqLX/4Afh\nitVnn21agi+G+IqVJ3nnXItIdzHRnXeO5plnytljjzA0wdy5MHBgPG6gXSy8Ju+ca1GJoXo3bNiV\nkSO/wnvvhT7vBx5Y6JYVL+8n75wrGR07lvPkk304+uivcNhh4R6rnuDzx5N8DsW9Lujxla5iie3Z\nZ6Fnz5DYX30VLrwwNzfQLpb4ipH3rnHO5d2SJSGhT50KN9/ceu6vWgy8Ju+cy5sNG+DPf4aRI6G6\nGn7zG+jQodCtKj3eT945V3RmzQp93tu0gcmTQ5nGtTyvyedQ3OuCHl/pasnYli+HCy6A/v3DzbP/\n+c/8J/g4b7tsZZzkJbWR9KqkCZtZpo+ktZKOzU3znHPQ9EG9CsEM/vGPMM77hx/CnDlwxhm5uYG2\na76Ma/KSfgH0Bjqa2YA089sAk4BVwF1m9lCaZbwm71wTjRv3AIMGDWPLLcMVo2PGjC66m1XU1cE5\n54SRIm+7DaqqCt2ieMl7P3lJOwNHAXduZrFzgAeB95vTEOfcF9XX1zNo0DBWrZrCsmUzWLVqCoMG\nDSuaI/q1a8PNs3v3hgMOCHV4T/DFJdMvUjcCw4G0h+GSdgR+aGa3Aa32guS41wU9vpaXGNQrjNoI\nyYN6NUU+Ynv+edhnH6ipgWnTwk09ttwy5y+TkWLcdsWi0d41ko4GlphZraQq0ifxm4ARyU9raH3V\n1dUb727euXNnevXqRVX0rz+xoUp1ura2tqja4/GVfnxLly5NGtTrI+DtjYN6Fap9e+1VxYgR8PDD\nNZx9NowaVYVUHO9XXKZramoYO3YswMZ82VyN1uQlXQWcAqwDyoCtgYfM7NSkZRYk/gS2BVYAg81s\nQsq6vCbvXBMlavLt2lWwdu3CgtXkEzfQ/tWv4IQT4Le/DUMCu/zLpibfpIuhJPUFLkh34jVpmbuB\nR/3Eq3O5kxjUq7Ky8nM32Ggpc+eGG3isXBkGE+vdu8Wb0KoVZIAySUMkDU4zq9Vm8cTXrbjy+Aqn\nvLycPn36NDvBNze2lSvDnZn69g234nvppeJM8MW87QqtSVe8mtlzwHPR37c3sMzpOWiXc67Anngi\n3Mhjv/1Crxm/v2pp8rFrnHOfs2hRuDtTbW24gfbhhxe6Rc7Hk3fOZW3dOrjpJujVC7p3h9mzPcHH\ngSf5HIp7XdDjK12NxTZtWijLTJgQ+r9ffjmUlbVM23IhztsuW57knWvFli6Fs84K47v/8pfwzDNN\nu4G2K35ek3euFTKD++8Po0UOGABXXw3bbFPoVrmG+HjyzrmMvfkmDBsG778P48fDt79d6Ba5fPJy\nTQ7FvS7o8ZWumpoa1qyByy4LSf2II8J9VuOS4OO87bLlR/LOtQIzZsCQIaHXzKuvQteuhW6Rayle\nk3cuxpYsCSdUn38e/vjHUH93pcf7yTvnPmfDhjDGzJ57ws47h7FnPMG3Tp7kcyjudUGPrzTU1sKB\nB8J998Gzz4abekyfXlPoZuVVXLZdPniSdy4mli8PpZnDDoMzz4SpU2GvvQrdKldoXpN3rsQlbqB9\n3nlw6KHwu99BAUYjdnnk/eSda6Xq6sJIkQsWhPJM376FbpErNl6uyaG41wU9vuLx2WdwzTXwrW+F\n+ntt7eYTfCnF1hxxjy8bfiTvXIn55z/DXZp22SUMLLbrroVukStmXpN3rkR88AGMGAETJ4YhgX/8\nY1CzqrSu1Hg/eedizAzuvht69ICttw593o87zhO8y4wn+RyKe13Q42t5c+aEWvvo0eF2fDfdBB07\nNn09xRhbLsU9vmxknOQltZH0qqQJaeadLGlW9PO8JO+d61wWVq6EX/8aqqrgxBOL9wbarvhlXJOX\n9AugN9DRzAakzDsAeMPMlkk6ArjUzA5Isw6vyTvXiMcfD90iDzgAbrgBdtih0C1yhZb3fvKSdgaO\nAq4Efpk638xeSpp8CdipOY1xrjVbtChc0DRrFtx+e7hy1blsZVquuREYDmRyGH4G8GSzW1TC4l4X\n9PjyY906uPHGcAPtPfeE11/PfYL3bdd6NXokL+loYImZ1UqqAhr8yiCpH3AacHBDy1RXV1NZWQlA\n586d6dWrF1VVVcCmDVWq07W1tUXVHo+v+OObOxf+/OcqunSBG26ooWtX+NKXiuP98OnCTdfU1DB2\n7FiAjfmyuRqtyUu6CjgFWAeUAVsDD5nZqSnL9QTGA0eY2dsNrMtr8s4RbqB98cVhzJnrroOTT/Yu\n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\n",
"text/plain": "<matplotlib.figure.Figure at 0x7ff6031270f0>"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "r^2 value: 0.953148083657\nslope/shape parameter: 2.02425855437\nscale parameter: 94.99794288911293\n"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "import numpy as np\nfrom matplotlib.ticker import FuncFormatter\n\n# I'm used to the ln notation for the natural log\nfrom numpy import log as ln\n\n# 10 failures that we are assuming follow a Weibull distribution\nx = df_final[\"DTF\"].values\nrank = np.arange(1,data.size+1) # ranks = {1, 2, 3, ... 21}\nmedian_rank = df_final[\"MEDIAN_RANK\"].values\ny = ln(-ln(1 - median_rank))\n\n# Generate 1000 numbers following a Weibull distribution that we think ideally fits our data using the shape and scale parameter\nx_ideal = scale *random.weibull(shape, size=100)\nx_ideal.sort()\nF = 1 - np.exp( -(x_ideal/scale)**shape )\ny_ideal = ln(-ln(1 - F))\n\n# Weibull plot\nfig1 = plt.figure()\nfig1.set_size_inches(11,9)\nax = plt.subplot(111)\nplt.semilogx(x, y, \"bs\")\nplt.semilogx(x_ideal, y_ideal, 'r-', label=\"beta= %5G\\neta = %.5G\" % (shape, scale) )\nplt.title(\"Weibull Probability Plot on Log Scale\", weight=\"bold\")\nplt.xlabel('x (time)', weight=\"bold\")\nplt.ylabel('Cumulative Distribution Function', weight=\"bold\")\nplt.legend(loc='lower right')\n\n# Generate ticks\ndef weibull_CDF(y, pos):\n return \"%G %%\" % (100*(1-np.exp(-np.exp(y))))\n\nformatter = FuncFormatter(weibull_CDF)\nax.yaxis.set_major_formatter(formatter)\n\nyt_F = np.array([ 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5,\n 0.6, 0.7, 0.8, 0.9, 0.95, 0.99])\nyt_lnF = ln( -ln(1-yt_F))\nplt.yticks(yt_lnF)\nax.yaxis.grid()\nax.xaxis.grid(which='both')\nplt.show()",
"execution_count": 27,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqoAAAI0CAYAAADV6QtZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xm8FnX5//HXBaKgqAdTM03FMHLJPIlGfV04WGYuqZmV\nmcUpVxDFJVMxFDcEQkVU8IcLgZmWu5aJlhxyy/3gAkgux9CSVFQ0FxSu3x8zR25u7nPOvczcM3Pf\n7+fjcT/OPXN/Ptdcn8M95/4wc83c5u6IiIiIiKRNt6QTEBEREREpRBNVEREREUklTVRFREREJJU0\nURURERGRVNJEVURERERSSRNVEREREUklTVRF6pSZTTOz5WZ2Rrg8Oly+uoKYQ8IY94bLg8LlF6PK\nu8R82sLt71Zm/83D/ss6aXNm7u8tTb8DM/tt7r+xVFel7z8R0URVJPXM7Lzww25azrrLwnVP5qw7\nMlz31yJDzwQmAv8Ilz18VFXOh3n743Uzu8vMBkQQvhpjeojg9zizg9dfCV+/qn1F++TXzDYrd6M5\nE+L2x4dmtiCcOHcPm5U0/mIm5nHJGc8TVdzm+uFk/tXw9/cfM7vXzL4W0SYS2adEaslqSScgIl16\nIPy5c866/wt/ftnMerv7e+E6B+4vJqi7Xw9cn7faKkm0TO0f5n8CXgIGAd8GdjSzrdz9jfwOZraa\nu39S3TQLc/e7gbs7ef0F4MQYU3gduBZYD/gRcCbB3/ZRZcRK4t8/SVcB3wUeBm4BNgJ2AbYEHkkw\nLxEJ6YiqSPo9SDCR62dmG5hZb2A74FmCffjrYbv2iexDAGbWy8zGmtk/zew9M3vczPZvD9rJaeGe\n4WvvmdmzZrZ7Tp+VjgTmn/au0FXufjzwzXC5D/CNnKN8y83sKDN7lfDopZl9JTz6+rqZ/dfMbjez\n/gViDzCzJ81siZndbGZ9wv4bmdnfw/5LwxjXmNk6+QHM7CdmtjBsM87MLFzfaclE/ql/M1vOiqNs\nbeHv89Dw51tmtnpObstz13XgVXc/0d2bgSvCdXt31Dg88v5U+O/7TzM7x8xWN7PNgRfbc+vqqG8H\ncdbIG/NLZnaamS0KH7/sZBydCo9+XmlmL5vZO2b2kJntmfP6Omb2h/C1OWZ2QpjD4k7CNoXj/Y67\nD3f3g4DPAbfnxN3KzG4Jj7q+H76PNg1f+72ZvRIejV1iZn8zsy93MoZO90kRWZUmqiIp5+5vA/PC\nxV0IJqYGXBD+/D8z+yzQj+BD96Gw7dXAr4C3CY64bQLcZCvq5To6LfkD4LPAfcDWwG1mtkFnKZY3\nslWFk7/BOatyj6Y6cC5wJ/CgmW0EzAb2IBjzE8C+wCwzWzcv9JnA4wRHHw8Apobr1wbWIJiYTAUW\nAz8BxhZIbzTBBLkn8EtgWE5epfwOJrLiyOXV4fKDYex1gP3C19p/3uzuS7sKambrAY3h4usdtBkG\nXA58nuBoenfgdOBi4J0wn/bcJobrl5QQZ2Je080Ifp/3ARsAY82sX1djKbA9A+4AfhGO7VZgAPAn\nM2v/j9olBO/dd4DHCP69uvp3+Q/BeB8xs0vN7GBg3fAMBeF+dT/Bv8V/gBnAMoL/RAFsCswi+A/C\n4wTv3T90sr2u9kkRyaOJqkg25J7+35ngA/g2YEHOOoBn3X2Jma1PcBp4GcEk7n2CyW434OgutjXH\n3fdy972AVmBN4KBO2kd1uvhWgnxvIBjf7e7+UF6bg9z9CHcfBfwUWBdocff93P07Yb4bEUxYcv3a\n3Q8HvhcuH2hma7r7P4GjgPnAB8Dc8PXdWdX3whi/Jhjzz3JeK/p34O65ZQBnu/tJ7v4icGUY59Dw\ntf0Ifg/XdRGyMTxK+wbB++AD4OwO2g4PYx4XjuWAcP3hBO+Rc3LzDB9vlxIn7+jvMmBweKTyX+H4\ntu9iPIXsCAwE3gV2cfchwKUEE+ThZtaN4P3uwCHufhjBf066+nc5imACuiUwFPg9wVHu9iPShxKU\nVDzh7ju6+9HuviPwTPj6jwjKBt4Dng7XbRX+J2olFe6TInVLNaoi2fAAcATBRORdYIG7v2Vm9xNM\nItuPuD4Y/uwb/uwGHJMTxwmOvHZmft7z7QmOnBXSvYP15bgDeB54E3jc3QtdnPRgzvO+BOOZl7Ou\nPd/N8/rNz/sJsImZ7UhwZCv/yFuhI8j5MTr6nZTrdoKjhd8JTy3vDiwC/tZFv/Ya1Y8IJoM3uft/\nO2jb/nvJH0s3gqODxdb9dhWn3Wvu3n509+3wtd5FbiNX3/DnQnf/MG+bmwPrA6sT/Du2r59LF9x9\ndvi7/j9gN4IjtlsAYwiO3G8RNn0sr99yM9sSeBJYi8Lvn9c6GEM5+6RI3dIRVZFsaD+i+lWCI0vt\ny/cTnC7+KcEHXvv6tvDnUmADd+/u7t0JTnMf2MW2tirwfGH48/3wZ3sN53ZEd+r/qvDo4pgOJqm4\n+8c5i20ER8xy8/1Szmu5ts77CfAq8EOC/P8fwe/m4PC1Qkfi8mMsLNCmWMvDn5/+DQ4vDpsB9CA4\nutoTuN7du/r9tteonubuUzqZpMKK38tWeT+XE4yn2Kv9u4rTLnfiW8n7pH17m5pZz7xtthEcTW4v\nj/hi+DP337ogMxvk7svd/X53HwOcRPBvv3bY5KXw5055/boD+xBMUp8EGgiO5H/apJMxlLNPitQt\nTVRFMiC8cvy/BEeNerPiyGL7xLRP7nJ4pfwfw/aPmNkUM7uBYBJxWE7oQh+o21twgdJdBDWP7wM3\nh6+13w7rMjObSnB6OqkrxX9HUI842MxuM7O/EEzkXwNuymlnwDlmdhXBld1OUPf5PsERSyOYdFxO\nUJNZiAE3hzHODWNcU0Hu7ZO5y8zsIjPrFS63n/7fg+JO+xcj99/nsnB5kpldSVBu4cCVYR3sIsIJ\nn5ldZ2aFanWLiVOJ/uGFUu2P6e7+KMEp9t7A/WY2naD8YDkw2d2XE/yuDLg+/Hc6q4ht3WhmL4YX\nYU0BJoXjaL+Lw+8IjvB/1cweNbPLzexRYFuC3xVA/7Bfh3d+gJL2SRHJoYmqSHY8wIoLdx4ECGss\nF4XrXnP3l3La/4LgoqBlwBCCi7AeAO7KaZN/IZAT1Ij+h6DMYC5wQM5RumMJavG2J7gQ5OoOYnS2\nXEgxR9tWauPu/yG4avtuglO3AwjKB3bPq6tcTnBhzVcJThHfRlCbCMFk5t5w/Q7AeR3ku5yg5nEP\nghrQCcDkvNxK+R2cQnB/1T0Jfqe9wjE9x4r/fLwQTtA6U9Lv1t0nE9RivkJw9HgZwWnu48PXPya4\n2Od1gqPNQwsG7CJOCbkVyrUX8LWcR/tV9N8FphGcVj+A4OKl7+bUMY8gmAg2ELwX2ifZH3WyvYkE\n/7EZDDQT/DtPIrhYDndfRHAB463AxgRnLroBb4XbupJg7LsTjL/QmHOXi9knRSSHdX1WSUREqsXM\nfkUwmTnL3Ys5KiiArbifcPvyaQT/8fi7uzcllpiIVEQXU4mIpICZbQIcQnAF+FJyvslKivJNM/s1\n8BeCI+TNBEczJyWZlIhURhNVEZF02BIYR3Aq+nB3fyXhfLLmXwSn5U8kmOi3AhPc/eZOe4lIqunU\nv4iIiIikUk0dUTUzzbpFREREUsLdK7ozTM1d9e/udfcYMmRI4jkkkU+U24kiVjkxSu1TSvti2qbt\nvVOtR9rGXY18ot5GpfHK7R/XPhN1u1p6pG3MWfyMiSJeNfaZqNtGoeYmqvWosbGx60ZVVK18otxO\nFLHKiVFqn1Lap+19kSZp+91UI5+ot1FpvHL7x7XPpO09kSZp+91k8TMminjV2GfS+BlTUzWqZua1\nNB6RuI0ePZrRo0cnnYZIZmifESmemeE69S8i5Wpqako6BZFM0T4jUl2aqNaAlpaWpFNYSbXyiXI7\nUcQqJ0apfUppn7b3RZqk7XdTjXyi3kal8crtH9c+k7b3RJqk7XeTxc+YKOJVY59J42eMJqoiIiIi\nkkqqURURERGRyKlGVURERERqliaqNUD1Q+mIlcUa1bS9d6olbeNWjWp8/aKuUU3be6ca0jbmLH7G\nRBFPNaoiIiIiUXn3XXj//aSzkIxTjaqIiIhE79hjYa21YOzYpDORhERRo7paVMmIiIiIAPD443DD\nDTB3btKZSMbp1H8NUP1QOmKpRjU70jZu1ajG1081qpUreczLlsHRRwdHUtdbL/l8UrKdLOwzqlEV\nERGR2jZ1KvTsCT/7WdKZSA1QjaqIiIhEY9Ei2G47uPde+PKXk85GEhZFjaomqiIiIhKNn/0MNtoI\nxo9POhNJAd3wX4D01UxlsX5INar1JW3jVo1qfP1Uo1q5osfc0hI8zjgjxmyy+RkTRTzVqIqIiIiU\nY+lSGDYMLr4YevdOOhupITr1LyIiIpUZOxbuvx/uuAOsojO9UkNUo5pHE1UREZEqa2uDHXeERx6B\nL3wh6WwkRVSjKkD6aqayWD+kGtX6krZxq0Y1vn6qUa1cl2MeMQJOOKFqk9QsfsZEEa9ea1T1zVQi\nIiJSnttvh+eegz/+MelMpEbp1L+IiIiU7n//g223hauvht13TzobSSGd+hcREZFknHsu7LyzJqkS\nK01Ua0DaaqayWD+kGtX6krZxq0Y1vn6qUa1cwTHPnQtXXgkXXJCOfDKwnSzsM2msUdVEVURERIrn\nHtwz9cwzg2+hEomRalRFRESkeNdcAxMnBrej6t496WwkxXQf1TyaqIqIiMTorbdgm22Cq/132inp\nbCTldDGVAOmrmcpi/ZBqVOtL2satGtX4+qlGtXIrjfn00+F730t0kprFz5go4qlGNQZmNsLMng4f\nx+Ws/4qZPWhmc8zsNjNb5YuBzay/mT1mZq1mNjBc193M7jGznnHmLSIiInkeeQRuuQXOOy/pTKSO\nxHbq38y2Ba4DdgI+Ae4CjnL3F83sEeBEd7/fzJqBL7j7GXn9LwBuAtqASe5+kJkNB5a4+4wOtqlT\n/yIiIlFbtgy+9jU4/nj46U+TzkYyIu2n/rcGHnb3j9x9GTAbODB8rb+73x8+/yvw/QL9lwJrAb2B\npWa2LrBvR5NUERERicmUKbDOOnDooUlnInUmzonqM8CuZtbHzNYE9gY2bX/NzPYLn/8Q+HyB/pOB\nkcA0YAwwKvwpedJWM5XF+iHVqNaXtI1bNarx9VONauVabroJzjoLJk8Gq+jgWDT5ZPAzJop49Vqj\nulpcgd19vpmNA+4B3gOeBJaFLx8GTDKzUcDtBEdP8/svBAYDmFk/YBNgvpnNAHoAo9z9+fx+zc3N\n9O3bF4CGhgYaGxtpamoCVvxSa225Xb3l09ramorxVpJPa2trbO2LyafU7Ws5u8tR7y+Vxiu3f7uo\n2xebT6nbr4nlKVNo2WMPWLSIpq23Tj6fKi1H/fex0njV+Hvdrtx82p+3tbURlardnsrMzgMWuvvl\neeu/CFzj7l/vpO/1wOnAz4GZBHWr57v7oXntVKMqIiISlXvvhV/8IvgmqjXXTDobyZi016hiZhuE\nPzcDvgf8Pm99N+DXwOWdxBgEvOruLwC9gPaZaK/4MhcREalzH30EQ4fCJZdokiqJiXWiCtxkZs8A\ntwHD3H1JuP7HZvYcMJdgEvrbTmKMBM4Jn18BXAzcAUyIJ+XsyT9kn7Rq5RPldqKIVU6MUvuU0r6Y\ntml771RL2sZdjXyi3kal8crtH9c+E3W7mjBhAmy1FS1rr510JivJ4mdMFPGqsc/E1bYSsdWoArj7\nbh2snwRMKjLGnjnP5wMDoslORERECnrxRbjoInj8cXjppaSzkTqmr1AVERGRFdxh331h113h1FOT\nzkYyLIoa1ViPqIqIiEjG3HILtLUFP0USFneNqlRB2mqmslg/pBrV+pK2catGNb5+qlEt0XvvBd8+\nNXkyrL46kL4xZ/EzJop49VqjqomqiIiIBM46C5qaYNCgpDMRAVSjKiIiIgBPPw277w7PPAOf/WzS\n2UgNSP19VEVERCQDli8P7pl69tmapEqqaKJaA1Q/lI5YqlHNjrSNWzWq8fVTjWqRpk+HpUvhyCNX\neSltY87iZ0wU8eq1RlVX/YuIiNSzN98MbkN1553QvXvS2YisRDWqIiIi9ezII2GNNYKvShWJkO6j\nKiIiIuV76CH4859h7tykMxEpSDWqNUD1Q+mIpRrV7EjbuFWjGl8/1ah24pNPgguoJkyAddftsFna\nxpzFz5go4tVrjaomqiIiIvXo0kvhM5+Bgw9OOhORDqlGVUREpN68+ipsvz088AB86UtJZyM1Kooa\nVU1URURE6s2PfgRf/CKce27SmUgN0w3/BVD9UFpiqUY1O9I2btWoxtdPNaoF3H03PPoonH56Uc3T\nNuYsfsZEEU81qiIiIlLbPvwQjjkmqE/t1SvpbES6pFP/IiIi9eKss2DOHLj55qQzkTqgGtU8mqiK\niIh04Pnn4etfhyefhE03TTobqQOqURVA9UNpiaUa1exI27hVoxpfP9WohtyDU/6nnFLyJDVtY87i\nZ0wU8VSjKiIiIrXpxhuDW1Idf3zSmYiURKf+RUREatmSJbDNNnDddbDrrklnI3VENap5NFEVERHJ\nc+KJ8NZbMG1a0plInUl9jaqZjTCzp8PHiJz1Z5rZK2b2RPj4ToG+/c3sMTNrNbOB4bruZnaPmfWM\nM++sUf1QOmKpRjU70jZu1ajG16/ua1TnzIFrr4Xx48sOkbYxZ/EzJop4qlGNmJltCxwG7Ag0Avua\n2Rdymlzo7juEj7sKhDgKOA7YGzg5XDcUuMbdP4wrbxERkZqwfDkMHRp8+9QGGySdjUhZYjv1b2YH\nAXu6+xHh8q+BD919gpmdCbzn7hd00v984F7gZWA0wST1D+6+ytHXnD469S8iIgJw5ZVw1VXwwAPQ\nTddOS/VFcep/taiSKeAZ4Fwz6wN8RHBk9NGc14eb2U+Bx4CT3P2dvP6TgRnA6gRHV0cBY2LMV0RE\npDa88UbwFakzZ2qSKpkW20TV3eeb2TjgHuA94ElgWfjyZOBsd3czOxe4kKBMILf/QmAwgJn1AzYB\n5pvZDKAHMMrdn8/fbnNzM3379gWgoaGBxsZGmpqagBX1FLW23L6u3vKZOHFiZP+++blXK5/W1laO\nD28XE3X7YvIpdfu1shzFv3fW8olyf4kiXrn929dF3b7YfErdfmLLP/sZ7LorTY2NFcerx/2lJYa/\nj5XGK7d/Kb+v/D6l5tP+vK2tjci4e1UewHnA0QXWbw481UXf64F+wLnArsCmwO8KtPN6NGvWrKRT\nWEm18olyO1HEKidGqX1KaV9M27S9d6olbeOuRj5Rb6PSeOX2j2ufibpdou6/332TTdzfeSeScGkb\ncxY/Y6KIV419Juq24bysovljrLenMrMN3P11M9sMuAv4ursvMbON3P21sM0JwE7ufkgHMQYB+7n7\nSWZ2AXALQd3qRHf/fl5bj3M8IiIiqfbxx7DDDjBqFPzwh0lnI3Uu7TWqADeZ2XrAx8Awd18Srh9v\nZo3AcqCNoAa1IyOBH4XPrwCuBboTXFwlIiIi7SZNgo03hh/8IOlMRCLRLc7g7r6bu3/Z3b/q7i05\n63/m7l9x90Z3P8DdF3USY093fzt8Pt/dB4T9Hooz9yzJrQ1Jg2rlE+V2oohVToxS+5TSvpi2aXvv\nVEvaxl2NfKLeRqXxyu0f1z4TdbtELFwI558Pl10GVtFBrJWkbcxZ/IyJIl419pm42lYi1omqiIiI\nVMkJJ8Dw4bDllklnIhIZfYWqiIhI1v3lL3DssfDMM9BTX94o6ZCFGlURERGJ0wcfBEdSJ0/WJFVq\njk791wDVD6UjlmpUsyNt41aNanz96qJGdcwYGDAA9twzlvBpG3MWP2OiiFevNao6oioiIpJVCxbA\nlCkwZ07SmYjEQjWqIiIiWeQOe+wBe+8NJ56YdDYiq4iiRlWn/kVERLLo+uvh9dfhuOOSzkQkNpqo\n1gDVD6UjlmpUsyNt41aNanz9arZG9Z134KSTgtP+q8VbxZeaMYey+BkTRbx6rVHVRFVERCRrRo0K\nTvn/3/8lnYlIrFSjKiIikiVPPAF77QXPPgvrr590NiIdSn2NqpmNMLOnw8dxOev7mNndZvacmc00\ns3UL9O1vZo+ZWauZDQzXdTeze8xMN4oTEZH6s2wZHH108FWpmqRKHYhtompm2wKHATsCjcB3zewL\n4cunAn919y8B9wKnFQhxFHAcsDdwcrhuKHCNu38YV95ZpPqhdMRSjWp2pG3cqlGNr1/N1ahecQX0\n6AHNzVXbZOJjzpPFz5go4qlGNXpbAw+7+0fuvgyYDRwYvrY/MD18Ph04oED/pcBaQG9gaXjUdV93\nnxFjziIiIum0aFFQmzplCnTTJSZSH2KrUTWzrYBbgW8AHwF/BR519xFm9pa798lpu9jd18vrvykw\nA1id4OhqM3C7u/+9k22qRlVERGrTkCGwwQYwYULSmYgUJYoa1djuaeHu881sHHAP8B7wJLCso+YF\n+i8EBgOYWT9gE2C+mc0AegCj3P35/H7Nzc307dsXgIaGBhobG2lqagJWHKbWspa1rGUtazlTyxMn\nwp130vTSS+nIR8taLrDc/rytrY3IuHtVHsB5wNHh83nAZ8PnGwHzuuh7PdAPOBfYFdgU+F2Bdl6P\nZs2alXQKK6lWPlFuJ4pY5cQotU8p7Ytpm7b3TrWkbdzVyCfqbVQar9z+ce0zUbeL1EcfuW+zjfuN\nN1Z/216f+0sc28nCPhN123BeVtH8sVt0U95VmdkG4c/NgO8Bvw9fup3gVD7AEOC2TmIMAl519xeA\nXqw4+torhpRFRETS5aKLYPPN4cADu24rUmNivY+qmf0dWA/4GDjB3VvC9esBfyQ4Mvoy8EN3f7uD\nGDOBH7n722Hd67VAd2Couz+U19bjHI+IiEhVvfwyDBgADz8M/folnY1ISaKoUdUN/0VERNLqgANg\nhx3gjDOSzkSkZKm/4b9UR24RcxpUK58otxNFrHJilNqnlPbFtE3be6da0jbuauQT9TYqjVdu/7j2\nmajbReKOO2DuXDjllOpts4B63F/i2E4W9pm42lYitqv+RUREpEzvvw/HHRfc4H+NNZLORiQxOvUv\nIiKSNiNHwksvwXXXJZ2JSNlUo5pHE1UREcm8efNg113hqadg442TzkakbKpRFUD1Q2mJpRrV7Ejb\nuFWjGl+/zNWousOwYcHFUymZpNbj/hLHdrKwz6SxRlUTVRERkbS49lp4551gsioiOvUvIiKSCm+9\nBdtsA7feCgMHJp2NSMVUo5pHE1UREcmsYcNg+XK4/PKkMxGJhGpUBVD9UFpiqUY1O9I2btWoxtcv\nMzWqjz4KN98M558fT/wK1OP+Esd2srDPqEZVREREVrZsGQwdCuPGQZ8+SWcjkio69S8iIpKkyy6D\nP/4RWlrAKjpLKpIqqlHNo4mqiIhkymuvwXbbBZPUbbdNOhuRSKlGVQDVD6UllmpUsyNt41aNanz9\nUl+j+stfwi9+kepJaj3uL3FsJwv7TBprVFerylZERERkZbNmwX33wdy5SWciklo69S8iIlJtS5fC\n9tvD2LGw//5JZyMSC536FxERyaIJE2DLLTVJFemCJqo1QPVD6YilGtXsSNu4VaMaX79U1qi+9BJc\neCFMmlR5rCqox/0lju1kYZ9JY41qrBNVMzvBzJ4xs6fM7FozWz1c38fM7jaz58xsppmtW6BvfzN7\nzMxazWxguK67md1jZj3jzFtERCQW7nDssXDiibDFFklnI5J6sdWomtnGwP3AVu6+1Mz+APzZ3WeY\n2TjgTXcfb2anAH3c/dS8/hcANwFtwCR3P8jMhgNL3H1GB9tUjaqIiKTXrbfCaafBnDmw+upJZyMS\nqyzUqHYH1jKz1YA1gVfD9fsD08Pn04EDCvRdCqwF9AaWhkdd9+1okioiIpJq770HI0bA5MmapIoU\nKbaJqrv/G7gA+BfBBPVtd/9b+PKG7r4obPcasGGBEJOBkcA0YAwwKvwpeVQ/lI5YqlHNjrSNWzWq\n8fVLVY3qOefArrvC4MHlx0hAPe4vcWwnC/tMGmtUY7uPqpk1EBw53Rx4B7jRzA5x998XaL7K+Xp3\nXwgMDmP1AzYB5pvZDKAHMMrdn8/v19zcTN++fQFoaGigsbGRpqYmYMUvtdaW29VbPq2trakYbyX5\ntLa2xta+mHxK3b6Ws7sc9f5Sabxy+7eLun2x+ZS6/U+Xp02Dyy+n6bnnyuuv5aovR/33sdJ41fh7\n3a7cfNqft7W1EZU4a1QPAvZ09yPC5Z8CA919uJnNA5rcfZGZbQTMcvetO4l1PXA68HNgJkHd6vnu\nfmheO9WoiohIurjDoEFw8MEwbFjS2YhUTdprVP8FfN3MepqZAd8E5oWv3Q40h8+HALd1FMTMBgGv\nuvsLQC9WHH3tFUfSIiIikZoxAz74AI46KulMRDIntomquz8C3Ag8CcwBDJgavjwO2MPMniOYwI7t\nJNRI4Jzw+RXAxcAdwIQY0s6k/EP2SatWPlFuJ4pY5cQotU8p7Ytpm7b3TrWkbdzVyCfqbVQar9z+\nce0zUbf71OLFcMopMGUKdO9eWt+UqMf9JY7tZGGfiattJWKrUQVw97OAswqsXwx8q8gYe+Y8nw8M\niCxBERGROJ12Gnz/+7DjjklnIpJJsdWoJkE1qiIikhr/+AcceCDMnQsNDUlnI1J1aa9RFRERqU+f\nfBJcOPWb32iSKlIBTVRrgOqH0hFLNarZkbZxq0Y1vn6J1ahOnhxMUA85pLj2KVaP+0sc28nCPlN3\nNaoiIiJ159//Dm7uf999YBWd9RSpe6pRFRERidLBB0O/fnDeeUlnIpKoKGpUdURVREQkKvfcAw8/\nDFdfnXQmIjVBNao1QPVD6YilGtXsSNu4VaMaX7+q1qh++CEccwxccgmsuWZR8bKgHveXOLaThX0m\njTWqmqiKiIhE4Te/gW23hX33TToTkZqhGlUREZEcRx45lgULPlxlff/+PZk69dTCnV54AQYOhCee\ngM02izlDkWxQjaqIiEjEFiz4kNmzRxd4pdA6wB2GDw++KlWTVJFI6dR/DVD9UDpiqUY1O9I2btWo\nxtevKjV8BLlwAAAgAElEQVSqN98MCxfC8ccXnVeW1OP+Esd2srDP1FWNqpn1N7MnzeyJ8Oc7ZnZc\n+FofM7vbzJ4zs5lmtm4H/R8zs1YzGxiu625m95hZz7jyFhERKdq77wYT1ClToEePpLMRqTlVqVE1\ns27AK8DX3P0VMxsHvOnu483sFKCPu5+a1+cC4CagDZjk7geZ2XBgibvP6GA7qlEVEZGKNDWNLnjq\nf9Cg0bS05K0/6SR480347W+rkZpIpmSpRvVbwAvu/kq4vD8wKHw+HWgB8ivUlwJrAb2BpeFR133d\n/TvxpysiItKFp56Ca66BZ59NOhORmlWtGtUfAdflLG/o7osA3P01YMMCfSYDI4FpwBhgVPhT8qh+\nKB2xVKOaHWkbt2pU4+tXTu1p//49GTRo9CqP/v17rmi3fDkMGwbnngsbbFBSTllTj/tLHNvJwj6T\nxhrV2I+omlkPYD9WPWKaa5Xz9e6+EBgcxugHbALMN7MZQA9glLs/n9+vubmZvn37AtDQ0EBjYyNN\nTU3Ail9qrS23q7d8WltbUzHeSvJpbW2NrX0x+ZS6fS1ndznq/aXSeOX2bxd1+9x8pk49tet4p5wC\nixfTdPjhJeWj5ewsR/33sdJ41fh73a7cfNqft7W1EZXYa1TNbD9gWO4pezObBzS5+yIz2wiY5e5b\ndxLjeuB04OfATIK61fPd/dC8dqpRFRGReL3xRnBj/7vugq9+NelsRFIrihrVblEl04kfs/Jpf4Db\ngebw+RDgto46m9kg4FV3fwHoxYqjr72iTVNERKQIp54KBx+sSapIFcQ6UTWzNQkupLo576VxwB5m\n9hzwTWBsJ2FGAueEz68ALgbuACZEm2125R+yT1q18olyO1HEKidGqX1KaV9M27S9d6olbeOuRj5R\nb6PSeOX2j2ufKbrdpZfCX/4C55zTdeMaUY/7SxzbycI+E1fbSsRao+ru7wOrVJm7+2KCCWwxMfbM\neT4fGBBZgiIiIsX65BO46CK48EJYZ52ksxGpC1W5j2q1qEZVRERic+GFwdHUu+8Gq6jsTqQuRFGj\nqomqiIhIV155BRob4cEHoX//pLMRyYSsXEwlMVP9UDpiqUY1O9I2btWoxtcvshrVE06AYcNo+fe/\nS9p+LajH/SWO7WRhn0ljjaomqiIiIp256y544gk47bSkMxGpOzr1LyIi0pEPPoDttoNLLoG99ko6\nG5FM0al/ERGROI0dG9SmapIqkghNVGuA6ofSEUs1qtmRtnGrRjW+fhXVqC5YAJddBhMnlr39WpC2\nMWfxMyaKeKpRFRERkYA7HHNMUJf6+c8nnY1I3VKNqoiISL4//AHOOw8efxx69Eg6G5FM0n1U82ii\nKiIiFVuyBLbZJpis7rxz0tmIZJYuphJA9UNpiaUa1exI27hVoxpfv7JqVM84A77znYKT1LS9d6oh\nbWPO4mdMFPFUoxoDM1vXzG4ws3lm9qyZDQzX9zGzu83sOTObaWbrFujb38weM7PWnH7dzeweM+sZ\nZ94iIlKnWlvhuuuCq/1FJHGxnvo3s98Cs919mpmtBqzp7kvMbBzwpruPN7NTgD7ufmpe3wuAm4A2\nYJK7H2Rmw4El7j6jg+3p1L+IiJRn+fLgKOrhh8NhhyWdjUjmpfrUv5mtA+zq7tMA3P0Td18Svrw/\nMD18Ph04oECIpcBaQG9gaXjUdd+OJqkiIiIVufJK6NYNfv7zpDMRkVCcp/63AN4ws2lm9oSZTTWz\nXuFrG7r7IgB3fw3YsED/ycBIYBowBhgV/pQ8qh9KRyzVqGZH2satGtX4+hVdo3rrrfDrX8OUKcFk\nNaLt14K0jTmLnzFRxKvXGtXVYo69A3CMuz9mZhOBU4EzgfzDwKucr3f3hcBgADPrB2wCzDezGUAP\nYJS7P5/fr7m5mb59+wLQ0NBAY2MjTU1NwIpfaq0tt6u3fFpbW1Mx3kryaW1tja19MfmUun0tZ3c5\n6v2l0njl9m8XdfvWMWNg0CCavvKVSLev5ewuR/33sdJ41fh73a7cfNqft7W1EZXYalTN7LPAQ+7+\nhXB5F+AUd/+umc0Dmtx9kZltBMxy9607iXU9cDrwc2AmQd3q+e5+aF471aiKiEhp7rsPDjkE5s6F\ntddOOhuRmpHqGtXw1P5CM+sfrvomMDd8fjvQHD4fAtzWURwzGwS86u4vAL1YcfS1V0d9REREivLx\nxzBsGFx4oSapIikU20Q1dBxwrZm1AtuzosZ0HLCHmT1HMIHt7D4gI4FzwudXABcDdwATYsk4g/IP\n2SetWvlEuZ0oYpUTo9Q+pbQvpm3a3jvVkrZxVyOfqLdRabxy+0e+z0ycCJtsQsv668ey/VqQtjFn\n8TMminjV2GfialuJOGtUcfc5wE4F1i8GvlVkjD1zns8HBkSWoIiI1K1TDzmV026YxLAdDufZE6bT\n0DAbgP79ezJ16qld9BaRatBXqIqISF26b/2tuefNH3MOZ6y0ftCg0bS0jE4mKZEakuoaVRERkdT6\n05/Y4v3/Mp5fJZ2JiHRCE9UaoPqhdMRSjWp2pG3cqlGNr1/B9u+/D8cdx8Qt9+Yj2r+Ru7i4aXvv\nVEPaxpzFz5go4tVrjaomqiIiUl/GjIGdduKx9folnYmIdEE1qiIiUj/mz4ddd4U5c2g6ZCqzZ49e\npYlqVEWiEUWNapdX/ZtZT+D7QF+ge7ja3f2cDjuJiIikjXtwz9TTT4eNN6Z//57A6FWaBetFJA2K\nOfV/GzCD4F6mo3MekhKqH0pHLNWoZkfaxq0a1fj6rdT+97+Ht96C4cMBmDr1VFpagqOno0c3ffq8\ns1tTpe29Uw1pG3MWP2OiiFevNarF3Ed1IMHXlk4HPok3HRERkRi8/TacfDLcfDOsFustxEUkQl3W\nqJrZ74BX3D31dz9WjaqIiBR07LHw0UcwdWrSmYjUjShqVIuZqC4A+gH/ARaHq93dt69kw3HQRFVE\nRFbx+OOwzz4wdy6st17S2YjUjWrd8H9LwICNgS+Hj+0q2ahES/VD6YilGtXsSNu4VaMaX7+Wv/0N\njj4axo7tdJJabNy0vXeqIW1jzuJnTBTx6rVGtcuJqrt3K/QoJriZtZnZHDN70sweyVnfx8zuNrPn\nzGymma1boG9/M3vMzFrNbGC4rruZ3RPeiUBERKRzd9wBvXrBkCFJZyIiZSjqPqpm1gzsBThwp7vP\nKCq42YvAAHd/K2/9OOBNdx9vZqcAffJrYM3sAuAmoA2Y5O4HmdlwYElH29epfxER+dSiRbDddjBr\nFmy7bdLZiNSdat1H9dfA2TmrfmBmn3f3MUXENwoftd0fGBQ+n07w3XX5F2stBdYCegNLw6Ou+7r7\nd4rYroiI1LuTT4bmZk1SRTKsmFP4hwN3AP3Dx5+AI4uM78A9ZvaomR2Rs35Dd18E4O6vARsW6DsZ\nGAlMA8YAo8Kfkkf1Q+mIpRrV7EjbuFWjGkO/WbNg9mxaBg+ONG7a3jvVkLYxZ/EzJop49VqjWszN\n5PoA97j78wBmdg/QVGT8nd39P2a2AcGEdZ6731+g3Srn6919ITA43GY/YBNgvpnNAHoAo9pzytXc\n3Ezfvn0BaGhooLGxkaamIN32X2qtLbert3xaW1tTMd5K8mltbY2tfTH5lLp9LWd3Oer9pdJ45fZv\n12n7pUtpGTIEjjgiqE+NMJ+itq/lmliO+u9jpfGq8fe6Xbn5tD9va2sjKsXcnupvwE7AreGq/YFH\n3f1bJW3I7EzgXXe/0MzmAU3uvsjMNgJmufvWnfS9Hjgd+DnBlw+0Aee7+6F57VSjKiJS784/Hx54\nILiQyioqjxORClTr9lTHAa8Dh4aP/wLHFpHcmmbWO3y+FvBt4Jnw5duB5vD5EIKvae0oziDgVXd/\nAejFiqOvvYrIXURE6klbG1xwAVxyiSapIjWgy4mquz8LfIng3qnbAVu7+7wiYn8WuN/MngT+Adzh\n7neHr40D9jCz54BvAmM7iTMSOCd8fgVwMUHN7IQicqgL+Yfsk1atfKLcThSxyolRap9S2hfTNm3v\nnWpJ27irkU/U26g0Xrn9u+x33HFwwgmwxRYlbSfqdrUkbWPO4mdMFPFi22eq0LYSHdaomtkk4Grg\nFwVec3cf0Vlgd38JaOzgtcVAUaUD7r5nzvP5wIBi+omISJ257TZYsABuuCHpTEQkIh3WqJrZcuBg\n4PoCL7u7d48zsXKoRlVEpE7973+wzTYwbRrsvnvS2YgI8d9HdTAwN/wpIiKSXuecA7vsokmqSI3p\nsEbV3We7++sEFzu9Hy7PJriYaudqJShdU/1QOmKpRjU70jZu1ahW2O/ZZ+Gqq4KLqMrcjmpUO5a2\nMWfxMyaKePVao1rMVf/NQN+c5Z1YcXGTiIhIctxh2DA480zYaKOksxGRiHVWozoCGAFsDrwB/C98\naQNgqbt/pioZlkA1qiIidWbGDJg0CR5+GLqn7tIJkboWd43qmgSTUgPWCZcdWAyMr2SjIiIiFXvr\nLfjVr4Ib+2uSKlKTOqtRPd/d1wZmA3u5+9ruvo67b+7ul1UvRemK6ofSEUs1qtmRtnGrRrXMfiNH\nwoEHwk47Vbwd1ah2LG1jzuJnTBTx6rVGtbMjqu0mERxRBcDM9gO6ufutHXcRERGJ0SOPBPdNnTs3\n6UxEJEYd1qh+2sDsVWC8u18cLo8ATnP31FWtq0ZVRKQOLFsWHEU98UQ49NCksxGRDkRRo1rMVf9r\nA7nFP6sR1KuKiIhU3+TJsO668JOfJJ2JiMSsmIlqK3CGmY01s3HAKODJeNOSUqh+KB2xVKOaHWkb\nt2pUS+h3001w9tnBZNW6PlCjGtXKpW3MWfyMiSKealQ79kvgTuBX4fKbwEmxZSQiItKRyZPh8MNh\n6627bHrkkWN55JH5NDS0rLS+f/+eTJ16akwJikiUuqxRBTCzPsA3wsUH3f3tWLMqk2pURURq2F//\nGkxS586FNbuuQGtqGs3s2aNXWT9o0GhaWlZdLyLRqkqNqpn1BPYGvgrsCBxnZqOK3YCZdTOzJ8zs\n9px1fczsbjN7zsxmmtm6Bfr1N7PHzKzVzAaG67qb2T1hTiIiUi8++giOOQYuuaSoSaqI1IZialRv\nA2YQfG3q6JxHsUYA+fcPORX4q7t/CbgXOK1Av6OA4wgmySeH64YC17j7hyVsv+apfigdsVSjmh1p\nG7dqVIvwm9/AVlvRsvbapW4p0nzS9t6phrSNOYufMVHEU41qxwYCM4HpwCelBDezzxNMNM8DTsx5\naX9gUPh8OsFfkvyCoaXAWkBvYGl41HVfd/9OKTmIiEjGvfgiTJwIjz8OL72UdDYiUkXF3Ef1d8Ar\n7l5y5bmZ3UAwSV0XOMnd9wvXL3b39XLarbQcrtuU4Eju6gRHV5uB2939751sTzWqIiK1xB322Qd2\n2w1OLe1jSDWqIsmKoka1mCOqXwN+bGaHAovDde7u23eR3D7AIndvNbMmoLNEV5lduvtCYHAYqx+w\nCTDfzGYAPYBR7v58fr/m5mb69u0LQENDA42NjTQ1NQErDlNrWcta1rKWM7K8eDG8/DItAwZAS0tJ\n/Xv3/jeDBo0G4O232wBoaOhL//490zM+LWu5hpbbn7e1tREZd+/0ASwv9Cii3xjgX8CLwH+A94AZ\n4WvzgM+GzzcC5nUR63qgH3AusCuwKfC7Au28Hs2aNSvpFFZSrXyi3E4UscqJUWqfUtoX0zZt751q\nSdu4q5FP1NuoNF5R/d99133TTd1bWsrebrHto25XS9I25ix+xkQRr9z+UX9ulNI2nJd1Odfs7NGt\niIlst0KPIvqNdPfN3P0LwMHAve7+s/Dl2wlO5QMMIbhgqyAzGwS86u4vAL1YcfS1V1c5iIhIhp11\nFgweDIMGdd1WRGpSMTWquxVa753UihaIMYiVa1TXA/5IcGT0ZeCH3sG9Wc1sJvAjd3/bzLYCriX4\nSteh7v5QXlvvajwiIpIBTz8N3/wmPPMMbLhh0tmISBmiqFEtZqK6nMI1pN0r2XAcNFEVEakBy5cH\nF08deigcfXTS2YhImapyw39gcs7jOuBd4K5KNirRyi1iToNq5RPldqKIVU6MUvuU0r6Ytml771RL\n2sZdjXyi3kal8TrtP306LF0KRxxR8XaLbR91u1qStjFn8TMminjl9o/6c6OctpXo8qp/dx+eu2xm\nPwaGd9BcRESkfG++GdyG6s47oXvqTtyJSJUVc+p/Us7iakATsLG7N8SYV1l06l9EJOOOOAJ69gy+\nKlVEMq1a91EtdPR0fCUbFRERWcVDD8Gf/wzz5iWdiYikRDE1qoNzHrsBm3sZ31Il8VH9UDpiqUY1\nO9I2btWoAp98AkOHwoQJsO66kW1XNaqVS9uYs/gZE0U81ajmMbOvAG3uPrsqmYiISP269FJYf334\n8Y+TzkREUqTDGlUzW0Z4o37gv8Ae7n5vFXMrmWpURUQy6NVXYfvt4YEH4EtfSjobEYlI3LensvBB\nzk8REZFonXBCcL9UTVJFJE9XNarewXNJEdUPpSOWalSzI23jrusa1Zkz4bHH4PTTY9mualQrl7Yx\nZ/EzJop4qlEtbDrwCcEk9U9hOQCAu3vH1e4iIiJd+fBDGD48qE/t1SvpbEQkhTqrUW2jk6Oo7r5F\nTDmVTTWqIiIZMno0PPUU3Hxz0pmISAyiqFHt8ob/WaKJqohIRvzzn/CNb8CTT8KmmyadjYjEIO6L\nqSQjVD+UjliqUc2OtI277mpU3Wk55JDgq1JLnKSqRrX60jbmLH7GRBGvXmtUNVEVEZHquuEGeOMN\nGDEi6UxEJOV06l9ERKpnyRLYZhu4/nrYZZeksxGRGKlGNY8mqiIiKXfCCfDOO3D11UlnIiIxq0qN\nqpl938z+aWYfm9my8PFJJRuVaKl+KB2xVKOaHWkbd93UqM6ZA9deC+PHV6XerpT2qlHtWNrGnMXP\nmCjiqUa1Y1OAzYDngbnhY15XncxsDTN72MyeNLOnzezMnNf6mNndZvacmc00s1XuyWpm/c3sMTNr\nNbOB4bruZnaPmfUsdoAiIpICy5fD0KFw3nmw/vpJZyMiGdHlqX8zWwBc4u6XlBzcbE13f9/MugMP\nAMe5+yNmNg54093Hm9kpQB93PzWv7wXATUAbMMndDzKz4cASd5/RwfZ06l9EJI2uvBKuugoeeAC6\n6TpekXoQxan/rr6ZCqAFGGpm7wNvhevc3W/pqqO7vx8+XSPcVvsscn9gUPh8eriNlSaqwFJgLaA3\nsDQ86rqvu3+niJxFRCQt3ngj+IrUmTM1SRWRkhTzF+NwYCtgKnADcGP46JKZdTOzJ4HXgHvc/dHw\npQ3dfRGAu78GbFig+2RgJDANGAOMCn9KHtUPpSOWalSzI23jrvka1V/9Cg45BBobK85HNarVl7Yx\nZ/EzJop49VqjWswR1bPp5KtUO+Puy4Gvmtk6wK1mto27zy3UtEDfhcBgADPrB2wCzDezGUAPYJS7\nP5/fr7m5mb59+wLQ0NBAY2MjTU1NwIpfaq0tt6u3fFpbW1Mx3kryaW1tja19MfmUun0tZ3c56v2l\n6HirrQZ3303L1KnQ0lJxPu2ibl9sPqVuX8vZXY7672Ol8arx97pdufm0P29rayMqRd2eKqwx7R8u\nLnD3ZSVvyGwU8D93v9DM5gFN7r7IzDYCZrn71p30vR44Hfg5MJOgbvV8dz80r51qVEVE0uLjj2GH\nHeCMM+AHP0g6GxGpsmrdnmobgqv8nwkfc81sqyL6rd9+Nb+Z9QL2AOaHL98ONIfPhwC3dRJnEPCq\nu78A9GLF0ddeXeUgIiIJuvhi2HhjOOigpDMRkYzqcqIKXAp8DrgufHwuXNeVzwGzzKwVeBiY6e53\nhq+NA/Yws+eAbwJjO4kzEjgnfH4FcDFwBzChiBzqQv4h+6RVK58otxNFrHJilNqnlPbFtE3be6da\n0jbuauQT9Ta6jLdwIYwdC5deCrbqAZVy84lrn4m6XS1J25iz+BkTRbxq7DNxta1EMTWqOwKnuful\nAOEtosZ01cndnwZ26OC1xcC3iknQ3ffMeT4fGFBMPxERSdDxx8Oxx8IXv5h0JiKSYcXcR7UNaAVO\nDFddBHzF3beIN7XSqUZVRCQF7rwTRoyAp5+Gnvp+FpF6Va37qF5JcOX/d3PWjapkoyIiUqM++ACG\nD4fLL9ckVUQq1mWNqrufS3Av1ZvDx2Hu3uWpf6ke1Q+lI5ZqVLMjbeOuqRrVMWNgxx3h29+OJR/V\nqFZf2sacxc+YKOKpRjWPma0HLAHWAW4NH5++FtaZioiIBBYsgClTYM6cpDMRkRrRYY2qmS0Dfkxw\npX8+d/diygaqSjWqIiIJcYc99oB99oETTkg6GxFJgbhrVP8OvA7cR5nfTCUiInXiD3+AN94IrvQX\nEYlIhzWq7j7Y3WcBPwP2CZc/fVQvRemK6ofSEUs1qtmRtnGnvUb1yCPH0tQ0eqVHY2MzRx4Z3gL7\nnXfgpJOC0/6rFXeyTTWq2ZG2MWfxMyaKeKpR7dhLwMHADQBm9gPgd+6+RpyJiYhIOixY8CGzZ4/O\nW9tCQ0NL8HTUKNh7b/jGN6qcmYjUus5qVL8CNAK/BaYQfLsUwN7Age6+ejUSLIVqVEVEotfUNLrA\nRBUGDRpNy4X7wV57wdy58JnPVD85EUmtuGtUvwecSVCfenT4ADDgsUo2KiIi2dfNl8PQoXD++Zqk\nikgsOruP6t3Arwgmpr8Pn58MHAbsFX9qUizVD6UjlmpUsyNt4057jWoHEdn3P09Ajx7Q3Fy1fFSj\nWn1pG3MWP2OiiKca1Tzu/hDwkJk9Cjzr7m9UJSMREUm9dXmLn7fNghsfgm5dfneMiEhZOqxR/bSB\n2b0FVru7fzOelMqnGlURkegdeeRYFiz4cKV1p86/lW4brsO3n/p7QlmJSNpFUaNazER1eYHV7u7d\nK9lwHDRRFRGpgtmz4ac/DS6g6t076WxEJKWimKgWc75mg5xHf4J61Qsr2ahES/VD6YilGtXsSNu4\nM1WjunQpDBtGy2GHVTRJVY1qdqRtzFn8jIkiXr3WqBYzUfWcxxLgOWBInEmJiEhKXXQRbL457LZb\n0pmISB0o9tR/fqPn3H2b2LIqk079i4jE6OWXYcAAeOQR+MIXks5GRFIu7vuotvs7Kyaqy4A2YEIl\nGxURkQwaMQKOP16TVBGpmi5P/bt7k7sPDh/fcvfD3X1+NZKT4qh+KB2xVKOaHWkbdyZqVO+4A+bN\ng5NPjiSealSzI21jzuJnTBTxVKPaATP7vJndaGZvhI8bzOzz1UhORERS4H//g2OPhcmTYY01ks5G\nROpIMTWqDwDfAF4JV30eeNDdd4k5t5KpRlVEJAYjR8JLL8F11yWdiYhkSLXuo/ouMNHdR4XL5wFH\nuvsGlWw4DpqoiohEbN684Ar/p56Cz30u6WxEJEOqdR/VKcAGZtbdzFYD1gemVbJRiZbqh9IRSzWq\n2ZG2cae2RtUdhg2DUaNWmaRmod6ulPaqUe1Y2sacxc+YKOLVa41qh1f9m9mSnMW1gMPC592A94Bf\nxZiXiIgk7dpr4Z134Jhjks5EROpUh6f+zayNVe+f+il336LTwMEFVzOAzwLLgSvcfVL4Wh/gD8Dm\nBLe7+qG7v5PXv/1bsFYDjnL3h82sO3AX8F13X/mLp9GpfxGRyLz9NmyzDdxyCwwcmHQ2IpJBValR\nLTuw2UbARu7eama9gceB/d19vpmNA9509/FmdgrQx91Pzet/AXATwUR2krsfZGbDgSXuPqODbWqi\nKiIShWOOgeXLYcqUpDMRkYyKtUbVzE40sy+GP/MfJ3QV2N1fc/fW8Pl7wDxgk/Dl/YHp4fPpwAEF\nQiwlKDnoDSw1s3WBfTuapNYz1Q+lI5ZqVLMjbeNOXY3qY4/BzTfDmDHRxIuwv2pUqy9tY87iZ0wU\n8VSjuqoJBLekKvQtVA5cVOxGzKwv0Aj8I1y1obsvgmBCa2YbFug2maB0YHXgKGAU0PFfTRERqdyy\nZXD00TBuHPTpk3Q2IlLnOpuo/hx4JPxZtvC0/43ACHf/XwfNVjlf7+4LgcFhjH4ER2Pnm9kMoAcw\nyt2fz+/X3NxM3759AWhoaKCxsZGmpiZgxexfy7Wx3L4uinhNTU2J5ZPbN8r2xeZT6vZrYTmKf++s\n5dO+rsv2zz4La61Fy6abQifti45Xhf03iuW05ZOm5XrcX9qX26UlXjn94/x95efT/rytrY2odFqj\nGl689AdghrvfXnLw4HZWfwL+4u4X56yfBzS5+6KwlnWWu2/dSZzrgdMJJs0zCepWz3f3Q/PaqUZV\nRKRcr70G220HLS2w7bZJZyMiGRf7fVTdfRmwFbBZmfGvBubmTlJDtwPN4fMhwG0dBTCzQcCr7v4C\n0IsVR197lZlTzcn/n03SqpVPlNuJIlY5MUrtU0r7Ytqm7b1TLWkbdzXyKWobv/wlHHZYUZPUSnMu\nt39c+0zU7WpJ2sacxc+YKOJVY5+Jq20lOjv13+4Z4Gwz2xz4T/tKd7+ws05mtjPwE+BpM3uSYII5\n0t3vAsYBfzSzXwAvAz/sJNRI4Efh8yuAa4HuwNAichcRkWLcey/cdx/MnZt0JiIinyrmK1SXF1jt\n7t49npTKp1P/IiJl+Ogj2H57GDsWDih0ExYRkdJFceq/mCOqFV1MJSIiKTdhAnzxi7D//klnIiKy\nkk5rVEObA4+6+3R3nw7MAj6ONy0pheqH0hFLNarZkbZxJ1qj+tJLcNFFcMklYMUf+MhCvV0p7VWj\n2rG0jTmLnzFRxKvXGtViJqpnArmV9bsA18STjoiIVI07HHssnHQShLf1ExFJkw5rVM1sCMEV+U3A\nXOC/4UtbAg3uvk41EiyFalRFREpwyy0wciTMmQOrr550NiJSY+KuUe1LMEl1YJvwAbAcGF/JRkVE\nJGHvvQcjRsD06ZqkikhqdXbqfzywIfAv4BBgA2B9oKe7j6xCblIk1Q+lI5ZqVLMjbeNOpEb17LNh\ntzSJkSoAACAASURBVN1g8OBo4lWpv2pUqy9tY87iZ0wU8eq1RrXDI6ru/gHwgZntA6zm7m+G9z39\nnJn9P3d/oyoZiohItJ55BqZNC36KiKRYMfdRfQJoIbja/zaCUoC73H2f2LMrkWpURUS64A6DBsHB\nB8OwYUlnIyI1LPavUA31B54iqFe9ExhDcOW/iIhkzYwZ8MEHcNRRSWciItKlYiaqnwA7EkxUW4AX\niuwnVaL6oXTEUo1qdqRt3FWrUV28GE45BS6/HLpX9uWCWai3K6W9alQ7lrYxZ/EzJop49VqjWsyE\n86/AMOArwJ8J7qn6zziTEhGRGJx2Ghx0EAwYkHQmIiJFKaZGtRewJ/Ciuz9lZrsA77v7E9VIsBSq\nURUR6cA//gEHHghz50JDQ9LZiEgdiPU+qmZ2IPAP4Ovhqi3NbMucJqmbqIqISAGffAJDh8KECZqk\nikimdHbq/waCi6ZuDJ+3P9qXJSVUP5SOWKpRzY60jTv2fCZPpsUMfvzjyEJmod6ulPaqUe1Y2sac\nxc+YKOLVa41qZ99MdTbwbPhT59NFRLLo3/+Gc86BCy4Aq+gMnIhI1XVZowpgZusD7u5vxp9S+VSj\nKiKS5+CDoV8/OO+8pDMRkToT+31UzexQM2sDFgH/NbMXzewnlWxQRESq5J574OGH4fTTk85ERKQs\nHU5Uw4upZgCbAe+Gj77ADDPbryrZSVFUP5SOWKpRzY60jTuWfD78EI45Bi65BNZcsy7r7UpprxrV\njqVtzFn8jIkiXr3WqHZ2RPV44A1gZ3dvcPcGYOdw3UnVSE5ERMo0fjxsuy3su2/SmYiIlK3DGlUz\nWwxMcPcxeetHAie5+2eqkF9JVKMqIgK88AIMHAhPPAGbbZZ0NiJSp2K9jyqwNrDIzNbLW/96+JqI\niKSNOwwfDiefrEmqiGReZ6f+uwNTCSamuY/Lw9ckJVQ/lI5YqlHNjrSNO9J8br4Z/vUvOPHE+LYR\nQTzVqGZH2sacxc+YKOLVa41qZ0dU/47unyoikh3vvgvHHw+//z306JF0NiIiFSvqPqpZoRpVEalr\nJ50Eb74Jv/1t0pmIiMReoyoiIlnx1FNwzTXw7LNJZyIiEplOb/gv2aD6oXTEUo1qdqRt3BXns3w5\nDB0K554LG2wQzzYijqca1exI25iz+BkTRbx6rVHVRFVEJOumTYNly+Dww5POREQkUkXVqJrZZ4Fv\nAA8DPYC33P3dmHMrmWpURaTuvPFGcGP/u+6Cr3416WxERD4VRY1ql0dUzexbwP9v787jo6jvP46/\nvoByNBwBL1AhXlTBA4TSFkRordSjnq1VUVGryK1QD1Tk8CgWigooCqVKxYq0nlVURAXkEEWQIIQq\nlQpKQfzRRAJKBZPP749d0iRmk93s7M7M7vv5eOyD7Ox3vvP5Yob5OvOe2Y+BZ4HjgGeIPKJKRET8\nduutcMklmqSKSEaK59L/BGBdufdPAz1SU47UhvJDwehLGdXwCNq4a13P0qXw6qtw992p20aK+lNG\nNTyCNuYwHmO86E8Z1diOBp4r974IaJaackREJC5790ZuoLrvPmjSxO9qRERSosaMqnMuH/ga+CEw\nHrgQ2GVmnVJfXmKUURWRrHH//ZGzqfPmgUsqAiYikhJeZFTjmaj+gkgudf/ooj3ABWb2ajIbTgVN\nVEUkK2zeDB06wNtvQ9u2flcjIlKltNxMZWZzgBOAwdHXCUGcpGYz5YeC0ZcyquERtHEnXM+wYTBw\nYEKT1GzM2yXSXhnV2II25jAeY7zoL1szqjV+M1X00v8TwFNmtiX1JYmISExz58L778PMmX5XIiKS\ncvFc+t8KHAyUAG8RmbQ+a2a7Ul9eYnTpX0Qy2u7dcPzx8NBDcOaZflcjIlKtdGVUHXAq8EsiN1K1\nBHabWU4yG04FTVRFJKONHg0FBfDMM35XIiJSo3RlVA1YAbwNLI8ubpjMRsVbyg8Foy9lVMMjaOOO\nq55//hOmTIGJE1O3jTT2p4xqeARtzGE8xnjRnzKqMTjnXgB6AfWBYmAG8GSK6xIRkX3MIjdP3X47\nHHaY39WIiKRNPJf+vwFeJjI5fcnM9qSjsNrQpX8RyUh//SuMHQsrV0K9Gs8viIgEQroyqs3M7Mtk\nNpIumqiKSMYpLobjjoOnn4auXf2uRkQkbinNqDrnPnDO9QIWRX8u/1qdzEbFW8oPBaMvZVTDI2jj\nrraeUaMid/gnOUnNxrxdIu2VUY0taGMO4zHGi/6UUf2u44Hc6J8iIpJuq1bB7NmRO/1FRLJQjZf+\nw0SX/kUkY5SWRs6iXncd/OY3flcjIpKwtDyeyjn3L+fcWeXe93DOvZbMRkVEpAZ/+hPUrQtXXeV3\nJSIivqkuo9rEOdcGyAPynHOtnXOtgR7Az+Lp3Dn3qHNum3Pug0rLc51z85xzHznnXnPONa1i3bbO\nuRXOuXzn3A+jy+o65153zjVIYIwZT/mhYPSljGp4BG3c36nniy/gjjvgkUegTo3nE2q3DZ/7U0Y1\nPII25jAeY7zoL1szqtX9CzgM+BdgwIPAJ9HXaODTOPufAfy8iuW3Am+Y2feB+cBtVbTpB1wPnAXc\nHF02AHjCzP4b5/ZFRMJn+HDo0wdOPNHvSkREfBUzo+qcuxS4jMhEcRWwhciktQiYZmZvx7WByFnZ\nl8zsxHLLPgR6mNk259whwEIzO7bSevcSmcRuAsYQmaT+1czOqGZbyqiKSLgtXgy9e8O6ddC4sd/V\niIjUmhcZ1Zh3/ZvZU8BTzrnRwNNmti6ZDVVykJlti27nc+fcQVW0eRiYCexP5OzqSGCshzWIiPjm\nuut+z/r1FS8O1S0tYeba6Rw6fYomqSIixPEVqsDdwMXOucuBfdlQM7MbPazjO6dBzewz4CcAzrmj\ngEOBD51zM4H9gJFm9nHl9a666iry8vIAaNasGR06dKBnz57A//IUmfZ+37Jsq2fixIme/fetXHu6\n6snPz2fo0KEpaR9PPYluP1Pee/HfO9n3y5d/yOrVVwE9gchnv2Y2m3Mbc+iFFwZ6f/Giv9quv2+Z\n1+3jrSfR7WfC+yDsL37U4/W/j8n2V9v1E/n7qrxOovXs+3njxo14xsyqfQFTgJLoqzT6KqlpvXLr\ntwE+qLTsH8DB0Z8PAf5RQx+zgaOAe4DuwOHAX6poZ9lowYIFfpdQQbrq8XI7XvRVmz4SXSeR9vG0\nDdrvTroEYdw9eow2sOhrgR3OJvs/WtilXYakZHtejznZ/mq7fqr2Ga/bZZKgjTmMxxgv+kvHPuN1\n2+i8LK75YqxXPF+huhV4E7gUGAqcDyw2szHxTISdc3lEMqonlFs2Dig0s3HOueFArpndGmP9HsC5\nZnajc+4+4HkiudWJZvbLSm2tpvGIiARBz55jeOutMWXvn+MC3udkFvcoYeHCMTHXExEJi7Q8R5XI\nt1Mtjv68FXgGuC6ezp1zs4C3gbbOuU+dc1dHPxoHnO6c+wg4Dfh9Nd3cTiR+ADAdmAS8BEyIpwYR\nkaA7mzm0p4Dx3OJ3KSIigRLPRPVzIlnWz4E/AffFuR5m1tvMWplZfTNrbWYzossLzexnZvZ9M+tl\nZl9W08fP931uZh+aWScz62Bmy+KpIRuUz4YEQbrq8XI7XvRVmz4SXSeR9vG0DdrvTroEadwN+ZrL\nuJZBTGEP9VO2Ha/HnGx/tV0/VfuM1+0ySdDGHMZjjBf9pWOfSVXbZMRzM9UdwHbgRmAisJvIM1ZF\nRKSW2rZtAIzhmk/ms3VHQ/Z2WEoPlkaXi4gIVPMc1TBSRlVEQuXDD6F7d1i9Glq18rsaERFPpfQ5\nqpW/9rQSM7OTktmwiEhWM4OBA2HkSE1SRURiqC5renw1rxOqWU/STPmhYPSljGp4BGLcTz0FRUUw\ncGBa6snGvF0i7ZVRjS1oYw7jMcaL/pRRrcTM4rphSkREEvTll3DTTfD881AvnlsFRESyUzzPUT21\nquVmtiglFSVBGVURCYXBg+Hbb2HqVL8rERFJGS8yqvFMVEup+itO6yaz4VTQRFVEAm/lSjj7bFi3\nDpo397saEZGUSdcD/x8u93oK2AnMTWaj4i3lh4LRlzKq4eHbuEtKoH9/GDeuwiRVGdXUraeMavKC\nNuYwHmO86E8Z1RjMbHD59865S4HBMZqLiEgsf/wjNGwIffr4XYmISCjEc+l/crm39YCeQCsza5bC\numpFl/5FJLC2bYMTToAFC6B9e7+rERFJuXRmVCv7g5kNT2bDqaCJqogE1hVXRJ6XOm6c35WIiKRF\nujKqPyn3OhVoE8RJajZTfigYfSmjGh5pH/fChbBoUeTh/lV+vDANJXi7jTDk7RJpr4xqbEEbcxiP\nMV70l60Z1Ronqmb2FvAB8CXwNXCgc+7kVBcmIpIR9uyJfAPVpEmQk+N3NSIioRLPpf8RwGigwuOo\n9HgqEZE43HsvvP02vPgiuKSugImIhEq6Mqo7gEJgMVCyb7mZXZ3MhlNBE1URCZSNG6FzZ3jvPTji\nCL+rERFJq3RlVD8EJplZHzO7et8rmY2Kt5QfCkZfyqiGR9rGff318Nvf1jhJVUY1despo5q8oI05\njMcYL/rL1oxqPF8yPRx41Tl3PlAcXWZmdl7qyhIRCbm//x3Wr4enn/a7EhGR0Irn0n8BcFylxaaM\nqohIDF99Be3awYwZ8NOf+l2NiIgvvLj0H88Z1ebAA8AjwN5kNiYikhXuvhu6d9ckVUQkSfFkVJ8D\nTgIOB1qUe0lAKD8UjL6UUQ2PlI67oAAefRQmTAhGPSnaRhjydom0V0Y1tqCNOYzHGC/6U0Y1tgGA\nEXngf3mBu/QvIuIrs8gzU8eMgUMO8bsaEZHQiyej+mciE9UKgnjnvzKqIuKrmTNh8mR4912oq/+X\nF5HslpbnqIaJJqoi4pvCQmjfHl56KfLsVBGRLJeW56g65x6r4vVoMhsVbyk/FIy+lFENj5SMe8QI\nuOCCWk1SlVFN3XrKqCYvaGMO4zHGi/6UUY3tqiqWGXCNt6WIiITU8uWR56auW+d3JSIiGSWejGqn\ncm9zgVuAD83s+lQWVhu69C8iafftt9ClS+QbqC6/3O9qREQCIy3PUTWzlZU2ejRwBxC4iaqISNo9\n8gg0bQqXXeZ3JSIiGSeejGpxuddXwBSgJPWlSbyUHwpGX8qohodn4966Fe66Cx5+GFztTxooo5q6\n9ZRRTV7QxhzGY4wX/SmjGlsh/3s8VQmwERiTonpERMLjt7+Fvn3huMrfMi0iIl7Q46lERGrjjTfg\n2msjN1A1auR3NSIigZPSx1M5565zzk2vtMw55/7onLsumY2KiITaN9/AoEHw4IOapIqIpFB1GdUb\ngc/LL4iertwK3JzKoiQxyg8Foy9lVMMj6XGPHw/HHgvnnBOMenzYRhjydom0V0Y1tqCNOYzHGC/6\nU0b1u1oTyaNW9ilweEqqEREJug0bYNIkWLmy5rYiIpKUmBlV59xnwFozO7PS8leB480scJNVZVRF\nJKXM4OyzoUcPGD7c72pERAIt1c9RfRa43jn3AfBGdNnPgPbA5GQ2KiISSs89B5s2wbBhflciIpIV\nqsuojgAWAccDQ6Ov44G3op9JQCg/FIy+lFENj1qNe9cuGDo08szU/ff3vx6ftxGGvF0i7ZVRjS1o\nYw7jMcaL/pRRrcTMvgJ6Oud+CnQi8izVlWa2IC2ViYgEyZ13wk9+ErnsLyIiaaHnqIqI1GTNGjjt\nNFi7Fg46yO9qRERCIaXPURUREaC0FAYMiHxVqiapIiJppYlqBlB+KBh9KaMaHgmN+/HHYc+eyFel\nBqGegGwjDHm7RNoroxpb0MYcxmOMF/0poyoiIhX95z9w223wyitQt67f1YiIZB1lVEVEYrnuOqhf\nP/JVqSIikpBUP0dVRCR7LVsGL78M69b5XYmISNbyLaPqnNvonFvtnFvlnFseo81g59wa59wc51y9\n6LJuzrn70lttsCk/FIy+lFENjxrH/e23kRuoJkyApk39ryeA2whD3i6R9sqoxha0MYfxGONFf9ma\nUfXzZqpSoKeZdTSzLjHaXGZmJwDLgJ9Hl40E7k5HgSKSpR56CA44AC65xO9KRESymm8ZVefcJ0Bn\nM/tPNW2WAT2A0US+EesgoLmZVfkVrsqoikjS/v1vOOkkWLoUvv99v6sREQmtsD9H1YDXnXPvOedi\nPfdlCvAOcBjwNnBVdJmISGoMGxa57K9JqoiI7/w8o9rSzLY65w4EXgcGm9mSatqPBFYTmeD2AT41\nsxsrtbErr7ySvLw8AJo1a0aHDh3o2bMn8L88Raa937cs2+qZOHGiZ/99K9eernry8/MZOnRoStrH\nU0+i28+U9zH/e7/3Hj0feQQKClj47rv+1+Phey/3Fy/6q+36+5Z53T7eehLdfia8T8fvZxDr8frf\nx2T7q+36ifx9VV4n0Xr2/bxx40YAHn/88aTPqGJmvr+IXNr/bTWftwJejP68EHDAKOC0Su0sGy1Y\nsMDvEipIVz1ebseLvmrTR6LrJNI+nrZB+91JlyrHvXu32dFHm738cjDqCfg2ku2vtuunap/xul0m\nCdqYw3iM8aK/dOwzXreNzsuSmiP6ckbVOdcIqGNmu5xz3wPmAXea2bwY7f8EPGhmq51z7wA/BkYA\nq83spXLtzI/xiEgGuPNO+OADePZZvysREckIYX6O6sHA8845i9bwZDWT1A5EZuSro4ueAtYAnwLj\n0lGsiGS4jz+OPNR/1Sq/KxERkXLq+LFRM/vEzDpY5NFUJ5jZ76tpm29mfcu9n2Rmx5vZWWa2Nz0V\nB1v5bEgQpKseL7fjRV+16SPRdRJpH0/boP3upEuFcZvBoEFw661w+OH+1xOSbSTbX23XT9U+43W7\nTBK0MYfxGONFf+nYZ1LVNhm+TFRFRALjmWdgyxa44Qa/KxERkUp8u+s/FZRRFZGEFBdDu3Ywezac\ncorf1YiIZBQvMqqaqIpI9ho2DL78EmbM8LsSEZGME/YH/otHlB8KRl/KqIbHwoULIT8fnnwSxo/3\nuxxlVFO4njKqyQvamMN4jPGiP2VURUSyRWkpDBwIv/sdHHig39WIiEgMuvQvItln+nR47DFYuhTq\n6P/XRURSQRnVSjRRFZEa/d//Qfv2MG8edOjgdzUiIhlLGVUBlB8KSl/KqIbE8OEsPPXUQE1SlVFN\n3XrKqCYvaGMO4zHGi/6UURURyXRLlkTOpF59td+ViIhIHHTpX0Syw969cPLJMHIk/PrXflcjIpLx\ndOlfRCRekyZBq1Zw0UV+VyIiInHSRDUDKD8UjL6UUQ2wzz6D3/8epkwB5wI3bmVUU7eeMqrJC9qY\nw3iM8aI/ZVRFRDLV0KEweDAcfbTflYiISAKUURWRzPbKK3DDDbBmDTRo4Hc1IiJZw4uMaj2vihER\nCZyvv46cSZ06VZNUEZEQ0qX/DKD8UDD6UkY1gO69Fzp3hl69KiwO2riVUU3desqoJi9oYw7jMcaL\n/rI1o6ozqiKSmT76CB55BFav9rsSERGpJWVURSTzmMHpp8MvfhG5kUpERNJOz1EVEanK7NmwfXsk\nnyoiIqGliWoGUH4oGH0poxoQO3bATTdFLvvXqzrdFLRxK6OauvWUUU1e0MYcxmOMF/1la0ZVE1UR\nySwjR8LZZ8OPf+x3JSIikiRlVEUkc7z/Ppx1FhQUQIsWflcjIpLVlFEVEdmnpAT69488kkqTVBGR\njKCJagZQfigYfSmj6rPp06F+fbjyyhqbBm3cyqimbj1lVJMXtDGH8RjjRX/ZmlHVc1RFJPy2bYNR\no+DNN6GO/v9bRCRTKKMqIuHXpw8cfDD84Q9+VyIiIlFeZFR1RlVEwu2tt2DhQli3zu9KRETEY7pG\nlgGUHwpGX8qo+mDPHhgwACZOhJycuFcL2riVUU3desqoJi9oYw7jMcaL/rI1o6qJqoiE1/33wxFH\nwAUX+F2JiIikgDKqIhJOmzZBp06wfDkceaTf1YiISCV6jqqIZK/rr4ehQzVJFRHJYJqoZgDlh4LR\nlzKqafTii/Dhh3DzzbVaPWjjVkY1despo5q8oI05jMcYL/rL1oyq7voXkXD56qvI2dRHH4084F9E\nRDKWMqoiEi633RbJp86a5XclIiJSDS8yqpqoikh4rFsHPXrABx9Ay5Z+VyMiItXQzVQCKD8UlL6U\nUU0xMxg0KPJVqUlOUoM2bmVUU7eeMqrJC9qYw3iM8aK/bM2oaqIqIuHw5JNQXAwDB/pdiYiIpIku\n/YtI8BUVQbt28Pe/Q5cuflcjIiJxUEa1Ek1URTLUwIGRS/+PPOJ3JSIiEidlVAVQfigofSmjmiLv\nvQfPPw9jx3rWZdDGrYxq6tZTRjV5QRtzGI8xXvSnjKqISNCUlMCAATBuHOTm+l2NiIikmS79i0hw\nPfQQPPMMLFgALqmrRyIikmbKqFaiiapIBvn8czjhBHjrrciNVCIiEirKqAqg/FBQ+lJG1WM33gjX\nXJOSSWrQxq2MaurWU0Y1eUEbcxiPMV70l60Z1Xpp2YqISCLmz4elS6GgwO9KRETER7r0LyLB8s03\ncNJJkRuozjvP72pERKSWdOlfRDLPhAnQtq0mqSIioolqJlB+KBh9KaPqgU8+gQcegMmTU7qZoI1b\nGdXUraeMavKCNuYwHmO86C9bM6qaqIpIMJjBkCGRm6jy8vyuRkREAkAZVREJhuefhxEjID8f9t/f\n72pERCRJeo5qJZqoioTUrl2Rx1DNnAk9e/pdjYiIeEA3Uwmg/FBQ+lJGNQl33QU9eqRtkhqYcUcp\no5q69ZRRTV7QxhzGY4wX/WVrRlXPURURfxUUwIwZsHat35WIiEjA6NK/iPjHLHIm9ZJLYOBAv6sR\nEREP6dK/iITb44/D7t3Qr5/flYiISABpopoBlB8KRl/KqCaosBBuvRWmToW6ddO66WzcZ7Ixb5dI\ne2VUYwvamMN4jPGiv2zNqGqiKiL+uO02uOgi6NTJ70pERCSglFEVkfR75x248EJYtw6aNfO7GhER\nSQFlVEUkfL79FgYMgAkTNEkVEZFqaaKaAZQfCkZfyqjGacoUaN4cLr00/duOysZ9Jhvzdom0V0Y1\ntqCNOYzHGC/6y9aMqp6jKiLps2UL3HMPLF4MLqmrQSIikgWUURWR9LnkEjj66MhkVUREMpoXGVWd\nURWR9Hj9dVi+PPItVCIiInFQRjUDKD8UjL6UUa3Gf/8b+eapBx+Ehg3Ts81qZOM+k415u0TaK6Ma\nW9DGHMZjjBf9ZWtGVRNVEUm98ePhhBPg7LP9rkREREJEGVURSa2PP4Yf/Qjefx9at/a7GhERSRM9\nR1VEgs0MBg+G4cM1SRURkYRpopoBlB8KRl/KqFbh2Wdh82YYOjS120lQNu4z2Zi3S6S9MqqxBW3M\nYTzGeNFftmZUdde/iKTGzp0wbBjMmgX77ed3NSIiEkLKqIpIatx4IxQW6nFUIiJZSs9RFZFg+uAD\neOIJKCjwuxIREQkxZVQzgPJDwehLGdWo0lIYMCDy7VMHHuh9/x7Ixn0mG/N2ibRXRjW2oI05jMcY\nL/rL1oyqJqoi4q0ZM6CkBK691u9KREQk5JRRFRHvbN8O7dvD3LnQsaPf1YiIiI+8yKhqoioi3rn2\nWsjJgYkT/a5ERER8pgf+C6D8UFD6yvqM6tKlkTOpd93lXZ8pko37TDbm7RJpr4xqbEEbcxiPMV70\np4yqiEht7d0buYHqvvugSRO/qxERkQyhS/8ikrz774+cTX3tNXBJXeUREZEMoYxqJZqoivhg82bo\n0AGWLYNjjvG7GhERCQhlVAVQfigofWVtRnXoUBg0KFST1GzcZ7Ixb5dIe2VUYwvamMN4jPGiv2zN\nqOqbqUSk9l59FfLzI99CJSIi4jFd+heR2tm9G44/HqZMgTPO8LsaEREJGF36FxH/3HsvnHyyJqki\nIpIymqhmAOWHgtFXVmVU16+Hhx8O7YP9s3Gfyca8XSLtlVGNLWhjDuMxxov+sjWjqomqiCTGLHLz\n1O23w6GH+l2NiIhkMGVURSQxf/0rjB0LK1dCPd2PKSIiVdNzVCvRRFUkxYqL4bjj4OmnoWtXv6sR\nEZEA081UAig/FJS+siKjOnIknHlm6Cep2bjPZGPeLpH2yqjGFrQxh/EY40V/2ZpR1XU7EYnPqlUw\nezasW+d3JSIikiV06V9EalZaGjmL2rcvXHON39WIiEgI6NK/iKTH9OlQty5cfbXflYiISBbRRDUD\nKD8UjL4yNqP6xReRbOojj0CdzPgnIxv3mWzM2yXSXhnV2II25jAeY7zoL1szqplx1BGR1LnlFrji\nCjjxRL8rERGRLKOMqojEtmgRXHZZ5Aaqxo39rkZEREJEGVURSZ29e2HAgMjXpGqSKiIiPtBENQMo\nPxSMvjIuo/rAA9C6NVx4YdzbDIts3GeyMW+XSHtlVGML2pjDeIzxor9szajqOaoi8l2bNsH48fDu\nu+CSumojIiJSa8qoish3XXABdOwIo0b5XYmIBEheXh6bNm3yuwwJmDZt2rBx48bvLPcio6qJqohU\nNGcO/Pa3sGYN1K/vdzUiEiDRiYffZUjAxPq90M1UAig/FJS+MiKj+vXXMGQITJmS0ZPUbNxnsjFv\nl0h7ZVRjy8YxS3Booioi//O738EPfwinn+53JSIiIrr0LyJR//gHnHoqrF4NrVr5XY2IBJAu/UtV\ndOlfRFLLDAYNinxVqiapIiISEJqoZoCg5YeUUU3dOinLqM6aBUVFMHBgQvWEVTbuM8qoprddJgnT\nmI844gjmz5/vdxniIU1URbLdl1/CzTfD1KlQT49WFpHslK5J7s0330zbtm1p2rQp7dq144knnqi2\n/axZs8jLy6Nx48ZceOGFfPnllwn3NXPmTOrUqcNjjz1WYVnnzp1p2rQprVu3Zvjw4ZSWllZYb/bs\n2bRr146cnByOOeYYli5dmsTIa8nMMuYVGY6IJGTQILN+/fyuQkRCIOjH2by8PHvzzTfTvm4iqzHb\nvQAAFKRJREFUxowZY+vXrzczs3fffddyc3Nt2bJlVbZdu3atNW7c2JYsWWJfffWV9e7d2y655JKE\n+ioqKrJjjz3WTjjhBHv00UfLlk+dOtWWLFlie/futS1btlinTp1s3LhxZZ/PmzfP8vLybPny5WZm\ntmXLFtuyZUuVdcb6vYguT2pupzOqItlsxQp45hkYO9bvSkREPLF8+XLat29PixYtuOaaa9izZ0/Z\nZ3PmzKFjx47k5uZyyimnsGbNGgD69OnDp59+yjnnnEOTJk2YMGECAL/+9a9p2bIlubm59OzZk3Xr\n1iVd3+jRoznmmGMA6NKlC927d2fZsmVVtp01axbnnnsu3bp1o1GjRtx9990899xzfPXVV3H3ddtt\nt3HDDTfQokWLCsv79etHt27dqFevHi1btuSyyy6rcMZ0zJgxjBo1ih/84AcAtGzZkpYtWyY9/kRp\nopoBgpYfUkY1det4mlEtKWHhZZfBuHHQvHlCdYRdNu4zyqimt10mCduYZ82axeuvv86GDRv46KOP\nuOeeewBYtWoV11xzDdOnT6ewsJB+/fpx7rnnsnfvXmbOnEnr1q2ZM2cOxcXF3HTTTQCcddZZbNiw\ngS+++IKTTz6Zyy67rGw748aNIzc3l+bNm5Obm1vh5+Zx/pu6e/du3nvvPdq3b1/l5wUFBZx00kll\n74888kjq16/P+vXr4+pr+fLlrFy5kv79+9dYy6JFi8rWLS0tZcWKFXzxxRccc8wxtG7dmiFDhvDN\nN9/ENS4v+TZRdc496pzb5pz7oJo2g51za5xzc5xz9aLLujnn7ktfpSIZatq0yEP9+/TxuxIREc8M\nGTKEVq1a0axZM0aMGMFTTz0FwPTp0+nfvz+dO3fGOccVV1xB/fr1eeedd8rWtUqPWLrqqqto1KgR\n++23H6NGjWL16tXs3LkTgOHDh1NUVERhYSFFRUUVfi4sLIyr1v79+9OxY0d69epV5ee7du2iadOm\nFZY1adKkrIbq+iotLWXQoEFMmTKlxjoee+wxVq5cWTZB37ZtG3v37uXZZ59l6dKl5Ofns2rVqrJJ\nf1olmx2o7Qs4BegAfFBNm2XRP0cAZ0d/ngs0i9G+yoyEiFSydavZAQeYrV3rdyUiEiJBP87m5eXZ\nK6+8Uva+oKDAGjVqZGZmZ511ln3ve9+z3Nxcy83NtWbNmtn3vvc9mz17dtm65TOqJSUlNnz4cDvq\nqKOsadOm1qxZM6tTp47961//8qTWm266yTp37mw7d+6M2ea8886zP/zhDxWW5eTk2Pvvv19jX5Mn\nT7Zrrrmm7H3Pnj0rZFT3ef755+2QQw6xgoKCsmVFRUXmnLMnnniibNmzzz5rJ598cpV1xvq9wIOM\nqm+3+JrZEudcm5raOef2BxoBe51zlwOvmNmXNawmItW56Sb4zW8gxuUmEZGw+uyzz8p+3rRpE62i\nz4Y+/PDDGTFiBLfddluV6zlX8bn0s2bN4qWXXmL+/Pm0bt2aHTt2kJubW3bW9d5772Xs2LHfWc/M\ncM5RXFwcs8bRo0fz2muvsWjRInJycmK2a9++PatXry57v2HDBvbu3Uvbtm1r7Gv+/PksWrSIl19+\nGYDCwkLy8/PJz89n8uTJAMydO5d+/frxyiuv0K5du7J1mzVrxmGHHVbt30/aJDvTTeYFtKH6M6qX\nA+8DjwM5wBtA3WraVzmjz3QLFizwu4QK0lWPl9vxoq/a9JHoOom0j9l2/nyz1q3Ndu4M3O9OugRt\n3Omox+ttJNtfbddP1T7jdbtMUn7MQT/O5uXl2YknnmibN2+2//znP3bKKafYHXfcYWZmK1assNat\nW9u7775rZma7du2yl19+2Xbt2mVmZj/60Y9s+vTpZX09/PDD1rFjRysuLrZdu3bZgAEDrE6dOrZh\nw4akahw7dqwdc8wxtm3bthrbFhQUWNOmTW3JkiW2a9cu6927t/Xu3Tuuvnbs2GHbtm0re3Xt2tUe\neOABKy4uNjOzN99801q0aGGLFy+uctujRo2yLl262BdffGGFhYXWvXt3Gz16dJVtY/1eEOYzqvEw\ns78AfwFwzo0EJgNnOef6AJ+a2Y2V17nqqqvIy8sDIv9H0KFDB3r27An8LxCeae/3ybZ68vPzAzHe\nZOrJz89PWfsq69m7l57XXw+TJrFwxYqEt6/34X3v9f6SbH+1XX8fr9vHW0+i28+090HnnKN37970\n6tWLrVu3cv755zNixAgAOnXqxPTp0xk8eDAff/wxDRs25JRTTqFHjx5A5O74IUOGcMstt3DHHXfQ\nv39/XnvtNQ499FBatGjB3XffzbRp05KuccSIEdSvX5+jjz667Ozr7bffzq233gpA48aNmTt3Lt26\ndaNdu3ZMnTqV3r17U1hYyOmnn17hWajV9dWkSROaNGlS1rZ+/fo0adKExo0bA3DPPfdQXFzMWWed\nVbZu9+7dy87Ajhw5ku3bt9O2bVsaNmzIxRdfzO233x5zXPt+RxYuXMjGjRuT/nvax5n595290Uv/\nL5nZiTW0awVMNbNznXMLgZ8AI4GlZvZmuXbm53hEAm/sWFi2DF58Efy6jCMioRXrO90lu8X6vYgu\nT+pg4/fjqVz0VZO7iExMARpE/ywlkl0VkXiVlsLkyZqkiohIKPj5eKpZwNtAW+fcp865q2O060Ak\n47AvTfwUsAboSuQJAFkvaJdk0lWPl9vxoq/a9JHoOom0r7LtHXfAEUfUevuZImjjTkc9Xm8j2f5q\nu36q9hmv22WSbByzBIefd/33jrNdPtC33PtJwKRU1SUiIiJJ8OqKjSIGgs8ZVa8poyoiIpI6yqhK\nVTI5oyoiIiIiUiVNVDNA0PJDyqimbp2kM6pJbj9TBG3cyqimbj1lVJOXKWO+88476ePDV0bv2bOH\nYcOGlT3mavDgwZSUlHyn3T//+U8aNmxYbY019fXhhx9y2mmn0axZM9q2bcsLL7xQYf2//e1vtGvX\njqZNm3L88cfz97//3buBpogmqiIiIiIpcu+99/L++++zbt061q9fz8qVK7nnnnu+027w4MF06dKl\n1n2VlJRw3nnnce6551JUVMS0adO4/PLL+fjjjwHYsmULV1xxBRMnTmTHjh2MHz+e3r17s337du8H\n7aVkvzEgSC8C/o0ZIiIiYRb04+yWLVvsl7/8pR144IF25JFH2uTJk83MbO7cubb//vvb/vvvbzk5\nOdahQwczM5sxY4Ydd9xx1rhxYzvqqKNs2rRpntfUuXNne/rpp8vez5o1y1q3bl2hzVNPPWUXX3yx\n3XnnnXbFFVfUqq+1a9da48aNK7Tv1auXjRo1yszM3n33XTv44IMrfH7ggQfaO++8U7uBlRPr9wIP\nvplKZ1RFREQk9MyMc845h44dO7J161befPNNJk2axOuvv87Pf/5zbr/9di6++GJ27tzJqlWrADj4\n4IN55ZVXKC4uZsaMGQwbNqzsW8oqW7p0Kbm5uTRv3pzc3NwKPzdv3py33347rjpLS0vZvHkzO3fu\nBKC4uJjRo0dz//33J3yjWuW+qvo7Wbt2LQCdO3fmuOOOY86cOZSWlvLCCy/QoEEDTjyx2u9c8p0m\nqhkgaPkhZVRTt44yqt4I2riVUU3desqoJi8sY37vvffYvn07I0aMoG7duuTl5XHttdcye/bsmOuc\neeaZZV+73r17d3r16sXixYurbNutWzeKioooLCykqKiows+FhYV07dq1yvXOOOMMJk2axPbt2/n8\n88958MEHAfj6668BGDVqFH379qVVq1Y1jrG6vr7//e9z0EEHMWHCBL799lvmzZvHW2+9VbadOnXq\ncMUVV3DppZdSv359Lr/8cqZNm0bDhg1r3K6ffHuOqoiIiIhXNm3axL///W+aN28ORM4mlpaWcuqp\np8Zc59VXX+Wuu+5i/fr1lJaWsnv3bs/PMI4YMYIdO3bQoUMHGjRoQN++fcnPz+fggw8mPz+fN954\nI+ZZ3ET6AnjhhRcYPHgw48aNo3Pnzlx88cXUr18fgDfeeINbbrmFRYsW0bFjR1asWMG5557L3Llz\ng31WNdnsQJBeBDw7IyIiEmZBPs4uW7bM2rZtG/PzyvnPb775xho1amTPPfeclZSUmJnZ+eefbyNH\njqxy/cWLF1tOTo41bty4wmvfsiVLlsRV57Rp06xr165mZjZx4kTLycmxli1b2iGHHGI5OTnWsGFD\n69SpU8J9VaVr1642ffp0MzObMGGCXXjhhRU+P//88+2+++6La1vVifV7gTKqIiIiItClSxcaN27M\n+PHj+e9//0tJSQkFBQWsWLECiORRN27cWJYD3bNnD3v27OGAAw6gTp06vPrqq8ybNy9m/6eccgo7\nd+6kuLi4wmvfsm7dulW53pYtW9i6dSsA77zzDvfccw933XUXAP369WPDhg3k5+ezevVq+vfvzy9+\n8YuYdVTXF8CaNWv45ptv+Prrr5kwYQKff/45V155JQA/+MEPWLJkCatXR76RftWqVSxZsiTYZ1NR\nRjUjBC0/pIxq6tZRRtUbQRu3MqqpW08Z1eSFZcx16tRhzpw55Ofnc8QRR3DQQQfRt29fiouLAbjo\nooswM1q0aEHnzp3Jyclh0qRJXHTRRTRv3pzZs2dz3nnneV7Xhg0b6Nq1Kzk5OVx99dWMHz+e0047\nDYAGDRpw0EEHlb1ycnJo0KBBWXzhs88+o0mTJmzevLnGvgCeeOIJWrZsySGHHMKCBQt4/fXX2W+/\n/QA49dRTGT16NL/61a9o2rQpF110ESNGjOBnP/uZ52P2kjKqIiIikhEOOeQQZs2aVeVnzZs3/86N\nUgMHDmTgwIEpral79+588skncbUdPXp0hfeHH3542UQ7nr7Gjx/P+PHjY36ejvF6ze07BZ4JnHOW\nSeMREREJkljf6S7ZLdbvRXS5S6ZvXfoXERERkUDSRDUDBC0/pIxq6tZRRtUbQRu3MqqpW08Z1eRl\n45glODRRFREREZFAUkZVRERE4qKMqlQllRlV3fUvIiIicWnTpg3OJTXvkAzUpk2blPWtS/8ZIGj5\nIWVUU7eOMqreCNq4lVFN3XrKqCav/Jj3PTDfz9eCBQtCuZ1k+6vt+omsV9u2GzduTNnvnyaqIlks\n3u+XFpEI7TMi6aWMqkgWGzNmDGPGjPG7DJHQ0D4jEj89R1WA4F2K0qX/1K3j9aX/bBW0vxtd+k/d\nerqkn7yg/d2E8RjjRX/p2GeCeIzRRDUD/PnPf/a7hArSVY+X2/Gir9r0keg6ibSPp20qc0VBlo37\njNfbSLa/2q6fqn0m3nbZuM9k4/6Siu2EYZ9JVdtkZNylf79rEBEREZGIZC/9Z9REVUREREQyhy79\ni4iIiEggaaIqIiIiIoGkiaqIiIiIBJImqiIiIiISSJqoioiIiEgg1fO7gFRzzjUCHga+Ad4ys1k+\nlyQSaM65I4ARQBMz+7Xf9YgEmXPuPOBsoDHwmJm97nNJIoHmnDsWuAFoAcw3s6nVts/0x1M55y4H\niszsZefcbDO7xO+aRMLAOfc3TVRF4uOcawb8wcz6+l2LSBg45xzwuJn1qa5d6C79O+cedc5tc859\nUGn5Gc65D51z651zw8t9dBjwWfTnkrQVKhIQtdhnRLJWEvvLHcCU9FQpEhy12Wecc+cAc4BXauo/\ndBNVYAbw8/ILnHN1gIeiy9sDl0ZPLUNkknrYvqbpKlIkQBLdZ8qapac8kUBJeH9xzv0eeMXM8tNZ\nqEhAJLzPmNlLZnY2cHlNnYduompmS4CiSou7AP80s01mtheYDZwX/ex54FfOuSnAS+mrVCQYEt1n\nnHPNnXOPAB10plWyTS32lyHAaUSOM9eltViRAKjFPtPDOTfJOTcVeLmm/jPlZqpD+d/lfYDNRP6S\nMLOvgd/4UZRIgFW3zxQCA/woSiSgqttfHgQe9KMokQCrbp95C3gr3o5Cd0ZVRERERLJDpkxU/w20\nLvf+sOgyEama9hmR+Gl/EUmMZ/tMWCeqjoo3erwHHO2ca+Oc2x+4BHjRl8pEgkn7jEj8tL+IJCZl\n+0zoJqrOuVnA20Bb59ynzrmrzawEGALMAwqA2Wb2Dz/rFAkK7TMi8dP+IpKYVO8zGf/AfxEREREJ\np9CdURURERGR7KCJqoiIiIgEkiaqIiIiIhJImqiKiIiISCBpoioiIiIigaSJqoiIiIgEkiaqIiIi\nIhJImqiKiKSBc66+c26Lc+7e6PsznXOjnXOty7X5xDlX7OE2mzvnvnbOXe9VnyIi6aSJqohIelwO\nHAz8Mfr+bGAUkFeuzRDgSq82aGaFwLPAUK/6FBFJJ01URURqyTk3wDlX6py7zjnXJHrGdI1zbr8q\nml8K/MPMPnHOXQkMjC5f6Jwrif78EPB4tO+ron3Pcs4VOOe2OecudM79xTm3yzn3nHOuTrTtj51z\nbzvndjrnPnLOXVJuuy8BbZxzP0zN34KISOpooioiUktm9gjwBjAO+BNwANDHzPaWbxedUP4IeC+6\n6C0i34ENcBewb2JZ/jut9/3cFXg42vffgCJgMXAe8AvnXC4wB2gK3ANsBP7inDsxuv57gAO6Jzda\nEZH000RVRCQ51wJ1gV8C48xsVRVtDgAaAVsAzGwj8M/oZ/PN7Olq+n/czKYAW4lMXocB+9ofAfwY\nyAWOBcYCPyMyMf1ptM2W6J95CY5LRMR39fwuQEQk5JoD9aM/t6yhrSv3s8VsVdGO6J97gd1m9m00\nKuCITJD3mQk8Ue79xiq2KSISKjqjKiJSS865esCfgf8jcnn+N865M6touh3YDbQqt6yIyCTyIufc\nWUmUsQwoBM4AjgNOAG4DDo1+vm+bm5LYhoiILzRRFRGpvZFEJoaDgJuAj4A/OuealG9kZqVEJpSd\nyy1+EvgHMAB4oHzzSj9XlVst+8zMiog8QeBj4F7gduAr/ndGtXO07aKERyci4jNnFu/VJxERqS3n\n3NVEbrg6xsz+lcbt/gXoamZHpmubIiJe0RlVEZH0eJLIDVF907XB6BMBzqfiGVsRkdDQGVURERER\nCSSdURURERGRQNJEVUREREQCSRNVEREREQkkTVRFREREJJA0URURERGRQPp/7GCIb0x8U+oAAAAA\nSUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7ff5ff21ab38>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x2 = np.arange(0,300)\ny2 = 1-np.exp(-(x2/scale)**shape) # This is the equation for Weibull CDF\n\nplt.plot(x2,y2)\nplt.title(\"Weibull CDF - Prediction\",weight='bold')\nplt.grid()\nplt.show()",
"execution_count": 28,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x7ff5ff31a780>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Now, we're done!"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Actually, there's more to this. &nbsp;There are considerations that need to be made in determining if our line through the data points is a \"good\" fit. &nbsp;Also, when dealing with suspensions as outlined in this part 2, I have found that if I have very large quantities of suspensions compared to actual failures, X on Y median rank regression method did not work very well. &nbsp;After brief <a href=\"http://www.weibull.com/hotwire/issue16/relbasics16.htm\">research</a>, I have found that in this case, it is recommended that I use a non-graphical method called maximum likelihood estimation (MLE). &nbsp;When I have time, I will look into estimating Weibull paramenters using MLE method. &nbsp;I guess that will be my Part 3."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<a name=\"MLE\"></a>\n<br>\n<br>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Part 3 - Estimating Weibull parameters using Maximum Likelihood Estimation (MLE)"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "[[back to top](#sections)]"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### To solve for our scale parameter (k) using MLE, we need to solve for this equation below:"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center>$\\huge{\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}=\\frac{\\sum\\limits_{i=1}^n (x_i)^kln(x_i)}{\\sum\\limits_{i=1}^n (x_i)^k}-\\frac{1}{k}\\approx0}$</center> ,<br><br>\n<center>Where $x_i$ is the ith failure time,</center><br>\n<center>r is the number of failures,</center><br>\n<center>and n is the total number of failure times, both failed and suspended</center>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### The equation above basically means we need to find a value of k such that the left of the equation equals the right equation or in other words, the value of k such that the difference between the left of the equation and right of the equation is as close to zero as possible. Once we find the value of k, the scale parameter can be calculated as:"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center>$\\large{\\lambda=\\left(\\sum\\limits_{i=1}^n \\frac{(x_i)^k}{r}\\right)^\\frac{1}{k}}$</center>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Let's get data from a csv file and calculate the left side of the equation $\\left(\\large{\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}}\\right)$:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "import pandas\nfrom numpy import log as ln\n\n# Open csv file\ndf = pandas.read_csv('/home/pybokeh/Desktop/data.csv')\n\ndf_failed = df[df.STATUS=='FAILED']\n\ndtf_failed = df_failed[\"DTF\"].values\n\ndef ln_x_div_r(series):\n return ln(series[\"DTF\"])/len(df_failed)\n\nleft_eq_sum = np.sum( ln(dtf_failed)/len(df_failed) )\n\ndf_failed[\"ln_x_div_r\"] = df_failed.apply(ln_x_div_r, axis=1)\n\nprint(df_failed.to_string(),\"\\n\")\nprint(\"Sum of \\\"ln_x_div_r\\\" column =\", left_eq_sum)",
"execution_count": 2,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": " DTF STATUS ln_x_div_r\n1 77.8 FAILED 0.395831\n4 101.8 FAILED 0.420274\n5 105.9 FAILED 0.423863\n6 117.0 FAILED 0.432925\n7 126.9 FAILED 0.440309\n8 138.7 FAILED 0.448392\n9 148.9 FAILED 0.454843\n11 157.3 FAILED 0.459832\n12 163.8 FAILED 0.463513\n16 207.0 FAILED 0.484793\n18 217.4 FAILED 0.489249 \n\nSum of \"ln_x_div_r\" column = 4.91382428308\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center>left side = $\\large{\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}=4.9138}$</center>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### The left side of the equation was calculated to be 4.9138. Next we are going to calculate the right side of the equation using 100,000 values of k ranging from 0.1 to 10 and then substract the result from 4.9138. Basically, what we are trying to achieve is throw a lot of k values into the right side of the equation, and subtract the result from it from 4.9138 until we find the difference as small or close to zero as possible. "
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center>$\\large{4.9138-\\left(\\frac{\\sum\\limits_{i=1}^n (x_i)^kln(x_i)}{\\sum\\limits_{i=1}^n (x_i)^k}-\\frac{1}{k}\\right) \\approx 0}$</center>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### This script below will calculate the 100,000 values that represent the difference of the left side and right side of the equation:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "dtf_all = df[\"DTF\"].values\n\n# Generate 10,0000 k values that is between 0.1 and 10\n# Can't use 0 because it is not a valid value in the right-side equation formula, so we're using 0.1 instead\nk = np.linspace(0.1,5,100000,endpoint=True)\n\nright = []\nfor value in k:\n right_eq = np.sum( dtf_all**value * ln(dtf_all) ) / np.sum( dtf_all**value ) - (1/value)\n right.append(right_eq)\n \nright_values = np.array(right)\n\ndiff = right_values - left_eq_sum",
"execution_count": 3,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### When it is done, at this point we should have 100,000 difference values and their corresponding k values. Now let's plot them and see what they look like:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "plt.plot(k,diff)\nplt.ylabel(\"Difference\")\nplt.xlabel(\"k\")\nplt.grid()\nplt.show()",
"execution_count": 4,
"outputs": [
{
"data": {
"image/png": "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\nTWNtrgAAAABJRU5ErkJggg==\n"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### As I've already mentioned, we need to choose a k value where the difference between the left equation and right equation is close to 0 as possible. From the plot above, it looks like it would be approximately 3. But instead of trying to \"eye-ball it\", let's calculate a more precise value for k where the difference is as close to zero as possible:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "ks = np.array(k)\ndiffs = np.array(diff)\n\nd = {'k' : ks,\n 'diff' : diffs}\n \ndf_k_diff = pandas.DataFrame(d, index=np.arange(1,ks.size+1)) # Create one-based index instead of zero-based\ndf_k_diff = df_k_diff.sort_index(axis=1, ascending=False) # Re-sorting the columns so that k column in on the left\n\nprint(\"What the k values and their diffs look like:\")\nprint(df_k_diff.head())\nprint(df_k_diff.tail(), \"\\n\")\n\nprint(\"The row with the first smallest difference:\")\nk_with_smallest_diff = df_k_diff[ (df_k_diff[\"diff\"] >= 0.000001)][0:1]\nprint(k_with_smallest_diff, \"\\n\")\n\nfinal_k = k_with_smallest_diff[\"k\"].values\nk_final = final_k[0]\nprint(\"Therefore, the k value we should use where the difference is as close to zero is:\", k_final)",
"execution_count": 5,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "What the k values and their diffs look like:\n k diff\n1 0.100000 -9.977133\n2 0.100049 -9.972226\n3 0.100098 -9.967325\n4 0.100147 -9.962428\n5 0.100196 -9.957536\n k diff\n99996 4.999804 0.234991\n99997 4.999853 0.234995\n99998 4.999902 0.234999\n99999 4.999951 0.235003\n100000 5.000000 0.235006 \n\nThe row with the first smallest difference:\n k diff\n58663 2.974467 0.000004 \n\nTherefore, the k value we should use where the difference is as close to zero is: 2.97446674467\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### OK so now that we solved for k, we can solve for the scale ($\\lambda$) parameter next:"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center>$\\large{\\lambda=\\left(\\sum\\limits_{i=1}^n \\frac{(x_i)^k}{r}\\right)^\\frac{1}{k}}$</center>"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "l = (np.sum((dtf_all**k_final)/len(df_failed)))**(1/k_final)\nprint(\"scale parameter:\",l)",
"execution_count": 6,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "scale parameter: 203.294704504\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Let's revisit the difference vs k value plot again:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x = []\nfor value in range(0,100000):\n x.append(k_final)\n\nplt.plot(k,diff)\nplt.plot(x,diff)\nplt.title(\"The difference is zero when k=2.974\")\nplt.ylabel(\"Difference\")\nplt.xlabel(\"k\")\nplt.grid()\nplt.show()",
"execution_count": 7,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEVCAYAAAACW4lMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVGX+B/DPoHjhJoqiCCgIoZAUeM80KUNzFbR0U8zU\n1C776+dqZblWr6Q10TVzzaxc/VVoWppbXkuD1HHNEs1LWizhBZSLKBooyH14fn+cmMMIAzPIzDkz\n83m/XvOaOXMOZ77z+Hi+c57vuWiEEAJEROTQnJQOgIiIlMdkQERETAZERMRkQEREYDIgIiIwGRAR\nEZgMbE58fDyefPJJi6w7MTERQ4cO1U+7u7sjMzMTAFBaWoqYmBh4enpi4sSJAIDXX38dnTp1Qteu\nXS0Sj6UdOnQIvXr1UjqMZqXVauHv72+Vz4qKisJHH31klc8iy2MyUBk3Nze4u7vD3d0dTk5OcHFx\n0U9/9tln0Gg0VoulqKgIAQEBAIB///vfuHr1Kn7//Xds2bIFly5dwooVK5CWlobc3FyrxdSchg4d\nirS0NKXDsFkajeaO++O8efMQEhICDw8PhIaG4tNPP21w+cWLF6N79+5o164d4uLiUFRUpJ939913\n6/+vuLu7w9nZGbGxsXXWsWHDBjg5OTGR3YbJQGWKi4tRVFSEoqIidO/eHbt379ZPT548GUqdI3jx\n4kWEhITAyUnqMpcuXYKXlxe8vLzMXpcQQrHvoRZVVVVKh6AKbm5u2L17N27evIn169djzpw5+PHH\nH+tddv369di4cSN++OEH5ObmorS0FLNnz9bP//XXX/X/V4qKiuDv74/HH3/cYB0FBQVISEhA7969\nrfrDyhYwGdgYjUaDiooKTJs2DR4eHujduzeOHz+un5+bm4vx48fD29sbPXr0wHvvvWd0XdevX0ds\nbCzatWuHgQMH4vz58wbznZyccP78eSxcuBCLFi3Cli1b4O7ujrVr12LEiBHIzc2Fu7s7ZsyYAQA4\ncuQIBg8ejPbt2yMiIgIHDx7UrysqKgqvv/467r//fri6uiIjIwNpaWmIjo6Gl5cXevXqha1bt+qX\nnz59Op5//nmMGTMGHh4eGDRoEC5cuKCf/+uvv+r/tkuXLliyZAkAoLq6GkuXLkVwcDA6duyIiRMn\noqCgoN7vf/uQyj/+8Q/4+fnBw8MDvXr1wv79++v8Tc13rnm4uLjoEyQAfPzxxwgLC0OHDh3wyCOP\n4NKlSwbt+cEHH+Cuu+5Cz549AQDr1q3DXXfdBS8vL4wdOxaXL1+uN9Zp06ZhxYoVAICcnBz9ugDg\n/PnzdZLyihUr0LlzZ3Tt2hWJiYn698vLyzFv3jx0794dXbp0wV/+8heUlZXp28PPz8/o3zbk8uXL\nuOeee/DOO++YtHyN+Ph4hISEAAAGDBiAoUOHGk0Gu3btwsyZM+Hr6wtXV1fMnz8fW7Zs0cdf28GD\nB3Ht2jWMHz/e4P0FCxZgzpw5TfoRY/cEqVZAQIDYt2+fwXsLFy4Ubdq0EXv27BHV1dViwYIFYtCg\nQUIIIXQ6nejTp49YtGiRqKysFBcuXBA9evQQ3377bb3rnzhxopg4caIoKSkRv/zyi/D19RVDhw7V\nz9doNOL8+fNCCCHi4+PFk08+qZ+n1WqFn5+ffjo7O1t4eXmJPXv2CCGESE5OFl5eXuLatWtCCCGG\nDRsmunfvLlJTU4VOpxOFhYXCz89PJCYmCp1OJ06ePCk6duwoUlNThRBCTJs2TXh5eYljx46Jqqoq\n8cQTT4hJkyYJIYS4efOm6NKli1ixYoUoLy8XRUVFIiUlRQghxMqVK8V9990ncnJyREVFhXj22WdF\nXFxcvd//wIED+u+QlpYm/P39xeXLl4UQQly8eFH/3RvyxBNPiMmTJwshhNi+fbsIDg4WaWlpQqfT\nibfeeksMHjzYoD1HjBghCgoKRFlZmdi3b5/o2LGjOHnypCgvLxezZ88WDzzwQL2f8/HHH4uYmBgh\nhBCbNm0SQUFBYuLEiUIIIT766CMxbtw4/Xdq2bKlWLhwoaiqqhLffPONcHFxEYWFhUIIIebOnSvG\njh0rCgoKRFFRkYiJiRELFiww6W9vFxUVJT766CNx4cIFERISItatW6ef95e//EV4enrW+7j33nvr\nXV9JSYnw8fEx2l8nTJggli1bpp/+/vvvhUajEadPn66z7FNPPSWeeuopg/dSUlJE//79RXV1tT52\nkjEZqJixZBAdHa2f/vXXX0Xbtm2FEEIcOXJEdOvWzWD5hISEOv8phBCiqqpKODs7i99++03/3quv\nviqGDBmin66dDBYuXCimTJmin1d7QyqEEEuXLjVIFkIIMXLkSLF+/XohhLThWLhwoX7e5s2bDRKP\nEEI888wz4s033xRCSMng6aef1s/75ptvRK9evYQQQnz22WeiT58+db6TEEKEhoYatFlubq5wdnYW\nOp2uzrK1v8PZs2eFt7e3+O6770RFRUW9677d0qVLRb9+/URZWZkQQohHHnnEYAOj0+mEi4uLuHTp\nkhBCas8DBw7o58+YMUPMnz9fP11cXCycnZ3FxYsX63zWuXPnRPv27UV1dbV47rnnxL/+9S997FOn\nThX//Oc/9d+pbdu2Bt/X29tbpKSkiOrqauHq6mqQ5H744QcRGBjY6N/WJyoqSrz44osiICBAbN68\n2aQ2a8jUqVPFqFGjjM7/v//7PxESEiIyMzNFYWGhiImJERqNRhw5csRguVu3bgkPDw9x8OBB/XtV\nVVWiX79++u/CZFAXh4lsUOfOnfWvXVxcUFZWhurqaly8eBG5ublo3769/rFkyRJcvXq1zjry8/NR\nVVVlMEzSrVu3Jsd08eJFbN261eCzDx8+jLy8PP0ytT/r4sWLSElJMVj+s88+w5UrVwBIw2G1v2fb\ntm1RXFwMAMjKykKPHj3qjSMzMxOPPvqofp1hYWFo2bKlfr3GBAcHY+XKlYiPj0fnzp0RFxdndMgG\nAPbs2YNVq1Zh+/btaN26tf47zZkzR//ZNUMROTk59bbB5cuX0b17d/20q6srvLy8DJavERQUBFdX\nV5w6dQqHDh3CmDFj0LVrV6Snp+M///kPhg0bpl/Wy8vLYOjKxcUFxcXFyM/PR0lJCfr27auPcdSo\nUbh27Vqjf1sfIQQ2bdoEPz+/OsMx5nr55ZeRmpqKL774wugyM2bMQFxcHKKiohAeHo6HHnoIAODn\n52ew3FdffQUvLy888MAD+vc++OAD3HPPPRgwYIBB/CRjMrAxDRW9/P39ERgYiIKCAv3j5s2b2L17\nd51lO3XqhJYtWxqMadd+ba5u3brhySefNPjsoqIivPLKK/XG3q1bNwwbNqzO8u+//75Jn1W7fnD7\nvL179xqst6SkBD4+Po2uNy4uDocOHcLFixeh0Wgwf/78epf77bffMH36dGzduhW+vr4Gn7127VqD\nz7516xYGDRpUbxt07dpVf+guANy6dQvXr183WGdtw4YNw9atW1FZWYmuXbti2LBhSExMREFBASIi\nIhr9fh07dkTbtm2Rmpqqj6+wsBA3b95s9G/ro9Fo8Oabb8LLywuTJ09GdXW1ft5zzz1nUFup/QgP\nDzdYz8KFC/Htt98iKSkJbm5uDX5efHw8MjIycOnSJYSFhcHPz69Oe61fvx5Tp041eG///v3Ytm0b\nfHx84OPjgx9++AEvvfQS/vrXvzbpu9sjJgMb09CvmQEDBsDd3R3Lli1DaWkpdDodfvnlF/z00091\nlm3RogUee+wxxMfHo7S0FKmpqVi/fn2T45oyZQp27dqFpKQk6HQ6lJWVQavVGvzKrR37mDFjkJ6e\njo0bN6KyshKVlZU4duyY/lDPhr7n6NGjcfnyZbz77rsoLy9HUVERjh49CkDaCL366qv6xJafn4+d\nO3c2Gn96ejr279+P8vJytG7dGm3atEGLFi3qLHfz5k2MHTsWixcvxuDBgw3mPffcc0hISEBqaioA\n4MaNGwZF8dvFxcXhk08+wc8//4zy8nK8+uqrGDRokNE9tGHDhmH16tX6X7xRUVFYvXo1hg4datKR\nMU5OTnj66acxd+5c5OfnA5D2WpKSkhr9W2OcnZ2xdetW3Lp1C1OnTtX/u61Zs8bgyJ7ajzNnzuj/\nfsmSJfj888+RnJyM9u3bN/hZBQUFOH/+PIQQSE1NxUsvvYQ33njDYJns7GxotVpMmzbN4P3ExESk\npaXh559/xqlTp9CvXz/Ex8dj8eLFTf7u9obJwMbUd2x3zXSLFi2we/dunDp1Cj169ECnTp3wzDPP\nGP3lt3r1ahQXF6NLly6YMWMGZsyYYbDu218b+1xA2lXfsWMHEhIS4O3tjW7duuGdd94x2KjXXt7N\nzQ1JSUnYvHkzfH194ePjgwULFqCioqLRz3N3d0dycjJ27doFHx8fhISEQKvVAgDmzJmD2NhYjBgx\nAh4eHrjvvvv0icJYewLSUTYLFixAp06d4OPjg2vXrumPUKrtxIkTSE9PxwsvvKD/pevh4QEAGDdu\nHObPn49JkyahXbt2CA8Px7ffflvv9weA4cOHY9GiRRg/fjy6du2KjIwMbN682WisDzzwAIqLi/XJ\n4P7770dpaanBcEh9n1PbP/7xDwQHB2PQoEFo164doqOjkZ6ebtLfGuPs7IyvvvoKV65cwcyZM80a\nfnnttdeQlZWF4OBgfXsuXbpUP9/d3R2HDx8GAFy7dg2jR4+Gm5sb/vSnP2HmzJmYNWuWwfo+/fRT\nDB48GIGBgQbvt2vXDt7e3vD29kbnzp3RqlUreHh4wN3d3ezva680ggNnREQOTzV7BllZWXjwwQdx\n9913o3fv3li1apXSIREROQzV7Bnk5eUhLy8PERERKC4uRt++fbF9+3aEhoYqHRoRkd1TzZ5Bly5d\n9EdEuLm5ITQ01GaveUNEZGtaKh1AfTIzM3Hy5EkMHDhQ/x6vI0JE1DSmDACpZs+gRnFxMSZMmIB3\n3323zjHH4o8LnDn6Y+HChYrHoJYH24JtwbZo+GEqVSWDyspKjB8/HlOmTMG4ceOUDke1ap+o5OjY\nFjK2hYxtYT7VJAMhBGbOnImwsDDMnTtX6XCIiByKapLB4cOHsXHjRhw4cACRkZGIjIzE3r17lQ5L\nlaZPn650CKrBtpCxLWRsC/Op5tDSxmg0GrPGv4iIyPRtp2r2DMh0NZdeILZFbWwLGdvCfEwGRETE\nYSIiInvGYSIiIjIZk4EN4niojG0hY1vI2BbmYzIgIiLWDIiI7BlrBkREZDImAxvE8VAZ20LGtpCx\nLczHZEBERKwZEBHZM9YMiIjIZEwGNojjoTK2hYxtIWNbmI/JgIiIWDMgIrJnrBkQEZHJmAxsEMdD\nZWwLGdtCxrYwH5MBERGxZkBEZM9YMyAiIpMxGdggjofK2BYytoWMbWE+JgMiImLNgIjInrFmQERE\nJmMysEEcD5WxLWRsCxnbwnxMBkRExJoBkT0oLCuEeyt3tHBqoXQopBI6HVBRAbi4mLbtbGmFmIjI\nwvqu7YukKUkI6hCkdCgOQQhpQ1teXvdRVlb/++Xl0t+Y8qisNH1ZYw8hgFatTP9OqkoGe/fuxdy5\nc6HT6TBr1izMnz9f6ZBUSavVIioqSukwVIFtIUv5PgVBsfadDGo2wqWl0ka3tLT+1z/9pEVQUJTR\njbIpG+6GlquoAJydgdatDR9t2tR97/ZHq1Z1H66uQPv29c9r6qPFHzuJGo1pbauaZKDT6fC///u/\n+O677+Dr64v+/fsjNjYWoaGhSodGREYIIW0ob90CSkqk55rXJSXyBrqxjbepr8vKpI1w27bShrdt\n2/pfFxcD58/XvzH28Gh4Y23qBt3JziquqkkGR48eRXBwMAICAgAAkyZNwo4dO5gM6sFfwjK2hWzg\nkIH1vl9ZCRQVSRvIoiLDDXZ9G/GGnm9/r6RE/mXr6gq4uMjPLi7yBvr2jbaLC9Chg/GNeX2v27aV\nNsQtTCqLRDVn0zoE1SSDnJwc+Pv766f9/PyQkpJisMz06dP1ycLT0xMRERH6jUHNoWSc5rStT1dU\nAHv3alFSAtx9dxSKi4Hvv9eitBTo1k2a/vlnaX6HDtJ0bkUpHt2cAndNEIqKgPx8aX55eRSqqoA2\nbbRwcQG8vKLg5gZUVmrRurW0PhcXoLBQi7ZtgZ49o9CpE5CTo0XnzkCfPlFwdQXS06X5Q4dKy//8\ns/T3I0dGoUULy7RHSYk6/j1sbVqr1SIxMREA9NtLU6jmaKIvv/wSe/fuxbp16wAAGzduREpKCt57\n7z0APJqoNi3HyfXU1hY6HXDzJnDjhvQoLKz/dUPzKiqkoQx3d8DNTXquedServ361bwgTNUtQuyD\nk+vMa9PG9HFje6G2fqEkU7edqtkz8PX1RVZWln46KysLfn5+CkZEjqy0FPj9d/lx/brhdH3v3bgh\nDZ+4uQHt2gGentLz7a87dQKCg+u+XzPt4mL+xnvxKiAiABgyxCLNQQ5ANXsGVVVV6NmzJ/bt24eu\nXbtiwIAB+Pzzz/U1A+4ZUFPpdNKG++pV6ZGfb/g6P7/uhr2qCvDyksa1a55rHvVNt28vbcjd3ZUp\nLAatCuKhpVQvm9szaNmyJVavXo2RI0dCp9Nh5syZLB6TUVVVwJUrQG4ucPmy9Fzfxv7qVaCgQNpQ\ne3tLj06d5Nf33CNN197Ae3k17dc5kS1TzZ5BY7hnILPn8dDqamkjn5NjuKG//fX160DHjoC7uxY9\ne0bBxwfo3NlwQ1/z2ssLaKmanz2WEbQqCIsCFmFy7GSlQ1EFe/4/Yi6b2zMgx1BSAmRlAZcuARcv\nSs81j4sXgexsaezczw/o2hXw8ZGe+/UznPb2ljbwWi3A//NEd457BtSsqqulX/DnzwPnzsnPFy5I\nG/ubNwF/f6BbN+nRvbv8uls3aV7btkp/C9vDmgEZwz0Dsqj8fCA1Ffjvf4GzZ+UN/4UL0mGRQUHS\nETNBQcDYsUCPHkBAgPSLXokCKxE1jMnABllrPFQIaXw+NVXe8Ne81umA0FDpERICDB4sbfx79JCO\nqLEWjg3LHOHaRKZivzAfkwEBkC5ZkJYGnDoFnDwpPZ86JV0HJixMevTuDTz+uJQAunTh0TZE9oQ1\nAwek00m/7o8cAVJSpI3/f/8rjdlHRACRkdJzRIR0hA6pH2sGZAxrBqR37Zq04a95HDsmbeQHDQIG\nDgRmzQLCw6ULjBGRY2IpzwbVXJTKmIICYPt2YM4c6aSqoCBg1SqpcPvii1KRNz0d2LABeP55KSnY\naiJorC0cScr3KY0v5CDYL8zHPQM7UFEBfP898M03wP790pE9990HPPggsG4d0Lev/Z90RUR3hjUD\nG5WXB+zZA3z9NfDdd9IRPaNHAw8/DPTvb97t7sj2sWZAxrBmYIdyc4F//xv44gvg11+lDf+YMcD7\n77PQS0R3hjUDlbt+XdrYDxsmHdp54gQwZowWV64AW7cC06c7diLg2LCMNQMZ+4X5mAxUSKcDvv1W\nOqY/KAj44Qfg5ZelyzwkJkoFXw4DEVFzYs1ARfLzgTVrpKKvtzcwcyYQFyddfpmoIawZkDGsGdiQ\nX38FVq6U6gETJgA7d0onfBERWQuHiRR0/DgQEyMVgrt1k479X7eu8UTA8VAZ20LGmoGM/cJ83DNQ\nwIkTQHy89LxggVQIbtNG6aiIyJGxZmBF2dnA3/4mnRi2YAHw9NNMAtQ8WDMgY0zddnKYyApKS4FF\ni4B77wUCA6XhoNmzmQiISD2YDCxMq5UuAvfzz1KNYNEiwM3tTtepbY7Q7ALbQsaagYz9wnysGVhI\nUREwf750ZNAHHwCxsUpHRERkHGsGFnD8ODBxonTW8Dvv8DwBsjzWDMgY1gwUIATw3nvAqFHAkiXA\nRx8xERCRbWAyaCZlZcATT0iXi/jxR+DPf7bcZ3E8VMa2kLFmIGO/MB+TQTO4ehV46CGgulq6r0AQ\n99SJyMawZnCHzp0DRowApkyRTiRzYnolBbBmQMbw2kRW8N//AtHRwMKF0glkRES2ir9jm+jMGWD4\ncCAhwfqJgOOhMraFjDUDGfuF+VSRDF5++WWEhobi3nvvxWOPPYYbN24oHVKDzp8HHnlEOmx06lSl\noyEiunOqqBkkJydj+PDhcHJywt/+9jcAwNKlSw2WUUvN4MoV4P77gXnzgOeeUzoaIglrBmSMTZ1n\nEB0dDac/Kq8DBw5Edna2whHVr6QE+NOfgCefZCIgIvuiugLyxx9/jLi4uHrnTZ8+HQEBAQAAT09P\nREREICoqCoA8Rmip6QMHtEhIAEJDo/DGG5b/vIama4+HKvH5apqueU8t8Sg1XXq2FJ98+Aneeu0t\nVcSj9PTKlSutun1Q07RWq0ViYiIA6LeXprDaMFF0dDTy8vLqvJ+QkICYmBgAwOLFi3HixAl8+eWX\ndZZTepho5UpgwwbpPAIXF8XCACD9w9d0AkfHtpAErQrCooBFmBw7WelQVIH9QmbqtlMVNQMASExM\nxLp167Bv3z60qefazkomg5QU6UJzKSmAGYmWyGpYMyBjbOo8g7179+Ltt9/GwYMH600ESrp1Szqh\n7IMPmAiIyH6pooA8e/ZsFBcXIzo6GpGRkfif//kfpUPSe+kl6eih8eOVjkRWe7zc0bEtZDzPQMZ+\nYT5V7BmcPXtW6RDqtW8fsGcPcPq00pEQEVmWamoGjbF2zaC8XLpN5bJlvDENqR9rBmSMTZ1noEbv\nvAOEhDAREJFjYDKoR3Y2sGIFsGqV0pHUj+OhMraFjDUDGfuF+ZgM6vHmm9LF53j0EBE5CtYMbpOW\nBgwdCqSnA+3bW/zjiJoFawZkDGsGTfT669JF6JgIiMiRMBnUkpoKHDoEzJ6tdCQN43iojG0hY81A\nxn5hPiaDWt5+W0oESl97iIjI2kyqGRw6dAjnzp3DU089hfz8fBQXFyMwMNAa8elZumaQnQ3cc490\nT+MOHSz2MUQWwZoBGdNsNYP4+HgsW7YMS5YsAQBUVFRgypQpdx6hyqxaBUybxkRARI6p0WSwbds2\n7NixA66urgAAX19fFBUVWTwwayorAz75RP21ghocD5WxLWSsGcjYL8zXaDJo3bq1/i5kAHDr1i2L\nBqSEL78E+vQBevRQOhIiImU0mgz+/Oc/49lnn0VhYSHWrl2L4cOHY9asWdaIzWrWrgWeeUbpKEzH\nm3bI2BaygUMGKh2CarBfmK/Rq5a+/PLLSEpKgru7O9LT07Fo0SJER0dbIzarSEuTTjDjNYiIyJE1\numeQkZGBoUOHYvny5Vi+fDmGDBmCzMxMK4RmHZ9+Kt28xtlZ6UhMx/FQGdtCxpqBjP3CfI0mgwkT\nJqBFixbyHzg5YcKECRYNylqEADZvBuLilI6EiEhZjSYDnU6HVq1a6adbt26NyspKiwZlLT/9BLRo\nAURGKh2JeTgeKmNbyFgzkLFfmK/RZNCxY0fs2LFDP71jxw507NjRokFZy+bNwKRJgEajdCRERMpq\nNBmsWbMGCQkJ8Pf3h7+/P5YuXYp//etf1ojNooQAvvgCmDhR6UjMx/FQGdtCxpqBjP3CfI0eTRQc\nHIyUlBQUFxcDANzc3CwelDWcPAm0bQvcfbfSkRARKa/RaxOVlZXhyy+/RGZmJnQ6HYQQ0Gg0eOON\nN6wVI4DmvzbRokVAQYF0RzMiW8drE5Expm47G90zGDt2LDw9PdG3b1+0adOmWYJTg927gT8ut0RE\n5PAaTQY5OTn49ttvrRGL1Vy5Ip1oNmSI0pE0jVar5dESf2BbyFK+T0FQLPcMAPaLpmi0gDx48GCc\nPn3aGrFYzZ49wMMPA7WOmCUicmiN1gxCQ0Nx7tw5BAYGonXr1tIfaTRWTxDNWTOYMgUYNky66T2R\nPWDNgIxptprBnj17miUgtRACOHAAiI9XOhIiIvVodJgoICAAWVlZOHDgAAICAuDq6mrRO45Z2rlz\ngJMTEGTDP6B4DLWMbSHjeQYy9gvzOdydzg4cAKKieNYxEVFtqrrT2TvvvAMnJyf8/vvvFlk/AGi1\nwIMPWmz1VsGjJGRsCxmvTSRjvzCfau50lpWVheTkZHTv3t0i6wekeoFWK+0ZEBGRTDV3OnvxxRex\nbNmyZl9vbVlZQHU1EBho0Y+xOI6HytgWMtYMZOwX5mvwaCIhBCZOnIi0tDSL3ulsx44d8PPzwz33\n3NPgctOnT0dAQAAAwNPTExEREfrdwZp//IamtVpg4MAoaDSmLc9p9U/XUEs8Sk2Xni1FalEq8Mcd\n+5SOR+npU6dOqSoea05rtVokJiYCgH57aYoGzzMQQiA8PBy//PKLySs0Jjo6Gnl5eXXeX7x4MRIS\nEpCUlAQPDw8EBgbip59+gpeXl2GgzXCewbx5QPv2wGuv3dFqiFSH5xmQMc1ynoFGo0Hfvn1x9OhR\nDBgw4I4CSk5Orvf9X375BRkZGbj33nsBANnZ2frP9Pb2vqPPvN3Ro4CVr69HRGQTGq0ZHDlyBPfd\ndx969OiB8PBwhIeHNzqcY47evXvjypUryMjIQEZGBvz8/HDixIlmTwRVVcCJE0C/fs26WkXcPkTi\nyNgWMtYMZOwX5mv0DGRrX6ROY6ETAH75BfD3Bzw9LbJ6IiKbprozkC9cuIAOHTo0+3qPH7ePvQKA\nx1DXxraQ8TwDGfuF+RzmDOTTp4E/yhJERHQbVZ2BbEmnTwPNWOpQFMdDZWwLGWsGMvYL86nmDGRL\nEsK+kgERUXNTzRnIlpSbC7RsCXTponQkzYPjoTK2hYw1Axn7hfmMHk1UVlaGNm3a4OWXX0ZSUpJF\nz0C2NO4VEBE1zOieweDBgwEATz75JEaMGIHly5dj+fLlNpcIAPtLBhwPlbEtZKwZyNgvzGd0z6C8\nvBybNm3C4cOH8dVXX0EIoT+tWaPR4LHHHrNmnHfkzBnpnsdERFQ/o8lgzZo12LRpE27cuIFdu3bV\nmW9LySAtDZg9W+komg/HQ2VsCxlrBjL2C/MZTQZ5eXlYs2YN+vTpg2eeecaaMTUrIYD0dCAkROlI\niIjUy2jNICEhAQDw4YcfWi0YS8jLA9q0ka5Wai84HipjW8hYM5CxX5jP6J6Bl5cXoqOjkZGRgZiY\nGIN5Go2wfpPdAAAOgUlEQVQGO3futHhwzYF7BUREjTOaDL7++mucPHkSU6ZMwbx58wyuR2Spi8lZ\nwm+/AT17Kh1F8+J4qIxtIWPNQMZ+YT6jyaB169YYNGgQfvzxR3Tq1MmaMTUr7hkQETXOaM1gzpw5\nAIAZM2YgJibG4BEbG2u1AO/Ub7/ZXzLgeKiMbSFjzUDGfmE+o3sGU6dOBQC89NJLdebZ0jBRerr9\nDRMRETW3Bu+BXCM/Px8AFB0uaso9kHU6wMUFuHFDOqKIyF7xHshkjKnbTqPDREIIxMfHo2PHjggJ\nCUFISAg6duyIN998s1kDtaTcXMDLi4mAiKgxRpPBP//5Txw+fBjHjh1DQUEBCgoKcPToURw+fBgr\nVqywZoxNdvEiEBCgdBTNj+OhMraFjDUDGfuF+Ywmgw0bNuCzzz5DYGCg/r0ePXpg06ZN2LBhg1WC\nu1OZmUD37kpHQUSkfkaTQVVVVb01gk6dOqGqqsqiQTWXzEz73DPgMdQytoWM5xnI2C/MZzQZODs7\nG/2jhuapib0mAyKi5mY0GZw+fRru7u71Ps6cOWPNGJuMNQP7x7aQsWYgY78wn9HzDHQ6nTXjsAjW\nDIiITGPSeQZqYO55BtXVQNu2QGGh9Exkz3ieARlzx+cZ2LrLlwFPTyYCIiJT2G0yyM4GunVTOgrL\n4HiojG0hY81Axn5hPrtNBrm5QNeuSkdBRGQbmAxsEI+hlrEtZDzPQMZ+YT4mAyIiUk8yeO+99xAa\nGorevXtj/vz5d7w+e04GHA+VsS1krBnI2C/MZ/Q8A2s6cOAAdu7cidOnT8PZ2Vl/yew7kZsL+Po2\nQ3BERA5AFcngww8/xIIFC/SXuTB234Tp06cj4I9Tij09PREREaEfG6z5JVAzffasFjk5AFD/fFue\njoqKUlU8nFZ+uvRsKRAAPaXjUXq65j21xGPNaa1Wi8TERADQby9NoYqTziIjIzF27Fjs3bsXbdq0\nwfLly9GvXz+DZcw96axDB+kuZx07Nne0ROrDk87IGNWddBYdHY3w8PA6j507d6KqqgoFBQU4cuQI\n3n77bTz++ON39FmlpcCtW9KNbexRza8AYlvUxpqBjP3CfFYbJkpOTjY678MPP8Rjjz0GAOjfvz+c\nnJxw/fp1eDVxa375MuDjA9jQrZqJiBSliqOJxo0bh/379wMA0tPTUVFR0eREANj3kUQAj6GujW0h\n43kGMvYL86migDxjxgzMmDED4eHhaNWq1R3fSe3yZaBLl2YKjojIAahiz8DZ2Rmffvopzpw5g+PH\nj99xVs/PB7y9myc2NeJ4qIxtIWPNQMZ+YT5VJIPmlp8PGDk6lYiI6sFkYIM4HipjW8hYM5CxX5jP\nLpPB1av2PUxERNTc7DIZ2PueAcdDZWwLGWsGMvYL8zEZEBGROi5HYQpzLkfRuTNw6pR04hmRI+Dl\nKMgY1V2Owlqqq4Hff+c1iYiIzGF3yaCgAHBzA/64AKpd4niojG0hY81Axn5hPrtLBlevsl5ARGQu\nu0sGjlA85jHUMraFjOcZyNgvzGeXyYDnGBARmcfuksG1a/ZfPOZ4qIxtIWPNQMZ+YT67Swa//y7d\n5YyIiExnd8mgoABo317pKCyL46EytoWMNQMZ+4X5mAyIiIjJwBZxPFTGtpCxZiBjvzAfkwERETEZ\n2CKOh8rYFjLWDGTsF+ZjMiAiIiYDW8TxUBnbQsaagYz9wnx2lQyqq4GiIqBdO6UjISKyLXZ1P4OC\nAiAwECgstFJQRCrB+xmQMQ55PwNHGCIiIrIEJgMbxPFQGdtCxpqBjP3CfEwGRETEZGCLeAy1jG0h\n43kGMvYL8zEZEBGRfSWDGzcAT0+lo7A8jofK2BYy1gxk7BfmU0UyOHr0KAYMGIDIyEj0798fx44d\na9J6bt4EPDyaOTgiIgegimTwyiuvYNGiRTh58iT+/ve/45VXXmnSeoqKAHf3Zg5OhTgeKmNbyFgz\nkLFfmE8VycDHxwc3btwAABQWFsLX17dJ67l50zGSARFRc2updAAAsHTpUgwZMgTz5s1DdXU1fvzx\nx3qXmz59OgICAgAAnp6eiIiI0P8C0Gq1uHABGDVKngZgMN9epmuPh6ohHiWna95TSzxKTZeeLcUn\nH36Ct157SxXxKD29cuXKOtsHNcVn6e1DYmIiAOi3l6aw2uUooqOjkZeXV+f9xYsXY9WqVXj++efx\n6KOPYuvWrVi7di2Sk5MNAzXhlOqRI4EXXgAeeaRZQ1cdrVar7wSOjm0hCVoVhEUBizA5drLSoagC\n+4XM1MtRqOLaRB4eHrh58yYAQAgBT09P/bBRDVO+0ODBwPLl0jORI+G1icgYm7o2UXBwMA4ePAgA\n2L9/P0JCQpq0HkcpIBMRNTdVJIO1a9filVdeQUREBF5//XWsXbu2SetxlENLa4+XOzq2hYznGcjY\nL8ynigJyv379kJJy5x2ZewZERE2jipqBKRob9xICcHYGSkulZyJHwpoBGWNTNYPmUFYmJQEmAiIi\n89lNMnCkISKOh8rYFjLWDGTsF+azm2TgKMVjIiJLsJtk4Eh7BjyZRsa2kPHaRDL2C/PZTTLgdYmI\niJrObpJBUZHjDBNxPFTGtpCxZiBjvzCfXSUD7hkQETWN3SQDRxom4niojG0hY81Axn5hPrtJBrdu\nAW5uSkdBRGSb7CoZuLoqHYV1cDxUxraQsWYgY78wn90kg5ISwMVF6SiIiGyT3SQDR9oz4HiojG0h\nY81Axn5hPrtJBtwzICJqOrtJBo60Z8DxUBnbQsaagYz9wnx2kwy4Z0BE1HR2kwxu3XKcZMDxUBnb\nQsaagYz9wnx2kwxKShxnmIiIqLnZTTJwpD0DjofK2BYy1gxk7Bfms5tkwD0DIqKms5t7IHftChw7\nBvj6WjEoIpXgPZDJGIe7BzL3DIiIms5ukgFrBo6JbSFjzUDGfmE+u0gGlZXSc6tWysZBRGSr7KJm\nUFgIdO8O3Lhh5aCIVII1AzLGoWoGrBcQEd0Zu0gGjlQvADgeWhvbQsaagYz9wnx2kQwcbc/g1KlT\nSoegGmwLWeqZVKVDUA32C/NZNRls3boVd999N1q0aIETJ04YzFuyZAnuuusu9OrVC0lJSWat19H2\nDAoLC5UOQTXYFrKim0VKh6Aa7Bfma2nNDwsPD8e2bdvw7LPPGryfmpqKLVu2IDU1FTk5OXj44YeR\nnp4OJyfTcpWj7RkQETU3q+4Z9OrVCyEhIXXe37FjB+Li4uDs7IyAgAAEBwfj6NGjJq/X0S5fnZmZ\nqXQIqsG2kGVfylY6BNVgvzCfVfcMjMnNzcWgQYP0035+fsjJyamznEajaXA9jcy2K+vXr1c6BNVg\nW0gu4AI0mx3oP0Ej2C/M0+zJIDo6Gnl5eXXeT0hIQExMjMnruX3DbyOnQxAR2aRmTwbJyclm/42v\nry+ysrL009nZ2fDlFeeIiKxGsUNLa//Sj42NxebNm1FRUYGMjAycPXsWAwYMUCo0IiKHY9VksG3b\nNvj7++PIkSMYPXo0Ro0aBQAICwvD448/jrCwMIwaNQoffPBBo/UBIiJqPjZxbaK9e/di7ty50Ol0\nmDVrFubPn690SIqZMWMGvv76a3h7e+PMmTNKh6OorKwsTJ06FVevXoVGo8EzzzyDv/71r0qHZXVl\nZWUYNmwYysvLUVFRgbFjx2LJkiVKh6UonU6Hfv36wc/PD7t27VI6HMUEBATAw8MDLVq0gLOzc4NH\naao+Geh0OvTs2RPfffcdfH190b9/f3z++ecIDQ1VOjRFHDp0CG5ubpg6darDJ4O8vDzk5eUhIiIC\nxcXF6Nu3L7Zv3+6QfaOkpAQuLi6oqqrCkCFDsHz5cgwZMkTpsBSzYsUKHD9+HEVFRdi5c6fS4Sgm\nMDAQx48fR4cOHRpdVvWXozh69CiCg4MREBAAZ2dnTJo0CTt27FA6LMUMHToU7du3VzoMVejSpQsi\nIiIAAG5ubggNDUVubq7CUSnD5Y8TbSoqKqDT6Uz6z2+vsrOz8c0332DWrFk8ChGmH4mp+mSQk5MD\nf39//bSxcxDIsWVmZuLkyZMYOHCg0qEoorq6GhEREejcuTMefPBBhIWFKR2SYl544QW8/fbbJl/B\nwJ5pNBo8/PDD6NevH9atW9fgsqpvLRaSqTHFxcWYMGEC3n33Xbi5uSkdjiKcnJxw6tQpZGdn4z//\n+Y/DXrVz9+7d8Pb2RmRkJPcKABw+fBgnT57Enj178P777+PQoUNGl1V9Mrj9HISsrCz4+fkpGBGp\nSWVlJcaPH48pU6Zg3LhxSoejuHbt2mH06NH46aeflA5FET/88AN27tyJwMBAxMXFYf/+/Zg6darS\nYSnGx8cHANCpUyc8+uijDRaQVZ8M+vXrh7NnzyIzMxMVFRXYsmULYmNjlQ6LVEAIgZkzZyIsLAxz\n585VOhzFXLt2TX+VztLSUiQnJyMyMlLhqJSRkJCArKwsZGRkYPPmzXjooYewYcMGpcNSRElJCYqK\npCvZ3rp1C0lJSQgPDze6vOqTQcuWLbF69WqMHDkSYWFhmDhxokMeLVIjLi4OgwcPRnp6Ovz9/fHJ\nJ58oHZJiDh8+jI0bN+LAgQOIjIxEZGQk9u7dq3RYVnf58mU89NBDiIiIwMCBAxETE4Phw4crHZYq\nOPIw85UrVzB06FB9vxgzZgxGjBhhdHnVH1pKRESWp/o9AyIisjwmAyIiYjIgIiImAyIiApMB0R3J\nzMxs8HA9IlvBZEBEREwGRM3lwoUL6NOnD44fP650KERma/bbXhI5ot9++w1xcXFYv349h43IJjEZ\nEN2hq1evYty4cdi2bRt69eqldDhETcJhIqI75Onpie7duzd4RUgiteOeAdEdatWqFb766iuMHDkS\nbm5uiIuLUzokIrMxGRDdIY1GAxcXF+zevRvR0dFwd3fHmDFjlA6LyCy8UB0REbFmQERETAZERAQm\nAyIiApMBERGByYCIiMBkQEREAP4f7sLnntfZmFgAAAAASUVORK5CYII=\n"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### We're done! So using MLE method, we calculated the shape parameter to be 2.974 and the scale parameter to be 203.94. With the usual Weibull CDF plot below, we are equipped to make failure predictions."
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "shape = 2.974\nscale = 203.94\n\nx2 = np.arange(0,450)\ny2 = 1-np.exp(-(x2/scale)**shape) # This is the equation for Weibull CDF\n\nplt.plot(x2,y2)\nplt.title(\"Weibull CDF - Prediction\",weight='bold')\nplt.grid()\nplt.show()",
"execution_count": 8,
"outputs": [
{
"data": {
"image/png": "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\npk6dqsaPH+/WDJs2bVI7duywK6ZlZfj+++9VVFSUunDhgjp06JBq1KiRslqtHsmUmJiopk+fftm+\nnsp09OhRlZmZqZRS6vTp0+r2229Xe/bsMX2syspl9nidPXtWKaVUYWGhatOmjdq8ebPpY1VaJrPH\nSSmlpk+frh599FHVvXt3pZT5//+VlsmV4+TWpQounkfv5+dnm0dvFnXJbJ6L5/APGDCAjz/+2K3v\n3759e2pfcpPWsjKsXr2a+Ph4/Pz8CA0NJSwsjG3btnkkE5Q+88lTmW655Raio6MBuOGGG4iMjCQv\nL8/0sSorF5g7XtX/d4HHhQsXsFqt1K5d2/SxKi0TmDtOubm5JCcnM3ToUFsOs8eptEzKOPC+bN+K\nZHJrgc/LyyMkJMS2HRwcbPsfwtMsFgsPPvggLVu2ZN68eQB2F2TVrVuXn376yeO5ysrw448/2s1Y\n8vTYzZ49m6ioKIYMGWK7hNuMTNnZ2WRmZtKmTRutxqok11133QWYO17FxcVER0dTt25d7r//fpo2\nbWr6WJWWCcwdp2eeeYbXX38dH58/yp7Z41RaJovF4rJxcmuBd3QevSds2bKFzMxM1q5dy1tvvcXm\nzZvtPm+xWEzPe6UMnso3YsQIDh06xM6dO6lXrx5jx441JdOZM2fo1asXs2bN4sYbb7zsfc0aqzNn\nztC7d29mzZrFDTfcYPp4+fj4sHPnTnJzc9m0aROpqamXvaenx+rSTGlpaaaO02effUZgYCAxMTFl\nXpfj6XEqK5Mrx8mtBd6RefSeUq9ePQACAgLo2bMn27Zto27duhw7dgyAo0ePEhgY6PFcZWUw8/qC\nwMBA2y/70KFDbX8GejJTYWEhvXr1on///vTo0QPQY6xKcj3++OO2XDqMF0CtWrXo2rUr3377rRZj\ndXGm7du3mzpOW7du5ZNPPqFBgwbEx8ezYcMG+vfvb+o4lZbpiSeecO04ufBcwWUKCwtVw4YN1aFD\nh9T58+dNO8l69uxZVVBQoJRS6syZM+ruu+9W69atU+PGjbPN7JkyZYrbT7IqpdShQ4cuO8laWoaS\nEyrnz59XBw8eVA0bNlTFxcUeyfTjjz/aPp4xY4aKj4/3aKbi4mLVv39/NWbMGLvnzR6rsnKZOV7H\njx+3zfz47bffVPv27dX69etNHauyMh09etS2jxm/VyXS0tJsM1bM/p0qLZMrf5/cPk0yOTlZ3X77\n7apRo0bq1VdfdffblergwYMqKipKRUVFqaZNm9pynDhxQnXo0MFj0yT79eun6tWrp/z8/FRwcLB6\n5513ys0wefJk1ahRIxUREaFSUlI8kmnBggWqf//+qnnz5qpFixbq4YcfVseOHfNops2bNyuLxaKi\noqJsU8XWrl1r+liVlis5OdnU8dq9e7eKiYlRUVFRqnnz5uq1115TSpX/u21WJrN/r0qkpaXZZqyY\n/TtVIjU11Zbp8ccfd9k4eeSerEIIITzPa+/oJIQQVZ0UeCGEqKKkwAshRBUlBV4IIaooKfBCCFFF\nSYEXQogq6v8Bwjqt6OQkuBEAAAAASUVORK5CYII=\n"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### AMMENDMENT:"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### After some research, I found out that the method that I used to calculate the shape parameter is very inefficient since it is basically brute force method. It turns out that, I can use Newton-Raphson method which will find the shape parameter MUCH faster."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<center><h3>Newton-Raphson Method:</h3></center><br>\n<center>$\\huge{X_{n+1}=X_n+\\frac{f(x)}{f'(x)}}$</center><br>\n<center>where $X_n$ is an arbitrary initial value,</center><br>\n<center>f(x) in our case is equal to our MLE equation above:</center><br>\n<center>$\\large{f(x)=\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}+\\frac{1}{k}-\\frac{\\sum\\limits_{i=1}^n (x_i)^kln(x_i)}{\\sum\\limits_{i=1}^n (x_i)^k}}$</center><br>\nDue to the tediousness of the equation for f(x), some arbitrary variables (A,B,C,H) were used to simplify the Newton-Raphson equation:<br>\n<center>$\\huge{k_{n+1}=k_n+\\frac{A+\\frac{1}{k_n}-\\frac{C_n}{B_n}}{\\frac{1}{k_n^2}+\\frac{(B_nH_n-C_n^2)}{B_n^2}}}$</center><br><br>\n<center>where</center><br><center>$A=\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}$ &nbsp;,&nbsp;&nbsp;&nbsp;&nbsp; $B=\\sum\\limits_{i=1}^n x_i^{k_n}$&nbsp;,&nbsp;&nbsp; $C=\\sum\\limits_{i=1}^n (x_i)^{k_n}\\space ln(x_i)$</center><br>\n<center>and</center><br>\n<center>$H=\\sum\\limits_{i=1}^n x_i^{k_n}(lnx_i)^2$</center><br><br>\n<h3>But what do we use for the initial k value($k_n$)?</h3><br>\nIt has been suggested to use the following:<br>\n<center>$k_n=\\left[\\frac{\\frac{6}{\\pi^2}\\left[\\sum\\limits_{i=1}^n (lnx_i)^2-\\left(\\sum\\limits_{i=1}^n lnx_i\\right)^2/n\\right]}{n-1} \\right]^{-\\frac{1}{2}}$</center><br>\nSupposedly using this equation, we will get the shape parameter on average after 3.5 iterations to achieve 4-place accuracy."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### Below is the translation of those equations above into Python equivalent code and interating Newton-Raphson method 10 times:"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "# give initial value for the shape paramter:\nshape = (( (6.0/np.pi**2)*(np.sum(ln(dtf_all)**2) - ((np.sum(ln(dtf_all)))**2)/dtf_all.size) ) / (dtf_all.size-1))**-0.5\nfor i in range(1,11):\n A = np.sum(ln(dtf_failed) * 1.0)/dtf_failed.size\n B = np.sum(dtf_all**shape)\n C = np.sum( (dtf_all**shape) * ln(dtf_all) )\n H = np.sum( (dtf_all**shape) * (ln(dtf_all))**2 )\n shape = shape + (A+(1.0/shape) - (C/B)) / ( (1.0/shape**2) + ( (B*H)-C**2 ) / B**2 )\n print(\"shape\"+str(i)+\" \"+str(shape))",
"execution_count": 19,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "shape1 2.97304267161\nshape2 2.97444125054\nshape3 2.97444177838\nshape4 2.97444177838\nshape5 2.97444177838\nshape6 2.97444177838\nshape7 2.97444177838\nshape8 2.97444177838\nshape9 2.97444177838\nshape10 2.97444177838\n"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "print(\"So it looks like the Newton-Raphson method calculated the shape value to be:\")\nprint(shape)\nprint(\"after only 3 iterations\")",
"execution_count": 20,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "So it looks like the Newton-Raphson method calculated the shape value to be:\n2.97444177838\nafter only 3 iterations\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### This is very close to the shape parameter value obtained earlier using the inefficient iterative method."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "This IPython notebook Weibull analysis was made possible based on reference material from the <a href=\"http://www.weibull.nl/index.php/about-reliability/weibull-statistics\">weibull.nl</a> website and also from <a href=\"http://www.qualitydigest.com/jan99/html/body_weibull.html\">this</a> example of doing Weibull analysis using Excel."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "[[back to top](#sections)]"
}
],
"metadata": {
"hide_input": false,
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.7.3",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"varInspector": {
"window_display": false,
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"library": "var_list.py",
"delete_cmd_prefix": "del ",
"delete_cmd_postfix": "",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"library": "var_list.r",
"delete_cmd_prefix": "rm(",
"delete_cmd_postfix": ") ",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
]
},
"gist": {
"id": "",
"data": {
"description": "/weibull/Weibull_Analysis.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment