diff --git a/learning/01 Introduction.ipynb b/learning/01 Introduction.ipynb index bd819a3..8f3b861 100644 --- a/learning/01 Introduction.ipynb +++ b/learning/01 Introduction.ipynb @@ -41,7 +41,9 @@ "\n", "# This loads some custom styles for matplotlib\n", "import json, matplotlib\n", - "with open(\"assets/matplotlibrc.json\") as f: matplotlib.rcParams.update(json.load(f))" + "with open(\"assets/matplotlibrc.json\") as f: matplotlib.rcParams.update(json.load(f))\n", + "\n", + "np.random.seed(42) #This makes our random numbers reproducable when the notebook is rerun in order" ] }, { @@ -56,15 +58,15 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "7b05be8f-9edb-4742-bbfc-e892cc09b82b", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -104,15 +106,15 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "340a78e7-6c1d-4742-8dca-6d3bea492856", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -155,7 +157,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "c2e63baa-8d97-41f3-9070-013aa6bf83bd", "metadata": {}, "outputs": [ @@ -180,22 +182,22 @@ "id": "8351475b-73cb-4cd9-9fe8-3b60af0b5a6a", "metadata": {}, "source": [ - "## Exercise: Write a function to compute the energy of a state\n", + "## Exercise 1: Write a function to compute the energy of a state\n", "\n", "See if you can write a function that calculates the energy and reproduces all the above cases. " ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "36ac021b-1da4-48d1-9cad-6ae3ba1e7e61", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAMxCAYAAAB2FyUpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABPtElEQVR4nO3debQtW10f+u/0HoS7gRxUhigPlYSIYGywiR02yNUQ4zMaowGjUZKIJnmJTbCJmgREiU3yDOZpfA9jxF5s8egYguHGe54iMcMo8dnFFqQ1RGB7YV/ArfX+qLW96667V+1ac85ae+9zPp8x1rh3r6qaNVdVrarzW/WbvyrDMAQAAKDF25x3BwAAgMtPYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANDsSu2Ct99+e0ny0CR39usOAEkemORVt91223DeHblsXJsAFnPmtak6sMh44n5Fw/IAbPewJK88705cQq5NAMuZvDa1BBZ3JskTn/jE3HXXXQ3NAHDi1ltvzXOf+9zEL+617kySxz72sblypeUSB8CJ4+PjvOhFL0rOuDY1n3XvuuuuHB0dtTYDAN1cuXJFYAGwZwZvAwAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNY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3ST3az2veHm1vuLaNLVtXJtcm07ed23y6vpqb+D0cnlDkt9YTf+XGW+tvcPaMp+c8UT7vqu/70jyzasD6DBjDuwzc88Bc/dJ8pUZT05vXbX5I0nee22ej8r4S8ObVwfV8zPmNWb15X3x6ss75O6Sfu++auf1q2m/nvEXrJOycw9YfeHelDEK/uKcUdJvrT+35u7ybffdmPb1qy/znRkrQ3xBpk/e98l4YfrDjKUH/1nuXdJvzjYackpJujM+xz/JeFv0Tav984sZL4xvs9Hfl679/eDV9n7jarkXJvngU9p+VJL/tNr2L0/yfya5dW3649b314xj8Xkb752U9HtrxpPTF21Mf2jGW/5vzHjh+LicPkDuMTO31aNX8780a8fvatrHZLxQvDnJf894vG49ea/e+6SMt92PMt6ufkruXdLvCRmP+6PV/vn5jL8+rW+XO87o9/0yfgdft9pfP5LknTbmucexk/HXzmdk/F68ebWPH9l6TvHy6vGKa9PUtnFtcm1an+ba5NXtdXKCOlercmMvGYbhC865K1wwpZS/m+TLk7znsLp1C7APrk1s49oEp1v8ORbQ6K9lLA/pxA3AReHaBKfYy+BtqDUMw6eedx8AYJ1rE5zuQqRCAQAAl5tUKAAAoJnAAgAAaCawAAAAmgksAACAZgILAACgmcACAABoJrAAAACaCSwAAIBmAgsAAKCZwAIAAGgmsAAAAJoJLAAAgGYCCwAAoJnAAgAAaCawAAAAmgksAACAZgILAACgmcACAABoJrAAAACaCSwAAIBmAgsAAKCZwAIAAGgmsAAAAJoJLAAAgGYCCwAAoJnAAgAAaCawAAAAmgksAACAZgILAACgmcACAABodqV2wdtvv70keWiSO/t1B4AkD0zyqttuu204745cNq5NAIs589pUHVhkPHG/omF5ALZ7WJJXnncnLiHXJoDlTF6bWgKLO5PkiU98Yu66667JGQ8PD+/x99WrV7dO2zZfran2p8xdd237tf2Yu76p5Wo/29RyNe3vovY42davXY7Jue1P9Wufx+Eu/V36s9Vu1x79qN3+S++3qX11eHiY4+PjvOhFL0r84l7rziR57GMfmytXWi5xAJyYe21qPuu+5jWvOfXkXUr5s/+/z33us3X5zWnDcPfdlTe96U1b21yfb/39XdqfWq5H+1M229y23NHR0T3+Xt/W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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAJMCAYAAAAYBLcfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+uElEQVR4nO3debR1R1nn8d8TAgQZAggKCA0spSEomobX96XBDkgQHJYKCIKKaCu6lGArii22NgKuJWldq21tAyLYglOYVURlMBjCEHg5DIGEqVFAUUBEZki7SKr/2PuQ8x7qVD01nHPPrfv9rHVX7rvP3lW1h7Pz7Kpn17UQggAAAEZz2kE3AAAAYBsIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJBOL1n5hS98YfjQhz60rbYAOCC3uMUt9KAHPcgOuh3bdMkll4QzzjjjoJsBoLMrr7xS55xzTvT+VRTkfOhDH9J5553Xp1UA9sYFF1xw0E3YujPOOEPHjx8/6GYA6OzkyZMbP2O4CgAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkg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9PZ5m0eb2aM3H4oveJemMfKvmv/9/Zq66Jf7fbf59+9ylLX0HE03tf8k6SXzsjMlfXDOL/h+SbGx//dJOtvMTpufUI/Py18n6Z7LNprZ9c0s9yT1IkmPmK+zu0v6RAjhg6srzP/+pJndfb75PkLXXBcYH/cv7l8x3L8OuR45OefPF+YjJf1MCOFVmr6svziv/xlJx216te4+mpLFpGm894fN7DJN49bfOS//SUnfaGZv0/SkcOcQwkc1de9dbma/FkJ4maQ/lnTpvN7zJd0whPAmTRflZZq6Gt+waSdCCO+Y2/aKEMIykv9VSU82szdrcy/XCyTd1Myu0DSO/+65vLfP+/wyM3urpieY5ZfeM6Z9fUkvmrd9i6au4t+et/8xM/uxeb2zJF1uZu/SlHX/kytl/ISkP5rLOFvXjMnfSdJHM/UrhHClpi/08+bjevWyDZKeqKnrdqGpi9brZZLuJemvQwj/Ni97iqQfmM/9nRR/knqNpqe8t2sa837T3MaPaLqBXzjv56VzGakx7b/U9LT4HklP18qbLjZ1my89StIz5vX+VtM1hLFw/+L+xf3rCLEpEXuLFZh9OoSQyx7HFtk0R8aDVr6kABy4fx087l9oQZADABtw/wIOt60HOQAAAAeBv10FAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGdHrJypdcckk444wztFgsvrDs2LFjknTKsvXPPJ+nLLf1rp/btqW8HnV5648ds5hUOd5z5S0/dR5rznHpsejVFk95sTbVXOcxLdee91jE6tq07S1ucQs96EEPsupGHQLL+xeAsVx55ZU655xzovcvCyG4C3rKU54SzjvvPK1uY+a7Ly63ia3fq7xUHTVtSemx36n1c9vE2tmy3971UvXG2r7NdpZuW3OdxbZd13IN1pTnPabeOiTpggsu0KMe9aihg5yTJ0+G48ePH3QzAHR28uRJHT9+PHr/YrgKAAAMiSAHAAAMqSgn59ixYxu7wHNDAanue293f244xDtEUjMMsu12psrJtbd0WCu33nr7cscuVkfpkEqsjprj0zIE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\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -224,15 +226,15 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 63, "id": "0ad5b92f-521f-48c2-9f5b-7950f5a3f931", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAMxCAYAAAB2FyUpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABUAUlEQVR4nO3debgt21kX6t/I2el2EjdNLiEhSDQmNIIEULqAhASIiDSCEBSEoDR6FQVDI80lEUE6xaCoCAohoTGEJmy8EjCRsy+GgBdC5ArBSBdJRxOSTZJ90iyo+0fV4swzz5q1ao4xaq619n7f51nPOXtV1agxq2rOWt8c3/iqDMMQAACAFvc46w4AAAAXn8ACAABoJrAAAACaCSwAAIBmAgsAAKCZwAIAAGgmsAAAAJoJLAAAgGYCCwAAoJnAAgAAaCawAAAAmgksAACAZgILAACg2aXaDZ/3vOeVJA9J8rp+3QEgyQOSvOJxj3vccNYduWjcmwBWc+q9qTqwyPjB/bKG7QHY7aFJXn7WnbiA3JsA1jN7b2oJLF6XJE94whNyxx13NDQDwLH73ve+eeYzn5n4xr3W65Lk0Y9+dC5darnFAXDs6Ogoz3/+85NT7k3Nn7p33HFHbty40doMAHRz6dIlgQXAgZm8DQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAs0utDdz3vvft0Q8A4jO1l6Ojo7PuAsBNY+lnaktg8YAkeeYzn9nQBAA7PCDJ7591Jy6gByTJ85///LPuB8DNaPbe1BJYvCLJQ5O8rqENAO7uARk/Y9mfexPAOk69N5VhGA7UFwAA4GZl8jYAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4FFhVLK7aWUp668j6eUUl605j44X0opDyulDKWUR511X4CLx72JNbg3sY/mwKKU8rTpgtv+eU6PDvZyiA/caT9PKqW8ppRynxOWXS6l/H4p5e+t3Y+eSikfVEp5finl1aWUO0opv1xK+fwF231SKeVFpZQbpZSXllK+8IR17l1K+epp+ZtKKb9RSvkbC/t171LKL5ZSvvWEZV9fSvn1UsoDlr1KtpVSrpZS/ncp5Y2llFeWUp5RSnnIKds8vJTyQ6WU35mu9e8rpTzohPU+qpTyM9P19JpSyrNXeyHcktyb7rYf96Y7t3NvusDcm863XiMWz0ny4K2fv9qp7YvmGUnul+TjT1j2V5LcK8l3HbRH7d6Q5JuT/Pkk75rkq5J8VSnls3dtUEr5yCTfneRbkrx7kv8zyeeXUv7u1qrfl+RxSf5mknfOeN38zyWdGobhTUk+LckTSymP39j3+yf5/CRPHIbhdUva2kcp5Z692zynfiLJJ2U8L5+Q5OFJvn/XyqWU+yX58SRDkscmeXTG6/1HSin32FjvEzK+T74jyXtO633POi+BW5x7053cm+LedJNwbzrPhmFo+knytCTPnln+mCRvTvLBG7/7oiS/neRB079vz/jh8M1Jrif53ST/OEnZ2ObeSf5pkpdn/DD5mSSP2drXo6e2biR5TZIfS/LWUx+HrZ+HTdu8e5IfTfL6JL+V8aJ64Eab90vy9Gn5K5M8adrHU2de8w8kee4Jv789yX+Y/v/rkrxk6uuvTa/3nhvrPiXJi7a2fepWe89O8rR9jlGvnyQ/mOQZM8u/J8mztn73uUl+8/i8JvkLSV6b5G0a+/LkJC9L8lZJ7pPkxUm+cVr2CUl+McmbkvxGkidtbTsk+bit37024wd/kjxsWucJSa4leePxshNe7zO3fnfP6Vr+tI3X+1+n9l+d5D8mefjG+sf7etT07ycmee1Wmx+XZNj63ccmeeHUt1+bjselFc75xyT5w83rdGv5RyT5gyR/bON3V6ZtPmz696XpXP3NNa5LP36Of+LedNJrdm9yb0rcmxL3ptV+Vp9jMQzD7UmemuQZpZQrpZT3yvhB9ZnDMPzWxqqfnuQoyfsm+ftJ/kGSz9xY/s1JPiDJJyf5M0meleQ5pZRHJEkZc/+el+SXpvU+KMmPJLltau8FSb4td35r9ZullLdK8l+S/HySP5vxzfWgjN9UHPuGJB+S8Q3yERlvRu99ysv+90keW0p5p+NflFL+ZMZvVf799KvXZXxzvtvUv8/K+E1Gi9ljNPVjKKU8sWUn0zn8wIwfZrvcO+OHyaY7kjw0yfFx+ZgkP5vki0opLy+lvKSU8k9LKffds0tfneRVSf5Fxm+shiRfWkp5n4zn8j8keY+MN8R/XPn6vzbJN2X8VuzHTlj+3Uk+upRy/43fPT7J5SQ/NP37fkm+MeO19riMH2o/tPmNyb5KKR+c8Y+Lb8p4LX1OxuvqyzbWeVop5fbafUxtvE2ST0nyU8MwvGXHavfOeOzftPG7N2Z8nR80/fu9k7xDkj8spfz8NIz9o6WUd2/pH+zLvWnk3pTEvcm9yb2pnw6R4tMyfui+fuvnSzfWuVfGD8hnZozQv3Wrjdszfuhufgv0tUl+afr/Pz7t4yFb2z03yT+Z/v97kvzXmX7enrt/q/LlSX5s63cPzXgBPjLJ/TNeiJ+4sfxtMn6T89SZfd2WMfJ9ysbvvjLJS5PcY8c2X5DkZzf+/ZTs8a3QkmM0/fuXk/zlynP9sul4/EGS/+uUdT874zdTj8uYcvfIjN/WDEk+YFrnORnf3P8x4037L2b85uY7Kvr2bhlvDm9K8men3313kh/fWu/rk/zixr+Xfiv090/Z/6Ukv5Pkr2/87nsyfQu4Y5sHTm2/+9a+HjX9+4k55Vuh6fx+ydY6n5rkFRv//pokT6885183ncch4x9Abzuz7v+R8Vvdp2a8ad0vyb+ctv230zqfPP37pRm/sXuf6Tj9bhq/HfTjZ/Mn7k0n7cu9yb3p+Jp0b3JvWuWn14jFTyR51NbPtxwvHIbhzRkjyk/IOBx40rcfPz1MZ3fygiSPKKXcljGivy3JS0oprz/+yfhtzcOn9R+V8Vuhfbxnkg/davOXp2UPn37ulXHY9vi1/F5OybMchuEPknxnxvzKMkX9n57xQ+kPk6SU8oQyTjp71bTfr8r4AVxryTHKMAzvMgzDD+1qZHPbUsq3bC3+4IzfaPytJJ9XSpnLVf62jN9S/ceM6QY/nfHbmWT8liAZP9SHJJ8yDMN/G4bhP2X8NvDT9/1maBiGX8o4zP+fh2H42enX75rk+VurPj93Xlf7+Nm5hcMwHGX8BupTkj/K6fzYjDeQTL97RCnle0spv1ZK+f2MN6qk7by/Z5Kv2Drn35bkwaWUy1PfvmQYhk/b1UAp5Vu2tt/0DUneK3cOJT+9lFJOamcYht9J8olJPjrjH3DXM6YAvDB3PedJ8tXDMPzAMAw/l+QzMl4Hn7jna4fTuDdtcG9K4t7k3uTetKpLndp5wzAMv3LKOh84/fdtpp837NH+/TNeOO8z/XfT8cV2xx7tbbb7I0m++IRlr0zypyraPPbtSb4k40SheyR5x4wTglJK+YCMb+onZxy6vJ4xWn7STHt/mGT7TbM5UWvJMVriURv///ubC4Zh+PXpf/+/MlZTeEqS7z2pkelG/MWllC9N8vYZvzF53LT416b/vjLJy4dhuL6x6Yszvs6HJvlfe/Q7Gb8VO9pzmyHzx/XYkuv1u5NcK6W8XZIPz3hNblag+ZGM34Z8VpJXZLwu/kfGPxBOcto5T8bz/uSMecXbtof7d/mKjPnPdzMMw+9m/MbmJaWUF2fMQ37/jH9cnbT+jyd5eCnlgUmOhmF4bSnlVbnrOU/Gb4GPt3lTKeXX0nYTg5O4N92de5N7k3uTe9NqegUWs0opD0/yzzNetE9I8p2llA87/oZk8n5bm71/kv81DMMflFJ+PuM3Hm83DMNP7tjNL2T8cHjyjuVvntrY9MKM31T9xhTVb/f7V5O8Zerb/55+99YZh07ncjgzDMOvllKuJfkbGd+Azx2G4aXT4g9M8tJhGL56Y1/vNNdexg+/B2+sf1vGyX0/Mf1qyTE61YKb8LF7ZMxbPK29P8g4YS/Tt0gvmL49SMZvaD6xlHL/YRiObzCPzPih9bK9On6yF2ecNLnp0UleMvUruftxfUTGodK9DcPwU6WU38x4jX9kxgmCb5nafduMFSw+6/j8lFI+aGdjd/btAaWU+w3DcHzzeNTWOi9M8s57nLeT+v3bGSesnub4G50l5/13k6SU8tgkb5fk6rTo5zKmBLxzxsmCx5VMHpbxxgYH497k3pS4N8W9KXFv6qc1lypjHuuPZoz8N38eOC2/LWME+f3Tvx+cMcr8wo02bs84Yewbc2dZt9cn+ZyNdb4rya9nLJX3JzLmPX5Jko+alj8y40XxrzNODnuXJH97ox/fmuS/ZbxIHpjxQnxIxov2WUn+XMZh2cdn/Pbmtmm7f5NxWPCxGT8sf3jq61MXHJtPzfjNwB1JnrDx+4/JeFP45Gmffy9jJYbXbqzzlNw1j/VzMn4z8VHTa/vWjN8mPW3pMZrW2TuPNcnfyTiE+Ijp529m/MboqzbW+btJnrfx7wdmHJZ+l4wfON80HYf33Vjn/hm/ZXhWxjzUP5+xGsm3NVyLz97493tnyrmdro9Pz5iD/MSNdb434zcU75VxKP15GW/0T5yWPywbuaUL+vBVGXO135LkgzZ+f4+M1/0zMn7b+NjpevyjPNrtfWX89vT107F7eJK/lvFGOGy0+/hpX09O8qczDrF/8ta52TuPNeMfLH93OnfvNPX3+Ul+Jcm9p3XeYbqeNs/pZ2T8w+vhGa//Vyf5Z1ttPzXjzfkjMr7f/13Gqjdv3fp55MfP8U/cm+aOjXuTe9Px792b7lznqXFvav5pb+DkcnlDkl+eln9FxqG1t93Y5uMzftC+5/Tv25P8q4wflNeT/F7GagqbE+bumeQfZfxwevPU5g8meY+NdT5kusDemLGk33OSvNW07JEZbyI3cteSfo+Y2nnNtOzFGb/BOi47d//pDfeGjNUdvjCnlPTb6M99c2f5tntvLfv6jG/m12XM7/y8zH943zPjjenV04X+D3P3kn5LjtGQE0rSnfI6PjfjsOgbpvPzwow3xnts9fc3Nv79wOl4v37a7rlJ3u+Ett8lyX+ejv1vJvlnSe67sfwxm+drwbX47K3fHZf0e3PGbx2+YGv5QzIO+b8+443jI3PyBLlHLTxW7zqt/xvZuH6nZR+W8UbxxiT/PeP1uvPDe/rdx2Ucdr+Rcbj6s3L3kn6Pz3jd35jOz89k/PZp87jcvuc5f4+MVWlePfX31zO+P99hY53j/j5m43dfm/F98ubpeP6DE47DPTMOb/9Wxj8C/nOSP936WeTHz+ZP3Jvmjo17k3vT5jL3pjuvU/emxp/jD6gzVcZyYy8ahuHzzrgrnDOllM9I8qVJ3m3YXUoOoDv3JnZxb4KTrf4cC2j0FzOWh/TBDcB54d4EJzjI5G2oNQyDMm8AnCvuTXCyc5EKBQAAXGxSoQAAgGYCCwAAoJnAAgAAaCawAAAAmgksAACAZgILAACgmcACAABoJrAAAACaCSwAAIBmAgsAAKCZwAIAAGgmsAAAAJoJLAAAgGYCCwAAoJnAAgAAaCawAAAAmgksAACAZgILAACgmcACAABoJrAAAACaCSwAAIBmAgsAAKCZwAIAAGgmsAAAAJoJLAAAgGYCCwAAoJnAAgAAaCawAAAAmgksAACAZgILAACg2aXaDZ/3vOeVJA9J8rp+3QEgyQOSvOJxj3vccNYduWjcmwBWc+q9qTqwyPjB/bKG7QHY7aFJXn7WnbiA3JsA1jN7b2oJLF6XJE94whNyxx13zK54/fr1u/z7ypUrO5ftWq/WXPtzlu67tv3afizd39x2ta9tbrua9vdRe53s6tc+1+TS9uf6dcjrcJ/+rv3aao9rj37UHv+1z9vcubp+/XqOjo7y/Oc/P/GNe63XJcmjH/3oXLrUcosD4NjSe1Pzp+6rXvWqEz+8Syl/9P/3vOc9d26/vWwY7hxdecMb3rCzzc31Nn+/T/tz2/Vof852m7u2u3Hjxl3+vXms5/q1bbOfvfu4bbvPu8y1t73vuf5vXidz223avmbn2pi7Fmr6tfQ4brexbbPNzdczt822uXO19Fqb++Nts/19jnlN+3OfM3Nt7HO+d60316+l6yXja7h8+XKuXr26cxuWuXTpksAC4MBM3gYAAJoJLAAAgGYCCwAAoFlzAuqVK1dOzNNemqe8rTanuYce8y9q+1+bg790X5vtL+3jXBv7LNu13px9+r+0z7UOeU73mdeya1ntnIFaPa7ds7zml7Y5917f55o/7ZweHR3l2rVr+3YV7qJ2jhxACyMWAABAM4EFAADQrDkV6vr166eWm902l17QOyVin1Slmjb26e/SfR8y5Wif7XqftzVSdmqO8fa+t/VIY1o7BWnXfk/bd+01tPSY9CjdujT1bZ9zOteXpe+xmmMAa1p6XW9zjQK9GLEAAACaCSwAAIBmAgsAAKBZ8xyLY/vkl9fOIdi1rLaNbb1zq2stzRvfp+zqpjVy7ufWq52jsMvaZXBr2zhPpVaXrjf32nrPEekxj2Ifa5Q2bt3X9rpy2w+vdh7ZnJrtaj9naq095wsgMWIBAAB0ILAAAACadUuF2idFZOlTlOfaWbt0Xm3KVO9+9UoD6XFc99nfrmVrnMOakqP7lGXsXda319PBe5R87Z1C1SvFoiZdpUd52bl29rleW9INL1++nKtXr+5ch2WuXLmSGzdu7LXN2mWul26zRhl26U/AIRixAAAAmgksAACAZgILAACgWfMci115rGvk9Pcux7c0L7pX6dYeZQ575JHXvu61y9T2Lku7vW6P+QS1at8PaxyTGkvLHveej3Jam7Vt7JPfvmS9tUvisr/r16/n0qVL1SW7eyzrVRq7puT1Pv0H6MWIBQAA0ExgAQAANDtIudna7Xo86bk25aH2Kc1L21+67hrpVGs8Qbt3Wkhtudna9muetlzbr7XL2S7tR682eqRy1erxuVP7npJ2cr7tStOt/WysWXbIfZ3GdQgcghELAACgmcACAABoJrAAAACadZtj0SvHeHO7NcqiLrXG/Ive5QTn9CqRu2u7NXLn15hrUJP7PKdH2dLa89u7bO9per+P1p5vscbclR558GvPoeFku8rNzln7Gp1T8/6ufW2uO2AtRiwAAIBmAgsAAKBZt1SobWs8lfY8lojcJ1WidznYbWuX/ewxlN7julg7Xaj2nNZa+8nka5ebXbrvNdIla1OOao5JbQrhPoZhyNHRUa5du9alvVvZrnKz59Xa9wfpT8AhGLEAAACaCSwAAIBmzalQx5U3tq2dKrNG9Y7eQ8U9npq9z+vsXaWmVwrbprWftL50f2tUU6lNtzlkCsShn2i+tL010uLm1qup0LbP09qXpoCdZRWim92uqlAXoTrS0mvS0+CB88aIBQAA0ExgAQAANBNYAAAAzZrnWNSU9JvLb67JA13jydtr5z4fev7IpqU532vn4fZ6Im6PfPml/eox56XXE9lr8q6X9nHbGtdrj6dT98gpX3q89rkuas8p/ey6N/WYi3aWejwNfm7ZeX3dwMVgxAIAAGgmsAAAAJp1Kzfbqwxnj9SPOUvbP/TTr9dOSek9DL5G+ssa5WZr2u9xnk5rp3cbPc5vbTnVpdZ+n/ZK4ah57/dKT5GG0s+Se9O283r8D1k2G1otTQPm5mTEAgAAaCawAAAAmgksAACAZs1zLI7tky9fm0u/dN89+rH2HIIecxn2yc+uOUY9jsF2Oz3Kg+5zre1qs3Z+Te11vvTcrJ0z3eua2dXmGnOAavV4f/coBTxHzvH5chHKrta+V8yrYC1rz4/kYjFiAQAANBNYAAAAzVZ78vYhy5GukdJUq7bc7NI25trrXcq19inT5+mYL71mepesnetXr6dYr51us3bp51q930c99lVbWvqkfl2+fDlXr15d2EP2VZuOeZZpG0vfb2sv4+bTI337PN0fbiZL36fn7T1qxAIAAGgmsAAAAJoJLAAAgGbdys3Wqi1/2btkba01cuJ75IPXzjvpUT611tL215jnsPR41c5dWapHe2v08Ty9jzbVnrelbfaaD7NrOznHh9ejFPpZqu3/RX/d9FMzX7XHvMTzNhdgl0OWC9/nvdd7zuhajFgAAADNBBYAAECz5lSo69ev59KlS4vLfCbLUxSWDu/Ups3UlkhbuqzHk7fn1KYE9Vhvbrs1Url69L/HU7/XKFvaI0Wrx5PDe5QvPsvUwF7vt94phWc9LH2r6/GeOoSa63yNlFduPj0+Q/dxET7zehyTNcrW13wGnbfjbcQCAABoJrAAAACarfbk7U21w2trDO+c5TBTj1ScHlVqap/mWJsmUFOZae2hvV4pQTVqK6HNtdMjhW1u2dpPAF07NaM2PWxuvTktqXtHR0e5du3a4n3Rz3ms8tarzYvw2s5bSker2nt5730dso3z6izfNz0qP10kRiwAAIBmAgsAAKCZwAIAAGjW7cnbhyjpdx6fOrh2rv7aTyQ+bd1d662d0z+377XVXpM9+r/G3JW59mvn9tRcC71KF/Z4MvZ5yWM9qR+XL1/O1atXz6A3t4Y1yk73mEdWs6x2vlaP17126eo1XJS/FXrvb43r9SI45HtxHz0eZ3CeGbEAAACaCSwAAIBm3VKhtvUuTTq3bO1ysGuUmewxxNUrTWpXO7XD5UutkU5Va40nb/ce4l8j5WjpkG+Pa6ZXekTNMP6cNZ6uvbRN5WbPl9r3/tI03d7Lej3p/jy+tm1rpAX3KC3duq/tZb3ubz32d1FSbzYd8nqtdej9HZoRCwAAoJnAAgAAaCawAAAAmq02x6K23Gzvx6evUapyV3vb261RvrN3Xvpcm2vnxM9ZOwfxopQp7V2WuHa+01w7ax+vfeZtLNWj9GZtWcCLXsLxolujFHrNdrWfobXO62vrsV3tNj3mDR7yte2jRwnhm8lFKaVb8/fxeep/YsQCAADoQGABAAA0a06Fun79ei5dutStDGfvtJl9nJehyaVqS9YuLSu6vV6P9ns8VbI29aZHekqPIf4efdxnu7n15krK9m5/HzWpe2u8H9YoO3kzPFn1ZrV2Osyc83rue7+2i1KStbfav2fW+Axae99L+7F2+zXrrWGf++J5OW8tjFgAAADNBBYAAEAzgQUAANCseY7FlStXcuPGjb1yunrkSvYocdkj969X/uCuHNTaeQ7bao75Pnl7a5TurenX0lzGNXKpa8uWLm1j265la8xdmbPGnJEe5Wxry0AubaPmuuPs1ZYavpnnxtS87jVKyq4x36lHaemafW23WTv3sHbfu/Y1t79ex7/3a9vH0td2lnp/Bp23UrpGLAAAgGYCCwAAoNlBys3WDqHNLTv08NqSfuyzrHc/tq1dknXOoUuyrpE61mPfNcORa1xPPUqf1rax9Nzsk1pyVmlGtakG+yil5PLly7l69WrV9rTpXQbyoqh53Wscjx7pkT1Kex4iVbbH/mrVvO7az7jzUkL4vKYvrn29nsXrNmIBAAA0E1gAAADNBBYAAECz5jkWx3qUVu21XW3p05rcvLXz12qPz9yyNcrZ1WxXO4+ix1yAXnqU2d20xjyHtXMqa0vD9p4HVNt+7XHl4juPc3nOm0O+B2rLhdfe+2pe2xpldte2dN+1+f5rPDagt/Myp+I0NZ9Jhz5vpzFiAQAANBNYAAAAzVZ78vYhh0zXKON26NJwPZ40vLT9bT3SbZZa+tp6pxid1v7aT3Du0a8ew5aHTt1bY4h81zFZOw3rEJ9xwzDk6Ogo165d6942p5P+dHfn5V7ee1+1++uVnlyzv16f17uO+Xkq3b90uzW3Ocka9+HW9s/b55YRCwAAoJnAAgAAaNatKlSvSj01KSm90keWPtm7x5OGl/Zj29J9z203t7+1n9jdo5pXr4ogNW3MWaNa1dpPDu+9rx7vt332ccg0tX3ar01v8+Tts9W7gtB5VZs2WJtOWtuvpffkHvtrec/uWtbaj32W9VD7upe2uUaqbI/rde3zXftZsvZrW4sRCwAAoJnAAgAAaCawAAAAmjXPsbh+/XouXbp7M2vn0q+dJ7Z2TuXca6udR7HP/mrW651PuEbO41xf1ri2epctPcQchZr2t9Xsb+511x7zHud06VyotfO6OXu1ZacP8TTbNdW87rXLrtcuW6PE9dpz03q87h7OsnR/r/dNzfV6yGO8Rl9q52msxYgFAADQTGABAAA06/bk7W1rD7esPfy4dhtrl3Wt1aMk7kWwz9B2j7S4Na61XfvbJ1WsR6ne2mNQWwJ57bSHXfvap42W8sievH121kiJvOguwpOxe5T2PrSaPtdekz3KZp+2bo012qhJQd6n/Rq1x3WNcueHYMQCAABoJrAAAACaCSwAAIBmzXMsjvXKX+uRs94j132NvLQe/Zo7Pr3zTPfNDd+13dJz2mNZj7JxS8uPnrasd9m7NfR+H/UqbXeW5R13lbPdp72l252nnG/qnXVOc6s1SpwfUm059YtwrtYuMb90m32O1VmW1K757D3LPta+39a+R7YwYgEAADQTWAAAAM26PXm79qm3vUpQ1qzX40nAPZ4CPdfPQzwJsybdo9eTsXu3UVt6bo1+LX3ieO2+l2wz16eWdnq0sUaJxV3t9yghvMZxPesha5arLSF80S39HFsjnWTpfXHpuTmvaV21/e+97NAp4OfFWfbxIhyffRmxAAAAmgksAACAZgILAACgWfMciytXruTGjRvdSpH1zllfOxd2jZzNHjmPPV53r2PVO099jfPdK39+aZs92tvVrzXKNLes26rXfJva/R2y/VJKLl++nKtXr1a1zXpq589dNEvfb+dpnslFPzdrlEnvsQxqGLEAAACaCSwAAIBmByk3u63H0OQa6Sk9StvNqSlXWNv+PmpKstaWtqt9QnePdKpDl9U7q9KGa6R11epRJnjtJ75vW/p+6N0+F9chy3ce2nl8DeexT2tZ4zMO1mTEAgAAaCawAAAAmgksAACAZmdSbnZOj/zj2nz8XfmKvXLne88tWTuXvrb92nKdm/vrlYfeo1TiecmJP8uyq0tze2vn3sxZo6xlbZ93WTqvaImjo6Ncu3Ztr204W+flM4Kbj2uLi8aIBQAA0ExgAQAANOtWbnbbXNrPXMpLj5SUpfuu1eNpzmuksRyyjO/aqUS1r7tHmlptX5am1PQqUbxrvfOkNpWo17pL2uh9fk9r/yKex1tRbblt2Nfa6aRwSEYsAACAZgILAACgWXMq1C61T6eueeLu0vb26dfSdIWLUrFh6VOtd22zrTb1qXa7mv7vY+3qP2u87l3pVWucmzm1aT+1fV76lOOlKZdL0wv2efJ27b65GKSg3HzOMkWxR9o0nBdGLAAAgGYCCwAAoJnAAgAAaNbtydv76DHPYU7tdjXzNnqVkqx5QvQa5RB7zC1ZekwuStnVHiVT134aeY9zU3s+1timphzz2k9r38fS9+ZJ5+Py5cu5evVqcx+APnqUcq9lThYXjRELAACgmcACAABo1q3cbK8nL/cuBzu3Xe+nRdf2o7aNuTZr06TWLlV6yCefb++v9gmmPc7VGmlMu9rvNVR/6P0t7UfNvmvbqD1vtekLwzDk6Ogo165dW7wNUOcsU4t6pNjCeWTEAgAAaCawAAAAmgksAACAZt3mWNTmrO9TrrVHv2rWrZ2vsEb5zt654bXbrTFXokebPcrsbm/T+zj3et01JYrn+rLPnKZDlv+tPac9XlvtHI7adZWbhcPZ9Rmx9t8lS/tx2jI4j4xYAAAAzQQWAABAs+ZUqOvXr+fSpUvdSsr2GPZbO53qkGle5+m4LtWjRGettVNvelwLa5S6nWuv9ppcuqy21HDvMrVrv+5DHFfgcJamk84t61FqvfdnLZwlIxYAAEAzgQUAANBMYAEAADRrnmNx5cqV3LhxY6/840095iHU5j6vnfO9rXZuxlK1udtLS+7t2maf7dYo6dfjuK5dVnSNHNpd69bm8u6z77n30a42z2t55LVzpGv7Bayr5r1Y+zlZe78zr4KLxogFAADQTGABAAA0O0i52TXSBGrLd/Z4EvMaaRU9XvfS/R36acg99r1Gn3vo8eTtpe0t7ccaqYFLl9WmyNWa6+PaT9Jd6714dHSUa9eutXUOWMV5KYMP55URCwAAoJnAAgAAaNacCrXEGukRa1TZ6VGRaq69pRVylra/RsrLealY06Pq1Pa6Pa6L7e1qzmOvCkhLz1vtsrN88naP67BHSuTcNrXXJHC+1d5bey2Di8yIBQAA0ExgAQAANBNYAAAAzVabY1Hz1OG5NrbXXZrT3COvu7Y0bA9r5OMv3cc+2xwyX7RHac9e8xB6lGSdUzPP4RB5vr2v+zX63Pt1rzHXAzgfevzN0qvsPlxkRiwAAIBmAgsAAKDZQcrN1uqVQtXb2k/eXOPp3b2fFr5Gec3aFLPeT+WuLVPa4+nOtalWa7Q/p3eZ3R72+bzoXc629tj1OKdAX2ukhXpvc6swYgEAADQTWAAAAM0EFgAAQLPmORZXrlzJjRs3ZtepLYvaIy+6Noe5dg5Bbf70XHnbHv2aU1OStXbfPcrS7jOXYWnJ16XH/7S+LF22a99zy3rMvZnTo+TrGtdu7+NzWpu72uk1j2LJvoCLwXsY7sqIBQAA0ExgAQAANGtOhbp+/XouXbp0kKfSLk2/OOTTL/dJy6kpS9fruC5Na6ltoybNpde56JHeVjucfcinqa6xr9qUwqXLejwZe06PlMU5tf2oTd8qpeTy5cu5evXqov0CwHlixAIAAGgmsAAAAJoJLAAAgGYHKTe7jx7lSHuoLbs6t15NudPaeQG1ZXx7qC0TvEY53h7zR2qvyd55/D32W1tCeI1SsT3mxtRut/Ycjrk2aksbw62mx/sUOCwjFgAAQDOBBQAA0Kxbudl99ChxuTn0uUbJyUOnv+xKF6rtf690nhq1T2leWs62xxOQa9O1eqSu9Ejlqt1frye3n2XK4tL0trlt1niC/a72930PHx0d5dq1a819AIBDM2IBAAA0E1gAAADNBBYAAECzbuVmD1EScte6PUpa7mON+Rc1bfZ63WuUt62xRvnRmvkd++gxN6NHOd65ffU4rrXvxR7XTO2xq32/7Wpzbr259oFlat8356VMfa0e9x84L4xYAAAAzQQWAABAs27lZvdJQ6hN/egx3NmjhO0a5W2Xpl8s1aNk6qGHZ9d4+vWuNrbVlrNdur81rpmlbdSsd1o/zvIaqmlzn/73TtHaRyklly9fztWrV6u2h4ustlT5RUwJqnltUiy5CIxYAAAAzQQWAABAs+ZUqGO1qStrp83UDpkubb+XpcOiS9Wejx5PKl86lHuIJ5ovdV6GmM+y0tBFOR+79t0rHaJHO+fleoKLbO33+tp6pFUuXXZRjgk3PyMWAABAM4EFAADQTGABAAA0W+3J2z1yxdd+0vDcdmuUxK0pd1rb/j4l69Z+0nfN/JHaY7dUj3NT22ZtOcHa91Rtnm+Pfq1RGriHmn7VvqfMt4BbQ6972q7tboYyu9z8jFgAAADNBBYAAECzbuVm9xkCrE0T6FEqdq69syzd1qPc7Nx2PdIxatuvSfOqVXvelm7X45qpLetam651liVsL3oa0BrX5Gnn8ejoKNeuXWveL9ys1njqfa0eJWWXkvrERWDEAgAAaCawAAAAmgksAACAZs1zLK5fv55Lly7tlT/YI9ewd+nTfSydt9GjNNzacwaSuvPRI9dznxKptfMEepT9XNrGocvILp27MqfHvJml2+yz75pjss82vefDHOJ9CpzsvJRkrS0P73OAm4kRCwAAoJnAAgAAaNat3Gyv9Iu1n1hbk8ZUm2KxxrBoj+HT2tShHk8V75Ee1EOvEqy9S7n2KMHbKxWgJk2q15Poa9brpccTcZdud9K+L1++nKtXry5uD24F+6Shnsd+eGo2twojFgAAQDOBBQAA0ExgAQAANGueY3HlypXcuHHjbr/vMU9gaQ7iPnMB5rar3d/Sfde036MU6b7r1ug9L6RXedAec1cOXaa2po0e1+6cpcdun/N2lvNtepdY3ueaOe21Hh0d5dq1a3v3D25Va8/N3LWvffan3Cy3CiMWAABAM4EFAADQrNuTt7f1KCW5dtnVWms85bMmLaTXU6B3HcteaVg12/Uq39mjjR5pRr2fAD6379rXsk+/asrNzjmvqXtz1kiRU24W9lebnnxIF6GP0IMRCwAAoJnAAgAAaCawAAAAmnUrNztXWrVXPn6P3MOavOi5fhw6N3yuvR55mrW5+jWvu7Zc7j7Ldl2HveYa7NrXXDs9zs12O2u8njm7jus+79ke/VqjBG9taeOl7a9R2hhudkvnNq7xd8PSfm2ruW8duv/QmxELAACgmcACAABo1pwKtUttWs7a6Ty9n9BZW9Z1W01aS+1xndv33Da1T1GuOeaHLjdbm55SU9p17XS5XulIPYbxa/s1t17NvtdOG5zb3z7te/I27O+8lnKt/WzctUxaFBeBEQsAAKCZwAIAAGi2WirUUrXDg3Pr9ahE06MyTI/0izWe7F2rtjJT76c0z+mRbnPoyjw9rrW1K171eN/Uvh/WPh+Hfm2nLfPkbdjP2umYc2o/P2q2UzGKi8CIBQAA0ExgAQAANBNYAAAAzVabY9FjLsDSco61pUkPXeKtps+HfrJ3j3KwteVma+edLF23No+/x/yL3v2Ya7O2jX30eKJ5jz7XztGqudZ6fc6ctky5WdjPIefFrT1Prdd2cFaMWAAAAM0EFgAAQLPmVKjr16/n0qX5Znql7/RIY6pdtmu92j72KD03p8fwaW1ay9y6azwpufap2Uv1flp4ryea99j3nB5PTF/jKfI1KX+1qXstKU0n/T/Qbo2Uy9p99/57Y+3+w9qMWAAAAM0EFgAAQDOBBQAA0Kx5jsWVK1dy48aNu/2+R954jzb22e6QuZhLc9F7zdOoed295kAs7eNSPeYabFs7D36N9mvm2+xzbmqO89L37HYba5fIrb1eay1t3/wLWNfa7/Vd+1pjmc8LLgIjFgAAQDOBBQAA0Gy1J29vqi3BtvYTnOf0SOfpkUp06CcZL91fjydvr11idHt/vUv6bre59FquTReq6dM+y+b6Upu6V5sG1DsVsbYM7py1niJ/+fLlXL16ddH2wF0dOl2ox72pR3twXhixAAAAmgksAACAZgILAACg2WpzLOZyypfmENbmmy/Ne6/Ng57L3e5R8rWmve11e+d9nrbvpQ5dJrhHvurSa7l237XHvOZ89yo326P9Nd5/PfSYE9TjnAI3L3MpuFkZsQAAAJoJLAAAgGbdUqFqn6p7Wjut2/RIm6lNV+hR1rVHOthp/Vq6rDZNo0d6Ve8UkV6vZWlp4KVt9CjXus81U3ut9XjSeu8SvL1SC3a13ysla+1ULgA4K0YsAACAZgILAACgWbdUqF7VeHo/abhWbVWr2hSwJe2dtu85S9MvalOtaqo2HboiztpP3l7aTm3K0VL7VK5a2k6PlKY5tdf5GpVVllZoW+N6GoYhR0dHuXbt2uJtAOC8MGIBAAA0E1gAAADNBBYAAECz5jkW169fz6VLd2+mR/7x0nKttU/G7pEPXvtU8bVLsO6b172k/aU594cuu7p2WdQ5NWWDe722XW30KFl72r7XeNJ37/XmSgGvXfp56fnw9F0AbiZGLAAAgGYCCwAAoFlzKtSVK1dy48aNu/2+d0pQbZu1pUPXTh/pUbJ2jScl93ARUz/Oa1pcj5KvtelgvVPH9imD27sscY+yzbXHp/Z8AMBFY8QCAABoJrAAAACaCSwAAIBm3crN9irrWpPXPZfDXFsyde3+1+aNL+1/r34tXa9H3vumNXLPD53bvmt/+1zjNcdon3NR+x6ovQ6Xtj9n17o95snUtlN7DE5q5/Lly7l69WqX9rg59Ci1XluSGm5G5rqtx4gFAADQTGABAAA0a06FOlZb+nSfZXP727WsR4pW7bBxr2HqGmf51OTzUh50e7seKXI9yrXWHruly3ql7s1ZOzVjaR97pSDV7Hvpevs+Cf3o6CjXrl1b1kFuSmvcP89LOXI4lKX3B6mBfRmxAAAAmgksAACAZgILAACgWfMciytXruTGjRuz5Sjn1OaUz/2+V9nJ1vbm7PO6W9c7bdnSuQC181qWtjG3796lT3ud0x75/73n7Owzx6XH3JU5hyw7vU8bc3q0v/bcD25dPUqOuz651fSY+8kyRiwAAIBmAgsAAKBZt3KzvSxNt5n7/dK0kLWf/NyjjV7Ddb2HwWvOU6/9rVHqtjbFbO30gpp0mx5Pm9+nX2tcT72fON6jnG3ttbXvOfTk7VtTbWnM3u3DzWif61/55TZGLAAAgGYCCwAAoJnAAgAAaNY8x+L69eu5dOlSlxzm07Y7ZDnYuf2uXWZy6THplTO7K5+wV9nSXe33mitRc0xq5yGsUSa4R6nYHnMn9tn30nPauwzxXDtrlBOsfW0tZXyPjo5y7dq1qu25OSz9jKi9Jntdr3BR9LrvcjojFgAAQDOBBQAA0Kxbudk10mbWeEJ0jV6pXHOWDnWvXWpw7RK8c2qH6ns/tbzXE6J3rVdb1rW2/bWf1Lv2ce3xenqUne7xfj5tf5DUv99qUyKV1+RmtEapdU5nxAIAAGgmsAAAAJo1p0JduXIlN27cuNvw6dLh1LN8au/aw1/7pPP06NfaTxCuTZOquRZ6ndNdqSxrpAttq0kvOPQTomurVS1tf05tClXNdmukENae00N+BnHzWSO1UfoTNzspqYdjxAIAAGgmsAAAAJoJLAAAgGbdys3W5mzWPg2xNid07bz3NeaMLG1/7rXVzC849FyMWr1zJXvNUdj1Wvc5vzXXQo95GrX9WmPfc+0cskzmGnNQTmrz8uXLuXr1amUvudmtPaeJm8Paf4vcKsxH2p8RCwAAoJnAAgAAaNacCnX9+vVcunSp+qmGtWVql7Y/t7+LkLLTI6WpZX+t622rTR/pcd56pHLVqn26c4/Sqoe8Lub0GlKuSelY47o45DXJrWXp58A+16QUjptb7bWwdvr5RXDolPybnRELAACgmcACAABoJrAAAACaNc+xuHLlSm7cuHG33y/NUeuRI1pbHvS0dmr0KDtZ2/+l/eqRU750X/vsb2kbte2vkRPfO3++R170Psdn7Wt+aT/2WbfHnJFd7fXo0/a6+5zTYRhydHSUa9euLeoTN6fae4D873qHnnPZQ4/rpHab83pMaqzxN9etzIgFAADQTGABAAA06/bk7TWskWLRI+Vo7XSnpe3to0cq0dw2a5fxXVpqtYfalJ3aPtaWtqtJTVt7WLfXcHmP17Z2emHtk+6hhZKyh3cRU8xqPoNq08ovyjHZVPs3S22a663EiAUAANBMYAEAADQTWAAAAM26zbHYJ7esd+7zoUuT1uZWH7Isao+So/u87pp8y9q8xjk95o+c1uau9mtz/GvtOua1x3WNY1er5lqr/Qya2/fcNmvN27h8+XKuXr1atT0X19pzgi6ipe/F3u3fDHrc82v3dTPNNbiZr5G1GLEAAACaCSwAAIBmzalQ169fz6VLd2+mRymyNYbT1h6iW/q6D132s2bfa6SWzKWu9OjX0iHZQ5SU7Z0eNre/HilN+6Ry1ex7jSeC9/icWfraao/PPjx5m2T5++hWStNY6/12UpvnKS10To9y27u22d6ux/3tvLpVX/dajFgAAADNBBYAAEAzgQUAANCseY7FlStXcuPGjb3Krs6pyW3bJ9/yLPMoa3Lde5W4rMkFrM1j7ZH/WntOl7a5RqneHq97bt9z7ffIu167bPPcsn1KM/coy1nz2mrfi/tup9wsa1zXF8Ghy+zuanOffpzlcT7k8Trk3x7nya36ulsYsQAAAJoJLAAAgGbdnry9xlOU59qpLQfWuzzboYdFl7bfoyTr3Ha1Jdhqh+p7pMasXfb4kCVla9usHeLvUZJ1zqGfCF7Tr0OkBp7XspacH2dZbrZH2dK5dQ+dntyjJOt5tTTVtDZdddd6p617EfiMbmPEAgAAaCawAAAAmnV78nZtekcPawxN9a5CtN1m7dBkj1SfNYb5atKfel0zvZ+SechjsM+yWj1ed4/h8n32XbO/Xu+3Q6ZEGlbnJPtUh9vlLK+t2kqQPfbXK8W2ZpvzlCZ1yPN/M1cq28fN/vqWMmIBAAA0E1gAAADNBBYAAECz1Z68vWmNJwHXrHfadkvbWPup4rU5nD3maSy1Rh/XeIrorr7Uls5bY+5NTRv7rrtrmx6lHmvzSnvPH9nn6d1zeucm7/OU9yQ5OjrKtWvXuvaB869HCdBDLqudK9Zj2Rqln89yHlytHue0Zl/bbfaY23hR3GyvZw1GLAAAgGYCCwAAoNmZP3m7x7DSGiUuezwxeG7dpUOTtWVp59o5dEnW3kOHPdrbJxWtdki5pp9rPKW5xzD+Gk9Tn2v/kH1eO+1xnzYNs986alMiz8uyXu31uOf0Ljd76NdWq/c5XSOt9aKU56UfIxYAAEAzgQUAANBMYAEAADTrNsdi2yHLoO2z7zlLS9st3fdc+0uXrT2HY27ZoXMjlx7z2vNRe+x65Pv3bmPOPtdg7/NYe93t8xmxtP3a49W7rPU+Sim5fPlyrl692r1tzpcec4fW+Cys3e4s8+V73Pt6f15sLzv08ak93637OsT+ON+MWAAAAM0EFgAAQLPmVKjr16/n0qW7N7NG2btNPVJXalMgejj0sGjv1937qcmntbl2ydo1hqxr2uxdvnafNmpTFmufft3jmNSet5oSl7Xtr5Fax62rR3n1XmWh17ZGemzrdmvsa43jesj0p7O8Jjl/jFgAAADNBBYAAEAzgQUAANCseY7FlStXcuPGjbvlx/V4NHxtjn/v/NE1yl0uLYnXqwzn5rq1bdba1f4+ZQFr+7X2ce2RA1xbKrHHnKDafP8e80d6zIWqnZMy10bN54e5ErSque5q50WtXXZ6DT3KUy9tc43P0DU+I3qc77XnS97M1+Q2c0ZGRiwAAIBmAgsAAKDZauVmN60xRLdG2kyPsqtrl9BcuqxH6lCvdI4e6W2bejyxtlf7azwNe+myHql7a5fx3VT7XunxGXGWaQJz/YKe1ijJehGsXd7+kP1Yo9z5Pst6O+SjBw5hab9u5bQoIxYAAEAzgQUAANBstapQm/ZZVlNFoUcViLl+HvqJmT2qWtVWjOqdyjW3bq+qUL2rqdS2f8gqRD360WvfPSo47ZOO1HsYf433W0uVmqOjo1y7dq2qT9xa9knbrH0a/HnUKxW6R9rjGmnNa/Zjn+169KX2mqxt/7xcv+elH2fBiAUAANBMYAEAADQTWAAAAM2a51gcW6N82dK85TXKj/bICzzLJ23WttmjvTk9jsHa8wTOaxtLr6deubw15WB7PG3+tHZqnpbbYy5Xr6fqnnadXL58OVevXp1dB/Z1M5ebrbX23JIec/fW7sch991rvtx5KZe7dLtbbb6FEQsAAKCZwAIAAGjWLRWqV9m72tJtNW3Mbddj+G6NYb5dfZxbb7vNNcq/ze176Xo9SuLVtlE7VFkz3NlrGLemjO8aZYhrr5lDpjPWpoDNvW/WOq7KzVKrx9PmL7qb6bXcbHrcZ1vaqVGbAnsrX4dGLAAAgGYCCwAAoJnAAgAAaNY8x+L69eu5dOlSt1KSc+ut/Zj4XfvuNRegZp7DPub63OOYzKlpf5/z22N+zdx6PXIje8yNaSlTumS7Na7luW16zHlZei3Ufl7UWnpce5XghRZLr0PXIOfNebomz0sJ4fPMiAUAANBMYAEAADRrToW6cuVKbty40aMvSfqUmaxZb5/taktc9ij3t7T9Wj2eJtzjScZz665x7Gr6cVq/auxzDmveKz2OXY/1ttetLZ3co/05tamNa6dhwb6WXpPS84AWRiwAAIBmAgsAAKCZwAIAAGjWrdxsrR455bU52HPt1M716FHutFZtTvmu173PXIOl+ea7tplb77R992iztv2l7Sydg9LjvG3rMbekpk/77HuuL7Vzmnatt++6S7bplYdeSsnly5dz9erVLu1x61rjHgNwGiMWAABAM4EFAADQrDkV6liPpwIndekwtSk7tWkbPZ4s3UPtU5prn3i8tP2l666d0rTP/nqUn+2dzja3r177m2t/zq5971N2tXcJ2F6fQT3amHvS+mnn+OjoKNeuXWvuE2w6y6fUA7cOIxYAAEAzgQUAANBMYAEAADRrnmNx5cqV3Lhxo1uZyV1t7LNsztK+zPV/jfkdS/u49hyR2vkXveek9Mj332ebHjnGS89Hj5K1+/RjqUP36yxLLK9t6ecHHMoa91OAbUYsAACAZs0jFve9732TJEdHR3f5/eXLl//o/7eXLbXZRq199r1rf3NtzPVxn2Oy9Hj1bmPb5nbb6y1dtnR/va6Zfc7Brm3mXtucmnNV2/7S7Q7xflvar9rrsKaNtV/33PW6z3a91+dkjuNd1d5PHUcgWf5ZUGqH5Z/3vOe9Q5KXVW0MwGke+rjHPe7lZ92Ji8a9CWBVs/emlhGLVyR5aJLXNbQBwN09IONnLPtzbwJYx6n3puoRCwAAgGMmbwMAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1gAAADNBBYAAEAzgQUAANBMYAEAADQTWAAAAM0EFgAAQDOBBQAA0ExgAQAANBNYAAAAzQQWAABAM4EFAADQTGABAAA0E1hUKKXcXkp56sr7eEop5UVr7oPTlVIeVkoZSimPOuu+AMxxb2KO+xmH0BxYlFKeNl2o2z/P6dHBXg7xgTvt50mllNeUUu5zwrLLpZTfL6X8vbX70aKU8mdKKT9ZSnljKeU3SylftMe29y6l/GIp5VtPWPb1pZRfL6U8oG+Pb06llPuUUv5VKeXVpZTXl1J+oJTyoFO2KaWUryylvLKUckcp5bmllEdsrfNlpZSfKqXcKKW8dkc7/6KU8nOllDed9EdEKeUxpZQfnvbzhlLKi0opn9LyeqEn96a77edC35tKKX++lPLjpZTfK6X8binl3x2/llLKO5VSnl5KeXkp5XXTen9yWnafUsrXlFJ+ZfrM+++llA9fuE/3sxWVUq6WUv739LfGK0spzyilPOSUbT57es/8/vR+fquZde893ZvuFkyVUh5fSvnp6Xr5nen++rCtdT5lul5uTP379lLK2za85FtCrxGL5yR58NbPX+3U9kXzjCT3S/LxJyz7K0nuleS7DtqjPZRS/liSH0/y0iTvk+QLkzyllPLZS7YfhuFNST4tyRNLKY/faPf9k3x+kicOw/C6Ffp9z95tngP/PMlHJ/nEJB+S5CFJfvCUbb4oyd9L8reSvF+SNyT5sa0/Ju6V5FlJ/s0pbX17kmfuWPaBSX4hySck+TNJviPJ00spf+mUNuGQ3JvudKHvTUkem+T7k3xAkk9K8jFJvnha9mcz3rP+UpJHZ3yd/35a9nZJ3jHJ30jyHklekOSHSin3O22H7mer+4mM5/KdM95LHp7xHM+5nPF9/U8WtP/1SV6x/ctSyp9I8sNJ/kuSRyV5fJIHZuP+Wkp5dJKnZ7yO/nTG+/D7Jvm2Bfu9tQ3D0PST5GlJnj2z/DFJ3pzkgzd+90VJfjvJg6Z/357km6ef60l+N8k/TlI2trl3kn+a5OUZ/1j6mSSP2drXo6e2biR5TZIfS/LWUx+HrZ+HTdu8e5IfTfL6JL+V8cP3gRtt3i/jxfX6JK9M8qRpH0+dec0/kOS5J/z+9iT/Yfr/r0vykqmvvza93nturPuUJC/a2vapW+09O8nT9jlGC87n307ye0nutfG7r03yy3u28+QkL0vyVknuk+TFSb5xWvYJSX4xyZuS/EaSJ21tOyT5uK3fvTbjh3iSPGxa5wlJriV54/GyrW2+J8kzt353z+n6+rTp338hyX+d2n91kv+Y5OEb6x/v61HTv5+Y5LVbbX5ckmHrdx+b5IVT335tOh6X9jh+VzK+b/7Kxu/eZerL++/YpkzX6BdstfPGJJ98wvp3ey0nrHOX6/CUdf/vJN++z3Xix89aP3FvOuk1X9h70wl9vprk3+1Y9g+S/MqOZe89HeeH7rEv97OG+9kex/ljkvzh5vV2yvt3SPJWO5Z/5HSe3m3zNU/L/kqStyS5x8bvPnpz30m+IMmvbrX5uUle1vt132w/q8+xGIbh9iRPTfKMUsqVUsp7Zfyg+sxhGH5rY9VPT3KUMSL8+xk/GD5zY/k3Z/ym4pMzfkP6rCTPOU7zmIa5npfkl6b1PijJjyS5bWrvBRkjzeNvrX5zGkL7L0l+PuM3Hn8hyYOSfN/Gfr8h47fFH5vkIzJezO99ysv+90keW0p5p+NfTMOyfz53fovyuoxv6neb+vdZGb8BaTF7jKZ+DKWUJ8608QFJ/p9hGN688bsfS/LOpZS33qMvX53kVUn+RZKvyvjG/tJSyvtkPL7/IeO3R09J8o9P6dMuX5vkm5K869THbd+d5KNLKfff+N3jM37j8UPTv++X5Bsznv/HZfxg+aFSSvV7o5TywRlv+N+U8fx+TsZz/WUb6zytlHL7TDPvk/Gm8dzjXwzD8MtJ/nfGc3SSP5Hk7be2uZ7xJr5rm56uZAxK4dxzbxpdoHvTHymlfESSD8v4Obu97B2n/n77CcvuneRrkvznYRhetkf/3c/a7mdL9vM2ST4lyU8Nw/CWxrYelPE99dczBsjbfi7jsfmMUsptpZQr07rP3dj3C5K8YynlL5bRgzIGJP+ppW+3hA4R5tMyfui+fuvnSzfWuVfGD8hnZozsv3Wrjdszfuhufgv0tUl+afr/Pz7t4yFb2z03yT+Z/v97kvzXmX7enrt/q/LlSX5s63cPzfih8cgk98/4LcQnbix/m4wX6lNn9nVbxm83nrLxu6/MOFR7jx3bfEGSn93491Oyx7dCS47R9O9fTvKXZ/r+40n+7dbvjiP+d93z2ni3JHdMx/DPTr/77iQ/vrXe1yf5xY1/L/2G5++fsv9LSX4nyV/f+N33ZPpmbsc2D5zafvetfT1q+vcTc8o3PNMx/5KtdT41ySs2/v01SZ4+04+/luRNJ/z+vyX5uh3bfODU1wdv/f77svVN167XcsI6d7kOZ9b7pOk8/+l9rhE/ftb6iXvTSfu6sPemjfU+fDqPTzhh2UOn1/IvT1h2KeMf7M9P8scqrif3szt/t9f97JTX9XUZR7GGjH/Mv+3C7R6TE0YsMo7c/2iSLz/pNW+s9yEZRwKPpuU/dUJbn5gx0H7LtM7VLBhNudV/LqWPn8iYQrPpj765HIbhzWWc2PkLGd/0J3378dPDdCYnL0jypFLKbRm/CbgtyUtKKZvb3DvjcF8y5sk9a89+v2eSDy2lvP6EZQ9Pct+MN56f2Xgtv1dK+Z9zjQ7D8AellO/MmJf5jzJe6J+e5DuGYfjDJCmlPCFjLvzDM94kLiX5/T37v2nJMcowDO/SsI+9DMPwS6WUH8j4Zv3Z6dfvmjG3cdPzk3xeKeW2YRj+YI9d/OzcwmEYjkop35fxW5BnTDm1H5vxW7MkyfSN2VdmnI/wwNw57+iPJ/kfe/Rl03smeXQp5cs2fndbkvuUUi4Pw3BjGIYvqWz73CmlfGjGORafNQzDL551f2CDe9OGm+Te9NSMgcNJ87++JGO61UmT0P9yxtGihw7DsPfrcT+rv5+VUr4lYzBy/Fo2R12+IeNo2TtlTLF6einlL2295/bxuUkekDHY2dWft884ovGdSb53Wv8rk3x/KeXDh2EYSinvlnGU5iszBqQPnvr6LUn+ZmXfbgm9Aos3DMPwK6es84HTf99m+nnDHu3fP8kfZEwP2X6jHn/w3rFHe5vt/kjunAC26ZVJ/lRFm8e+PeOH3GMzvrnfMeMfXymlfEDGbzqenPGCvZ7xw+FJM+39YcabwKbNCV5LjtESr8o45L7pQRvL9nU0/exjyPxrPbbkGvruJNdKKW+X8ZuuOzJO/Dr2Ixn/oPisjJO87pHxA/heO9o77Twk47l4ck6eaP3GBX1OxmN9r1LKWw3D8NqN3z8ou8/DqzbWeeXWNi9auN+9lFI+JOMx/PxhGO6WlgBnzL3p7i7qvenYQ5LsCqAekuQlO/4ofUiS3xmG4TUV+zzmfnZXS+9nX5Fxjs3dDMPwuxnnibyklPLiJL+Z5P0zBvA1Hpsx7e5NW4Hsz5ZSvnsYhk9P8neSXB+G4Y8qXpZSPnXa9/sl+emM75HnD8PwDdMqv1BKeUOSnyylfPkwDJv3WDb0CixmlVIenrHCzWdlnKD0naWUDzv+hmTyflubvX+S/zV9w/LzGSPktxuG4Sd37OYXMuYUPnnH8jdPbWx6YcaJV78xDMPdPixKKb+acQjs/TLmtmeaZ/DIjJOsdhqG4VdLKdcyVqIoGXP3Xjot/sAkLx2G4as39vVOc+1lHAJ98Mb6t2Wc3PcT06+WHKMlXpDkq0sp9xzuzDX88CT/s/ED+diLM05k3PTojDeD45vO9mt9RMY80r0Nw/BTpZTfzHjdfWSSZx2/rjKWjXvnjN+0/+T0uw86pcnfSfKAUsr9hmE4vhE8amudFyZ55wV/0Mz5uYzX3uMyTrhMKeWdM37ztOsD99czBhePyxRIlLHK1/vl9ApQeyulPCbj5MAvHobhbuUY4bxzb7pQ96ZjH5rxD8CTfEHuHrwc+96M81Z6cj9b1u/fzlgU4TTHIyz3rt1XxtGqL9/490MyBslPyJ0jfJczBlWbjs/XPTbW2X7vHa+zHYyxqTWXKmMe649mnDS6+fPAafltGf8Q+v7p3w/OGJ1+4UYbt2fMY/vGjG+Mv5rxm4zP2VjnuzL+4fTxGSepvm/GiPKjpuWPzJj7+K8zTg57l4xD4Mf9+NaM+ekPy51DhA/JeLE/K8mfyzj0+/iM397cNm33bzJWenhsxg/LH576+tQFx+ZTM36jcEc28kEzVj54S8Zvgh6e8Y3w6mzkOubueayfk/EbjY+aXtu3Zvw26WlLj9G0zmlzLK5k/OP06RlLrD1h2u9nN1wfz97493tnfHP+X9M5+/SMecFP3FjnezPmNb9Xxkloz8t4833itPxhOSFncqYPX5Uxf/otST5o4/f3mK7FZ2T8BvCx0zXyRzmx2/vK+I3m6zMOkT4841yIl+euOamPn/b15OkYvut0rr9qY51Tc1Kna++lGW+k75MxB/Sntta5y/nM+A3na6Zr7D0y5jr/WpL7bKzzxzPePL4i47X8qOnn/hvr/Knpd9+S8dvB43XuNS3/0Om6+Ce56/v+bVo/U/z46fET96a5Y3Ph7k1L1st43/qaHcv+bpLndbimnr3xb/ezYdn97ITX8X7TOXlUxjSox2ZMI/uVJPee1nmH6Xy/78Z2bz9t85nTa/ng6d8n3ntOOr7Tvv4w4z3wEdN5fE7G99N9p3WeOL3uv53kT2YMGP/fJD+z5ufWzfDT3sDJ5fKGTOVJpxP3imxMyMn44fKmJO85/fv2JP8q4wfl9Yw5sF+du06Yu2eSf5Txw+nNU5s/mOQ9Ntb5kOnCfGPGP66ek2kyTsY3/QsyvumH3FnS7xFTO6+Zlr044zdYZVp+/4xv1Ddk/IP7C3NKSb+N/tw3d5Z9u/fWsq/P+CHwuowVJT4v8x/e98x4Y3p1xglH/zB3L+m35BgNOaGU3Vbf/kySn5yO48syfiO9ufwxm8dwwfXx7K3fHZfne3PGP5y/YGv58TcMr89Y9vAjc/Jkt0ctvEbfdVr/NzavqWnZh2X80H9jkv8+XUM7P4in331ckv81XS8/kvHbzmGr3cdnvBZvZLymfybjN0mbx+X2U/p9n4zvi9+brr8fTPL2W+vc5Xxm/CblKzNeq2/MOPHukQvfs4/ZWOf2Hes87JQ2Zl+THz+H+pm5Rt2bLui96bT1ptf/tB3LnpJxBGj794+J+9nq97MTXsd7ZBxBevXU31/P+D57h411jvv7mK3zeNL7etc1ceLxzRgcvXA6L7+dMTB/l611Pnc6tzema/a7Nvvn5+Sf4w+oMzWVKXvRMAyfd8ZdYYFSymck+dIk7zY0loUDOK/cm25+7mfQ1+rPseCm9Bczlmz0IQzAReZ+Bh0dZPI2N5dhGD7xrPsAAK3cz6Cvc5EKBQAAXGxSoQAAgGYCCwAAoJnAAgAAaCawAAAAmgksAACAZgILAACgmcACAABoJrAAAACaCSwAAIBm/z8FPTjTkqCTLwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAJMCAYAAAAYBLcfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABC/UlEQVR4nO3de9RtV13f/883CeSEWwCJXMQfYVDKxQL5wfEcRMWUKNj6UyAGAUWkFR0IUrFShZ/9IVhHTUuHlJagtigBq+ESRDFWAg2GcD9syBUCSBVaEMUKyEXSSjJ/f6y5k52duef6zsvez/PM836N8Yw8Z+215pzrstfzXXN+14yFEAQAADCaE/a6AQAAANtAkAMAAIZEkAMAAIZEkAMAAIZEkAMAAIZEkAMAAIZEkAMAAIZEkAMAAIZEkAMAAIZ0UsnKl112WTh06JAWi4Vr/cOHD9/4u3cbALt3t7vdTWeffbbtdTu2aXn/AjCW6667To985COT96+iIOfQoUM6cuSIjh496lp/9X8Z4d0GwO6dd955e92ErVvevwCM5dixYxs/KxquWiwWMvM/7JnZjT8AAAC7RE4OAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAYEkEOAAAY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\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -255,7 +257,7 @@ " # handle the east and west neighbours\n", " for dj in [1,-1]:\n", " if 0 <= (j + dj) < M:\n", - " E -= state[i,j] * state[i+di, j]\n", + " E -= state[i,j] * state[i, j+dj]\n", " \n", " return E / (N*M)\n", " \n", @@ -278,7 +280,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 64, "id": "686782b5-aa37-4084-9786-538fdc89fef1", "metadata": {}, "outputs": [ @@ -286,14 +288,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "mean = -0.0053479999999999995, standard error = 0.0037939558458158157\n" + "mean = -0.00036800000000000043, standard error = 0.0026727883866853363\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -303,9 +305,11 @@ } ], "source": [ - "energies = [energy(np.random.choice([-1, 1], size = (100,100))) for _ in range(100)]\n", + "L = 100 # How large the system should be\n", + "N = 100 # How many random samples to use\n", + "energies = [energy(np.random.choice([-1, 1], size = (L,L))) for _ in range(N)]\n", "plt.hist(energies)\n", - "print(f\"mean = {np.mean(energies)}, standard error = {np.std(energies) / np.sqrt(100)}\")" + "print(f\"mean = {np.mean(energies)}, standard error = {np.std(energies) / np.sqrt(N)}\")" ] }, { @@ -313,7 +317,7 @@ "id": "8da38c5b-f166-4530-b046-3600b4d84c5d", "metadata": {}, "source": [ - "If you run this a few times you'll see the mean is usually within two standard errors of 0, which gives us some confidence." + "If you run this a few times you'll see the mean is usually within a few standard errors of 0, which gives us some confidence. In the testing section we will discuss how we might go about doing automated tests of random variables like this. " ] }, { @@ -321,7 +325,256 @@ "id": "3bd3831b-f8de-4a8e-aaf6-7aa158cf9d82", "metadata": {}, "source": [ - "## Making it a little faster" + "### Making it a little faster\n", + "\n", + "This project is not intended to focus on optimising for performance but it is worth putting a little effort into making this function faster so that we can run experiments more quickly later.\n", + "\n", + "The main thing that slows us down here is that we've written a 'tight loop' in pure python, the energy function is just a loop over the fundamental operation:\n", + "```python\n", + "E -= state[i,j] * state[i+di, j]\n", + "```\n", + "which in theoy only requires a few memory load operations, a multiply, an add and a store back to memory (give or take). However because Python is such a dynamic language, it will have to do extra things like check the type and methods of `state` and `E`, invoke their array access methods `object.__get__`, etc etc. We call this extra work overhead.\n", + "\n", + "In most cases the ratio of overhead to actual computation is not too bad, but here because the fundamental computation is so simple it's likely the overhead accounts for much more of the overal time.\n", + "\n", + "In scientific python like this there are usually two main options for reducing the overhead:\n", + "\n", + "#### Using Arrays\n", + "One way is we work with arrays of numbers and operations defined over those arrays such as `sum`, `product` etc. `Numpy` is the canonical example of this in Python but many machine learning libraries are essentually doing a similar thing. We rely on the library to implement the operations efficiently and try to chain those operations together to achieve what we want. This imposes some limitations on the way we can write our code.\n", + "\n", + "#### Using Compilation\n", + "The alternative is that we convert our Python code into a more efficient form that incurs less overhead. This requires a compilation or transpilation step and imposes a different set of constraints on the code.\n", + "\n", + "It's a little tricky to decide which of the two approaches will work best for a given problem. My advice would be to have some familiarity with both but ultimatly to use what makes your development experience the best, since you'll likely spend more time writing the code than you will waiting for it to run!" + ] + }, + { + "cell_type": "markdown", + "id": "6b2ed23c-32f2-40af-bf45-e60004c275a2", + "metadata": {}, + "source": [ + "## Exercise 2: Write a faster version of `energy(state)`\n", + "\n", + "You can use `numpy`, `numba`, `cython`, or anything else, by what factor can you beat the naive approach?. Numba is probably the easiest here." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "40386cda-cc14-4fdd-8f9f-71840d1ebb40", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Naive baseline implementation\n", + "92.5 ms ± 2.62 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", + "\n", + "Your version\n", + "87.6 ms ± 6.35 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", + "Your speedup: 1x !\n" + ] + } + ], + "source": [ + "def test_energy_function(energy_function):\n", + " assert np.all(energy_function(state) == energy(state) for state in states)\n", + "\n", + "def time_energy_function(energy_function):\n", + " return [energy_function(state) for state in states]\n", + "\n", + "def your_faster_energy_function(state):\n", + " return energy(state) # <-- replace this with your implementation and compare how fast it runs!\n", + "\n", + "print(\"Naive baseline implementation\")\n", + "test_energy_function(energy) #this should always pass because it's just comparing to itself!\n", + "naice = %timeit -o time_energy_function(energy)\n", + "\n", + "print(\"\\nYour version\")\n", + "test_energy_function(your_faster_energy_function)\n", + "yours = %timeit -o time_energy_function(your_faster_energy_function)\n", + "print(f\"Your speedup: {naive.best/yours.best :.0f}x !\")" + ] + }, + { + "cell_type": "markdown", + "id": "a27bb821-c33f-4966-8676-4295cfd695ab", + "metadata": {}, + "source": [ + "## Solution 2" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "26a6252d-ca67-49e0-b04e-7f001bae97ab", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-3.9572, -3.9592, -0.0168, -3.1144]\n", + "[-3.9572, -3.9592, -0.0168, -3.1144]\n", + "[-3.9572, -3.9592, -0.0168, -3.1144]\n", + "[-3.9572, -3.9592, -0.0168, -3.1144]\n" + ] + }, + { + "data": { + "text/plain": [ + "[True, True, True, True]" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "\n", + "def numpy_energy(state):\n", + " E = - np.sum(state[:-1, :] * state[1:, :]) - np.sum(state[:, :-1] * state[:, 1:]) \n", + " return 2*E / np.product(state.shape)\n", + "test_energy_function(numpy_energy)\n", + "\n", + "states[0][0,5] = -1\n", + "states[0][0,0] = -1\n", + "states[1][-1,-1] = 1\n", + "print([energy(state) for state in states])\n", + "print([energy2(state) for state in states])\n", + "print([numba_energy(state) for state in states])\n", + "print([numpy_energy(state) for state in states])\n", + "[numpy_energy(state) == energy(state) for state in states]" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "c96720d4-2c0b-4fa5-b9ce-4fc7be533a62", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Naive baseline implementation\n", + "80.7 ms ± 974 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", + "\n", + "Numba version\n", + "195 µs ± 4.92 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", + "Numba Speedup: 427x !\n", + "\n", + "Numpy version\n", + "193 µs ± 2.96 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", + "Numpy Speedup: 421x !\n" + ] + } + ], + "source": [ + "def test_energy_function(energy_function):\n", + " return [energy_function(state) for state in states]\n", + "\n", + "from numba import jit\n", + "\n", + "@jit(nopython=True)\n", + "def numba_energy(state):\n", + " E = 0\n", + " N, M = state.shape\n", + " for i in range(N):\n", + " for j in range(M):\n", + " # handle the north and south neighbours\n", + " for di in [1, -1]:\n", + " if 0 <= (i + di) < N:\n", + " E -= state[i,j] * state[i+di, j]\n", + " \n", + " # handle the east and west neighbours\n", + " for dj in [1,-1]:\n", + " if 0 <= (j + dj) < M:\n", + " E -= state[i,j] * state[i, j+dj]\n", + " \n", + " return E / (N*M)\n", + "\n", + "def numpy_energy(state):\n", + " E = - np.sum(state[:-1, :] * state[1:, :]) - np.sum(state[:, :-1] * state[:, 1:]) \n", + " return 2*E / np.product(state.shape)\n", + " \n", + "\n", + "print(\"Naive baseline implementation\")\n", + "naive = %timeit -o time_energy_function(energy)\n", + "\n", + "print(\"\\nNumba version\")\n", + "test_energy_function(numba_energy)\n", + "numba = %timeit -n 100 -o time_energy_function(numba_energy)\n", + "print(f\"Numba Speedup: {naive.best/numba.best :.0f}x !\")\n", + "\n", + "print(\"\\nNumpy version\")\n", + "test_energy_function(numpy_energy)\n", + "numpy = %timeit -n 100 -o time_energy_function(numpy_energy)\n", + "print(f\"Numpy Speedup: {naive.best/numpy.best :.0f}x !\")" + ] + }, + { + "cell_type": "markdown", + "id": "7d80c912-3773-4c53-a4e9-3f7ee66e2e0f", + "metadata": {}, + "source": [ + "While writing the above faster versions I realised two things, first there was a bug in my code! I had written \n", + "```python\n", + "for dj in [1,-1]:\n", + " if 0 <= (j + dj) < M:\n", + " E -= state[i,j] * state[i+di, j]\n", + "```\n", + "where I of course meant to have:\n", + "```python\n", + "for dj in [1,-1]:\n", + " if 0 <= (j + dj) < M:\n", + " E -= state[i,j] * state[i, j+dj]\n", + "```\n", + "I found this while writing the numpy version because the two functions were not giving the same results, I didn't pick it up from writing the numba code because as you can see I just copied the implementation over. So the first lesson is that simple test cases don't always catch even relatively obvious bugs. \n", + "\n", + "The second thing was that even my naive function was doing more work than it needed to! Because if the symmetry of how two neighbours talks to each other, we can rewrite the code as:" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "755ec34c-4975-467f-a559-f585f9d6a42f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Improved Naive version\n", + "35.9 ms ± 1.27 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", + "Speedup: 2x !\n" + ] + } + ], + "source": [ + "def energy2(state):\n", + " E = 0\n", + " N, M = state.shape\n", + " for i in range(N):\n", + " for j in range(M):\n", + " # handle the north and south neighbours\n", + " if 0 <= (i + 1) < N:\n", + " E -= state[i,j] * state[i+1, j]\n", + " \n", + " # handle the east and west neighbours\n", + " if 0 <= (j + 1) < M:\n", + " E -= state[i,j] * state[i, j+1]\n", + " \n", + " return 2*E / (N*M)\n", + "\n", + "print(\"\\nImproved Naive version\")\n", + "energy2(states[0]) #run the function once to let numba compile it before timing it\n", + "e2 = %timeit -o test_energy_function(energy2)\n", + "print(f\"Speedup: {naive.best/e2.best :.0f}x !\")" ] }, { @@ -329,7 +582,79 @@ "id": "81a81a81-fae9-4767-9534-e32f49058ae8", "metadata": {}, "source": [ - "## Doing Monte Carlo!" + "## Doing Monte Carlo!\n", + "\n", + "Now that we can evaluate the energy of a state there isn't that much more work to do MCMC on it.\n", + "\n", + "... very short explanation of the MCMC algorithm ...\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 191, + "id": "2586a542-35f2-419e-9aa2-2bb9e9ab74b9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy.random import default_rng\n", + "rng = default_rng(42)\n", + "\n", + "def mcmc(initial_state, steps, T, energy = numba_energy):\n", + " N, M = initial_state.shape\n", + " assert N == M\n", + " \n", + " current_state = initial_state.copy()\n", + " E = N**2 * energy(state)\n", + " for i in range(steps):\n", + " i, j = rng.integers(N, size = 2)\n", + " \n", + " new_state = current_state.copy()\n", + " new_state[i,j] *= -1\n", + " new_E = N**2 * energy(new_state)\n", + " \n", + " if (new_E < E) or np.exp(-(new_E - E) / T) > rng.uniform():\n", + " current_state = new_state\n", + " E = new_E\n", + " \n", + " return current_state \n", + "\n", + "Ts = [4, 5, 50]\n", + "\n", + "ncols = 1 + len(Ts)\n", + "f, axes = plt.subplots(ncols = ncols, figsize = (5*ncols, 5))\n", + "\n", + "show_state(initial_state, ax = axes[0])\n", + "axes[0].set(title = \"Initial state\")\n", + "\n", + "for T, ax in zip(Ts, axes[1:]):\n", + " # initial_state = rng.choice([1,-1], size = (50,50))\n", + " initial_state = np.ones(shape = (50,50))\n", + "\n", + " final_state = mcmc(initial_state, steps = 100_000, T = T) \n", + " show_state(final_state, ax = ax)\n", + " ax.set(title = f\"T = {T}\")" + ] + }, + { + "cell_type": "markdown", + "id": "5d1874d4-4585-49ed-bc6f-b11c22231669", + "metadata": {}, + "source": [ + "These images give a flavour of why physicists find this model useful, it gives window into how thermal noise and spontaneous order interact. At low temperatures the energy cost of being different from your neighbours is the most important thing, while at high temperatures, it doesn't matter and you really just do your own thing.\n", + "\n", + "There's a special point somewhere in the middle called the critical point $T_c$ where all sorts of cool things happen, but my favourite is that for large system sizes you get a kind of fractal behaviour which I will demonstrate more once we've sped this code up and can simulate larger systems in a reasonable time." ] }, { @@ -339,15 +664,34 @@ "source": [ "## Conclusion\n", "\n", - "In the next notebook we will start making this into a python package, which will bring a few benefits, it will set up to perform automated tests, will mean our code is not spread all about a notebook and will allow us to use the same code in mulitple places. " + "The code we have so far is really just a sketch of a solution. So this is a good time to step back and think about what are aims are and how this software will fulfil them. I see three broad areas on which it needs improvement:\n", + "\n", + "**Functionality**\n", + "Right now we can't really do much except print nice pictures of states, but (within the fiction of this project) we really want to be able to do science! So we need to think about what measurements and observations we might want to make and how that might affect the structure of our code.\n", + "\n", + "**Testing**\n", + "I've already missed at least one devastating bug in this code, and there are almost certainly more! Before we start adding too much new code we should think about how to increase our confidence that the individual components are working correctly. It's very easy to build a huge project out of hundreds of functions, realise there's a bug and then struggle to find the source of that bug. If we test our components individually and thoroughly, we can avoid some of that pain.\n", + "\n", + "**Performance**\n", + "Performance only matters in so far as it limits what we can do. And there is a real danger that trying to optimise for performance too early or in the wrong places will just lead to complexity that makes the code harder to read, harder to write and more likely to contain bugs. However I do want to show you the fractal states at the critical point, and I can't currently generate those images in a reasonable time, so some optimisation will happen!\n", + "\n", + "So which of these should happen first? In the next chapter we will first make a plan for going forward. We'll then start to move our code to a python package, to document it a little and to add some testing of the components we have so far. We'll then move on to adding new functionality and making performance improvements. " ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b1880fc9-6670-429f-be34-2511feb0e771", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:jupyter3.9] *", + "display_name": "Python [conda env:recode]", "language": "python", - "name": "conda-env-jupyter3.9-py" + "name": "conda-env-recode-py" }, "language_info": { "codemirror_mode": { @@ -359,7 +703,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.12" } }, "nbformat": 4,