{
"cells": [
{
"cell_type": "markdown",
"id": "6a2cdf6c",
"metadata": {},
"source": [
"# 3D optical Luneburg lens"
]
},
{
"cell_type": "markdown",
"id": "549ddc87",
"metadata": {},
"source": [
"Luneburg lens is a prototypical gradient index (GRIN) optical component. A classical Luneburg lens is a spherical lens with a spatially varying refractive index profile following $n(r)=n_0\\sqrt{2-(r/R)^2}$, where $r$ is the radial distance, $R$ is the radius of the lens, and $n_0$ is the refractive index of the ambient environment. Plane wave incident on a Luneburg lens will be focused to a point on the surface of the lens. Compared to a usual refractive lens, Luneburg lens is abberation-free and coma-free, which enables a wide range of applications in modern optical systems.\n",
"\n",
"However, it is practically difficult to construct such a lens due to the required gradient index distribution. In the microwave regime, high-gain antennas based on a Luneburg lens design can be achieved by, for example, using concentric ceremics shells with different densities. In the optical frequencies, such an approach is generally not applicable. \n",
"\n",
"In this notebook, we demonstrate the numerical simulation of a practical 3D optical Luneburg lens. The structure consists of a large number of subwavelength unit cells. Using an effective medium approach, each unit cell can be approximated by a local effective index, which can be tuned by the filling fraction of the dielectric polymer in the unit cell. By varying the filling fraction of each unit cell such that the local effective index follows $n(r)=n_0\\sqrt{2-(r/R)^2}$, a Luneburg lens is constructed. This design is adapted from [Zhao, Y. Y. et al. Three-dimensional Luneburg lens at optical frequencies. Laser Photonics Rev. 10, 665\u2013672 (2016)](https://onlinelibrary.wiley.com/doi/abs/10.1002/lpor.201600051). In the simulation, a linearly polarized plane wave is launched towards the Luneburg lens. Through the visualization of the field distribution, the focusing capability of the lens can be assessed. We also compare the practical Luneburg lens design with the idealized case, which is simulated using [CustomMedium](../_autosummary/tidy3d.CustomMedium.html). The comparison result shows the practical Luneburg lens design is very optimal.\n",
"\n",
""
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "b0ac0cf7",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:18.012165Z",
"iopub.status.busy": "2023-03-27T20:32:18.011266Z",
"iopub.status.idle": "2023-03-27T20:32:19.224792Z",
"shell.execute_reply": "2023-03-27T20:32:19.224213Z"
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from scipy.optimize import fsolve\n",
"\n",
"import tidy3d as td\n",
"import tidy3d.web as web\n",
"from tidy3d import ScalarFieldDataArray\n",
"from tidy3d import PermittivityDataset\n"
]
},
{
"cell_type": "markdown",
"id": "124e4696",
"metadata": {},
"source": [
"## Simulation Setup "
]
},
{
"cell_type": "markdown",
"id": "344948a3",
"metadata": {},
"source": [
"The Luneburg lens is designed to work in the mid-IR frequencies around 6.25 $\\mu m$. Therefore, the spectrum of the source in the simulation is around this wavelength."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "78bf4d34",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.227832Z",
"iopub.status.busy": "2023-03-27T20:32:19.227526Z",
"iopub.status.idle": "2023-03-27T20:32:19.245835Z",
"shell.execute_reply": "2023-03-27T20:32:19.245277Z"
}
},
"outputs": [],
"source": [
"lda0 = 6.25 # central wavelength\n",
"ldas = np.linspace(5.25, 7.25, 10) # simulation wavelength range\n",
"freq0 = td.C_0 / lda0 # central frequency\n",
"freqs = td.C_0 / ldas # simulation frequency range\n",
"fwidth = 0.5 * (\n",
" np.max(freqs) - np.min(freqs)\n",
") # width of the frequency gaussian distribution\n"
]
},