diff --git a/.gitignore b/.gitignore index 5d381cc..d9d355f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,103 @@ -# ---> Python + +# Created by https://www.toptal.com/developers/gitignore/api/python,pycharm+all +# Edit at https://www.toptal.com/developers/gitignore?templates=python,pycharm+all + +### PyCharm+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm+all Patch ### +# Ignores the whole .idea folder and all .iml files +# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 + +.idea/* + +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +# Sonarlint plugin +.idea/sonarlint + +### Python ### # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] @@ -102,15 +201,7 @@ ipython_config.py # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control #poetry.lock -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +# PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff @@ -154,9 +245,34 @@ dmypy.json cython_debug/ # PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# End of https://www.toptal.com/developers/gitignore/api/python,pycharm+all + +# JS +node_modules/ + +test.csv \ No newline at end of file diff --git a/Lab1/image.png b/Lab1/image.png new file mode 100644 index 0000000..17d94a3 Binary files /dev/null and b/Lab1/image.png differ diff --git a/Lab1/lab1.ipynb b/Lab1/lab1.ipynb new file mode 100644 index 0000000..28959ca --- /dev/null +++ b/Lab1/lab1.ipynb @@ -0,0 +1,343 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Лабораторная 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Выгрузка данных из csv файла в датафрейм" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness', 'Insulin',\n", + " 'BMI', 'DiabetesPedigreeFunction', 'Age', 'Outcome'],\n", + " dtype='object')\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "df = pd.read_csv(\".//static//scv//diabetes.csv\")\n", + "print(df.columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Посмотрим краткое содержание датасета. Видим, что датасет состоит из 768 строк и 9 столбцов" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 768 entries, 0 to 767\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Pregnancies 768 non-null int64 \n", + " 1 Glucose 768 non-null int64 \n", + " 2 BloodPressure 768 non-null int64 \n", + " 3 SkinThickness 768 non-null int64 \n", + " 4 Insulin 768 non-null int64 \n", + " 5 BMI 768 non-null float64\n", + " 6 DiabetesPedigreeFunction 768 non-null float64\n", + " 7 Age 768 non-null int64 \n", + " 8 Outcome 768 non-null int64 \n", + "dtypes: float64(2), int64(7)\n", + "memory usage: 54.1 KB\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PregnanciesGlucoseBloodPressureSkinThicknessInsulinBMIDiabetesPedigreeFunctionAgeOutcome
061487235033.60.627501
11856629026.60.351310
28183640023.30.672321
318966239428.10.167210
40137403516843.12.288331
\n", + "
" + ], + "text/plain": [ + " Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n", + "0 6 148 72 35 0 33.6 \n", + "1 1 85 66 29 0 26.6 \n", + "2 8 183 64 0 0 23.3 \n", + "3 1 89 66 23 94 28.1 \n", + "4 0 137 40 35 168 43.1 \n", + "\n", + " DiabetesPedigreeFunction Age Outcome \n", + "0 0.627 50 1 \n", + "1 0.351 31 0 \n", + "2 0.672 32 1 \n", + "3 0.167 21 0 \n", + "4 2.288 33 1 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.info()\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Группируем данные по возрасту и вычисляем среднее значение глюкозы для каждой возрастной группы" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABH8AAAK9CAYAAAC928AHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgWUlEQVR4nO3dd5RU9f0//tfQlo7SQZqKgr2gMaCxEkBRLHyjJvaGGrAmKsSusSaxd1TUWBK7JkT8WNEoFuwmiKioRAFBBQSkCO/fHx7mxwJbZnZX4PJ4nDPn7N6589rXlBez++R97+RSSikAAAAAyKRaK7sBAAAAAGqO8AcAAAAgw4Q/AAAAABkm/AEAAADIMOEPAAAAQIYJfwAAAAAyTPgDAAAAkGHCHwAAAIAME/4AAAAAZJjwBwAAACDDhD8AUA0uueSSyOVy8a9//Wu566ZOnRr16tWLvffeeyV0BgDAmk74AwDV4Igjjog6derErbfeutx1t99+eyxcuDAGDRq0EjoDAGBNl0sppZXdBABkwb777hv//Oc/Y9KkSdG2bduIiEgpRdeuXWPhwoXx6aefRq1a/t8FAICflt9AAaCaHHPMMfHDDz/EHXfckd/29NNPxyeffBJHHnlkPvi54447IpfLxQsvvBDHHntstGjRIpo2bRqHHnpofPvtt8vVveGGG2KTTTaJkpKSaN++fQwePDhmzJhRap+dd945crlc/tKyZcvo379/vP/++8vVu/vuu6NHjx7RoEGDaN68eRx44IExadKk5eptuummy932z3/+c+Ryufj000/z27p06RJ77rlnAY/U/69Lly6l+l5yOfroo0vtd955561wv8MPPzy/z5LHdenennzyyejVq1c0bNgwmjVrFnvuuedyj8mS2kt77rnnoqSkJI477rhS2996663Yfffdo2nTptG4cePYbbfd4pVXXim1z8MPPxw/+9nPonnz5tGgQYPo3r17XHbZZbH0/7ct+ZnTp08v97FZ+v6VZfHixXH11VfHZpttFvXr149WrVpFv379YuzYseXerrKvmR9++CEuvPDCWH/99aOkpCS6dOkSf/jDH2L+/Pml9tt7772jS5cuUb9+/WjdunUMGDAg3nvvvVL75HK5GDJkSNxzzz3RrVu3qF+/fvTo0SNeeOGFUvt99tln8dvf/ja6desWDRo0iBYtWsSvfvWrUs/tEjNmzIhTTjklunTpEiUlJdGhQ4c49NBDY/r06fH888+v8HWz9OW8887L16rM87vkdVavXr2YNm1aqevGjBmTr1vR4w8AP6U6K7sBAMiKfv36RceOHeO2226LM844I3K5XAwfPjxq1aoVRx111HL7DxkyJNZaa60477zzYvz48XHjjTfGZ599lv+DNeLHkOD888+P3r17x/HHH5/f7/XXX4+XXnop6tatm6/XvXv3OPPMMyOlFB9//HFcccUVsccee8Tnn3+e3+eiiy6Ks88+O/bff/84+uijY9q0aXHttdfGjjvuGG+99VastdZaNf44LWvLLbeM3/3ud6W2de3adYX7/vWvf81/fcopp5Rb98UXX4w99tgjOnfuHOeee24sXLgwbrjhhth+++3j9ddfjw033HCFt3vnnXdin332iT322COuv/76/Pb//Oc/8Ytf/CKaNm0ap59+etStWzduvvnm2HnnnWP06NGx3XbbRUTErFmzYrvttovDDjss6tatG6NGjYqhQ4dGnTp1lruf1eGoo46KO+64I3bfffc4+uij44cffogXX3wxXnnlldhmm23KvW1lXjNHH3103HnnnfH//t//i9/97nfx6quvxiWXXBLjxo2LRx55pFS9QYMGRdu2bePLL7+M6667Lnr37h0TJ06Mhg0b5vcZPXp0/P3vf48TTzwxSkpK4oYbboh+/frFa6+9lg8cX3/99Xj55ZfjwAMPjA4dOsSnn34aN954Y+y8887x3//+N19v9uzZ8Ytf/CLGjRsXRx55ZGy99dYxffr0ePzxx+N///tfbLTRRqVeM7fcckuMGzcurrzyyvy2zTffPCIq//wuUbt27bj77rtLvQ5HjBgR9evXj3nz5lXquQOAn0wCAKrNueeemyIiPfvss+mrr75K9erVS3vssUepfUaMGJEiIvXo0SMtWLAgv/3yyy9PEZEee+yxlFLK375Pnz5p0aJF+f2uu+66FBHp9ttvz2/baaed0k477VTq5/zhD39IEZG++uqrlFJKn376aapdu3a66KKLSu333nvvpTp16pTavtNOO6VNNtlkufv3pz/9KUVEmjhxYn5b586dU//+/Sv5CJVW2dueeeaZKZfLLXfbww47LP/9ksd1SW89evRIzZo1S1OmTMnv8+GHH6a6deumgQMH5rctec5S+vExateuXdphhx3S999/X+rn7bPPPqlevXrp448/zm/78ssvU5MmTdKOO+5Ybv8bb7xx2nPPPZf7mdOmTSvzNsvevxV59tlnU0SkE088cbnrFi9eXO5tK/Oaefvtt1NEpKOPPrrUfr///e/zr/Oy3H///Ski0tixY/PbImK5bZ999lmqX79+2nffffPb5s6du1y9MWPGpIhId911V37bOeeckyIiPfzww8vtv6L7f9hhh6XOnTuvsN/KPr9LXme//vWv02abbZbfPmfOnNS0adP0m9/8JkVEev3111f4cwBgZXDYFwBUo6OOOipq1aoVw4cPjxEjRsSCBQvKPNHzoEGDSq3cOf7446NOnTr5Twx7+umnY8GCBXHyySeXOlfQMcccE02bNo2RI0eWqrdw4cKYPn16TJs2LcaMGROPPPJIbL755tGyZcuI+PFwpMWLF8f+++8f06dPz1/atm0bG2ywQTz33HOl6i1atKjUftOnT4+5c+eu8L4s+dlff/11/PDDD4U/cBVYsGBBlJSUVGrfb7/9Nj788MN444034qCDDoo2bdrkr9tggw1iwIABMWrUqFi0aFGp23399dfRt2/faNKkSTz++ONRv379/HWLFi2K//u//4t99tkn1ltvvfz2du3axW9+85v497//HbNmzSpVb/r06fG///0v7rjjjvjoo49ixx13XK7Xb775JqZPnx5z5syp1H1b1kMPPRS5XC7OPffc5a5b9lC2FanoNbPktXjqqaeWut2SFUzLvgbnzp0b06dPj7fffjuGDx8ebdq0WW6FVc+ePaNHjx757zt16hR77713PPnkk/nnpEGDBqV6/Prrr6Nr166x1lprxZtvvlnq/m+xxRax7777FnX/lyjm+T3kkEPigw8+yB/e9dBDD0WzZs1it912q/TPBYCfisO+AKAadezYMfr16xcPP/xwvPzyy9G+ffvo37//CvfdYIMNSn3fuHHjaNeuXf68Jp999llERHTr1q3UfvXq1Yv11lsvf/0SL7/8crRq1apU/UcffTT/R/CECRMipbTcz11i6SAqIuKDDz4oVa88//d//5fft3bt2rH55pvHpZdeGn369KnU7SsyY8aMaNy4caX23XrrrfNfL/vYRURstNFG8dBDD8X06dNLBUN77rlnjB8/Plq3bl3q/DwREdOmTYu5c+eWWW/x4sUxadKk2GSTTSIiYt68efnHI5fLxR/+8Ic47bTTlrvt0vVat24dxxxzTJx//vlRu3btSt3Xjz/+ONq3bx/Nmzev1P7Lqug189lnn0WtWrWWOwyvbdu2sdZaay33Grzgggvisssuy9d6/vnno0mTJqX2WdHrb8MNN4y5c+fGtGnTom3btvH999/HJZdcEiNGjIgvvvii1PMxc+bMUvd/4MCBRd33pRX6/EZEtGrVKvr37x+33357bLPNNnH77bfHYYcd5qTuAKyShD8AUM2OOeaY+Ne//hWfffZZnHnmmVGnzk/zdrv55pvHX/7yl4j48Y/Za665Jnbeeed48803o23btrF48eLI5XLxxBNPrDBcWDZc6dKlSwwfPrzUtgceeCBuueWW5W673XbbxR//+MeIiPjyyy/jsssui3333Tf+85//RJcuXap836ZMmZL/BLWK3H333TF37twyV1yV5YMPPognnngi9t9///jd734XI0aMKKbViPgxoHvqqadi7ty58eKLL8Zll10WHTt2jGOPPbbUfg899FA0bdo05s6dG4888khcdNFF+XPO/BQqes0sUdlVNEcffXTstttu8b///S+uvPLKGDhwYLz88svRrFmzgvo64YQTYsSIEXHyySdHz549o1mzZpHL5eLAAw+MxYsXF1SrJh155JFx6KGHxgknnBAvvPBC3HrrrfHiiy+u7LYAYDnCHwCoZnvuuWe0bt06pk2bttynVi1twoQJscsuu+S/nz17dkyePDn22GOPiIjo3LlzRESMHz++1KEoCxYsiIkTJ0bv3r1L1Vt77bVLbdt5552jffv2MWLEiBg2bFisv/76kVKKddddt8yTHS+tUaNGy/2Mt99+e4X7tmzZstS+Xbt2je233z5eeOGFagl//vvf/5Za0VOe7bffPho1ahSDBg2K8ePHL3f9Bx98EI0aNcof2rTE448/Hr/4xS/ikksuiSFDhsTBBx+cP4SnVatW0bBhwzLr1apVKzp27JjfVqtWrfzjMWDAgPjmm2/inHPOWS782XHHHfN9DBgwIF566aUYNWpUpcOf9ddfP5588sn45ptvilr9U9FrpnPnzrF48eKYMGFCbLTRRvn9pk6dGjNmzMi/Rpfo2rVrfpVQ7969o1OnTnHvvffG8ccfn99nwoQJy/Xx4YcfRsOGDfOrkB588ME47LDD8sFUxI+rqZb9lLv1119/hZ9oV6hCn98ldt9996hfv34ceOCBscMOO8T6668v/AFglWRdKgBUs2+++SZmzpwZv/zlL8sNPm655ZZYuHBh/vsbb7wxfvjhh9h9990j4sc/nuvVqxfXXHNNqcNebrvttpg5c2aZh5Mt8f3330dE5D+Se7/99ovatWvH+eefv9xhTSml+Prrrwu6n+VZsjqjsocvlWfs2LHx8ccfx6677lrp27Rq1Sq23nrruPfee0t9HPfHH38cjz/+eOy+++7L9faLX/wiIiJ++9vfRq9eveLYY4/NP4a1a9eOPn36xGOPPVbq48anTp0a9957b+ywww7RtGnTMvuZPn36ch+NvqyUUqSUCnrMBg4cGCmlOP/881dYr1DLvmaWBJFXXXVVqf2uuOKKiIhyX4NLPsZ+2fs9ZsyYUuftmTRpUjz22GPRp0+f/H2vXbv2cv1fe+21y52naeDAgfHOO+8s96ljEYXd/2Kf3zp16sShhx4a7777bhx55JGV/nkA8FOz8gcAqsm7774bDz74YDzxxBMxf/78GDJkSLn7L1iwIHbbbbfYf//9Y/z48XHDDTfEDjvsEAMGDIiIHwOMYcOGxfnnnx/9+vWLAQMG5Pfbdttt4+CDDy5Vb+rUqXH33XdHxI9/eN98881Rp06d2HPPPSPix1USf/zjH2PYsGHx6aefxj777BNNmjSJiRMnxiOPPBKDBg2K3//+90Xd92nTpsWoUaMiImLy5Mlx2WWXRbNmzUqtbCrGBRdcEFdffXWst956ceihhxZ028svvzz69esXP//5z+PYY4+NH374Ia677rqoX79+XHTRRWXeLpfLxa233hpbbrllnHvuuXH55ZdHRMQf//jHeOqpp2KHHXaI3/72t1GnTp24+eabY/78+fl9In4MJLp27Rrrr79+LFiwIEaNGhUjR45c4evh2WefLXXY10cffRQnn3xype/jLrvsEoccckhcc801MWHChOjXr18sXrw4Xnzxxdhll10qfA1W9JrZYost4rDDDotbbrklZsyYETvttFO89tprceedd8Y+++yTf37/9a9/xa233hq9evWK5s2bxyeffBLDhw+PRo0aLXcy5k033TT69u1b6qPeI6JUgLXnnnvGX//612jWrFlsvPHGMWbMmHj66aejRYsWpWqddtpp8eCDD8avfvWrOPLII6NHjx7xzTffxOOPPx433XRTbLHF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Hh0nnnhi3HHHHdXcGgAAAABVVfDKn6FDh8Ytt9wSDRs2jDfffDP+9re/xfbbbx8jRoyIqVOnxhlnnFETfQIAAABQhIJX/tx9991x3333xYsvvhjXXXddXHXVVfHwww/HjTfeGLfffntN9AgAAABAkQpe+TNt2rTYZJNNokOHDlG/fv3o0aNHRET84he/iEmTJlV7gwAAAAAUr+CVPy1btozp06dHRMRZZ50VrVu3joiIOXPmRJMmTaq3OwAAAACqpOCVP4ceemjMmDEjIiKGDRuW3z569OjYdtttq60xAAAAAKqu4PDnkksuWeH2448/Po4//vgqNwQAAABA9Sk4/Fli2rRpMX78+IiI6NatW7Rq1aramgIAAACgehR8zp85c+bEkUceGe3bt48dd9wxdtxxx2jfvn0cddRRMXfu3JroEQAAAIAiFRz+nHrqqTF69Oh4/PHHY8aMGTFjxox47LHHYvTo0fG73/2uJnoEAAAAoEgFH/b10EMPxYMPPhg777xzftsee+wRDRo0iP333z9uvPHG6uwPAAAAgCooeOXP3Llzo02bNsttb926tcO+AAAAAFYxBYc/PXv2jHPPPTfmzZuX3/b999/H+eefHz179qzW5gAAAAComoIP+7r66qujb9++0aFDh9hiiy0iIuKdd96J+vXrx5NPPlntDQIAAABQvILDn0033TQmTJgQ99xzT3zwwQcREfHrX/86DjrooGjQoEG1NwgAAABA8QoOfyIiGjZsGMccc0x19wIAAABANSv4nD9lHdr18ccfx0477VTlhgAAAACoPgWHP//v//2/ePDBB0ttu/rqq2OLLbaIDTfcsNoaAwAAAKDqCj7s6/77748DDjggZs6cGTvttFMcccQR8fnnn8eDDz4Y/fr1q4keAQAAAChSweHP7rvvHiNHjowBAwbE/Pnz46CDDoqRI0dG06ZNa6I/AAAAAKqg4MO+IiJ+8YtfxLPPPhuNGzeO1q1bC34AAAAAVlEFr/zZb7/98l+3b98+Lr300nj55Zdj7bXXjoiIhx9+uPq6AwAAAKBKCg5/mjVrlv96q622iq222qpaGwIAAACg+hQc/owYMaIm+gAAAACgBhQc/izxySefxH//+9/I5XKx0UYbxXrrrVedfQEAAABQDQoOf2bNmhVHHXVUPPTQQ1Gnzo83X7RoUQwcODBuu+22aNKkSbU3CQAAAEBxCv60r5NOOinGjRsXL730UsybNy/mzZsXL774Yvz3v/+NU045pSZ6BAAAAKBIBYc/jz32WNxyyy3Rs2fPqFWrVtSqVSt69eoVN910UzzyyCM10SMAAAAARSo4/ImIaNq06Qq3zZs3r8oNAQAAAFB9Cg5/tttuuzjjjDNixowZ+W3ffvttDBs2LLbffvvq7A0AAACAKir4hM9XXXVV7LrrrtGhQ4fo1q1bRESMHz8+WrZsGaNGjar2BgEAAAAoXsErf7p16xb/+c9/4k9/+lO8//77scMOO8Tw4cPjww8/jO7du9dEjwAAAAAUqeDwZ9asWVGrVq34zW9+EyUlJXHUUUdF//79Y968eTFr1qya6BEAAACAIhV82Ndaa60VuVwuIiJSSrHVVlvlv87lcrFo0aLq7RAAAACAohUc/jz33HM10QcAAAAANaDg8GennXaqiT4AAAAAqAEFhz+PP/54udcPGDCg6GYAAAAAqF4Fhz/77LNPmdc55w8AAADAqqXgT/uKiJg8eXIsXrx4uYvgBwAAAGDVUlT4U6tWUTcDAAAA4CdW8GFfERHDhw+PtddeOxo1ahTt27ePLbfcMlq2bFndvQEAAABQRQWHP506dYpbbrklFi5cGLNmzYo5c+ZErVq1on///vHXv/41mjZtWhN9AgAAAFCEgo/f+vTTT+PTTz+NL774Ir777ruYOXNmPPnkk/Hhhx/G6aefXhM9AgAAAFCkKp+8p0mTJrHbbrvFDTfcEP/3f/9XHT0BAAAAUE2q7czNu+yyS3zyySfVVQ4AAACAalBw+POzn/0svv3225roBQAAAIBqVnD4M3bs2Fi4cGFN9AIAAABANau2w74AAAAAWPUUHP7kcrnI5XI10QsAAAAA1axOoTdIKcXhhx8eJSUlK7z+4YcfrnJTAAAAAFSPgsOfww47rCb6AAAAAKAGFBz+jBgxoib6AAAAAKAGOOEzAAAAQIYJfwAAAAAyTPgDAAAAkGHCHwAAAIAME/4AAAAAZFiVwp8vvvgiBgwYEJ06dYr+/fvHpEmTqqsvAAAAAKpBlcKf3/3ud/HFF1/E0KFD4/vvv48TTjihuvoCAAAAoBrUqcqNX3755fjb3/4WvXr1iv79+8fWW29dXX0BAAAAUA2qtPJnxowZ0bZt24iIaNu2bcyYMaM6egIAAACgmhS88ufdd9/Nf7148eL44IMPYvbs2TF//vxqbQwAAACAqis4/Nlyyy0jl8tFSikiIvbcc8/897lcrtobBAAAAKB4BYc/EydOrIk+AAAAAKgBBYc/nTt3rok+AAAAAKgBBYc/jz/+eLnXDxgwoOhmAAAAAKheBYc/++yzT/7rpc/9s+T7RYsWVUtjAAAAAFRdwR/1vnjx4vylYcOG8dFHH+W/F/wAAAAArFoKDn8AAAAAWH0IfwAAAAAyrOBz/syaNSv/dS6Xi9mzZ5fa1rRp0+rpDAAAAIAqKzj8WWuttSKXy0VEREopttpqq/zXTvgMAAAAsGopOPx57rnnaqIPAAAAAGpAweHPTjvtVBN9AAAAAFADijrh84svvhgHH3xw9OrVK7744ouIiPjrX/8a//73v6u1OQAAAACqpuDw56GHHoq+fftGgwYN4s0334z58+dHRMTMmTPj4osvrvYGAQAAACheweHPH//4x7jpppti+PDhUbdu3fz27bffPt58881qbQ4AAACAqik4/Bk/fnzsuOOOy21v1qxZzJgxozp6AgAAAKCaFBz+tG3bNj766KPltv/73/+O9dZbr1qaAgAAAKB6FBz+HHPMMXHSSSfFq6++GrlcLr788su455574ve//30cf/zxNdEjAAAAAEUq+KPehw4dGosXL47ddtst5s6dGzvuuGOUlJTE73//+zjhhBNqokcAAAAAilRw+JPL5eLMM8+M0047LT766KOYPXt2bLzxxtG4ceOa6A8AAACAKig4/FmiXr16sfHGG0dKKSZOnBh169aNkpKS6uwNAAAAgCoq+Jw/b7zxRvTs2TN23333+Pjjj6NHjx7RtWvXaNOmTYwePbomegQAAACgSAWHPyeeeGI0adIkmjZtGr/85S9js802i/feey8OPPDAOOOMM2qiRwAAAACKVPBhX++880688cYb0blz52jcuHH8/ve/j0022SROP/302HzzzWuiRwAAAACKVPDKn7lz50bz5s2jfv360aBBg2jUqFFERDRq1Ci+//77am8QAAAAgOIVdcLn4cOHR+PGjeOHH36IO+64I1q2bBnfffdddfcGAAAAQBUVHP506tQphg8fHhERbdu2jb/+9a+lrgMAAABg1VFw+PPpp5/WQBsAAAAA1ISCz/mztJRSpJSqqxcAAAAAqllR4c9dd90Vm222WTRo0CAaNGgQm2++eanDvwAAAABYNRQc/lxxxRVx/PHHxx577BH3339/3H///dGvX7847rjj4sorryy6kUsvvTRyuVycfPLJ+W3z5s2LwYMHR4sWLaJx48YxcODAmDp1atE/AwAAAGBNU/A5f6699tq48cYb49BDD81vGzBgQGyyySZx3nnnxSmnnFJwE6+//nrcfPPNsfnmm5fafsopp8TIkSPjgQceiGbNmsWQIUNiv/32i5deeqngnwEAAACwJip45c/kyZOjV69ey23v1atXTJ48ueAGZs+eHQcddFAMHz481l577fz2mTNnxm233RZXXHFF7LrrrtGjR48YMWJEvPzyy/HKK68U/HMAAAAA1kQFhz9du3aN+++/f7ntf//732ODDTYouIHBgwdH//79o3fv3qW2v/HGG7Fw4cJS27t37x6dOnWKMWPGlFlv/vz5MWvWrFIXAAAAgDVVwYd9nX/++XHAAQfECy+8ENtvv31ERLz00kvxzDPPrDAUKs/f/va3ePPNN+P1119f7ropU6ZEvXr1Yq211iq1vU2bNjFlypQya15yySVx/vnnF9QHAAAAQFYVvPJn4MCB8eqrr0bLli3j0UcfjUcffTRatmwZr732Wuy7776VrjNp0qQ46aST4p577on69esX2kaZhg0bFjNnzsxfJk2aVG21AQAAAFY3Ba/8iYjo0aNH3H333VX6wW+88UZ89dVXsfXWW+e3LVq0KF544YW47rrr4sknn4wFCxbEjBkzSq3+mTp1arRt27bMuiUlJVFSUlKl3gAAAACyoqjwZ9GiRfHII4/EuHHjIiJi4403jr333jvq1Kl8ud122y3ee++9UtuOOOKI6N69e5xxxhnRsWPHqFu3bjzzzDMxcODAiIgYP358fP7559GzZ89i2gYAAABY4xQc/vznP/+JAQMGxJQpU6Jbt24REXHZZZdFq1at4h//+EdsuummlarTpEmT5fZt1KhRtGjRIr/9qKOOilNPPTWaN28eTZs2jRNOOCF69uwZP//5zwttGwAAAGCNVHD4c/TRR8cmm2wSY8eOzX80+7fffhuHH354DBo0KF5++eVqa+7KK6+MWrVqxcCBA2P+/PnRt2/fuOGGG6qtPgAAAEDWFRz+vP3226WCn4iItddeOy666KLYdtttq9TM888/X+r7+vXrx/XXXx/XX399leoCAAAArKkK/rSv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bxXV45w5c6JPnz6Ry+Xi2WefjZdeeikWLFgQe+21VyxevHiFNTt06BCXXnppvPHGGzF27NjYddddY++9947//Oc/ERFxyimnxD/+8Y944IEHYvTo0fHll1/GfvvtV+ZzU5mahcxOZWoWMz+V6bPQ+amo3hKVnZ3K1ixkdipTs9DZqahmobNT2T4LnZ/y6hUzO8t6/fXX4+abb47NN9+81PZiZqiimsXMUHk1i52h8nosdH4qU3OJQmaoMjULnaGKahYzQ+XVLHaGKuqz0Bkqr15VZmiTTTYpdd/+/e9/568rZn7Kq1fs7JRVsyqzU16fxc5PeTWXKHR+KqpZ6PyUV6/Y2SmrZlVmp7w+i52dsmoWOz/ffvttbL/99lG3bt144okn4r///W/85S9/ibXXXju/z+WXXx7XXHNN3HTTTfHqq69Go0aNom/fvjFv3ryi6s2ZMyd22GGHuOyyy8q9r5WtOXfu3HjzzTfj7LPPjjfffDMefvjhGD9+fAwYMKBK93vDDTeM6667Lt57773497//HV26dIk+ffrEtGnTiq65xCOPPBKvvPJKtG/fvkr3fYl+/fqVel3cd999Var58ccfxw477BDdu3eP559/Pt599904++yzo379+kXXXHaObr/99sjlcjFw4MCi6p166qkxatSouPvuu2PcuHFx8sknx5AhQ+Lxxx8vqseUUuyzzz7xySefxGOPPRZvvfVWdO7cOXr37r3Cv2MjfnwvW/o+PfXUUxER8atf/Soiinv/Ka9mse8Xl112Wdx4441x3XXXxbhx4+Kyyy6Lyy+/PK699tr8PoXOZbkS6auvvkoRkUaPHr3cdc8991yKiPTtt99WS70l7r///lSvXr20cOHCaqv5zjvvpIhIH330UZVqvvXWW2mdddZJkydPThGRHnnkkUrVK6vmTjvtlE466aRK16hMze222y6dddZZ1VpzWVtuuWU68sgji67XqFGjdNddd5Xar3nz5mn48OFF1XzyySdTrVq10syZM/P7zJgxI+VyufTUU09VqmZKKa299trp1ltvTTNmzEh169ZNDzzwQP66cePGpYhIY8aMqXS9pWsurZjZqajmEoXOT2VqFjo/K6pXldlZUc2qzs6KalZ1dlZUc1mFzE5ZNas6P0vXq+rsfPfdd2mDDTZITz31VKnnpCozVFbNpRU6Q5WpuURlZqiQepWdn4pqFjND5dUsdobKq1nsDBXyeFZ2hsqrWcwMlVWv2Bk699xz0xZbbLHC64qZn/LqLa2Q2alszSUqMzuF1qzM/FSmZqHzU1HNQuenonrFzE6hj2VlZqeimsXMTnk1i52fM844I+2www5lXr948eLUtm3b9Kc//alU3ZKSknTfffcVXG9pEydOTBGR3nrrrXL3K6TmEq+99lqKiPTZZ59VW82ZM2emiEhPP/10lWr+73//S+uss056//33U+fOndOVV15Z5r6VqXnYYYelvffeu8KfW0jNAw44IB188MHVWnNZe++9d9p1112LrrfJJpukCy64oNS2rbfeOp155plF1Rw/fnyKiPT+++/nty1atCi1atWq0r8XnnTSSWn99ddPixcvrra/gZauuSKVeb/o37//cv9m7bfffumggw5abt/KzmV51siVP8tashyrefPmP1m9mTNnRtOmTaNOnTrVUnPOnDkxYsSIWHfddaNjx45F15w7d2785je/ieuvvz7atm1bqTqV6fOee+6Jli1bxqabbhrDhg2LuXPnFl3zq6++ildffTVat24dvXr1ijZt2sROO+20wv8BK7TPJd544414++23K/W/e2XV69WrV/z973+Pb775JhYvXhx/+9vfYt68ebHzzjsXVXP+/PmRy+WipKQkv0/9+vWjVq1albrvixYtir/97W8xZ86c6NmzZ7zxxhuxcOHC6N27d36f7t27R6dOnWLMmDGV6nHZmtWhMjULnZ+KahY6PyuqV9XZKavHqszOsjWrY3YqeiwLnZ2yalZlfpatV9XZGTx4cPTv37/UrCy5r8XOUFk1q6KQmpWZocrWK2R+yqtZ7AxV1GcxM1RWzarMUGUfz0JmqLyaxcxQWfWqMkMTJkyI9u3bx3rrrRcHHXRQ/tCEYuenrHpVUUjNyr7/VLZmIfNTXs1i56eiPgudn7LqVWV2KvtYFjI75dUs9v2nrJrFzs/jjz8e22yzTfzqV7+K1q1bx1ZbbRXDhw/PXz9x4sSYMmVKqRlq1qxZbLfddiucoYrqFaOYmjNnzoxcLhdrrbVWtdRcsGBB3HLLLdGsWbPYYostiq65ePHiOOSQQ+K0006LTTbZpPw7XkCfzz//fLRu3Tq6desWxx9/fHz99ddF11y8eHGMHDkyNtxww+jbt2+0bt06tttuu3IP8Sz08Zw6dWqMHDmyzDmqTL1evXrF448/Hl988UWklOK5556LDz/8MPr06VNUzfnz50dElFrdVKtWrSgpKanUvyELFiyIu+++O4488sjI5XLV8jfQsjVXpDLvF7169YpnnnkmPvzww4iIeOedd+Lf//53pVb+FqXo2CgjFi1alPr375+23377FV5f6P+8VlQvpZSmTZuWOnXqlP7whz9Uueb111+fGjVqlCIidevWrdKrFsqqOWjQoHTUUUflv48CVi+UVfPmm29Oo0aNSu+++266++670zrrrJP23XffomuOGTMmRURq3rx5uv3229Obb76ZTj755FSvXr304YcfFt3n0o4//vi00UYbFd1jSil9++23qU+fPikiUp06dVLTpk3Tk08+WXTNr776KjVt2jSddNJJac6cOWn27NlpyJAhKSLSoEGDyqz17rvvpkaNGqXatWunZs2apZEjR6aUUrrnnntSvXr1ltt/2223Taeffnq5/ZVVc2mFzk5laqZU2PxUVLPQ+SmvXrGzU17NYmenrJpVmZ3KPj+FzE55NYuZn7LqFTs7KaV03333pU033TR9//33KaXS/xNe7AyVV3NphcxQZWumVLkZqky9QuenoprFzFBFNYuZofJqFjtDhTw/lZ2himoWOkPl1St2hv71r3+l+++/P73zzjtp1KhRqWfPnqlTp05p1qxZRc1PefWWVsjsVLZmSpV//6lMzULnp6KaxcxPRTULnZ/y6hU7O4U8P5WdnYpqFvP+U17NYuenpKQklZSUpGHDhqU333wz3Xzzzal+/frpjjvuSCml9NJLL6WISF9++WWp2/3qV79K+++/f8H1llbZFQaF1Ewppe+//z5tvfXW6Te/+U2Va/7jH/9IjRo1SrlcLrVv3z699tprVap58cUXp1/+8pf5VRwVrfypTM377rsvPfbYY+ndd99NjzzySNpoo43Stttum3744Yeiai5Z1dewYcN0xRVXpLfeeitdcsklKZfLpeeff75Kj+cSl112WVp77bXz7wXF1Js3b1469NBD8zNUr169dOeddxb9WC5YsCB16tQp/epXv0rffPNNmj9/frr00ktTRKQ+ffqUWXeJv//976l27drpiy++SClV7W+gsmouq7LvF4sWLUpnnHFGyuVyqU6dOimXy6WLL754hftWx8qfNT78Oe6441Lnzp3TpEmTVnh9oX/AVlRv5syZ6Wc/+1nq169fWrBgQZVrzpgxI3344Ydp9OjRaa+99kpbb711mcNaUc3HHnssde3aNX333Xf5bYWEPxXd9yWeeeaZSh9es6KaS97shg0bVmrfzTbbLA0dOrTKfc6dOzc1a9Ys/fnPf66wVnn1hgwZkn72s5+lp59+Or399tvpvPPOS82aNUvvvvtu0TWffPLJtN5666VcLpdq166dDj744LT11lun4447rsxa8+fPTxMmTEhjx45NQ4cOTS1btkz/+c9/qvQPX1k1l1bo7FSmZqHzU1HNQuenrHpVmZ3K3O8lKjs7ZdWsyuxUps9CZ6e8msXMT3n1ipmdzz//PLVu3Tq98847+W1VDX8qqrm0ys5QITUrM0OVrVfI/FRUs5gZKuR+L1HRDFVUs5gZKqTPys5QZWoWMkOVqVfMDC3r22+/TU2bNk233nprtfzyvXS9pVXlsOOyahbz+1t5NYv9/W1FNav6+1t5fS6tkN/flq1X1d/dKuqx0Pef8mpW5fe3smoWMz9169ZNPXv2LLXthBNOSD//+c9TSoWHPxXVW1pl/8gspOaCBQvSXnvtlbbaaqtSh8AVW3P27NlpwoQJacyYMenII49MXbp0SVOnTi2q5tixY1ObNm1K/SFfUfhTyH1f4uOPPy738LSKan7xxRcpItKvf/3rUvvstdde6cADD6yWPrt165aGDBlS5n2oTL0//elPacMNN0yPP/54euedd9K1116bGjduXOZhjpWpOXbs2LTFFlukiEi1a9dOffv2Tbvvvnvq169fmb0u0adPn7Tnnnvmv6+O959lay6tkPeL++67L3Xo0CHdd9996d1330133XVXat68eZVC2fKs0eHP4MGDU4cOHdInn3xS5j6F/AJRUb1Zs2alnj17pt12263Sb/CV6XGJ+fPnp4YNG6Z77723qJonnXRS/k1pySUiUq1atdJOO+1UbX3Onj07RUQaNWpUUTU/+eSTFBHpr3/9a6nt+++/f7n/k1DZPu+6665Ut27d9NVXX1VwT8qu99FHHy13bGpKKe22227p2GOPrXKP06ZNy78m27Rpky6//PIKe126h0GDBuV/iVv2td2pU6d0xRVXVLre0jWXVtVz/ixbs5j5qUyfS1R2flZUryqzU0iPlZ2dsmpWZXYq02chs1NezarMT0U9FjI7jzzySP6XjKWf1yXP9dNPP13wDFVUc+n/DazsDFW2ZmVnqJAel6hofiqqOWTIkIJnqJg+K5qhimoueW0WMkOF9FnZGapsn5WdoUJ6rMr7T0opbbPNNmno0KHV9h60pN7Sqvr+s2zN6nj/WVGfSxTz/rN0zep8Dyqvz2Leg5bUq873nxX1WNX3nyU1q+v9p6w+C5mfTp06lVrNlVJKN9xwQ2rfvn1K6f8PEpb9Q3DHHXdMJ554YsH1llbZPzIrW3PBggVpn332SZtvvnmaPn16tdRcVteuXctcMVFRzSuvvLLMGercuXO19tmyZct00003FVVz/vz5qU6dOunCCy8stc/pp5+eevXqVeU+X3jhhRQR6e233y6z/4rqzZ07N9WtWzf985//LLXPUUcdlfr27VvlHmfMmJGf85/97Gfpt7/9bZm9ppTSp59+mmrVqpUeffTR/Laqvv+sqOYShb5fdOjQIV133XWltl144YWpW7duy+1bHeFP5U6YkTEppTjhhBPikUceieeffz7WXXfdGq83a9as6Nu3b5SUlMTjjz9e5hnZq9Jj+jHMyx8XWWjNoUOHxtFHH11q22abbRZXXnll7LXXXtXW55KPp2vXrl1RNbt06RLt27df7mPQP/zwwzKPjyykz9tuuy0GDBgQrVq1KnOfiuotOSZ+2U+wqF27dpmf7FBIjy1btoyIiGeffTa++uqrcj81YVmLFy+O+fPnR48ePaJu3brxzDPP5M/mP378+Pj8888LPn/PkprVaemahc5PZWouq6L5Ka/e+eefX/DsFNNjRbNTUc1iZqeQPiszO5WpWcz8VLbHQmZnt912i/fee6/UtiOOOCK6d+8eZ5xxRnTs2LHgGaqoZu3atSt9/wqpWcgMFdNjRfNTUc2WLVvGscceW+r6imaomD4rmqGKaq633noFz1AhfVZ2hiqqWegMFdJjVd5/Zs+eHR9//HEccsgh1fIetHS96rJszep4/6moz2Lef5auuf/++1fLe1BFfRb6HrR0vep6/ymrx6q8/yxds7ref8rqs5D52X777Vf4eHXu3DkiItZdd91o27ZtPPPMM7HllltGxI+v11dffTWOP/74gusVozI1Fy5cGPvvv39MmDAhnnvuuWjRokWVa65Ieb8/VVTzkEMOWe5cZ3379o1DDjkkjjjiiGrr83//+198/fXXZc5QRTXr1asX2267bUE/t5A+b7vttujRo0eZ506qTL2FCxfGwoULC5qhQnps1qxZRPx4jq2xY8fGhRdeWGavEREjRoyI1q1bR//+/fPbqvr+s6KaEcW9X8ydO7fK/94UpOjYaDV2/PHHp2bNmqXnn38+TZ48OX+ZO3dufp/Jkyent956Kw0fPjxFRHrhhRfSW2+9lb7++uuC682cOTNtt912abPNNksfffRRqX3KOuazopoff/xxuvjii9PYsWPTZ599ll566aW01157pebNm5e55LEy93tZUcGy4YpqfvTRR+mCCy5IY8eOTRMnTkyPPfZYWm+99dKOO+5YdM2UfkzomzZtmh544IE0YcKEdNZZZ6X69euXuRS5svd9woQJKZfLpSeeeKLM/ipTb8GCBalr167pF7/4RXr11VfTRx99lP785z+nXC5X7rlSKurx9ttvT2PGjEkfffRR+utf/5qaN2+eTj311DL7HDp0aBo9enSaOHFievfdd9PQoUNTLpdL//d//5dS+vHwsk6dOqVnn302jR07NvXs2XO5ZZeF1ixkdipTs5j5qahmMfNT0f1eVkWzU1HNYmanMn0WOjuVve+VnZ3K1CxmfirqsdDZKcuyh8IUM0MV1SxmhsqrWewMlVWvmPmpqOaKVGaGyqtZ7AxV1GcxM1RRzZQKn6HyahYzQxX1WMwM/e53v0vPP/98mjhxYnrppZdS7969U8uWLfP/a1vo/FRUr5jZKa9msbNTXs1i56ei+76sysxPeTWLmZ+KeixmdipzvwudnfJqFjs7FfVZzPy89tprqU6dOumiiy5KEyZMSPfcc09q2LBhuvvuu/P7XHrppWmttdbKn1dm7733Tuuuu+4KVxxUpt7XX3+d3nrrrTRy5MgUEelvf/tbeuutt9LkyZOL6nHBggVpwIABqUOHDuntt98uNUPz588vqubs2bPTsGHD0pgxY9Knn36axo4dm4444ohUUlKy3IqtQu77sio67Kuimt999136/e9/n8aMGZMmTpyYnn766bT11lunDTbYIM2bN6/oPh9++OFUt27ddMstt6QJEyaka6+9NtWuXTu9+OKLVbrvM2fOTA0bNkw33nhjmfe5svV22mmntMkmm6TnnnsuffLJJ2nEiBGpfv366YYbbii65v3335+ee+659PHHH6dHH300de7cOe23337l9rpo0aLUqVOndMYZZyx3XbG/v5VVs9j3i8MOOyyts8466Z///GeaOHFievjhh1PLli1LHX5W6FyWZ40MfyJihZcRI0bk9zn33HMr3Key9ZYsP17RZeLEiUX1+MUXX6Tdd989tW7dOtWtWzd16NAh/eY3v0kffPBBle73im5T3i8PFdX8/PPP04477piaN2+eSkpKUteuXdNpp51W7rG+le3zkksuSR06dEgNGzZMPXv2LPMfvUJqDhs2LHXs2DEtWrSozFqVrffhhx+m/fbbL7Vu3To1bNgwbb755st9dGihNc8444zUpk2bVLdu3bTBBhukv/zlL2V+vGBKKR155JGpc+fOqV69eqlVq1Zpt912K/UH+/fff59++9vfprXXXjs1bNgw7bvvvhX+Q1JRzUJmpzI1i5mfimoWMz8V3e9lVeYX7/JqFjM7le2zkNmpbM3Kzk5laxY6PxXVK3R2yrLsH8TFzFBFNYuZofJqFjtDZdUrZn4qqrkiVQ1/ip2hyvRZ6AxVpmahM1RRzUJnqKJ6xczQAQcckNq1a5fq1auX1llnnXTAAQeU+kO/0PmpqF4xs1NezWJnp7yaxc5PRfd9WZWZn/JqFjM/lemx0NmpTM1CZ6eimsXMTkU1i30P+sc//pE23XTTVFJSkrp3755uueWWUtcvXrw4nX322alNmzappKQk7bbbbmn8+PFF1xsxYsQKX+/nnntuUTWXHKayostzzz1XVM3vv/8+7bvvvql9+/apXr16qV27dmnAgAHlnvC5Mvd9WRWFPxXVnDt3burTp09q1apVqlu3burcuXM65phj0pQpU6rc52233Za6du2a6tevn7bYYosVHn5UaM2bb745NWjQIM2YMaPcWpWpN3ny5HT44Yen9u3bp/r166du3bpV+JqvqObVV1+dOnTokOrWrZs6deqUzjrrrDIDxCWefPLJFBErnIlif38rq2ax7xezZs1KJ510UurUqVOqX79+Wm+99dKZZ55Z6r4VM5dlyaWUUgAAAACQSbUq3gUAAACA1ZXwBwAAACDDhD8AAAAAGSb8AQAAAMgw4Q8AAABAhgl/AAAAADJM+AMAAACQYcIfAAAAgAwT/gAAAABkmPAHAMi0ww8/PHK5XP7SokWL6NevX7z77rsruzUAgJ+E8AcAyLx+/frF5MmTY/LkyfHMM89EnTp1Ys8991zZbQEA/CSEPwBA5pWUlETbtm2jbdu2seWWW8bQoUNj0qRJMW3atIiIeO+992LXXXeNBg0aRIsWLWLQoEExe/bs/O2HDh0a7du3j3r16sU666wTZ5xxRixevDgiIp5//vnI5XIxcuTI2HzzzaN+/frx85//PN5///387b/++uv49a9/Heuss040bNgwNttss7jvvvtK9bh48eK4/PLLo2vXrlFSUhKdOnWKiy66KCKi1MqlZS/PP/98DT96AMDqTvgDAKxRZs+eHXfffXd07do1WrRoEXPmzIm+ffvG2muvHa+//no88MAD8fTTT8eQIUPyt+nTp0/885//jI8++ihuvfXWuOWWW+Luu+8uVfe0006Lv/zlL/H6669Hq1atYq+99oqFCxdGRMS8efOiR48eMXLkyHj//fdj0KBBccghh8Rrr72Wv/2wYcPi0ksvjbPPPjv++9//xr333htt2rSJiMivWpo8eXJERDz00EP573v16lXTDxkAsJqrs7IbAACoaf/85z+jcePGERExZ86caNeuXfzzn/+MWrVqxb333hvz5s2Lu+66Kxo1ahQREdddd13stddecdlll0WbNm1i1113zddatGhRNGjQIBYtWlTqZ5x77rnxy1/+MiIi7rzzzujQoUM88sgjsf/++8c666wTv//97/P7nnDCCfHkk0/G/fffHz/72c/iu+++i6uvvjquu+66OOywwyIiYv31148ddtghIiLatm1b6mc1b958uW0AAGWx8gcAyLxddtkl3n777Xj77bfjtddei759+8buu+8en332WYwbNy622GKLfPATEbH99tvH4sWLY/z48fltF198cTRs2DDWW2+9GDhwYBx66KGlfkbPnj3zXzdv3jy6desW48aNi4gfA6MLL7wwNttss2jevHk0btw4nnzyyfj8888jImLcuHExf/782G233WryYQAA1lBW/gAAmdeoUaPo2rVr/vtbb701mjVrFsOHD690jeOOOy7222+/eOONN+Lkk0+O/fbbL3bZZZdK3fZPf/pTXH311XHVVVfFZpttFo0aNYqTTz45FixYEBERDRo0KOwOAQAUwMofAGCNk8vlolatWvH999/HRhttFO+8807MmTMnf/1LL70UtWrVim7duuW3NW/ePLp37x4HHXRQ7LDDDvHQQw+VqvnKK6/kv/7222/jww8/jI022ihfb++9946DDz44tthii1hvvfXiww8/zO+/wQYbRIMGDeKZZ56pqbsMAKzBhD8AQObNnz8/pkyZElOmTIlx48bFCSecELNnz4699torDjrooKhfv34cdthh8f7778dzzz0XJ5xwQhxyyCH5Ey7fcMMN8Z///Cc+/fTTuPvuu+Opp56KrbbaqtTPuOCCC+KZZ56J999/Pw4//PBo2bJl7LPPPhHxY7jz1FNPxcsvvxzjxo2LY489NqZOnZq/bf369eOMM86I008/Pe666674+OOP45VXXonbbrvtJ3uMAIDsctgXAJB5o0aNinbt2kVERJMmTaJ79+7xwAMPxM477xwREU8++WScdNJJse2220bDhg1j4MCBccUVV+RvP3LkyDj33HPju+++i44dO8Yf/vCHOPLII0v9jEsvvTROOumkmDBhQmy55Zbxj3/8I+rVqxcREWeddVZ88skn0bdv32jYsGEMGjQo9tlnn5g5c2b+9meffXbUqVMnzjnnnPjyyy+jXbt2cdxxx9XwIwMArAlyKaW0spsAAFhdPf/887HLLrvEt99+G2uttdbKbgcAYDkO+wIAAADIMOEPAAAAQIY57AsAAAAgw6z8AQAAAMgw4Q8AAABAhgl/AAAAADJM+AMAAACQYcIfAAAAgAwT/gAAAABkmPAHAAAAIMOEPwAAAAAZ9v8BYp1tBUhlA0oAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "glucose_by_age = df.groupby(['Age'])['BloodPressure'].mean()\n", + "\n", + "glucose_by_age.plot(kind='bar', figsize=(14, 8), width=0.6)\n", + "plt.title('Уровень глюкозы с возрастом')\n", + "plt.xlabel('Возраст')\n", + "plt.ylabel('Уровень глюкозы')\n", + "plt.xticks(rotation=0)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Данная диаграмма отображает среднее количество глюкозы для каждой возрастной группы, что позволяет сделать вывод о том, как уровень глюкозы изменяется с возрастом." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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VmSts8ps73zzlQ9f+cpX0NLSknXXFUj1lUgkYv6+Z88evPPOO4NO7xwOXdeHPRdyYVf7xWIxs766ujosWbIEjz76qGUgt27dOqxcudJsx1xomobu7u6cuvh7773X/D9jDPfeey8cDgdOPPFEAKnzWRAEyxTd5ubmrAH5mWeeCVEUccstt2Tdec7sH8OR72sSBDE60B0pgiDy5t///jeeffZZvPTSS0gkEpbF1rlQFAUnnngivvKVr2Dz5s24//77cfTRR+P0008HkNJNX3fddbj55ptxyimn4PTTTzfLfepTn8LXv/51S31tbW144oknAKTWHf3qV7+CLMvmN8WzZ8/GT37yE1x33XVobm7GmWeeiUAggJ07d+K5557DZZddhu9+97sFHfuBAwfMb9z379+P2267DWVlZZY7brnydfPNN2Pv3r047bTTzNgBmAu/n3/+eZxzzjmoqanB5z73Odxyyy246KKLsHTpUvznP//B73//+0EHFK+++ir27t1rTu37/e9/j9NPPx1OpxNbt27FjTfeiKeeegrXXntt1jqndILBIB544AGcd955OPTQQ/HVr34VU6dOxe7du/G3v/0Ny5Yts3xo5GHNmjWoqqrCNddcM2S5m2++Gf/5z3/w0UcfZa1lGwqHw4HbbrsNF110EY477jicc845pj67qakJV111VUFx58MhhxyCCy64AA899BB6enpw3HHH4f3338ejjz6KM8880+wbwWAQd999Ny655BJ86lOfwte+9jVUVFTg448/RjQaxaOPPmrWmW++8uG8887DM888g//+7//GqlWrsGzZMmiahk2bNuGZZ57BK6+8gsMPPxwPPPAAVqxYAa/Xi//5n//Jq+7Vq1ejo6PDnNr3+uuvF3RujVb7Pf/886iqqjKn9r399tu48sorzefvuOMOnHrqqTjqqKNw8cUXm/rzsrIyy52/Y489FscffzymT5+Ovr4+PPvss/joo4/MqYsGbrcbL7/8Mi644AIceeSReOmll/C3v/0NP/jBD8x1YaeddhruuusunHLKKfja176G9vZ23HfffZgzZw7+/e9/m3XNmTMHP/zhD/HjH/8YxxxzDL7whS/A5XLhgw8+QH19PVasWJF3PvN9TYIgRolxsgUSBFGCPPzww0ySJNbY2DiklthQEv/9739nl112GauoqGB+v5+de+65Fv2w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nUxGNFKLFi3C66+/jn/9618YNmxY/HaXy4VgMIimpibk5ubGb29oaIDL5ep2eyaTCSaTqdPtBoMhaQudzG1T6nBdsw/XNPtwTbMT1zX7cE2zUyaua0/rTevUPl3XsWjRIqxcuRJvvvkmysvLE+6fMmUKDAYD1q1bF79t165dOHDgAKZNmzbQ5RIRERER0SCR1nukFi5ciBUrVuBvf/sbHA4H6uvrAQBOpxMWiwVOpxPf//73sWTJEuTn5yMnJwfXX389pk2bxsQ+IiIiIiJKmrRupB5//HEAwLnnnptw+/Lly3H11VcDAH77299ClmXMmzcPgUAAlZWV+P3vfz/AlRIRERER0WCS1o1UTwIFzWYzHnvsMTz22GMDUBEREREREVGanyNFRERERESUjthIERERERERCWIjRUREREREJIiNFBERERERkSA2UkRERERERILYSBEREREREQliI0VERERERCSIjRQREREREZEgNlJERERERESC2EgREREREREJYiNFREREREQkiI0UERERERGRIDZSREREREREgthIERERERERCWIjRUREREREJIiNFBERERERkSA2UkRERERERILYSBEREREREQliI0VERERERCSIjRQREREREZEgNlJERERERESC2EgREREREREJYiNFREREREQkiI0UERERERGRIDZSREREREREgthIERERERERCWIjRUREREREJIiNFBERERERkSA2UkRERERERILYSBEREREREQliI0VERERERCSIjRQREREREZEgNlJERERERESC2EgREREREREJYiNFREREREQkiI0UERERERGRIDZSREREREREgthIERERERERCWIjRUREREREJIiNFBERERERkSA2UkRERERERILYSBEREREREQliI0VERERERCSIjRQREREREZEgNlJERERERESC2EgREREREREJYiNFREREREQkiI0UERERERGRIDZSREREREREgthIERERERERCWIjRUREREREJIiNFBERERERkSA2UkRERERERILYSBEREREREQliI0VERERERCSIjRQREREREZEgNlJERERERESC1FQXQMdpmo6aJh+8wTBsRhXuXAtkWep2fDAYwZqd9ahvDsDlNGFOhQtGo9LnsQAQDmv46OAxHPEGUWAz4ozSPKhq93233x/Gix8dQM0xP9x5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l/8tX748Psbn8+k//vGP9by8PN1qterf+ta39Lq6utQVTSd1zTXX6MOHD9eNRqNeWFioz5o1K95E6TrXNFt0bKS4rpnniiuu0EtKSnSj0ai73W79iiuu0Pfu3Ru/n2uamV577TV94sSJuslk0isqKvQnn3wy4X5N0/Tbb79dLy4u1k0mkz5r1ix9165dKaqWemr16tU6gC7Xiq/VzOPxePTFixfrZWVlutls1keOHKnfdttteiAQiI/J5teqpOvtLj1MREREREREJ8VzpIiIiIiIiASxkSIiIiIiIhLERoqIiIiIiEgQGykiIiIiIiJBbKSIiIiIiIgEsZEiIiIiIiISxEaKiIiIiIhIEBspIiIiIiIiQWykiIiIiIiIBLGRIiKitHX11VdDkqT4fwUFBfj617+OTz75JNWlERHRIMdGioiI0trXv/511NXVoa6uDuvWrYOqqrjoootSXRYREQ1ybKSIiCitmUwmuFwuuFwunHbaabjllltw8OBBHDp0CADw6aef4vzzz4fFYkFBQQGuu+46tLa2xn//lltuwdChQ2E0GuF2u7F06VJomgYAePvttyFJEv7xj39g8uTJMJvN+MpXvoKqqqr47x85cgTf+c534Ha7YbVaMWnSJPz5z39OqFHTNPz617/G6NGjYTKZUFZWhnvvvRcAEvaodfzv7bffTvLsERFRsrCRIiKijNHa2ooXXngBo0ePRkFBAbxeLyorK5GXl4fNmzfj5Zdfxj//+U8sWrQo/jtz5szB66+/jr179+Lpp5/Gk08+iRdeeCFhuz/72c/wm9/8Bps3b0ZhYSG++c1vIhQKAQD8fj+mTJmCf/zjH6iqqsJ1112Hq666Ch988EH892+99Vbcd999uP3227F9+3asWLECxcXFABDfm1ZXVwcAePXVV+M/T58+PdlTRkRESaKmugAiIqITef3112G32wEAXq8XJSUleP311yHLMlasWAG/34/nnnsONpsNAPDoo4/im9/8Ju6//34UFxfj/PPPj28rEonAYrEgEokk/B133HEHLrjgAgDAH//4RwwbNgwrV67E5ZdfDrfbjZ/+9Kfxsddffz1Wr16Nl156CWeddRZaWlrwu9/9Do8++ijmz58PABg1ahRmzpwJAHC5XAl/V35+fqfbiIgo83CPFBERpbXzzjsPW7duxdatW/HBBx+gsrIS3/jGN/D5559jx44dOPXUU+NNFADMmDEDmqZh165d8dt+9atfwWq1YuTIkZg3bx6+973vJfwd06ZNi/85Pz8f48aNw44dOwBEm69f/vKXmDRpEvLz82G327F69WocOHAAALBjxw4EAgHMmjUrmdNARERphnukiIgordlsNowePTr+89NPPw2n04mnnnqqx9v44Q9/iLlz52LLli248cYbMXfuXJx33nk9+t0HHngAv/vd7/DQQw9h0qRJsNlsuPHGGxEMBgEAFotF7AEREVFW4B4pIiLKKJIkQZZl+Hw+nHLKKfj444/h9Xrj97/33nuQZRnjxo2L35afn4+KigpceeWVmDlzJl599dWEbb7//vvxPx87dgy7d+/GKaecEt/eJZdcgv/4j//AqaeeipEjR2L37t3x8WPGjIHFYsG6deuS9ZCJiCgNsZEiIqK0FggEUF9fj/r6euzYsQPXX389Wltb8c1vfhNXXnklzGYz5s+fj6qqKrz11lu4/vrrcdVVV8XDHn7/+99j27ZtqK6uxgsvvIC1a9fi9NNPT/g77r77bqxbtw5VVVW4+uqrMWTIEFx66aUAoo3S2rVrsWHDBuzYsQP/+Z//iYaGhvjvms1mLF26FDfffDOee+457Nu3D++//z6eeeaZAZsjIiIaeDy0j4iI0tobb7yBkpISAIDD4UBFRQVefvllnHvuuQCA1atXY/HixTjzzDNhtVoxb948PPjgg/Hf/8c//oE77rgDLS0tKC0txX/913/hmmuuSfg77rvvPixevBh79uzBaaedhtdeew1GoxEA8POf/xyfffYZKisrYbVacd111+HSSy9Fc3Nz/Pdvv/12qKqKX/ziF6itrUVJSQl++MMfJnlmiIgolSRd1/VUF0FERJQKb7/9Ns477zwcO3YMubm5qS6HiIgyCA/tIyIiIiIiEsRGioiIiIiISBAP7SMiIiIiIhLEPVJERERERESC2EgREREREREJYiNFREREREQkiI0UERERERGRIDZSREREREREgthIERERERERCWIjRUREREREJIiNFBERERERkaD/D7N2HGTXnChhAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "plt.scatter(df['Age'], df['BloodPressure'], alpha=0.5)\n", + "plt.title('Уровень давления относительно возраста')\n", + "plt.xlabel('Возраст')\n", + "plt.ylabel('Уровень давления')\n", + "plt.grid(True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Данная диаграмма отображает уровень давления относительно возраста, что позволяет сделать вывод о том, как уровень давления изменяется с возрастом." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAHHCAYAAABUcOnjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACK50lEQVR4nO3dd3xT1fvA8U+apuluaaEDKKMUKVMQECqiyJYlyNfxFQSUrxNUxAX+RIYLNzgRUVABB+JAUAFZDqYgGxllj7ZA906T+/sjzaWhLW3atFnP+/XKq+3Nzb3n5KbJk3Oec45GURQFIYQQQgg35+XoAgghhBBC1AYJeoQQQgjhESToEUIIIYRHkKBHCCGEEB5Bgh4hhBBCeAQJeoQQQgjhESToEUIIIYRHkKBHCCGEEB5Bgh4hhBBCeAQJeoQQQgjhESToKSExMZEHHniA2NhYfH19CQ4Oplu3bsyePZu8vDxHF08IIYQQ1eDt6AI4ixUrVnDbbbeh1+sZNWoUbdq0obCwkD///JOnnnqKffv2MXfuXEcXUwghhBBVpJEFR+HYsWO0a9eOhg0bsnbtWqKjo63uP3LkCCtWrOCxxx5zUAmFEEIIUV3SvQW89tprZGdn88knn5QKeADi4uKsAh6NRsP48eNZtGgRLVq0wNfXl44dO/L777+XeuyZM2e49957iYyMRK/X07p1az799NMyyzFt2jQ0Gk2pW48ePaz269GjB23atCn1+DfeeAONRsPx48ettv/yyy90796dgIAAgoKCGDhwIPv27Sv1+H///Zf//Oc/hIWF4evrS6dOnVi2bFmZZS3p4MGD9OzZk6ioKPR6PTExMTz44IOkpqaq+6xfvx6NRsO3335b6vGBgYGMGTNG/Ts1NZUnn3yStm3bEhgYSHBwMDfffDO7du0q8/m6XJMmTayOB5Cens6ECROIiYlBr9cTFxfHq6++islkUvc5fvw4Go2GN954o9Qx27RpY3UdLPVZv3691X4DBw5Eo9Ewbdo0q+22vA4uV9bxXn/99VKvDVueYzA/J48//jhNmjRBr9fTsGFDRo0axYULF8jOziYgIKDMQP/06dNotVpeeeUVq+09evQo8/W7YMECq30ufz1v27ZN3ffyeo8fP77U+QcNGkSTJk2str3xxhtcd911hIeH4+fnR8eOHct8HspiS5mq+3hb6gSwYMGCMp/TsvatzP+v5Xgl3yP27dtHnTp1GDRoEEVFRer2K70+AAoLC3n++efp2LEjISEhBAQE0L17d9atW1fBM2b+Hy2rXmXVz2QyMWvWLFq3bo2vry+RkZE88MADpKWllTqu5X/gSserTrkrU/aSioqKeOGFF2jWrBl6vZ4mTZrw7LPPUlBQUOF5xowZY3XcOnXq0KNHD/74449S+37wwQe0bt0avV5P/fr1GTduHOnp6Vb7PPjggzRv3hx/f3/CwsLo2bNnqWM1adKEQYMGsWrVKtq3b4+vry+tWrXiu+++s9qvsu/RAPn5+UybNo2rrroKX19foqOjufXWW0lMTFTfc690GzNmDEePHkWj0fD222+XOv7GjRvRaDR8+eWXFT6nIN1bAPz000/ExsZy3XXXVfoxGzZs4Ouvv+bRRx9Fr9fzwQcf0L9/f7Zu3aoGJMnJyXTt2lV9o6tXrx6//PILY8eOJTMzkwkTJpR57A8//JDAwEAAJk+eXK26ffHFF4wePZp+/frx6quvkpuby4cffsj111/PP//8o74Z7Nu3j27dutGgQQMmTZpEQEAA33zzDUOHDmXp0qUMGzas3HPk5OTQsGFDBg8eTHBwMHv37uX999/nzJkz/PTTTzaX+ejRo/zwww/cdtttNG3alOTkZD766CNuvPFG9u/fT/369W06Xm5uLjfeeCNnzpzhgQceoFGjRmzcuJHJkydz7tw5Zs2aZXMZy/L777/z888/l9pe1ddBedLT00sFHLbKzs6me/fuHDhwgHvvvZdrrrmGCxcusGzZMk6fPk379u0ZNmwYX3/9NW+99RZarVZ97JdffomiKIwYMaLUcePj4/m///s/AC5cuMDjjz9eYVmeeeaZatUFYPbs2QwZMoQRI0ZQWFjIV199xW233cby5csZOHCgzcerbpnsUaeSZsyYQdOmTQF48803S33gV/X/99SpU/Tv35/4+Hi++eYbvL3NHwkVvT7q1q1LZmYm8+bN47///S/33XcfWVlZfPLJJ/Tr14+tW7fSvn37cusza9YssrOzAThw4AAvv/wyzz77LC1btgRQ3/8AHnjgARYsWMA999zDo48+yrFjx3jvvff4559/+Ouvv9DpdKWOX/JYc+fO5eTJk+p91Sm3Rfv27XniiSestn3++eesXr3aatv//vc/PvvsM/7zn//wxBNPsGXLFl555RUOHDjA999/X+F56tatq37Qnz59mtmzZzNgwABOnTpFaGgoYP7yN336dHr37s1DDz3EwYMH+fDDD9m2bZvV81NYWMjIkSNp2LAhqampfPTRR/Tv358DBw7QqFEj9ZyHDx/mjjvu4MEHH2T06NHMnz+f2267jV9//ZU+ffoAlX+PNhqNDBo0iDVr1nDnnXfy2GOPkZWVxerVq9m7dy+9e/fmiy++UM/93Xff8f3331tta9asGbGxsXTr1o1FixaVek9ZtGgRQUFB3HLLLRU+nwAoHi4jI0MBlFtuuaXSjwEUQPn777/VbSdOnFB8fX2VYcOGqdvGjh2rREdHKxcuXLB6/J133qmEhIQoubm5VtufffZZBbDav3Xr1sqNN95otd+NN96otG7dulS5Xn/9dQVQjh07piiKomRlZSmhoaHKfffdZ7VfUlKSEhISYrW9V69eStu2bZX8/Hx1m8lkUq677jqlefPmFTwjpT388MNKYGCg+ve6desUQFmyZEmpfQMCApTRo0erf+fn5ytGo9Fqn2PHjil6vV6ZMWOGum369OkKoJhMJqt9GzdubHW8F154QQkICFAOHTpktd+kSZMUrVarnDx5Uj0HoLz++uulynj5dbDUZ926deq2Ll26KDfffLMCKFOnTlW32/o6uNzlx3v66aeViIgIpWPHjmWWqTLP8fPPP68AynfffVdqX8vzuXLlSgVQfvnlF6v727VrV+o1qSiK0q1bN+Wmm25S/7Y8n/Pnz1e33XjjjVaP/fnnnxVA6d+/v3L52xGgjBs3rtR5Bg4cqDRu3Nhq2+XPYWFhodKmTRulZ8+epR5/OVvKVN3H21InRVGUuXPnlnqvKWvfyv7/zp8/X32PSE1NVVq1aqW0aNGi1GuzMq+PoqIipaCgwOq+tLQ0JTIyUrn33ntLPa48Zf0vWfzxxx8KoCxatMhq+6+//lrm9tWrVyuAsmHDBnXb6NGjrZ6v6pa7cePGysCBA0ttHzdunNX13rlzpwIo//vf/6z2e/LJJxVAWbt27RXPc3m5FeXS62Hr1q2KoihKSkqK4uPjo/Tt29fqPfO9995TAOXTTz8t9/hbt25VAOXbb7+1qhugLF26VN2WkZGhREdHKx06dFC3VfY9+tNPP1UA5a233ip1/svftxVFUaZOnVru/9xHH32kAMqBAwfUbYWFhUrdunWt3tsq4vHdW5mZmQAEBQXZ9LiEhAQ6duyo/t2oUSNuueUWVq5cidFoRFEUli5dyuDBg1EUhQsXLqi3fv36kZGRwY4dO6yOmZ+fD4Cvr2+F5zcajVbHvHDhArm5uVb7rF69mvT0dP773/9a7afVaunSpYvanJuamsratWu5/fbbycrKUve7ePEi/fr14/Dhw5w5c6bCMmVkZJCcnMyaNWtYsWIFN9xwQ6l9Sh7fcrucXq/Hy8tLrefFixcJDAykRYsWVs9ZREQEYP4GdCVLliyhe/fu1KlTx+q8vXv3xmg0luqWzM3NLVVGo9F4xXN89913bNu2jZkzZ1ptr8rr4ErOnDnDu+++y5QpU6y+DZdUmed46dKlXH311WW2AFia6Hv37k39+vVZtGiRet/evXvZvXs3I0eOLPW4wsJC9Hp9peuiKAqTJ09m+PDhdOnSpcx98vPzS9XFYDCU2s/Pz0/9PS0tjYyMDLp3727Tc1vZMlX38ZWtk2VfuPJ7QlX+f/Pz8xkyZAjnz5/n119/JTw83Or+yrw+tFotPj4+gLkLKjU1laKiIjp16mTz816eJUuWEBISQp8+fayer44dOxIYGFiqS6qwsBDgiq/D2ig3oLb6Tpw40Wq7pYVoxYoVFR7DZDKpdd65cyeff/450dHRaivWb7/9RmFhIRMmTFDfMwHuu+8+goODS53D8to7cOAAs2fPxs/Pj06dOlntU79+favrHhwczKhRo/jnn39ISkoCKv8evXTpUurWrcsjjzxSqm6V6Tou6fbbb8fX19fq/WjlypVcuHChzPej8nh891ZwcDBg/qCwRfPmzUttu+qqq8jNzeX8+fN4eXmRnp7O3Llzyx31lZKSYvX3hQsX0Ol0+Pv7V3j+f//9l3r16l1xn8OHDwPQs2fPMu+31P3IkSMoisKUKVOYMmVKuWVt0KDBFc/Xr18/tmzZAkD//v35+uuvS+1z7733XvEYYP5Hnz17Nh988AHHjh2zCjhKvjknJCSg0WiYPHkyL774ohoElMzTAfPzsHv37nKfr8uvw9SpU5k6dWqp/SIjI8t8vNFo5Nlnn2XEiBG0a9fO6r7z58/b/Dq4kqlTp1K/fn0eeOCBcnNWKvMcJyYmMnz48Cvu4+XlxYgRI/jwww/Jzc3F39+fRYsW4evry2233VZq//T0dBo3bly5imBult63bx/ffPMNixcvLnOfTz75hE8++aTU9svPs3z5cl588UV27txplS9h6xtrZcpU3cdXtk6AGrCGhISUe86q/P/ec889bN68GV9fX6s8HovKvD4APvvsM958803+/fdfq8DN0hVXXYcPHyYjI0P9gnO5y/93LHks5X0hsKjpcgOcOHECLy8v4uLirLZHRUURGhrKiRMnKjzGqVOnrN63oqOjWbp0qVo/yzFatGhh9TgfHx9iY2NLnWPBggU89NBDajlWr15d6nUXFxdX6v/mqquuAsx5j1FRUZV+j05MTKRFixZqt2l1hIaGMnjwYBYvXswLL7wAmP/fGjRoUO5nXFkk6AkOpn79+uzdu9eux7V88I4cOZLRo0eXuc/lH5DHjx+nUaNGlXqjbtKkCR9//LHVtiVLllh9sFrK8MUXXxAVFVXqGJYXomW/J598kn79+pV5vsv/ccvy7rvvcuHCBfbv388rr7zCgw8+yMKFC632ef755+nevbvVtsGDB1v9/fLLLzNlyhTuvfdeXnjhBcLCwvDy8mLChAlWAc3VV1/N1KlTmT59ulX0fzmTyUSfPn14+umny7zf8g9tcf/995f6UL/vvvvKPf4nn3zC8ePHWblyZZnnBtteB+U5cOAACxYsYOHChWXmMVhU5jmurFGjRvH666/zww8/8N///pfFixczaNCgMj+Ek5KSyn39XK6wsJApU6YwduzYUs9/SbfcckupxN/nnntO/cYJ8McffzBkyBBuuOEGPvjgA6Kjo9HpdMyfP9+mwKWyZaqNOlkcP34cnU53xTy2qvz/7tixgx9//JHx48dz//33s3bt2nKPX56FCxcyZswYhg4dylNPPUVERISa4J6YmGjz8cpiMpmIiIgo9//78i8yluewrPe72ix3SbYG3iVFRkaq76EZGRl8+umn9O/fnz///JO2bdvafLzBgwcTFxdHSkoKc+bM4Y477uDPP/8sMzH+Sir7Hm1vo0aNYsmSJWzcuJG2bduybNkyHn74YatWrop4fNAD5pETc+fOZdOmTSQkJFTqMZZWlJIOHTqEv7+/+o8YFBSE0Wikd+/eFR6vqKiIXbt20b9//0qdPyAgoNRxd+7cafV3s2bNAHM30JXKEBsbC4BOp6tUWcvTuXNnAG6++WYiIiIYNWoU//d//6c2xQK0bdu21DlKJskCfPvtt9x0002lvg2np6dTt25dq21Tp07l/vvv599//1W/bVze1NmsWTOys7MrXbfmzZuX2jcgIKDMfXNzc5k+fToPP/xwmd/U69WrZ9Pr4EomT55M+/btueOOO664X2We42bNmlUq0G/Tpg0dOnRg0aJFNGzYkJMnT/Luu++W2u/06dNkZWVZXesr+eCDD0hJSSk1Ku1yDRs2LFWXWbNmWQUIS5cuxdfXl5UrV1p1a8yfP79SZbG1TNV9fGXqZPH3339zzTXXXPFNvSr/v/PmzWPIkCFotVoGDRrEJ598wtixY9X7K/P6+Pbbb4mNjeW7776z+mAvq5W0qpo1a8Zvv/1Gt27drLowy7N//37q1atXqruupNooN5hb7kwmE4cPH7b6v0hOTq50q6ivr6/VNR0yZAhhYWG89957fPTRR+oxDh48qL4OwByAHzt2rNTroUGDBmqL36233krdunX58MMPefXVV9V9LC2HJZ+bQ4cOAajBUWXfo5s1a8aWLVswGAxX/KJWWf3796devXosWrSILl26kJuby913323TMTw+pwfg6aefJiAggP/9738kJyeXuj8xMZHZs2dbbdu0aZNV3+WpU6f48ccf6du3L1qtFq1Wy/Dhw1m6dGmZbx7nz5+3+nvVqlVkZGRUPgO9Evr160dwcDAvv/xymTkDljJERETQo0cPPvroI86dO1dhWSvD0ixfmaGZl9NqtSiXTR+1ZMmScvOKoqOjuemmm+jduze9e/culf9w++23s2nTpjJbYtLT08ts3q+s2bNnk5OTo45Yupytr4PybNq0iR9//JGZM2dW65ujxfDhw9m1a1eZI0guf+7vvvtuVq1axaxZswgPD+fmm28u9ZivvvoKKL8rtaSsrCxeeuklHn/88St+I68srVaLRqOxamI/fvw4P/zwQ6WPUd0y2btOYP4A379/f4XvCVX5/7W0BA4cOJA777yTp556yuq9rzKvD0sgXfL1smXLFjZt2lSJ2lXO7bffjtFoVLszSioqKrIalp2VlcXPP/9c4WuwNsoNMGDAAIBSo0PfeustgCqNKiwsLKSoqEh9X+3duzc+Pj688847VvX55JNPyMjIuOI5MjIyKCwsLPUeffbsWavrnpmZyeeff0779u3V13Zl36OHDx/OhQsXeO+990qd//LHV4a3tzf//e9/+eabb1iwYAFt27atdEu5egybz+qGmjVrxuLFi7njjjto2bKl1YzMGzduZMmSJaXmOGnTpg39+vWzGrIOMH36dHWfmTNnsm7dOrp06cJ9991Hq1atSE1NZceOHfz222/qPDZff/01Tz75JHq9nry8PKsuoYyMDIxGIz/88ANDhw61qV7BwcF8+OGH3H333VxzzTXceeed1KtXj5MnT7JixQq6deumvhjff/99rr/+etq2bct9991HbGwsycnJbNq0idOnT5c5/4LFjBkzOHPmDG3atEGv17Njxw7mz59Pu3btbH5BgrnlbcaMGdxzzz1cd9117Nmzh0WLFll9k7HFU089xbJlyxg0aBBjxoyhY8eO5OTksGfPHr799luOHz9eqgWpslatWsVLL710xW+WlX0dVHSePn36VLu1yOKpp57i22+/5bbbbuPee++lY8eOpKamsmzZMubMmcPVV1+t7nvXXXfx9NNP8/333/PQQw9ZfWNLTk5m6tSpzJs3jzvvvJP4+PgKz71jxw7q1q1bbnejrQYOHMhbb71F//79ueuuu0hJSeH9998nLi6O3bt3V+oY1S2Tveu0cuVKnnzyScCcpF3yPeHMmTPk5OSwcOFCtVWzOv+/s2fPpmXLljzyyCN88803QOVeH4MGDeK7775j2LBhDBw4kGPHjjFnzhxatWqlDkevrhtvvJEHHniAV155hZ07d9K3b190Oh2HDx9myZIlzJ49m//85z988803TJ8+nbS0NCZNmnTFY9ZGucHc/T569Gjmzp1Leno6N954I1u3buWzzz5j6NCh3HTTTRUew3KdwfxZ8MUXX5Cfn68mGterV4/Jkyczffp0+vfvz5AhQzh48CAffPABnTt3Vl8fe/bs4YknnqBnz55ERERw9uxZPv30U0wmE//973+tznnVVVcxduxYtm3bRmRkJJ9++inJyclWLaeVfY8eNWoUn3/+ORMnTmTr1q10796dnJwcfvvtNx5++OEqfckfNWoU77zzDuvWrbNqoaq0So/z8gCHDh1S7rvvPqVJkyaKj4+PEhQUpHTr1k159913rYaCUjzsdOHChUrz5s0VvV6vdOjQocwhl8nJycq4ceOUmJgYRafTKVFRUUqvXr2UuXPnqvtYhgle6VZy6GJlh6xbrFu3TunXr58SEhKi+Pr6Ks2aNVPGjBljNQxWURQlMTFRGTVqlBIVFaXodDqlQYMGyqBBg6yGNJbl22+/VTp37qwE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "subset_df = df.iloc[0:30]\n", + "insulin = subset_df.groupby('Age')['Insulin'].mean()\n", + "bmi = subset_df.groupby('Age')['BMI'].mean()\n", + "\n", + "average_df = pd.DataFrame({\n", + " 'Insulin': insulin,\n", + " 'BMI': bmi\n", + "})\n", + "\n", + "plt.figure(figsize=(10, 6))\n", + "average_df.plot.line()\n", + "plt.title('Среднее значение инсулина и индекса тела по возрасту')\n", + "plt.xlabel('Возраст')\n", + "plt.ylabel('Среднее значение')\n", + "plt.grid(True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Данный график отображает среднее значение инсулина и индекса тела по возрасту, что позволяет сделать вывод о том, как эти показатели изменяются с возрастом." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Lab1/package/Scripts/Activate.ps1 b/Lab1/package/Scripts/Activate.ps1 new file mode 100644 index 0000000..40e96c3 --- /dev/null +++ b/Lab1/package/Scripts/Activate.ps1 @@ -0,0 +1,502 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" + +# SIG # Begin signature block +# MIIvIwYJKoZIhvcNAQcCoIIvFDCCLxACAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBnL745ElCYk8vk +# dBtMuQhLeWJ3ZGfzKW4DHCYzAn+QB6CCE8MwggWQMIIDeKADAgECAhAFmxtXno4h +# MuI5B72nd3VcMA0GCSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK +# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV +# BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0xMzA4MDExMjAwMDBaFw0z +# ODAxMTUxMjAwMDBaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ +# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0 +# IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +# AL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3EMB/z +# G6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKyunWZ +# anMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsFxl7s +# Wxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU15zHL +# 2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJBMtfb +# BHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObURWBf3 +# JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6nj3c +# AORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxBYKqx +# YxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5SUUd0 +# viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+xq4aL +# T8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjQjBAMA8GA1Ud +# EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTs1+OC0nFdZEzf +# Lmc/57qYrhwPTzANBgkqhkiG9w0BAQwFAAOCAgEAu2HZfalsvhfEkRvDoaIAjeNk +# aA9Wz3eucPn9mkqZucl4XAwMX+TmFClWCzZJXURj4K2clhhmGyMNPXnpbWvWVPjS +# PMFDQK4dUPVS/JA7u5iZaWvHwaeoaKQn3J35J64whbn2Z006Po9ZOSJTROvIXQPK +# 7VB6fWIhCoDIc2bRoAVgX+iltKevqPdtNZx8WorWojiZ83iL9E3SIAveBO6Mm0eB +# cg3AFDLvMFkuruBx8lbkapdvklBtlo1oepqyNhR6BvIkuQkRUNcIsbiJeoQjYUIp +# 5aPNoiBB19GcZNnqJqGLFNdMGbJQQXE9P01wI4YMStyB0swylIQNCAmXHE/A7msg +# dDDS4Dk0EIUhFQEI6FUy3nFJ2SgXUE3mvk3RdazQyvtBuEOlqtPDBURPLDab4vri +# RbgjU2wGb2dVf0a1TD9uKFp5JtKkqGKX0h7i7UqLvBv9R0oN32dmfrJbQdA75PQ7 +# 9ARj6e/CVABRoIoqyc54zNXqhwQYs86vSYiv85KZtrPmYQ/ShQDnUBrkG5WdGaG5 +# nLGbsQAe79APT0JsyQq87kP6OnGlyE0mpTX9iV28hWIdMtKgK1TtmlfB2/oQzxm3 +# i0objwG2J5VT6LaJbVu8aNQj6ItRolb58KaAoNYes7wPD1N1KarqE3fk3oyBIa0H +# EEcRrYc9B9F1vM/zZn4wggawMIIEmKADAgECAhAIrUCyYNKcTJ9ezam9k67ZMA0G +# CSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ +# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0 +# IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0zNjA0MjgyMzU5NTla +# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE +# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz +# ODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVtC9C +# 0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0JAfhS0/TeEP0F9ce +# 2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJrQ5qZ8sU7H/Lvy0da +# E6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhFLqGfLOEYwhrMxe6T +# SXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+FLEikVoQ11vkunKoA +# FdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh3K3kGKDYwSNHR7Oh +# D26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJwZPt4bRc4G/rJvmM +# 1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQayg9Rc9hUZTO1i4F4z +# 8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbIYViY9XwCFjyDKK05 +# huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchApQfDVxW0mdmgRQRNY +# mtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRroOBl8ZhzNeDhFMJlP +# /2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IBWTCCAVUwEgYDVR0T +# AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHwYD +# VR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMG +# A1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYY +# aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2Fj +# ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNV +# HR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRU +# cnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAEDMAgGBmeBDAEEATAN +# BgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql+Eg08yy25nRm95Ry +# sQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFFUP2cvbaF4HZ+N3HL +# IvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1hmYFW9snjdufE5Btf +# Q/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3RywYFzzDaju4ImhvTnh +# OE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5UbdldAhQfQDN8A+KVssIh +# dXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw8MzK7/0pNVwfiThV +# 9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnPLqR0kq3bPKSchh/j +# wVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatEQOON8BUozu3xGFYH +# Ki8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bnKD+sEq6lLyJsQfmC +# XBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQjiWQ1tygVQK+pKHJ6l +# /aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbqyK+p/pQd52MbOoZW +# eE4wggd3MIIFX6ADAgECAhAHHxQbizANJfMU6yMM0NHdMA0GCSqGSIb3DQEBCwUA +# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE +# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz +# ODQgMjAyMSBDQTEwHhcNMjIwMTE3MDAwMDAwWhcNMjUwMTE1MjM1OTU5WjB8MQsw +# CQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMRIwEAYDVQQHEwlCZWF2ZXJ0b24x +# IzAhBgNVBAoTGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uMSMwIQYDVQQDExpQ +# eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +# ADCCAgoCggIBAKgc0BTT+iKbtK6f2mr9pNMUTcAJxKdsuOiSYgDFfwhjQy89koM7 +# uP+QV/gwx8MzEt3c9tLJvDccVWQ8H7mVsk/K+X+IufBLCgUi0GGAZUegEAeRlSXx +# xhYScr818ma8EvGIZdiSOhqjYc4KnfgfIS4RLtZSrDFG2tN16yS8skFa3IHyvWdb +# D9PvZ4iYNAS4pjYDRjT/9uzPZ4Pan+53xZIcDgjiTwOh8VGuppxcia6a7xCyKoOA +# GjvCyQsj5223v1/Ig7Dp9mGI+nh1E3IwmyTIIuVHyK6Lqu352diDY+iCMpk9Zanm +# SjmB+GMVs+H/gOiofjjtf6oz0ki3rb7sQ8fTnonIL9dyGTJ0ZFYKeb6BLA66d2GA +# LwxZhLe5WH4Np9HcyXHACkppsE6ynYjTOd7+jN1PRJahN1oERzTzEiV6nCO1M3U1 +# HbPTGyq52IMFSBM2/07WTJSbOeXjvYR7aUxK9/ZkJiacl2iZI7IWe7JKhHohqKuc +# eQNyOzxTakLcRkzynvIrk33R9YVqtB4L6wtFxhUjvDnQg16xot2KVPdfyPAWd81w +# tZADmrUtsZ9qG79x1hBdyOl4vUtVPECuyhCxaw+faVjumapPUnwo8ygflJJ74J+B +# Yxf6UuD7m8yzsfXWkdv52DjL74TxzuFTLHPyARWCSCAbzn3ZIly+qIqDAgMBAAGj +# ggIGMIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNVHQ4E +# FgQUt/1Teh2XDuUj2WW3siYWJgkZHA8wDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQM +# MAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwzLmRp +# Z2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNI +# QTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5jb20v +# RGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0Ex +# LmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUFBwIBFhtodHRwOi8v +# d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsGAQUF +# BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0dHA6 +# Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWdu +# aW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZI +# hvcNAQELBQADggIBABxv4AeV/5ltkELHSC63fXAFYS5tadcWTiNc2rskrNLrfH1N +# s0vgSZFoQxYBFKI159E8oQQ1SKbTEubZ/B9kmHPhprHya08+VVzxC88pOEvz68nA +# 82oEM09584aILqYmj8Pj7h/kmZNzuEL7WiwFa/U1hX+XiWfLIJQsAHBla0i7QRF2 +# de8/VSF0XXFa2kBQ6aiTsiLyKPNbaNtbcucaUdn6vVUS5izWOXM95BSkFSKdE45O +# q3FForNJXjBvSCpwcP36WklaHL+aHu1upIhCTUkzTHMh8b86WmjRUqbrnvdyR2yd +# I5l1OqcMBjkpPpIV6wcc+KY/RH2xvVuuoHjlUjwq2bHiNoX+W1scCpnA8YTs2d50 +# jDHUgwUo+ciwpffH0Riq132NFmrH3r67VaN3TuBxjI8SIZM58WEDkbeoriDk3hxU +# 8ZWV7b8AW6oyVBGfM06UgkfMb58h+tJPrFx8VI/WLq1dTqMfZOm5cuclMnUHs2uq +# rRNtnV8UfidPBL4ZHkTcClQbCoz0UbLhkiDvIS00Dn+BBcxw/TKqVL4Oaz3bkMSs +# M46LciTeucHY9ExRVt3zy7i149sd+F4QozPqn7FrSVHXmem3r7bjyHTxOgqxRCVa +# 18Vtx7P/8bYSBeS+WHCKcliFCecspusCDSlnRUjZwyPdP0VHxaZg2unjHY3rMYIa +# tjCCGrICAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIElu +# Yy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJT +# QTQwOTYgU0hBMzg0IDIwMjEgQ0ExAhAHHxQbizANJfMU6yMM0NHdMA0GCWCGSAFl +# AwQCAQUAoIHIMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcC +# AQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCBnAZ6P7YvTwq0fbF62 +# o7E75R0LxsW5OtyYiFESQckLhjBcBgorBgEEAYI3AgEMMU4wTKBGgEQAQgB1AGkA +# bAB0ADoAIABSAGUAbABlAGEAcwBlAF8AdgAzAC4AMQAyAC4ANgBfADIAMAAyADQA +# MAA5ADAANgAuADAAMqECgAAwDQYJKoZIhvcNAQEBBQAEggIAhen5GN03SF9I96DT +# rrWEsN7FAyx8BHoRf9WFBqoBXpFkBwlE6OWj/rxohuwB/b+3vcBGWaP497ACku4l +# lgrWCrmYOVMKTjeHtDDkvgmygvGAtWB5drf56553na9RYjTxRqxto5LBMsHtPZy6 +# 1D+touyLSHx+QXzqXO4ssUq7oHtsmjDCKMLdcTuoqNGtpxaIwwlOAK+0DaLLUpkX +# VRUUzMWBb+2FlmJ2wWtXXs6OtlACm4By2hHmKhd6OYwnHPe6fDVdrhGa0BcDAIIO +# +elm895ddmfX2KqHWrKpgZ/0DM46pbEiYX4GVwY+kmrK9p8XF7c50c331vPPuImL +# URRShtCM9F/5e522nQm0NxQ0Pz+thMD+qGBA8WuSoD+RRG+JKOXgM8sMX46goR8P +# 1IJLeUnEKSOgMNcP0EUeWthrqXRjVgNcazIDgPFpPGMyo4Pp0D8SPvp/RzP3CPVo +# uVj6r0OnhyoDuDEX4KCyo/+TCSm+2T+hv+cPWQaukovXF1TmahWb/8j1+K1RkCVd +# UQ5v07AHYoHmJ2gxEgtM9qaVDx4woVVCpUrOhiAP/K1WSRw710oTqECG+4y+g67D +# P2UuOxxaxhPk0pITFj9pZQcVsrCk5QbW3Yj/I3fISZgjVfYK1IDKzaWQQuBhOuim +# j2/Tfcg+cLDbY4XEs5vpbKSYsCWhghc/MIIXOwYKKwYBBAGCNwMDATGCFyswghcn +# BgkqhkiG9w0BBwKgghcYMIIXFAIBAzEPMA0GCWCGSAFlAwQCAQUAMHcGCyqGSIb3 +# DQEJEAEEoGgEZjBkAgEBBglghkgBhv1sBwEwMTANBglghkgBZQMEAgEFAAQgS2eq +# 9RcYET/J2twNl3zStqvYDUBOrSdHvMcFbSu+C2sCEGHEWhqgAhMA1D+QZOB9TC4Y +# DzIwMjQwOTA2MjAyNzExWqCCEwkwggbCMIIEqqADAgECAhAFRK/zlJ0IOaa/2z9f +# 5WEWMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdp +# Q2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2 +# IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EwHhcNMjMwNzE0MDAwMDAwWhcNMzQxMDEz +# MjM1OTU5WjBIMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x +# IDAeBgNVBAMTF0RpZ2lDZXJ0IFRpbWVzdGFtcCAyMDIzMIICIjANBgkqhkiG9w0B +# AQEFAAOCAg8AMIICCgKCAgEAo1NFhx2DjlusPlSzI+DPn9fl0uddoQ4J3C9Io5d6 +# OyqcZ9xiFVjBqZMRp82qsmrdECmKHmJjadNYnDVxvzqX65RQjxwg6seaOy+WZuNp +# 52n+W8PWKyAcwZeUtKVQgfLPywemMGjKg0La/H8JJJSkghraarrYO8pd3hkYhftF +# 6g1hbJ3+cV7EBpo88MUueQ8bZlLjyNY+X9pD04T10Mf2SC1eRXWWdf7dEKEbg8G4 +# 5lKVtUfXeCk5a+B4WZfjRCtK1ZXO7wgX6oJkTf8j48qG7rSkIWRw69XloNpjsy7p +# Be6q9iT1HbybHLK3X9/w7nZ9MZllR1WdSiQvrCuXvp/k/XtzPjLuUjT71Lvr1KAs +# NJvj3m5kGQc3AZEPHLVRzapMZoOIaGK7vEEbeBlt5NkP4FhB+9ixLOFRr7StFQYU +# 6mIIE9NpHnxkTZ0P387RXoyqq1AVybPKvNfEO2hEo6U7Qv1zfe7dCv95NBB+plwK +# WEwAPoVpdceDZNZ1zY8SdlalJPrXxGshuugfNJgvOuprAbD3+yqG7HtSOKmYCaFx +# smxxrz64b5bV4RAT/mFHCoz+8LbH1cfebCTwv0KCyqBxPZySkwS0aXAnDU+3tTbR +# yV8IpHCj7ArxES5k4MsiK8rxKBMhSVF+BmbTO77665E42FEHypS34lCh8zrTioPL +# QHsCAwEAAaOCAYswggGHMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBYG +# A1UdJQEB/wQMMAoGCCsGAQUFBwMIMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCG +# SAGG/WwHATAfBgNVHSMEGDAWgBS6FtltTYUvcyl2mi91jGogj57IbzAdBgNVHQ4E +# FgQUpbbvE+fvzdBkodVWqWUxo97V40kwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDov +# L2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0UlNBNDA5NlNIQTI1 +# NlRpbWVTdGFtcGluZ0NBLmNybDCBkAYIKwYBBQUHAQEEgYMwgYAwJAYIKwYBBQUH +# MAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBYBggrBgEFBQcwAoZMaHR0cDov +# L2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0UlNBNDA5NlNI +# QTI1NlRpbWVTdGFtcGluZ0NBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAgRrW3qCp +# tZgXvHCNT4o8aJzYJf/LLOTN6l0ikuyMIgKpuM+AqNnn48XtJoKKcS8Y3U623mzX +# 4WCcK+3tPUiOuGu6fF29wmE3aEl3o+uQqhLXJ4Xzjh6S2sJAOJ9dyKAuJXglnSoF +# eoQpmLZXeY/bJlYrsPOnvTcM2Jh2T1a5UsK2nTipgedtQVyMadG5K8TGe8+c+nji +# kxp2oml101DkRBK+IA2eqUTQ+OVJdwhaIcW0z5iVGlS6ubzBaRm6zxbygzc0brBB +# Jt3eWpdPM43UjXd9dUWhpVgmagNF3tlQtVCMr1a9TMXhRsUo063nQwBw3syYnhmJ +# A+rUkTfvTVLzyWAhxFZH7doRS4wyw4jmWOK22z75X7BC1o/jF5HRqsBV44a/rCcs +# QdCaM0qoNtS5cpZ+l3k4SF/Kwtw9Mt911jZnWon49qfH5U81PAC9vpwqbHkB3NpE +# 5jreODsHXjlY9HxzMVWggBHLFAx+rrz+pOt5Zapo1iLKO+uagjVXKBbLafIymrLS +# 2Dq4sUaGa7oX/cR3bBVsrquvczroSUa31X/MtjjA2Owc9bahuEMs305MfR5ocMB3 +# CtQC4Fxguyj/OOVSWtasFyIjTvTs0xf7UGv/B3cfcZdEQcm4RtNsMnxYL2dHZeUb +# c7aZ+WssBkbvQR7w8F/g29mtkIBEr4AQQYowggauMIIElqADAgECAhAHNje3JFR8 +# 2Ees/ShmKl5bMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK +# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV +# BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yMjAzMjMwMDAwMDBaFw0z +# NzAzMjIyMzU5NTlaMGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg +# SW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1 +# NiBUaW1lU3RhbXBpbmcgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +# AQDGhjUGSbPBPXJJUVXHJQPE8pE3qZdRodbSg9GeTKJtoLDMg/la9hGhRBVCX6SI +# 82j6ffOciQt/nR+eDzMfUBMLJnOWbfhXqAJ9/UO0hNoR8XOxs+4rgISKIhjf69o9 +# xBd/qxkrPkLcZ47qUT3w1lbU5ygt69OxtXXnHwZljZQp09nsad/ZkIdGAHvbREGJ +# 3HxqV3rwN3mfXazL6IRktFLydkf3YYMZ3V+0VAshaG43IbtArF+y3kp9zvU5Emfv +# DqVjbOSmxR3NNg1c1eYbqMFkdECnwHLFuk4fsbVYTXn+149zk6wsOeKlSNbwsDET +# qVcplicu9Yemj052FVUmcJgmf6AaRyBD40NjgHt1biclkJg6OBGz9vae5jtb7IHe +# IhTZgirHkr+g3uM+onP65x9abJTyUpURK1h0QCirc0PO30qhHGs4xSnzyqqWc0Jo +# n7ZGs506o9UD4L/wojzKQtwYSH8UNM/STKvvmz3+DrhkKvp1KCRB7UK/BZxmSVJQ +# 9FHzNklNiyDSLFc1eSuo80VgvCONWPfcYd6T/jnA+bIwpUzX6ZhKWD7TA4j+s4/T +# Xkt2ElGTyYwMO1uKIqjBJgj5FBASA31fI7tk42PgpuE+9sJ0sj8eCXbsq11GdeJg +# o1gJASgADoRU7s7pXcheMBK9Rp6103a50g5rmQzSM7TNsQIDAQABo4IBXTCCAVkw +# EgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUuhbZbU2FL3MpdpovdYxqII+e +# yG8wHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQD +# AgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEF +# BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRw +# Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNy +# dDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln +# aUNlcnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglg +# hkgBhv1sBwEwDQYJKoZIhvcNAQELBQADggIBAH1ZjsCTtm+YqUQiAX5m1tghQuGw +# GC4QTRPPMFPOvxj7x1Bd4ksp+3CKDaopafxpwc8dB+k+YMjYC+VcW9dth/qEICU0 +# MWfNthKWb8RQTGIdDAiCqBa9qVbPFXONASIlzpVpP0d3+3J0FNf/q0+KLHqrhc1D +# X+1gtqpPkWaeLJ7giqzl/Yy8ZCaHbJK9nXzQcAp876i8dU+6WvepELJd6f8oVInw +# 1YpxdmXazPByoyP6wCeCRK6ZJxurJB4mwbfeKuv2nrF5mYGjVoarCkXJ38SNoOeY +# +/umnXKvxMfBwWpx2cYTgAnEtp/Nh4cku0+jSbl3ZpHxcpzpSwJSpzd+k1OsOx0I +# SQ+UzTl63f8lY5knLD0/a6fxZsNBzU+2QJshIUDQtxMkzdwdeDrknq3lNHGS1yZr +# 5Dhzq6YBT70/O3itTK37xJV77QpfMzmHQXh6OOmc4d0j/R0o08f56PGYX/sr2H7y +# Rp11LB4nLCbbbxV7HhmLNriT1ObyF5lZynDwN7+YAN8gFk8n+2BnFqFmut1VwDop +# hrCYoCvtlUG3OtUVmDG0YgkPCr2B2RP+v6TR81fZvAT6gt4y3wSJ8ADNXcL50CN/ +# AAvkdgIm2fBldkKmKYcJRyvmfxqkhQ/8mJb2VVQrH4D6wPIOK+XW+6kvRBVK5xMO +# Hds3OBqhK/bt1nz8MIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkq +# hkiG9w0BAQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j +# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBB +# c3N1cmVkIElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5 +# WjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +# ExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJv +# b3QgRzQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1K +# PDAiMGkz7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2r +# snnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C +# 8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBf +# sXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +# QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8 +# rhsDdV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaY +# dj1ZXUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+ +# wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw +# ++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+N +# P8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7F +# wI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUw +# AwEB/zAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAU +# Reuir/SSy4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEB +# BG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsG +# AQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1 +# cmVkSURSb290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRp +# Z2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAow +# CDAGBgRVHSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/ +# Vwe9mqyhhyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLe +# JLxSA8hO0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE +# 1Od/6Fmo8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9Hda +# XFSMb++hUD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbO +# byMt9H5xaiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMYID +# djCCA3ICAQEwdzBjMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIElu +# Yy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYg +# VGltZVN0YW1waW5nIENBAhAFRK/zlJ0IOaa/2z9f5WEWMA0GCWCGSAFlAwQCAQUA +# oIHRMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcN +# MjQwOTA2MjAyNzExWjArBgsqhkiG9w0BCRACDDEcMBowGDAWBBRm8CsywsLJD4Jd +# zqqKycZPGZzPQDAvBgkqhkiG9w0BCQQxIgQgXSdFKsIxhS4gvdZFC5i8csELx4EN +# gje4K7DDRX8dz3AwNwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQg0vbkbe10IszR1EBX +# aEE2b4KK2lWarjMWr00amtQMeCgwDQYJKoZIhvcNAQEBBQAEggIAYX9aC647tWiS +# rGwjsC+5s2CosHEwRzUG9YNI58OJgUfCwsfgMkgKWkSi/K7mumf5RHkU+P+HCwoy +# kvIOZ7viK9fcAkK9zS3eKPUA6mGQS11yEnEhRUZbrrsG1uHQO+gSO2SgyLs8+3vX +# /8+YEl1IkGbw4/oeLavq79jULQqZ6/00n0E0nFDmbprjFK4wUX4CoIqt8AAWCt4F +# Az8XwvYxa63A2JQmeDzDAWR4lfNbREQaC3MdnqbnvQIBQUspJsn3t7zxU+ubzCez +# kCkk+7Tt5FFCP9OJvc/BEv3HcXrTAoZ4VFfAwL9K1DQ4A3hbsvKlwV0OxZlhouMd +# fGq+R8IGMsy7mGxeHx67nzKIr6Rjd426YsGskp5D3gE9shvH8i3GOTBi2Y9JUnaU +# /KX+IMzKbvR0Y9echgTb17v3D/+fYzDD/kSGJcuQEIbJEyYsCDBF53xoKd6K0Pgz +# 2drucT9otwOLUgGfR1N6lRwDtkMHYB25OMIKLYtcfHjQZn+Howq/TVUbp9ohhW1N +# jim3nJfNvmRe2zN5476SOn86GzzrqxfAMCTtbZeim2ltOHxlnPUE8EJLdRFesKMK +# 6izgaxptlT+MO0R8jx1VoOn+qbQPbNn2GCOUvh/yFkjwDLtFb/rNdoWMNrSMZDhV +# mRCM17SwjW6qRmsrC7VSaSAgPsokYM0= +# SIG # End signature block diff --git a/Lab1/package/Scripts/activate b/Lab1/package/Scripts/activate new file mode 100644 index 0000000..34383b5 --- /dev/null +++ b/Lab1/package/Scripts/activate @@ -0,0 +1,70 @@ +# This file must be used with "source bin/activate" *from bash* +# You cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # Call hash to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + hash -r 2> /dev/null + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +# on Windows, a path can contain colons and backslashes and has to be converted: +if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then + # transform D:\path\to\venv to /d/path/to/venv on MSYS + # and to /cygdrive/d/path/to/venv on Cygwin + export VIRTUAL_ENV=$(cygpath "D:\5_semester\AIM\AIM-PIbd-31-Razubaev-S-M\Lab1\package") +else + # use the path as-is + export VIRTUAL_ENV="D:\5_semester\AIM\AIM-PIbd-31-Razubaev-S-M\Lab1\package" +fi + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/Scripts:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1="(package) ${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT="(package) " + export VIRTUAL_ENV_PROMPT +fi + +# Call hash to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +hash -r 2> /dev/null diff --git a/Lab1/package/Scripts/activate.bat b/Lab1/package/Scripts/activate.bat new file mode 100644 index 0000000..a7ab993 --- /dev/null +++ b/Lab1/package/Scripts/activate.bat @@ -0,0 +1,34 @@ +@echo off + +rem This file is UTF-8 encoded, so we need to update the current code page while executing it +for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do ( + set _OLD_CODEPAGE=%%a +) +if defined _OLD_CODEPAGE ( + "%SystemRoot%\System32\chcp.com" 65001 > nul +) + +set VIRTUAL_ENV=D:\5_semester\AIM\AIM-PIbd-31-Razubaev-S-M\Lab1\package + +if not defined PROMPT set PROMPT=$P$G + +if defined _OLD_VIRTUAL_PROMPT set PROMPT=%_OLD_VIRTUAL_PROMPT% +if defined _OLD_VIRTUAL_PYTHONHOME set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% + +set _OLD_VIRTUAL_PROMPT=%PROMPT% +set PROMPT=(package) %PROMPT% + +if defined PYTHONHOME set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% +set PYTHONHOME= + +if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH% +if not defined _OLD_VIRTUAL_PATH set _OLD_VIRTUAL_PATH=%PATH% + +set PATH=%VIRTUAL_ENV%\Scripts;%PATH% +set VIRTUAL_ENV_PROMPT=(package) + +:END +if defined _OLD_CODEPAGE ( + "%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul + set _OLD_CODEPAGE= +) diff --git a/Lab1/package/Scripts/deactivate.bat b/Lab1/package/Scripts/deactivate.bat new file mode 100644 index 0000000..62a39a7 --- /dev/null +++ b/Lab1/package/Scripts/deactivate.bat @@ -0,0 +1,22 @@ +@echo off + +if defined _OLD_VIRTUAL_PROMPT ( + set "PROMPT=%_OLD_VIRTUAL_PROMPT%" +) +set _OLD_VIRTUAL_PROMPT= + +if defined _OLD_VIRTUAL_PYTHONHOME ( + set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" + set _OLD_VIRTUAL_PYTHONHOME= +) + +if defined _OLD_VIRTUAL_PATH ( + set "PATH=%_OLD_VIRTUAL_PATH%" +) + +set _OLD_VIRTUAL_PATH= + +set VIRTUAL_ENV= +set VIRTUAL_ENV_PROMPT= + +:END diff --git a/Lab1/package/Scripts/debugpy.exe b/Lab1/package/Scripts/debugpy.exe new file mode 100644 index 0000000..5ec0479 Binary files /dev/null and b/Lab1/package/Scripts/debugpy.exe differ diff --git a/Lab1/package/Scripts/f2py.exe b/Lab1/package/Scripts/f2py.exe new file mode 100644 index 0000000..072202a Binary files /dev/null and b/Lab1/package/Scripts/f2py.exe differ diff --git a/Lab1/package/Scripts/fonttools.exe b/Lab1/package/Scripts/fonttools.exe new file mode 100644 index 0000000..2ce0982 Binary files /dev/null and b/Lab1/package/Scripts/fonttools.exe differ diff --git a/Lab1/package/Scripts/ipython.exe b/Lab1/package/Scripts/ipython.exe new file mode 100644 index 0000000..23b69d0 Binary files /dev/null and b/Lab1/package/Scripts/ipython.exe differ diff --git a/Lab1/package/Scripts/ipython3.exe b/Lab1/package/Scripts/ipython3.exe new file mode 100644 index 0000000..23b69d0 Binary files /dev/null and b/Lab1/package/Scripts/ipython3.exe differ diff --git a/Lab1/package/Scripts/jupyter-kernel.exe b/Lab1/package/Scripts/jupyter-kernel.exe new file mode 100644 index 0000000..046891c Binary files /dev/null and b/Lab1/package/Scripts/jupyter-kernel.exe differ diff --git a/Lab1/package/Scripts/jupyter-kernelspec.exe b/Lab1/package/Scripts/jupyter-kernelspec.exe new file mode 100644 index 0000000..db6622c Binary files /dev/null and b/Lab1/package/Scripts/jupyter-kernelspec.exe differ diff --git a/Lab1/package/Scripts/jupyter-migrate.exe b/Lab1/package/Scripts/jupyter-migrate.exe new file mode 100644 index 0000000..ede1f1b Binary files /dev/null and b/Lab1/package/Scripts/jupyter-migrate.exe differ diff --git a/Lab1/package/Scripts/jupyter-run.exe b/Lab1/package/Scripts/jupyter-run.exe new file mode 100644 index 0000000..72b9642 Binary files /dev/null and b/Lab1/package/Scripts/jupyter-run.exe differ diff --git a/Lab1/package/Scripts/jupyter-troubleshoot.exe b/Lab1/package/Scripts/jupyter-troubleshoot.exe new file mode 100644 index 0000000..f3dacda Binary files /dev/null and b/Lab1/package/Scripts/jupyter-troubleshoot.exe differ diff --git a/Lab1/package/Scripts/jupyter.exe b/Lab1/package/Scripts/jupyter.exe new file mode 100644 index 0000000..4ce2f1f Binary files /dev/null and b/Lab1/package/Scripts/jupyter.exe differ diff --git a/Lab1/package/Scripts/numpy-config.exe b/Lab1/package/Scripts/numpy-config.exe new file mode 100644 index 0000000..6184c8a Binary files /dev/null and b/Lab1/package/Scripts/numpy-config.exe differ diff --git a/Lab1/package/Scripts/pip.exe b/Lab1/package/Scripts/pip.exe new file mode 100644 index 0000000..8548931 Binary files /dev/null and b/Lab1/package/Scripts/pip.exe differ diff --git a/Lab1/package/Scripts/pip3.12.exe b/Lab1/package/Scripts/pip3.12.exe new file mode 100644 index 0000000..8548931 Binary files /dev/null and b/Lab1/package/Scripts/pip3.12.exe differ diff --git a/Lab1/package/Scripts/pip3.exe b/Lab1/package/Scripts/pip3.exe new file mode 100644 index 0000000..8548931 Binary files /dev/null and b/Lab1/package/Scripts/pip3.exe differ diff --git a/Lab1/package/Scripts/pyftmerge.exe b/Lab1/package/Scripts/pyftmerge.exe new file mode 100644 index 0000000..bcb7429 Binary files /dev/null and b/Lab1/package/Scripts/pyftmerge.exe differ diff --git a/Lab1/package/Scripts/pyftsubset.exe b/Lab1/package/Scripts/pyftsubset.exe new file mode 100644 index 0000000..1cda775 Binary files /dev/null and b/Lab1/package/Scripts/pyftsubset.exe differ diff --git a/Lab1/package/Scripts/pygmentize.exe b/Lab1/package/Scripts/pygmentize.exe new file mode 100644 index 0000000..2dcb154 Binary files /dev/null and b/Lab1/package/Scripts/pygmentize.exe differ diff --git a/Lab1/package/Scripts/python.exe b/Lab1/package/Scripts/python.exe new file mode 100644 index 0000000..31bc682 Binary files /dev/null and b/Lab1/package/Scripts/python.exe differ diff --git a/Lab1/package/Scripts/pythonw.exe b/Lab1/package/Scripts/pythonw.exe new file mode 100644 index 0000000..180845b Binary files /dev/null and b/Lab1/package/Scripts/pythonw.exe differ diff --git a/Lab1/package/Scripts/pywin32_postinstall.py b/Lab1/package/Scripts/pywin32_postinstall.py new file mode 100644 index 0000000..147f0cd --- /dev/null +++ b/Lab1/package/Scripts/pywin32_postinstall.py @@ -0,0 +1,783 @@ +# postinstall script for pywin32 +# +# copies PyWinTypesxx.dll and PythonCOMxx.dll into the system directory, +# and creates a pth file +import glob +import os +import shutil +import sys +import sysconfig + +try: + import winreg as winreg +except: + import winreg + +# Send output somewhere so it can be found if necessary... +import tempfile + +tee_f = open(os.path.join(tempfile.gettempdir(), "pywin32_postinstall.log"), "w") + + +class Tee: + def __init__(self, file): + self.f = file + + def write(self, what): + if self.f is not None: + try: + self.f.write(what.replace("\n", "\r\n")) + except IOError: + pass + tee_f.write(what) + + def flush(self): + if self.f is not None: + try: + self.f.flush() + except IOError: + pass + tee_f.flush() + + +# For some unknown reason, when running under bdist_wininst we will start up +# with sys.stdout as None but stderr is hooked up. This work-around allows +# bdist_wininst to see the output we write and display it at the end of +# the install. +if sys.stdout is None: + sys.stdout = sys.stderr + +sys.stderr = Tee(sys.stderr) +sys.stdout = Tee(sys.stdout) + +com_modules = [ + # module_name, class_names + ("win32com.servers.interp", "Interpreter"), + ("win32com.servers.dictionary", "DictionaryPolicy"), + ("win32com.axscript.client.pyscript", "PyScript"), +] + +# Is this a 'silent' install - ie, avoid all dialogs. +# Different than 'verbose' +silent = 0 + +# Verbosity of output messages. +verbose = 1 + +root_key_name = "Software\\Python\\PythonCore\\" + sys.winver + +try: + # When this script is run from inside the bdist_wininst installer, + # file_created() and directory_created() are additional builtin + # functions which write lines to Python23\pywin32-install.log. This is + # a list of actions for the uninstaller, the format is inspired by what + # the Wise installer also creates. + file_created + is_bdist_wininst = True +except NameError: + is_bdist_wininst = False # we know what it is not - but not what it is :) + + def file_created(file): + pass + + def directory_created(directory): + pass + + def get_root_hkey(): + try: + winreg.OpenKey( + winreg.HKEY_LOCAL_MACHINE, root_key_name, 0, winreg.KEY_CREATE_SUB_KEY + ) + return winreg.HKEY_LOCAL_MACHINE + except OSError: + # Either not exist, or no permissions to create subkey means + # must be HKCU + return winreg.HKEY_CURRENT_USER + + +try: + create_shortcut +except NameError: + # Create a function with the same signature as create_shortcut provided + # by bdist_wininst + def create_shortcut( + path, description, filename, arguments="", workdir="", iconpath="", iconindex=0 + ): + import pythoncom + from win32com.shell import shell + + ilink = pythoncom.CoCreateInstance( + shell.CLSID_ShellLink, + None, + pythoncom.CLSCTX_INPROC_SERVER, + shell.IID_IShellLink, + ) + ilink.SetPath(path) + ilink.SetDescription(description) + if arguments: + ilink.SetArguments(arguments) + if workdir: + ilink.SetWorkingDirectory(workdir) + if iconpath or iconindex: + ilink.SetIconLocation(iconpath, iconindex) + # now save it. + ipf = ilink.QueryInterface(pythoncom.IID_IPersistFile) + ipf.Save(filename, 0) + + # Support the same list of "path names" as bdist_wininst. + def get_special_folder_path(path_name): + from win32com.shell import shell, shellcon + + for maybe in """ + CSIDL_COMMON_STARTMENU CSIDL_STARTMENU CSIDL_COMMON_APPDATA + CSIDL_LOCAL_APPDATA CSIDL_APPDATA CSIDL_COMMON_DESKTOPDIRECTORY + CSIDL_DESKTOPDIRECTORY CSIDL_COMMON_STARTUP CSIDL_STARTUP + CSIDL_COMMON_PROGRAMS CSIDL_PROGRAMS CSIDL_PROGRAM_FILES_COMMON + CSIDL_PROGRAM_FILES CSIDL_FONTS""".split(): + if maybe == path_name: + csidl = getattr(shellcon, maybe) + return shell.SHGetSpecialFolderPath(0, csidl, False) + raise ValueError("%s is an unknown path ID" % (path_name,)) + + +def CopyTo(desc, src, dest): + import win32api + import win32con + + while 1: + try: + win32api.CopyFile(src, dest, 0) + return + except win32api.error as details: + if details.winerror == 5: # access denied - user not admin. + raise + if silent: + # Running silent mode - just re-raise the error. + raise + full_desc = ( + "Error %s\n\n" + "If you have any Python applications running, " + "please close them now\nand select 'Retry'\n\n%s" + % (desc, details.strerror) + ) + rc = win32api.MessageBox( + 0, full_desc, "Installation Error", win32con.MB_ABORTRETRYIGNORE + ) + if rc == win32con.IDABORT: + raise + elif rc == win32con.IDIGNORE: + return + # else retry - around we go again. + + +# We need to import win32api to determine the Windows system directory, +# so we can copy our system files there - but importing win32api will +# load the pywintypes.dll already in the system directory preventing us +# from updating them! +# So, we pull the same trick pywintypes.py does, but it loads from +# our pywintypes_system32 directory. +def LoadSystemModule(lib_dir, modname): + # See if this is a debug build. + import importlib.machinery + import importlib.util + + suffix = "_d" if "_d.pyd" in importlib.machinery.EXTENSION_SUFFIXES else "" + filename = "%s%d%d%s.dll" % ( + modname, + sys.version_info[0], + sys.version_info[1], + suffix, + ) + filename = os.path.join(lib_dir, "pywin32_system32", filename) + loader = importlib.machinery.ExtensionFileLoader(modname, filename) + spec = importlib.machinery.ModuleSpec(name=modname, loader=loader, origin=filename) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + + +def SetPyKeyVal(key_name, value_name, value): + root_hkey = get_root_hkey() + root_key = winreg.OpenKey(root_hkey, root_key_name) + try: + my_key = winreg.CreateKey(root_key, key_name) + try: + winreg.SetValueEx(my_key, value_name, 0, winreg.REG_SZ, value) + if verbose: + print("-> %s\\%s[%s]=%r" % (root_key_name, key_name, value_name, value)) + finally: + my_key.Close() + finally: + root_key.Close() + + +def UnsetPyKeyVal(key_name, value_name, delete_key=False): + root_hkey = get_root_hkey() + root_key = winreg.OpenKey(root_hkey, root_key_name) + try: + my_key = winreg.OpenKey(root_key, key_name, 0, winreg.KEY_SET_VALUE) + try: + winreg.DeleteValue(my_key, value_name) + if verbose: + print("-> DELETE %s\\%s[%s]" % (root_key_name, key_name, value_name)) + finally: + my_key.Close() + if delete_key: + winreg.DeleteKey(root_key, key_name) + if verbose: + print("-> DELETE %s\\%s" % (root_key_name, key_name)) + except OSError as why: + winerror = getattr(why, "winerror", why.errno) + if winerror != 2: # file not found + raise + finally: + root_key.Close() + + +def RegisterCOMObjects(register=True): + import win32com.server.register + + if register: + func = win32com.server.register.RegisterClasses + else: + func = win32com.server.register.UnregisterClasses + flags = {} + if not verbose: + flags["quiet"] = 1 + for module, klass_name in com_modules: + __import__(module) + mod = sys.modules[module] + flags["finalize_register"] = getattr(mod, "DllRegisterServer", None) + flags["finalize_unregister"] = getattr(mod, "DllUnregisterServer", None) + klass = getattr(mod, klass_name) + func(klass, **flags) + + +def RegisterHelpFile(register=True, lib_dir=None): + if lib_dir is None: + lib_dir = sysconfig.get_paths()["platlib"] + if register: + # Register the .chm help file. + chm_file = os.path.join(lib_dir, "PyWin32.chm") + if os.path.isfile(chm_file): + # This isn't recursive, so if 'Help' doesn't exist, we croak + SetPyKeyVal("Help", None, None) + SetPyKeyVal("Help\\Pythonwin Reference", None, chm_file) + return chm_file + else: + print("NOTE: PyWin32.chm can not be located, so has not " "been registered") + else: + UnsetPyKeyVal("Help\\Pythonwin Reference", None, delete_key=True) + return None + + +def RegisterPythonwin(register=True, lib_dir=None): + """Add (or remove) Pythonwin to context menu for python scripts. + ??? Should probably also add Edit command for pys files also. + Also need to remove these keys on uninstall, but there's no function + like file_created to add registry entries to uninstall log ??? + """ + import os + + if lib_dir is None: + lib_dir = sysconfig.get_paths()["platlib"] + classes_root = get_root_hkey() + ## Installer executable doesn't seem to pass anything to postinstall script indicating if it's a debug build, + pythonwin_exe = os.path.join(lib_dir, "Pythonwin", "Pythonwin.exe") + pythonwin_edit_command = pythonwin_exe + ' -edit "%1"' + + keys_vals = [ + ( + "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Pythonwin.exe", + "", + pythonwin_exe, + ), + ( + "Software\\Classes\\Python.File\\shell\\Edit with Pythonwin", + "command", + pythonwin_edit_command, + ), + ( + "Software\\Classes\\Python.NoConFile\\shell\\Edit with Pythonwin", + "command", + pythonwin_edit_command, + ), + ] + + try: + if register: + for key, sub_key, val in keys_vals: + ## Since winreg only uses the character Api functions, this can fail if Python + ## is installed to a path containing non-ascii characters + hkey = winreg.CreateKey(classes_root, key) + if sub_key: + hkey = winreg.CreateKey(hkey, sub_key) + winreg.SetValueEx(hkey, None, 0, winreg.REG_SZ, val) + hkey.Close() + else: + for key, sub_key, val in keys_vals: + try: + if sub_key: + hkey = winreg.OpenKey(classes_root, key) + winreg.DeleteKey(hkey, sub_key) + hkey.Close() + winreg.DeleteKey(classes_root, key) + except OSError as why: + winerror = getattr(why, "winerror", why.errno) + if winerror != 2: # file not found + raise + finally: + # tell windows about the change + from win32com.shell import shell, shellcon + + shell.SHChangeNotify( + shellcon.SHCNE_ASSOCCHANGED, shellcon.SHCNF_IDLIST, None, None + ) + + +def get_shortcuts_folder(): + if get_root_hkey() == winreg.HKEY_LOCAL_MACHINE: + try: + fldr = get_special_folder_path("CSIDL_COMMON_PROGRAMS") + except OSError: + # No CSIDL_COMMON_PROGRAMS on this platform + fldr = get_special_folder_path("CSIDL_PROGRAMS") + else: + # non-admin install - always goes in this user's start menu. + fldr = get_special_folder_path("CSIDL_PROGRAMS") + + try: + install_group = winreg.QueryValue( + get_root_hkey(), root_key_name + "\\InstallPath\\InstallGroup" + ) + except OSError: + vi = sys.version_info + install_group = "Python %d.%d" % (vi[0], vi[1]) + return os.path.join(fldr, install_group) + + +# Get the system directory, which may be the Wow64 directory if we are a 32bit +# python on a 64bit OS. +def get_system_dir(): + import win32api # we assume this exists. + + try: + import pythoncom + import win32process + from win32com.shell import shell, shellcon + + try: + if win32process.IsWow64Process(): + return shell.SHGetSpecialFolderPath(0, shellcon.CSIDL_SYSTEMX86) + return shell.SHGetSpecialFolderPath(0, shellcon.CSIDL_SYSTEM) + except (pythoncom.com_error, win32process.error): + return win32api.GetSystemDirectory() + except ImportError: + return win32api.GetSystemDirectory() + + +def fixup_dbi(): + # We used to have a dbi.pyd with our .pyd files, but now have a .py file. + # If the user didn't uninstall, they will find the .pyd which will cause + # problems - so handle that. + import win32api + import win32con + + pyd_name = os.path.join(os.path.dirname(win32api.__file__), "dbi.pyd") + pyd_d_name = os.path.join(os.path.dirname(win32api.__file__), "dbi_d.pyd") + py_name = os.path.join(os.path.dirname(win32con.__file__), "dbi.py") + for this_pyd in (pyd_name, pyd_d_name): + this_dest = this_pyd + ".old" + if os.path.isfile(this_pyd) and os.path.isfile(py_name): + try: + if os.path.isfile(this_dest): + print( + "Old dbi '%s' already exists - deleting '%s'" + % (this_dest, this_pyd) + ) + os.remove(this_pyd) + else: + os.rename(this_pyd, this_dest) + print("renamed '%s'->'%s.old'" % (this_pyd, this_pyd)) + file_created(this_pyd + ".old") + except os.error as exc: + print("FAILED to rename '%s': %s" % (this_pyd, exc)) + + +def install(lib_dir): + import traceback + + # The .pth file is now installed as a regular file. + # Create the .pth file in the site-packages dir, and use only relative paths + # We used to write a .pth directly to sys.prefix - clobber it. + if os.path.isfile(os.path.join(sys.prefix, "pywin32.pth")): + os.unlink(os.path.join(sys.prefix, "pywin32.pth")) + # The .pth may be new and therefore not loaded in this session. + # Setup the paths just in case. + for name in "win32 win32\\lib Pythonwin".split(): + sys.path.append(os.path.join(lib_dir, name)) + # It is possible people with old versions installed with still have + # pywintypes and pythoncom registered. We no longer need this, and stale + # entries hurt us. + for name in "pythoncom pywintypes".split(): + keyname = "Software\\Python\\PythonCore\\" + sys.winver + "\\Modules\\" + name + for root in winreg.HKEY_LOCAL_MACHINE, winreg.HKEY_CURRENT_USER: + try: + winreg.DeleteKey(root, keyname + "\\Debug") + except WindowsError: + pass + try: + winreg.DeleteKey(root, keyname) + except WindowsError: + pass + LoadSystemModule(lib_dir, "pywintypes") + LoadSystemModule(lib_dir, "pythoncom") + import win32api + + # and now we can get the system directory: + files = glob.glob(os.path.join(lib_dir, "pywin32_system32\\*.*")) + if not files: + raise RuntimeError("No system files to copy!!") + # Try the system32 directory first - if that fails due to "access denied", + # it implies a non-admin user, and we use sys.prefix + for dest_dir in [get_system_dir(), sys.prefix]: + # and copy some files over there + worked = 0 + try: + for fname in files: + base = os.path.basename(fname) + dst = os.path.join(dest_dir, base) + CopyTo("installing %s" % base, fname, dst) + if verbose: + print("Copied %s to %s" % (base, dst)) + # Register the files with the uninstaller + file_created(dst) + worked = 1 + # Nuke any other versions that may exist - having + # duplicates causes major headaches. + bad_dest_dirs = [ + os.path.join(sys.prefix, "Library\\bin"), + os.path.join(sys.prefix, "Lib\\site-packages\\win32"), + ] + if dest_dir != sys.prefix: + bad_dest_dirs.append(sys.prefix) + for bad_dest_dir in bad_dest_dirs: + bad_fname = os.path.join(bad_dest_dir, base) + if os.path.exists(bad_fname): + # let exceptions go here - delete must succeed + os.unlink(bad_fname) + if worked: + break + except win32api.error as details: + if details.winerror == 5: + # access denied - user not admin - try sys.prefix dir, + # but first check that a version doesn't already exist + # in that place - otherwise that one will still get used! + if os.path.exists(dst): + msg = ( + "The file '%s' exists, but can not be replaced " + "due to insufficient permissions. You must " + "reinstall this software as an Administrator" % dst + ) + print(msg) + raise RuntimeError(msg) + continue + raise + else: + raise RuntimeError( + "You don't have enough permissions to install the system files" + ) + + # Pythonwin 'compiles' config files - record them for uninstall. + pywin_dir = os.path.join(lib_dir, "Pythonwin", "pywin") + for fname in glob.glob(os.path.join(pywin_dir, "*.cfg")): + file_created(fname[:-1] + "c") # .cfg->.cfc + + # Register our demo COM objects. + try: + try: + RegisterCOMObjects() + except win32api.error as details: + if details.winerror != 5: # ERROR_ACCESS_DENIED + raise + print("You do not have the permissions to install COM objects.") + print("The sample COM objects were not registered.") + except Exception: + print("FAILED to register the Python COM objects") + traceback.print_exc() + + # There may be no main Python key in HKCU if, eg, an admin installed + # python itself. + winreg.CreateKey(get_root_hkey(), root_key_name) + + chm_file = None + try: + chm_file = RegisterHelpFile(True, lib_dir) + except Exception: + print("Failed to register help file") + traceback.print_exc() + else: + if verbose: + print("Registered help file") + + # misc other fixups. + fixup_dbi() + + # Register Pythonwin in context menu + try: + RegisterPythonwin(True, lib_dir) + except Exception: + print("Failed to register pythonwin as editor") + traceback.print_exc() + else: + if verbose: + print("Pythonwin has been registered in context menu") + + # Create the win32com\gen_py directory. + make_dir = os.path.join(lib_dir, "win32com", "gen_py") + if not os.path.isdir(make_dir): + if verbose: + print("Creating directory %s" % (make_dir,)) + directory_created(make_dir) + os.mkdir(make_dir) + + try: + # create shortcuts + # CSIDL_COMMON_PROGRAMS only available works on NT/2000/XP, and + # will fail there if the user has no admin rights. + fldr = get_shortcuts_folder() + # If the group doesn't exist, then we don't make shortcuts - its + # possible that this isn't a "normal" install. + if os.path.isdir(fldr): + dst = os.path.join(fldr, "PythonWin.lnk") + create_shortcut( + os.path.join(lib_dir, "Pythonwin\\Pythonwin.exe"), + "The Pythonwin IDE", + dst, + "", + sys.prefix, + ) + file_created(dst) + if verbose: + print("Shortcut for Pythonwin created") + # And the docs. + if chm_file: + dst = os.path.join(fldr, "Python for Windows Documentation.lnk") + doc = "Documentation for the PyWin32 extensions" + create_shortcut(chm_file, doc, dst) + file_created(dst) + if verbose: + print("Shortcut to documentation created") + else: + if verbose: + print("Can't install shortcuts - %r is not a folder" % (fldr,)) + except Exception as details: + print(details) + + # importing win32com.client ensures the gen_py dir created - not strictly + # necessary to do now, but this makes the installation "complete" + try: + import win32com.client # noqa + except ImportError: + # Don't let this error sound fatal + pass + print("The pywin32 extensions were successfully installed.") + + if is_bdist_wininst: + # Open a web page with info about the .exe installers being deprecated. + import webbrowser + + try: + webbrowser.open("https://mhammond.github.io/pywin32_installers.html") + except webbrowser.Error: + print("Please visit https://mhammond.github.io/pywin32_installers.html") + + +def uninstall(lib_dir): + # First ensure our system modules are loaded from pywin32_system, so + # we can remove the ones we copied... + LoadSystemModule(lib_dir, "pywintypes") + LoadSystemModule(lib_dir, "pythoncom") + + try: + RegisterCOMObjects(False) + except Exception as why: + print("Failed to unregister COM objects: %s" % (why,)) + + try: + RegisterHelpFile(False, lib_dir) + except Exception as why: + print("Failed to unregister help file: %s" % (why,)) + else: + if verbose: + print("Unregistered help file") + + try: + RegisterPythonwin(False, lib_dir) + except Exception as why: + print("Failed to unregister Pythonwin: %s" % (why,)) + else: + if verbose: + print("Unregistered Pythonwin") + + try: + # remove gen_py directory. + gen_dir = os.path.join(lib_dir, "win32com", "gen_py") + if os.path.isdir(gen_dir): + shutil.rmtree(gen_dir) + if verbose: + print("Removed directory %s" % (gen_dir,)) + + # Remove pythonwin compiled "config" files. + pywin_dir = os.path.join(lib_dir, "Pythonwin", "pywin") + for fname in glob.glob(os.path.join(pywin_dir, "*.cfc")): + os.remove(fname) + + # The dbi.pyd.old files we may have created. + try: + os.remove(os.path.join(lib_dir, "win32", "dbi.pyd.old")) + except os.error: + pass + try: + os.remove(os.path.join(lib_dir, "win32", "dbi_d.pyd.old")) + except os.error: + pass + + except Exception as why: + print("Failed to remove misc files: %s" % (why,)) + + try: + fldr = get_shortcuts_folder() + for link in ("PythonWin.lnk", "Python for Windows Documentation.lnk"): + fqlink = os.path.join(fldr, link) + if os.path.isfile(fqlink): + os.remove(fqlink) + if verbose: + print("Removed %s" % (link,)) + except Exception as why: + print("Failed to remove shortcuts: %s" % (why,)) + # Now remove the system32 files. + files = glob.glob(os.path.join(lib_dir, "pywin32_system32\\*.*")) + # Try the system32 directory first - if that fails due to "access denied", + # it implies a non-admin user, and we use sys.prefix + try: + for dest_dir in [get_system_dir(), sys.prefix]: + # and copy some files over there + worked = 0 + for fname in files: + base = os.path.basename(fname) + dst = os.path.join(dest_dir, base) + if os.path.isfile(dst): + try: + os.remove(dst) + worked = 1 + if verbose: + print("Removed file %s" % (dst)) + except Exception: + print("FAILED to remove %s" % (dst,)) + if worked: + break + except Exception as why: + print("FAILED to remove system files: %s" % (why,)) + + +# NOTE: If this script is run from inside the bdist_wininst created +# binary installer or uninstaller, the command line args are either +# '-install' or '-remove'. + +# Important: From inside the binary installer this script MUST NOT +# call sys.exit() or raise SystemExit, otherwise not only this script +# but also the installer will terminate! (Is there a way to prevent +# this from the bdist_wininst C code?) + + +def verify_destination(location): + if not os.path.isdir(location): + raise argparse.ArgumentTypeError('Path "{}" does not exist!'.format(location)) + return location + + +def main(): + import argparse + + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description="""A post-install script for the pywin32 extensions. + + * Typical usage: + + > python pywin32_postinstall.py -install + + If you installed pywin32 via a .exe installer, this should be run + automatically after installation, but if it fails you can run it again. + + If you installed pywin32 via PIP, you almost certainly need to run this to + setup the environment correctly. + + Execute with script with a '-install' parameter, to ensure the environment + is setup correctly. + """, + ) + parser.add_argument( + "-install", + default=False, + action="store_true", + help="Configure the Python environment correctly for pywin32.", + ) + parser.add_argument( + "-remove", + default=False, + action="store_true", + help="Try and remove everything that was installed or copied.", + ) + parser.add_argument( + "-wait", + type=int, + help="Wait for the specified process to terminate before starting.", + ) + parser.add_argument( + "-silent", + default=False, + action="store_true", + help='Don\'t display the "Abort/Retry/Ignore" dialog for files in use.', + ) + parser.add_argument( + "-quiet", + default=False, + action="store_true", + help="Don't display progress messages.", + ) + parser.add_argument( + "-destination", + default=sysconfig.get_paths()["platlib"], + type=verify_destination, + help="Location of the PyWin32 installation", + ) + + args = parser.parse_args() + + if not args.quiet: + print("Parsed arguments are: {}".format(args)) + + if not args.install ^ args.remove: + parser.error("You need to either choose to -install or -remove!") + + if args.wait is not None: + try: + os.waitpid(args.wait, 0) + except os.error: + # child already dead + pass + + silent = args.silent + verbose = not args.quiet + + if args.install: + install(args.destination) + + if args.remove: + if not is_bdist_wininst: + uninstall(args.destination) + + +if __name__ == "__main__": + main() diff --git a/Lab1/package/Scripts/pywin32_testall.py b/Lab1/package/Scripts/pywin32_testall.py new file mode 100644 index 0000000..a54f9d4 --- /dev/null +++ b/Lab1/package/Scripts/pywin32_testall.py @@ -0,0 +1,124 @@ +"""A test runner for pywin32""" +import os +import site +import subprocess +import sys + +# locate the dirs based on where this script is - it may be either in the +# source tree, or in an installed Python 'Scripts' tree. +this_dir = os.path.dirname(__file__) +site_packages = [ + site.getusersitepackages(), +] + site.getsitepackages() + +failures = [] + + +# Run a test using subprocess and wait for the result. +# If we get an returncode != 0, we know that there was an error, but we don't +# abort immediately - we run as many tests as we can. +def run_test(script, cmdline_extras): + dirname, scriptname = os.path.split(script) + # some tests prefer to be run from their directory. + cmd = [sys.executable, "-u", scriptname] + cmdline_extras + print("--- Running '%s' ---" % script) + sys.stdout.flush() + result = subprocess.run(cmd, check=False, cwd=dirname) + print("*** Test script '%s' exited with %s" % (script, result.returncode)) + sys.stdout.flush() + if result.returncode: + failures.append(script) + + +def find_and_run(possible_locations, extras): + for maybe in possible_locations: + if os.path.isfile(maybe): + run_test(maybe, extras) + break + else: + raise RuntimeError( + "Failed to locate a test script in one of %s" % possible_locations + ) + + +def main(): + import argparse + + code_directories = [this_dir] + site_packages + + parser = argparse.ArgumentParser( + description="A script to trigger tests in all subprojects of PyWin32." + ) + parser.add_argument( + "-no-user-interaction", + default=False, + action="store_true", + help="(This is now the default - use `-user-interaction` to include them)", + ) + + parser.add_argument( + "-user-interaction", + action="store_true", + help="Include tests which require user interaction", + ) + + parser.add_argument( + "-skip-adodbapi", + default=False, + action="store_true", + help="Skip the adodbapi tests; useful for CI where there's no provider", + ) + + args, remains = parser.parse_known_args() + + # win32, win32ui / Pythonwin + + extras = [] + if args.user_interaction: + extras += ["-user-interaction"] + extras.extend(remains) + scripts = [ + "win32/test/testall.py", + "Pythonwin/pywin/test/all.py", + ] + for script in scripts: + maybes = [os.path.join(directory, script) for directory in code_directories] + find_and_run(maybes, extras) + + # win32com + maybes = [ + os.path.join(directory, "win32com", "test", "testall.py") + for directory in [ + os.path.join(this_dir, "com"), + ] + + site_packages + ] + extras = remains + ["1"] # only run "level 1" tests in CI + find_and_run(maybes, extras) + + # adodbapi + if not args.skip_adodbapi: + maybes = [ + os.path.join(directory, "adodbapi", "test", "adodbapitest.py") + for directory in code_directories + ] + find_and_run(maybes, remains) + # This script has a hard-coded sql server name in it, (and markh typically + # doesn't have a different server to test on) but there is now supposed to be a server out there on the Internet + # just to run these tests, so try it... + maybes = [ + os.path.join(directory, "adodbapi", "test", "test_adodbapi_dbapi20.py") + for directory in code_directories + ] + find_and_run(maybes, remains) + + if failures: + print("The following scripts failed") + for failure in failures: + print(">", failure) + sys.exit(1) + print("All tests passed \\o/") + + +if __name__ == "__main__": + main() diff --git a/Lab1/package/Scripts/ttx.exe b/Lab1/package/Scripts/ttx.exe new file mode 100644 index 0000000..00309eb Binary files /dev/null and b/Lab1/package/Scripts/ttx.exe differ diff --git a/Lab1/package/pyvenv.cfg b/Lab1/package/pyvenv.cfg new file mode 100644 index 0000000..d6eddb2 --- /dev/null +++ b/Lab1/package/pyvenv.cfg @@ -0,0 +1,5 @@ +home = C:\Users\User\AppData\Local\Programs\Python\Python312 +include-system-site-packages = false +version = 3.12.6 +executable = C:\Users\User\AppData\Local\Programs\Python\Python312\python.exe +command = C:\Users\User\AppData\Local\Programs\Python\Python312\python.exe -m venv D:\5_semester\AIM\AIM-PIbd-31-Razubaev-S-M\Lab1\package diff --git a/Lab1/package/share/jupyter/kernels/python3/kernel.json b/Lab1/package/share/jupyter/kernels/python3/kernel.json new file mode 100644 index 0000000..cca38a4 --- /dev/null +++ b/Lab1/package/share/jupyter/kernels/python3/kernel.json @@ -0,0 +1,14 @@ +{ + "argv": [ + "python", + "-m", + "ipykernel_launcher", + "-f", + "{connection_file}" + ], + "display_name": "Python 3 (ipykernel)", + "language": "python", + "metadata": { + "debugger": true + } +} \ No newline at end of file diff --git a/Lab1/package/share/jupyter/kernels/python3/logo-32x32.png b/Lab1/package/share/jupyter/kernels/python3/logo-32x32.png new file mode 100644 index 0000000..be81330 Binary files /dev/null and b/Lab1/package/share/jupyter/kernels/python3/logo-32x32.png differ diff --git a/Lab1/package/share/jupyter/kernels/python3/logo-64x64.png b/Lab1/package/share/jupyter/kernels/python3/logo-64x64.png new file mode 100644 index 0000000..eebbff6 Binary files /dev/null and b/Lab1/package/share/jupyter/kernels/python3/logo-64x64.png differ diff --git a/Lab1/package/share/jupyter/kernels/python3/logo-svg.svg b/Lab1/package/share/jupyter/kernels/python3/logo-svg.svg new file mode 100644 index 0000000..467b07b --- /dev/null +++ b/Lab1/package/share/jupyter/kernels/python3/logo-svg.svg @@ -0,0 +1,265 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Lab1/package/share/man/man1/ipython.1 b/Lab1/package/share/man/man1/ipython.1 new file mode 100644 index 0000000..0f4a191 --- /dev/null +++ b/Lab1/package/share/man/man1/ipython.1 @@ -0,0 +1,60 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH IPYTHON 1 "July 15, 2011" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) and groff_man(7) +.\" .SH section heading +.\" .SS secondary section heading +.\" +.\" +.\" To preview this page as plain text: nroff -man ipython.1 +.\" +.SH NAME +ipython \- Tools for Interactive Computing in Python. +.SH SYNOPSIS +.B ipython +.RI [ options ] " files" ... + +.B ipython subcommand +.RI [ options ] ... + +.SH DESCRIPTION +An interactive Python shell with automatic history (input and output), dynamic +object introspection, easier configuration, command completion, access to the +system shell, integration with numerical and scientific computing tools, +web notebook, Qt console, and more. + +For more information on how to use IPython, see 'ipython \-\-help', +or 'ipython \-\-help\-all' for all available command\(hyline options. + +.SH "ENVIRONMENT VARIABLES" +.sp +.PP +\fIIPYTHONDIR\fR +.RS 4 +This is the location where IPython stores all its configuration files. The default +is $HOME/.ipython if IPYTHONDIR is not defined. + +You can see the computed value of IPYTHONDIR with `ipython locate`. + +.SH FILES + +IPython uses various configuration files stored in profiles within IPYTHONDIR. +To generate the default configuration files and start configuring IPython, +do 'ipython profile create', and edit '*_config.py' files located in +IPYTHONDIR/profile_default. + +.SH AUTHORS +IPython is written by the IPython Development Team . diff --git a/Lab1/package/share/man/man1/ttx.1 b/Lab1/package/share/man/man1/ttx.1 new file mode 100644 index 0000000..bba23b5 --- /dev/null +++ b/Lab1/package/share/man/man1/ttx.1 @@ -0,0 +1,225 @@ +.Dd May 18, 2004 +.\" ttx is not specific to any OS, but contrary to what groff_mdoc(7) +.\" seems to imply, entirely omitting the .Os macro causes 'BSD' to +.\" be used, so I give a zero-width space as its argument. +.Os \& +.\" The "FontTools Manual" argument apparently has no effect in +.\" groff 1.18.1. I think it is a bug in the -mdoc groff package. +.Dt TTX 1 "FontTools Manual" +.Sh NAME +.Nm ttx +.Nd tool for manipulating TrueType and OpenType fonts +.Sh SYNOPSIS +.Nm +.Bk +.Op Ar option ... +.Ek +.Bk +.Ar file ... +.Ek +.Sh DESCRIPTION +.Nm +is a tool for manipulating TrueType and OpenType fonts. It can convert +TrueType and OpenType fonts to and from an +.Tn XML Ns -based format called +.Tn TTX . +.Tn TTX +files have a +.Ql .ttx +extension. +.Pp +For each +.Ar file +argument it is given, +.Nm +detects whether it is a +.Ql .ttf , +.Ql .otf +or +.Ql .ttx +file and acts accordingly: if it is a +.Ql .ttf +or +.Ql .otf +file, it generates a +.Ql .ttx +file; if it is a +.Ql .ttx +file, it generates a +.Ql .ttf +or +.Ql .otf +file. +.Pp +By default, every output file is created in the same directory as the +corresponding input file and with the same name except for the +extension, which is substituted appropriately. +.Nm +never overwrites existing files; if necessary, it appends a suffix to +the output file name before the extension, as in +.Pa Arial#1.ttf . +.Ss "General options" +.Bl -tag -width ".Fl t Ar table" +.It Fl h +Display usage information. +.It Fl d Ar dir +Write the output files to directory +.Ar dir +instead of writing every output file to the same directory as the +corresponding input file. +.It Fl o Ar file +Write the output to +.Ar file +instead of writing it to the same directory as the +corresponding input file. +.It Fl v +Be verbose. Write more messages to the standard output describing what +is being done. +.It Fl a +Allow virtual glyphs ID's on compile or decompile. +.El +.Ss "Dump options" +The following options control the process of dumping font files +(TrueType or OpenType) to +.Tn TTX +files. +.Bl -tag -width ".Fl t Ar table" +.It Fl l +List table information. Instead of dumping the font to a +.Tn TTX +file, display minimal information about each table. +.It Fl t Ar table +Dump table +.Ar table . +This option may be given multiple times to dump several tables at +once. When not specified, all tables are dumped. +.It Fl x Ar table +Exclude table +.Ar table +from the list of tables to dump. This option may be given multiple +times to exclude several tables from the dump. The +.Fl t +and +.Fl x +options are mutually exclusive. +.It Fl s +Split tables. Dump each table to a separate +.Tn TTX +file and write (under the name that would have been used for the output +file if the +.Fl s +option had not been given) one small +.Tn TTX +file containing references to the individual table dump files. This +file can be used as input to +.Nm +as long as the referenced files can be found in the same directory. +.It Fl i +.\" XXX: I suppose OpenType programs (exist and) are also affected. +Don't disassemble TrueType instructions. When this option is specified, +all TrueType programs (glyph programs, the font program and the +pre-program) are written to the +.Tn TTX +file as hexadecimal data instead of +assembly. This saves some time and results in smaller +.Tn TTX +files. +.It Fl y Ar n +When decompiling a TrueType Collection (TTC) file, +decompile font number +.Ar n , +starting from 0. +.El +.Ss "Compilation options" +The following options control the process of compiling +.Tn TTX +files into font files (TrueType or OpenType): +.Bl -tag -width ".Fl t Ar table" +.It Fl m Ar fontfile +Merge the input +.Tn TTX +file +.Ar file +with +.Ar fontfile . +No more than one +.Ar file +argument can be specified when this option is used. +.It Fl b +Don't recalculate glyph bounding boxes. Use the values in the +.Tn TTX +file as is. +.El +.Sh "THE TTX FILE FORMAT" +You can find some information about the +.Tn TTX +file format in +.Pa documentation.html . +In particular, you will find in that file the list of tables understood by +.Nm +and the relations between TrueType GlyphIDs and the glyph names used in +.Tn TTX +files. +.Sh EXAMPLES +In the following examples, all files are read from and written to the +current directory. Additionally, the name given for the output file +assumes in every case that it did not exist before +.Nm +was invoked. +.Pp +Dump the TrueType font contained in +.Pa FreeSans.ttf +to +.Pa FreeSans.ttx : +.Pp +.Dl ttx FreeSans.ttf +.Pp +Compile +.Pa MyFont.ttx +into a TrueType or OpenType font file: +.Pp +.Dl ttx MyFont.ttx +.Pp +List the tables in +.Pa FreeSans.ttf +along with some information: +.Pp +.Dl ttx -l FreeSans.ttf +.Pp +Dump the +.Sq cmap +table from +.Pa FreeSans.ttf +to +.Pa FreeSans.ttx : +.Pp +.Dl ttx -t cmap FreeSans.ttf +.Sh NOTES +On MS\-Windows and MacOS, +.Nm +is available as a graphical application to which files can be dropped. +.Sh SEE ALSO +.Pa documentation.html +.Pp +.Xr fontforge 1 , +.Xr ftinfo 1 , +.Xr gfontview 1 , +.Xr xmbdfed 1 , +.Xr Font::TTF 3pm +.Sh AUTHORS +.Nm +was written by +.An -nosplit +.An "Just van Rossum" Aq just@letterror.com . +.Pp +This manual page was written by +.An "Florent Rougon" Aq f.rougon@free.fr +for the Debian GNU/Linux system based on the existing FontTools +documentation. It may be freely used, modified and distributed without +restrictions. +.\" For Emacs: +.\" Local Variables: +.\" fill-column: 72 +.\" sentence-end: "[.?!][]\"')}]*\\($\\| $\\| \\| \\)[ \n]*" +.\" sentence-end-double-space: t +.\" End: \ No newline at end of file diff --git a/Lab1/requirements.txt b/Lab1/requirements.txt new file mode 100644 index 0000000..a3c6bbc Binary files /dev/null and b/Lab1/requirements.txt differ diff --git a/Lab1/static/scv/diabetes.csv b/Lab1/static/scv/diabetes.csv new file mode 100644 index 0000000..9e6a362 --- /dev/null +++ b/Lab1/static/scv/diabetes.csv @@ -0,0 +1,769 @@ +Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome +6,148,72,35,0,33.6,0.627,50,1 +1,85,66,29,0,26.6,0.351,31,0 +8,183,64,0,0,23.3,0.672,32,1 +1,89,66,23,94,28.1,0.167,21,0 +0,137,40,35,168,43.1,2.288,33,1 +5,116,74,0,0,25.6,0.201,30,0 +3,78,50,32,88,31,0.248,26,1 +10,115,0,0,0,35.3,0.134,29,0 +2,197,70,45,543,30.5,0.158,53,1 +8,125,96,0,0,0,0.232,54,1 +4,110,92,0,0,37.6,0.191,30,0 +10,168,74,0,0,38,0.537,34,1 +10,139,80,0,0,27.1,1.441,57,0 +1,189,60,23,846,30.1,0.398,59,1 +5,166,72,19,175,25.8,0.587,51,1 +7,100,0,0,0,30,0.484,32,1 +0,118,84,47,230,45.8,0.551,31,1 +7,107,74,0,0,29.6,0.254,31,1 +1,103,30,38,83,43.3,0.183,33,0 +1,115,70,30,96,34.6,0.529,32,1 +3,126,88,41,235,39.3,0.704,27,0 +8,99,84,0,0,35.4,0.388,50,0 +7,196,90,0,0,39.8,0.451,41,1 +9,119,80,35,0,29,0.263,29,1 +11,143,94,33,146,36.6,0.254,51,1 +10,125,70,26,115,31.1,0.205,41,1 +7,147,76,0,0,39.4,0.257,43,1 +1,97,66,15,140,23.2,0.487,22,0 +13,145,82,19,110,22.2,0.245,57,0 +5,117,92,0,0,34.1,0.337,38,0 +5,109,75,26,0,36,0.546,60,0 +3,158,76,36,245,31.6,0.851,28,1 +3,88,58,11,54,24.8,0.267,22,0 +6,92,92,0,0,19.9,0.188,28,0 +10,122,78,31,0,27.6,0.512,45,0 +4,103,60,33,192,24,0.966,33,0 +11,138,76,0,0,33.2,0.42,35,0 +9,102,76,37,0,32.9,0.665,46,1 +2,90,68,42,0,38.2,0.503,27,1 +4,111,72,47,207,37.1,1.39,56,1 +3,180,64,25,70,34,0.271,26,0 +7,133,84,0,0,40.2,0.696,37,0 +7,106,92,18,0,22.7,0.235,48,0 +9,171,110,24,240,45.4,0.721,54,1 +7,159,64,0,0,27.4,0.294,40,0 +0,180,66,39,0,42,1.893,25,1 +1,146,56,0,0,29.7,0.564,29,0 +2,71,70,27,0,28,0.586,22,0 +7,103,66,32,0,39.1,0.344,31,1 +7,105,0,0,0,0,0.305,24,0 +1,103,80,11,82,19.4,0.491,22,0 +1,101,50,15,36,24.2,0.526,26,0 +5,88,66,21,23,24.4,0.342,30,0 +8,176,90,34,300,33.7,0.467,58,1 +7,150,66,42,342,34.7,0.718,42,0 +1,73,50,10,0,23,0.248,21,0 +7,187,68,39,304,37.7,0.254,41,1 +0,100,88,60,110,46.8,0.962,31,0 +0,146,82,0,0,40.5,1.781,44,0 +0,105,64,41,142,41.5,0.173,22,0 +2,84,0,0,0,0,0.304,21,0 +8,133,72,0,0,32.9,0.27,39,1 +5,44,62,0,0,25,0.587,36,0 +2,141,58,34,128,25.4,0.699,24,0 +7,114,66,0,0,32.8,0.258,42,1 +5,99,74,27,0,29,0.203,32,0 +0,109,88,30,0,32.5,0.855,38,1 +2,109,92,0,0,42.7,0.845,54,0 +1,95,66,13,38,19.6,0.334,25,0 +4,146,85,27,100,28.9,0.189,27,0 +2,100,66,20,90,32.9,0.867,28,1 +5,139,64,35,140,28.6,0.411,26,0 +13,126,90,0,0,43.4,0.583,42,1 +4,129,86,20,270,35.1,0.231,23,0 +1,79,75,30,0,32,0.396,22,0 +1,0,48,20,0,24.7,0.14,22,0 +7,62,78,0,0,32.6,0.391,41,0 +5,95,72,33,0,37.7,0.37,27,0 +0,131,0,0,0,43.2,0.27,26,1 +2,112,66,22,0,25,0.307,24,0 +3,113,44,13,0,22.4,0.14,22,0 +2,74,0,0,0,0,0.102,22,0 +7,83,78,26,71,29.3,0.767,36,0 +0,101,65,28,0,24.6,0.237,22,0 +5,137,108,0,0,48.8,0.227,37,1 +2,110,74,29,125,32.4,0.698,27,0 +13,106,72,54,0,36.6,0.178,45,0 +2,100,68,25,71,38.5,0.324,26,0 +15,136,70,32,110,37.1,0.153,43,1 +1,107,68,19,0,26.5,0.165,24,0 +1,80,55,0,0,19.1,0.258,21,0 +4,123,80,15,176,32,0.443,34,0 +7,81,78,40,48,46.7,0.261,42,0 +4,134,72,0,0,23.8,0.277,60,1 +2,142,82,18,64,24.7,0.761,21,0 +6,144,72,27,228,33.9,0.255,40,0 +2,92,62,28,0,31.6,0.13,24,0 +1,71,48,18,76,20.4,0.323,22,0 +6,93,50,30,64,28.7,0.356,23,0 +1,122,90,51,220,49.7,0.325,31,1 +1,163,72,0,0,39,1.222,33,1 +1,151,60,0,0,26.1,0.179,22,0 +0,125,96,0,0,22.5,0.262,21,0 +1,81,72,18,40,26.6,0.283,24,0 +2,85,65,0,0,39.6,0.93,27,0 +1,126,56,29,152,28.7,0.801,21,0 +1,96,122,0,0,22.4,0.207,27,0 +4,144,58,28,140,29.5,0.287,37,0 +3,83,58,31,18,34.3,0.336,25,0 +0,95,85,25,36,37.4,0.247,24,1 +3,171,72,33,135,33.3,0.199,24,1 +8,155,62,26,495,34,0.543,46,1 +1,89,76,34,37,31.2,0.192,23,0 +4,76,62,0,0,34,0.391,25,0 +7,160,54,32,175,30.5,0.588,39,1 +4,146,92,0,0,31.2,0.539,61,1 +5,124,74,0,0,34,0.22,38,1 +5,78,48,0,0,33.7,0.654,25,0 +4,97,60,23,0,28.2,0.443,22,0 +4,99,76,15,51,23.2,0.223,21,0 +0,162,76,56,100,53.2,0.759,25,1 +6,111,64,39,0,34.2,0.26,24,0 +2,107,74,30,100,33.6,0.404,23,0 +5,132,80,0,0,26.8,0.186,69,0 +0,113,76,0,0,33.3,0.278,23,1 +1,88,30,42,99,55,0.496,26,1 +3,120,70,30,135,42.9,0.452,30,0 +1,118,58,36,94,33.3,0.261,23,0 +1,117,88,24,145,34.5,0.403,40,1 +0,105,84,0,0,27.9,0.741,62,1 +4,173,70,14,168,29.7,0.361,33,1 +9,122,56,0,0,33.3,1.114,33,1 +3,170,64,37,225,34.5,0.356,30,1 +8,84,74,31,0,38.3,0.457,39,0 +2,96,68,13,49,21.1,0.647,26,0 +2,125,60,20,140,33.8,0.088,31,0 +0,100,70,26,50,30.8,0.597,21,0 +0,93,60,25,92,28.7,0.532,22,0 +0,129,80,0,0,31.2,0.703,29,0 +5,105,72,29,325,36.9,0.159,28,0 +3,128,78,0,0,21.1,0.268,55,0 +5,106,82,30,0,39.5,0.286,38,0 +2,108,52,26,63,32.5,0.318,22,0 +10,108,66,0,0,32.4,0.272,42,1 +4,154,62,31,284,32.8,0.237,23,0 +0,102,75,23,0,0,0.572,21,0 +9,57,80,37,0,32.8,0.096,41,0 +2,106,64,35,119,30.5,1.4,34,0 +5,147,78,0,0,33.7,0.218,65,0 +2,90,70,17,0,27.3,0.085,22,0 +1,136,74,50,204,37.4,0.399,24,0 +4,114,65,0,0,21.9,0.432,37,0 +9,156,86,28,155,34.3,1.189,42,1 +1,153,82,42,485,40.6,0.687,23,0 +8,188,78,0,0,47.9,0.137,43,1 +7,152,88,44,0,50,0.337,36,1 +2,99,52,15,94,24.6,0.637,21,0 +1,109,56,21,135,25.2,0.833,23,0 +2,88,74,19,53,29,0.229,22,0 +17,163,72,41,114,40.9,0.817,47,1 +4,151,90,38,0,29.7,0.294,36,0 +7,102,74,40,105,37.2,0.204,45,0 +0,114,80,34,285,44.2,0.167,27,0 +2,100,64,23,0,29.7,0.368,21,0 +0,131,88,0,0,31.6,0.743,32,1 +6,104,74,18,156,29.9,0.722,41,1 +3,148,66,25,0,32.5,0.256,22,0 +4,120,68,0,0,29.6,0.709,34,0 +4,110,66,0,0,31.9,0.471,29,0 +3,111,90,12,78,28.4,0.495,29,0 +6,102,82,0,0,30.8,0.18,36,1 +6,134,70,23,130,35.4,0.542,29,1 +2,87,0,23,0,28.9,0.773,25,0 +1,79,60,42,48,43.5,0.678,23,0 +2,75,64,24,55,29.7,0.37,33,0 +8,179,72,42,130,32.7,0.719,36,1 +6,85,78,0,0,31.2,0.382,42,0 +0,129,110,46,130,67.1,0.319,26,1 +5,143,78,0,0,45,0.19,47,0 +5,130,82,0,0,39.1,0.956,37,1 +6,87,80,0,0,23.2,0.084,32,0 +0,119,64,18,92,34.9,0.725,23,0 +1,0,74,20,23,27.7,0.299,21,0 +5,73,60,0,0,26.8,0.268,27,0 +4,141,74,0,0,27.6,0.244,40,0 +7,194,68,28,0,35.9,0.745,41,1 +8,181,68,36,495,30.1,0.615,60,1 +1,128,98,41,58,32,1.321,33,1 +8,109,76,39,114,27.9,0.64,31,1 +5,139,80,35,160,31.6,0.361,25,1 +3,111,62,0,0,22.6,0.142,21,0 +9,123,70,44,94,33.1,0.374,40,0 +7,159,66,0,0,30.4,0.383,36,1 +11,135,0,0,0,52.3,0.578,40,1 +8,85,55,20,0,24.4,0.136,42,0 +5,158,84,41,210,39.4,0.395,29,1 +1,105,58,0,0,24.3,0.187,21,0 +3,107,62,13,48,22.9,0.678,23,1 +4,109,64,44,99,34.8,0.905,26,1 +4,148,60,27,318,30.9,0.15,29,1 +0,113,80,16,0,31,0.874,21,0 +1,138,82,0,0,40.1,0.236,28,0 +0,108,68,20,0,27.3,0.787,32,0 +2,99,70,16,44,20.4,0.235,27,0 +6,103,72,32,190,37.7,0.324,55,0 +5,111,72,28,0,23.9,0.407,27,0 +8,196,76,29,280,37.5,0.605,57,1 +5,162,104,0,0,37.7,0.151,52,1 +1,96,64,27,87,33.2,0.289,21,0 +7,184,84,33,0,35.5,0.355,41,1 +2,81,60,22,0,27.7,0.29,25,0 +0,147,85,54,0,42.8,0.375,24,0 +7,179,95,31,0,34.2,0.164,60,0 +0,140,65,26,130,42.6,0.431,24,1 +9,112,82,32,175,34.2,0.26,36,1 +12,151,70,40,271,41.8,0.742,38,1 +5,109,62,41,129,35.8,0.514,25,1 +6,125,68,30,120,30,0.464,32,0 +5,85,74,22,0,29,1.224,32,1 +5,112,66,0,0,37.8,0.261,41,1 +0,177,60,29,478,34.6,1.072,21,1 +2,158,90,0,0,31.6,0.805,66,1 +7,119,0,0,0,25.2,0.209,37,0 +7,142,60,33,190,28.8,0.687,61,0 +1,100,66,15,56,23.6,0.666,26,0 +1,87,78,27,32,34.6,0.101,22,0 +0,101,76,0,0,35.7,0.198,26,0 +3,162,52,38,0,37.2,0.652,24,1 +4,197,70,39,744,36.7,2.329,31,0 +0,117,80,31,53,45.2,0.089,24,0 +4,142,86,0,0,44,0.645,22,1 +6,134,80,37,370,46.2,0.238,46,1 +1,79,80,25,37,25.4,0.583,22,0 +4,122,68,0,0,35,0.394,29,0 +3,74,68,28,45,29.7,0.293,23,0 +4,171,72,0,0,43.6,0.479,26,1 +7,181,84,21,192,35.9,0.586,51,1 +0,179,90,27,0,44.1,0.686,23,1 +9,164,84,21,0,30.8,0.831,32,1 +0,104,76,0,0,18.4,0.582,27,0 +1,91,64,24,0,29.2,0.192,21,0 +4,91,70,32,88,33.1,0.446,22,0 +3,139,54,0,0,25.6,0.402,22,1 +6,119,50,22,176,27.1,1.318,33,1 +2,146,76,35,194,38.2,0.329,29,0 +9,184,85,15,0,30,1.213,49,1 +10,122,68,0,0,31.2,0.258,41,0 +0,165,90,33,680,52.3,0.427,23,0 +9,124,70,33,402,35.4,0.282,34,0 +1,111,86,19,0,30.1,0.143,23,0 +9,106,52,0,0,31.2,0.38,42,0 +2,129,84,0,0,28,0.284,27,0 +2,90,80,14,55,24.4,0.249,24,0 +0,86,68,32,0,35.8,0.238,25,0 +12,92,62,7,258,27.6,0.926,44,1 +1,113,64,35,0,33.6,0.543,21,1 +3,111,56,39,0,30.1,0.557,30,0 +2,114,68,22,0,28.7,0.092,25,0 +1,193,50,16,375,25.9,0.655,24,0 +11,155,76,28,150,33.3,1.353,51,1 +3,191,68,15,130,30.9,0.299,34,0 +3,141,0,0,0,30,0.761,27,1 +4,95,70,32,0,32.1,0.612,24,0 +3,142,80,15,0,32.4,0.2,63,0 +4,123,62,0,0,32,0.226,35,1 +5,96,74,18,67,33.6,0.997,43,0 +0,138,0,0,0,36.3,0.933,25,1 +2,128,64,42,0,40,1.101,24,0 +0,102,52,0,0,25.1,0.078,21,0 +2,146,0,0,0,27.5,0.24,28,1 +10,101,86,37,0,45.6,1.136,38,1 +2,108,62,32,56,25.2,0.128,21,0 +3,122,78,0,0,23,0.254,40,0 +1,71,78,50,45,33.2,0.422,21,0 +13,106,70,0,0,34.2,0.251,52,0 +2,100,70,52,57,40.5,0.677,25,0 +7,106,60,24,0,26.5,0.296,29,1 +0,104,64,23,116,27.8,0.454,23,0 +5,114,74,0,0,24.9,0.744,57,0 +2,108,62,10,278,25.3,0.881,22,0 +0,146,70,0,0,37.9,0.334,28,1 +10,129,76,28,122,35.9,0.28,39,0 +7,133,88,15,155,32.4,0.262,37,0 +7,161,86,0,0,30.4,0.165,47,1 +2,108,80,0,0,27,0.259,52,1 +7,136,74,26,135,26,0.647,51,0 +5,155,84,44,545,38.7,0.619,34,0 +1,119,86,39,220,45.6,0.808,29,1 +4,96,56,17,49,20.8,0.34,26,0 +5,108,72,43,75,36.1,0.263,33,0 +0,78,88,29,40,36.9,0.434,21,0 +0,107,62,30,74,36.6,0.757,25,1 +2,128,78,37,182,43.3,1.224,31,1 +1,128,48,45,194,40.5,0.613,24,1 +0,161,50,0,0,21.9,0.254,65,0 +6,151,62,31,120,35.5,0.692,28,0 +2,146,70,38,360,28,0.337,29,1 +0,126,84,29,215,30.7,0.52,24,0 +14,100,78,25,184,36.6,0.412,46,1 +8,112,72,0,0,23.6,0.84,58,0 +0,167,0,0,0,32.3,0.839,30,1 +2,144,58,33,135,31.6,0.422,25,1 +5,77,82,41,42,35.8,0.156,35,0 +5,115,98,0,0,52.9,0.209,28,1 +3,150,76,0,0,21,0.207,37,0 +2,120,76,37,105,39.7,0.215,29,0 +10,161,68,23,132,25.5,0.326,47,1 +0,137,68,14,148,24.8,0.143,21,0 +0,128,68,19,180,30.5,1.391,25,1 +2,124,68,28,205,32.9,0.875,30,1 +6,80,66,30,0,26.2,0.313,41,0 +0,106,70,37,148,39.4,0.605,22,0 +2,155,74,17,96,26.6,0.433,27,1 +3,113,50,10,85,29.5,0.626,25,0 +7,109,80,31,0,35.9,1.127,43,1 +2,112,68,22,94,34.1,0.315,26,0 +3,99,80,11,64,19.3,0.284,30,0 +3,182,74,0,0,30.5,0.345,29,1 +3,115,66,39,140,38.1,0.15,28,0 +6,194,78,0,0,23.5,0.129,59,1 +4,129,60,12,231,27.5,0.527,31,0 +3,112,74,30,0,31.6,0.197,25,1 +0,124,70,20,0,27.4,0.254,36,1 +13,152,90,33,29,26.8,0.731,43,1 +2,112,75,32,0,35.7,0.148,21,0 +1,157,72,21,168,25.6,0.123,24,0 +1,122,64,32,156,35.1,0.692,30,1 +10,179,70,0,0,35.1,0.2,37,0 +2,102,86,36,120,45.5,0.127,23,1 +6,105,70,32,68,30.8,0.122,37,0 +8,118,72,19,0,23.1,1.476,46,0 +2,87,58,16,52,32.7,0.166,25,0 +1,180,0,0,0,43.3,0.282,41,1 +12,106,80,0,0,23.6,0.137,44,0 +1,95,60,18,58,23.9,0.26,22,0 +0,165,76,43,255,47.9,0.259,26,0 +0,117,0,0,0,33.8,0.932,44,0 +5,115,76,0,0,31.2,0.343,44,1 +9,152,78,34,171,34.2,0.893,33,1 +7,178,84,0,0,39.9,0.331,41,1 +1,130,70,13,105,25.9,0.472,22,0 +1,95,74,21,73,25.9,0.673,36,0 +1,0,68,35,0,32,0.389,22,0 +5,122,86,0,0,34.7,0.29,33,0 +8,95,72,0,0,36.8,0.485,57,0 +8,126,88,36,108,38.5,0.349,49,0 +1,139,46,19,83,28.7,0.654,22,0 +3,116,0,0,0,23.5,0.187,23,0 +3,99,62,19,74,21.8,0.279,26,0 +5,0,80,32,0,41,0.346,37,1 +4,92,80,0,0,42.2,0.237,29,0 +4,137,84,0,0,31.2,0.252,30,0 +3,61,82,28,0,34.4,0.243,46,0 +1,90,62,12,43,27.2,0.58,24,0 +3,90,78,0,0,42.7,0.559,21,0 +9,165,88,0,0,30.4,0.302,49,1 +1,125,50,40,167,33.3,0.962,28,1 +13,129,0,30,0,39.9,0.569,44,1 +12,88,74,40,54,35.3,0.378,48,0 +1,196,76,36,249,36.5,0.875,29,1 +5,189,64,33,325,31.2,0.583,29,1 +5,158,70,0,0,29.8,0.207,63,0 +5,103,108,37,0,39.2,0.305,65,0 +4,146,78,0,0,38.5,0.52,67,1 +4,147,74,25,293,34.9,0.385,30,0 +5,99,54,28,83,34,0.499,30,0 +6,124,72,0,0,27.6,0.368,29,1 +0,101,64,17,0,21,0.252,21,0 +3,81,86,16,66,27.5,0.306,22,0 +1,133,102,28,140,32.8,0.234,45,1 +3,173,82,48,465,38.4,2.137,25,1 +0,118,64,23,89,0,1.731,21,0 +0,84,64,22,66,35.8,0.545,21,0 +2,105,58,40,94,34.9,0.225,25,0 +2,122,52,43,158,36.2,0.816,28,0 +12,140,82,43,325,39.2,0.528,58,1 +0,98,82,15,84,25.2,0.299,22,0 +1,87,60,37,75,37.2,0.509,22,0 +4,156,75,0,0,48.3,0.238,32,1 +0,93,100,39,72,43.4,1.021,35,0 +1,107,72,30,82,30.8,0.821,24,0 +0,105,68,22,0,20,0.236,22,0 +1,109,60,8,182,25.4,0.947,21,0 +1,90,62,18,59,25.1,1.268,25,0 +1,125,70,24,110,24.3,0.221,25,0 +1,119,54,13,50,22.3,0.205,24,0 +5,116,74,29,0,32.3,0.66,35,1 +8,105,100,36,0,43.3,0.239,45,1 +5,144,82,26,285,32,0.452,58,1 +3,100,68,23,81,31.6,0.949,28,0 +1,100,66,29,196,32,0.444,42,0 +5,166,76,0,0,45.7,0.34,27,1 +1,131,64,14,415,23.7,0.389,21,0 +4,116,72,12,87,22.1,0.463,37,0 +4,158,78,0,0,32.9,0.803,31,1 +2,127,58,24,275,27.7,1.6,25,0 +3,96,56,34,115,24.7,0.944,39,0 +0,131,66,40,0,34.3,0.196,22,1 +3,82,70,0,0,21.1,0.389,25,0 +3,193,70,31,0,34.9,0.241,25,1 +4,95,64,0,0,32,0.161,31,1 +6,137,61,0,0,24.2,0.151,55,0 +5,136,84,41,88,35,0.286,35,1 +9,72,78,25,0,31.6,0.28,38,0 +5,168,64,0,0,32.9,0.135,41,1 +2,123,48,32,165,42.1,0.52,26,0 +4,115,72,0,0,28.9,0.376,46,1 +0,101,62,0,0,21.9,0.336,25,0 +8,197,74,0,0,25.9,1.191,39,1 +1,172,68,49,579,42.4,0.702,28,1 +6,102,90,39,0,35.7,0.674,28,0 +1,112,72,30,176,34.4,0.528,25,0 +1,143,84,23,310,42.4,1.076,22,0 +1,143,74,22,61,26.2,0.256,21,0 +0,138,60,35,167,34.6,0.534,21,1 +3,173,84,33,474,35.7,0.258,22,1 +1,97,68,21,0,27.2,1.095,22,0 +4,144,82,32,0,38.5,0.554,37,1 +1,83,68,0,0,18.2,0.624,27,0 +3,129,64,29,115,26.4,0.219,28,1 +1,119,88,41,170,45.3,0.507,26,0 +2,94,68,18,76,26,0.561,21,0 +0,102,64,46,78,40.6,0.496,21,0 +2,115,64,22,0,30.8,0.421,21,0 +8,151,78,32,210,42.9,0.516,36,1 +4,184,78,39,277,37,0.264,31,1 +0,94,0,0,0,0,0.256,25,0 +1,181,64,30,180,34.1,0.328,38,1 +0,135,94,46,145,40.6,0.284,26,0 +1,95,82,25,180,35,0.233,43,1 +2,99,0,0,0,22.2,0.108,23,0 +3,89,74,16,85,30.4,0.551,38,0 +1,80,74,11,60,30,0.527,22,0 +2,139,75,0,0,25.6,0.167,29,0 +1,90,68,8,0,24.5,1.138,36,0 +0,141,0,0,0,42.4,0.205,29,1 +12,140,85,33,0,37.4,0.244,41,0 +5,147,75,0,0,29.9,0.434,28,0 +1,97,70,15,0,18.2,0.147,21,0 +6,107,88,0,0,36.8,0.727,31,0 +0,189,104,25,0,34.3,0.435,41,1 +2,83,66,23,50,32.2,0.497,22,0 +4,117,64,27,120,33.2,0.23,24,0 +8,108,70,0,0,30.5,0.955,33,1 +4,117,62,12,0,29.7,0.38,30,1 +0,180,78,63,14,59.4,2.42,25,1 +1,100,72,12,70,25.3,0.658,28,0 +0,95,80,45,92,36.5,0.33,26,0 +0,104,64,37,64,33.6,0.51,22,1 +0,120,74,18,63,30.5,0.285,26,0 +1,82,64,13,95,21.2,0.415,23,0 +2,134,70,0,0,28.9,0.542,23,1 +0,91,68,32,210,39.9,0.381,25,0 +2,119,0,0,0,19.6,0.832,72,0 +2,100,54,28,105,37.8,0.498,24,0 +14,175,62,30,0,33.6,0.212,38,1 +1,135,54,0,0,26.7,0.687,62,0 +5,86,68,28,71,30.2,0.364,24,0 +10,148,84,48,237,37.6,1.001,51,1 +9,134,74,33,60,25.9,0.46,81,0 +9,120,72,22,56,20.8,0.733,48,0 +1,71,62,0,0,21.8,0.416,26,0 +8,74,70,40,49,35.3,0.705,39,0 +5,88,78,30,0,27.6,0.258,37,0 +10,115,98,0,0,24,1.022,34,0 +0,124,56,13,105,21.8,0.452,21,0 +0,74,52,10,36,27.8,0.269,22,0 +0,97,64,36,100,36.8,0.6,25,0 +8,120,0,0,0,30,0.183,38,1 +6,154,78,41,140,46.1,0.571,27,0 +1,144,82,40,0,41.3,0.607,28,0 +0,137,70,38,0,33.2,0.17,22,0 +0,119,66,27,0,38.8,0.259,22,0 +7,136,90,0,0,29.9,0.21,50,0 +4,114,64,0,0,28.9,0.126,24,0 +0,137,84,27,0,27.3,0.231,59,0 +2,105,80,45,191,33.7,0.711,29,1 +7,114,76,17,110,23.8,0.466,31,0 +8,126,74,38,75,25.9,0.162,39,0 +4,132,86,31,0,28,0.419,63,0 +3,158,70,30,328,35.5,0.344,35,1 +0,123,88,37,0,35.2,0.197,29,0 +4,85,58,22,49,27.8,0.306,28,0 +0,84,82,31,125,38.2,0.233,23,0 +0,145,0,0,0,44.2,0.63,31,1 +0,135,68,42,250,42.3,0.365,24,1 +1,139,62,41,480,40.7,0.536,21,0 +0,173,78,32,265,46.5,1.159,58,0 +4,99,72,17,0,25.6,0.294,28,0 +8,194,80,0,0,26.1,0.551,67,0 +2,83,65,28,66,36.8,0.629,24,0 +2,89,90,30,0,33.5,0.292,42,0 +4,99,68,38,0,32.8,0.145,33,0 +4,125,70,18,122,28.9,1.144,45,1 +3,80,0,0,0,0,0.174,22,0 +6,166,74,0,0,26.6,0.304,66,0 +5,110,68,0,0,26,0.292,30,0 +2,81,72,15,76,30.1,0.547,25,0 +7,195,70,33,145,25.1,0.163,55,1 +6,154,74,32,193,29.3,0.839,39,0 +2,117,90,19,71,25.2,0.313,21,0 +3,84,72,32,0,37.2,0.267,28,0 +6,0,68,41,0,39,0.727,41,1 +7,94,64,25,79,33.3,0.738,41,0 +3,96,78,39,0,37.3,0.238,40,0 +10,75,82,0,0,33.3,0.263,38,0 +0,180,90,26,90,36.5,0.314,35,1 +1,130,60,23,170,28.6,0.692,21,0 +2,84,50,23,76,30.4,0.968,21,0 +8,120,78,0,0,25,0.409,64,0 +12,84,72,31,0,29.7,0.297,46,1 +0,139,62,17,210,22.1,0.207,21,0 +9,91,68,0,0,24.2,0.2,58,0 +2,91,62,0,0,27.3,0.525,22,0 +3,99,54,19,86,25.6,0.154,24,0 +3,163,70,18,105,31.6,0.268,28,1 +9,145,88,34,165,30.3,0.771,53,1 +7,125,86,0,0,37.6,0.304,51,0 +13,76,60,0,0,32.8,0.18,41,0 +6,129,90,7,326,19.6,0.582,60,0 +2,68,70,32,66,25,0.187,25,0 +3,124,80,33,130,33.2,0.305,26,0 +6,114,0,0,0,0,0.189,26,0 +9,130,70,0,0,34.2,0.652,45,1 +3,125,58,0,0,31.6,0.151,24,0 +3,87,60,18,0,21.8,0.444,21,0 +1,97,64,19,82,18.2,0.299,21,0 +3,116,74,15,105,26.3,0.107,24,0 +0,117,66,31,188,30.8,0.493,22,0 +0,111,65,0,0,24.6,0.66,31,0 +2,122,60,18,106,29.8,0.717,22,0 +0,107,76,0,0,45.3,0.686,24,0 +1,86,66,52,65,41.3,0.917,29,0 +6,91,0,0,0,29.8,0.501,31,0 +1,77,56,30,56,33.3,1.251,24,0 +4,132,0,0,0,32.9,0.302,23,1 +0,105,90,0,0,29.6,0.197,46,0 +0,57,60,0,0,21.7,0.735,67,0 +0,127,80,37,210,36.3,0.804,23,0 +3,129,92,49,155,36.4,0.968,32,1 +8,100,74,40,215,39.4,0.661,43,1 +3,128,72,25,190,32.4,0.549,27,1 +10,90,85,32,0,34.9,0.825,56,1 +4,84,90,23,56,39.5,0.159,25,0 +1,88,78,29,76,32,0.365,29,0 +8,186,90,35,225,34.5,0.423,37,1 +5,187,76,27,207,43.6,1.034,53,1 +4,131,68,21,166,33.1,0.16,28,0 +1,164,82,43,67,32.8,0.341,50,0 +4,189,110,31,0,28.5,0.68,37,0 +1,116,70,28,0,27.4,0.204,21,0 +3,84,68,30,106,31.9,0.591,25,0 +6,114,88,0,0,27.8,0.247,66,0 +1,88,62,24,44,29.9,0.422,23,0 +1,84,64,23,115,36.9,0.471,28,0 +7,124,70,33,215,25.5,0.161,37,0 +1,97,70,40,0,38.1,0.218,30,0 +8,110,76,0,0,27.8,0.237,58,0 +11,103,68,40,0,46.2,0.126,42,0 +11,85,74,0,0,30.1,0.3,35,0 +6,125,76,0,0,33.8,0.121,54,1 +0,198,66,32,274,41.3,0.502,28,1 +1,87,68,34,77,37.6,0.401,24,0 +6,99,60,19,54,26.9,0.497,32,0 +0,91,80,0,0,32.4,0.601,27,0 +2,95,54,14,88,26.1,0.748,22,0 +1,99,72,30,18,38.6,0.412,21,0 +6,92,62,32,126,32,0.085,46,0 +4,154,72,29,126,31.3,0.338,37,0 +0,121,66,30,165,34.3,0.203,33,1 +3,78,70,0,0,32.5,0.27,39,0 +2,130,96,0,0,22.6,0.268,21,0 +3,111,58,31,44,29.5,0.43,22,0 +2,98,60,17,120,34.7,0.198,22,0 +1,143,86,30,330,30.1,0.892,23,0 +1,119,44,47,63,35.5,0.28,25,0 +6,108,44,20,130,24,0.813,35,0 +2,118,80,0,0,42.9,0.693,21,1 +10,133,68,0,0,27,0.245,36,0 +2,197,70,99,0,34.7,0.575,62,1 +0,151,90,46,0,42.1,0.371,21,1 +6,109,60,27,0,25,0.206,27,0 +12,121,78,17,0,26.5,0.259,62,0 +8,100,76,0,0,38.7,0.19,42,0 +8,124,76,24,600,28.7,0.687,52,1 +1,93,56,11,0,22.5,0.417,22,0 +8,143,66,0,0,34.9,0.129,41,1 +6,103,66,0,0,24.3,0.249,29,0 +3,176,86,27,156,33.3,1.154,52,1 +0,73,0,0,0,21.1,0.342,25,0 +11,111,84,40,0,46.8,0.925,45,1 +2,112,78,50,140,39.4,0.175,24,0 +3,132,80,0,0,34.4,0.402,44,1 +2,82,52,22,115,28.5,1.699,25,0 +6,123,72,45,230,33.6,0.733,34,0 +0,188,82,14,185,32,0.682,22,1 +0,67,76,0,0,45.3,0.194,46,0 +1,89,24,19,25,27.8,0.559,21,0 +1,173,74,0,0,36.8,0.088,38,1 +1,109,38,18,120,23.1,0.407,26,0 +1,108,88,19,0,27.1,0.4,24,0 +6,96,0,0,0,23.7,0.19,28,0 +1,124,74,36,0,27.8,0.1,30,0 +7,150,78,29,126,35.2,0.692,54,1 +4,183,0,0,0,28.4,0.212,36,1 +1,124,60,32,0,35.8,0.514,21,0 +1,181,78,42,293,40,1.258,22,1 +1,92,62,25,41,19.5,0.482,25,0 +0,152,82,39,272,41.5,0.27,27,0 +1,111,62,13,182,24,0.138,23,0 +3,106,54,21,158,30.9,0.292,24,0 +3,174,58,22,194,32.9,0.593,36,1 +7,168,88,42,321,38.2,0.787,40,1 +6,105,80,28,0,32.5,0.878,26,0 +11,138,74,26,144,36.1,0.557,50,1 +3,106,72,0,0,25.8,0.207,27,0 +6,117,96,0,0,28.7,0.157,30,0 +2,68,62,13,15,20.1,0.257,23,0 +9,112,82,24,0,28.2,1.282,50,1 +0,119,0,0,0,32.4,0.141,24,1 +2,112,86,42,160,38.4,0.246,28,0 +2,92,76,20,0,24.2,1.698,28,0 +6,183,94,0,0,40.8,1.461,45,0 +0,94,70,27,115,43.5,0.347,21,0 +2,108,64,0,0,30.8,0.158,21,0 +4,90,88,47,54,37.7,0.362,29,0 +0,125,68,0,0,24.7,0.206,21,0 +0,132,78,0,0,32.4,0.393,21,0 +5,128,80,0,0,34.6,0.144,45,0 +4,94,65,22,0,24.7,0.148,21,0 +7,114,64,0,0,27.4,0.732,34,1 +0,102,78,40,90,34.5,0.238,24,0 +2,111,60,0,0,26.2,0.343,23,0 +1,128,82,17,183,27.5,0.115,22,0 +10,92,62,0,0,25.9,0.167,31,0 +13,104,72,0,0,31.2,0.465,38,1 +5,104,74,0,0,28.8,0.153,48,0 +2,94,76,18,66,31.6,0.649,23,0 +7,97,76,32,91,40.9,0.871,32,1 +1,100,74,12,46,19.5,0.149,28,0 +0,102,86,17,105,29.3,0.695,27,0 +4,128,70,0,0,34.3,0.303,24,0 +6,147,80,0,0,29.5,0.178,50,1 +4,90,0,0,0,28,0.61,31,0 +3,103,72,30,152,27.6,0.73,27,0 +2,157,74,35,440,39.4,0.134,30,0 +1,167,74,17,144,23.4,0.447,33,1 +0,179,50,36,159,37.8,0.455,22,1 +11,136,84,35,130,28.3,0.26,42,1 +0,107,60,25,0,26.4,0.133,23,0 +1,91,54,25,100,25.2,0.234,23,0 +1,117,60,23,106,33.8,0.466,27,0 +5,123,74,40,77,34.1,0.269,28,0 +2,120,54,0,0,26.8,0.455,27,0 +1,106,70,28,135,34.2,0.142,22,0 +2,155,52,27,540,38.7,0.24,25,1 +2,101,58,35,90,21.8,0.155,22,0 +1,120,80,48,200,38.9,1.162,41,0 +11,127,106,0,0,39,0.19,51,0 +3,80,82,31,70,34.2,1.292,27,1 +10,162,84,0,0,27.7,0.182,54,0 +1,199,76,43,0,42.9,1.394,22,1 +8,167,106,46,231,37.6,0.165,43,1 +9,145,80,46,130,37.9,0.637,40,1 +6,115,60,39,0,33.7,0.245,40,1 +1,112,80,45,132,34.8,0.217,24,0 +4,145,82,18,0,32.5,0.235,70,1 +10,111,70,27,0,27.5,0.141,40,1 +6,98,58,33,190,34,0.43,43,0 +9,154,78,30,100,30.9,0.164,45,0 +6,165,68,26,168,33.6,0.631,49,0 +1,99,58,10,0,25.4,0.551,21,0 +10,68,106,23,49,35.5,0.285,47,0 +3,123,100,35,240,57.3,0.88,22,0 +8,91,82,0,0,35.6,0.587,68,0 +6,195,70,0,0,30.9,0.328,31,1 +9,156,86,0,0,24.8,0.23,53,1 +0,93,60,0,0,35.3,0.263,25,0 +3,121,52,0,0,36,0.127,25,1 +2,101,58,17,265,24.2,0.614,23,0 +2,56,56,28,45,24.2,0.332,22,0 +0,162,76,36,0,49.6,0.364,26,1 +0,95,64,39,105,44.6,0.366,22,0 +4,125,80,0,0,32.3,0.536,27,1 +5,136,82,0,0,0,0.64,69,0 +2,129,74,26,205,33.2,0.591,25,0 +3,130,64,0,0,23.1,0.314,22,0 +1,107,50,19,0,28.3,0.181,29,0 +1,140,74,26,180,24.1,0.828,23,0 +1,144,82,46,180,46.1,0.335,46,1 +8,107,80,0,0,24.6,0.856,34,0 +13,158,114,0,0,42.3,0.257,44,1 +2,121,70,32,95,39.1,0.886,23,0 +7,129,68,49,125,38.5,0.439,43,1 +2,90,60,0,0,23.5,0.191,25,0 +7,142,90,24,480,30.4,0.128,43,1 +3,169,74,19,125,29.9,0.268,31,1 +0,99,0,0,0,25,0.253,22,0 +4,127,88,11,155,34.5,0.598,28,0 +4,118,70,0,0,44.5,0.904,26,0 +2,122,76,27,200,35.9,0.483,26,0 +6,125,78,31,0,27.6,0.565,49,1 +1,168,88,29,0,35,0.905,52,1 +2,129,0,0,0,38.5,0.304,41,0 +4,110,76,20,100,28.4,0.118,27,0 +6,80,80,36,0,39.8,0.177,28,0 +10,115,0,0,0,0,0.261,30,1 +2,127,46,21,335,34.4,0.176,22,0 +9,164,78,0,0,32.8,0.148,45,1 +2,93,64,32,160,38,0.674,23,1 +3,158,64,13,387,31.2,0.295,24,0 +5,126,78,27,22,29.6,0.439,40,0 +10,129,62,36,0,41.2,0.441,38,1 +0,134,58,20,291,26.4,0.352,21,0 +3,102,74,0,0,29.5,0.121,32,0 +7,187,50,33,392,33.9,0.826,34,1 +3,173,78,39,185,33.8,0.97,31,1 +10,94,72,18,0,23.1,0.595,56,0 +1,108,60,46,178,35.5,0.415,24,0 +5,97,76,27,0,35.6,0.378,52,1 +4,83,86,19,0,29.3,0.317,34,0 +1,114,66,36,200,38.1,0.289,21,0 +1,149,68,29,127,29.3,0.349,42,1 +5,117,86,30,105,39.1,0.251,42,0 +1,111,94,0,0,32.8,0.265,45,0 +4,112,78,40,0,39.4,0.236,38,0 +1,116,78,29,180,36.1,0.496,25,0 +0,141,84,26,0,32.4,0.433,22,0 +2,175,88,0,0,22.9,0.326,22,0 +2,92,52,0,0,30.1,0.141,22,0 +3,130,78,23,79,28.4,0.323,34,1 +8,120,86,0,0,28.4,0.259,22,1 +2,174,88,37,120,44.5,0.646,24,1 +2,106,56,27,165,29,0.426,22,0 +2,105,75,0,0,23.3,0.56,53,0 +4,95,60,32,0,35.4,0.284,28,0 +0,126,86,27,120,27.4,0.515,21,0 +8,65,72,23,0,32,0.6,42,0 +2,99,60,17,160,36.6,0.453,21,0 +1,102,74,0,0,39.5,0.293,42,1 +11,120,80,37,150,42.3,0.785,48,1 +3,102,44,20,94,30.8,0.4,26,0 +1,109,58,18,116,28.5,0.219,22,0 +9,140,94,0,0,32.7,0.734,45,1 +13,153,88,37,140,40.6,1.174,39,0 +12,100,84,33,105,30,0.488,46,0 +1,147,94,41,0,49.3,0.358,27,1 +1,81,74,41,57,46.3,1.096,32,0 +3,187,70,22,200,36.4,0.408,36,1 +6,162,62,0,0,24.3,0.178,50,1 +4,136,70,0,0,31.2,1.182,22,1 +1,121,78,39,74,39,0.261,28,0 +3,108,62,24,0,26,0.223,25,0 +0,181,88,44,510,43.3,0.222,26,1 +8,154,78,32,0,32.4,0.443,45,1 +1,128,88,39,110,36.5,1.057,37,1 +7,137,90,41,0,32,0.391,39,0 +0,123,72,0,0,36.3,0.258,52,1 +1,106,76,0,0,37.5,0.197,26,0 +6,190,92,0,0,35.5,0.278,66,1 +2,88,58,26,16,28.4,0.766,22,0 +9,170,74,31,0,44,0.403,43,1 +9,89,62,0,0,22.5,0.142,33,0 +10,101,76,48,180,32.9,0.171,63,0 +2,122,70,27,0,36.8,0.34,27,0 +5,121,72,23,112,26.2,0.245,30,0 +1,126,60,0,0,30.1,0.349,47,1 +1,93,70,31,0,30.4,0.315,23,0 \ No newline at end of file