Daniel Kleine c65928f7dc
added std error bars (#320)
* added std error bars

* fixed changes

* Update on A100

---------

Co-authored-by: Sebastian Raschka <mail@sebastianraschka.com>
2024-08-13 20:57:41 -05:00

1677 lines
310 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "e2e65c03-36d4-413f-9b23-5cdd816729ab",
"metadata": {
"id": "e2e65c03-36d4-413f-9b23-5cdd816729ab"
},
"source": [
"<table style=\"width:100%\">\n",
"<tr>\n",
"<td style=\"vertical-align:middle; text-align:left;\">\n",
"<font size=\"2\">\n",
"Supplementary code for the <a href=\"http://mng.bz/orYv\">Build a Large Language Model From Scratch</a> book by <a href=\"https://sebastianraschka.com\">Sebastian Raschka</a><br>\n",
"<br>Code repository: <a href=\"https://github.com/rasbt/LLMs-from-scratch\">https://github.com/rasbt/LLMs-from-scratch</a>\n",
"</font>\n",
"</td>\n",
"<td style=\"vertical-align:middle; text-align:left;\">\n",
"<a href=\"http://mng.bz/orYv\"><img src=\"https://sebastianraschka.com/images/LLMs-from-scratch-images/cover-small.webp\" width=\"100px\"></a>\n",
"</td>\n",
"</tr>\n",
"</table>"
]
},
{
"cell_type": "markdown",
"id": "6f678e62-7bcb-4405-86ae-dce94f494303",
"metadata": {
"id": "6f678e62-7bcb-4405-86ae-dce94f494303"
},
"source": [
"# Comparing Efficient Multi-Head Attention Implementations"
]
},
{
"cell_type": "markdown",
"id": "b742938a-4bfc-4527-a1f1-d5963508967d",
"metadata": {
"id": "b742938a-4bfc-4527-a1f1-d5963508967d"
},
"source": [
"This code notebook compares different ways to implement causal multi-head attention used in decoder-style LLMs like GPT, Llama, etc."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7898551e-f582-48ac-9f66-3632abe2a93f",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7898551e-f582-48ac-9f66-3632abe2a93f",
"outputId": "3aa27e4f-402c-4adc-f2d1-271bc6e0385d"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PyTorch version: 2.5.0.dev20240813\n"
]
}
],
"source": [
"import torch\n",
"\n",
"torch.manual_seed(123)\n",
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"print(f\"PyTorch version: {torch.__version__}\")\n",
"\n",
"batch_size = 8\n",
"context_len = 1024\n",
"embed_dim = 768\n",
"embeddings = torch.randn((batch_size, context_len, embed_dim), device=device)"
]
},
{
"cell_type": "markdown",
"id": "2f9bb1b6-a1e5-4e0a-884d-0f31b374a8d6",
"metadata": {
"id": "2f9bb1b6-a1e5-4e0a-884d-0f31b374a8d6"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 1) CausalAttention MHA wrapper class from chapter 3"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "297c93ed-aec0-4896-bb89-42c4b294d3d1",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "297c93ed-aec0-4896-bb89-42c4b294d3d1",
"outputId": "e76a6a62-7a52-4c6b-aa36-e90cea0cd415"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([8, 1024, 768])\n"
]
}
],
"source": [
"from ch03 import MultiHeadAttentionWrapper as Ch03_MHA_Wrapper\n",
"\n",
"mha_ch03_wrapper = Ch03_MHA_Wrapper(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim//12,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False\n",
").to(device)\n",
"\n",
"out = mha_ch03_wrapper(embeddings)\n",
"print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "21930804-b327-40b1-8e63-94dcad39ce7b",
"metadata": {
"id": "21930804-b327-40b1-8e63-94dcad39ce7b"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 2) The multi-head attention class from chapter 3"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4ee6a61b-d25c-4a0c-8a59-f285544e3710",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "4ee6a61b-d25c-4a0c-8a59-f285544e3710",
"outputId": "650c8992-a6c6-4f28-938a-ee9297131d38"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([8, 1024, 768])\n"
]
}
],
"source": [
"from ch03 import MultiHeadAttention as Ch03_MHA\n",
"\n",
"mha_ch03 = Ch03_MHA(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False\n",
").to(device)\n",
"\n",
"out = mha_ch03(embeddings)\n",
"print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "73cd11da-ea3b-4081-b483-c4965dfefbc4",
"metadata": {
"id": "73cd11da-ea3b-4081-b483-c4965dfefbc4"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 3) An alternative multi-head attention with combined weights"
]
},
{
"cell_type": "markdown",
"id": "1fa1a5ea-eaff-4d2d-aaf0-b34cdb6fd4dd",
"metadata": {
"id": "1fa1a5ea-eaff-4d2d-aaf0-b34cdb6fd4dd"
},
"source": [
"- The code for the `MultiHeadAttentionCombinedQKV` class below is based on code that was kindly shared by [Rayed Bin Wahed](https://github.com/rasbt/LLMs-from-scratch/discussions/51)\n",
"- The main difference between the `MultiHeadAttentionCombinedQKV` class and the `MultiHeadAttention` class used in chapter 3 is that `MultiHeadAttentionCombinedQKV` uses a single weight matrix, `self.qkv = nn.Linear(d_in, 3 * d_out, bias=qkv_bias)` instead of separate weight matrices:\n",
"\n",
" - `self.W_query = nn.Linear(d_in, d_out, bias=qkv_bias)`\n",
" - `self.W_key = nn.Linear(d_in, d_out, bias=qkv_bias)`\n",
" - `self.W_value = nn.Linear(d_in, d_out, bias=qkv_bias)`\n",
"\n",
"- Here, `self.qkv` combines all three weight matrices `self.W_query`, `self.W_key`, and `self.W_value` to carry out the query, key, and value computation in a single step\n",
"- Using `q, k, v = qkv.unbind(0)`, we obtain the individual query, key, and value tensors, which are then used similarly to the query, key, and value tensors in the `MultiHeadAttention` class in chapter 3"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "9a6bd0a2-f27c-4602-afa0-c96cd295c1a6",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "9a6bd0a2-f27c-4602-afa0-c96cd295c1a6",
"outputId": "f0bae195-7caf-4aee-efd6-d55a56c1d4d3"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([8, 1024, 768])\n"
]
}
],
"source": [
"import torch.nn as nn\n",
"\n",
"\n",
"class MultiHeadAttentionCombinedQKV(nn.Module):\n",
" def __init__(self, d_in, d_out, num_heads, context_length, dropout=0.0, qkv_bias=False):\n",
" super().__init__()\n",
"\n",
" assert d_out % num_heads == 0, \"embed_dim is indivisible by num_heads\"\n",
"\n",
" self.num_heads = num_heads\n",
" self.context_length = context_length\n",
" self.head_dim = d_out // num_heads\n",
"\n",
" self.qkv = nn.Linear(d_in, 3 * d_out, bias=qkv_bias)\n",
" self.proj = nn.Linear(d_out, d_out)\n",
" self.dropout = nn.Dropout(dropout)\n",
"\n",
" self.register_buffer(\n",
" \"mask\", torch.triu(torch.ones(context_length, context_length), diagonal=1)\n",
" )\n",
"\n",
" def forward(self, x):\n",
" batch_size, num_tokens, embed_dim = x.shape\n",
"\n",
" # (b, num_tokens, embed_dim) --> (b, num_tokens, 3 * embed_dim)\n",
" qkv = self.qkv(x)\n",
"\n",
" # (b, num_tokens, 3 * embed_dim) --> (b, num_tokens, 3, num_heads, head_dim)\n",
" qkv = qkv.view(batch_size, num_tokens, 3, self.num_heads, self.head_dim)\n",
"\n",
" # (b, num_tokens, 3, num_heads, head_dim) --> (3, b, num_heads, num_tokens, head_dim)\n",
" qkv = qkv.permute(2, 0, 3, 1, 4)\n",
"\n",
" # (3, b, num_heads, num_tokens, head_dim) -> 3 times (b, num_head, num_tokens, head_dim)\n",
" queries, keys, values = qkv.unbind(0)\n",
"\n",
" # (b, num_heads, num_tokens, head_dim) --> (b, num_heads, num_tokens, num_tokens)\n",
" attn_scores = queries @ keys.transpose(-2, -1)\n",
" attn_scores = attn_scores.masked_fill(\n",
" self.mask.bool()[:num_tokens, :num_tokens], -torch.inf\n",
" )\n",
"\n",
" attn_weights = torch.softmax(attn_scores / keys.shape[-1]**-0.5, dim=-1)\n",
" attn_weights = self.dropout(attn_weights)\n",
"\n",
" # (b, num_heads, num_tokens, num_tokens) --> (b, num_heads, num_tokens, head_dim)\n",
" context_vec = attn_weights @ values\n",
"\n",
" # (b, num_heads, num_tokens, head_dim) --> (b, num_tokens, num_heads, head_dim)\n",
" context_vec = context_vec.transpose(1, 2)\n",
"\n",
" # (b, num_tokens, num_heads, head_dim) --> (b, num_tokens, embed_dim)\n",
" context_vec = context_vec.contiguous().view(batch_size, num_tokens, embed_dim)\n",
"\n",
" context_vec = self.proj(context_vec)\n",
"\n",
" return context_vec\n",
"\n",
"\n",
"mha_combined_qkv = MultiHeadAttentionCombinedQKV(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False\n",
").to(device)\n",
"\n",
"out = mha_combined_qkv(embeddings)\n",
"print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "48a042d3-ee78-4c29-bf63-d92fe6706632",
"metadata": {
"id": "48a042d3-ee78-4c29-bf63-d92fe6706632"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 4) Multihead attention with PyTorch's scaled dot product attention and FlashAttention"
]
},
{
"cell_type": "markdown",
"id": "f78e346f-3b85-44e6-9feb-f01131381148",
"metadata": {
"id": "f78e346f-3b85-44e6-9feb-f01131381148"
},
"source": [
"- The implementation below uses PyTorch's [`scaled_dot_product_attention`](https://pytorch.org/docs/stable/generated/torch.nn.functional.scaled_dot_product_attention.html) function, which implements a memory-optimized version of self-attention called [FlashAttention](https://arxiv.org/abs/2205.14135)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "1b8e5a0d-1f65-4a03-bf6e-723f0cc428f5",
"metadata": {
"id": "1b8e5a0d-1f65-4a03-bf6e-723f0cc428f5"
},
"outputs": [],
"source": [
"class MHAPyTorchScaledDotProduct(nn.Module):\n",
" def __init__(self, d_in, d_out, num_heads, context_length, dropout=0.0, qkv_bias=False):\n",
" super().__init__()\n",
"\n",
" assert d_out % num_heads == 0, \"embed_dim is indivisible by num_heads\"\n",
"\n",
" self.num_heads = num_heads\n",
" self.context_length = context_length\n",
" self.head_dim = d_out // num_heads\n",
" self.d_out = d_out\n",
"\n",
" self.qkv = nn.Linear(d_in, 3 * d_out, bias=qkv_bias)\n",
" self.proj = nn.Linear(d_out, d_out)\n",
" self.dropout = dropout\n",
"\n",
" def forward(self, x):\n",
" batch_size, num_tokens, embed_dim = x.shape\n",
"\n",
" # (b, num_tokens, embed_dim) --> (b, num_tokens, 3 * embed_dim)\n",
" qkv = self.qkv(x)\n",
"\n",
" # (b, num_tokens, 3 * embed_dim) --> (b, num_tokens, 3, num_heads, head_dim)\n",
" qkv = qkv.view(batch_size, num_tokens, 3, self.num_heads, self.head_dim)\n",
"\n",
" # (b, num_tokens, 3, num_heads, head_dim) --> (3, b, num_heads, num_tokens, head_dim)\n",
" qkv = qkv.permute(2, 0, 3, 1, 4)\n",
"\n",
" # (3, b, num_heads, num_tokens, head_dim) -> 3 times (b, num_heads, num_tokens, head_dim)\n",
" queries, keys, values = qkv\n",
"\n",
" use_dropout = 0. if not self.training else self.dropout\n",
"\n",
" context_vec = nn.functional.scaled_dot_product_attention(\n",
" queries, keys, values, attn_mask=None, dropout_p=use_dropout, is_causal=True)\n",
"\n",
" # Combine heads, where self.d_out = self.num_heads * self.head_dim\n",
" context_vec = context_vec.transpose(1, 2).contiguous().view(batch_size, num_tokens, self.d_out)\n",
"\n",
" context_vec = self.proj(context_vec)\n",
"\n",
" return context_vec"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "fbc8ba92-3471-41cb-b1b2-4c0ef5be392b",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "fbc8ba92-3471-41cb-b1b2-4c0ef5be392b",
"outputId": "da8b6836-35c6-43f5-a9e2-99217d517101"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([8, 1024, 768])\n"
]
}
],
"source": [
"mha_pytorch_scaled = MHAPyTorchScaledDotProduct(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False\n",
").to(device)\n",
"\n",
"out = mha_pytorch_scaled(embeddings)\n",
"print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "51492724-6018-49f6-8bf6-ae9e585229c3",
"metadata": {
"id": "51492724-6018-49f6-8bf6-ae9e585229c3"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 5) PyTorch's scaled dot product attention without FlashAttention\n",
"\n",
"- This is similar to above, except that we disable FlashAttention by passing an explicit causal mask"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "bad53538-e905-4065-ba0c-caacdfec5a0b",
"metadata": {
"id": "bad53538-e905-4065-ba0c-caacdfec5a0b"
},
"outputs": [],
"source": [
"class MHAPyTorchSDPAWithoutFlash(nn.Module):\n",
" def __init__(self, d_in, d_out, num_heads, context_length, dropout=0.0, qkv_bias=False):\n",
" super().__init__()\n",
"\n",
" assert d_out % num_heads == 0, \"embed_dim is indivisible by num_heads\"\n",
"\n",
" self.num_heads = num_heads\n",
" self.context_length = context_length\n",
" self.head_dim = d_out // num_heads\n",
" self.d_out = d_out\n",
"\n",
" self.qkv = nn.Linear(d_in, 3 * d_out, bias=qkv_bias)\n",
" self.proj = nn.Linear(d_out, d_out)\n",
" self.dropout = dropout\n",
" self.register_buffer(\"mask\", torch.triu(torch.ones(context_length, context_length), diagonal=1).bool())\n",
"\n",
" def forward(self, x):\n",
" batch_size, num_tokens, embed_dim = x.shape\n",
"\n",
" # (b, num_tokens, embed_dim) --> (b, num_tokens, 3 * embed_dim)\n",
" qkv = self.qkv(x)\n",
"\n",
" # (b, num_tokens, 3 * embed_dim) --> (b, num_tokens, 3, num_heads, head_dim)\n",
" qkv = qkv.view(batch_size, num_tokens, 3, self.num_heads, self.head_dim)\n",
"\n",
" # (b, num_tokens, 3, num_heads, head_dim) --> (3, b, num_heads, num_tokens, head_dim)\n",
" qkv = qkv.permute(2, 0, 3, 1, 4)\n",
"\n",
" # (3, b, num_heads, num_tokens, head_dim) -> 3 times (b, num_heads, num_tokens, head_dim)\n",
" queries, keys, values = qkv\n",
"\n",
" use_dropout = 0. if not self.training else self.dropout\n",
"\n",
" # Ensure attn_mask is compatible with expected shape and `batch_first=True`\n",
" # No need to manually adjust for num_heads; ensure it's right for the sequence\n",
" if self.context_length >= num_tokens:\n",
" attn_mask = self.mask[:num_tokens, :num_tokens]\n",
" else:\n",
" attn_mask = self.mask[:self.context_length, :self.context_length]\n",
"\n",
" context_vec = nn.functional.scaled_dot_product_attention(\n",
" queries, keys, values, attn_mask=attn_mask, dropout_p=use_dropout, is_causal=False)\n",
"\n",
" # Combine heads, where self.d_out = self.num_heads * self.head_dim\n",
" context_vec = context_vec.transpose(1, 2).contiguous().view(batch_size, num_tokens, self.d_out)\n",
"\n",
" context_vec = self.proj(context_vec)\n",
"\n",
" return context_vec"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "f3da7850-e772-47d3-bd51-22d077b01412",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "f3da7850-e772-47d3-bd51-22d077b01412",
"outputId": "3c726fe1-6601-4a30-c2d2-e9fd48547c50"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([8, 1024, 768])\n"
]
}
],
"source": [
"mha_pytorch_sdpa_no_flash = MHAPyTorchSDPAWithoutFlash(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False\n",
").to(device)\n",
"\n",
"out = mha_pytorch_sdpa_no_flash(embeddings)\n",
"print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "351c318f-4835-4d74-8d58-a070222447c4",
"metadata": {
"id": "351c318f-4835-4d74-8d58-a070222447c4"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 6) Using PyTorch's torch.nn.MultiheadAttention"
]
},
{
"cell_type": "markdown",
"id": "74a6d060-6324-48fa-a35c-cb09f2a48965",
"metadata": {
"id": "74a6d060-6324-48fa-a35c-cb09f2a48965"
},
"source": [
"- Below, we use PyTorch's [torch.nn.MultiheadAttention](https://pytorch.org/docs/stable/generated/torch.nn.MultiheadAttention.html) implementation"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "3799c7ef-3155-42c6-a829-f95656453ae0",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3799c7ef-3155-42c6-a829-f95656453ae0",
"outputId": "dcb11757-c8c2-4909-c0e5-5ba2cf7b1096"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([8, 1024, 768])\n"
]
}
],
"source": [
"import torch.nn as nn\n",
"\n",
"\n",
"class MHAPyTorchClass(nn.Module):\n",
" def __init__(self, d_in, d_out, num_heads, context_length, dropout=0.0, qkv_bias=False, need_weights=True):\n",
" super().__init__()\n",
"\n",
" self.context_length = context_length\n",
" self.multihead_attn = nn.MultiheadAttention(\n",
" embed_dim=d_out,\n",
" num_heads=num_heads,\n",
" dropout=dropout,\n",
" bias=qkv_bias,\n",
" add_bias_kv=qkv_bias,\n",
" batch_first=True,\n",
" )\n",
"\n",
" self.need_weights = need_weights\n",
" self.proj = nn.Linear(d_out, d_out)\n",
" self.register_buffer(\"mask\", torch.triu(torch.ones(context_length, context_length), diagonal=1).bool())\n",
"\n",
" def forward(self, x):\n",
" batch_size, num_tokens, _ = x.shape\n",
"\n",
" # Ensure attn_mask is compatible with expected shape and `batch_first=True`\n",
" # No need to manually adjust for num_heads; ensure it's right for the sequence\n",
" if self.context_length >= num_tokens:\n",
" attn_mask = self.mask[:num_tokens, :num_tokens]\n",
" else:\n",
" attn_mask = self.mask[:self.context_length, :self.context_length]\n",
"\n",
" # attn_mask broadcasting will handle batch_size dimension implicitly\n",
" attn_output, _ = self.multihead_attn(\n",
" x, x, x, attn_mask=attn_mask, need_weights=self.need_weights\n",
" )\n",
"\n",
" output = self.proj(attn_output)\n",
"\n",
" return output\n",
"\n",
"\n",
"mha_pytorch_class_default = MHAPyTorchClass(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False\n",
").to(device)\n",
"\n",
"out = mha_pytorch_class_default(embeddings)\n",
"print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "a3953bff-1056-4de2-bfd1-dfccf659eee4",
"metadata": {
"id": "a3953bff-1056-4de2-bfd1-dfccf659eee4"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 7) Using PyTorch's torch.nn.MultiheadAttention with `scaled_dot_product_attention`"
]
},
{
"cell_type": "markdown",
"id": "d2164859-31a0-4537-b4fb-27d57675ba77",
"metadata": {
"id": "d2164859-31a0-4537-b4fb-27d57675ba77"
},
"source": [
"- Set `need_weights` (default `True`) to need_weights=False so that MultiheadAttention uses `scaled_dot_product_attention` [according to the documentation](https://github.com/pytorch/pytorch/blob/71d020262793542974cf13b30f2a9099773f015c/torch/nn/modules/activation.py#L1096)\n",
"\n",
"> need_weights: If specified, returns ``attn_output_weights`` in addition to ``attn_outputs``.\n",
" Set ``need_weights=False`` to use the optimized ``scaled_dot_product_attention``\n",
" and achieve the best performance for MHA.\n",
" Default: ``True``."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "4a4c2afe-5e1f-4bd7-a118-67031176f147",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "4a4c2afe-5e1f-4bd7-a118-67031176f147",
"outputId": "60a22fd6-fda4-478a-98d9-331623814018"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([8, 1024, 768])\n"
]
}
],
"source": [
"mha_pytorch_class_noweights = MHAPyTorchClass(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False,\n",
" need_weights=False # NEW!\n",
").to(device)\n",
"\n",
"out = mha_pytorch_class_noweights(embeddings)\n",
"print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "21f4ff35-651c-4e47-bfa1-016f3de01ecc",
"metadata": {
"id": "21f4ff35-651c-4e47-bfa1-016f3de01ecc"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## 8) Using PyTorch's FlexAttention\n",
"\n",
"- See [FlexAttention: The Flexibility of PyTorch with the Performance of FlashAttention](https://pytorch.org/blog/flexattention/) to learn more about FlexAttention\n",
"- This is currently only supported in PyTorch 2.5 (nightly), which you can install on a CPU machine via\n",
"\n",
" ```bash\n",
" pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu -U\n",
" ```\n",
"\n",
"- To install PyTorch nighly on a GPU machine, use the following (for more information, also see the installation menu on [pytorch.org](https://pytorch.org/))\n",
"\n",
" ```bash\n",
" pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121 -U\n",
" ```"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "834318c8-4748-4902-99f0-70ee02bef63e",
"metadata": {
"id": "834318c8-4748-4902-99f0-70ee02bef63e"
},
"outputs": [],
"source": [
"from packaging.version import parse as parse_version\n",
"\n",
"def normalize_version(version):\n",
" parsed_version = parse_version(version)\n",
" return parse_version(f\"{parsed_version.major}.{parsed_version.minor}.{parsed_version.micro}\")\n",
"\n",
"current_version = normalize_version(torch.__version__)\n",
"MIN_TORCH_VERSION = \"2.5.0\"\n",
"required_version = parse_version(MIN_TORCH_VERSION)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "WYyFRCXndVH9",
"metadata": {
"id": "WYyFRCXndVH9"
},
"outputs": [],
"source": [
"if current_version >= required_version:\n",
" from torch.nn.attention.flex_attention import flex_attention, create_block_mask\n",
"\n",
"\n",
"def causal(b, h, q_idx, kv_idx):\n",
" return q_idx >= kv_idx\n",
"\n",
"\n",
"class MHAPyTorchFlexAttention(nn.Module):\n",
"\n",
" def __init__(self, d_in, d_out, num_heads, context_length, dropout=0.0, qkv_bias=False):\n",
" super().__init__()\n",
"\n",
" assert d_out % num_heads == 0, \"embed_dim is indivisible by num_heads\"\n",
"\n",
" self.num_heads = num_heads\n",
" self.context_length = context_length\n",
" self.head_dim = d_out // num_heads\n",
" self.d_out = d_out\n",
"\n",
" self.qkv = nn.Linear(d_in, 3 * d_out, bias=qkv_bias)\n",
" self.proj = nn.Linear(d_out, d_out)\n",
" self.dropout = dropout\n",
" # self.register_buffer(\"block_mask\", create_block_mask(causal, B=None, H=None, Q_LEN=context_length, KV_LEN=context_length))\n",
" # `create_block_mask` function does not support buffers, yet\n",
" self.block_mask = create_block_mask(causal, B=None, H=None, Q_LEN=context_length, KV_LEN=context_length)\n",
"\n",
"\n",
" def forward(self, x):\n",
" batch_size, num_tokens, embed_dim = x.shape\n",
"\n",
" # (b, num_tokens, embed_dim) --> (b, num_tokens, 3 * embed_dim)\n",
" qkv = self.qkv(x)\n",
"\n",
" # (b, num_tokens, 3 * embed_dim) --> (b, num_tokens, 3, num_heads, head_dim)\n",
" qkv = qkv.view(batch_size, num_tokens, 3, self.num_heads, self.head_dim)\n",
"\n",
" # (b, num_tokens, 3, num_heads, head_dim) --> (3, b, num_heads, num_tokens, head_dim)\n",
" qkv = qkv.permute(2, 0, 3, 1, 4)\n",
"\n",
" # (3, b, num_heads, num_tokens, head_dim) -> 3 times (b, num_heads, num_tokens, head_dim)\n",
" queries, keys, values = qkv\n",
"\n",
" use_dropout = 0. if not self.training else self.dropout\n",
"\n",
" # Ensure attn_mask is compatible with expected shape and `batch_first=True`\n",
" # No need to manually adjust for num_heads; ensure it's right for the sequence\n",
" if self.context_length >= num_tokens:\n",
" attn_mask = self.block_mask[:num_tokens, :num_tokens]\n",
" else:\n",
" attn_mask = self.block_mask[:self.context_length, :self.context_length]\n",
"\n",
" context_vec = flex_attention(queries, keys, values, block_mask=attn_mask)\n",
"\n",
" # Combine heads, where self.d_out = self.num_heads * self.head_dim\n",
" context_vec = context_vec.transpose(1, 2).contiguous().view(batch_size, num_tokens, self.d_out)\n",
"\n",
" context_vec = self.proj(context_vec)\n",
"\n",
" return context_vec"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "9cdaaf8a-f956-44bc-932f-4d33448e8aaf",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "9cdaaf8a-f956-44bc-932f-4d33448e8aaf",
"outputId": "0d13771e-46df-4200-e20d-422fcb8144b3"
},
"outputs": [],
"source": [
"if current_version >= required_version and torch.cuda.is_available():\n",
"\n",
" mha_pytorch_flex = MHAPyTorchFlexAttention(\n",
" d_in=embed_dim,\n",
" d_out=embed_dim,\n",
" context_length=context_len,\n",
" dropout=0.0,\n",
" num_heads=12,\n",
" qkv_bias=False\n",
" ).to(device)\n",
"\n",
" out = mha_pytorch_flex(embeddings)\n",
" print(out.shape)"
]
},
{
"cell_type": "markdown",
"id": "8877de71-f84f-4f6d-bc87-7552013b6301",
"metadata": {
"id": "8877de71-f84f-4f6d-bc87-7552013b6301"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## Quick speed comparison (M3 Macbook Air CPU)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "219cf93a-078f-434d-888c-2458d0731285",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "219cf93a-078f-434d-888c-2458d0731285",
"outputId": "a10b52d4-b4e6-43c2-9677-113c41edd3b7"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PyTorch version: 2.5.0.dev20240813\n",
"Running on cpu\n"
]
}
],
"source": [
"torch.manual_seed(123)\n",
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"print(f\"PyTorch version: {torch.__version__}\")\n",
"print(f\"Running on {device}\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "a97c0b2e-6593-49d8-98bc-2267b3aa610f",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "a97c0b2e-6593-49d8-98bc-2267b3aa610f",
"outputId": "7bcd7da4-d115-4ba6-efba-377a0bd7d3a8"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"183 ms ± 6.95 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"## 1) CausalAttention MHA wrapper class from chapter 3\n",
"%timeit mha_ch03_wrapper(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "19db9c2c-8e75-431a-8eef-0b4d8284e6e6",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "19db9c2c-8e75-431a-8eef-0b4d8284e6e6",
"outputId": "b04b4d0d-71aa-4944-f02b-131bf5a50202"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"179 ms ± 1.22 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
]
}
],
"source": [
"## 2) The multi-head attention class from chapter 3\n",
"%timeit mha_ch03(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "aa526ee0-7a88-4f34-a49a-f8f97da83779",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "aa526ee0-7a88-4f34-a49a-f8f97da83779",
"outputId": "5436928a-7b98-4c40-bf51-97973f13327e"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"197 ms ± 1.78 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"## 3) An alternative multi-head attention with combined weights\n",
"%timeit mha_combined_qkv(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "cc2b4256-16d8-4c34-9fd0-d4b4af0e60fa",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "cc2b4256-16d8-4c34-9fd0-d4b4af0e60fa",
"outputId": "9e07ce73-a2de-4e2c-8276-64626df9450e"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"65.4 ms ± 315 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
]
}
],
"source": [
"## 4) Multihead attention with PyTorch's scaled dot product attention\n",
"%timeit mha_pytorch_scaled(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "c44305ce-9f61-451a-b9ef-30caba222357",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "c44305ce-9f61-451a-b9ef-30caba222357",
"outputId": "6bab4a24-5bb4-4ad6-b260-3b442f598950"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"112 ms ± 20.2 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
]
}
],
"source": [
"## 5) PyTorch's scaled dot product attention without FlashAttention\n",
"%timeit mha_pytorch_sdpa_no_flash(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "0f209e70-ebb6-4a1a-b608-1ff42e41c01d",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "0f209e70-ebb6-4a1a-b608-1ff42e41c01d",
"outputId": "630c49d1-8a06-4148-cd96-a7b2467310a0"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"199 ms ± 3.87 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"## 6) Using PyTorch's torch.nn.MultiheadAttention\n",
"%timeit mha_pytorch_class_default(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "3f4968c2-8d40-4ab9-8dba-052b4f77d756",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3f4968c2-8d40-4ab9-8dba-052b4f77d756",
"outputId": "10f6a268-f9cf-446c-aa83-e87b6a0b4f5c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"143 ms ± 19.7 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
]
}
],
"source": [
"## 7) Using PyTorch's torch.nn.MultiheadAttention disabling `need_weights`\n",
"%timeit mha_pytorch_class_noweights(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c143200a-6e26-4185-af52-6cf2379d72ae",
"metadata": {},
"outputs": [],
"source": [
"## 8) Using PyTorch's FlexAttention\n",
"\n",
"# Requires PyTorch 2.5.0 or newer and currently only supports CUDA PyTorch\n",
"%timeit mha_pytorch_flex(embeddings)"
]
},
{
"cell_type": "markdown",
"id": "a78ff594-6cc2-496d-a302-789fa104c3c9",
"metadata": {
"id": "a78ff594-6cc2-496d-a302-789fa104c3c9"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"## Quick speed comparison (Nvidia A100 GPU)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "RStnI1pEi6Eo",
"metadata": {
"id": "RStnI1pEi6Eo"
},
"outputs": [],
"source": [
"# Enable tensor cores\n",
"torch.set_float32_matmul_precision(\"high\")"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "e8431d75-e1c9-4d9a-b7da-9a1ff391f2bf",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "e8431d75-e1c9-4d9a-b7da-9a1ff391f2bf",
"outputId": "308f8f74-1757-4534-9050-78676bb948a5"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PyTorch version: 2.5.0.dev20240813+cu121\n",
"Running on cuda\n"
]
}
],
"source": [
"torch.manual_seed(123)\n",
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"print(f\"PyTorch version: {torch.__version__}\")\n",
"print(f\"Running on {device}\")"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "707a2a14-a089-48a8-88aa-d328e1e0a9d0",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "707a2a14-a089-48a8-88aa-d328e1e0a9d0",
"outputId": "38942aa6-8bd7-4dd9-e528-b833231999d0"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.28 ms ± 26.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"## 1) CausalAttention MHA wrapper class from chapter 3\n",
"%timeit mha_ch03_wrapper(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "8686dd69-3655-40e4-a57b-a2c55532a010",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8686dd69-3655-40e4-a57b-a2c55532a010",
"outputId": "0f8adeba-2119-4361-a439-e48b1e870857"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.09 ms ± 108 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
]
}
],
"source": [
"## 2) The multi-head attention class from chapter 3\n",
"%timeit mha_ch03(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "2209d7df-e54b-4910-ae2b-c78cf684d9bf",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2209d7df-e54b-4910-ae2b-c78cf684d9bf",
"outputId": "3ce8ddef-df53-4ead-8654-d46f4f343844"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.81 ms ± 4.91 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"## 3) An alternative multi-head attention with combined weights\n",
"%timeit mha_combined_qkv(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "1075abe2-4839-4fd6-af3e-c09bb3651e26",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1075abe2-4839-4fd6-af3e-c09bb3651e26",
"outputId": "e4c72e71-1275-4ce5-9973-2dfde98fc626"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.24 ms ± 1.14 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
]
}
],
"source": [
"## 4) Multihead attention with PyTorch's scaled dot product attention\n",
"%timeit mha_pytorch_scaled(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "218adbaf-f17f-47d9-81d5-41c758218df7",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "218adbaf-f17f-47d9-81d5-41c758218df7",
"outputId": "9251f2a9-aaa9-4403-87bd-b24b0a6e8be4"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.01 ms ± 120 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"## 5) PyTorch's scaled dot product attention without FlashAttention\n",
"%timeit mha_pytorch_sdpa_no_flash(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "868e3670-8edc-47bc-9e06-eb505e44dc9d",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "868e3670-8edc-47bc-9e06-eb505e44dc9d",
"outputId": "d951ed94-1fef-4d63-935e-19ee8e007f71"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.06 ms ± 228 ns per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"## 6) Using PyTorch's torch.nn.MultiheadAttention\n",
"%timeit mha_pytorch_class_default(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "944870e6-de54-4e3b-a455-b8f21f6f92c8",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "944870e6-de54-4e3b-a455-b8f21f6f92c8",
"outputId": "8c69a388-ec32-49d4-a59e-cac4af1aa37a"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.34 ms ± 6.28 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"## 7) Using PyTorch's torch.nn.MultiheadAttention disabling `need_weights`\n",
"%timeit mha_pytorch_class_noweights(embeddings)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "evKtpb5QN_2A",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "evKtpb5QN_2A",
"outputId": "38702248-46c0-4dc6-e584-96617f2a9650"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"8.38 ms ± 476 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"## 8) Using PyTorch's FlexAttention\n",
"\n",
"# Requires PyTorch 2.5.0 or newer\n",
"%timeit mha_pytorch_flex(embeddings)"
]
},
{
"cell_type": "markdown",
"id": "dabc6575-0316-4640-a729-e616d5c17b73",
"metadata": {
"id": "dabc6575-0316-4640-a729-e616d5c17b73"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"\n",
"# Visualizations"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "bbb2f729-d3d8-46d0-b249-9249197ea574",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "bbb2f729-d3d8-46d0-b249-9249197ea574",
"outputId": "fcf22728-5570-4edf-9c9d-4bbf0e1e1413"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PyTorch version: 2.5.0.dev20240813+cu121\n",
"Running on cuda\n"
]
}
],
"source": [
"torch.manual_seed(123)\n",
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"print(f\"PyTorch version: {torch.__version__}\")\n",
"print(f\"Running on {device}\")"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "b0620bf5",
"metadata": {
"id": "b0620bf5"
},
"outputs": [],
"source": [
"functions = {\n",
" \"1) MHA wrapper class\": mha_ch03_wrapper,\n",
" \"2) MHA Ch03\": mha_ch03,\n",
" \"3) MHA with combined QKV weights\": mha_combined_qkv,\n",
" \"4) MHA with PyTorch scaled_dot_product_attention\": mha_pytorch_scaled,\n",
" \"5) PyTorch's SDPA, no FlashAttention\": mha_pytorch_sdpa_no_flash,\n",
" \"6) PyTorch MHA class defaults\": mha_pytorch_class_default,\n",
" \"7) PyTorch MHA with need_weights=False\": mha_pytorch_class_noweights\n",
" }\n",
"\n",
"if current_version >= required_version:\n",
" functions[\"8) PyTorch's FlexAttention\"] = mha_pytorch_flex"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "CDJAPZaszaqx",
"metadata": {
"id": "CDJAPZaszaqx"
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# Customize further for dark mode aesthetics\n",
"plt.rcParams[\"figure.facecolor\"] = \"#121212\"\n",
"plt.rcParams[\"axes.facecolor\"] = \"#121212\"\n",
"plt.rcParams[\"axes.edgecolor\"] = \"white\"\n",
"plt.rcParams[\"axes.labelcolor\"] = \"white\"\n",
"plt.rcParams[\"text.color\"] = \"white\"\n",
"plt.rcParams[\"xtick.color\"] = \"white\"\n",
"plt.rcParams[\"ytick.color\"] = \"white\"\n",
"plt.rcParams[\"grid.color\"] = \"#444444\"\n",
"plt.rcParams[\"lines.linewidth\"] = 2\n",
"plt.rcParams[\"lines.markersize\"] = 8\n",
"\n",
"def plot_execution_times(functions, execution_means, execution_stds, filename):\n",
"\n",
" # Create plot\n",
" fig, ax = plt.subplots()\n",
" bars = ax.bar(functions.keys(), execution_means, yerr=execution_stds, capsize=5, error_kw={'ecolor': 'grey'})\n",
"\n",
" plt.ylabel(\"Execution time (ms)\")\n",
" plt.xticks(rotation=45, ha=\"right\")\n",
"\n",
" # Calculate new ylim with a margin\n",
" max_execution_time = max(execution_means)\n",
" upper_ylim = max_execution_time + 0.4 * max_execution_time # Adding a 40% margin\n",
" plt.ylim(0, upper_ylim)\n",
"\n",
" # Annotate bars with execution times\n",
" for bar in bars:\n",
" yval = bar.get_height()\n",
" plt.text(bar.get_x() + bar.get_width()/2, yval + (0.05 * upper_ylim), round(yval, 2), ha=\"center\", va=\"bottom\")\n",
"\n",
" plt.tight_layout()\n",
" plt.savefig(filename)\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"id": "4df834dc",
"metadata": {
"id": "4df834dc"
},
"source": [
"## Speed comparison (Nvidia A100 GPU) with warmup (forward pass only)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "29b63d3d-6d0b-43bb-9c68-d5514dc81000",
"metadata": {
"id": "29b63d3d-6d0b-43bb-9c68-d5514dc81000"
},
"outputs": [],
"source": [
"# CUDA benchmark code shared by Andrei Aksionov\n",
"# and based on code from\n",
"# https://github.com/cuda-mode/lectures/blob/main/lecture1/pytorch_square.py\n",
"\n",
"import numpy as np\n",
"\n",
"def time_pytorch_function(func, *input, num_repeats=1_000):\n",
" start = torch.cuda.Event(enable_timing=True)\n",
" end = torch.cuda.Event(enable_timing=True)\n",
"\n",
" # Warmup\n",
" for _ in range(5):\n",
" func(*input)\n",
" torch.cuda.synchronize()\n",
"\n",
" times = []\n",
" for _ in range(num_repeats):\n",
" start.record()\n",
" func(*input)\n",
" end.record()\n",
" torch.cuda.synchronize()\n",
" times.append(start.elapsed_time(end))\n",
"\n",
" return np.mean(times), np.std(times)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "9dd07a09",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"id": "9dd07a09",
"outputId": "b8db6c34-b593-45a6-9713-81107860d4c7"
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"execution_stats = [time_pytorch_function(fn, embeddings) for fn in functions.values()]\n",
"execution_means = [stat[0] for stat in execution_stats]\n",
"execution_stds = [stat[1] for stat in execution_stats]\n",
"\n",
"\n",
"plot_execution_times(functions, execution_means, execution_stds, filename=\"1_forward-only.pdf\")"
]
},
{
"cell_type": "markdown",
"id": "VQaSerWCOnYB",
"metadata": {
"id": "VQaSerWCOnYB"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"\n",
"## Speed comparison (Nvidia A100 GPU) with warmup (forward and backward pass)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "69e6377b",
"metadata": {
"id": "69e6377b"
},
"outputs": [],
"source": [
"def forward_backward(func, embeddings):\n",
" if embeddings.grad is not None:\n",
" embeddings.grad.zero_()\n",
"\n",
" output = func(embeddings)\n",
" loss = output.sum()\n",
" loss.backward()\n",
"\n",
"\n",
"def time_pytorch_function_forward_backward(func, *input, num_repeats = 1_000):\n",
" # CUDA IS ASYNC so can't use python time module\n",
" start = torch.cuda.Event(enable_timing=True)\n",
" end = torch.cuda.Event(enable_timing=True)\n",
"\n",
" # Warmup\n",
" for _ in range(5):\n",
" forward_backward(func, *input)\n",
" torch.cuda.synchronize()\n",
"\n",
" times = []\n",
" for _ in range(num_repeats):\n",
" start.record()\n",
" forward_backward(func, *input)\n",
" end.record()\n",
" torch.cuda.synchronize()\n",
" times.append(start.elapsed_time(end))\n",
"\n",
" return np.mean(times), np.std(times)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "ReCmeRhCOpm8",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"id": "ReCmeRhCOpm8",
"outputId": "01159c54-afac-4a0d-a06f-b41cad1b30e6"
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"execution_stats = [time_pytorch_function_forward_backward(fn, embeddings) for fn in functions.values()]\n",
"execution_means = [stat[0] for stat in execution_stats]\n",
"execution_stds = [stat[1] for stat in execution_stats]\n",
"\n",
"\n",
"plot_execution_times(functions, execution_means, execution_stds, filename=\"2_forward-and-backward.pdf\")"
]
},
{
"cell_type": "markdown",
"id": "1gWX-Ayqia1k",
"metadata": {
"id": "1gWX-Ayqia1k"
},
"source": [
"<br>\n",
"&nbsp;\n",
"\n",
"\n",
"## Speed comparison (Nvidia A100 GPU) with warmup and compilation (forward and backward pass)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "LQDiAPooiYAz",
"metadata": {
"id": "LQDiAPooiYAz"
},
"outputs": [],
"source": [
"import torch._dynamo\n",
"torch._dynamo.config.suppress_errors = True\n",
"\n",
"def prepare_function(fn):\n",
" fn = torch.compile(fn)\n",
" return fn"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "aac06ffe",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 488
},
"id": "aac06ffe",
"outputId": "f64e3437-487b-45d2-d080-43c98464c47e"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnIAAAHXCAYAAAA4F7dVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddVgV6dvA8e8hpVRQUexWXHXVNbFQ1xYwwcBW7MBWxEBdAwsTu2vF3l27u3HtWLEwEMRACYHz/uHFvBzRXf0JHgbvz3Vx7Z45M2fux5kzc59nntDY2NhoEUIIIYQQqmOg7wCEEEIIIcT/RhI5IYQQQgiVkkROCCGEEEKlJJETQgghhFApSeSEEEIIIVRKEjkhhBBCCJWSRE4IIYQQQqUkkRNCCCGEUClJ5IQQQgghVEoSOSGEEEIIlUpziVylSpVYs2YNV69eJSwsjAYNGiRZZ9iwYVy9epVHjx6xefNm8ufPr4dIhRBCCCG+TZpL5MzNzbl69SpDhgz55Pt9+/bFw8ODQYMGUadOHd69e8fGjRsxNTX9zpEKIYQQQnwbjY2NjVbfQaSUsLAw2rZty19//aUsu3r1KvPmzWPu3LkAWFlZcePGDXr37s2WLVu+6HPt7OyIiIhIkZiFEEIIISwtLXny5Ml/rmf0HWJJNfLkyUO2bNk4fPiwsuzNmzecP3+ecuXKfTKRMzEx0amty5o1K6dPn/4u8QohhBDix1W8ePH/TOZ+qETO1tYWgOfPn+ssf/78ufLex/r378/QoUOTLC9evLjUygkhhBAi2VlaWnLlypUvyjN+qETufzFz5kzmz5+vvE78j/vmzRs9RiaEEEKIH12a6+zwb0JCQgDIkiWLzvIsWbIo730sJiaGN2/eKH9SCyeEEEKI1OKHSuTu37/P06dPqVatmrLMysqKX375hbNnz+oxMiGEEEKIr5fmHq1aWFiQL18+5XXu3LkpXrw44eHhBAcHs2DBAgYOHMjdu3e5f/8+I0aM4OnTpzo9W4UQQggh1CDNJXKlSpVi+/btyusJEyYAsG7dOnr37s2sWbMwNzdn+vTpZMiQgdOnT+Pq6kp0dLS+QhZCCCGE+J+k6XHkUoKVlRX37t0jb9680tlBCCGEEMnua3KNH6qNnBBCCCFEWiKJnBBCCCGESkkiJ4QQQgihUpLICSGEEEKolCRyQgghhBAqJYmcEEIIIYRKSSInhBBCCKFSksgJIYQQQqiUJHJCCCGEEColiZwQQgghhEpJIieEEEIIoVKSyAkhhBBCqJQkckIIIYQQKmWk7wAAcufOTaVKlciZMyfm5uaEhoZy+fJlzp49S3R0tL7DE0IIIYRIlfSayDVv3pxu3bpRqlQpQkJCePr0KVFRUVhbW5M3b16io6MJCAjAz8+PR48e6TNUIYQQQohUR2+J3MGDB3n//j3r1q2jffv2PH78WOd9ExMTypUrR5MmTdi/fz+DBw9m+/bteopWCCGEECL10djY2Gj1seMaNWpw8ODBL1rX2tqa3Llzc+nSpRSO6r9ZWVlx79498ubNy5s3b/QdjhBCCCHSmK/JNfRaI/elwsPDCQ8PT8FohBBCCCHUJ1X0Wi1ZsiT29vbK6/r167Nq1SpGjhyJsbGxHiMTQgghhEi9UkUiN336dAoWLAhAnjx5WLRoEe/evcPZ2ZkxY8boNzghhBBCiFQqVSRyBQoU4PLlywC4uLhw8uRJunXrRu/evXFyctJzdEIIIYQQqVOqSOQ0Gg0GBh9CqV69Onv37gUgODgYGxsbfYamChcvXiQsLCzJ35QpUz65fpEiRVi+fLmyXbdu3ZKsY2lpyYQJEwgMDOTRo0fs3LmT0qVLp3RRhBBCCPEVUkUiFxgYyMCBA3F1dcXBwUFJ5PLkycPz58/1HF3q9+uvv2Jvb6/8NW3aFIBt27Z9cn1zc3Pu3buHj48PT58+/eQ6M2fOxNHRkR49elC1alUOHjzI5s2bsbOzS7FyCCGEEOLrpIpEbsSIEZQsWZLJkyczffp0goKCAHB2dubMmTN6ji71CwsLIyQkRPmrU6cOd+/e5fjx459c/+LFi4wZM4YtW7YQExOT5P106dLh5OTEmDFjOHnyJEFBQUyZMoW7d+/SsWPHlC6OEEIIIb5Qqpii69q1a1StWjXJ8tGjRxMXF5es+zIwMGDo0KG0aNECW1tbnj59yrp165g2bVqy7kdfjI2NadGiBfPnz/+fP8PIyAgjI6Mk06NFRUVRoUKFbw1RCCGEEMkkVdTIJWZhYYGVlRVWVlaYmJhgZmaWrJ/fr18/OnbsyNChQ6lUqRJjx46lb9++eHh4JOt+9KVBgwZkyJCBdevW/c+fERERwZkzZxg4cCDZsmXDwMCAFi1aUK5cObJly5aM0QohhPhaX9suGj484Tp16hTBwcEcPXqUX3/99TtGLFJSqqiRy507N5MnT6Zy5cqkS5dOWa7RaNBqtdja2ibbvsqVK8fOnTuVdngPHz6kWbNmlClTJtn2oU/u7u7s27fvs23fvlSPHj2YNWsWV69eJTY2lr///pvNmzfz888/J1OkQggh/he//vorhoaGymt7e3s2b9782XbR5cqVY9GiRYwbN449e/bQrFkzVq1aRY0aNbhx48b3ClukkFSRyPn7+6PRaOjbty/Pnz9Hq025WcPOnj1Lu3btKFCgAP/88w8//fQTFSpUwNvbO8X2+b3kzJmT6tWr0759+2/+rHv37uHs7Iy5uTlWVlY8e/aMxYsXc+/evW8PVAghxP8sLCxM53W/fv3+tV10t27d2L9/P3PmzAFg4sSJODo60qVLFwYNGpTi8YqUlSoSuZ9++olatWpx586dFN/XzJkzsbKy4tSpU8TFxWFoaMiECRMICAj45PomJiaYmpoqry0tLVM8xv9V69atef78OXv27Em2z3z37h3v3r0jQ4YM1KxZUwZoFkKIVORL2kWXK1eOefPm6Sw7cOAADRo0SOnwxHeQKhK5ixcvkiNHju+SyDVu3JjmzZvj4eHBjRs3KFGiBBMmTODp06esX78+yfr9+/dn6NChKR7Xt9JoNLRu3ZoNGzYk6SAyb948njx5wrhx44APX/wiRYoAHxJVOzs7ihcvztu3b5UewzVq1ECj0XDnzh3y58/PmDFjuH37NmvXrv2+BRNCCPFZX9Iu2tbWNslQXs+fP0/WZktCf1JFIte/f3+mTZuGnZ0d169f5/379zrvX7t2Ldn2NXbsWPz8/NiyZQsA169fJ1euXPTv3/+TidzMmTN1fulYWlpy5cqVZIsnuVSvXp1cuXKxZs2aJO/lyJGD+Ph45XW2bNk4fPiw8rpPnz706dOHY8eO4eLiAkD69Onx9vYme/bshIeH88cffzB+/HhiY2NTvjBCCCG+SHK1ixbqlSoSucyZM5M3b15mz56tLNNqtSnS2cHMzEwnqQGIi4tDo9F8cv2YmJhPjrWW2hw6dIhMmTJ98r2E5CzBw4cPP7tugm3btn224awQQgj9+9J20SEhIWTJkkVnWZYsWQgJCUnJ8MR3kioSuVmzZnH58mU8PDwICQlJ0c4Ou3fvZsCAATx69IgbN25QsmRJevToIY8MhRBCqMqXtos+e/Ys1apVY8GCBcoyR0dHzp49m9Ihiu8gVSRyOXPmpE2bNkr7rJQ0bNgwhg8fjq+vL5kzZ+bp06esWLECX1/fFN+3EEIIkRy+pl30ggUL2LFjBz179mTv3r00adKEUqVK4enpqY/QRTJLFYnc0aNHKV68+HdJ5CIiIvDy8sLLyyvF9yWEEEKkhK9pF3327Fk8PDzw8vJi5MiR3L17l7Zt28oYcmmExsbGJuWeY36hdu3aMXDgQNasWfPJzg67du3SU2RJWVlZce/ePfLmzcubN2/0HY4QQggh0pivyTVSRSL3cbfoxJK7s8O3kkROCCGEECnpa3KNVPFo9ePeNEIIIYQQ4r8Z6DsAIYQQQgjxv9FbItekSZMvXjd79uyUL18+BaNJu8zNzcmSJctX/5mbm+s7dCHEJ9jZ2eHv78/t27d59OgRR48epVSpUp9dv1GjRmzatImbN29y7949du3aRY0aNXTW6d+/P/v27eP+/fvcuHGDVatWUbBgwRQuiRAiOejt0WrHjh0ZMmQIa9euZffu3dy6dUvnfSsrKypUqECLFi1wdHSkX79+eopU3UqUKEGFChW+ervTp09z+vTpFIhICPG/ypAhA3/99RfHjh3Dzc2N0NBQ8ufPz8uXLz+7TaVKlTh06BDjx4/n1atXtG7dmrVr11KnTh0uX74MgIODA0uWLOHChQsYGRkxcuRIAgICcHBw4N27d9+pdEKI/4VeOzvUq1ePrl27UrVqVd69e0dISAjR0dFkzJgRW1tbwsLCWL9+PfPnz//XDhHfk9o6O5ibm2NhYZFkuYuLC+bm5rx79+6TMzi8fftWLuBCpDKjRo2ifPnyNGrU6Js+5/jx42zZsoWpU6d+8v1MmTJx69YtGjVqxMmTJ79pX0KIr6eazg67du1i165d2NjYULFiRXLmzImZmRlhYWFcvnyZv//+O0VnefgRvHv37pMJWcIYQ/Hx8akmSRZC/Lt69epx4MABli5dioODA0+ePGHp0qWsWrXqiz9Do9FgaWn5r7V46dOnByA8PPxbQxZCpLBU0Wv1xYsX/PXXX/oOI1Wx6royRT9fk+4S8B6NhXWK7uvNonYp9tlC/Gjy5MlDx44dmT9/PjNmzKB06dJMnDiR9+/fs379+i/6jN69e2NhYcHWrVs/+b5Go2HChAmcOnVKBowVQgVSRSInhBDivxkYGBAYGMj48eMBuHz5Mvb29nTo0OGLErlmzZoxePBg2rZtS2ho6CfX8fX1xd7enoYNGyZr7EKIlCGJXBpnRgzmmvdJlhugVf6bSfM2yfvvtMZEYpLi8QkhvtyzZ8+4efOmzrJbt27h5OT0n9s2adKEmTNn0qlTJw4fPvzJdSZPnkydOnVo1KgRjx8/TpaYRcr6XDvo/yLtoNMOSeTSuCJGzylt/OSz75tpYnFOdz3J8ovv7QiMzZGSoQkhvtLp06eTDAtSoEABHj58+K/bNW3alFmzZtG1a1f27t37yXUmT55Mw4YNcXZ25sGDB8kWs/i05GrSUs7oAcWNQ756uyvvbTkbm/ub9y/NZ/RPErk07mZsFh7GZfzq7d5pjZM/GCHEN/H392fnzp14enqydetWypQpQ7t27RgwYICyjre3N3Z2dvTs2RP48Dh17ty5jBgxgvPnzytTHkZGRiq94Xx9fWnWrBnu7u5EREQo67x+/ZqoqKjvXErxNf7X7oDSjTDtSFWJnLGxMXny5CEoKIi4uDh9h5MmRGJCpFYekQqRFly8eJF27drh7e3NoEGDePDgAV5eXgQEBCjrZM2alRw5/r82vV27dhgbG+Pr64uvr6+yfN26dfTu3RuATp06AbBjxw6d/fXu3Zt169alZJHEN7oam42guExfvZ38WE87UkUiZ2ZmxqRJk2jZsiUA5cuX5/79+0yaNIknT57g5+en5wiFECJ12LNnD3v27Pns+wnJWQIXF5f//MxMmb4+ERCpg/xYF6lirlVvb2+KFy+Os7OzTjX+4cOHady4sf4CE0IIIUSqMWTIEMLCwnT+Tp069a/bpE+fnilTpnD16lUeP37M6dOn+fXXX79TxCkvVSRyDRo0YOjQoUmmhLpx4wb58uXTU1RCCCFSi6+9gbdq1SrJ+sHBwZ9df+rUqYSFhdGtW7eUCF8ko+vXr2Nvb6/8NWjQ4LPrGhsbs3nzZnLlykXHjh2pUKECnp6ePHny+U6AapMqHq1mypTpk7MLmJuby8wOQgghgA838KZNmyqvY2Nj/3X9169f68w1/bn7ScOGDSlbtmyaurmnZbGxsYSEfFlP3TZt2pAxY0bq1aunnC//1ctbbVJFjVxgYCB16tRRXid82dq2bcvZs2f1FZYQQohUJOEGnvD34sWLf11fq9XqrP+pCgM7OzsmTZpEt27deP8+6ZibIvXJnz8/V69e5fz58/j7++t07vlYvXr1OHfuHFOmTOH69escO3YMT09PDAxSRfqTLFJFjdz48eP5/fffKVKkCIaGhnTr1o0iRYpQrlw5nJ2d9R2eEEKIVCDhBh4VFcXZs2cZN27cvz4utbCwIDAwEAMDA/7++2/GjRunM6CyRqNh/vz5zJ49O8lAyyJ1On/+PL179+bOnTtkzZqVIUOG8Oeff1KlShUiIiKSrJ83b15y5cpFQEAALVu2JF++fPj6+mJkZKTTi1vNUkVKevr0aapXr46hoSHXr1+nRo0ahIaGUq9ePS5duqTv8IQQQuhZwg28RYsWDBo0iDx58vDnn39iaWn5yfVv375N3759cXd3p3v37mg0Gnbt2kX27NmVdfr160dsbCwLFy78XsUQ32j//v1s376da9eucfDgQdzc3MiQIcNne2drNBpCQ0Px9PTk0qVLbN26lenTp9OhQ4fvG3gKShU1cgD37t3D09NT32EIIYRIhfbv36/8/7Vr1zh//jyXLl3CxcWFNWvWJFn/3LlznDt3Tnl95swZTp48Sfv27Zk4cSI///wzHh4e1KxZ87vEL1LG69ev+eeff8ifP/8n33/27BmxsbHEx8cry27dukW2bNkwNjZOE4/TU0WNXILMmTNTtGhRihUrpvMnhBBCJPZfN/CPxcbGcvnyZWUkhIoVK5IlSxYuXbrEs2fPePbsGblz52bcuHFcvHgxJUMXycjCwoK8efPy7NmzT75/5swZ8uXLh0ajUZYVKFCAp0+fpokkDlJJjdzPP//M3LlzKVy4sM4/NnxorJowXYwQQggB/38D//33379ofQMDA4oVK6bMNfv7779z+PBhnXUCAgL4/fffWbt2bbLHK5LH2LFj2b17Nw8fPiRbtmwMGzaMuLg4Nm3aBMC8efN48uQJ48aNA2Dp0qV06dKFiRMnsmjRIvLnz4+npyeLFi3SZzGSVapI5GbNmsU///xDv379CAkJkSFHxBcZMmQIQ4cO1Vl2+/ZtKlas+NltnJ2dGTFiBLly5eLu3buMHTuWffv2Ke+HhYV9crvRo0czZ86c5AlciBSQKVOm/2mGhoQx1lK7r72BDxo0iHPnzhEUFESGDBno3bs3OXPmZPXq1QCEh4cTHh6us4/379/z7Nkz7ty5830LJ75Y9uzZWbRoEdbW1spYgnXr1lXO4Rw5cug8Rn38+DHNmzdnwoQJHDlyhCdPnrBw4cI0NWNUqkjk8ubNS4cOHQgKCvou+7Ozs2P06NHUqlULMzMzgoKC6NOnD4GBgd9l/yL5fM24UuXKlWPRokWMGzeOPXv20KxZM1atWkWNGjW4ceMGAPb29jrb/Prrr/j5+SWZg1KI5GLVdWWyfE5NkxvYGSbttfdfnsRZsium6Dfv/82idt/8Gf/ma2/gGTNmZObMmdja2vLy5UsuXbpE/fr1pXeqynXt2vVf3/9Up4dz585Rt27dlApJ71JFInfkyBGKFy/+XRK5DBky8Ndff3Hs2DHc3NwIDQ0lf/78vHz5MsX3LZLf1wwM2a1bN/bv36/UrE2cOBFHR0e6dOnCoEGDAJJ8Vv369Tl27Bj3799P3sCTWb9+/Rg1ahT+/v54eXl9ch0jIyP69+9Py5YtsbOz486dO4wdO5YDBw4o6/wvtZwidTgdkwtrg8iv3i483iwFokl+X3sDHzlyJCNHjvyqfZQuXfqr4xJC31JFItevXz/mzp1L0aJFuXHjRpIGiLt27UrWfQUHB9OnTx9l2YMHD5Lt88X39TXjSpUrV4558+bpLDtw4MBnp3fJkiULtWvXplevXsked3IqXbo07du358qVK/+6npeXFy1atKB///7cvn2bmjVrsnLlSurXr8/ly5eV9b529HyROoRjQXi8hb7DEEJ8Z6kikStXrhwVKlT45CS2yd3ZoV69ehw4cIClS5fi4ODAkydPWLp0KatWrfrk+iYmJpiamiqvPzdmkfj+vnZgSFtb2yQjuz9//vyz51fLli2JiIjgjz/+SJH4k4OFhQX+/v54enoyYMCAf13X1dWV6dOnK20Cly1bRvXq1enVqxfdu3dX1vuaWk4hhBD6lSqGH5k0aRIbN26kWLFiZMmSRecvuXus5smTh44dO3L37l1atGjBsmXLmDhxIi1btvzk+v379+fevXvK33/Veojv52sHhvxabdq0ISAggOjo6GT5vJQwZcoU9u7dm6T33aeYmJgQFRWlsywqKkpnLkr4uulvhBBC6FeqqJGzsbFh/vz5n5wHL7kZGBgQGBjI+PHjAbh8+TL29vZ06NCB9evXJ1l/5syZzJ8/X3ltaWkpyVwq9V/jSoWEhJAlSxadZVmyZPlk7VPFihUpVKgQnTt3TpFYk0OTJk0oWbLkJ2uyP+XAgQP07NmTkydPEhQURPXq1WnYsCGGhobKOl9byymEEEK/UkWN3B9//EGVKlW+y76ePXuWpNfSrVu3yJkz5yfXj4mJ4c2bN8qf3MxSr/8aGPLs2bNUq1ZNZ5mjoyNnz55Nsq67uzuBgYFcvXo1RWL9VtmzZ+e3336jW7duX1xjOGLECO7evcupU6d4+vQpkydPZt26dTo9/VK6llMIIUTyShU1cv/88w/e3t5UrFiRa9euJWlcnZzz4J0+fZqCBQvqLCtQoAAPHz5Mtn2I7+Nrx5VasGABO3bsoGfPnuzdu5cmTZpQqlSpJFPDWVlZ4ezszKhRo757mb5UqVKlsLW15eDBg8oyIyMjHBwc6NKlC3Z2djoJGnwYL6xt27aYmppiY2PDkydPGD169L/2yP3a0fOFEEJ8X6kikXN3d+ft27c4ODjg4OCg855Wq03WRM7f35+dO3fi6enJ1q1bKVOmDO3atfvPhuIi9fnacaXOnj2Lh4cHXl5ejBw5krt379K2bVtlDLkETZo0QaPRKAlhanTkyBEqV66ss2zOnDncvn0bPz+/JElcYtHR0Tx58gQjIyMaNWrEtm3bPrvu146eL4QQ4vtKFYlcmTJlvtu+Ll68SLt27fD29mbQoEE8ePAALy8vAgICvlsMInn8LwNDbt++ne3bt//rditXrmTlyuQZpDWlREREJElA3759y4sXL5TlH9dI/vLLL9jZ2XH58mXs7OwYOnQoBgYGzJo1S/mM/6rlFEKI1MDc3BwLi68fbuft27e8e/cuBSLSn1SRyH1ve/bsYc+ePfoOQ4gU9XGNpKmpKSNGjCBPnjy8ffuWffv20aNHD16/fq2s81+1nEIIkRqUKFEiSY/7L3H69GlOnz6dAhHpj94SuXHjxjFx4kTevXun1Bh8jre393eKSgj1+rgG8uPXJ06cSNJ04WP/VcspRGoktTPqkVxT0gURw7Oo90mW1za9jZkmlkitEXujCyV5/13JkliVTJ5B3lN6WrovpbdErkSJEhgZGSn/L4QQ4seSXDf1ckYPKG789YNYX3lvy9nY3N+8/9RyQxc/Jr0lco0bN/7k/wshhBBfQ/udtxP6V8ToOaWNn3z2fTNNLM7pridZfvG9HYGxaWuQ81TRRm7WrFmMGDEiyRht5ubmTJo0ib59++opMiGEEKnd1dhsBMVl+urt3mmNUyAa8T3cjM3Cw7iMX71dWjzmqSKRa9myJT4+PkkSuXTp0uHm5iaJnBBCiM+KxIRIrYm+wxDfkRzz/6fXRM7KygoAjUaDpaWlzgj1BgYG1K5dm9DQUH2FJ4QQQgiRquk1kbt79y5arRatVsuZM2eSvK/Vapk8ebIeIhNCCCGESP30msi5uLig0WjYunUrHTp0IDw8XHkvJiaGR48e8fTpUz1GKIQQQgiReuk1kTtx4gQApUuX5tGjR/oMRaRBMrZU2tSxY0c6duxI7twfho24ceMGvr6+7N+//5PrGxkZ0b9/f1q2bImdnR137txh7NixHDhwQGc9Ozs7Ro8eTa1atTAzMyMoKIg+ffoQGBiY0kUSQoj/Waro7CBJnEgJZcqU+Z+mf7tw4QLHjh1LgYhEcnj8+DE+Pj7cvXsXjUZDy5YtWb16NY6Ojty8eTPJ+l5eXrRo0YL+/ftz+/ZtatasycqVK6lfvz6XL18GIEOGDPz1118cO3YMNzc3QkNDyZ8/Py9fvvzOpRNCiK+TKhI5IRJLrkFCjY0eAF8/SKhxiXpY2Xt88/71OUhoWq6N3L17t87rCRMm0LFjR8qWLfvJRM7V1ZXp06ezb98+AJYtW0b16tXp1asX3bt3B6Bfv34EBwfTp08fZbsHDx6kYCmEECJ5SCIn0qwfeWypH6U20sDAABcXF8zNzTl37twn1zExMSEqKkpnWVRUlM48jfXq1ePAgQMsXboUBwcHnjx5wtKlS1m1alWKxi+EEN9KEjmRZqltnKHkqomEtF8baW9vz65du0iXLh1v376lXbt2n6yNAzhw4AA9e/bk5MmTBAUFUb16dRo2bIihoaGyTp48eejYsSPz589nxowZlC5dmokTJ/L+/XvWr1+fomURQohvIYmcEGlQWq+NvHPnDo6OjqRPnx5nZ2fmzp2Ls7PzJ5O5ESNGMHPmTE6dOoVWq+XevXusW7eO1q1bK+sYGBgQGBjI+PHjAbh8+TL29vZ06NBBEjkhRKqWKhK5LFmy4OPjQ7Vq1cicOTMajUbnfVtbWz1FJoQ6qa028mu9f/+eoKAgAC5dukTp0qXx8PBg4MCBSdYNCwujbdu2mJqaYmNjw5MnTxg9ejT3799X1nn27FmSJPDWrVs4OTmlbEGEEOIbpYpEbs6cOeTMmZOpU6fy7NkztFqZylgI8eUMDAwwNTX913Wio6N58uQJRkZGNGrUiG3btinvnT59moIFC+qsX6BAAR4+fJgi8QohRHJJFYlcxYoVadiwIVeuXNF3KEKIVM7b25t9+/bx6NEjLC0tad68OZUrV6ZFixYAzJs3jydPnjBu3DgAfvnlF+zs7Lh8+TJ2dnYMHToUAwMDZs2apXymv78/O3fuxNPTk61bt1KmTBnatWvHgAED9FJGIYT4UqkikQsODk7yOFUIIT4lc+bMzJs3j6xZs/L69WuuXbtGixYtOHToEAA5cuQgPj5eWd/U1JQRI0aQJ08e3r59y759++jRowevX79W1rl48SLt2rXD29ubQYMG8eDBA7y8vAgICPjexRNCiK+SKhK5ESNGMGrUKAYMGCCPMoQQ/6pfv37/+r6Li4vO6xMnTuDg4PCfn7tnzx727NnzTbEJIcT3lioSuSVLlmBmZsb58+eJjIzk/fv3Ou9/3HZFCCGEEEKkkkTOy8tL3yEIIYQQQqhOqkjkZJwmIYQQQoivlyoSOfgwfEDDhg0pXLgwADdu3GDnzp06jZaFEEIIIcT/SxWJXL58+Vi/fj12dnbcuXMH+NCg+fHjx7Rs2ZJ79+7pN0AhhBBCiFTIQN8BAEycOJF79+5RsmRJatasSc2aNfn555+5f/8+EydOTNF99+vXj7CwMCZMmJCi+xFCCCGESG6pokbOwcGBunXr8vLlS2VZeHg4Pj4+/PXXXym239KlS9O+fXsZiFgIIYQQqpQqauRiYmKwtLRMstzCwiLJUCTJxcLCAn9/fzw9PXUSSCGEEEIItUgVidyePXuYMWMGv/zyi7KsbNmyTJs2jV27dqXIPqdMmcLevXs5fPhwiny+EEIIIURKSxWPVocNG8a8efPYtWuXUgNnZGTErl27GD58eLLvr0mTJpQsWZJff/31P9c1MTHRmYz7UzWHQojUwdzcHAsLi6/e7u3bt7x79y4FIhJCiJSVKhK5169f4+7uTv78+SlUqBAAt27dIigoKNn3lT17dn777TeaNWtGdHT0f67fv39/hg4dmuxxCCH+n1XXlcnyOeWMHlDcOOSrt7vy3pazsbm/ef9vFrX75s8QQoivkSoSuQR3797l7t27KbqPUqVKYWtry8GDB5VlRkZGODg40KVLF+zs7HTGrps5cybz589XXltaWkrnCCFSKe133k4IIfRNb4ncuHHjmDhxIu/evWPcuHH/uq63t3ey7ffIkSNUrlxZZ9mcOXO4ffs2fn5+SQYgjomJISYmJtn2L4RIOVdjsxEUl+mrt3unNU6BaIQQIuXpLZErUaIERkZGyv9/LxEREdy4cUNn2du3b3nx4kWS5UIIdYnEhEitib7DEEKI70ZviVzjxo0/+f9CCCGEEOLLpIrhR2bNmvXJ3qDm5ubMmjUrxffv4uKCl5dXiu9HCCGEECI5pYpErmXLlqRLly7J8nTp0uHm5qaHiIQQQgghUj+99lq1srICQKPRYGlpqTMciIGBAbVr1yY0NFRf4QkhhBBCpGp6TeTu3r2LVqtFq9Vy5syZJO9rtVomT56sh8iEEEIIIVI/vSZyLi4uaDQatm7dSocOHQgPD1fei4mJ4dGjRzx9+lSPEQohhBBCpF56TeROnDgBQOnSpXn06JE+QxFCCCGEUJ1UMbNDrly5yJUr12ffP3ny5HeMRgghhBBCHVJFIrd9+/Yky7Ta/580x9bW9nuGI4QQQgihCqkikcufP7/Oa2NjY0qWLMnw4cOZMGGCnqISQgghhEjdUkUi9+bNmyTLDh06RExMDOPGjaNWrVp6iEoIIYQQInVLFQMCf87z588pWLCgvsMQQgghhEiVUkWNXLFixXReazQasmbNSr9+/bhy5YqeohJCCCGESN1SRSJ3+PBhtFotGo1GZ/m5c+fo27evnqISQgghhEjdUkUiV7p0aZ3X8fHxhIWF6UzZJYQQQgghdKWKRE4GAxZCCCGE+HqporPDxIkT8fDwSLK8S5cuMvyIEEIIIcRnpIpEzsnJidOnTydZfubMGZydnfUQkRBCCCFE6pcqEjlra2tev36dZPmbN2+wsbHRQ0RCCCGEEKlfqkjkgoKCPjno76+//sr9+/f1EJEQQgghROqXKjo7zJs3j8mTJ5MpUyaOHj0KQLVq1ejZsydeXl56jk4IIYQQInVKFYnc2rVrMTU1ZcCAAQwaNAiABw8eMHjwYDZs2KDn6IQQQgghUqdUkcgBLFu2jGXLlpEpUyaioqJ4+/atvkMSQgghhEjVUkUbOQBDQ0OqV69Oo0aNlBkesmXLhoWFhZ4jE0IIIYRInVJFjVzOnDnZuHEjOXLkwNTUlEOHDhEREUHfvn0xMTFRHrcKIYQQQoj/lypq5CZOnEhgYCAFChQgKipKWf7nn39SrVo1PUYmhBBCCJF6pYoauYoVK1K/fn3ev3+vs/zBgwfY2dnpKSohhBBCiNQtVdTIGRgYYGhomGR59uzZiYiISNZ99e/fn3379nH//n1u3LjBqlWrKFiwYLLuQwghhBDie0gVidzBgwfp1q2b8lqr1WJhYcGwYcPYt29fsu7LwcGBJUuWUKdOHZo1a4aRkREBAQGYm5sn636EEEIIIVJaqni0OmrUKDZu3MiJEycwNTVl4cKF5M+fnxcvXtC1a9dk3Zerq6vO6969e3Pr1i1+/vlnTp48maz7EkIIIYRISakikXv8+DHVqlWjSZMm/PTTT1haWrJ69WoCAgJ0Oj+khPTp0wMQHh7+yfdNTEwwNTVVXltaWqZoPEIIIYQQXypVJHKZMmUiLCyMgIAAAgICdN6zt7fn+vXrKbJfjUbDhAkTOHXqFDdu3PjkOv3792fo0KEpsn8hhBBCiG+RKtrIHT16lNq1aydZ3qtXL/bu3Zti+/X19cXe3v5fH9/OnDmTvHnzKn/FixdPsXiEEEIIIb5GqqiRmz9/PsuXL2fdunWMHDkSa2tr5s2bh729vU4niOQ0efJk6tSpQ6NGjXj8+PFn14uJiSEmJiZFYhBCCCGE+BapIpGbPXs2hw4dYv78+Rw5cgRra2vOnz9PtWrVCAkJSfb9TZ48mYYNG+Ls7MyDBw+S/fOFEEIIIb6HVPFoFSAoKIjr16+TO3durKys2Lp1a4okcb6+vrRo0QIPDw8iIiKwtbXF1taWdOnSJfu+hBBCCCFSUqpI5MqXL8+RI0fInz8/1apVY9CgQUyaNInFixeTIUOGZN1Xp06dyJAhAzt27OD69evKX5MmTZJ1P0IIIYQQKS1VPFrdunUr/v7+/Pbbb8TGxnLr1i2OHTuGv78/x44do0SJEsm2r0yZMiXbZwkhhBBC6FOqSOSaN2/OiRMndJbdu3eP+vXrM2DAAD1FJYQQQgiRuqWKR6sfJ3EJtFot06ZN+87RCCGEEEKog14TufXr12NlZaW87tevnzLTAoC1tfVnkzwhhBBCiB+dXhO5mjVr6kx/5enpibW1tfLayMiIggUL6iM0IYQQQohUT6+JnEaj+dfXQgghhBDi81JFGzkhhBBCCPH19JrIabVatFptkmVCCCGEEOK/6XX4EY1Gw5w5c5S5TE1NTZk2bRrv3r0DwMTERJ/hCSGEEEKkanpN5NavX6/zeuPGjUnW2bBhw/cKRwghhBBCVfSayPXp00efuxdCCCGEUDXp7CCEEEIIoVKSyAkhhBBCqJQkckIIIYQQKiWJnBBCCCGESkkiJ4QQQgihUpLICSGEEEKolCRyQgghhBAqJYmcEEIIIYRKSSInhBBCCKFSksgJIYQQQqiUJHJCCCGEEColiZwQQgghhEpJIieEEEIIoVKSyAkhhBBCqNQPm8h17tyZixcvEhwczJ49eyhTpoy+QxJCCCGE+Co/ZCLXuHFjxo0bh6+vLzVr1uTKlSts3LiRzJkz6zs0IYQQQogv9kMmcj179mTVqlWsXbuWmzdvMnDgQCIjI2nTpo2+QxNCCCGE+GI/XCJnbGzMzz//zOHDh5VlWq2Ww4cPU65cOT1GJoQQQgjxdYz0HcD3lilTJoyMjAgJCdFZHhISQqFChZKsb2JigqmpqfLa0tJS578pxdI0jRwaK6uv3uRHLXuaKTf8uGWX8/2rSNnTgB/1uw7/03H/Ul+TY6Shf9GU0b9/f4YOHZpk+ZUrV/QQjQqNvafvCPRHyv7j+VHLDVL2H5WUPUVZWlry5s2bf13nh0vkwsLCiI2NxdbWVme5ra1tklo6gJkzZzJ//nydZdbW1oSHh6donCnN0tKSK1euULx4cSIiIvQdznclZf/xyv6jlhuk7FL2H6vsaanclpaWPHny5D/X++ESuffv33Pp0iWqVavGX3/9BYBGo6FatWosXrw4yfoxMTHExMToLPuv7FhNIiIi0lR5voaU/ccr+49abpCyS9l/LGmh3F8a/w+XyAHMmzePuXPnEhgYyIULF+jWrRvm5uasXbtW36EJIYQQQnyxHzKR27p1K5kzZ2bYsGHY2tpy5coVXF1def78ub5DE0IIIYT4Yj9kIgewePHiTz5K/VFER0czefJkoqOj9R3Kdydl//HK/qOWG6TsUvYfq+w/Yrk1NjY2Wn0HIYQQQgghvt4PNyCwEEIIIURaIYmcEEIIIYRKSSInhBBCCKFSksgJIYQQQqiUJHJpiEaj0XcIQgghhPiOJJFLIzQaDVrthw7ItWrVokiRIhgaGuo5KpHSfuTk/Uct+49abtAtu62tLUZGP84IWj/qcf9Ry/01fpxvQRqXkMSNHDmSFi1a4OPjw+PHj1U/RcmXcHJyIn/+/BgaGrJjxw5u376t75C+i8TJe7t27QgNDeXAgQNERUXpObKUl7jslSpVwtzcnOvXr/PkyRNleVqUuNz169cnffr0PHv2jEOHDuk3sO8gcdkHDRqEvb09s2bN4vLly8THx+s5upSVuOx16tTBxsYGIyMj9u7dy7Nnz/QcXcpKKLebmxuFCxfm7t277Nu3L82X+2tIIpeGDBw4kNatW9OhQwcuX75MZGSkvkNKcaNGjaJFixYEBgZSpUoVypUrh7u7O3FxcfoOLcUlXOBGjx6Nq6srfn5+pEuX7odI5BLKPnbsWJo1a4aVlRU3b94kICCApUuXEhsbq+cIU0ZCuUeNGkXnzp158OABRYsWZc6cOUyfPj1N/3BLXHY3Nze8vb0JDg5O80kc6H7XmzdvzpUrVyhcuDBt2rTB39+fbdu26TnClDVs2DB69OjBmTNn6N27N3/88QdLlizhxIkT+g4tVZBELo3IkCED1atXZ/LkyZw5c4Zs2bJRsmRJWrRowa1bt9i6dSshISH6DjNZDRw4EDc3N1q1asXff/9N0aJF2bNnD9myZSM4OFjf4X0XHh4etGrVimbNmnH16lVA99d7Wubg4ICDgwMdO3YkPDyc3r1706RJEywtLZk1a1aaTeby589P5cqVcXJy4tGjR1SoUIGlS5diYWHB+PHjef36tb5DTDGOjo64urri7u7OxYsX0Wg0ZMqUidy5c/Ps2TMeP36s7xBTTMuWLWnRogWtWrXi8uXLuLq6MnfuXCIiIvQdWoqyt7fnp59+olmzZpw7d46SJUsyc+ZMunfvjkaj4fjx4/oOUe8kkVOpj2/WhoaG2NjYYGNjg5OTE05OTmTPnh1zc3NKly5NlixZ+O2339LMDb5YsWKUK1eOwYMH8/fffwPw6tUrbt26Rbdu3TAwMODixYts2rRJz5Emr4+Pe/HixVmxYgVXr14lT548lC5dGg8PD27dusWePXv466+/9BhtymnYsCG1a9fm2LFjnD17FgAvLy9GjhxJnTp10Gq1zJ49O80lc/3796do0aLcunWLq1evEhcXx86dO3F3d2f16tVotVomTJiQZpM5U1NTgoODCQoKonjx4jg7O9O0aVMMDAy4c+cOQ4cOJSgoSN9hpoh8+fKxe/duLl++TJMmTZg0aRJDhgxh//79pEuXjgwZMqS5x42dO3embt26ANy8eROAv//+m0GDBjF16lQ8PDzQarU/fM2cdHZQocQ385o1a2JnZ8eLFy/YsmULHTp0YM6cOTx8+JBJkyZRs2ZN7t69S8aMGdNMEgcQHBzMypUrOXXqFPDh32TTpk2YmZlhYGBA0aJF6d27N82aNdNzpMnH1NRUOYY1atQAIHPmzNStWxd3d3f8/Pxo3bo1//zzD4ULF8bV1RVTU1N9hpwizM3N6dixI82aNaNIkSLK8rdv3zJ+/HguXLjAr7/+yogRIzAwSFuXuLdv39KsWTNKliyJhYWFsnz//v20adOG1q1bM2XKFJ331Mre3h4rKyvgQ5Lu6OjIs2fPKF26NP7+/mzduhU7Ozt8fX0ZNWoUhQoVImvWrHqOOuXkzJmTJ0+eUKJECWbOnImPjw/Lli1Do9HQtm1b6tWrl+bO98ePH1OiRAlKlChB0aJFleUXLlxg4MCBZM+enWHDhlGiRAk9Rql/aeuo/yASd2yYMWMG1atXx8TEhGnTpuHq6kqNGjUYN24cx44dA8Da2jrNVb+/evWKvXv38uLFC+DDY4dnz57h5OTEyJEjad68ObGxsVSvXl3PkSaP+vXrs3z5cgDGjx/P1KlTMTExoW/fvrx9+5bevXtz+PBhJk6cSJ8+fVi9ejU2NjZp7sIO8O7dO7p3786ff/5JgQIFaN++vfLe27dvmTBhAvfv3ydDhgyqbj/1qd56ixYtok+fPtjb29O1a1eddQ4cOEC3bt2ws7Pj3bt33zPUZFegQAGOHDlC586d8fX1xcPDg6dPnxIYGEizZs24cOEC/fv3x9vbmw0bNnDw4EFevnxJunTp9B36N0t8TEuWLEn69OkB2LlzJ/369ePAgQN4enoq1wMzMzPq1KlDnjx50tz5vnPnTrp3705MTAwdO3bE3t5eee/ixYt4eXlx7949rly58j1DTXU0NjY2aaea5gcyePBgOnXqRLt27bhx40aSRs4ZMmSgQIECDBo0iFy5cuHo6Kj6DgClS5fG2tqa4OBgpUeugYEB8fHxGBsbo9VqiY2NVZbNnTuX169fM3z4cH2H/s1KlCjBjh07ePToETly5KBBgwZcv34d+HABzJgxI+Hh4cCHx+xr167lxYsX9OjRQ59hf7PEtc/ZsmXj7du3GBsb8+LFC2xtbZk8eTKZM2dm/fr1rFmzRtkuXbp0REdHq7YWOnG58+TJg5WVFbdu3SI+Pp7Y2Fg6derEpEmTmDhxIjNnzvxkOdXYVrJ48eLKTblZs2bK4/EWLVpw+vRppUwJ/zUyMsLMzIxFixaRIUMGGjZsqPpkJuGYjRgxgooVK7Jy5Uq2bt1KhgwZGDBgAI0bN2bIkCEcOnSI7NmzM378eDJnzkydOnVUe41PXO5ffvmF9OnT8/LlS27cuEFkZCT16tVj0qRJHDlyhHnz5nHjxo1//YwfjbSRUyFra2uqV6/O6NGjOXv2LLa2thQuXJjmzZtz8eJFDh06RN68eZkwYQIvXrygRo0axMXFKQmOGo0ePZrGjRtjbm7Oy5cvefr0KQMGDOCff/5Bo9Hw/v17Zd34+HiyZ89O0aJFWbVqlR6jTj6XL1/mwIEDODk5cfToUaW9CHyooQ0PD8fS0pI6derQvHlzsmfPTps2bfQYcfJIuDAPHjyYOnXqkCFDBl6/fo2vry+7d+9m6NChTJ48mZYtW6LValm7di2A0nNXrRf3hJi9vLxo1KgROXLk4O7duxw/fpypU6eydOlSACZOnEhcXByzZ89OUk61lXvUqFHUq1ePUaNGceDAAUJCQjAwMMDMzIxKlSpx69Yt5ceKRqPByMiIfv36UbNmTYyNjalfvz7x8fGqvs4lPu7t2rXDw8ODS5cuERsbS1hYGEuWLMHU1JTFixcTGhrKixcvePnyJXXr1lX1NT5xr1wnJyesrKx48eIFERERtGrVil27dqHVapk0aRLx8fEsXbpUaRv98Wf8iCSRUyETExMKFChAhgwZqFmzJi1atCB//vxYWlri6OhIhgwZWLRoEcOHD+f8+fNotVoMDQ1V+2utWbNmuLu707ZtW4KCgihfvjxt2rRh7969NG3alMDAQOUCZmlpSebMmVm1ahV37txRHj+kBTt27OCvv/5i3LhxrFixgl69euk0as+YMSMVKlQgJiZGqYFV83FPMGjQIDw8PBg8eDAZM2akRIkSrFq1igEDBrB69WqGDx/OhAkT6NOnD6GhoezZs0fZVs0X9169etG+fXv69OlDcHAwTk5OVK5cmalTpzJgwACWLl3K+/fvmT59Os+ePWPDhg36DvmbLFiwgEqVKtG7d2+io6M5evQo2bJlw83NjTlz5mBqasqCBQt4+fIl8fHxxMfH8+eff2JkZISvr69qz/cSJUpw/fp1pWNOyZIlcXJywt3dnbNnz2JlZUXhwoVxcHDgyJEjDBo0iJUrV5I9e3aeP3/OhQsXVH+NB+jYsSPu7u60adOGJ0+eUKhQIQYMGMDevXupWbMmu3fvJjY2llWrVnH//v0kidyPTB6tpnKfq1EYOnQoHh4eGBkZsXTpUg4dOsThw4dZs2YNwcHBDBky5D8/Qy369u1L2bJladeunbIsV65cjBkzhpo1a1KnTh1u376Nqakpffv2pV69egQFBdGlSxdAneVPfFHOmDEjERERyoW+dOnSrF+/njNnztCzZ0/lsXqTJk3Yt2+f8lqNv84/Hgcvffr0rFu3jnXr1rF69Wrgw/H09PRk+PDhNGzYUBluJ+Fxo9rKDB9u5pcvX1Zem5ubs2TJEk6ePMmsWbOAD+Vu2bIlXbp0Ye3atSxZsgSAevXqsXfvXlXfxBPO98yZM7NmzRri4+OZMmUKhw4dQqvV0q5dO6ZNm8akSZNYunQp4eHhLFy4kEWLFim9ltV4vvfv3x8vLy/c3Nw4fPgwcXFxFCpUiA0bNjBo0CCePHlChw4dcHR0xNDQkBw5clC7du0kbcLUdo2rWrUqR48e1Vnm6+tLbGysTlOYQoUKMWfOHO7fv0/Pnj2JjY3ll19+4eLFi6o71ikp7bWETkMSfzmLFy9OxYoVKViwIACTJ0+mWbNm1K5dm7Fjx3L48GHgw40wLCxM53PU9AX/FBMTE8qUKaMz5djDhw8ZNWoUJ06cYO7cuVhbWxMdHc2GDRvw9/dXbRJXq1YtbGxslJvywIEDWbp0KXv27MHZ2RlbW1suXryIm5sb5cqVY9GiRVSrVo0NGzbQo0cPnU4tarvQbdq0iYEDB+osMzc3p2jRosTExCjLtFot8+bN49ChQzg7O2NkZMTTp0/57bfflEdrajJs2DA8PT11lkVGRmJmZkb27NmVZVqtlnXr1vH48WPq1KmjLN+1a5dSG6VGGo1GOd9DQ0Np164dhoaGeHp6UqtWLTQaDStXrmTgwIEMHjyY6dOns3fvXkqXLs3FixeVz1Hb+Q4wc+ZMdu3axZw5c3B0dMTIyIg3b95w5coVxo8fz549ezAwMGDChAnUrFmTW7duUa1atSSfo6ZrXOfOnfHx8UmyPEOGDJQsWVJn2e3bt9m9ezcFChRQOrKcP39eld/zlCT/EqlY4t6pCxYsYM2aNUydOpXx48ej0WgIDAzk1q1bWFpaUqpUKdasWYOtrS1Tp07Vc+TJ6+DBgzx//pzu3bvr9EoLDg5m6dKlWFpakj9/fgAePHjAxo0bAfUlce7u7ixbtowmTZpgbGxMu3bt6N69O/v37+fx48f4+PjQqVMnsmfPTmBgIC4uLhQtWpTx48eTPn16GjRooKryfmzs2LH4+voCKHNoPn36lMOHD9O4cWNsbW2VdaOionj79i0ZM2ZMMlac2m7oO3bsoGvXrgDkyJED+FC79ODBA0qXLq2TzAGcOXMGQ0NDTExMdJartUYu4ZytXbs2RYsW5dmzZ7Rt25Z06dLRt29fnWSue/fuvHjxggsXLlCpUiViY2NVm8AmxN22bVsuXLjA3LlzqVatGk+fPmXMmDGMGjUKV1dXhg4dyvbt24mOjiYmJobQ0FA9R/5t1q5dS61atQAoXLiwsvzgwYOkS5cOZ2dnnWN6584dDAwMkgylpLbveUqSRC6V8/T0pHXr1gwdOpSff/6ZoKAg2rZti5+fn9Jdu0KFCowbNw4TExOdjg1q9XE39IsXL3Lp0iWaNm1Ko0aNdL7Qp0+fxtramkKFCiX5HLUlNatXr2bNmjX06NEDNzc37O3t6dGjB3PnzsXd3Z0VK1bg4uJChw4dyJEjBzdv3qRSpUp07dqVBg0aqPqmptFo+Pvvv4mJiaF3794sX74cS0tLAPbt24eNjQ09evQgY8aMwIdaWmtr6zQxAGrCwL5OTk7s3LmTatWqERcXx7hx48iZMyczZsygcOHCpEuXjnTp0lG7dm2ePHmiU0updiVKlMDHx4c+ffpQqFChzyZzW7duZfjw4QwdOlQ539WawCa+Tru7u3Pu3Dn8/f2pWbMm9+7dY9++fZw8eRJjY2Py5MnD8uXLMTAwICAgQM+R/+80Gg2RkZHEx8dTvXp1jh8/TpMmTQDYvXs3YWFhdOzYkZYtW2JpaUmWLFlo27Ytjx49SvKkSfw/aSOXilSrVo0jR44or4sUKYKfnx+TJ0/m4MGDODo6smLFCnbt2kWpUqU4fvw4AwcORKvVUqFCBc6ePUt8fLyqL25GRkZKDYulpSUmJia8ePECY2NjVqxYgZ2dHevWrWPx4sXEx8eTM2dOAgIC8PLyYv/+/XqO/n+X+JhNnTqVGjVqYGpqSv/+/dm3b5+ynqenJ66urmzbto3169dz79495T211UB+ioGBAQ4ODqxbt44dO3bQu3dv4uPj8fT0pEGDBqRPn56LFy+SP39+LCwslKRHjRIf83Tp0pE3b16GDRtG7ty58fHx4dChQ+TLl48tW7bw9u1bACIiIrCwsMDR0THNzVrRqVMnmjZtyt27d5k9eza3b98ma9asrFy5ksjISBYuXJgmZir5t+/pmjVr+OWXX+jVqxeHDx8mNjaWjh07UrduXaysrHBxcdEZYklNzMzMlPm/Ewax9/LyokuXLvTu3ZvNmzdja2uLr68vBQoUIFeuXNy9exf4UFsbGxubJq5xKUESuVTCxcWFxYsX069fP2UIBYDWrVuzZ88eChYsyJIlS5g4cSKrV69mxYoV1K1bl3379tG2bVvl5FbjiW5ubk716tXZuXOnsmzWrFnY29tjbGzMsmXLWLFiBcbGxkyfPp3ixYtjamrK6dOnqVKlCrdu3VL1UBufOmajR49WauNmz57Ny5cvlff69etHnz59GDt2rOqHV3FwcFDmSxw3bhwPHz5k4cKFVKxYkXXr1rFnzx66d++OVqulatWqVK5cmZw5cxIcHMyUKVNUO+RC/fr1iY2NZe/evUycOJF8+fLRsmVLypUrR7du3ShUqBDe3t4cOXIEKysrnJ2dyZo1K69fv2bZsmWq7aH5scQ3d4AOHTrg5ubG7du3mTVrFnfu3MHW1padO3eyf/9+nU5capT4u162bFksLS0JCQnh1q1bSmK+du1aypQpQ8+ePTlw4ABFixalWLFibN26VbU/1B0dHalWrRo+Pj74+vpStmxZ6tati4mJCQMHDqRXr150796dzZs3Y2VlhZ2dHb/88guhoaHs379fteX+XiSRS0UGDhzIoEGDGDRokM7gpvBhvChjY2OGDx/O+/fvGTFiBOXKlePGjRuMGDFCdclbYgk90hKSWF9fXypWrMiqVasoUKAAnTp1Yvr06UycOBEDAwOqVatGrVq1MDQ0JCQkhJkzZwLqTGITS3g8mjB8xsSJE6lbty5z585l48aNOkONuLq6EhAQoLoEJrGsWbMyb948AMLCwnBycqJWrVpcu3YNQCeZ6927t85YgQnUenFfu3YtVapU4dChQzg4OODs7KyUO3EyN2rUKKUjU2JqTF4/1rp1a4oXL87MmTMJCQlRlnfs2JHu3btz8uRJ/Pz8CAoKwtramlevXqm+zAlGjhyJm5sbb9++JVeuXMydO5dNmzYp40OuWbOG0qVLM2jQIJ1aSLUe95EjR1K7dm3evXtHgQIFaNiwIbdv3wY+PHlJSOa6devGli1bkmyv1nJ/LzKOXCoybdo0DAwMmD59OoBOMpcrVy5MTU15//49Go2GggULsmXLFlauXAmoO4nZtGkTtra2ygj1jx8/pkePHkoX+0uXLin/JhMnTuTQoUMcOnRI5zPUWP7EMZcsWZLRo0dz+/Zt3rx5w8mTJxk+fDhGRkbK7AyJk7nff/8dUPcF7tmzZ0yePBl/f3+qVKmCp6enksxoNBpOnTpFq1atWLt2LTNnzmTYsGFJZjBRYxIHH5KYs2fPUqdOHUaOHKmUG1CG0/Dw8GD06NGMGzeOgwcP6myv1mOeWJEiRahSpQoREREsWrSI58+fA7Bs2TKKFy+Os7Mz1tbWjBw5kocPHwLqPd+zZs2qtOfs168fbm5udO3alVOnTjFmzBh69OhBhgwZWLp0KTdv3qRNmzbs3LmTtm3b6iRyaiw7fJhWsHTp0lSrVo1Vq1YpxxM+NBeYNm0aAHPnzsXU1JT169frbK/Wcn8vksjp2ccJiK+vLxqNJkkyd+DAAdq2bcu2bdswNjYmQ4YMyhAboL6G/Ym9e/eOqVOnYmhoiJ+fH2/fvtVJ1BIeNU+dOpW4uDimTJmS5DPUWP6EmIcNG0bmzJmBD8OPmJiYYGxszJEjRxg8eDBTpkzBw8MDc3Nzli5dqrSXAvVf4CIiIggODubJkyc4Ozvz8OFDjh49ilarxcDAgFOnTtG6dWt27NhBUFBQmuiRbWpqiomJCY8fPyY4OJjBgwfz8OFD9u/frzxeS0jmRowYQfPmzZMkcmnB6NGjeffuHXXr1sXAwICFCxcqNXP37t3jzp073L9/n0ePHinbqPF8b9euHTVr1qR///5YWFhQpkwZvL29OXXqFA0aNKBt27Zs3bqVVq1aYWRkxKJFi7hx4wb169f/5PyjamNsbIyJiQlXr14lKCiIn3/+mUGDBuHv709oaCgajUZJ5tKnT4+7u3uSRE78O3m0qkeJk7gWLVpgZGTEhg0biI+PZ9CgQQwePJiBAweyevVqrK2tady4MWXKlOHdu3eMGDFCte2DEjRt2pRChQphbW3NqFGjMDExoV27dowePRpvb28WLlyos37r1q3x8/OjQ4cO/Pnnn3qKOnl5eHgwfPhwWrZsyZMnTyhWrBheXl4EBQWxcOFCjh07BoC/vz/GxsZ07txZzxF/m49/uCS8rlatGj169MDY2JiZM2cq5U5QrFgxbt68qdoauMTl/vjfYPXq1ZQvX57evXtz4MABJZkzNTXFxsaGp0+fqvKHSoLE5c2ePTtarZaoqChluq0RI0ZQq1Ytjhw5wqpVq7h37x4LFy5k165dSg9NNda4w4ehRaZPn0779u3566+/sLKyonLlyhw7dowiRYqwbNkyZs+ezaJFixg9ejTt27dn586d+Pr6Kh2Z1Fj2xDF/3PzB29ubGjVqcODAASWZA8idOzfBwcGq/Y7rk9TI6VHCiT5mzBiaNGnC3LlzyZYtG48fP1ZqHqZNm4ZGo2HVqlUsW7aMZcuWKdurtX0QfPgy16lThx07dnDgwAFiYmKIiYlhxYoVmJmZMWHCBCIiInQ6fqxdu5agoCBOnjypx8j/d61bt9YpD3xo8Lxz505Onz4NfBgHLyoqitmzZ9O3b18Ajh07Rvfu3VU9pEyChHO+cePGpE+fnoiICDZv3syRI0cwNTWlU6dO9O7dGwMDA44cOcLq1avZtWuXMquDWs/5hHK3bt2aUqVKcfPmTU6fPs2VK1dwd3dn9erV+Pn5MXjwYM6cOYOfnx+vX7+mW7dugDpv5qB7vAYPHkytWrXInz8/Bw8eZM+ePWzatInffvuNmJgYatWqpUzPZGxsrPqyt2vXjilTptChQwfl8eibN2/YtWsXAA0bNuT8+fNK85ioqCiuX7+Oubk59+/fVz5HjWVPiLl79+5UqVKFp0+fcuTIEbZv3864cePQarU4OjpiYmLC2rVrmThxIoAyFIn4OpLI6VmrVq1wdXWlbdu2nD9/Xue9hGRu8uTJmJmZJamhUuMNDT4MoeHu7k7Lli25dOmSTo3i27dvmTdvHhqNBj8/PwCd5CchiVPbxb1r16788ssvrFu3TqdmJioqCisrK+W1Vqvl0KFDzJ8/n2HDhvHq1StiYmI4c+YM8fHxqiv3p/j4+NCqVStCQ0MxNzenSZMmtG3blr179wIfboCzZs3i5cuXpE+fng4dOijbqvWchw/T6nXr1o1Tp07h4uLCmTNnWLduHX/99ZcyGPTUqVN5+fIl0dHRtG3bVtlWbcc8YSilhOM1dOhQOnXqRP/+/YmIiKBHjx6MHDkSc3NzVq1axdSpUzlx4gQFCxYkXbp0LFmyRNVPHGrWrMm0adNwc3PjwIEDyvKlS5eyfPlyjhw5QubMmTE0NMTc3Jzo6Gh++uknpk+frgyjpMbveuKYBwwYQI8ePdi+fTsFCxakatWqZM+eHX9/f8aPH090dDT16tXDxcWFJ0+e4OTkpOfo1UsSOT0rU6YMe/bs0UniEn8Zpk6dSoYMGXByckqSyKlRnjx5aNSoEaNHj9aZXiexyMhIpTfjzJkzMTc3Z/HixTrrqO0Ct379epYsWYJWq6VixYqcOnUKrVbLmTNnmD59OtWrV9fpnfjmzRtOnTpFgQIFaNy4MWfOnAHUV+6P2djYUKRIEZycnHjx4gWlSpVi+vTpbNq0iWbNmrF3717CwsIoXLgwOXLkYObMmWliqI0SJUqQL18+3NzcOHv2LGXLlmXw4MF06NABjUbDn3/+SceOHWnUqJHyWq1DLmzbto1nz55x/Phx4uLicHBwwMnJiTZt2nDu3DmqVq1K1apVOX/+PP369SMuLo61a9dy4sQJTpw4oXyOWpM4+DAeZmRkJA0aNFASuSVLllC6dGlGjRoFfPhROmXKFJYtW0aWLFkAdNoGq/G7nrjzlpGREe3bt+fEiRPkzp2btm3b0qtXLzQaDfPnz8fX15edO3diYWGRJsZA1SdJ5PTMxsYmybAKWq0WY2NjKleuzJEjR/D29tZTdMnPzs6OvHnzJql9/Fh0dDRTp04lffr0lC5d+jtFl3ISeltWr16dKVOmsHXrVmVMwLJly7Jy5Up69OhBYGAgr1+/pm7dumzcuBFDQ0Nmz56Nv78/Dx480HMpvo2HhwctWrTgwYMHPHz4kLdv37J//3569+7N3LlzCQgIoHnz5ly4cIELFy4o2xkYGKj64u7m5oabmxuGhobK8BLnzp1j6tSpDBo0iHbt2qHVavnrr7/4448/lO3UWO42bdpQsGBBXF1diYuLI3369Fy7do0///yTwMBAatSoodQ2Hz9+nDVr1uDl5YWlpWWSH6pqTeLgw2wknTp1YvHixRgYGGBpaUmhQoVwcXFROm+sW7eO2NhY7O3t0Wq1/Pbbb6quhUxQs2ZN5syZQ2RkpDKUyIMHD1i+fDlarZYePXoQHx/PggULlJEJQJ3ne2ohiZyeBQUF0aZNG3LkyEFwcLCy3NramtatW/P+/XuOHz+uxwiTl7m5+X+29SpRogTu7u54eXkxfvz4NDUV0dWrV9m3b58yI8GUKVPo378/UVFR+Pv7K0MwvH//ni1btlCqVCnu3r1LdHS0niP/NkZGRkRFRWFjY4OlpaXS8zYuLo6jR4/Ss2dPZs2axf79+5V5GBOo+aYGH2qYbW1tsbW1pWTJkkpHjrNnz+Lr68uAAQMYMGAAoaGhSs0rqLPcWq2WJ0+ekClTJnr06EF0dDTjx49nxowZxMbG0q5dO1atWsW6deuIj4/n5s2b5MuXj1KlSuk79GQVHx/P/v378fDwwNfXFzs7O4oVK6b00tRoNMTHxyvzQidICzVSL168YM+ePTRv3pxffvlFGS8uODiY5cuXEx8fj4+PD0+ePGH79u3Kdmo831ML9beeVrnJkyfz6NEjNmzYQLFixciaNSvZsmVj9uzZ5MyZU7UN+z8nPDwcS0tLHBwcPrtO+fLliY2NJTY2VtVJ3MdDB5iYmBAaGoqvry+nT5+mTp06DBo0CPgwBIm7uzs+Pj789ttvODg4EBsbS+PGjXnz5g1RUVH6KML/7OOyx8bGsmXLFiZNmoSdnR1z5sxR3ktI5gYPHsyTJ09UPeTCp2Lfvn073t7ePHr0iM6dO1O2bFnlvXPnzjFnzhxOnDihDDmiZseOHcPa2poNGzbg4eGh9DqNiorC3NycokWLEhsbS3x8PJaWlsTFxeHn50fPnj31HHnySPwjNaG968CBA3n9+rXyZEWr1X42aVFbEvep8z0wMJDZs2ezbds2Bg4cqNOB4fHjx6xZs4bBgwfr1D6LbyPDj6SwxO3dEg8KmViuXLmYPXs29vb2xMTEEBoaSlxcHPXq1UuT88vNnz+fRo0a0bJlyyS1jba2tixZsoRdu3Yxd+5cPUX47RIfs86dO1O8eHEKFCjA+vXr2bZtGxqNhsGDB1OpUiX27duXZGy8QoUK0bt3bxo0aICLi4vOgLGp3cfTEGXJkoWnT5/yzz//8Pr1a9zc3Bg9ejR79+6lX79+n9xOjed84pgbNmxI5syZyZw5M4sXL+bVq1fUrFmTYcOGKcNrnDt37l8/Q20SYl+xYgUNGjTg6NGj9O/fX2kSYGZmho+PDz///DNHjx6lTJkyWFpaUrdu3TTRkSfhkWixYsXo1asXffv2JS4uDo1GQ+3atVmwYAF//PEHffr00XeoySLx8WrdujW5cuUiX758LF68mMuXL5M1a1Y8PT2pWLEikydPZuvWrUk+Q+2PkVMLqZFLYQknure3N2PGjCF9+vRJ1nn48CGNGzemb9++jB49Gl9fX+rUqUNsbCyGhoaqvrh9SsIXff369bi6upI9e3YyZsyIo6MjmzdvJjw8XNVJHPz/cR89ejSenp6EhYWxf/9+/Pz8GDlyJBEREcycOZOTJ09So0YNfHx8lG3Nzc3JkSMH6dOnV10SB/9f9lGjRrFw4UKGDh3KvHnzWLBgAaVLl2bTpk2MGTOGWrVqKdOrJd7u4/9Xi8THfPz48TRq1IhatWpx4cIFZdysqVOnkidPHrp06UKlSpU++xlqlDCI8927d5UpxsaPH4+9vT3w4RHzxo0b+fvvv6lSpQrh4eHUr18/TSVx9vb2bN68mVevXim1a1qtlgMHDuDh4UG9evWUoXTULvH57uXlhbW1NZaWlqxYsYI+ffrw4MEDFi1axIkTJxg0aBCtWrVK8hmSxCUPaSP3HVSpUoXatWvTt29fnfkyEyRcxHbv3q2zPK02/jx//jyjR4+mW7duzJ07l7CwMIyMjHj8+DGBgYH07t0bUHftBHyYK9TZ2Zm2bdty8eJFSpQowciRI5WG/OHh4cyYMYMxY8YoQ5DAh5kujh49yqlTp1T3SDVBwuTnnTp14vTp03h5eeHh4UHGjBmJjY1lx44daLVa5s2bx/3795kxY4a+Q04Wrq6uuLm50aJFC65evYqjoyMbN24kXbp0AOzZswcDAwMmTJig6jEREyT+jiYkM+PGjSM+Pp5//vmHtWvXMmLECCZNmsTVq1c5c+aM0ls9oZOX2tuFJU7itmzZwsaNG/H29kaj0TBmzBjGjRtHbGws+/btY8CAAbRv317117YEderUoUmTJri6unL16lUqVqzIjh07lHZx165dY8GCBVhbW+Po6Mi6dev0HHHaJIlcCnN1daVMmTKcOHGCwMDAT1Ylf+4LreZfK/91oTp79ixnz55l+fLl5MiRg7i4OG7fvs2lS5e+aHs1MDMz4+HDh1y8eJHGjRvj5+fHkCFD2LhxI1ZWVhQqVIgLFy7g7e2t9GpNKHdcXJwqb24J8ZcpU4a1a9dy+vRpGjRoQJcuXRg1ahQHDx7EzMwMIyMjtm/fTmho6CcnhVeLj8/THDlysHnzZq5evUrjxo2ZMWMGgwcPZufOnVhZWSkDwr58+VKnY4MaJS67h4cHxYsXJ3fu3OzcuZM9e/Zw6dIlXF1d2bBhA0OGDGHKlClcvXo1SS99NZ7nCRIncVu3buX3339Xkri9e/fy+vVrjIyMiI2NRavVsmPHDnbs2AGo8xr3ccw2NjZcv36dq1ev0qxZM6ZNm8aQIUPYtm0blpaWZM+enVu3buHj46MzyLFIXvJoNYU1a9ZMaSNlYmKi6uTsSxQrVgxzc/MvvkAdO3aMDRs2EBAQoCRxoO5HTAnSpUuHnZ0drq6uTJ8+nTFjxigzc1SuXJl+/fqRI0eOJEmcmiXUPJmZmXHx4kUqVqzI/PnzGTNmDCtWrMDQ0JAWLVpQo0YNoqOjOXjwIPHx8aqdtSJxbRR8GCfR2tqaKlWqMHPmTHx8fFi+fDkAnTp1Uhq8nzp1StXlBt1H6AMHDuTKlSucP3+e9u3bM3nyZKysrLh69SotWrSgVKlSTJo0ibx58+o36GT0cU1c4iRu3759vHjxgnbt2n22Vl2N3/WEmHPnzg18SOSMjY0pV64c06ZNw8fHR7nGJcwja2Vlxb1799BqtaruyJSaqfcqkgp96iR1c3Nj7dq1FChQgFatWmFubq6HyL6PXr16sX//fnbu3EmtWrUoWLCgzvs/wpe4devWSqPegwcPcvfuXebOncvcuXOVC5ypqSnu7u5ERUXpDDmjxgt71apVlf8fOHAgLVu2BODRo0f4+/uzceNGBgwYwIoVKwCwsrKiSZMmSW7oavuB4+DgQIMGDYAPg3Z7eXkBsGXLFuzt7QkICNBJ3C0sLChXrhzGxsY6n6O2cn+sbNmy1K9fnzZt2ihzA+fOnZvNmzfz5s0bjIyMuH79Ou3bt+fVq1dpqlYmPj6eIkWKsH37dp3Hqfv27SMsLIxOnToRERGh7zCTRa1atRg4cCAAEydOZMSIEcCH8z1fvnz89ddfjBgxgqVLlwIfrnGNGzdWaqETqPEapwbyaDWZJK5N+emnn9BqtaRLl44LFy7Qr18/Fi1ahIeHB5GRkezYsYPIyEg9R5y8EpK0DRs2EBQURI8ePTA3N+fAgQOsX7+eR48e/RBf4oSbV/369dm5cycbNmwgY8aMVK9enb///hsbGxuaNWuGnZ0djo6OgHpr4rJmzcrUqVN58eIFFy9epH379tSuXRuA6dOnkz9/fipUqMDhw4exsrLCwsICPz8/zM3NVd2ZJUOGDIwYMYJ3797h6upKjRo1qFevHvBhnMArV65gbGyMsbExlpaW5M2bFy8vL2xtbWnfvr2eo//fDRo0iPPnz3Pw4EFlmYWFBfHx8Zw7dw4nJydmz57NyJEjWb9+PWZmZjg6OnLs2DECAwNxd3cH1Hu+fyru5s2bs3z5ciZMmKA8Tk1rSZyZmRmVKlXCxcWFqlWrUqpUKerWrQtAaGgofn5+9O7dm/Lly3Pq1Cly585Njx49sLOz05lmTqQcGX4kmY0YMYL69etjYmKCmZkZf/75J8OHDwc+9NYsWrQofn5+/Pnnn7x7907P0SavcuXKsXLlSpycnAgNDaVKlSr07t2bqKgo7ty5g5+fH2FhYWmu3AAZM2bk5cuXZMiQgVmzZmFoaKjcuJo0aaL0YLx69SrBwcH07NmT2NhYVXe/NzAwoEyZMgQEBGBgYECjRo34+++/lTZB5cqVY8yYMRQrVoxnz54RERFBXFwcDRs2VG3ZE27mCbVOefLkwcvLS2dWgly5cjFkyBAqVKhA1qxZlWFXmjdvrtpyJ8wD+vr1a2bMmKFMpVW9enUGDhzIkiVLlEfJCbWQjo6OuLi44Ofnx7179/QY/bdLnMRVrlxZGU4n8fsJj1M7duyYZpK4hHJnzJiRDRs2UKZMGRYvXqzc0+DD49X69evTr18/bGxsePjwIcHBwXTo0EG157vaSCKXjPr27Uvv3r1p06YNV69eZfDgwfTu3Zs6deooPbUWLVpEtWrV6NGjh85kymqW+CI3evRobG1t8fLy4uXLl5QuXZrdu3cTEhJCZGQk58+fZ9euXZ8cU0itBgwYgJubGwMHDuTYsWNkz56do0ePMn/+fKZOnaqslz17dp4/f6763nqJj3eRIkVYuXIlRkZGPHr0iObNm+s0ZtdoNDRt2hQTExNevHjB3r1708Scio6OjnTu3BlbW1tCQ0NZu3Ytf/75p/K+lZUVlpaWlChRgvv373Pr1i20Wq2qy+3o6Ei3bt2UaeOOHj2KRqNRJrsfMmSITvOBFStWEBERQZcuXfQcefLx9vamZs2aLF26lK1btxIREYFWq6Vnz56UL1+e3r17p5kkztTUVJlRpkqVKpQrV45cuXJRvnx5tmzZwrRp03TWNzAwoHDhwrx8+ZKnT58C6r3GqY0kcsnEwMCAhQsXsmfPHn7//XcaNmzIrFmz8PHxYcWKFZibmys1UcOHD2fy5Mmq/5VSoUIFbt26RXh4uPKrq169egwePJg6depgbW3NkSNH2LVrFwMGDKBNmzbUr1+fN2/e0KNHD32Hn2wWLFhA06ZNCQ4OZu3atRw9ehRbW1v69OmDj48PR44cAdT7SCmxhLHPTp48yYwZM4iKimLixIkUK1YMX19fXr16RePGjYmNjVW2+fhirsZf6M7OzsTHx/PHH38wZswYsmTJwoABA8iRIwdTp04lNjaWFStW6CRzH1Pr8U+oYYUPjxKbN29OunTpmDRpEqdOncLe3p7Vq1cTHBzMqlWrMDIyonnz5tja2uLo6JhmbuRDhgyhc+fOdOzYkQsXLuh0YjAwMMDY2Fj1U+klcHFxoXjx4kyYMIHx48dTt25datSogampKR4eHjg7OxMQEKCTzOXNm1en5lWt57saSSKXTCwsLDh58iSDBw8mIiKCtWvXMnr0aJYvX46RkRGDBw/m5MmTHDp0SNlGjTe0BFWrVmXmzJls3LiR+fPn8+rVK+W9jRs3YmxsTOHChTl48CBDhgxR5ta0sLBQ/j+tyJo1K8OGDcPExITw8HDy58+PiYkJr1694u7du0yePFknsVErKysr9u/fT1BQEK9eveLXX3/F2dmZK1euYGhoSNWqVfHx8eHly5c0bdqU2NhYpk+fztmzZ1U9fpSxsTFjxozBw8ODnTt3Km3irl69CoC9vT0TJkwgKiqK9evXs337drZu3crhw4fTzPh48KGNXOHChbG3t6do0aIcP36cKVOmcOLECQoXLszUqVPJlCkTr1694t69e/Tt21fVj9YSJyK5c+dm5cqV+Pj4cODAAbJkyUKuXLmoX78+N27cYNOmTXqONnm5u7szY8YMzp49S9GiRWnQoAE3btwAwM7Ojvbt2+Pk5MSOHTvw9fVl/fr13L17l6FDh+o58h+TJHL/g8/90hgzZgxFihShcuXKjBgxQhnB29bWltmzZ/PHH3+watWq7x1uivHx8aFSpUrs2bOHRYsW8fLlSwBq1KjBkiVL2LFjB4MHD1b1fKmfM2DAAGJiYti1axd37tyhV69eZM2alZUrV5I+fXomT56sTARevXp11c3O8DmZMmXiyJEjZMqUiQEDBrB27VrlvcTJnLW1NUFBQeTOnZtffvklTdTKnDx5kgIFCuDt7c2CBQswNDQkPj4erVaLvb09o0aNInfu3BgZGREXF0f16tWTjJmmVp07d8bb25s2bdoQFBREpUqV6NChAzExMfj6+nLq1CkAsmTJQmRkpPJ4MS08WjM3N8fExIRt27axadMmTpw4QadOnShWrBgxMTGULl2avn37qvrHyqcEBARQrVo1Vq5cydChQ3WOo52dHa1atcLDw4O3b9/y9u1batasmSZ+sKqRDD/ylRIncXZ2duTIkUN57/Tp05QsWZITJ04o7d8yZ86Mn58flpaWrFmzRi8xJzdDQ0Pgw/hR+/bto169enTp0oUMGTIAH0bzfvLkCeHh4WkyiYMPo9K3b9+eMWPG4OrqyrJly6hZsya1a9fmwoUL1K1bl0mTJrFt2zbll6zaGRkZYW1tTUhICA8ePKBBgwZUrlxZeT8uLo4jR47QuXNnAgICOHPmjJLEqXW8tIRzPV26dFy6dIktW7bg4+ODk5OTcmMzNDTk+vXrDBs2jEmTJrFkyRKqVq3K+/fvle3Vrly5cvzxxx8cP36cx48fs2nTJubMmUP27NkZPnw4FSpUAOD58+c6bcTUmMRVq1ZN6ag0efJkRo4ciYGBASdOnKBJkyb88ccfhIeH4+PjQ506ddi5cydFihTRc9TJx8jow2AWV65cYerUqbRv354hQ4Yo13eAJ0+esGjRIho3bsz48eNxdHRUppQU35/UyP2PvLy8aNKkCRYWFjx+/JhZs2axbds2WrduTf/+/YmKiuLVq1eYmJhgZGRE3bp1Vf2Y4WOJG8LeuXOHFy9esHHjRpYsWcKLFy9o2rQpEydOpFWrVsqUVGlNqVKlaNiwIR06dGDjxo3cv3+fvn370rlzZ6WGIoFaayY+V/ucPXt2fv/9dx49esSsWbOUXoyfosZzvkSJEly+fDnJcTM2NmbUqFF4eHjQpUsXZZR+SNpGSI3l/pyJEyeSJ08epRYuwcCBA+nfvz+3b9/G09NTZ1BvNbKysmLq1KnkzZuXFy9e4ODgQP369bl27Ro2NjZkyZIFIyMj5bE6wF9//cWuXbuYNWuWHiP/NpUqVeL58+c8e/ZMZ9w3+P/HrNOmTWPevHnKNJNly5bl3Llzynpp6XxXGxlH7gslvqG5ubnRrl07vLy8CAkJoUOHDgwePBg7Ozv8/f35559/KFq0KLly5eL27dts3LhR9T31+vfvj1arxc/PDwMDA6KjozExMWHHjh2cP3+ef/75h3r16qHRaJSBQbVaLQULFlR1Ile9enU0Go1O28YEgYGB3Lhxgy1btuDv78/PP/+Mubk5bm5uXLt2TWdeXTUe98TnfKFChciYMSPXrl0jLi6Ox48f07FjR5YuXUqvXr0wNjbm8OHD7Nixg8OHD+v01lXbxb1evXqsWrWKLVu2cPPmTf744w9u3rwJfKiJTSjbwoUL6dWrF3v37mXOnDm8ePECT09P5XPUVu5/c+3aNVxdXalSpYpOb/tnz55x/vx5jh49yt9//63HCJPHmzdvGDt2rDLUxuTJk5VmES9evODFixfAh7HV8uTJw9ixY1U/LmLZsmXZvn07GzZsIFeuXIwfP567d+8SFhYGwOrVq9FoNEyfPh1jY2P+/PNPBgwYQLZs2fj111+Vz0lL57vaSCL3hRJuaA0aNMDU1JQJEyYQEBAAwJEjRxg/fjydO3fm3LlznD59mtOnT+tsb2BgoMqbeQJDQ0OGDRtGVFQUCxYsQKPRsHPnTl68eEHLli3RarWMHj2aOnXqEBcXx/Tp0+nWrZtq59HUaDRYWloyd+5cAgICPpnIAURFRXHt2jXq1q1Lx44dyZw5M3ny5NFJ4tQq4ZwfMWIELi4u2NjY8OjRI9atW8eWLVu4ffs2nTp1wt/fn7Fjx2JqakpcXBx+fn56jvzbhIeHc+fOHcLCwrC2tmbPnj3MmjWLGzdu8Oeff/Lq1StlIvQFCxZw48YNjIyMdGa5SGtWrVpFpUqVWLhwIZ6enly5coXQ0FDq1avHoUOHmDlzJpA2eioaGBhw8+ZNHjx4QPXq1Xn69KnS3jmhB2+TJk2oW7cupqam/Prrr0rzATUmM2/fviUyMpKLFy9y69Yt/Pz8uHHjBqdPn2bJkiXEx8ezatUqtFoto0aNon79+rx7904ZBFvonzxa/Qo5cuTg1KlTpEuXjilTpuDr66tTy7Z3717u3btH165d9Rxp8kl8Ye7WrRvjxo1j1KhRNGnShJcvX9K5c2edNjGjR4/G1dWVAQMGsHv37iSfoTa9evWid+/euLi4cOvWrU+uk3AB12g05MiRg+DgYNWW92MDBw6kU6dO9O3bl/3797N69WqKFSumPEYPCQkhd+7cVK9eHTMzM5YsWUJcXJyqa58zZcrEyJEjOXLkCFu2bMHV1ZWiRYvi4uLCqVOn+OOPPzh48CBRUVGULVuWHDlysGPHDtXXun9O4u/vjBkz+PXXXzEwMFDGUKtcubJqy5wwI82nvq/58+dn0KBB5M2bl7Vr1yrJHHyYU9rW1pbDhw+rfnxA+PA9z5w5M8OHD8fBwYFMmTIxffp0rl27RmBgINOmTeP169fY2dlhZ2dHYGBgmj3f1UgSua9gaGiIg4MDkydP5sWLFzRr1ozo6GjlQjdx4kSyZs1Kp06d9B1qsvD29sbGxoYhQ4Yove969OiBj48PDx8+pHr16kp7isRf6MaNG6eZAX+LFSvG/PnzWb16NYsWLfriX91qTl4TFClShOnTpzNr1ix2796No6Mjy5cv5/z58xQoUIB169axdOlSnj9/rrOdWmsmEhsyZAiurq44OjoSERFBxowZOX78OLGxsQQHB2NlZcWSJUvYtGmT8h1Qa7kTn6vFihXj7t27n53oHaBixYpkypQJMzMzNm/eTHx8vCrLnnh8PIA2bdqQJ08eIiIiWLlyJS9fvqRYsWL06tWL3Llzs2nTJpYvX87mzZs5fvy4MoZaWviuOzs7M2jQIFq2bMnjx48BOHv2LC9evECj0ZAnTx4OHDjA9OnTuX37NqDe8z0tkkTuMxJ/OQ0MDNBoNEqiUqVKFRYvXsz58+fp3bs3kZGRvH//np07d3L9+nX69eunz9CTRZEiRTh27BgAK1euZMiQIUr5O3TogK+vL8OHD2fx4sXKNh//OksLFziA2bNnU758eaVn3o8iffr0ODo6sm/fPkqWLMnSpUuZNGkSK1euJCAggAIFCrBr1y4mTZqkM45gWmBgYMCmTZtYuXIl27dvZ//+/YSGhtK3b1+yZMlCr169sLGxoUWLFqo+xxN/R4cNG0b58uVZvnw5O3bsSFKuz32f1XhDHzt2LI0aNaJSpUrExMQwduxYWrZsyZ07d7CxsQFQphq0t7ena9eu1KxZk/fv3/P+/XuqVaum2qE2PnccN2/ezK1btxg+fDiHDh0iPDycrl278vz5c4YOHUrWrFkZNGiQ6o71j0ASuf/Qt29fSpUqRY4cOVi1ahWnT5/m9u3bVKlShYULF/L27Vvu3btHeHg4P/30E9WrV1ftF/xjs2bNwsrKiipVqnDkyBG6du2qfIl79OjB2LFjGTlypM48k2qWJ08e7t+/r7w2Njbm/fv3FChQgA0bNjBv3jyWLl2qxwi/P0tLSyIiIpg5cybv379n6NChxMfHM336dCpWrMixY8cYMmSIvsP8n33qppYwhIKPjw958uShQIEChISE4OHhwbNnz/QRZorz9vbG3d2dbt268ffffyuN+iHt/CBL7Ndff2X48OHKMEJeXl74+/tz8+ZNihcvzm+//Ubu3LmpUaMGoaGh5M6dmzx58pAnTx7Wrl2bJh4rOjo6cv78eSIjI4mNjaV+/fp07NhRqZXt0qULISEhSbZLi+eD2qlzcKcUlNBmAj6MZN63b18ePHjA/fv36devHyNGjOCXX37h2LFjeHh4EB0dTdGiRZk6dSqVK1dOU2PpPHr0iEyZMtGqVSsqVqzIggULlPHA5s+fz6hRoxg3bpxOTz21+umnnzh37hyrVq2ic+fOAMrj5JCQEG7fvk2NGjX0GaJeJLR/tLa2xszMTBljysrKipEjR6o6iTM2NlZuSHny5FHGhIyLiyMuLo65c+dSrlw5YmNjadmypZLEJb5GpAW//PILjRo1olWrVhw6dIjo6Gjy5MlDq1atyJ49O1qtVrXjAH7OgQMHGDNmDCYmJmzfvp28efMSGhpKXFwcly5dYsCAATx48IADBw6QOXNmHjx4wNGjR1m9erXyKFnNSVyNGjVYuHAhMTExSsXD2bNnyZ49O1FRUTg7OytJ3MfnuyRxqU/a+nYmg4STNHv27NjZ2dGpUydlep5Ro0ZhaWlJ165dyZw5MydPnmTYsGEYGRkxcuRI5TPU/AVPbNq0aaRPn55SpUrRpUsXatasyfz585WLur+/P76+vhQsWFDPkX4bJycnKleujLu7O0ZGRvTt25fjx4/TpUsXChQowJs3b5g2bRrVq1enUaNG+g5XL4KCgihZsiQLFy5k165d/PTTT0pPXrUlNl5eXkptK8DIkSPZsWMH27ZtY8uWLVhYWADw+PFjVq1axe3btzExMVG2T2s3svfv32NqaoqBgQFFihRh+PDhBAQEMHToUI4fP0727NnTzOO0hHM1Pj6eEydO4OPjw5MnTyhevLhOu8CbN28yYMAA7t27x5UrV0ifPr3O56j93+PGjRtER0eTO3duNBoNBgYGhIaGMnnyZGJiYihZsqSyblo739MiSeQ+wcnJiUuXLlGvXj2dx6Q7d+5k5cqV1KpVi1y5chEXF8fx48fp2rUrpUuXZsuWLXqM+tuMGTOG5cuX07RpU6ytrYEPCenWrVuxt7fn5MmTdOjQgdq1azNv3jwlmZs6dSq9evXSZ+j/M41Gg7W1NRMnTiQ4OJjdu3fj4eFB06ZNuXz5Mu7u7uzZs4eBAwdiY2PD1q1bqVq1apqpcf2aBGzMmDHs3buX169fc+PGDapWrarUTKjpQp83b148PDzYvHkzGo2GOnXq0LJlS7y8vJg2bRoZM2Zk3759Su3cmTNnqFGjhs6NTc0SH/OCBQtiYWFBWFgYN2/exM/Pjz179pAuXTomTZpE7dq1CQ0NpW7dunqMOHkl7tQRFxfHsWPHmDFjBk+fPmXLli2Ympoq6968eVOZajFxz3w1Szj+r1+/Jl26dBQsWBCtVqskpnfu3CEyMhIHBwd9him+krSR+wQTExOmTJlCmzZt8PT01Ol2Dh8u7mvWrNEZL8vR0ZHJkyfTpEkTpdePWiTu2LB7927s7e3x9fXlzJkzREREcPr0aTp27MihQ4eoXLkyy5cv5+LFi7i6uuo58m9nbGzM+fPn6du3b5Kx4ooWLUrt2rVxd3cnMjKSn376iaioKMqXL8+TJ0/0E3AySdy+57/a+nyuMbta2wj9/PPPLFy4kCdPnrB27VrSpUvHypUrgQ818UuXLsXa2lr5Lu/YsYMnT57g4eGh58i/TeK2TUOHDuXnn39m2bJl7N27l1KlSpE7d25evnzJ6dOniY6OxsLCgm3btuHn56czg4UaJS57mTJl2L17N506dWLHjh0YGhpSuXJlxo4dS0xMDM7OzsqsNYmpsVNHYt27d8fZ2ZkTJ04QERFBlSpV2Lt3L7///jvh4eHKer6+vhQqVIjGjRvrL1jxVX74RO5zDTdNTU2ZM2cONWrUoFOnThw9ehStVkvGjBnZvXs3s2fPTpLgmZmZERkZ+b1CT1atWrVi+vTpzJkzh7CwMBwdHcmRIwfbtm3j559/Jjw8nKFDhxIZGYmjoyONGjVi0KBB+g77m5mYmHD69Gm6devGmTNngKTnRKFChShSpAienp4YGRlRo0YNVV/Qa9euzatXrzhz5gy//fYbmTNn/qIkJS01cv7555/x9/enYMGCTJgwQRnQFv4/mcuQIQOurq5kzpyZS5cuqfqYJ5bQsaFPnz5cuHCB0NBQnfdNTEywtbVlypQpZMmShbp166aZsnfp0gVra2tlSKXevXuzefNmjIyMqFy5MqNGjSImJoYmTZr86xAsauTp6YmVlRW5c+emUKFC5M6dGzMzM65evco///xDaGgoQUFBHD16lJs3b6aZ7/qP4IdO5BLfmMqWLYuJiQlv375V5gs0NDRkyZIlODo6sn79eu7du0fVqlXJnTs3jo6OqqyN+DedOnVi0qRJ9O/fn4MHD5I3b16GDh1K8eLFuXLlCs2bN08TPXIbNGjA/fv3uXr1Kjlz5uTQoUM0btyYK1eu6Kz3qcQlYZmaf50fOHCALFmycOrUKWrUqEGjRo24cePGF2+fP39+nj17xtu3b1MwyuSV+FgmtI8rVaoU06dPR6vV0qhRI50fYdmzZ2fHjh2cOnVKaTqg5mOeoEKFCsybN48uXbpw8eJF0qVLR5YsWShZsiSXLl3i0aNHdOnShdq1a5M+fXqcnJzSzBzRXl5etGnTBm9vb6ytralYsSLOzs707NmTgIAAjIyMcHBwYO7cuezdu5cBAwboO+T/2b/96DI0NMTIyIjffvuNSpUqMW7cOBwdHSlevDhhYWF06NBBGeBckjl1+KETuQReXl60aNGCyMhI8uXLx9SpU1m9ejVPnz7F0NCQOXPm0Lx5czZt2sTZs2dZvny56kev/5yuXbsyYcIExo0bx+zZszExMaFo0aI8ePCAly9f6ju8b2ZqasrKlSupUqUKNWvW5NGjR1y7do06deoo82n+l7Rwgbt69So2NjYMGDCAdevWffF2Xbt2pVWrVri7u6umCUHi45UwWPcff/xBSEgIpUqVYuHChYSEhNC4cWOdHyqZMmUiPDxc9QlMYmXKlGHOnDl069aN9+/f07p1axo2bAiAhYUFjo6O2Nra8tNPP7FhwwbVDrNhbm7Ou3fvlNeZM2cmICCAhQsXsnbtWuDD8e3Xrx/du3enS5cubN++HSMjI4oXL87ff/+t2uOe+Hxv1aoVhQoVwsLCguPHj7N9+3ZlvXr16jFq1KhPtodLC9e4H8kP39nB09OT1q1b0717dypVqsTcuXMZOnQoffr0IWvWrMTFxdG3b182bdpE1apVuXz5sjKvntoubl9i0aJFDB8+nFGjRtGvXz9iYmL4+++/efnypep6J35KdHQ0np6e7N27l+3bt1O+fHmuX79O/fr1qVKlCvXq1cPJyQlHR0dq1KhBjx49yJ49u85nqPECl3DsNBoNVlZWPHv2jDt37uDp6UmlSpV03v94mwTt27dn2LBhzJ49WzVJHPz/8Ro9ejRDhgzh3bt3StkCAwPp2rUrdnZ2bNmyRRleBSAsLEzp0JFWxMXFERERga+vL7t378bCwoKJEyfSpk0bXr16RcWKFfn7779Zt26daofZ2LBhA8OGDdNZZmJiQr58+XTKEhYWhr+/P5cvX2bx4sVK7WPC9FNqPe6Jz3dvb2+MjIzInDkz3t7eTJgwQVnv1atX5MqVizx58nz2M4Q6GP33KmlL4l8aefLkoUyZMgwZMoRTp07RsGFD2rdvz8qVK5X5UufOncvjx4/p1asXixcvZtmyZXh4eHD8+HF9FuOrfc0vrCVLlgAwYcIE4uLimDNnDpB2vtyPHz9m2LBhTJ06ld9//x34ME5aly5dMDY2xtDQkMjISDQaDc+ePWPBggV6jvjbJD72jRo14vr169SsWRP40BN79uzZ9OnTh9OnTyu1EImH54APSdyYMWPo06cPf/zxx/cvxDdq3749rq6uNG3alGvXrgEfpmgyNzfn0qVLtG/fnmXLlnHs2DEcHBx0amPUWDOT+JhbW1sTHx/Pq1evuHTpEqNGjSJv3ryEhIRw8uRJIiMjMTc35+3bt0maTqix7KNGjSIoKAj4kMDFxMTw+PFjdu/ejYuLC0ePHlV+iDx+/Jhr164RHx/PokWLaNasmXJtV1vZEx/zGjVq4OzsjLu7OxcuXMDJyYm6desSGBiorH/u3Dlev35Njhw5dAZCF+qjzp8c3yDhRC9evDj3799n69atHDx4kLJly/Lbb78xefJkBg4cyIIFC+jcuTPDhg3DxsaGuLg4unbtyvXr15kxYwbp0qXTc0m+nJGREQEBAUyYMAEPDw+dX5qf+9W5ZMkSRowYwejRo/n111+/V6gpIn/+/FSuXJnGjRtTpUoVAJ4+fUr//v1Zs2YN8fHx9O/fnxIlSlC+fHlKlSpF5cqVqVy5MrVq1VLai6hV4l/oo0aNonHjxtja2gJQv359nj9/zsyZM6latSpWVlasXr2aSZMmKdsnJHF9+/ZVZRIHkC9fPg4dOsS1a9fImzcvrVu3Zu/evSxfvpz27dtz5coVevTokaSdpBolvqH369eP9evXs337djZv3oyVlRWnTp1i/fr1HDhwgNjYWLJmzcrixYt5//49f/31l56j/3Y3b94kJiaGnj17sm7dOmUMuH379mFjY0PPnj2V89/MzIwMGTIwa9Ysdu7cSadOnVR1bQfw8PAgZ86caLVa5TplZ2dHcHCwksTNnj2bkSNHsnHjRszNzalQoQLGxsbs3LmTU6dO6bkE4lv9MG3kEl/cfHx86N69OwUKFCA2NpbIyEhGjx5Nrly56N27N1FRUQwZMoSyZctibm6Ok5OTsq2hoSFZs2ZV1aMl+DA2Xvr06RkxYgRXr17l6NGjLFiwgJiYmH9tyFytWjWOHDnynaNNPi1btqRPnz7K44X06dNz5MgRlixZwl9//UXmzJnx8/OjTJkyuLq6cvnyZUD3fEkL7UU8PDwYNGgQbm5uXLlyhffv3+u0fdq2bRv58+fn7du3vH//nho1ahAbG4uzszPz5s2je/fuqkziEm5sv/32G7/88gvHjx+nYsWKhISEKCPXlytXjubNm+v03lRr4/7E56qXlxetW7dm0qRJ/PPPP8yfP5/g4GA8PT25efMmRkZGdOvWjerVq5M+fXoaNWqUZjo2wIcObAEBARw4cIAePXoQHR1Nz549cXFxIUOGDJw/fx57e3sAatasyZQpUyhcuLCqht2oUaMGkyZN4vz584wfP165L7m5uVGjRg02btzI0qVLGT16NMuXLwc+dPYqX74806ZN482bN4B6z3fxwQ9TI5dwcStYsCDm5ua4uLjw5s0b5RFawYIFMTAwIDY2Fo1GQ8mSJfHz86NRo0Y6v3Ti4uJUl8QB7NixgzVr1lClShVu3LhB/fr1Wb58OWZmZv/aHiQhiVNjjZSrqytTp05lzpw5tGjRgmrVqtG+fXvs7e0ZPXo0DRs2JDQ0FE9PT86ePcvGjRspUaIEoPsYWe1JnImJCeXKlcPf35+LFy8qj88SX7hdXFyYMGECM2bMwNHRUVnnypUrtGnTRjVJ3KemE9JqtcybN4+goCAqVqzI1q1bmTRpEoMHD+bIkSNEREQkGTdMbTe1AgUKAP9/rlatWpXatWvTpUsXVq1ahbm5OenTpydnzpysXLmSIkWKEBsby9mzZ9m1axcNGjRQphdUW9nh09enc+fO0bRpU6pVq8aiRYswNjZm3rx5+Pj4sGnTJszMzDh27Bj16tUDPnT2uH//PsbGxt87/P/ZwYMHmTt3Lrly5cLb21tpzxsYGIizszPr169n2LBhShKXLl06OnTogLW1tZLEgfrOd6Hrh6mRA2jcuDGjR4/m9evXuLq6EhISolz4mjdvzvz58zl69KhS7V69enXVNfT9Nwm/ukxNTalbty59+vQhOjqa5s2bExUVlSZqnhLkzJmTFStWsHz5clatWqXzXuHChdm0aROPHz+mZcuWhIeHky1bNhYuXEhkZCRubm56ijp5fHwcjYyM2L17NydOnMDb21tnXVNTUwoWLMjVq1d1lifc0NV0PiQud9OmTSlcuDDx8fHs2bOHwMBA0qVLh5GRkTJKv7GxMStWrFAmTler0aNH89NPPzF58mTOnz8PgIODAyVLlsTf3x9HR0cWLFjAxIkT2blzJ/v37+fBgwcMHjxY57irtVYm8XF3dHRUBja+efMmN2/e5JdffmH9+vWcPHmSbt26JRnrM0OGDPTv35+2bdvSsGHDL+69rm9Vq1bl1q1bPHv2jI4dO9KsWTMePnzIb7/9xsOHD3FxcWHOnDksXryY/fv3o9Fo6NevH1myZKFmzZpp6t72o/thauQAIiMjuXfvHnnz5sXKygqtVqtMtxQQEEDnzp25e/cuu3fvVpI4tfZcgg9fdBcXF5o1a4aJiYlykY6OjuaPP/7gt99+w9jYmPHjx2NoaKiqm/Z/yZw5M1mzZlXGBExgYGDArVu36NChA2XKlKFOnTrAhzZz7du3p2XLlvoIN1klbuQOH2rkHj58SKFChbC2ttapvciVKxf9+vWjcOHCOp8RFxenuvPh47aApUuXplixYsrUalFRUURERGBlZUXLli1ZuXIlOXPmpHPnzoA6a53hQ+1LhgwZ6Nq1K2XLlgXgxIkTbN++HWNjY/r06cPKlStZvnw5796948GDB5QrV46BAwfqfI4akzjQPe7Tpk2jZcuWtGnThs2bN1OlShXOnz9PixYtKF++PHPnziVjxozKtra2tgwbNgxHR0caN26smiSuY8eObN68GTs7OwCWLVvGpk2byJUrFyNGjCB79uxs27YNT09PpZJizJgxREVFUatWLdXf24SuH+JINmvWDCcnJ3bv3s2cOXO4desWCxYsULqjJ5zQ27dvZ9CgQYwbN04ZJ06tF7eRI0cyY8YMBgwYwPz581mwYIEytELCL++jR4+yadMmChcurNwA1Hoz+1i2bNlIly6dThsQQBkX6/z581y4cEF5JAUQHh6u8xhdzVxcXDh27BhFixbl3bt3zJ49m6pVqzJy5EiyZ8+OoaEh1tbW+Pj4YG1tze3bt/UdcrJo3749zZo1o0OHDri5ubF9+3YsLCz4/ffflTlDjYyMqFChAs+fP1faAqr5h8y2bduYPn06+fPnx8PDg3LlygEfemTa2NiQM2dOLl68CEBsbCz379/HwcFBSWDTAjc3N1xdXenWrRsNGjRg37592NrakiVLFuBDstuyZUucnJx05oYOCQlhwYIFSttRNWjfvj0TJkygQ4cOOr1Qly1bxpYtW8idO7fymDUgIICaNWvi4uJC27ZtcXd3V/UjdPFpaX74kXTp0tG2bVsiIyPZsWMH+/fvx9jYmK5duzJr1iz69OnDvXv3PjnopVqrnvv06UPr1q1p06YNd+7cIXPmzBw+fJg2bdqwYsUK5QscGxvL6tWrcXFxoVWrVpw+fVq1N7OP3b59G0tLSxo3bsyMGTN0RipPOK4ajeaTgxynhX+DsLAwrly5wsKFC+nWrRvnz5+nTZs2LFu2jFKlSmFqasrbt28xNTXl119/VRJYNZV92LBhBAYGsmvXLgCsrKzImzcvkyZNIjAwkDp16jBt2jS8vb0pWrQoS5cuxd3dnYMHDzJy5EhlZgo1jpUGuo8Ud+/ejYGBAQMGDKBr165otVrOnTvHs2fPePfuHf369SNjxoy4ublhbm7OnTt3VD9DSWJFixZl69atnDt3jgYNGjBy5EgGDBjAli1bsLCwIGPGjAQGBuLg4MA///yjs+29e/f0E/T/oFWrVkyZMgU3NzeduaEdHBw4ceIES5YsIS4ujhYtWijjxj169Ijnz58r62o0GlWe7+Lz0lyNXOLaFCMjI6Kioujfvz+VK1emT58+AOzatYtFixYRFRWFn58fBQsWTDMndpEiRahduzbDhw/n4sWLvHv3jqCgIHbv3k2hQoV01jUwMODdu3cMHz6cMmXKJHm8pmbBwcFs2bKFbt260aRJE0A3QbO2tsbExIQKFSowaNAgJblRo0/VIB47doxp06bx6NEjlixZQtGiRTl06BC//vory5YtY/v27axcuZJatWqpskYqffr0uLq60r17dxwdHQF48+YNAQEBHD9+nAIFCjBu3Dh+++03/P392blzJyYmJvz+++9UrlxZZ3oxNSYyH7cLy5gxIzt37mTq1KnkzZuXrl27Ur58eQBlyKHOnTsTHR1N/fr1lcRdjWVPLPG5Hx4eTt26dZk/fz6jR49W2sY2aNCAxo0bY2Zmxu3bt5VaebXJly8fgwcP5vz58zpJ3PLlyxk6dCiWlpbK640bN5I9e3Z8fX3JnDmzzueo6XsuvkyaS+QSTlIPDw+6du1Kvnz5uHfvHuPHj8fFxUWZjiQhmbOysqJbt276DDlZhYWF8e7dO+VXZ0KCGhoaSv78+QHdx4wJ7z148AATExM9RPztPpXIREVFsWrVKoKDgxkzZgzt2rUDPowbZWtry5w5c8iSJQtZs2YlU6ZMZMmSJUnPRbVIOOebNWumMwvFmTNn8PPz4969eyxZsoQiRYrwzz//sGbNGqZMmcKaNWtUO0vJ69evadiwIWZmZnh6eioDHF+9epX79+9TpEgRwsPD2bhxIwAvX75kxYoVDBw4ME2Mm5VwzEeOHMm0adNo3LgxxsbG7N69m+nTp5MvXz66dOlCmTJluH37NrVr16ZVq1a4urqqMnH/lBYtWijjQoaEhNClSxcWLlyoM9RGQsKfPn16nU4OajvfAZ4/f86iRYswNTVl6tSpACxYsICCBQvSq1cvIiIilGvh8uXL2b17N48ePSIsLEyfYYvvIE32Ws2aNSv79+/H3NycoKAgxo0bx6NHjxg1ahRXrlxh1qxZREVFAVC+fHnOnj2r+otaYpaWlkrPvIRHJyNGjKBAgQJKuxhzc3Py5s2rjHLv6OjIjRs3ePr0qd7i/lre3t4EBARw/fr1zz4WdHR0pFevXjg6OnLr1i2MjIwIDQ3F2NhY6eigRsuWLePevXuMHTsW+NATd+HChbx+/RoPDw+d4+jo6Mjs2bMJCQmhd+/eXL9+XV9hJ4t27dpx//59Dh8+jK2tLatXryYyMpKZM2dy8OBB4P97odesWZPg4GBmzZpFWFgY/fr1A1Dl/KEf69evHz179qRNmzb8888/hIeHK+/Vq1cPT09PgoKCWLVqlc5MNGp7hP4phoaGHDp0iIcPH9K6dWsAFi9eTN26dWnVqhUPHz7EwMCAyZMnkylTJurUqaP64w0fru2tWrWiTZs2ZM6cmfDwcJydnXWO/aeOb1o45uLz0lyNHHyYQ27RokWcPHmSHTt2sHDhQurWrUt0dDTt27cnb968yrpnzpxJMw3cEyQkcYklnnonY8aMHDlyhPr16yvLDh06pKokrkSJElSrVo1p06ZRqFChzx7DQ4cO0bdvX1q0aMGePXvYtGkTCxYsUMaOUuMjloTOGj169MDT0xOAW7duMWPGDGJjY5k/f77Smw3g6NGj3Lt3Dzs7O/r376+nqJOHu7s706ZNw9zcHPhQE+Pu7o65uTn9+/enRo0awIdxE//8808OHDjAzp07yZMnj04vTbXf1M3NzalSpQpTp07l3Llzyo084XzetWsX06ZNo3z58lSuXFlnWzXe0D+eAzguLo6OHTtSpkwZpfNCjx49OHnyJHPnzuXQoUP4+/tjYWFB3bp100wvzYiICNatW8eaNWt4/fo1N27cUI59Qvk+dXzVeMzFl0tTNXItWrTg1q1bXLp0iWzZsrF161ZmzJjB6dOn6d69O5aWlri5uXH16lWcnJx0BkRM60aOHEmRIkX4v/buPCCntH/8+Lt9txTJvmTfDWPLUnaRkGhPkWwlylrZspUsWRKlZMsylmRrEGYw9mWMsWetQWSJovX3R7/7TGHmmfkOcnK9/nnGfZ/7fq7TOfc5n3Mtn8+oUaPYt28fjx8/pn///kXdrP/EzMyM4cOHU6pUKTw8PLhx48a/evKU80RvFRUVnJycmDNnDsHBwSxYsADIr+AxdOhQcnJyGDp0KKmpqejp6REYGMiOHTs4ePCgbC/qzs7OBAUF4eLi8kEpKSMjI9atW0d6ejqLFi3iyJEjqKmp0blzZ1RVVdm7d680N0ruQRzkp804efIkvr6+xMTEFHpPU1MTdXV1Xr16RevWrTl9+rRsz/P3ubm58fLlS3755RcePHiAt7c3rVq1Yvbs2VKqoZYtW1KyZEmePn3KxYsXpTRTxeG4KxTsmbtw4YL0QCfna5rwfyf/R5T/r1KlSvTr14/9+/czbNgwXr9+zfDhwxk7diwGBgbMnDmTtWvXcu3aNTIyMj7aa1WcvXnzhpIlSxIXF8ejR4+kIE6OPZGKNCqHDx9m48aNpKWlSfOC/k3vqhwveIqn7pycHC5dukRUVBSTJk1ixIgRQH5PVEREBCoqKhw6dIjx48ezadMmKlasKAVxcjzmVlZWBAcHY2trWyiIs7Ozo0KFCjx69AgHBwe0tLQYN24cHTt2JCsri/3797N7926peklxuZmnpKRw+vRp2rRpI+ULVBzX5s2bM27cOLS0tDh58uTfVm6Rk2rVqjFx4kSmTZvGnDlzMDU1JSYmBgMDg0K9jqdPn+bAgQNcuHBBOt+Ly3FXKNgz17RpU+lBTo7XNOG/k/+v+/97+PAhrq6uTJkyBXd3d1asWEHLli2Jjo6mZ8+eqKiocPr0adq3b4+5ublsb2j/V2pqarRp04arV69iZWUFyHfehGKYeMyYMfTr1w9DQ0NatWrFsmXL/naYtThQXKinTp3K4sWLKVmyJHfu3GHmzJnS0GFcXBwzZ87kyJEjdOzYkQcPHmBlZSXLFCOA1ON6+fJlXr58Kb2+YcMGbG1tpUnejx8/xsHBATU1NWbPnk3z5s0LfU9xusnl5eVx5swZWrVqhbW1tZTgXFtbmxEjRlC7dm1pHjAUj31/9OgRGzZs4NGjRxw4cIC1a9fSvXt3Lly4wMSJE6lTp85HPye3873gtcvAwOAvtysYzPXo0QNPT88v0TzhK1SshlYVWrRogbm5OX369KFUqVI8fvwYDw8Pzp8/L20jxxvaf1GnTh1Gjx4tpWCR+/4PGzYMX19fnJ2duXfvHmZmZvTr1w9VVVU8PDy4deuW7Pfxr3Tr1o3w8HAGDBjAmTNnMDIykvJGzZs3j4ULF0rb6unpSVMI5Dy81L59e8aPH8/Tp09ZtmwZI0aMoE6dOjg6OnLv3j3gz2Gl8uXLM2HCBLy9vYtFAPN35s6dS7t27cjMzOTu3btUrVoVDQ0NKdFxcdCzZ08eP37M+fPnKV26NIcPH2bBggWcOHGCadOm8fLlS2xsbDh+/DjOzs6Fgn25KXjNGjVqFNWrVycyMlJalPYxenp6mJqasmfPnmJ/vgsfVywDOcifQ1CjRg1mzZpFmzZt2LZtG8OHDy/qZn0V5B7gqKqqEhoaSmpqKpMmTZJeNzc3Z9KkSbx8+VJK9Fwc2dvb4+7uTocOHaTXdHV18fT0ZOzYsUyaNInVq1cXYQs/j3bt2jFlyhQqVqxIbm4uXbp04dmzZ4XO5/fnCBXXOUMF98vCwoJGjRpRoUIFEhMTCQkJkSrTyDVwV6hVqxZz586lcePGzJkzhzVr1tChQwe8vLyYPHkyT548wcTEBD8/P1JTUzE3Ny/qJn8S06ZNw87OTsobl5SU9I8+V1zPd+HvySqQU1yw/00goqqqirW1NVu2bJH9RU3405IlSyhfvjyDBg0qdOEKCAhg+PDhJCYmYm1tzf3794uwlZ+Hqakpa9euxcLColAt2datWxMbG4uysjKenp4fTIIvDlq1asXMmTN58eIFCxcu5NSpU0XdpE+uZcuWPHnyhCdPnpCenv6X2/3ddbA43dArVapEz5498fX1Zc+ePVy9epWSJUuSkpLCqlWrgPz9zcvLk+30gYIsLCyYNWsWDg4OXL58GchfwFKtWjWuXbsGyP9hXPi0ZDNHTlFqqXr16mhqav6jzygrK5OdnU1MTIz0hCrIy1/Ndbtw4QKVK1fG1NS0UCLja9eucejQIbZu3crDhw+/VDM/i7/a999//52zZ88yYsQI6tevL73+9OlTNm/ejJOTE1u2bPlSzfyiTp06xcyZM9HT02PkyJFSQtji4vvvv2fPnj14e3uzfv16GjVqVKjIe0F/dyMvLkEc5M9/Dg8PZ+DAgeTm5tKrVy8p4Xu9evWA/P2VaxBnbGwsVWWA/Dyojx494vLly9SsWZPRo0dz9OhRdu3aRVBQECC/eX/C5yWLHjk9PT2OHDmCrq4ujx494vz585w4cULK2g7F6wlUyFfwoty9e3f09fVRV1dn586dvHz5ko0bN1KtWjUCAwM5deoUb968ITQ0lF9//ZX58+cD8j0vCu77oEGDqFy5Mvr6+mzbto3z58/TtWtXxo4dy8uXL9m0aRNJSUn4+PiQnZ2Nvb09IO85cf+LiYkJU6ZM4fHjx6xfv56EhISibtIn0aRJE/bu3cvkyZMxMjKib9++/P777xw7dkyqVgDyPa//q7Jly9KgQQPGjh1L27ZtWb9+vZR6Q46MjIw4fPgwYWFhREZGkpaWhoWFBZMnT+bevXvUqFGD8+fPc/XqVZKSkggLC6NLly6FeuIFQRaBnLKyMr6+vty9e5fLly/Tvn17xo4dS3x8PFevXmXZsmXf5EXtWzFt2jSsra25dOkSderU4eXLl8yaNYvDhw+zfv16qlSpgpGRESkpKaioqGBiYlJsApgZM2Zga2vL8ePHadCgAXl5eezdu5c5c+ZgYmLCoEGD6N+/P7dv3yYtLY1evXrJdpL7v81I37ZtWxYtWkRcXByzZs36Ek38IiZPnoyWlhZTp06lY8eOlClThuDgYM6dO8e5c+dYtGhRoRWpcta2bVsuXLhQqHzWP6GoHRsZGSn733rv3r3x9fVl06ZNhIaGoqmpSb9+/WjdujVHjx7l2LFjJCUlUbduXZYsWSJNHREEBVkEcpC/Uk+Rkf/69etoa2szZswYxo0bx6VLl9ixYweHDh2S5hAIxcOgQYPw9/fH1taWy5cvY21tTWhoKI6Ojuzfvx/IX6Vcq1YtcnJy2LZtm5TFXe7BfadOnVi8eDEODg78+uuvAHh7e9O5c2cOHTok5Y6qVKkSKioq3L9/X7bJTwsGbMbGxujo6HDr1i0yMzP/NjBt1KgRV65ckf2xLmjAgAGMGjUKa2trnj59CsD58+dJSUlBTU2NsmXLkpCQQEhIiKxv6KNGjcLT0xM/Pz/i4uL+cXD6/m9bjuf7+3r37s3ChQuxtLSUSugp9lNZWRkdHR2pUkW/fv3E0KpQyFcbyGloaPDu3btCP9rg4GCys7OllYrHjx/n9u3b3Lt3j3r16tGxY0dGjx7N5s2bi7Lpwic0adIkDA0NGTduHP369WPBggUEBAQQFRWFrq4uGhoaHxSFlmsQ9367LS0t8ff3p0ePHtINXUlJialTp2Jubo6ZmdkHk+HlOEeoID8/PywtLSlRogRZWVls3bqVdevW/c+ARa7H3NTUlMTExA8W5ezZs4ezZ88ybdo0jh49yvPnzxk2bBgpKSlMnTqV0qVLM27cOFnuc0ERERHUqVOHpUuXEhcX96965uR6rv9VuytVqvTBvF4tLS369OnDoEGDKFWqFN26dSM7O1u2+y58Hl/lYof27duzdOlSypcvXygr+aVLl2jQoAF6enokJCTw4sULRo4cib+/P56engwfPpwffvihiFsvfAqKY16xYkUePXpEo0aNWLx4MTNnziQqKgolJSVsbGzo06ePVOlBQa43N0W7hw8fznfffYeamhoqKipoaGgA+Suw8/LyWLx4MZUqVaJt27YffIecL+7Dhw/H0dGRKVOm0KNHDyIjI2nZsiXjxo2jcuXKf/tZOR5zdXV1AgMD2bJlC5UqVQL+XOASFhZG3bp1uXz5Mq9evWLYsGE8efKEvLw8ZsyYgZeXF7m5ubJNfK1YoDR06FBu3ryJu7s7ffr0+ccL2YD/eU58rRS/0bZt29K1a1cqVaqEsrIyDx8+/OB4KisrU7JkSc6ePUvXrl3Jzs5GRUVF1r9z4dP7KgO5+vXrY2xszKRJkzAyMpIu0uvWrUNbW5vExETS0tKwt7eXSm0lJydLw2pidar8vH8BUxzz/fv34+npSUJCAmPHjpUmfGtpadG9e3eqVKki2zlhCgX33cHBgZkzZ/Lq1Sv27NkDQGBgIEpKStJ+GhgYcPfuXalYdnGgpqZGhw4diIqK4sCBA9y5c4eFCxeyYcMGmjRpgpmZGSDPknJ/JTMzE0tLS9LT01m3bh2VK1eWbtDnzp2jWrVqpKenY2FhwZMnT4AP91+ON3QlJSUyMzOB/FQbFy9epF69eowfP57evXv/o2DOxcWFXbt2YWRk9Lmb+0n4+vri7u4u/TsgIIBVq1YRERFBVFQUbm5uqKurf1CV5s2bN0RGRjJnzhxpyojch5GFT++rDORWrlxJTEwMNWrUwN/fH0NDQ+m98PBwrl27hr+/Py9evPjo58WJLj+KG1Lnzp2xsbGhbt26aGtrs3//ftatW8eTJ0/IyspCR0eH2rVrExUVhYGBQbGY5K7Yd1NTU/Ly8hg1ahS3bt0iIyMDV1dXmjVrxvbt27GwsKBjx47Mnj2bN2/ecOHChSJu+aeTlZWFiooKenp6wJ89shs3buTy5cs4OTkB8gxc/s6jR4+wtLQkNzeXpUuXUrVqVSD/wXT+/Pnk5ORIKTageOy/Yh8mT57MwoULefbsGf7+/jx+/JgpU6ZgYWEh9UJ/jLOzM/7+/vj7+/Po0aMv1ez/Mz09PZo3b07v3r2xt7enbdu2tG7dmsGDB2NmZsbly5fp168fHh4eHw3mCj6oyrHnWfj8vrpATnEBj4iIYNOmTVLWbsWT1/HjxzEwMKB9+/ZF2UzhM5gxYwbLli1j6tSprF27ljFjxqCtrU1oaCj79u1j1apVnDx5kvDwcDQ1NenWrZv0lCp3NWvWZOvWrSxevJgSJUpIr1+4cIE+ffpIqxgDAwNRU1PD3NxctsXQ/6pX7cGDB5ibm2NgYFDohnX58mWeP39eLHraS5YsKf23YkpAWloajx49wsTEhMjISKpUqQLk5wt89+4dbdq0KZK2fk6K1Cq+vr5s2LCB1atX06tXL65du8bUqVOxsLCQeuYKnuPOzs5Mnz6dMWPGEBcXV1TN/1fS0tIYOnSoFLRbWlpy/Phxzp49S2JiIn5+fpw7d45u3boVCuYE4Z/6Ku4CDRo0kIoDFzyBO3fujIaGBnXr1sXf358KFSrw4MEDli1bxpgxY6hdu3ZRNVn4BAre0Fu0aEGTJk1wcHCgVatWbN++nU6dOjFx4kRevnyJj48PXbt2xcfHh7Fjx9K3b19pvkhxeEq9d+8ezs7OPHr0qFCSW2VlZW7fvo25uTmWlpZYW1tjbW0t230vOEm7bdu2tGjRQkpqPGnSJN68ecOmTZuoUqUKenp6qKmp0b17d54+fSr7nvaWLVuyd+9eWrRoAfzZ0xIVFUXFihXp2rUrysrKrF27lkqVKvH7779z8+ZNevbsWZTN/iwUQ6tZWVkAUg+cnZ0db968YcSIEdjY2KChoSGd44MHD2bq1Kl4enrKJoiD/HM+NTWVyZMn8/r1awYNGlQokXd6ejqzZs3izJkzdO7cmcmTJ38w71cQ/k6RBnJKSkpUqFCBI0eOMH78eAwNDaWL/Jo1azA2NqZz585S4tcpU6ZQtmxZTpw4QUJCAjdv3izK5gv/Rw0bNgT+DNr79u3LkCFDuH37NufOnSMtLY158+axd+9eWrVqxYQJEyhXrhy//fYb8fHxnD9/Xhp+kOPN/WM9UllZWezdu5cpU6bQuXNnKbVIbm6uFLAlJyfz4MEDWe+74pjPmDGDiIgI1q9fT0hICMOGDZOSGauqqrJv3z727dvH/v37KVOmDB4eHkXc8v9OW1ubhw8fMnfuXOrWrQvkX+dq1qyJo6MjFy9eZNCgQeTl5bFu3TqqVq3K+PHjGThwYBG3/L/52PmemprK69ev6devHwDv3r2TgpfExESqVq1K8+bNeffuHZCffiooKAgvLy/ZBHGK/c7Ly6NChQo8ffqUcePGsW/fPqpWrYqLi4u0TUZGBrNnz+b27duULFlS9vN+hS/rq0g/YmVlxbJlywgNDSUwMJCwsDBq1aqFo6OjVPh86NChWFpakpqaipubm/REJ9e0A9+qmTNnoq2tjY+Pj9Q7s2LFCnr06MGtW7fo0aNHoQBl7NixdOvWjdu3bzNlyhRevXpVhK3/tEaMGEGDBg0wNDRk3bp1nDt3juTkZCwsLAgNDWXz5s34+PgUdTM/ufr167Nq1SpGjRpFiRIlMDU1xdramrCwMEJDQwFwcnJCU1OT7OxsoqOjZV0EvmLFilLR8/bt2+Pm5kb58uV5+/Yt2trauLi4FEo/UrZsWY4cOcKhQ4fw9PQEikeqjTp16pCTk4OamhpXr16lVatWxMTEsH379kLn+YoVK1i9ejXnzp2THlratGlDbm4uJ0+eLKpd+VcK7re3tzcmJiYEBARw4cIF9PX1CQoKwsjIiM2bN7Nu3TrpcxoaGmRmZsryWAtFp8gCue+++45Xr15x+/Zt8vLy6Nu3L+Hh4fzxxx+8ePECGxsbkpOTC128PT09qVq1Kj4+PuJEl6nvv/+eCxcukJ2dTeXKlXnw4IGUG83CwoKYmBhWrVpFWlqa9Bk/Pz/09fXx9vaW9XEveHGfOHEi7u7u/PDDD9SoUYOqVaty5swZFi9ezI0bN7CwsGDJkiUcPHgQNze3Im75p6OY7P3s2TOmTp0KQIUKFXBwcMDR0ZHw8HCWLFnywefk+sDWr18/5s6dy+zZs6UbdseOHRkyZAhmZma4u7uzd+/eDwK1UqVK8erVK1nu88dMmjSJnj17oqmpiZaWFlFRUYSHh9OjRw8CAwO5efMmd+/epXr16pQqVUoK3OR63BX8/Pyws7PD19eX06dPSwG9gYEBQUFBlCtXjpiYGDZs2FDoc3IN3IWiUSQD8RYWFkRGRhIXF0dAQAB37txh586dvHv3jrVr15KQkCDdyAtm6S94gRcnujydOXMGyL/BjRgxgtmzZ3P06FGpp07RIxcRESGllim4MlXOx13R7nLlylGtWjXs7e355ZdfALCxscHGxgZ3d3emT5/O3r170dDQwM7OTtb7XJCBgQFt27alW7duHD58WHo9OTlZCnJcXV3R0tIiMDCw0GfleDPX09PDzs5O+l9NTU3Cw8M5evRood4aRf3ogsdZsSJf7oEM5Pequ7q64uTkxNWrV/Hz82PKlCnExcVJtYPHjBmDkpISv/76K5MmTZJy5Ml53xs0aICFhQUeHh4cOnRIel1FRYVnz54xfvx45s2bh4eHB0+fPiU+Pl7apjj83oUvp0jmyKmpqQHQq1cv5s6dKy2537dvH0OGDMHe3p7x48dLCyA+lvhSnOjylpGRwcuXLxkxYgQdOnQgLy+PSZMmceHCBXr16oWrq6uUiqIguR/3QYMGcfHiRZo3b16oKsOmTZvYsWMHPXv2pEyZMlK5sf79+3+QjkCunj17xpIlS4iNjaV79+7Y2NhI7/3xxx+sW7eOuLg4GjRoUISt/HTS0tI4efIkGRkZnD17lv79++Pq6grATz/9xOrVq0lKSmL+/Pk0a9bso+e2nAMZyL/WN23alEmTJnHy5EnatWtHv379GD9+PLdu3UJNTY3ExETGjBmDp6cn48ePl4bR5fZbf/83qquri66urlReTyEnJwd1dXVSU1Px9fVl586dHDhw4Es2VShmiiSQO3HiBBs3bmTq1KnUrFmTpUuXSkvud+3axdChQxkxYgSjR4+mTJkygPxv4N+yjwUh+/fvJywsDMgfMlcEcxMnTuTcuXO4uLgUy9V6+/bt49ChQ1SvXl065xV/n+joaPLy8ujUqRNQ+JwvLuf/9evXCQsLY+vWrYwZM6bQRP4//viDRYsWSTnj5EwxcT80NJTLly+Tl5fHlStXcHR0ZPDgwQAcPXqUiIgIHjx4QHR0dLFcha+lpUXLli158uQJ7dq1IzQ0lFmzZrFmzRrU1NTw9vaWVvEWJMe5kIrfqIeHB3379uX169eoqqrSqFEjaRtFKpXu3btjYmJCSkoK8+bNk20qIeHrUCRnzqNHj8jNzaV9+/b07NmTihUrsmTJEunGFhsby5AhQxg9ejR9+/YtiiYKn5DiAte9e3csLS2llWqHDh0iLCyMnJwcPDw8aN++PXl5eUyePJnw8PBiWW7t1atXjBgxgp9//pmAgACaNGki/X3KlClDeno6qampRdzKz+vWrVuEh4dz7NgxvLy8sLa2lt6T+75XqFAB+DO1SG5uLhcvXiQrK4uFCxdy/vx5nJ2dpWDup59+YsOGDWzdupVbt24VVbM/iY89sL169YrY2Fjc3d3ZuHEjU6ZMkaqzGBgY0LRpU2rVqvWFW/ppFdxvW1tb3N3duXv3Li9evCAxMZGBAwfSuHFjAClgc3FxwdzcvND3yL33VSg6X2SxQ/PmzUlLSyMpKYk3b94A+fNHYmNjmTlzJjdv3iQ+Pp4bN27g5eUlreBq3749J06ckOXT2bdu7ty55OTk4OfnB8CcOXMYOHAgL168QFtbm5SUFEaOHMmVK1cwMzNj2LBhKCsrEx4ezsGDB6XvKQ5zhD5GT0+P9evXU7NmTTZs2MD9+/fp2bMnVapUwdTU9Js45+vUqYOrqytWVla4ubkVmjcnR3379mXBggXExcURFRXF/fv3ef78OU2aNGHnzp0MGjSIe/fuMX78eJo1a8batWuJjo4u9B1yPd8Lzu+rXLkyJUuW5Pbt22RkZGBhYUFwcDBnzpzB09OT1NRUSpcuTWhoKLq6ulJlC7lr0aIFffv25fr169Kcz27dujF9+nTu3bvHyZMnefz4MTY2Nujr62NmZvZN/M6Fz++z98hZWlqyf/9+QkNDWbNmDc2aNaNMmTKkpaVx4cIFunXrRlJSEr169aJmzZosXLiQGjVqAPDzzz+L2qkyVKJECbKysjAzM8PHx4cqVapIF7levXrRtWtX0tPTiY6OplKlShw+fJjVq1dTunRpTE1NC31XcbjAf0xaWhoODg5cvnyZsWPH0rJlS06fPi0Fcd/COX/9+nXWrl3LokWLOHr0aFE35z8pXbo0AwcORF1dHQsLC4YMGcLmzZvp2rUriYmJLF26lF69evH48WPCw8M5f/483t7exaZXRhHETZkyhXXr1rFjxw42b96Mn58fu3fvZunSpdSqVYsffviBrVu3smnTJsqVK0e/fv2KxbBigwYNpJGkgpVZfvzxRyZMmMAff/zBsGHDcHR0JDU1lU6dOhWbqjRC0fvsPXKmpqZs3bqVixcvcufOHRo1asTly5c5cOAAd+/eZfPmzQwYMIDz589TuXJlzpw5Q2RkJFOmTPmczRI+s3LlyuHo6EifPn24f/8+ubm5DBkyRMrkDnDkyBGePn3KgAEDgPyeW0WyX7n6tz0qJUqUIDw8nKpVq+Ls7Mz169dl2yvzX8l9v9u3b4+VlRWNGjUiJiaG3Nxc3N3d+e2336hbty55eXn07t2bFy9eULduXbp06UJoaKis97kgT09PRowYIU0diIqK4vvvv2fAgAFcuXKFTp06Ub9+fQwNDbl58yYbN26UdX7A9/Xv35+5c+dy/vx5pk2bxo0bNwq9r6OjAyCNShWX/RaK3mcN5BTd7WZmZmzZsoV58+Zx9epVSpUqhb+/P6dOnaJXr17MmTOHpUuXkp2djaGhIU+fPi02F7dvmZGREY6OjgwcOJD09HQ6duwI5Ce9fPfuHb169WLmzJlYWVlJiZ9BvilGCra7XLlyPH78+B99Tk9Pjw0bNmBoaMiQIUO4cuXK52ym8Bm1a9cOZ2dnKaF5VlYWLVu2ZOLEiRgZGUk9dAXJPYCF/HN4zZo1Um+bqakp0dHR+Pn5sW7dOpSVlT9ajUSO+14wAHu//ba2tvj5+bFjxw4iIiKk65oc91OQj8/ar6u4qR0+fBhnZ2cmTZpEmzZt2Lp1K23atOHHH39k165d/Pjjj2RnZ6OkpMSTJ0+KRVf7t+j9yc6PHj1iw4YNbNmyherVqzNt2jQAqezO27dvgQ9XqMkxiOvYsSMTJ04EICgoiMDAQNTV1f/n55SUlEhLS8PW1pbXr1+zYsUKKT2PHHz33XfUqVOn0Gvf8m/32LFjREZGcv/+fdauXUvFihXZtWsX3bp1w8TEhMTExA9+J8XhBp+ZmYmGhga//PILXbp0ITo6mmnTprFu3TrU1dWxtbWlSZMmH3xOjvuuuF65urqybNkywsLCGDduHAAxMTHMnTsXS0tLhgwZQrVq1QB57qcgH1+0skOPHj1Yt24da9asYcaMGVLCV0H+CvZG1atXj3fv3pGSkkJaWhrly5fHwcEBGxsb4uPjWbp0KSVKlCAgIAAtLS369Okjy+BNQV1dnenTp9OyZUvS09Np0KABPXr0+Fe1gFu0aMHDhw+B/ABYDkxMTNi5cyfp6eksWLCAW7dusXfvXul9xTlR8NzQ0tIiIyOjqJr8xbRp0wZ3d3eqVq3KlClTpMTPcu1tLuhj+6CsrMy+ffvIysqiXr16TJ8+XZrwX6lSJZYuXcratWvZsWNHUTT5k7CxscHIyIjFixczbdo07OzspIfUmjVr8vr1a7p27UpeXp6UC/Xo0aPMmzePP/74o6ibLxRjX7xElyKYW716NcHBwTx9+vRL/t8Ln5m/vz8ODg68evWKtLQ0HB0dSUpKkoK5MWPG8PbtW/bt24e2tjbu7u5Sb6ycb3Cqqqrs2rWL77//nqioKCZMmAD8sxu3i4sLPj4+2NjYcPny5S/R3E+ibt26eHp6cu7cOWrXrk2rVq148uQJK1eu5MKFCx+kEvH29iY9PZ0VK1YUUYu/rDZt2uDm5kbVqlWZOnUqx48fL+om/WcFz+eaNWvy8uVLMjMzefnyJd9//z3h4eHcv3+fPn36oKqqKlWz0NbWlhY2yJGzszPz58/H1taWBw8esGnTJsaMGcPPP/8M5D+ILVq0iOfPn9OnTx8gv8fOzMwMJycnWV/bhK/fJxkDad++PU2bNi302l9lot+/fz8ODg44Ozszc+ZMSpYs+SmaIHwF2rZtS+/evXFzc2PWrFk8ffqUhIQE6tSpwx9//CGtUMzKyuL3339nyJAhZGdnyzKLe0EqKiqULFmSX3/9lS1bttCwYUMpkMvLy/tgBWrB34azszNTp05l0qRJsgriIL+0VvXq1dHS0mLixInY29tz//593N3d2b59O927d6dmzZrS9i1atJB9st9/U2Hjl19+keoG29rafsZWfTmK36mfnx8bN27k8OHDzJgxgxYtWnDmzBkWLVpE8+bN2b9/P5s3b2bTpk2UL18eKysr2U6ZsbW1JTAwkMGDB3Po0CEqVKhAiRIlCuX9O3/+PP7+/pQtW1ZaeR8ZGYmjo2OxqcwifL3+c4+ciYkJEyZMoEKFCly6dInY2Fj2799PVlbW367KsbS0ZNiwYfTu3VvWN/Fv2fu9Ta1ataJNmzYsXrwYyE+OGhwcTPPmzenTpw/Xr1+ncuXKtG/fnk2bNsn26Rz+uqdNT0+PCRMm0Lp1aw4cOEBQUJD0XuXKlUlKSpL229nZmenTp+Ph4cHu3bu/WNs/pXbt2hEUFMTYsWM5deoUysrK/Prrr7x79453796RlpbGtWvXGDNmDABxcXEsXLhQ9jnj2rZti46ODleuXJESnP/VOdGgQQN+//33YnOd69q1KwsXLsTLy4uGDRvSunVr9PT0mD59OmfPnqVu3boMHjyYN2/ekJyczJo1a2S7OnXgwIEsX76c1atXM2nSJABp3mNwcDAxMTHStmXLluWnn34iICCAjRs3FlWThW/QJxlaVVdXx9DQkICAAPT19Xn79i0uLi6kp6d/dLXO+xc8uQ+rfetGjx5NrVq1aNy4Mb/99hteXl7SBbtChQpSLUlra+tCKzLlupKr4PlqbW1N7dq1UVZW5uDBg/zyyy+ULFmScePG0bJlS44fP05ISAjR0dE8ePBACmiGDBnClClT8PLyIi4urih35x9r06aNlD5i/fr1PHr0CF1dXZYuXUpMTAx79uzh6NGjvHz5kj59+tC0aVPatm1L165dGThwIFlZWVL6ITnx9fXl6dOnrFy5EoCAgAD69euHnp4eN27cYNu2bURGRpKZmfm317LicJ3r3r07HTp04M6dO0RERAD5C32GDh2Kvr4+s2fP5sSJEx98To6/dWdnZwIDAzl06BDt27fHx8eHLVu2oKenR2hoKGpqaqxYsULKgainp8fOnTtZunQpO3fuLNrGC9+UTxLIKS5QWlpadOzYkXHjxlG6dGl69OjBs2fPZPkjFv5awRuSh4cHXl5eHDhwgCpVqlCvXj0cHR05duyYtH358uWJiori+fPnxWaICWDGjBlYW1tz9epVNDU1admyJXPmzGHRokWUKlWK0aNH07t3b6mSRY8ePcjKyqJVq1asXr0aX19fYmNji3o3/hEHBwd8fX1JSUmhRo0aPHnyhLFjx3L06FHGjBnDyJEjefnyJcnJyQwbNownT54UdZM/CT09PaKjo1FTU2PTpk3cuXOHGTNmMHnyZFJTUxk9ejT169fnwIEDLF269H8Gc3JWt25dlixZgrGxMQsXLmT58uXSex06dGDo0KGUKlWKhQsXcuTIkaJr6Cdgb2/P4sWLcXZ2Zu/evfj7+zNy5Ei8vLzYvHkzNWvWZNmyZWRmZnLp0iUuXryIg4ODVLFB3O+EL+mzLHaoU6eOdDPr1KmTlGZCKF6qVavGqFGj2LZtGydPnkRbW5ulS5dKubROnjwpbWtgYEBqamqxucGZmZkRGhqKjY0Nly5dAmDw4MEEBgbi6+tLREQEenp6VKlShSpVqhAfHy9d3KtXr462trZs8sU5ODgQHByMi4sLp0+fRkNDg6ioKLS0tOjQoYO00ENZWRlHR0dSUlKKusmflL6+PoGBgZQsWZI7d+6QkZHB9OnTAdDW1sbX15cWLVrw448/SsFccWVpacno0aNRU1Nj5MiR/P7779J77du3Z8KECVy/fh0fH58ibOV/o6mpyeLFi4mNjWXfvn3S635+fowePRovLy82bdpE9erVcXZ2pkuXLrx+/ZrHjx9L835F54XwJf2fArnWrVuTnZ3NuXPn/vLG3LBhQxYsWMDly5eZOHGi7OZGCH/P3Nyc6OhokpOTGT58uJReQVVVlZUrV2JiYoKzszOnTp0q9Dk59lZ4e3sTFxdXKFN7//798fT0pEePHrx7907ap9GjR+Pj40OnTp0+SPwqxzlCbdu2JTY2lnHjxknpJCA/aB0/fjw9evTgwYMHzJo1i5YtW9KtWzdAnsf5YxT7UaZMGYKCgujUqROnT59m4MCB0jZaWlr4+vry3XffcerUKWbPnk12dnYRtvrTK3g8FSXIXr58ydy5c7l27Zq0XZMmTfj1119le+z/13n7fjAH+b9rHR0dXr16Jf1bbr9zQd7+9RKifv36ERcXx/z582ncuPFfbnf16lV++OEHatSoQcWKFf9TI4Wvz969e4mOjqZChQo0aNAADQ0NALKzs3F3d+fnn39m9+7d1K9fv9Dn5HaBL1u2LJMmTWLmzJlUr15dej0nJ4c6deqgr69PXl4eqqqqQH5txbS0NAwNDT/4Ljle3O/evUtiYiLW1tZUqVJFel1fX5/MzEyptz04OJiqVavi7e0NyO84v0+xyjAvL48KFSrw9OlTxo0bx759+6hatSouLi7SNhkZGcyePZvbt29TsmTJYhfEQeHjGRcXx9q1aylZsiSTJ0+mbt260nuXLl2S9SpNxX7a2dlJCcwL7susWbNYtmwZCxculEoL5uTkSEGc4t+C8CX9q0Cubt26jB49muDgYFRVVVm6dOkHaUcUcnJyiImJoVy5cri4uHyKtgpF5K8uyj4+Pmzbtg0/Pz+6dOkiVTLIzs5mxIgRLFy4sNDTutwoKSmRkpJC8+bNadq0KYGBgdSqVQuAo0ePcurUKQIDA6lUqZJ0805PT5cW+RQHycnJ9O3blzJlyrB69WqUlZXp2bMnPj4++Pv7k5KSgoqKCi9evODYsWPF4qGtYK+Mt7c3y5Yto1mzZrx48QJfX18uX76MlZUVDg4O0mcyMjLw8fGRAtniSnEt2L59O9HR0ejq6hIUFETVqlULbSf3QL5ly5Z06NAB+HBfFMHcihUrpFQjglCU/tXQaosWLejXrx+hoaEkJydz7NgxsrOzGTNmDBcvXvzoZ7p164aNjQ1jxowhLS3tU7Vb+ELeH1JRJAG9ffu2tForPDycLl26MHr0aA4cOPDBHCG5DjUUnOdSp04dfvzxR/bt20dwcDC3bt2iX79+ODs7o6KiwoIFCwBwd3fHwMCAHj16yH6OTMFjX758eXbu3ImmpiYlSpTA39+f9evXf1DR4/r167LfbwU/Pz/s7Ozw9fXl9OnTJCUlAfnzPYOCgihXrhwxMTFs2LCh0OfkOqyspqZGVlYWkF/gXVHcHf56n+zs7GjUqBFTpkyR5T6/T7GfBgYGHD16lJCQEMLDwz+6rbOzM+vXr5fltU0oXv5VIKepqYmhoSH3798H8oufJyQkfBDMFSzDU79+fWxsbJg/f74I5GRs+vTp2NracvnyZapWrUpOTg779u1jxowZAKxcuZJOnToxadIkYmNji9Xw0tSpU1FVVcXc3JyqVauSkJDAuHHjSEpKonv37tjZ2dGtWzdu3LjBs2fPGDhwoGwnPH/33Xc0adKELl268PbtW3bs2MH58+dJTk6mfPnyREREUL16dUxNTf9yZapcA5mCGjRoQGRkJFOmTOHQoUPS64qHEn19febNm0fjxo2ZNm0a8fHxRdja/6Zjx478/PPP0rk6atQoOnToQFpaGlu3buXQoUP/qPpKcTjuCpqamgQEBKCnp8fw4cP/dlu5PqgKxcf/edWq4ulNTU2NI0eOkJ2djYeHB48fP2b69OkcPnyYLVu2APm19hR1JAX56dq1K4sXL5ZWLRoZGdG/f3/c3NyIiYmRkt7GxMSgqqqKtbV1Ebf403F3d8fHxwc7OzsyMzPR19cnPDycixcv4uXlJZ3XxsbGpKWlkZKSIlVzkNvFfeDAgYwZM4b79++jqamJlpYWzZs3Z+fOnYSGhnLhwgUqVKjAtm3bSEtLY/DgwSQnJxd1sz+JjyW3joyMxNTU9INVuOrq6mRmZlK2bFmGDBlCUFCQ7AJ2hVGjRuHo6MjSpUvZsGEDQ4cOZcqUKaxcuZLu3buTmZkprcbNysoqVsFaQcOGDaNBgwaEhoaSmJhIVlYWHTt2ZPPmzdjY2Mg+nYpQvP2n9COKm5WamhoJCQnSpG8VFRXatm0ruxuZ8HFubm7Y2dnRuXNn6YZlYGCAu7s7bdu2xc3NTSoKXdwu9MuXLycnJwdPT0/ptTp16rB3716OHz/O7NmzuX79eqHPyPFv4OzsTEBAAOPHj+fgwYM8e/YMyD/2kyZN4ueff2b27NncvHmTChUqsHnzZnR0dOjWrVuxqpfs4eHBgwcPuHnzJtu3b2fEiBEkJCQAfw61W1hYkJqaWqh2qhx7XwEMDQ2ZM2cORkZGbN26lYYNG7Jnzx6OHDmCqqoqAQEBNGvWjAMHDrBkyZJiE8w1btyYypUrA/kLNMzMzBg9ejQvXrzgxYsXBAQEcOvWLSZOnEjFihXx9vYWI0rCV+s/zcjOyclBWVmZrKwsBg0aRL169Xjx4gUmJibSe4K8FFzYoPjvR48eoa2tLU30B3j27BkJCQl8//33GBkZSa/LecXax5QuXRo9PT3p3+rq6ly/fp2lS5fSs2dPAgMDqVChQqHPyO0mN2jQIObPn4+rqyubN28uVOw+PDyc2bNnY25ujpmZGZC/AMLW1pbTp08X2laOCp6rtra2uLu7c/fuXV68eEFiYiIDBw6UVucraoW6uLhgbm5e6HvkGMSpqanx5MkTJk2axOPHjxk4cCAdOnSQeiCzs7OZNWsW58+fp0uXLnh4eKCuri678/t9dnZ2xMTEMGvWLNasWcPcuXM5fvw4bdq0YenSpbx9+5YNGzYQFhZGs2bNqFy5snQNKE7XNqH4+M+RVm5uLgYGBkRHR3Pjxg0sLCykQuhyvLh9ywo+aVtaWmJiYoKWlha3bt1CTU2NQYMGUa5cOWn7J0+ecO3atQ/mw8n9Ql9QTEwMnTt3pm/fvgDSQo7nz5+zbds23r59K/VGylG5cuUICgrixIkTUuksxfFT3LQiIyPZuXMnQ4YMQUdHB4CHDx8yfPhw2RZCV1Dsa4sWLWjQoAGBgYFcvHiRpKQkFi1aROPGjZk8eTJjxozBxsaG7du3U6ZMGaZOnVrELf/vFAsbVFVV8fT05MGDBxgZGdG9e3dpmzdv3jBr1izOnTuHra0tVlZWRdXcT8Le3p6FCxcyadIk+vfvz4ABA+jUqRMeHh7k5uaye/dunJ2dGT9+PJcuXaJu3bq0aNGCCRMmAMXr2iYUH5/kClyqVClu3LhBx44dZVscWfjzIjVt2jTmzJkjVSC4evUq8+bNw9XVFR8fH/r06UOjRo0IDAzk7du3/Pbbb0Xc8s/nl19+YePGjfj6+mJtbY2KiopUfu6nn37CxsZG1r2Qjx8/ZuzYsVSpUgUfHx9q1qwpvaeY6wdw9uxZtLW10dXV/eA75P7A1qBBA2JjYxkyZAglSpSQXv/xxx+ZMGECf/zxB8OGDcPR0ZHU1FQ6deok6xGHPn364OXlBeSn0lixYgVv3rxh8uTJxMfH07Vr10KpVdLT05k7dy4RERFs3ry5iFr931laWrJ48WKpvvHdu3c5evQoa9eupW3btpQqVUra9scff2TRokV06tSJZcuWUb169Y/mhhSEr4Hqp/iS27dvM2rUKECs4JE7Z2dnBg0ahJ2dHVeuXJGe2rds2UJWVhaDBw+mf//+JCcn8/z5c3r16iUFMsXxafXp06dERkaSkZHBkiVLmDBhAqqqqqSlpUmLeUB+T+o1atRAWVmZW7dusX37dnJycpg1axZ5eXmsWrWKW7duAX8GaUZGRly+fJnHjx8XZbM/iytXruDh4cHcuXNp164dBw4ckKp4HDt2jGPHjkk9kYqUHHK9zikrK2NkZISvry+mpqY0bdpUGiZ+/vw5kydPJigoSKqJvH79eiB/v1euXCl9hxyDd8Uct1q1amFkZMSjR4+A/B7JFy9efHA8lZSUSE5OJjw8nBMnTmBqalroNy8IX4tP/kgpx4ub8KfvvvuOvXv3cvHiRSmIU/TK7NixAwcHBzp16sTQoUOxtLSUhtHlFsh06dKF0qVL/6Ntb9y4wezZs+ncuTOLFy9m9uzZmJmZSfsuN/369WPlypX07duXSpUqARAbG4ufnx89e/Zk2LBhUs+cIqdWo0aNOHfuXFE2+5MoeLwK9qht376d6dOn07hxY5ycnKhWrVqh7d68eVMor5rcrnPLly+nfPny5ObmsmrVKs6dO4eJiQnr16+X6qWqqKjw7NkzqRdy4MCBDBs27IPvkmMQp6SkREJCAg4ODnh6ejJ27FgAevTogYODAwsXLvxgMYPiATU5OZkzZ86gr69fFE0XhP/pk/TICcWDmpoajRo1KlTsHvJvWurq6tStW5dbt25x79496T0lJSXZ3dTs7OwIDAxkxowZbN26lZcvX/7Pz+Tk5PD7778XKhKurKwsu323t7dnzpw5zJo1ixMnThRKCxQbG4uSkhIzZ85EWVmZZcuWcffuXZYuXYqenh6LFy8uuoZ/Iorj5erqSosWLVBWVubGjRssXLiQmJgYVFRUmDhxInl5eaxevZq7d+/KMnApqGTJkmhoaBRaXXzs2DFOnjzJyJEjefr0KYsXL5YyEDx79oyJEyeyYsUK6tSpU4Qt/3QUD5rx8fE4ODiwfv16jI2NadKkCePHjyc+Pv6jPY15eXlYWlpiamrK5MmTi6LpgvA//af0I0LxM3nyZAYOHIiDgwNXrlyRXjc2NsbT05PQ0NAP0m3I0axZs+jRowcrV67khx9+4Pnz5//6O+Q2nNyqVStWrVqFn58fcXFxhd7T0NDg3bt3AFhZWTF16lT2799Pw4YNKVOmDCYmJrJNcgxgY2ODkZERixcvZtq0adjZ2bFlyxaqV69OzZo1ef36NV27diUvLw97e3vGjx/P0aNHmTdvnqwXs7zP2dmZo0ePcvfuXSA/f9qsWbOYM2dOoUC9Ro0aPHz4kKysLFmd4/9Uly5diImJ4dSpU9jb2//tw5yWlhZGRkbcuXPnC7ZQEP450SMnFHLo0CG+//57/P39mTVrFr/99htlypRh5syZlCxZUpo7JFeKZK5+fn6oqqpKdYA3b95cqPD136lbty7Xrl2T3Q2ufv363Lp1q1By07Zt29KuXTuaNm1KcnIyU6ZMYdu2beTk5BAeHs6VK1ekIE6u88KcnZ2ZP38+tra21K5dG0tLS4YOHcrPP/8M5K9YXbRoEbGxsfTp04cNGzagoaGBmZmZNI9KrhQPG0pKSmhoaODj44O7uzs2Njbcv3+fqKgo8vLyCAgIQE1NjXXr1rFgwQIyMzOl34bcHlj+iYMHD2Jra0tMTAyTJk1iwYIFH82HqKysTEZGhgjihK+aPJddCZ/N6dOniYyMJDs7m71793Ls2DFiY2MxMjKib9++sl6hCX+mD7Gzs+OPP/6QVmsOGjSo0IrFvzJ48GBiY2MLzaGSiypVqqCnpycFY9OmTWPy5MmYm5uTnZ1Np06d2LRpEyoqKuzcuZOePXvSqVMnWQdxtra2BAYGMnjwYA4dOkSFChUoUaKEtJgD4Pz58/j7+1O2bFmpCHpkZCSOjo6yP98VAVjz5s15+/YtpqamZGRksH79eqpUqUJWVhZr1qxh/PjxjB8/nu3bt1OpUiXc3Nw++A45aN++PU2bNi302l8dv4MHD+Lg4MDgwYOlB9X3ybH3Wfj2iKHVb8jHnqz/6mm7fPnyNGnShKpVq/LkyRNiY2PJzc2V7Q29oPHjxzN8+HC8vb1RUVGhZ8+etG/fnuDg4L/tmXN2dmbatGmMGTPmg6FJOahXrx4JCQlcv36dUqVKkZeXR0hICHv27CElJQUHBwcmTJiAlZUVN2/elD4n12M+cOBAli9fzurVq5k0aRIAFStWZNeuXQQHBxMTEyNtW7ZsWX766ScCAgLYuHFjUTX5s2jcuDGxsbGMHDmSffv2UaZMGbZu3YqKigoODg5S7WxjY2OqVKnC0aNHZflbNzExYcKECVSoUIFLly4RGxvL/v37ycrK+tt9sbS0ZNiwYfTu3VtWQasgKIhA7huhqI0L+cvvs7OzefDgwT8qhq0g1/lRBZUqVYrY2FjWrVtHRESE9PqCBQvo378/s2fPlhZAFPy7ODs7M336dDw9PWUZxCn2pV69evTt25fMzExWr17Nq1evpGPau3dvxo0bh729veznhTk7OxMYGMihQ4do3749Pj4+bNmyBT09PUJDQ1FTU2PFihUcPXoUAD09PXbu3MnSpUvZuXNn0Tb+P3r/91ypUiX8/Px48eIFc+fO5eXLl5QtW5YtW7agpKSEk5OTFMwpyPW3rq6ujqGhIQEBAejr6/P27VtcXFxIT0//6D69/7cqjsPIQvEnhlaLudmzZ1O6dGkpiPP392fnzp1s376d+Ph4jIyM/vGFS44X9vcpqlAons41NDQA8Pb25vfff8fNzQ0XFxf09PSkv4uLiwv+/v6yDeIgf3hMWVmZq1evMnfuXBYsWMCLFy+kY6qpqYmtrS23b9+WfRBnb29PcHAwrq6u2NvbEx4eTkhICIMGDSItLY0ZM2ZQqlQpvL29CQgIwMrKirVr16KqqsquXbuKuvn/meK8bd26NZBfhSM2NhYrKytatWoFQEpKCgMHDiQnJ4d9+/YVKrMH8v2tZ2Zm8vDhQ0aOHMmKFSsoXbo0R48excDA4KNVSN6/9okgTpAjEcgVYxUqVKBPnz7Exsaip6dHu3btsLa2xsvLi2nTppGWlsaBAweKTYqB931sbszr169JTk7Gzs4OgHfv3qGqmr/m58GDB2hpaVGvXj0pp1THjh2ZM2cOY8eOlW0Qp/Cxm7Ouri5169YlOjqaSpUqMWLECEC+NSU1NTVp3749Tk5O7N27F4CAgACWL19OSEgINjY23Lp1ixEjRnD+/HnMzMxwc3Pj1atXdO7cWfYlxxScnJyIi4tjy5Yt1KlTh3379hEWFsaiRYuk2sApKSnY2dmRkJDAkydPirjF/3fGxsY0bdqUunXrSq9lZGSwf/9+PDw8SElJIS4uDk1NTdkGqILwd8TQajFXu3ZtVqxYgaqqKmFhYejq6hIeHg6AgYEBoaGhNGjQACsrq2KRVkSh4BBJkyZNpFV7p06dwtjYmG3btnH16lVsbW2lIZfw8HAiIiI4ffp0oc+qqqrKJhluwf3W09P7IMlpQSoqKixZsoSaNWvy7NkznJycZL2w4X8Ni/n5+TF69Gi8vLzYtGkTkP830NHRkeZFFpd9r1OnDjExMVKP1O3btzl37hxdu3bl1atXzJs3j4yMjELfIcfhVFtbWzw8PChVqhSPHz9m8+bNhIWFFdqmYcOGLFiwgMuXLzNx4kRZHl9B+DsikCumCl7Ya9WqxfLly2nWrBmLFi1izpw50nb6+vqEhoZSt25d7O3tC+WOKw58fX0xNzdHVVUVLS0tDh06xPTp0/nuu+8IDg4mNzeXGzduUL58eXR0dGjTpo3UKyO3m1rBYz5s2DBKlizJtm3bSExM/MvP1K5dmzp16rB7926ptqrcb3R2dnbUqlWLGTNmfBDg+Pn5MXLkSDw9Pfnhhx+KsJWfh56eHm/evCE3NxdXV1eMjY1JSkqiTJkyDBgwgGfPnvHmzRt8fHy4du1aUTf3P7G0tGTJkiWMGzeOmzdv4ubmhqGhIYMGDSq0nYqKCq6urvTs2RMvL68P5gMKgtzJfwxB+EDlypWlm1ffvn15+PAhHh4eHD9+nL59+2JgYCBtm5qayogRI0hJSZFW9hUXo0ePxtnZmTFjxtCuXTs2bNiAg4MDlStX5vDhw3Tt2pW4uDju3LnDTz/9RNu2bWUbxMGf83umTZuGt7c3iYmJH/S6vO/GjRvExcVJaTbkHsQBtGzZkg4dOgAfznmaNWsWy5YtY8WKFVKqkeLC1taWU6dOYWtrS9myZUlISKBatWrcuHGDmTNn4uvri5aWFq1atcLa2rqom/uf6OrqYm1tTWBgINu2bePXX39l48aNvHjxglatWtG8eXNp25ycHGJiYihXrpyUG08QihPRI1fMtGnTBj8/P0JCQujQoQPu7u40adKE5ORkaZhVQ0MDc3PzQmk29PT0eP36tWwn+6qqqn6wAjcsLIyffvqJjRs30rt3b0JCQpg5cybR0dFoamry9u3bD75H7j1SgwYNws/PDxsbG6l3VbGST1GOq7iuzFPsl4GBAUePHiUkJESaRvA+Z2dn1q9fL+tj/THBwcHUqFEDFRUVfHx86NixI6NGjaJz586kpqZSq1Yt2rVrx9q1a2W/7/v37+fcuXP4+voCsGXLFurVq4eysjKpqalSvViFbt26YWNjw5gxY/52yoEgyI3okSsmFAWdk5KSSEtLIygoCFtbW9q3b09ycjKQ3/syYsQIMjMz2bNnT6EEuGlpabJNfjpv3jxOnTqFhoaGtA+ampq0aNGC9PR0TExMWL58OQEBAURHR6OqqoqXlxddunT54LvkdnNTFL0v+O/ffvuNK1euUKNGDYYMGcLhw4f54Ycf8PHxAYrvyjzFfr1584Z9+/YV6pV5X3R0NDk5OaioqHyp5n1Wit+tj48PixcvlnqZNTU1efPmDRMmTEBTU5ObN28SFRUl+33X0NDgt99+o0WLFkRERLBz506MjY2xtrama9euTJs2jYoVKxbqgXv48GGh2sKCUFyIQK4YCA4OZvjw4SgrK3P//n1Onz5NmTJlSExMpEaNGoW2vXHjBsOHD+fdu3ecPn0aHR2dQu/L8Sa/efNm3r17R2xsrBTMvX37lm3btmFvb09MTAy+vr6sWbMGyM8l17RpU6pUqVK0Df8PlJSUqFSpEhcuXMDBwUF6PSMjg/Lly7Ns2TKioqJo3bo1+/btY9OmTQwZMuSD86E4GDZsGCEhIdSpUwc1NTXevn3L7t276du37/8cPpVb4P5XCj6E/fTTT3h5eeHh4UGfPn0oXbo0tra2hVZ1grz3/d27dyxcuJA9e/Zw4cIFNDQ08PX15dq1ayQnJ0uLkwpWa/j9999ZuXKl6I0Tih1Ra7UYOHbsGLt37yY3Nxd1dXX279/PmTNncHd3Z9iwYWhqarJ9+3Zp+xs3bjB69GhGjx79P+dQycGFCxcYNmwYERER7Nq1iz59+vDu3TsuXbqEtbU1Z86c4fjx4wAYGhoSEhJCiRIlpMBOjvLy8nj48CFjxoxh7ty5AKxfv56tW7dSunRpGjZsSGRkJD///DOJiYmYmJjQo0cP3rx5U8Qt/+8aN25M5cqVAbh06RIZGRm0bt2aunXr8uLFCwICAjh16hQrVqzAzs6Oc+fOfRM37/cfwn744QcuXbpEr169aNGiBb/++msRtezzSE5OZsmSJQBYWFgUCtqys7N5/vw5z58/B/4cdk9KSiqStgrC5yTmyBUjdnZ2dOvWjSlTppCcnIyxsTGzZs1CS0uLqKgoYmNjAXBzc2Pt2rW8e/cOkGfagY9p2LAhERERpKWl0atXLzIzM3FwcGDUqFHk5uaSkZEhlR7q3r072dnZxWLf7ezsCAkJoXXr1ty+fRslJSXU1NSkurJaWlqEh4ejqqqKra2tLHtdFezs7PD19SUzM5NKlSqxf/9+pk2bxt27dzE3N8fa2pqmTZty4cIFSpUqhYaGBkOGDCE5OVn2cwMbN24srTTNzMz8x/ujmD8Kxee3XpC6ujobNmzg+fPnbNiwgZSUFHx9fTEyMqJr167Fbn8F4X0ikJOx9y/kw4YNY8CAAdy4cYO5c+eSlJREjRo1mDVrFrq6upw5c4a6devy/fffU7duXVlf4P6qbmzDhg0JDw/n9evX9OzZk6ysLFq1akXVqlWpVq0aN2/elHXd2L+6eVevXp07d+4Uek1HR4fevXtjZWWFoaEhXbp0+Vcl2b429vb2LFiwADc3N3777TeqVKnCxo0b2bJlC2PHjpW269atGw0aNMDd3R0DAwM2bNiAl5dX0TX8E+jUqRObN28mOjoaZWVlQkJCuHfvXlE366vRqFEjIiMj0dXVJTU1lUePHjFo0KBi87AmCH9HBHLFgJWVFdeuXePKlSsMGTKE/v37c+/ePWbPnk1SUhLVqlVj9OjRGBsbk56ejrOzs6xv6AXbXbNmTbKzs8nIyODx48coKSnRoEEDIiIiePPmDebm5lLPY0Fyv7g3bNgQTU1Nfv31V6nn7X16enp4enqio6ODv7+/NMFdbsEr5OcMi4iIwMPDg02bNknnwNy5c+nUqRPdu3fnxYsXhT5ToUIF3Nzc+O6773Bzc5N19YK2bduyceNGQkJCKFu2LJaWlmzZsoXz588Xqjgi9/P6vyhfvjyVK1cmOzubCxcuFJu8iILwv4hATua0tLQ4ceIEp06dYvjw4UD+0Gnfvn0LBXM6Ojrk5eWRnp4OyD/NBsD48ePp37+/lJ1/1KhRHDlyBEAK5l6+fEm/fv1kPRdw0qRJXLhwgfj4eABmzJgh5QM8f/48YWFhxMfHf/R4amhoFIshdEWP1JIlSwgPD+fRo0cAzJ8/n8aNGzNgwIBC8+AUgV6FChU4ceIEEyZMYMuWLUXV/P9MWVmZWbNmkZiYSEREBAMGDMDIyAhvb2/279/PiRMnWL9+vSwfzD4XuT6oCsK/JVatykzB9CBKSkpkZGTg5uZGt27dpPqh4eHhbN++nSpVqjB58mQqVarEmzdvpCAO5L1iDWDChAlSMfu+ffty4cIFoqKipLxRV65cYejQodSsWbNQJQu5KVmyJIMGDWLEiBF06NCBbt260blzZ8aMGUPv3r3Jzs7Gw8MDKyurj6aTKNgbKdcgTklJiYSEBBwcHPD09JSGUXv06IGDgwMLFy78YDGDYhVncnIyZ86ckdLzyI3i956bm8vjx48ZPHgw6urq/PDDD4SFhZGenk7jxo0ZPHgwJ06cwNPTk/Llyxdxq78OIogTvhUikJMZxcXJ2dmZnj17YmhoyNmzZ4mOjsbc3FxKMbB69Wq2bdtGixYtPihZI3eNGzfGxMSEkSNHcvDgQRo3bkzr1q25cOECS5YskbLWX7lyha5du+Lt7V3ELf6/e/nyJT179kRLS4thw4bRokULtm7dypEjR7h48SLOzs48ffoUV1dXqXeyuFGc8/Hx8Tg4OODq6soPP/zA0qVLGT9+PPHx8R8tdJ+Xl4elpSWmpqYcPHjwSzf7P2nbti2ANDwIEBISQnp6Ok5OTgAcOnSI69evY21tjaOjI7/++ivNmjWTeisFQfg2iKFVGapVqxZHjx7lyZMnnDt3jqVLl/L69WtWrVpFZGQk69evl7bt3bs3e/fulW1vDHw4RGJsbEznzp1ZtWoV7dq1Y+XKlSxatIiIiAh27NhBo0aNmDlzJmvXrpU+I9dhxYJDhOvWraNx48Zs3ryZ0aNHS9vo6ekRGhqKvr4+mzdvZv369bLc13+qS5cuxMTEcOrUKezt7Xn58uVfbqulpYWRkdEHC0G+ZqVKleLkyZMkJiZibm4O/LnydMyYMTRr1owGDRrwxx9/MHTo0I/O/RPDioLw7RA9cjL06NEjNm7cyKNHjzh79iy7d++mSZMm3LhxAz8/PypUqCBtq8gv97EeCzkoeEP6/vvvAbh9+zabN28G8lcy7t27l8jISCA/t9TTp08/qCUpt8BGMaSmKDmVnJyMnZ0dp0+fpkmTJnTu3FnaNi0tjZEjR5KXl0eTJk1kt6//1sGDB7G1taVVq1ZMmjSJMmXKfHQ7ZWVlMjIyZBXEAbx48QInJyfKlSvHjh07AKT0Ibt27aJt27ZkZmbSr18/KYh7//ctgjhB+HbI8+7+jerWrRu1atUiLS2NJUuWUK1aNR48eECfPn2wsrIiOzsbAwMDAgMD0dbWLvRZud7cFTekKVOmsHz5cgYPHgzkDzlqa2tTt25dHj9+LKUTUSx6sLCwKMJW/zcFg1cvLy+WLVtGzZo1efz4Ma6urrx9+xYPD49CVQvS0tKwtraWynDJUfv27WnatGmh1/6qZNzBgwdxcHBg8ODBzJw5s1AyWAW5nvMA586dw8nJiSpVqrB27VopULtz5w4hISE8evSIcuXKSdvLeV8FQfhvRCAnE/Xq1cPDw4OdO3diaWnJ/fv3GTduHEOGDCElJQVvb2+OHj1KSkoKJUuWLLSwQe58fHxwdnbGw8NDWrkJkJ6ezrFjx/D09GTWrFns37+fatWqceHCBeCvg4CvnSKImzp1Km5ubsTFxUk36sePH+Po6Iiuri5eXl507NhR+lxGRoZs6+WamJjg4+NDeHg4ERERWFhYoKamVmiO2Pvi4+MZPnw4VatW5dWrV1+4xZ+Wrq6u9N+qqqrk5ORw5coVHjx4QM+ePdm6dat0XK9evUrNmjWpV69eUTVXEISviJgjJyM1atTAysqK0aNHs3XrVm7cuIGhoSFJSUlERUUB+XOC3r17V2ye0A0MDIiOjiY6OpqtW7dKryvSp2hrazNhwgTq1atHSkoKXl5exSIJ6Pfff09YWBheXl78/PPP0uuK/TYyMiI6OhptbW08PT2l4FXONDQ0KFu2LAEBAejr6/P27VtcXFxIT0//6PF8fx6YXOeFmZiYMGrUKGbMmMH169el1yMjIzE2NiYoKIiAgADu379P3759AdizZw8pKSlSD7UgCN8uEcjJUJcuXRgwYADGxsbUqFGDhw8fYm9vz8OHD6Vt5B7IKFSvXp2jR4/i5uZWqDcO8kvzKJLh6ujoSHVE5Zgj7/0gpGfPngQEBGBmZvZBag01NTWysrKoVKkSPj4+jBs3TtbHWlNTk7dv30r/1tLSomPHjowbN47SpUvTo0cPnj17VmzO6ffZ2dnh7OxMUlIS06ZN48GDB6xZswZjY2MGDRpEcnIyLVq0YNWqVVIwV716de7du1cs/x6CIPw7YmhVhg4ePEhAQACLFi3i/v371K9fnxEjRhTaRo4X+IJDgoo5QS9evOD69evUrVsXDQ2NQtt17dqViRMnAhQqBi+3IA7+HE4dPHiwNJldTU2NKlWqSNso9tva2pr69evz8OFDvLy8ZL2YxdLSkuHDh2NoaAj8mRtx//79eHh4kJKSQlxcHJqamrI8p/+OYp83btxIREQE+vr6TJ06VcoBaW9vT3JyMgBnz57Fzc2Nli1bEhAQwJ07d2R93AVB+HTEVeArorhR/5OLc1JSEnv37sXCwoJZs2YxderUz928z6pgj5S7uztDhw5FT0+P58+fS8l9O3bsiIqKCnl5eWhqamJra0udOnWKuOX/TcHg1c3NjUmTJpGamioVebe1tZUSvCrmiw0cOJB+/foV+h45Bjn29vYsW7aMzMxMsrKygMKrLa9fv86ECRNIS0tj1qxZxSpHXt++fdm4cSO9e/cGYOvWrcTExFCpUiWaNWvGzJkzuX//fqHz49y5c5iZmTFt2jTpNTked0EQPi0xtPqVMDc3p379+qxZs4anT5/+o8+8P9QkxyHF902bNo2BAwcSEhJCbGwsjx8/BmD9+vXUr1+fS5cu8eTJExo1aoSenh5mZmZSagY5a9iwIf369ePKlSts374dyO95Cw4OZufOnZw6dYqUlBRGjBiBvr4+nTt3lvWxbt68OWvWrGHq1Kns2LEDDQ0NdHV1yc3N5fnz59J2KioquLq60rNnT7y8vLh//34RtvrTKFOmDLt27aJixYocPnyY7du3s2vXLiC/brKTkxPPnj0jMDCw0Jy5gorrMLMgCP+e6JH7ChgZGbFw4UJsbGyIj49n/PjxhfKEwcd76d6/kMv5xg7g4OCAra0t1tbWrFq1isePH6OlpSW9FxISwps3b6hYsSKnTp3C1NSU7Oxs2ffUtGjRgsOHDzNy5EjU1NSk17du3cqoUaMoX748M2bMYNKkSbx9+5YuXbqQk5Mj62G1MmXK8Ntvv7Fjxw4aNGhAVFQUe/bsYfPmzQQHB0vb5eTkEBMTQ7ly5XBxcSnCFn86T58+5fjx4+Tl5ZGbm8ugQYOknrlt27axceNG9PX1mTRpErVr1/7od4ggThAEBdEj9xUoUaIEixYtIi4ujsePH9OrVy9sbW3Zvn07J06ckJKCFne+vr7o6+vj7e1NzZo1MTExYejQoTx79owffvhBqlhRcBi2OPRCQv7cuPnz57N27Vpmz55Namqq9J62traUnkKRAFbu+z127Fh69eqFhYUFP/74Iz/99BOnT5+mevXq9OvXjwcPHuDg4CBt361bN2xsbBgzZswHiz/kRFGhoWLFisyZM4crV67w3XffoaamRmRkJHv27AFg0KBBDBo0CGVlZTw8PHjw4EERt1wQhK+VfB/pi5FXr14RHx/PvHnzuHfvHn5+fpiYmKCnp8eyZcvYvXs3vXv3LjTxvThSV1fH2toaLy8vVq1aRZcuXdi/fz/Pnj1j8ODBlCpVCig8j0puwcxf9R4qhhmdnJywt7dHT09Pei89PZ0nT55IQZySkpLs9vt9P/30E1lZWYwaNYq7d+8SFBREbGwsS5cuJTg4mIoVK2JiYiJt//Dhw0KrsuXGwMAA+LNCw5s3b8jNzeXly5eMHz+e7OxsXFxc6NWrFwCbN29m165dXLt2Tdb7LQjC5yd65IqI4slcMddFRUWF5cuXc/78eVatWgXAL7/8wvXr13n37h3Vq1enfv36ODs7c+jQoSJu/ecTEhJCrVq12LVrF4cPH+b69eu0bt2aWbNm4eDgUGwKgtvZ2VGvXj2UlJS4dOmSlCPP09MTf39/ZsyYQXR0tKx7n/6OoaEh0dHR1KlThxs3btCjRw/pvTJlyvDzzz8zffp0qRQbQMWKFUlKSiqK5v4nffv2ZezYsSQkJLBixQrS09N5/fo1pqamrFq1ip49e6KpqYm/vz/KysqsWbOGvXv3FvoOuebIEwTh81Mt6gZ8i0xNTWnbti0rVqyQJnbn5ORw//59LCwsWLVqFQkJCaSmpjJ69Ghev35N8+bNad68OUeOHCnaxn8mihvVmDFjCuWEU1VVZezYsTx69EjWQVyfPn3Q1tZm06ZNTJ8+HXt7e/bv30/9+vUxNTXFwsICJycnlixZQm5uLn5+fujq6hISEkJGRkZRN/+Te/LkCV5eXsTGxtK8eXNsbGzYtGkTkN8DeevWLem3oTg35BjEGRkZMW7cOKpXr0716tWpVq0amZmZrFy5kpMnT7Jjxw46duxIZGQkixYtwtPTE29vb54/f84vv/wifY8I4gRB+CuiR64IzJo1i06dOrFt2zZWr17NixcvgPxht8OHD1OvXj1OnjyJs7NzoblSCnKfH/VPaGtrY21tjbm5OUZGRnTu3Jns7GxZ9kwo5r9ZWlry7t07IiMjGTZsGKdOnUJVVZU+ffrg6enJtWvXGD58OJBflszMzEwaaiuu6tSpw4YNG0hPT+fUqVOcPHkSe3t7SpYsSdeuXYvFpP7+/fvTt29fsrOz+f3331FSUmLo0KFs2bKFLl268PbtW7p3705mZiatW7emZ8+eTJ8+XXbnuSAIRUPMkSsCfn5+xMfHY25ujpubm1TwW0lJiT179nDz5k3c3Nw+GsSB/OaFAYVWY+ro6BR672O1QTU0NDA0NCQlJYVOnTpJq1PldnOzs7Njzpw5uLq6cuLECSpXroyKioqUViI7O5t9+/YRHR1N7dq1pVWKwcHBxT6Ig/xccQMGDODQoUO0bNkSJycnXr58Sffu3WWf8FZxXm/fvp24uDi0tbVp0qQJa9aswdramj/++AMVFRVq1KghJQc+efIk06ZNk23NXEEQvjzRI/eFFexNmzx5Mn379mXr1q2sXr2a58+fU6dOHQ4dOoS3t3eh+UFy1bFjR37++WepZ2XUqFF06NCBtLQ0tm7dyqFDh/6yp01RigrkmTfL2tqa0NBQ5s2bx4IFC4D8VCOhoaF4e3sXqqFauXJlTp06xdChQz+YH/WtUFVVRV1dnfT0dKD49Tz3798fZ2dnXr16xbRp00hMTKREiRKUKlVKSv4rtwcVQRCKnnwfd2WkRo0a0n8XvFDXqlWLcuXK0atXL9zc3DAwMOD69etERETg7u5OhQoViqK5n8yoUaMIDAzE1tYWgKFDh+Lt7c358+epUaMGY8eOxdPTEzU1tY/2QCiCOJBf3ixnZ2eWL1/O2bNnGTVqFG3atAHyK3JkZGQwePBgatasKW2fmZnJ9evXef36dVE1uchlZ2dLQRzIs+f572zfvp01a9agp6fHjBkzaNSoEa9evRJBnCAI/4kI5D4zY2NjTp06xahRo1BRUZECkujoaGrUqEHbtm1JSEige/fuuLq6oqOjw9mzZ/njjz+kOotytXXrVn777TdsbW1xdnamTp06uLq6EhgYSLdu3bhw4QLdunX722BOjlxcXAgMDGTw4MFYWFiwb98+tmzZQtu2bfnjjz8YM2YMbdu2ZcaMGYwYMQIzMzOWLVtGbm4ux44dK+rmC5/Rjh07iI6ORkdHB29vbxo1agSIxQyCIPzfiaHVL2DMmDFMmDABX19f1qxZQ1RUFDVr1sTR0ZG7d+8C+aWp2rdvz88//8yMGTOkz8r1SV0xFGpgYEBwcDBlypTB0NAQV1dXrly5AuTPlfP19aVZs2YcOHBAqrspZ9ra2mzZsoWVK1cSFxcHgL6+PgEBAfTp0wcbGxuOHz9Oo0aN8Pb2pmHDhrx+/ZpHjx7h4OBQKCWNIB//9neqSEly8OBBAgICPmPLBEEo7kQg95k0aNCAmzdvSoHJyJEjmT59OomJiWRkZODo6MjDhw8LzQNasGABGhoajB49uiib/p+9f1MrW7YsAQEBmJubs3jxYhYuXCi9p62tzZQpU+jevTsLFy4kJiamKJr8SfxdAPaxYE5bWxs1NTV0dHSk3tfiNi/sW9OwYUM0NTW5ePHi/6wB3KFDB44dOyaCdkEQ/hMRyH0GVlZWhIWFER0dzaRJk6QLuouLC0FBQSxYsIB58+ZJ2xenHpiCQdyAAQNISkril19+oXTp0gQGBlK5cmU2bNgglduC/J45BwcHwsPDi8XfwdHREYB169YVCswUwZyFhQUDBw7k5MmThT4n197Xb9WkSZO4cOEC8fHxAMyYMYO+fftiYGDA+fPnCQsLIz4+/oPA/P3jXJx+/4IgfHkiIfBnoK+vD4CTkxM6OjqMGjWK3NxcoqKiUFdXJyAggNTUVKmCQ25ubrG5iSv2Ydq0aQwYMIDVq1dz9epVnj9/zuTJkwkKCpIWPyiCuTdv3rBy5UqgeNzU+vXrh5KSEuvWrSt0E09NTcXf35+cnBzi4uLo2LEjv//+u/R+cTj+34qSJUsyaNAgWrduTUZGBpqamnTu3JkxY8bw4sULpk6dioeHB7q6umzbtq3QefD+cZb7+S4IQtESPXKfQaNGjfDz8+PIkSOMHDmS06dP4+bmJl2wR4wYwfTp0/Hz8yM8PLyIW/vpubq6MnHiRKytrbl27RqZmZlSoGpgYEBgYCCGhobs3r1bCmaLA0UQWr9+fdatW8f06dOleXIFlSlTBmdnZxYvXiyGUWXMyMiI6OhoUlJS+P3333nz5g0hISEA6OnpERoaStmyZVm9ejXbt28Xx1oQhM9CrFr9DC5fvsy7d++kBKcmJiaEhYVJyU1XrFjBtGnTmDNnDn369Cni1n56TZo0ISYmhl9//fWDeULPnj1jwoQJZGdnS8lviwtFoP748WNu3LhB69atgQ8THj99+pQFCxaQk5ODiorKF2+n8N8pKSnx6NEjXFxcKF++PGPHjqVWrVrS+2lpaYwcOZKUlBQGDx6Mvb29rJMbC4Lw9RJXlk+gcePG6OjooK6uLr02e/Zs9PX1ycvLY8iQIXTp0oUVK1ZIF/OwsDCGDRvGnj17iqrZn1yzZs2A/IUeBgYGwJ/BTV5eHurq6tSuXZvU1FRcXFwYP358kbX1U3JycmLKlCno6emhqqrKs2fP2Lx5M4MHD6Zx48Z/O2QqemnkRRGUK3qXk5OTsbOz4/Tp0zRp0oTOnTtL2yqCuby8PJo0aSKGUAVB+CxEIPcfWVpacujQIdauXcu8efMwNjYG4P79+2RlZdG5c2eOHz+Os7MznTt3JjQ0VArmduzYUWx6Zfz8/Jg7dy4VKlQgISEBY2NjmjZtWmibatWq4efnR506dXj58qVs88bVqVOHtm3bYmJigoGBAVWrVsXJyYmYmBjmzZtH+fLlOXjwIHFxcfTu3RsVFRVZ7qdQWMF5rF5eXixbtoyaNWvy+PFjXF1defv2LR4eHpiamkqfSUtLw9raGh8fnyJqtSAIxZ0I5P4jbW1tAEqXLo2amhp79uxhxowZfP/99wQFBeHg4ICxsTE///wzTk5OWFlZfXBRl3uvTOPGjWnevDl+fn4kJydz+PBhaR5Yq1atgPz5RFOnTqVUqVLcvHlT+qzcJvjb2tqyadMmIiIi2LlzJ15eXoSGhtKiRQv2799PjRo1OHz4MD4+PhgbG9O6dWs0NDRkt5/ChxTHcOrUqbi5uREXF1doON3R0RFdXV28vLzo2LGj9LmMjAzZPrQIgvD1E4sdPgFbW1uWLFnCmDFjeP78OQ0bNmTYsGFcvHgRExMTvLy82LJlC5C/EOLKlSvFZphlyJAhdOjQATU1NYYMGUJGRgYA3bt3Z9y4cdIQ6+vXr8nLy6Nr165/WVv1a+fo6Mj8+fMZOXIkDx48oHbt2gQHB7No0SKCgoIKbVenTh0GDhxI6dKlCQoKYv78+UXYcuFT+f777wkLC8PLy6tQrVxFmhnFAghtbW08PT25cOFCEbZWEIRvgUg/8gnExMSgq6vL4sWL8fX1Zf78+WzYsAEXFxdUVFS4fPmytK3iv4tL4tecnBxMTU158+YNNWvWlPYvPj6exMREypcvT7Nmzbh7967UgyHHfbe0tGThwoU4OztLRe3PnDlD165d6datG8uXL+fNmzdAfv44ZWVl1q1bx5QpU2jRooUsA1fhw5xvZcqUIS8vj4sXLxbaLicnBzU1NR49esSQIUPw8fHh0qVLX7i1giB8i0Qg94mEh4eTl5fH3Llz0dHRYfHixcydOxdVVdWPlp2SWyADH09Yu2bNGl69esWcOXOkQvF37twB4ObNm9y8eZOffvpJ2l5ZWVmW+66rqwuAoaEhqqqq0mrcjIwMnj9//sHq3Ly8PK5fv87MmTM5duwYZmZmJCQkfPF2C/+N4nwfPHgwN27cIDMzEzU1NapUqSKVmlP8Lqytrbl48SK///47Xl5eQPHIiygIwtdNBHKfUEREBHl5ecybN4+cnByWLl0q+9qhBSluag0bNkRLS4tXr15x/fp1tm/fjra2NpMmTSIjI4PVq1dLNWTfJ9eb2oYNG1BXV2f+/PmUKFGCJUuWYG5uTv/+/bG1teXdu3eFts/Ly0NZWZnbt29z/vx5SpYsWUQtF/4vCj60uLm54e3tTd++fVFSUkJJSQlbW1uWL1/OH3/8QV5eHioqKgwcOJDq1asXSvIs1/NdEAT5EIHcP9CoUSOePXsm1cOEvy6ntHr1avLy8pg9ezba2toEBgZ+yaZ+Fk2aNJGGiaZOnUqvXr0wNDQkKSmJpKQkBg0axPr161FWVsbHx4fc3FzWrl3L7du3i7jln1ZUVBTKysrMnTuXBg0a0KlTJ7y9vUlISPjo+ZCbm4u9vT0tW7Zk1KhRRdRq4f+i4EOLkZERU6ZM4dq1awAEBAQQHByMnp4ep06dIiUlhREjRlCqVKlCpfcEQRC+BBHI/Q/dunUjICCAly9f8ttvvxEVFcXvv/9OTk7OXw6bREZGoqOjQ/fu3WUfyDk7OzNhwgS6du1K7969cXR0xNnZmZcvX1KzZk0mTpzIoUOH6Ny5M2vXriU7O5tFixbx8OHDYhfIQX6gnp2dTXBwMPHx8VKZsb+a/7Zz507Onj37lz2UwterRYsW7Nu3j+zsbGmoFGDr1q1kZGTg5OTEjBkzuH//Po8fP6ZLly5/e10QBEH4HMSq1X/A0NCQ8uXLs3DhQtLS0rh16xZ+fn68ffu2WF+0nZycCA4OxsXFhT179hAaGkpSUhKzZ88G8nslmzRpQlhYGD/99BMTJkwAoEuXLiQkJBTbvwvk/20WLFjA9OnTWb58+Ue3keOiDqGwwYMHM3/+fNauXcvs2bNJTU2V3tPW1pbmTj558gQQx1wQhC9P9Mj9A0+ePOHJkydYWlpiZ2eHlZUVmzdvxsbGhoyMjGIZzFlaWrJgwQIcHR3Zv38/kJ8LruBcL8XqvX379tGsWTM0NTV5+/YtBw8eBOQ30fvfDKGvXbsWVVVVZs+ejZ6e3keH1MQNXT7+KgBbs2YNWlpazJw5k7t377JmzRrS0tIASE9PJz09XdpWSUlJHHNBEL44Ecj9hRIlSqCpqSk9aUN+LrTIyEgSExOZOHEi0dHRODg4FKsFDZA/nBocHPzB6/v378fKygozMzMOHz4svX737l3atWuHmpoab9++lV6XUxD3X4fQBXlTBGB2dnbUq1cPJSUlLl26xNatW1mxYgVqampMnTqVvLw8oqOjpWCuIJFeRhCEoiCGVj+if//+ODo6UqtWLS5cuEBwcDCXLl2SemeUlZXp2bMno0aNYt++fSxdurSom/zJDB48mMDAQJycnGjYsCE+Pj54eHjwww8/UKVKFcLCwkhNTWXTpk3s2bOHUqVKER4eTmpqKsOGDSvq5v8n3+oQ+resT58+aGtrs2nTJqZPn469vT379++nfv36aGhokJiYiJOTEwCjR4/Gz8+PxYsXExISIiW/FgRBKEoikHuPra0tc+fOZf78+Tx8+JCZM2eSkJDA2LFjC22noaGBv78/9evX/2j6CTnq0KED69atY+TIkezZswcAf39/Ro4cyZgxY9iyZQu1a9eWaqqWLFmSR48eoaKiQufOnT/IpSZXurq60hD627dvi/UQ+rdMMf/N0tKSd+/eERkZybBhwzh16hSqqqr06dMHT09Prl27xvDhwwHw8fHBzMyMXr16FXHrBUEQ8olAroB27dqxYsUK/P392blzJwAuLi5UqVKF1atX8+zZs0JP4SVKlOD48eMsX76csLCwImr1p1OqVCmqVKnCr7/+WmjOkL+/P6NGjWLMmDFs3ryZsmXLUqlSJVq1asUff/wh64oNgwYNIj09nbi4OODPOXGqqqqYmpoyceJEnj9/XiyH0L9ldnZ2BAcH4+7uTlxcHH379mXWrFm0a9eOFy9eAKClpYWNjQ2Ojo4MHz6cGzduFG2jBUEQPkK5qBvwtVBWVqZy5cqsXLmSH3/8UXrd0tKSXr16cfToUTZu3Ii3t7f03qtXrwgJCaF69epF0eRP7sWLF5QtWxY9Pb1CAVlAQADLly8nJCQEa2trUlJSuHDhAmFhYcTGxpKbmyvLig1OTk4sW7asUHCuGDrPzs4mISGBxYsXo6uri7u7exG2VPiUrK2tCQkJYcGCBVIA//DhQ9LT02nUqJG0XUZGBgcPHqRu3brUrFmzqJorCILwt0Qg9//l5uaye/duYmNjpZVoa9eupXr16kycOJEBAwZw/fp1evbsSe3ataXPXb16FXV1dTQ0NIqq6Z9M8+bNmTdvHsbGxkB+cKugCOYWLVqEg4PDB5+V25Cjs7MzgYGBuLm5SatsFRT7kpuby8GDBzl//jxmZmbF4hh/6xRl5M6ePcuoUaNo06YNAElJSWRkZDB48OBCQVtmZibXr1/n9evXRdVkQRCEvyWGVv+Cmpoa/fv358SJEzx48AAAY2NjTp48iYODA/Hx8dK21atXl+qLypmKigpHjx7lwoULeHh4fHSboKAg6tatS58+fb5w6z6dLl26EBMTg7OzM3v37qVmzZr069ePOnXqcO/ePfbu3cu5c+ek7YvbEPq3ysXFhblz5+Lq6sqPP/5ISEgIffr0YdCgQZw4cYKmTZsSExPD+fPnOXbsGNeuXWPkyJHo6+vTtWtX2T2sCILwbRA9cn8hKyuLzZs3S0EcgKamJmfOnOH+/fuFtpVjEKekpFTo36qqquTk5BAQEECTJk347rvvPvq5CRMmyDqIU1FRoV69ejx48IB69epRs2ZN1q5dS6tWrVBXV6d///5Mnz6dvn37StsXtyH0b5G2tjZWVla4ubmxd+9esrOz8ff3Z9euXWzevBkTExMuXrzIwIEDycrKYsiQIUybNo2cnBy6d+8uTR8QBEH42og8cv+Quro6kydP5tWrV1LNRTlT5Lxq2bIlp0+fllac3r59GxUVFVq0aMH58+eLsomfRU5ODtHR0bx79w4XFxe8vb1ZuXIlCxYs4PXr15QpU4bw8HAcHR3ZuXOnNO/v6tWrNGjQAA0NjWKxQvlboqysTHp6Or179y70empqKv7+/gBs2rQJGxsbjh8/zsiRI1FTU0NHR0dKDi3HhTyCIHwbxNDq/6CtrU2HDh1wdHSkSpUqmJmZkZ2d/ZcZ/792mpqaqKmpkZaWxvfff8+uXbs4ffo0e/bsYfPmzbx8+RJXV1e8vb2xsLAgMTGxqJv8WZQoUQIHBwcqV67M8uXLefjwoXRMTUxM2LlzJ+3ateP69evSZ4rLEPq3ytHREYB169YVCsz09fUJCAjAwsKCgQMHcvLkyUKfk+tvXRCEb4MYK/gftLW16du3LxkZGZiampKdnY2KioosL+wWFhaEh4dz8OBBZsyYgbq6Oi1atCAxMZE+ffrwyy+/4OrqSlpaGidOnKBly5YAxXJI6dWrV6xbt441a9bw8OFD4M9eSn19fS5dusSjR48KfUYEcfLWr18/+vfvDxQun6bomdu5cydxcXHUr1+/0Ofk+FsXBOHbIXrk/oGSJUvy8uVLQH71QxWcnZ2ZMWMGP/zwgzQX7JdffmHQoEEoKyujo6PD8OHDadasGbVq1aJKlSr88ssvsp4P93+hrq5OZGQkGRkZuLm5FXVzhE9A8ZutX78+69atY/r06VLakYLKlCmDs7MzixcvFsOogiDIhgjk/gW5DrHY29sTFBSEq6urtNq2Y8eO/PDDDwwdOpTY2Fhp2woVKlC1alVGjRpFs2bNmDVrFjExMUXV9C9GR0eHjh074ujoSKVKlTA1NSUnJ0e2x1z4kIGBAcuWLSMxMRFfX9+/PbZiTpwgCHJR/MbMPiM53tDLlCnD4sWLOXPmDEeOHAHyA9ILFy7w4MEDtLW1pdcAkpOT+eWXXxg9ejRnzpyhVatWRdX0L0pbW5uBAweSnZ2NmZkZOTk5sh1CF/I5OTkxZcoU9PT0UFVV5dmzZ2zevJnBgwfTuHHjvz22IogTBEEuRCBXzD19+hQnJydatmzJjBkzKFeuHHl5eXTs2JGKFSty8eJFoHCQqqyszIsXL9i6dSsdO3bE0NCwiFr/5aSkpDB27FicnJykeZDiZi4vderUoW3btpiYmGBgYEDVqlVxcnIiJiaGefPmUb58eQ4ePEhcXBy9e/dGRUXlgzQ8giAIciPSj3wD9u3bx5AhQ1i7di0vX77k7t27zJs3D09PT65evfrB9oo5gC1btiQtLa1QCavi7Pnz50B+76QI4uTF1taWCRMmoKGhQdmyZQkLC2Px4sUsWrSIwYMH06lTJw4fPsymTZswNjamQoUKaGhoSFVcBEEQ5ErMkfuGmJubEx0dDcDUqVNZsWLFX26roqLCmjVrWLBggdRrJwhfI0dHR+bPn8/IkSN58OABtWvXJjg4mEWLFhEUFFRouzp16jBw4EBKly5NUFAQ8+fPL8KWC4Ig/HcikPvGmJqasnXrVsLCwggJCeHp06dF3SRB+D+ztLQkIiJCKremsGbNGipVqoSlpSVv3ryRXldWVqZWrVpMmTIFTU1NbGxsxDxIQRBkTcyR+8YcOXIEJycn3N3d8fLyoly5ckXdJEH4P9PV1QXA0NAQVdU/Z4pkZGTw/PlzqWKJQl5eHtevX2fmzJl06NABMzOzL9peQRCET03MkSsmPpZK4a/SK+zbtw8nJyfWrVvHgwcPWLly5ZdqpiB8Uhs2bEBdXZ358+dTokQJlixZgrm5Of3798fW1vaDcmp5eXkoKytz+/Ztzp8/T8mSJYuo5YIgCJ+GCOSKATU1NbKysgCoVasW2dnZPHjw4G9Lie3fv5/evXtz9uzZL91cQfikoqKiUFZWZu7cuTRo0IBOnTrh7e1NQkLCR8//3Nxc7O3tadmyJaNGjSqiVguCIHwaYo6cjM2ePZvg4GBptaW/vz82NjZkZmaSmpqKvb39B2WmPkak2hCKA2dnZ4KDg4mPj8fBweFvt9XR0aFSpUqFaukKgiDIkZgjJ1MVKlSgT58+xMbGoqenR7t27bC2tsbLy4tp06aRlpbGgQMHqFOnzv/8LhHECcVBdHQ03t7edO/e/W972lRUVHjz5o0I4gRBKBZEj5yM1a5dmxUrVqCqqkpYWBi6urqEh4cD+eWIQkNDadCgAVZWVuKmJchWo0aNePbsGcnJydJrf1dey9XVldmzZxMSEsK8efO+VDMFQRCKhOiRkyFFNvobN24wfPhw3r17x5IlSyhbtqy0zbNnzxgxYgS//fYbmzdvpkGDBkXVXEH4P+vWrRsRERGsWbOGhQsX0qhRI6l0mrLyxy9fkZGRzJkzh3bt2n3h1gqCIHx5okdOZipXrsyDBw8A6Nu3L/Hx8VSpUoXAwEAqVKhAz549efbsmbR96dKl2bJlC48ePcLR0bGomi0I/2fly5fH0NCQhQsXkpaWxq1bt/Dz8+Pt27coKytLlUgEQRC+RSKQk5E2bdrg5+dHSEgIHTp0wN3dnSZNmpCcnCwNs2poaGBubs6rV6+kz+np6fH69WuR+FSQlVq1anHz5k3p37q6utjZ2WFlZcXbt2+xsbEhIyNDBHOCIHzTxNCqDOjr6wOQlJREWloaQUFB2Nra0r59e2ne0I0bNxgxYgSZmZns2bOHEiVKSJ9PS0sjLy9PFAgXZKNfv36sWbOGhg0bAqCqqsrr16+JjIxk/vz5aGtrEx0djbq6ugjiBEH4polA7isXHBzM8OHDUVZW5v79+5w+fZoyZcqQmJhIjRo1Cm1bcM7c6dOn0dHRKfS+6JET5MDZ2ZlVq1ZRu3ZtevbsCSDlRMzOziYhIYHFixejq6uLu7t7EbdWEAShaIlA7it37NgxgoKCyM3NRV1dnf3792Nra8vjx48ZNmwY/fv3L7T9jRs3GD16NAcPHiQjI6OIWi0I/zfOzs4EBQVhZ2fHhAkTGDBgALVq1QL+fBDJzc3l4MGDnD9/HjMzMzQ0NIqyyYIgCEVKBHJfuZ07d5KdnY2dnR2rVq3ixYsX/Pzzz0ybNo2MjAycnJywtLSUtndzc+POnTuMHj2a3Nzcv1zZJwhfGxcXFwIDA3FxceHAgQPcvHkTfX196tWrB1BoasC7d+8ICgqiVq1auLi4FFWTBUEQipy4y3+l3p/PpqurS4UKFZgyZQoVK1bk9u3b+Pr6kp6ezpAhQ/D392fDhg2MHz9eKtcFiPlDgizo6enh5OTE0KFD2bt3L5DfG33gwAEmTZqEnp5eoakBysrKvHr1ipCQEKpXr15UzRYEQShyIpD7SiluWlZWVjRo0IBVq1axefNmqlevjq+vLxUrViQxMZEpU6Zw48YNvvvuOwDq169Pbm6uWNggyEpaWhq9evVi9+7dwJ8PMtu3b0dFRQUTE5NCryseUK5evYq6uroYXhUE4Zsl0o98xbS0tDhx4gSnTp1i+PDhQP7Qad++fbl37x6zZ88mKSkJHR0d8vLySE9PB0TtVKH4UFZWJj4+nidPnmBvb//RbapXr86dO3e+cMsEQRC+DqJH7itSsBdNSUmJjIwM3Nzc6NatG3Z2dgCEh4ezfft2qlSpwuTJk6lUqRJv3ryRgjgQtVOF4kFJSYnc3FzmzZtH06ZN6dSp00e3E0GcIAjfMhHIfUUUw6nOzs707NkTQ0NDzp49S3R0NObm5tStWxeA1atXs23bNlq0aMGgQYOKssmC8Nkofg83btzgxYsXtG/fvohbJAiC8PVRLeoGCIXVqlWLuXPn8uTJE86dO8fSpUvZsGEDq1atokWLFly7dg2AqKgoUlJSpInhglBcPXjwgH379tG6deuiboogCMJXR/TIfWUePXrExo0befToEWfPnmX37t00adKEGzdu4OfnR4UKFaRtd+/eLVKMCN+E5cuXY2FhUdTNEARB+OqICOAr0a1bN2rVqkVaWhpLliyhWrVqPHjwgD59+mBlZUV2djYGBgYEBgaira1d6LMixYhQ3D1//lyUmRMEQfgIEch9BerVq4eHhwc7d+7E0tKS+/fvM27cOIYMGUJKSgre3t4cPXqUlJQUSpYsWWhhgyB8S0SZOUEQhMJE+pGvRI0aNbCysmL06NFs3bqVGzduYGhoSFJSElFRUUB+OpJ3796JHjhBEARBEAARyH11unTpwoABAzA2NqZGjRo8fPgQe3t7Hj58KG2jrKwsgjlBEARBEEQg9zWqWLEiTZo0Yfz48TRs2JBVq1bh6+tb1M0SBEEQBOErIwK5L0RJSYm8vLx/1Zumq6vLkCFDWLZsmUjyKwiCIAjCB0Qg9wWYm5tTv3591qxZw9OnT//RZ94P+ETZLUEQBEEQ3icCuc/MyMiII0eO8Pr1a5SUlNi0aRPnz5/n0KFD0jZizpsgCIIgCP8XorLDZ5aens7x48eJi4vj8ePH9OrVi1WrVrF9+3ZOnDjBjh07RBAnCIIgCML/icgj95m9evWK+Ph45s2bx7179/Dz88PExAQ9PT2WLVvG7t276d27N1WqVCnqpgqCIAiCIDMikPsMVFXzOzoVpbO2bdvGkSNH6N27N5BfhqtJkyYcOHCApKQkPD09OXHiBJ07dy6yNguCIAiCID9iaPUTMzU1pW3btqxYsYLnz58DkJOTw/3797GwsGDVqlUkJCSQmprK6NGjef36Nc2bN6d58+YcOXKkaBsvCIIgCIKsiB65T6xLly707t0bV1dXSpUqJb0eGBhIyZIlSUlJ4c2bNzg6OvL69WsAzp07x6pVq8jJyUFFRaWIWi4IgiAIgtyIQO4T8/PzIz4+HnNzc9zc3ChZsiSQn0duz5493Lx5Ezc3N1JTUz/6eZFiRBAEQRCEf0oEcp+QojdtxowZHDx4kAEDBuDm5kbp0qXJzs5m586dVKlShY4dOxZxSwVBEARBKA5EIPcf1ahRQ/rvvLw/U/LVqlWLcuXK0atXL9zc3DAwMOD69etERETg7u5OhQoViqK5giAIgiAUIyKQ+w+MjY05deoUo0aNQkVFRcoHFx0dTY0aNWjbti0JCQl0794dV1dXdHR0OHv2LH/88QfJyclF3HpBEARBEOROrFr9D27fvs2sWbOYMmUKb968Yc2aNURFRVGjRg0cHR1JTk4mICAAZWVlunfvjra2NjNmzGD37t3An/VXBUEQBEEQ/i9Eia7/gwYNGnDz5k0yMzMBGDlyJNOnTycxMZGMjAwcHR15+PBhofqoCxYsQENDg9GjRxdl0wVBEARBKEbE0Oq/ZGVlxZEjR5gzZ46U+Dc0NJSJEydibGxMfHw8Dx8+BPJXoCqSAnt7e4sgThAEQRCET0oMrf5L+vr6ADg5OaGjo8OoUaPIzc0lKioKdXV1AgICSE1NZdWqVQDk5uaKIVRBEARBED4LEcj9SydPniQhIYEjR44wcuRIwsPDcXNzIzc3l5UrV6KsrExAQAB5eXmEh4cDiCBOEARBEITPQgyt/kuXL1/m3bt3tGzZEicnJ0xMTAgLC5OGUFesWMG0adOYM2cOffr0KeLWCoIgCIJQnIlA7n9o3LgxOjo6qKurS6/Nnj0bfX198vLyGDJkCF26dGHFihVSMBcWFsawYcPYs2dPUTVbEARBEIRvgAjk/oalpSWHDh1i7dq1zJs3D2NjYwDu379PVlYWnTt35vjx4zg7O9O5c2dCQ0OlYG7Hjh2idqogCIIgCJ+VCOT+hra2NgClS5dGTU2NPXv2MGPGDL7//nuCgoJwcHDA2NiYn3/+GScnJ6ysrPDx8Sn0HaJ2qiAIgiAIn4tY7PA3YmJiAFiyZAkRERHs3buXhg0bsnr1ai5evEi5cuVo3rw5t2/f5sSJE3Tq1IkrV64UcasFQRAEQfhWiB65/yEmJoYpU6awePFiKlWqxPz58+nYsSMXL17k5MmTXL58Wdr28uXL5ObmiuFUQRAEQRC+CNEj9w+Eh4eTl5fH3Llz0dHRYfHixcydOxdVVVWpukNBYjhVEARBEIQvQQRy/1BERAR5eXnMmzePnJwcli5d+tEgThAEQRAE4Uv55gO5Ro0a8ezZM5KTk6XX/qoSw+rVq8nLy2P27Nloa2sT/MTHCAAAAyFJREFUGBj4JZsqCIIgCIJQiJK+vv43W3agW7duBAQE8PLlS3777TeioqL4/fffpRqpubm5H/2ch4cH3bt3p3fv3l+4xYIgCIIgCH/6pgM5AENDQ8qXL8/ChQtJS0vj1q1b+Pn58fbt278N5gRBEARBEIraNx/IKYZRdXV1sbOzw8rKirdv32JjY0NGRoYI5gRBEARB+Gp9k4FcixYtePv2Lb/99hsAKioq5OTkoKqqiqmpKRMnTuT58+c4ODiIBQ2CIAiCIHy1vrk8cm3atGHfvn14eHjQtGlTID9diJKSEtnZ2SQkJLB48WJ0dXVxd3cv2sYKgiAIgiD8jW8ukDM0NCQrK4ty5coxbNgwGjduDEBeXh5KSkrk5uZy8OBBzp8/j5mZGRoaGkXcYkEQBEEQhI/75gK5c+fOsWPHDqKioqhTpw4jR46kSpUqQP58OYB3794RFBRErVq1cHFxKcrmCoIgCIIg/KVvLpBTUVGhVatWJCQksGTJEqpVq8bkyZNJTExkxowZAKiqqvLq1StCQkKoXr16EbdYEARBEATh476phMBKSkrcu3ePa9euUaVKFWJjY1FRUWHRokWkpaVx6NAhALKzswG4evUqDRo0QENDg3fv3hVl0wVBEARBED7wTQVyimoNSkpKNG7cmCtXruDh4UFSUhJv376lf//+pKWlce7cOQCOHz9OcnKyCOIEQRAEQfgqfXNDqwBnz56lRo0axMfHk5aWRrt27Vi0aBHt27fH1NS00LZ37twpmkYKgiAIgiD8D99Uj5zCb7/9xsaNGzl+/Dhubm7k5uYSFxfHixcvOH78eFE3TxAEQRAE4R/5JhMCa2ho0LlzZ06fPs3Tp08/eF9UcxAEQRAEQQ6+yUBOEARBEAShOPgm58gJgiAIgiAUByKQEwRBEARBkCkRyAmCIAiCIMiUCOQEQRAEQRBkSgRygiAIgiAIMiUCOUEQBEEQBJkSgZwgCIIgCIJMiUBOEARBEARBpkQgJwiCIAiCIFMikBMEQRAEQZApEcgJgiAIgiDIlAjkBEEQBEEQZEoEcoIgCIIgCDL1/wAHCbfYBuhs8AAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"execution_stats = [time_pytorch_function_forward_backward(prepare_function(fn), embeddings) for fn in functions.values()]\n",
"execution_means = [stat[0] for stat in execution_stats]\n",
"execution_stds = [stat[1] for stat in execution_stats]\n",
"\n",
"\n",
"plot_execution_times(functions, execution_means, execution_stds, filename=\"3_forward-and-backward-compiled.pdf\")"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"gpuType": "A100",
"provenance": []
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.14"
}
},
"nbformat": 4,
"nbformat_minor": 5
}