
{
"cell_type": "markdown",
"id": "770b04f3",
"metadata": {},
"source": [
"The period of the unit cell is 2 $\\mu m$."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "da38cc56",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.248269Z",
"iopub.status.busy": "2023-03-27T20:32:19.248090Z",
"iopub.status.idle": "2023-03-27T20:32:19.265198Z",
"shell.execute_reply": "2023-03-27T20:32:19.264654Z"
}
},
"outputs": [],
"source": [
"a = 2 # period of the unit cell\n"
]
},
{
"cell_type": "markdown",
"id": "5bd3027a",
"metadata": {},
"source": [
"Only two materials are involved in this model -- the dielectric polymer and air. The polymer has a refractive index of 1.52 in mid-IR."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "2660616c",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.267618Z",
"iopub.status.busy": "2023-03-27T20:32:19.267450Z",
"iopub.status.idle": "2023-03-27T20:32:19.284740Z",
"shell.execute_reply": "2023-03-27T20:32:19.284186Z"
}
},
"outputs": [],
"source": [
"n_d = 1.52 # refractive index of the dielectric polymer\n",
"n_0 = 1 # refractive index of air\n",
"\n",
"dielectric = td.Medium(permittivity=n_d**2)\n",
"air = td.Medium(permittivity=n_0**2)\n"
]
},
{
"cell_type": "markdown",
"id": "77ca0842",
"metadata": {},
"source": [
"The unit cell is a simply cubic with voids. We define the width of the polymer frames to be $w$. By tuning $w$ from 0 to 0.5$a$, the fillig fraction $f$ is changed from 0 to 1. Since the Luneburg lens structure consists of a large number of unit cells with varying geometries, it is convenient to define a function called `build_unit_cell` that takes in $w$ and the center coordinates and returns a unit cell structure. This function can then be called systematically later to construct the whole lens."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "8d6d6463",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.287174Z",
"iopub.status.busy": "2023-03-27T20:32:19.287006Z",
"iopub.status.idle": "2023-03-27T20:32:19.307720Z",
"shell.execute_reply": "2023-03-27T20:32:19.305862Z"
}
},
"outputs": [],
"source": [
"def build_unit_cell(w, x, y, z):\n",
" unit_cell = []\n",
"\n",
" unit_cell.append(\n",
" td.Structure(\n",
" geometry=td.Box(center=(x, y, z), size=(a, a, a)), medium=dielectric\n",
" )\n",
" )\n",
"\n",
" unit_cell.append(\n",
" td.Structure(\n",
" geometry=td.Box(center=(x, y, z), size=(a - 2 * w, a - 2 * w, a)),\n",
" medium=air,\n",
" )\n",
" )\n",
"\n",
" unit_cell.append(\n",
" td.Structure(\n",
" geometry=td.Box(center=(x, y, z), size=(a - 2 * w, a, a - 2 * w)),\n",
" medium=air,\n",
" )\n",
" )\n",
"\n",
" unit_cell.append(\n",
" td.Structure(\n",
" geometry=td.Box(center=(x, y, z), size=(a, a - 2 * w, a - 2 * w)),\n",
" medium=air,\n",
" )\n",
" )\n",
"\n",
" return unit_cell\n"
]
},
{
"cell_type": "markdown",
"id": "435c9b60",
"metadata": {},
"source": [
"In this particular design, the radius of the Luneburg lens is 20 $\\mu m$, i.e. 10 unit cells. The effective index at each site is the discretized version of $n(r)=n_0\\sqrt{2-(r/R)^2}$. For our unit cell, the effective index scales approximately linearly with the filling fraction. Therefore, it is easy to obtain the desirable filling fraction at each unit cell."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "389dd49e",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.313518Z",
"iopub.status.busy": "2023-03-27T20:32:19.313131Z",
"iopub.status.idle": "2023-03-27T20:32:19.340999Z",
"shell.execute_reply": "2023-03-27T20:32:19.340387Z"
}
},
"outputs": [],
"source": [
"N = 10 # number of unit cells from 0 to R\n",
"R = N * a # radius of the Luneburg lens\n",
"r = np.linspace(a / 2, R - a / 2, N) # distance of each unit cell to the origin\n",
"n_r = np.sqrt(2 - (r / R) ** 2) # desired effective index at each unit cell\n",
"f_r = (n_r - n_0) / (n_d - n_0) # corresponding filling fraction at each unit cell\n"
]
},