Files
reasoning-gym/notebooks/check-collisions-in-reasoning-gym-dataset.ipynb
Adefioye 5b653b346c Data collisions notebooks and data (#406)
* Add collisions data

* Fix logic issues in basic_arithmetic and gsm_symbolic data
2025-04-02 09:36:09 +02:00

419 lines
73 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "e81636e0-fa3c-462d-ae2e-2bb35cafd544",
"metadata": {},
"source": [
"## Investigating collisions in reasoning-gym datasets\n",
"\n",
"This notebook helps to investigate collisions in training and validation datasets generated with different seeds as intended to be used for RL training."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "42323371-404e-4e86-b8b8-a420b4c79303",
"metadata": {},
"outputs": [],
"source": [
"import reasoning_gym"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f06e7932-6c77-4609-8a33-7c4d815841d6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total number of data: 15\n"
]
}
],
"source": [
"with open(\"data.txt\") as f:\n",
" data_names = f.readlines()\n",
" data_names = [name.strip() for name in data_names]\n",
" print(\"Total number of data: \", len(data_names))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "d7a5a5bf-7428-46f5-a7f5-a46238df2543",
"metadata": {},
"outputs": [],
"source": [
"TOTAL = 10000\n",
"collisions = []"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7138aced-d61a-4e2a-9935-a9b251e6d554",
"metadata": {},
"outputs": [],
"source": [
"%%time\n",
"for name in data_names:\n",
" data_1 = reasoning_gym.create_dataset(name, size=TOTAL, seed=1)\n",
" data_2 = reasoning_gym.create_dataset(name, size=TOTAL, seed=2)\n",
" count = 0\n",
" for item_1, item_2 in zip(data_1, data_2):\n",
" if item_1[\"question\"] == item_2[\"question\"]:\n",
" count += 1\n",
"\n",
" # Add name, count to collisions.txt\n",
" with open('collisions_1.txt', 'a') as file:\n",
" file.write(f\"{name}, {count}\\n\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "73297817-0eda-4bb4-9850-1375b2fcfa4d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "86d9535a-73fd-4930-a2df-393efd73cb75",
"metadata": {},
"source": [
"# Report on collisions data generated"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "d41efd7a-3d23-4433-98d5-617b5aa66f07",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "e732e125-e232-4e1a-bc66-1ee37405d6ff",
"metadata": {},
"outputs": [],
"source": [
"with open('collisions.txt', 'r') as file:\n",
" data = [line.strip().split(\",\") for line in file.readlines()]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "77a90340-f760-41d4-ab2a-0b14b6dbfc08",
"metadata": {},
"outputs": [],
"source": [
"# Clean data\n",
"data = [(name, collision.strip()) for name, collision in data]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "36054684-470c-4ea4-8a60-25efb8218926",
"metadata": {},
"outputs": [],
"source": [
"df = pd.DataFrame([[name, collision] for name, collision in data], columns=[\"name\", \"collisions\"])"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "0d2e6752-8d04-46c9-8057-3e71a39819f9",
"metadata": {},
"outputs": [],
"source": [
"# Change collision to int\n",
"df[\"collisions\"] = df[\"collisions\"].astype(int)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "a2b05dc7-4319-4709-ae57-b3a6637bc66a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>collisions</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>complex_arithmetic</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>intermediate_integration</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>polynomial_equations</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>polynomial_multiplication</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>simple_equations</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" name collisions\n",
"0 complex_arithmetic 0\n",
"1 intermediate_integration 12\n",
"2 polynomial_equations 0\n",
"3 polynomial_multiplication 0\n",
"4 simple_equations 0"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "f817273d-3875-4b7f-9f7e-a8ea2cb0b455",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total number of data: 86\n"
]
}
],
"source": [
"print(\"Total number of data: \", len(df))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "5c056fd2-2f05-443e-8ccc-17811d810852",
"metadata": {},
"outputs": [],
"source": [
"# Filter out non-zero collision entries\n",
"df_zero_collision = df[df[\"collisions\"] == 0]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "6c8df99f-9d20-4d06-852f-98e4576e1a1d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The number of data with zero collision: 66\n",
"Percentage of data with zero collision: 0.7674418604651163\n"
]
}
],
"source": [
"print(\"The number of data with zero collision: \", len(df_zero_collision))\n",
"print(\"Percentage of data with zero collision: \", len(df_zero_collision) / len(df))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "f09f6190-0436-4a76-9acf-0f775d0b8c2a",
"metadata": {},
"outputs": [],
"source": [
"# Filter out zero collision entries\n",
"df_non_zero_collision = df[df[\"collisions\"] > 0]"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "9a260c44-e492-43e5-8e55-77b78457e142",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The number of data with non-zero collision: 20\n",
"Percentage of data with non-zero collision: 0.23255813953488372\n"
]
}
],
"source": [
"print(\"The number of data with non-zero collision: \", len(df_non_zero_collision))\n",
"print(\"Percentage of data with non-zero collision: \", len(df_non_zero_collision) / len(df))"
]
},
{
"cell_type": "markdown",
"id": "5a59e38b-5914-4dbd-b6fc-4be425f28d4b",
"metadata": {},
"source": [
"## Visualize datasets with collisions data"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "1906a0a9-264c-4b45-8def-e94ed69a7c44",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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7eN7N8MKMnr0OenUqZM1adLEfe71uVLpmoJFGod3njpvXRuNVTfzui4KJuhfZTR5AUZlOulzqPdAARHd8K9fv94FB2+77Ta3jXfO+m6NHTvWfaYnT57szlnH9M9aU6BHY1NfKgXt9NlTYFZBjMcff/y659yuXTv3WdBx9NlUWZyCDDpXjz4jCrbo869g6po1a1wQLKr0O0S/U8qVK+eOowCeApEK3Hh0fRTk0ufs+PHj7veN57PPPnO9ofwztkT70u8T/f7T51rfMX0m9LtEx9B3T9de11PnqKBNZN599133+dHvDwVd9H7q94bGUrBgQd92Gouukz5v+qzpe6LX6n349ttvXXamgj/6nOg90O8cfXekfPnysf55icrvUh1fgX1luKmPmZd55wWpACDaQgAAQJybPn26oh8hW7ZsCTl06FBIypQpQ3r16uVbX6dOnZCyZcv6Hv/8889ue70uLD0/bNgw32P9rOceffRR33OXL18OKVCgQEiyZMlCxo0b53v+xIkTIenSpQvp1KmT77mvv/7avT5//vwhp0+f9j3/0UcfuecnT57sHl+9ejWkePHiIU2aNHE/e86fPx9y8803hzRq1OiaMT3wwANRuj59+vRx269bt8733JkzZ9x+ixQpEnLlypVQ5//kk09ed5/33nuv21bnHBUVK1YMyZUrV8g///zje27nzp0hyZMnD+nYseM176XeI//3T0tE75/GoMcvvfRSpGMIu59Jkya5173//vu+5y5evBhSo0aNkIwZM/reL+942bNnDzl+/Lhv20WLFrnnP/vss2iNIzzee7pv376Qv//+2x1z2rRpIWnSpAnJnTt3yLlz59z7p23mzJkT6rVLly695vnChQu757QuKvSZzZAhgzu2loMHD4a8/PLL7jN+6623+j6T+txkzZo1pHv37qFe/+eff4ZkyZIl1PP67Ib1wQcfuHGtXbvW95xeF9lnTu+JPjsax7///ut7/vPPP3f7Gjp0aKjz0HMjR44MtY9KlSqFVK5cOUrf9S5dulzzWdd779m2bZvbTt8rf507d75mnxEpV66c+x2i6+lZvXq1e73eO48+D3pu6tSpoV5/zz33uO+u9754v2d0jXS9PPodofewWbNmoV6vz7j/cSK77vruXrhwwff8W2+95Y7l/13S70T/bbzvgz67/tdTn62IrlFsfV6i87tU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29SuXdv+/fffgI0ZAAAgsSMAlAjNmDHDsmbNasFu9erVlixZMjt58mScHaNIkSI2adKkONs/AOBaBQoUsHHjxtm2bdts69atLtDTsmVL2717ty/407RpU2vcuLF9++23tmXLFuvZs6clT85/tgAAAMRUspCQkJAYvxqxpnPnzi7QsXDhwutuq7+AnjlzxnLlymXBom7dulaxYsVQwRgFgOrVq2cnTpyIs4DX33//7f66nD59+hve1+nTpy1LlizWsEw3ZgEDgGjOApYtWzZ76aWXrGvXrnb77bdbo0aNbNSoUXE+PgAAgMTMuw89deqUy5qODH9KS2QuXbpk6dKlC6rgTyDlzJkzVoI/AICYuXLlis2bN8/OnTvnSsGOHTtmmzdvdv8/d8cdd1ju3LmtTp06tn79+kAPFQAAIFEjABTPPvnkEytXrpwL4mTPnt0aNmxoAwYMsJkzZ9qiRYtcyZMWZb8cPnzY/fzhhx+6//hNmzatzZkz55oSsOHDh7vsmdmzZ7uSJkX/7r//fpcl5NHPHTp0cNkuefPmtVdeecVl3fTp0ydK437jjTesePHibgz6j/G2bdu652fNmuXO48KFC6G2b9WqlT388MNRGp+yn9asWWOTJ0/2nb/O3aMSgSpVqrhAjW4G9u3bF+pYum633XabG1vRokVtxIgRdvnyZbdOCW46fqFChSxNmjSWL18+69WrV7glYNfbNiyds6Kt/gsAIGp27dplGTNmdL9ve/ToYQsWLLAyZcrYTz/95Nbr93H37t1t6dKl7nd8gwYN7MCBA4EeNgAAQKJFACgeHT161B544AHr0qWL7d271wV5WrdubcOGDbN27dq5fgfaRosCHZ6BAwda79693WuaNGkS7r4PHTrkysc+//xztyigov4Knn79+tmGDRts8eLFtmLFClu3bp199913URq3+jMoEDJy5EgXfNF/jKsZp9x3333ur7far0d/vf3iiy/ceUZlfAr86K+++g997/wLFizoe+3gwYNtwoQJbhwpU6YMtV+dR8eOHd312bNnj02bNs0FyMaMGePWz58/3wW79LxuHDQGBeDCE51tZezYsS6Y5S3+YwYARK5kyZK2Y8cOl+3z+OOPW6dOndzv8atXr7r1jz32mD3yyCNWqVIl97tZ27/33nuBHjYAAECilTLQA0hKFNhQZoqCPoULF3bPeQEG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R1k6Edm5c6d9/fXX4TaE1nl4gRkFu2LyOmUm+cubN68dO3bM/ay/jKsXUXjBH+8YyvxRRpVHsVFlDv3888+uxC6sQYMGuUbX/l88BaUAIND0u0vBegAAAMBDACgRUGaKSpmU0aNMlilTptjgwYPts88+c+vffvttq169+jWviU0qrfKcPXvW/fvFF19Y/vz5Q22n/hMR0es0W82LL754zToFa8I7VnRep+nm/an3kG6CRH19IqNjqD+Q+v6EVahQoXBfo3ON7HwBID4oGK0MR/2uOnPmjMvCVLaPlzX5559/ukXBe69fUKZMmdz2yuYEAABA0kAAKJFQMKNmzZpuUc8flYKpn02+fPnsp59+sg4dOsTbWNRYVIGPI0eOuBKpqLrtttts/vz5VqRIEUuZMmWcv86fsoNUNrZ///5ws4B0DPXLUEkdACQmynTs2LGj67em7E/9vlPwx8vSVC81/3LV2rVru3+nT58epVJgAAAABAcCQImAmnquWrXKlX7lypXLPf77779dWZL+o15ZK/qPfjUxVsq/GiWrx4N/eVJs0l+O+/fv7xo/K8OmVq1art5QASnVHKr5aHiefPJJl62kfkXebF36i7SmLNZMZhFlLcX0df4UqNJNj5o8T5w40QV6fvzxRxdY03V79tln7fbbb3dNn9UPSFlICggp8+q111674WsGAHHl3XffjXS9+pWFnRURAAAASQ8BoERAQZW1a9e6hsrqM6PsnwkTJriUf0mfPr299NJLNmDAABe4UK8gTaMel9R4OmfOnG42MGUgqaGosmiee+65CF+jbCUFiRRsUTBLwSqdiwIwyZMnj/XXhaUsIgWuFEhSY2cFgdQgWvQXc81gptI6TQWv/j9qoBrVWdIAAAAAAEjImAUMiOXu68wCBiDQs4ABAAAgaTgdjVnAop4+AQAAAAAAgESJAFAS16NHDze9eniL1gEAAAAAgMSPErAkTrPHKGUsPEofU9NpxH7qHQAAAAAA8XkfShPoJE4BHoI8AAAAAAAEN0rAAAAAAAAAghwBIAAAAAAAgCBHCRgQy+59eKylTJU20MNAEFv2ybBADwEAAABAIkMGEAAAAAAAQJAjAAQAAAAAABDkCAABAAAAAAAEOQJAABAk1q5day1atLB8+fJZsmTJbOHChaHW67nwlpdeeilgYwYAAAAQPwgABZGQkBB79NFH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HpVShISE+MqLRo0aZR07drTMmTPbo48+ek0JmFfqtGzZMqtUqZKlS5fOBWaOHTvmsnNKly7tXvvggw/a+fPnQ93IjR071m6++Wb3GpV8fPLJJ9cds3f8f/75x7p06eJ+VnbMlStXrGvXrr79lSxZ0iZPnnzN69977z0rW7aspUmTxvLmzevO3TtXuffee90+vccydepUl2GgoI72O3v27FD71PbaRj1JlI0zZsyYa0rAdK31OOyi85GJEye6kja9XllWTzzxhJ09e9Z3jR955BE7deqU73XDhw8PtwRMfVBatmzpsqJ03du1a2d//fWXb71ep8wpnYNeq/f9/vvvtzNnzkTpMwMEkn6v6Hsxbtw4a9q0qS1fvtx9Z1u3bm1r1qwJ9PAAAAAAJAAEgCIwc+ZMl83z7bffuoCJAhHvvPOOb/3LL7/sgjPbt293waGIKLDw2muv2caNG+3XX391gQcFJubOnev+Yq8btSlTpvi2V/Bn1qxZ9uabb9ru3butb9++9tBDD133Js4rQVNwQ/vXz+3bt3cBJWUDffzxx7Znzx4bOnSoPffcc/bRRx/5XqsgzZNPPukCWbt27bLFixdbsWLFfKVUMn36dLdP77FKwnr37m1PP/20/fDDD/bYY4+5YMzXX399zfnrRlT7VWAqrE8//dTt11t0w6pgUu7cud365MmT26uvvuquhd6Tr776yp555hlfOZnOVefsvb5///7XHEPXQMGf48ePu+u4YsUK++mnn9z1CZs9pYyJzz//3C3aVjfUEblw4YKdPn061AIEgj7jos+5fmcomDlw4EC7++673e8SAAAAAKAHUCQBlVdeecVllSggoQCGHnfv3t2tVzaPgh8eL2MlrNGjR1vNmjXdz8rEGTRokAs0FC1a1D3Xtm1bFzR59tlnXUDhhRdesJUrV1qNGjXcem23fv16mzZtmtWpUyfC8XolaBqvslf0s2fEiBG+n5UJ9M0337gAkIJR3hh1LgroeDR7kFdKJSon89+nAmCdO3d2GTle76FNmza55+vVq+fbThlOCgx5FHjxly1bNt/Pur4K8GzevNllK4n6+3iUmaOx9ujRw9544w2XeaRz1Tn7jy2sVatWuffv559/du+rKMimjCcFtLxz1U20sqYyZcrkHj/88MPutcpcCo+Cdf7XFggUZSkqYF2mTJlQzyvTUL8/AAAA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V2bMmGFZs2a1xYsXW5kyZSxNmjR25MiRSM9Xr69WrZrbn15bs2ZN++WXX3zrFy1aZLfddpulTZvWihYtaiNGjHDj9Bw4cMBq167t1uuYK1ascOe/cOHCUNdD18mj66fndD0969evtzvvvNNdr4IFC7r3QA3IPQoavPDCC9alSxfLlCmTFSpUyN56661Q5/Lbb7/ZAw884N43nU+VKlVs8+bNUT4XxJ077rjDVq1a5RrMy86dO9173qxZs0APDQAAAACSZgBIf5n3DyokRSpTUQBBwYPx48fbyJEjXWAjOhQ0eu2111zmw6+//mrt2rVz/X3mzp1rX3zxhS1fvtymTJlyzXFTpkzpsiImT55sEydOtHfeece3XsGhb775xubNm+d6NClTq2nTpi4I41FQSeU2et3u3bstV65cEY5RwY9WrVpZnTp13P6070cffdTXk2XdunWuHLB37962Z88emzZtmgsyjRkzxq1XdpFmiEudOrW7Vm+++aY9++yzFl2HDh1y59GmTRs3jg8//NAFB3S+/iZMmOCCOpqR7oknnrDHH3/c9u3b59adPXvWncfvv//uAmAKMCiI52VAXe9cwqOA2+nTp0MtiJmBAwfa/fffb6VKlbJUqVK54GifPn2sQ4cOgR4aAAAAAASFZCH+KSRRoACCAgs5c+a0cuXKuZs1f8Her0MZQCqdUsDAowwZZfH06NHDbr75ZheAUMNmUWbLTTfdZF9//bV7rYJn9erVs5UrV1qDBg3cNuPGjbNBgwa5QIcyT0T7UgaMei55x1WWkII2XgBGN80KZihgoUwevVb/qoGup2HDhm58yo5RQEN9VZRhU6FCheue6/Hjxy179uxuzAqehKV96xw0do+a+Cqw8scff7gglkp6lDHkjUnno6yOBQsWuOCSdz1OnDjhMoxE41MA4Oeff3aZPd26dbMUKVK4oIxHASCNSVlAytjRdsoQmj17tluvj7Wys5TFo2upbCBlR+maKgMouucSURBP+w+rUu9BliJN2ute36Rqy4tDr3lOQcsBAwbYSy+95HoA6TOgAJCCnJ06dQrIOAEAAAAgoVMigqqETp065aqJYrUJ9AcffOBu7HXT7ZXvePRzsAeApHz58qEe582b1wVnYroPldOlT5/eF/zxngvb/+T2228Pdb1r1Kjhsl4UkNq1a5f7t0SJEtdkqSiI41E2TtjxR0SBEs3E1KRJE2vUqJELkihTSecryqLZsGFDqCwZjUGzxClQuHfvXleu5R+Q0pijS8dR5s+cOXN8zynAo+wdBYlUNif+56XrpACQ9754QaXwgj9RORe9P2EpWKRySP8vns4X0afgj5cFJAouK3A4duxYAkAAAAAAEAuiHQAaPHiwy3rQzVry5NGuIAsKYbOeFGxQMMK7Hv5JVZcuXbruPvT6iPYZVSpxUpbMtm3b3L/+MmbM6PtZPXSiM6329OnTXVBPmTsqvdK03Cp3UzBKx9RnQWVeYSlAGBVRuWY6zmOPPRZucFG9fjyRXUOdd2Rici7qoaQFN05BtrC/T/Q5pkk5AAAAAAQoAHTx4kVr3759kg3+REZlcaIZ0pRtIv4NoW+Uf8Ni2bRpkxUvXtzdKOt4ylhRxotKoWKT9q1FGS/K4FGfIgWA1DBZPXaKFSsW7uuUmaP+RroeXtaQxhzRNVOpXHjXTMdRmVtEx4kKZQep75HK2sLLArreuSButWjRwmVfKaCnEjCVUar8S029AQAAAAA3LtpRHJVjKBME11KWiQIj6umj8qc1a9a4jJnYov4+KjlSoEKleGoSrabFotIvNcxVI+NPP/3UlUaphEwlNGoqHRPah4I+av6schyV/qmhtFdyNXToUJs1a5bLnFFvIp2zerl456ySMY1LnxmVWKlvkjLI/CngorIp9dPRvjVWlbX5U+NoNctW02cFh7SdZuwK2wQ6Mpr9SyVh6jukUq+ffvrJ5s+f784tKueCuKXPshrMq3m3Pl/q16Ssr1GjRgV6aAAAAACQNDOAlGWima80jbmyKsKW3eiv9knZe++9Z127drXKlStbyZIl3bVq3LhxrOxbwZ1///3XNXVW1o+CP5qVy79ca/To0fb000+72a40VbwCUnfffXeMjqe+Nz/++KObfeyff/5xWTxPPvmkuzEX9Qb6/PPP3SxomllMnwXN4qSmzaIsMTV71vXQmNWo+dVXX3Uzenn0GgWzNGOXPk9Vq1Z156BG4x49r2CagkfKblK52C233OIy0aJKvY8UwNK1ad68uZvhTNPSv/7661E6F8StTJkyuVnwtAAAAAAAEsAsYJqxKcKdJUtmX331VWyMC0FMnxNvFrBg7L7OLGDRnwUMAAAAAJDAZgHTdOYAAAAAAABIPOjknMRphrCIFvXsAQAAAAAASbAETLZu3WofffSRa0qsWcH8qQExEo+DBw9GuC5//vzXnT4dMUu9AwAAAAAgQZeAaWYkNSNW01w11VWD4/3799tff/1l9957742MGwHAtOcAAAAAAAS/aJeAvfDCC/bKK6/YZ5995mZWmjx5spspql27dlaoUKG4GSUAAAAAAADiLwB06NAhu+uuu9zPCgCdO3fOzerUt29fe+utt2I+EgAAAAAAACSMANBNN91kZ86c8fWI+eGHH9zPJ0+etPPnz8f+CAEAAAAAAHBDot0DqHbt2rZixQorV66c3Xfffda7d2/76quv3HMNGjS4sdEAQaDWC2MtRZq0Fmy2jxgW6CEAAAAAAOIrAPTaa6/Zf//9534ePHiwpUqVyjZu3Ght2rSx559/PqbjAAAAAAAAQEIJAGXLls33c/LkyW3gwIGxPSYAAAAAAAAEsgcQAAAAAAAAgjQApGyfFClSRLqkTBnthCLAZ/jw4VaxYsUb3s+MGTMsa9assTImXN/vv/9uDz30kGXPnt3SpUvn+oNt3bo10MMCAAAAAPiJcsRmwYIFEa775ptv7NVXX7WrV69aUqfgQ58+fdysaAiM9u3bW/PmzQM9jCThxIkTVrNmTatXr54tWbLEcubMaQcOHHCzBQIAAAAAEmEAqGXLltc8t2/fPtcD6LPPPrMOHTrYyJEjY3t8CJCLFy9a6tSp42Tfly5dcs3D42rfykLRgrj34osvWsGCBW369Om+526++eaAjgkAAAAAEEs9gP744w/r3r27K/W4fPmy7dixw2bOnGmFCxe2xOCTTz5xY1eQQGUrDRs2tHPnzrl177zzjpUuXdrSpk1rpUqVsjfeeMP3usOHD1uyZMns008/dRkP6dOntwoVKrgMKFm9erU98sgjdurUKbedFpU1yYULF6x///6WP39+y5Ahg1WvXt1tH7ZsadmyZe74GTNmtKZNm9rRo0dDjf29996zsmXLWpo0aSxv3rzWs2dP3zplHXXr1s1lYWTOnNnq169vO3fujFb5lc5fN/A6/6juc+rUqXbLLbe4gFHJkiVt9uzZodbrOmibe+65x537mDFj3PPjxo2z3LlzW6ZMmaxr166+2eX8ReX9+PDDD61OnTpumzlz5lxTAuadm8ZVpEgRy5Ili91///125swZ3zb6WUFMjU/X9ZVXXrG6deu6bC5EbPHixValShW77777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dtttljZtWrfNiBEj7PLly76AzfDhw90+te98+fJZr169fK+dPXu2ValSxfWfyZMnjz344IN27Ngx3/rVq1e78qslS5ZY5cqV3T7Wr19/3XP67LPPXF8bjSlHjhx27733RlgCpv1PnTrVmjVrZunSpXPn8Mknn1yzz59++snq1avnrkWFChXsm2++CbVe47rzzjvdPgoWLOjO07+MSscdNWqUdezY0TJnzmyPPvqoJcTPQp8+faxmzZp26623Bno4AAAAAIAEjABQIjNo0CAbN26cC+7s2bPH5s6da7lz53brFJhRSZCenzx5sr399tv2yiuv+F67bt06F9Do3bu322batGluey+ANH/+fLe9nj9w4IAtXLjQypUr53u9gkkKiuzcudOtU7+dzp07XzPGgQMHujHu3bvXypcvH+n5fPHFFy7g07x5c9u+fbutWrXKqlWrFulrdO5t2rRx4+jQoYPdf//97lj+Bg8ebP3793e9gBQUe+CBB3yBrkOHDlnTpk3dPr7//nv78MMPXUCoZ8+eofbx8ssvu+CRxqVjhnXhwgU7ffp0qCU+qRfQDz/8YPPmzYvX4wIAAAAAEp9kIUr7QKJw5swZVxL12muvWbdu3a67vQIYCg5s3brVPW7YsKE1aNDABZE877//vj3zzDP2xx9/2MSJE13wR0GFVKlSXXf/2q8ydzSujBkzugwgZd0oONSyZcsondMdd9zhsng0jvAoE0dZLlq8DKAePXq4LCDP7bff7rKa3njjDReUuvnmm+2dd96xrl27uvUKdpUtW9YFiUqVKuWuXYoUKdy5ehQAqlOnjssCUiaSjlupUiVbsGBBhGNXtpQyqMJ64rPulibDjZWLTaz3WqTrFaxSNtfatWvd+QIAAAAAkh4lImTJksW1B1H1SmTIAEpEFMBQ1omCOOFRJovKgVSepYDM888/b0eOHPGtV8bMyJEj3Tpv6d69ux09etTOnz9v9913n/37778uIKPnFfzwsmZEjYZbtGjhSsSUbaSAifgfQ1QmFlXK0InofCJSo0aNax6HzQDyzzzKmzev+9crV9N1UOaT/3Vo0qSJK6n6+eefo3weCqTpS+Ytv/76q8U1xWsV/NF789VXXxH8AQAAAABECU2gExH1q4mIetyoHEoZKQpmKAKo7J8JEyb4tjl79qxb37p162ter6wX9cLZt2+frVy50k0x/sQTT9hLL73kph5XE2TtV8ucOXNcJpICP3qsdf6iM2tXZOd0I/wzmJQ1JArweNfhscceC9XfyKPgVlTPQz2OtMR32ZfK/pT9oyDcn3/+6Z7X+x1X1xIAAAAAkPgRAEpEihcv7m7y1ScnbAnYxo0brXDhwq73jeeXX34JtY3KpBTgUQPpiGj/yvLRomCDSqZ27drlMk/++ecf19tHgSLxSstuhDJ1dD6PPPJIlF+zadMm18vI/7HKtaJK10FlYZFdh4TKK32rW7duqOenT58ebj8mAAAAAACEAFAioiwdzfSlnj2aklzlXn///bft3r3bBYeUkaOsH/XlUXPlsP1rhg4danfffbfLcmnbtq0lT57clUOp58/o0aNdWZSmba9evbqbPUt9eRQQUmBJ2TM65pQpU1wPHr1GDaFv1LBhw1wJ2C233OKaOavk7Msvv3TnGZGPP/7YlWfVqlXLZSN9++239u6770b5mNq3+gaplEqBNGX6KCCkrCf1V0rIaNkFAAAAAIgJegAlMpqN6umnn3bBnNKlS1v79u1db5t77rnH+vbt64IaFStWdBlBYWeuUrnW559/bsuXL3dBIgVBNOuXAjySNWtWN3OYAkvKzFEpmKZoz549uyv5UoBIwZcyZcq4TCA1mb5RymTRPhcvXuzGXb9+fRfQiYzK2BTo0hhnzZplH3zwgRtTVOl1Kmvbv3+/mwpe2UO6npr2HgAAAACAYMQsYEhU1M9HmU2tWrWyhNp9PT5mAQMAAAAA4DSzgAEAAAAAAMBDAAhxqmzZsqGmW/df1L8HAAAAAADEPUrAEKc0E9mlS5fCXZc7d243lXlSTL0DAAAAACA+70OZBQxxymswDQAAAAAAAocSMAAAAAAAgCBHAAgAAAAAACDIEQACAAAAAAAIcvQAAmLZyxsftbQZUt/QPp67c1asjQcAAAAAADKAAAAAAAAAghwBIAAAAAAAgCBHAAhIRMaOHWtVq1a1TJkyWa5cuaxVq1a2b9++QA8LAAAAAJDAEQBCUOjcubMLhkTV6tWrLVmyZHby5ElLTNasWWNPPvmkbdq0yVasWGGXLl2yxo0b27lz5wI9NAAAAABAAkYTaCRJd9xxhx09etSyZMliicnSpUtDPZ4xY4bLBNq2bZvVrl07YOMCAAAAACRsBICQJKVOndry5Mljid2pU6fcv9myZQv0UAAAAAAACRglYAiIq1ev2vjx461YsWKWJk0aK1SokI0ZM8at27Vrl9WvX9/SpUtn2bNnt0cffdTOnj3re+2VK1esX79+ljVrVrf+mWeesZCQkGv2r345N998s9tPhQoV7JNPPom0BGz+/PlWtmxZN54iRYrYhAkTLCHTOfbp08dq1qxpt956a6CHAwAAAABIwAgAISAGDRpk48aNsyFDhtiePXts7ty5ljt3btfLpkmTJnbTTTfZli1b7OOPP7aVK1daz549fa9VYEalT++9956tX7/ejh8/bgsWLAi1fwV/Zs2aZW+++abt3r3b+vbtaw899JDroRMelVC1a9fO7r//fheAGj58uBubjhORCxcu2OnTp0Mt8Um9gH744QebN29evB4XAAAAAJD4JAsJmzoBxLEzZ85Yzpw57bXXXrNu3bqFWvf222/bs88+a7/++qtlyJDBPffll19aixYt7I8//nBBonz58rmAzoABA9z6y5cvu0yfypUr28KFC11gRiVRChzVqFHDt28d6/z58y7YpAygevXq2YkTJ1wmUYcOHezvv/+25cuX+7ZXZtEXX3zhAkjhUZBoxIgR1zw/ZEl7S5sh9Q1do+funBXpegXEFi1aZGvXrnXnDgAAAABIek6fPu1626o9SObMmSPdlgwgxLu9e/e6IE2DBg3CXadyLS/4IypxUrmTpjvXh1rNm6tXr+5bnzJlSqtSpYrv8cGDB12gp1GjRpYxY0bfooygQ4cORTgmHcefHh84cMCVnEWUxaTxeIuCVnFN8VoFf5Tx9NVXXxH8AQAAAABECU2gEe/Ukycuef2ClL2TP3/+UOvU3ye2aF+xub+oln0pg0nZP5kyZbI///zTPa+Ib1xfVwAAAABA4kUGEOJd8eLFXbBi1apV16wrXbq07dy50/UC8mzYsMGSJ09uJUuWdIGOvHnz2ubNm33rVQKmHj6eMmXKuMDMkSNHXJNp/6VgwYLhjknH1XH86XGJEiUsRYoUllBMnTrVZRvVrVvXXQdv+fDDDwM9NAAAAABAAkYGEOJd2rRpXZ8f9djRdOwqtVL/HfXaUS+eYcOGWadOnVyPHT3/1FNP2cMPP+z6/0jv3r1dA2kFkkqVKmUTJ04MNZuXMmP69+/v+gSpdKxWrVouaKKAjmoite+wnn76aatataqNGjXK2rdvb998843rUfTGG29YQkLLLgAAAABATBAAQkBohi317hk6dKhr7qwslh49elj69Olt2bJlLsijgIwet2nTxgV5/IM16gOkQI4yg7p06WL33nuvC/J4FMhRo2nNBvbTTz+5Rs+33XabPffcc+GOR+s++ugjNx69VuMZOXKkde7cOV6uBwAAAAAAcYlZwIBY7r4eH7OAAQAAAABwmlnAAAAAAAAA4CEABAAAAAAAEOToAQTEsv53vHXd1DsAAAAAAOITGUAAAAAAAABBjgAQAAAAAABAkCMABAAAAAAAEOQIAAEAAAAAAAQ5mkADsWzGt+0tXYZUN7SP7jUWx9p4AAAAAAAgAwgAAAAAACDIEQACAAAAAAAIcgSAAAAAAAAAghwBoCA3Y8YMy5o163W3S5YsmS1cuNDi0+rVq91xT548GWvnER2HDx92x9+xY4clFmPHjrWqVatapkyZLFeuXNaqVSvbt29foIcFAAAAAEjgCAAFufbt29v+/ft9j4cPH24VK1a8ZrujR49as2bNLCkpWLCgO+9bb73VEos1a9bYk08+aZs2bbIVK1bYpUuXrHHjxnbu3LlADw0AAAAAkIAxC1gcuXjxoqVOnTrQw7B06dK55Xry5MljSU2KFCkS3XkvXbr0mswoZQJt27bNateuHbBxAQAAAAASNjKAoqhu3brWs2dPt2TJksVy5MhhQ4YMsZCQELe+SJEiNmrUKOvYsaNlzpzZHn30Uff8/PnzrWzZspYmTRq3zYQJE0Lt13vdAw88YBkyZLD8+fPb66+/HmqbI0eOWMuWLS1jxoxu3+3atbO//vrLt37nzp1Wr149Vxak9ZUrV7atW7deUzqln0eMGOG2V+mTFj0XXgnYrl27rH79+i54lD17dnc+Z8+e9a3v3LmzKz96+eWXLW/evG4bZaYoI8Uze/Zsq1KlihuXAi0PPvigHTt2LNbek6lTp9ott9ziAm0lS5Z0x/P3448/Wq1atSxt2rRWpkwZW7lyZajzDK8EbPfu3Xb33Xe766hx33nnnXbo0CFLqE6dOuX+zZYtW6CHAgAAAABIwAgARcPMmTMtZcqU9u2339rkyZNt4sSJ9s477/jWKxhSoUIF2759uwsOKStDwZr777/fBVRUfqXnvaCL56WXXvK9buDAgda7d29X3iNXr151wZ/jx4+78h89/9NPP7nSLk+HDh2sQIECtmXLFndM7SNVqlTXjF+vefrpp11ASqVPWvz341E5UZMmTeymm25y+/z4449d8ETBL39ff/21C47oX10bnZf/uSkYpOCWAk4KuijgosBRbFiwYIG7TjqfH374wR577DF75JFH3FjkypUrLkCVPn1627x5s7311ls2ePDgSPf5+++/uywaBeu++uordy27dOlily9fDnf7Cxcu2OnTp0Mt8UmfjT59+ljNmjUTVRkbAAAAACD+UQIWzZ4xr7zyissaUcaJgjp63L17d7deGTMKSPgHZho0aOCCPlKiRAnbs2ePC/j4B0J0A6+gjbfNhg0b3H4bNWpkq1atcsf5+eef3fFl1qxZLoij4IwaAitDaMCAAVaqVCm3vnjx4uGOX9k8yiJSECuy0qe5c+faf//9546jrCR57bXXrEWLFvbiiy9a7ty53XMKEOl5lVLp2HfddZcbr3c9FDzxFC1a1F599VU3XmUSaRw3QsE2XcMnnnjCPe7Xr5/ri6PnlQ2lQJmCU2o07Z3rmDFj3DWNiDKvlN01b948XwBN70dkDZmVURUoyrhS8Gv9+vUBGwMAAAAAIHEgAygabr/9dhf88dSoUcMOHDjgsk1E5U7+9u7d64I7/vTY/zXefvzpsV7r7UOBHy/4IypnUlmXt42CH926dbOGDRvauHHjbrhkSftVRpIX/PHGrYwT/xmnFIRS8MejUjD/Ei9l0ChoVKhQIVdOVadOHfe8AlY3KqJr610TjVPXzD/QVa1atUj3qVIwlXyFlz0VnkGDBrkSLG/59ddfLb4oG+vzzz93GU/K/gIAAAAAIDIEgGKRf8AkPqm0TL1rlIGj0iUFiFQiFdfCBkoUHFOQyL+MTL105syZ47KVvDGpQXZCFJVm2f5UKqbz81/imnpOKfija6n3+uabb47zYwIAAAAAEj8CQNGgXjL+VHKkciv/LBh/pUuXduVc/vRYZUX+r9F+wu5Xr/X2ocwS/+wSlZGdPHnSBXo82mffvn1t+fLl1rp1a5s+fXq4Y1LDZP/so4jGrb49/lOLa9zJkyd3pW9RoQbM//zzj8tIUlaNSsRiswF0RNfWuyYap66Zf7NsBaEiU758eVu3bl2oRtYJjcq+3n//fVemp6yqP//80y3//vtvoIcGAAAAAEjACABFg0qXVG6l8qIPPvjApkyZ4hoRR0T9gNQTR42Q9+/f7xolq2dO//79rwlcjB8/3m2jPjRquuztV2Vd5cqVc/2EvvvuO9eAWjONqZxKJWe68VdGiHrd/PLLL25fCnR4AaSwNOuY+gmp3Ol///ufa2Qclo6lmbM6derkesyozOipp56yhx9+2Nf/53pU9qVgk66RmlYvXrzYXYfYop5HajitmcBUUqeG3J9++qnv2qrXj2YI0zl8//337ro8//zzbp1/GZ8/XUc1clbTbs2ipv1qZjH/srdA0/mq3Eyz0qnkzls+/PDDQA8NAAAAAJCAEQCKBgVeFHBRLxllYihI4033Hp7bbrvNPvroI9dUWLM0DR061EaOHHnNTFgKFCngUKlSJRs9erQLZqh8ygtWLFq0yDVc1gxVCgipobJ3w69MImXaaGzKAtKsY82aNYuwOXGbNm2sadOmrlFyzpw5XSArLM2ctWzZMjfzmJo2t23b1jWzVvAqqrRvBWgUzFJWjjKB1KA5tmiGL83Epn2qF9G0adNc1pMCI9510cxjajitc1CPJG8WMAW3wqOp7FVWpdcowFa5cmV7++23o9wTKD6oBCy8JbZmVwMAAAAABKdkIbp7xHUpsFCxYkWbNGlSrO5XGTmaylsL4paygGrVqmUHDx502UGxTdlDmkVs8oqmli7DjQWNutdYHGvjAgAAAAAEJ+8+VJUi1+tLyzTwCFpqlKzp5tWnSUEfZWxpprC4CP4AAAAAAJCQUQKGBEFlawrWhLe88MILMdrnmTNnXKmeGlCrREqlYCqnAwAAAAAgqaEEDAnC77//HuFMVtmyZXNLMKXeAQAAAABwoygBQ6KTP3/+QA8BAAAAAICgRQkYAAAAAABAkCMABAAAAAAAEOQIAAEAAAAAAAQ5egABseyLrU0sfYaIv1otq6+L1/EAAAAAAEAGEAAAAAAAQJAjAAQAAAAAABDkCAABAAAAAAAEOQJAcaxu3brWp0+fQA8jSTl8+LAlS5bMduzYYYnJ2rVrrUWLFpYvXz43/oULFwZ6SAAAAACAIEEACEGnYMGCdvToUbv11lstMTl37pxVqFDBXn/99UAPBQAAAAAQZJgFDInOpUuXLFWqVBGuT5EiheXJk8cSm2bNmrkFAAAAAIDYRgZQPLh8+bL17NnTsmTJYjly5LAhQ4ZYSEiIWzd79myrUqWKZcqUyQUtHnzwQTt27JjvtSdOnLAOHTpYzpw5LV26dFa8eHGbPn26b/2vv/5q7dq1s6xZs1q2bNmsZcuWrgQqqt577z0rW7aspUmTxvLmzevG6Tly5IjbX8aMGS1z5szuOH/99Zdv/fDhw61ixYruHIoUKeLO7/7777czZ8649W+99ZYrZ7p69WqoY2qfXbp08T1etGiR3XbbbZY2bVorWrSojRgxwl0zj8qhpk6davfcc49lyJDBxowZE+l1Ca8EbM2aNVatWjXfeQ4cODDUMVSq16tXL3vmmWfcddR7ofMDAAAAACAYEACKBzNnzrSUKVPat99+a5MnT7aJEyfaO++848tmGTVqlO3cudP1fFHwonPnzr7XKli0Z88eW7Jkie3du9cFQhRE8l7bpEkTFzxat26dbdiwwQVrmjZtahcvXrzuuLSvJ5980h599FHbtWuXLV682IoVK+bWKWijQM3x48dd8GTFihX2008/Wfv27UPt49ChQ27cn3/+uVu07bhx49y6++67z/755x/7+uuvfdtrf0uXLnXBG9G4O3bsaL1793bnOW3aNJsxY4YL8vhTMObee+9141TwKLLrEtbvv/9uzZs3t6pVq7rrrG3fffddGz169DXvkwJMmzdvtvHjx9vIkSPdeUfkwoULdvr06VALAAAAAAAJUgjiVJ06dUJKly4dcvXqVd9zzz77rHsuPFu2bFFqUMiZM2fc4xYtWoQ88sgj4W47e/bskJIlS4ba94ULF0LSpUsXsmzZsuuOLV++fCGDBw8Od93y5ctDUqRIEXLkyBHfc7t373Zj+/bbb93jYcOGhaRPnz7k9OnTvm0GDBgQUr16dd/jli1bhnTp0sX3eNq0ae64V65ccY8bNGgQ8sILL1xzXnnz5vU91jH79OkTapvIrsvPP//sXrN9+3b3+LnnnrvmOr3++ushGTNm9I1D71OtWrVC7adq1aruvYqIzl/HCbvMXXV7yMJNtSJcokL7WbBgQZS2BQAAAAAkTadOnXL3j/r3esgAige33367K0ny1KhRww4cOGBXrlyxbdu2uZmfChUq5DJ56tSp4yu/kscff9zmzZvnSq1UnrRx40bffpTNcvDgQfc6Zf5oUfnSf//95zJzIqMysz/++MMaNGgQ7npl1aiZshZPmTJlXKmZ1nlU+qXje1Re5V/Cpkyf+fPnu2wZmTNnjisTS548ue8clGnjjV9L9+7dXRPn8+fP+/ajMjl/kV2X8M5F19z/PahZs6adPXvWfvvtN99z5cuXD/W6sOcS1qBBg+zUqVO+ReV4AAAAAAAkRDSBDiAFalTCpUWBEfWzUeBHj70SLjUF/uWXX+zLL7905UgK2Khs6+WXX3YBjMqVK7vXhqV9RUZ9c2JD2GbMCrL49/xRcEsJLV988YUrwVLJ1yuvvOJbr3NQz5/WrVtfs2/1BPKoNMtfZNclrs4lLPUT0gIAAAAAQEJHACgeqKeMv02bNrmmxT/++KPrkaOeOV6mzdatW8MN5nTq1Mktd955pw0YMMAFOtQ4+cMPP7RcuXK5Js3RoawdZe+sWrXK6tWrd8360qVLu4wWLd7Y1HPn5MmTLhMoqhTEUXBHQar/1959AEdVdg0cP6GXEAggvYnSpASkCwJSBARGBEGQDoJKF3REaYooHREEUWcUcaSIAkoT+KiCIKEjJaKGMghkpAWChbLfnPPO7mxCyqaQZG/+v5l1d+/e3fvc5RF2z55zHs1WqlChgo3bTW+HhYV5eg8lRlzvS2znollIGohyZwFpvyR9D0qUKCHphQbD9D1yCw8Pt0bWmtWlGWIAAAAAACQVJWCpQLN6RowYYYGOxYsXy5w5c6zpsX6pz5Ytm93XBsvahFkbQnsbN26crZKlgYGjR49ao2UNaLjLq7TxsTZr1swaDRhs3brVVrPyLm2KizZWnjFjhsyePdtK0vbv329jUc2bN5eqVavaMXS7NrDWZs1aohazHCsh+hqaAaQrjrmbP3uf38KFCy0LSM9Py7W0tGvMmDHxvmZ870tMAwcOtEDWkCFDLOimzxs/frz9mbhL0dIDDf7VqFHDLkrHp7f1XAEAAAAASI708+3XwTRw8vfff9sy5FqmpMEfXXlLM1h0xatly5ZZVo1mAsXMYNEAkfaa0f40jRo1ksyZM1uAROXKlUu2b99ugSTNstEASL9+/ay0zJeMIM2cmTVrlsybN8+Wgm/btq0FgpRmymigJDg42I6rASFdol0zjhKradOmlsWiATBd5t6blrtp8GbDhg1WIqb9krRErHTp0vG+ZnzvS0zFixe3UjENYoWEhMhLL71k71NCQabUpkvRa5ZSzIvOEQAAAAAAkiNAO0En6xUAGF0GPm/evLJoUz3JlTvu6sqn6/6YquMCAAAAADj7e6guTJRQIggZQAAAAAAAAA5HAMjBvJdWj3nRnkEAAAAAACBjYBUwB9MVpOKifXFwf7SptT7Rq7IBAAAAAHA/EQBysKQsrQ4AAAAAAJyHEjAAAAAAAACHIwAEAAAAAADgcASAAAAAAAAAHI4eQEAKC93XSHIHZo7z8Xq196XqeAAAAAAAIAMIAAAAAADA4QgAAQAAAAAAOBwBIAAAAAAAAIcjAIRYbd26VQICAuTq1atx7rNgwQLJly+f5/5bb70l1atXl/SoTJkyMmvWLEnPtm/fLu3atZNixYrZe79y5cq0HhIAAAAAwCEIACHJnnvuOfn111/TehiOERUVJSEhITJ37ty0HgoAAAAAwGFYBSwD+u+//yRbtmzJfp2cOXPaBSmjdevWdgEAAAAAIKWRAZQBNGnSRAYPHizDhw+XggULSsuWLa3E6ODBg559tNRLt2npl7edO3dKtWrVJEeOHFKvXj355Zdf4iwBi+n333+XsmXL2rFdLpecPn3aSpyCg4Mld+7cUrlyZVm7dq1P53D06FFp27atBAUFSZ48eeTxxx+313efn56bt/bt20vv3r2jbbt+/bp07drVjl28ePF7Mm30PXjhhRfkgQcesOM0bdpUDh065NP4AAAAAABIzwgAZRBffPGFZf1oQGf+/Pk+P++1116TGTNmSGhoqAVGNIBz69atBJ93+PBhadiwoTz//PPy4YcfWnBp0KBB8u+//1qvmyNHjsiUKVMkMDAwwdc6d+6cNGrUSLJnzy6bN2+Wffv2Sd++feX27duSGNOmTbMSqwMHDsioUaNk2LBhsnHjRs/jnTp1koiICFm3bp0d49FHH5VmzZrJ5cuXY309PZfIyMhoFwAAAAAA0iNKwDKIcuXKydSpU+32qVOnfH7e+PHjpUWLFp4gUokSJWTFihXSuXPnOJ/z008/WbbO6NGjZeTIkZ7tZ86ckY4dO0rVqlXtvmYH+UIzdfLmzStLliyRrFmz2rby5ctLYjVo0MACP+7nazDs/ffft/PbsWOH7NmzxwJAGmhS06dPt0bM33zzjQwYMOCe15s0aZK8/fbbiR4HAAAAAACpjQygDKJmzZpJel79+vU9t/Pnzy8VKlSQ48ePx7m/Bnk0oDJu3LhowR81dOhQmThxogViNLCkWUK+0FI1LflyB3+Syvtc3Pfd56KlXjdu3JACBQpYVpL7Eh4e7ik1i+mNN96Qa9eueS5nz55N1vgAAAAAALhfyADKILTvjVumTP+L+2lfHjdfyrp8oWViuoz54sWLrUxLe+m4aX8d7T+0Zs0a2bBhg2XQaHnZkCFD4n3NhBpN6/l4n0tSzkeDP0WLFr2nB5KKq8+RZgq5s4UAAAAAAEjPyADKgDRIo86fP+/Z5t0Q2tvu3bs9t69cuWLLvleqVCneYM3q1autabQGe7TxsreSJUvKSy+9JMuXL7cMoU8//TTB8WoT6h9//DHOoI6ej/e53LlzJ1qz6tjOxX3ffS7a7+fChQuSJUsWefjhh6NdtHF2atAglP45uP8sNPtIb2tWFQAAAAAAyUEAKAPSII2u6DV58mQrgdq2bZuMGTMm1n0nTJggmzZtsoCKrqqlwRBdYSuhbCPN8tFgii5rroENpSt1rV+/3gIb+/fvly1btsQbTHLTVcS0wXKXLl1k7969cvLkSfnyyy8lLCzMHtfVuvR4ejlx4oS8/PLLtqJXTNrzR/sgaRBL+wotW7bMGkGr5s2bW0mYnptmJ2mfJO1lpH2M9JipQY9To0YNu6gRI0bYbS2nAwAAAAAgOQgAZVCfffaZraKlvYE0MKO9eWKjQSINkuh+miGzatUqW00sIdo/R1fT0tKsNm3aSFRUlGXm6EpgGvRp1aqVNWKeN29egq+lfXl09S8NJDVu3NjGoplD7p5AWmrWq1cv6dmzpz2uzaWfeOKJe15HM47cQRY935kzZ1qWktJVynRJel1trE+fPjY2DTjp0vWFCxeW1KDL2ev7FfOyYMGCVDk+AAAAAMC5Alwxm6cASBLNUtLVyv5vc4jkDswc5371au9L1XEBAAAAAJz9PVQXJvLuwRsbMoAAAAAAAAAcjgAQ0pw2hfZeet37oo8BAAAAAIDkoQQMaS4iIsLS1mKjKWyFChUSp6XeAQAAAACQmt9DsyT7aEAyaYDHX4I8AAAAAAD4IwJAQApxJ9PFlc0EAAAAAEBKcn//9KW4iwAQkEIuXbpk1yVLlkzroQAAAAAAMpDr169bKVh8CAABKSR//vx2febMmQT/xwP85dcEDWiePXuWvlZwBOY0nIY5DSdhPsNpIlNpTmvmjwZ/ihUrluC+BICAFJIp0/8W1dPgD/9owUl0PjOn4STMaTgNcxpOwnyG0wSlwpz2NQGBZeABAAAAAAAcjgAQAAAAAACAwxEAAlJI9uzZZfz48XYNOAFzGk7DnIbTMKfhJMxnOE32dDinA1y+rBUGAAAAAAAAv0UGEAAAAAAAgMMRAAIAAAAAAHA4AkAAAAAAAAAORwAIAAAAAADA4QgAASlk7ty5UqZMGcmRI4fUrVtX9uzZk9ZDAhI0adIkqV27tuTJk0cKFSok7du3l7CwsGj7/PPPPzJo0CApUKCABAYGSseOHeXixYtpNmYgMSZPniwBAQEyfPhwzzbmNPzNuXPnpHv37jZnc+bMKVWrVpW9e/d6Htc1XcaNGydFixa1x5s3by4nT55M0zEDsblz546MHTtWHnzwQZurDz30kLzzzjs2h92Yz0jPtm/fLu3atZNixYrZ54uVK1dGe9yX+Xv58mXp1q2bBAUFSb58+aRfv35y48aNVBk/ASAgBSxdulRGjBhhy/zt379fQkJCpGXLlhIREZHWQwPitW3bNvsivHv3btm4caPcunVLnnzySYmKivLs88orr8iqVatk2bJltv+ff/4pHTp0SNNxA74IDQ2Vjz/+WKpVqxZtO3Ma/uTKlSvSoEEDyZo1q6xbt06OHTsmM2bMkODgYM8+U6dOldmzZ8v8+fPl559/lty5c9vnEA12AunJlClT5KOPPpIPP/xQjh8/bvd1/s6ZM8ezD/MZ6VlUVJR919Mf/2Pjy/zV4M/Ro0fts/fq1astqDRgwIDUOQFdBh5A8tSpU8c1aNAgz/07d+64ihUr5po0aVKajgtIrIiICP0JzrVt2za7f/XqVVfWrFldy5Yt8+xz/Phx22fXrl1pOFIgftevX3eVK1fOtXHjRlfjxo1dw4YNs+3Mafib119/3dWwYcM4H797966rSJEirmnTpnm26TzPnj27a/Hixak0SsA3bdq0cfXt2zfatg4dOri6detmt5nP8Cci4lqxYoXnvi/z99ixY/a80NBQzz7r1q1zBQQEuM6dO3ffx0wGEJBM//33n+zbt8/S+9wyZcpk93ft2pWmYwMS69q1a3adP39+u9a5rVlB3vO7YsWKUqpUKeY30jXNbGvTpk20uauY0/A333//vdSqVUs6depkpbo1atSQTz/91PN4eHi4XLhwIdqczps3r5WjM6eR3jz22GOyadMm+fXXX+3+oUOHZMeOHdK6dWu7z3yGPwv3Yf7qtZZ96d/rbrq/fn/UjKH7Lct9PwLgcH/99ZfVMxcuXDjadr1/4sSJNBsXkFh37961PilaalClShXbpv+IZcuWzf6hijm/9TEgPVqyZImV42oJWEzMafibP/74w0pmtNT8zTfftHk9dOhQm8e9evXyzNvYPocwp5HejBo1SiIjIy3wnjlzZvsM/e6771pJjGI+w59d8GH+6rUG871lyZLFfnxNjTlOAAgA4MmY+OWXX+yXOMBfnT17VoYNG2Z19dqUH3BCcF5/KX7vvffsvmYA6d/V2l9CA0CAP/n666/lq6++kkWLFknlypXl4MGD9uOTNtRlPgP3HyVgQDIVLFjQfsGIuYKM3i9SpEiajQtIjMGDB1sTui1btkiJEiU823UOa5nj1atXo+3P/EZ6pSVe2oD/0UcftV/U9KKNnrUho97WX+GY0/AnupLMI488Em1bpUqV5MyZM3bbPW/5HAJ/8Nprr1kWUJcuXWw1ux49elhjfl2VVDGf4c+K+DB/9TrmQkG3b9+2lcFSY44TAAKSSVOwa9asafXM3r/W6f369eun6diAhGj/Og3+rFixQjZv3mzLsnrTua0rz3jPb10mXr94ML+RHjVr1kyOHDlivyq7L5o9oeUF7tvMafgTLcvVOepN+6eULl3abuvf2/qlwXtOa4mN9pJgTiO9uXnzpvU68aY/pOpnZ8V8hj970If5q9f6I5T+YOWmn8H1/wHtFXS/UQIGpACty9e0Vf1iUadOHZk1a5YtEdinT5+0HhqQYNmXpmF/9913kidPHk/tsTasy5kzp13369fP5rjWJgcFBcmQIUPsH6969eql9fCBe+g8dvewctMlWAsUKODZzpyGP9HsCG2cqyVgnTt3lj179sgnn3xiFxUQEGAlNBMnTpRy5crZF5CxY8daSU379u3TevhANO3atbOeP9p4X0vADhw4IDNnzpS+ffva48xnpHc3btyQ3377LVrjZ/2BST9T6LxOaP5qBmerVq2kf//+VsqrC1Poj7GaFaf73Xf3fZ0xIIOYM2eOq1SpUq5s2bLZsvC7d+9O6yEBCdJ/BmK7fP755559/v77b9fAgQNdwcHBrly5crmeeeYZ1/nz59N03EBieC8Dr5jT8DerVq1yValSxZYSrlixouuTTz6J9rguPTx27FhX4cKFbZ9mzZq5wsLC0my8QFwiIyPt72P9zJwjRw5X2bJlXaNHj3b9+++/nn2Yz0jPtmzZEutn5169evk8fy9duuTq2rWrKzAw0BUUFOTq06eP6/r166ky/gD9z/0PMwEAAAAAACCt0AMIAAAAAADA4QgAAQAAAAAAOBwBIAAAAAAAAIcjAAQAAAAAAOBwBIAAAAAAAAAcjgAQAAAAAACAwxEAAgAAAAAAcDgCQAAAAAAAAA5HAAgAAAAp5q233pLq1at77vfu3Vvat2/vud+kSRMZPny4T6+VmH0BAED8siTwOAAAADKQCxcuyLvvvitr1qyRc+fOSaFChSygo4GYZs2aJfv1ly9fLlmzZk3xfQEAQPwIAAEAAMCcOnVKGjRoIPny5ZNp06ZJ1apV5datW7J+/XoZNGiQnDhxItnHyJ8//33ZFwAAxI8SMAAAAJiBAwdKQECA7NmzRzp27Cjly5eXypUry4gRI2T37t22z5kzZ+Tpp5+WwMBACQoKks6dO8vFixd9PkbMsq558+ZJuXLlJEeOHFK4cGF59tln49z3ypUr0rNnTwkODpZcuXJJ69at5eTJk57HFyxYYMErDVhVqlTJxtiqVSs5f/68Z5+tW7dKnTp1JHfu3LavBrxOnz6drPcNAAB/QAAIAAAAcvnyZfnhhx8s00eDIzFpsOTu3bsW/NF9t23bJhs3bpQ//vhDnnvuuSQdc+/evTJ06FCZMGGChIWF2fEbNWoU5/7aT0if8/3338uuXbvE5XLJU089ZVlKbjdv3pTp06fLl19+Kdu3b7eA1auvvmqP3b592/oRNW7cWA4fPmyvMWDAAAt6AQDgdJSAAQAAQH777TcLqFSsWDHOfTZt2iRHjhyR8PBwKVmypG1buHChZQmFhoZK7dq1E3VMDc5osKlt27aSJ08eKV26tNSoUSPWfTXTRwM/O3fulMcee8y2ffXVVzaOlStXSqdOnWybBoPmz58vDz30kN0fPHiwBZhUZGSkXLt2zY7nflwzhQAAyAjIAAIAAIAFfxJy/PhxC7i4gz/qkUcesewgfSyxWrRoYUGfsmXLSo8ePSygoxk8cR07S5YsUrduXc+2AgUKSIUKFaIdW0vD3MEdVbRoUYmIiPD0FNIsopYtW0q7du3kgw8+iFYeBgCAkxEAAgAAgPXh0VKolGj07CvN+tm/f78sXrzYAjXjxo2TkJAQuXr1apJfM+aqYXpO3sGtzz//3Eq/NIto6dKl1ufI3d8IAAAnIwAEAAAAy47RzJi5c+dKVFTUPY9rUEbLpc6ePWsXt2PHjtljmgmUFJrV07x5c5k6dar15dGVyDZv3nzPfnps7eHz888/e7ZdunTJegcl9thaZvbGG2/ITz/9JFWqVJFFixYlaewAAPgTAkAAAAAwGvy5c+eOrZL17bffWt8dLa+aPXu21K9f3wI1ujR8t27dLHNHVwvTVbm0qXKtWrUSfbzVq1fbax88eNBW4tJ+QtpoWsu6YstQ0gbU/fv3lx07dsihQ4eke/fuUrx4cdvuC+1dpIEfzQDS423YsMHOkT5AAICMgAAQAAAAjPbi0cDOE088ISNHjrTsGO3To82fP/roIyun+u6772wZdl2tSwNC+hwtpUoK7R20fPlyadq0qQVhtHmzloNpU+nYaPlWzZo1rYmzBqS0tGvt2rX3lH3FRfsDaYmbe4l7XQFMVz178cUXkzR+AAD8SYDLl45/AAAAAAAA8FtkAAEAAAAAADgcASAAAAAAAACHIwAEAAAAAADgcASAAAAAAAAAHI4AEAAAAAAAgMMRAAIAAAAAAHA4AkAAAAAAAAAORwAIAAAAAADA4QgAAQAAAAAAOBwBIAAAAAAAAIcjAAQAAAAAACDO9v/mvF+D0HMz1gAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Sort values for better visualization\n",
"df_non_zero_collision = df_non_zero_collision.sort_values(by=\"collisions\", ascending=False)\n",
"\n",
"# Plot\n",
"plt.figure(figsize=(12, 6))\n",
"ax = sns.barplot(\n",
" y=\"name\", \n",
" x=\"collisions\", \n",
" hue=\"name\", # Assign hue to the y-variable\n",
" data=df_non_zero_collision, \n",
" palette=\"viridis\", \n",
" legend=False # Hide legend since hue is just for color mapping\n",
")\n",
"\n",
"# Annotate bars with their values\n",
"for index, value in enumerate(df_non_zero_collision[\"collisions\"]):\n",
" ax.text(value + 0.5, index, str(value), va='center', fontsize=10, color='black')\n",
"\n",
"# Labels and title\n",
"plt.xlabel(\"Collisions\")\n",
"plt.ylabel(\"Dataset Name\")\n",
"plt.title(\"Number of Collisions Per Reasoning-gym dataset\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f3d1b1f6-bcf6-4f70-9168-33b3179ae171",
"metadata": {},
"outputs": [],
"source": [
"# Dataset not yet done, \n",
"# futoshiki\n",
"# knight_swap\n",
"# mahjong_puzzle\n",
"# maze\n",
"# mini_sudoku\n",
"# n_queens\n",
"# puzzle24\n",
"# rush_hour\n",
"# sokoban\n",
"# sudoku\n",
"# tower_of_hanoi\n",
"# tsumego\n",
"# zebra_puzzles"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b3c11508-0a4a-4578-82f5-3908c5a45604",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "51263e94-0867-4b2a-b205-ebafb316f811",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}