##// END OF EJS Templates
fix mcpricer example...
MinRK -
Show More
This diff has been collapsed as it changes many lines, (619 lines changed) Show them Hide them
@@ -1,243 +1,380 b''
1 {
1 {
2 "nbformat": 2,
2 "metadata": {
3 "metadata": {
3 "name": "mcpricer"
4 "name": "mcpricer"
4 },
5 },
5 "nbformat": 2,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "source": "# Parallel Monto-Carlo options pricing",
10 "cell_type": "markdown",
11 "cell_type": "markdown"
11 "source": [
12 },
12 "# Parallel Monto-Carlo options pricing"
13 {
13 ]
14 "source": "## Problem setup",
14 },
15 "cell_type": "markdown"
15 {
16 },
16 "cell_type": "markdown",
17 {
17 "source": [
18 "cell_type": "code",
18 "## Problem setup"
19 "language": "python",
19 ]
20 "outputs": [],
20 },
21 "collapsed": true,
21 {
22 "prompt_number": 1,
22 "cell_type": "code",
23 "input": "import sys\nimport time\nfrom IPython.parallel import Client\nimport numpy as np\nfrom mckernel import price_options\nfrom matplotlib import pyplot as plt"
23 "collapsed": true,
24 },
24 "input": [
25 {
25 "import sys",
26 "cell_type": "code",
26 "import time",
27 "language": "python",
27 "from IPython.parallel import Client",
28 "outputs": [],
28 "import numpy as np",
29 "collapsed": true,
29 "from mckernel import price_options",
30 "prompt_number": 2,
30 "from matplotlib import pyplot as plt"
31 "input": "cluster_profile = \"default\"\nprice = 100.0 # Initial price\nrate = 0.05 # Interest rate\ndays = 260 # Days to expiration\npaths = 10000 # Number of MC paths\nn_strikes = 5 # Number of strike values\nmin_strike = 90.0 # Min strike price\nmax_strike = 110.0 # Max strike price\nn_sigmas = 5 # Number of volatility values\nmin_sigma = 0.1 # Min volatility\nmax_sigma = 0.4 # Max volatility"
31 ],
32 },
32 "language": "python",
33 {
33 "outputs": [],
34 "cell_type": "code",
34 "prompt_number": 1
35 "language": "python",
35 },
36 "outputs": [],
36 {
37 "collapsed": true,
37 "cell_type": "code",
38 "prompt_number": 3,
38 "collapsed": true,
39 "input": "strike_vals = np.linspace(min_strike, max_strike, n_strikes)\nsigma_vals = np.linspace(min_sigma, max_sigma, n_sigmas)"
39 "input": [
40 },
40 "cluster_profile = \"default\"",
41 {
41 "price = 100.0 # Initial price",
42 "source": "## Parallel computation across strike prices and volatilities",
42 "rate = 0.05 # Interest rate",
43 "cell_type": "markdown"
43 "days = 260 # Days to expiration",
44 },
44 "paths = 10000 # Number of MC paths",
45 {
45 "n_strikes = 6 # Number of strike values",
46 "source": "The Client is used to setup the calculation and works with all engines.",
46 "min_strike = 90.0 # Min strike price",
47 "cell_type": "markdown"
47 "max_strike = 110.0 # Max strike price",
48 },
48 "n_sigmas = 5 # Number of volatility values",
49 {
49 "min_sigma = 0.1 # Min volatility",
50 "cell_type": "code",
50 "max_sigma = 0.4 # Max volatility"
51 "language": "python",
51 ],
52 "outputs": [],
52 "language": "python",
53 "collapsed": true,
53 "outputs": [],
54 "prompt_number": 4,
54 "prompt_number": 2
55 "input": "c = Client(profile=cluster_profile)"
55 },
56 },
56 {
57 {
57 "cell_type": "code",
58 "source": "A LoadBalancedView is an interface to the engines that provides dynamic load \nbalancing at the expense of not knowing which engine will execute the code.",
58 "collapsed": true,
59 "cell_type": "markdown"
59 "input": [
60 },
60 "strike_vals = np.linspace(min_strike, max_strike, n_strikes)",
61 {
61 "sigma_vals = np.linspace(min_sigma, max_sigma, n_sigmas)"
62 "cell_type": "code",
62 ],
63 "language": "python",
63 "language": "python",
64 "outputs": [],
64 "outputs": [],
65 "collapsed": true,
65 "prompt_number": 3
66 "prompt_number": 5,
66 },
67 "input": "view = c.load_balanced_view()"
67 {
68 },
68 "cell_type": "markdown",
69 {
69 "source": [
70 "cell_type": "code",
70 "## Parallel computation across strike prices and volatilities"
71 "language": "python",
71 ]
72 "outputs": [
72 },
73 {
73 {
74 "output_type": "stream",
74 "cell_type": "markdown",
75 "text": "Strike prices: [ 90. 95. 100. 105. 110.]\nVolatilities: [ 0.1 0.175 0.25 0.325 0.4 ]"
75 "source": [
76 }
76 "The Client is used to setup the calculation and works with all engines."
77 ],
77 ]
78 "collapsed": false,
78 },
79 "prompt_number": 6,
79 {
80 "input": "print \"Strike prices: \", strike_vals\nprint \"Volatilities: \", sigma_vals"
80 "cell_type": "code",
81 },
81 "collapsed": true,
82 {
82 "input": [
83 "source": "Submit tasks for each (strike, sigma) pair.",
83 "c = Client(profile=cluster_profile)"
84 "cell_type": "markdown"
84 ],
85 },
85 "language": "python",
86 {
86 "outputs": [],
87 "cell_type": "code",
87 "prompt_number": 4
88 "language": "python",
88 },
89 "outputs": [],
89 {
90 "collapsed": true,
90 "cell_type": "markdown",
91 "prompt_number": 7,
91 "source": [
92 "input": "t1 = time.time()\nasync_results = []\nfor strike in strike_vals:\n for sigma in sigma_vals:\n ar = view.apply_async(price_options, price, strike, sigma, rate, days, paths)\n async_results.append(ar)"
92 "A LoadBalancedView is an interface to the engines that provides dynamic load",
93 },
93 "balancing at the expense of not knowing which engine will execute the code."
94 {
94 ]
95 "cell_type": "code",
95 },
96 "language": "python",
96 {
97 "outputs": [
97 "cell_type": "code",
98 {
98 "collapsed": true,
99 "output_type": "stream",
99 "input": [
100 "text": "Submitted tasks: 25"
100 "view = c.load_balanced_view()"
101 }
101 ],
102 ],
102 "language": "python",
103 "collapsed": false,
103 "outputs": [],
104 "prompt_number": 8,
104 "prompt_number": 5
105 "input": "print \"Submitted tasks: \", len(async_results)"
105 },
106 },
106 {
107 {
107 "cell_type": "code",
108 "source": "Block until all tasks are completed.",
108 "collapsed": false,
109 "cell_type": "markdown"
109 "input": [
110 },
110 "print \"Strike prices: \", strike_vals",
111 {
111 "print \"Volatilities: \", sigma_vals"
112 "cell_type": "code",
112 ],
113 "language": "python",
113 "language": "python",
114 "outputs": [
114 "outputs": [
115 {
115 {
116 "output_type": "stream",
116 "output_type": "stream",
117 "text": "Parallel calculation completed, time = 2.57819604874 s"
117 "stream": "stdout",
118 }
118 "text": [
119 ],
119 "Strike prices: [ 90. 94. 98. 102. 106. 110.]",
120 "collapsed": false,
120 "Volatilities: [ 0.1 0.175 0.25 0.325 0.4 ]"
121 "prompt_number": 9,
121 ]
122 "input": "c.wait(async_results)\nt2 = time.time()\nt = t2-t1\n\nprint \"Parallel calculation completed, time = %s s\" % t"
122 }
123 },
123 ],
124 {
124 "prompt_number": 6
125 "source": "## Process and visualize results",
125 },
126 "cell_type": "markdown"
126 {
127 },
127 "cell_type": "markdown",
128 {
128 "source": [
129 "source": "Get the results using the `get` method:",
129 "Submit tasks for each (strike, sigma) pair."
130 "cell_type": "markdown"
130 ]
131 },
131 },
132 {
132 {
133 "cell_type": "code",
133 "cell_type": "code",
134 "language": "python",
134 "collapsed": true,
135 "outputs": [],
135 "input": [
136 "collapsed": true,
136 "t1 = time.time()",
137 "prompt_number": 10,
137 "async_results = []",
138 "input": "results = [ar.get() for ar in async_results]\n"
138 "for strike in strike_vals:",
139 },
139 " for sigma in sigma_vals:",
140 {
140 " ar = view.apply_async(price_options, price, strike, sigma, rate, days, paths)",
141 "source": "Assemble the result into a structured NumPy array.",
141 " async_results.append(ar)"
142 "cell_type": "markdown"
142 ],
143 },
143 "language": "python",
144 {
144 "outputs": [],
145 "cell_type": "code",
145 "prompt_number": 7
146 "language": "python",
146 },
147 "outputs": [],
147 {
148 "collapsed": true,
148 "cell_type": "code",
149 "prompt_number": 11,
149 "collapsed": false,
150 "input": "prices = np.empty(n_strikes*n_sigmas,\n dtype=[('ecall',float),('eput',float),('acall',float),('aput',float)]\n)\n\nfor i, price in enumerate(results):\n prices[i] = tuple(price)\n \nprices.shape = (n_strikes, n_sigmas)\nstrike_mesh, sigma_mesh = np.meshgrid(strike_vals, sigma_vals)"
150 "input": [
151 },
151 "print \"Submitted tasks: \", len(async_results)"
152 {
152 ],
153 "source": "Plot the value of the European call in (volatility, strike) space.",
153 "language": "python",
154 "cell_type": "markdown"
154 "outputs": [
155 },
155 {
156 {
156 "output_type": "stream",
157 "cell_type": "code",
157 "stream": "stdout",
158 "language": "python",
158 "text": [
159 "outputs": [
159 "Submitted tasks: 30"
160 {
160 ]
161 "output_type": "pyout",
161 }
162 "prompt_number": 12,
162 ],
163 "text": "<matplotlib.text.Text at 0x2c54750>"
163 "prompt_number": 8
164 },
164 },
165 {
165 {
166 "output_type": "display_data",
166 "cell_type": "markdown",
167 "png": "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\n"
167 "source": [
168 }
168 "Block until all tasks are completed."
169 ],
169 ]
170 "collapsed": false,
170 },
171 "prompt_number": 12,
171 {
172 "input": "plt.contourf(sigma_mesh, strike_mesh, prices['ecall'])\nplt.axis('tight')\nplt.colorbar()\nplt.title('European Call')\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")"
172 "cell_type": "code",
173 },
173 "collapsed": false,
174 {
174 "input": [
175 "source": "Plot the value of the Asian call in (volatility, strike) space.",
175 "c.wait(async_results)",
176 "cell_type": "markdown"
176 "t2 = time.time()",
177 },
177 "t = t2-t1",
178 {
178 "",
179 "cell_type": "code",
179 "print \"Parallel calculation completed, time = %s s\" % t"
180 "language": "python",
180 ],
181 "outputs": [
181 "language": "python",
182 {
182 "outputs": [
183 "output_type": "pyout",
183 {
184 "prompt_number": 13,
184 "output_type": "stream",
185 "text": "<matplotlib.text.Text at 0x2e14610>"
185 "stream": "stdout",
186 },
186 "text": [
187 {
187 "Parallel calculation completed, time = 4.46057891846 s"
188 "output_type": "display_data",
188 ]
189 "png": "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\n/53Vq1cTGhrK+PHjGTlyJCkpKdecW1BQgNlspra2ljFjxjB58mT+/Oc/8+abb15Tm+Jms+2EhASe\neOIJAgICeO655wAYM2YMK1eu5N577+X9999nypQpGI2WG3pKJM5CzpwlTuHqpY0PPviAKVOmkJKS\nQlJSEmazmfvuu6/T6mbvv/8+t9xyCyNHjuTgwYPs3LmzW9dXryuE8/jjj7No0SIAFi9ezGOPPdat\ncSUSRyHNWeIU7rnnHr7++mu2bdtGQ0PDDTNdVVVveOzgwYPMnTuXjz76iJ07d9KnTx/Onz/fretf\nP/aIESOoqqqisLCQtrY2Bg4c2K1xJRJHIc1Z4hT8/f0ZO3Ysjz32GA8++CC5ubns2bOHAwcOcP78\neT755BPuueeea845ceIE4eHhhISEUFxcTHl5ecdz4eHhNDQ0WH39hIQETp8+fc1jjzzyCD/60Y+Y\nNm1az/5zEokDkOYscRpTp05l586dTJ06FUVRmD9/Pk8//TQTJkxg+vTpHQXRr8xyR40aRUJCAikp\nKbz22mvceuutHWM9/fTT5OXldWwIXj0z7uzn22+/nc2bN5ORkdER2fHggw9y/vx5pk6d6tj/uETS\nDWThI4nbsmzZMr799tuOriQSiZaQ0RoSt+Tpp5+muLiYzz77TLQUiaRT5MxZIpFINIhcc5ZIJBIN\nIs1ZIpFINIg0Z4lEItEg0pwlEolEg0hzlkgkEg3y/zdaOI+CUTAKRsEgBADPuDd0fWFHXgAAAABJ\nRU5ErkJggg==\n"
189 }
190 }
190 ],
191 ],
191 "prompt_number": 9
192 "collapsed": false,
192 },
193 "prompt_number": 13,
193 {
194 "input": "plt.contourf(sigma_mesh, strike_mesh, prices['acall'])\nplt.axis('tight')\nplt.colorbar()\nplt.title(\"Asian Call\")\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")"
194 "cell_type": "markdown",
195 },
195 "source": [
196 {
196 "## Process and visualize results"
197 "source": "Plot the value of the European put in (volatility, strike) space.",
197 ]
198 "cell_type": "markdown"
198 },
199 },
199 {
200 {
200 "cell_type": "markdown",
201 "cell_type": "code",
201 "source": [
202 "language": "python",
202 "Get the results using the `get` method:"
203 "outputs": [
203 ]
204 {
204 },
205 "output_type": "pyout",
205 {
206 "prompt_number": 14,
206 "cell_type": "code",
207 "text": "<matplotlib.text.Text at 0x32ee190>"
207 "collapsed": true,
208 },
208 "input": [
209 {
209 "results = [ar.get() for ar in async_results]"
210 "output_type": "display_data",
210 ],
211 "png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAEZCAYAAABhIBWTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl81NW9//HXd7JvZCGQhWwQQgiQkABJ2LKwiCAiIIgE\nhVYsIniLFtHb/uy12Gu917bXipSyqFBbi3VHBAFBDWHLnrBmYctCNhIg+zqZ+f0RiCDZM5nvTL7n\n+Xjk8SAz3/l+PwnJO2fOOd9zJK1Wq0UQBEEwSiq5CxAEQRB6ToS4IAiCERMhLgiCYMREiAuCIBgx\nEeKCIAhGTIS4IAiCERMhLnTIx8cHa2tr7OzsWj/WrVsnd1l9Kjo6GisrK+zs7AgMDGTDhg3cvHmz\n09fFxsbi6emphwoF4UcixIUOSZLEvn37qKqqav145513un0erVaLsdySIEkSW7Zsoaqqii+++ILY\n2Fh27Nghd1mC0CYR4kKPbdy4keXLl7d+npOTg0qlQqPRAC0t2jfeeINZs2Zhb2/P1atXyc7OZt26\ndXh5efH8889z8eLF1tdHR0fzhz/8genTp+Ph4cH//u//UlNT0/r85cuXefnll/H29mbVqlVcuHCh\n9bldu3YxatQoHBwcWLBgAV9//XXrc7GxsXh4eLBjxw6GDRvGlClTOHDgQJe+Rj8/PxYtWsT+/fsB\nUKlUXLlypfX5n//85/zXf/0XtbW1zJkzh8LCQuzs7BgwYADFxcXd/I4KQveJEBc61V4LWpKkTl+7\nZcsWnn/+eW7evImnpyezZs3CxcWFtLQ03NzcmDVr1j3H//Wvf+VXv/oVR48e5ciRI7z++usANDc3\nM3nyZEaNGsW5c+eIiIjgwQcfbH2di4sL+/fvp7S0lKVLl/L4449TW1vb+vz169dJT08nISGBp556\nimeeeaZLX3NWVhafffYZCxcubPd7IEkS1tbWHDx4EHd3d6qqqqisrMTV1bXT748g9JYIcaFDWq2W\nBQsW4Ojo2Prx/vvvtz7XEUmSmD17NnPnzsXU1JRz587R2NjIK6+8wsCBA/n1r39NU1MTaWlpra95\n4IEHmDdvHr6+vrz88svs27cPgO+//56xY8fy85//HDs7O1asWIGzszNJSUkAPPTQQwwdOhQzMzOW\nLl3K+PHj72ltazQafv/73zNo0CB+/vOfU15eTlZWVrtf87p163B0dOTJJ59k7ty5/OIXv+jwe9SV\n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\n"
211 "language": "python",
212 }
212 "outputs": [],
213 ],
213 "prompt_number": 10
214 "collapsed": false,
214 },
215 "prompt_number": 14,
215 {
216 "input": "plt.contourf(sigma_mesh, strike_mesh, prices['eput'])\nplt.axis('tight')\nplt.colorbar()\nplt.title(\"European Put\")\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")"
216 "cell_type": "markdown",
217 },
217 "source": [
218 {
218 "Assemble the result into a structured NumPy array."
219 "source": "Plot the value of the Asian put in (volatility, strike) space.",
219 ]
220 "cell_type": "markdown"
220 },
221 },
221 {
222 {
222 "cell_type": "code",
223 "cell_type": "code",
223 "collapsed": true,
224 "language": "python",
224 "input": [
225 "outputs": [
225 "prices = np.empty(n_strikes*n_sigmas,",
226 {
226 " dtype=[('ecall',float),('eput',float),('acall',float),('aput',float)]",
227 "output_type": "pyout",
227 ")",
228 "prompt_number": 15,
228 "",
229 "text": "<matplotlib.text.Text at 0x3487c50>"
229 "for i, price in enumerate(results):",
230 },
230 " prices[i] = tuple(price)",
231 {
231 "",
232 "output_type": "display_data",
232 "prices.shape = (n_strikes, n_sigmas)"
233 "png": "iVBORw0KGgoAAAANSUhEUgAAAWcAAAEXCAYAAABxmoVMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVOX+B/DPc4Zt2EFlccMtBUlZFEERXDJzyV0ru9Ut\nrXvVrtm9de/v3mv9slUtLZfK1FIzs81ySc3SklU2RXFDcMMFUFAUBmZgmDnP7w9/kibLzDAzzzln\nnvfrxeslM3POfDjCl8OzEkopBcdxHCcpAusAHMdx3L14ceY4jpMgXpw5juMkiBdnjuM4CeLFmeM4\nToJ4ceY4jpMgXpw5SUhNTUVoaCjrGBwnGbw4czYxdOhQ+Pv7Q6/Xm/T6hIQEnDp1yiZZunTpAnd3\nd3h5eSEmJgavvvqqSbk2bNiAhIQEm2TiuJbw4sxZXVFREbKzsxEQEIAdO3awjgNCCHbu3AmNRoNP\nP/0Un3/+OX744QfWsTiuWbw4c1a3ceNGjBgxAk8++SQ+//zzu55LS0vD6NGj4e/vj44dO2Lp0qUA\ngKSkJHTq1KnhdYsWLUKPHj3Qpk0b/OlPf0JqamrDcxs2bMDgwYPxxhtvoEOHDhg1ahQyMjJMyhYR\nEYHRo0dj165duHDhAgRBgCiKDc8PHToUn332GU6dOoVZs2YhIyMDXl5e8Pf3b80l4Tiz8eLMWd3G\njRvx6KOP4pFHHsHPP/+MsrKyhuf+/ve/469//SuuXbuGEydOYPjw4Y2eo0ePHkhLS8Ply5fRv39/\nPP7443c9n5OTAwA4fvw44uLi8K9//avZTLdXKTh8+DB++uknTJo0CY2tXEAIASEEoaGhWL16NQYO\nHAiNRoOKigqzrgHHtRYvzpxVpaWlobi4GOPHj8d9992H3r17Y/PmzQ3Pi6KIs2fPoqqqCj4+PoiK\nimr0PFOnTkVQUBDUajVefPFFEEJw6NChhuc9PDzwyiuvwM/PD3/961+RlZWFmpqaRs9FKcXEiRPh\n7++PefPmYc6cOZg4cWKLXwtfdoZjiRdnzqo+//xzjBw5El5eXgCAadOm3dW0sXHjRuTl5aFbt26Y\nNm0a8vLyGj3Pjh07MHnyZLRv3x7+/v4oLS3F0aNHG54PDw+HINz69g0ODobBYMDVq1cbPRchBNu3\nb0dFRQVSUlLw73//u+FYjpMq/h3KWY1Op8O3336L3377DcHBwQgODsbSpUuRl5fXUFjDw8OxceNG\nlJaWok+fPnj22WfvOU9NTQ2ee+45/PnPf8apU6dQUVGBDh06WP1Otl27dnB2dsaVK1cAAAaDAceO\nHWt4XqVS8btnjhlenDmr2bZtG5ycnJCfn4+8vDzk5eUhPz8fCQkJ2LhxI+rr6/Hll1+isrISABqG\nt/2RRqNBdXU1goODIYoiFi5ciJKSEqvn9fDwQFxcHNasWYOKigosXLgQGo2m4fl+/frh9OnTqK6u\ntvp7c1xLeHHmrGbjxo2YMWMGOnbsiICAAAQEBCAwMBB/+9vfGtqdN23ahK5du6Jz587IysrCsmXL\nGo4nhAAAgoKCsHDhQjz55JOIiIiAXq/H4MGD73rd7df+8VhzLVq0CBkZGejTpw9EUUR8fHzDc717\n98bEiRMRHh6OgIAAi87PcZYifLF9juM46bH6nfOMGTMQGBiIPn36NDz23XffITw8HCqVCrm5uXe9\nfsWKFQ29+mlpadaOw3EcZ1eN1cDbli5dCkEQTBqaafXi/Mwzz2DPnj13PdanTx9s3boViYmJdz1e\nVlaGjz/+GL/++itWrVqFF154wdpxOI7j7KqxGggAly5dwt69exESEmLSeaxenBMSEuDn53fXY6Gh\noejZs+c9r83KysKoUaPQuXNnDBkyBJTSuzpkOI7j5KaxGggA//jHP/Duu++afB6mHYLZ2dkICwtr\n+LxXr17Izs5mmIjjOM76tm/fjo4dO6Jv374mH+Nkwzwtamr6rCmPcRzHNaW14xx8CEGVia/19PRs\n9i9+rVaLd955B3v37jUrH9PiHBsbi3379jV8furUKcTExDT+4uktfzF+gSI6/FeLQpXY4mttzbh4\nIVT/8x/WMe4SKOjwgs9XqCLljT6fvCAVQxbIZ4nM5vJ2pyImiWsASGuM8sI3jPjP/6padxKRwnNj\nJIT8HOuEasGCA8CCQeYfd7V8CK5uTLZ+oBZEWOEcVQAan7vayPu1MA7+7NmzKCoqQkTErWSXL19G\nv379GlZubIrdmzXu/I0xYMAA/Pzzz7h48SKSkpIgCEKjkxJMdeOqgAsLPNC7vpXf/Ap1VVRjQ+U0\neFBv1lFs7iwRcFD4M+sYtiEQVD96FrRNZ9ZJmtWu7QG4dJF2Rnvo06cPrl69ivPnz+P8+fPo2LEj\ncnNzWxw7b/XiPH36dAwaNAgFBQXo1KkT1q1bh23btqFTp07IzMzE2LFjMXr0aABAYGAgZs+ejeHD\nh2POnDlYvnx5q99fc4Og4H/dEVHLC3RjTote+FHzCFypG+soNpdE1Cgl01nHsA11NXRPuoM6q1kn\naZJA6tF+XDvWMezudg0sLCxEp06dsH79+rueN7WZVhaTUAghJjVr3MnFjaLfGzoccjfYKFXzxLRU\nCIOl20Qw0rUEMe5fwUB+vz5FSRfQZahpw3ykwJS8AqWYI2bDDanNvs5eUpNFJAyx3j2R6+EYuH6d\nbrXzNSbpEjC0U8uva8r5gzHQJNunCQa41azR2rJGCDG9WcMK79doBqUWZwBwcqGIW6BDtjebAi11\nj7qdQ1f1FlAi+W+BVvGiFH8RfwDBedZRbMJ9x0A4pdu/bddUdbQjCj8sAzVxy7LWUkpxVvTaGgY9\nQforagyscGYdRZK+qe2GSv0Y1jFsTkMItgsTAXiyjmIT2jHZoJ3DWcdokiu5jHZTB7KOITuKLs4A\nQEWC5NfcEH/FhXUUSVpVcz+IfgjrGDZ3hqhwSKkdhE5G6CZSUAkPOQ0IyoRzxw6sY8iK4oszAIAS\n7H/LFYMv8gLdmEXVsXA39Gcdw+b2EzWukMdYx7AJQ4czEAcMbvmFjAikDu0ndmQdQ1YcozgDAAh+\ne9cNg0+7sg4iQQSvVw2DjxjW8ktlbjPpgFpIt4i1hm5kAaibdIdJertkwXNQ49uScfdyoOJ8y2/L\nXTHwmPKHkZlLhIA3b46Bryif0RqWEAnBF0IsKLqwjmJ1oudNGB6UbvEjBGgfdwNwYjr3TTYcrjgD\nQPJqF8RmuznmF98MHZywtGoifGgg6yg2VUkIdgiTAXiwjmJ1uoFZoAHdWMdokhspQtvJFkw3dEAO\nW59SN7ogOkXNdv66BF0T3bC2cio8qA/rKDZ1mgjIVWIHoUpE3cNtWKdoVmCnQ3AK5DvLtMRhizMA\nHPjWGff/ogZvhb7bedETWzWPwo1Kd/aZNfxG3HFVgR2E+l55EMMGsI7RJBVqEDy5B+sYkufQxRkA\nsnc4o8d2dwX+gds6hw1+SKt5BE5U2WPEvyQdUIf4ll8oM7qx10BV0v2/81UfgHv/e3cK4X7n8MUZ\nAA7vdUKHb9wh3X5uNn7VB6FQNwmEKvfbRCQEG4U4UCirI9TY7jKMg6XbtksI0CGhFhCU+73VWvzK\n/L/jqU5o87kH/CHdgfwsfFfbFRV1Y1nHsKlKQvCjAjsItcOPgnq2ZR2jSWrhNNpMVOawRmvgxfkO\nBTkquK9xRwAv0HdZo+0NUT+MdQybKiQq5XUQutWgfnRv1imaFdj1CFRtpN2ByQovzn9w7qgKZKUH\nOlBeoO/0XnUM1AbpdjJZw60OwkdZx7Cq2ugM0I7SnVzkhCoET5FuPpZ4cW7EpQIB2iUe6CLyy/M7\nggVVQ+FtlO4CO9bwJemIOki3rdZsAkHtOGkvW+DnmQZ1hLTv8Fng1acJVy8IuPaOO3oY+SX6HcGb\nlaPgK3ZlHcRmbnUQDlRUB2F9l3wYo6T7C4cQoMMwZS9bawleeZpRcUVA8ZseCOPbXjWohROWVE6A\nDw1iHcVmbnUQTgHgzjqK1ehGXwR1lu7X467Kh9845Q1pbA1enFtQeY3g9Gvu6FvHC/Rt16kr1lRO\nhSf1ZR3FZgqJgMPkadYxrEb0KYNhuLT7DIJ75kPw4QNab+PF2QTaKoKjr7ojWscne99WJHpgi+ZR\nuFHp3o211q+CO8rII6xjWI0u4SCon3SX7XRCBYKmRrKOIRm8OJtIryU4OF+NGA0v0LflGXyRXDMN\nzlTaHU6tsYl0Qh0UsouHsx76sdLeDbuNTyrcwu5jHUMSeHE2g0FPkPGKGnE3pDst1t6S9EE4qZ0M\nQaGzCG91EA4ChbSLmqnq7s+B2F26d6eEULR/iC/pC/DibDbRSJDyv24YVMYL9G0/1IWgrO5h1jFs\nppIQ7BKmAFDAQlCEoHZcLSiR7o++p+oYfEdJd3SJvUj3f0jKKEHSG26Iv6zcP+fN9Zk2DAb9CNYx\nbOYUUeGIQjoIDcHnIMZJe9p0cPhpCJ7K3JDXVLw4W4xg/yJXDD7DFxy9bWl1NNzq41jHsJl9ggfK\nyDTWMaxC9+ApULV01+x2RjkCpkazjmGRGTNmIDAwEH36/L7q3j//+U+EhYUhOjoaL774InQ6XYvn\n4cW5VQh+W+aKQcd5gb6F4HVNIryNyl0KchPpDD3k/wtI9LiJ+pHS3dIKANr6p8O1h/wmPD3zzDPY\ns2fPXY+NHDkSJ06cwMGDB1FTU4PNmze3eB5enK0g6RNXxB1048slAQAIXq98CL5id9ZBbOJWB2E8\nKDqxjtJqtbGZoIHS/X8SiBHtx8hvLH1CQgL8/PzueuzBBx+EIAgQBAEPPfQQkpOTWzwPL85WkrLB\nBf3S1OBTVQA9VFh8cxx8aHvWUWziJiHYJUyF7DsIVSJqx/m1/DqGvJwPw/uBWNYx7pIDYNUdH+Za\nu3Ytxo0b1+Lr+KBdKzrwtTNia4ETI3TQsw7D2E244uPKKZjl8yU0pIJ1HKs7RVToRJ5GBLXkx1M6\n6u87CtfwWAgnslhHaVL7iEvQpLuB1tba9X37vtTE4wBm3vH5J0tNP+cbb7wBLy8vTJvWct8Fv3O2\nsqxtzui5011BqzJY7rLojq8106CmylrE/ra9ggfKyVTWMVpNO6YcVCXdkUcupAQBU6V192yJDRs2\n4Oeff8amTZtMej0vzjaQu8cJnb5zhxfrIBJw3OCLX6sfUewswi9ICPSQd+EQ216GMUHa44rbBWTA\nJUS+7fx79uzBe++9hx07dsDNzbRJNrw428ixZCe0+8IDvrybEKn1ATimnQKBKq9FXiQEXwiDQSHd\nNStMoR1+BNQrgHWMJglEj+Dx8lgJcfr06Rg0aBAKCgrQqVMnrFu3DnPnzkV1dTVGjBiBqKgozJkz\np8XzEEqp5BdSJYQA0yUfs1HdI4yofU6LcsgzvzU97V6AQLdtrGPYRBg1Yqy4CoB920Wtye1QLFy+\nTWUdo0mUAkU5/aFJPdjs6yIAtLasEUJAm2hzvue1S1v/fo3hd842djZPBdVKD7Tn215hg7YX6upG\nso5hE/lEhaMyn0FYG5UJ2km6O5IQArSPuQrioswmsj/ixdkOLhYIqHvfAyF82yssq4mCS7202zct\n9YvgiWty7iAUCGrHS3sAlyu5hLZTFLJKYAt4tbCT0vMCbixyR3e+7RXe1AyGlzGCdQyb2CjzDsL6\nzqdgjJb2jiSBwVlwbh/MOobN8UphR9dKBJS+5Y5Qg6NfdoLXKx+Er6i8dXtFQrBJ5h2EutHnQV2k\nO/xRILUInqScPR6b4uhVwu5ulgs4+5oH+uiVN3LBHPVQ4Z2bD8OXdmAdxeoqCMFuYRoAea5LLHpf\ng2F4DOsYzfJxzYRHnHTXpbYGXpwZqKkkOP6KO6J0jl2gNXDBh5VT4EXbsI5idflEhWPkz6xjWEw3\nOAe0jXTHFRMCdBhYBaiU+zPEizMjdVqC3PnuiKmWdgeMrRWLamzWTIM7Vd7avT8LXrhGprCOYRnn\neujHSrtpxk04h7aTpN0+3hq8ODNUryfImK9G3E3H3lXlpMEHe6ofgQtV3tKrm0gX6CHtXa+bUtf7\nIMQe0l5WNLBzLpzatWUdwyZ4cWZMNBKkvOqGQeWOXaAz6tshVzsVKoXNIjQQgi+FBFDIsG2dENSO\nqwEVpPt/oiLVCJrSi3UMm+DFWQooQdLrbogvdozB9U3ZVdcRF2snAAqbsHOdEOwRpgGQ318GhqAi\nyW9p5eeeDvfo+1nHsDpenCWDYP9CVww+J78fYGvapLsPWv1DrGNY3QnihOMynUFY8+AJUHfprvtM\nCNBhiP7WPxSEF2dJIfjtfVcMOunYBXplTQSc6hNYx7C6PYIXrpPJrGOYz70K9SP7sk7RLLVQCP8J\n0r7DNxcvzhKU9LEr4nIde9urtzUD4WmQdmeUJb4gXVEPaY8hbkztgEzQoB6sYzQrqNtRqPyle4dv\nLl6cJSplnQv6H3Bz4G2vCBZUjYCv2JN1EKsyEIJNQiIoZLaFl4qidpx0d+sGACdSiaCp4axjWA0v\nzhKWvtkFfX9Vw1HHcRgh4O2bD8NXlO5kCEvc6iB8FHLrIKzvcQxiH2nvPO7vmcY6gtVYvTjPmDED\ngYGB6NOnT8NjGo0GEyZMQOfOnTFx4kRUV1cDAIqKiqBWqxEVFWXyAtSOJmurM0J3uct9K1GLVcMZ\ny6smwZu2Yx3Fqk4QFU7IsINQO+YKqJN0f6koqU/Q6sX5mWeewZ49e+56bNWqVejcuTNOnz6Njh07\n4pNPPml4rkePHjh8+DAOHz6Mjz/+2NpxFOHQT04I+d4dyptDZ5orohqfV02FB/VmHcWqfhK8UEEm\nsY5hFtG/BMZEx1iykzWrF+eEhAT4+d3dKJ+dnY2ZM2fC1dUVM2bMQFaWdHf6laqj+50QuMkDvqyD\nMFJo9MbO6kfgSuW5mFBTNpJuqEd/1jHMoh16GNQ7kHUMxbPLwg45OTkIDQ0FAISGhiI7O7vhufPn\nzyMyMhKxsbGYM2cOIiKaWOf32ILf/x0wFAgcarO8UpWfqUIYPKB/ogZa1mEYyK5vAz/tNPR3/xoG\nUs86jlXcmkE4BE+LFwGUsY5jGlcd9A/fD9fNV1knAQAkXbr1oTR2Kc5N7a/Vvn17XLp0CX5+fvjp\np5/w5JNP4ujRo42fpM8C2wWUkfxMFfr7u+PkGC0MrMMw8HNde3hiMnq6b4FIjKzjWMU1QpAqPIYE\ncSUgk70m6/pmw/lQPwgFh1hHwdBOtz5uez2DXRZrsstojZiYGOTn5wMA8vPzERNza5yni4tLQxPI\n6NGj4eTkhDNnztgjkqwd3O2E6Axl/Xlvju/ruuBS7QQQBU3zziIuuEoeYR3DdIRAO/EaqLM76ySK\nZZfiHBsbi3Xr1kGn02HdunWIi7s1HOfatWswGm/d/eTm5kKn06FHD2kPdJeKtC9dEF8g3V5zW9uk\nuw86/YOsY1jVV6QjDJDP9l2ifykMD8lzxT05sHpxnj59OgYNGoTCwkJ06tQJ69evx+zZs3Hx4kX0\n6tULxcXFmDVrFgAgJSUFERERiIyMxDvvvIPVq1dbO46i7V/pgvhSx10saXlNJHzEMNYxrMZACH4Q\nHgDgxTqKyXSDMkA7Kuf/wBrMGU7cHEKbahCWEEIIMF3yMdkgFAlv65Dl7Ygt0EBboRbzfD5HNbnJ\nOorVjBSr0Zd+0vILJcKpuAfUHxaAiNLoAyBLm+7nMvkchIC+ZNn7paamwtPTE0899RSOHTsGAHj3\n3Xdx6dIlLFmyBC+99BK6dOmCl19+udnz8hmCckcJMheoEVHrmBO9r4lu2F8zAQJVzrfyL4InNGQ0\n6xgmM3Q4A2OCshYdag1rDSdWzne0A6vXE5x80x09jY753/mbPgi1+gdYx7CqTaQ3KLqyjmEy7Yhc\nUH9lTbO3puaGEzfFMX+aFaimkuDKYnd0VNAIBnN8UBMFX1E5O2LUEII9wkRALiuruNShblIQ6xRW\nJXqQRj9+KwdeO/j7hyksaWZx7N1FFeZaiQD3j93h/7wWFTIZL2s9BMuqHsLzPldQQypZh7GKE0SF\nMPIndKEbWEcxib5nHpyj46HKTWcdxSqq/7fxX4z9///jtjec9C2e6/Zw4qioqLuGEzeH3zkrzMV8\nFfw2ucODdRAGropqpGongCio/XkLaYM6DGIdw2S6sadB3f1Zx5CcpoYTN0c538Vcg/xMFbrvdnfI\nP4v21gXDUD+UdQzrIQRfCQMByGNVPtHzJurH9WYdgylzhhM3hw+lU7DBf9Ije2At6xgMUCz03Yqb\nwmnWQaxmEK3DIHEl6ximoRSe6/pAKMxl8vbWGkpXaTBtDoGPk77V79cYfuesYGlfuiD+lCPOIiT4\nsGo03Kl8JnO05ABxRTmZyjqGaQiBdmIFqLOjrkJuHbw4K9z+Dx1zFmGxqEamVlnrb3xFQmDE/axj\nmERsUwLDg7GsY8gaL86KR7D/HVfEVjpeC/RPdR1A64ewjmE1ekKwVRgJyKS7Vzc4A7S9coY32hsv\nzo6AEmS+7pizCN+rjoGv2I11DKspIgJOkCdYxzCNikI3xQmU8DJjCX7VHETDLEKDY/2XixDwcdVY\nuFPlbPL1E/FENRnJOoZJDB1Pwzg4gXUMWXKsn1QHV1NJcOVdx5tFeEl0x0HteEApXzch+JL0AUVn\n1klMon3wCKhfB9YxZIcXZwdzrUSA4WN3tIFCCpWJfqzrBMGgnDs4DSHYK0yBLCb5uupQN5EXZ3Px\n4uyALuar4OuAswgXa2LhK3ZhHcNqjhIVLpLprGOYRB96BGKkfGY6SoFsinN0sGOuV2wrjjiLUISA\nNVVjoabK+bW0hQRAD3kMWdOOOwuqdtT9480nm+J8fNUp9GvPC7Q1OeJehOdFT+Rpxymm/VkkBF8L\ngwG0YR2lRaLnDdQ/3KflF3IAZFSc9ToRRz86hf7t61lHURRHnEW4tS4EToZ41jGspowQHCPTWMcw\nSW2/TIjdI1nHkAXZFGcAqK8VceTDAgzgBdqqHHEW4SLNQPiKIaxjWM3PxAP1dy1kKVGEQDtZA+rk\nWDcElpBVcQYAQ52IQytOIZYXaCtyvFmERgj4rGos3Kg76yjWQQh+EhIASH+ikdj2EgwjBrKOIXmy\nK84AYKynyFmej7j2LS9yzZnIAWcRnhG9cEL3MOsYVlNIVLhGJrGOYRJdYiZo0H2sY0iaLIszAIgG\nIGvZKQzkBdpqHHEW4ZbarnCpV84Qry0kBEAA6xgtU4nQTXEDJcromLUFWf8UUiOQuewUBravYx1F\nMRxxFuEizSD4isrYnLSaEOSRKaxjmMTQuQDGQYmsY0hWi8W5rq4O33zzDZ5//nkAwOnTp7Fz506b\nBzMVNQIZHxRgEC/QVuNoswjrocJ6zcNwpcpYf3gvcUc9Wt6jTgq0D+WB+rZnHUOSWizOr732GnJz\nc5GUlAQAaN++PebPn2/rXOYRgQMfFCA+mBdoa3G0WYSFRm8UKKX9mRDsEgZDDp2DcNWibmJH1ikk\nqcXivH//fixevBguLreGWnl4eNhkS5ZWE4H09wswONgRt2WyjfxMFbrtcpxZhN/UdoObQR6z7Vpy\nhqhQLpPOQX3YEYh9+eiNP2qxOPfq1QuVlb9vNZ+ZmYmoqCibhmqNtPcLkRCkYx1DMQ795FizCBdW\nJcCXKmORnu9JCIBA1jFMoh1fBKr2YR1DUlosznPnzsXEiRNx+fJlDBs2DDNmzMALL7xgj2wWS/3g\nNC/QVuRIswj1UOELzTi4Uvn/QrrVOTiZdQyTiF7XUT82gnUMSTF59+1Dhw5BFEXExNi/o4EQAiDP\n7OMSX+yBlKsKmWTAHMWw/9Yh3UGGLv5JfQYd1d+zjtF6lOIFMRUuyGadpGWUwmtNb5Bz5v+s38lh\ndt/+4YcfcPPmTfTr1w8xMTG4efMmtm3bZvUgtpCy7AwSA7SsYygEwf6FjjOL8EtdD6gNA1jHaD1C\nsFuIhyzWfSYE2snVfGr3/2uxOL/++uvw9f19mT9fX18sWLDAlpmsKmX5GSS2q2EdQxkoQcbrakQ6\nyCzCxVUJ8KHBrGO02hmiQplMOgeN7S7B8ID8OwfXrl2LQYMGoV+/fnjxxRctOkeLxdnNzQ1a7e93\nn1qtFiqVvH44U1acRWLbatYxFMGgJzjhILMIdXDCV5rxcKHyv5P7nnQGRRDrGCbRJWaBBvZgHcNi\nFRUVeOedd7B3717k5OSgsLAQP//8s9nnafEnbNq0aZg9ezYyMzORkZGB2bNn47HHHrMoNEspK89h\niD8v0NZQU0lQ+q47OjnALMJjBl9crBvDOkar1ciocxBORtROcZft1G61Wg1KKSorK6HT6aDVauHn\n52f2eVosznPmzMGwYcPw1ltv4a233sLQoUPxt7/9zaLQrCV/dA6JfhrWMRTheomAegeZRfi5tifc\nDf1Yx2i1fUQtm11T6kNOQRwozz0f1Wo1Vq1ahS5duiAoKAjx8fEYMMD8/guTR2uwZOlojaYkzu6K\nlJteVjufIwuLM+LKEzVQequ+O+rxit+XqCRXWUdple5UxCRxBQAZ7CpU6wGv911BKq+YdZi1Rmuc\nNTQ+czEzuQ5ZybdnI1OseENz1/uVl5cjJiYG+/btg5+fH6ZNm4aXXnoJY8eONStDk1248+bNw/Ll\nyzFu3LhGg+/YscOsN5KSlFXnkfjXLkip8mYdRfbyM1Xo5+eO/LFaOfy4W0wLZ3yrmYCHvTagnsh3\nOOFZIqCMTEYA/ZZ1lJa51UA/oRdcN5pXnK1lg+qpxp8YDvgMv+PzN9656+ns7GzExcWhR49b7ebT\npk1DSkqK9YrzU0/dCvbyyy/f81uIyLQt6E4pq4uQ+JcQpGj4rKTWOvSTE+L93JAzSNlT548Y/NCv\nbhTausn3xgQAtpBOmE2DQVDKOkqL6sJz4dwnDsKxTNZRTJaQkIB58+ahoqICHh4e+OmnnzBv3jyz\nz9Nkce7Xrx8MBgPWrFmDL7/8slVhpSplzQUkPNsZqTV8R+DWSt/sgmH+FOmhyl586jNtGN50uoRq\np8Oso1hMSwiOCJMQJX7MOopJtOMvwuO0N0htFesoJvH29sYrr7yCSZMmQavVYtSoURg2bJjZ52m2\nQ9DJyQlxgZ/ZAAAgAElEQVRFRUUoLy+3OKjUpX56EQnqm6xjKML+D10QX6L8vQgXVw2DN5XBgvbN\n+BVq6CGP8cSi9zXUj5Huej6Nefrpp5GcnIycnBy8+eabEATzh562eER4eDgSEhLw8ssvY+nSpVi6\ndCnef/99iwJLVeq6ixjseoN1DAVwjFmE1XDGVs0EOFFn1lEsRwh2CgMByONrqI05ANq1L+sYdtVi\ncW7fvj0ee+wxeHl5obq6GtXV1dBolDccLW3DJcS7VLCOIX8OMovwoMEf5XWjWMdolXNEwFW5jH0W\nCLSTtaAq5f9ldluztzg3btxAXFwcEhMT4e6u/AWE0j+/jPgngQNGP1AHmGBhKwY9wfE33NHrjRoU\nOIms49jMGm0Y3nK+AI3qKOsoFvuedMRs2h4EJayjtMgYcBGG4fFw3rufdRS7aPLOee3atejbty8+\n+ugj9OzZUzaLHbVW+heXMRAVIETyw78lTVtFUKL4WYQE71U+AG/alnUQi2kJwWFhIusYJtMNzQIN\n6MY6hl00WZw///xz5OXl4ccff0RKSgo+++wze+Zi6sDmYsTR6xB4gW6V6yUC6j/0UPQswkq4YEf1\nBDhR+baz/wY16mTSOQgnA2onO8b8hCaLc01NDfz9/QEA3bp1Q3Fxsd1CSUHGVyUYYLgGlcALdGtc\nLBAUvxdhVn1b3NA/xDqG5WTWOVjf9SSMcfKc2m2OJn/dnzt37q7ZgXd+LvcZgqbK/LYUsVOBg65t\nYRSVe/dna/mZKvTzdUf+w8qdRfhxTTjedrqAKtVx1lEscp4IuEqmIJB+zTqKSWpGHYfXyUCQKnlP\np29Ok8V5+/btd33+0ksvNfy7uRmCM2bMwK5duxAQEIBjx44BADQaDZ544gkcPnwY0dHR2LRpEzw9\nPQEAK1aswMqVK+Hs7Iw1a9Zg8ODBrfqCrC1rSykGTKbIdW8Hg5EXaEsd2uOEeH8lzyIkWFI5Ai/5\nlUBD5DnqZwvpgDm0Awhk8Feyugb6CaFw/UK5xdnqCx+lpqbC09MTTz31VENxfvfdd3Hp0iUsWbIE\nL730Erp06YKXX34ZZWVlSExMxC+//ILz58/j73//O3Jzc+8NaeWFjywRMzEQRzwDUM8LdKsMe74O\n6WHKnUUY71yGIZ4bYSRG1lEsMozq0E/8iHUM01AKzy+iIZzIuuthay189Cr9r0mvfZO8w2abKnMl\nJCTcs3ZpdnY2Zs6cCVdXV8yYMQNZWbcuZlZWFkaNGoXOnTtjyJAhoJRKdgx1zrariKi6Chcn3gbd\nGvs/csVgBc8iTK8PgEb/IOsYFtsPN9QhnnUM0xAC7YRiUFdlrjBpl+0scnJyEBoaCgAIDQ1Fdvat\nzSazsrIQFhbW8LpevXo1PCdFB3eU4f4bV+DKC3Sr/KbwWYQra/rCx9ibdQzLEIIfhVgA8vgFKvqU\noX50NOsYNmFyca6ttbyt0Jxb/qbbs1fd8ZFjcZbWyt1Zjl6lJfB15wXaYv8/i1C5BZpgadVIeNN2\nrINYpIgIKCFTWccw2d7aNCw40Q4LDgALDrBOYz0tFucjR45g7NixDXe4R44cwZw5c8x6k5iYGOTn\n5wMA8vPzERMTAwCIjY3FyZMnG1536tSphufuNfuOj6ZeYx9H912HV8Y5dGmj3NlvtmbQE6TOV2Nw\nkTzu0Mx1nbriK81kuFF5zqzdQoJB0ZV1DJMkDFPhX6vb4bV4AQsGsU5jPS0W57fffhuLFy9u2IE7\nMjISycnJZr1JbGws1q1bB51Oh3Xr1iEuLg4AMGDAAPz888+4ePEikpKSIAgCvLzk0X506WQNKr46\nhahgpQ4OsweC35a4ITbbrfl1BGTquMEXWdrJEKj81hnRE4JU4d6NNqTK0OEMxIHSGunVWi0W55KS\nEtx///0Nn9fV1TW7zsb06dMxaNAgFBYWolOnTli/fj1mz56NixcvolevXiguLsasWbMAAIGBgZg9\nezaGDx+OOXPmYPny5Vb4kuyn6roBeStOIiFIxzqKrKVudEHoDnfI49eyefbUdcB1mW4Qm01cUEXk\nk71m5HFQT/lOpf+jFofSvf7664iMjMSCBQuwfft2rFy5Ej4+PnjllVfslVESQ+lakjCzM9J1PhAV\nvZaEbXWPMML4rBYlCpw2/6pXKvTO8msQ9aMUM8X1AOQxdtstdwBcB6Q5xlC6efPm4fDhwzAajRg9\nejR8fX0xd+5cqweRu9TPLiKy6gq83JRXWOzlbJ4KNYs80Mtgl0FEdvWmZjB8xFDWMcx2gxAcJ9NY\nxzBZbVRWyy+SiRZ/CjIyMrBgwQIcPXoUJ06cwPz58/HVV1/ZI5vs5O4sR7sjRejkxwu0pcqLBZx+\nxQP9apTWCk2w+OZo+NAg1kHMtod4Qo9Y1jFMo4D9TW9rsTi/+eab+PXXXxs+f/fddx1m+VBLnDus\nQfUPBegTJM8ZYlJQW02Q+R814q8oayRHJVywvnIy3Kkn6yjmIQQ7hHgArqyTOJQWi/OOHTswf/58\npKamYv78+cjKynKIRY9a48YVPfI/zkd8sHKnKdsaFQn2v+WGQcddFbXg6GnRC0k1U2S3xGgREXBZ\nRs0bStBicW7bti127NiBOXPmoKSkBFu2bIGLi7LuaGzBUCci/f0CJHpX8YX7WyHpE1dE7lNDzTqI\nFe3XB+FynXyGqd22hQRCxH2sYziMJouzp6cnvLy84OXlhe7du6OwsBDfffcdvL294e3tGItdW0PK\n6iL015XD3YUXaEtlbXNG+00eaKege+jPtT1B9ImsY5jFQAj2C/IZWid3TRbn2xu53v6oq6treKyq\nqsqeGWUvZ+sVdMi/iGAfXqAtlZ+pApZ5oJuonJEci6rj4G28v+UXSshh4oybZDzrGA6hye/0U6dO\nAQByc3Mb/eDMczq7EvW7TqN3IO8otFTxGQHFr3kgQjE7exO8XTkSvmJH1kHM8h25D4A81w2xl5qa\nGvz5z39Gz5490bt3b2RmZpp9jiYnoTz33HNYu3Ythg4d2uhiRPv3228HXDlMQjGVi1pAvzk9kaHg\nZTNtzcmFIv6VWmT417OOYhUhQg1m+nyBGlLJOorJHhRrEEFXsY7RKB8nPfNJKC+//DLUajXmz58P\nJycn1NTUwMfHx7wMzc0QFEURGRkZiI9nu76rkorzbUOe74bkCpkNqZIUimH/qUN6Bz3rIFYx0Lkc\nD3huQj2RyddDKeaKmXBFOusk95BCcY6MjERGRgbUasu7spttwBMEAc8//7zFJ+ealvzROcSJ5XBz\n5u3QliHYv8hVMZNVMurb4bRuAiCX6f+EYJsQByhqHI11XL58GbW1tZg9ezZiY2OxePFii5ZcbrF3\nZdy4cVixYgXvBLSBzG9K0fXcJbTz4gXaIpTg6DtqdDcqo5Pwm9puMNQPZx3DZJcIwQUFj30+r+/e\n6Efm3npsf/U4tr96HNtevXdD39raWhQWFmLKlClISkrCiRMn8O2335r9/i0ufOTp6QmtVgtBEBpu\n0Qkhdi3WSmzWuFNgNzV8Hu6OwnJlFBl769RLRN3cGtyEEn7JUbzp8wuqVUdYBzGJE6WYK+6GCvms\nozSwVrOGy3XT+gD0bXzueb+wsLCGNex/+uknbNy40exlL1qsBtXV1RBFEQaDoWFYHb+Ltq6r53S4\ntD4fA9oro4PL3i4VCOiwXQ1ljOEgeLNyBHzFENZBTGIgBL8KDwEKGoNuDffddx+ysrIgiiJ27dqF\nESNGmH2OFovzAw88YNJjXOvoNEZkL81HYrsa1lFk6fBeJ8TmubGOYRV6qLCiagI8qV/LL5aAo8QJ\nFWQC6xiSsmTJEsybNw/R0dFwc3PDY489ZvY5muxN0el00Gq1KC8vR0XF72u5lpWVSXaHbCVIWXEW\ng57ogBz4o97I70bMkbTWGUNfM+JAO/n/BVIqqrFVMxUPe32BOmL5/p328h3pjr/SQABXWUeRhJ49\ne1o0tvlOTd45r169Gv3790dBQQH69evX8DFr1iy8+OKLrXpTrnkHNhWjV0kx/D2U0IZqTwRpC93Q\nt04ZDRy5Bn8c004EodLvi9AQgkPCFNYxFKXFDsEVK1bghRdesFeeRim9Q7ApHXq5w21kN5y9Jv0f\nTinxCxTh+0oNihWy4NRcjzy4u+5hHaNllOJ58SDUMG+PUWuTQoegNTT5U5+Tk4PS0tKGwrx79248\n+eSTWLVqFbRardWDcPcqLtDi6qZT6NeebyJrjhtXBTitd4cH6yBWsrImAmoD2x3nTUIIfhD6A4q5\n8mw1WZz/8pe/NCwNeubMGTzzzDN44IEHkJeXh//+17SZM1zrVd8wIHfZSSQG8l+I5jidq0LPX5Uz\nQeLNqqHwFbuzjtGiUkJwjjzCOoYiNFmcjUYj2rRpA+BW08bTTz+Np59+Gh9++CEyMjLsFpADqBFI\nWXYGg11vQCUo4091e8ja6oz4M8rYvcMIAUurHoY3lf7u0tuIP4yQ12p7UtRkcfbz82tovti+fTum\nTp0KAHByckJ1dbV90nF3SdtwCX2u801kzbF/mQtiq5Qxxfua6IavNFPgRt1ZR2mWSAh+EUbAhJG6\nXDOavHpPPPEE4uLiMGLECHTv3h0xMbfavE6fPg1fX1+7BeTudmRPOQKPXUCQNy/QpiHIfkutmB29\njxt8ka2dDIFKe0TKCeKEa2QS6xiy1uxojZKSEhQWFmLIkCENy4YWFhaiuroa0dHR9gvpoKM1mhMQ\n4gbfCT34lG8TBXURoXq5BuWKmOIN/MX9JPzcfmQdo1nulGK2+DUIiu36vkoZrdHiUDop4MW5cR6+\nTgid2ROHSpTxZ7ut3T/YgKLHtJDJopwtetUrFXrnA6xjNCuB1iJW/NCu76mU4sxvu2Ss5qYBh5ef\nxOBg6c8gk4LjaU6IzFTGFG8AeFsTD1+xF+sYzUolbtBCPivtSQkvzjInGoC09wuR6Men1JsibZML\n4ouVsQuNCAGLbo6BDw1iHaVZ3wtRALxYx5AdXpwVIuXj8xiIa3BWSb6Virmkxa6I0km7Q81UlXDB\nhqpJUFPp7qpzlRCc5mOfzcaLs4JkfFWC3ldL4K3mBbo5VCQ4+Y47QhSyk3eh0RvHdGNZx2jWj8QX\nBkSwjiEryvju5Brk7b2OtoeL0MGXF+jmaG4Q1H+ihjfrIFbyfW0XeBmlW/xEQrBbeABQyKrb9sCL\nswKdO6xB3c7TCA0QWUeRtKKTKoTsclfMD8FyzVC4U+m27RYSAWWEr1xnKqV8X3J/cO1SLS6sy0d/\nvrtKsw795IS4E8qY4l0uuuGkbhTrGM36lnQCRWfWMWSBF2cF02mMOLQsHwlBOtZRJC1plQsGVjiz\njmEV39R2g7exD+sYTaolBBkC3zXFFLw4Kxw1AqkfnEaiN9/3sWkEB95yQ3i9MtpDV2qGQU2lu2zn\nAeKKajKSdQzJ48XZQaSsLkKcsRwuTryjsDH1eoKL76kRROW/NdgVUY3TtdJu3thC+gDwYR1D0nhx\ndiCZ35aiZ3ExfN15gW7M9RIB6o3uUMIq0F/qesDHGM46RpOuEYJTfOxzs3hxdjDHf6uAT9Z5dPLj\nBboxBTkq9E5WQnkGPtYMl/TyojuJN+rRj3UMyeLF2QFdOF4N7fYC9A40so4iSRnfOWNwkfyneF8W\n3XGhTsJtu4RgpzAEgDI6Y62NF2cHdb1Yj7Nr8zGAD7Vr1G9LXRFTLf/V/jZoe8JHDGUdo0lniYBS\nMpV1DEnixdmB1dWIyP4gn+9P2BhKkPu2Gj2Mcv8RIVhdNQKuVLpNNd+R9qDoyjqG1RmNRkRFRWHc\nuHEWHS/37zyutcRb+xMmelaCEN4OfSedhqBypTv8Ie8RHBdEDxTXPcg6RpP0hCBVsKyASdny5cvR\nu3fvho1KzMWLMwcASFl7ATF15XBz5gX6TsVnBAR8r4bcGzg+04bCV+zJOkaTsokLNGQ06xhWc/ny\nZezevRvPPvusxQvx8+LMNcj+/gq6FRWjjQcv0Hc6ut8J/XPlvkg/wdqqB+FKpft1fEt6A/BnHcMq\n/v73v+O9996DIFheYuV+Q8BZ2cmUCnQqr4Pn8K64UMF/d9+Wss4FwzoYkR4o3w7Uc6InrtaNgK/b\nTtZRGnWDEJwg0xBOV7OOAgAQ9zU+YoeeSAE9mXLr3408v3PnTgQEBCAqKgpJSUkWvz/fQ5BrlG+g\nCzo+fh+OX1HGlGZrUDlRRC/SIs9NzkMQKRb6/oCbwhnWQRpHKV4Q0+CCLItPYa09BDHdxHN8Re56\nv//+97/44osv4OTkhNraWlRVVWHKlCnYuHGjeRl4ceaa4qIWEDWnJ7JK5D/m11p824lo8781uCTj\nztOeqio86r0OelLHOkqjulARU8WPAFiWj3VxvlNycjKWLFmCH380f6d0/ncr1yS9TkTW0lNIDOBD\n7W67WS6ArnWHdDeFalmh0RsV+gdYx2hSERFwmUxjHcNqZDFaY/PmzRgyZAjCw8Px6aefAgAWLFiA\njh07IioqClFRUdizZ489I3EmSFl+BgnqmxBkfLdoTeeOqtD9Z7WsB9h9VHM/fEXpji3+gQRCxH2s\nY7TakCFDsGPHDouOtVuzRmVlJQYMGIDMzEw4Oztj+PDh2Lt3L5YtWwYvLy/84x//aDokb9aQhP4T\nAnHCNwA6vZzLkvUMm1uH9F7SbBowRW+nSkz2Wod6omcdpVHRtB7DxeVmHyelZo3WsNud84EDBxAd\nHQ0/Pz94enpi2LBhyMjIAACbfGGc9R3cfhUhpy+hrSf//wKA/StdEHdTvutCnDT4oEo/jHWMJuUS\nZ1QS5U1OMZXdinNiYiKys7Nx/vx5lJaWYvfu3Thw4AAAYOXKlYiLi8PixYuh0WjsFYmzwKkDN+Ga\nfBZd2/D9CQGCzHfcEGqQb9fNipoI+IohrGM06VvSE0A71jGYsOtojR9//BGrVq1CZWUlQkJCcP/9\n9+O5555D27ZtUVVVhX/+85/o2bMnXn755btDEgJg1h2P9AcQY6/YXCO82zih25974kgpHyof3FWE\n8aVq3GQdxEKJzlcx0GsD6xhNmiqWowv9vMnnU5NFpCX/XsYWvWFURLMGs6F0jz32GP71r38hOjq6\n4bG8vDzMmTMH6enpd72WtzlLk+AEDJrbE2lXpDvrzF7iJtcjd7h892pc6PsdbgrnWMdolB+lmCl+\nCFOH1vE2ZwuUlZUBAPbt24djx44hOjoapaWlAACDwYDNmzdjzJgx9ozEtYJoANI+KESCBx/JkfmD\nMwaVy7f9OVsXyzpCk24QAg2Rbtu4rdi1OE+dOhWhoaH4z3/+g/Xr1wMA/ud//gd9+/ZFXFwc6uvr\nMXv2bHtG4qwg9dOLiKq6Ci83xy7QB95zQ3eZLjG6ta4TfGgw6xhNyiTSXZPaVvgMQc5qukV7oS62\nC4pvOu5Qu+4RRpQ/V4Na1kEs8LR7AQLdtrGO0ThK8XdxN1TIb/GlvFmD4/7gXK4Gum0FuD9IzmtP\ntM7ZPBWiZLqC3Rfa++BJ/VjHaBwhOEPiWaewK16cOauqKNWjYFU+BrWX7+SM1kpe54wYjfxGsRgh\noFwv3bbnX4kPAC/WMeyGF2fO6uprRRxYWoBEX0cds05wbIkawVR+zTvranpLdsduLSGoICNYx7Ab\nXpw5m0lZdR6x9WVQu0i+W8Pqqq4TeG9Ry+4HrBrOqKuX7hyCFNKFdQS7kdv3DiczWVuuoHPhJQR6\nO16BPpbshEFnXVnHMNsGbQScqTSHBZ4hKtSjP+sYdsGLM2dzBRk3gZ9Po1eA40353r/cBX3r5LVh\nwRVRDSdjFOsYTTpJpHtnb028OHN2cbWoFhc+O4nY9vLd5skSVCS4tEINX5ktMPpVTT8QKs3ykEzc\n4QjrbUjz6nOKVFstImtpPhLb1rCOYldXLwjouk9ew+sKjN7wEsNZx2iUnhBcIdLdLMBaeHHm7C5l\n5VkMItfhrHKcduisbc6IvyrNdtym/KgdwDpCk/aTDoDM/hoxFy/OHBMHNhejV3Ex2ng4ToFOf88N\nPWQ0vTuzvi18xR6sYzSqmBDUYjDrGDYln+8UTnGO76+AW+pZdG/rGB2F+loC3Vo11KyDmCFNwgsi\nHRYiWUewKV6cOaaKC7S4uukU+rU3sI5iF+ePqxBxUD7tz7vqOsCXdmAdo1EZcAFFJ9YxbIYXZ465\n6hsG5C47icRA+a6HbI6UDc4YUCWX6d0Ex2vjWIdolEgILil4KVFenDlJoEYgZdlpDHa7AZWg9HZo\ngrz31Oggk+ndX+m6wYu2YR2jUb+SdgDk1dFqKl6cOUlJW38Jfa5fgbda2QVac4PA4xs15DA9RYSA\nEokuiHSdEFST4axj2AQvzpzkHNlTDv+cInT2V3aBPp7mhLjT8pjevb4mDGrqyTpGo7IkthD/pUuX\nMGzYMISHh2Po0KHYvHmzRefhxZmTpKJjGlR+V4CIYGWvDZ200gURtdK/f9bBCTUSXRDpMJwgohfr\nGA2cnZ3xwQcf4MSJE9iyZQteeeUVaDTmr9DIizMnWZVlehxfeRLxwcpdG5qKBBeWq+EvgwkV67V9\n4UxdWMe4FyE4S6Qz5jkoKAiRkbeG+bVt2xbh4eE4ePCg2efhxZmTNGM9Rfr7BUj0rgRR6CayZZcE\ndNoj/eF110Q3CIZ+rGM06lfiC8C6zS4qiC1+CGj+e/LMmTM4ceIEBgwwf7alXMbzcA4uZfUF9J8Q\niHy/ANTUSf8u01w5O50xLMKI9GA96yjN2lQTjUd9siESaTU3VROCG+QB+NHtVjunMae08Sd0Gbc+\nWqDRaPDoo4/igw8+gIeHh9nvzzd45WSlR4w3tP1CUFKpvALt7ELR670aFKqkPWPyLZ+foVEdYR3j\nHj2piPHi+9bb4NXkmhNxz/vV19dj7NixGDNmDF588UWLMvBmDU5WzuRUoW5nIXoHSuvOzRrq9QTV\nq9WQ5iZRv/uhRpodg4VEgAHRrGOAUoqZM2fi/vvvt7gwA7w4czJ0/XIdzqzOR38Frg1ddFKFPtnS\nbn/ONfjDV5TO6Ig7nSTsx2Onp6dj06ZN+O233xAVFYWoqCjs2bPH7PPwZg1OtrzbucBjSi+UKq6J\ngyLhbR2yfKS73shI1xJEeXzBOsY9XCjFq8JC5s0a1sDvnDnZqirXI+BsiQJHcRAcXqJGRwlP7/6l\nrj18xc6sY9xDT6R7zczFizMna3l7ryOxrZZ1DKurvkHg9rVa0sOpjtSyb0JQMl6cOdlLW3UOoQrc\nPPZkuhNiC6Q7vfub2q7wpsrfy48VXpw52TPWU+h+LYLaRWnNG8D+D10QKdnp3QQX6qS5nKgS8OLM\nKcKF49XoR26yjmF9lOD8B2q0kej07g3aXvCg3qxjKBIvzpxipG24hAEKHF5XXiygw0/S3NxKDxVu\n1kt3I1g548WZU5TTX55FgJfymjcO7nJCfLEEFx0CsL76frhSaY/NliNenDlFuXFFjw6Xr7COYROp\nS13RyyC9H9kbcIVo6M86huJI73+a41rp8O5yJAYqb3idQU9QuVoN85fQsb0vaiKholIe+Cc/vDhz\nipTxyTnc1055w+su5qsQniG9JoQLogfcjBGsYygKL86cItXXijCmXYCrk/Lan9O+dEHcTeltavq9\nth8g4VmNcsOLM6dY53I1iHWpZB3DJg6+64bOorR+fPMMfvChYaxjKIa0/nc5zspSPruIfu2lu4CQ\npbRVBM6b1ZDa/fMvWmkuJypHvDhzilf0zVm08VRe80Z+pgoD8qU1vTtJHwRfsQvrGIrAizOneNcv\n16Hr1ausY9jE/o9dEKWT1vTug3xBJKvgxZlzCAd3lCEhSMc6hvVRgjMfqNFOQtO7v68NgQ8NZB1D\n9nhx5hxG9pqz6NZWecPrrpcI6JErpeYNgrN8QaRW48WZcxh1NSJUWZfgrFJe+/OBTc4IltAwto3a\n++BBfVjHkDVenDmHcjq7EgM9qljHsLp6PUGXo9K5e66HCtf1vO25NXhx5hxOyuoLiAxW3vC6jC+c\nESChtud1NeFwo9JcTU8OeHHmHFLJ9+fg666s5g19LUGP49JZuU4DF+gNfNyzpXhx5hxS2YVa9LxZ\nzjqG1WVsdEFbCd09b6yJhBOV2lQZeeDFmXNY2d9fweDgWtYxrKpOS9DrlHTunotFNZyNkaxjyJJd\ni/PmzZsxZMgQhIeH49NPPwUAaDQaTJgwAZ07d8bEiRNRXV1tz0g2lMM6gAXklrn1eQ+tPYsQfzsO\nr7uaZPO3yPzcBf5WvHsW01Jbdfy32n4gEhpJYg8pKSkICwvDfffdh5UrV1p0DrsV58rKSrz++uvY\ntm0bsrKysGbNGlRWVmLVqlXo3LkzTp8+jY4dO+KTTz6xVyQbO8g6gAXklrn1eXUaI9SHL8PJXsPr\nypJs/hY6DUFYofXunml6WquOP2nwgZcYbqU08jBv3jysXr0a+/btw0cffYRr166ZfQ67FecDBw4g\nOjoafn5+8PT0xLBhw5CRkYHs7GzMnDkTrq6umDFjBrKysuwVieMAAKcO3ES8l4Z1DKvK/twFvqxD\n3GG3Ay2IVFl5ayXExMREhISEYOTIkRbVNbttXZCYmIi//e1vOH/+PNzc3LB79264uroiJycHoaGh\nAIDQ0FBkZ2c3enx0tLyG5JSWOiM4mGe2JWvmrc65ijETPXBFa9t1KkovA8FdbfoW/48gvNQVhR1b\nv+HtZYGgo6p193FaMQghYhT0gnzWOPHxaflrrq+n0P5h0507axoA9O7dG5mZmRg7dqxZ72+34uzh\n4YFly5bh+eefR2VlJfr06QNXV1dQatqfk7m5PW2c0PpKSy1ra2JJbpmtmtdOrTqlqa/b5X1y37He\nuYoXLWz1OeT2N3FlZR+TXufp6WmT97frpl/jxo3DuHHjAACPPfYYRo0ahdzcXOTn5yMqKgr5+fmI\nibn3zx9TCzjHcZw1tKbmxMTE4J///GfD5ydOnMCoUaPMPo9dR2uUlZUBAPbt24fjx48jOjoasbGx\nWGJI63cAAAdhSURBVLduHXQ6HdatW4e4OL5gCsdx8uXjc2tNkZSUFBQVFWHv3r2IjTV/Kjuhdrwt\nTUxMRFlZGby8vPDRRx9hwIAB0Gg0eOKJJ3D48GFER0dj06ZNNvszgeM4zh6Sk5Mxa9Ys1NfX44UX\nXsALL7xg/kkoQ8nJyTQ0NJT26NGDrlix4p7n8/PzaVxcHHV1daVLliwx61hbaU3mkJAQ2qdPHxoZ\nGUljYmLsFbnFzJs2baJ9+/alffv2pdOnT6cFBQUmHyu1vFK9xtu2baN9+/alERERdMyYMTQ7O9vk\nY6WYmcV1NvU6ZWdnU5VKRbds2WL2sVLCtDhHRkbS5ORkWlRURHv16kXLy8vver6srIzm5OTQ+fPn\n31PoWjpWipm7dOlCr1+/bpecd2op84EDB+jNmzcppZRu2LCBPvHEEyYfK7W8Ur3G1dXVDf9OSkqi\nCQkJJh8rxcwsrrMp18lgMNBhw4bRsWPH3lWcWV3j1mA2fduUsYDt2rVD//794ezsbPaxUst8G7Vz\n56YpmQcOHNjQTjZ27FgkJyebfKyU8t4mxWvs4eFx1+vd3NxMPlZqmW+z53U29TqtXLkSU6dORbt2\n7cw+VmqYFeemxgLa+tjWaO37EkIwfPhwTJw4ETt27LBFxHuYm3nNmjUNI2pYXOfW5AWkfY23bt2K\nLl26YMaMGVi7dq1Zx0oh85o1axoet/d1NiVvcXExtm/fjtmzZzdkNPVYKbLrUDpHl56ejuDgYOTn\n52PcuHEYMGAAgoKCWMdqsG/fPmzatAkHDhxgHcUkjeWV8jWeNGkSJk2ahG+++QYTJ07E4cOHWUdq\n0Z2ZJ02a1JBZitf5xRdfxKJFi0AIAb3VZMs0T2sxu3OOiYnBqVOnGj4/ceKEycPoWnNsa7T2fYOD\ngwEAYWFhGD9+PH788UerZ/wjUzMfPXoUs2bNwo4dO+Dr62vWsVLJC0j7Gt/26KOPoqSkBDqdDv37\n95fF9/KdmQH7X2dT8h46dAiPPfYYunbtiu+//x5z5szBjh07mNWLVmPZ4H27kf78+fPNNtK/9tpr\nTXYItnSstVmauaamhlZVVVFKb3Ua9u7dm168eFESmS9cuEB79OhBMzMzzT5WSnmlfI3PnDlDRVGk\nlFK6a9cuOnr0aJOPlVpmVtfZnOv09NNP0++//96iY6WCaXFOSkqioaGhtHv37nT58uWUUko/+eQT\n+sknn1BKKS0tLaUdO3ak3t7e1NfXl3bq1IlqNJomj5Vy5rNnz9KIiAgaERFBhw8fTj/77DPJZJ45\ncyb19/enkZGR9wyNYnGdLc0r5Wu8ePFiGh4eTiMjI+kzzzxDjx071uyxUs7M6jq3lPdOfyzOrK5x\na9h1EgrHcRxnGr4TCsdxnATx4sxxHCdBvDhzHMdJEC/OHMdxEsSLM2dzw4cPxy+//HLXY8uWLcOc\nOXMafX2XLl1QUVHR7DnfeefuleTj4+MBAEVFRejT59Yi6QcPHsS8efMA3FolLCMjw6L8HMcCL86c\nzU2fPh1ff/31XY998803ePzxxxt9/e1pt81ZuPDunTnS09PveU3//v2xfPlyAMD+/ftlM/OR4wBe\nnDk7mDJlCnbt2gWDwQDg1t1tSUkJ9Ho9xowZg/j4eHz66aeNHjtp0iT069cPw4cPx9atWwEA//73\nv6HT6RAVFYUnn3wSQONbBSUlJWHcuHG4cOECVq9ejQ8++ADR0dFIS0tDt27dGvJUVVWhW7duMBqN\ntvjyOc4ifG0Nzub8/f0xYMAA7N69G+PHj8fXX3+NqVOn4i9/+Qv27NmDNm3aYNSoUYiPj0dYWNhd\nx65btw5+fn6oqqrC0KFDMWnSJCxatAgfffTRXWtTNHe3HRISglmzZsHLywv/+Mc/AABDhw7Frl27\nMGHCBHz99deYMmUKVCrbbu7Kcebgd86cXdzZtPHNN99gypQpCAsLQ48ePeDn54epU6c2urrZ119/\njQceeADx8fE4d+4cjh07ZtH70z8shPPss89i/fr1AIANGzbgmWeesei8HGcrvDhzdjF+/Hj8+uuv\nOHz4MLRa7T13upTSex47d+4cVq1ahe+++w7Hjh1D165dcePGDYve/4/nHjRoEIqKipCUlASj0Yje\nvXtbdF6OsxVenDm78PT0xLBhw/DMM8/g8ccfR1xcHE6dOoWzZ8/ixo0b2Lp1K8aPH3/XMSUlJWjX\nrh38/f2Rnp6OvLy8hufatWsHrVZr8vuHhISgvLz8rseeeuop/OlPf8KMGTNa98VxnA3w4szZzfTp\n03Hs2DFMnz4dhBCsXr0ac+fOxdixYzFz5syGBdFv3+UOHjwYISEhCAsLw7JlyzBixIiGc82dOxcJ\nCQkNHYJ33hk39u+RI0fi4MGDiIqKahjZ8fjjj+PGjRuYPn26bb9wjrMAX/iIc1ibN2/G/v37G3Yl\n4Tgp4aM1OIc0d+5cpKenY+fOnayjcFyj+J0zx3GcBPE2Z47jOAnixZnjOE6CeHHmOI6TIF6cOY7j\nJIgXZ47jOAnixZnjOE6C/g98ZDDk0wdCzQAAAABJRU5ErkJggg==\n"
233 ],
234 }
234 "language": "python",
235 ],
235 "outputs": [],
236 "collapsed": false,
236 "prompt_number": 11
237 "prompt_number": 15,
237 },
238 "input": "plt.contourf(sigma_mesh, strike_mesh, prices['aput'])\nplt.axis('tight')\nplt.colorbar()\nplt.title(\"Asian Put\")\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")\n"
238 {
239 }
239 "cell_type": "markdown",
240 ]
240 "source": [
241 }
241 "Plot the value of the European call in (volatility, strike) space."
242 ]
242 ]
243 },
244 {
245 "cell_type": "code",
246 "collapsed": false,
247 "input": [
248 "plt.figure()",
249 "plt.contourf(sigma_vals, strike_vals, prices['ecall'])",
250 "plt.axis('tight')",
251 "plt.colorbar()",
252 "plt.title('European Call')",
253 "plt.xlabel(\"Volatility\")",
254 "plt.ylabel(\"Strike Price\")"
255 ],
256 "language": "python",
257 "outputs": [
258 {
259 "output_type": "pyout",
260 "prompt_number": 12,
261 "text": [
262 "<matplotlib.text.Text at 0x106b618d0>"
263 ]
264 },
265 {
266 "output_type": "display_data",
267 "png": "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\nxkREGvD/vLHqAgUOcYsAAAAASUVORK5CYII=\n"
268 }
269 ],
270 "prompt_number": 12
271 },
272 {
273 "cell_type": "markdown",
274 "source": [
275 "Plot the value of the Asian call in (volatility, strike) space."
276 ]
277 },
278 {
279 "cell_type": "code",
280 "collapsed": false,
281 "input": [
282 "plt.figure()",
283 "plt.contourf(sigma_vals, strike_vals, prices['acall'])",
284 "plt.axis('tight')",
285 "plt.colorbar()",
286 "plt.title(\"Asian Call\")",
287 "plt.xlabel(\"Volatility\")",
288 "plt.ylabel(\"Strike Price\")"
289 ],
290 "language": "python",
291 "outputs": [
292 {
293 "output_type": "pyout",
294 "prompt_number": 13,
295 "text": [
296 "<matplotlib.text.Text at 0x106bd90d0>"
297 ]
298 },
299 {
300 "output_type": "display_data",
301 "png": "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\nEUnGEBMRSfb/3Vuei4TCOWYAAAAASUVORK5CYII=\n"
302 }
303 ],
304 "prompt_number": 13
305 },
306 {
307 "cell_type": "markdown",
308 "source": [
309 "Plot the value of the European put in (volatility, strike) space."
310 ]
311 },
312 {
313 "cell_type": "code",
314 "collapsed": false,
315 "input": [
316 "plt.figure()",
317 "plt.contourf(sigma_vals, strike_vals, prices['eput'])",
318 "plt.axis('tight')",
319 "plt.colorbar()",
320 "plt.title(\"European Put\")",
321 "plt.xlabel(\"Volatility\")",
322 "plt.ylabel(\"Strike Price\")"
323 ],
324 "language": "python",
325 "outputs": [
326 {
327 "output_type": "pyout",
328 "prompt_number": 14,
329 "text": [
330 "<matplotlib.text.Text at 0x106d34150>"
331 ]
332 },
333 {
334 "output_type": "display_data",
335 "png": "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\nQmCC\n"
336 }
337 ],
338 "prompt_number": 14
339 },
340 {
341 "cell_type": "markdown",
342 "source": [
343 "Plot the value of the Asian put in (volatility, strike) space."
344 ]
345 },
346 {
347 "cell_type": "code",
348 "collapsed": false,
349 "input": [
350 "plt.figure()",
351 "plt.contourf(sigma_vals, strike_vals, prices['aput'])",
352 "plt.axis('tight')",
353 "plt.colorbar()",
354 "plt.title(\"Asian Put\")",
355 "plt.xlabel(\"Volatility\")",
356 "plt.ylabel(\"Strike Price\")"
357 ],
358 "language": "python",
359 "outputs": [
360 {
361 "output_type": "display_data",
362 "png": "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\nAeyS/5wqC8i5AAAAAElFTkSuQmCC\n"
363 }
364 ],
365 "prompt_number": 15
366 },
367 {
368 "cell_type": "code",
369 "collapsed": true,
370 "input": [
371 "plt.show()"
372 ],
373 "language": "python",
374 "outputs": [],
375 "prompt_number": 16
376 }
377 ]
378 }
379 ]
243 } No newline at end of file
380 }
@@ -14,7 +14,7 b' import sys'
14 import time
14 import time
15 from IPython.parallel import Client
15 from IPython.parallel import Client
16 import numpy as np
16 import numpy as np
17 from mcpricer import price_options
17 from mckernel import price_options
18 from matplotlib import pyplot as plt
18 from matplotlib import pyplot as plt
19
19
20 # <codecell>
20 # <codecell>
@@ -24,7 +24,7 b' price = 100.0 # Initial price'
24 rate = 0.05 # Interest rate
24 rate = 0.05 # Interest rate
25 days = 260 # Days to expiration
25 days = 260 # Days to expiration
26 paths = 10000 # Number of MC paths
26 paths = 10000 # Number of MC paths
27 n_strikes = 5 # Number of strike values
27 n_strikes = 6 # Number of strike values
28 min_strike = 90.0 # Min strike price
28 min_strike = 90.0 # Min strike price
29 max_strike = 110.0 # Max strike price
29 max_strike = 110.0 # Max strike price
30 n_sigmas = 5 # Number of volatility values
30 n_sigmas = 5 # Number of volatility values
@@ -117,7 +117,6 b' for i, price in enumerate(results):'
117 prices[i] = tuple(price)
117 prices[i] = tuple(price)
118
118
119 prices.shape = (n_strikes, n_sigmas)
119 prices.shape = (n_strikes, n_sigmas)
120 strike_mesh, sigma_mesh = np.meshgrid(strike_vals, sigma_vals)
121
120
122 # <markdowncell>
121 # <markdowncell>
123
122
@@ -125,7 +124,8 b' strike_mesh, sigma_mesh = np.meshgrid(strike_vals, sigma_vals)'
125
124
126 # <codecell>
125 # <codecell>
127
126
128 plt.contourf(sigma_mesh, strike_mesh, prices['ecall'])
127 plt.figure()
128 plt.contourf(sigma_vals, strike_vals, prices['ecall'])
129 plt.axis('tight')
129 plt.axis('tight')
130 plt.colorbar()
130 plt.colorbar()
131 plt.title('European Call')
131 plt.title('European Call')
@@ -138,7 +138,8 b' plt.ylabel("Strike Price")'
138
138
139 # <codecell>
139 # <codecell>
140
140
141 plt.contourf(sigma_mesh, strike_mesh, prices['acall'])
141 plt.figure()
142 plt.contourf(sigma_vals, strike_vals, prices['acall'])
142 plt.axis('tight')
143 plt.axis('tight')
143 plt.colorbar()
144 plt.colorbar()
144 plt.title("Asian Call")
145 plt.title("Asian Call")
@@ -151,7 +152,8 b' plt.ylabel("Strike Price")'
151
152
152 # <codecell>
153 # <codecell>
153
154
154 plt.contourf(sigma_mesh, strike_mesh, prices['eput'])
155 plt.figure()
156 plt.contourf(sigma_vals, strike_vals, prices['eput'])
155 plt.axis('tight')
157 plt.axis('tight')
156 plt.colorbar()
158 plt.colorbar()
157 plt.title("European Put")
159 plt.title("European Put")
@@ -164,10 +166,15 b' plt.ylabel("Strike Price")'
164
166
165 # <codecell>
167 # <codecell>
166
168
167 plt.contourf(sigma_mesh, strike_mesh, prices['aput'])
169 plt.figure()
170 plt.contourf(sigma_vals, strike_vals, prices['aput'])
168 plt.axis('tight')
171 plt.axis('tight')
169 plt.colorbar()
172 plt.colorbar()
170 plt.title("Asian Put")
173 plt.title("Asian Put")
171 plt.xlabel("Volatility")
174 plt.xlabel("Volatility")
172 plt.ylabel("Strike Price")
175 plt.ylabel("Strike Price")
173
176
177 # <codecell>
178
179 plt.show()
180
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
General Comments 0
You need to be logged in to leave comments. Login now