
{
"cell_type": "markdown",
"id": "3bee6c11",
"metadata": {},
"source": [
"Since we wrote the `build_unit_cell` function with $w$ as the input argument, we need to know $w$ at each unit cell. This can be done through the relationship that $f=1-\\frac{(a-2w)^2(a+4w)}{a^3}$. Here we simply use the `fsolve` function from the `Scipy` library to solve for $w$ with the given $f$. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "593afb8a",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.343497Z",
"iopub.status.busy": "2023-03-27T20:32:19.343346Z",
"iopub.status.idle": "2023-03-27T20:32:19.367453Z",
"shell.execute_reply": "2023-03-27T20:32:19.365766Z"
}
},
"outputs": [],
"source": [
"w_r = np.zeros(N) # width of the polymer frame at each unit cell\n",
"\n",
"# solve for w_r from f_r\n",
"for i, f in enumerate(f_r):\n",
"\n",
" def func(w):\n",
" return 1 - (a - 2 * w) ** 2 * (a + 4 * w) / a**3 - f\n",
"\n",
" w_r[i] = fsolve(func, 0.5)\n"
]
},
{
"cell_type": "markdown",
"id": "4790a4d6",
"metadata": {},
"source": [
"With the obtained $w$ as a function of radial distance, we are ready to construct the Luneburg lens strucutre. This can be done easily through calling the `build_unit_cell` function in a neasted loops over the $x$, $y$, and $z$ coordinates of each unit cell.\n",
"\n",
"Thanks to the symmetries, we only need to build a quater of the Luneburg lens structure. This drastically reduces the total number of Structures as well as the number of grid points of the model."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "150000ce",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.374246Z",
"iopub.status.busy": "2023-03-27T20:32:19.373857Z",
"iopub.status.idle": "2023-03-27T20:32:19.597672Z",
"shell.execute_reply": "2023-03-27T20:32:19.596083Z"
}
},
"outputs": [],
"source": [
"luneburg_lens = []\n",
"\n",
"for x in r:\n",
" for y in r:\n",
" for z in np.linspace(-R + a / 2, R - a / 2, 2 * N):\n",
" r_local = np.sqrt(\n",
" x**2 + y**2 + z**2\n",
" ) # radial distance of the unit cell\n",
" # build an unit cell if the radial distance is smaller or equal to the lens radius\n",
" if r_local <= R:\n",
" luneburg_lens.extend(\n",
" build_unit_cell(np.interp(r_local, r, w_r), x, y, z)\n",
" )\n"
]
},
{
"cell_type": "markdown",
"id": "fe9542a9",
"metadata": {},
"source": [
"Next, we define a PlaneWave source and two [FieldMonitors](../_autosummary/tidy3d.FieldMonitor.html?highlight=fieldmonitor), one in the $xz$ plane at $y=0$ and one in the $xy$ plane at $z=R$. The focus is supposed to be at $z=R$ so we can visualize the focal spot through the second FieldMonitor."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "81d230f9",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.603080Z",
"iopub.status.busy": "2023-03-27T20:32:19.602719Z",
"iopub.status.idle": "2023-03-27T20:32:19.630427Z",
"shell.execute_reply": "2023-03-27T20:32:19.629883Z"
}
},
"outputs": [],
"source": [
"# define a plane wave source\n",
"plane_wave = td.PlaneWave(\n",
" source_time=td.GaussianPulse(freq0=freq0, fwidth=fwidth),\n",
" size=(td.inf, td.inf, 0),\n",
" center=(0, 0, -11 * a),\n",
" direction=\"+\",\n",
" pol_angle=0,\n",
")\n",
"\n",
"# define a field monitor in the xz plane at y=0\n",
"monitor_field_xz = td.FieldMonitor(\n",
" center=[0, 0, 0], size=[td.inf, 0, td.inf], freqs=[freq0], name=\"field_xz\"\n",
")\n",
"\n",
"# define a field monitor in the xy plane at z=R\n",
"monitor_field_xy = td.FieldMonitor(\n",
" center=[0, 0, R], size=[td.inf, td.inf, 0], freqs=[freq0], name=\"field_xy\"\n",
")\n"
]
},