Spaces:
Runtime error
Runtime error
abtsousa
commited on
Commit
·
335359d
1
Parent(s):
8ce1b44
Explore available questions and their metadata to figure out how to best tackle the problem.
Browse files- data/explore_questions_simple.ipynb +928 -0
- data/metadata.jsonl +0 -0
data/explore_questions_simple.ipynb
ADDED
|
@@ -0,0 +1,928 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"id": "a92447b2",
|
| 6 |
+
"metadata": {},
|
| 7 |
+
"source": [
|
| 8 |
+
"# Question Explorer\n",
|
| 9 |
+
"\n",
|
| 10 |
+
"Load all questions, match with metadata, and create clickable file links."
|
| 11 |
+
]
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"cell_type": "code",
|
| 15 |
+
"execution_count": 7,
|
| 16 |
+
"id": "28d8a8d0",
|
| 17 |
+
"metadata": {},
|
| 18 |
+
"outputs": [
|
| 19 |
+
{
|
| 20 |
+
"name": "stdout",
|
| 21 |
+
"output_type": "stream",
|
| 22 |
+
"text": [
|
| 23 |
+
"Setup complete!\n"
|
| 24 |
+
]
|
| 25 |
+
}
|
| 26 |
+
],
|
| 27 |
+
"source": [
|
| 28 |
+
"import requests\n",
|
| 29 |
+
"import pandas as pd\n",
|
| 30 |
+
"import json\n",
|
| 31 |
+
"from IPython.display import HTML\n",
|
| 32 |
+
"pd.set_option('display.max_columns', None)\n",
|
| 33 |
+
"pd.set_option('display.max_colwidth', None)\n",
|
| 34 |
+
"\n",
|
| 35 |
+
"API_BASE_URL = \"https://agents-course-unit4-scoring.hf.space\"\n",
|
| 36 |
+
"METADATA_FILE = \"data/metadata.jsonl\"\n",
|
| 37 |
+
"print(\"Setup complete!\")"
|
| 38 |
+
]
|
| 39 |
+
},
|
| 40 |
+
{
|
| 41 |
+
"cell_type": "code",
|
| 42 |
+
"execution_count": 8,
|
| 43 |
+
"id": "70b5a858",
|
| 44 |
+
"metadata": {},
|
| 45 |
+
"outputs": [
|
| 46 |
+
{
|
| 47 |
+
"name": "stdout",
|
| 48 |
+
"output_type": "stream",
|
| 49 |
+
"text": [
|
| 50 |
+
"Loaded 165 metadata entries\n"
|
| 51 |
+
]
|
| 52 |
+
},
|
| 53 |
+
{
|
| 54 |
+
"data": {
|
| 55 |
+
"text/html": [
|
| 56 |
+
"<div>\n",
|
| 57 |
+
"<style scoped>\n",
|
| 58 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 59 |
+
" vertical-align: middle;\n",
|
| 60 |
+
" }\n",
|
| 61 |
+
"\n",
|
| 62 |
+
" .dataframe tbody tr th {\n",
|
| 63 |
+
" vertical-align: top;\n",
|
| 64 |
+
" }\n",
|
| 65 |
+
"\n",
|
| 66 |
+
" .dataframe thead th {\n",
|
| 67 |
+
" text-align: right;\n",
|
| 68 |
+
" }\n",
|
| 69 |
+
"</style>\n",
|
| 70 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 71 |
+
" <thead>\n",
|
| 72 |
+
" <tr style=\"text-align: right;\">\n",
|
| 73 |
+
" <th></th>\n",
|
| 74 |
+
" <th>task_id</th>\n",
|
| 75 |
+
" <th>Question</th>\n",
|
| 76 |
+
" <th>Level</th>\n",
|
| 77 |
+
" <th>Final answer</th>\n",
|
| 78 |
+
" <th>file_name</th>\n",
|
| 79 |
+
" <th>Annotator Metadata</th>\n",
|
| 80 |
+
" </tr>\n",
|
| 81 |
+
" </thead>\n",
|
| 82 |
+
" <tbody>\n",
|
| 83 |
+
" <tr>\n",
|
| 84 |
+
" <th>0</th>\n",
|
| 85 |
+
" <td>c61d22de-5f6c-4958-a7f6-5e9707bd3466</td>\n",
|
| 86 |
+
" <td>A paper about AI regulation that was originally submitted to arXiv.org in June 2022 shows a figure with three axes, where each axis has a label word at both ends. Which of these words is used to describe a type of society in a Physics and Society article submitted to arXiv.org on August 11, 2016?</td>\n",
|
| 87 |
+
" <td>2</td>\n",
|
| 88 |
+
" <td>egalitarian</td>\n",
|
| 89 |
+
" <td></td>\n",
|
| 90 |
+
" <td>{'Steps': '1. Go to arxiv.org and navigate to the Advanced Search page.\n",
|
| 91 |
+
"2. Enter \"AI regulation\" in the search box and select \"All fields\" from the dropdown.\n",
|
| 92 |
+
"3. Enter 2022-06-01 and 2022-07-01 into the date inputs, select \"Submission date (original)\", and submit the search.\n",
|
| 93 |
+
"4. Go through the search results to find the article that has a figure with three axes and labels on each end of the axes, titled \"Fairness in Agreement With European Values: An Interdisciplinary Perspective on AI Regulation\".\n",
|
| 94 |
+
"5. Note the six words used as labels: deontological, egalitarian, localized, standardized, utilitarian, and consequential.\n",
|
| 95 |
+
"6. Go back to arxiv.org\n",
|
| 96 |
+
"7. Find \"Physics and Society\" and go to the page for the \"Physics and Society\" category.\n",
|
| 97 |
+
"8. Note that the tag for this category is \"physics.soc-ph\".\n",
|
| 98 |
+
"9. Go to the Advanced Search page.\n",
|
| 99 |
+
"10. Enter \"physics.soc-ph\" in the search box and select \"All fields\" from the dropdown.\n",
|
| 100 |
+
"11. Enter 2016-08-11 and 2016-08-12 into the date inputs, select \"Submission date (original)\", and submit the search.\n",
|
| 101 |
+
"12. Search for instances of the six words in the results to find the paper titled \"Phase transition from egalitarian to hierarchical societies driven by competition between cognitive and social constraints\", indicating that \"egalitarian\" is the correct answer.', 'Number of steps': '12', 'How long did this take?': '8 minutes', 'Tools': '1. Web browser\n",
|
| 102 |
+
"2. Image recognition tools (to identify and parse a figure with three axes)', 'Number of tools': '2'}</td>\n",
|
| 103 |
+
" </tr>\n",
|
| 104 |
+
" <tr>\n",
|
| 105 |
+
" <th>1</th>\n",
|
| 106 |
+
" <td>17b5a6a3-bc87-42e8-b0fb-6ab0781ef2cc</td>\n",
|
| 107 |
+
" <td>I’m researching species that became invasive after people who kept them as pets released them. There’s a certain species of fish that was popularized as a pet by being the main character of the movie Finding Nemo. According to the USGS, where was this fish found as a nonnative species, before the year 2020? I need the answer formatted as the five-digit zip codes of the places the species was found, separated by commas if there is more than one place.</td>\n",
|
| 108 |
+
" <td>2</td>\n",
|
| 109 |
+
" <td>34689</td>\n",
|
| 110 |
+
" <td></td>\n",
|
| 111 |
+
" <td>{'Steps': '1. Search the web for “finding nemo main character”.\n",
|
| 112 |
+
"2. Note the results, which state that the main character is a clownfish.\n",
|
| 113 |
+
"3. Search the web for “usgs nonnative species database”.\n",
|
| 114 |
+
"4. Click result for the Nonindigenous Aquatic Species site.\n",
|
| 115 |
+
"5. Click “Marine Fishes”.\n",
|
| 116 |
+
"6. Click “Species List of Nonindigenous Marine Fish”.\n",
|
| 117 |
+
"7. Scroll through the list until I find the clown anenomefish, and click “Collection info”.\n",
|
| 118 |
+
"8. Note the place that a clown anenomefish was found, in Fred Howard Park at the Gulf of Mexico.\n",
|
| 119 |
+
"9. Search the web for “fred howard park florida zip code”.\n",
|
| 120 |
+
"10. Note the zip code, 34689. Since only one clownfish was found before the year 2020, this is the answer.', 'Number of steps': '10', 'How long did this take?': '5 minutes', 'Tools': '1. Search engine\n",
|
| 121 |
+
"2. Web browser', 'Number of tools': '2'}</td>\n",
|
| 122 |
+
" </tr>\n",
|
| 123 |
+
" <tr>\n",
|
| 124 |
+
" <th>2</th>\n",
|
| 125 |
+
" <td>04a04a9b-226c-43fd-b319-d5e89743676f</td>\n",
|
| 126 |
+
" <td>If we assume all articles published by Nature in 2020 (articles, only, not book reviews/columns, etc) relied on statistical significance to justify their findings and they on average came to a p-value of 0.04, how many papers would be incorrect as to their claims of statistical significance? Round the value up to the next integer.</td>\n",
|
| 127 |
+
" <td>2</td>\n",
|
| 128 |
+
" <td>41</td>\n",
|
| 129 |
+
" <td></td>\n",
|
| 130 |
+
" <td>{'Steps': '1. Find how many articles were published in Nature in 2020 by Googling \"articles submitted to nature 2020\"\n",
|
| 131 |
+
"2. Click through to Nature's archive for 2020 and filter the results to only provide articles, not other types of publications: 1002\n",
|
| 132 |
+
"3. Find 4% of 1002 and round up: 40.08 > 41', 'Number of steps': '3', 'How long did this take?': '5 minutes', 'Tools': '1. search engine\n",
|
| 133 |
+
"2. calculator', 'Number of tools': '2'}</td>\n",
|
| 134 |
+
" </tr>\n",
|
| 135 |
+
" <tr>\n",
|
| 136 |
+
" <th>3</th>\n",
|
| 137 |
+
" <td>14569e28-c88c-43e4-8c32-097d35b9a67d</td>\n",
|
| 138 |
+
" <td>In Unlambda, what exact charcter or text needs to be added to correct the following code to output \"For penguins\"? If what is needed is a character, answer with the name of the character. If there are different names for the character, use the shortest. The text location is not needed. Code:\\n\\n`r```````````.F.o.r. .p.e.n.g.u.i.n.si</td>\n",
|
| 139 |
+
" <td>2</td>\n",
|
| 140 |
+
" <td>backtick</td>\n",
|
| 141 |
+
" <td></td>\n",
|
| 142 |
+
" <td>{'Steps': '1. Searched \"Unlambda syntax\" online (optional).\n",
|
| 143 |
+
"2. Opened https://en.wikipedia.org/wiki/Unlambda.\n",
|
| 144 |
+
"3. Note that the hello world program is very similar in syntax to the code in this question.\n",
|
| 145 |
+
"4. Go to the source referenced by the hello world program.\n",
|
| 146 |
+
"5. From the referenced source, read what the components of the program do to understand that each period needs a backtick after the initial `r.\n",
|
| 147 |
+
"6. Observe that in the given code, there are 12 periods but only 11 backticks after the initial `r, so the missing character is a backtick.', 'Number of steps': '6', 'How long did this take?': '15 minutes', 'Tools': '1. Web browser\n",
|
| 148 |
+
"2. Search engine\n",
|
| 149 |
+
"3. Unlambda compiler (optional)', 'Number of tools': '3'}</td>\n",
|
| 150 |
+
" </tr>\n",
|
| 151 |
+
" <tr>\n",
|
| 152 |
+
" <th>4</th>\n",
|
| 153 |
+
" <td>e1fc63a2-da7a-432f-be78-7c4a95598703</td>\n",
|
| 154 |
+
" <td>If Eliud Kipchoge could maintain his record-making marathon pace indefinitely, how many thousand hours would it take him to run the distance between the Earth and the Moon its closest approach? Please use the minimum perigee value on the Wikipedia page for the Moon when carrying out your calculation. Round your result to the nearest 1000 hours and do not use any comma separators if necessary.</td>\n",
|
| 155 |
+
" <td>1</td>\n",
|
| 156 |
+
" <td>17</td>\n",
|
| 157 |
+
" <td></td>\n",
|
| 158 |
+
" <td>{'Steps': '1. Googled Eliud Kipchoge marathon pace to find 4min 37sec/mile\n",
|
| 159 |
+
"2. Converted into fractions of hours.\n",
|
| 160 |
+
"3. Found moon periapsis in miles (225,623 miles).\n",
|
| 161 |
+
"4. Multiplied the two to find the number of hours and rounded to the nearest 100 hours.', 'Number of steps': '4', 'How long did this take?': '20 Minutes', 'Tools': '1. A web browser.\n",
|
| 162 |
+
"2. A search engine.\n",
|
| 163 |
+
"3. A calculator.', 'Number of tools': '3'}</td>\n",
|
| 164 |
+
" </tr>\n",
|
| 165 |
+
" </tbody>\n",
|
| 166 |
+
"</table>\n",
|
| 167 |
+
"</div>"
|
| 168 |
+
],
|
| 169 |
+
"text/plain": [
|
| 170 |
+
" task_id \\\n",
|
| 171 |
+
"0 c61d22de-5f6c-4958-a7f6-5e9707bd3466 \n",
|
| 172 |
+
"1 17b5a6a3-bc87-42e8-b0fb-6ab0781ef2cc \n",
|
| 173 |
+
"2 04a04a9b-226c-43fd-b319-d5e89743676f \n",
|
| 174 |
+
"3 14569e28-c88c-43e4-8c32-097d35b9a67d \n",
|
| 175 |
+
"4 e1fc63a2-da7a-432f-be78-7c4a95598703 \n",
|
| 176 |
+
"\n",
|
| 177 |
+
" Question \\\n",
|
| 178 |
+
"0 A paper about AI regulation that was originally submitted to arXiv.org in June 2022 shows a figure with three axes, where each axis has a label word at both ends. Which of these words is used to describe a type of society in a Physics and Society article submitted to arXiv.org on August 11, 2016? \n",
|
| 179 |
+
"1 I’m researching species that became invasive after people who kept them as pets released them. There’s a certain species of fish that was popularized as a pet by being the main character of the movie Finding Nemo. According to the USGS, where was this fish found as a nonnative species, before the year 2020? I need the answer formatted as the five-digit zip codes of the places the species was found, separated by commas if there is more than one place. \n",
|
| 180 |
+
"2 If we assume all articles published by Nature in 2020 (articles, only, not book reviews/columns, etc) relied on statistical significance to justify their findings and they on average came to a p-value of 0.04, how many papers would be incorrect as to their claims of statistical significance? Round the value up to the next integer. \n",
|
| 181 |
+
"3 In Unlambda, what exact charcter or text needs to be added to correct the following code to output \"For penguins\"? If what is needed is a character, answer with the name of the character. If there are different names for the character, use the shortest. The text location is not needed. Code:\\n\\n`r```````````.F.o.r. .p.e.n.g.u.i.n.si \n",
|
| 182 |
+
"4 If Eliud Kipchoge could maintain his record-making marathon pace indefinitely, how many thousand hours would it take him to run the distance between the Earth and the Moon its closest approach? Please use the minimum perigee value on the Wikipedia page for the Moon when carrying out your calculation. Round your result to the nearest 1000 hours and do not use any comma separators if necessary. \n",
|
| 183 |
+
"\n",
|
| 184 |
+
" Level Final answer file_name \\\n",
|
| 185 |
+
"0 2 egalitarian \n",
|
| 186 |
+
"1 2 34689 \n",
|
| 187 |
+
"2 2 41 \n",
|
| 188 |
+
"3 2 backtick \n",
|
| 189 |
+
"4 1 17 \n",
|
| 190 |
+
"\n",
|
| 191 |
+
" Annotator Metadata \n",
|
| 192 |
+
"0 {'Steps': '1. Go to arxiv.org and navigate to the Advanced Search page.\n",
|
| 193 |
+
"2. Enter \"AI regulation\" in the search box and select \"All fields\" from the dropdown.\n",
|
| 194 |
+
"3. Enter 2022-06-01 and 2022-07-01 into the date inputs, select \"Submission date (original)\", and submit the search.\n",
|
| 195 |
+
"4. Go through the search results to find the article that has a figure with three axes and labels on each end of the axes, titled \"Fairness in Agreement With European Values: An Interdisciplinary Perspective on AI Regulation\".\n",
|
| 196 |
+
"5. Note the six words used as labels: deontological, egalitarian, localized, standardized, utilitarian, and consequential.\n",
|
| 197 |
+
"6. Go back to arxiv.org\n",
|
| 198 |
+
"7. Find \"Physics and Society\" and go to the page for the \"Physics and Society\" category.\n",
|
| 199 |
+
"8. Note that the tag for this category is \"physics.soc-ph\".\n",
|
| 200 |
+
"9. Go to the Advanced Search page.\n",
|
| 201 |
+
"10. Enter \"physics.soc-ph\" in the search box and select \"All fields\" from the dropdown.\n",
|
| 202 |
+
"11. Enter 2016-08-11 and 2016-08-12 into the date inputs, select \"Submission date (original)\", and submit the search.\n",
|
| 203 |
+
"12. Search for instances of the six words in the results to find the paper titled \"Phase transition from egalitarian to hierarchical societies driven by competition between cognitive and social constraints\", indicating that \"egalitarian\" is the correct answer.', 'Number of steps': '12', 'How long did this take?': '8 minutes', 'Tools': '1. Web browser\n",
|
| 204 |
+
"2. Image recognition tools (to identify and parse a figure with three axes)', 'Number of tools': '2'} \n",
|
| 205 |
+
"1 {'Steps': '1. Search the web for “finding nemo main character”.\n",
|
| 206 |
+
"2. Note the results, which state that the main character is a clownfish.\n",
|
| 207 |
+
"3. Search the web for “usgs nonnative species database”.\n",
|
| 208 |
+
"4. Click result for the Nonindigenous Aquatic Species site.\n",
|
| 209 |
+
"5. Click “Marine Fishes”.\n",
|
| 210 |
+
"6. Click “Species List of Nonindigenous Marine Fish”.\n",
|
| 211 |
+
"7. Scroll through the list until I find the clown anenomefish, and click “Collection info”.\n",
|
| 212 |
+
"8. Note the place that a clown anenomefish was found, in Fred Howard Park at the Gulf of Mexico.\n",
|
| 213 |
+
"9. Search the web for “fred howard park florida zip code”.\n",
|
| 214 |
+
"10. Note the zip code, 34689. Since only one clownfish was found before the year 2020, this is the answer.', 'Number of steps': '10', 'How long did this take?': '5 minutes', 'Tools': '1. Search engine\n",
|
| 215 |
+
"2. Web browser', 'Number of tools': '2'} \n",
|
| 216 |
+
"2 {'Steps': '1. Find how many articles were published in Nature in 2020 by Googling \"articles submitted to nature 2020\"\n",
|
| 217 |
+
"2. Click through to Nature's archive for 2020 and filter the results to only provide articles, not other types of publications: 1002\n",
|
| 218 |
+
"3. Find 4% of 1002 and round up: 40.08 > 41', 'Number of steps': '3', 'How long did this take?': '5 minutes', 'Tools': '1. search engine\n",
|
| 219 |
+
"2. calculator', 'Number of tools': '2'} \n",
|
| 220 |
+
"3 {'Steps': '1. Searched \"Unlambda syntax\" online (optional).\n",
|
| 221 |
+
"2. Opened https://en.wikipedia.org/wiki/Unlambda.\n",
|
| 222 |
+
"3. Note that the hello world program is very similar in syntax to the code in this question.\n",
|
| 223 |
+
"4. Go to the source referenced by the hello world program.\n",
|
| 224 |
+
"5. From the referenced source, read what the components of the program do to understand that each period needs a backtick after the initial `r.\n",
|
| 225 |
+
"6. Observe that in the given code, there are 12 periods but only 11 backticks after the initial `r, so the missing character is a backtick.', 'Number of steps': '6', 'How long did this take?': '15 minutes', 'Tools': '1. Web browser\n",
|
| 226 |
+
"2. Search engine\n",
|
| 227 |
+
"3. Unlambda compiler (optional)', 'Number of tools': '3'} \n",
|
| 228 |
+
"4 {'Steps': '1. Googled Eliud Kipchoge marathon pace to find 4min 37sec/mile\n",
|
| 229 |
+
"2. Converted into fractions of hours.\n",
|
| 230 |
+
"3. Found moon periapsis in miles (225,623 miles).\n",
|
| 231 |
+
"4. Multiplied the two to find the number of hours and rounded to the nearest 100 hours.', 'Number of steps': '4', 'How long did this take?': '20 Minutes', 'Tools': '1. A web browser.\n",
|
| 232 |
+
"2. A search engine.\n",
|
| 233 |
+
"3. A calculator.', 'Number of tools': '3'} "
|
| 234 |
+
]
|
| 235 |
+
},
|
| 236 |
+
"execution_count": 8,
|
| 237 |
+
"metadata": {},
|
| 238 |
+
"output_type": "execute_result"
|
| 239 |
+
}
|
| 240 |
+
],
|
| 241 |
+
"source": [
|
| 242 |
+
"# Load metadata\n",
|
| 243 |
+
"metadata = []\n",
|
| 244 |
+
"with open(METADATA_FILE, 'r') as f:\n",
|
| 245 |
+
" for line in f:\n",
|
| 246 |
+
" metadata.append(json.loads(line.strip()))\n",
|
| 247 |
+
"\n",
|
| 248 |
+
"print(f\"Loaded {len(metadata)} metadata entries\")\n",
|
| 249 |
+
"df_metadata = pd.DataFrame(metadata)\n",
|
| 250 |
+
"df_metadata.head()"
|
| 251 |
+
]
|
| 252 |
+
},
|
| 253 |
+
{
|
| 254 |
+
"cell_type": "code",
|
| 255 |
+
"execution_count": 9,
|
| 256 |
+
"id": "1bf82caa",
|
| 257 |
+
"metadata": {},
|
| 258 |
+
"outputs": [
|
| 259 |
+
{
|
| 260 |
+
"name": "stdout",
|
| 261 |
+
"output_type": "stream",
|
| 262 |
+
"text": [
|
| 263 |
+
"Fetched 20 questions from API\n",
|
| 264 |
+
"Questions DataFrame shape: (20, 4)\n",
|
| 265 |
+
"Columns: ['task_id', 'question', 'Level', 'file_name']\n"
|
| 266 |
+
]
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"data": {
|
| 270 |
+
"text/html": [
|
| 271 |
+
"<div>\n",
|
| 272 |
+
"<style scoped>\n",
|
| 273 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 274 |
+
" vertical-align: middle;\n",
|
| 275 |
+
" }\n",
|
| 276 |
+
"\n",
|
| 277 |
+
" .dataframe tbody tr th {\n",
|
| 278 |
+
" vertical-align: top;\n",
|
| 279 |
+
" }\n",
|
| 280 |
+
"\n",
|
| 281 |
+
" .dataframe thead th {\n",
|
| 282 |
+
" text-align: right;\n",
|
| 283 |
+
" }\n",
|
| 284 |
+
"</style>\n",
|
| 285 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 286 |
+
" <thead>\n",
|
| 287 |
+
" <tr style=\"text-align: right;\">\n",
|
| 288 |
+
" <th></th>\n",
|
| 289 |
+
" <th>task_id</th>\n",
|
| 290 |
+
" <th>question</th>\n",
|
| 291 |
+
" <th>Level</th>\n",
|
| 292 |
+
" <th>file_name</th>\n",
|
| 293 |
+
" </tr>\n",
|
| 294 |
+
" </thead>\n",
|
| 295 |
+
" <tbody>\n",
|
| 296 |
+
" <tr>\n",
|
| 297 |
+
" <th>0</th>\n",
|
| 298 |
+
" <td>8e867cd7-cff9-4e6c-867a-ff5ddc2550be</td>\n",
|
| 299 |
+
" <td>How many studio albums were published by Mercedes Sosa between 2000 and 2009 (included)? You can use the latest 2022 version of english wikipedia.</td>\n",
|
| 300 |
+
" <td>1</td>\n",
|
| 301 |
+
" <td></td>\n",
|
| 302 |
+
" </tr>\n",
|
| 303 |
+
" <tr>\n",
|
| 304 |
+
" <th>1</th>\n",
|
| 305 |
+
" <td>a1e91b78-d3d8-4675-bb8d-62741b4b68a6</td>\n",
|
| 306 |
+
" <td>In the video https://www.youtube.com/watch?v=L1vXCYZAYYM, what is the highest number of bird species to be on camera simultaneously?</td>\n",
|
| 307 |
+
" <td>1</td>\n",
|
| 308 |
+
" <td></td>\n",
|
| 309 |
+
" </tr>\n",
|
| 310 |
+
" <tr>\n",
|
| 311 |
+
" <th>2</th>\n",
|
| 312 |
+
" <td>2d83110e-a098-4ebb-9987-066c06fa42d0</td>\n",
|
| 313 |
+
" <td>.rewsna eht sa \"tfel\" drow eht fo etisoppo eht etirw ,ecnetnes siht dnatsrednu uoy fI</td>\n",
|
| 314 |
+
" <td>1</td>\n",
|
| 315 |
+
" <td></td>\n",
|
| 316 |
+
" </tr>\n",
|
| 317 |
+
" <tr>\n",
|
| 318 |
+
" <th>3</th>\n",
|
| 319 |
+
" <td>cca530fc-4052-43b2-b130-b30968d8aa44</td>\n",
|
| 320 |
+
" <td>Review the chess position provided in the image. It is black's turn. Provide the correct next move for black which guarantees a win. Please provide your response in algebraic notation.</td>\n",
|
| 321 |
+
" <td>1</td>\n",
|
| 322 |
+
" <td>cca530fc-4052-43b2-b130-b30968d8aa44.png</td>\n",
|
| 323 |
+
" </tr>\n",
|
| 324 |
+
" <tr>\n",
|
| 325 |
+
" <th>4</th>\n",
|
| 326 |
+
" <td>4fc2f1ae-8625-45b5-ab34-ad4433bc21f8</td>\n",
|
| 327 |
+
" <td>Who nominated the only Featured Article on English Wikipedia about a dinosaur that was promoted in November 2016?</td>\n",
|
| 328 |
+
" <td>1</td>\n",
|
| 329 |
+
" <td></td>\n",
|
| 330 |
+
" </tr>\n",
|
| 331 |
+
" </tbody>\n",
|
| 332 |
+
"</table>\n",
|
| 333 |
+
"</div>"
|
| 334 |
+
],
|
| 335 |
+
"text/plain": [
|
| 336 |
+
" task_id \\\n",
|
| 337 |
+
"0 8e867cd7-cff9-4e6c-867a-ff5ddc2550be \n",
|
| 338 |
+
"1 a1e91b78-d3d8-4675-bb8d-62741b4b68a6 \n",
|
| 339 |
+
"2 2d83110e-a098-4ebb-9987-066c06fa42d0 \n",
|
| 340 |
+
"3 cca530fc-4052-43b2-b130-b30968d8aa44 \n",
|
| 341 |
+
"4 4fc2f1ae-8625-45b5-ab34-ad4433bc21f8 \n",
|
| 342 |
+
"\n",
|
| 343 |
+
" question \\\n",
|
| 344 |
+
"0 How many studio albums were published by Mercedes Sosa between 2000 and 2009 (included)? You can use the latest 2022 version of english wikipedia. \n",
|
| 345 |
+
"1 In the video https://www.youtube.com/watch?v=L1vXCYZAYYM, what is the highest number of bird species to be on camera simultaneously? \n",
|
| 346 |
+
"2 .rewsna eht sa \"tfel\" drow eht fo etisoppo eht etirw ,ecnetnes siht dnatsrednu uoy fI \n",
|
| 347 |
+
"3 Review the chess position provided in the image. It is black's turn. Provide the correct next move for black which guarantees a win. Please provide your response in algebraic notation. \n",
|
| 348 |
+
"4 Who nominated the only Featured Article on English Wikipedia about a dinosaur that was promoted in November 2016? \n",
|
| 349 |
+
"\n",
|
| 350 |
+
" Level file_name \n",
|
| 351 |
+
"0 1 \n",
|
| 352 |
+
"1 1 \n",
|
| 353 |
+
"2 1 \n",
|
| 354 |
+
"3 1 cca530fc-4052-43b2-b130-b30968d8aa44.png \n",
|
| 355 |
+
"4 1 "
|
| 356 |
+
]
|
| 357 |
+
},
|
| 358 |
+
"execution_count": 9,
|
| 359 |
+
"metadata": {},
|
| 360 |
+
"output_type": "execute_result"
|
| 361 |
+
}
|
| 362 |
+
],
|
| 363 |
+
"source": [
|
| 364 |
+
"# Fetch all questions from API\n",
|
| 365 |
+
"response = requests.get(f\"{API_BASE_URL}/questions\")\n",
|
| 366 |
+
"questions = response.json()\n",
|
| 367 |
+
"\n",
|
| 368 |
+
"print(f\"Fetched {len(questions)} questions from API\")\n",
|
| 369 |
+
"df_questions = pd.DataFrame(questions)\n",
|
| 370 |
+
"print(f\"Questions DataFrame shape: {df_questions.shape}\")\n",
|
| 371 |
+
"print(f\"Columns: {list(df_questions.columns)}\")\n",
|
| 372 |
+
"df_questions.head()"
|
| 373 |
+
]
|
| 374 |
+
},
|
| 375 |
+
{
|
| 376 |
+
"cell_type": "code",
|
| 377 |
+
"execution_count": 15,
|
| 378 |
+
"id": "870396c9",
|
| 379 |
+
"metadata": {},
|
| 380 |
+
"outputs": [
|
| 381 |
+
{
|
| 382 |
+
"name": "stdout",
|
| 383 |
+
"output_type": "stream",
|
| 384 |
+
"text": [
|
| 385 |
+
"API questions columns: ['task_id', 'question', 'Level', 'file_name']\n",
|
| 386 |
+
"Metadata columns: ['task_id', 'Question', 'Level', 'Final answer', 'file_name', 'Annotator Metadata']\n",
|
| 387 |
+
"Full DataFrame shape: (20, 6)\n",
|
| 388 |
+
"Columns: ['task_id', 'Question', 'Level', 'Final answer', 'file_name', 'Annotator Metadata']\n",
|
| 389 |
+
"\n",
|
| 390 |
+
"Questions with files: 5 out of 20\n"
|
| 391 |
+
]
|
| 392 |
+
},
|
| 393 |
+
{
|
| 394 |
+
"data": {
|
| 395 |
+
"text/html": [
|
| 396 |
+
"<div>\n",
|
| 397 |
+
"<style scoped>\n",
|
| 398 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 399 |
+
" vertical-align: middle;\n",
|
| 400 |
+
" }\n",
|
| 401 |
+
"\n",
|
| 402 |
+
" .dataframe tbody tr th {\n",
|
| 403 |
+
" vertical-align: top;\n",
|
| 404 |
+
" }\n",
|
| 405 |
+
"\n",
|
| 406 |
+
" .dataframe thead th {\n",
|
| 407 |
+
" text-align: right;\n",
|
| 408 |
+
" }\n",
|
| 409 |
+
"</style>\n",
|
| 410 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 411 |
+
" <thead>\n",
|
| 412 |
+
" <tr style=\"text-align: right;\">\n",
|
| 413 |
+
" <th></th>\n",
|
| 414 |
+
" <th>task_id</th>\n",
|
| 415 |
+
" <th>Question</th>\n",
|
| 416 |
+
" <th>Level</th>\n",
|
| 417 |
+
" <th>Final answer</th>\n",
|
| 418 |
+
" <th>file_name</th>\n",
|
| 419 |
+
" <th>Annotator Metadata</th>\n",
|
| 420 |
+
" </tr>\n",
|
| 421 |
+
" </thead>\n",
|
| 422 |
+
" <tbody>\n",
|
| 423 |
+
" <tr>\n",
|
| 424 |
+
" <th>0</th>\n",
|
| 425 |
+
" <td>8e867cd7-cff9-4e6c-867a-ff5ddc2550be</td>\n",
|
| 426 |
+
" <td>How many studio albums were published by Mercedes Sosa between 2000 and 2009 (included)? You can use the latest 2022 version of english wikipedia.</td>\n",
|
| 427 |
+
" <td>1</td>\n",
|
| 428 |
+
" <td>3</td>\n",
|
| 429 |
+
" <td></td>\n",
|
| 430 |
+
" <td>{'Steps': '1. I did a search for Mercedes Sosa\n",
|
| 431 |
+
"2. I went to the Wikipedia page for her\n",
|
| 432 |
+
"3. I scrolled down to \"Studio albums\"\n",
|
| 433 |
+
"4. I counted the ones between 2000 and 2009', 'Number of steps': '4', 'How long did this take?': '5 minutes', 'Tools': '1. web browser\n",
|
| 434 |
+
"2. google search', 'Number of tools': '2'}</td>\n",
|
| 435 |
+
" </tr>\n",
|
| 436 |
+
" <tr>\n",
|
| 437 |
+
" <th>1</th>\n",
|
| 438 |
+
" <td>a1e91b78-d3d8-4675-bb8d-62741b4b68a6</td>\n",
|
| 439 |
+
" <td>In the video https://www.youtube.com/watch?v=L1vXCYZAYYM, what is the highest number of bird species to be on camera simultaneously?</td>\n",
|
| 440 |
+
" <td>1</td>\n",
|
| 441 |
+
" <td>3</td>\n",
|
| 442 |
+
" <td></td>\n",
|
| 443 |
+
" <td>{'Steps': '1. Navigate to the YouTube link.\n",
|
| 444 |
+
"2. Watch the video to see the highest number of bird species.\n",
|
| 445 |
+
"3. Note the number.', 'Number of steps': '3', 'How long did this take?': '3 minutes', 'Tools': '1. Web browser\n",
|
| 446 |
+
"2. Video parsing', 'Number of tools': '2'}</td>\n",
|
| 447 |
+
" </tr>\n",
|
| 448 |
+
" <tr>\n",
|
| 449 |
+
" <th>2</th>\n",
|
| 450 |
+
" <td>2d83110e-a098-4ebb-9987-066c06fa42d0</td>\n",
|
| 451 |
+
" <td>.rewsna eht sa \"tfel\" drow eht fo etisoppo eht etirw ,ecnetnes siht dnatsrednu uoy fI</td>\n",
|
| 452 |
+
" <td>1</td>\n",
|
| 453 |
+
" <td>Right</td>\n",
|
| 454 |
+
" <td></td>\n",
|
| 455 |
+
" <td>{'Steps': '1. Read the instructions in reverse', 'Number of steps': '1', 'How long did this take?': '1 minute', 'Tools': '1. A word reversal tool / script', 'Number of tools': '0'}</td>\n",
|
| 456 |
+
" </tr>\n",
|
| 457 |
+
" <tr>\n",
|
| 458 |
+
" <th>3</th>\n",
|
| 459 |
+
" <td>cca530fc-4052-43b2-b130-b30968d8aa44</td>\n",
|
| 460 |
+
" <td>Review the chess position provided in the image. It is black's turn. Provide the correct next move for black which guarantees a win. Please provide your response in algebraic notation.</td>\n",
|
| 461 |
+
" <td>1</td>\n",
|
| 462 |
+
" <td>Rd5</td>\n",
|
| 463 |
+
" <td>cca530fc-4052-43b2-b130-b30968d8aa44.png</td>\n",
|
| 464 |
+
" <td>{'Steps': 'Step 1: Evaluate the position of the pieces in the chess position\n",
|
| 465 |
+
"Step 2: Report the best move available for black: \"Rd5\"', 'Number of steps': '2', 'How long did this take?': '10 minutes', 'Tools': '1. Image recognition tools', 'Number of tools': '1'}</td>\n",
|
| 466 |
+
" </tr>\n",
|
| 467 |
+
" <tr>\n",
|
| 468 |
+
" <th>4</th>\n",
|
| 469 |
+
" <td>4fc2f1ae-8625-45b5-ab34-ad4433bc21f8</td>\n",
|
| 470 |
+
" <td>Who nominated the only Featured Article on English Wikipedia about a dinosaur that was promoted in November 2016?</td>\n",
|
| 471 |
+
" <td>1</td>\n",
|
| 472 |
+
" <td>FunkMonk</td>\n",
|
| 473 |
+
" <td></td>\n",
|
| 474 |
+
" <td>{'Steps': '1. Search \"Wikipedia featured articles promoted in november 2016\"\n",
|
| 475 |
+
"2. Click through to the appropriate page and find the person who nominated Giganotosaurus.', 'Number of steps': '2', 'How long did this take?': '5 minutes', 'Tools': '1. web browser\n",
|
| 476 |
+
"2. search engine', 'Number of tools': '2'}</td>\n",
|
| 477 |
+
" </tr>\n",
|
| 478 |
+
" </tbody>\n",
|
| 479 |
+
"</table>\n",
|
| 480 |
+
"</div>"
|
| 481 |
+
],
|
| 482 |
+
"text/plain": [
|
| 483 |
+
" task_id \\\n",
|
| 484 |
+
"0 8e867cd7-cff9-4e6c-867a-ff5ddc2550be \n",
|
| 485 |
+
"1 a1e91b78-d3d8-4675-bb8d-62741b4b68a6 \n",
|
| 486 |
+
"2 2d83110e-a098-4ebb-9987-066c06fa42d0 \n",
|
| 487 |
+
"3 cca530fc-4052-43b2-b130-b30968d8aa44 \n",
|
| 488 |
+
"4 4fc2f1ae-8625-45b5-ab34-ad4433bc21f8 \n",
|
| 489 |
+
"\n",
|
| 490 |
+
" Question \\\n",
|
| 491 |
+
"0 How many studio albums were published by Mercedes Sosa between 2000 and 2009 (included)? You can use the latest 2022 version of english wikipedia. \n",
|
| 492 |
+
"1 In the video https://www.youtube.com/watch?v=L1vXCYZAYYM, what is the highest number of bird species to be on camera simultaneously? \n",
|
| 493 |
+
"2 .rewsna eht sa \"tfel\" drow eht fo etisoppo eht etirw ,ecnetnes siht dnatsrednu uoy fI \n",
|
| 494 |
+
"3 Review the chess position provided in the image. It is black's turn. Provide the correct next move for black which guarantees a win. Please provide your response in algebraic notation. \n",
|
| 495 |
+
"4 Who nominated the only Featured Article on English Wikipedia about a dinosaur that was promoted in November 2016? \n",
|
| 496 |
+
"\n",
|
| 497 |
+
" Level Final answer file_name \\\n",
|
| 498 |
+
"0 1 3 \n",
|
| 499 |
+
"1 1 3 \n",
|
| 500 |
+
"2 1 Right \n",
|
| 501 |
+
"3 1 Rd5 cca530fc-4052-43b2-b130-b30968d8aa44.png \n",
|
| 502 |
+
"4 1 FunkMonk \n",
|
| 503 |
+
"\n",
|
| 504 |
+
" Annotator Metadata \n",
|
| 505 |
+
"0 {'Steps': '1. I did a search for Mercedes Sosa\n",
|
| 506 |
+
"2. I went to the Wikipedia page for her\n",
|
| 507 |
+
"3. I scrolled down to \"Studio albums\"\n",
|
| 508 |
+
"4. I counted the ones between 2000 and 2009', 'Number of steps': '4', 'How long did this take?': '5 minutes', 'Tools': '1. web browser\n",
|
| 509 |
+
"2. google search', 'Number of tools': '2'} \n",
|
| 510 |
+
"1 {'Steps': '1. Navigate to the YouTube link.\n",
|
| 511 |
+
"2. Watch the video to see the highest number of bird species.\n",
|
| 512 |
+
"3. Note the number.', 'Number of steps': '3', 'How long did this take?': '3 minutes', 'Tools': '1. Web browser\n",
|
| 513 |
+
"2. Video parsing', 'Number of tools': '2'} \n",
|
| 514 |
+
"2 {'Steps': '1. Read the instructions in reverse', 'Number of steps': '1', 'How long did this take?': '1 minute', 'Tools': '1. A word reversal tool / script', 'Number of tools': '0'} \n",
|
| 515 |
+
"3 {'Steps': 'Step 1: Evaluate the position of the pieces in the chess position\n",
|
| 516 |
+
"Step 2: Report the best move available for black: \"Rd5\"', 'Number of steps': '2', 'How long did this take?': '10 minutes', 'Tools': '1. Image recognition tools', 'Number of tools': '1'} \n",
|
| 517 |
+
"4 {'Steps': '1. Search \"Wikipedia featured articles promoted in november 2016\"\n",
|
| 518 |
+
"2. Click through to the appropriate page and find the person who nominated Giganotosaurus.', 'Number of steps': '2', 'How long did this take?': '5 minutes', 'Tools': '1. web browser\n",
|
| 519 |
+
"2. search engine', 'Number of tools': '2'} "
|
| 520 |
+
]
|
| 521 |
+
},
|
| 522 |
+
"execution_count": 15,
|
| 523 |
+
"metadata": {},
|
| 524 |
+
"output_type": "execute_result"
|
| 525 |
+
}
|
| 526 |
+
],
|
| 527 |
+
"source": [
|
| 528 |
+
"# Check column names before merging\n",
|
| 529 |
+
"print(\"API questions columns:\", df_questions.columns.tolist())\n",
|
| 530 |
+
"print(\"Metadata columns:\", df_metadata.columns.tolist())\n",
|
| 531 |
+
"\n",
|
| 532 |
+
"# Drop overlapping columns from API data (keep metadata versions)\n",
|
| 533 |
+
"df_questions_clean = df_questions.drop(columns=['question', 'Level', 'file_name'])\n",
|
| 534 |
+
"\n",
|
| 535 |
+
"# Merge questions with metadata (no suffixes needed now)\n",
|
| 536 |
+
"df_full = pd.merge(df_questions_clean, df_metadata, on='task_id', how='left')\n",
|
| 537 |
+
"\n",
|
| 538 |
+
"print(f\"Full DataFrame shape: {df_full.shape}\")\n",
|
| 539 |
+
"print(f\"Columns: {list(df_full.columns)}\")\n",
|
| 540 |
+
"\n",
|
| 541 |
+
"# Check for questions with files\n",
|
| 542 |
+
"has_file = df_full['file_name'].notna() & (df_full['file_name'] != '')\n",
|
| 543 |
+
"print(f\"\\nQuestions with files: {has_file.sum()} out of {len(df_full)}\")\n",
|
| 544 |
+
"\n",
|
| 545 |
+
"df_full.head()"
|
| 546 |
+
]
|
| 547 |
+
},
|
| 548 |
+
{
|
| 549 |
+
"cell_type": "code",
|
| 550 |
+
"execution_count": 16,
|
| 551 |
+
"id": "13df5010",
|
| 552 |
+
"metadata": {},
|
| 553 |
+
"outputs": [
|
| 554 |
+
{
|
| 555 |
+
"name": "stdout",
|
| 556 |
+
"output_type": "stream",
|
| 557 |
+
"text": [
|
| 558 |
+
"Found 5 questions with attached files:\n"
|
| 559 |
+
]
|
| 560 |
+
},
|
| 561 |
+
{
|
| 562 |
+
"data": {
|
| 563 |
+
"text/html": [
|
| 564 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 565 |
+
" <thead>\n",
|
| 566 |
+
" <tr style=\"text-align: right;\">\n",
|
| 567 |
+
" <th>task_id</th>\n",
|
| 568 |
+
" <th>Question</th>\n",
|
| 569 |
+
" <th>file_name</th>\n",
|
| 570 |
+
" <th>file_link</th>\n",
|
| 571 |
+
" <th>Level</th>\n",
|
| 572 |
+
" <th>Final answer</th>\n",
|
| 573 |
+
" </tr>\n",
|
| 574 |
+
" </thead>\n",
|
| 575 |
+
" <tbody>\n",
|
| 576 |
+
" <tr>\n",
|
| 577 |
+
" <td>cca530fc-4052-43b2-b130-b30968d8aa44</td>\n",
|
| 578 |
+
" <td>Review the chess position provided in the image. It is black's turn. Provide the correct next move for black which guarantees a win. Please provide your response in algebraic notation.</td>\n",
|
| 579 |
+
" <td>cca530fc-4052-43b2-b130-b30968d8aa44.png</td>\n",
|
| 580 |
+
" <td><a href=\"https://agents-course-unit4-scoring.hf.space/files/cca530fc-4052-43b2-b130-b30968d8aa44\" target=\"_blank\">cca530fc-4052-43b2-b130-b30968d8aa44.png</a></td>\n",
|
| 581 |
+
" <td>1</td>\n",
|
| 582 |
+
" <td>Rd5</td>\n",
|
| 583 |
+
" </tr>\n",
|
| 584 |
+
" <tr>\n",
|
| 585 |
+
" <td>99c9cc74-fdc8-46c6-8f8d-3ce2d3bfeea3</td>\n",
|
| 586 |
+
" <td>Hi, I'm making a pie but I could use some help with my shopping list. I have everything I need for the crust, but I'm not sure about the filling. I got the recipe from my friend Aditi, but she left it as a voice memo and the speaker on my phone is buzzing so I can't quite make out what she's saying. Could you please listen to the recipe and list all of the ingredients that my friend described? I only want the ingredients for the filling, as I have everything I need to make my favorite pie crust. I've attached the recipe as Strawberry pie.mp3.\\n\\nIn your response, please only list the ingredients, not any measurements. So if the recipe calls for \"a pinch of salt\" or \"two cups of ripe strawberries\" the ingredients on the list would be \"salt\" and \"ripe strawberries\".\\n\\nPlease format your response as a comma separated list of ingredients. Also, please alphabetize the ingredients.</td>\n",
|
| 587 |
+
" <td>99c9cc74-fdc8-46c6-8f8d-3ce2d3bfeea3.mp3</td>\n",
|
| 588 |
+
" <td><a href=\"https://agents-course-unit4-scoring.hf.space/files/99c9cc74-fdc8-46c6-8f8d-3ce2d3bfeea3\" target=\"_blank\">99c9cc74-fdc8-46c6-8f8d-3ce2d3bfeea3.mp3</a></td>\n",
|
| 589 |
+
" <td>1</td>\n",
|
| 590 |
+
" <td>cornstarch, freshly squeezed lemon juice, granulated sugar, pure vanilla extract, ripe strawberries</td>\n",
|
| 591 |
+
" </tr>\n",
|
| 592 |
+
" <tr>\n",
|
| 593 |
+
" <td>f918266a-b3e0-4914-865d-4faa564f1aef</td>\n",
|
| 594 |
+
" <td>What is the final numeric output from the attached Python code?</td>\n",
|
| 595 |
+
" <td>f918266a-b3e0-4914-865d-4faa564f1aef.py</td>\n",
|
| 596 |
+
" <td><a href=\"https://agents-course-unit4-scoring.hf.space/files/f918266a-b3e0-4914-865d-4faa564f1aef\" target=\"_blank\">f918266a-b3e0-4914-865d-4faa564f1aef.py</a></td>\n",
|
| 597 |
+
" <td>1</td>\n",
|
| 598 |
+
" <td>0</td>\n",
|
| 599 |
+
" </tr>\n",
|
| 600 |
+
" <tr>\n",
|
| 601 |
+
" <td>1f975693-876d-457b-a649-393859e79bf3</td>\n",
|
| 602 |
+
" <td>Hi, I was out sick from my classes on Friday, so I'm trying to figure out what I need to study for my Calculus mid-term next week. My friend from class sent me an audio recording of Professor Willowbrook giving out the recommended reading for the test, but my headphones are broken :(\\n\\nCould you please listen to the recording for me and tell me the page numbers I'm supposed to go over? I've attached a file called Homework.mp3 that has the recording. Please provide just the page numbers as a comma-delimited list. And please provide the list in ascending order.</td>\n",
|
| 603 |
+
" <td>1f975693-876d-457b-a649-393859e79bf3.mp3</td>\n",
|
| 604 |
+
" <td><a href=\"https://agents-course-unit4-scoring.hf.space/files/1f975693-876d-457b-a649-393859e79bf3\" target=\"_blank\">1f975693-876d-457b-a649-393859e79bf3.mp3</a></td>\n",
|
| 605 |
+
" <td>1</td>\n",
|
| 606 |
+
" <td>132, 133, 134, 197, 245</td>\n",
|
| 607 |
+
" </tr>\n",
|
| 608 |
+
" <tr>\n",
|
| 609 |
+
" <td>7bd855d8-463d-4ed5-93ca-5fe35145f733</td>\n",
|
| 610 |
+
" <td>The attached Excel file contains the sales of menu items for a local fast-food chain. What were the total sales that the chain made from food (not including drinks)? Express your answer in USD with two decimal places.</td>\n",
|
| 611 |
+
" <td>7bd855d8-463d-4ed5-93ca-5fe35145f733.xlsx</td>\n",
|
| 612 |
+
" <td><a href=\"https://agents-course-unit4-scoring.hf.space/files/7bd855d8-463d-4ed5-93ca-5fe35145f733\" target=\"_blank\">7bd855d8-463d-4ed5-93ca-5fe35145f733.xlsx</a></td>\n",
|
| 613 |
+
" <td>1</td>\n",
|
| 614 |
+
" <td>89706.00</td>\n",
|
| 615 |
+
" </tr>\n",
|
| 616 |
+
" </tbody>\n",
|
| 617 |
+
"</table>"
|
| 618 |
+
],
|
| 619 |
+
"text/plain": [
|
| 620 |
+
"<IPython.core.display.HTML object>"
|
| 621 |
+
]
|
| 622 |
+
},
|
| 623 |
+
"execution_count": 16,
|
| 624 |
+
"metadata": {},
|
| 625 |
+
"output_type": "execute_result"
|
| 626 |
+
}
|
| 627 |
+
],
|
| 628 |
+
"source": [
|
| 629 |
+
"# Create clickable file links\n",
|
| 630 |
+
"def make_file_link(row):\n",
|
| 631 |
+
" if pd.notna(row['file_name']) and row['file_name'] != '':\n",
|
| 632 |
+
" url = f\"{API_BASE_URL}/files/{row['task_id']}\"\n",
|
| 633 |
+
" return f'<a href=\"{url}\" target=\"_blank\">{row[\"file_name\"]}</a>'\n",
|
| 634 |
+
" return ''\n",
|
| 635 |
+
"\n",
|
| 636 |
+
"df_full['file_link'] = df_full.apply(make_file_link, axis=1)\n",
|
| 637 |
+
"\n",
|
| 638 |
+
"# Show questions with files\n",
|
| 639 |
+
"file_questions = df_full[df_full['file_name'].notna() & (df_full['file_name'] != '')]\n",
|
| 640 |
+
"print(f\"Found {len(file_questions)} questions with attached files:\")\n",
|
| 641 |
+
"\n",
|
| 642 |
+
"# Display with clickable links\n",
|
| 643 |
+
"display_cols = ['task_id', 'Question', 'file_name', 'file_link', 'Level', 'Final answer']\n",
|
| 644 |
+
"HTML(file_questions[display_cols].to_html(escape=False, index=False))"
|
| 645 |
+
]
|
| 646 |
+
},
|
| 647 |
+
{
|
| 648 |
+
"cell_type": "code",
|
| 649 |
+
"execution_count": 17,
|
| 650 |
+
"id": "82d2fc92",
|
| 651 |
+
"metadata": {},
|
| 652 |
+
"outputs": [
|
| 653 |
+
{
|
| 654 |
+
"name": "stdout",
|
| 655 |
+
"output_type": "stream",
|
| 656 |
+
"text": [
|
| 657 |
+
"Complete dataset overview:\n",
|
| 658 |
+
"Total questions: 20\n",
|
| 659 |
+
"Questions with files: 5\n",
|
| 660 |
+
"\n",
|
| 661 |
+
"Level distribution:\n",
|
| 662 |
+
"Level\n",
|
| 663 |
+
"1 20\n",
|
| 664 |
+
"Name: count, dtype: int64\n",
|
| 665 |
+
"\n",
|
| 666 |
+
"Annotator metadata columns:\n",
|
| 667 |
+
"Available annotator fields: ['annotator_Steps', 'annotator_Number of steps', 'annotator_How long did this take?', 'annotator_Tools', 'annotator_Number of tools']\n",
|
| 668 |
+
"\n",
|
| 669 |
+
"Tool usage statistics:\n",
|
| 670 |
+
"count 20.000000\n",
|
| 671 |
+
"mean 1.200000\n",
|
| 672 |
+
"std 0.833509\n",
|
| 673 |
+
"min 0.000000\n",
|
| 674 |
+
"25% 0.750000\n",
|
| 675 |
+
"50% 1.000000\n",
|
| 676 |
+
"75% 2.000000\n",
|
| 677 |
+
"max 2.000000\n",
|
| 678 |
+
"Name: annotator_Number of tools, dtype: float64\n",
|
| 679 |
+
"\n",
|
| 680 |
+
"Time taken (raw values):\n",
|
| 681 |
+
"annotator_How long did this take?\n",
|
| 682 |
+
"5 minutes 12\n",
|
| 683 |
+
"3 minutes 2\n",
|
| 684 |
+
"2 minutes 2\n",
|
| 685 |
+
"1 minute 1\n",
|
| 686 |
+
"10 minutes 1\n",
|
| 687 |
+
"30 seconds 1\n",
|
| 688 |
+
"5-10 minutes 1\n",
|
| 689 |
+
"Name: count, dtype: int64\n",
|
| 690 |
+
"<class 'pandas.core.frame.DataFrame'>\n",
|
| 691 |
+
"RangeIndex: 20 entries, 0 to 19\n",
|
| 692 |
+
"Data columns (total 7 columns):\n",
|
| 693 |
+
" # Column Non-Null Count Dtype \n",
|
| 694 |
+
"--- ------ -------------- ----- \n",
|
| 695 |
+
" 0 task_id 20 non-null object\n",
|
| 696 |
+
" 1 Question 20 non-null object\n",
|
| 697 |
+
" 2 Level 20 non-null int64 \n",
|
| 698 |
+
" 3 Final answer 20 non-null object\n",
|
| 699 |
+
" 4 file_name 20 non-null object\n",
|
| 700 |
+
" 5 Annotator Metadata 20 non-null object\n",
|
| 701 |
+
" 6 file_link 20 non-null object\n",
|
| 702 |
+
"dtypes: int64(1), object(6)\n",
|
| 703 |
+
"memory usage: 1.2+ KB\n"
|
| 704 |
+
]
|
| 705 |
+
}
|
| 706 |
+
],
|
| 707 |
+
"source": [
|
| 708 |
+
"# Full data analysis\n",
|
| 709 |
+
"print(\"Complete dataset overview:\")\n",
|
| 710 |
+
"print(f\"Total questions: {len(df_full)}\")\n",
|
| 711 |
+
"print(f\"Questions with files: {(df_full['file_name'].notna() & (df_full['file_name'] != '')).sum()}\")\n",
|
| 712 |
+
"print(f\"\\nLevel distribution:\")\n",
|
| 713 |
+
"print(df_full['Level'].value_counts().sort_index())\n",
|
| 714 |
+
"\n",
|
| 715 |
+
"print(f\"\\nAnnotator metadata columns:\")\n",
|
| 716 |
+
"if 'Annotator Metadata' in df_full.columns:\n",
|
| 717 |
+
" # Flatten annotator metadata\n",
|
| 718 |
+
" annotator_data = []\n",
|
| 719 |
+
" for idx, row in df_full.iterrows():\n",
|
| 720 |
+
" if pd.notna(row['Annotator Metadata']) and isinstance(row['Annotator Metadata'], dict):\n",
|
| 721 |
+
" flat_row = row.to_dict()\n",
|
| 722 |
+
" for key, value in row['Annotator Metadata'].items():\n",
|
| 723 |
+
" flat_row[f'annotator_{key}'] = value\n",
|
| 724 |
+
" annotator_data.append(flat_row)\n",
|
| 725 |
+
" else:\n",
|
| 726 |
+
" annotator_data.append(row.to_dict())\n",
|
| 727 |
+
" \n",
|
| 728 |
+
" df_annotated = pd.DataFrame(annotator_data)\n",
|
| 729 |
+
" annotator_cols = [col for col in df_annotated.columns if col.startswith('annotator_')]\n",
|
| 730 |
+
" print(f\"Available annotator fields: {annotator_cols}\")\n",
|
| 731 |
+
" \n",
|
| 732 |
+
" # Show tool usage stats\n",
|
| 733 |
+
" if 'annotator_Number of tools' in df_annotated.columns:\n",
|
| 734 |
+
" print(f\"\\nTool usage statistics:\")\n",
|
| 735 |
+
" df_annotated['annotator_Number of tools'] = pd.to_numeric(df_annotated['annotator_Number of tools'], errors='coerce')\n",
|
| 736 |
+
" print(df_annotated['annotator_Number of tools'].describe())\n",
|
| 737 |
+
" \n",
|
| 738 |
+
" # Show time statistics\n",
|
| 739 |
+
" if 'annotator_How long did this take?' in df_annotated.columns:\n",
|
| 740 |
+
" print(f\"\\nTime taken (raw values):\")\n",
|
| 741 |
+
" time_values = df_annotated['annotator_How long did this take?'].value_counts().head(10)\n",
|
| 742 |
+
" print(time_values)\n",
|
| 743 |
+
"else:\n",
|
| 744 |
+
" df_annotated = df_full\n",
|
| 745 |
+
"\n",
|
| 746 |
+
"df_full.info()"
|
| 747 |
+
]
|
| 748 |
+
},
|
| 749 |
+
{
|
| 750 |
+
"cell_type": "code",
|
| 751 |
+
"execution_count": 18,
|
| 752 |
+
"id": "0f790a72",
|
| 753 |
+
"metadata": {},
|
| 754 |
+
"outputs": [
|
| 755 |
+
{
|
| 756 |
+
"name": "stdout",
|
| 757 |
+
"output_type": "stream",
|
| 758 |
+
"text": [
|
| 759 |
+
"🔧 Tool Usage Analysis\n",
|
| 760 |
+
"==================================================\n",
|
| 761 |
+
"Total questions with tool information: 20\n",
|
| 762 |
+
"Unique tools identified: 18\n",
|
| 763 |
+
"\n",
|
| 764 |
+
"📊 Tool usage frequency:\n",
|
| 765 |
+
" web browser: 7 times (35.0%)\n",
|
| 766 |
+
" search engine: 6 times (30.0%)\n",
|
| 767 |
+
" none: 3 times (15.0%)\n",
|
| 768 |
+
" file interface: 2 times (10.0%)\n",
|
| 769 |
+
" video parsing: 1 times (5.0%)\n",
|
| 770 |
+
" word reversal tool / script: 1 times (5.0%)\n",
|
| 771 |
+
" image recognition tools: 1 times (5.0%)\n",
|
| 772 |
+
" markdown: 1 times (5.0%)\n",
|
| 773 |
+
" video processing software: 1 times (5.0%)\n",
|
| 774 |
+
" audio processing software: 1 times (5.0%)\n",
|
| 775 |
+
" no tools required: 1 times (5.0%)\n",
|
| 776 |
+
" speech-to-text tool: 1 times (5.0%)\n",
|
| 777 |
+
" python: 1 times (5.0%)\n",
|
| 778 |
+
" speech-to-text audio processing tool: 1 times (5.0%)\n",
|
| 779 |
+
" access to academic journal websites: 1 times (5.0%)\n",
|
| 780 |
+
" wikipedia: 1 times (5.0%)\n",
|
| 781 |
+
" spreadsheet software: 1 times (5.0%)\n",
|
| 782 |
+
" calculator: 1 times (5.0%)\n"
|
| 783 |
+
]
|
| 784 |
+
},
|
| 785 |
+
{
|
| 786 |
+
"data": {
|
| 787 |
+
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAda1JREFUeJzt3QeYFGXWP+wHRBGQAbOgKOaECuaMGRVdc1pzdo0Y1qyIkTWnNbuGXXNC14Q5uwpmzKIYVtcsmBPzv87zft1fzzAzDAjVA9z3dfUL011d9VR1u6/z85xTrWpra2sTAAAAABSodZEHAwAAAIAglAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAgAnkuOOOS61atUqTs5122il17949tSQjRozI1/3KK6+s9lIAGAdCKQCg6uKXyeY8HnnkkYm+lgsvvDBtscUWac4558zHjF/AG/PNN9+kPfbYI80888ypQ4cOafXVV0/PP/98s46z2mqr5f3PP//8Db5+//33l8/75ptvThPD3XffnUOU5iqtuaHHG2+8kaYUP/zwQ75uRXwfI/zZYIMNGnxt6NChLTKIifU055/nlhZsAVC8NlU4JgBAHf/85z/r/Hz11VfnUKb+8wsvvPBEX8vf/va39O2336Zll102ffLJJ41uN3r06NS3b9/00ksvpb/+9a9ppplmShdccEEObp577rlGw6ZK0047bXrnnXfSs88+m49X6Zprrsmv//TTT2liiVDq73//+zgFU3PMMUc65ZRTxni+a9euaUoKpQYMGJD/Hp83da266qpj/LO722675e94hLgl0003XRVWB0BLIpQCAKpuu+22q/Pzf/7znxxK1X++CI8++mi5SqqpX5qjeumpp55KN910U9p8883zc1tuuWVaYIEFUv/+/dO111471mPNO++86bfffkvXXXddnVAqgqjbbrsth1633HJLakk6deo0Tp/L999/n6vImHLMM888+VFpr732ys9V459pAFou7XsAwCQhwo2DDz44devWLbVt2zYtuOCC6fTTT0+1tbV1toswad99982VRrFNVBsttdRS6bHHHmvWceaaa65mzQSKUGrWWWdNm266afm5aOOLYOr2229PP//8c7OOt80226QbbrghV16V/Pvf/87VOLGvhrzwwgtpvfXWSzU1NTk4W3PNNXOQV+nXX3/N1TxRsRXXYMYZZ0wrr7xyDvtCtCVGlVSobKn6I2KfsZ7hw4en9ddfP3Xs2DFtu+22+bU4v7PPPjstuuiieT1x7fbcc8/09ddf19lHfJ4nnnhirshq3759bol89dVXc6tXZStlY7ObSq1jMWOo0j333JNWWWWVHJDFuiLwi/02tP7//ve/aeONN85/j8/0kEMOSb///nveJvYbz4W4vqXr1li1We/evdMSSyzR4Gvx/ezTp0+akP73v/+lnXfeOV+/+OekS5cuaaONNhqv6xEGDRqUevTokT+z+DPC0gmlOd/j8O677+aW2hlmmCF/J5Zffvl01113TbBrAUD1CKUAgBYvgoo//elP6ayzzkrrrrtuOvPMM/Mv9NE2d9BBBzVY7dSvX79clXH88cenL7/8Mr9v2LBhE/QX6iWXXDK1bl33X6ei4ikCpbfeeqtZ+/nzn/+c2wQr5xNFlVX8gj7LLLOMsX0EBxEmRNvgoYcemo455pj03nvv5TayZ555prxdhCQRmkSoc/7556ejjjoqV4CVZl5FILT22mvnv0erVekxNhHOfPHFF3Ue3333Xfn1qPyKoCXWHqHhZpttVj5efF4rrbRSOuecc3JYEMFhbBsBWsmxxx6bzymCnNNOOy1X16yzzjo5lBxfcV4RukTwEe2Zsf/XXnsth3T1A4o4v1hThHix/giVzjjjjHTJJZfk1yOQirljYZNNNilft8pwstL222+fXn755TG+e0OGDMnfkQldORTXO4KjuL7RTrr//vvndtQPPvhgnK/Hfffdl/cXoVu0bEZQF/uNWVZ/VHO/x59++mlaccUV0+DBg9Pee++dTjrppFxJGP97MLaArDnXAoAqqwUAaGH22WefKH8q/zxo0KD884knnlhnu80337y2VatWte+88075udguHkOHDi0/9/7779dOO+20tZtsssk4raNDhw61O+64Y6Ov7bLLLmM8f9ddd+Xj33vvvU3uu3fv3rWLLrpo/vvSSy9du+uuu+a/f/3117XTTDNN7VVXXVX78MMP533ddNNN5fdtvPHG+fXhw4eXn/v4449rO3bsWLvqqquWn1tiiSVq+/btO07XeWxizaXrW/koXaP4M34+/PDD67zv8ccfz89fc801dZ6Pa1T5/GeffZbPLdY9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+OGH5yHxETzH9zSudQRl7733Xm5zrd8qWtKcawFAC1Dt2/8BANS3zz775Nu5V4rbwB944IG1Xbt2rZ166qlr559//ny799GjR9fZLt4X7//Xv/6Vt2nbtm1tr169ah9++OFmHTtuWx/7aOhRut18yVdffVW766671s4444y17du3r+3du3ftkCFDmnWc2HbRRRdtcptYcxz3pptuqvP8888/X9unT5/a6aabLh939dVXr33qqafqbHPiiSfWLrvssrWdO3eubdeuXe1CCy1Ue9JJJ9X+8ssv5W1+++232v3226925plnrm3VqtUY13xc1xzXrkOHDo2+fskll9QutdRSeT0dO3asXWyxxWoPPfTQ2o8//ri8ze+//147YMCA2i5duuTtVltttdphw4bVzjXXXHn/lZ577rna5ZZbrnaaaaapnXPOOWvPPPPM/BnFebz33ntjXMu4Zp06daqddtppa+edd97anXbaqXbo0KFjXX///v3HuDZxveNc4tjxWmzT2LYlp556an7t5JNPrh0XX3/9df7uzz333Pm7X1NTkz/ze+65p852X3zxRf7ux2cd5xHnGtfnxhtvHGOfzbke4ZZbbqldeOGF8z9HiyyySO2tt96ar1N8HuMi1lP/82vO9zgMHz68dvPNN8/f5VhrfK/vvPPOOtvE5135z+i4XAsAqqdV/J9qB2MAABNKtPPts88+41z9QssWrVpR+RVzmSZVURF24IEH5mq/qPICgCmdmVIAADCRxX8Hvvzyy3Mro0AKAP6PmVIAADCRxFDuO+64Iz388MPplVdeyXPQAID/I5QCAICJJO5m9+c//zl17tw5HXnkkXlYPgDwf8yUAgAAAKBwZkoBAAAAUDihFAAAAACFM1MKxmL06NHp448/Th07dsy3GQcAAAAaF5Oivv3229S1a9fUunXj9VBCKRiLCKS6detW7WUAAADAJOXDDz9Mc8wxR6OvC6VgLKJCqvQPU01NTbWXAwAAAC3aqFGjcnFH6ffpxgilYCxKLXsRSAmlAAAAoHnGNgLHoHMAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwbYo/JEyaevQfnFq3bV/tZQAAADCFGDGwb5qcqZQCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5SawnTv3j2dffbZ4/SenXbaKW288cYTbU0AAADAlEcoBQAAAEDhhFJMFL/88ktq6SaFNQIAAMDkSijVgt15552pc+fO6ffff88/v/jii6lVq1bp8MMPL2+z2267pe2226788xNPPJFWWWWV1K5du9StW7e0//77p++//77Ofr/99tu0zTbbpA4dOqTZZ589/f3vf2/WegYMGJBmnnnmVFNTk/baa686oc5qq62W9t1339SvX78000wzpT59+uTnH3300bTsssumtm3bpi5duuS1//bbb+N1fu+//37acMMN0/TTT5/Xvuiii6a77767vO2wYcPSeuutl6abbro066yzpu233z598cUXY10jAAAAUDyhVAsW4VIESC+88EI54Ikw5ZFHHilvE89F2BKGDx+e1l133bTZZpull19+Od1www05pIogptJpp52WllhiibzfCIAOOOCAdP/99ze5lgcffDC9/vrr+djXXXdduvXWW3NIVemqq65K00wzTXryySfTRRddlP773/+m9ddfPy2zzDLppZdeShdeeGG6/PLL04knnjhe57fPPvukn3/+OT322GPplVdeSX/7299yABW++eabtMYaa6RevXqloUOHpnvvvTd9+umnacstt2xyjQAAAEB1tKqtra2t0rFphqWWWipXNR1yyCFpk002yQFPhEFffvllGjlyZJpjjjnSW2+9leaff/5cVTTVVFOliy++uPz+CKV69+6dq6WmnXbaPOh84YUXTvfcc095m6233jqNGjWqTtVR/UHn//73v9OHH36Y2rdvn5+LQOevf/1rXkPr1q1zcBT7eP7558vvO+qoo9Itt9ySw6yogAoXXHBBOuyww8rvG5fzW3zxxXPg1r9//zHWGEHX448/ngYPHlx+7qOPPsrVYm+++WZaYIEFGlxjQyL4ikdJvCf2063fjal12/87fwAAAJjYRgzsmyZF8Xt0p06d8u/10W3VGJVSLVwESlE5FNlhhC6bbrppDpUibIoqoq5du+bAJkQ10pVXXpmrh0qPaFEbPXp0eu+998r7XGGFFeocI36O4KgpUVlVCqRK7/nuu+9yUFUSAVOl2GdsVwqkwkorrZTfF4HRuJ5ftCJG+BT7iGAqqsFK4twffvjhOue+0EILlSvIGltjQ0455ZT8D0/pEYEUAAAAMGEJpVq4qO6JgCZCl6mnnjoHLfFcBDkR2kSoUxJhz5577plnM5Ue8b633347zTvvvBN9rTHnaWKeX1SCvfvuu3lWVLTvLb300um8884rn3vMm6o893jEua+66qrjtMYjjjgip7mlR2XwBgAAAEwYbSbQfphISnOXzjrrrHJAE6HNwIED09dff50OPvjg8rZLLrlkeu2119J8883X5D7/85//jPFzVCc1JUKjH3/8MQ9QL70nqpGaqiKKfUb7XlRBlaqlYpZTx44dc1veuJ5fiOPFkPV4RHh06aWXpv322y+fexwr2hPbtPljX+sYyh4PAAAAYOJRKdXCxZ3mYpbSNddcUx74HZU/MRcpZi1VVhLFrKannnoqDzYvVQndfvvtYww6j2Do1FNPze+PO+/ddNNNedh5U+JOe7vuumsOvWL2VLTPxX5jLlRj9t5771xlFKHRG2+8kdcS7zvooIPK7xuX84u75sXMqGhFjNejXa8UpsUQ9K+++irPpxoyZEhu2Yttd9555/Ld/QAAAICWQ6XUJCCCmQiZSqHNDDPMkBZZZJF8d7kFF1ywvF2EO9HyFgPGowIpKpSibW+rrbaqs7+oPoo71MVA8Rg4duaZZ+bZU01Zc80182ynCIxiCHiEP8cdd1yT75l99tlzgBUD0WMmVaw7gq2jjz56vM4vwqUIn2IeVaw77jQYFVYhZk9F2BbB3DrrrJPXONdcc+VtmgrOAAAAgOpw9z1o5l0D3H0PAACAIo1w9z0AAAAAmLCEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOHaFH9ImDQNG9An1dTUVHsZAAAAMFlQKQUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABSuTfGHhElTj/6DU+u27au9DAAAYDI1YmDfai8BCqVSCgAAAIDCCaUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQijquvPLK1Llz59QSjRgxIrVq1Sq9+OKL1V4KAAAA8Ae1+aM7gKJ069YtffLJJ2mmmWaq9lIAAACAP0il1BTkl19+SZOyqaaaKs0222ypTRtZKgAAAEzqhFJVdPPNN6fFFlsstWvXLs0444xprbXWSt9//3359csuuywtvPDCadppp00LLbRQuuCCC+q8/7DDDksLLLBAat++fZpnnnnSMccck3799dfy68cdd1zq2bNn3s/cc8+d9xO++eabtOeee6ZZZ501P9ejR49055131tn34MGD87Gnm266tO666+YKpaYMGzYsrbfeenn72O/222+fvvjii/Lrq622Wtp///3ToYcemmaYYYYcLsX6Kr3xxhtp5ZVXzmtaZJFF0gMPPJDb9QYNGtRg+94jjzySf37wwQfT0ksvna/DiiuumN588806+7399tvTkksumfcb12nAgAHpt99+a/bnBAAAAEx4QqkqiZBnm222Sbvsskt6/fXXc8Cy6aabptra2vz6Nddck4499th00kkn5ddPPvnkHDpdddVV5X107Ngxz4B67bXX0jnnnJMuvfTSdNZZZ9U5zjvvvJNuueWWdOutt+YwZ/To0Tk8evLJJ9O//vWv/N6BAwfmKqSSH374IZ1++unpn//8Z3rsscfSBx98kA455JBGzyVCrjXWWCP16tUrDR06NN17773p008/TVtuuWWd7WLtHTp0SM8880w69dRT0/HHH5/uv//+/Nrvv/+eNt544xwsxeuXXHJJOuqoo5p1LWO7M844Ix87qqjimpY8/vjjaYcddkgHHHBAPteLL744X7O4rgAAAED16IOqYigV1ToRRM0111z5uaiaKunfv38OWuL1EJVOpVBlxx13zM8dffTR5e27d++eg6Prr78+VyNVtuxdffXVaeaZZ84/33fffenZZ5/NQVdUWYWoHqoU1VYXXXRRmnfeefPP++67bw6QGnP++efnQCqCs5J//OMfeQbUW2+9VT7O4osvns8rzD///Pl9UeW09tpr53Bq+PDhOZyLKqoQwVG8NjaxXe/evfPfDz/88NS3b9/0008/5cqoqIqK50rXLM71hBNOyNeotJb6fv755/woGTVq1FjXAAAAAIwboVSVLLHEEmnNNdfMQVSfPn3SOuuskzbffPM0/fTT5xa+CGh23XXXtPvuu5ffEyFWp06dyj/fcMMN6dxzz83bfvfdd/n1mpqaOseJwKsUSIWolppjjjnKQVFDolqpFEiFLl26pM8++6zR7V966aX08MMP59a9+mJtlaFUpcr9RstdhFilQCosu+yyqTkq9xv7DLHfOeecM68tqsIqK6OiKitCq6gIi3Ot75RTTslhFgAAADDxCKWqJNrlojroqaeeytVL5513Xm5Di9a1UlAS7XjLLbfcGO8LTz/9dNp2221zeBKhVoRVUSUV1VWVol2uUsyvGpupp566zs8xt6nUVtiQCMQ23HDD9Le//W2M10ohUWP7jXbCP6pyv7HPUNpvrC2uUanirFJpxlZ9RxxxRDrooIPqVEpFYAYAAABMOEKpKooAZaWVVsqPmB8VVU233XZbDkS6du2a3n333Rw8NSTCrNi+cu7S+++/36yqoo8++qhOW90fFUPEY25VtBCO753xFlxwwfThhx/mWVQxKD0MGTJkgqwtqrDmm2++Zr+nbdu2+QEAAABMPEKpKomKqJinFG17s8wyS/75888/z3e8C1HdE3eriwqouPtdzDiKQd5ff/11Dq1iJlMMII/qqGWWWSbdddddOdAam5i9tOqqq6bNNtssnXnmmTmsibveRUAWxxkf++yzT67qisHtpbvrxYD1WFvc+a9yiHpjYnZUtAzG7KcYgv7tt9+WZ2aVqp/GR4R9G2ywQW7li/bI1q1b55a+uFvgiSeeON77BQAAAP4Yd9+rkpj9FHe2W3/99XPFUgQw0XoXd8YLu+22Ww50rrjiijx3KsKkuGtcDDwPf/rTn9KBBx6Yh5D37NkzV07F3fmaI6qaIsiKEGmRRRbJQVLMWRpfUdUVc5tiHxGyxXr79euXOnfunEOg5ojgatCgQbndLtYW51+qAmusza45orXxzjvvzC2Ssd/ll18+36GwNFweAAAAqI5WtU0NC4IqiqBr5ZVXzlVXlYPXixYzpaJirVu/G1PrtmMORgcAAJgQRgzsW+0lwAT9PXrkyJFj3JCtkvY9WoxoP4w7+EVrYgRRBxxwQJ63Vc1ACgAAAJg4hFK0GDFH6rDDDsuzsmaaaaa01lprjXE3QQAAAGDyIJSixdhhhx3yAwAAAJj8GXQOAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOHaFH9ImDQNG9An1dTUVHsZAAAAMFlQKQUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4doUf0iYNPXoPzi1btu+2ssAYBIxYmDfai8BAKBFUykFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUlTNaqutlvbff/906KGHphlmmCHNNtts6bjjjiu//sEHH6SNNtooTTfddKmmpiZtueWW6dNPPy2/Htv27Nkz/fOf/0zdu3dPnTp1SltvvXX69ttvy9uMHj06nXLKKWnuuedO7dq1S0sssUS6+eabCz9XAAAAoC6hFFV11VVXpQ4dOqRnnnkmnXrqqen4449P999/fw6TIpD66quv0qOPPpqfe/fdd9NWW21V5/3Dhw9PgwYNSnfeeWd+xLYDBw4svx6B1NVXX50uuuii9Oqrr6YDDzwwbbfddnk7AAAAoHraVPHYkBZffPHUv3///Pf5558/nX/++enBBx/MP7/yyivpvffeS926dcs/R7i06KKLpiFDhqRlllkmPxfh1ZVXXpk6duyYf95+++3z+0866aT0888/p5NPPjk98MADaYUVVsivzzPPPOmJJ55IF198cerdu3eDa4r3xaNk1KhRE/kqAAAAwJRHKEXVQ6lKXbp0SZ999ll6/fXXcxhVCqTCIosskjp37pxfK4VS0bZXCqQq3x/eeeed9MMPP6S11167zjF++eWX1KtXr0bXFNVVAwYMmGDnCAAAAIxJKEVVTT311HV+btWqVa5+mhDv/+677/Kfd911V5p99tnrbNe2bdtG93nEEUekgw46qE6lVGU4BgAAAPxxQilapIUXXjh9+OGH+VEKhF577bX0zTff5Iqp5ojtInyKgemNteo1JN7TVGgFAAAA/HFCKVqktdZaKy222GJp2223TWeffXb67bff0t57753DpaWXXrpZ+4i2vkMOOSQPN4/qqZVXXjmNHDkyPfnkk/lufjvuuONEPw8AAACgYUIpWqRow7v99tvTfvvtl1ZdddXUunXrtO6666bzzjtvnPZzwgknpJlnnjnPiYq798VMqiWXXDIdeeSRE23tAAAAwNi1qq2trW3GdjDFiplSnTp1St363Zhat21f7eUAMIkYMbBvtZcAAFDV36OjWyk6lRrTutBVAQAAAIBQCgAAAIBqEEoBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFa1PtBcCkYtiAPqmmpqbaywAAAIDJgkopAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAArXpvhDwqSpR//BqXXb9tVeBtBCjRjYt9pLAACASYpKKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCqUlAbW1t2mOPPdIMM8yQWrVqlV588cW02mqrpX79+pW36d69ezr77LPH+xgjRowo77slnScAAAAweWpT7QUwdvfee2+68sor0yOPPJLmmWeeNNNMM6Vbb701TT311BPsGN26dUuffPJJ3ndzHXfccWnQoEETLDxq6DwBAACAyZNQahIwfPjw1KVLl7TiiiuWn4tqoglpqqmmSrPNNluqhl9++SVNM800DZ4nAAAAMHnSvtfC7bTTTmm//fZLH3zwQW5piza9UL99r75vvvkm7bbbbmnmmWdONTU1aY011kgvvfRSs9v3olopfn7wwQfT0ksvndq3b5/DojfffDO/HhVNAwYMyPuM7eIRzzXn2FFh1bNnz3TZZZelueeeO0077bSNnmdUT6288sqpc+fOacYZZ0wbbLBBDq8qffTRR2mbbbbJQV2HDh3yep955pny67fffntacskl83GiAivW/dtvv43nJwIAAABMCCqlWrhzzjknzTvvvOmSSy5JQ4YMyRVNzbHFFlukdu3apXvuuSd16tQpXXzxxWnNNddMb7311jhVWR111FHpjDPOyAHTXnvtlXbZZZf05JNPpq222ioNGzYsh0YPPPBA3jaO09xjv/POO+mWW27JbYhxTnPNNVeD5/n999+ngw46KC2++OLpu+++S8cee2zaZJNNcnjWunXr/Fzv3r3T7LPPnu64445c7fX888+n0aNH5/c//vjjaYcddkjnnntuWmWVVXKgFXOrQv/+/Rs8559//jk/SkaNGtXs6wUAAAA0j1CqhYtQp2PHjuPUXvfEE0+kZ599Nn322Wepbdu2+bnTTz89z3+6+eaby6FMc5x00kk59AmHH3546tu3b/rpp59y6DTddNOlNm3a1FlXc48dLXtXX311DrtKGjrPzTbbrM56/vGPf+T3vPbaa6lHjx7p2muvTZ9//nkOskqB13zzzVfePqqiYt077rhj/jkqpU444YR06KGHNhpKnXLKKfl9AAAAwMQjlJoMRatcVBBFu1ulH3/8cYzWt7GJCqWSmPcUInCac845/9CxozKqMpBqzNtvv52ro6Id74svvihXQEWbX4RSUTHVq1evRqu/Yj1R2RXhWsnvv/+eg7UffvghtyXWd8QRR+TqrMpKqRgEDwAAAEw4QqnJUIRCESDFXKj6YjbTuKi8w1/MegqlYOiPHDtmPzXHhhtumAOsSy+9NHXt2jUfO8KoqLQKUbHVlFhPVD1tuummY7wWM6YaEhVepSovAAAAYOIQSk2GYqj3//73v9xaVxoYPjHEHfOi6mhiHfvLL7/Mg9UjkIp5UKX2wPqVXDEw/auvvmqwWirWE/uobOkDAAAAqs/d9yZDa621VlphhRXSxhtvnO677758Z72nnnoqDy0fOnToBDtOhE7vvfdebqGL1roYDj4hjz399NPnNsAYfh6D0R966KE6bXUh7roXM6jieNGm9+677+YB6k8//XR+PVr/YnZVVEu9+uqr6fXXX0/XX399OvrooyfYdQAAAADGnVBqMhRtdnfffXdaddVV084775wWWGCBtPXWW6f3338/zTrrrBPsODGEfN11102rr756ng913XXXTdBjx931IkB67rnncsvegQcemE477bQxqrUi/JplllnS+uuvnxZbbLE0cODA8t37+vTpk+688868zTLLLJOWX375dNZZZ+WWQAAAAKB6WtXW1tZW8fjQ4sWg87gLYrd+N6bWbcccjA4QRgzsW+0lAABAi/o9euTIkammpqbR7VRKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhWtT/CFh0jRsQJ9UU1NT7WUAAADAZEGlFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAULg2xR8SJk09+g9Ordu2r/YyaCFGDOxb7SUAAABM0lRKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4odQk5Ljjjks9e/Zscpuddtopbbzxxmly1apVqzRo0KBqLwMAAAD4g9r80R1QnEMOOSTtt99+aUr2ySefpOmnn77aywAAAAD+IKHUJGS66abLj8nVL7/8kqaZZpomt5ltttkKWw8AAAAw8WjfayEuueSS1LVr1zR69Og6z2+00UZpl112abB97/fff08HHXRQ6ty5c5pxxhnToYcemmpra+u8P/Z3yimnpLnnnju1a9cuLbHEEunmm2+us82jjz6all122dS2bdvUpUuXdPjhh6fffvut0bVeeeWV+ZjRRjf//POnaaedNvXp0yd9+OGH5W2GDx+e1z7rrLPmIG2ZZZZJDzzwQJ39dO/ePZ1wwglphx12SDU1NWmPPfbIwdS+++6b1xH7nWuuufL6G2rfGzFiRP751ltvTauvvnpq3759Pr+nn366znEuvfTS1K1bt/z6Jptsks4888y8fgAAAKB6hFItxBZbbJG+/PLL9PDDD5ef++qrr9K9996btt122wbfc8YZZ+SA6B//+Ed64okn8va33XZbnW0i0Ln66qvTRRddlF599dV04IEHpu222y4HUeG///1vWn/99XNo9NJLL6ULL7wwXX755enEE09scr0//PBDOumkk/K+n3zyyfTNN9+krbfeuvz6d999l/f74IMPphdeeCGtu+66acMNN0wffPBBnf2cfvrpOUiKbY455ph07rnnpjvuuCPdeOON6c0330zXXHNNDq+actRRR+XWxhdffDEtsMACaZtttimHarG2vfbaKx1wwAH59bXXXjuvuyk///xzGjVqVJ0HAAAAMGFp32shYk7Seuutl6699tq05ppr5ueiommmmWbKVUANOfvss9MRRxyRNt100/xzBE+DBw+uE66cfPLJuUJphRVWyM/NM888OcC6+OKLU+/evdMFF1yQq4jOP//8XHW00EILpY8//jgddthh6dhjj02tWzecW/7666/5Pcstt1z++aqrrkoLL7xwevbZZ3PVVQRN8SiJiqgIzCJwikqokjXWWCMdfPDB5Z8jtIrqq5VXXjmvJyqlxiYCqb59++a/DxgwIC266KLpnXfeyedy3nnn5esa24QIrZ566ql05513Nrq/CPJiPwAAAMDEo1KqBYmKqFtuuSWHSSGqhKL6qKFgaOTIkXnodykUCm3atElLL710+ecIZqKiKaqDSvOo4hHVTdFeF15//fUcWEUAVLLSSivlSqePPvqo0bXGsaK6qiQCoGiJi/2FeH8EQRFUxfNx3HitfqVU5XpLdw+MiqYFF1ww7b///um+++4b63VbfPHFy3+Ptr/w2Wef5T+j2ipCskr1f64vgr64vqVHZVsiAAAAMGGolGpBor0tZkLdddddOfB5/PHH01lnnTXe+4tgKMT+Zp999jqvxfyoiSkCqfvvvz+3580333x5ntXmm2+eZ0ZV6tChQ52fl1xyyfTee++le+65J1d4bbnllmmttdYaYw5Wpamnnrr891K4Vn8217iIazOxrw8AAABM6YRSLUgM9o5WvKiQiiqnqBaKkKYhnTp1ylVBzzzzTFp11VXzczFH6bnnniu/Z5FFFsnhSlQnRateQ6KSKaqzIgwrBToxh6ljx45pjjnmaHStcayhQ4eWq46iIinmSsX+SvuIqqcYLF4KyGIweXPE0POtttoqPyLIinlUMS9rhhlmSOMqruGQIUPqPFf/ZwAAAKB4QqkW2MK3wQYb5KHkMZC8KTG8e+DAgXkGU7TPxV3lIhgqiWApKpZiuHlUDsWcpmhHi8Aogp8dd9wx7b333nk21X777ZdnPUW41L9//3xXv8bmSZWqk+I9MZg8Wvnivcsvv3w5pIo1xV3xovorwq4YYt6c6qU4hwjbevXqlY9/0003pdlmm22875YXa4zQLvYba3nooYdyFVZluyIAAABQPDOlWpgY/B0VQREO/fnPf25y2xgQvv322+dwKeZCRQhVqkyqHDAegVAM744qpqg6ina+ueeeO78ebX133313HlAeg8njTnW77rprOvroo5s8dvv27fMw9FhjzKCKmVE33HBD+fUIgWJ4+4orrpjDoD59+jRa9VUpzuHUU0/Ns6aihTGqq2J9TQVkTYm1xQD4WE+cX9zNMEK6qEoDAAAAqqdVbfRtwTi48sorU79+/epUZU1Kdt999/TGG2/kmV3NMWrUqNwu2a3fjal12/YTfX1MGkYM/L87PgIAANDw79HRrRWdWo3RvsdkL4atxx0IY6h6tO5dddVV6YILLqj2sgAAAGCKJpRishetidES+O2336Z55pknz8Habbfdqr0sAAAAmKJp34Ox0L5HQ7TvAQAA/LH2PYPOAQAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAAChcm+IPCZOmYQP6pJqammovAwAAACYLKqUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQCgAAAIDCCaUAAAAAKJxQCgAAAIDCtSn+kDBp6tF/cGrdtn21l0ELMWJg32ovAQAAYJKmUgoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACjcJBlKXXnllalz585pStK9e/d09tlnF37cESNGpFatWqUXX3wxtSRT4ncAAAAAJieTZCjFmHbaaae08cYbV3UNq6++errssssKOdZWW22V3nrrrUnuGgEAAACTQCj1yy+/TLB9/frrr6kafv/99zR69Og0ufvqq6/Sk08+mTbccMOJfqz4LNu1a5dmmWWWiX4sAAAAoIWFUnfeeWdun4rQJUR7V7R5HX744eVtdtttt7TddtuVf77lllvSoosumtq2bZvb0c4444w6+4znTjjhhLTDDjukmpqatMcee5Rbteacc87Uvn37tMkmm6Qvv/yyWS1nN9xwQ+rdu3eadtpp0zXXXJNfi0qehRdeOD+30EILpQsuuKD8vhVXXDEddthhdfb1+eefp6mnnjo99thj+eeff/45HXLIIWn22WdPHTp0SMstt1x65JFHxmgru+OOO9IiiyySz/WDDz7I2yy77LL5PfH6SiutlN5///38nuHDh6eNNtoozTrrrGm66aZLyyyzTHrggQea/Vkcd9xx6aqrrkq33357Pu94lNb0yiuvpDXWWCOHODPOOGO+pt999135vRGYHX/88WmOOebIa+3Zs2e6995707i666670pJLLpnPoSFxneeff/583WObzTffvM4aTj311DTffPPlNcRnfdJJJzX5WdZv34trEGu/+OKLU7du3fJ3Zcstt0wjR44c6zUCAAAAJqFQapVVVknffvtteuGFF/LPjz76aJppppnq/KIfz6222mr5788991wOCbbeeusclERIcMwxx+RwodLpp5+ellhiibzfeP2ZZ55Ju+66a9p3331z8BUtYieeeGKz1hgB2QEHHJBef/311KdPnxxmHHvssTnwiOdOPvnkfIwIK8K2226brr/++lRbW1veR4QhXbt2zecbYh1PP/103u7ll19OW2yxRVp33XXT22+/XX7PDz/8kP72t7/lAOzVV19NM8wwQ24bi1Al3hPvj3AogpEQIdH666+fHnzwwXzesb+oOIowqzkiJItrG+/75JNP8iMCtu+//z6f9/TTT5+GDBmSbrrpphx2xTmUnHPOOTkcjOsea4vt//SnP9U5n+aIEC6CtYYMHTo07b///jn8evPNN3Poteqqq5ZfP+KII9LAgQPzZ/Haa6+la6+9doxwq/5n2ZB33nkn3Xjjjenf//53PkZcy7333rvJawQAAABUR5vxfWOnTp1yZUqEUEsvvXT+88ADD0wDBgzIIUtUqERIEEFMOPPMM9Oaa66Zg4ewwAIL5ADitNNOy7N+SqKq5+CDDy7/HNtHkHDooYeW3/fUU081q5qnX79+adNNNy3/3L9//xzAlJ6be+658xqiumbHHXfMoUW854knniiHUBGQbLPNNjlAipDoiiuuyH9GUFUKO2It8XyEXKX2sqgMinCt1NoW12ODDTZI8847b34uqrVKYrvStiGqxW677bYc9FQGSI2J6qqohIoqrtlmm638fIRtP/30U7r66qtzhVY4//zzc+AVoVkEPxFGRXVYhIUhnn/44YfzUPW///3vqTniuHENImhsSFyvOH6cf8eOHdNcc82VevXqlV+LYDOCsVhXfAYhrtHKK6/c5GfZkNK5RhVbOO+881Lfvn3zZx7XpaFr1Nj5xKNk1KhRzboOAAAAQEEzpSJwijAqKosef/zxHBpE2BKhTlRJRXATLVshKlyi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Nm277bapQ4cOqUuXLumss84a49g///xzOuSQQ/J+Yrvlllsut7g1JdrfLrzwwvSnP/0pv+ekk07Kz99+++1pySWXTNNOO22aZ5550oABA9Jvv/1Wfl+0zO25555p1llnzdv06NEj3XnnneXXb7nllrToooumtm3b5mtyxhln1DluVDj17ds3tWvXLs0999zp2muvHaNNLdZ22WWXpU022SRfl/nnnz9fy4ba9+LvO++8cxo5cmR+Lh7HHXdc+TOp3O8HH3xQ/ixqamrSlltumT799NPy6/G+nj17pn/+85/5vVGJtfXWW+fPoCFNHfvrr7/O34Xpp58+n8N6662X3n777TrvH9u1qlRbW5v3Peecc+btu3btmvbff/8mP2MAAABgChl0HoHRSiutlF544YUcvGy//fY5mNhuu+3S888/n+add978cwQM4aeffkpLLbVUuuuuu9KwYcNyq1m859lnny3v86CDDkpPPvlkDmXuv//+9Pjjj+d9Vdp3333T008/na6//vr08ssvpy222CKtu+66Y4Qg9UXIEcHPK6+8knbZZZe871jfAQcckF577bV08cUX5/a0UmA1evToHK7Eev71r3/lbQYOHJimmmqq/Ppzzz2Xg54IcmKfsf9jjjkm76Mk9v/xxx/nQCdCmUsuuSR99tlnY6wtwrDYV5zP+uuvn4O5r776qsFWvgieImSKwCseEdDVF2uPQCr28eijj+Zr+e6776atttqqznbDhw9PgwYNykFbPGLbOMeGNHXsnXbaKQeQ8bnFZxOfeZxHVKQ191pVimsV36/4TOJzjTVGiAkAAABMYe17DYnQIaqIwrHHHpsrkZZZZpkcEoXDDjssrbDCCrk6J9rPorKpMkDZb7/90uDBg9ONN96Yll122Vyhc9VVV+VqojXXXDNvc8UVV+Qqmcrqn3gu/iw9H/u899578/Mnn3xyo+v985//nCt9SiKYOvzww9OOO+6Yf45KqZibdeihh6b+/funBx54IAdmr7/+elpggQXK25SceeaZeZ0RroTYJoKr0047LYc0b7zxRt5HzHpaeuml8zZRERWVUPXF9lFFFuIczj333HzsCNvqt/JFRVNUKTXV0vfggw/m8Oe9995L3bp1y89dffXVuVIp1hOfUym8imCoY8eO+ecICeO9pWCuOceO0CjCqAjvIrgK11xzTT5uhEnxfRjbtaovPt84xlprrZXbLKNiKr4jjYnquXiUjBo1qtFtAQAAgEm8Uira80qivS1UVrOUnitVBv3+++859IltYkZVtJVFKBUBRIhKnqisqQwfIgRZcMEFyz9H0BL7iVAj3l96RIVPVP00pRQMlbz00kvp+OOPr7Of3XffPVcA/fDDD+nFF19Mc8wxRzmQqi/CqqgUqxQ/R0gTa3zzzTdTmzZtcntgyXzzzZdb3Jq6ltFeGNVIDVVUNVesLUKhUiAVFllkkTykPF4riTa6UiAVomVyXI8b+4vzjDbKkhlnnDF/bqVjje1a1RdB1o8//phDwPhMbrvttjptlfWdcsop+btSelSeNwAAADCZVUpVDgqP6pnGnotqnBBVMeecc05uAYtgKsKXmBX1yy+/NPuY3333XW6fi3awUhtdSYRKTYnj1d9XtM1tuummY2wb86NiDlRR6g9dj2tXum6T43HHJkKlCPWi0ixaD/fee+/8/YnwsaEB9UcccURu/ayslBJMAQAAwGQaSo2raO+KOUcxcypE+PHWW2/lCp4QVTEROER7WbRrhRiqHdusuuqq+edevXrlypqo5llllVX+0HqigimCj6heakhUL3300Uf5+A1VSy288ML5nOqfY2wbgVlUCkV1T8zcilla4Z133slDwf+IaKNrqLqo/to+/PDD/CiFM9EuF8PSS9d7Qh07jhXn+cwzz5Tb92KofVzb0rHGdq0aEqHghhtumB/77LNPWmihhXKlXGXlWUkMQ48HAAAAMPFMsqFUzFK6+eab01NPPZVb2GLOUMybKgUX0UYW853++te/5va+WWaZJc92at26dbnqKkKMGAIeA8Tj7m0RUsUd/2IOUoRIMXC9uWIO1gYbbJADsM033zwfJ1r6Ygh73Fmwd+/eOQzbbLPN8lojvIo5UbGWmPV08MEH59lM0ZIYA8RjwPf555+fLrjggrz/CFFiJlIMdI95WxG4xXsibCmdz/iIlruo8opzXmKJJfLd7uJRKY4b1WhxraIyLUKjqDaKc6rfxvhHjx2fa4SN0WYXg8njc4xZXTFDLJ4PY7tW9cWcqwi/oiUwjhGD5uO6xV0eAQAAgCl8ptS4Ovroo3OVS58+fdJqq62WB1lvvPHGdbaJ8CeGo0dYFMFKzB2KKptopyuJgeYRSkXQEdVIsY/K6qrminXEHefuu+++HJgsv/zy+Y5vlcFH3AUuXosh5BGexRD0UqVQnEsMaY+7APbo0SOHXDGjqnJwdwwXj9laEW7Fnf8iuInQpvJ8xlVUI+2111453Jl55pnTqaeeOsY2EXrdfvvtOfyLY8e1jEq0G264YbyP29Sx4zOJarD43OLzi7vv3X333eVWu+Zcq0ox++rSSy/Nn3+EjdHG9+9//zvPqgIAAACqo1Vt/MY/hfj+++9zxU1URe26665pUhftgNFOFyFL6Q6DTHgxUyoPPO93Y2rdtm4VGVOuEQObX0kJAAAwJf4ePXLkyHzztcmufa85Yv5StMjFHfjiQkQ1TSi1gU1qHnroodzuFq10cVe/qLSKFrjSjCwAAACAScVkHUqF008/PQ/JjqHa0RL2+OOPp5lmmilNin799dd05JFHpnfffTe37UX72zXXXNPgHeQAAAAAWrLJOpSKweXPPfdcmlzE3Kp4AAAAAEzqJtlB5wAAAABMuoRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4doUf0iYNA0b0CfV1NRUexkAAAAwWVApBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDh2hR/SJg09eg/OLVu277ay6CFGDGwb7WXAAAAMElTKQUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKMUE071793T22WeP03tWW2211K9fv4m2JgAAAKBlEkoBAAAAUDihFH/YL7/8Uu0lAAAAAJMYodRkLtrj9ttvv9wiN/3006dZZ501XXrppen7779PO++8c+rYsWOab7750j333JO3//3339Ouu+6a5p577tSuXbu04IILpnPOOafOPnfaaae08cYbp5NOOil17do1b9OQyy67LHXu3Dk9+OCD+ec45g477JCmm2661KVLl3TGGWeM8Z6vv/46bxNrbd++fVpvvfXS22+/nV+rra1NM888c7r55pvL2/fs2TPvq+SJJ55Ibdu2TT/88EP+uVWrVnkdm2yySd7f/PPPn+64444Jcm0BAACA8SeUmgJcddVVaaaZZkrPPvtsDqj+8pe/pC222CKtuOKK6fnnn0/rrLNO2n777XOQM3r06DTHHHOkm266Kb322mvp2GOPTUceeWS68cYb6+wzgqY333wz3X///enOO+8c45innnpqOvzww9N9992X1lxzzfzcX//61/Too4+m22+/PT//yCOP5OPXD7yGDh2ag6Onn346B1Hrr79++vXXX3PAtOqqq+b3lQKs119/Pf3444/pjTfeyM/F/pdZZpkcQJUMGDAgbbnllunll1/O+9p2223TV199NVGuNQAAANA8QqkpwBJLLJGOPvroXCV0xBFHpGmnnTaHVLvvvnt+LoKnL7/8Moc2U089dQ5xll566VwtFQFOVFTVD6U6dOiQK5AWXXTR/Kh02GGH5YHnERAtu+yy+bnvvvsuXX755en000/PIdViiy2Ww7Lffvut/L6oiIowKva7yiqr5HVfc8016b///W8aNGhQufKrFEo99thjqVevXnWeiz979+49RtC1zTbb5Iqwk08+Oa8lArrG/Pzzz2nUqFF1HgAAAMCEJZSaAiy++OLlv0811VRpxhlnzKFQSbT0hc8++yz/+fe//z0ttdRSuVUuWu0uueSS9MEHH9TZZ7x/mmmmGeNY0ZIX7YHRRlcZVg0fPjzPnlpuueXKz80wwwx1Wv+i6qlNmzZ1tom1xjbxWojAKSq4Pv/88xx6RSBVCqWimuqpp57KPzd2/hGm1dTUlM+1Iaecckrq1KlT+dGtW7cmri4AAAAwPoRSU4CofqoUbXCVz8XPIVr3rr/++nTIIYfkuVLRYvfiiy/mSqn6w8wj3GlIVDjFXKr6lVUTSoRhEWZFIFUZSsXfhwwZkoOpaEsc2/nHuTYmqslGjhxZfnz44YcT5VwAAABgStam2gugZXnyySdzqLP33nvXqXJqrmjX23fffdO6666bq54i4ArzzjtvDoeeeeaZNOecc5ZnQr311lvldruFF144t/PFNqVgKdoKY3bVIossUg6UIviKuVSvvvpqWnnllfP8qGi5u/jii3PbYWOBWXPFoPR4AAAAABOPSinqiBlTMWh88ODBOTA65phjcgXSuIhA6e67786zqWK2VIg2wKi+imHnDz30UBo2bFie9dS6des6x95oo43yrKto/3vppZfSdtttl2afffb8fElURl133XX5znux39hHDECP+VP150kBAAAALZNQijr23HPPtOmmm6atttoqz3aKSqXKqqnmigqmu+66Kw9YP++88/Jzp512Wq5y2nDDDdNaa62Vt4nZVZWuuOKK/NwGG2yQVlhhhXz3vQi4KlvwIniKFsHK2VHx9/rPAQAAAC1Xq9r4rR9oVNx9Lw8873djat22fbWXQwsxYmDfai8BAACgRf8eHXOa42ZjjVEpBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFK5N8YeESdOwAX1STU1NtZcBAAAAkwWVUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUrk3xh4RJU4/+g1Prtu2rvQxaiBED+1Z7CQAAAJM0lVIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAMCkH0odd9xxqWfPnk1us9NOO6WNN954Qh96sjdixIjUqlWr9OKLL6aWLr4Hs846a17voEGDqr0cAAAAYHIPpQ455JD04IMPTujdklLq1q1b+uSTT1KPHj1SS/b666+nAQMGpIsvvjivd7311kvdu3dPZ599drWXBgAAALQQbSb0Dqebbrr8mBT98ssvaZpppkkt1VRTTZVmm2221NINHz48/7nRRhvlSqlq+f333/PxW7fWpQoAAAAtzTj9tn7JJZekrl27ptGjR9d5PsKHXXbZpcH2vQgGDjrooNS5c+c044wzpkMPPTTV1tbWeX/s75RTTklzzz13ateuXVpiiSXSzTffXGebRx99NC277LKpbdu2qUuXLunwww9Pv/32W6NrvfLKK/Mxo3Vs/vnnT9NOO23q06dP+vDDD8vblNZ62WWX5WPHNuGDDz7I5xThWk1NTdpyyy3Tp59+Wmf///73v9MyyyyT3zPTTDOlTTbZpPzazz//nCvGZp999tShQ4e03HLLpUceeaT8+vvvv5823HDDNP300+fXF1100XT33Xfn177++uu07bbbpplnnjlfi1j7FVdc0WD7Xuwzfo7KtKWXXjq1b98+rbjiiunNN9+ss9YTTzwxzTLLLKljx45pt912y9euqRbLptYQXnnllbTGGmvk1+Iz3WOPPdJ3331XvqZxbiHCoFjfaqutls/5wAMPzD/HI74Dsf/KzznWFJ9tyRNPPJE/7x9++CH/fOaZZ6bFFlssX7OoGtt7773Lx638zO+44460yCKL5PfGZzm2zwMAAABo4aHUFltskb788sv08MMPl5/76quv0r333ptDjIacccYZOSz4xz/+kUOG2P62226rs00EUldffXW66KKL0quvvprDi+222y4HUeG///1vWn/99XMI9NJLL6ULL7wwXX755TlsaUqEGSeddFLe95NPPpm++eabtPXWW9fZ5p133km33HJLuvXWW3PYEwFZBFKxzjj+/fffn95999201VZbld9z11135RAq1vTCCy/kUCgCs5J99903Pf300+n6669PL7/8cr5u6667bnr77bfz6/vss08OSh577LEc8Pztb38rV5cdc8wx6bXXXkv33HNPboOLc43QqylHHXVUvs5Dhw5Nbdq0KQeE4ZprrsnXII7x3HPPpTnnnDPvsylNreH777/P4V4EakOGDEk33XRTeuCBB/I5hwh/SgFWtO7FI67tHHPMkY4//vjycxFMrbrqquVwKIKwONaPP/6Y3njjjfxcXP/4zCNsK4Vc5557bv6OXHXVVemhhx7KIWf9zzzONYLG2C7CuLF9HvXFZzNq1Kg6DwAAAKCK7XsRRMR8oGuvvTatueaa+bmodInAYvXVV2/wPTFH6Igjjkibbrpp/jmCp8GDB9cJAE4++eQcbKywwgr5uXnmmScHWDGTqHfv3umCCy7IlTHnn39+DjMWWmih9PHHH6fDDjssHXvssY22Z/3666/5PVEZEyLIWHjhhdOzzz5bDpGiZS9Cq6jaCRFCRVD03nvv5WOGeD2qmSKEiZAkQp4It2JuUklUd4WozIlQJv6MqrJSUBPBXTwf5xqvbbbZZrnqp3S+JfFar169cuVTiFlMYxPriesUogqqb9++6aeffspVXOedd17adddd084775xfj+t133331akwqq+pNcRnH/uOaxJVRyGucVRHRRgUw82jWilUthpG62FUalU+FxVU8RmHCOjimPF6BFXxGcefpfMK/fr1K/891hSh5F577ZW/H5Wfefw8Lp9HfRGSVn62AAAAwIQ3zsN2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yyyzVG0dLf3zBAAAgCnZOIVS9957b1p55ZVzS1aEIxtssEEOIEoaqoiJapl4bsSIEXXa9eacc87Uvn37tMkmm6Qvv/yyyTa10aNHp+OPPz7NMcccqW3btvm1WEtTVltttbTvvvvmR6dOndJMM82UjjnmmFRbW1vepnv37umEE05IO+ywQ6qpqUl77LFHfv6WW25Jiy66aD5WbHPGGWfU2ffPP/+cDjvssNStW7e8zXzzzZcuv/zy8uvDhg1L6623Xg6RZp111rT99tunL774ovz6zTffnBZbbLHUrl27fB3XWmut9P3335ev4bLLLltufVtppZXS+++/3+B12WmnndLGG2+cTj/99NSlS5e8r3322Sf9+uuv5W2iYqlv3775WHPPPXe69tpr8zmdffbZjV67ptYQLrzwwjTvvPOmaaaZJi244ILpn//8Z51rGtfv6quvzp97rHH11VfPr00//fTl5+688868799//73O9+Twww8v72u33XZL2223Xf57fEe22WabNPvss+fvTVy/6667rsHPvF+/fvnz7tOnT7M+DwAAAKCFh1IRnBx00EFp6NChuY2sdevWOVSK0Ki5nnnmmbTrrrvm8CCCiAgsTjzxxCbfc8455+RgKMKXl19+OYcNf/rTn9Lbb7/d5Puuuuqq1KZNm/Tss8/mfZx55pnpsssuq7NN7HOJJZZIL7zwQg6tnnvuubTlllumrbfeOr3yyis5CIrnI0griRArApFzzz03vf766+niiy/OgUeIQG6NNdZIvXr1ytcpwrNPP/0077MUEkW4sssuu+T3RgC06aab5rDst99+yyFT796983k+/fTTOSiLsKYxDz/8cA4G488431hn/bV+/PHH+TgRFl1yySXps88+a3R/Y1vDbbfdlg444IB08MEH57Bnzz33TDvvvHM+fhgyZEhad9118/nGucZ1j+OGN998s/zcKquskr799tt83cOjjz6ag6RYZ0k8F0FT+Omnn3L11V133ZWPG2uKcCk+2/qfeYRlTz75ZLrooovG+nk0JELHUaNG1XkAAAAAE1ar2srSoXEU1SYzzzxzDm969OiRA4UImb7++uvygOsIniIQeO+993IVzZ///Oc0cuTIHC6URAAUYUGpwiqCoEGDBuX3hqiOiQqgI488svyeqORZZpll0t///vcG1xZhRoQvr776ajlQiSqc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oHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBtij8kTFpqa2vzn6NGjar2UgAAAKDFK/3+XPp9ujFCKRiLL7/8Mv/ZrVu3ai8FAAAAJhnffvtt6tSpU6OvC6VgLGaYYYb85wcffNDkP0xMWal/hJQffvhhqqmpqfZyaAF8J6jPd4L6fCeoz3eC+nwnmJy+E1EhFYFU165dm9xOKAVj0br1/41ei0BqUvsfAiau+D74TlDJd4L6fCeoz3eC+nwnqM93gsnlO9Gcog6DzgEAAAAonFAKAAAAgMIJpWAs2rZtm/r375//hOA7QX2+E9TnO0F9vhPU5ztBfb4TTInfiVa1Y7s/HwAAAABMYCqlAAAAACicUAoAAACAwgmlAAAAACicUAqa8Pe//z117949TTvttGm55ZZLzz77bLWXRBU99thjacMNN0xdu3ZNrVq1SoMGDar2kqiyU045JS2zzDKpY8eOaZZZZkkbb7xxevPNN6u9LKrowgsvTIsvvniqqanJjxVWWCHdc8891V4WLcTAgQPz///o169ftZdCFR133HH5e1D5WGihhaq9LKrsv//9b9puu+3SjDPOmNq1a5cWW2yxNHTo0Goviyrp3r37GP87EY999tknTW6EUtCIG264IR100EH5bgfPP/98WmKJJVKfPn3SZ599Vu2lUSXff/99/h5EWAnh0Ucfzf9y8J///Cfdf//96ddff03rrLNO/q4wZZpjjjly8PDcc8/lXybWWGONtNFGG6VXX3212kujyoYMGZIuvvjiHFrCoosumj755JPy44knnqj2kqiir7/+Oq200kpp6qmnzv8h47XXXktnnHFGmn766au9NKr4/zM+qfjfiPj3zLDFFlukyY2770EjojIqKiDOP//8/PPo0aNTt27d0n777ZcOP/zwai+PKov/UnHbbbflyhgo+fzzz3PFVIRVq666arWXQwsxwwwzpNNOOy3tuuuu1V4KVfLdd9+lJZdcMl1wwQXpxBNPTD179kxnn312tZdFFSulotr6xRdfrPZSaCHid4snn3wyPf7449VeCi1Uv3790p133pnefvvt/HvI5ESlFDTgl19+yf+Ve6211io/17p16/zz008/XdW1AS3XyJEjyyEE/P777+n666/PlXPRxseUKyoq+/btW+ffK5iyxS+WMQ5gnnnmSdtuu2364IMPqr0kquiOO+5ISy+9dK6Cif+41atXr3TppZdWe1m0oN9N//Wvf6VddtllsgukglAKGvDFF1/kXyZmnXXWOs/Hz//73/+qti6g5YpqyvivWFF+36NHj2ovhyp65ZVX0nTTTZfatm2b9tprr1xVucgii1R7WVRJBJMxBiBm0EGpGv/KK69M9957b55D995776VVVlklffvtt9VeGlXy7rvv5u/C/PPPnwYPHpz+8pe/pP333z9dddVV1V4aLcCgQYPSN998k3baaac0OWpT7QUAwORSCTFs2DBzQUgLLrhgbsuJyrmbb7457bjjjrmlUzA15fnwww/TAQcckGeBxE1TIKy33nrlv8eMsQip5pprrnTjjTdq852C/8NWVEqdfPLJ+eeolIp/p7jooovy/w9hynb55Zfn/92I6srJkUopaMBMM82UpppqqvTpp5/WeT5+nm222aq2LqBl2nfffXOf/8MPP5wHXTNlm2aaadJ8882XllpqqVwdEzdIOOecc6q9LKogRgHEDVJinlSbNm3yIwLKc889N/89qrKhc+fOaYEFFkjvvPNOtZdClXTp0mWM/3Cx8MILa+skvf/+++mBBx5Iu+22W5pcCaWgkV8o4peJBx98sM5/wYifzQUBSuJeIRFIRXvWQw89lOaee+5qL4kWKP7/x88//1ztZVAFa665Zm7njMq50iOqIWKGUPw9/gMYxCD84cOH52CCKVO0/r/55pt1nnvrrbdyBR1TtiuuuCLPGYu5hJMr7XvQiIMOOiiXy8a/PC677LL5LjkxrHbnnXeu9tKo4r80Vv5XzJgBEb9UxFDrOeecs6pro3ote9dee226/fbbU8eOHcsz5zp16pTatWtX7eVRBUcccUQusY//TYj5MPH9eOSRR/KMEKY88b8L9WfMdejQIc0444xmz03BDjnkkLThhhvmwOHjjz9O/fv3zwHlNttsU+2lUSUHHnhgWnHFFXP73pZbbpmeffbZdMkll+QHU/Z/1Lriiivy76RRXTu5mnzPDP6grbbaKt/e/dhjj82/aMbtm2MgZf3h50w5hg4dmlZfffU6wWWI/0cRA0uZ8sRQ0rDaaqvVeT7+BWJyHUZJ06JVa4cddkiffPJJDidjXkwEUmuvvXa1lwa0EB999FEOoL788ss088wzp5VXXjn95z//yX9nyrTMMsvkquv4DxvHH398rryO/yAeVZVMuR544IHcwhl33ZuctaqN3gMAAAAAKJCZUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAANGjEiBGpVatW6cUXX0wtxRtvvJGWX375NO2006aePXumSVVc10GDBlV7GQBQVUIpAIAWaqeddsrhxcCBA+s8H2FGPD8l6t+/f+rQoUN6880304MPPtjodh9++GHaZZddUteuXdM000yT5pprrnTAAQekL7/8stD1HnfccQ2GZ5988klab731Cl0LALQ0QikAgBYsKoL+9re/pa+//jpNLn755Zfxfu/w4cPTyiuvnEOmGWecscFt3n333bT00kunt99+O1133XXpnXfeSRdddFEOsVZYYYX01VdfpWqbbbbZUtu2bau9DACoKqEUAEALttZaa+UA45RTThmnapyzzz47de/evU7V1cYbb5xOPvnkNOuss6bOnTun448/Pv3222/pr3/9a5phhhnSHHPMka644ooGW+ZWXHHFHJD16NEjPfroo3VeHzZsWK76mW666fK+t99++/TFF1+UX19ttdXSvvvum/r165dmmmmm1KdPnwbPY/To0XlNsY4IbOKc7r333vLrUR323HPP5W3i73HeDdlnn31yddR9992Xevfuneacc868vgceeCD997//TUcddVSTbXRxba688so6VVdbbrllfj6u00YbbZRbG0seeeSRtOyyy+YKrthmpZVWSu+//37ex4ABA9JLL72UjxOP0n7rH/eVV15Ja6yxRmrXrl0O2/bYY4/03XffjfH5nX766alLly55mzjPX3/9tbzNBRdckOaff/78OcXnsPnmmzd4fQCgpRBKAQC0YFNNNVUOks4777z00Ucf/aF9PfTQQ+njjz9Ojz32WDrzzDNzK9wGG2yQpp9++vTMM8+kvfbaK+25555jHCdCq4MPPji98MILudJoww03LLfBffPNNzlM6dWrVxo6dGgOkT799NMc4lS66qqrclD05JNP5qqlhpxzzjnpjDPOyMHLyy+/nMOrP/3pT7niqdTytuiii+a1xN8POeSQMfYRVVCDBw9Oe++9dw54KkW4t+2226Ybbrgh1dbWNuuaRegT6+jYsWN6/PHH8/ojfFt33XVzxVeEehEWRfgVa3766adzoBSh01ZbbZXXGmuO9cYjnqvv+++/z8eIz2HIkCHppptuygFaBHmVHn744VwpFn/G9YyAqxRyxbXff//9c2AXrY3xOay66qrNOkcAqBahFABAC7fJJpvkqqEIkf6IqPI599xz04ILLpjnLcWfP/zwQzryyCNzhc0RRxyRg6MnnniizvsiHNlss83SwgsvnC688MLUqVOndPnll+fXzj///BxIRXC20EIL5b//4x//yMHJW2+9Vd5H7P/UU0/Nx4xHQyKMOuyww9LWW2+dt4m2xTjvqPoqhUpt2rTJoVD8Pf6sLwKsCJxirQ2J56MV8vPPP2/WNYsAKyq4LrvssrTYYovl90c12QcffJArpEaNGpVGjhyZw7155503v77jjjvm6qwIxWKNseZYbzzqB2Xh2muvTT/99FO6+uqrcyVahHxxXf/5z3/mgK8kQqt4Pq5zHK9v377luVqxnqjUiuejtTE+hwipAKAlE0oBAEwCIqCJ6pjXX399vPcRFTutW/////oXLV4RtFRWZUVb2GeffVbnfVEdVRIBS8xrKq0jWtMigIrwpfSI0CREVU/JUkst1eTaItyJKq5ofasUP4/POY+tEirCt+aI84uZVFEpVTq/CPciRIrzi79Ha11UOkUFWVR7RUXUuIjzW2KJJXKoVHneEYZF1VPl5xefUUm08ZU+q7XXXjuHUfPMM09un7zmmmty4AgALZlQCgBgEhCtWBF8RDVTfRE01Q9hKmcNlUw99dR1fo4Ws4aeizCkuWLuUYQxL774Yp1HVCxVto9VBi4T03zzzZfPobEgK56feeaZ8+ynENs2de3i/CJQq39+UQX25z//OW8TlVPRthdzt6KyaoEFFkj/+c9/Jvi5NfVZRWj2/PPP58HuEVYde+yxOeiK9koAaKmEUgAAk4iBAwemf//73zkAqRQhy//+97864UoEJxNKZcASM5Ri2HipPW7JJZdMr776ah6qHoFQ5WNcgqiamprUtWvXPLOpUvy8yCKLNHs/UekVVUMx9PvHH3+s81pco6ggisqmymtXWdkUYVplhVGcXzw3yyyzjHF+0cZYEu1yERg+9dRTuQUvWvJKFVm///57k2uOaxkVWTFbqvK8I2xsrNWxIVHFFoPxo00y5lvFMPaYIwYALZVQCgBgEhGtdjGoO+ZCVYq728WMpAgjoqXs73//e7rnnnsm2HFjf7fddlu+C1/c8S1mMsVMqhA/x3DxbbbZJg/pjuPHoPGdd955rGFMfTFQPdoUo9oo2tYOP/zwHK4dcMAB47SfmLv0888/58qyGOoed8+Lwd8RVkUVU1QRlZTmN8UQ9xgWHsPeKyuS4nrHHQPjjnsx6Py9997Ls6RiXlMMhI+fI4yKoDDuuBd3/IsQqxTaRVgX28R5xB0JY131xTHijnkxiyruZBjtkPvtt19uw4sWy+a488478/cijhPriPlUUUU1LqEWABRNKAUAMAmJu6vVb6+LACQqgyI8ipatZ599tsE70/2RCq14xL5jCPodd9yRg5pQqm6KAGqdddbJwVm/fv1ye1zl/KrmiKDnoIMOynesi/1EkBTHiiHp4yK2j4As5ivFXQBj1tJ6662XA6nS3fNK4m5/3bp1S6usskpux4vr1r59+/Lr8fcItmJw+aabbpqv9a677ppnSkV1V7weYV0Mgo/9x533IqiLuxiGeD7u1Lf66qvnqqxor6sv9hFBXoR7yyyzTNp8883TmmuumcOy5orrfeutt+aQLdYYdziMY8UcKgBoqVrVNvd+uAAAMImKOxeeeeaZ6f7770/LL798tZcDAAilAACYUsRA8pEjR+aKrHGt4gIAJjyhFAAAAACF85+IAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAVLT/B06DKpX9nyFqAAAAAElFTkSuQmCC",
|
| 788 |
+
"text/plain": [
|
| 789 |
+
"<Figure size 1200x600 with 1 Axes>"
|
| 790 |
+
]
|
| 791 |
+
},
|
| 792 |
+
"metadata": {},
|
| 793 |
+
"output_type": "display_data"
|
| 794 |
+
}
|
| 795 |
+
],
|
| 796 |
+
"source": [
|
| 797 |
+
"# Tool Usage Analysis\n",
|
| 798 |
+
"print(\"🔧 Tool Usage Analysis\")\n",
|
| 799 |
+
"print(\"=\" * 50)\n",
|
| 800 |
+
"\n",
|
| 801 |
+
"if 'Annotator Metadata' in df_full.columns:\n",
|
| 802 |
+
" tool_counts = {}\n",
|
| 803 |
+
" total_questions_with_tools = 0\n",
|
| 804 |
+
" \n",
|
| 805 |
+
" for idx, row in df_full.iterrows():\n",
|
| 806 |
+
" if pd.notna(row['Annotator Metadata']) and isinstance(row['Annotator Metadata'], dict):\n",
|
| 807 |
+
" tools = row['Annotator Metadata'].get('Tools', '')\n",
|
| 808 |
+
" if tools:\n",
|
| 809 |
+
" total_questions_with_tools += 1\n",
|
| 810 |
+
" # Split by numbered list items and clean up\n",
|
| 811 |
+
" tool_lines = [line.strip() for line in tools.split('\\n') if line.strip()]\n",
|
| 812 |
+
" for line in tool_lines:\n",
|
| 813 |
+
" # Remove numbering (1., 2., etc.)\n",
|
| 814 |
+
" if '. ' in line:\n",
|
| 815 |
+
" tool = line.split('. ', 1)[1] if len(line.split('. ', 1)) > 1 else line\n",
|
| 816 |
+
" else:\n",
|
| 817 |
+
" tool = line\n",
|
| 818 |
+
" \n",
|
| 819 |
+
" # Clean up common variations\n",
|
| 820 |
+
" tool = tool.lower().strip()\n",
|
| 821 |
+
" if tool.startswith('a '):\n",
|
| 822 |
+
" tool = tool[2:]\n",
|
| 823 |
+
" \n",
|
| 824 |
+
" # Normalize common tool names\n",
|
| 825 |
+
" if 'web browser' in tool or 'browser' in tool:\n",
|
| 826 |
+
" tool = 'web browser'\n",
|
| 827 |
+
" elif 'search engine' in tool or 'google' in tool:\n",
|
| 828 |
+
" tool = 'search engine'\n",
|
| 829 |
+
" elif 'calculator' in tool:\n",
|
| 830 |
+
" tool = 'calculator'\n",
|
| 831 |
+
" elif 'excel' in tool or 'spreadsheet' in tool:\n",
|
| 832 |
+
" tool = 'spreadsheet software'\n",
|
| 833 |
+
" elif 'pdf' in tool:\n",
|
| 834 |
+
" tool = 'pdf viewer'\n",
|
| 835 |
+
" elif 'image' in tool and 'recognition' in tool:\n",
|
| 836 |
+
" tool = 'image recognition tools'\n",
|
| 837 |
+
" \n",
|
| 838 |
+
" tool_counts[tool] = tool_counts.get(tool, 0) + 1\n",
|
| 839 |
+
" \n",
|
| 840 |
+
" print(f\"Total questions with tool information: {total_questions_with_tools}\")\n",
|
| 841 |
+
" print(f\"Unique tools identified: {len(tool_counts)}\")\n",
|
| 842 |
+
" \n",
|
| 843 |
+
" # Sort tools by frequency\n",
|
| 844 |
+
" sorted_tools = sorted(tool_counts.items(), key=lambda x: x[1], reverse=True)\n",
|
| 845 |
+
" \n",
|
| 846 |
+
" print(\"\\n📊 Tool usage frequency:\")\n",
|
| 847 |
+
" for tool, count in sorted_tools:\n",
|
| 848 |
+
" percentage = (count / total_questions_with_tools) * 100\n",
|
| 849 |
+
" print(f\" {tool}: {count} times ({percentage:.1f}%)\")\n",
|
| 850 |
+
" \n",
|
| 851 |
+
" # Create a simple visualization\n",
|
| 852 |
+
" if len(sorted_tools) > 0:\n",
|
| 853 |
+
" import matplotlib.pyplot as plt\n",
|
| 854 |
+
" \n",
|
| 855 |
+
" # Take top 10 tools for visualization\n",
|
| 856 |
+
" top_tools = sorted_tools[:10]\n",
|
| 857 |
+
" tools, counts = zip(*top_tools)\n",
|
| 858 |
+
" \n",
|
| 859 |
+
" plt.figure(figsize=(12, 6))\n",
|
| 860 |
+
" plt.barh(range(len(tools)), counts)\n",
|
| 861 |
+
" plt.yticks(range(len(tools)), tools)\n",
|
| 862 |
+
" plt.xlabel('Number of Questions')\n",
|
| 863 |
+
" plt.title('Top 10 Most Frequently Used Tools')\n",
|
| 864 |
+
" plt.gca().invert_yaxis()\n",
|
| 865 |
+
" plt.tight_layout()\n",
|
| 866 |
+
" plt.show()\n",
|
| 867 |
+
"else:\n",
|
| 868 |
+
" print(\"No annotator metadata found for tool analysis\")"
|
| 869 |
+
]
|
| 870 |
+
},
|
| 871 |
+
{
|
| 872 |
+
"cell_type": "code",
|
| 873 |
+
"execution_count": null,
|
| 874 |
+
"id": "39b01456",
|
| 875 |
+
"metadata": {},
|
| 876 |
+
"outputs": [],
|
| 877 |
+
"source": [
|
| 878 |
+
"# Display complete dataset with all information\n",
|
| 879 |
+
"print(\"Complete dataset with all metadata:\")\n",
|
| 880 |
+
"display_columns = ['task_id', 'Question', 'Level', 'Final answer', 'file_link'] + \\\n",
|
| 881 |
+
" [col for col in df_annotated.columns if col.startswith('annotator_')]\n",
|
| 882 |
+
"\n",
|
| 883 |
+
"# Clean display\n",
|
| 884 |
+
"display_df = df_annotated[display_columns].copy()\n",
|
| 885 |
+
"HTML(display_df.head(10).to_html(escape=False, index=False))"
|
| 886 |
+
]
|
| 887 |
+
},
|
| 888 |
+
{
|
| 889 |
+
"cell_type": "code",
|
| 890 |
+
"execution_count": null,
|
| 891 |
+
"id": "acaaf7c9",
|
| 892 |
+
"metadata": {},
|
| 893 |
+
"outputs": [],
|
| 894 |
+
"source": [
|
| 895 |
+
"# Export full dataset\n",
|
| 896 |
+
"df_annotated.to_csv('complete_questions_dataset.csv', index=False)\n",
|
| 897 |
+
"print(f\"Exported complete dataset to 'complete_questions_dataset.csv'\")\n",
|
| 898 |
+
"print(f\"Dataset contains {len(df_annotated)} rows and {len(df_annotated.columns)} columns\")\n",
|
| 899 |
+
"\n",
|
| 900 |
+
"# Show final summary\n",
|
| 901 |
+
"print(\"\\nFinal column summary:\")\n",
|
| 902 |
+
"for col in df_annotated.columns:\n",
|
| 903 |
+
" print(f\" {col}: {df_annotated[col].dtype}\")"
|
| 904 |
+
]
|
| 905 |
+
}
|
| 906 |
+
],
|
| 907 |
+
"metadata": {
|
| 908 |
+
"kernelspec": {
|
| 909 |
+
"display_name": "oraclebot",
|
| 910 |
+
"language": "python",
|
| 911 |
+
"name": "python3"
|
| 912 |
+
},
|
| 913 |
+
"language_info": {
|
| 914 |
+
"codemirror_mode": {
|
| 915 |
+
"name": "ipython",
|
| 916 |
+
"version": 3
|
| 917 |
+
},
|
| 918 |
+
"file_extension": ".py",
|
| 919 |
+
"mimetype": "text/x-python",
|
| 920 |
+
"name": "python",
|
| 921 |
+
"nbconvert_exporter": "python",
|
| 922 |
+
"pygments_lexer": "ipython3",
|
| 923 |
+
"version": "3.13.5"
|
| 924 |
+
}
|
| 925 |
+
},
|
| 926 |
+
"nbformat": 4,
|
| 927 |
+
"nbformat_minor": 5
|
| 928 |
+
}
|
data/metadata.jsonl
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|