{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial demonstrates the use of a [3D morphable model](https://gravis.dmi.unibas.ch/publications/Sigg99/morphmod2.pdf) to fit a face to a target image. 3D reconstruction tasks are ill-posed, which means that given a single observation image, there are infinitely many possible 3D scenes that will render exactly like the observation. To resolve this people have come up with different [prior](https://en.wikipedia.org/wiki/Prior_probability) for tie-breaking between different 3D reconstructions. 3D morphable model, or 3DMM, is one of them, invented by Blanz and Vetter. The idea is to focus on one class of objects, e.g., human face. They then recruit many people (say, 200) and scan their face to construct a class of 3D models that is supposed to span the space of faces. We can then optimize for the parameters of these morphable models, so that we always end up with a plausible face." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial doesn't run on Google colab directly, since we are going to use the [Basel face model (2017 version)](http://gravis.dmi.unibas.ch/PMM/data/overview/) and it requires you to agree with their license term before using their data. Before running this tutorial, go download the model and make sure `model2017-1_bfm_nomouth.h5` is in the same directory as this file (and make sure you don't violate their license terms)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import torch\n", "import pyredner\n", "import h5py" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Basel face model, like the original Blanz and Vetter model, uses a *linear basis* to represent different face geometries. They recruited 100 males and 100 females Caucasians with different ages, laser scanned their faces to produce a face triangle mesh with ~50000 triangle vertices for each person. They then perform a [principle component analysis](https://en.wikipedia.org/wiki/Principal_component_analysis) on the positions and colors on these vertices to span the face space. To sample a face in this domain, we use two vectors with size 199, one for geometry and one for color, where each coordinate correspond to the coefficient for the basis axe. Our goal is to recover the parameters for these two vectors, plus the camera pose and lighting parameters, given a single target image." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Load the Basel face model\n", "with h5py.File(r'model2017-1_bfm_nomouth.h5', 'r') as hf:\n", " shape_mean = torch.tensor(hf['shape/model/mean'], device = pyredner.get_device())\n", " shape_basis = torch.tensor(hf['shape/model/pcaBasis'], device = pyredner.get_device())\n", " triangle_list = torch.tensor(hf['shape/representer/cells'], device = pyredner.get_device())\n", " \n", " color_mean = torch.tensor(hf['color/model/mean'], device = pyredner.get_device())\n", " color_basis = torch.tensor(hf['color/model/pcaBasis'], device = pyredner.get_device())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Following is our model. It takes the camera parameters, PCA coefficients, and lighting parameters, and produce an image." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "indices = triangle_list.permute(1, 0).contiguous()\n", "def model(cam_pos, cam_look_at, shape_coeffs, color_coeffs, ambient_color, dir_light_intensity):\n", " vertices = (shape_mean + shape_basis @ shape_coeffs).view(-1, 3)\n", " normals = pyredner.compute_vertex_normal(vertices, indices)\n", " colors = (color_mean + color_basis @ color_coeffs).view(-1, 3)\n", " m = pyredner.Material(use_vertex_color = True)\n", " obj = pyredner.Object(vertices = vertices, indices = indices, normals = normals, material = m, colors = colors)\n", " cam = pyredner.Camera(position = cam_pos,\n", " look_at = cam_look_at, # Center of the vertices\n", " up = torch.tensor([0.0, 1.0, 0.0]),\n", " fov = torch.tensor([45.0]),\n", " resolution = (256, 256))\n", " scene = pyredner.Scene(camera = cam, objects = [obj])\n", " ambient_light = pyredner.AmbientLight(ambient_color)\n", " dir_light = pyredner.DirectionalLight(torch.tensor([0.0, 0.0, -1.0]), dir_light_intensity)\n", " img = pyredner.render_deferred(scene = scene, lights = [ambient_light, dir_light])\n", " return img" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's try to render an \"average\" face first and see how it looks like." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scene construction, time: 0.07585 s\n", "Forward pass, time: 0.02411 s\n" ] } ], "source": [ "cam_pos = torch.tensor([-0.2697, -5.7891, 373.9277])\n", "cam_look_at = torch.tensor([-0.2697, -5.7891, 54.7918])\n", "img = model(cam_pos, cam_look_at, torch.zeros(199, device = pyredner.get_device()),\n", " torch.zeros(199, device = pyredner.get_device()), torch.ones(3), torch.zeros(3))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQYAAAD8CAYAAACVSwr3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9ebwlWVUm+q29I865N4eqAqGKhKoSbQEFXzf644lPWlobB+TXDSgOqMhsqaCi8lqcB/q9xkYG6RbEYnZgUlSQhxM4gIgik8ogMlNZM1DUlJn3ROy93h97rb3Xjog7ZOa9VZl5Y1WdPHEidow31rfX+tbaaxMzY5ZZZpnFiru9L2CWWWY582QGhllmmWUkMzDMMsssI5mBYZZZZhnJDAyzzDLLSGZgmGWWWUayZ8BARA8mog8T0UeJ6Kf26jyzzDLL7gvtRR4DEXkA/wbgGwEcBfCPAL6bmT+46yebZZZZdl32ymL4KgAfZeaPM/MKwKsBPGyPzjXLLLPssjR7dNy7AbjC/D4K4P6bNSaiOf1ylln2Xj7DzHfeScO9AgaaWFcpPxFdBuCyPTr/LLPMMpZP7bThXgHDUQCXmN8XA7jKNmDmywFcDswWwyyznGmyVxzDPwK4BxF9EREtADwSwBv26FyzzDLLLsueWAzM3BPRDwP4MwAewEuZ+QN7ca5ZZpll92VPwpUnfRGzKzHLLLeFvJuZ77eThnPm4yyzzDKSGRhmmWWWkczAMMsss4xkBoZZZpllJDMwzDLLLCOZgWGWWWYZyQwMs8wyy0j2KiV6ljNQfvEnfgj3vfe98E8f/DB+6Tm/sWm7X3rqk/FLz34+fumpTwYA3Pc+98rbvuTulwIAPvrJT6cVOQOF8fAnPOWkrucXfuwyPP3XLj+pfWa5bWROcDpH5Q9e9Fx8yd0vwaV3O5JWEIFAZXib/rZCU2PfzGZUODBcSMusa3SB5UvWMiO9c7lhahEjPn3VNfjYp47i23/wv53Uvc6yY9lxgtMMDGe5/PxTvh+P+JYH4WOfOopH/MD/jRve/7ak9AQAJAAAUXoyui8LsqJAggEHXZz863C9xFMAwbaBNKmBgfWbY2nDjL/++3fhnz74ETAY//5LvwT//KGP4P/53y85qWczy0hmYDjX5eef8v34tgf/52wREJF8XFF2KspPAgwqZK2DTS2FGhnUYhjhxeAdKu/UECC4bGNdW4Ch3sYAMz515TW4+MhFADOuuOoa3O+/ft82T2aWLWQGhnNZfv5Hn4inPOF7BAQAgii+AgM2AQVpW0kGhaLuuY1tqohQ/aXY/IudAURW+rJPXm/cDV2fXQ/Zn5nxN3//bnzXk3965w9sFpUZGM4l+dkfeQIe/s1fh09ccRUIhH9394vxhXe7a1Z6dRUsQMCsSx5FbTGA8j8TYHESF8f5H/NzCAhmWd0I1MBRwED25wIKPHBDmBl//Y534Z8+9BE84/kvO4mL3fcyA8O5JFe/+8+zq+DIgQgg50FAsRSAymKoyUYyFkT+R37SFkCw2Qae+MkTqwZcgqxj296AgVoOlmuIHCtwYdk/xoDIERwjnv+K38MzXvDyzW5iliIzMJzt8o4/eikuOXIRnPfwvgGRA7liFdCEtZAsgwIMgFH8qSiEaSc/oD5D1XLoUoyE69UVyWh2Mu5EbpqBgEf72QhGph9kmWMEc0RkBseIGCP6vsNv/M7r8MwX/vbURc4yA8PZK29/3YvgnMcld70I5ByccwUYlC8gwOUoQ000bmYxZMuhOtvQWhhGKOyPAcGwJdcg/7AFjIH7ULkRADiOwprWQpCW2XqIAgyswMARoesQOeKt//BevP/DH8OvXv67mKWSuR7D2ShP+6FH4+IjF1WgUADBug0DUCjJCYPvWnZCHWyfyUD1YsVVbH8Z47AogQbf9b+D+zRR1spyIpfcK3L42q/6CvzA9zx8u1udZQuZgeEMkZ/8gUfhSd/37SCXgCCDgiPVAsMlbHc0Pin+cFOpDjJwCzZpPLRItr+O+nglSLJ59ERzNIoFJfyLS89Nv//m1S/Y9uyzTMsMDGeI/OCjvs0AQukpiVyJNgBjMnFShtt4c302++wKmMjppo6/zemnVw/IVW1coiwDziVbDw4XH7kI//aXrznFm9jfMgPDGSCvePYvpBdaQCF/jyIL8j08wHDFpjo41Ng9onZ2ggE7QKGpJkOuNLsUUMvBwUn0xjkH5z2e+sRH7vzaZwEwk4+3q/zVq56PS+56EXzTwPsGTdMMeIXS+1WgQDU80ERPWqU+a/tJjbQEJNnFcbssOwhX2vfKkpAcN9k+jkrYdjw4Tg5jmjBnDEHIyhSl0GjFqttA6Htc/qrX47kvfe3wxvaTzOTjmS4/8cRH4uK73Bnee8lNMMlJEl7Myyctp4azW59qC45hADg7O/vmZ9sZSapRGItrhotRy8s5OOfhnMcTv+u/7ujKZpmB4XaRH3/Cd+EHvufhKS+BqHxTjjdY/n9LqSyH7RpL0tDgACch26n8OK6waZstKZLNCIep35ZrsNEKJXGVkHTw3uOf3/Ry/OhjHrHNfcwyA8PtIN//yIfKy+oH+QkTFsMwnLdTB31HssVxdkBWjsKXdoHqtttd8U6308Q6ANnVGpORLgODcx6Nb/DgB246v/IsIjMw3A6iPIIT7kB7tvwfFUUaDnGYjDgMxHIOExs337ZjOcl9dy3cMXStrPVhwpeFlZTFYjU473DxkQtnq2EbmYHhNpY/edmzEq/gih/snC/koH2xJ2WYozCh6DxaGLc5aRlYCKdw3E2DJ2b057Yy9IQmbr9yKWAIXHErvPd47Lc/ZEfXvF9lBobbSJ70qG/F85/+E7j4yIVwzidw8B7e+fQSO1eTkEDp/TaRzczqam2OYNTRh7JU/hsJj9tvLlPRDetqTNwT1WfWkKP2/pudOeNnXiF3aCyGbHk5V3EMvknRn0Xb4kmPmrMjN5O55uNtJN/4H++HS+92l/rlNaYugEq3Rol/k0cd97LDsOQYC8z6rfhB3q6Rldy47AsCkY5zkJVEADOIqHCgxADnncru9v7YbKsbjPZQILQ1H5L14EDEcMQ5v+FRD/smdF2PF73mjTu4x/0ls8VwG8mRC++Uei3nc3ZjrrhkXYdTsvbrXjmvHVkcJtqxHTJsYq1MOxRUbx2a9aM2EzzIhE9QQHJr22jq+NZqSCCFkkXpUhJU03h86RdfOjreLDMw3CbypEd9K7xz8OLnAkJAGvJsZHoPiLUiE051abiJwg9Ueas2W8QRd45ZY6BQA99uH1lKQ3dj4HaUwxdlH56S6iZmZTl2yopM7tz9v+LeO76r/SQzMOyxXPbdD8X3PPQb4L03mYxGIagsTKlq9WPoasi+VZYjir9dToLilw8tgSpEOr7+aQth+20jrd3EItocECeAbvSMaLR9+hzyDHR/AshR4hycwyuf+/NTd7CvZQaGPZTHf8dD8N0PfRC8d/CNR9suUtpzTnOmrJj1+12/6DZGX1bIfoPlUtrNrJ8ys6uEqmx4m/+mlNZK3aPTxGfKqsnmPQ2uz24bXvswDFlZNgp8+gzrfSyPQ6BM8joitE2DxWKBS45ciJc982k7+pvuF5mBYQ/lgff/D3Dk0DRtKqyS3+taVSd73CzDFlPLm0QVqtZTS5uvGa8bqP3ITB/fydgNskerFdvsUCt91W54bhv92OyazbfdT7iGFDp2uOuFd8L3PuwbJq91P8oMDHsoF93pjiWePtH70fDFx9AtGIpRisFLz8N2w2Nk3aDBobeCpa0hayf7bHmEnRx+BC7Ttokhaur11S+zzlgU3if+59u+6Wt3cEH7Q04rXElEnwRwM4AAoGfm+xHRHQG8BsDdAXwSwHcy8w2nd5lnp3gqfqzTpCbduKlynuxyLcymw92sPY9X7a7owdn83sHQqomyEdsN/p0GRJ5Yl8Kn6j6xuC2a49BKfsMsSXbDYvh6Zr6vGc75UwDewsz3APAW+b0vxYmZyuBUI0DDlNikI7Q/NlHcYd6jTXIcj3+sJ3Wxa067FAObz6YNtt590wGbPHWf1jIauwwTI7/N5qFLIaAg341vJJQ8G9Aqe/EkHgbgFbL8CgD7Nr3Mu/LiMXNxJwBsyy5YRbcZiFavecqNqPcdLudKzeUgO7iT7VBguH0IPjxqDVMUVgd9boETIjWSVu0n96cJ88mOQxFwcCbPYRYApw8MDODPiejdRHSZrLuIma8GAPm+cGpHIrqMiN5FRO86zWs4I+Vnn/S9iXgUqyGZqTRtKhgCT+ZaKcpilzG9DAzbpwVbxKRMAcelwEnewXwwWJ5UU/OpLsBeXJlJyh6f06QQZTKZLT92V06l4vO1jy89tal/axbmOA8iiVoKi3aB5aLFM/7bE0/nz37OyOk6VQ9g5quI6EIAf0FE/7rTHZn5cgCXA8C5WMHpy+7xhQCSuntvKz27TZNvGGZ6OBEGTNZwMqiZSNal9jqBC1FKBSY1xWUfBR9CKcWuusFM6QR6FTw4edky4cJv45ZMVWIaWAq2XanWxAOLabh+etIaro5VrrE0rcnYTF/mv00CillOExiY+Sr5vo6I/hDAVwG4loiOMPPVRHQEwHW7cJ1nlTz8mx6QAcG+aJXSi75WvwH1DoyZbxUc6e0tAw3Kjpusp3KUrGi2KZkNLCvGBvU2ADBsOVnWzVoS6XelvNrDwwKBARJZzntXwGDBopx/ON8NYB+lRIhkxCW55Fbc6YLztr/JfSCnDI9EdJCIDusygG8C8H4AbwDwGGn2GACvP92LPNvkkiMX5pfSew8AI0tgKtyY33VWc7+Y/PqJkYtZLROt2OU0O1PM07dpDcT6ODGb+Ha2p3Qh9fmGSj71mW5v550cLo/PH2O5dr2/qPcXI0II0kafQVpf2gxdEHO+wqqAjRuhFhIRwUuaNDPjoQ/6mtN/Cc5yOR2L4SIAfyiETQPglcz8p0T0jwBeS0RPAPBpAN9x+pd5dsmRO98RizYx3Zl0dON+WMlETm+nuACpfzfGcTL3NRJvRiwSAYioun3KuRAmE5AA4jKUeWitVNYE6m0MqsBheBc8sZTdAO3h9b5UaZV7QOn5Y4xmnwKIyMsw6o1yzMlQKE8uVjcRi8mU8xlcGlj1Fff5ErzhLX83seP+kVMGBmb+OID/MLH+swAedDoXdbaLdvpKPKYBUxM5OEDhFbiCgspU5urltrY/g8jJMWSrKL/TdGoZSZi5DWlDTGAS+KAEUIm/UMrB+DRDd2N4OYMNGQxMReis7BYAzPoQQmmrVoQAS+JREngkHiUdW6M8bO6b8jNNfI6xxcxiCVvqBs1pIBDOP3xweJf7TuaMjj2QCw4fhBeftfE+K2lxG6hWJAZAYjrnEuhppucYYuphY0ztZD3HmI/JMZQZrAQEUhFUASYiNG2b1nuXQSL1kl5ojOFYCy58w1bcQixgVu4nLccYoS5FjEkrg9xfcQvKhLTpu8/7MoDQ9+l4ROme8/iRZEUREZxPHnGa47NsT7yBQ9N466fpA89/ER2C3TQebeN3/oc+h2UGhj2QRSuPNTP/ZZvVsfyuEoMjo+8DYuhFoYC+68SHLnMmxBgq/5zISe+ZesdU70HBIYXifNMgckzjAqKxYjTZigigmm4iKlaM3szYjRib8CXoMAg9mvsIMSLGkEBC+IPVxkYCgtCDIyPEkJ6JWBJDIacjVTXi49A0CTiyhSbT1QHIyUz278GDy/fOAcwGyPevzMCwB9KLEjc+PV5XJTah+ODSg3EEQgwIfY9utcqEGwvJFvq+EG3REnd6vJh7d7UQ8gAh7+G6DktmRO/hJctPqxhB9iEHOOWii8EA6ytsajiMIg2GADQEoip6DAF934M5WQgh9NjYOFFZEPZe9Ttlkao1UABB7ye5BA6soBEjoktuiKala0L08GbssUDAY7/9wXj57//pqfz5zwmZgWEPRHue7LcOOiD1sQFkBQghoO+6wr5n5UiAoSy9RhpiiBi+3QoMet4YI1wfxH0gNE2D6EMCB+/h5RqBFJ5il45C7CRvIilR4UUsuFnasSYSS2SgRBk4RoSYQC7dY8jLIQTEIPcq7pSNQGR3JMTMjuaxJ1SsJwBwzgNwZVwEJ8snEsHHaOYGHcOcExBp/exOzMCwy/KQr79/jkQUGSQtKemWQaFH6FMvWpTf9pzJhVBlYfmdDpb/qfxrORHYOTA7BOfTbzmGlxCl9rQqOZKSL7ukHtPQ9janL+Cg3+Mefwh2CgoKFDFEcEzuhVpLHAeRDSQ3AkwAeyholLgNFwuGASbOf48YQynEKwkNJRqT/msbnwnR/SwzMOyy3PXCL0AIEYu2QdMo8Wiz/BJ3wMyFQ4jKuJdwIcFl8syRA3MjhCNnoOCoSlBMY83is2E4AAVI9DJiRIypqpRnD/YM5gQiQJN8eLbDxS18mFCEDUViwC0osSi8QeIV+mI1GOtIfIRMnBJFMBM0P8xO9AsATdvKhD2oKkHnCAtlmChAy4zAPXohJpULUi7S+ZTCHsWy2M8yA8MuS+IWfOnFKvMbmWm3CTtg5ME8hS3XF7uw6JocBIZYEIXpJyRTO/f4zrDzSCY2OVXwWoljVI6CSg9biPuks1NpmvmmhrkHJqpikqtyEpLuqqMchQ8hZkCu3+YwJLfBZ//fOS98AQoYyHF0v1SJWty1EIoFA7FEAhC8kJNUUE8n/jl86MDpvAZnvczAsMviHKELQSoD1b4qI72kajFUfnHmI1JPpWFDRwoImsqs/naAvs0hhOxnlzBmOWuZ9Yqycql1krIQyXyLhWPi/Xre0ehDzgFAVEvm3krTEipUwNToQRQrZ+g25FJsMoMUQBkI1FoAuXJdxlqwwJLciAiigBgpWSqceB0in/kSDd9GZtx40y07/6OfgzIDwy7Li179Jjz/l38Urgr/ab0ARgh9UmrpoRMx6HMUwboAJWknKW46hPTQvvSs3nuAa39e6TXl2dQ0zgVp1UKR41lgUVOawOOMLCt1rpXGWAYkZKzOAVJQIHAEWM7DBMDXvn3CRpfBIZfbpwIQsJmeZOar0EsTYCCKafAZiUsVGLHvER0J36D7pGd3h/MPndwf/hyTGRh2WR73HQ+Gdw5BOQOyk5+U7L2UmJOiA7lHdz4rTXnhIaa6TwokGpi8iJL4lHp7MflVMdUBcOpSkABPOmxR9aLELCw+M4PzsE4bkCADCAOCjsv6bL2wAQhoViXnY7L08lFBqooYUI6o5LyFHKp0JQGLjAuW99fnXq4/kmnLjK5LpC81Op4l7RqE99nPMgPDLgszo+vDgLxKL2vfJWshZSD67Dtb8myovGl3gpOeWKOILsqLbxUpA4Ka7MIdsIT1oLaLrTaZlJYyuIjFwcrmc/E7FBTKLVVWQ7YZDBjEWCyGBA6pDUHTnQXCuKRKp1umfDo7LNomZRXXxlwfyrdNlyY4IE8cnM7TdysB1pzdkJPCDh9aP9k//TklMzDsstzx/MOp/gISd6A6wxp5YKBdLDIw6DwTw5e9Thko/rusyJaDHakIcAr3GZJStTeRbIbZlw9BQ5pKInrEKCQfa32HAg5V9mAGhZgJzaiWRwzpE0qIMoUhbeamWjsxR1ySkJj9LlkUEUhmTwRcghUXtU1qTxVSFSFIjgYBDgRWwG5SZCP0HWJgOF8yKSMzbrr52Om9CGe5zMCwy/KZG27CF118F4QBCcgSllMLgcQ6INsrAtkPr3xltia5ko8l5yFGIR/BYEkz1p47m9rsQE7cC51pW4EiIiU3MeXQXjLBnXSjhtxLC9BRnkkds8+Tz2uHUufcBJPslF0XsSii4VDywC6kaEKZrdqDoqR/e70k4RaUf8hXoyNU9buIWh6OHCJJIpgkNTXyfd4+H0g1A8OuSwktisqDGcItONT5/SZVWrVMD6F8AlAPrBIwSGnSonBIRJoCiAIF5VGdBPYexCQ5Edo7KrnHcMxCYMJYJEXRM3BZ8x2DRTVsDOkYQ2+siDp7s3AkOngMCSBYrCSSgVGuEXcrZHLWN026R0lztgRlhgZ1s9heZnFVdJ/0vFKbXq9jFN3ZXzIDwy4Lg7Hqu+zbSkwQkN9O3AxL/FUUAdRCQPbRY0gjDFNYEqVwiU2fDj3AEf1qlX15DQk679EuUkIQO84hSwCIFOGQrPU8SFktE+lrx6Ukirsz7I1tjkRQqyZbD6JwOROyDAwLXZdGVkpolhkgR4htSnIi38A5zqAawyo9376Xmb2oJnLFihiSIqyggxKhAcXshDiiNG5lBoZZdlOYkUvFWwZcezUd3gzbm6nrMKhslNKEQyItVcFSEQWEmMjCyBL2Y0KMhD5EcFCSs4AROMI3KQrCSnqCAUmVdpWrknyLkgsASY4q0ZKpoER5Bur62KHVAhqxWAkKaBwjNo4fR+ilJgMcXNPAkU+kIXk48ojktDyl8B7JNogUQYHhlNh1BMoJUcVlGkIYMCAxiUrFrREY7i+ZgWGXRd+ndjh5CVnfvqxO5B5QfO4EBmwGE3V9zFx+BEM7syiRBJDL9B/5Folm68S96IGOQQQ0MaJpUil7eAZxA3IREcayUTN/KIUXhPL9FhwIiXhUNyDGaIhHrd7MmWtRUEgjSjfQbawSAPkmgYJvQd6DySEw0gCqGIVA1YFqSi4KWAUG0IPUWvJewLCR50TVvShu2+iGWjujZK59JjMw7LKEGHFiY4Wu70vPCkjhFIm/ZyY/9Xzqg/erDYS+E/6AweTAIKz6gK5L7slq1WHVdTixsYGNjZXMdFWc/AOLBdrGwzuPZtkkK6Tv0Z1YoT+xgl+0aNr08W0EnJfoA4HZgR3gQ0B0Do69WDvp2KqIdYgSlXmeIiNJ6fsQEKICWbIWYugR+x6hW6HvVghdjxgiyKUh4ZEIfYw4ceIEjm2scKLrUjEZAJAMxrZp4J3Hctmi9U2aMHixwNpymTibGAEOwGoDBGBx4GCJAAmxqcHbZE2oAwSsLZfoQ0TX9Xvxepw1MgPDLsvV130OX37Pu6MPyWvXvIOR2Z2JPYBZXIbVRh5izXAS/otYrTZw4sQGVl2PYyeOY2PV4daNLhcfcSQjBwnolkusL1ssmgatd2gcwTfiNnAEoipuBDnpuSnCcQrTaQJSNe4BZj1IalPae+JCOpq8hcR/wLgkMYFC34lVxBLWJTA59CGgZ2Cj63F81aHrexzrejAcIIVaEQPAEcu2xeJ4i7W1JdYWLfquA5jRNB6e5BojQIgI3QrAIg3IyrxD4UmKJ0G5lsbNt8zhyll2VRh9iLjgvMPpJ2k6ETKjntTLZBtqD9utEEIyl5kSedeHgGPHTuD4RodbT2zg2MYGur4HN0u4dpGOF3sweqBfwfUxhfIIEB8F5EjCcBLDNzyGTWaCcBg6ahMaWalyFiAZkXocVChRMijlN8qxNUtTn4eTaEkagRnRMbARgFs2emysOhzvOnC7BmrWUuaichL9CqtVwAG3AHcRkRiLGAG+Fe2ixaJt4TXVOkaEvssRGjjDIcg9WbehbRpEZhw6uLbrb8bZJDMw7LJc+AUXgDlVKkquBGXz24bLKmURPiGx+AR2jBA6dH3AquuxwQ4dNeioRwfCCoQ+MJxjUYBUtQnOgdsFsFyDX18Hx4A+dEDs4Z1MmZdHKLoSZWQh84yFgLzNLEO8cB1oNdie3Q6GSdUuIAR9Di7NMB3yvTN6JgRqEBoCN4w+pNGiq8AARbgmRVUiA+wiGgI6IiwWa3DrBwFirPoTCMdPIPQ9FosWjXPJVQupZB45B8cpC9IWwi2ZD0jFbGLEMFFqv8kMDLssr3nj3+AXfvQS0f/C4JekHRg3Qguy9DK4KoJB6PuIPgSsVj1WEXDLQyDXwzGAvgPHiFuOnUB/6/GUwouItQZYaxPZ1rQL+OUa1toGcbWBeOIY+u44wIRGcgAog4SSoTZmavIAuABZmS/MtFUXgmvAQzkMoKpHaRKeiIjYsRSnCQggYLGGZrGOGCJ8BFzfgYhw8y23oovH0UWGI2DZeiwbhwPLNiU8NS3cYonl2hq6m29A3zPiaoUY+lQTw3u4mKwNF9NAKk0TV4/CDilvmwbMmF2J2/sCzkW54cZbUmViZfCrxEEq4Tyo1RAkVyEiMqHvO2ysenQ9A2uHsTh4GHG1wkbo0TQtNlYrHD92Kza65G+3DqD1Bdb8OhwBvvFYLBZYLBfgxqMnwurYrehDh8WiRcuMZknwbUqV1iHNJL25TboqZCmQOQYU3UfZVJnlDM7EHplSdyEAYbVCt7GB1YkVQmSwb7E87wIwEbgPaPsOzaqBd0DsNnDLsRU2+oi2bdA3DlhbYq1Nz9d5j8XaEu3aGhzOw8ZNKd8jbmyAQwdaLtH6RQZhsFMTKQGEtQyYhXzsczn7/SozMOyBxBhxYP2AJM8ApU8SpTEEn5ZsAzNC1+H4seM4duwEejRYv/MRHPyCC+GX62hPHIdzhLZtceDgQSyXa1htnMDqxHGsLxu0TYNFu8DBg4dwwfkXYG25TODkHVpH8N0dEE+cQHfiOPrVCSxDhCPC+uHDcE0K5yVjoZShzwkWqkiZgITchwIbF/CQrEoHTTgiQ/AxVrfciNXNt2K1EcCugV+uoTl4CIvFAvANvJCSMQQQR9z5vBUOLRtE8lg7cBhNu8Bi0YJDhwMHDuLwocNYX1/HcrnEKqzA6+u45fOfBboNBA+4ELBctMnaYYW2JJpPQvleUvHYvg946e/92V6/Jme0zMCwB3LDjbdkvg7ZhSghRZCpG8BFqWJkhBBBADwBfOJWhBO3ol0/gMVigX65jsiMtl2CmbFqCH3r4Cjl+LftEot2gdYJMx9CIiRDj0XrAVoD1logRvjWwS+a5Fb4pvAB5AooWFF8kFsqpGNSMFucpVRcZkS4DAwEhm8XWBw8iGYNYPKgpgF5ggspPNgwsPAey7ZF17RY5AFnLZrlEsv1FHpsmxaHzzsfy+UaFotlytrsVgi33Ii2ceDo4D2l4dMmwpL/MJq/YKw6jimcfMldLsL/9ZVfhne850O7+l6cTTIDw54I43OfvxF3ueiiaiSjbEpfyurrD/HtvW+xWIrv7B34+C3AofPQugbra0sgBhyPx9EQIfikWBwjlu0S62trOG9tiQUifOzhOUB9AjcAACAASURBVGRtpmULWqZj5rJvPtWESCMKkTKmtMITdFBSMQYMZQC7WEZ/lkShPEjLpQiMThq7dvg8tGsHwH1IRGKISscCHODJAY2DW1+HBwMxYtWtEGKEQwRxgGPC2nKJRdtiuVjAA+DVBnDiViy8Q7Ncwi1bcAx5Ap7y0PMVpr+N5oAwAZRqZUSOpz6p6zkiMzDsgbzyDX+Fp//4D+WUZK1oqvmCTGWqtUJSOvh2gSV5pEkePJxvUlbi8VvgfIsWgPOEpvVoD6xj1Xi0Uj+gaTyWiwUOrq+lWbDAqYoUEcg7ELXS8zqQT9WVyRWQAMeSmalWjhKRXFyBElsZkgy1pAhAzNZROqZDs1xDu4DJ7kwZksxpbAOD0CwcWu+xvrbEcrHESsrq67P05LHWNlgjhlsdTwkLocOyacCOENsGxBGIAUQs6dUuX3u6DS34IvcjRS6JCBfe8Q54+z62FoAZGPZEvuPBD4D0SYX5hxYNASiWAT55kpOmwWJtTeZX4DSiUHIPUoiwhwOhIUbTNji0OA8hBjS+SbUWGPCe0DpCUgEx68XmJ51gRgYbIfMfkgkEylWpCSa2LxZHTmWoWEdjS5hchmwtAGk0Z+YnKNfB9ORSkhUFMKWRlxo6ZEjtRTC8O5yqO2seOCNXuHIc0tMRYpMXLRA9YvRSC6KH8wTftnkinjzZjnNSa1NvhbN7sd/ToYEZGPZELr340lSspSrAWoxTEvbeEYFl7EKMEa6VepBqxhPlIcdA8eN1/JU6+km/ky/tYoBpkF0Z36TwHrSX1EFRsUs9eSMkITOIUoaUejtkE5mszhieoeqNxeJQiwUyg1TClLLOIaa0bwqIXScAlcKiDgk825YA8jYyKtYMQ8dNKOnBsSkFYmLIit60abyEcgpaE8M3vuzLnEaYOodl21Z/z8c//Jvx0j/aX2TkDAy7IM/88SfiK+99T7zzXz6En/lfL0u1F7KfXZRcFZa8k6pCouyRxRcnRO+LqUsEwOWaA8UXB3T0Iuk3IO+41VwCiUKkb5cBIdcqyNcoP6HWwja95pTlkCmTYpbnK6E0u3aV0+Hk/ogkVTso+VKSqSgVhVECNw+lzhZXuRwmgB0nfJFB5OQcfNsi14rUv4upG5nOGTOIXvgFd8SPPephOLC2jnve/WJcctGd8chv/lp80w/93M5eiHNAZmA4TXnJLz4F/8c9/x06Br76vvfBG/73L4OWS4njF389VxoCwRGDvQxaYpa5HLRYKmcyMofTKvJSe0cukQIFA8sJOJ8sBACkpezVWjAsos58rRYIYRNQmBpxqf04F85Bv5W8zBWZEqNpjkzS4zOYCY4BZp/BIZemc3r/YnHlWprlmeQRqkQAeynfxplEdVoxyxbJAcQSK9ejf687XHA+vvTud8Od73BHnHf4EBZti/UDa/jBR3wLXvi6P9nmjTg3ZAaG05TPfv4mIAasrR0Ax4jGOZx/+GD2pROhN/BdNeFHxyuIciQfHlDTFjC9K4xBwCSl30utRkB2JoKWoy/uiCtmd9b71MWWFB/xE7LpMZC8j9mecUFBis3R1Gooh1D3IDVxpS2nUaSpHoU35eXkBHoQ0kxS/W2fESPNomUiDwqsCgbVbFZDLqEmIxsitN6hbRocOLAOWm3ga+977xkYZtmZfPDjn8bXfsV9sN42iHGJ5WoDhw4dgmb65Z5I32UgWwFZqRUksr8LFCWUZZj9GQkUYNOU03onM2yDFBhEcZztsTkfjNS+h/S8NAjUsai48gxk9q8uTyyGbFmQ+S6jEVxJasht0iS6lJ9FyVIslpQFrtrqUFykXFQ3eWLlgWerqHLtShsDL2mJCAfXljiwvo4D62vwSBWurv/8Tdgvsi0wENFLAfwXANcx85fLujsCeA2AuwP4JIDvZOYbKD3p5wF4CIBjAB7LzO/Zm0s/M2Rj1SHECA9G23isLZZ5GnrtMdWUHrPdqjTJaqBiMoiuGUugEgsapjfNJru6MMgmeFIMM3O1noRLsVQyIb0EBij13ipAMI59hrMJO8NYOnpCVdBiCDlxh3y+L00VTy5TgHki5bz2WZKuKs+iOr/91r8HYXDdptQ8ES686EK0vk3ZoydOIDLj+MZqeIfnrNBktR7bgOiBAG4B8FsGGJ4J4HPM/CtE9FMA7sDMTyOihwD4ESRguD+A5zHz/be9CKKtL+IMlz/99V/GF154Z8TlEn0IWDt0EOsHD6FdLlNasE6nZsDBdLLFQqhUa6pXFqHheAUat83n010Ymb60PXMohVC159TIh8v1E70J75lzcZ3WrWXiy6dMrqNXSRqtMRPsJKWkgndT72T1aIQlrVIx9R54YqdMeUK5h3L9CkTp+rsTJ9B3HW658UaEroMPAdQHbDDjqx794+PrOrvk3cx8v5003DbBi5nfCuBzg9UPA/AKWX4FgIeb9b/FSf4ewAVEdGRn13z2Sp6OruvgvUPbLmSLOvRDll58e1EaV82yRFkJU46Dh3NNmaAmT1KjE736HJfPURDhF1LVqFRMVYu6WE6BLF+g12tTh81dZEJhCFiAUeTxtmqN0VNLd5TrpmxtjT5k8g+8L986m5fTqezqZ+I0N8O4EfkpkFp0w+eQrsmBAa3kxIzHP/Qbx/d+jsqpcgwXMfPVAMDMVxPRhbL+bgCuMO2OyrqrT/0Sz3y54aabcOmFdwK6DtQ2xnQFgELIAcgv5FBo0POldcZPJ6peYFZbn6fa22Nqb5m+8/hI40IIo5eOq6CQD7WZNVJWqKlvlb1c5MDnH123VU6k+SGAaaOhwrAJorE6p3124ihMemSWvyn8h3cu15RwjnDN527ES9/wF+OLOkdlt8nH8Rs/2cUARHQZgMt2+fy3i3R9KOEwnuhVxy7xwCTPKyeOPgaL5E+nqEJx9zn7zaVt2d9a3lPuo6qTjSyM+IbhBecxHmOlI9g5O+W6zd3kY5pU5Hyd5nv4HApWTjyrIfewhRSXxZwpcyapHF4EISqB7LY1rs8pOVVguJaIjoi1cATAdbL+KIBLTLuLAVw1dQBmvhzA5cDZzzGAOZON3jco2lo3y3qalYDMBmzzUhurg2BAwXDqpauegJisqpvdRDUYqkpOkn8qDpLKsQhk0p6BygQwvEa+RkZxWWAyJ5QXwWbgoIevgWsST/PpJ3iIvEpdp2KhWEBzbQNepcpPV1xz/RYnOffkVGHwDQAeI8uPAfB6s/7RlOSrAdyoLse5LJ+76eb0IjVeAKL43DXkFR+/RA3U1y0KUn/sPtYvN3hifucoSPapC6uQLmkLaDBDp8cbMQa6ym8oK+2qPC2deSb5qpXOmCBRNaqpmdvDXBDz6MwzmXiOVJ5gjkoMrtFAdAYwIsjYksRPfPkXX7rpczsXZVtgIKJXAXgHgHsR0VEiegKAXwHwjUT0EQDfKL8B4E0APg7gowBeBOBJe3LVZ5j86LNeDNe28IsF/GJRj6bOP9I/WdmJUjETQAY91YpcAcJQAfRDPFIch0TgafpQ1XEzslVS1XJknfhFprbTjrgKew6QaOA9ZDACIedQMMqkMkGm1KsuJl9APqzetd5HXgbBEcrzmnoe+bnIM5CPJV0r4lHaYuT+panvmsUSftHCNQ2uvO4zO3oXzhXZ1pVg5u/eZNODJtoygCef7kWdbfL4h349dC5I5zz6qGXBCiiUfIYkecnG+ift5q3OvJ0/nTQ494Z5fa0EUea/ZAkvqisxcbWDQwtCiHKpS6GDxHJoNsY0QElITvWCbDWl0ZkyOJ3kLY/uUIlXZQ80J3OAB+reSAiTQCXaQQ5XXffZnZ34HJH9xajskVx5/Q1pYlQJtTlyhpjbQmjQq9tN1cf03JOHofFHN9bdel6hiqnzQKSaCNaVMGbK8MLyVeUVua21HEiBgLmMeLREX+YaNn1Ag89W7TbfUy4sL+fHIAtDt4JjRNd3KSQsodGnPu8lW5z/3JMZGHZB/uwd7wOAnGuf51KAvnu1MmSLfOSzU9XTpn1sv2186Km2WwpXX3oVHFOSU8wjG+1xjUJW62T/ih+RbQYc0rFcmq8yF2SJOXpAZReDWcbKwvCz2X/T2wwsmOs2z4PLV1lI1aYWMmdHql1B+M5veMAOn/O5ITMw7JJkVntA9pXcnyH5VqS8yPXa6mWudt8GDPRaBsSn/VJFYMlY1KnprfJbwq8oflJ2tRzIaHdZHoKXThYTsmUCGyGxt8PjVacqNLVsE7jycgEFyDB4nVvCNS0Awmvf/PZduKKzR+ZBVLskXbfC4sB6ik4ooTU0k8V8HYXugPLmTikGmxXVhrH6bJ7iPvIpAJaZqPs+ncKrC4DaOjCWQbYEQEgjGrWtQ65pAICFgMwpz8xSnSqkQVNcUrQ3v5vN127vp5W9rSEy2rXmhs1+hpzcZzkMwAwMuyZXXvdZ3OuCCwAgFV7xMGMSbJVitQ2yiZHXA1v1lDvrQ/PhzF6sG3LMPilov9pAv7FKSupdXbeANMXYDN/OIzcLsBCnykdpIlmdRzMVU03p3R6+aWWquIB+YyV8pctD04c3MOkAjKyKAZJO/oJRfLUM6qkB7QjX/HcyozrJOWxsbGzz1M89mYFhl8QRZcs0LRteASi9fhpKmDcRIGnA1iw4DTEWRzWZ7mAMBBv3AZQSs7JFYLkDU9OhWAzmdEQp29MhgYOUi2fSfAAng7E82HGZfzKm6taw4ED1E5h8GiPNn/BDzGLhD7hEIQwxXMCgtI4xovWlvFuzDy2G/XfHeyQnNjaqlzH3PDmDp/RMdVIPpt7nLWVMyo0YiepgFa2gk+j2PfpVBxCVAVi29JnlC4wbUW3X3l3b5Cnv7O+0Xdl9gGQuyZCuZZOb3xQiJ2906smYwyogJFq4sgwy16IjLcVa6EInRyRc+ZnhGMJzX2Zg2CX5zE235mVPMgAHMD2TvpbI/+ZeDFwDRZb6Ra9fedt7D/gADBdrcNJJdJljHnlYlB6ZCCWtD+kMX1CRkwPuwQCCJg5ZINERkTFExD7NOJXCpUNVpknl3xITtpH0mC0ic+EbkZEjW3oL34KQphO84prrxgc8x2UGhl2SXI4MAFDPT1nNgpTj99bMnToiVYsTNOO4HQbAMWivrgNzRL+xEh6B8hBvVfp6xOHUeQdukkYvcpTC7JwxowCG8x6h71KIFJDnZs45IBaG6RQ7G1ljqM1svVW4UFK1s6WQNjpT/WrLNItzWGZg2CV5/8c+WXIXxDfXl22zT3lhjZuRxSjd1Amz9th9TE9ujyRWgloK3fETUj69hfdNnnPBuhr2o2RcWacl2tOkLsh8RSI1WdKrYx9SxCOqwpFMjtOCyCGsOoSuy5bT8D63shC2txwKeHG1ijMg5HEc5juGgBD6Yhkx4/G/+Kxtz3auyQwMuyT3/qJL06xK2uvkys2F8a7i5TB970n3SmSAhIpXYTtr60ag9IhZSQUM6iQpudYgii+JTzprFDjNrm2BoGLyZX0IPULfi7uiFZ+54h+c8wjdChoyLY7W+FYrOclnpS5Ecd9QWW0V3yMLjU/l5lkqUv3Ydz986tDntMzAsEvyhKc/F1rElKHRwUJoqS9bahRUtPnE+76ZqbB5m02bDyyVsFpVVY1K5K8k90QBBWsdVJGMQdgvl3Uzs1XXJJ9cowIDkVgYMT+fwZ1tesub3uYmy9UzqHgebcn578bM8C5NcBNjxC233Ipfe9UfbX7Sc1TmcOUuSgwy1ZpjeN8iFjo8fcvoIZZlGrFuJcNh6/DlNm7GRFNkgGJ47/M8lWpaVJRcjHLthfx0IJm5Wi0Qc4oYEbm4GTH0GVjAZrQm9HRi5bBwM3Go0tvclQ3DbnnvVvnNukHeQgZudSeQJgQCRyz9/uw79+dd75Fcff1nk8mdNYBzL6RRiaE7kZfy6lNnu6ojDs8h542hF1UfhB2N1ZCLu0pYMVsPnObVzCnNolRRXIoQgvn06VnA8i5mrIdqN4t1Vdv0J+9dVQ+iBoKCBerClXJ0Fc8DYzGIi3Pl9ftrVKXKDAy7KJ+4+loxrRlxZEabXgk2Zq5trHVxatxDnepTwMEmW6XeuZyLHOWwZDoAZxIxxj6DhHUltCJ0dp3UdVAwEX4Bo2hDGTsB6BwWA1+qegynAA9KNlrS0RAK2W3JoGbClswguHK/IeDTV++/UCUwuxK7Kjd97rN5BGHoAqhxcG6QEg0IEETwEJeFmiclKXK/Nh5ipUqcD1cOUnp02HOLke58KhnvA+AcwmqFjWO3YuPWW/H5z34OXd/j87cew4ljx/Gl//7LccEd7wjfLMDcwCmBmF0eATsBj9CtcMNnrsf73vEOdDHi0OHDWF8ucf4dLsCh8w5j/eAhHDx8GD6NqhKLgjJYWYKQAMmqnH7WPHAnii1gflcRh2K12UiEtlGrR62X0PXoNlZ41/v/dYu/+Lkrs8Wwi/KU574E3WoDIQQ458rLBwsM5SW1/i6QN9c9nvb6Uye0BolZh3xo2a9KAkiQVKIkkuQEwDcNYgjouw591+F97/h7fPA970XfbeQKTzlSIcslCtHhuqNX4IPvfGdJYOr7ZDWEgNB12Dh+LO2jSoiS31Du34BExdHU9zD5ONgumCiHfc5yz/r8qyfLDO+bDBxdCAhx8smf8zJbDLssXddhyemFz2G47EdbYfOvZAlW3aNyFHbQFQ13nzjeUKFkPypWBzOlXIN8UQznPZrGgwAcPHAgDYZaX8Pq+HEc/dd/xcX3vCdoXZOgzPUxI4Yenzt6BW64+iqsHzoM33VYdV2yCkKakTt2HdzaGmIMcI7Qdx0CAwszDiHdrVyxXLZWXRrdO+VLqJ5kARVkd6HawtWTMl5G2s/5BjGswAysra3hRa//s+GD3hcyA8Muy6233oKD55+PnFQ0ciFscTGMlF6VIpVIo6IhWwqPvkb8hq6PEew8uhPH0K4B5Ns8kU3btmgXLQhpVCUDyezvelzzbx/GXe/z5TKDdlZfMDOO3/h5rI7dirUDBxF9g2UI6Jlx/KYbcejQQThHaJoGjW/giBBWG7j15puwft4dco/N9qgKCixPKw8ykyc2ehxG9fMz4Gr7kMsZk5Esg7p0Sj/CarV/pqQbygwMuyzv+dDH8OAjdwNAaBfL4t/Kq18mPhlYB8TZvC7/5G7TfsEu1aBQcxllySRKSxRio4/ob7wRa+edDzDy8Ojl2joaQEKaaWTkAmlEZOhWcE1b1VgAgH7jONrFAuwboG0Q++SztwSsH1jH+vo62uUS3ntw3+Gmz34W7cHD8G1TZvEaiFoPihBMltnQ5LFNnCwTjhxGgbIbZ+wG+zdKrlfK8fiH93948tr2g8zAsMvy1+/5Jzz4Pz8QRIQQQ1JvISCJ0ktdXmabcVhChlXvaZuNlGDaObHgUIKmeso0mMm3C2wcP4bm+DFQ0wKEpNzMCJGxWDB0tqdF4+F8IioBVFYDc4RvF2jXGRQYvg+ikBEH15ZoGg/v04fA+Pw114DaBVzTZG5hkMFdOVAFFVlKVlT+Q3XvlYtQrR+4FEMy2KzX5xOdw80334z9KjMw7LK89s1/h2f8xJNS6fJmDRsnbklT00tPRZkDABgRlPnf4htnUDB1HXJlJGldTGvTA1bmMbI5rhyDcw7sHLhp0CyXwOHzcdMNnwFihG8auCa5FX7RgHwjSVAuTUSLNFWb+uPpItO9uKZF6zw8gIWERDkGcN8lsrLvceKWmxFCwOLAQSwOHsJi/UCed9IiQ82qcKFIAEBdKx4mZZVrqYutDD7QaIRGKlBtjzEm902u4FP7NFQJzMCwJ7I6cRyL9QMA6l5MZ4609kLps9gQbgogqDIT6zwF+XdgFtuttnUO/0mVJt804OUSi0PnIaw2AMm9cJDRll4+ebJcJAsi5zuQ9MYEahpAqjZxZDBFRAJi36U2BNBiiYVzaNfX4dtFclO8q28qP5UCECzPhSV8q4lRVW3nUWhmE5kM4SjnwDLaM4FKv1plkN2PMgPDHshV130G9zjvfLimqXqwSe0mCwA1LVk3n3I/yvop01hbV2yGWg7ewzOjXVuHa1rE0EPDJ9S2Ml29z8Okdd9Kj4lAnNKl2aVeODoGIsEFgNsW0Tk0iwWAdJx2bU3ITpcLu9TgN2ZS0mNK16bmvuVRyhMyim6fW7YWYJTd8DAMaKKWhjOPXnMtnvfq12O/ygwMeyD/39veiR++9GIshHyMMcJ5lt6vkIU5SUfM8qwSQwxA3sXYG6Vh3bONfWw9FhFlq8ExA00Dv1iAmkYGTEVoYZYEBqV8epnNSc+p+slpQBQcYmQ4jmBKk8E6MFybSqSlEm8E1zR5+nqtGFXdG5OZq7dAQxW2zCcvN5iTrYzim5Sp4dMovwQUACDKyNHYdfjUVfvXjQDmBKc9kef87h/i45/8NDgELJoWVZZdocOAwWtrTd3R6y1NedC2itIPTd/qJ2UFB1Gak9G5pKhNA98u4BdLuDZNyUbeGyX2MitT2i+Bh/AP6nY40857uManY7VtOnbbwi2UdPSl8nJJrhh2/4NbsIFN5QbMlsp60kfL9kHmrxx9MM8rhFQ0JvYdPvbJT+EJv/xs7GeZgWGP5Bue9LPojh9LhUrkBWX74lZiAIIHZvCwjUnasQpRq029d+WP50FTUhFaAaDxGSQsICgnUZVsI5c+rnAWTjgDl2dvSlaBa9oEClIQJp/XlIMr2Uq1HnO+N11p7hv1fQ/dh5pv4foJmccd2VTeYsYtn/883vS2dw7/QPtOZldiD+WLH/IovOQZT8MD/8/7ig8r08VXADHFImiPZkx3IJvPWYV40IuacxuPBXKo0oGSA1wy27Widcm1SJz8qOArIHUsSTI0Sf6XY+j1eIaTyETMpe7kqBW4pA/LcfTM9qJJoypUnswU0Zh7/wpUBQ5yaBLVfWqEAsyIMRGPn7riavyXJ/3c6Pj7UWaLYY/lAx/5BADkiWPB+R0Wse5EbTloL1i7D4ZIs3vx1NEGgJEVEpXiZ16BzNwSagnYdjluWEDB7j+ek0ItDhvdMJZCZTFscd1QUJv+rwILm6Ngn8kmgGLX/8U/vHfUZr/KDAx7LM956WuLWWvcCSvWPK6Z89KixhFjdRgFGB5Tj5dk6E6gkIrWVVC3wKzLVkPZbfzbHit/xGURTkL5iSlSNUPe0NKx98D2UxC2Aglz32Pg4MG+2jZOPsP9LDMw3AZy5bWfAWBMW6PUda9Yv521T1y//nqsqlc0Hwy+8/pcTmkCHIwiZ6sCOsxatbnmBPRY1v0oHzmmtRb0GNmVMNdq9RYYW0X5M4g4mMaTpK4+7QwWFohi/lvsOB9iH8gMDLeBfOrKa+qeXV/gid7LvvqqKdbiGPV2mFABVYBpY6LIQJEhiUz1OtPJFy2sDyP/0HB/azEo4CjHMCHGBiqgaW63BsryLCxYDjen56GWyIS1Ziy05/3WH2z1tPaVzOTjbSAxFgVXi4EkXm/RolgMJb8PpDlQPDLBC9ZM+OgDUKishXwWXSdHkVRjJ+v18lQhTWpV2UDGfpCEJyYWslPv0e5nfgtPkZRYiqRIckfOeszXweUYmyRzFazl3MZaBJbb0dGvkHNcee314+PtY5mB4TYQItPrq9ISm/z/4R4FIMAs6cCoqhmNlF60dOhGDJf1gkr6QNrPFqYt7gOgyVeYukwoKBh3o+BMueCCIeYg46MVANLkcTMHaI1Kg8pO9t7ViijPvOZhTJRi8AxmKbKtK0FELyWi64jo/WbdLxHRlUT0Pvk8xGz7aSL6KBF9mIi+ea8u/GySxz3tGYM1PPpZlzZHreA2GlH9NzS/x0fPKmApAbO9cIFJuZ0BhcwwUNriqLTJHzLzXZr2zh7PuiZDfmL4WIybVSkwmwWeeg5qIdiHCtS8Tb1M+bCMN/3N309f0z6VnVgMLwfw6wB+a7D+ucxcTdFDRPcG8EgA9wFwVwBvJqJ7MnPYhWs9+8W86NlMl4XKh696XUkEtu80lbaaB5BPYdps5ldboRx6LKe20JD+dSn/wjlTTBbQugU6Wa3mHejllcua8O1Hv41TxJrvUa5x5EJkQ2L8YIa3XdVamDgnGPi1l//++OHsY9nWYmDmtwLY6XS/DwPwambeYOZPAPgogK86jes7Z+To1dfBdFEjDmDK9t/UWuDaQtBjVTbESDvq66HRh6rfkAFFFEttRucaeJ8+zjfwLmU4ZiCJSGNBeHhM+185f7k2ru65ihAwRvdsrQJrYRWXwT6r+r6L+1AOxlUi1izA6UUlfpiI/llcjTvIursBuMK0OSrrRkJElxHRu4joXadxDWeNfOLKq3O0QF9cixBj9Qeq3m/YWVZZfGVb2mSPzeZ3kiEFSaptEUBgcBfSZ9Wn4q1dAPoIisXhcJBoQwTQR9mnz99x1afffQBCBOWRi8Y6qTK9dLu6CijaaxEwPxdReh7uZ9rbfA9LSOana5/XLFZOlXz8DQD/HenZ/ncAzwbweEw7j5NPnZkvB3A5ABDtbP7is1ke95P/Ax/7q9cK647K1ubsSpSVLA1SzUNzIAYqA1ptd9mWASX3wgo8VIISRnE4JHae+wDIZDIcIhATWw/mHF50TsZISEhSQcdORzeKiBAAR+lDBGp8WgbyOgYq1yHvRwTAAVTqMGRwZIBGKk4ZVDjKtwIjD0BWFmKMePu7/2WLv9z+lFMCBma+VpeJ6EUA3ig/jwK4xDS9GMBVp3x155gcvfo6XHq3I2UFc6WwCRcKIACi0IPjKGjYNQVlrCIURUrBhVT0JGrvHSO4T5WcYSbkhSmZbrkPJi3F5iorJKV7F0uFZc/sw0tIlBwBvcwk7csgLFbwqFhR2c9RiVIYILX9TcHGoaVhrIXhM8xNGB/82KdG2/e7nBIwENERZr5afn4rAI1YvAHAK4noOUjk4z0AzEPVRD5x9Gpccte7wNZ/tLkCpGXL5NuuY6vhE/Re6UpjBodsNeRNXOaL7NLksxxCWsf5IgwYoICL5l8omaCm0gJAggAAG1RJREFUPJAqH8l1KWhlJycTrgYkVOFdKhvHBLg2WRK2HTmCl4FWqcxd4S10UNiUQVo5HJu6CQU0ZuJxLNsCAxG9CsDXAbgTER0F8IsAvo6I7ov0dD8J4AcAgJk/QESvBfBBAD2AJ88RiSLVSD8M/a4cuUddrMQo1WhH+cGllSbuxBiL+RwZiEBc9TLXQwIEsbkBUbyik0pBcg0SmaSzJg4b7gTiGkRzv2JNSBEYfQbkXHEvHIFCA2qE8nI2c1JcGOicFpyvwC4N1b/GjGJJFGsjXcs73veB8R9qFtCZQLzsB45B5aN/+RosFmtlHIEZ2mwHHJUJYCcyi+pMIQCqCBFB6j/ErheQ4OQu9KEAQuQ8NyPHCOe9WDEu1W5smpzGrD1+XpZ2rLM5UTHVs3tBhKDzVxIh9F0GhezqaLq1bwAwaNHALRqQuhgEuMajXS5LbYgqF4KLxWDfHmMtMcuEuyEaYECeg7PrNvDWf3wfvv9nf3U3/8Rnsrybme+3k4Zz5uNtLFdecz2+6NKLUfMCuqhdM+UucTIxUtfYfAeZhj50qzTN3GqVCryGBBJxo0vffcigAA0nEqE7fiINu258qhjt06vhvEtEpPcJuADEEKAGBhEh9AkAYt9BS873qxUiR8Q+ou9W8IsF4ByOXncdLrrggswhOHEn3KKFa30CBuEcm2ULwmE0i0VqPqgonW9fH9cII3iEGzYyEWPcT6BwUjIDw20s/+l7fhiffOsfwjmt/5g4Bc4uAQAk0z8bC3ZEZMU1AJAJWWPoEbtUpr07sYHjN9+CjVuOJSAIDGIH37TwUuAVnOaRaBZLOOfQNOvgGNPcEjGmoGTbJMXqU9gy9F3alv37BAzNMlV9RrsG13j0XYd2eSBbCaHvAQJc0+Ie512Avu/TXJiUiMsYAk6cOAFaJY6hWbaphH3jhCfQku+EMv8GlWhFfm6FX4m5RLwhKYHKmnj7e+ZoxGYyA8PtIJm9Z65fbqr5B32lkzsxlRpUfGfVFd8uwExYY4JrFkAAuhMb4FUP3y6kGItHI1ZB0zSSpJSU3Hmfu96sgG0LjhE+Bsl8lHNK3UbfthopBBGhFetC7yYyS9ZkAMUIv1ggxoAQkrsTQkDr11JZ+7UWvmlAntAsmjRlnpSNU86hgKI8pRw6Nc83kwyFioQFCWaZW3SWKZmB4XYQ7f2o1v60DSnxR830oSgjb46WmX7yHs1iAd+0aNoF1g4eRuwjwqpD7BK34HIac/LbPSXz3HsPjpxdB0C5BM6hTg5jHlmLsiTFj8iT5GQrR/aV+ybJeYCY8lpz0S1bMBh+0cC3MtmNQwYEVPUcNn0YmYa0xWJtBCUDMjMu+7kqo38WIzMw3A4SY0xzO4jFoHkLDMrzJwAooT6zChhYE4ou5FLh5SaZ/75pAKbEMSw1PBnN0OqkbFrODTJQSpVPXRglP5WwY4l2QLcLIOUrE2dfzXa5kRyhSO5FIgMdGPDJXaAmkY7Oy0Q0WuzJwYAC1Q9iJMopqKWg2ZF5qyEl9w3ffUoyA8PtIH/7rn/Cf7r/V0rCUQEHFXUPkJWUlekzimFfbPW7HZxXs5oUL+A9I3qfw5YcOR8zpzbbgipmUFQWiVxAIh2Z/9D5J01KlkoOmXLKe0j8gCQ1gVJCPhHgAfJUhym1uryQlJsVd7EJkTlsWhGOJjvSRE/ihPUzS5G5gtPtII/9yf83ZQuquWsSkTIo2O+RTIACCUeQC7EmBXOOQJ7gGidzPTj4VuZ9kLkiSCIihPKdoon1kGknUYRUJt7lCWNSwVhNSxgOlDLdNRjkU1q0axxcm66HvEvrs4WAkt9AOimNsWSmnkcOhRpwGFEMnLmFv3vv+yePNEuSGRhuJ3nB77wOMQZEDoiZPedihqNm0G0OwBguSk9vqzOnUCDBKTC0BNc6uIWDW3i4pYdbeFDrpceGZFoGUAxATN8kpCGJhZP6e/1EQGZwQoxpP9ZvmQuSGNQQaOnh1hq4hQMtHagB0FDa5kimxTN5HMiIl++zPKZonk0Cg5ijFyWRafgcQwg4es11eMJP/8pt8nc+W2UGhttJnv2SV+OKq6/L8yXW6l6bvcVjLptHQXuVHNmUBCJVLEIZzOTNRxTTtS4pqBcznhigaPz1aD46NW8BM92W2xMn18AD1KTzQMCHJZER4jKUepNUeA17M/WNw/oOFXBCn4uxGDJAcAaNP37L357032u/ycwx3I7y8U8fxSVHLgSzyy95Tk0mCB0J4RvSPpr6IL9G2dFKYwKyLJPmkoxiLMxlGTWpSqRJQqrXMLpWMZ5ZeOKLkVMLUtpBUs1K18ksy5UOVlG1fXQqcRcswWBA1ABCun5JE2fGFVdfi1m2l9liuB3lcU/7H7ji6mvTjE1VWvHATxZ23frPVa848KOHYqs0KX+QrIf0g8WKYEdgD7AHogdiw7LMiC4i+AD2jOhj+jgGO0bwEcHH1E73lY8eG07OQ+MPbYoGRWzZ/WItFTeishiM/WWjEBwjPnHFVfi1l//eqf3B9pHMwHA7yxv/8u25NxuBgv4yZjPYvvaQFpuL6lpxKay5XtAiDX1GBorogOiA4BIABGJEMDru0XNA4IAeAR0CIqXt2jaKu8ACBkzpk0lF491kTNBrrG6s8Cr5RpkzENhEscItlH1rcIiIMeSZwWbZWmZX4naWX33RKxE54kmPegScS7S8lmBPiU4a9zfKzNgynj/cQkAezT1sZN337Goo9GQrXf/bPFOQjNLr8W1Uor4mqhd5sLoYBBjCoFX24XeZVbxeH0KP0Pe494O/b9Prn6WW2WI4A+TZL341jl51bSHSrMWgL7lxHVLHyWa9jVwYS9tIttIHn8q9EFBIIkSDNTSKto+PXX1zBQqjxjnYQCYkWk5rfaSq10e5X7UUisVguAbLLYgL8aLX/PF2f4ZZjMzAcIbIH//l29MQ6RE4WGXPLJvsVfryIqVNnRY8xAQzpNsQf3VOA3Lakm4b5jbU09lZ12VIJUzvVxOMljBRjKhdiWzBZPeq5mXK8yqRiLe/+1/w3Je99pT+LvtVZmA4Q+RZL34VYgwl5dj0kDkmb+P2qvQVIz+V5zCd96Bfw167KG4Bj6TsAic0BBhUbQp4TINBPlfZa2xywICC+V2AwmyzPISxGPKzY8b7/+3jp/x32a8yA8MZJFdcbdyJDA4wL741n9M+VR/LqNpbFj+3GfTURYmRxyNQ3oJCGMLsNnAnar0uw6KnrIsy5kG/xk7HEMim7qMAhwFOAwhgBseU5ThbCycvMzCcQfLHb/lbqbgcx+CAAeeQfWwMFGQzJSttgaGSF02noeZL72zYQKUeytANGoKD/TEIQdDgHMNAxGC5gN40XFiysYBn+h1jwBVXXYNZTl7mqMQZJM968auw6jbwI4/+TjRNmyobwSHVZZTSaoUlRBnijDwOK8UxKOtxKjpbeuZKEausIoLZKQcLiCjPO8F6DeUAtX6TRYjBwCdZ1N3JnC6dTBZIuRVdL/vlA5mcDgsGUT4CqjEEvO0f34cn/swzd/4HmCXLXPPxDJQP/vlvY9ku4XxTBiuZFGcdoagKDMDo6CbriKqeuiitgsBAA0s4YIteG0WxUYOC+drCNVByVYZBW9cpn5LHv2FHblowkLESMaLrO9znwY8eX+/+lrnm49kqT3nsI0CglA0Z09BgR0blqSgLAWAFh9S9Y7CIQZeeFk1PXowGMkqO0qWrvotlMpTc4duVQw6i8kw45WkAQC6Xr8en+tuco3ynvA4bouUBQITQo+u68cXOsmOZOYYzTJ738tcVroBLYZTRYCEVtovDvlm13jj32RUZLJvtpTaD+Tgn6+uPm1g3JB1H5zbrxzNgT6BPvkHLo5goTHYnpCDuXLLttGUGhjNQ3vHeD2RFihy26CEHJOSEdTDOkFQiUPMYiqLqdPcWKKoiLs58qysz3J8Gym7ClBkILFjoNRruZBSiRHEhqucQyzBrTSnvQyo8e831O52HeZYpmV2JM1C+8K4XyRKBHEkpuCF9b6wDdTWsXT8MD5g8hCFoVGMULG9RGSCu2scuUtW8UJ3jGIm2VsLUTsQ3Jhz1Pi041B8YgGAEnRFrdP+znKzMFsMZKH/yN/+Qow2gNAAphC6ViI9BPjF/cj1GqaUIGH88faFoSu1G1BkK9e/aRaBSRCUXUynbYUvDidUxfWy5Bi4VHXLqAZCTtjQUmYdM208IiCFVmY6hRwg9+m6V3R2A8KdvnWdGPB2ZgeEMlGe/+NXVbyKAnM+cQzGh46gHLUlONgcgHwk86kppvJwznlB/Ki6g3kaDw9iox+gcdVrERNQC2Y/gAUhoZWkFxFQiD3BNU842WwunLTMwnKGiU7OT0TwFh5gBYmBa58y/GhRqK4K3VEoVyv8OyUHscHm4xlgI9sz5qzYb7P2oq5AjDzrFnqwncbOUv7jy2s/i114211w4HZmB4QwVWzegdL4CDqIYGSDUcohFobS7NekIMDa6WZfPchJXx9PLlcuyySFNLnc9YlK/SoIzGFXZ+igT3qg7xeBCiBoz4dNXztmOpyszMJyh8qzLX1m5ADlBiQiu8caUDqbi9FDJkHtfBYXaerDLm9kOVuo+fygjHNjsfMNxHMZCQHUP5b4StxDLQDMByalw6Ac/+skd3MssW8kMDGew/Oar/mighoXwc40HwAh9h9D36LsuFSQJQ0KSszWh5c1GIc+hArMFC/uRNrX+lugAl3ZDIBiFW2WA09S6GKKQi2n27r7v0fcd+n4lM2cjzaSluRWujNb8u/e8H895yWv24s+xr2ROiT7D5a2vfSEuuetdBtmDycTWHIYYQlIL59MYCy0dX+UWuOyDl6HPyHNDAOqylNGVgzikCSVu/eey4UUY9wBcJpvVZCWO6buARDQgEdD3XZ7jEhxB3ss8Fm7EMnKMuNeDHnlKz3mfyI5TomeL4QyXB37nD5pfGvYDbBKRU1LSuBWxIiYLs6+hC63bYM164/6XhZHPsbnjUTW3pKIcvB4BWUBhKnErcqqDmUAhgaATUBglZQmGXf7qN5zKI55lQuYEp7NGTA9uYgZA0kHyTQaHZGoDHJ1Af6kfqRpb8oBMuXkZrZlKzXOd+ASj5Oa8k6JWQiY5jTvCY1CqUprFesj5CjFkdyFHZ1CTjfpsnv2iV57MA51lC9nWYiCiS4jor4joQ0T0ASJ6iqy/IxH9BRF9RL7vIOuJiP4XEX2UiP6ZiL5yr2/iXJcrr7lOlkxqMYa9ZjKvYwyZpIs2tJd7atQ9dyYlTWq16e2rKIER3W+IDhpZKL+LNVKyFWtiMbkYxorIoBATn+Lq+6yzL2kEYLOcvuzElegBPJWZvwzAVwN4MhHdG8BPAXgLM98DwFvkNwB8C4B7yOcyAL+x61e9z+QNb65nTtKo4DQ4ADF0WbGiTYKCAQfbU+cogA13WhkSj5Y7sMpe2toBX1UClsKMYTszKLCxFmJAjL1UztaBXOOqUPpA3v6uf97VZ77f5aTJRyJ6PYBfl8/XMfPVRHQEwF8z872I6Ddl+VXS/sPabotjzuTjDuTtf/BiXHyXiwBw6jU1T8EotJ2mPo2xaOC8R+NbM0lsSQZSn316RGQdgtz2jySKn3U+DkEJwoHU0YjIESGElPId0nyeZXyVy9eZllFd29Frrscnr7gKj3nq03flGZ/jsjfkIxHdHcBXAPgHABepssv3hdLsbgCuMLsdlXWznKY84NuemBbMqETS34PRkiDAeQdmUTg2mZIY9OLG1x9bF8UiKGkG04RhiT4M2kytE/chSgZnDEGStkJFrFbugyUdZfsMCnsjOwYGIjoE4HUAfoyZb9qq6cS6UWdDRJcR0buI6F07vYZZgBf8zu/XK3SEpCQ/UfkBgGR4NGfXIvfigFHWmgisP5ZrqCMYo3YWIDYBD4021O5DchsYMZGMmWecij6U1+vKa66fQWGPZEdRCSJqkUDhd5n5D2T1tUR0xLgSypAdBXCJ2f1iAFcNj8nMlwO4XI4/uxI7lP/5gleAAPzQ931HXideRYovEIE4uRrFTSTE2CPhs09DqSSvwZEziQcAU+ktWI49hPWYN9ptpTiKcgl52j0LDjmMGg0oBGitRz3oyLUZ1HC48prr8MZ51uo9k51EJQjASwB8iJmfYza9AcBjZPkxAF5v1j9aohNfDeDGrfiFWU5efuUFrwBgsoBR966qRDZdmLyTUGCfw4A6ECuOfH7bmxuz326DCS+aYilRCrLGwQCvPEQ851uEylJQyZkag/vJRKu0eeOb/xbP/M3fvo2f/P6RnVgMDwDwfQD+hYjeJ+t+BsCvAHgtET0BwKcBaBf2JgAPAfBRAMcAPG5Xr3gWAKnHvPhIKuiSLQYCdL55lnqK1hhTd4NlMBKTyV/Q3plTEoTmM0AyGrJopAHSt5vfuj27FTFkcjRKpmaIAdARohxrS4E0swIjUKiHcWMGhT2WOSX6LJe/+6OX4eK7KO/LVTYhTI5C9s1zmLNOk2JmEEqxlZqvyDuOUhtNhDITlkCJPiixqZGUUqautK/fwVJlKpeRk3Nfdc31+OM3vw3/84W/tZuPcD/JnBK9X+RrHv44HDUJUHUPa8xw3TzMoBSSz3kH8gTySOZ9TAOXQr8qlZL6DiHoYC376aoKUyF0YAQwAsgjV3waSoYcvWYBhVH9SLnuGRRuO5mB4RyQBA7X5zAlTI8LwJAR1hyvTfPC9xNc6+Eah2bRwLcNfOPg2mTq+9YBlFwA1xBcquqWlgVYnE+DuJzz5gwWGIbLA05Br90Axgt/53UzKNyGMgPDOSJf8/DH4m3vfG+VDWnzAApeGDWdSDHO26zyyqJvfP72jU8qKyM5y15U6/0oek3my4Qh87XUo0BBiU+ZQeG2lRkYziH53h/52UqhyFoJQwAYgkG1fQwKGi0oEFOiBEM+YgwO9hgw11ifL7sUxo144W+/Dv/x27///2/v3mLlquo4jn9/ReEBSQSxUkqjxdSQGhMopKkBqS+i9MFqfMFEJEiCDyVeog8H+yAvxpZ4SdS2BGOlVAKKN/piAhgNEGPhUHu1wRao6b01Jmp88IJ/H/beM2vPmjmdns7M3qf9fZKTvfeaPXP+s87kP2uvtdc6s6kOOwdODOeZjY8+WR/eS29xJj3uqvX49ySPejLonJU+e0AkPZcy1bYnmfQOs3Y6HhEvvLTTLYWGODGcZ9Zt+CHPv/iHelLQvHqC6FkWvvPt3+mcrOZUpNf+87qtjs7lSXJ7ck+nZ6ftkC4rn8XTvcmqdt68ebwwvYs7v/jVJqvygubhyvPU7375CNcsmN85Tv/OffsakgfTUYzkqDhO/lLVgGV3vgXJfQ7dodLq1utuHOlMy+ql1fl9R0+c5pZP3DP7N2+DeLjyQld1RmbX78VBUVbud8o6rQeSFgCd43T0oHvV0aefIU0uye/vbruXDNVlQ/X6R0+c5vXD2R30NmFuMZznptbczUc/tLLWeoD6N3StWwGyxNF5rNqNWsOhOx+iOBi4rc7tbS1Uv/mhH/2U9Zu2zPKd2hCGbjE4MVwgHvvu1/jA8hs6x/WRi6IEqi/8+qhC91Ki3tFYux06ksVbqnUZqs9W7S7H6rHkhQQPbXVSmAAnBpvZ1Jq7WX3bB1l09VVFQZIQ6ndKljvUckW6plNye3P3OE0MtWQQwcatT0LA+k2PjO39WV9ODDac++/7DO+7bgkrV9xYFHT6CvoliLp0TQdIWxBph2Nw5PgpFl41n+e27+BTn1s73jdkM3FisNl5fOO6Mkl0E0RtZKJHZ8JWOgJRbg8fO8lTT/+WdRs2Typ8m5kTg43Gjzc9WDte+f4bsyHLw8dO8NqfDxMBe/Yf6Axjfv17Tggt48RgZhnfx2Bms+fEYGYZJwYzyzgxmFnGicHMMk4MZpZxYjCzjBODmWWcGMws48RgZhknBjPLODGYWcaJwcwyTgxmlnFiMLOME4OZZZwYzCzjxGBmGScGM8ucMTFIWiTpN5L2S9on6fNl+QOSjkraWf6sSp5zv6SDkl6R9OFxvgEzG703DXHOf4EvRcQOSZcBL0t6pnzs2xHxjfRkSUuBO4D3AlcDz0p6T0S8McrAzWx8zthiiIjjEbGj3P8HsB9YOMNTVgNPRMS/IuJ14CCwfBTBmtlknFUfg6R3ATcA28ui+yTtlrRZ0uVl2ULgcPK0I/RJJJLulTQtafqsozazsRo6MUh6C/Az4AsR8XdgE/Bu4HrgOPDN6tQ+T8/+b0REPBwRNw27zr2ZTc5QiUHSmymSwmMR8XOAiDgZEW9ExP+A79O9XDgCLEqefg1wbHQhm9m4DTMqIeAHwP6I+FZSviA57ePA3nJ/G3CHpEskLQaWAC+OLmQzG7dhRiVuBu4E9kjaWZZ9BfikpOspLhMOAZ8FiIh9kn4C/JFiRGONRyTM5pa2/O/K08A/gb80HcsQrmRuxAlzJ1bHOXr9Yn1nRLx9mCe3IjEASJqeCx2RcyVOmDuxOs7RO9dYfUu0mWWcGMws06bE8HDTAQxprsQJcydWxzl65xRra/oYzKw92tRiMLOWaDwxSPpIOT37oKSppuPpJemQpD3l1PLpsuwKSc9IOlBuLz/T64whrs2STknam5T1jUuF75R1vFvSshbE2rpp+zMsMdCqep3IUggR0dgPcBHwKnAtcDGwC1jaZEx9YjwEXNlT9iAwVe5PAesbiOtWYBmw90xxAauAX1HMY1kBbG9BrA8AX+5z7tLyc3AJsLj8fFw0oTgXAMvK/cuAP5XxtKpeZ4hzZHXadIthOXAwIl6LiH8DT1BM22671cCWcn8L8LFJBxARzwF/7SkeFNdq4NEo/B54a88t7WM1INZBGpu2H4OXGGhVvc4Q5yBnXadNJ4ahpmg3LICnJb0s6d6y7B0RcRyKPxIwv7Ho6gbF1dZ6nvW0/XHrWWKgtfU6yqUQUk0nhqGmaDfs5ohYBtwOrJF0a9MBzUIb6/mcpu2PU58lBgae2qdsYrGOeimEVNOJofVTtCPiWLk9BfyCogl2smoylttTzUVYMyiu1tVztHTafr8lBmhhvY57KYSmE8NLwBJJiyVdTLFW5LaGY+qQdGm5ziWSLgVuo5hevg24qzztLuCpZiLMDIprG/Dpshd9BfC3qmnclDZO2x+0xAAtq9dBcY60TifRi3qGHtZVFL2qrwJrm46nJ7ZrKXpzdwH7qviAtwG/Bg6U2ysaiO1xiubifyi+Ee4ZFBdFU3JDWcd7gJtaEOvWMpbd5Qd3QXL+2jLWV4DbJxjnLRRN7N3AzvJnVdvqdYY4R1anvvPRzDJNX0qYWQs5MZhZxonBzDJODGaWcWIws4wTg5llnBjMLOPEYGaZ/wMeu3Ru2ogZ5QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib.pyplot import imshow\n", "%matplotlib inline\n", "imshow(torch.pow(img, 1.0/2.2).cpu())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let us load a target image. To avoid issues we'll use a painting (at least I hope the subject won't complain). Blanz and Vetter's paper at 1999 also use this model as a target image as one of the example." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import urllib\n", "urllib.request.urlretrieve('https://raw.githubusercontent.com/BachiLi/redner/master/tutorials/mona-lisa-cropped-256.png', 'target.png')\n", "target = pyredner.imread('target.png').to(pyredner.get_device())\n", "imshow(torch.pow(target, 1.0/2.2).cpu())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let's setup the initial guess of the model." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "# Set requires_grad=True since we want to optimize them later\n", "cam_pos = torch.tensor([-0.2697, -5.7891, 373.9277], requires_grad=True)\n", "cam_look_at = torch.tensor([-0.2697, -5.7891, 54.7918], requires_grad=True)\n", "shape_coeffs = torch.zeros(199, device = pyredner.get_device(), requires_grad=True)\n", "color_coeffs = torch.zeros(199, device = pyredner.get_device(), requires_grad=True)\n", "ambient_color = torch.ones(3, device = pyredner.get_device(), requires_grad=True)\n", "dir_light_intensity = torch.zeros(3, device = pyredner.get_device(), requires_grad=True)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# Use two different optimizers for different learning rates\n", "optimizer = torch.optim.Adam([shape_coeffs, color_coeffs, ambient_color, dir_light_intensity], lr=0.1)\n", "cam_optimizer = torch.optim.Adam([cam_pos, cam_look_at], lr=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll run an optimization loop just like the pose estimation example. In addition to the usual rendering loss, we also added a *regularization loss* that prevents the PCA coefficients from producing outlier shapes and colors (Try disabling them. You might get some interesting result...)." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Setup plotting\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "from IPython.display import display, clear_output\n", "import time\n", "plt.figure()\n", "imgs, losses = [], []\n", "# Run 500 Adam iterations\n", "num_iters = 500\n", "for t in range(num_iters):\n", " optimizer.zero_grad()\n", " cam_optimizer.zero_grad()\n", " img = model(cam_pos, cam_look_at, shape_coeffs, color_coeffs, ambient_color, dir_light_intensity)\n", " # Compute the loss function. Here it is L2 plus a regularization term to avoid coefficients to be too far from zero.\n", " # Both img and target are in linear color space, so no gamma correction is needed.\n", " loss = (img - target).pow(2).mean()\n", " loss = loss + 0.0001 * shape_coeffs.pow(2).mean() + 0.001 * color_coeffs.pow(2).mean()\n", " loss.backward()\n", " optimizer.step()\n", " cam_optimizer.step()\n", " ambient_color.data.clamp_(0.0)\n", " dir_light_intensity.data.clamp_(0.0)\n", " # Plot the loss\n", " f, (ax_loss, ax_diff_img, ax_img) = plt.subplots(1, 3)\n", " losses.append(loss.data.item())\n", " # Only store images every 10th iterations\n", " if t % 10 == 0:\n", " imgs.append(torch.pow(img.data, 1.0/2.2).cpu()) # Record the Gamma corrected image\n", " clear_output(wait=True)\n", " ax_loss.plot(range(len(losses)), losses, label='loss')\n", " ax_loss.legend()\n", " ax_diff_img.imshow((img -target).pow(2).sum(dim=2).data.cpu())\n", " ax_img.imshow(torch.pow(img.data.cpu(), 1.0/2.2))\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's visualize the result:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "from matplotlib import animation\n", "from IPython.display import HTML\n", "fig = plt.figure()\n", "# Clamp to avoid complains\n", "im = plt.imshow(imgs[0].clamp(0.0, 1.0), animated=True)\n", "def update_fig(i):\n", " im.set_array(imgs[i].clamp(0.0, 1.0))\n", " return im,\n", "anim = animation.FuncAnimation(fig, update_fig, frames=len(imgs), interval=50, blit=True)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n", " \n", "
\n", " \n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", "
\n", "
\n", "
\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import HTML\n", "HTML(anim.to_jshtml())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is not perfect due to several reasons: 1) Basel's face model is small and doesn't cover all possible faces. 2) The model we use focuses on neutral face expression, while Ms. Mona Lisa is smiling and looking left. 3) The painting doesn't have absolutely correct physics. 4) I didn't spend a lot of time tuning the training parameters.\n", "You should try to play with this yourself and see if you can produce better result!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }