{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "###
San Jose State University
Department of Applied Data Science

**DATA 200
Computational Programming for Data Analytics**

Spring 2023
Instructor: Ron Mak
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4.15 Passing Arguments to Functions: A Deeper Look \n", "### Memory Addresses, References and “Pointers”\n", "### Built-In Function id and Object Identities " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### In Python, every value is an object, even a scalar value like 7. An object is stored in memory, and it has a **reference**. You can think of a reference as an address. When we assign a value to a variable, we are really assigning the object's reference to the variable." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = 7" ] }, { "attachments": { "9c764b92-ee01-4627-acdc-e520dace995c.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAC7gAAAFNCAYAAACQOiKdAAABJ2lDQ1BrQ0dDb2xvclNwYWNlQWRvYmVSR0IxOTk4AAAokWNgYFJILCjIYRJgYMjNKykKcndSiIiMUmB/zMDCIMAgxmDOYJiYXFzgGBDgwwAEMBoVfLvGwAiiL+uCzMKUxwu4UlKLk4H0HyDOTi4oKmFgYMwAspXLSwpA7B4gWyQpG8xeAGIXAR0IZG8BsdMh7BNgNRD2HbCakCBnIPsDkM2XBGYzgeziS4ewBUBsqL0gIOiYkp+UqgDyvYahpaWFJol+IAhKUitKQLRzfkFlUWZ6RomCIzCkUhU885L1dBSMDAwtGRhA4Q5R/TkQHJ6MYmcQYgiAEJsjwcDgv5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745yaVFZVBjGJmMGRgI8QGJ2UqPP9vT8wAAAAlwSFlzAABcRgAAXEYBFJRDQQAAQABJREFUeAHs3QeYVdW5OO5v6BgBaYpgAdEI0VhjjYoSxRKxRWMDE6NG7N381fyiJpEk2GKNoib3migImpvYxVgwRsCCaEQBC4mVpjSVPvN3z70zmT1nZphhzpxzhvPu5+Gevb619irv5sk+V769TknZV0c4CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAngVa5Hl8wxMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgXIBCe7+IhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAQQi0iigriImYBAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUt4Ad3Iv7/ls9AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECkZAgnvB3AoTIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQHELSHAv7vtv9QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgYAQnuBXMrTIQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFLSDBvbjvv9UTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgYAQkuBfMrTARAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFLeABPfivv9WT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYIRkOBeMLfCRAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFDcAhLci/v+Wz0BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQKRkCCe8HcChMhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAcQtIcC/u+2/1BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBgBCe4FcytMhAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAsUtIMG9uO+/1RMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBgBCS4F8ytMBECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUt4AE9+K+/1ZPgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBghGQ4F4wt8JECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUNwCEtyL+/5bPQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBApGQIJ7wdwKEyFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBxC0hwL+77b/UECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoGAEJ7gVzK0yEAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECxS0gwb2477/VEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoGAEJLgXzK0wEQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBS3gAT34r7/Vk+AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGCEWhVMDMxEQIECBAgQIAAAQIECBAgQIAAAQIECKzFAitWrIh33nknSkpKol+/fmvxSi2NAAECBAgQIECAAAECBAgQIECAAAECBAgQILDmAiVlZaVla365KwkQIECAAAECBAgQIECAAAECBAgQIECgPgKzZs2K3XbdLVq3bh0z3p5Rn0u0IUCAAAECBAgQIECAAAECBAgQIECAAAECBAgUnUCLoluxBRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAQQpIcC/I22JSBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKD4BCe7Fd8+tmAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgUpIMG9IG+LSREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKD4BCS4F989t2ICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUpIAE94K8LSZFgAABAgQIECBAgAABAgQIECBQaAKfffZZPPTgQ3mdVllZWTz55JMxf/78vM7D4AQIECBAYG0UKIRn/droak0ECBAgQIAAAQIECBAgQIAAAQIEGiogwb2hYtoTIECAAAECBAgQIECAAAECBAgUlcA///nPuPDCC2O33XaLkSNH5mXtK1asiPvH3h+D9hsUPz7lx7F48eK8zMOgBAgQIEBgbRQohGf92uhqTQQIECBAgAABAgQIECBAgAABAgTWVKDVml7oOgIECBAgQIAAAQIECBAgQIAAAQJrs0BpaWkc/f2j4+WXX87rMp966qn46WU/jVmzZuV1HgYnQIAAAQJrm0ChPOvXNlfrIUCAAAECBAgQIECAAAECBAgQINBYAQnujRV0PQECBAgQIECAAAECBAgQILBWC9xzzz2xaNGijDXus88+0a9fv4x4UwXuuvOuWL5ieUb3hx56aPTs2TMj3lwCSfL28OHDY87sObHHHnvEL375i+jWrVtBTL9FixaxfHmmea4nt2zZMsntuUY3HgECBAg0qcCSJUvixRdfjBf+8UK8/fbbMX/+/Pj000/LP5Nnb+fOnaNrt67RtUvX6N69e3xrp2/FXnvtFb169crqvArlWV/I34eyCq4zAgQIECBAgAABAgQIECBAgAABAvUUkOBeTyjNCBAgQIAAAQIECBAgQIAAgeIUSJKsRvxmRMbiv/ziy5wluK9YsSKuuuqqKCsrS83jW9/6VgwbNiwVa06FDz/4ME4//fRYvux/k8gff/zxWLVqVYy8Y2TBLGPrrbeO119/Pa/z2W677fI6vsEJECBAgEA2BJJn/EMPPRSjR4+Oya9MjuT7TW3H7NmzI/lTcfz5z38uP+27ed8YuM/AOPFHJ8aGG25YUd2oz3w/65vD96FGAbuYAAECBAgQIECAAAECBAgQIECAwBoItFiDa1xCgAABAgQIECBAgAABAgQIECgagaFDh8YWW2yRsd5JkyZlxJoqMHXq1Izk9jZt2sRvRvwmSkpKmmrYJu/31VdfrUxurxjshRdeqDgtiM9Ne2+a93lssMEG0bJly7zPwwQIECBAgMCaCCSJ7X/5y19i0H6D4rxzz4tJEyfVmdxe1xjvvvNu3HHHHbH33nvH8KuGl+/4Xlf7+tTl+1nfHL4P1cdRGwIECBAgQIAAAQIECBAgQIAAAQLZFJDgnk1NfREgQIAAAQIECBAgQIAAAQJrnUCrVq3iiiuvyFjXK6+8EnPnzs2IN0Vg3LhxGd3+4Ac/iM022ywj3pwCW3w988WBLbfcsqCW0KVzl7zPJ0lu79SpU97nYQIECBAgQKChAh9//HEcduhh5Ynt7733Xo2XJ8+55GXCXXfbNQ4++OA4/PDDY4899oivf/3rtT7/kl9/SRLd99pzr7h/7P019lvfYL6f9c3h+1B9LbUjQIAAAQIECBAgQIAAAQIECBAgkC2BVtnqSD8ECBAgQIAAAQIECBAgQIAAgbVVYPfdd48DDjggHn/88collpaWxoN/fTBOOvmkylhTnJSVlZWPU7Xvjh07xhlnnlE11CzP+/XrF5deemmMGDEiVq5cGb17945f/+bXBbWWZKf8QjgKZR6FYGEOBAgQINA8BJKXAYedOizmzZuXMeEuXbrEAQceEAP2GhC77b5bdOjQIaNNReDNqW9G8rLfE088EdOmTasIl39+/vnncdFFF8X7778f519wfqquvoV8P2Obw/eh+lo2Vbvk+/DiRYujY6eOTTWEfgkQIECAAAECBAgQIECAAAECBApMwA7uBXZDTIcAAQIECBAgQIAAAQIECBAoTIHLfnpZVE+AGjNmTJNPdtLESfHRRx+lxjnxxBNr3dE01bAZFE758Snx6pRX49nxz8ZTTz9VvoNrIU27ZauWBTGd5JcEHAQIECBAoLkIPPTgQ3HsMcdmJLe3adsmTjv9tBj/3Pi46qqrYtD+g+pMbk/W+42tvhHnnnduPPb4Y3HPvffU+As2N910U5x/3vmxYsWKBhMVwrO+0L8PNRg1ixf87W9/K9/Z/+FHHs5ir7oiQIAAAQIECBAgQIAAAQIECBAodAEJ7oV+h8yPAAECBAgQIECAAAECBAgQKAiBjTbaKAYPHpyay4wZM+LVV19NxbJduP/++1Ndtm3bNoaeMDQVa+6FddddNzbddNNo0aLw/lNVyxaFkeDesmVhzKO5/10zfwIECBBoeoGpb0yNCy+6MCPZfM8994ynn346Lr744kie/WtyJL+qkyS6X3jhhdG6detUF//zP/8Tv/nNb1Kx+hQK5VlfyN+H6uOY7TYTJ06MQw85NE45+ZRIdvF3ECBAgAABAgQIECBAgAABAgQIFJdA4f2rYXH5Wy0BAgQIECBAgAABAgQIECDQjASSndOrH/fee2/1UNbKX3zxRTz66KOp/r73ve9F165dUzGFphNo0bIw/vOZBPemu8e57DlJXrzgggvivPPOy+WwxiJAgEDOBBYtWhSnnXZaLF+2PDXmHnvsEXfceUf06tUrFV+TQvKLOmeceUZce921UVJSkurirjvvivHjx6diqysUyrN+dfMstvo/3v3HeP3114tt2dZLgAABAgQIECBAgAABAgQIECDwfwKF8S90bgcBAgQIECBAgAABAgQIECBAoBkIbLX1VrHzzjunZvrwQw9HkszVFMcjDz8SS5YsSXX9ox/9KFVWaFqBQkksL8Td7ZtWfu3sPUlwP/OsM+O0009bOxdoVQQIFL3ARRddFB988EHKIfnuNPKOkZH8Ck02j+SXdS6/4vKMLi+84MKYN29eRry2QKE862ubnzgBAgQIECBAgAABAgQIECBAgACBYhSQ4F6Md92aCRAgQIAAAQIECBAgQIAAgTUWqL6L+9KlS+PPf/7zGvdX14Vjx45NVX/729+Ovpv3TcUUmlagRUlh/OczCe5Ne5/1ToAAAQKNF3jppZdi3BPjUh1tvPHGcdfv74r27dun4tkq/OAHP4ghQ4ekukuS20eMGJGK1VUolGd9XXNUR4AAAQIECBAgQIAAAQIECBAgQKDYBArjX+iKTd16CRAgQIAAAQIECBAgQIAAgWYrsN+g/aLXRr1S8x9176hUORuFd995N15++eVUVyeccEKqrND0AoWSWF4o82h6cSMQIECAQHMVuO13t2VM/fwLzo/k1yua8jjnnHOiXbt2qSH++pe/1nsXd8/YFJ0CAQIECBAgQIAAAQIECBAgQIAAgYIQkOBeELfBJAgQIECAAAECBAgQIECAAIHmItCyZcuonmg+Y8aMSHYtzeYxanQ6aX6DDTaI7+z7nWwOoa96CLRoWRj/+axQ5lEPMk0IECBAoAgFku9CTz/9dGrlW2yxRRxyyCGpWFMUunXrFkOHDk11vXz58rjnnntSsdoKnrG1yYgTIECAAAECBAgQIECAAAECBAgQyJ9AYfwLXf7Wb2QCBAgQIECAAAECBAgQIECAQIMFvv/970ebtm1S1917z72pcmMKSVLWnx/4c6qLY487NpLkekduBUpKSnI7YC2jlURhzKOW6QkTIECAQJEL3HHHHRkC551/XuRqd/RTh50a7du3T83hT3/6UyTfqVZ3FMqzfnXzVE+AAAECBAgQIECAAAECBAgQIECgmARaFdNirZUAAQIECBAgQIAAAQIECBAgkA2B9dZbLwYfPDgeeOCByu4efezR+NnlP4vOnTtXxtb05Iknnoj58+dXXp4kth977LGV5fqcJAldU6ZMiU8+/iTmzJkTc+bOiVWrVkXXLl2jS9cu8c1vfjO22mqryEZS11tvvRX9+/dPTSvZ0X7q1Knx0UcffZWaXRLb77B9HHjggak21QtJ26997WuR+DbkyOVaq89rwYIFMWHChPjwgw/js88+iy+//DI6d+kcPTfsGbvsuktsuumm1S9Zo3I27lPVgd99592YPmN6fPDBBzHrk1nlfyc23njj6Nu3b/nfjaptnRMgQIAAgboEysrK4umn0ru3d+jQIfbdd9+6LstqXdeuXWPw4MExZsyYyn7nzZ0XE16YEAP2HlAZW5OTXD3rK+b2ztvvxCabbhJt2qRfpqyor89nPp7zH374YSQ7+X/yyScxe9bsmL9gfqzTfp1Idtjv179f+feL1X3He/HFF8u/qybfpVasWJFa6tIlS2PhwoWpWFJYvGhxvP/B++XfaY466qicvVSRMREBAgQIECBAgAABAgQIECBAgACBrApIcM8qp84IECBAgAABAgQIECBAgACBYhEYMnRIKsF9+bLl8cD9D8TJp5zcaILRo0an+th///1j/fXXT8VqKiQJZo888kg8/tjj8eyzz8YXX3xRU7PKWNLncccfF8OGDYu2bdtWxutzUlpaGuOeGBcj7xgZM6bPiDemvlF+2XPPPRdXXnllvPfuexndvPzKy5EkoFU/Jk6YGP/13/8VT457Mv7y17/UK8E9l2utPt+k/NRTT8UdI++IJBErmUttR5I0/qOTfhTHHHNMtGvXrrZmOYkn9+zRRx+N//6v/46XX3651jGTlxWSOR9xxBGSxGpVUkGAAAECFQJJMnXyklfVY8CAAdG6deuqoSY/TxLZqya4JwMmz7s1TXDP5bM+eUb/7W9/K39Gv/DCCzHltSkNTnDPx3N+8eLF8dBDD5X/8tArr7xS5z1u1apV7L333jFkyJBa78mFF1xYnqheU0e/+MUvIvlT29GzZ884+uija6sWJ0CAAAECBAgQIECAAAECBAgQaGYCJWVlpbX/C1wzW4zpEiBAgAABAgQIECBAgAABAgRyKXDwdw8u36W8YszNNtssnnr6qYriGn2+//77MWCv9E6jo0aNil1327XO/qZPnx6XXHJJvDr51Trb1VTZd/O+kYzRvXv3mqozYk8++WRc9cur4t///ndl3ZtvvRm/v+v3ce2119aY8J3s2PnK5FdSCdNJItfVI64u3+2zoqMHH3pwtTuI53Ktzz//fAwdMrRiepEkT2200Ublie2VwXqcdOveLX7729/Gt7/97Xq0zmyS/GLAG2/870sESe3458bHJptsktmwlkiy4+k555wT458dX0uLzPB+++0Xv73ht7HO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yOZRU8L82PvHxmabbZbNYfRFgAABAgTKBXbccccMieeeey7OPOvMjHhTBsaPH5/R/XbbbZcRa+pAUz/rc/2crz7eggULIvku1thf4Wnq+6B/AgQIECBAgAABAgQIECBAgACB5i3QonlP3+wJECBAgAABAgQIECBAgAABAoUnkOwWWn3H0HvvvTc10eqJ6EOGDknVN7Rwww03ZCS373/A/vHs+GdjxIgRsfvuu2cktzd0jEJp35zXOnfu3BRjt67dUuVsFDp3yXxR4p2338lG1/ogQIAAAQIZAn369InNN988FZ88eXIkL/jl8qj6yzgV4x48+OCK05x9NvWzPtfP+fXWWy9lt2rVqpzf29QEFAgQIECAAAECBAgQIECAAAECBIpCQIJ7UdxmiyRAgAABAgQIECBAgAABAgRyLZDs4l71+Pvf/x7vv/9+eejll1+Od975T8Lx1ltvHY3ZYfTTTz+NkbePrDpcnHzKyfG73/0uevXqlYo390JzX2vV+57ciy5dumT9lvTr1y+jz+kzpmfEBAgQIECAQLYEjjnmmFRXSRL07279XSrWlIWXXnopJk2alBpi5513jt69e6diuSg09bM+18/5fltmfq+YNm1aLiiNQYAAAQIECBAgQIAAAQIECBAgUMQCEtyL+OZbOgECBAgQIECAAAECBAgQINB0AoMPGRwdO3ZMDTDq3lHl5dGjRqfiQ4cOTZUbWrjzzjtjyZIllZcddthhcdlll0VJSUllLNsnZWVlWemyof3kY61ZWej/dTJ16tRUd3379k2Vays0xKlTp06x6aabprqaPk2CewpEgQABAgSyKnDE946INm3apPq8d9S9MWvWrFSsqQrXX3d9RtdHHXVURiwXgTV91td3brl+zndfv3tssMEGqem99tprqbICAQIECBAgQIAAAQIECBAgQIAAgWwLSHDPtqj+CBAgQIAAAQIECBAgQIAAAQJfCbRr1y6OPOrIlMXYsWMj2YH8kUceqYwnSfCHHHpIZXlNTia/Mjl12TnnnpMqN0WhLNIJ7g1JwK46n4b2k4+1Vp1vY86//PLLePHFF1Nd7LPPPqlybYWGOm2//faprpJxV6xYkYopECBAgACBbAl07tw5kpf7qh7Lly2PW2+5tWqoSc4nTpwYEyZMSPWd/ELKQd89KBXLRaExz/qGzC/Xz/nq4z057smGTFdb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IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIhIME9H+rGJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKHqBVatWFb0BAAIECBAgQIAAAQIECBAgQIAAAQLVBSS4VxdRJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJADgaVLl2aMUlJSkhETIECAAAECBAgQIECAAAECBAgQIFBMAhLci+luWysBAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDBCCxatChjLu3bt8+ICRAgQIAAAQIECBAgQIAAAQIECBAoJgEJ7sV0t62VAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgYATeeOON1Fxat24dyR8HAQIECBAgQIAAAQIECBAgQIAAgWIWkOBezHff2gkQIECAAAECBAgQIECAAAECBAgQIECAAAECBJpU4PPPP6+1/+eeey5V179//1RZgQABAgQIECBAgAABAgQIECBAgEAxCkhwL8a7bs0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQI5Ebhj5B3x2GOPZYw1/tnx8ac//ikVHzBgQKqsQIAAAQIECBAgQIAAAQIECBAgQKAYBVoV46KtmQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAuBDbsuWGcftrpsdVWW8WOO+4Ybdu2jYkTJ8Ybb7yRMfx39v1ORkyAAAECBAgQIECAAAECBAgQIECAQLEJSHAvtjtuvQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAjkT6NOnT/lYU6dOjeRPbceRRx0Z2267bW3V4gQIECBAgAABAgQIECBAgAABAgSKRqBF0azUQgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkWKB///7RoUOHOkc97vjjYvjw4XW2UUmAAAECBAgQIECAAAECBAgQIECgWARKyspKy4plsdZJgAABAgQIECBAgAABAgQIECBAgACBfAksXrw4br/99mjVslWce965+ZqGcQkQIEAgDwLvvvtu3Df6vpg+fXrMmTMnSlqURI8NesSWW24ZRx55ZPTdvG8eZmVIAgQIECBAgAABAgQIECBAgAABAoUpIMG9MO+LWREgQIAAAQIECBAgQIAAAQIECBAgsJYJzJo1K3bbdbdo3bp1zHh7xlq2OsshQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGRHoEV2utELAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBonIAE98b5uZoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEsiQgwT1LkLohQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcYJSHBvnJ+rCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBLAhLcswSpGwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBonIAE98b5uZoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEsiQgwT1LkLohQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcYJSHBvnJ+rCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBLAhLcswSpGwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBonP88yfcAAEAASURBVIAE98b5uZoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEsiQgwT1LkLohQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcYJSHBvnJ+rCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBLAhLcswSpGwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBonIAE98b5uZoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEsiQgwT1LkLohQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcYJlJSVlZY1rgtXEyBAgAABAgQIECBAgAABAgQIECBAgMDqBFauXBnvv/9+lJSURJ8+fVbXXD0BAgQIECBAgAABAgQIECBAgAABAgQIECBAoCgFJLgX5W23aAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBSeQKvCm5IZESBAgAABAgQIECBAgAABAgQIFIPAwoUL4/tHfT/mzZuXsdz267SP++67L3r16pVRV5/A5Fcmx49//OMoK0v/eOEvfvmLOOigg+rThTYECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECORBwA7ueUA3JAECBAgQIECAAAECBAgQIECAwP8KPP/883HC0BMyEtGT2u223y7Gjh0brVo1bI+GJUuWxEEHHhT/+te//neQ//u/AwcOjLt+f1cqpkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQGEJSHAvrPthNgQIECBAgAABAgQIECBAgACBohO47trr4qabbqpx3cku7JdcekmNdbUFL//Z5XH33Xenqjt37hxPjHsiunfvnoorECBAoC6B0hVfRpQuq6uJOgIECBAgQIBAsxAoLS2Nlu26RElJSbOYr0kSIECAAAECBAgQIECAQHELSHAv7vtv9QQIECBAgAABAgQIECBAgACBvAusWrUqjj/++Jg0cVKNc/n9738f+wzcp8a66sFkR/ihQ4ZWD8etv7s1DjzwwIy4AAECBOoSWPnFR/+b4L5qaV3N1BEgQIAAAQIEClqgtKws5s77JHr2HRglLVoU9FxNjgABAgQIECBAgAABAgQIJAL+v1d/DwgQIECAAAECBAgQIECAAAECBPIq0LJly7jxxhuja9euNc7j/PPPj08++aTGuqrBRYsWxcUXXVw1VH5+6KGHSm7PUBEgQKA+AiVRFpEkt7dsV5/m2hAgQIAAAQIECk6gIrl9+dKFBTc3EyJAgAABAgQIECBAgAABArUJSHCvTUacAAECBAgQIECAAAECBAgQIEAgZwLrr79+XP/b66OkpCRjzAULFsTZZ50dyU7vdR0/v/LnGYnwPXr0iJ///Od1XaaOAAECqxeQ5L56Iy0IECBAgACBghOQ3F5wt8SECBAgQIAAAQIECBAgQKCeAhLc6wmlGQECBAgQIECAAAECBAgQIECAQNMK7LnnnnH6GafXOMjLL78c1113XY11SXDcE+PigQceyKgfcfWI6NipY0ZcgAABAg0WkOTeYDIXECBAgAABAvkTkNyeP3sjEyBAgAABAgQIECBAgEDjBSS4N95QDwQIECBAgAABAgQIECBAgAABAlkSOO+882LnnXeusbdbb7k1nnvuuYy6Tz/9NC699NKM+NChQyNJmncQIEAgawKS3LNGqSMCBAgQIECg6QQktzedrZ4JECBAgAABAgQIECBAIDcCEtxz42wUAgQIECBAgAABAgQIECBAgACBegi0bNkybrzpxujSpUuNrc8/7/yYM2dOqu6yyy6LJMm96tG7d++45NJLqoacEyBAIDsCktyz46gXAgQIECBAoEkEJLc3CatOCRAgQIAAAQIECBAgQCDHAhLccwxuOAIECBAgQIAAAQIECBAgQIAAgboFNthgg7ju+utqbJQksp9zzjlRWlpaXv8///M/8cTjT6TatmjRIq677rpo3759Kq5AgACBrAlIcs8apY4IECBAgACB7AlIbs+epZ4IECBAgAABAgQIECBAIL8CEtzz6290AgQIECBAgAABAgQIECBAgACBGgQGDBgQp51+Wg01ERMnTIwbb7gxPvnkk7j88ssz2iTXbb/D9hlxAQIECGRVQJJ7Vjl1RoAAAQIECDROQHJ74/xcTYAAAQIECBAgQIAAAQKFJVBSVlZaVlhTMhsCBAgQIECAAAECBAgQIECAAAECEatWrYpjjzk2XnrppQyOkpKS2HLLLWPatGmpuv7f6B9//etfo3Xr1qm4AgECBNZEYNUXH0bZikV1X9qy3Vf/g7W07jZqCRAgQIAAAQJNKFDf5PbeWx0eJV/94pWDAAECBAgQIECAAAECBAgUuoD/77XQ75D5ESBAgAABAgQIECBAgAABAgSKVKBly5Zx4003RufOnTMEysrKMpLb27RpE9dff73k9gwtAQIEmlTATu5NyqtzAgQIECBAoG6B+ia3192LWgIECBAgQIAAAQIECBAgUFgCEtwL636YDQECBAgQIECAAAECBAgQIECAQBWBHj16xHXXXVclUvvp+RecX76re+0t1BAgQKCJBCS5NxGsbgkQIECAAIG6BCS316WjjgABAgQIECBAgAABAgSas4AE9+Z898ydAAECBAgQIECAAAECBAgQIFAEAnvvs3cMGzaszpXutNNOccopp9TZRiWBfAusWLEi3nrrrYxfH8j3vIyfJQFJ7lmC1A0BAgQIECBQHwHJ7fVR0oYAAQIECBAgQIAAAQIEmquABPfmeufMmwABAgQIECBAgAABAgQIECBQRAIn/ujEaNmyZa0r/v7R348WLfynrlqBVBSEwKeffhoHHXhQHDL4kIKYj0k0gYAk9yZA1SUBAgQIECBQXUBye3URZQIECBAgQIAAAQIECBBY2wT8q9/adkethwABAgQIECBAgAABAgQIECCwlgmUlZXFxRdfHKtWrap1Zb8a/quYPXt2rfUqCBAgkDMBSe45ozYQAQIECBAoRgHJ7cV4162ZAAECBAgQIECAAAECxScgwb347rkVEyBAgAABAgQIECBAgAABAgSalcCdd9wZ458dX+ecP/vsszjn7HPqTIKvswOVBAgQyKaAJPdsauqLAAECBAgQ+D8Bye3+KhAgQIAAAQIECBAgQIBAsQhIcC+WO22dBAgQIECAAAECBAgQIECAAIFmKDBlypQYMWJEvWY+adKk+O31v61XW40IECDQ5AKS3Juc2AAECBAgQKCYBCS3F9PdtlYCBAgQIECAAAECBAgQkODu7wABAgQIECBAgAABAgQIECBAgEBBCixevDjOPuvsWLlyZWp+O++8c2y77bapWEXhlltuieeff76i6JMAAQL5FZDknl9/oxMgQIAAgbVEQHL7WnIjLYMAAQIECBAgQIAAAQIE6i0gwb3eVBoSIECAAAECBAgQIECAAAECBAjkUuDSSy6NDz74IDVk586d44Ybb4ibb745OnbsmKpLCmVlZXHeuefF3DlzM+oECBAgkBcBSe55YTcoAQIECBBYWwQkt68td9I6CBAgQIAAAQIECBAgQKAhAhLcG6KlLQECBAgQIECAAAECBAgQIECAQE4ERo8eHQ8//HDGWNdce0306NEjNtp4o7j6mqsz6pPAvHnz4pxzzonS0tIa6wUJECCQcwFJ7jknNyABAgQIEFgbBCS3rw130RoIECBAgAABAgQIECBAYE0EJLiviZprCBAgQIAAAQIECBAgQIAAAQIEmkzg7bffjiuvuDKj/5NOPikGDhxYGR80aFAksZqOCRMmxI033lhTlRgBAgTyIyDJPT/uRiVAgAABAs1UQHJ7M71xpk2AAAECBAgQIECAAAECWRGQ4J4VRp0QIECAAAECBAgQIECAAAECBAhkQ2Dp0qVx5hlnRvJZ9dhmm23iJz/5SdVQ+XkS22777TLiSeDGG26MCS9MqLFOkAABAnkRkOSeF3aDEiBAgACB5iYgub253THzJUCAAAECBAgQIECAAIFsC0hwz7ao/ggQIECAAAECBAgQIECAAAECBNZY4Bc//0XMmDEjdf26664bN918U7Ru3ToVTwpJ7Oabb45OnTpl1JWVlcU555wT8+bNy6gTIECAQN4EJLnnjd7ABAgQIECgOQhIbm8Od8kcCRAgQIAAAQIECBAgQKCpBSS4N7Ww/gkQIECAAAECBAgQIECAAAECBOol8Mgjj8S9996b0Xb4r4bHJptskhGvCPTq1SuuufaaimLqc+7cuXHeuedFaWlpKq5AgACBvApIcs8rv8EJECBAgEChCkhuL9Q7Y14ECBAgQIAAAQIECBAgkGsBCe65FjceAQIECBAgQIAAAQIECBAgQIBAhsAHH3wQl/x/l2TEjznmmBg8eHBGvHpg3333jVNOOaV6uLz8/PPPx6233FpjnSABAgTyJiDJPW/0BiZAgAABAoUoILm9EO+KOREgQIAAAQIECBAgQIBAvgRa5Wtg4xIgQIAAAQIECBAgQIAAAQIECBBIBFasWBFnn3V2LF68OAWyxRZbxOVXXJ6K1VW4+CcXxyuvvBKTJ0/OaHb99dfHTjvvFLvssktGnQABAgTyJvBVkvvKstZf/crEyrxNwcAECBAgQIBAYQjM/+zjWL50YWFMxiwIECBAgAABAgQIECBAgECeBSS45/kGGJ4AAQIECBAgQIAAAQIECBAgUOwC115zbUyZMiXF0K5du7jl1lsi+azv0apVq7jp5pviuwd9NxYsWJC6rLS0NM45+5x49LFHo0uXLqk6BQIECORTYPnyL2P5kvn5nIKxCRAgQIAAgQIQWL5sUQHMwhQIECBAgAABAgQIECBAgEBhCLQojGmYBQECBAgQIECAAAECBAgQIECAQDEKjB8/Pm6//faMpV9x5RWR7ODe0KNnz55x3XXX1XjZ7Nmz4/zzz4+ysrIa6wUJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMi/gAT3/N8DMyBAgAABAgQIECBAgAABAgQIFKXA3Dlz44LzL8hY++BDBsfRRx+dEa9vYJ+B+8SwYcNqbD7+2fFx22231VgnSIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA/gVKyspKbVmV//tgBgQIECBAgAABAgQIECBAgAABAgQIrOUCn3/+efzXH/4rWrZsGaedftpavtq1Y3mrvvgwylYsatLFfLlsRSxfMr9Jx9A5AQIECBAgUPgCiz//LL76uakmnWjvrQ6Pkhb2wGtSZJ0TIECAAAECBAgQIECAQFYEJLhnhVEnBAgQIECAAAECBAgQIECAAAECBAgQILC2CUhwX9vuqPUQIECAAIHCFZDgXrj3xswIECBAgAABAgQIECBAIPcCXs/OvbkRCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAGAQnuNaAIESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDuBSS4597ciAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQg4AE9xpQhAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAg9wIS3HNvbkQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEFAgnsNKEIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkHsBCe65NzciAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECNQgIMG9BhQhAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMi9gAT33JsbkQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRqEJDgXgOKEAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkXkCCe+7NjUiAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECNQhIcK8BRYgAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEci/QKvdDGpEAAQIECBAgQIAAAQIECBAgQKAQBB5/7PFYsXJFIUylqOaw7bbbxiabbFJUa7ZYAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvUVkOBeXyntCBAgQIAAAQIECBAgQIAAAQJrmcBFF10Un3/++Vq2qsJfzlXDr4rjjjuu8CdqhgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyICDBPQ/ohiRAgAABAgQIECBAgAABAgQIFJLAdttvF+3btS+kKa2Vc5k2bVrMnz9/rVybRREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIloAE92xJ6ocAAQIECBAgQIAAAQIECBAg0EwFrr/++ujdu3cznX3zmfapp54a454Y13wmbKZZF5g7d24c/f2jo1WrVjHuSX8Xsg6sQwIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCtEJDgvlbcRosgQIAAAQIECBAgQIAAAQIECBAgQKDQBVatWhUzZ86M1q1bF/pUzY8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkDeBFnkb2cAECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCKgAT3KhhOCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCB/AhLc82dvZAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoIiDBvQqGUwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIn4AE9/zZG5kAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEqghIcK+C4ZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8icgwT1/9kYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSoCEtyrYDglQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfwJSHDPn72RCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCKgAT3KhhOCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCB/AhLc82dvZAIECBAgQIAAAQIECBAgQIAAAQIECBD4/9u7FyC76voO4L/dvUtg84Jmp0B4JARN80BCQl5k75LsImDrBASxyNSWttgH1Vbb2OloGa1tRxxxRFEQqDw6JLRCWqENVEAUKQ1CxWLFiSRIHkCKJhFImo1ks9lyb5uU6+7i7uY+zuNzZ+4k59xz/v/f7/NbcDDfnEuAAAECBAgQIECAAAECBAgQIECAAAECBAgQIPA6AQH312H4LQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0TkDAvXH2diZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB1wkIuL8Ow28JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoHEChcZtbWcCBAgQIECAAAECBAgQIECAAAECBAjkR6BQKMSMGTOitbU1P03rlAABAgQIECBAgAABAgQIECBAgAABAgQIECAwQgEB9xGCuZwAAQIECBAgQIAAAQIECBAgQIAAAQKjEWhvb49/+eq/jOZW9xAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEciPQnJtONUqAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECiRYQcE/0eBRHgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB/AgIuOdn1jolQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAogUE3BM9HsURIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgPwIC7vmZtU4JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQaAEB90SPR3EECBAgQIAAAQIECBAgQIAAAQIECBCon8C2H2+L559/vn4b2okAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg8DMChZ85dkiAAAECBAgQIECAAAECBAgQIECAAAECORRYedvK+OhHPxr9/f0xZcqUOOutZ0V3d3fMnz8/xowZk0MRLRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKNEBBwb4S6PQkQIECAAAECBAgQIECAAAECBAgQIJAggVKo/corryyH20tlbd68OW6+6eby+4gjjohisRjdZ3XHmWeeGZMnT05Q5UohQIBA8gR6en4aW1/cXvPCppxwTLS2+qO+mkPbgAABAgQIECBAgAABAgQIECBAoO4C/l+vupPbkAABAgQIECBAgAABAgQIECBAgAABAskS6O3tjZ6enkGL2rNnTzzwwAPld+mCmTNnRld3V3R1dcXcuXOjpaVl0PucJECAQF4FnvzehvjAn32m5u2vvu3KKIXcvQgQIECAAAECBAgQIECAAAECBAhkTUDAPWsT1Q8BAgQIECBAgAABAgQIECBAgAABAgRqKLBu3boova+79roYP2F8LF26NLq7u6OzszPa29truLOlCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAgTwICLjnYcp6JECAAAECBAgQIECAAAECBAgQIECAQA0Edu3cFWv+eU353dTUFHPmzCk/3X3ZsmXxlre8JUrnvAgQIECAAAECBAgQIECAAAECBAgQIECAAAECIxEQcB+JlmsJECBAgAABAgQIECBAgAABAgQIECBAYFCB/v7+ePLJJ8vvqz9zdflp7su6lkVXV1cUi8WYMGHCoPc5SYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBB4vYCA++s1/J4AAQIECBAgQIAAAQIECBAgQIAAAQIEqiKwffv2WH3n6vK7paUl5i+YXw67lwLv06dPr8oeFiFAgEBeBUrfkDG27fC8tq9vAgQIECBAgAABAgQIECBAgACBjAsIuGd8wNojQIAAAQIECBAgQIAAAQIECGRRoPSk6FKwy4sAgXQI9PX1xWPfeqz8/uSVn4zJkydHV3dXOfC+ZMmSOOKII9LRiCoJECAwDIGFp8+MB+7+/DCuHN4lt995X9yyck3FxReetyzaJx1Zcc4BAQIECBAgQIAAAQIECBAgQIAAgawICLhnZZL6IECAAAECBAgQIECAAAECBAhkVGDr1q2xZs2aWLt2bTz9g6ej9FToffv2xfjx4+PEE0+MefPmxdnnnB0dHR3R3NycUQVtEciWQOmf61UrV5Xfhx12WCw+Y3E57L5s2bKYOnVqtprVDQECuRMoFApx5MRxVen7pZd3xh1febBirQnjx8bll11Ycc4BAQIECBAgQIAAAQIECBAgQIAAgSwJCLhnaZp6IUCAAAECBAgQIECAAAECBAhkSOC5556LT33qU3HPmnui9MT2n33t2rUrvv/975fft912Wzns/oEPfiAuvFDg62etHCdDoPQze8MNN0ShpRAf/OMPJqOoBFSxd+/eePibD5ffH4+Px7Rp02JZ17Jy4H3hwoVRCsB7ESBAIK8CN95yd+zevaei/VK4feKE6gToKxZ2QIAAAQIECBAgQIAAAQIECBAgQCAhAgLuCRmEMggQIECAAAECBAgQIECAAAECBP5fYPXq1fHnH/nzKAVfh/vasmVLrPiTFXH3XXfHNZ+/JiZOnDjcW11HoC4Cu3fvjmu/cG20trYKuL+B+LPPPhul98033RxtbW3RUew4+HT3Y4899g3u9BEBAgSyJfDsphfiK2seqmhq+ptOiAvPW1ZxzgEBAgQIECBAgAABAgQIECBAgACBrAkIuGdtovohQIAAAQIECBAgQIAAAQIECKRc4MpPXBk33njjqLt4+OGH4x3nvyNuufWWmDp16qjXcSMBAo0X6OnpiQfuf6D8LlUzc+bM8tPdu7u7Y+7cudHS0tL4IlVAgACBGgl87rovR1/f/orV//SP3hPNzc0V5xwQIECAAAECBAgQIECAAAECBAgQyJqAgHvWJqofAgQIECBAgAABAgQIECBAgECKBa679rpDCrcfaH3Tpk3xm5f+Ztx1911x5JFHHjjtVwIEUi6wbt26KL2/eN0XY8KECXHm0jPLT3dfunRpTJo0KeXdKZ8AAQL/L/Do49+Lta+9X/86u2thnHbq9Nef8nsCBAgQIECAAAECBAgQIECAAAECmRQQcM/kWDVFgAABAgQIECBAgAABAgQIEEifwNe//vW46qqrqlb45s2b431/8L5YuWplNDU1VW1dCxEgkAyBnTt3xpp/XlN+l/4ZnzNnzsGnu59yyin+uU/GmFRBgMAoBEpPbf/cF79ccWdrayHe/7vvqjjngAABAgQIECBAgAABAgQIECBAgEBWBXyHYVYnqy8CBAgQIECAAAECBAgQIECAQIoEenp64iMf/kjVK167dm3ccccdVV/XggQIJEugv78/nnzyyfjs1Z+N85afFwsXLIwPfehDce+990YpCO9FgACBNAncfc8344cbX6go+d3vfGtMPra94pwDAgQIECBAgAABAgQIECBAgAABAlkVEHDP6mT1RYAAAQIECBAgQIAAAQIECBBIkcDtq26PH/3oRzWp+JrPXRO9vb01WduiBAgkU2D79u3xD6v/ofwtDvPmzot3X/zuuOGGG2L9+vXJLFhVBAgQ+D+B/969J66/+SsVHhMnjovffs/yinMOCBAgQIAAAQIECBAgQIAAAQIECGRZQMA9y9PVGwECBAgQIECAAAECBAgQIEAgJQK33357zSrdunVrPPTQQzVb38IECCRboK+vLx577LH45JWfjHPPOTc6lnTEFVdcEQ8++GDs2bMn2cWrjgCB3AncsnJNvPTyroq+f/fS82PcuLaKcw4IECBAgAABAgQIECBAgAABAgQIZFlAwD3L09UbAQIECBAgQIAAAQIECBAgQCAFAhs2bIiNGzfWtNL77ruvputbnACB9AiU/tLLqpWr4r2XvTdOO+20uPQ3Lo1bb701Nm/enJ4mVEqAQCYFtv7X9vi71fdX9DblhGPiwvO6Ks45IECAAAECBAgQIECAAAECBAgQIJB1gULWG9QfAQIECBAgQIAAAQIECBAgQIBAsgWeeOKJmhf4nSe+U/M9bECAQPoE9r66Nx5++OHy++N/8fE46aSToqu7K7q6umLhwoXRkr6WVEyAQIoFvnDjndHbu6+ig9+/7MIoFPzbqALFAQECBAgQIECAAAECBAgQIECAQOYFBNwzP2INEiBAgAABAgQIECBAgAABAgSSLbBp46aaF7hly5Z46aWXorm5cV9o2NvbW+5zz5498corr9S8ZxskT2Dnzp3lovr7+xP3M3Dg5zN5avWtqPRtEhtv2hg333RztLW1xbLORfGnf/TrcfxxR9e3ELsRIJA7ge8+tSEe+MbjFX2/adrxcdbS+RXnHBAgQIAAAQIECBAgQIAAAQIECBDIg4CAex6mrEcCBAgQIECAAAECBAgQIECAQIIFDoR+a1liX19fzJs7r5ZbDHvtv/6rv47S2yu/Avv27YvT5pyWX4CUdN7T0xP33veNeOGFrbF65WdSUrUyCRBIo0DpLz5dfe3fDyj9937rgmhqahpw3gkCBAgQIECAAAECBAgQIECAAAECWRdo3COrsi6rPwIECBAgQIAAAQIECBAgQIAAgWEJtBRahnWdiwgQINAIgR9ueq4R29qTAIEcCdz/4GPx/XXPVnQ8Y/qU175FIhl/Oa+iMAcECBAgQIAAAQIECBAgQIAAAQIE6iDgCe51QLYFAQIECBAgQIAAAQIECBAgQIDA0ALt7e1Df1ilT9ra2uK7//ndKq02umUuv/zy+NoDX4u//Ku/jEsuuWR0i7gr1QIvvvhidBY7o1AoxLofrEtUL3v37o3Zs2YnqqakFHPR+WcnpRR1ECCQQYFXX+2Nz99454DOSk9v9yJAgAABAgQIECBAgAABAgQIECCQVwEB97xOXt8ECBAgQIAAAQIECBAgQIAAgYQITJ8+veaVlPYohYob+Wpu/t8vU2xpaWl4LY10yPPeB34Gm5qaEvczsH///jyPZkDv06ZNi2KxGF3FOdGx4JcGfO4EAQIEqiWw6s6vxo9+/JOK5WbPfO3fQWfMqTjngAABAgQIECBAgAABAgQIECBAgECeBBr7p3p5ktYrAQIECBAgQIAAAQIECBAgQIDAoAILFy6MUuC3v79/0M+rcXLxGYursYw1CBDIqMBRRx0VHcWO8hP2i53FmDx5crnTvt3PR3/vzox2rS0CBBotsOMnr8Tfrrp3QBm/c+l5A845QYAAAQIECBAgQIAAAQIECBAgQCBPAgLueZq2XgkQIECAAAECBAgQIECAAAECCRSYNGlSdHR0xCOPPFKz6pYvX16ztS1MgED6BA4bc1jMP31+lMLsnZ2dMXv27PJftElfJyomQCDNAl+86R+jZ89PK1o4acrkWLLo1IpzDggQIECAAAECBAgQIECAAAECBAjkTUDAPW8T1y8BAgQIECBAgAABAgQIECBAIIECl112Wc0C7qWnt8+aNSuBXSspbwLt7e3x4NcfFKRu0OBnzpwZxWKxHGovfXPE4Ycf3qBKbEuAAIGIZ559Lv7p3n8dQPFrv3qu/50YoOIEAQIECBAgQIAAAQIECBAgQIBA3gQE3PM2cf0SIECAAAECBAgQIECAAAECBBIosKxrWSxZsiTWrl1b1eqampriwx/+cFXXtBiB0QoUCoWYNm3aaG933wgFjj766IOB9lKwvfQXDLwIECCQFIFrrr8j+vv7K8r5haMmxC+ffUbFOQcECBAgQIAAAQIECBAgQIAAAQIE8igg4J7HqeuZAAECBAgQIECAAAECBAgQIJBAgas+fVWcf975sX379qpVt2LFijj11FOrtp6FCBBIrkBbW1ssWrSo/IT2zs7OePOb35zcYlVGgECuBR779lPx6ONPDTD41QvOisMOax1w3gkCBAgQIECAAAECBAgQIECAAAECeRMQcM/bxPVLgAABAgQIECBAgAABAgQIEEiowOTJk+P6G66PS959SfT29h5ylcvPWx7ve//7DnkdCxAgkEyB0jc0lP4CS7GzWH5S++mnnx6trYKhyZyWqggQOCBQemr756+/88DhwV/HjDks3nl+98FjvyFAgAABAgQIECBAgAABAgQIECCQZwEB9zxPX+8ECBAgQIAAAQIECBAgQIAAgYQJlAKqq25fFZf//uWxY8eOUVf3nl9/T3zsYx8b9f1uJEAgmQInnHBClJ7OXgq1L1myJCZOnJjMQlVFgACBIQQeeuQ78fQzWwZ8uvxtxThy4rgB550gQIAAAQIECBAgQIAAAQIECBAgkEcBAfc8Tl3PBAgQIECAAAECBAgQIECAAIEECyxYsCDuuvuuWPEnK+Lxxx8fUaXjxo+LK664Ii6++OIR3ediAgSSKTB+wvhykL2z2BmdZ3bGiSeemMxCVUWAAIFhCJSe3v43t9496JUXX/jWQc87SYAAAQIECBAgQIAAAQIECBAgQCCPAgLueZy6ngkQIECAAAECBAgQIECAAAECCRc4/vjj48t3fDnu++p98aUvfSm+/e1vv2HFkyZNine9611x2Xsvi/b29je81ocECCRXoFAoxLx588pPaC8Wi3HqqadGS0tLcgtWGQECBEYg8I1/fSI2/PC5AXfMnjktpk45dsB5JwgQIECAAAECBAgQIECAAAECBAjkVUDAPa+T1zcBAgQIECBAgAABAgQIECBAIAUC577t3Ci9X3jhhXj00Udj/dPrY9u2bbFv374YP358TJk6JebOnVsOxJaCsV4ECKRP4OQ3nRwHntC+aNGiGDt2bPqaUDEBAgR+jsAbPb19+duKP+duHxMgQIAAAQIECBAgQIAAAQIECBDIl4A/9cvXvHVLgAABAgQIECBAgAABAgQIEEilwHHHHRcXXXRRKmtXNAEClQKlb1zoKHaUQ+3FzmIcc8wxlRc4IkCAQAYFvvnIf8Qzzz4/oLPW1kKc071owHknCBAgQIAAAQIECBAgQIAAAQIECORZQMA9z9PXOwECBAgQIECAAAECBAgQIECAAAECBGosMGbMmFiwYEF0ntkZxWIxZs6cGU1NTTXe1fIECBBIlsBd93xz0IKWdsx97Vtp2gb9zEkCBAgQIECAAAECBAgQIECAAAECeRUQcM/r5PVNgAABAgQIECBAgAABAgQIECBAgACBGgnMmj3r4BPaF8xfEGMOH1OjnSxLgACB5Avs+Mkr8a1/f2rQQrvOPH3Q804SIECAAAECBAgQIECAAAECBAgQyLOAgHuep693AgQIECBAgAABAgQIECBAgAABAgQIVEHg2GOPjWJnsRxqX9KxJCZNmlSFVS1BgACBbAjc97VvRV/f/gHNNDc3xeIFpww47wQBAgQIECBAgAABAgQIECBAgACBvAsIuOf9J0D/BAgQIECAAAECBAgQIECAAAECBAgQGKHA2LFjY/HixQdD7Se/6eQRruByAgQI5Efgnvv/bdBmT5l1ckwYP3bQz5wkQIAAAQIECBAgQIAAAQIECBAgkGcBAfc8T1/vBAgQIECAAAECBAgQIECAAAECBAgQeE2gpaUlmpubY//+gU8YLgGVPptz2pzyE9pLT2qfO3duFAr+72U/PAQIEPh5Alv/a3usf+a5QS/z9PZBWZwkQIAAAQIECBAgQIAAAQIECBAgEP4Ewg8BAQIECBAgQIAAAQIECBAgQIAAAQIEci5QCri/86J3xp133HlQYsqUKQef0H7GkjNiwoQJBz/zGwIECBAYnsC69ZuGvHDWjJOG/MwHBAgQIECAAAECBAgQIECAAAECBPIsIOCe5+nrnQABAgQIECBAgAABAgQIECBAgAABAv8n8IlPfCKWLl0ae/bsicWLFsfxJxzPhgABAgQOUeDp9ZuHXGHWL00d8jMfECBAgAABAgQIECBAgAABAgQIEMizgIB7nqevdwIECBAgQIAAAQIECBAgQIAAAQIE6ibQ29sbzzzzTDQ1NcWMGTPqtu9wNyoUCvH2t799uJe7jgABAgSGIfCDDZsGveqoI8fHUUf6ZoxBcZwkQIAAAQIECBAgQIAAAQIECBDIvYCAe+5/BAAQIECAAAECBAgQIECAAAECBAgQIFAPgR07dsSv/PKvRGtra6zfsL4eW9qDAAECBBos8IMhnuB+wnFHN7gy2xMgQIAAAQIECBAgQIAAAQIECBBIroCAe3JnozICBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEUC9x/1zUprl7pBAgQIECAAAECBAgQIECAAAECBBoj0NyYbe1KgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQqBQTcKz0cESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECDBATcGwRvWwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoFBBwr/RwRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQINEhBwbxC8bQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgUkDAvdLDEQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0SEDAvUHwtiVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBSgEB90oPRwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQIAEB9wbB25YAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgUE3Cs9HBEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAgwQE3BsEb1sCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqBQQcK/0cESAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDRIQcG8QvG0JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoFJAwL3SwxEBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINEig0KB9bUuAAAECBAgQIECAAAECBAgQIECAAIFcCYwbNy5WrFgRLS0tuepbswQIECBAgAABAgQIECBAgAABAgQIECBAgACBkQgIuI9Ey7UECBAgQIAAAQIECBAgQIAAAQIECBAYpUAp4P7+P3z/KO92GwECBAgQIECAAAECBAgQIECAAAECBAgQIEAgHwLN+WhTlwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQdAEB96RPSH0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIiYCAe04GrU0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgkXUDAPekTUh8BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRyIlDISZ/aJECAAAECBAgQIECAAAECBAgQGELg5Zdfjh07dgzxqdPVEti7d2+1lrIOAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcwKCLhndrQaI0CAAAECBAgQIECAAAECBAgMT+CCd1wwvAtdRYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRoLNNd4fcsTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFhCXiC+7CYXESAAAECBAgQIECAAAECBAgQyJ7A9576Xvaa0hEBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAqkW8AT3VI9P8QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMiOgIB7dmapEwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECKRaQMA91eNTPAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLIjIOCenVnqhAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAqkWEHBP9fgUT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgewICLhnZ5Y6IUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQKoFBNxTPT7FEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIDsCAu7ZmaVOCBAgQIAAAQIECBAgQIAAAQIECBBIsMC2bduiu6s7zjn7nARXqTQCBAgQIECAAAECBAgQIECAAAECBAgQIECAQGMFCo3d3u4ECBAgQIAAAQIECBAgQIAAAQIECBDIh0BfX19s3LgxWltb89GwLgkQIECAAAECBAgQIECAAAECBAgQIECAAAECoxDwBPdRoLmFAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKovIOBefVMrEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMAoBATcR4HmFgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCovoCAe/VNrUiAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECoxAQcB8FmlsIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoPoCAu7VN7UiAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECIxCQMB9FGhuIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHqCwi4V9/UigQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwCgEB91GguYUAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEqi8g4F59UysSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwCgECqO4xy0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAtQSaPIumWpTWIUCAAAECBAgQIECAAAECBAgQIECAAIH0Cwi4p3+GOiBAgAABAgQIECBAgAABAgQIECBAgACBFAq82tsXP9m+Mfr396WweiUTIECAAAEC1RQ4vG1S/LRnRzWXtBYBAgQIECBAgAABAgQIEEitgMfCpHZ0CidAgAABAgQIECBAgAABAgQIECBAgACBtAqUwu3bfvxD4fa0DlDdBAgQIECgygKlcHsp5O5FgAABAgQIECBAgAABAgQIRAi4+ykgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ1FBBuryO2rQgQIECAQIoEhNxTNCylEiBAgAABAgQIECBAgEBNBQo1Xd3iBAgQIECAAAECBAgQIECAAAECBAgQIFAWKBQKMWPGjGhtbSWSYwHh9hwPX+sECBAgQGAYAgdC7qVfvQgQIECAAAECBAgQIECAQF4Fmvr79/fntXl9EyBAgAABAgQIECBAgAABAgQIECBAgACBoQT6dj8f/b07h/p4xOeF20dM5gYCBAgQIJBbgcPbJkW1Q+5TZ18QTc2+5D23P1QaJ0CAAAECBAgQIECAQIoE/NdrioalVAIECBAgQIAAAQIECBAgQIAAAQIECBBIp4BwezrnpmoCBAgQINAogQNPcm/U/vYlQIAAAQIECBAgQIAAAQKNFBBwb6S+vQkQIECAAAECBAgQIECAAAECBAgQIEAg8wLC7ZkfsQYJECBAgEBNBEoh9zFt7TVZ26IECBAgQIAAAQIECBAgQCDJAgLuSZ6O2ggQIECAAAECBAgQIECAAAECBAgQIEAg1QLC7aken+IJECBAgEDDBV7t2S7k3vApKIAAAQIECBAgQIAAAQIE6i0g4F5vcfsRIECAAAECBAgQIECAAAECBAgQIECAQC4EhNtzMWZNEiBAgACBmgsIudec2AYECBAgQIAAAQIECBAgkDABAfeEDUQ5BAgQIECAAAECBAgQIECAAAECBAgQIJB+AeH29M9QBwQIECBAIEkCQu5JmoZaCBAgQIAAAQIECBAgQKDWAgLutRa2PgECBAgQIECAAAECBAgQIECAAAECBAjkSkC4PVfj1iwBAgQIEKibgJB73ahtRIAAAQIECBAgQIAAAQINFhBwb/AAbE+AAAECBAgQIECAAAECBAgQIECAAAEC2REQbs/OLHVCgAABAgSSKCDknsSpqIkAAQIECBAgQIAAAQIEqi0g4F5tUesRIECAAAECBAgQIECAAAECBAgQIECAQC4FhNtzOXZNEyBAgACBugsIuded3IYECBAgQIAAAQIECBAgUGcBAfc6g9uOAAECBAgQIECAAAECBAgQIECAAAECBLInINyevZnqiAABAgQIJFlAyD3J01EbAQIECBAgQIAAAQIECByqgID7oQq6nwABAgQIECBAgAABAgQIECBAgAABAgRyLSDcnuvxa54AAQIECDRMQMi9YfQ2JkCAAAECBAgQIECAAIEaCwi41xjY8gQIECBAgAABAgQIECBAgAABAgQIECCQXQHh9uzOVmcECBAgQCANAkLuaZiSGgkQIECAAAECBAgQIEBgpAIC7iMVcz0BAgQIECBAgAABAgQIECBAgAABAgQIEHhNQLjdjwEBAgQIECCQBAEh9yRMQQ0ECBAgQIAAAQIECBAgUE0BAfdqalqLAAECBAgQIECAAAECBAgQIECAAAECBHIhINyeizFrkgABAgQIpEZAyD01o1IoAQIECBAgQIAAAQIECAxDQMB9GEguIUCAAAECBAgQIECAAAECBAgQIECAAAECBwSE2w9I+JUAAQIECBBIkoCQe5KmoRYCBAgQIECAAAECBAgQOBQBAfdD0XMvAQIECBAgQIAAAQIECBAgQIAAAQIECORKQLg9V+PWLAECBAgQSJ2AkHvqRqZgAgQIECBAgAABAgQIEBhEQMB9EBSnCBAgQIAAAQIECBAgQIAAAQIECBAgUG2BXbt2xac//en47NWfrfbS1quTgHB7naBtQ4AAAQIECBySgJD7IfG5mQABAgQIECBAgAABAgQSINDU37+/PwF1KIEAAQIECBAgQIAAAQIECBAgQIAAAQKZFnjxxRfjjMVnRGtra6zfsD7TvWalub7dz0d/785yO8LtWZmqPggQIECAQH4ExrS1RynsfuA1dfYF0dTsGXgHPPxKgAABAgQIECBAgAABAskV8F+vyZ0drOFhAAAImUlEQVSNyggQIECAAAECBAgQIECAAAECBAgQIEAgAQLC7QkYghIIECBAgACBEQt4kvuIydxAgAABAgQIECBAgAABAgkREHBPyCCUQYAAAQIECBAgQIAAAQIECBAgQIAAAQLJExBuT95MVESAAAECBAgMX0DIffhWriRAgAABAgQIECBAgACB5AgUklOKSggQIECAAAECBAgQIECAAAECBAgQIECAQHIE9u7rix3bN5cLampuSU5hKiFAgAABAgQIjEBg709fisPH/mJE0whucikBAgQIECBAgAABAgQIEGiggIB7A/FtTYAAAQIECBAgQIAAAQIECBAgQIAAAQLJFThi4pQ48bW3FwECBAgQIECAAAECBAgQIECAAAECBAgQIFA/geb6bWUnAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwtICA+9A2PiFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBOgoIuNcR21YECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMLSAgPvQNj4hQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgToKCLjXEdtWBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDC0gID70DY+IUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE6Cgi41xHbVgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwtICA+9A2PiFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBOgoIuNcR21YECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMLSAgPvQNj4hQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgToKCLjXEdtWBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDC0QFN///7+oT/2CQECBAgQIECAAAECBAgQIECAAAECBAhUQ2Dfvn2xZcuWaGpqipNOOqkaS1qDAAECBAgQIECAAAECBAgQIECAAAECBAgQIJA5AQH3zI1UQwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEinQHM6y1Y1AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGRNQMA9axPVDwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBFIqIOCe0sEpmwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAlkTEHDP2kT1Q4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgZQKCLindHDKJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQNYEBNyzNlH9ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIKUCAu4pHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkDUBAfesTVQ/BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSKmAgHtKB6dsAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIZE1AwD1rE9UPAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEUiog4J7SwSmbAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECWRMQcM/aRPVDgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBlAoIuKd0cMomQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA1gQE3LM2Uf0QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgpQIC7ikdnLIJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQNQEB96xNVD8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIqYCAe0oHp2wCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhkTUDAPWsT1Q8BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRSKiDgntLBKZsAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJZExBwz9pE9UOAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGUCvwPulcovpw/fxgAAAAASUVORK5CYII=" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![AAEMYQU0a.png](attachment:9c764b92-ee01-4627-acdc-e520dace995c.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Every object in a Python program has a unique **identity**, which you can access with the built-in `id()` function. We can use an object's identity as a stand-in for its reference." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "id(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### When you change a variable's value, you create a new object." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = 9\n", "id(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Passing an Object to a Function " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### When you pass a value to a function (and remember every value is an object), you are passing the value's reference to the function. We can verify this by using `id()`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def cube(number):\n", " print('id(number):', id(number))\n", " return number**3" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = 7\n", "print('id(x): ', id(x))\n", " \n", "cube(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Testing Object Identities with the `is` Operator " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### We can use the `is` operator as another way to prove that what we pass to a function is a reference. The operator returns `True` if its two operators have the same identity." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def cube(number):\n", " print('number is x:', number is x) # x is a global variable\n", " return number ** 3" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "cube(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Immutable Objects as Arguments" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Because a function is passed the reference to an object, the function can change the object's value. However, if we pass an immutable object to the function, the function cannot change the object's value." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def change_value(n):\n", " print(f'Before change: {n}')\n", " n = 10\n", " print(f'After change: {n}')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n = 7\n", "print(f'Before call: {n}')\n", "change_value(n)\n", "print(f'After call: {n}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### What actually happens when we pass an immutable object is this: As soon as the function tries to change the object's value, it creates a new local object." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def square(number):\n", " print('id(number) before modifying number:', id(number))\n", " number **= 2\n", " print('id(number) after modifying number: ', id(number))\n", " return number" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = 7\n", "square(x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(f'x = {x}; id(x) = {id(x)}')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "##########################################################################\n", "# (C) Copyright 2019 by Deitel & Associates, Inc. and #\n", "# Pearson Education, Inc. All Rights Reserved. #\n", "# #\n", "# DISCLAIMER: The authors and publisher of this book have used their #\n", "# best efforts in preparing the book. These efforts include the #\n", "# development, research, and testing of the theories and programs #\n", "# to determine their effectiveness. The authors and publisher make #\n", "# no warranty of any kind, expressed or implied, with regard to these #\n", "# programs or to the documentation contained in these books. The authors #\n", "# and publisher shall not be liable in any event for incidental or #\n", "# consequential damages in connection with, or arising out of, the #\n", "# furnishing, performance, or use of these programs. #\n", "##########################################################################\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Additional material (C) Copyright 2023 by Ronald Mak" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 4 }