
{
"cell_type": "markdown",
"id": "59c240ad",
"metadata": {},
"source": [
"Finally, we are ready to define the simulation with the above defined structures, source, and monitors."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6f5df7a0",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:19.632534Z",
"iopub.status.busy": "2023-03-27T20:32:19.632278Z",
"iopub.status.idle": "2023-03-27T20:32:22.558750Z",
"shell.execute_reply": "2023-03-27T20:32:22.558042Z"
}
},
"outputs": [],
"source": [
"# simulation domain size\n",
"Lx, Ly, Lz = 25 * a, 25 * a, 30 * a\n",
"sim_size = (Lx, Ly, Lz)\n",
"\n",
"run_time = 3e-12 # simulation run time\n",
"\n",
"# define simulation\n",
"sim = td.Simulation(\n",
" center=(0, 0, 2 * a),\n",
" size=sim_size,\n",
" grid_spec=td.GridSpec.auto(min_steps_per_wvl=30, wavelength=lda0),\n",
" structures=luneburg_lens,\n",
" sources=[plane_wave],\n",
" monitors=[monitor_field_xz, monitor_field_xy],\n",
" run_time=run_time,\n",
" boundary_spec=td.BoundarySpec.all_sides(\n",
" boundary=td.PML()\n",
" ), # pml is applied in all boundaries\n",
" symmetry=(\n",
" -1,\n",
" 1,\n",
" 0,\n",
" ), # symmetry is used such that only a quarter of the structure needs to be modeled.\n",
")\n"
]
},
{
"cell_type": "markdown",
"id": "f2875009",
"metadata": {},
"source": [
"To visualize the simulation, especially the structures, we use the `plot` function of [Simulation](../_autosummary/tidy3d.Simulation.html?highlight=simulation). More specifically, we can look at the slice through the $xz$ plane at $y=0$. From the plot, we can see the unit cells with varying filling fraction as well as the source and monitors are set up correctly."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "f9ba69b4",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-27T20:32:22.560986Z",
"iopub.status.busy": "2023-03-27T20:32:22.560817Z",
"iopub.status.idle": "2023-03-27T20:32:23.149197Z",
"shell.execute_reply": "2023-03-27T20:32:23.148662Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZMAAAHWCAYAAACyiWS+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlxElEQVR4nO3deZxjVZ03/s85d01SlVTv1Q3NrjQ7PAjYqKDYD43DODAgj47KMvqgQouD7SD0IzaCg62IgDJs+iD4oCgP/h5RwUH2RRYHGFDWRmZAlqZXqipVWe5yzvf3RzrpSlel6qburaok9X2/Xv2CSm6Sk9yq+8m955zvEUREYIwxxmKQ090Axhhj7Y/DhDHGWGwcJowxxmLjMGGMMRYbhwljjLHYOEwYY4zFxmHCGGMsNg4TxhhjsXGYMMYYi43DhLFJ9sADD0AIgQceeGC6m8LYpOEwYSwhV199NW688cbpbsaE3Hzzzbjiiiumuxl1rr/+euy1115wXRfvete7cOWVV0Z+rOd5OPfcc7Fo0SKkUikcdthhuPvuu0fd9tFHH8X73/9+pNNp9Pb24ktf+hKGhoaSehszBzHGErHPPvvQkUceOeJ2pRSVSiVSSk19oyI69thjaeedd57uZtRce+21BIBOPPFE+uEPf0gnn3wyAaBvf/vbkR7/iU98gkzTpH/+53+m6667jpYuXUqmadLDDz9ct93TTz9NruvSQQcdRNdccw197WtfI8dx6JhjjpmMt9XROExYooaGhqa7CdOmUZi0g1YKk2KxSHPmzKFjjz227vZPfepTlMlk6J133hnz8X/84x8JAH33u9+t3VYqlWj33XenpUuX1m37kY98hBYuXEgDAwO12370ox8RAPr973+fwLuZOThMWENvvvkmfeYzn6GFCxeSbdu0yy670Be+8AXyPI+IiG644QYCQA888ACdccYZNG/ePOrp6ak9/qqrrqK9996bbNumhQsX0plnnkl9fX11r/Hyyy/TCSecQAsWLCDHcWiHHXagj3/849Tf31/b5q677qL3ve99lMvlKJPJ0Lvf/W5atWrVuO2P8rhyuUyrV6+m3XffnWzbph133JHOOeccKpfLI57vpptuokMOOYRSqRT19PTQBz7wgdoBZ+eddyYAdf+qwXL//fcTALr//vvrnu///t//S//tv/03cl2X5syZQ5/61KfozTffrNvm1FNPpUwmQ2+++SYdd9xxlMlkaO7cufSVr3yFwjAc9zO47bbb6G/+5m9q+3C33Xajiy66qO6xRx555Ii2jxUsRxxxBO2///6j3vfud7+bjj766HHbNZY77riDANAdd9xRd/ujjz5KAOimm24a8/HnnHMOGYZRFxBERN/61rcIAL3++utERDQwMECmadI555xTt53nedTV1UWf/exnY72Pmcac8utqrC2sW7cOhx56KPr7+/G5z30OS5YswVtvvYVf/vKXKBaLsG27tu2ZZ56JefPmYfXq1SgUCgCAb3zjG7jwwguxbNkynHHGGVi7di2uueYaPPHEE3jkkUdgWRZ838fy5cvheR7OOuss9Pb24q233sLtt9+O/v5+5HI5PP/88/jbv/1b7L///rjooovgOA5eeeUVPPLII2O2P8rjtNb4u7/7O/zhD3/A5z73Oey111549tlncfnll+Pll1/GbbfdVtv2wgsvxDe+8Q0cfvjhuOiii2DbNv74xz/ivvvuw9FHH40rrrgCZ511Frq6uvC1r30NALBgwYKG7bvxxhvxj//4jzjkkEOwZs0abNiwAd///vfxyCOP4Omnn0ZPT09tW6UUli9fjsMOOwyXXnop7rnnHnzve9/D7rvvjjPOOGPMz+HGG29EV1cXVq5cia6uLtx3331YvXo18vk8vvvd7wIAvva1r2FgYABvvvkmLr/8cgBAV1dXw+c8+eSTcfrpp+O5557DvvvuW7v9iSeewMsvv4zzzz+/dltfXx+UUmO2EQDS6TTS6TQA4OmnnwYAvOc976nb5uCDD4aUEk8//TQ+/elPN3yup59+Gu9+97uRzWbrbj/00EMBAM888wwWL16MZ599FmEYjngd27Zx4IEH1trBIpruNGOt6ZRTTiEpJT3xxBMj7tNaE9G2M5P3v//9dd90N27cSLZt09FHH13XT/Cv//qvBIB+/OMfE1HlejUAuvXWWxu24/LLLycAtGnTpqbaH+VxN910E0kpR1xHr16vf+SRR4iI6C9/+QtJKenv//7vR/R7VD8LosaXubY/M/F9n+bPn0/77rsvlUql2na33347AaDVq1fXbjv11FMJAF100UV1z3nQQQfRwQcfPPaHQJVLRtv7/Oc/T+l0uu7sq5nLXP39/eS6Lp177rl1t3/pS1+iTCZTd6lztDO20f5dcMEFtcesWLGCDMMY9bXnzZtHn/jEJ8Zs3z777ENHHXXUiNuff/55AkDXXnstERHdeuutBIAeeuihEduedNJJ1NvbO+brsHo8mouNoLXGbbfdho9+9KMjvrUBgBCi7ufTTz8dhmHUfr7nnnvg+z7OPvtsSCnrtstms7jjjjsAALlcDgDw+9//HsVicdS2VL+h//rXv4bWOvJ7iPK4W2+9FXvttReWLFmCzZs31/4dddRRAID7778fAHDbbbdBa43Vq1fXvR9g5GcRxZNPPomNGzfizDPPhOu6tduPPfZYLFmypPb5DPeFL3yh7ucPfOAD+K//+q9xXyuVStX+f3BwEJs3b8YHPvABFItFvPTSS023Hajst+OOOw4///nPQVvX1lNK4ZZbbsHxxx+PTCZT2/ZnP/sZ7r777nH/nXLKKbXHlEqlujPf4VzXRalUGrN9pVIJjuOM+tjq/cP/22jb8V6H1ePLXGyETZs2IZ/P113CGMuuu+5a9/Nf//pXAMCee+5Zd7tt29htt91q9++6665YuXIlLrvsMvzsZz/DBz7wAfzd3/0dPv3pT9eC5uMf/zj+9//+3/if//N/4rzzzsOHP/xhnHDCCfjYxz424sA+XJTH/eUvf8GLL76IefPmjfocGzduBAD853/+J6SU2HvvvSN9HuNp9PkAwJIlS/CHP/yh7jbXdUe0cdasWejr6xv3tZ5//nmcf/75uO+++5DP5+vuGxgYaLbpNaeccgpuueUWPPzwwzjiiCNwzz33YMOGDTj55JPrtnvf+97X9HOnUin4vj/qfeVyuS4gGz3e87xRH1u9f/h/G2073uuwehwmLLY4f3Tf+973cNppp+HXv/417rrrLnzpS1/CmjVr8Pjjj2PHHXdEKpXCQw89hPvvvx933HEH7rzzTtxyyy046qijcNddd9WdEW3fpvEep7XGfvvth8suu2zU51i8ePGE31eSGr3H8fT39+PII49ENpvFRRddhN133x2u6+I//uM/cO655zZ1pre95cuXY8GCBfjpT3+KI444Aj/96U/R29uLZcuW1W23adOmSH0mXV1dtX6ahQsXQimFjRs3Yv78+bVtfN/Hli1bsGjRojGfa+HChXjrrbdG3P72228DQO3xCxcurLt9+23Hex1Wjy9zsRHmzZuHbDaL5557bkKP33nnnQEAa9eurbvd9328+uqrtfur9ttv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2bJl+Mtf/jI9jY1pzZo1OOSQQ9Dd3Y358+fj+OOPx9q1a+u2KZfLWLFiBebMmYOuri6ceOKJ2LBhwzS1OD4Okzb10ksvQWuN6667Ds8//zwuv/xyXHvttfhf/+t/1bbJ5/M4+uijsfPOO+Opp57Cd7/7XXzjG9/AD3/4w2ls+cT4vo+TTjoJZ5xxxqj3K6Vw7LHHwvd9PProo/jJT36CG2+8EatXr57ilsZ3yy23YOXKlbjgggvwH//xHzjggAOwfPlybNy4cbqbFkuhUMABBxyAq666atT7L7nkEvzgBz/Atddeiz/+8Y/IZDJYvnw5yuUpLiaWgAcffBArVqzA448/jrvvvhtBEODoo49GobCtQNuXv/xl/Pa3v8Wtt96KBx98EOvWrcMJJ5wwja2OiVjHuOSSS2jXXXet/Xz11VfTrFmzyPO82m3nnnsu7bnnntPRvETccMMNlMvlRtz+u9/9jqSUtH79+tpt11xzDWWz2br33w4OPfRQWrFiRe1npRQtWrSI1qxZM42tShYA+tWvflX7WWtNvb299N3vfrd2W39/PzmOQz//+c+noYXJ2rhxIwGgBx98kIgq782yLLr11ltr27z44osEgB577LHpamYsfGbSQQYGBjB79uzaz4899hiOOOII2LZdu2358uVYu3Yt+vr6pqOJk+axxx7DfvvthwULFtRuW758OfL5PJ5//vlpbFlzfN/HU089hWXLltVuk1Ji2bJleOyxx6axZZPr1Vdfxfr16+vedy6Xw2GHHdYR73tgYAAAan+fTz31FIIgqHu/S5YswU477dS275fDpEO88soruPLKK/H5z3++dtv69evrDq4Aaj+vX79+Sts32TrlvW7evBlKqVHfSzu9j2ZV31snvm+tNc4++2y8733vw7777gug8n5t2x7R/9fO75fDpMWcd955EEKM+e+ll16qe8xbb72FY445BieddBJOP/30aWp58ybyXhlrNytWrMBzzz2HX/ziF9PdlEnFVYNbzFe+8hWcdtppY26z22671f5/3bp1+NCHPoTDDz98RMd6b2/viNEh1Z97e3uTaXAMzb7XsfT29o4Y8dRK7zWquXPnwjCMUfdbO72PZlXf24YNG7Bw4cLa7Rs2bMCBBx44Ta2K74tf/CJuv/12PPTQQ3XVyHt7e+H7Pvr7++vOTtp6P093pw2buDfffJPe9a530Sc+8QkKw3DE/dUOeN/3a7etWrWqozvgN2zYULvtuuuuo2w2S+VyeQpbGN+hhx5KX/ziF2s/K6Vohx12mBEd8JdeemnttoGBgbbtgNda04oVK2jRokX08ssvj7i/2gH/y1/+snbbSy+91NYd8BwmberNN9+kPfbYgz784Q/Tm2++SW+//XbtX1V/fz8tWLCATj75ZHruuefoF7/4BaXTabruuuumseUT89e//pWefvppuvDCC6mrq4uefvppevrpp2lwcJCIiMIwpH333ZeOPvpoeuaZZ+jOO++kefPm0apVq6a55c37xS9+QY7j0I033kgvvPACfe5zn6Oenp66kWrtaHBwsLbfANBll11GTz/9NP31r38lIqJvf/vb1NPTQ7/+9a/pz3/+Mx133HG06667UqlUmuaWN++MM86gXC5HDzzwQN3fZrFYrG3zhS98gXbaaSe677776Mknn6SlS5fS0qVLp7HV8XCYtKkbbrihskj4KP+G+9Of/kTvf//7yXEc2mGHHejb3/72NLU4nlNPPXXU93r//ffXtnnttdfoIx/5CKVSKZo7dy595StfoSAIpq/RMVx55ZW00047kW3bdOihh9Ljjz8+3U2K7f777x91H5566qlEVPk2//Wvf50WLFhAjuPQhz/8YVq7du30NnqCGv1t3nDDDbVtSqUSnXnmmTRr1ixKp9P093//93VfBtsNVw1mjDEWG4/mYowxFhuHCWOMsdg4TBhjjMXGYcIYYyw2DhPGGGOxcZgwxhiLjcOEMcZYbBwmjDHGYuMwYYwxFhuHCWOMsdg4TBhjjMXGYcJYi9i0aRN6e3vxrW99q3bbo48+Ctu2ce+9905jyxgbHxd6ZKyF/O53v8Pxxx+PRx99FHvuuScOPPBAHHfccbjsssumu2mMjYnDhLEWs2LFCtxzzz14z3veg2effRZPPPEEHMeZ7mYxNiYOE8ZaTKlUwr777os33ngDTz31FPbbb7/pbhJj4+I+E8ZazH/+539i3bp10Frjtddem+7mMBYJn5kw1kJ838ehhx6KAw88EHvuuSeuuOIKPPvss5g/f/50N42xMXGYMNZCzjnnHPzyl7/En/70J3R1deHII49ELpfD7bffPt1NY2xMfJmLsRbxwAMP4IorrsBNN92EbDYLKSVuuukmPPzww7jmmmumu3mMjYnPTBhjjMXGZyaMMcZi4zBhjDEWG4cJY4yx2DhMGGOMxcZhwhhjLDYOE8YYY7FxmDDGGIuNw4QxxlhsHCaMMcZi4zBhjDEWG4cJY4yx2DhMGGOMxfb/A6VhX9d6GI35AAAAAElFTkSuQmCC\n",
"text/plain": [
"