diff --git a/data_analysis/tokenizer-fertility/tokenizer_fertility_analysis.ipynb b/data_analysis/tokenizer-fertility/tokenizer_fertility_analysis.ipynb new file mode 100644 index 0000000..9d3991f --- /dev/null +++ b/data_analysis/tokenizer-fertility/tokenizer_fertility_analysis.ipynb @@ -0,0 +1,4086 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tokenizer fertility analysis for file filtering\n", + "\n", + "* we will run the tokenizer trained on data (after filtering + PII redaction) to get fertility on the-stack-smol dataset\n", + "* we will also test the same tokenizer on the data it was trained on to see if there's a diffrence in the threshold and percentage of data filtered (the-stack-pjjs-pii-filtered)\n", + "* we will test a similar tokenizer trained on data before filtering and PII redactionto see if it detects those files with a high number of keys in PII redaction" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from datasets import load_dataset\n", + "from transformers import AutoTokenizer\n", + "from matplotlib import pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using custom data configuration bigcode--the-stack-smol-7b51f8bde3058781\n", + "Found cached dataset json (/Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--the-stack-smol-7b51f8bde3058781/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab)\n", + "Using custom data configuration bigcode--the-stack-smol-95a2b7de57a7cb35\n", + "Found cached dataset json (/Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--the-stack-smol-95a2b7de57a7cb35/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab)\n", + "Using custom data configuration bigcode--the-stack-smol-848a30ee7bac5c92\n", + "Found cached dataset json (/Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--the-stack-smol-848a30ee7bac5c92/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab)\n" + ] + } + ], + "source": [ + "ds_python = load_dataset('bigcode/the-stack-smol', data_dir=\"data/python\", split=\"train\")\n", + "ds_java = load_dataset('bigcode/the-stack-smol', data_dir=\"data/java\", split=\"train\")\n", + "ds_js = load_dataset('bigcode/the-stack-smol', data_dir=\"data/javascript\", split=\"train\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using custom data configuration bigcode--stack-pjjs-pii-filtered-smol-6782f925a3950d03\n", + "Found cached dataset json (/Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--stack-pjjs-pii-filtered-smol-6782f925a3950d03/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab)\n", + "Using custom data configuration bigcode--stack-pjjs-pii-filtered-smol-daa80c903c8b7f58\n", + "Found cached dataset json (/Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--stack-pjjs-pii-filtered-smol-daa80c903c8b7f58/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab)\n", + "Using custom data configuration bigcode--stack-pjjs-pii-filtered-smol-5322d73266feb990\n", + "Found cached dataset json (/Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--stack-pjjs-pii-filtered-smol-5322d73266feb990/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab)\n" + ] + } + ], + "source": [ + "ds_python_filter = load_dataset('bigcode/stack-pjjs-pii-filtered-smol', data_dir=\"data/python\", split=\"train\", use_auth_token=True)\n", + "ds_java_filter = load_dataset('bigcode/stack-pjjs-pii-filtered-smol', data_dir=\"data/java\", split=\"train\", use_auth_token=True)\n", + "ds_js_filter = load_dataset('bigcode/stack-pjjs-pii-filtered-smol', data_dir=\"data/javascript\", split=\"train\", use_auth_token=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Dataset({\n", + " features: ['hexsha', 'size', 'ext', 'lang', 'max_stars_repo_path', 'max_stars_repo_name', 'max_stars_repo_head_hexsha', 'max_stars_repo_licenses', 'max_stars_count', 'max_stars_repo_stars_event_min_datetime', 'max_stars_repo_stars_event_max_datetime', 'max_issues_repo_path', 'max_issues_repo_name', 'max_issues_repo_head_hexsha', 'max_issues_repo_licenses', 'max_issues_count', 'max_issues_repo_issues_event_min_datetime', 'max_issues_repo_issues_event_max_datetime', 'max_forks_repo_path', 'max_forks_repo_name', 'max_forks_repo_head_hexsha', 'max_forks_repo_licenses', 'max_forks_count', 'max_forks_repo_forks_event_min_datetime', 'max_forks_repo_forks_event_max_datetime', 'avg_line_length', 'max_line_length', 'alphanum_fraction', 'index', 'content'],\n", + " num_rows: 10000\n", + "})" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_python_filter" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "#tokenizer = AutoTokenizer.from_pretrained(\"bigcode/tokenizer\", subfolder=\"digit-bytelevel-bpe-py-js-java-49k\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "tokenizer = AutoTokenizer.from_pretrained(\"bigcode/digit-bytelevel-bpe-jss-v1.1-49152\", use_auth_token=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def char_token_ratio(example):\n", + " \"\"\"Compute character/token ratio of the file with tokenizer.\"\"\"\n", + " input_ids = tokenizer(example, truncation=False)[\"input_ids\"]\n", + " ratio = len(example) / len(input_ids)\n", + " return ratio" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def extract_nl_text(examples):\n", + " ratio_list = []\n", + " for code in examples[\"content\"]:\n", + " ratio = char_token_ratio(code)\n", + " ratio_list.append(ratio)\n", + " return {\"fertility_ratio\": ratio_list}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "659691ed95234fc28a59199879340f17", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.style.use('ggplot')\n", + "plt.figure(figsize=(12, 10))\n", + "# plot hist of perplexity\n", + "plt.hist(ds['fertility_ratio'], bins=500)\n", + "plt.title(\"Tokenizer fertility ratio distribution\")\n", + "plt.xlabel(\"Tokenizer fertility\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+0AAANcCAYAAAAq0U7DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeqklEQVR4nO3deXiU5bk/8HtCEkBDBGQXZREUd0FFCy64o3BUFLVqj1orrrW1p2pbrQUXjqL1HD2i9lSta1WUFhdcUXHDBdwFrKJoXRFSDIgIJGZ+f3jIz5gAYZhk3mQ+n+viKu9+zzwzle88z/u8qXQ6nQ4AAAAgcQpyXQAAAABQN6EdAAAAEkpoBwAAgIQS2gEAACChhHYAAABIKKEdAAAAEkpoBwAAgIQS2gEAACChhHYAAABIKKEdgERJpVIxZMiQBr3GU089FalUKsaMGdOg18mWnj17Rs+ePWusu/nmmyOVSsXNN9+ck5pW9R4OGTIkUqlUTmpaKdfvTbZUVFTE6NGjo2/fvtGyZctIpVJx7733rvG4l19+Ofbdd9/o0KFDpFKp2H777Ru81lWp6/s8ZsyYSKVS8dRTT61xXwCEdoAm5R//+EecccYZsfXWW8cGG2wQxcXF0a1btxg2bFjceOONsXz58lyXmAgffvhhpFKpOP7443NdSmKtKjg1BU3tR5dMXXHFFXHhhRdGt27d4qyzzorRo0dHv379VnvM4sWLY9iwYTF9+vT48Y9/HKNHj45TTjmlwWqs6welbGrKn1OAbCnMdQEA1M+FF14YF1xwQVRVVcWPfvSjOO6446KkpCS++OKLeOqpp+LEE0+M6667Ll5++eVcl5p4AwcOjLfffjs6dOiQ61IyNmLEiNhll12ia9euObl+kt/DXL832TJ58uQoKSmJKVOmRHFxcb2OmT59esyfPz/Gjh0b5557bgNXuGZvv/12rLfeelnfFyCfCO0ATcB//ud/xujRo2PjjTeOe+65J3beeeda+0yePDmuuOKKHFTX9Ky33npr7LFMug022CA22GCDnF0/ye9hrt+bbPnss89iww03rHdgX3lMRES3bt0aqqy1sjafkaR+ngByzfB4gIT78MMPY8yYMVFUVBQPPfRQnYE9ImL48OHxyCOPVC+vaQjxmu6TnjJlSuy2225RUlISHTt2jJ/+9KdRXl4eERGvvfZaDB8+PNq1axclJSVx0EEHxYcffliva6y0NsNeP/vss7jwwgtj8ODB0aVLl+rbAo4++uiYPXt2rfP26tUrIiJuueWWSKVS1X9W3uNc13vTr1+/KC4ujrKysjprGDduXKRSqRg/fnyN9Z988kn8/Oc/j969e0fLli1jww03jIMOOihmzJixxtf1fel0OsaPHx9bbbVVtGrVKjbaaKP4+c9/HosWLapz/1Xdt/3mm2/GUUcdFT179oyWLVtGx44dY8CAAXHmmWdGRUVFRHzXLhdccEFEROy555413qOVjj/++EilUjF37ty4+uqrY9ttt43WrVtX33O8ps/X8uXL4/e//3306tUrWrZsGZtuumlccMEFsWLFihr7relWhh/eI3/88cfHnnvuGRERF1xwQY3aV36WVndP+yuvvBKHHXZYdOrUKVq2bBk9evSI0047LT7//PNa+658Dz788MP43//939hmm22iVatW0blz5zjppJNW2TarsmjRovjd734Xm2++ebRq1SratWsX+++/fzz++ON1XveDDz6If/7zn9Wvb3XD0Fe+j8cdd1xERPz0pz+t9bmPiFi6dGlccsklsf3228f6668fJSUl8aMf/SjuvPPOWuf8fhtPnz49hg0bFu3bt68+ZyqVin/+8581avxhW67Nfeo/3HdNn9OjjjoqUqlUPP3003We729/+1ukUqn4+c9/Xq/rAySVnnaAhLvpppuioqIifvzjH8fWW2+92n1btmyZlWvef//9MXny5Bg+fHiccsop8fzzz8fNN98cH374YVxyySWx9957x2677RY/+9nP4q233ooHHngg5s6dG2+++WYUFGT/9+BnnnkmLr300thzzz3jsMMOi5KSkpgzZ05MnDgx7r///pg2bVpst912EfFdyCsvL4+rrroqtttuuzjkkEOqz7O6CbmOO+64OPfcc+POO++MM844o9b2W265JYqLi+Poo4+uXvfqq6/GfvvtFwsXLoz9998/Dj300CgrK4t77703dt1115g0aVIceOCB9XqNZ555ZvzP//xPdO3aNU466aQoKiqK++67L1566aVYsWJFvXpb33zzzdh5550jlUrFQQcdFL169YrFixfHe++9F9dee21cfPHFUVRUFGeeeWbce++98fTTT8dxxx232jD4y1/+Mp599tkYNmxYHHjggdGiRYt6vZ4jjjgiZsyYESNHjqx+LWPGjImXX3457r///ownq1vZnrfcckvssccetULe6kyePDkOO+ywSKfTMXLkyOjRo0e88sorcd1118V9990Xzz33XPUPPt93zjnnxKOPPhr/9m//Fvvtt19MnTo1rr/++njvvffiySefrFfd5eXlMXjw4Jg9e3bstNNOceaZZ0ZZWVncfffdsd9++8V1110XJ598cvVr7NmzZ1x55ZUR8d1nIyKibdu2qzx/27ZtY/To0fH666/HfffdFwcffHD1533l/5aXl8dee+0Vr732WgwYMCBOOOGEqKqqikcffTSOPvromDVrVlx88cW1zv3CCy/EJZdcErvuumuccMIJUVZWFptttlmMHj26Vo3fv966WtPn9NRTT4277ror/vznP8cee+xR6/j//d//jYho0Hv6ARpFGoBE22uvvdIRkb7++uvX6ripU6emIyI9evToOrf36NEj3aNHjxrrbrrppnREpFu0aJF+6qmnqtd/++236X322ScdEel27dqlb7/99hrHnXDCCemISN97771rvMZKo0ePTkdEeurUqTXWR0R6jz32qLHuiy++SC9evLjWOV5//fX0+uuvnx46dGiN9R988EE6ItLHHXdcndeu6735+OOP0wUFBekddtih1v7Tp09PR0T60EMPrV5XUVGR3nTTTdMtW7as8V6l0+n0p59+mu7WrVu6S5cu6WXLltVZw/dNmzYtHRHpTTfdNP2vf/2rev0333yT3mWXXdIRscq2uummm6rX/cd//Eed7ZBOp9MLFy5Mf/vtt9XLq3r/VzruuOPSEZHu1q1beu7cubW2r+rztccee6QjIt23b9/0woUL63wtt956a/X6NbXVyvPV59or1fXefPXVV+n27dunCwoK0s8880yN/S+99NJ0RKT33XffOt+DjTfeOP3Pf/6zen1FRUV6t912S0dE+qWXXqqzhh866aST0hGRPumkk9JVVVXV69999910aWlpuri4OP3BBx/UOGZ1359Vqeu1//D1jBs3rsb6b775Jr3//vunU6lU+rXXXqtev/J9joj0n/70pzqvt6Ya6/o+r813f02f06222irdsmXLdFlZWY3177//fjqVSqUHDRq0ytoAmgrD4wESbuWw3e7duzfaNY866qgaPVcFBQXx7//+7xERsfXWW8cxxxxTY/9jjz02IiJef/31BqmnU6dO0aZNm1rrt9tuu9hrr71i6tSp1UO/M9W9e/fYe++945VXXolZs2bV2HbLLbdERFQPPY6IePDBB+P999+PM844o1YvX7du3eKcc86JefPmxRNPPLHGa990000REXHeeedF+/btq9e3atUqLrnkkrV+La1bt661rl27dhmNgjjnnHPq7H1ek/PPPz/atWtXvfz91/KXv/xlrc+3ru67775YuHBhHHnkkbHbbrvV2PbrX/86evbsGVOmTImPPvqo1rF/+MMfYpNNNqleLiwsjJ/+9KcR8d3Eb2uyYsWKuP3226OkpCQuueSSGqMM+vbtG7/4xS9ixYoVceutt2b68tboX//6V9x+++2x4447xjnnnFNjW6tWrWLcuHGRTqfjjjvuqHXs9ttvXz0KIGlOPfXUWL58ea1bIa6//vpIp9OJrRtgbRgeD0AtO+64Y611Kye22mGHHWpt22ijjSLiu/u7G8qDDz4Yf/rTn+Lll1+OsrKyqKysrLG9rKxsnWcLP/7442PKlClxyy23xGWXXRYR3wWuO++8Mzp16lRjqPsLL7wQERH//Oc/67yve86cORHx3YzYaxoi/+qrr0ZE1DnEd9ddd633kPQjjzwyrrrqqjjkkENi5MiRsc8++8TgwYNj0003rdfxdRk4cGBGx63utbz22msZ15Ople/xXnvtVWtbYWFh7L777vHhhx/Ga6+9ViOgR9T9fdh4440jIuLLL79c47XfeeedWLp0aQwePLjGjzIr7bXXXnHxxRc36PsyY8aM+Pbbb1c5D8HKH73efvvtWtsy/Qw0hmOPPTZ++9vfxp///Of49a9/HRHfvZabb7452rVrF0cccUSOKwRYd0I7QMJ17do13n777fj0008b7Zp1zbxdWFi4xm3r2tu9KldddVWceeaZ0a5du9h3331jk002ifXWWy9SqVTce++98cYbb2TlGfUjRoyI0tLSuP322+OSSy6JFi1axOTJk2PhwoVx5plnVr/OiO96LiMi7rnnntWec8mSJWu87soJzTp37lxrW2FhYb0fqzZw4MB49tlnY+zYsTFx4sS47bbbIiJi8803j9GjR8dRRx1Vr/N8X5cuXdb6mIjVv5b58+dndM51sfI9XtUPOyvXr5xs8fvqupd85Wfh22+/bdBrZ8vKz+uMGTNWO0liXZ/XTD8DjaFNmzbxk5/8JP70pz/F1KlTY88994z7778/5s2bF2eeeWa0atUq1yUCrDPD4wESbtddd42IqNcw6+9bORT6hz3SKzVkQPh+Det6/crKyhgzZkx06dIlZs2aFRMmTIjLL788LrjgghgzZkyd4TBTrVu3jiOOOCI+//zzmDJlSkTUPTQ+4v//eHHfffdFOp1e5Z/Ro0ev8borz/XFF1/U2lZZWbnKGe3r8qMf/SgmT54cX375ZUybNi3OP//8+OKLL+Loo4+uNUt5fWQ6YdzqXktpaWn1usb6nK58j+fNm1fn9pW3oTTEo+Jyee0f1vCrX/1qtZ/XqVOn1jo2089AYzn11FMj4v9PPLfyf0866aSc1QSQTUI7QML99Kc/jaKiovjb3/5W6/FmP/T93uaV9xN//PHHtfZ777331vpxVZlo165dfPHFF3X2wL/88sv1OkdZWVmUl5fHoEGDavVULlmypHrY8/etHE5en17QH1r5uKpbbrklFixYEA8//HBsu+22tWbE3mWXXSIi4tlnn13ra/zQgAEDIiLqfHTVc889l9HraNmyZQwaNCguvPDC+J//+Z+I+O4HhpXW5T2qj9W9lv79+1evW93ndPHixfHuu+/WWp9J7SuvWdcjBisrK6vbcWVbZNPmm28e6623Xrzxxht1/gixMig3xLVXGjhwYBQUFGTl8/p9LVq0aLDP0MrzR6y+rbfddtsYPHhwTJo0KV566aV4/PHHY/fdd48tttiiweoCaExCO0DC9ezZM8aMGRMrVqyIYcOGrTLsPvLII3HAAQdUL/fr1y9KS0vjvvvuqzEc+Ztvvolf/OIXDV53xHdBobKysnqitZVuvvnmmDZtWr3O0alTp1hvvfXilVdeqTF0t6KiIn75y1/W2Qvdrl27SKVSdU4qtiaDBw+Ovn37xn333Rd/+tOfoqKios5niB988MGx6aabxjXXXBMPPfRQned64YUXYunSpWu85srzjx07NhYuXFi9ftmyZfG73/2u3rU///zz8c0339Rav7LXe7311qtet+GGG0ZEZPQe1cdFF11U437v77+WlZO4RXw3vLlfv34xbdq0Gj9Kffvtt/Ef//Efdb6eTGo/5JBDon379nHnnXfGiy++WGPblVdeGR988EHss88+te5nz4bi4uI45phj4quvvorzzz+/xrb3338//ud//ieKioqqJ3tsCJ06dYpjjjkmXn755bjooovqDMHvv/9+fPDBB2t13g033DAWLFhQZztlQ33b+tRTT40VK1ZUP9LPY96A5sQ97QBNwLnnnhuVlZVxwQUXxE477RSDBg2KHXfcMUpKSuKLL76IZ555JubMmVNjwqyioqL45S9/GRdddFH0798/RowYEZWVlTFlypTo1q1b9cRyDemMM86Im266KU499dR44oknYuONN47XX389XnjhhRg+fHhMnjx5jecoKCiIX/ziF3HppZfGNttsEwcffHCsWLEipk6dGgsXLow999yz1pDekpKS2HnnnePZZ5+NY445JjbbbLNo0aJFHHTQQbHtttuu8ZrHHntsnH/++XHRRRdFYWFhrdnyI757f//+97/H/vvvH8OGDYtBgwbF9ttvH+utt158/PHHMWPGjJg7d258/vnnNcJyXQYPHhxnnHFGXH311bH11lvXeLZ5u3bt6j3B3mWXXRZPPvlk7LbbbtGrV68oKSmJWbNmxcMPPxzt2rWrMVx4zz33jIKCgvjd734XM2fOrO7x/v3vf1+va63JFltsEVtttVWN1/L+++/HsGHDaoXTs88+O372s5/F4MGD4/DDD49WrVpVPxFgu+22izfeeKPG/ptvvnlstNFGcdddd0VRUVH06NEjUqlU/Pu//3v06NGjznpKSkriL3/5Sxx++OGxxx57xOGHHx6bbLJJvPLKK/HYY49Fly5dqodVN4RLL700nn322Rg/fnzMmDEj9txzz+rntH/11Vcxfvz4jGbpXxvjx4+POXPmxB/+8Ie47bbbYtddd43OnTvHZ599Fm+//XbMmDEj7rzzzrWqY++9944ZM2bE0KFDY/fdd4+WLVvGdtttF//2b/+WlZrr+zk9/PDD41e/+lV8+umn0aFDhzj00EOzcn2ARGj0h8wBkLHZs2enf/7zn6e32mqrdJs2bdJFRUXpLl26pIcOHZq+4YYbaj0TvKqqKn3JJZeke/funS4qKkpvvPHG6bPPPjv99ddfr/Y57XU943l1z8Ze3bO2n3322fRuu+2Wbt26dbpNmzbpAw88MP3GG2+s1bOaKyoq0ldccUV6iy22SLdq1SrduXPn9E9+8pP0hx9+WP3s6R8+43rOnDnp4cOHp9u3b59OpVI1XteanvP9z3/+M11QUJCOiPTw4cPr3GelL774Iv2b3/wmvdVWW6Vbt26dXn/99dN9+vRJH3bYYenbbrstXVFRsdrjV6qqqkpfffXV6X79+qWLi4vTXbt2TZ922mnp8vLyerfVo48+mj7++OPTW2yxRbq0tDS93nrrpTfbbLP0GWeckf7www9rXfO2225Lb7fddulWrVpVP497pVW9ryut6Tnty5YtS5933nnpnj17pouLi9O9evVKjxkzZpXPrb/hhhvSW265Zbq4uDjduXPn9EknnZQuKyur8znt6XQ6PX369PRee+2VLi0trW7flZ+l1X2Op0+fnj7kkEPSHTp0qP5OnHLKKelPP/201r6rew/W9Bmqy5dffpk+55xz0n369EkXFxenN9hgg/Q+++yTfvTRR+vcP9vPaU+n0+nly5enr7766vSPfvSj6ufDb7zxxum99tor/d///d81nnden9e4ZMmS9CmnnJLeaKON0i1atKj1/wN1fZ/X5rufTq/+c/p9Z555Zjoi0medddYq6wVoilLpdDrdKL8OAABAAxkyZEg888wz8c4770Tfvn1zXQ5A1rinHQCAJm369Onx9NNPx/777y+wA82Oe9oBAGiSrrvuuvj000/jpptuioKCgrjgggtyXRJA1hkeDwBAk9SzZ8/45JNPonfv3jFmzJg4+uijc10SQNYJ7QAAAJBQ7mkHAACAhBLaAQAAIKGEdgAAAEgooR0AAAASyiPf/s+XX34ZlZWVuS5jtTp27BgLFizIdRnkgLbPb9o/f2n7/Kb985e2z1/aPn8UFhZGu3bt6rdvA9fSZFRWVkZFRUWuy1ilVCoVEd/VacL//KLt85v2z1/aPr9p//yl7fOXtmdVDI8HAACAhBLaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhBLaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhBLaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhBLaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhBLaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhBLaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhBLaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhCrMdQHfN3v27Lj//vvjgw8+iC+//DLOOuusGDhw4GqPmTVrVtx6663x8ccfx4YbbhiHHXZYDBkypHEKBgAAgAaUqJ725cuXR8+ePeNnP/tZvfafP39+XHrppbHVVlvFZZddFsOGDYs/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M6CXHQCaJ6EdAAAAEkpoBwAAgIQS2gGgiTM0HgCar8JcF/BDjzzySDzwwANRXl4ePXr0iBNOOCH69Omzyv0ffPDBeOyxx6KsrCxKS0tj5513jqOPPjqKi4sbsWoAAADIvkT1tD///PNx6623xsiRI2PcuHHRo0ePGDt2bCxatKjO/Z977rm444474vDDD4///u//jlNOOSVeeOGFuPPOOxu5cgAAAMi+RIX2yZMnx9577x177rlndO/ePUaNGhXFxcUxderUOvd/5513YvPNN49dd901OnXqFNttt10MHjw43nvvvUauHAByw9B4AGjeEjM8vrKyMubOnRuHHHJI9bqCgoLYZptt4t13363zmM033zyeffbZeO+996JPnz7xxRdfxGuvvRa77bbbKq9TUVERFRUV1cupVCpat25d/fekWllbkmukYWj7/Kb985e2z2/fb/90Op3jamhM2j5/afvsaW7/7UxMaF+8eHFUVVVF27Zta6xv27ZtfPbZZ3Ues+uuu8bixYvj/PPPj4iIb7/9Nvbdd9849NBDV3mdSZMmxcSJE6uXe/XqFePGjYuOHTuu+4toBF26dMl1CeSIts9v2j9/rbHt27RpnELIiZKSklyXQI5o+/yl7dddm65dc11CViUmtGdi1qxZMWnSpDjxxBOjb9++MW/evLjpppti4sSJMXLkyDqPGTFiRAwfPrx6eeWvMAsWLIjKyspGqTsTqVQqunTpEvPmzfPLW57R9vlN++ev+rR9yR//2MhV0VhSqVSUlJTEkiVLfPfzjLbPX9o+e5Z8/nmuS1ijwsLCenccJya0l5aWRkFBQZSXl9dYX15eXqv3faUJEybE7rvvHnvvvXdERGyyySaxbNmy+POf/xyHHnpoFBTUvmW/qKgoioqK6jxfU/hypNPpJlEn2aft85v2z1/aPj+tbHNtn3+0ff7S9tnT3N7DxExEV1hYGL17946ZM2dWr6uqqoqZM2fGZpttVucxy5cvr3W/Ql1BHQCaGxPQAUB+SExPe0TE8OHD45prronevXtHnz594qGHHorly5fHkCFDIiJi/Pjx0b59+zj66KMjImKHHXaIBx98MHr16lU9PH7ChAmxww47CO8AAAA0eYkK7YMGDYrFixfH3XffHeXl5dGzZ88499xzq4fHl5WV1ehZP+ywwyKVSsVdd90VCxcujNLS0thh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2mnZrgMAAAD4gYxC+9NPP12v/fbYY49MTg8AAABEhqH92muvrdd+QjsAzYH72QGAXMkotI8fP77WuqqqqliwYEE8+uijUVZWFqeffvo6FwcAAAD5LKPntHfs2LHWn86dO8fWW28dv/71r6O0tDQeeeSRbNcKAAAAeSWjnvY12WGHHWLChAlx4oknrvWxjzzySDzwwANRXl4ePXr0iBNOOCH69Omzyv2//vrruPPOO2P69OmxZMmS6NixYxx33HExYMCAdXkJABARhsYDALnVIKF93rx5UVFRsdbHPf/883HrrbfGqFGjom/fvvHggw/G2LFj48orr4wNNtig1v6VlZVx8cUXR2lpafzHf/xHtG/fPsrKymK99dbLxssAAACAnMootM+ePbvO9UuXLo3Zs2fHww8/HDvttNNan3fy5Mmx9957x5577hkREaNGjYpXX301pk6dGoccckit/Z988slYsmRJXHTRRVFY+N1L6dSp01pfFwAAAJIoo9B+wQUXrHJbQUFB7LLLLnHCCSes1TkrKytj7ty5NcJ5QUFBbLPNNvHuu+/Wecwrr7wSffv2jRtvvDFefvnlKC0tjcGDB8chhxwSBQV1365fUVFRYxRAKpWK1q1bV/89qVbWluQaaRjaPr9p//z1/bZPp9M5robGpv3zl7bPX9o+e5rbv5syCu2jR4+uc31JSUl06NAho+Hpixcvjqqqqmjbtm2N9W3bto3PPvuszmO++OKLWLBgQey6667xu9/9LubNmxc33HBDfPvtt3H44YfXecykSZNi4sSJ1cu9evWKcePGRceOHde65lzo0qVLrksgR7R9ftP+OdSmTU4vX1JSktPrk1vaP39p+/yl7dddm65dc11CVmUU2rfccsts15GRdDodpaWlcfLJJ0dBQUH07t07Fi5cGPfff/8qQ/uIESNi+PDh1csrf4VZsGBBVFZWNkrdmUilUtGlS5eYN2+eX97yjLbPb9o/90q++ion102lUlFSUhJLlizR9nlI++cvbZ+/tH32LPn881yXsEaFhYX17jhep4nolixZEm+++WYsWLAgIr57FNw222wTbTLolSgtLY2CgoIoLy+vsb68vLxW7/tKbdu2jcLCwhpD4TfaaKMoLy+PysrK6vvcv6+oqCiKiorqPF9T+HKk0+kmUSfZp+3zm/bPPyvbW7vnJ+2fv7R9/tL22dPc3sOMQ/vdd98d9913X63e6cLCwjjooIPiyCOPXLtCCgujd+/eMXPmzBg4cGBERFRVVcXMmTNj6NChdR6z+eabx7Rp06Kqqqo6uH/++efRrl27OgM7AAAANCUZJduJEyfG3/72t+jfv38MHTo0unXrFhERn332WTzyyCPx97//PVq0aBEjR45cq/MOHz48rrnmmujdu3f06dMnHnrooVi+fHkMGTIkIiLGjx8f7du3j6OPPjoiIvbbb7949NFH4+abb46hQ4fGvHnzYtKkSXHAAQdk8rIAoAbPaAcAci2j0D5lypTYYYcd4pxzzqmxvlOnTrH99tvHpZdeGlOmTFnr0D5o0KBYvHhx3H333VFeXh49e/aMc889t3p4fFlZWY2ZADt06BDnnXde3HLLLXH22WdH+/bt44ADDqjz8XAAAADQ1GQU2pcuXRrbb7/9KrcPGDBglc9yX5OhQ4eucjj8mDFjaq3bbLPNYuzYsRldCwAAAJKs7oeZr0G/fv1izpw5q9w+Z86c2HzzzTMuCgAAAMgwtI8aNSrefffduPnmm2PevHlRVVUVVVVVMW/evLj55ptjzpw5MWrUqGzXCgCNxv3sAEAS1Gt4/LHHHlvjXvKIiG+//TYefvjhePjhh6tnbq+qqoqI7x6rdvbZZ8ctt9yS5XIBAAAgf9QrtO+88861QjsAAADQsOoV2k8//fSGrgMAAAD4gYzuaQeA5sz97ABAUtSrp/3pp5+OiIjdd989UqlU9fKa7LHHHplXBgAAAHmuXqH92muvjYiIwYMHR2FhYfXymgjtAAAAkLl6hfbx48d/t3NhYY1lAAAAoOHUK7R37Nix+u+VlZWxdOnSKCkpiQ033LDBCgOAXHA/OwCQJGs9EV1BQUH89re/jZdeeqkh6gEAAAD+T0ahvUOHDlFZWdkQ9QAAAAD/J6NHvh1wwAHx+OOPx5IlS7JdDwDkjKHxAEDS1Oue9h+qqqqKoqKiOOOMM2LnnXeOTp06RXFxca39hg8fvs4FAgAAQL7KKLTfdttt1X+fOnXqKvcT2gFoKvSyAwBJlFFo98g3AAAAaHgZhfbvPwIOAAAAaBgZTUR35JFHxnPPPbfK7c8//3wceeSRGRcFAAAAZBja16SqqipSqVRDnBoAAADyRtZD+9KlS+P111+PNm3aZPvUAAAAkFfqfU/7PffcExMnTqxevvrqq+Pqq69e5f4HHHDAulUGAAAAea7eob1Pnz6x//77Rzqdjsceeyy23Xbb6Nq1a639WrVqFb17946BAwdmtVAAAADIN/UO7f3794/+/ftHRMTy5ctj3333jb59+zZYYQDQWDyjHQBIqowe+Xbaaadluw4AAADgBzIK7W+99VZ88MEHcdBBB1Wve/LJJ+Oee+6JysrKGDx4cBx77LFRUNAgk9MDAABAXsgoVd9zzz3x4YcfVi9/9NFHcf3110dpaWlsueWW8fDDD8f999+frRoBAAAgL2UU2j/99NPYdNNNq5efeeaZaN26dVx44YXxq1/9Kvbee+945plnslYkAAAA5KOMQvuyZcuidevW1cuvv/56bL/99tGyZcuI+G6m+QULFmSnQgBoQCahAwCSLKPQ3qFDh3j//fcjImLevHnx8ccfx7bbblu9fcmSJVFUVJSdCgEAACBPZTQR3a677hoTJ06MhQsXxieffBLrr79+7LTTTtXb586dW+cz3AEAAID6yyi0H3rooVFZWRmvvfZadOjQIU477bRYf/31I+K7XvZZs2bFgQcemNVCASDbDI0HAJIuo9DeokWLOOqoo+Koo46qta2kpCSuv/76dS4MAAAA8p0HqQMAAEBC1aun/dprr41UKhUnn3xyFBQUxLXXXrvGY1KpVJx66qnrXCAANARD4wGApqBeoX3WrFmRSqWiqqoqCgoKYtasWWs8JpVKrXNxAAAAkM/qFdqvueaa1S4DAAAA2eeedgAAAEgooR2AvON+dgCgqajX8Pgjjzwyo5NPmDAho+MAAACAeob2ww47rNbEctOnT49PPvkktttuu+jWrVtERHz66afx5ptvxsYbbxw77bRT9qsFAACAPFKv0H7EEUfUWH788cdj8eLFccUVV1QH9pU++eSTuPDCC6Ndu3bZqxIAAADyUEb3tN9///2x//771wrsERHdu3ePoUOHxv3337/OxQEAAEA+yyi0/+tf/4rCwlV30rdo0SL+9a9/ZVwUAAAAkGFo32STTeLRRx+NhQsX1tr2r3/9Kx577LHYZJNN1rk4AAAAyGf1uqf9h4477rgYO3Zs/PKXv4yddtopunTpEhER8+bNixkzZkQ6nY4zzjgjq4UCAABAvskotPfr1y/Gjh0bEyZMiBkzZsSKFSsiIqK4uDi22267OOKII/S0A5BIntEOADQlGYX2iO+GyJ999tlRVVUVixcvjoiI0tLSKCjIaMQ9AAAA8AMZh/aVCgoKom3btlkoBQAAAPg+3eIA5A1D4wGApkZoBwAAgIQS2gEAACChhHYAAABIKKEdgLzgfnYAoCnKePb4pUuXxmOPPRazZs2KRYsWxUknnRR9+vSJJUuWxFNPPRU77rhjdOnSJZu1AgAAQF7JKLT/61//ijFjxkRZWVl07do1Pv3001i2bFlERJSUlMSUKVNiwYIF8dOf/jSrxQJAJvSyAwBNVUah/bbbbotvvvkmLr/88igtLY1Ro0bV2L7TTjvFq6++mpUCAQAAIF9ldE/7m2++GQcccEB07949UqlUre2dO3eOf/3rX+tcHAAAAOSzjEL7ihUrorS0dJXbv/nmm4wLAgAAAL6TUWjv3r17vP3226vcPmPGjOjZs2emNQEAAACRYWg/8MADY9q0aXHvvffG0qVLIyKiqqoq5s2bF1dffXW8++67MWzYsKwWCgCZMAkdANCUZTQR3e677x5lZWUxYcKEuOuuuyIi4j//8z8jnU5HQUFBHHXUUTFw4MCsFgoAAAD5JuPntB966KGx++67x4svvhjz5s2LdDodnTt3jp133jk6d+6czRoBAAAgL2Uc2iMiOnToEMOHD89WLQAAAMD3ZHRP++9+97uYPHmyx7oBAABAA8qop72goCBuu+22uP3226Nv374xePDg2GWXXaJt27ZZLg8AAADyV0ahfezYsVFWVhbPP/98vPDCC3HTTTfFLbfcEv369YvBgwfHwIEDV/scdwAAAGDNMr6nvUOHDnHQQQfFQQcdFF988UV1gL/++uvjxhtvjK233jrOO++8bNYKAAAAeSWje9p/qHPnzjFixIgYN25cjBo1KoqLi+PNN9/MxqkBIGOe0Q4ANHXrNHv8Su+++2688MIL8eKLL8bChQujVatWseuuu2bj1AAAAJC3Mg7tc+fOrR4SX1ZWFsXFxbHDDjvEoEGDon///lFUVJTNOgEAACDvZBTazzjjjJg/f34UFhZG//7945hjjokddtghWrZsme36ACAjhsYDAM1BRqF9o402isMPPzx22mmnaN26dbZrAgAAACLD0P7b3/4223UAAAAAP1Cv0F5WVhYR3z3m7fvLa7JyfwAAAGDt1Su0n3766RER8de//jUKCwurl9dkwoQJmVcGAAAAea5eof3UU0+NiIgWLVrUWAaAJDIJHQDQXNQrtA8ZMmS1ywAAAED2FWRy0LXXXhtz5sxZ5fb33nsvrr322oyLAgAAADIM7U8//XR88cUXq9w+f/78ePrppzMuCgAAAMgwtK/JwoULo7i4uCFODQCr5X52AKA5qfdz2mfMmBEzZsyoXn788cfjzTffrLXf0qVL46233oo+ffpkp0IAAADIU/UO7Z988km8+OKL1ctz5syJuXPn1tgnlUpFy5YtY4sttohjjz02e1UCAABAHqp3aB8xYkSMGDEiIiKOPPLIOPXUU2PXXXdtsMIAYG0ZGg8ANDf1Du3fN2HChGzXAQAAAPxAg0xEBwAAAKy7jHraIyJee+21mDx5cnzwwQexdOnSSKfTtfbRIw9AYzE0HgBojjLqaX/xxRfj0ksvjUWLFsWgQYMinU7H4MGDY/DgwVFcXBw9evSIkSNHZrtWAAAAyCsZ9bTfe++90adPn7joootiyZIlMWXKlNhrr71i6623jvnz58d5550XnTp1ynatAAAAkFcy6mn/5JNPYvDgwVFQUBAtWrSIiIjKysqIiOjUqVPsv//+cd9992WvSgAAAMhDGYX2li1bRmHhd53066+/fhQWFkZ5eXn19g022CDmz5+flQIBAAAgX2UU2rt16xaffPJJ9XLPnj3jmWeeiW+//TZWrFgRzz33XHTo0CFrRQIAAEA+yii077TTTjFjxoyoqKiIiIhDDz00Zs2aFccff3yceOKJ8Y9//CMOOeSQbNYJAAAAeSejiegOOuigOOigg6qXd9hhhxgzZky89NJLUVBQEAMGDIitt946a0UCAABAPsr4Oe0/tMUWW8QWW2yRrdMBAABA3stoeDwAJEmbK67IdQkAAA2iXj3tp59+eqRSqbU6cSqViquvvjqjogAAAIB6hvYtt9xyrUM7ADQGvewAQHNW7552AAAAoHG5px0AAAASKqPZ42fPnl2v/bbccstMTg8A9WJoPADQ3GUU2i+44IJ67TdhwoRMTg8AAABEhqF99OjRtdZVVVXF/Pnz44knnoiqqqo45phj1rk4AAAAyGcZhfbVDXsfMmRIjB49OmbNmhVbb711xoUBAABAvsv6RHQFBQUxaNCgePLJJ7N9agCo5n52ACAfNMjs8UuWLImvv/66IU4NAAAAeSOj4fFlZWV1rv/666/j7bffjvvvvz+22GKLdSoMAAAA8l1Gof30009f7fa+ffvGqFGjMioIANbE0HgAIF9kFNpPPfXUWutSqVSsv/760aVLl+jevfs6FwYAAAD5LqPQPmTIkCyXAQAAAPxQg0xEBwAAAKy7jHraIyL+8Y9/xJNPPhnz58+Pr7/+OtLpdI3tqVQqLr/88nUuEAAAAPJVRqF98uTJcdttt0VxcXF069YtSkpKsl0XAAAA5L2MQvv9998f/fr1i9/85jex3nrrZbsmAAAAIDK8p3358uWx6667CuwANDqPewMA8klGoX2rrbaKjz76KNu1AAAAAN+TUWg/4YQTYubMmXH//ffHkiVLsl0TAAAAEBne096hQ4fYZ5994rbbbou//vWvUVxcHAUFtfP/Lbfcss4FAsBKhsYDAPkmo9A+YcKE+Pvf/x7t27ePTTfd1L3tAAAA0AAyCu1TpkyJAQMGxNlnn11nDzsAAACw7jJK3JWVlTFgwACBHYBGY2g8AJCPMkrdAwYMiLfffjvbtQAAAADfk1FoP/zww+PTTz+NG264IebOnRuLFy+OJUuW1PoDAAAAZC6je9rPPPPMiIj48MMPY8qUKavcb8KECRkVBQDfZ2g8AJCvMgrthx12WKRSqWzXAgAAAHxPRqH9iCOOyHYdAAAAwA+Y/h2ARDM0HgDIZxn1tE+cOLFe+40cOTKT0wMAAACRYWi/55576rWf0A4AAACZyyi01zUrfFVVVZSVlcUjjzwSb7/9dpx77rnrXBwAAADks6zd015QUBCdOnWKY489Nrp27Rp/+ctfsnVqAPKU+9kBgHzXIBPRbbHFFvHaa681xKkBAAAgbzRIaH///fc9xx0AAADWUUb3tD/99NN1rv/666/j7bffjunTp8dee+21ToUBAABAvssotF977bWr3NamTZs4+OCDzRwPAAAA6yij0D5+/Pha61KpVKy//vrRunXrdS4KAExCBwCQYWjv2LFjtuuo4ZFHHokHHnggysvLo0ePHnHCCSdEnz591njctGnT4qqrroodd9wxzjnnnAatEQAAABpavSeiW7FiRfz5z3+Ohx9+eLX7PfTQQ3H99ddHZWVlRgU9//zzceutt8bIkSNj3Lhx0aNHjxg7dmwsWrRotcfNnz8/brvttthiiy0yui4AAAAkTb1D++OPPx5PP/10DBgwYLX7DRgwIJ566ql48sknMypo8uTJsffee8eee+4Z3bt3j1GjRkVxcXFMnTp1lcdUVVXF1VdfHUcccUR06tQpo+sCAABA0tR7ePwLL7wQO++8c3Tu3Hm1+3Xp0iV22WWXmDZtWuy3335rVUxlZWXMnTs3DjnkkOp1BQUFsc0228S77767yuMmTpwYpaWlsddee8Xbb7+92mtUVFRERUVF9XIqlaq+Dz/Jj6lbWVuSa6RhaPv8lq/tX/LHP+a6hJz7ftun0+kcV0Nj0/75S9vnL22fPc3t3031Du0fffRR7LbbbvXad/PNN49XXnllrYtZvHhxVFVVRdu2bWusb9u2bXz22Wd1HvOPf/wjnnzyybjsssvqdY1JkybFxIkTq5d79eoV48aNa/D79LOlS5cuuS6BHNH2+S3v2r9Nm1xXkBglJSW5LoEc0v75S9vnL22/7tp07ZrrErKq3qG9srIyCgvrt3thYWGN3uyG8s0338TVV18dJ598cpSWltbrmBEjRsTw4cOrl1f+CrNgwYKM78NvDKlUKrp06RLz5s3zy1ue0fb5LV/bv+Srr3JdQs6lUqkoKSmJJUuW5FXb8x3tn7+0ff7S9tmz5PPPc13CGhUWFta747jeob19+/bx0Ucf1Wvfjz76KNq3b1/fU1crLS2NgoKCKC8vr7G+vLy8Vu97RMQXX3wRCxYsiHHjxlWvW/kB//GPfxxXXnllrd6poqKiKCoqqvP6TeHLkU6nm0SdZJ+2z2/51P4e9fadle2dL+1OTdo/f2n7/KXts6e5vYf1Du3bbLNNPPPMMzFixIjYYIMNVrnfokWL4plnnolddtll7YspLIzevXvHzJkzY+DAgRHx3SRzM2fOjKFDh9bav1u3bvHHH9z3eNddd8WyZcvi+OOPjw4dOqx1DQAAAJAU9Z49/uCDD46Kioq48MILY86cOXXuM2fOnLjwwgujoqIiDjrooIwKGj58eDzxxBPx1FNPxSeffBI33HBDLF++PIYMGRIREePHj4877rgjIiKKi4tjk002qfFn/fXXj1atWsUmm2xS7+H8AAAAkET1TrWdO3eOX/3qV3HVVVfF73//++jcuXNssskm0apVq1i2bFl8/PHHMW/evGjZsmX88pe/zHjSpEGDBsXixYvj7rvvjvLy8ujZs2ece+651cPjy8rKmt1sgAB8x9B4AICaUum1HPA/f/78uO++++LVV1+NhQsXVq9v165dDBgwIA4++OA1PhYuiRYsWNAok+dlKpVKRdeuXePzzz9vdvdosHraPr/lW/sL7TW1adMmvjIpX97S/vlL2+cvbZ8dX/3617kuYY2KioqyPxHdSp06dYpRo0ZFxHezt3/zzTfRunXr6medAwAAANmxTjd9C+sAAADQcOo9ER0ANCRD4wEAahPaAQAAIKGEdgAAAEgooR0AAAASSmgHAACAhBLaAQAAIKGEdgByzszxAAB1E9oBAAAgoYR2AHJKLzsAwKoJ7QAAAJBQQjsAAAAklNAOAAAACSW0A5Az7mcHAFg9oR0AAAASSmgHAACAhBLaAcgJQ+MBANZMaAcAAICEEtoBaHR62QEA6kdoBwAAgIQS2gEAACChhHYAGpWh8QAA9Se0AwAAQEIJ7QAAAJBQQjsAAAAklNAOAAAACSW0AwAAQEIJ7QA0GjPHAwCsHaEdAAAAEkpoB6BR6GUHAFh7QjsAAAAklNAOAAAACSW0A9DgDI0HAMiM0A4AAAAJJbQD0KD0sgMAZE5oBwAAgIQS2gFoMHrZAQDWjdAOAAAACSW0AwAAQEIJ7QAAAJBQQjsAAAAklNAOQIMwCR0AwLoT2gEAACChhHYAsk4vOwBAdgjtAAAAkFBCOwAAACSU0A5AVhkaDwCQPUI7AAAAJJTQDgAAAAkltAMAAEBCCe0AZI372QEAsktoBwAAgIQS2gEAACChhHYAssLQeACA7BPaAQAAIKGEdgDWmV52AICGIbQDAABAQgntAAAAkFBCOwAAACSU0A4AAAAJJbQDAABAQgntAKwTM8cDADQcoR0AAAASSmgHIGN62QEAGpbQDgAAAAkltAOQEb3sAAANT2gHAACAhBLaAVhretkBABqH0A4AAAAJJbQDsFb0sgMANB6hHQAAABJKaAcAAICEEtoBAAAgoYR2AOrN/ewAAI1LaAcAAICEEtoBAAAgoYR2AOrF0HgAgMYntAMAAEBCCe0AAACQUEI7AGtkaDwAQG4I7QAAAJBQQjsAq6WXHQAgd4R2AAAASCihHYBV0ssOAJBbQjsAAAAklNAOAAAACSW0A1AnQ+MBAHJPaAcAAICEEtoBAAAgoYR2AAAASCihHYBa3M8OAJAMQjsAAAAklNAOAAAACSW0A1CDofEAAMkhtAMAAEBCCe0AVNPLDgCQLEI7AAAAJJTQDgAAAAkltAMQEYbGAwAkkdAOAAAACSW0A6CXHQAgoYR2AAAASCihHQAAABJKaAcAAICEEtoB8pz72QEAkktoBwAAgIQS2gEAACChhHaAPGZoPABAsgntAAAAkFBCO0Ce0ssOAJB8QjsAAAAklNAOkIf0sgMANA1COwAAACSU0A6QZ/SyAwA0HUI7AAAAJJTQDpBH9LIDADQtQjsAAAAklNAOAAAACSW0AwAAQEIJ7QAAAJBQQjtAnjAJHQBA0yO0A+QBgR0AoGkS2gEAACChhHaAZk4vOwBA0yW0AwAAQEIJ7QDNmF52AICmTWgHAACAhBLaAZopvewAAE2f0A4AAAAJJbQDAABAQgntAAAAkFBCO0Az5H52AIDmQWgHAACAhBLaAZoZvewAAM2H0A4AAAAJVZjrAuryyCOPxAMPPBDl5eXRo0ePOOGEE6JPnz517vv444/HM888Ex9//HFERPTu3TuOOuqoVe4P0JzpZQcAaF4S19P+/PPPx6233hojR46McePGRY8ePWLs2LGxaNGiOvefPXt2DB48OEaPHh0XX3xxbLjhhnHxxRfHwoULG7lyAAAAyK7EhfbJkyfH3nvvHXvuuWd07949Ro0aFcXFxTF16tQ69//FL34R+++/f/Ts2TM22mijOOWUUyKdTsdbb73VyJUDAABAdiVqeHxlZWXMnTs3DjnkkOp1BQUFsc0228S7775br3MsX748Kisro6SkpM7tFRUVUVFRUb2cSqWidevW1X9PqpW1JblGGoa2z29r0/4lf/xjQ5dDI/p+26fT6RxXQ2PT/vlL2+cvbZ89ze3fzYkK7YsXL46qqqpo27ZtjfVt27aNzz77rF7n+Otf/xrt27ePbbbZps7tkyZNiokTJ1Yv9+rVK8aNGxcdO3bMuO7G1KVLl1yXQI5o+/xWr/Zv06bhC6HRrepHaPKD9s9f2j5/aft116Zr11yXkFWJCu3r6t57741p06bFmDFjori4uM59RowYEcOHD69eXvkrzIIFC6KysrJR6sxEKpWKLl26xLx58/zylme0fX5bm/Yv+eqrRqqKxpBKpaKkpCSWLFniu5+HtH/+0vb5S9tnz5LPP891CWtUWFhY747jRIX20tLSKCgoiPLy8hrry8vLa/W+/9D9998f9957b5x//vnRo0ePVe5XVFQURUVFdW5rCl+OdDrdJOok+7R9fltT+5s1vvlZ2d6+9/lJ++cvbZ+/tH32NLf3MFET0RUWFkbv3r1j5syZ1euqqqpi5syZsdlmm63yuPvuuy/+9re/xbnnnhubbrppY5QKkBgCOwBA85Wo0B4RMXz48HjiiSfiqaeeik8++SRuuOGGWL58eQwZMiQiIsaPHx933HFH9f733ntvTJgwIU499dTo1KlTlJeXR3l5eSxbtixHrwAAAACyI1HD4yMiBg0aFIsXL4677747ysvLo2fPnnHuuedWD48vKyurMRvglClTorKyMv7rv/6rxnlGjhwZRxxxRGOWDgAAAFmVuNAeETF06NAYOnRondvGjBlTY/maa65phIoAksnQeACA5i1xw+MBAACA7wjtAAAAkFBCO0ATZWg8AEDzJ7QDAABAQgntAE2QXnYAgPwgtAM0MQI7AED+ENoBAAAgoYR2gCZELzsAQH4R2gEAACChhHYAAABIKKEdAAAAEkpoB2gi3M8OAJB/hHaAJqDkj3/MdQkAAOSA0A4AAAAJJbQDJN2YMbmuAACAHBHaAQAAIKGEdgAAAEgooR0gwUxABwCQ34R2AAAASCihHSChPJcdAAChHQAAABJKaAdIIL3sAABECO0AAACQWEI7AAAAJJTQDgAAAAkltAMkjPvZAQBYSWgHSBCBHQCA7xPaAQAAIKGEdoCE0MsOAMAPCe0AAACQUEI7QALoZQcAoC5CO0COCewAAKyK0A4AAAAJJbQDAABAQgntAAAAkFBCO0AOuZ8dAIDVEdoBAAAgoYR2gBzRyw4AwJoI7QAAAJBQQjtADuhlBwCgPoR2gEYmsAMAUF9COwAAACSU0A7QiPSyAwCwNoR2AAAASCihHQAAABJKaAdoJIbGAwCwtoR2gEYgsAMAkAmhHQAAABJKaAdoYHrZAQDIlNAO0IAEdgAA1oXQDtBABHYAANaV0A4AAAAJJbQDNAC97AAAZIPQDgAAAAkltAMAAEBCCe0AWWZoPAAA2SK0AwAAQEIJ7QBZpJcdAIBsEtoBskRgBwAg24R2gCwQ2AEAaAhCO8A6EtgBAGgoQjsAAAAklNAOAAAACSW0A6wDQ+MBAGhIQjtAhgR2AAAamtAOAAAACVWY6wIAmho97AAANBY97QBrQWAHAKAxCe0AAACQUEI7QD3pZQcAoLEJ7QAAAJBQQjtAPehlBwAgF4R2gDUQ2AEAyBWhHWA1BHYAAHJJaAdYBYEdAIBcE9oB6iCwAwCQBEI7AAAAJJTQDvADetkBAEgKoR3gewR2AACSRGgH+D8COwAASVOY6wIAck1YBwAgqfS0A3lNYAcAIMmEdgAAAEgooR3IW3rZAQBIOqEdAAAAEkpoB/KSXnYAAJoCoR3IOwI7AABNhdAO5BWBHQCApkRoB/KGwA4AQFMjtAMAAEBCCe1AXtDLDgBAUyS0A82ewA4AQFNVmOsCABqKsA4AQFOnpx0AAAASSk870OzoYQcAoLnQ0w4AAAAJpacdaDb0sAMA0NzoaQeaBYEdAIDmSE870KQJ6wAANGd62gEAACCh9LQDTZIedgAA8oGedqDJEdgBAMgXQjvQpAjsAADkE8PjgSZBWAcAIB/paQcAAICEEtqBxNPLDgBAvhLagUQT2AEAyGfuaQcSSVgHAAA97UACCewAAPAdPe1AYgjrAABQk9AO5JywDgAAdTM8HsgpgR0AAFZNaAdyRmAHAIDVMzweaHTCOgAA1I/QDjQKQR0AANae4fEAAACQUHragQalhx0AADIntAMNQlgHAIB1J7QDWSWsAwBA9gjtwDoT1AEAoGEI7UBGBHUAAGh4Zo8H1prADgAAjUNPO1AvgjoAADQ+Pe3AGgnsAACQG3ragVqEdAAASAahHagmrAMAQLII7ZDnBHUAAEguoR3ykKAOAABNg9AOeUBIBwCApkloh2ZISAcAgOZBaIdmQEgHAIDmSWiHJkQ4BwCA/CK0QwLVCudt2kTJV1/lphgAACBnhHbIMb3nAADAqgjt0IAEcgAAYF0I7ZAlAjoAAJBtiQztjzzySDzwwANRXl4ePXr0iBNOOCH69Omzyv1feOGFmDBhQixYsCC6dOkSxxxzTAwYMKARK6a5E8gBAIBcSFxof/755+PWW2+NUaNGRd++fePBBx+MsWPHxpVXXhkbbLBBrf3feeeduOqqq+Loo4+OAQMGxHPPPReXX355jBs3LjbZZJMcvAKSTgAHAACaisSF9smTJ8fee+8de+65Z0REjBo1Kl599dWYOnVqHHLIIbX2f+ihh2L77bePgw46KCIifvzjH8dbb70VjzzySJx00kmNWTqNROgGAADyRaJCe2VlZcydO7dGOC8oKIhtttkm3n333TqPeffdd2P48OE11m233XYxY8aMOvevqKiIioqK6uVUKhWtW7eOwsJEvRW1pFKpiIgoKiqKdDq9Tuda77bbslFS7my0Ua4raFSpVCpivfWixQYbrHPb0/Ro//yl7fOb9s9f2j5/afvsKSoqynUJa7Q2+TNRSXXx4sVRVVUVbdu2rbG+bdu28dlnn9V5THl5ea1h8xtssEGUl5fXuf+kSZNi4sSJ1cuDBw+OX/7yl9GuXbt1qr2xdOjQYd1P8h//se7noNGtl+sCyCntn7+0fX7T/vlL2+cvbb/u1s91AVlWkOsCGtuIESPi5ptvrv4zatSoGj3vSfXNN9/Eb37zm/jmm29yXQqNTNvnN+2fv7R9ftP++Uvb5y9tz6okqqe9tLQ0CgoKavWSl5eX1+p9X6lt27axaNGiGusWLVq0yv2LioqaxHCJH0qn0/HBBx8YKpOHtH1+0/75S9vnN+2fv7R9/tL2rEqietoLCwujd+/eMXPmzOp1VVVVMXPmzNhss83qPGazzTaLt956q8a6N998M/r27dugtQIAAEBDS1Roj4gYPnx4PPHEE/HUU0/FJ598EjfccEMsX748hgwZEhER48ePjzvuuKN6/wMPPDDeeOONeOCBB+LTTz+Nu+++O95///0YOnRojl4BAAAAZEeihsdHRAwaNCgWL14cd999d5SXl0fPnj3j3HPPrR7uXlZWVj2TekTE5ptvHr/4xS/irrvuijvvvDO6du0aZ599drN7RntRUVGMHDmySQ7tZ91o+/ym/fOXts9v2j9/afv8pe1ZlVTaTRMAAACQSIkbHg8AAAB8R2gHAACAhBLaAQAAIKGEdgAAAEioxM0eT02zZ8+O+++/Pz744IP48ssv46yzzoqBAwfmuiwawaRJk2L69Onx6aefRnFxcWy22Wbxk5/8JLp165br0mhgjz32WDz22GOxYMGCiIjo3r17jBw5Mvr375/jymhs9957b9xxxx1x4IEHxvHHH5/rcmhgd999d0ycOLHGum7dusWVV16Zm4JodAsXLozbb789Xn/99Vi+fHl06dIlTjvttNh0001zXRoN6PTTT6/+b/737bfffnHiiSfmoCKSRmhPuOXLl0fPnj1jr732ij/+8Y+5LodGNHv27Nh///1j0003jW+//TbuvPPOuPjii+O//uu/olWrVrkujwbUvn37OProo6Nr166RTqfj6aefjssuuywuu+yy2HjjjXNdHo3kvffeiylTpkSPHj1yXQqNaOONN47zzz+/ermgwKDIfLFkyZI4//zzY6uttopzzz03SktL4/PPP4/1118/16XRwC655JKoqqqqXv7oo4/i4osvjh/96Ec5rIokEdoTrn///nrX8tR5551XY/n000+PE088MebOnRtbbrlljqqiMey44441lo866qh47LHHYs6cOUJ7nli2bFlcffXVcfLJJ8ff//73XJdDIyooKIi2bdvmugxy4L777osNN9wwTjvttOp1nTp1ymFFNJbS0tIay/fee2907tzZv/eoJrRDE7F06dKIiCgpKclxJTSmqqqqeOGFF2L58uWx2Wab5bocGskNN9wQ/fv3j2233VZozzPz5s2Lk08+OYqKimKzzTaLo48+Ojp06JDrsmgEL7/8cmy33XbxX//1XzF79uxo37597LfffrHPPvvkujQaUWVlZTz77LMxbNiwSKVSuS6HhBDaoQmoqqqKm2++OTbffPPYZJNNcl0OjeCjjz6K8847LyoqKqJVq1Zx1llnRffu3XNdFo1g2rRp8cEHH8Qll1yS61JoZH379o3TTjstunXrFl9++WVMnDgx/vCHP8QVV1wRrVu3znV5NLD58+fHlClTYtiwYTFixIh4//3346abborCwsIYMmRIrsujkUyfPj2+/vprbU4NQjs0ATfeeGN8/PHHceGFF+a6FBpJt27d4vLLL4+lS5fGiy++GNdcc01ccMEFgnszV1ZWFjfffHP8/ve/j+Li4lyXQyP7/u1wPXr0qA7xL7zwQuy11145rIzGUFVVFZtuumkcffTRERHRq1ev+Oijj2LKlCkCXB6ZOnVqbL/99tG+fftcl0KCCO2QcDfeeGO8+uqrccEFF8SGG26Y63JoJIWFhdGlS5eIiOjdu3e8//778dBDD8VJJ52U48poSHPnzo1FixbFb37zm+p1VVVV8fbbb8cjjzwSd9xxh4nJ8sj6668f3bp1i3nz5uW6FBpBu3btav0w271793jppZdyVBGNbcGCBfHmm2/GWWedletSSBihHRIqnU7HX/7yl5g+fXqMGTPGZDR5rqqqKioqKnJdBg1sm222qfWkkOuuuy66desWBx98sMCeZ5YtWxbz5s2L3XbbLdel0Ag233zz+Oyzz2qs++yzz6Jjx445qojGNnXq1Nhggw1iwIABuS6FhBHaE27lf7BXmj9/fnz44YdRUlJiYppm7sYbb4znnnsuzjnnnGjdunWUl5dHRMR6661n2Gwzd8cdd8T2228fHTp0iGXLlsVzzz0Xs2fPrvVEAZqf1q1b15q3omXLltGmTRvzWeSBW2+9NXbcccfo0KFDfPnll3H33XdHQUFB7LrrrrkujUYwbNiwOP/88+Pvf/97DBo0KN5777144oknjLDKE1VVVfHUU0/FHnvsES1atMh1OSSM0J5w77//flxwwQXVy7feemtEROyxxx5x+umn56osGsFjjz0WERFjxoypsf60005zb1szt2jRorjmmmviyy+/jPXWWy969OgR5513Xmy77ba5Lg1oQAsXLoyrrroqvvrqqygtLY1+/frF2LFjaz0OiuapT58+cdZZZ8Udd9wRf/vb36JTp05x3HHHGWmRJ956660oKyuLPffcM9elkECpdDqdznURAAAAQG1ujgMAAICEEtoBAAAgoYR2AAAASCihHQAAABJKaAcAAICEEtoBAAAgoYR2AAAASCihHQAAABJKaAeAZua9996L3//+9/Hv//7vccQRR8SHH37YoNc7/fTT45prrqlenjVrVhxxxBExa9as6nXXXHNNnH766Q1aBwA0R4W5LgAAyJ7Kysr47//+7ygqKorjjjsuiouLo0OHDut83nfeeSfeeOONGDZsWKy//vrrfL7ly5fHfffdF1tttVVstdVW63w+AGiuhHYAaEa++OKLWLBgQZx88smx9957Z+2877zzTkycODGGDBlSK7RfeeWVkUqlVnv8ySefHOl0unp5+fLlMXHixIgIoR0AVkNoB4BmZNGiRRERWekNj4hYtmxZtGrVarX7FBUVrfE8hYX+yQEAmUilv/+zNwDQZF1zzTXx9NNP11i35ZZbxpgxY+LTTz+Nu+66K2bOnBkrVqyIjTfeOEaOHBk77rhj9b5PPfVUXHvttTFmzJh4/vnn48UXX4xvv/02DjjggOpe8e8bP358dOrUKU4//fTYcsstq+9ZnzVrVlxwwQUxevTo6l70a665JmbPnh3XXHNNzJ8/P37+85/XOt/IkSOjY8eOcd1118W4ceOiV69eNbb//e9/jwkTJsR1110X7du3X+f3CwCaAj97A0Azse+++0b79u1j0qRJccABB8Smm24abdu2jY8//jjOP//8aN++fRxyyCHRsmXLeOGFF+Lyyy+PX//61zFw4MAa57nhhhuitLQ0Ro4cGcuWLYv+/fvH559/HtOmTYvjjjsu2rRpExERpaWlGdVZWloaJ554Ytxwww0xcODA6uv36NEjOnXqFDfeeGM8++yztUL7c889F1tttZXADkBeEdoBoJnYbLPNoqKiIiZNmhRbbLFF7LLLLhERcdFFF0WHDh3ikksuqR7Kvv/++8cf/vCH+Otf/1ortJeUlMQf/vCHKCj4/w+Z6dWrV0ybNi122mmn6NSp0zrV2apVq9hll13ihhtuiE022SR23333Gtt32mmnmDZtWvzkJz+pruGDDz6ITz75JA466KB1ujYANDUe+QYAzdiSJUti5syZ8aMf/Si++eabWLx4cSxevDi++uqr2G677eLzzz+PhQsX1jhm7733rhHYG9see+wRX375ZY1Hxj377LNRXFwcO++8c87qAoBc0NMOAM3YvHnzIp1Ox4QJE2LChAl17rNo0aIaQ87XtSd9XW277bbRrl27ePbZZ2ObbbaJqqqqmDZtWuy4447RunXrnNYGAI1NaAeAZqyqqioiIv7t3/4ttttuuzr36dKlS43l4uLiBq9rdQoKCmLw4MHxxBNPxIknnhjvvPNOfPnll7WG0QNAPhDaAaAZ69y5c0REtGjRIrbddtuMz7Om57Bn+3x77LFHTJ48OV555ZV47bXXorS0dJU/OgBAc+aedgBoxjbYYIPYaqut4vHHH48vv/yy1vbFixfX6zwtW7aMiIilS5dmpa41na9Hjx7Ro0ePePLJJ+Oll16KQYMGRYsWLbJybQBoSvS0A0Az97Of/SzOP//8OOuss2LvvfeOTp06xaJFi+Ldd9+NhQsXxuWXX77Gc/Tu3TsiIu68884YPHhwtGjRInbYYYdo1apVRjUVFxdH9+7d4/nnn4+uXbtGSUlJbLzxxrHJJptU77P77rvHbbfdVv13AMhHetoBoJnr3r17XHrppdG/f/946qmn4sYbb4wpU6ZEKpWKww47rF7n6NOnTxx55JHxz3/+M6655pq46qqr6t1LvyqnnHJKtG/fPm655Za46qqr4sUXX6yxfbfddouCgoLo2rVr9OnTZ52uBQBNVSqdTqdzXQQAwA8tXrw4Tj755DjssMNi5MiRuS4HAHJCTzsAkEhPPfVUVFVVGRoPQF5zTzsAkCgzZ86MTz75JCZNmhQ77bRTzp8bDwC5JLQDAIkyceLEeOedd6Jfv35xwgkn5LocAMgp97QDAABAQrmnHQAAABJKaAcAAICEEtoBAAAgoYR2AAAASCihHQAAABJKaAcAAICEEtoBAAAgoYR2AAAASKj/B2yxUukQCxNRAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot different percentiles from 10 to 99\n", + "import matplotlib.pyplot as plt\n", + "\n", + "plt.style.use('ggplot')\n", + "plt.figure(figsize=(12, 10))\n", + "plt.hist(ds['fertility_ratio'], bins=1000, color=\"#FF0000\", alpha=0.5, density=True, cumulative=True)\n", + "#plt.xticks(np.arange(0, 2000, 200))\n", + "#plt.yticks(np.arange(0, 1.1, 0.1))\n", + "plt.xlabel(\"fertility\")\n", + "plt.ylabel(\"Cumulative distribution\")\n", + "plt.title(\"Cumulative distribution of fertility\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's visualize some samples" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "from nose import with_setup\n", + "\n", + "from pygears import Intf, clear\n", + "from pygears.typing import Queue, Uint\n", + "\n", + "from utils import svgen_check\n", + "\n", + "\n", + "@with_setup(clear)\n", + "@svgen_check(['sieve_0v2_7_8v10.sv'])\n", + "def test_uint():\n", + " iout = Intf(Uint[10])[:2, 7, 8:]\n", + " assert iout.dtype == Uint[5]\n", + "\n", + "\n", + "@with_setup(clear)\n", + "@svgen_check(['sieve_0v2_3_5v7.sv'])\n", + "def test_queue():\n", + " iout = Intf(Queue[Uint[2], 6])[:2, 3, 5:]\n", + " assert iout.dtype == Queue[Uint[2], 4]\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[2][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import os\n", + "import re\n", + "import struct\n", + "import glob\n", + "import numpy as np\n", + "import frame_utils\n", + "import skimage\n", + "import skimage.io\n", + "\n", + "import torch\n", + "from torch.utils.data import Dataset\n", + "\n", + "\n", + "class KLens(Dataset):\n", + " #def __init__(self,raft_path=\"/data2/opticalflow/rnd/opticalflow/RAFT/out_klens_raft_chairs\", root_path=\"/data2/opticalflow/KLENS/images/\",root_path2=\"/data2/opticalflow/KLENS/pins/\",filenumberlist=[\"0030\",\"1106\",\"1113\",\"1132\",\"1134\",\"1167\",\"1173\"],split=\"train\",ref=\"\",meas=\"\"):\n", + " def __init__(self,raft_path=\"/data2/opticalflow/algo_comp/flownet2/out/\", root_path=\"/data2/opticalflow/KLENS/images/\",root_path2=\"/data2/opticalflow/KLENS/pins/\",filenumberlist=[\"0030\",\"1106\",\"1113\",\"1132\",\"1134\",\"1167\",\"1173\"],split=\"train\",ref=\"\",meas=\"\"):\n", + " super(KLens, self).__init__()\n", + " self.split = split\n", + " raftflowpaths = glob.glob(os.path.join(raft_path,\"*.flo\"))\n", + " file_list = {}\n", + " file_list['train'] = []\n", + " file_list['valid'] = []\n", + " file_list['test'] = []\n", + " file_list['train+valid'] = []\n", + " \n", + " for filenum in filenumberlist:\n", + " for raftflowpath in raftflowpaths:\n", + " #print(raftflowpath)\n", + " if \"KLE_\"+filenum in raftflowpath:\n", + " file_list['train'].append([os.path.join(root_path,\"KLE_\"+filenum+\".jpg3.png\"),os.path.join(root_path,\"KLE_\"+filenum+\".jpg5.png\"),raftflowpath])\n", + " file_list[\"train\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " file_list[\"valid\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " file_list[\"test\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " file_list[\"train+valid\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_3.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_3.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_3.jpg\")],])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_0.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_0.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_0.jpg\")],])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_1.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_1.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_1.jpg\")],])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_4.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_4.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_4.jpg\")],])\n", + " self.dataset = file_list\n", + "\n", + " def __len__(self):\n", + " return len(self.dataset[self.split])\n", + "\n", + " def __getitem__(self, idx):\n", + " try:\n", + " im0_path, im1_path, raftflow_path = self.dataset[self.split][idx]\n", + " raftflow = frame_utils.readFlow(raftflow_path)\n", + " except:\n", + " im0_path, im1_path = self.dataset[self.split][idx]\n", + " raftflow = np.array([])\n", + " img0 = skimage.io.imread(im0_path)\n", + " img1 = skimage.io.imread(im1_path)\n", + " img0 = torch.tensor(img0/255.).float()\n", + " img1 = torch.tensor(img1/255.).float()\n", + "\n", + " return img0, img1,np.array([]),np.array([]), [im0_path , im1_path],raftflow\n", + "\n", + "\n", + "class Flo:\n", + " def __init__(self, w, h):\n", + " self.__floec1__ = float(202021.25)\n", + " self.__floec2__ = int(w)\n", + " self.__floec3__ = int(h)\n", + " self.__floheader__ = struct.pack('fii', self.__floec1__, self.__floec2__, self.__floec3__)\n", + " self.__floheaderlen__ = len(self.__floheader__)\n", + " self.__flow__ = w\n", + " self.__floh__ = h\n", + " self.__floshape__ = [self.__floh__, self.__flow__, 2]\n", + "\n", + " if self.__floheader__[:4] != b'PIEH':\n", + " raise Exception('Expect machine to be LE.')\n", + "\n", + " def load(self, file):\n", + " with open(file, 'rb') as fp:\n", + " if fp.read(self.__floheaderlen__) != self.__floheader__:\n", + " raise Exception('Bad flow header: ' + file)\n", + " result = np.ndarray(shape=self.__floshape__,\n", + " dtype=np.float32,\n", + " buffer=fp.read(),\n", + " order='C')\n", + " return result\n", + "\n", + " def save(self, arr, fname):\n", + " with open(fname, 'wb') as fp:\n", + " fp.write(self.__floheader__)\n", + " fp.write(arr.astype(np.float32).tobytes())\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[3][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other\n", + "# Spack Project Developers. See the top-level COPYRIGHT file for details.\n", + "#\n", + "# SPDX-License-Identifier: (Apache-2.0 OR MIT)\n", + "\n", + "from spack import *\n", + "\n", + "\n", + "class PyDecorator(PythonPackage):\n", + " \"\"\"The aim of the decorator module it to simplify the usage of decorators\n", + " for the average programmer, and to popularize decorators by showing\n", + " various non-trivial examples.\"\"\"\n", + "\n", + " homepage = \"https://github.com/micheles/decorator\"\n", + " url = \"https://pypi.io/packages/source/d/decorator/decorator-4.4.0.tar.gz\"\n", + "\n", + " version('4.4.0', sha256='86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de')\n", + " version('4.3.0', sha256='c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c')\n", + " version('4.0.9', sha256='90022e83316363788a55352fe39cfbed357aa3a71d90e5f2803a35471de4bba8')\n", + "\n", + " depends_on('python@2.6:2.8,3.2:', type=('build', 'run'))\n", + " depends_on('py-setuptools', type='build')\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[4][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import pyasdf \n", + "import numpy as np \n", + "import scipy.fftpack\n", + "import matplotlib.pyplot as plt \n", + "\n", + "'''\n", + "this script takes a chunk of noise spectrum for a station pair and \n", + "compare their cross-correlation functions computed using two schemes:\n", + "one is averaging the frequency domain and the other is in the time\n", + "domain\n", + "'''\n", + "\n", + "def cross_correlation1(fft1,fft2,maxlag,dt,Nfft):\n", + " #------convert all 2D arrays into 1D to speed up--------\n", + " corr = np.zeros(fft1.shape,dtype=np.complex64)\n", + " corr = np.conj(fft1) * fft2\n", + "\n", + " ncorr = np.zeros((fft1.shape[0],Nfft),dtype=np.complex64)\n", + " ncorr[:,:Nfft//2] = corr[:,:]\n", + " ncorr[:,-(Nfft//2)+1:]=np.flip(np.conj(ncorr[:,1:(Nfft//2)]),axis=1)\n", + " ncorr[:,0]=complex(0,0)\n", + " ncorr = np.real(np.fft.ifftshift(scipy.fftpack.ifft(ncorr, Nfft, axis=1)))\n", + "\n", + " tcorr = np.arange(-Nfft//2 + 1, Nfft//2)*dt\n", + " ind = np.where(np.abs(tcorr) <= maxlag)[0]\n", + " ncorr = ncorr[:,ind]\n", + " ncorr = np.mean(ncorr,axis=0)\n", + " return ncorr\n", + "\n", + "def cross_correlation2(fft1,fft2,maxlag,dt,Nfft):\n", + " #------convert all 2D arrays into 1D to speed up--------\n", + " corr = np.zeros(fft1.shape,dtype=np.complex64)\n", + " corr = np.conj(fft1) * fft2\n", + "\n", + " ncorr = np.zeros(shape=Nfft,dtype=np.complex64)\n", + " ncorr[:Nfft//2] = np.mean(corr,axis=0)\n", + " ncorr[-(Nfft//2)+1:]=np.flip(np.conj(ncorr[1:(Nfft//2)]),axis=0)\n", + " ncorr[0]=complex(0,0)\n", + " ncorr = np.fft.ifftshift(scipy.fftpack.ifft(ncorr, Nfft, axis=0))\n", + " print(ncorr.real,ncorr.imag)\n", + "\n", + " tcorr = np.arange(-Nfft//2 + 1, Nfft//2)*dt\n", + " ind = np.where(np.abs(tcorr) <= maxlag)[0]\n", + " ncorr = ncorr[ind]\n", + " return ncorr\n", + "\n", + "\n", + "#-----common parameters------\n", + "iday = '2010_01_10'\n", + "icomp = 'EHZ'\n", + "dt = 0.05\n", + "maxlag = 800\n", + "\n", + "sfile1 = '/Users/chengxin/Documents/Harvard/Kanto_basin/code/KANTO/FFT/N.AC2H.h5'\n", + "sfile2 = '/Users/chengxin/Documents/Harvard/Kanto_basin/code/KANTO/FFT/N.CHHH.h5'\n", + "\n", + "#-----------reading the data------------\n", + "ds1 = pyasdf.ASDFDataSet(sfile1,mode='r')\n", + "ds2 = pyasdf.ASDFDataSet(sfile2,mode='r')\n", + "\n", + "spect1 = ds1.auxiliary_data[icomp][iday].data[:]\n", + "spect2 = ds2.auxiliary_data[icomp][iday].data[:]\n", + "std1 = ds1.auxiliary_data[icomp][iday].parameters['std']\n", + "std2 = ds2.auxiliary_data[icomp][iday].parameters['std']\n", + "nwin = spect1.shape[0]\n", + "nfft = spect1.shape[1]*2\n", + "\n", + "print('data dimension for spect1 and spect2 are %d and %d' % (spect1.ndim,spect2.ndim))\n", + "\n", + "#------select the sections-------\n", + "indx1 = np.where(std1<10)[0]\n", + "indx2 = np.where(std2<10)[0]\n", + "bb=np.intersect1d(indx1,indx2)\n", + "print(spect1[bb,:],spect2[bb,:])\n", + "\n", + "corr1=cross_correlation1(spect1[bb,:],spect2[bb,:],np.round(maxlag),dt,nfft)\n", + "corr2=cross_correlation2(spect1[bb,:],spect2[bb,:],np.round(maxlag),dt,nfft)\n", + "\n", + "#---plotting----\n", + "plt.subplot(311)\n", + "plt.plot(corr1)\n", + "plt.subplot(312)\n", + "plt.plot(corr2)\n", + "plt.subplot(313)\n", + "plt.plot(corr2)\n", + "plt.plot(corr1)\n", + "plt.show()\n" + ] + } + ], + "source": [ + "print(filtered[5][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import os\n", + "\n", + "LUCKY_SEED = 42\n", + "TRAIN_FILE_COUNT = 43\n", + "VAL_FILE_COUNT = 12\n", + "\n", + "ROOT_DIR = os.path.abspath(os.path.dirname(__file__))\n", + "\n", + "OBJECTS_DIR = os.path.join(ROOT_DIR, \"objects\")\n", + "OUTPUTS_DIR = os.path.join(ROOT_DIR, \"outputs\")\n", + "LOGS_DIR = os.path.join(ROOT_DIR, \"logs\")\n", + "DATA_DIR = os.path.join(ROOT_DIR, \"data\")\n", + "\n", + "RAW_DATA_DIR = os.path.join(DATA_DIR, \"raw_data\")\n", + "ORIG_DATA_DIR = os.path.join(RAW_DATA_DIR, \"sa-emotions\")\n", + "OTHERS_RAW_DATA = os.path.join(RAW_DATA_DIR, \"others\")\n", + "\n", + "PROCESSED_DATA_DIR = os.path.join(DATA_DIR, \"processed_data\")\n", + "COMPLEX_PROCESSED_DATA_DIR = os.path.join(PROCESSED_DATA_DIR, \"complex\")\n", + "SIMPLE_PROCESSED_DATA_DIR = os.path.join(PROCESSED_DATA_DIR, \"simple\")\n", + "\n", + "TEST_DATA_DIR = os.path.join(DATA_DIR, \"testing_data\")\n", + "\n", + "TRAIN_DATA_DIR = os.path.join(DATA_DIR, \"training_data\")\n", + "TRAIN_DATA_DIR_WI = os.path.join(TRAIN_DATA_DIR, \"word_2_index\")\n", + "TRAIN_DATA_DIR_TF_IDF = os.path.join(TRAIN_DATA_DIR, \"tf_idf\")\n", + "\n", + "VAL_DATA_DIR = os.path.join(DATA_DIR, \"validation_data\")\n", + "VAL_DATA_DIR_WI = os.path.join(VAL_DATA_DIR, \"word_2_index\")\n", + "VAL_DATA_DIR_TF_IDF = os.path.join(VAL_DATA_DIR, \"tf_idf\")\n", + "\n", + "SPACY_MEDIUM_MODEL = \"en_core_web_md\"\n", + "SPACY_LARGE_MODEL = \"en_core_web_lg\"\n", + "TF_HUB_EMBEDDING_MODELS = [\n", + " \"https://tfhub.dev/google/nnlm-en-dim128/2\",\n", + " \"https://tfhub.dev/google/universal-sentence-encoder/4\",\n", + " \"https://tfhub.dev/google/tf2-preview/nnlm-en-dim50/1\",\n", + "]\n", + "\n", + "LOG_FORMAT = (\n", + " \"%(asctime)s | %(levelname)s | %(name)s | %(filename)s | %(lineno)d | %(message)s\"\n", + ")\n", + "LOG_LEVEL = \"DEBUG\"\n", + "LOG_FILE = os.path.join(LOGS_DIR, \"sentiment_analysis.log\")\n", + "LOG_FILE_MAX_BYTES = 1048576\n", + "LOG_FILE_BACKUP_COUNT = 2\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[6][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Loading cached processed dataset at /Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--the-stack-smol-7b51f8bde3058781/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab/cache-d41ea51ac33e548d.arrow\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "percentage samples with fertility_ratio < 2.5: 4.6\n" + ] + } + ], + "source": [ + "filtered = ds.filter(lambda x: x['fertility_ratio'] < 2.5)\n", + "print(f\"percentage samples with fertility_ratio < 2.5: {len(filtered)*100/len(ds)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "35f1473c066d4ae9bf740c5f6a73a8ef", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10 [00:00 2.4\n", + "ds2 = ds.filter(lambda x: x['fertility_ratio'] < 2.5 and x['fertility_ratio'] > 2.4)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Dataset({\n", + " features: ['content', 'avg_line_length', 'max_line_length', 'alphanum_fraction', 'licenses', 'repository_name', 'path', 'size', 'lang', 'fertility_ratio'],\n", + " num_rows: 107\n", + "})" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds2" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import os\n", + "import re\n", + "import struct\n", + "import glob\n", + "import numpy as np\n", + "import frame_utils\n", + "import skimage\n", + "import skimage.io\n", + "\n", + "import torch\n", + "from torch.utils.data import Dataset\n", + "\n", + "\n", + "class KLens(Dataset):\n", + " #def __init__(self,raft_path=\"/data2/opticalflow/rnd/opticalflow/RAFT/out_klens_raft_chairs\", root_path=\"/data2/opticalflow/KLENS/images/\",root_path2=\"/data2/opticalflow/KLENS/pins/\",filenumberlist=[\"0030\",\"1106\",\"1113\",\"1132\",\"1134\",\"1167\",\"1173\"],split=\"train\",ref=\"\",meas=\"\"):\n", + " def __init__(self,raft_path=\"/data2/opticalflow/algo_comp/flownet2/out/\", root_path=\"/data2/opticalflow/KLENS/images/\",root_path2=\"/data2/opticalflow/KLENS/pins/\",filenumberlist=[\"0030\",\"1106\",\"1113\",\"1132\",\"1134\",\"1167\",\"1173\"],split=\"train\",ref=\"\",meas=\"\"):\n", + " super(KLens, self).__init__()\n", + " self.split = split\n", + " raftflowpaths = glob.glob(os.path.join(raft_path,\"*.flo\"))\n", + " file_list = {}\n", + " file_list['train'] = []\n", + " file_list['valid'] = []\n", + " file_list['test'] = []\n", + " file_list['train+valid'] = []\n", + " \n", + " for filenum in filenumberlist:\n", + " for raftflowpath in raftflowpaths:\n", + " #print(raftflowpath)\n", + " if \"KLE_\"+filenum in raftflowpath:\n", + " file_list['train'].append([os.path.join(root_path,\"KLE_\"+filenum+\".jpg3.png\"),os.path.join(root_path,\"KLE_\"+filenum+\".jpg5.png\"),raftflowpath])\n", + " file_list[\"train\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " file_list[\"valid\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " file_list[\"test\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " file_list[\"train+valid\"].extend([[os.path.join(root_path,\"KLE_0309_exp_sub5.jpg\"),os.path.join(root_path,\"KLE_0309_exp_sub6.jpg\")],[os.path.join(root_path,\"KLE_0730_sub5.jpg\"),os.path.join(root_path,\"KLE_0730_sub6.jpg\")],[os.path.join(root_path,\"KLE_0747_sub5.jpg\"),os.path.join(root_path,\"KLE_0747_sub6.jpg\")],[os.path.join(root_path,\"KLE_9797clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9797clean_sub6.jpg\")],[os.path.join(root_path,\"KLE_9803clean_sub5.jpg\"),os.path.join(root_path,\"KLE_9803clean_sub6.jpg\")],[os.path.join(root_path,\"NKM_0063_sub5.jpg\"),os.path.join(root_path,\"NKM_0063_sub6.jpg\")],[os.path.join(root_path,\"NKM_0109_sub5.jpg\"),os.path.join(root_path,\"NKM_0109_sub6.jpg\")],[os.path.join(root_path,\"scene_1_sub5.jpg\"),os.path.join(root_path,\"scene_1_sub6.jpg\")]])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_3.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_3.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_3.jpg\")],])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_0.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_0.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_0.jpg\")],])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_1.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_1.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_1.jpg\")],])\n", + " #file_list[\"train\"].extend([[os.path.join(root_path2,\"9-AIT_pins_2.jpg\"),os.path.join(root_path2,\"9-AIT_pins_4.jpg\")],[os.path.join(root_path2,\"10-Hela_2.jpg\"),os.path.join(root_path2,\"10-Hela_4.jpg\")],[os.path.join(root_path2,\"11-Hela_1_2.jpg\"),os.path.join(root_path2,\"11-Hela_1_4.jpg\")],])\n", + " self.dataset = file_list\n", + "\n", + " def __len__(self):\n", + " return len(self.dataset[self.split])\n", + "\n", + " def __getitem__(self, idx):\n", + " try:\n", + " im0_path, im1_path, raftflow_path = self.dataset[self.split][idx]\n", + " raftflow = frame_utils.readFlow(raftflow_path)\n", + " except:\n", + " im0_path, im1_path = self.dataset[self.split][idx]\n", + " raftflow = np.array([])\n", + " img0 = skimage.io.imread(im0_path)\n", + " img1 = skimage.io.imread(im1_path)\n", + " img0 = torch.tensor(img0/255.).float()\n", + " img1 = torch.tensor(img1/255.).float()\n", + "\n", + " return img0, img1,np.array([]),np.array([]), [im0_path , im1_path],raftflow\n", + "\n", + "\n", + "class Flo:\n", + " def __init__(self, w, h):\n", + " self.__floec1__ = float(202021.25)\n", + " self.__floec2__ = int(w)\n", + " self.__floec3__ = int(h)\n", + " self.__floheader__ = struct.pack('fii', self.__floec1__, self.__floec2__, self.__floec3__)\n", + " self.__floheaderlen__ = len(self.__floheader__)\n", + " self.__flow__ = w\n", + " self.__floh__ = h\n", + " self.__floshape__ = [self.__floh__, self.__flow__, 2]\n", + "\n", + " if self.__floheader__[:4] != b'PIEH':\n", + " raise Exception('Expect machine to be LE.')\n", + "\n", + " def load(self, file):\n", + " with open(file, 'rb') as fp:\n", + " if fp.read(self.__floheaderlen__) != self.__floheader__:\n", + " raise Exception('Bad flow header: ' + file)\n", + " result = np.ndarray(shape=self.__floshape__,\n", + " dtype=np.float32,\n", + " buffer=fp.read(),\n", + " order='C')\n", + " return result\n", + "\n", + " def save(self, arr, fname):\n", + " with open(fname, 'wb') as fp:\n", + " fp.write(self.__floheader__)\n", + " fp.write(arr.astype(np.float32).tobytes())\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(ds2[0][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import pyasdf \n", + "import numpy as np \n", + "import scipy.fftpack\n", + "import matplotlib.pyplot as plt \n", + "\n", + "'''\n", + "this script takes a chunk of noise spectrum for a station pair and \n", + "compare their cross-correlation functions computed using two schemes:\n", + "one is averaging the frequency domain and the other is in the time\n", + "domain\n", + "'''\n", + "\n", + "def cross_correlation1(fft1,fft2,maxlag,dt,Nfft):\n", + " #------convert all 2D arrays into 1D to speed up--------\n", + " corr = np.zeros(fft1.shape,dtype=np.complex64)\n", + " corr = np.conj(fft1) * fft2\n", + "\n", + " ncorr = np.zeros((fft1.shape[0],Nfft),dtype=np.complex64)\n", + " ncorr[:,:Nfft//2] = corr[:,:]\n", + " ncorr[:,-(Nfft//2)+1:]=np.flip(np.conj(ncorr[:,1:(Nfft//2)]),axis=1)\n", + " ncorr[:,0]=complex(0,0)\n", + " ncorr = np.real(np.fft.ifftshift(scipy.fftpack.ifft(ncorr, Nfft, axis=1)))\n", + "\n", + " tcorr = np.arange(-Nfft//2 + 1, Nfft//2)*dt\n", + " ind = np.where(np.abs(tcorr) <= maxlag)[0]\n", + " ncorr = ncorr[:,ind]\n", + " ncorr = np.mean(ncorr,axis=0)\n", + " return ncorr\n", + "\n", + "def cross_correlation2(fft1,fft2,maxlag,dt,Nfft):\n", + " #------convert all 2D arrays into 1D to speed up--------\n", + " corr = np.zeros(fft1.shape,dtype=np.complex64)\n", + " corr = np.conj(fft1) * fft2\n", + "\n", + " ncorr = np.zeros(shape=Nfft,dtype=np.complex64)\n", + " ncorr[:Nfft//2] = np.mean(corr,axis=0)\n", + " ncorr[-(Nfft//2)+1:]=np.flip(np.conj(ncorr[1:(Nfft//2)]),axis=0)\n", + " ncorr[0]=complex(0,0)\n", + " ncorr = np.fft.ifftshift(scipy.fftpack.ifft(ncorr, Nfft, axis=0))\n", + " print(ncorr.real,ncorr.imag)\n", + "\n", + " tcorr = np.arange(-Nfft//2 + 1, Nfft//2)*dt\n", + " ind = np.where(np.abs(tcorr) <= maxlag)[0]\n", + " ncorr = ncorr[ind]\n", + " return ncorr\n", + "\n", + "\n", + "#-----common parameters------\n", + "iday = '2010_01_10'\n", + "icomp = 'EHZ'\n", + "dt = 0.05\n", + "maxlag = 800\n", + "\n", + "sfile1 = '/Users/chengxin/Documents/Harvard/Kanto_basin/code/KANTO/FFT/N.AC2H.h5'\n", + "sfile2 = '/Users/chengxin/Documents/Harvard/Kanto_basin/code/KANTO/FFT/N.CHHH.h5'\n", + "\n", + "#-----------reading the data------------\n", + "ds1 = pyasdf.ASDFDataSet(sfile1,mode='r')\n", + "ds2 = pyasdf.ASDFDataSet(sfile2,mode='r')\n", + "\n", + "spect1 = ds1.auxiliary_data[icomp][iday].data[:]\n", + "spect2 = ds2.auxiliary_data[icomp][iday].data[:]\n", + "std1 = ds1.auxiliary_data[icomp][iday].parameters['std']\n", + "std2 = ds2.auxiliary_data[icomp][iday].parameters['std']\n", + "nwin = spect1.shape[0]\n", + "nfft = spect1.shape[1]*2\n", + "\n", + "print('data dimension for spect1 and spect2 are %d and %d' % (spect1.ndim,spect2.ndim))\n", + "\n", + "#------select the sections-------\n", + "indx1 = np.where(std1<10)[0]\n", + "indx2 = np.where(std2<10)[0]\n", + "bb=np.intersect1d(indx1,indx2)\n", + "print(spect1[bb,:],spect2[bb,:])\n", + "\n", + "corr1=cross_correlation1(spect1[bb,:],spect2[bb,:],np.round(maxlag),dt,nfft)\n", + "corr2=cross_correlation2(spect1[bb,:],spect2[bb,:],np.round(maxlag),dt,nfft)\n", + "\n", + "#---plotting----\n", + "plt.subplot(311)\n", + "plt.plot(corr1)\n", + "plt.subplot(312)\n", + "plt.plot(corr2)\n", + "plt.subplot(313)\n", + "plt.plot(corr2)\n", + "plt.plot(corr1)\n", + "plt.show()\n" + ] + } + ], + "source": [ + "print(ds2[1][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\"\"\"\n", + "Listas\n", + "\n", + "Listas em Python funcionam como vetores/matrizes (arrays) em outras linguagens, com a diferença\n", + "de serem DINÂMICO e também de podermos colocar QUALQUER tipo de dado.\n", + "\n", + "Linguagens C/Java: Arrays\n", + "\t- Possuem tamanho e tipo de dado fixo;\n", + "\tOu seja, nestas linguagens se você criar um array do tipo int e com tamanho 5, este array\n", + "\tsera SEMPRE do tipo inteiro e poderá ter SEMPRE no máximo 5 valores.\n", + "\n", + "Já em Python:\n", + "\t- Dinâmico: Não possui tamanho fixo; Ou seja, podemos criar a lista e simplesmente ir adicionando elementos;\n", + "\t- Qualquer tipo de dado; Não possuem tipo de dado fixo; Ou seja, podemos colocar qualquer tipo de dado;\n", + "\n", + "As listas são mutáveis!\n", + "\n", + "\tAs listas em Python são representadas por colchetes: []\n", + "\n", + "type([])\n", + "\n", + "lista1 = [1, 99, 4, 27, 15, 22, 3, 1, 44, 42, 27]\n", + "\n", + "lista2 = ['G', 'e', 'e', 'k', ' ', 'U', 'n', 'i', 'v', 'e', 'r', 's', 'i', 't', 'y']\n", + "\n", + "lista3 = []\n", + "\n", + "lista4 = list(range(11))\n", + "\n", + "lista5 = list('Geek University')\t\n", + "\n", + "\t# Podemos facilmente checar se determinado valor está contido na lista\n", + "num = 18\n", + "if num in lista4:\n", + "\tprint(f'Encontrei o número {num}')\n", + "else:\n", + "\tprint(f'Não encontrei o número {num}')\n", + "\n", + "# Podemos facilmente ordenar uma lista\n", + "print(lista1)\n", + "lista1.sort()\n", + "print(lista1)\n", + "\n", + "# Podemos facilmente contar o número de ocorrências de um valor em uma lista\n", + "print(lista1)\n", + "print(lista1.count(1))\n", + "\n", + "print(lista5)\n", + "print(lista5.count('e'))\n", + "\n", + "# Adicionar elementos em listas\n", + "# Para adicionar elementos em listas, utilizamos a função append\n", + "print(lista1)\n", + "lista1.append(42)\n", + "print(lista1)\n", + "\n", + "# OBS: Com append, nós só conseguimos adicionar um (1) elementos por vez\n", + "# lista1.append(12, 14, 56) # Erro\n", + "\n", + "lista1.append([8, 3, 1]) # Coloca a lista como elemento único (sublista)\n", + "print(lista1)\n", + "\n", + "\n", + "if [8, 3, 1] in lista1:\n", + "\tprint('Encontrei a lista')\n", + "else:\n", + "\tprint('Nao encontrei a lista')\n", + "\n", + "lista1.extend([123, 44, 67]) # Coloca cada elemento da lista como valor adicional á lista\n", + "print(lista1)\n", + "\n", + "# Podemos inserir um novo elemento na lista informando a posição do índice\n", + "# Isso nao substitui o valor inicial. O mesmo será deslocado para a direita da lista.\n", + "lista1.insert(2, 'Novo Valor')\n", + "print(lista1) \n", + "\n", + "# Podemos facilmente juntar duas listas\n", + "lista1 = lista1 + lista2\n", + "# lista1.extend(lista2)\n", + "print(lista1)\n", + "\n", + "# Podemos facilmente inverter uma lista\n", + "# Forma 1\n", + "lista1.reverse()\n", + "lista2.reverse()\n", + "print(lista1)\n", + "print(lista2)\n", + "# Forma 2\n", + "print(lista1[::-1])\n", + "print(lista2[::-1])\n", + "\n", + "# Copiar uma lista\n", + "lista6 = lista2.copy()\n", + "print(lista6)\n", + "\n", + "# Podemos contar quantos elementos existem dentro da lista\n", + "print(len(lista1))\n", + "\n", + "# Podemos remover facilmente o último elemento de uma lista\n", + "# O pop não somente remove o último elemento, mas também o retorna\n", + "print(lista5)\n", + "lista5.pop()\n", + "print(lista5)\n", + "\n", + "# Podemos remover um elemento pelo índice\n", + "# OBS: Os elementos á direita deste índice serão deslocados para a esquerda.\n", + "# OBS: Se não houver elemento no índice informado, teremos o erro IndexError\n", + "lista5.pop(2)\n", + "print(lista5)\n", + "\n", + "# Podemos remover todos os elementos (Zerar a lista)\n", + "print(lista5)\n", + "lista5.clear()\n", + "print(lista5)\n", + "\n", + "# Podemos facilmente repetir elementos em uma lista\n", + "nova = [1, 2, 3]\n", + "print(nova)\n", + "nova = nova * 3\n", + "print(nova)\n", + "\n", + "# Podemos facilmente converter uma string para uma lista\n", + "# Exemplo 1\n", + "curso = 'Programação em Python Essencial'\n", + "print(curso)\n", + "curso = curso.split()\n", + "print(curso)\n", + "\n", + "# OBS: Por padrão, o split separa os elementos da lista pelo espaço entre elas.\n", + "# Exemplo 2\n", + "curso = 'Programação,em,Python, Essencial'\n", + "print(curso)\n", + "curso = curso.split(',')\n", + "print(curso)\n", + "\n", + "# Convertendo uma lista em uma string\n", + "lista6 = ['Programação', 'em', 'Python', 'Essencial']\n", + "print(lista6)\n", + "\n", + "# Abaixo estamos falando: Pega a lista6, coloca o cifrão entre cada elemento e transforma em uma string\n", + "curso = ' '.join(lista6)\n", + "print(curso)\n", + "\n", + "curso = '$'.join(lista6)\n", + "print(curso)\n", + "\n", + "# Podemos realmente colocar qualquer tipo de dado em uma lista, inclusive misturando esses dados\n", + "lista6 = [1, 2.34, True, 'Geek', 'd', [1, 2, 3], 45345345345]\n", + "print(lista6)\n", + "print(type(lista6))\n", + "\n", + "# Iterando sobre listas\n", + "# Exemplo 1 - Utilizando for\n", + "soma = 0\n", + "for elemento in lista1:\n", + "\tprint(elemento)\n", + "\tsoma = soma + elemento\n", + "print(soma)\n", + "# Exemplo 2 - Utlizando while\n", + "carrinho = []\n", + "produto = ''\n", + "\n", + "while produto != 'sair':\n", + "\tprint(\"Adicione um produto na lista ou digite 'sair' para sair: \")\n", + "\tproduto = input()\n", + "\tif produto != 'sair':\n", + "\t\tcarrinho.append(produto)\n", + "\n", + "\tfor produto in carrinho:\n", + "\t\tprint(produto)\n", + "\n", + "# Utilizando variáveis em listas\n", + "numeros = [1, 2, 3, 4, 5]\n", + "print(numeros)\n", + "\n", + "num1 = 1\n", + "num2 = 2\n", + "num3 = 3\n", + "num4 = 4\n", + "num5 = 5\n", + "numeros = [num1, num2, num3, num4, num5]\n", + "print(numeros)\n", + "\n", + "# Fazemos acessos aos elementos de forma indexada\n", + "cores = ['verde', 'amarelo', 'azul', 'branco']\n", + "print(cores[0]) # verde\n", + "print(cores[1]) # amarelo\n", + "print(cores[2]) # azul\n", + "print(cores[3]) # branco\n", + "\n", + "# Fazer acesso aos elementos de forma indexada inversa\n", + "# Para entender melhor o índice negativo, pense na lista como um círculo, onde \n", + "# o final de um elemento está ligado ao início da lista\n", + "print(cores[-1]) # branco\n", + "print(cores[-2]) # azul\n", + "print(cores[-3]) # amarelo\n", + "print(cores[-4]) # verde\n", + "\n", + "for cor in cores:\n", + "\tprint(cor)\n", + "\n", + "indice = 0\n", + "while indice < len(cores):\n", + "\tprint(cores[indice])\n", + "\tindice = indice + 1\n", + "\n", + "cores = ['verde', 'amarelo', 'azul', 'branco']\n", + "\n", + "# Gerar índice em um for\n", + "for indice, cor in enumerate(cores):\n", + "\tprint(indice, cor)\n", + "\n", + "# Listas aceitam valores repetidos\n", + "lista = []\n", + "lista.append(42)\n", + "lista.append(42)\n", + "lista.append(33)\n", + "lista.append(33)\n", + "lista.append(42)\n", + "\n", + "# Outros métodos não tão importantes mas também úteis\n", + "# Encontrar o índice de um elemento na lista\n", + "numeros = [5, 6, 7, 5, 8, 9, 10]\n", + "# Em qual índice da lista está o valor 6?\n", + "print(numeros.index(6))\n", + "# Em qual índice da lista está o valor 9??\n", + "print(numeros.index(9))\n", + "# print(numeros.index(19)) # Gera ValueError\n", + "# OBS: Caso não tenha este elemento na lista, será apresentado erro ValueError\n", + "\n", + "# OBS: Retorna o índice do primeiro elemento encontrado \n", + "print(numeros.index(5))\n", + "\n", + "# Podemos fazer busca dentro de um range, ou seja, qual índice começar a buscar\n", + "print(numeros.index(5, 1)) # Buscando a partir do índice 1\n", + "print(numeros.index(5, 2)) # Buscando a partir do índice 2\n", + "print(numeros.index(5, 3)) # Buscando a partir do índice 3\n", + "# print(numeros.index(5, 4)) # Buscando a partir do índice 4\n", + "# OBS: Caso não tenha este elemento na lista, será apresentado erro ValueError\n", + "\n", + "# Podemos fazer busca dentro de um range, início/fim\n", + "print(numeros.index(8, 3, 6)) # Buscar o índice do valor 8, entre os índices 3 a 6\n", + "\n", + "# Revisão do slicing\n", + "\n", + "# lista[inicio:fim:passo]\n", + "# range(inicio:fim:passo)\n", + "\n", + "# Trabalhando com slice de listas com o parâmetro 'início'\n", + "lista = [1, 2, 3, 4]\n", + "print(lista[1:]) # Iniciando no índice 1 e pegando todos os elementos restantes\n", + "\n", + "# Trabalhando com slice de listas com o parâmetro 'fim'\n", + "print(lista[:2]) # Começa em 0, pega até o índice 2 - 1\n", + "\n", + "print(lista[:4]) # Começa em 0, pega até o índice 4 - 1\n", + "\n", + "print(lista[1:3]) # Começa em 1, pega até o índice 3 - 1\n", + "\n", + "# Trabalhando com slice de listas com o parâmetro 'passo'\n", + "print(lista[1::2]) # Começa em 1, vai até o final, de 2 em 2\n", + "\n", + "print(lista[::2]) # Começa em 0, vai até o final, de 2 em 2\n", + "\n", + "# Invertendo valores em uma lista\n", + "\n", + "nomes = ['Geek', 'University']\n", + "nomes[0], nomes[1] = nomes[1], nomes[0]\n", + "print(nomes)\n", + "\n", + "nomes = ['Geek', 'University']\n", + "nomes.reverse()\n", + "print(nomes)\n", + "\n", + "# Soma*, Valor Máximo*, Valor Mínimo*, Tamanho\n", + "# * Se os valores forem todos inteiros ou reais\n", + "\n", + "lista = [1, 2, 3, 4, 5, 6]\n", + "\n", + "print(sum(lista)) # Soma\n", + "print(max(lista)) # Máximo Valor\n", + "print(min(lista)) # Mínimo Valor\n", + "print(len(lista)) # Tamanho da Lista\n", + "\n", + "# Transformar uma lista em tupla\n", + "\n", + "lista = [1, 2, 3, 4, 5, 6]\n", + "print(lista)\n", + "print(type(lista))\n", + "\n", + "tupla = tuple(lista)\n", + "print(tupla)\n", + "print(type(tupla))\n", + "\n", + "# Desempacotamento de listas\n", + "listas = [1, 2, 3]\n", + "\n", + "num1, num2, num3 = lista\n", + "\n", + "print(num1)\n", + "print(num2)\n", + "print(num3)\n", + "# OBS: Se tivermos um número diferente de elementos na lista ou variáveis para receber os dados, teremos ValueError\n", + "\n", + "# Copiando uma lista para outra (Shallow Copy e Deep Copy)\n", + "# Forma 1 - Deep Copy\n", + "\n", + "lista = [1, 2, 3] e\n", + "print(lista)\n", + "\n", + "nova = lista.copy() # Cópia\n", + "print(nova)\n", + "\n", + "nova.append(4)\n", + "\n", + "print(lista)\n", + "print(nova)\n", + "\n", + "# Veja que ao utilizarmos lista.copy() copiamos os dados da lista para uma nova lista, mas elas\n", + "# ficaram totalmente independentes, ou seja, modificando uma lista, não afeta a outra. Isso em Python\n", + "# é chamado de Deep Copy (Cópia Profunda)\n", + "\n", + "# Forma 2 - Shallow Copy\n", + "\n", + "lista = [1, 2, 3]\n", + "print(lista)\n", + "\n", + "nova = lista # Cópia\n", + "\n", + "print(nova)\n", + "\n", + "nova.append(4)\n", + "\n", + "print(lista)\n", + "print(nova)\n", + "\n", + "# Veja que utilizamos a cópia via atribuição e copiamos os dados da lista para a nova lista, mas\n", + "# após realizar modificação em uma das listas, essa modificação se refletiu em ambas as listas.\n", + "# Isso em Python é chamado de Shallow Copy.\n", + "\"\"\"\n", + "\n" + ] + } + ], + "source": [ + "print(ds2[12][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import os\n", + "from typing import Optional\n", + "\n", + "from pytorchltr.utils.downloader import DefaultDownloadProgress\n", + "from pytorchltr.utils.downloader import Downloader\n", + "from pytorchltr.utils.file import validate_and_download\n", + "from pytorchltr.utils.file import extract_zip\n", + "from pytorchltr.utils.file import dataset_dir\n", + "from pytorchltr.datasets.svmrank.svmrank import SVMRankDataset\n", + "\n", + "\n", + "class MSLR10K(SVMRankDataset):\n", + " \"\"\"\n", + " Utility class for downloading and using the MSLR-WEB10K dataset:\n", + " https://www.microsoft.com/en-us/research/project/mslr/.\n", + "\n", + " This dataset is a smaller sampled version of the MSLR-WEB30K dataset.\n", + " \"\"\"\n", + "\n", + " downloader = Downloader(\n", + " url=\"https://api.onedrive.com/v1.0/shares/s!AtsMfWUz5l8nbOIoJ6Ks0bEMp78/root/content\", # noqa: E501\n", + " target=\"MSLR-WEB10K.zip\",\n", + " sha256_checksum=\"2902142ea33f18c59414f654212de5063033b707d5c3939556124b1120d3a0ba\", # noqa: E501\n", + " progress_fn=DefaultDownloadProgress(),\n", + " postprocess_fn=extract_zip)\n", + "\n", + " per_fold_expected_files = {\n", + " 1: [\n", + " {\"path\": \"Fold1/train.txt\", \"sha256\": \"6eb3fae4e1186e1242a6520f53a98abdbcde5b926dd19a28e51239284b1d55dc\"}, # noqa: E501\n", + " {\"path\": \"Fold1/test.txt\", \"sha256\": \"33fe002374a4fce58c4e12863e4eee74745d5672a26f3e4ddacc20ccfe7d6ba0\"}, # noqa: E501\n", + " {\"path\": \"Fold1/vali.txt\", \"sha256\": \"e86fb3fe7e8a5f16479da7ce04f783ae85735f17f66016786c3ffc797dd9d4db\"} # noqa: E501\n", + " ],\n", + " 2: [\n", + " {\"path\": \"Fold2/train.txt\", \"sha256\": \"40e4a2fcc237d9c164cbb6a3f2fa91fe6cf7d46a419d2f73e21cf090285659eb\"}, # noqa: E501\n", + " {\"path\": \"Fold2/test.txt\", \"sha256\": \"44add582ccd674cf63af24d3bf6e1074e87a678db77f00b44c37980a3010917a\"}, # noqa: E501\n", + " {\"path\": \"Fold2/vali.txt\", \"sha256\": \"33fe002374a4fce58c4e12863e4eee74745d5672a26f3e4ddacc20ccfe7d6ba0\"} # noqa: E501\n", + " ],\n", + " 3: [\n", + " {\"path\": \"Fold3/train.txt\", \"sha256\": \"f13005ceb8de0db76c93b02ee4b2bded6f925097d3ab7938931e8d07aa72acd7\"}, # noqa: E501\n", + " {\"path\": \"Fold3/test.txt\", \"sha256\": \"c0a5a3c6bd7790d0b4ff3d5e961d0c8c5f8ff149089ce492540fa63035801b7a\"}, # noqa: E501\n", + " {\"path\": \"Fold3/vali.txt\", \"sha256\": \"44add582ccd674cf63af24d3bf6e1074e87a678db77f00b44c37980a3010917a\"} # noqa: E501\n", + " ],\n", + " 4: [\n", + " {\"path\": \"Fold4/train.txt\", \"sha256\": \"6c1677cf9b2ed491e26ac6b8c8ca7dfae9c1a375e2bce8cba6df36ab67ce5836\"}, # noqa: E501\n", + " {\"path\": \"Fold4/test.txt\", \"sha256\": \"dc6083c24a5f0c03df3c91ad3eed7542694115b998acf046e51432cb7a22b848\"}, # noqa: E501\n", + " {\"path\": \"Fold4/vali.txt\", \"sha256\": \"c0a5a3c6bd7790d0b4ff3d5e961d0c8c5f8ff149089ce492540fa63035801b7a\"} # noqa: E501\n", + " ],\n", + " 5: [\n", + " {\"path\": \"Fold5/train.txt\", \"sha256\": \"4249797a2f0f46bff279973f0fb055d4a78f67f337769eabd56e82332c044794\"}, # noqa: E501\n", + " {\"path\": \"Fold5/test.txt\", \"sha256\": \"e86fb3fe7e8a5f16479da7ce04f783ae85735f17f66016786c3ffc797dd9d4db\"}, # noqa: E501\n", + " {\"path\": \"Fold5/vali.txt\", \"sha256\": \"dc6083c24a5f0c03df3c91ad3eed7542694115b998acf046e51432cb7a22b848\"} # noqa: E501\n", + " ]\n", + " }\n", + "\n", + " splits = {\n", + " \"train\": \"train.txt\",\n", + " \"test\": \"test.txt\",\n", + " \"vali\": \"vali.txt\"\n", + " }\n", + "\n", + " def __init__(self, location: str = dataset_dir(\"MSLR10K\"),\n", + " split: str = \"train\", fold: int = 1, normalize: bool = True,\n", + " filter_queries: Optional[bool] = None, download: bool = True,\n", + " validate_checksums: bool = True):\n", + " \"\"\"\n", + " Args:\n", + " location: Directory where the dataset is located.\n", + " split: The data split to load (\"train\", \"test\" or \"vali\")\n", + " fold: Which data fold to load (1...5)\n", + " normalize: Whether to perform query-level feature\n", + " normalization.\n", + " filter_queries: Whether to filter out queries that\n", + " have no relevant items. If not given this will filter queries\n", + " for the test set but not the train set.\n", + " download: Whether to download the dataset if it does not\n", + " exist.\n", + " validate_checksums: Whether to validate the dataset files\n", + " via sha256.\n", + " \"\"\"\n", + " # Check if specified split and fold exists.\n", + " if split not in MSLR10K.splits.keys():\n", + " raise ValueError(\"unrecognized data split '%s'\" % str(split))\n", + "\n", + " if fold not in MSLR10K.per_fold_expected_files.keys():\n", + " raise ValueError(\"unrecognized data fold '%s'\" % str(fold))\n", + "\n", + " # Validate dataset exists and is correct, or download it.\n", + " validate_and_download(\n", + " location=location,\n", + " expected_files=MSLR10K.per_fold_expected_files[fold],\n", + " downloader=MSLR10K.downloader if download else None,\n", + " validate_checksums=validate_checksums)\n", + "\n", + " # Only filter queries on non-train splits.\n", + " if filter_queries is None:\n", + " filter_queries = False if split == \"train\" else True\n", + "\n", + " # Initialize the dataset.\n", + " datafile = os.path.join(location, \"Fold%d\" % fold,\n", + " MSLR10K.splits[split])\n", + " super().__init__(file=datafile, sparse=False, normalize=normalize,\n", + " filter_queries=filter_queries, zero_based=\"auto\")\n", + "\n" + ] + } + ], + "source": [ + "print(ds2[101][\"content\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Java & JS" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Loading cached processed dataset at /Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--the-stack-smol-95a2b7de57a7cb35/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab/cache-d0b2580b48b3d9a7.arrow\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean comment size: 3.95\n", + "Median comment size: 3.99\n", + "Percentiles of comments size 3rd, 5th, 10th, 20th: [2.75 2.91 3.15 3.47]\n" + ] + } + ], + "source": [ + "# on filtered data\n", + "ds = ds_java\n", + "ds = ds.map(extract_nl_text, batch_size=1000, batched=True)\n", + "\n", + "# get mean median and percentiles of nl_size\n", + "print(f\"Mean comment size: {np.mean(ds['fertility_ratio']):.2f}\")\n", + "print(f\"Median comment size: {np.median(ds['fertility_ratio']):.2f}\")\n", + "print(f\"Percentiles of comments size 3rd, 5th, 10th, 20th: {np.round(np.percentile(ds['fertility_ratio'], [3, 5, 10, 20]), 2)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Loading cached processed dataset at /Users/loubnabenallal/.cache/huggingface/datasets/bigcode___json/bigcode--the-stack-smol-95a2b7de57a7cb35/0.0.0/e6070c77f18f01a5ad4551a8b7edfba20b8438b7cad4d94e6ad9378022ce4aab/cache-c8bec82a306f5c2f.arrow\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "percentage samples with fertility_ratio < 2.8: 3.48\n" + ] + } + ], + "source": [ + "filtered = ds.filter(lambda x: x['fertility_ratio'] < 2.8)\n", + "print(f\"percentage samples with fertility_ratio < 2.8: {len(filtered)*100/len(ds)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/*\n", + " * Copyright 2019 Jeff Hain\n", + " *\n", + " * Licensed under the Apache License, Version 2.0 (the \"License\");\n", + " * you may not use this file except in compliance with the License.\n", + " * You may obtain a copy of the License at\n", + " *\n", + " * http://www.apache.org/licenses/LICENSE-2.0\n", + " *\n", + " * Unless required by applicable law or agreed to in writing, software\n", + " * distributed under the License is distributed on an \"AS IS\" BASIS,\n", + " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + " * See the License for the specific language governing permissions and\n", + " * limitations under the License.\n", + " */\n", + "package net.jolikit.bwd.impl.sdl2;\n", + "\n", + "import java.util.Arrays;\n", + "\n", + "import net.jolikit.bwd.api.events.BwdKeys;\n", + "import net.jolikit.bwd.impl.sdl2.jlib.SdlKeycode;\n", + "import net.jolikit.bwd.impl.utils.events.AbstractKeyConverter;\n", + "\n", + "/**\n", + " * TODO sdl This converter might not handle all cases, as it only deals with\n", + " * SDL_Keycode values, and SDL might provide keycode values for which there is\n", + " * no SDL_Keycode (for example, when pressing \"superscript two\" key, I get 178\n", + " * (which is the corresponding code point), which doesn't correspond to any\n", + " * SDL_Keycode).\n", + " */\n", + "public class SdlKeyConverter extends AbstractKeyConverter {\n", + "\n", + " /*\n", + " * https://wiki.libsdl.org/StuartPBentley/CombinedKeyTable\n", + " */\n", + " \n", + " //--------------------------------------------------------------------------\n", + " // PUBLIC METHODS\n", + " //--------------------------------------------------------------------------\n", + " \n", + " public SdlKeyConverter() {\n", + "\n", + " /*\n", + " * TODO sdl What are these?\n", + " * SDLK_CLEAR (NUM_LOCK? CENTER?)\n", + " * SDLK_KP_MEMCLEAR\n", + " * SDLK_KP_MEMADD\n", + " * SDLK_KP_MEMSUBTRACT\n", + " * SDLK_KP_MEMMULTIPLY\n", + " * SDLK_KP_MEMDIVIDE\n", + " * SDLK_DECIMALSEPARATOR (DOT?)\n", + " * SDLK_KP_DECIMAL (DOT?)\n", + " */\n", + " \n", + " mapTo(BwdKeys.NO_STATEMENT, SdlKeycode.SDLK_UNKNOWN);\n", + " \n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.NUM_LOCK, SdlKeycode.SDLK_NUMLOCKCLEAR);\n", + " mapTo(BwdKeys.CAPS_LOCK, SdlKeycode.SDLK_CAPSLOCK);\n", + " mapTo(BwdKeys.SCROLL_LOCK, SdlKeycode.SDLK_SCROLLLOCK);\n", + " \n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.SHIFT, SdlKeycode.SDLK_LSHIFT, SdlKeycode.SDLK_RSHIFT);\n", + " mapTo(BwdKeys.CONTROL, SdlKeycode.SDLK_LCTRL, SdlKeycode.SDLK_RCTRL);\n", + " mapTo(BwdKeys.ALT, SdlKeycode.SDLK_LALT);\n", + " mapTo(BwdKeys.ALT_GRAPH, SdlKeycode.SDLK_RALT);\n", + " mapTo(BwdKeys.META, SdlKeycode.SDLK_APPLICATION, SdlKeycode.SDLK_MENU);\n", + " mapTo(BwdKeys.SUPER, SdlKeycode.SDLK_LGUI, SdlKeycode.SDLK_RGUI);\n", + " noMatch(BwdKeys.HYPER);\n", + " \n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.F1, SdlKeycode.SDLK_F1);\n", + " mapTo(BwdKeys.F2, SdlKeycode.SDLK_F2);\n", + " mapTo(BwdKeys.F3, SdlKeycode.SDLK_F3);\n", + " mapTo(BwdKeys.F4, SdlKeycode.SDLK_F4);\n", + " mapTo(BwdKeys.F5, SdlKeycode.SDLK_F5);\n", + " mapTo(BwdKeys.F6, SdlKeycode.SDLK_F6);\n", + " mapTo(BwdKeys.F7, SdlKeycode.SDLK_F7);\n", + " mapTo(BwdKeys.F8, SdlKeycode.SDLK_F8);\n", + " mapTo(BwdKeys.F9, SdlKeycode.SDLK_F9);\n", + " mapTo(BwdKeys.F10, SdlKeycode.SDLK_F10);\n", + " mapTo(BwdKeys.F11, SdlKeycode.SDLK_F11);\n", + " mapTo(BwdKeys.F12, SdlKeycode.SDLK_F12);\n", + "\n", + " /*\n", + " * \n", + " */\n", + "\n", + " mapTo(BwdKeys.A, SdlKeycode.SDLK_a);\n", + " mapTo(BwdKeys.B, SdlKeycode.SDLK_b);\n", + " mapTo(BwdKeys.C, SdlKeycode.SDLK_c);\n", + " mapTo(BwdKeys.D, SdlKeycode.SDLK_d);\n", + " mapTo(BwdKeys.E, SdlKeycode.SDLK_e);\n", + " mapTo(BwdKeys.F, SdlKeycode.SDLK_f);\n", + " mapTo(BwdKeys.G, SdlKeycode.SDLK_g);\n", + " mapTo(BwdKeys.H, SdlKeycode.SDLK_h);\n", + " mapTo(BwdKeys.I, SdlKeycode.SDLK_i);\n", + " mapTo(BwdKeys.J, SdlKeycode.SDLK_j);\n", + " mapTo(BwdKeys.K, SdlKeycode.SDLK_k);\n", + " mapTo(BwdKeys.L, SdlKeycode.SDLK_l);\n", + " mapTo(BwdKeys.M, SdlKeycode.SDLK_m);\n", + " mapTo(BwdKeys.N, SdlKeycode.SDLK_n);\n", + " mapTo(BwdKeys.O, SdlKeycode.SDLK_o);\n", + " mapTo(BwdKeys.P, SdlKeycode.SDLK_p);\n", + " mapTo(BwdKeys.Q, SdlKeycode.SDLK_q);\n", + " mapTo(BwdKeys.R, SdlKeycode.SDLK_r);\n", + " mapTo(BwdKeys.S, SdlKeycode.SDLK_s);\n", + " mapTo(BwdKeys.T, SdlKeycode.SDLK_t);\n", + " mapTo(BwdKeys.U, SdlKeycode.SDLK_u);\n", + " mapTo(BwdKeys.V, SdlKeycode.SDLK_v);\n", + " mapTo(BwdKeys.W, SdlKeycode.SDLK_w);\n", + " mapTo(BwdKeys.X, SdlKeycode.SDLK_x);\n", + " mapTo(BwdKeys.Y, SdlKeycode.SDLK_y);\n", + " mapTo(BwdKeys.Z, SdlKeycode.SDLK_z);\n", + "\n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.DIGIT_0, SdlKeycode.SDLK_0, SdlKeycode.SDLK_KP_0);\n", + " mapTo(BwdKeys.DIGIT_1, SdlKeycode.SDLK_1, SdlKeycode.SDLK_KP_1);\n", + " mapTo(BwdKeys.DIGIT_2, SdlKeycode.SDLK_2, SdlKeycode.SDLK_KP_2);\n", + " mapTo(BwdKeys.DIGIT_3, SdlKeycode.SDLK_3, SdlKeycode.SDLK_KP_3);\n", + " mapTo(BwdKeys.DIGIT_4, SdlKeycode.SDLK_4, SdlKeycode.SDLK_KP_4);\n", + " mapTo(BwdKeys.DIGIT_5, SdlKeycode.SDLK_5, SdlKeycode.SDLK_KP_5);\n", + " mapTo(BwdKeys.DIGIT_6, SdlKeycode.SDLK_6, SdlKeycode.SDLK_KP_6);\n", + " mapTo(BwdKeys.DIGIT_7, SdlKeycode.SDLK_7, SdlKeycode.SDLK_KP_7);\n", + " mapTo(BwdKeys.DIGIT_8, SdlKeycode.SDLK_8, SdlKeycode.SDLK_KP_8);\n", + " mapTo(BwdKeys.DIGIT_9, SdlKeycode.SDLK_9, SdlKeycode.SDLK_KP_9);\n", + " //\n", + " mapTo(BwdKeys.DOT, SdlKeycode.SDLK_PERIOD, SdlKeycode.SDLK_KP_PERIOD);\n", + "\n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.ESCAPE, SdlKeycode.SDLK_ESCAPE);\n", + " mapTo(BwdKeys.TAB, SdlKeycode.SDLK_TAB);\n", + " mapTo(BwdKeys.BACKSPACE, SdlKeycode.SDLK_BACKSPACE);\n", + " mapTo(BwdKeys.EQUALS, SdlKeycode.SDLK_EQUALS, SdlKeycode.SDLK_KP_EQUALS, SdlKeycode.SDLK_KP_EQUALSAS400);\n", + " \n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.SLASH, SdlKeycode.SDLK_SLASH, SdlKeycode.SDLK_KP_DIVIDE);\n", + " mapTo(BwdKeys.ASTERISK, SdlKeycode.SDLK_ASTERISK, SdlKeycode.SDLK_KP_MULTIPLY);\n", + " mapTo(BwdKeys.MINUS, SdlKeycode.SDLK_MINUS, SdlKeycode.SDLK_KP_MINUS);\n", + " mapTo(BwdKeys.PLUS, SdlKeycode.SDLK_PLUS, SdlKeycode.SDLK_KP_PLUS);\n", + " mapTo(BwdKeys.ENTER, SdlKeycode.SDLK_RETURN, SdlKeycode.SDLK_RETURN2, SdlKeycode.SDLK_KP_ENTER);\n", + " \n", + " /*\n", + " * TODO sdl For some reason, whether or not NUM_LOCK is on,\n", + " * SDL always uses SDLK_KP_0 .. SDLK_KP_9, and SDLK_KP_PERIOD.\n", + " */\n", + " \n", + " mapTo(BwdKeys.HOME, SdlKeycode.SDLK_HOME);\n", + " mapTo(BwdKeys.END, SdlKeycode.SDLK_END);\n", + " //\n", + " mapTo(BwdKeys.PAGE_UP, SdlKeycode.SDLK_PAGEUP);\n", + " mapTo(BwdKeys.PAGE_DOWN, SdlKeycode.SDLK_PAGEDOWN);\n", + " //\n", + " mapTo(BwdKeys.LEFT, SdlKeycode.SDLK_LEFT);\n", + " mapTo(BwdKeys.UP, SdlKeycode.SDLK_UP);\n", + " mapTo(BwdKeys.RIGHT, SdlKeycode.SDLK_RIGHT);\n", + " mapTo(BwdKeys.DOWN, SdlKeycode.SDLK_DOWN);\n", + " //\n", + " mapTo(BwdKeys.INSERT, SdlKeycode.SDLK_INSERT);\n", + " mapTo(BwdKeys.DELETE, SdlKeycode.SDLK_DELETE);\n", + " //\n", + " mapTo(BwdKeys.CENTER, SdlKeycode.SDLK_KP_CLEAR);\n", + "\n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.PRINT_SCREEN, SdlKeycode.SDLK_PRINTSCREEN);\n", + " mapTo(BwdKeys.PAUSE, SdlKeycode.SDLK_PAUSE);\n", + "\n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.LEFT_PARENTHESIS, SdlKeycode.SDLK_LEFTPAREN);\n", + " mapTo(BwdKeys.RIGHT_PARENTHESIS, SdlKeycode.SDLK_RIGHTPAREN);\n", + " mapTo(BwdKeys.LEFT_BRACKET, SdlKeycode.SDLK_LEFTBRACKET);\n", + " mapTo(BwdKeys.RIGHT_BRACKET, SdlKeycode.SDLK_RIGHTBRACKET);\n", + " noMatch(BwdKeys.LEFT_BRACE);\n", + " noMatch(BwdKeys.RIGHT_BRACE);\n", + "\n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.LESS_THAN, SdlKeycode.SDLK_LESS, SdlKeycode.SDLK_KP_LESS);\n", + " mapTo(BwdKeys.GREATER_THAN, SdlKeycode.SDLK_GREATER, SdlKeycode.SDLK_KP_GREATER);\n", + " \n", + " mapTo(BwdKeys.SINGLE_QUOTE, SdlKeycode.SDLK_QUOTE);\n", + " mapTo(BwdKeys.DOUBLE_QUOTE, SdlKeycode.SDLK_QUOTEDBL);\n", + " \n", + " mapTo(BwdKeys.GRAVE_ACCENT, SdlKeycode.SDLK_BACKQUOTE);\n", + " mapTo(BwdKeys.CIRCUMFLEX_ACCENT, SdlKeycode.SDLK_KP_POWER);\n", + " \n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapTo(BwdKeys.SPACE, SdlKeycode.SDLK_SPACE, SdlKeycode.SDLK_KP_SPACE);\n", + " mapTo(BwdKeys.UNDERSCORE, SdlKeycode.SDLK_UNDERSCORE);\n", + " mapTo(BwdKeys.COMMA, SdlKeycode.SDLK_COMMA, SdlKeycode.SDLK_KP_COMMA);\n", + " mapTo(BwdKeys.SEMICOLON, SdlKeycode.SDLK_SEMICOLON);\n", + " mapTo(BwdKeys.COLON, SdlKeycode.SDLK_COLON, SdlKeycode.SDLK_KP_COLON);\n", + " mapTo(BwdKeys.VERTICAL_BAR, SdlKeycode.SDLK_KP_VERTICALBAR);\n", + " mapTo(BwdKeys.BACKSLASH, SdlKeycode.SDLK_BACKSLASH);\n", + " \n", + " mapTo(BwdKeys.AMPERSAND, SdlKeycode.SDLK_AMPERSAND, SdlKeycode.SDLK_KP_AMPERSAND);\n", + " mapTo(BwdKeys.AT_SYMBOL, SdlKeycode.SDLK_AT, SdlKeycode.SDLK_KP_AT);\n", + " mapTo(BwdKeys.DOLLAR, SdlKeycode.SDLK_DOLLAR);\n", + " mapTo(BwdKeys.HASH, SdlKeycode.SDLK_HASH, SdlKeycode.SDLK_KP_HASH);\n", + " mapTo(BwdKeys.PERCENT, SdlKeycode.SDLK_PERCENT, SdlKeycode.SDLK_KP_PERCENT);\n", + " \n", + " mapTo(BwdKeys.QUESTION_MARK, SdlKeycode.SDLK_QUESTION);\n", + " mapTo(BwdKeys.EXCLAMATION_MARK, SdlKeycode.SDLK_EXCLAIM, SdlKeycode.SDLK_KP_EXCLAM);\n", + " noMatch(BwdKeys.TILDE);\n", + " \n", + " /*\n", + " * \n", + " */\n", + " \n", + " mapUnmappedBackingKeys(\n", + " Arrays.asList(SdlKeycode.values()));\n", + " }\n", + "}\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[15][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "package estructuradedatos;\n", + "\n", + "import estructuradedatos.BinaryTree;\n", + "\n", + "public class BinaryTree {\n", + "\t\n", + "\tprivate NodoTree raiz;\n", + "\tprivate ListG list;\n", + "\t\n", + "\tpublic BinaryTree(){\n", + "\t\tthis.list = new ListG<>();\n", + "\t}\n", + "\t\n", + "\tpublic NodoTree getRaiz() {\n", + "\t\treturn raiz;\n", + "\t}\n", + "\n", + "\tpublic void setRaiz(NodoTree raiz) {\n", + "\t\tthis.raiz = raiz;\n", + "\t}\n", + "\t\n", + "\tpublic void Insert(T dato){\n", + "\t\tNodoTree nodoNuevo = new NodoTree(dato);\n", + "\t\t\n", + "\t\tif (this.raiz == null)\n", + "\t\t\tthis.raiz = nodoNuevo;\n", + "\t\telse{\n", + "\t\t\tNodoTree nodoAux = raiz;\n", + "\t\t\tNodoTree padre;\n", + "\t\t\twhile (true){\n", + "\t\t\t\tpadre = nodoAux;\n", + "\t\t\t\tif (new Integer((int) dato) < new Integer((int) nodoAux.getDato())){\n", + "\t\t\t\t\tnodoAux = nodoAux.getIzquierdo();\n", + "\t\t\t\t\tif(nodoAux == null){\n", + "\t\t\t\t\t\tpadre.setIzquierdo(nodoNuevo);\n", + "\t\t\t\t\t\treturn;//Salir del metodo\n", + "\t\t\t\t\t}\n", + "\t\t\t\t}else{\n", + "\t\t\t\t\t\tnodoAux = nodoAux.getDerecho();\n", + "\t\t\t\t\t\tif (nodoAux == null){\n", + "\t\t\t\t\t\t\tpadre.setDerecho(nodoNuevo);\n", + "\t\t\t\t\t\t\treturn;//Salir de metodo\n", + "\t\t\t\t\t\t}\n", + "\t\t\t\t}\n", + "\t\t\t\n", + "\t\t\t}\t\t\t\n", + "\t\t}\t\t\n", + "\t}\n", + "\t\n", + "\t\n", + "\tpublic ListG InOrden(){\n", + "\t\tSystem.out.println(\"In Orden\");\n", + "\t\tthis.list = new ListG<>();\n", + "\t\tthis.InOrden(this.raiz);\n", + "\t\treturn this.list;\n", + "\t}\n", + "\t\n", + "\t//Izquierda raiz derecha\n", + "\tpublic ListG PreOrden(){\n", + "\t\tSystem.out.println(\"Pre Orden\");\n", + "\t\tthis.list = new ListG<>();\n", + "\t\tthis.PreOrden(this.raiz);\n", + "\t\treturn this.list;\n", + "\t}\n", + "\t\n", + "\t//Izquierda derecha raiz\n", + "\tpublic ListG PostOrden(){\n", + "\t\tSystem.out.println(\"Post Orden\");\n", + "\t\tthis.list = new ListG<>();\n", + "\t\tthis.PostOrden(this.raiz);\n", + "\t\treturn this.list;\n", + "\t}\t\n", + "\t\n", + "\tpublic ListG BuscarPreOrden(T dato){\n", + "\t\tSystem.out.println(\"Buscar Pre Orden\");\n", + "\t\tthis.list = new ListG<>();\n", + "\t\tthis.BuscarPreOrden(dato);\t\t\n", + "\t\treturn list;\n", + "\t}\n", + "\t\n", + "\tprivate void InOrden(NodoTree raiz){\n", + "\t\tif (raiz != null){\n", + "\t\t\tInOrden(raiz.getIzquierdo());\n", + "\t\t\tSystem.out.println(raiz.getDato());\n", + "\t\t\tthis.list.InsertIni(raiz.getDato());\n", + "\t\t\tInOrden(raiz.getDerecho());\n", + "\t\t}\n", + "\t}\n", + "\t\n", + "\tprivate void PreOrden(NodoTree raiz){\n", + "\t\tif (raiz != null){\n", + "\t\t\tSystem.out.println(raiz.getDato());\n", + "\t\t\tthis.list.InsertIni(raiz.getDato());\n", + "\t\t\tPreOrden(raiz.getIzquierdo());\n", + "\t\t\tPreOrden(raiz.getDerecho());\n", + "\t\t}\n", + "\t}\n", + "\t\n", + "\t@SuppressWarnings(\"unused\")\n", + "\tprivate void BuscarPreOrden(NodoTree raiz,T datoBuscar){\n", + "\t\tif (raiz != null ){\n", + "\t\t\tSystem.out.println(raiz.getDato());\n", + "\t\t\tthis.list.InsertIni(raiz.getDato());\n", + "\t\t\tif (raiz.getDato().equals(datoBuscar))\n", + "\t\t\t\treturn;\n", + "\t\t\tPreOrden(raiz.getIzquierdo());\n", + "\t\t\tPreOrden(raiz.getDerecho());\n", + "\t\t}\n", + "\t}\n", + "\t\t\t\n", + "\tprivate void PostOrden(NodoTree raiz){\n", + "\t\tif (raiz != null){\n", + "\t\t\tPostOrden(raiz.getIzquierdo());\n", + "\t\t\tPostOrden(raiz.getDerecho());\n", + "\t\t\tSystem.out.println(raiz.getDato());\t\t\n", + "\t\t\tthis.list.InsertIni(raiz.getDato());\n", + "\t\t}\n", + "\t}\n", + "\t\t\n", + "\n", + "}\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[3][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "package com.felix.crazyjava.item1604;\n", + "\n", + "/**\n", + " * Created with IntelliJ IDEA.\n", + " * Description: 创建守护线程\n", + " * Author: Felix\n", + " * Date: 2017/3/8\n", + " * Time: 10:20\n", + " */\n", + "public class DaemonThread extends Thread {\n", + "\n", + " // 定义守护线程的线程执行体与普通线程没有任何区别\n", + " @Override\n", + " public void run() {\n", + " for (int i = 0; i < 1000; i++) {\n", + " System.out.println(getName() + \" \" + i);\n", + " }\n", + " }\n", + "\n", + " public static void main(String[] args) throws Exception {\n", + " DaemonThread dt = new DaemonThread();\n", + " // 将此线程设置成守护线程,该语句必须在线程启动之前\n", + " dt.setDaemon(true);\n", + " // 启动线程\n", + " dt.start();\n", + " // Thread.sleep(1);\n", + " for (int i = 0; i < 10; i++) {\n", + " System.out.println(Thread.currentThread().getName() + \" \" + i);\n", + " }\n", + " // 程序执行到此处,前台线程(main线程)结束\n", + " // 守护线程也应该随之结束\n", + " }\n", + "}\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[110][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e84c33794e294870830f8b17c6a7770a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10 [00:00\n", + ", 'EmojiEventsSharp');\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[0][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/*! jQuery Validation Plugin - v1.14.0 - 6/30/2015\n", + " * http://jqueryvalidation.org/\n", + " * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */\n", + "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"./jquery.validate.min\"],a):a(jQuery)}(function(a){!function(){function b(a){return a.replace(/<.[^<>]*?>/g,\" \").replace(/ | /gi,\" \").replace(/[.(),;:!?%#$'\\\"_+=\\/\\-“”’]*/g,\"\")}a.validator.addMethod(\"maxWords\",function(a,c,d){return this.optional(c)||b(a).match(/\\b\\w+\\b/g).length<=d},a.validator.format(\"Please enter {0} words or less.\")),a.validator.addMethod(\"minWords\",function(a,c,d){return this.optional(c)||b(a).match(/\\b\\w+\\b/g).length>=d},a.validator.format(\"Please enter at least {0} words.\")),a.validator.addMethod(\"rangeWords\",function(a,c,d){var e=b(a),f=/\\b\\w+\\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format(\"Please enter between {0} and {1} words.\"))}(),a.validator.addMethod(\"accept\",function(b,c,d){var e,f,g=\"string\"==typeof d?d.replace(/\\s/g,\"\").replace(/,/g,\"|\"):\"image/*\",h=this.optional(c);if(h)return h;if(\"file\"===a(c).attr(\"type\")&&(g=g.replace(/\\*/g,\".*\"),c.files&&c.files.length))for(e=0;ec;c++)d=h-c,e=f.substring(c,c+1),g+=d*e;return g%11===0},\"Please specify a valid bank account number\"),a.validator.addMethod(\"bankorgiroaccountNL\",function(b,c){return this.optional(c)||a.validator.methods.bankaccountNL.call(this,b,c)||a.validator.methods.giroaccountNL.call(this,b,c)},\"Please specify a valid bank or giro account number\"),a.validator.addMethod(\"bic\",function(a,b){return this.optional(b)||/^([A-Z]{6}[A-Z2-9][A-NP-Z1-2])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(a)},\"Please specify a valid BIC code\"),a.validator.addMethod(\"cifES\",function(a){\"use strict\";var b,c,d,e,f,g,h=[];if(a=a.toUpperCase(),!a.match(\"((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)\"))return!1;for(d=0;9>d;d++)h[d]=parseInt(a.charAt(d),10);for(c=h[2]+h[4]+h[6],e=1;8>e;e+=2)f=(2*h[e]).toString(),g=f.charAt(1),c+=parseInt(f.charAt(0),10)+(\"\"===g?0:parseInt(g,10));return/^[ABCDEFGHJNPQRSUVW]{1}/.test(a)?(c+=\"\",b=10-parseInt(c.charAt(c.length-1),10),a+=b,h[8].toString()===String.fromCharCode(64+b)||h[8].toString()===a.charAt(a.length-1)):!1},\"Please specify a valid CIF number.\"),a.validator.addMethod(\"cpfBR\",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\\[\\]\\-|\\\\:;'<>,.\\/? ])+/g,\"\"),11!==a.length)return!1;var b,c,d,e,f=0;if(b=parseInt(a.substring(9,10),10),c=parseInt(a.substring(10,11),10),d=function(a,b){var c=10*a%11;return(10===c||11===c)&&(c=0),c===b},\"\"===a||\"00000000000\"===a||\"11111111111\"===a||\"22222222222\"===a||\"33333333333\"===a||\"44444444444\"===a||\"58362583625\"===a||\"66666666666\"===a||\"77777777777\"===a||\"88888888888\"===a||\"99999999999\"===a)return!1;for(e=1;9>=e;e++)f+=parseInt(a.substring(e-1,e),10)*(11-e);if(d(f,b)){for(f=0,e=1;10>=e;e++)f+=parseInt(a.substring(e-1,e),10)*(12-e);return d(f,c)}return!1},\"Please specify a valid CPF number\"),a.validator.addMethod(\"creditcardtypes\",function(a,b,c){if(/[^0-9\\-]+/.test(a))return!1;a=a.replace(/\\D/g,\"\");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&/^(5[12345])/.test(a)?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:128&d?!0:!1},\"Please enter a valid credit card number.\"),a.validator.addMethod(\"currency\",function(a,b,c){var d,e=\"string\"==typeof c,f=e?c:c[0],g=e?!0:c[1];return f=f.replace(/,/g,\"\"),f=g?f+\"]\":f+\"]?\",d=\"^[\"+f+\"([1-9]{1}[0-9]{0,2}(\\\\,[0-9]{3})*(\\\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\\\.[0-9]{0,2})?|0(\\\\.[0-9]{0,2})?|(\\\\.[0-9]{1,2})?)$\",d=new RegExp(d),this.optional(b)||d.test(a)},\"Please specify a valid currency\"),a.validator.addMethod(\"dateFA\",function(a,b){return this.optional(b)||/^[1-4]\\d{3}\\/((0?[1-6]\\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod(\"dateITA\",function(a,b){var c,d,e,f,g,h=!1,i=/^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/;return i.test(a)?(c=a.split(\"/\"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d?!0:!1):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod(\"dateNL\",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\\d|3[01])[\\.\\/\\-](0?[1-9]|1[012])[\\.\\/\\-]([12]\\d)?(\\d\\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod(\"extension\",function(a,b,c){return c=\"string\"==typeof c?c.replace(/,/g,\"|\"):\"png|jpe?g|gif\",this.optional(b)||a.match(new RegExp(\"\\\\.(\"+c+\")$\",\"i\"))},a.validator.format(\"Please enter a value with a valid extension.\")),a.validator.addMethod(\"giroaccountNL\",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},\"Please specify a valid giro account number\"),a.validator.addMethod(\"iban\",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,\"\").toUpperCase(),m=\"\",n=!0,o=\"\",p=\"\";if(c=l.substring(0,2),h={AL:\"\\\\d{8}[\\\\dA-Z]{16}\",AD:\"\\\\d{8}[\\\\dA-Z]{12}\",AT:\"\\\\d{16}\",AZ:\"[\\\\dA-Z]{4}\\\\d{20}\",BE:\"\\\\d{12}\",BH:\"[A-Z]{4}[\\\\dA-Z]{14}\",BA:\"\\\\d{16}\",BR:\"\\\\d{23}[A-Z][\\\\dA-Z]\",BG:\"[A-Z]{4}\\\\d{6}[\\\\dA-Z]{8}\",CR:\"\\\\d{17}\",HR:\"\\\\d{17}\",CY:\"\\\\d{8}[\\\\dA-Z]{16}\",CZ:\"\\\\d{20}\",DK:\"\\\\d{14}\",DO:\"[A-Z]{4}\\\\d{20}\",EE:\"\\\\d{16}\",FO:\"\\\\d{14}\",FI:\"\\\\d{14}\",FR:\"\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}\",GE:\"[\\\\dA-Z]{2}\\\\d{16}\",DE:\"\\\\d{18}\",GI:\"[A-Z]{4}[\\\\dA-Z]{15}\",GR:\"\\\\d{7}[\\\\dA-Z]{16}\",GL:\"\\\\d{14}\",GT:\"[\\\\dA-Z]{4}[\\\\dA-Z]{20}\",HU:\"\\\\d{24}\",IS:\"\\\\d{22}\",IE:\"[\\\\dA-Z]{4}\\\\d{14}\",IL:\"\\\\d{19}\",IT:\"[A-Z]\\\\d{10}[\\\\dA-Z]{12}\",KZ:\"\\\\d{3}[\\\\dA-Z]{13}\",KW:\"[A-Z]{4}[\\\\dA-Z]{22}\",LV:\"[A-Z]{4}[\\\\dA-Z]{13}\",LB:\"\\\\d{4}[\\\\dA-Z]{20}\",LI:\"\\\\d{5}[\\\\dA-Z]{12}\",LT:\"\\\\d{16}\",LU:\"\\\\d{3}[\\\\dA-Z]{13}\",MK:\"\\\\d{3}[\\\\dA-Z]{10}\\\\d{2}\",MT:\"[A-Z]{4}\\\\d{5}[\\\\dA-Z]{18}\",MR:\"\\\\d{23}\",MU:\"[A-Z]{4}\\\\d{19}[A-Z]{3}\",MC:\"\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}\",MD:\"[\\\\dA-Z]{2}\\\\d{18}\",ME:\"\\\\d{18}\",NL:\"[A-Z]{4}\\\\d{10}\",NO:\"\\\\d{11}\",PK:\"[\\\\dA-Z]{4}\\\\d{16}\",PS:\"[\\\\dA-Z]{4}\\\\d{21}\",PL:\"\\\\d{24}\",PT:\"\\\\d{21}\",RO:\"[A-Z]{4}[\\\\dA-Z]{16}\",SM:\"[A-Z]\\\\d{10}[\\\\dA-Z]{12}\",SA:\"\\\\d{2}[\\\\dA-Z]{18}\",RS:\"\\\\d{18}\",SK:\"\\\\d{20}\",SI:\"\\\\d{15}\",ES:\"\\\\d{20}\",SE:\"\\\\d{20}\",CH:\"\\\\d{5}[\\\\dA-Z]{12}\",TN:\"\\\\d{20}\",TR:\"\\\\d{5}[\\\\dA-Z]{17}\",AE:\"\\\\d{3}\\\\d{16}\",GB:\"[A-Z]{4}\\\\d{14}\",VG:\"[\\\\dA-Z]{4}\\\\d{16}\"},g=h[c],\"undefined\"!=typeof g&&(i=new RegExp(\"^[A-Z]{2}\\\\d{2}\"+g+\"$\",\"\"),!i.test(l)))return!1;for(d=l.substring(4,l.length)+l.substring(0,4),j=0;j9&&a.match(/^(?:(?:(?:00\\s?|\\+)44\\s?|0)7(?:[1345789]\\d{2}|624)\\s?\\d{3}\\s?\\d{3})$/)},\"Please specify a valid mobile number\"),a.validator.addMethod(\"nieES\",function(a){\"use strict\";return a=a.toUpperCase(),a.match(\"((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)\")?/^[T]{1}/.test(a)?a[8]===/^[T]{1}[A-Z0-9]{8}$/.test(a):/^[XYZ]{1}/.test(a)?a[8]===\"TRWAGMYFPDXBNJZSQVHLCKE\".charAt(a.replace(\"X\",\"0\").replace(\"Y\",\"1\").replace(\"Z\",\"2\").substring(0,8)%23):!1:!1},\"Please specify a valid NIE number.\"),a.validator.addMethod(\"nifES\",function(a){\"use strict\";return a=a.toUpperCase(),a.match(\"((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)\")?/^[0-9]{8}[A-Z]{1}$/.test(a)?\"TRWAGMYFPDXBNJZSQVHLCKE\".charAt(a.substring(8,0)%23)===a.charAt(8):/^[KLM]{1}/.test(a)?a[8]===String.fromCharCode(64):!1:!1},\"Please specify a valid NIF number.\"),jQuery.validator.addMethod(\"notEqualTo\",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},\"Please enter a different value, values must not be the same.\"),a.validator.addMethod(\"nowhitespace\",function(a,b){return this.optional(b)||/^\\S+$/i.test(a)},\"No white space please\"),a.validator.addMethod(\"pattern\",function(a,b,c){return this.optional(b)?!0:(\"string\"==typeof c&&(c=new RegExp(\"^(?:\"+c+\")$\")),c.test(a))},\"Invalid format.\"),a.validator.addMethod(\"phoneNL\",function(a,b){return this.optional(b)||/^((\\+|00(\\s|\\s?\\-\\s?)?)31(\\s|\\s?\\-\\s?)?(\\(0\\)[\\-\\s]?)?|0)[1-9]((\\s|\\s?\\-\\s?)?[0-9]){8}$/.test(a)},\"Please specify a valid phone number.\"),a.validator.addMethod(\"phoneUK\",function(a,b){return a=a.replace(/\\(|\\)|\\s+|-/g,\"\"),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\\s?|\\+)44\\s?)|(?:\\(?0))(?:\\d{2}\\)?\\s?\\d{4}\\s?\\d{4}|\\d{3}\\)?\\s?\\d{3}\\s?\\d{3,4}|\\d{4}\\)?\\s?(?:\\d{5}|\\d{3}\\s?\\d{3})|\\d{5}\\)?\\s?\\d{4,5})$/)},\"Please specify a valid phone number\"),a.validator.addMethod(\"phoneUS\",function(a,b){return a=a.replace(/\\s+/g,\"\"),this.optional(b)||a.length>9&&a.match(/^(\\+?1-?)?(\\([2-9]([02-9]\\d|1[02-9])\\)|[2-9]([02-9]\\d|1[02-9]))-?[2-9]([02-9]\\d|1[02-9])-?\\d{4}$/)},\"Please specify a valid phone number\"),a.validator.addMethod(\"phonesUK\",function(a,b){return a=a.replace(/\\(|\\)|\\s+|-/g,\"\"),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\\s?|\\+)44\\s?|0)(?:1\\d{8,9}|[23]\\d{9}|7(?:[1345789]\\d{8}|624\\d{6})))$/)},\"Please specify a valid uk phone number\"),a.validator.addMethod(\"postalCodeCA\",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\\d[A-Z] \\d[A-Z]\\d$/.test(a)},\"Please specify a valid postal code\"),a.validator.addMethod(\"postalcodeBR\",function(a,b){return this.optional(b)||/^\\d{2}.\\d{3}-\\d{3}?$|^\\d{5}-?\\d{3}?$/.test(a)},\"Informe um CEP válido.\"),a.validator.addMethod(\"postalcodeIT\",function(a,b){return this.optional(b)||/^\\d{5}$/.test(a)},\"Please specify a valid postal code\"),a.validator.addMethod(\"postalcodeNL\",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$/.test(a)},\"Please specify a valid postal code\"),a.validator.addMethod(\"postcodeUK\",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\\s?(0AA))$/i.test(a)},\"Please specify a valid UK postcode\"),a.validator.addMethod(\"require_from_group\",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data(\"valid_req_grp\")?f.data(\"valid_req_grp\"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data(\"valid_req_grp\",g),a(c).data(\"being_validated\")||(e.data(\"being_validated\",!0),e.each(function(){g.element(this)}),e.data(\"being_validated\",!1)),h},a.validator.format(\"Please fill at least {0} of these fields.\")),a.validator.addMethod(\"skip_or_fill_minimum\",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data(\"valid_skip\")?f.data(\"valid_skip\"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data(\"valid_skip\",g),a(c).data(\"being_validated\")||(e.data(\"being_validated\",!0),e.each(function(){g.element(this)}),e.data(\"being_validated\",!1)),i},a.validator.format(\"Please either skip these fields or fill at least {0} of them.\")),a.validator.addMethod(\"stateUS\",function(a,b,c){var d,e=\"undefined\"==typeof c,f=e||\"undefined\"==typeof c.caseSensitive?!1:c.caseSensitive,g=e||\"undefined\"==typeof c.includeTerritories?!1:c.includeTerritories,h=e||\"undefined\"==typeof c.includeMilitary?!1:c.includeMilitary;return d=g||h?g&&h?\"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$\":g?\"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$\":\"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$\":\"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$\",d=f?new RegExp(d):new RegExp(d,\"i\"),this.optional(b)||d.test(a)},\"Please specify a valid state\"),a.validator.addMethod(\"strippedminlength\",function(b,c,d){return a(b).text().length>=d},a.validator.format(\"Please enter at least {0} characters\")),a.validator.addMethod(\"time\",function(a,b){return this.optional(b)||/^([01]\\d|2[0-3]|[0-9])(:[0-5]\\d){1,2}$/.test(a)},\"Please enter a valid time, between 00:00 and 23:59\"),a.validator.addMethod(\"time12h\",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\\d){1,2}(\\ ?[AP]M))$/i.test(a)},\"Please enter a valid time in 12-hour am/pm format\"),a.validator.addMethod(\"url2\",function(a,b){return this.optional(b)||/^(https?|ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)*(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod(\"vinUS\",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"J\",\"K\",\"L\",\"M\",\"N\",\"P\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;17>b;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c]*?>/g,\" \").replace(/ | /gi,\" \").replace(/[.(),;:!?%#$'\\\"_+=\\/\\-“”’]*/g,\"\")}a.validator.addMethod(\"maxWords\",function(a,c,d){return this.optional(c)||b(a).match(/\\b\\w+\\b/g).length<=d},a.validator.format(\"Please enter {0} words or less.\")),a.validator.addMethod(\"minWords\",function(a,c,d){return this.optional(c)||b(a).match(/\\b\\w+\\b/g).length>=d},a.validator.format(\"Please enter at least {0} words.\")),a.validator.addMethod(\"rangeWords\",function(a,c,d){var e=b(a),f=/\\b\\w+\\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format(\"Please enter between {0} and {1} words.\"))}(),a.validator.addMethod(\"accept\",function(b,c,d){var e,f,g=\"string\"==typeof d?d.replace(/\\s/g,\"\").replace(/,/g,\"|\"):\"image/*\",h=this.optional(c);if(h)return h;if(\"file\"===a(c).attr(\"type\")&&(g=g.replace(/\\*/g,\".*\"),c.files&&c.files.length))for(e=0;ec;c++)d=h-c,e=f.substring(c,c+1),g+=d*e;return g%11===0},\"Please specify a valid bank account number\"),a.validator.addMethod(\"bankorgiroaccountNL\",function(b,c){return this.optional(c)||a.validator.methods.bankaccountNL.call(this,b,c)||a.validator.methods.giroaccountNL.call(this,b,c)},\"Please specify a valid bank or giro account number\"),a.validator.addMethod(\"bic\",function(a,b){return this.optional(b)||/^([A-Z]{6}[A-Z2-9][A-NP-Z1-2])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(a)},\"Please specify a valid BIC code\"),a.validator.addMethod(\"cifES\",function(a){\"use strict\";var b,c,d,e,f,g,h=[];if(a=a.toUpperCase(),!a.match(\"((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)\"))return!1;for(d=0;9>d;d++)h[d]=parseInt(a.charAt(d),10);for(c=h[2]+h[4]+h[6],e=1;8>e;e+=2)f=(2*h[e]).toString(),g=f.charAt(1),c+=parseInt(f.charAt(0),10)+(\"\"===g?0:parseInt(g,10));return/^[ABCDEFGHJNPQRSUVW]{1}/.test(a)?(c+=\"\",b=10-parseInt(c.charAt(c.length-1),10),a+=b,h[8].toString()===String.fromCharCode(64+b)||h[8].toString()===a.charAt(a.length-1)):!1},\"Please specify a valid CIF number.\"),a.validator.addMethod(\"cpfBR\",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\\[\\]\\-|\\\\:;'<>,.\\/? ])+/g,\"\"),11!==a.length)return!1;var b,c,d,e,f=0;if(b=parseInt(a.substring(9,10),10),c=parseInt(a.substring(10,11),10),d=function(a,b){var c=10*a%11;return(10===c||11===c)&&(c=0),c===b},\"\"===a||\"00000000000\"===a||\"11111111111\"===a||\"22222222222\"===a||\"33333333333\"===a||\"44444444444\"===a||\"58362583625\"===a||\"66666666666\"===a||\"77777777777\"===a||\"88888888888\"===a||\"99999999999\"===a)return!1;for(e=1;9>=e;e++)f+=parseInt(a.substring(e-1,e),10)*(11-e);if(d(f,b)){for(f=0,e=1;10>=e;e++)f+=parseInt(a.substring(e-1,e),10)*(12-e);return d(f,c)}return!1},\"Please specify a valid CPF number\"),a.validator.addMethod(\"creditcardtypes\",function(a,b,c){if(/[^0-9\\-]+/.test(a))return!1;a=a.replace(/\\D/g,\"\");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&/^(5[12345])/.test(a)?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:128&d?!0:!1},\"Please enter a valid credit card number.\"),a.validator.addMethod(\"currency\",function(a,b,c){var d,e=\"string\"==typeof c,f=e?c:c[0],g=e?!0:c[1];return f=f.replace(/,/g,\"\"),f=g?f+\"]\":f+\"]?\",d=\"^[\"+f+\"([1-9]{1}[0-9]{0,2}(\\\\,[0-9]{3})*(\\\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\\\.[0-9]{0,2})?|0(\\\\.[0-9]{0,2})?|(\\\\.[0-9]{1,2})?)$\",d=new RegExp(d),this.optional(b)||d.test(a)},\"Please specify a valid currency\"),a.validator.addMethod(\"dateFA\",function(a,b){return this.optional(b)||/^[1-4]\\d{3}\\/((0?[1-6]\\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod(\"dateITA\",function(a,b){var c,d,e,f,g,h=!1,i=/^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/;return i.test(a)?(c=a.split(\"/\"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d?!0:!1):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod(\"dateNL\",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\\d|3[01])[\\.\\/\\-](0?[1-9]|1[012])[\\.\\/\\-]([12]\\d)?(\\d\\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod(\"extension\",function(a,b,c){return c=\"string\"==typeof c?c.replace(/,/g,\"|\"):\"png|jpe?g|gif\",this.optional(b)||a.match(new RegExp(\"\\\\.(\"+c+\")$\",\"i\"))},a.validator.format(\"Please enter a value with a valid extension.\")),a.validator.addMethod(\"giroaccountNL\",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},\"Please specify a valid giro account number\"),a.validator.addMethod(\"iban\",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,\"\").toUpperCase(),m=\"\",n=!0,o=\"\",p=\"\";if(c=l.substring(0,2),h={AL:\"\\\\d{8}[\\\\dA-Z]{16}\",AD:\"\\\\d{8}[\\\\dA-Z]{12}\",AT:\"\\\\d{16}\",AZ:\"[\\\\dA-Z]{4}\\\\d{20}\",BE:\"\\\\d{12}\",BH:\"[A-Z]{4}[\\\\dA-Z]{14}\",BA:\"\\\\d{16}\",BR:\"\\\\d{23}[A-Z][\\\\dA-Z]\",BG:\"[A-Z]{4}\\\\d{6}[\\\\dA-Z]{8}\",CR:\"\\\\d{17}\",HR:\"\\\\d{17}\",CY:\"\\\\d{8}[\\\\dA-Z]{16}\",CZ:\"\\\\d{20}\",DK:\"\\\\d{14}\",DO:\"[A-Z]{4}\\\\d{20}\",EE:\"\\\\d{16}\",FO:\"\\\\d{14}\",FI:\"\\\\d{14}\",FR:\"\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}\",GE:\"[\\\\dA-Z]{2}\\\\d{16}\",DE:\"\\\\d{18}\",GI:\"[A-Z]{4}[\\\\dA-Z]{15}\",GR:\"\\\\d{7}[\\\\dA-Z]{16}\",GL:\"\\\\d{14}\",GT:\"[\\\\dA-Z]{4}[\\\\dA-Z]{20}\",HU:\"\\\\d{24}\",IS:\"\\\\d{22}\",IE:\"[\\\\dA-Z]{4}\\\\d{14}\",IL:\"\\\\d{19}\",IT:\"[A-Z]\\\\d{10}[\\\\dA-Z]{12}\",KZ:\"\\\\d{3}[\\\\dA-Z]{13}\",KW:\"[A-Z]{4}[\\\\dA-Z]{22}\",LV:\"[A-Z]{4}[\\\\dA-Z]{13}\",LB:\"\\\\d{4}[\\\\dA-Z]{20}\",LI:\"\\\\d{5}[\\\\dA-Z]{12}\",LT:\"\\\\d{16}\",LU:\"\\\\d{3}[\\\\dA-Z]{13}\",MK:\"\\\\d{3}[\\\\dA-Z]{10}\\\\d{2}\",MT:\"[A-Z]{4}\\\\d{5}[\\\\dA-Z]{18}\",MR:\"\\\\d{23}\",MU:\"[A-Z]{4}\\\\d{19}[A-Z]{3}\",MC:\"\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}\",MD:\"[\\\\dA-Z]{2}\\\\d{18}\",ME:\"\\\\d{18}\",NL:\"[A-Z]{4}\\\\d{10}\",NO:\"\\\\d{11}\",PK:\"[\\\\dA-Z]{4}\\\\d{16}\",PS:\"[\\\\dA-Z]{4}\\\\d{21}\",PL:\"\\\\d{24}\",PT:\"\\\\d{21}\",RO:\"[A-Z]{4}[\\\\dA-Z]{16}\",SM:\"[A-Z]\\\\d{10}[\\\\dA-Z]{12}\",SA:\"\\\\d{2}[\\\\dA-Z]{18}\",RS:\"\\\\d{18}\",SK:\"\\\\d{20}\",SI:\"\\\\d{15}\",ES:\"\\\\d{20}\",SE:\"\\\\d{20}\",CH:\"\\\\d{5}[\\\\dA-Z]{12}\",TN:\"\\\\d{20}\",TR:\"\\\\d{5}[\\\\dA-Z]{17}\",AE:\"\\\\d{3}\\\\d{16}\",GB:\"[A-Z]{4}\\\\d{14}\",VG:\"[\\\\dA-Z]{4}\\\\d{16}\"},g=h[c],\"undefined\"!=typeof g&&(i=new RegExp(\"^[A-Z]{2}\\\\d{2}\"+g+\"$\",\"\"),!i.test(l)))return!1;for(d=l.substring(4,l.length)+l.substring(0,4),j=0;j9&&a.match(/^(?:(?:(?:00\\s?|\\+)44\\s?|0)7(?:[1345789]\\d{2}|624)\\s?\\d{3}\\s?\\d{3})$/)},\"Please specify a valid mobile number\"),a.validator.addMethod(\"nieES\",function(a){\"use strict\";return a=a.toUpperCase(),a.match(\"((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)\")?/^[T]{1}/.test(a)?a[8]===/^[T]{1}[A-Z0-9]{8}$/.test(a):/^[XYZ]{1}/.test(a)?a[8]===\"TRWAGMYFPDXBNJZSQVHLCKE\".charAt(a.replace(\"X\",\"0\").replace(\"Y\",\"1\").replace(\"Z\",\"2\").substring(0,8)%23):!1:!1},\"Please specify a valid NIE number.\"),a.validator.addMethod(\"nifES\",function(a){\"use strict\";return a=a.toUpperCase(),a.match(\"((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)\")?/^[0-9]{8}[A-Z]{1}$/.test(a)?\"TRWAGMYFPDXBNJZSQVHLCKE\".charAt(a.substring(8,0)%23)===a.charAt(8):/^[KLM]{1}/.test(a)?a[8]===String.fromCharCode(64):!1:!1},\"Please specify a valid NIF number.\"),jQuery.validator.addMethod(\"notEqualTo\",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},\"Please enter a different value, values must not be the same.\"),a.validator.addMethod(\"nowhitespace\",function(a,b){return this.optional(b)||/^\\S+$/i.test(a)},\"No white space please\"),a.validator.addMethod(\"pattern\",function(a,b,c){return this.optional(b)?!0:(\"string\"==typeof c&&(c=new RegExp(\"^(?:\"+c+\")$\")),c.test(a))},\"Invalid format.\"),a.validator.addMethod(\"phoneNL\",function(a,b){return this.optional(b)||/^((\\+|00(\\s|\\s?\\-\\s?)?)31(\\s|\\s?\\-\\s?)?(\\(0\\)[\\-\\s]?)?|0)[1-9]((\\s|\\s?\\-\\s?)?[0-9]){8}$/.test(a)},\"Please specify a valid phone number.\"),a.validator.addMethod(\"phoneUK\",function(a,b){return a=a.replace(/\\(|\\)|\\s+|-/g,\"\"),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\\s?|\\+)44\\s?)|(?:\\(?0))(?:\\d{2}\\)?\\s?\\d{4}\\s?\\d{4}|\\d{3}\\)?\\s?\\d{3}\\s?\\d{3,4}|\\d{4}\\)?\\s?(?:\\d{5}|\\d{3}\\s?\\d{3})|\\d{5}\\)?\\s?\\d{4,5})$/)},\"Please specify a valid phone number\"),a.validator.addMethod(\"phoneUS\",function(a,b){return a=a.replace(/\\s+/g,\"\"),this.optional(b)||a.length>9&&a.match(/^(\\+?1-?)?(\\([2-9]([02-9]\\d|1[02-9])\\)|[2-9]([02-9]\\d|1[02-9]))-?[2-9]([02-9]\\d|1[02-9])-?\\d{4}$/)},\"Please specify a valid phone number\"),a.validator.addMethod(\"phonesUK\",function(a,b){return a=a.replace(/\\(|\\)|\\s+|-/g,\"\"),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\\s?|\\+)44\\s?|0)(?:1\\d{8,9}|[23]\\d{9}|7(?:[1345789]\\d{8}|624\\d{6})))$/)},\"Please specify a valid uk phone number\"),a.validator.addMethod(\"postalCodeCA\",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\\d[A-Z] \\d[A-Z]\\d$/.test(a)},\"Please specify a valid postal code\"),a.validator.addMethod(\"postalcodeBR\",function(a,b){return this.optional(b)||/^\\d{2}.\\d{3}-\\d{3}?$|^\\d{5}-?\\d{3}?$/.test(a)},\"Informe um CEP válido.\"),a.validator.addMethod(\"postalcodeIT\",function(a,b){return this.optional(b)||/^\\d{5}$/.test(a)},\"Please specify a valid postal code\"),a.validator.addMethod(\"postalcodeNL\",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$/.test(a)},\"Please specify a valid postal code\"),a.validator.addMethod(\"postcodeUK\",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\\s?(0AA))$/i.test(a)},\"Please specify a valid UK postcode\"),a.validator.addMethod(\"require_from_group\",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data(\"valid_req_grp\")?f.data(\"valid_req_grp\"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data(\"valid_req_grp\",g),a(c).data(\"being_validated\")||(e.data(\"being_validated\",!0),e.each(function(){g.element(this)}),e.data(\"being_validated\",!1)),h},a.validator.format(\"Please fill at least {0} of these fields.\")),a.validator.addMethod(\"skip_or_fill_minimum\",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data(\"valid_skip\")?f.data(\"valid_skip\"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data(\"valid_skip\",g),a(c).data(\"being_validated\")||(e.data(\"being_validated\",!0),e.each(function(){g.element(this)}),e.data(\"being_validated\",!1)),i},a.validator.format(\"Please either skip these fields or fill at least {0} of them.\")),a.validator.addMethod(\"stateUS\",function(a,b,c){var d,e=\"undefined\"==typeof c,f=e||\"undefined\"==typeof c.caseSensitive?!1:c.caseSensitive,g=e||\"undefined\"==typeof c.includeTerritories?!1:c.includeTerritories,h=e||\"undefined\"==typeof c.includeMilitary?!1:c.includeMilitary;return d=g||h?g&&h?\"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$\":g?\"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$\":\"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$\":\"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$\",d=f?new RegExp(d):new RegExp(d,\"i\"),this.optional(b)||d.test(a)},\"Please specify a valid state\"),a.validator.addMethod(\"strippedminlength\",function(b,c,d){return a(b).text().length>=d},a.validator.format(\"Please enter at least {0} characters\")),a.validator.addMethod(\"time\",function(a,b){return this.optional(b)||/^([01]\\d|2[0-3]|[0-9])(:[0-5]\\d){1,2}$/.test(a)},\"Please enter a valid time, between 00:00 and 23:59\"),a.validator.addMethod(\"time12h\",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\\d){1,2}(\\ ?[AP]M))$/i.test(a)},\"Please enter a valid time in 12-hour am/pm format\"),a.validator.addMethod(\"url2\",function(a,b){return this.optional(b)||/^(https?|ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)*(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod(\"vinUS\",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"J\",\"K\",\"L\",\"M\",\"N\",\"P\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;17>b;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c 2.3)\n", + "print(f\"percentage samples with fertility_ratio < 2: {len(filtered)*100/len(ds)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "define({\n", + " \"visible\": \"显示默认的总览图\",\n", + " \"minWidth\": \"最小宽度\",\n", + " \"minHeight\": \"最小高度\",\n", + " \"maxWidth\": \"最大宽度\",\n", + " \"maxHeight\": \"最大高度\",\n", + " \"minText\": \"最小值\",\n", + " \"maxText\": \"最大值\",\n", + " \"attachText\": \"指定要在地图的哪个地方附加此微件。\",\n", + " \"expandText\": \"初始展开微件\",\n", + " \"topLeft\": \"左上\",\n", + " \"topRight\": \"右上\",\n", + " \"bottomLeft\": \"左下\",\n", + " \"bottomRight\": \"右下\",\n", + " \"baseLayerType\": \"显示\",\n", + " \"BaseMap\": \"地图的底图\",\n", + " \"ArcGIS\": \"ArcGIS\",\n", + " \"tiledMapService\": \"ArcGIS 切片地图服务\",\n", + " \"dynamicMapService\": \"ArcGIS 动态地图服务\",\n", + " \"imageService\": \"ArcGIS 影像服务\",\n", + " \"OSM\": \"开放街道地图\",\n", + " \"bingRoad\": \"Bing 道路地图\",\n", + " \"bingAerial\": \"Bing 影像地图\",\n", + " \"bingHybrid\": \"Bing 混合地图\",\n", + " \"WebTiled\": \"Web 切片图层\",\n", + " \"VETiled\": \"Virtual Earth 切片图层\",\n", + " \"tileLayerUrl\": \"切片图层 Url\",\n", + " \"tile\": \"标题\",\n", + " \"credits\": \"制作者名单\",\n", + " \"subdomain\": \"子域\",\n", + " \"extent\": \"范围\",\n", + " \"initExtent\": \"初始范围\",\n", + " \"tileInfo\": \"TileInfo\",\n", + " \"VEStyle\": \"Virtual Earth 风格\",\n", + " \"Aerial\": \"Bing 航空地图图层\",\n", + " \"AerialWithLabels\": \"具有标注的航空图图层\",\n", + " \"Roads\": \"道路图层\",\n", + " \"errWkid\": \"wkid 不匹配\",\n", + " \"errUrl\": \"URL 无效\",\n", + " \"errReqTimeout\": \"超时\",\n", + " \"layerPlaceholder\": \"输入 URL\"\n", + "});\n" + ] + } + ], + "source": [ + "print(filtered[0][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import React from 'react';\n", + "import {\n", + " StyleSheet,\n", + " Text,\n", + " View,\n", + " Dimensions,\n", + " ScrollView,\n", + " TouchableOpacity,\n", + " Image,\n", + " Alert,\n", + " StatusBar,\n", + " Platform,\n", + "} from 'react-native';\n", + "import Modal from 'react-native-modal';\n", + "import SearchableDropdown from 'react-native-searchable-dropdown';\n", + "import ImageViewer from 'react-native-image-zoom-viewer';\n", + "const { width } = Dimensions.get('window');\n", + "//Item array for the dropdown\n", + "var itemsDiurno = [\n", + " //name key is must.It is to show the text in front\n", + " { id: 71, name: 'L001 - Presidente Vargas-Diamantino', key: 'LinhaDiurno71'},\n", + " { id: 72, name: 'L002 - Serrano', key: 'LinhaDiurno72'},\n", + " { id: 41, name: 'L003 - Petrópolis-Treviso-BR 116', key: 'LinhaDiurno41'},\n", + " { id: 26, name: 'L004 - Industrial-Santo Antonio-Vila Ipê-Colinado Sol-Belo Horizonte-Rota do Sol', key: 'LinhaDiurno26'},\n", + " { id: 49, name: 'L005 - São Gotardo-Santa Bárbara-Loteamento Bachi-Vila Alpina', key: 'LinhaDiurno49'},\n", + " { id: 62, name: 'L006 - Serrano', key: 'LinhaDiurno62'},\n", + " { id: 62, name: 'L007 -Jardim Iracema', key: 'LinhaDiurno'},\n", + " { id: 11, name: 'L008 - Cruzeiro', key: 'LinhaDiurno11'},\n", + " { id: 60, name: 'L009 - Século XX-Mariland-Jardim das Hortências-Jardim Eldorado', key: 'LinhaDiurno60'},\n", + " { id: 10, name: 'L010 - Cruzeiro-São Luiz-Campos da Serra-De Zorzi II', key: 'LinhaDiurno10'},\n", + " { id: 19, name: 'L011 - Fátima-Morada dos Alpes', key: 'LinhaDiurno19'},\n", + " { id: 57, name: 'L012 - São Valentin-Parada Cristal-Travessão Porto-Loteamente Balardin', key: 'LinhaDiurno57'},\n", + " { id: 17, name: 'L013 - Farroupilha', key: 'LinhaDiurno17'},\n", + " { id: 61, name: 'L014 - Serrano-Santo Antônio', key: 'LinhaDiurno61'},\n", + " { id: 69, name: 'L015 - Vinhedos-Nossa Senhora da Saúde-Vila Ipê-Belo Horizonte', key: 'LinhaDiurno69'},\n", + " { id: 53, name: 'L016 - São Marcos', key: 'LinhaDiurno53'},\n", + " { id: 52, name: 'L017 - São Marcos-Pedras Brancas', key: 'LinhaDiurno52'},\n", + " { id: 46, name: 'L018 - Santa Catarina-Pio X-Pioneiro-Por do Sol-Centenário-Santa Fé', key: 'LinhaDiurno46'},\n", + " { id: 43, name: 'L019 - Rio Branco-São Leopoldo', key: 'LinhaDiurno43'},\n", + " { id: 33, name: 'L020 - Madureira-Universitário-Nossa Senhora de Fátima', key: 'LinhaDiurno33'},\n", + " { id: 58, name: 'L021 - São Victor Cohab-Santa Bárbara-Vitória-Paiquerê', key: 'LinhaDiurno58'},\n", + " { id: 50, name: 'L022 - São José-Centenário-São Ciro I-São Ciro II', key: 'LinhaDiurno50'},\n", + " { id: 27, name: 'L023 - Jardim América-Centro-Lourdes', key: 'LinhaDiurno27'},\n", + " { id: 59, name: 'L024 - São Virgílio-Bela Vista-La Paloma-Vila Leon-Recantodos Pássaros-São Francisco', key: 'LinhaDiurno59'},\n", + " { id: 40, name: 'L025 - Panazzolo-Cristo Redentor-BR 116', key: 'LinhaDiurno40'},\n", + " { id: 7, name: 'L026 - Centro-Exposição-Ipiranga-Lourdes-BR 116', key: 'LinhaDiurno07'},\n", + " { id: 68, name: 'L027 - Vila Verde-Planalto', key: 'LinhaDiurno68'},\n", + " { id: 30, name: 'L028 - Jardim Iracema', key: 'LinhaDiurno30'},\n", + " { id: 24, name: 'L029 - Forqueta Baixa-Arroio do Ouro-Nova Palmira', key: 'LinhaDiurno24'},\n", + " { id: 38, name: 'L030 - Nossa Sra. do Rosário', key: 'LinhaDiurno38'},\n", + " { id: 6, name: 'L031 - Castelo-São Cristóvão', key: 'LinhaDiurno06'},\n", + " { id: 35, name: 'L032 - Mariani-Reolon-Marechal Floriano', key: 'LinhaDiurno35'},\n", + " { id: 67, name: 'L033 - Vila Seca-Boca da Serra-Ana Rech-Solar do Prado', key: 'LinhaDiurno67'},\n", + " { id: 56, name: 'L034 - São Roque-Fazenda Souza-São Braz-Rota do Sol', key: 'LinhaDiurno56'},\n", + " { id: 13, name: 'L035 - Desvio Rizzo', key: 'LinhaDiurno13'},\n", + " { id: 42, name: 'L036 - Planalto-Monte Reale', key: 'LinhaDiurno42'},\n", + " { id: 3, name: 'L037 - Bela Vista-Cruzeiro', key: 'LinhaDiurno03'},\n", + " { id: 12, name: 'L038 - Desvio Rizzo', key: 'LinhaDiurno12'},\n", + " { id: 29, name: 'L039 - Jardim Esmeralda-Fátima', key: 'LinhaDiurno29'},\n", + " { id: 47, name: 'L040 - Santo Antônio-Jardim Iracema-Serrano', key: 'LinhaDiurno47'},\n", + " { id: 31, name: 'L041 - Kaiser-Bom Pastor-São Caetano', key: 'LinhaDiurno31'},\n", + " { id: 64, name: 'L042 - Veneza-Santa Fé-Belo Horizonte', key: 'LinhaDiurno64'},\n", + " { id: 48, name: 'L100 - Santos Dumont', key: 'LinhaDiurno48'},\n", + " { id: 2, name: 'L101 - 4ª Légua-Galópolis', key: 'LinhaDiurno02'},\n", + " { id: 22, name: 'L102 - Flores da Cunha', key: 'LinhaDiurno22'},\n", + " { id: 18, name: 'L103 - Farroupilha', key: 'LinhaDiurno18'},\n", + " { id: 23, name: 'L104 - Floresta-São Catano-São Caetano do Sul', key: 'LinhaDiurno23'},\n", + " { id: 8, name: 'L105 - Cidade Nova', key: 'LinhaDiurno08'},\n", + " { id: 63, name: 'L106 - Veneto-Vila Lobos-Santa Corona', key: 'LinhaDiurno63'},\n", + " { id: 51, name: 'L107 - São José-Fátima-Vila Mari', key: 'LinhaDiurno51'},\n", + " { id: 54, name: 'L108 - São Mateus-Monte Carmelo-Consolação-Esplanada', key: 'LinhaDiurno54'},\n", + " { id: 20, name: 'L109 - Feliz-Coqueral-Piacada Cará-São Roque-Bananal-Linha Temerária-Tirol-Vila Cristina', key: 'LinhaDiurno20'},\n", + " { id: 55, name: 'L110 - São Pedro-Centro Alto Feliz-Arroio Feliz-Vale Real', key: 'LinhaDiurno55'},\n", + " { id: 21, name: 'L111 - Feliz-Arroio do Ouro', key: 'LinhaDiurno21'},\n", + " { id: 66, name: 'L112 - Vila Rica-RS 452', key: 'LinhaDiurno66'},\n", + " { id: 65, name: 'L113 - Vila Pinga-Vale Real', key: 'LinhaDiurno65'},\n", + " { id: 14, name: 'L114 - Escadinhas-Canto do Rio-Matiel', key: 'LinhaDiurno14'},\n", + " { id: 5, name: 'L115 - Canto Krewer-Vale Real', key: 'LinhaDiurno05'},\n", + " { id: 4, name: 'L116 - Bom Princípio-Vale do Hermes-Morro Paris', key: 'LinhaDiurno04'},\n", + " { id: 25, name: 'L117 - Forqueta-São Pelegrino-Centro-Jardelino Ramos-Sagrada Família', key: 'LinhaDiurno25'},\n", + " { id: 39, name: 'L118 - Nova Petrópolis-Vila Cristina-Galópolis', key: 'LinhaDiurno39'},\n", + " { id: 70, name: 'L119 - Planalto Rio Branco', key: 'LinhaDiurno70'},\n", + " { id: 45, name: 'L120 - Rosario-Charqueadas-São Leopoldo', key: 'LinhaDiurno45'},\n", + " { id: 28, name: 'L121 - Jardim do Shopping-Rosário II-Altos San Tiago', key: 'LinhaDiurno28'},\n", + " { id: 36, name: 'L122 - Mariani', key: 'LinhaDiurno36'},\n", + " { id: 34, name: 'L123 - Marechal Floriano-Cinquentenário-Rio Branco-Panazzolo-Planalto', key: 'LinhaDiurno34'},\n", + " { id: 15, name: 'L124 - Esplanada-Arco Baleno-União-São Caetano-Bom Pastor', key: 'LinhaDiurno15'},\n", + " { id: 44, name: 'L125 - Rio Branco-Kaiser-Bom Pastor-Salgado Filho', key: 'LinhaDiurno44'},\n", + " { id: 1, name: 'L126 - 3ª Légua-Oriental-Nossa Senhora das Graças', key: 'LinhaDiurno01'},\n", + " { id: 9, name: 'L128 - Colina Sorriso-Altos do Seminário-Santa Lúcia-Santa Catarina-Centro-Planalto', key: 'LinhaDiurno09'},\n", + " { id: 32, name: 'L129 - Madureira-1º de Maio-Centro-Avenida São Leopoldo-Sagrada Familia', key: 'LinhaDiurno32'},\n", + " { id: 16, name: 'L130 - Esplanada-Planalto', key: 'LinhaDiurno16'},\n", + " { id: 37, name: 'L131 - Nossa Senhora das Graças-Caravaggio-Monte Carmelo-Kaiser-Planalto-Bela Vista', key: 'LinhaDiurno37'}, \n", + "];\n", + "var itemsNoturno = [\n", + " //name key is must.It is to show the text in front\n", + " { id: 21, name: 'L001 - Galópolis-Santa Corona', key: 'LinhaNoturno21'},\n", + " { id: 16, name: 'L002 - Diamantino-De Zorzi I-De Zorzi II-Campos da Serra-Belvedere-São Luiz', key: 'LinhaNoturno16'},\n", + " { id: 51, name: 'L003 - São Vitor Cohab-Santa Barbara-Vitória-Loteamento Paiquere-Bela Vista', key: 'LinhaNoturno51'},\n", + " { id: 13, name: 'L004 - Consolação-Monte Carmelo-Montes Claros', key: 'LinhaNoturno13'},\n", + " { id: 8,  name: 'L005 - Canyon-Brandalise-Santo Antônio-Colina do Sol-Vila Ipê-Belo Horizonte', key: 'LinhaNoturno08'},\n", + " { id: 39, name: 'L006 - Santo Antônio 6ª Légua-São Virgílio 6ª Légua-Bela Vista-Vila Leon', key: 'LinhaNoturno40'},\n", + " { id: 32, name: 'L007 - Planalto II-Planalto', key: 'LinhaNoturno32'},\n", + " { id: 1,  name: 'L008 - 3ª Légua-Oriental-Nossa Senhoradas Graças-Caravaggio', key: 'LinhaNoturno01'},\n", + " { id: 37, name: 'L009 - Santa Catarina-Madureira-1º de Maio-Universitário-Jardim América-Sagrada Família', key: 'LinhaNoturno37'},\n", + " { id: 15, name: 'L010 - De Lazzer-Século XX-Marilan-São Ciro-São Ciro II', key: 'LinhaNoturno15'},\n", + " { id: 34, name: 'L011 - Presidente Vargas-Diamantino-Residencial Treviso-São Ciro BR116', key: 'LinhaNoturno34'},\n", + " { id: 49, name: 'L012 - São Lucas-Desvio Rizzo-Vila Romana-Santa Tereza-Conceição-Pedreira do Guerra', key: 'LinhaNoturno49'},\n", + " { id: 24, name: 'L013 - Jardim Itália-Santa Lúcia-Colina Sorriso-Santa Catarina-Pioneiro', key: 'LinhaNoturno24'},\n", + " { id: 60, name: 'L014 - Serrano', key: 'LinhaNoturno60'},\n", + " { id: 54, name: 'L015 - Tijuca-Reolon-Mariane I-Mariane II-Cidade Nova-Industrial', key: 'LinhaNoturno54'},\n", + " { id: 27, name: 'L016 - Loteamento Santiago-Rosário II-São Francisco-Vila Amélia-Rosário-Jardimdo Shopping', key: 'LinhaNoturno27'},\n", + " { id: 33, name: 'L017 - Planalto Rio Branco-Intral-Perimetral Bruno Segala', key: 'LinhaNoturno33'},\n", + " { id: 48, name: 'L018 - São Leopoldo-Vila Verde-Planalto', key: 'LinhaNoturno48'},\n", + " { id: 22, name: 'L019 - Jardelino Ramos-Cristo Redentor-Lourdes', key: 'LinhaNoturno22'},\n", + " { id: 23, name: 'L020 - Jardim Iracema-Brasília', key: 'LinhaNoturno23'},\n", + " { id: 6,  name: 'L021 - Bom Pastor-Bom Pastor I-Bom Pastor II-Santos Dumont', key: 'LinhaNoturno06'},\n", + " { id: 29, name: 'L022 - Nossa Senhora da Saúde-Vinhedos-SãoJosé-BeloHorizonte', key: 'LinhaNoturno29'},\n", + " { id: 19, name: 'L023 - Fátima-Interlagos', key: 'LinhaNoturno19'},\n", + " { id: 45, name: 'L024 - São Cristóvão-Serrano', key: 'LinhaNoturno45'},\n", + " { id: 9,  name: 'L025 - Castelo-Solar do Prado-Ana Rech', key: 'LinhaNoturno09'},\n", + " { id: 11, name: 'L026 - Centro-Imigrante BR-Petrópolis UCS-Presidente Vargas BR', key: 'LinhaNoturno11'},\n", + " { id: 42, name: 'L027 - São Caetano', key: 'LinhaNoturno42'},\n", + " { id: 12, name: 'L028 - Cidade Nova-Monte Bérico', key: 'LinhaNoturno12'},\n", + " { id: 43, name: 'L029 - São Caetano-Arco Baleno-Kaiser-Floresta-União-Perimetral-Cinquentenário-Santa Catarina', key: 'LinhaNoturno43'},\n", + " { id: 57, name: 'L030 - Vila Mari-Planato I-Bela Vista-BR 116', key: 'LinhaNoturno57'},\n", + " { id: 7,  name: 'L031 - Canto Krewer-Vale Real', key: 'LinhaNoturno07'},\n", + " { id: 17, name: 'L032 - Esplanada-Bom Pastor-Kaiser-Rio Branco-Cinquentenário-São José', key: 'LinhaNoturno17'},\n", + " { id: 55, name: 'L033 - Vila Ipiranga-Cruzeiro-Bela Vista', key: 'LinhaNoturno55'},\n", + " { id: 52, name: 'L034 - Serrano-Jardim Adorado', key: 'LinhaNoturno52'},\n", + " { id: 31, name: 'L035 - Planalto II-Monte Reale-Planalto I', key: 'LinhaNoturno31'},\n", + " { id: 40, name: 'L036 - Santo Antônio-Iracema-Serrano', key: 'LinhaNoturno41'},\n", + " { id: 10, name: 'L037 - Centenário-Parque Oásis', key: 'LinhaNoturno10'},\n", + " { id: 47, name: 'L038 - São Leopoldo-Rio Branco-São Pelegrino-Jardim das Hortências', key: 'LinhaNoturno47'},\n", + " { id: 59, name: 'L039 - Feliz-Morro Paris-Canto Krewer', key: 'LinhaNoturno59'},\n", + " { id: 20, name: 'L040 - Alto Feliz-Vale Real-MP Planalto', key: 'LinhaNoturno20'},\n", + " { id: 36, name: 'L041 - Samuara-Forqueta-Tirol-São Leopoldo-Panazzolo', key: 'LinhaNoturno36'},\n", + " { id: 58, name: 'L042 - Vila Seca-Boca de Serra', key: 'LinhaNoturno58'},\n", + " { id: 35, name: 'L043 - Rota do Sol-Faxinal-São Bráz-Fazenda Souza', key: 'LinhaNoturno35'},\n", + " { id: 4,  name: 'L044 - Bananal-São Roque-Vila Pavão-Picada Cará-Vila Rica-Feliz-Arroio Feliz-Vila Cristina', key: 'LinhaNoturno04'},\n", + " { id: 26, name: 'L045 - Loteamento Santa Rita-Parquedos Pinhais-Parada Cristal-Balardin-Loteamento Back-Brasília', key: 'LinhaNoturno26'},\n", + " { id: 50, name: 'L046 - São Pelegrino-Centro-Nsª de Lourdes-Hospital Geral BR 116-Cartório BR 116-Daniel Fut7', key: 'LinhaNoturno50'},\n", + " { id: 18, name: 'L047 - Esplanada-Salgado Filho', key: 'LinhaNoturno18'},\n", + " { id: 14, name: 'L048 - Cruzeiro-De Zorzi-Diamantino', key: 'LinhaNoturno14'},\n", + " { id: 44, name: 'L049 - São Caetano-Esplanada-BR 116', key: 'LinhaNoturno44'},\n", + " { id: 38, name: 'L050 - Santa Fé-São Bernardo-Santo Antonio', key: 'LinhaNoturno38'},\n", + " { id: 25, name: 'L051 - Loteamento Mandrean-Desvio Rizzo-Parquedas Rosas', key: 'LinhaNoturno25'},\n", + " { id: 41, name: 'L052 - Santo Antônio-Iracema-Serrano', key: 'LinhaNoturno41'},\n", + " { id: 28, name: 'L053 - Morada dos Alpes-Vitório III-Fátima Baixo-Fátima-Parque Oásis-Nossa Senhora do Rosário', key: 'LinhaNoturno28'},\n", + " { id: 5,  name: 'L054 - Boca da Serra-São Gotardo-Santa Bárbara', key: 'LinhaNoturno05'},\n", + " { id: 3,  name: 'L055 - Arroiodo Ouro-Nova Palmira-Vila Cristina-Galópolis', key: 'LinhaNoturno03'},\n", + " { id: 56, name: 'L056 - Vila Lobos-São Leopoldo-Exposição-Centro-Pio X-Perimetral Norte-Universitário-Interlagos-Sagrada Família', key: 'LinhaNoturno56'},\n", + " { id: 46, name: 'L057 - São Giácomo-Matioda-Reolon-Belo Horizonte-São José-Santa Catarina-Santo André-Tijuca-Fátima Baixo', key: 'LinhaNoturno46'},\n", + " { id: 53, name: 'L058 - Serrano', key: 'LinhaNoturno53'},\n", + " { id: 2,  name: 'L059 - Arco Baleno-Esplanada-Santos Dumont-Kaiser-Salgado Filho', key: 'LinhaNoturno02'},\n", + " { id: 30, name: 'L060 - Nossa Senhora das Graças-Esplanada-Caravagio II-Glória-Bela Vista-Cruzeiro', key: 'LinhaNoturno30'}, \n", + "];\n", + "var itemsTerceiroTurno = [\n", + " //name key is must.It is to show the text in front\n", + " { id: 4, name: 'L001 - Desvio Rizzo-São lucas-Parque das Rosas-Marechal Floriano', key: 'LinhaTerceiroTurno04'},\n", + " { id: 7, name: 'L002 - Kaiser-Rio Branco-Presidente Vargas-Diamantino', key: 'LinhaTerceiroTurno07'},\n", + " { id: 1, name: 'L004 - Cidade Nova-Mariani-Reolon-Santo André-Santa Catarina-Perimetral(Medianeira)-Mariland', key: 'LinhaTerceiroTurno01'},\n", + " { id: 11, name:'L005 - Serrano-Parada Cristal-Iracema-Eldorado-Santa Barbara-Loteamento Back-Solar Prado-Ana Rech', key: 'LinhaTerceiroTurno11'},\n", + " { id: 8, name: 'L006 - Parque Oásis-Santa Fé-Colina do Sol-Pioneiro-Fátima-Centenário-Belo Horizonte-Vila Ipê-São José', key: 'LinhaTerceiroTurno08'},\n", + " { id: 2, name: 'L007 - Consolação-São Matheus-Oriental', key: 'LinhaTerceiroTurno02'},\n", + " { id: 5, name: 'L008 - Galópolis-Vila Lobos-Santa Corona-UCS-Jardim das Hortências', key: 'LinhaTerceiroTurno05'},\n", + " { id: 10, name:'L009 - Santa Tereza-Desvio Rizzo-Jardim do Shopping-Rosário I-Planalto-Rio Branco', key: 'LinhaTerceiroTurno10'},\n", + " { id: 3, name: 'L010 - Cruzeiro-Vila leon-São Luiz-Campos da Serra-Dezorzi-Treviso', key: 'LinhaTerceiroTurno03'},\n", + " { id: 6, name: 'L011 - Kaiser-Bom Pastor-São Caetano-Caravagio-Oriental-Esplanada', key: 'LinhaTerceiroTurno06'},\n", + " { id: 9, name: 'L012 - Planalto-Vila Mari-São Vitor-Vitória', key: 'LinhaTerceiroTurno09'},\n", + " \n", + "];\n", + "var itemsSaidaDiurno = [\n", + " //name key is must.It is to show the text in front\n", + "{id: 1, name: 'FELIZ', prestadora: 'NOVA PALMIRA', linha: '1'},\n", + "{id: 1, name: 'VILA PINGA', prestadora: 'NOVA PALMIRA', linha: '1'},\n", + "{id: 1, name: 'VILA RICA', prestadora: 'NOVA PALMIRA', linha: '1'},\n", + "{id: 2, name: 'FARROUPILHA', prestadora: 'UNIDOS', linha: '2'},\n", + "{id: 3, name: 'NOVA PETROPOLIS', prestadora: 'NOVA PALMIRA', linha: '3'},\n", + "{id: 3, name: 'VILA CRISTINA', prestadora: 'NOVA PALMIRA', linha: '3'},\n", + "{id: 4, name: 'DESVIO RIZZO', prestadora: 'UNIDOS', linha: '4'},\n", + "{id: 4, name: 'INDUSTRIAL', prestadora: 'UNIDOS', linha: '4'},\n", + "{id: 5, name: 'LINHA TEMERÁRIA', prestadora: 'NOVA PALMIRA', linha: '5'},\n", + "{id: 5, name: 'PICADA CARÁ', prestadora: 'NOVA PALMIRA', linha: '5'},\n", + "{id: 5, name: 'SÃO ROQUE (Temerária)', prestadora: 'NOVA PALMIRA', linha: '5'},\n", + "{id: 6, name: 'FARROUPILHA', prestadora: 'GIRATUR', linha: '6'},\n", + "{id: 7, name: 'SÃO MARCOS', prestadora: 'SÃO MARCOS', linha: '7'},\n", + "{id: 8, name: 'SÃO MARCOS', prestadora: 'SÃO MARCOS', linha: '8'},\n", + "{id: 9, name: '4ª LÉGUA', prestadora: 'BRAGÉ', linha: '9'},\n", + "{id: 9, name: 'GALÓPOLIS', prestadora: 'BRAGÉ', linha: '9'},\n", + "{id: 10, name: 'MORRO PARIS', prestadora: 'NOVA PALMIRA', linha: '10'},\n", + "{id: 10, name: 'VALE REAL', prestadora: 'NOVA PALMIRA', linha: '10'},\n", + "{id: 11, name: 'ALTO FELIZ', prestadora: 'NOVA PALMIRA', linha: '11'},\n", + "{id: 12, name: 'CANTO DO RIO', prestadora: 'NOVA PALMIRA', linha: '12'},\n", + "{id: 12, name: 'ESCADINHAS', prestadora: 'NOVA PALMIRA', linha: '12'},\n", + "{id: 12, name: 'MATIEL', prestadora: 'NOVA PALMIRA', linha: '12'},\n", + "{id: 13, name: 'FELIZ', prestadora: 'NOVA PALMIRA', linha: '13'},\n", + "{id: 13, name: 'VALE REAL (RS 452) ', prestadora: 'NOVA PALMIRA', linha: '13'},\n", + "{id: 14, name: 'CANTO KREWER', prestadora: 'NOVA PALMIRA', linha: '14'},\n", + "{id: 14, name: 'VILA PINGA', prestadora: 'NOVA PALMIRA', linha: '14'},\n", + "{id: 15, name: 'ARROIO DO OURO', prestadora: 'NOVA PALMIRA', linha: '15'},\n", + "{id: 15, name: 'FORQUETA BAIXA', prestadora: 'NOVA PALMIRA', linha: '15'},\n", + "{id: 16, name: 'BOM FIM', prestadora: 'NOVA PALMIRA', linha: '16'},\n", + "{id: 16, name: 'BOM PRINCIPIO', prestadora: 'NOVA PALMIRA', linha: '16'},\n", + "{id: 16, name: 'RODOVIÁRIA DE FELIZ', prestadora: 'NOVA PALMIRA', linha: '16'},\n", + "{id: 16, name: 'VALE DO HERMES', prestadora: 'NOVA PALMIRA', linha: '16'},\n", + "{id: 17, name: 'CONCEIÇÃO - LINHA FEIJÓ', prestadora: 'CAXIENSE', linha: '17'},\n", + "{id: 17, name: 'DESVIO RIZZO', prestadora: 'CAXIENSE', linha: '17'},\n", + "{id: 17, name: 'PARAISO CRISTAL', prestadora: 'CAXIENSE', linha: '17'},\n", + "{id: 17, name: 'ROTA DO SOL', prestadora: 'CAXIENSE', linha: '17'},\n", + "{id: 17, name: 'SÃO LUCAS', prestadora: 'CAXIENSE', linha: '17'},\n", + "{id: 18, name: 'SANTA CORONA', prestadora: 'CAXIENSE', linha: '18'},\n", + "{id: 18, name: 'VILA LOBOS', prestadora: 'CAXIENSE', linha: '18'},\n", + "{id: 19, name: 'ANHANGUERA', prestadora: 'BRAGÉ', linha: '19'},\n", + "{id: 19, name: 'CIDADE NOVA', prestadora: 'BRAGÉ', linha: '19'},\n", + "{id: 19, name: 'FORQUETA - CAXIAS', prestadora: 'BRAGÉ', linha: '19'},\n", + "{id: 19, name: 'SEDE MARCOPOLO', prestadora: 'BRAGÉ', linha: '19'},\n", + "{id: 20, name: 'FLORES DA CUNHA', prestadora: 'BRAGÉ', linha: '20'},\n", + "{id: 20, name: 'VILA MAESTRA (RS 122)', prestadora: 'BRAGÉ', linha: '20'},\n", + "{id: 21, name: 'CRISTOVÃO DE MENDOZA', prestadora: 'CAXIENSE', linha: '21'},\n", + "{id: 21, name: 'HOSPITAL UNIMED', prestadora: 'CAXIENSE', linha: '21'},\n", + "{id: 21, name: 'JARDELINO RAMOS', prestadora: 'CAXIENSE', linha: '21'},\n", + "{id: 21, name: 'MARECHAL FLORIANO', prestadora: 'CAXIENSE', linha: '21'},\n", + "{id: 21, name: 'SAGRADA FAMÍLIA', prestadora: 'CAXIENSE', linha: '21'},\n", + "{id: 22, name: 'LOTEAMENTO ROTA NOVA', prestadora: 'BRAGÉ', linha: '22'},\n", + "{id: 22, name: 'MATIODA', prestadora: 'BRAGÉ', linha: '22'},\n", + "{id: 22, name: 'REOLON', prestadora: 'BRAGÉ', linha: '22'},\n", + "{id: 22, name: 'TIJUCA', prestadora: 'BRAGÉ', linha: '22'},\n", + "{id: 22, name: 'VALE VERDE ', prestadora: 'BRAGÉ', linha: '22'},\n", + "{id: 23, name: 'ESPLANADA', prestadora: 'CAXIENSE', linha: '23'},\n", + "{id: 23, name: 'MONTE CARMELO', prestadora: 'CAXIENSE', linha: '23'},\n", + "{id: 23, name: 'MONTES CLAROS', prestadora: 'CAXIENSE', linha: '23'},\n", + "{id: 24, name: 'PAIQUERÊ', prestadora: 'BRAGÉ', linha: '24'},\n", + "{id: 24, name: 'SÃO VICTOR COHAB', prestadora: 'BRAGÉ', linha: '24'},\n", + "{id: 24, name: 'VITÓRIA', prestadora: 'BRAGÉ', linha: '24'},\n", + "{id: 25, name: 'CHARQUEADAS', prestadora: 'CAXIENSE', linha: '25'},\n", + "{id: 25, name: 'JARDIM DO SHOPING', prestadora: 'CAXIENSE', linha: '25'},\n", + "{id: 25, name: 'PLANALTO RIO BRANCO', prestadora: 'CAXIENSE', linha: '25'},\n", + "{id: 25, name: 'SÃO FRANCISCO', prestadora: 'CAXIENSE', linha: '25'},\n", + "{id: 25, name: 'SHOPING IGUATEMI', prestadora: 'CAXIENSE', linha: '25'},\n", + "{id: 26, name: 'CRUZEIRO (Via Luiz Michelon)', prestadora: 'CAXIENSE', linha: '26'},\n", + "{id: 26, name: 'MECATRONICA', prestadora: 'CAXIENSE', linha: '26'},\n", + "{id: 26, name: 'UCS', prestadora: 'CAXIENSE', linha: '26'},\n", + "{id: 27, name: 'NOSSA SENHORA DO ROSARIO I', prestadora: 'CAXIENSE', linha: '27'},\n", + "{id: 27, name: 'NOSSA SENHORA DO ROSARIO II', prestadora: 'CAXIENSE', linha: '27'},\n", + "{id: 28, name: 'FLORESTA', prestadora: 'CAXIENSE', linha: '28'},\n", + "{id: 28, name: 'INTRAL', prestadora: 'CAXIENSE', linha: '28'},\n", + "{id: 28, name: 'MARIANI', prestadora: 'CAXIENSE', linha: '28'},\n", + "{id: 28, name: 'RIO BRANCO', prestadora: 'CAXIENSE', linha: '28'},\n", + "{id: 28, name: 'SAN VITO', prestadora: 'CAXIENSE', linha: '28'},\n", + "{id: 29, name: '3ª LÉGUA', prestadora: 'CAXIENSE', linha: '29'},\n", + "{id: 29, name: 'GLÓRIA', prestadora: 'CAXIENSE', linha: '29'},\n", + "{id: 29, name: 'NOSSA SENHORA DAS GRAÇAS', prestadora: 'CAXIENSE', linha: '29'},\n", + "{id: 29, name: 'NOSSA SENHORA DO CARAVAGGIO', prestadora: 'CAXIENSE', linha: '29'},\n", + "{id: 29, name: 'ORIENTAL', prestadora: 'CAXIENSE', linha: '29'},\n", + "{id: 29, name: 'SÃO MATEUS', prestadora: 'CAXIENSE', linha: '29'},\n", + "{id: 30, name: 'ANA RECH', prestadora: 'CAXIENSE', linha: '30'},\n", + "{id: 30, name: 'ARROIO DAS MARRECAS', prestadora: 'CAXIENSE', linha: '30'},\n", + "{id: 30, name: 'BARRAGEM FAXINAL', prestadora: 'CAXIENSE', linha: '30'},\n", + "{id: 30, name: 'BOCA DA SERRA', prestadora: 'CAXIENSE', linha: '30'},\n", + "{id: 30, name: 'SOLAR DO PRADO', prestadora: 'CAXIENSE', linha: '30'},\n", + "{id: 30, name: 'VILA SECA', prestadora: 'CAXIENSE', linha: '30'},\n", + "{id: 31, name: 'KAISER (ANDREAZZA)', prestadora: 'BRAGÉ (reforço 29)', linha: '31'},\n", + "{id: 31, name: 'KAISER (BRISTOT MATERIAIS DE CONSTRUÇÃO) ', prestadora: 'BRAGÉ (reforço 29)', linha: '31'},\n", + "{id: 32, name: 'BECO DA FILOMENA', prestadora: 'CAXIENSE', linha: '32'},\n", + "{id: 32, name: 'JARDIM IRACEMA', prestadora: 'CAXIENSE', linha: '32'},\n", + "{id: 32, name: 'NOSSA SENHORA DAS DORES', prestadora: 'CAXIENSE', linha: '32'},\n", + "{id: 32, name: 'SEDE SINDICATO METALÚRGICO', prestadora: 'CAXIENSE', linha: '32'},\n", + "{id: 32, name: 'SERRARIA', prestadora: 'CAXIENSE', linha: '32'},\n", + "{id: 33, name: 'CENTRO ( Via 20 de Setembro)', prestadora: 'BRAGÉ', linha: '33'},\n", + "{id: 33, name: 'CINQUENTENÁRIO (Via Julio de Castilhos)', prestadora: 'BRAGÉ', linha: '33'},\n", + "{id: 34, name: 'LOTEAMENTO BACHI', prestadora: 'BRAGÉ', linha: '34'},\n", + "{id: 34, name: 'SANTA BÁRBARA', prestadora: 'BRAGÉ', linha: '34'},\n", + "{id: 34, name: 'SÃO GOTARDO (Vila Seca)', prestadora: 'BRAGÉ', linha: '34'},\n", + "{id: 34, name: 'VILA ALPINA', prestadora: 'BRAGÉ', linha: '34'},\n", + "{id: 35, name: 'CASTELO', prestadora: 'CAXIENSE', linha: '35'},\n", + "{id: 35, name: 'SANTO HOMOBOM', prestadora: 'CAXIENSE', linha: '35'},\n", + "{id: 35, name: 'SÃO CRISTOVÃO', prestadora: 'CAXIENSE', linha: '35'},\n", + "{id: 36, name: 'CRISTO REDENTOR (Via Tronca)', prestadora: 'CAXIENSE', linha: '36'},\n", + "{id: 36, name: 'EXPOSIÇÃO (Via Tronca)', prestadora: 'CAXIENSE', linha: '36'},\n", + "{id: 36, name: 'RIO BRANCO (Via Tronca)', prestadora: 'CAXIENSE', linha: '36'},\n", + "{id: 37, name: 'ARCO BALENO', prestadora: 'CAXIENSE', linha: '37'},\n", + "{id: 37, name: 'BOM PASTOR', prestadora: 'CAXIENSE', linha: '37'},\n", + "{id: 37, name: 'SÃO CAETANO', prestadora: 'CAXIENSE', linha: '37'},\n", + "{id: 38, name: 'SÃO CAETANO (Mobitec)', prestadora: 'CAXIENSE', linha: '38'},\n", + "{id: 38, name: 'SÃO CAETANO DO SUL', prestadora: 'CAXIENSE', linha: '38'},\n", + "{id: 39, name: 'GAUCHINHA', prestadora: 'CAXIENSE', linha: '39'},\n", + "{id: 39, name: 'KAISER', prestadora: 'CAXIENSE', linha: '39'},\n", + "{id: 39, name: 'SALGADO FILHO', prestadora: 'CAXIENSE', linha: '39'},\n", + "{id: 40, name: 'AMÉLIA', prestadora: 'CAXIENSE', linha: '40'},\n", + "{id: 40, name: 'BOSQUE DAS ARAUCÁRIAS', prestadora: 'CAXIENSE', linha: '40'},\n", + "{id: 40, name: 'DESVIO RIZZO', prestadora: 'CAXIENSE', linha: '40'},\n", + "{id: 41, name: 'CAMPOS DA SERRA', prestadora: 'CAXIENSE', linha: '41'},\n", + "{id: 41, name: 'DE ZORZI', prestadora: 'CAXIENSE', linha: '41'},\n", + "{id: 41, name: 'PENA BRANCA', prestadora: 'CAXIENSE', linha: '41'},\n", + "{id: 41, name: 'SÃO LUIZ', prestadora: 'CAXIENSE', linha: '41'},\n", + "{id: 41, name: 'SÃO VALENTIN (Cruzeiro)', prestadora: 'CAXIENSE', linha: '41'},\n", + "{id: 42, name: '6ª LÉGUA', prestadora: 'CAXIENSE', linha: '42'},\n", + "{id: 42, name: 'BELA VISTA', prestadora: 'CAXIENSE', linha: '42'},\n", + "{id: 42, name: 'LA PALOMA', prestadora: 'CAXIENSE', linha: '42'},\n", + "{id: 42, name: 'SÃO VIRGÍLIO', prestadora: 'CAXIENSE', linha: '42'},\n", + "{id: 42, name: 'VILA LEON', prestadora: 'CAXIENSE', linha: '42'},\n", + "{id: 43, name: 'CENTRO ( via 18 do Forte)', prestadora: 'GIRATUR', linha: '43'},\n", + "{id: 44, name: 'CENTRO ( via 18 do Forte)', prestadora: 'BRAGÉ', linha: '44'},\n", + "{id: 45, name: 'FAZENDA SOUZA', prestadora: 'CAXIENSE', linha: '45'},\n", + "{id: 45, name: 'ROTA DO SOL', prestadora: 'CAXIENSE', linha: '45'},\n", + "{id: 45, name: 'SÃO BRÁS', prestadora: 'CAXIENSE', linha: '45'},\n", + "{id: 45, name: 'SÃO ROQUE (Fazenda Souza)', prestadora: 'CAXIENSE', linha: '45'},\n", + "{id: 46, name: 'BELO HORIZONTE', prestadora: 'GIRATUR', linha: '46'},\n", + "{id: 46, name: 'NOSSA SENHORA DA SAÚDE', prestadora: 'GIRATUR', linha: '46'},\n", + "{id: 46, name: 'PORTAL DA MAESTRA', prestadora: 'GIRATUR', linha: '46'},\n", + "{id: 46, name: 'VILA IPÊ', prestadora: 'GIRATUR', linha: '46'},\n", + "{id: 46, name: 'VINHEDOS', prestadora: 'GIRATUR', linha: '46'},\n", + "{id: 47, name: 'PLANALTO (Marcopolo)', prestadora: 'GIRATUR', linha: '47'},\n", + "{id: 47, name: 'VILA VERDE', prestadora: 'GIRATUR', linha: '47'},\n", + "{id: 48, name: 'HOSPITAL FÁTIMA', prestadora: 'CAXIENSE', linha: '48'},\n", + "{id: 48, name: 'PIO X', prestadora: 'CAXIENSE', linha: '48'},\n", + "{id: 48, name: 'SAGRADA FAMÍLIA', prestadora: 'CAXIENSE', linha: '48'},\n", + "{id: 48, name: 'UNIVERSITÁRIO ', prestadora: 'CAXIENSE', linha: '48'},\n", + "{id: 49, name: 'BELA VISTA', prestadora: 'CAXIENSE', linha: '49'},\n", + "{id: 49, name: 'MONTE REALE', prestadora: 'CAXIENSE', linha: '49'},\n", + "{id: 49, name: 'PLANALTO (Cancha de areia)', prestadora: 'CAXIENSE', linha: '49'},\n", + "{id: 50, name: 'FÁTIMA ', prestadora: 'CAXIENSE', linha: '50'},\n", + "{id: 50, name: 'INTERLAGOS', prestadora: 'CAXIENSE', linha: '50'},\n", + "{id: 50, name: 'JARDIM ESMERALDA', prestadora: 'CAXIENSE', linha: '50'},\n", + "{id: 50, name: 'SANTA CATARINA', prestadora: 'CAXIENSE', linha: '50'},\n", + "{id: 51, name: 'FÁTIMA', prestadora: 'BRAGÉ', linha: '51'},\n", + "{id: 51, name: 'MAXI ATACADO', prestadora: 'BRAGÉ', linha: '51'},\n", + "{id: 51, name: 'PERIMETRAL NORTE', prestadora: 'BRAGÉ', linha: '51'},\n", + "{id: 52, name: 'CRISTO REDENTOR', prestadora: 'CAXIENSE', linha: '52'},\n", + "{id: 52, name: 'IPIRANGA', prestadora: 'CAXIENSE', linha: '52'},\n", + "{id: 52, name: 'PANAZZOLO', prestadora: 'CAXIENSE', linha: '52'},\n", + "{id: 53, name: 'ALTOS DO SEMINÁRIO', prestadora: 'CAXIENSE', linha: '53'},\n", + "{id: 53, name: 'COLINA SORRISO', prestadora: 'CAXIENSE', linha: '53'},\n", + "{id: 53, name: 'PIONEIRO', prestadora: 'CAXIENSE', linha: '53'},\n", + "{id: 53, name: 'ROTA DO SOL (Posto São Luiz)', prestadora: 'CAXIENSE', linha: '53'},\n", + "{id: 53, name: 'SÃO JOSÉ', prestadora: 'CAXIENSE', linha: '53'},\n", + "{id: 54, name: 'FÁTIMA BAIXO', prestadora: 'CAXIENSE', linha: '54'},\n", + "{id: 54, name: 'JARDIM ITÁLIA', prestadora: 'CAXIENSE', linha: '54'},\n", + "{id: 54, name: 'MORADA DOS ALPES', prestadora: 'CAXIENSE', linha: '54'},\n", + "{id: 54, name: 'PARQUE OÁSIS', prestadora: 'CAXIENSE', linha: '54'},\n", + "{id: 54, name: 'SANTA LÚCIA', prestadora: 'CAXIENSE', linha: '54'},\n", + "{id: 54, name: 'SÃO JOSÉ (Senai)', prestadora: 'CAXIENSE', linha: '54'},\n", + "{id: 55, name: 'BELA VISTA', prestadora: 'CAXIENSE', linha: '55'},\n", + "{id: 55, name: 'CRUZEIRO', prestadora: 'CAXIENSE', linha: '55'},\n", + "{id: 55, name: 'PETRÓPOLIS', prestadora: 'CAXIENSE', linha: '55'},\n", + "{id: 56, name: 'CENTENÁRIO', prestadora: 'CAXIENSE', linha: '56'},\n", + "{id: 56, name: 'PARQUE OÁSIS', prestadora: 'CAXIENSE', linha: '56'},\n", + "{id: 57, name: 'AEROPORTO', prestadora: 'CAXIENSE', linha: '57'},\n", + "{id: 57, name: 'SANTOS DUMONT', prestadora: 'CAXIENSE', linha: '57'},\n", + "{id: 59, name: 'JARDIM DAS HORTÊNCIAS', prestadora: 'GIRATUR', linha: '59'},\n", + "{id: 59, name: 'MARILAND', prestadora: 'GIRATUR', linha: '59'},\n", + "{id: 59, name: 'SÃO CIRO', prestadora: 'GIRATUR', linha: '59'},\n", + "{id: 59, name: 'SÃO CIRO II', prestadora: 'GIRATUR', linha: '59'},\n", + "{id: 59, name: 'SÉCULO XX', prestadora: 'GIRATUR', linha: '59'},\n", + "{id: 60, name: 'DIAMANTINO', prestadora: 'GIRATUR', linha: '60'},\n", + "{id: 60, name: 'PRESIDENTE VARGAS', prestadora: 'GIRATUR', linha: '60'},\n", + "{id: 60, name: 'TREVISO', prestadora: 'GIRATUR', linha: '60'},\n", + "{id: 61, name: 'PLANALTO', prestadora: 'CAXIENSE', linha: '61'},\n", + "{id: 61, name: 'VILA MARI', prestadora: 'CAXIENSE', linha: '61'},\n", + "{id: 62, name: 'CRUZEIRO', prestadora: 'GIRATUR', linha: '62'},\n", + "{id: 63, name: 'CENTRO (via 18 do Forte)', prestadora: 'CAXIENSE', linha: '63'},\n", + "{id: 63, name: 'MARECHAL FLORIANO', prestadora: 'CAXIENSE', linha: '63'},\n", + "{id: 63, name: 'SAINT ETIENE', prestadora: 'CAXIENSE', linha: '63'},\n", + "{id: 64, name: 'BR 116', prestadora: 'CAXIENSE', linha: '64'},\n", + "{id: 64, name: 'RIO BRANCO', prestadora: 'CAXIENSE', linha: '64'},\n", + "{id: 64, name: 'SÃO LEOPOLDO', prestadora: 'CAXIENSE', linha: '64'},\n", + "{id: 65, name: '1° MAIO', prestadora: 'CAXIENSE', linha: '65'},\n", + "{id: 65, name: 'HOSPITAL DO CÍRCULO', prestadora: 'CAXIENSE', linha: '65'},\n", + "{id: 65, name: 'JARDIM AMÉRICA', prestadora: 'CAXIENSE', linha: '65'},\n", + "{id: 65, name: 'MADUREIRA', prestadora: 'CAXIENSE', linha: '65'},\n", + "{id: 65, name: 'UNIVERSITÁRIO ', prestadora: 'CAXIENSE', linha: '65'},\n", + "{id: 66, name: 'JARDIM ELDORADO', prestadora: 'CAXIENSE', linha: '66'},\n", + "{id: 66, name: 'JARDIM IRACEMA', prestadora: 'CAXIENSE', linha: '66'},\n", + "{id: 66, name: 'SANTO ANTÔNIO', prestadora: 'CAXIENSE', linha: '66'},\n", + "{id: 67, name: 'PARADA CRISTAL', prestadora: 'SÃO MARCOS', linha: '67'},\n", + "{id: 67, name: 'SÃO VALENTIN (Parada Cristal)', prestadora: 'SÃO MARCOS', linha: '67'},\n", + "{id: 68, name: 'PLANALTO (Marcopolo)', prestadora: 'CAXIENSE', linha: '68'},\n", + "{id: 69, name: 'COLINA DO SOL', prestadora: 'CAXIENSE', linha: '69'},\n", + "{id: 69, name: 'SANTA FÉ', prestadora: 'CAXIENSE', linha: '69'},\n", + "{id: 69, name: 'VENEZZA', prestadora: 'CAXIENSE', linha: '69'},\n", + "{id: 70, name: 'JARDIM ADORADO', prestadora: 'BRAGÉ', linha: '70'},\n", + "];\n", + "var itemsSaidaNoturno = [\n", + " //name key is must.It is to show the text in front\n", + " {id: 1, name: 'ANA RECH', prestadora: 'UNIDOS', pos: 'P01'},\n", + " {id: 2, name: 'ARROIO DAS MARRECAS', prestadora: 'UNIDOS', pos: 'P01'},\n", + " {id: 3, name: 'VILA SECA', prestadora: 'UNIDOS', pos: 'P01'},\n", + " {id: 4, name: 'BEVILÁQUA', prestadora: 'UNIDOS', pos: 'P02'},\n", + " {id: 5, name: 'FAZENDA SOUZA', prestadora: 'UNIDOS', pos: 'P02'},\n", + " {id: 6, name: 'SÃO BRÁS', prestadora: 'UNIDOS', pos: 'P02'},\n", + " {id: 7, name: 'SÃO ROQUE (Fazenda Souza)', prestadora: 'UNIDOS', pos: 'P02'},\n", + " {id: 8, name: 'BARRAGEM FAXINAL', prestadora: 'UNIDOS', pos: 'P03'},\n", + " {id: 9, name: 'BOCA DA SERRA', prestadora: 'UNIDOS', pos: 'P03'},\n", + " {id: 10, name: 'SANTA BÁRBARA', prestadora: 'UNIDOS', pos: 'P03'},\n", + " {id: 11, name: 'SÃO GOTARDO (Vila Seca)', prestadora: 'UNIDOS', pos: 'P03'},\n", + " {id: 12, name: 'ALTO FELIZ (Sociedade Arroio Feliz)', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 13, name: 'ALTO FELIZ (Brigada - Sociedade)', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 14, name: 'ARROIO DO OURO (RS 452)', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 15, name: 'FELIZ (Concretos KG)', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 16, name: 'FELIZ ( Vínícula Don Guerino)', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 17, name: 'GALÓPOLIS', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 18, name: 'MORRO BELO', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 19, name: 'MORRO CAPIM', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 20, name: 'VALE REAL(Lombada Eletrônica - RS 452)', prestadora: 'NOVA PALMIRA', pos: 'P04'},\n", + " {id: 21, name: 'CANTO KREWER', prestadora: 'NOVA PALMIRA', pos: 'P05'},\n", + " {id: 22, name: 'LOTEAMENTO PARQUE REAL', prestadora: 'NOVA PALMIRA', pos: 'P05'},\n", + " {id: 23, name: 'MORRO PARIS', prestadora: 'NOVA PALMIRA', pos: 'P05'},\n", + " {id: 24, name: 'VALE REAL (RS 452) ', prestadora: 'NOVA PALMIRA', pos: 'P05'},\n", + " {id: 25, name: 'VILA PINGA (Esquina Zimmermann)', prestadora: 'NOVA PALMIRA', pos: 'P05'},\n", + " {id: 26, name: 'BANANAL', prestadora: 'NOVA PALMIRA', pos: 'P06'},\n", + " {id: 27, name: 'FELIZ - SÃO ROQUE (Sobra)', prestadora: 'NOVA PALMIRA', pos: 'P06'},\n", + " {id: 28, name: 'NOVA PALMIRA (RS 452)', prestadora: 'NOVA PALMIRA', pos: 'P06'},\n", + " {id: 29, name: 'PICADA CARÁ', prestadora: 'NOVA PALMIRA', pos: 'P06'},\n", + " {id: 30, name: 'VILA RICA', prestadora: 'NOVA PALMIRA', pos: 'P06'},\n", + " {id: 31, name: 'ARROIO BELO', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 32, name: 'BOM FIM (Comunidade Santa Inácio)', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 33, name: 'FELIZ (Canto do Rio)', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 34, name: 'FELIZ (Rodoviária)', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 35, name: 'FELIZ (Trevo Lauro Weber)', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 36, name: 'MATIEL', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 37, name: 'VALE DO HERMES', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 38, name: 'VILA CRISTINA (RS 452) ', prestadora: 'NOVA PALMIRA', pos: 'P07'},\n", + " {id: 39, name: 'FORQUETA', prestadora: 'GIRATUR', pos: 'P08'},\n", + " {id: 40, name: '4ª LÉGUA', prestadora: 'BRAGÉ', pos: 'P09'},\n", + " {id: 41, name: 'LOTEAMENTO VÊNETO', prestadora: 'BRAGÉ', pos: 'P09'},\n", + " {id: 42, name: 'VILA LOBOS', prestadora: 'BRAGÉ', pos: 'P09'},\n", + " {id: 43, name: 'ANHANGUERA(DESVIO RIZZO)', prestadora: 'CAXIENSE', pos: 'P10'},\n", + " {id: 44, name: 'BOSQUE DAS ARAUCÁRIAS', prestadora: 'CAXIENSE', pos: 'P10'},\n", + " {id: 45, name: 'DESVIO RIZZO', prestadora: 'CAXIENSE', pos: 'P10'},\n", + " {id: 46, name: 'ROTA DO SOL (Posto São Luiz)', prestadora: 'CAXIENSE', pos: 'P10'},\n", + " {id: 47, name: 'SANTA TEREZA', prestadora: 'CAXIENSE', pos: 'P10'},\n", + " {id: 48, name: 'CAMPOS DA SERRA', prestadora: 'CAXIENSE', pos: 'P11'},\n", + " {id: 49, name: 'TREVISO', prestadora: 'CAXIENSE', pos: 'P11'},\n", + " {id: 50, name: 'CONCEIÇÃO - LINHA FEIJÓ', prestadora: 'CAXIENSE', pos: 'P12'},\n", + " {id: 51, name: 'DESVIO RIZZO', prestadora: 'CAXIENSE', pos: 'P12'},\n", + " {id: 52, name: 'INDUSTRIAL', prestadora: 'CAXIENSE', pos: 'P12'},\n", + " {id: 53, name: 'SÃO LUCAS', prestadora: 'CAXIENSE', pos: 'P12'},\n", + " {id: 54, name: 'DE ZORZI (UBS Diamantino via Vanderlei Padilha Pescador)', prestadora: 'CAXIENSE', pos: 'P13'},\n", + " {id: 55, name: 'DIAMANTINO', prestadora: 'CAXIENSE', pos: 'P13'},\n", + " {id: 56, name: 'ESCADINHAS', prestadora: 'CAXIENSE', pos: 'P13'},\n", + " {id: 57, name: 'PRESIDENTE VARGAS', prestadora: 'CAXIENSE', pos: 'P13'},\n", + " {id: 58, name: '6ª LÉGUA', prestadora: 'CAXIENSE', pos: 'P14'},\n", + " {id: 59, name: 'SÃO VIRGÍLIO', prestadora: 'CAXIENSE', pos: 'P14'},\n", + " {id: 60, name: 'VILA LEON', prestadora: 'CAXIENSE', pos: 'P14'},\n", + " {id: 61, name: 'CRUZEIRO (Via Rodrigues Alves)', prestadora: 'CAXIENSE', pos: 'P15'},\n", + " {id: 62, name: 'ALTOS DO SEMINÁRIO(BAIXO)', prestadora: 'CAXIENSE', pos: 'P16'},\n", + " {id: 63, name: 'COLINA SORRISO', prestadora: 'CAXIENSE', pos: 'P16'},\n", + " {id: 64, name: 'FÁTIMA BAIXO (Via Mário Lopes)', prestadora: 'CAXIENSE', pos: 'P16'},\n", + " {id: 65, name: 'PARQUE OÁSIS (Condomínio Villaggio Ventura)', prestadora: 'CAXIENSE', pos: 'P16'},\n", + " {id: 66, name: 'SANTA LÚCIA', prestadora: 'CAXIENSE', pos: 'P16'},\n", + " {id: 67, name: 'SÃO JOSÉ (Senai)', prestadora: 'CAXIENSE', pos: 'P16'},\n", + " {id: 68, name: '1° MAIO', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 69, name: 'JARDELINO RAMOS', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 70, name: 'JARDIM AMÉRICA', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 71, name: 'MADUREIRA', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 72, name: 'PIO X', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 73, name: 'SAGRADA FAMÍLIA', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 74, name: 'HOSPITAL DO CÍRCULO', prestadora: 'CAXIENSE', pos: 'P18'},\n", + " {id: 75, name: 'HOSPITAL FÁTIMA', prestadora: 'CAXIENSE', pos: 'P18'},\n", + " {id: 76, name: 'SANTA CATARINA', prestadora: 'CAXIENSE', pos: 'P18'},\n", + " {id: 77, name: 'UNIVERSITÁRIO ', prestadora: 'CAXIENSE', pos: 'P18'},\n", + " {id: 78, name: 'JARDIM ADORADO', prestadora: 'CAXIENSE', pos: 'P19'},\n", + " {id: 79, name: 'JARDIM IRACEMA III (Mercado Diego)', prestadora: 'CAXIENSE', pos: 'P19'},\n", + " {id: 80, name: 'MONTE REALE', prestadora: 'CAXIENSE', pos: 'P20'},\n", + " {id: 81, name: 'PLANALTO (Via Aparecida - Quadra de Futsal)', prestadora: 'CAXIENSE', pos: 'P20'},\n", + " {id: 82, name: 'SÃO VICTOR COHAB', prestadora: 'CAXIENSE', pos: 'P20'},\n", + " {id: 83, name: 'LA PALOMA', prestadora: 'CAXIENSE', pos: 'P21'},\n", + " {id: 84, name: 'PAIQUERÊ', prestadora: 'CAXIENSE', pos: 'P21'},\n", + " {id: 85, name: 'SANVITTO', prestadora: 'CAXIENSE', pos: 'P21'},\n", + " {id: 86, name: 'VITÓRIA', prestadora: 'CAXIENSE', pos: 'P21'},\n", + " {id: 87, name: 'PLANALTO (Padaria Pão de Mel)', prestadora: 'CAXIENSE', pos: 'P22'},\n", + " {id: 88, name: 'VALE VERDE ', prestadora: 'CAXIENSE', pos: 'P22'},\n", + " {id: 89, name: 'VILA VERDE', prestadora: 'CAXIENSE', pos: 'P22'},\n", + " {id: 90, name: 'BR 116', prestadora: 'GIRATUR', pos: 'P23'},\n", + " {id: 91, name: 'PLANALTO (Marcopolo PL - Colégio Guerino)', prestadora: 'GIRATUR', pos: 'P23'},\n", + " {id: 92, name: 'BELA VISTA', prestadora: 'CAXIENSE', pos: 'P24'},\n", + " {id: 93, name: 'VILA MARI', prestadora: 'CAXIENSE', pos: 'P24'},\n", + " {id: 94, name: 'MECATRONICA', prestadora: 'GIRATUR', pos: 'P25'},\n", + " {id: 95, name: 'PENA BRANCA', prestadora: 'GIRATUR', pos: 'P25'},\n", + " {id: 96, name: 'PETRÓPOLIS', prestadora: 'GIRATUR', pos: 'P25'},\n", + " {id: 97, name: 'SÃO LUIZ', prestadora: 'GIRATUR', pos: 'P25'},\n", + " {id: 98, name: 'SÃO VALENTIN (Cruzeiro)', prestadora: 'GIRATUR', pos: 'P25'},\n", + " {id: 99, name: 'UCS', prestadora: 'CAXIENSE', pos: 'P25'},\n", + " {id: 100, name: 'GAUCHINHA', prestadora: 'CAXIENSE', pos: 'P26'},\n", + " {id: 101, name: 'INTRAL', prestadora: 'CAXIENSE', pos: 'P26'},\n", + " {id: 102, name: 'KAISER', prestadora: 'CAXIENSE', pos: 'P26'},\n", + " {id: 103, name: 'JARDIM DAS HORTÊNCIAS', prestadora: 'CAXIENSE', pos: 'P27'},\n", + " {id: 104, name: 'MARILAND', prestadora: 'CAXIENSE', pos: 'P27'},\n", + " {id: 105, name: 'SAINT ETIENE', prestadora: 'CAXIENSE', pos: 'P27'},\n", + " {id: 106, name: 'SÃO CIRO I e II', prestadora: 'CAXIENSE', pos: 'P27'},\n", + " {id: 107, name: 'SÉCULO XX', prestadora: 'CAXIENSE', pos: 'P27'},\n", + " {id: 108, name: 'BOM PASTOR', prestadora: 'CAXIENSE', pos: 'P28'},\n", + " {id: 109, name: 'LOTEAMENTO ROTA NOVA', prestadora: 'GIRATUR', pos: 'P29'},\n", + " {id: 110, name: 'MATIODA', prestadora: 'GIRATUR', pos: 'P29'},\n", + " {id: 111, name: 'REOLON', prestadora: 'GIRATUR', pos: 'P29'},\n", + " {id: 112, name: 'TIJUCA', prestadora: 'GIRATUR', pos: 'P29'},\n", + " {id: 113, name: 'CARAVÁGIO', prestadora: 'GIRATUR', pos: 'P30'},\n", + " {id: 114, name: 'GLÓRIA', prestadora: 'CAXIENSE', pos: 'P30'},\n", + " {id: 115, name: 'NOSSA SENHORA DO CARAVAGGIO', prestadora: 'GIRATUR', pos: 'P30'},\n", + " {id: 116, name: 'SÃO MATEUS', prestadora: 'GIRATUR', pos: 'P30'},\n", + " {id: 117, name: 'VILA BRASIL', prestadora: 'GIRATUR', pos: 'P30'},\n", + " {id: 118, name: 'CIDADE NOVA', prestadora: 'CAXIENSE', pos: 'P31'},\n", + " {id: 119, name: 'MARIANI', prestadora: 'CAXIENSE', pos: 'P31'},\n", + " {id: 120, name: 'SEDE FUNDAÇÃO MARCOPOLO', prestadora: 'CAXIENSE', pos: 'P31'},\n", + " {id: 121, name: 'INTERLAGOS(Perimetral Norte)', prestadora: 'CAXIENSE', pos: 'P32'},\n", + " {id: 122, name: 'MAXI ATACADO', prestadora: 'CAXIENSE', pos: 'P32'},\n", + " {id: 123, name: 'PEDREIRA DO GUERRA', prestadora: 'CAXIENSE', pos: 'P32'},\n", + " {id: 124, name: 'PERIMETRAL NORTE', prestadora: 'CAXIENSE', pos: 'P32'},\n", + " {id: 125, name: 'SÃO JOSÉ', prestadora: 'CAXIENSE', pos: 'P32'},\n", + " {id: 126, name: 'CHARQUEADAS', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 127, name: 'JARDIM DO SHOPING', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 128, name: 'NOSSA SENHORA DO ROSARIO I e II', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 129, name: 'PLANALTO RIO BRANCO', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 130, name: 'ROSÁRIO I e II', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 131, name: 'SÃO FRANCISCO', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 132, name: 'SHOPING IGUATEMI', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 133, name: 'VILA AMÉLIA', prestadora: 'CAXIENSE', pos: 'P33'},\n", + " {id: 134, name: 'CENTRO (Via 20 de Setembro)', prestadora: 'CAXIENSE', pos: 'P34'},\n", + " {id: 135, name: 'CINQUENTENÁRIO (Via Julio de Castilhos)', prestadora: 'CAXIENSE', pos: 'P34'},\n", + " {id: 136, name: 'FLORESTA', prestadora: 'CAXIENSE', pos: 'P34'},\n", + " {id: 137, name: 'HOSPITAL UNIMED', prestadora: 'CAXIENSE', pos: 'P34'},\n", + " {id: 138, name: 'I. E. E. CRISTOVÃO DE MENDOZA', prestadora: 'CAXIENSE', pos: 'P34'},\n", + " {id: 139, name: 'MARECHAL FLORIANO', prestadora: 'CAXIENSE', pos: 'P34'},\n", + " {id: 140, name: 'RIO BRANCO(Capuchinho)', prestadora: 'CAXIENSE', pos: 'P34'},\n", + " {id: 141, name: 'AEROPORTO', prestadora: 'CAXIENSE', pos: 'P35'},\n", + " {id: 142, name: 'MONTE CARMELO', prestadora: 'CAXIENSE', pos: 'P35'},\n", + " {id: 143, name: 'SALGADO FILHO', prestadora: 'CAXIENSE', pos: 'P35'},\n", + " {id: 144, name: 'ESPLANADA', prestadora: 'CAXIENSE', pos: 'P36'},\n", + " {id: 145, name: 'MONTES CLAROS', prestadora: 'GIRATUR', pos: 'P36'},\n", + " {id: 146, name: 'BRASÍLIA', prestadora: 'CAXIENSE', pos: 'P37'},\n", + " {id: 147, name: 'LOTEAMENTO BACHI', prestadora: 'CAXIENSE', pos: 'P37'},\n", + " {id: 148, name: 'PARADA CRISTAL', prestadora: 'CAXIENSE', pos: 'P37'},\n", + " {id: 149, name: 'SÃO VALENTIN (Parada Cristal)', prestadora: 'CAXIENSE', pos: 'P37'},\n", + " {id: 150, name: 'VILA ALPINA', prestadora: 'CAXIENSE', pos: 'P37'},\n", + " {id: 151, name: 'CASTELO', prestadora: 'CAXIENSE', pos: 'P38'},\n", + " {id: 152, name: 'SANTO HOMOBOM', prestadora: 'CAXIENSE', pos: 'P38'},\n", + " {id: 153, name: 'SÃO CRISTOVÃO', prestadora: 'CAXIENSE', pos: 'P38'},\n", + " {id: 154, name: 'ARCO BALENO', prestadora: 'CAXIENSE', pos: 'P39'},\n", + " {id: 155, name: 'SÃO CAETANO (Mobitec)', prestadora: 'CAXIENSE', pos: 'P40'},\n", + " {id: 156, name: 'SÃO CAETANO DO SUL', prestadora: 'CAXIENSE', pos: 'P40'},\n", + " {id: 157, name: '3ª LÉGUA', prestadora: 'CAXIENSE', pos: 'P41'},\n", + " {id: 158, name: 'NOSSA SENHORA DAS GRAÇAS', prestadora: 'CAXIENSE', pos: 'P41'},\n", + " {id: 159, name: 'ORIENTAL', prestadora: 'CAXIENSE', pos: 'P41'},\n", + " {id: 160, name: 'SANTA CORONA', prestadora: 'CAXIENSE', pos: 'P42'},\n", + " {id: 161, name: 'SANTOS DUMONT', prestadora: 'CAXIENSE', pos: 'P42'},\n", + " {id: 162, name: 'CRISTO REDENTOR', prestadora: 'CAXIENSE', pos: 'P43'},\n", + " {id: 163, name: 'EXPOSIÇÃO', prestadora: 'CAXIENSE', pos: 'P43'},\n", + " {id: 164, name: 'IPIRANGA', prestadora: 'CAXIENSE', pos: 'P43'},\n", + " {id: 165, name: 'PANAZZOLO', prestadora: 'CAXIENSE', pos: 'P43'},\n", + " {id: 166, name: 'RIO BRANCO(Baixo)', prestadora: 'CAXIENSE', pos: 'P43'},\n", + " {id: 167, name: 'SÃO LEOPOLDO', prestadora: 'CAXIENSE', pos: 'P43'},\n", + " {id: 168, name: 'MORADA DOS ALPES', prestadora: 'CAXIENSE', pos: 'P44'},\n", + " {id: 169, name: 'PARQUE OÁSIS (Via Bortolo Zanrosso)', prestadora: 'CAXIENSE', pos: 'P44'},\n", + " {id: 170, name: 'BRANDALISE', prestadora: 'CAXIENSE', pos: 'P45'},\n", + " {id: 171, name: 'COLINA DO SOL', prestadora: 'CAXIENSE', pos: 'P45'},\n", + " {id: 172, name: 'SANTA FÉ', prestadora: 'CAXIENSE', pos: 'P45'},\n", + " {id: 173, name: 'VENEZZA', prestadora: 'CAXIENSE', pos: 'P45'},\n", + " {id: 174, name: 'VILA MAESTRA (RS 122)', prestadora: 'CAXIENSE', pos: 'P45'},\n", + " {id: 175, name: 'BELO HORIZONTE', prestadora: 'CAXIENSE', pos: 'P46'},\n", + " {id: 176, name: 'PORTAL DA MAESTRA', prestadora: 'CAXIENSE', pos: 'P46'},\n", + " {id: 177, name: 'VILA IPÊ', prestadora: 'CAXIENSE', pos: 'P46'},\n", + " {id: 178, name: 'FÁTIMA', prestadora: 'CAXIENSE', pos: 'P47'},\n", + " {id: 179, name: 'INTERLAGOS(Via Domingos Chies - Danfoss)', prestadora: 'CAXIENSE', pos: 'P47'},\n", + " {id: 180, name: 'JARDIM ESMERALDA', prestadora: 'CAXIENSE', pos: 'P47'},\n", + " {id: 181, name: 'JARDIM IRACEMA I (Campo Canarinho e Mercado Duarte)', prestadora: 'CAXIENSE', pos: 'P48'},\n", + " {id: 182, name: 'SANTO ANTÔNIO', prestadora: 'CAXIENSE', pos: 'P48'},\n", + " {id: 183, name: 'SERRANO (Supermercado Andrezza)', prestadora: 'CAXIENSE', pos: 'P49'},\n", + " {id: 184, name: 'JARDIM ELDORADO', prestadora: 'CAXIENSE', pos: 'P50'},\n", + " {id: 185, name: 'SERRANO (Via Assis Mariani)', prestadora: 'CAXIENSE', pos: 'P50'},\n", + " {id: 186, name: 'SERRANO (Via Imobiliária Minetto - Igreja Católica)', prestadora: 'CAXIENSE', pos: 'P51'},\n", + " {id: 187, name: 'JARDIM IRACEMA II (Serraria e Sede Sindicato Metalúrgicos)', prestadora: 'CAXIENSE', pos: 'P52'},\n", + " {id: 188, name: 'LOTEAMENTO FILOMENA', prestadora: 'CAXIENSE', pos: 'P52'},\n", + " {id: 189, name: 'NOSSA SENHORA DAS DORES', prestadora: 'CAXIENSE', pos: 'P52'},\n", + " {id: 190, name: 'SEDE SINDICATO METALÚRGICO', prestadora: 'CAXIENSE', pos: 'P52'},\n", + " {id: 191, name: 'ALTOS DO SEMINÁRIO(ALTO)', prestadora: 'CAXIENSE', pos: 'P53'},\n", + " {id: 192, name: 'CENTENÁRIO', prestadora: 'CAXIENSE', pos: 'P53'},\n", + " {id: 193, name: 'JARDIM ITÁLIA', prestadora: 'CAXIENSE', pos: 'P53'},\n", + " {id: 194, name: 'NOSSA SENHORA DA SAÚDE', prestadora: 'CAXIENSE', pos: 'P53'},\n", + " {id: 195, name: 'PIONEIRO', prestadora: 'CAXIENSE', pos: 'P53'},\n", + " {id: 196, name: 'POR DO SOL', prestadora: 'CAXIENSE', pos: 'P53'},\n", + " {id: 197, name: 'VINHEDOS', prestadora: 'CAXIENSE', pos: 'P53'},\n", + " {id: 198, name: 'ANA RECH', prestadora: 'CAXIENSE', pos: 'P54'},\n", + " {id: 199, name: 'SOLAR DO PRADO', prestadora: 'CAXIENSE', pos: 'P54'},\n", + "];\n", + "var itemsTerQuar = [\n", + " //name key is must.It is to show the text in front\n", + " {id: 1, name: 'CARAVAGIO', prestadora: 'GIRATUR', pos: 'P01'},\n", + " {id: 2, name: 'MONTES CLAROS', prestadora: 'GIRATUR', pos: 'P01'},\n", + " {id: 3, name: 'NOSSA SENHORA DAS GRAÇAS', prestadora: 'GIRATUR', pos: 'P01'},\n", + " {id: 4, name: 'ORIENTAL', prestadora: 'GIRATUR', pos: 'P01'},\n", + " {id: 5, name: 'SALGADO FILHO', prestadora: 'GIRATUR', pos: 'P01'},\n", + " {id: 6, name: '18 DO FORTE', prestadora: 'GIRATUR', pos: 'P02'},\n", + " {id: 7, name: 'CENTRO', prestadora: 'GIRATUR', pos: 'P02'},\n", + " {id: 8, name: 'GAUCHINHA', prestadora: 'GIRATUR', pos: 'P02'},\n", + " {id: 9, name: 'KAISER', prestadora: 'GIRATUR', pos: 'P02'},\n", + " {id: 10, name: 'RIO BRANCO', prestadora: 'GIRATUR', pos: 'P02'},\n", + " {id: 11, name: 'SAGRADA FAMÍLIA ', prestadora: 'GIRATUR', pos: 'P02'},\n", + " {id: 12, name: 'CASTELO', prestadora: 'GIRATUR', pos: 'P03'},\n", + " {id: 13, name: 'JARDIM DAS HORTÊNCIAS', prestadora: 'GIRATUR', pos: 'P03'},\n", + " {id: 14, name: 'SÃO CIRO', prestadora: 'GIRATUR', pos: 'P03'},\n", + " {id: 15, name: 'SÃO CRISTOVÃO', prestadora: 'GIRATUR', pos: 'P03'},\n", + " {id: 16, name: 'SECULO XX', prestadora: 'GIRATUR', pos: 'P03'},\n", + " {id: 17, name: 'CHARQUEADAS', prestadora: 'GIRATUR', pos: 'P04'},\n", + " {id: 18, name: 'DESVIO RIZZO', prestadora: 'GIRATUR', pos: 'P04'},\n", + " {id: 19, name: 'PLANALTO RIO BRANCO', prestadora: 'GIRATUR', pos: 'P04'},\n", + " {id: 20, name: 'ROSÁRIO', prestadora: 'GIRATUR', pos: 'P04'},\n", + " {id: 21, name: 'SÃO FRANCISCO', prestadora: 'GIRATUR', pos: 'P04'},\n", + " {id: 22, name: 'CIDADE NOVA II', prestadora: 'CAXIENSE', pos: 'P05'},\n", + " {id: 23, name: 'INDUSTRIAL', prestadora: 'CAXIENSE', pos: 'P05'},\n", + " {id: 24, name: 'MARIANE', prestadora: 'CAXIENSE', pos: 'P05'},\n", + " {id: 25, name: 'PERIMETRAL - CASA DE PEDRA', prestadora: 'CAXIENSE', pos: 'P05'},\n", + " {id: 26, name: 'PERIMETRAL - MAX ATACADO', prestadora: 'CAXIENSE', pos: 'P05'},\n", + " {id: 27, name: 'ANA RECH', prestadora: 'GIRATUR', pos: 'P06'},\n", + " {id: 28, name: 'PARADA CRISTAL', prestadora: 'GIRATUR', pos: 'P06'},\n", + " {id: 29, name: 'SOLAR DO PRADO', prestadora: 'GIRATUR', pos: 'P06'},\n", + " {id: 30, name: 'BAIRRO SÃO LEOPOLDO', prestadora: 'GIRATUR', pos: 'P07'},\n", + " {id: 31, name: 'CRISTO REDENTOR', prestadora: 'GIRATUR', pos: 'P07'},\n", + " {id: 32, name: 'EXPOSIÇÃO', prestadora: 'GIRATUR', pos: 'P07'},\n", + " {id: 33, name: 'PANAZZOLO', prestadora: 'GIRATUR', pos: 'P07'},\n", + " {id: 34, name: 'CRUZEIRO', prestadora: 'GIRATUR', pos: 'P08'},\n", + " {id: 35, name: 'SÃO VIRGÍLIO', prestadora: 'GIRATUR', pos: 'P08'},\n", + " {id: 36, name: 'VILA LEON', prestadora: 'GIRATUR', pos: 'P08'},\n", + " {id: 37, name: 'FORQUETA', prestadora: 'BRAGÉ', pos: 'P09'},\n", + " {id: 38, name: 'PARQUE DAS ROSAS', prestadora: 'BRAGÉ', pos: 'P09'},\n", + " {id: 39, name: 'PIONEIRO', prestadora: 'BRAGÉ', pos: 'P09'},\n", + " {id: 40, name: 'SÃO LUCAS ', prestadora: 'BRAGÉ', pos: 'P09'},\n", + " {id: 41, name: 'CENTENÁRIO ', prestadora: 'BRAGÉ', pos: 'P10'},\n", + " {id: 42, name: 'COLINA SORRISO', prestadora: 'BRAGÉ', pos: 'P10'},\n", + " {id: 43, name: 'FÁTIMA', prestadora: 'BRAGÉ', pos: 'P10'},\n", + " {id: 44, name: 'MONTE BÉRICO', prestadora: 'BRAGÉ', pos: 'P10'},\n", + " {id: 45, name: 'NOSSA SENHORA DO ROSÁRIO', prestadora: 'BRAGÉ', pos: 'P10'},\n", + " {id: 46, name: 'PIONEIRO', prestadora: 'BRAGÉ', pos: 'P10'},\n", + " {id: 47, name: 'FÁTIMA', prestadora: 'BRAGÉ', pos: 'P11'},\n", + " {id: 48, name: 'MONTE BÉRICO', prestadora: 'BRAGÉ', pos: 'P11'},\n", + " {id: 49, name: 'NOSSA SENHORA DO ROSÁRIO', prestadora: 'BRAGÉ', pos: 'P11'},\n", + " {id: 50, name: 'PARQUE OASIS ', prestadora: 'BRAGÉ', pos: 'P11'},\n", + " {id: 51, name: 'PIONEIRO', prestadora: 'BRAGÉ', pos: 'P11'},\n", + " {id: 52, name: 'POR DO SOL', prestadora: 'BRAGÉ', pos: 'P11'},\n", + " {id: 53, name: 'CENTRO (VINTE DE SETEMBRO)', prestadora: 'BRAGÉ', pos: 'P12'},\n", + " {id: 54, name: 'MARECHAL FLORIANO', prestadora: 'BRAGÉ', pos: 'P12'},\n", + " {id: 55, name: 'SAGRADA FAMÍLIA ', prestadora: 'BRAGÉ', pos: 'P12'},\n", + " {id: 56, name: 'BELO HORIZONTE', prestadora: 'BRAGÉ', pos: 'P13'},\n", + " {id: 57, name: 'COLINA DO SOL', prestadora: 'BRAGÉ', pos: 'P13'},\n", + " {id: 58, name: 'PORTAL DA MAESTRA', prestadora: 'BRAGÉ', pos: 'P13'},\n", + " {id: 59, name: 'SANTA FÉ', prestadora: 'BRAGÉ', pos: 'P13'},\n", + " {id: 60, name: 'SANTO ANTONIO', prestadora: 'BRAGÉ', pos: 'P13'},\n", + " {id: 61, name: 'CAMPOS DA SERRA', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 62, name: 'DE ZORZI ', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 63, name: 'DE ZORZI II', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 64, name: 'DIAMANTINO', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 65, name: 'PENA BRANCA', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 66, name: 'PRESIDENTE VARGAS', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 67, name: 'SÃO LUIZ DA 6ª LÉGUA', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 68, name: 'TREVISO', prestadora: 'UNIDOS', pos: 'P14'},\n", + " {id: 69, name: 'BELA VISTA', prestadora: 'UNIDOS', pos: 'P15'},\n", + " {id: 70, name: 'MONTE REALI', prestadora: 'UNIDOS', pos: 'P15'},\n", + " {id: 71, name: 'PAIQUERE', prestadora: 'UNIDOS', pos: 'P15'},\n", + " {id: 72, name: 'PLANALTO ', prestadora: 'UNIDOS', pos: 'P15'},\n", + " {id: 73, name: 'SÃO VITOR', prestadora: 'UNIDOS', pos: 'P15'},\n", + " {id: 74, name: 'VILA MARI', prestadora: 'UNIDOS', pos: 'P15'},\n", + " {id: 75, name: 'VITORIA', prestadora: 'UNIDOS', pos: 'P15'},\n", + " {id: 76, name: '1º DE MAIO', prestadora: 'GIRATUR', pos: 'P16'},\n", + " {id: 77, name: 'JARDIM AMÉRICA', prestadora: 'GIRATUR', pos: 'P16'},\n", + " {id: 78, name: 'PIO X', prestadora: 'GIRATUR', pos: 'P16'},\n", + " {id: 79, name: 'SÃO JOSÉ', prestadora: 'GIRATUR', pos: 'P16'},\n", + " {id: 80, name: 'ELDORADO', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 81, name: 'IRACEMA', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 82, name: 'SERRANO', prestadora: 'CAXIENSE', pos: 'P17'},\n", + " {id: 83, name: '4ª LÉGUA', prestadora: 'GIRATUR', pos: 'P18'},\n", + " {id: 84, name: 'ALTOS DE GALÓPOLIS', prestadora: 'GIRATUR', pos: 'P18'},\n", + " {id: 85, name: 'GALÓPOLIS', prestadora: 'GIRATUR', pos: 'P18'},\n", + " {id: 86, name: 'SANTA CORONA', prestadora: 'GIRATUR', pos: 'P18'},\n", + " {id: 87, name: 'SANTOS DUMONT', prestadora: 'GIRATUR', pos: 'P18'},\n", + " {id: 88, name: 'VILA LOBOS', prestadora: 'GIRATUR', pos: 'P18'},\n", + " {id: 89, name: 'ARCO BALENO', prestadora: 'BRAGÉ', pos: 'P19'},\n", + " {id: 90, name: 'BOM PASTOR', prestadora: 'BRAGÉ', pos: 'P19'},\n", + " {id: 91, name: 'SÃO CAETANO', prestadora: 'BRAGÉ', pos: 'P19'},\n", + " {id: 92, name: 'VILA VERDE', prestadora: 'BRAGÉ', pos: 'P19'}, \n", + "];\n", + "export default class App extends React.Component {\n", + " constructor() {\n", + " super();\n", + " this.state = {\n", + " serverData: [],\n", + " //Data Source for the\n", + " modalVisible: false,\n", + " };\n", + " }\n", + " render() {\n", + " return (\n", + " \n", + " \n", + " );\n", + " }\n", + "}\n", + "\n", + "const styles = StyleSheet.create({\n", + " container: {\n", + " flex: 1,\n", + " backgroundColor: '#ecf0f1',\n", + " padding: 8,\n", + " },\n", + " paragraphSwipe: {\n", + " margin: 12,\n", + " fontSize: 20,\n", + " fontWeight: 'bold',\n", + " textAlign: 'center',\n", + " color: '#34495e',\n", + " },\n", + " modalSwipe: {\n", + " justifyContent: 'flex-start',\n", + " backgroundColor: '#e5e5e5',\n", + " marginHorizontal: 0,\n", + " marginBottom: 0,\n", + " marginTop: Platform.OS === 'ios' ? 50 : 50,\n", + " borderBottomLeftRadius: 0,\n", + " borderBottomRightRadius: 0,\n", + " borderTopLeftRadius: 15,\n", + " borderTopRightRadius: 15,\n", + " overflow: 'hidden',\n", + " },\n", + " buttonStyleSwipeMenu: {\n", + " padding: 8,\n", + " margin: 3,\n", + " fontWeight: 'bold',\n", + " borderRadius: 5,\n", + " backgroundColor: '#FF3D00',\n", + " textAlign: 'center',\n", + " color: 'white',\n", + " fontSize: 16,\n", + " alignItems: 'center',\n", + " },\n", + " modalSwipeAviso: {\n", + " justifyContent: 'flex-start',\n", + " backgroundColor: '#e5e5e5',\n", + " marginHorizontal: 20,\n", + " marginBottom: 200,\n", + " marginTop: Platform.OS === 'ios' ? 85 : 85,\n", + " borderBottomLeftRadius: 20,\n", + " borderBottomRightRadius: 20,\n", + " borderTopLeftRadius: 20,\n", + " borderTopRightRadius: 20,\n", + " overflow: 'hidden',\n", + " },\n", + " close:{\n", + " position:'absolute',\n", + " padding: 8,\n", + " backgroundColor:'#FF3D00',\n", + " color: 'white',\n", + " borderRadius: 5,\n", + " fontWeight: 'bold',\n", + " fontSize: 15,\n", + " zIndex:9999,\n", + " top: 5,\n", + " right: 5,\n", + "},\n", + "});\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[1][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\"use strict\";(self.webpackChunkrorscharg_blog=self.webpackChunkrorscharg_blog||[]).push([[7855],{7855:function(e,o,c){c.r(o),c.d(o,{theme:function(){return g}});var g=\"{\\n --deckgo-highlight-code-carbon-background: #0c1021;\\n --deckgo-highlight-code-carbon-color: #f8f8f8;\\n --deckgo-highlight-code-token-atrule: #fbde2d;\\n --deckgo-highlight-code-token-comment: #aeaeae;\\n --deckgo-highlight-code-token-comment-rgb: 174, 174, 174;\\n --deckgo-highlight-code-token-function: #ff6400;\\n --deckgo-highlight-code-token-operator: #ffffff;\\n --deckgo-highlight-code-token-property: #ffffff;\\n --deckgo-highlight-code-token-punctuation: #ffffff;\\n --deckgo-highlight-code-token-regex: #61ce3c;\\n --deckgo-highlight-code-token-selector: #8da6ce;\\n}\"}}]);\n", + "//# sourceMappingURL=7855-8cf5bdd5cc3c0977dd26.js.map\n" + ] + } + ], + "source": [ + "print(filtered[10][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\"use strict\";\n", + "var ctx = document.querySelector(\"#canvas\").getContext(\"2d\");\n", + "var angle = 0.75; // Угол разворота ветвей\n", + "var r = Math.floor(Math.random() * Math.floor(255));\n", + "var g = Math.floor(Math.random() * Math.floor(255));\n", + "var b = Math.floor(Math.random() * Math.floor(255));\n", + "\n", + "function tree(length, angle, scale) {\n", + " ctx.fillStyle = \"rgb(\" + r + \",\" + g + \",\" + b + \")\";\n", + " ctx.fillRect(0, 0, 1, length); // Рисуем \"ствол-корень\" дерева\n", + "\n", + " var min_length = 8;\n", + "\n", + " // Обрываем рекурсию, когда линии становятся слишком короткими \n", + " if (length < min_length) {\n", + " return;\n", + " }\n", + "\n", + " ctx.save(); // Сохраняем текущее состояние системы координат\n", + " ctx.translate(0, length); // Сдвигаем \"курсор\" в конец \"ствола-корня\"\n", + " ctx.rotate(angle); // Поворачиваем систему координат на какой-то угол влево\n", + " tree(length * scale, -angle, scale); // Рекурсивно рисуем левую ветвь\n", + " ctx.rotate(2 * -angle); // Поворачиваем систему координат на симметричный угол вправо\n", + " tree(length * scale, angle, scale); // Рекурсивно рисуем правую ветвь\n", + "\n", + " ctx.restore(); // Восстанавливаем начальное состояние системы координат\n", + "}\n", + "\n", + "ctx.translate(document.querySelector(\"#canvas\").clientWidth / 2, 0); // Начальный сдвиг системы координат, чтобы центрировать дерево\n", + "tree(90, angle, 0.75);\n", + "\n", + "function drawFract() {\n", + " tree(90, angle, 0.75);\n", + " r = Math.floor(Math.random() * Math.floor(255));\n", + " g = Math.floor(Math.random() * Math.floor(255));\n", + " b = Math.floor(Math.random() * Math.floor(255));\n", + " color = \"rgb(\" + r + \",\" + g + \",\" + b + \")\";;\n", + "}\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[100][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/**\n", + " * Bootstrap Table Georgian translation\n", + " * Author: Levan Lotuashvili \n", + " */\n", + "(function () {\n", + " 'use strict';\n", + "\n", + " BootstrapTable.locales['ka-GE'] = {\n", + " formatLoadingMessage: function() {\n", + " return 'იტვირთება, გთხოვთ მოიცადოთ...';\n", + " },\n", + " formatRecordsPerPage: function(pageNumber) {\n", + " return pageNumber + ' ჩანაწერი თითო გვერდზე';\n", + " },\n", + " formatShowingRows: function(pageFrom, pageTo, totalRows) {\n", + " return 'ნაჩვენებია ' + pageFrom + '-დან ' + pageTo + '-მდე ჩანაწერი ჯამური ' + totalRows + '-დან';\n", + " },\n", + " formatSearch: function() {\n", + " return 'ძებნა';\n", + " },\n", + " formatNoMatches: function() {\n", + " return 'მონაცემები არ არის';\n", + " },\n", + " formatPaginationSwitch: function() {\n", + " return 'გვერდების გადამრთველის დამალვა/გამოჩენა';\n", + " },\n", + " formatRefresh: function() {\n", + " return 'განახლება';\n", + " },\n", + " formatToggle: function() {\n", + " return 'ჩართვა/გამორთვა';\n", + " },\n", + " formatColumns: function() {\n", + " return 'სვეტები';\n", + " }\n", + " };\n", + " \n", + " $.extend(BootstrapTable.defaults, BootstrapTable.locales['ka-GE']);\n", + "\n", + "})();\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[15][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(self.webpackChunk=self.webpackChunk||[]).push([[355],{6937:(e,t,r)=>{\"use strict\";r.d(t,{Z:()=>E});var n=r(5893),o=r(7294),a=r(3727),s=r(2122),c=r(9756),i=r(5697),l=r.n(i),u=r(4184),d=r.n(u),p=r(3663),f={tag:p.iC,active:l().bool,className:l().string,cssModule:l().object},h=function(e){var t=e.className,r=e.cssModule,n=e.active,a=e.tag,i=(0,c.Z)(e,[\"className\",\"cssModule\",\"active\",\"tag\"]),l=(0,p.mx)(d()(t,!!n&&\"active\",\"breadcrumb-item\"),r);return o.createElement(a,(0,s.Z)({},i,{className:l,\"aria-current\":n?\"page\":void 0}))};h.propTypes=f,h.defaultProps={tag:\"li\"};const b=h;var m={tag:p.iC,listTag:p.iC,className:l().string,listClassName:l().string,cssModule:l().object,children:l().node,\"aria-label\":l().string},g=function(e){var t=e.className,r=e.listClassName,n=e.cssModule,a=e.children,i=e.tag,l=e.listTag,u=e[\"aria-label\"],f=(0,c.Z)(e,[\"className\",\"listClassName\",\"cssModule\",\"children\",\"tag\",\"listTag\",\"aria-label\"]),h=(0,p.mx)(d()(t),n),b=(0,p.mx)(d()(\"breadcrumb\",r),n);return o.createElement(i,(0,s.Z)({},f,{className:h,\"aria-label\":u}),o.createElement(l,{className:b},a))};g.propTypes=m,g.defaultProps={tag:\"nav\",listTag:\"ol\",\"aria-label\":\"breadcrumb\"};const y=g;var x=r(7625),j=r(7703);function v(e){return(v=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function w(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function k(e,t){for(var r=0;r{\"use strict\";r.d(t,{Z:()=>f});var n=r(5893),o=r(7294),a=r(5677),s=r(2701),c=r(684),i=r(7975),l=r(1436),u=r(7625);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var s,c=e[Symbol.iterator]();!(n=(s=c.next()).done)&&(r.push(s.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw a}}return r}(e,t)||function(e,t){if(!e)return;if(\"string\"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===r&&e.constructor&&(r=e.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(e);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{\"use strict\";r.d(t,{Z:()=>E});var n,o=r(5893),a=r(7757),s=r.n(a),c=r(7294),i=r(7703),l=r(1252),u=r(7975),d=r(267),p=r(4670),f=r(6595),h=r(7625),b=r(1436),m=r(3727),g=r(2903);function y(e){return(y=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function j(e,t,r,n,o,a,s){try{var c=e[a](s),i=c.value}catch(e){return void r(e)}c.done?t(i):Promise.resolve(i).then(n,o)}function v(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function s(e){j(a,n,o,s,c,\"next\",e)}function c(e){j(a,n,o,s,c,\"throw\",e)}s(void 0)}))}}function O(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function N(e,t){for(var r=0;r=t.pageNumber||e.pageChangeHandler(r+1)})),Z(C(e),\"firstPageHandler\",(function(){e.state.page<=1||e.pageChangeHandler(1)})),Z(C(e),\"lastPageHandler\",(function(){var t=e.state,r=t.page,n=t.pageNumber;r>=n||e.pageChangeHandler(n)})),Z(C(e),\"pageChangeHandler\",(function(t){var r,n=e.state,o=n.show,a=n.search,s=n.pageNumber;r=1===t?1:t===s?s-2:t-1,e.props.get(t,o,a);var c=r+1,i=r+2;e.setState({page:t,pageFirst:r,pageSecond:c,pageLast:i})})),Z(C(e),\"onClick\",(function(t){t.preventDefault();var r=t.target.href;e.exportData(r)})),Z(C(e),\"exportData\",function(){var t=v(s().mark((function t(r){var n,o,a,c,i,l,u,d,p;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.props.data,o=r.split(\"/\")[r.split(\"/\").length-1],a=title+\".\"+o,c=localStorage.getItem(\"token\"),t.prev=4,(i=new FormData).append(\"data\",n),i.append(\"name\",a),t.next=10,fetch(r,{method:\"POST\",mode:\"cors\",body:i,headers:{Authorization:c}});case 10:return l=t.sent,t.next=13,l.blob();case 13:u=t.sent,d=URL.createObjectURL(u),(p=document.createElement(\"a\")).style.display=\"none\",p.href=d,p.download=a,document.body.appendChild(p),p.click(),window.URL.revokeObjectURL(d),t.next=27;break;case 24:t.prev=24,t.t0=t.catch(4),console.log(t.t0);case 27:case\"end\":return t.stop()}}),t,null,[[4,24]])})));return function(e){return t.apply(this,arguments)}}()),e}return t=i,(r=[{key:\"componentDidUpdate\",value:function(e){var t=this.props,r=t.total,n=t.show;e.total===r&&e.show===n||this.setState({pageNumber:Math.ceil(r/n)})}},{key:\"render\",value:function(){var e=this,t=this.props,r=t.fields,n=t.array,a=t.loading,s=void 0!==a&&a,c=t.total,i=void 0===c?0:c,y=t.limit,x=t.bordered,j=t.xs,v=void 0===j?12:j,O=t.sm,N=void 0===O?12:O,w=t.md,k=void 0===w?12:w,P=t.lg,C=void 0===P?12:P,S=t.xl,Z=void 0===S?12:S,D=t.icon,E=t.title,_=t.add,R=t.link,T=t.className,H=void 0===T?\"\":T,A=t.dark,F=void 0!==A&&A,G=t.borderless,M=t.innerClassName,L=void 0===M?\"\":M,W=t.outerClassName,U=void 0===W?\"\":W,z=t.p0,$=t.select,I=t.children,J=t.selectHandler,B=t.style,X=t.content.cms.pages.components.list,Y=X.all,K=X.first,V=X.last,q=X.loading,Q=X.print,ee=X.pdf,te=X.csv,re=X.excel,ne=X.search,oe=X.show,ae=X.sl,se=X.showing,ce=X.from,ie=X.entries,le=ie.singular,ue=ie.plural,de=this.state,pe=de.show,fe=de.search,he=de.page,be=de.pageFirst,me=de.pageSecond,ge=de.pageLast,ye=de.pageNumber,xe=r.map((function(e){var t=e.name,r=e.fixed;return(0,o.jsx)(\"th\",{className:\"align-middle text-nowrap bg-\"+(F?\"darkblue\":\"soft\"),style:r?{position:\"sticky\",right:0}:{},children:t},t)}));xe.unshift((0,o.jsx)(\"th\",{className:\"text-center align-middle\",children:ae},\"#\")),$&&xe.unshift((0,o.jsx)(\"th\",{className:\"align-middle text-center\",children:(0,o.jsx)(\"input\",{type:\"checkbox\",onClick:J,className:\"select_all\"})},\"select_all\"));var je=n.map((function(e,t){if(y&&t>=y)return null;var n=[(0,o.jsx)(\"th\",{className:\"text-center align-middle\",children:(\"All\"===pe?0:(he-1)*pe)+t+1},\"primary\"+t)];return $&&n.unshift((0,o.jsx)(\"th\",{className:\"text-center align-middle\",children:(0,o.jsx)(\"input\",{type:\"checkbox\",value:e._id})},\"secondary\"+t)),r.forEach((function(t){var r=t.key,a=t.minWidth,s=t.fixed;n.push((0,o.jsx)(\"td\",{className:\"align-middle text-nowrap\",style:(0,g.v4)({minWidth:a,borderColor:F?\"#606060\":\"#DEE2E6\"},s?{position:\"sticky\",right:0,backgroundColor:F?\"#1B223F\":\"#F4F4F4\"}:{}),children:e[r]},r))})),(0,o.jsx)(\"tr\",{className:\"align-middle\",children:n},t+1)})),ve=i%pe,Oe=0===i?i:0!==ve?ve:pe;return(0,o.jsxs)(l.Z,{xs:v,sm:N,md:k,lg:C,xl:Z,className:U,children:[(0,o.jsx)(\"input\",{type:\"hidden\",id:\"table-show\",value:pe}),(0,o.jsx)(\"input\",{type:\"hidden\",id:\"table-page\",value:he}),(0,o.jsx)(\"input\",{type:\"hidden\",id:\"table-search\",value:fe}),(0,o.jsxs)(\"div\",{className:\"rounded-4 d-flex justify-content-between align-items-center mb-5 mt-3 py-4 px-4 text-large bg-\".concat(F?\"grayblue\":\"yellow-10\",\" \").concat(H),children:[(0,o.jsxs)(\"span\",{className:\"d-inline-flex align-items-center text-700 text-brown\",children:[D?(0,o.jsx)(h.G,{fixedWidth:!0,className:\"mr-2\",icon:D,size:\"lg\"}):null,(0,o.jsx)(\"span\",{className:\"text-\".concat(F?\"light\":\"dark\"),children:E})]}),_?(0,o.jsx)(m.rU,{to:R,children:(0,o.jsxs)(u.Z,{color:\"green\",size:\"lg\",className:\"rounded-2\",children:[(0,o.jsx)(h.G,{icon:b.KtF,fixedWidth:!0,className:\"mr-2\"}),_]})}):null]}),(0,o.jsxs)(\"div\",{className:\"d-flex flex-column \".concat(F?\"bg-grayblue text-light \":\" \").concat(H),style:B,children:[(0,o.jsx)(\"div\",{className:\"p-4 border-bottom border-\".concat(F?\"border\":\"soft\",\" text-brown text-700 position-relative\"),children:(0,o.jsxs)(d.Z,{className:\"align-items-center justify-content-between\",children:[(0,o.jsx)(\"div\",{className:\"col-6 pb-2 pb-lg-0 col-lg-2\",children:(0,o.jsxs)(\"div\",{className:\"d-flex align-items-center text-\".concat(F?\"light\":\"secondary\",\" rounded-2\"),children:[(0,o.jsx)(\"div\",{className:\"border-right border-border-50\",children:(0,o.jsx)(\"div\",{className:\"px-3 py-2 font-weight-bold h-100 bg-\".concat(F?\"darkblue\":\"soft\"),children:oe})}),(0,o.jsxs)(p.Z,{type:\"select\",name:\"show\",onChange:this.inputChangedHandler,className:\"px-3 py-2 text-center rounded-0 h-100 d-block text-reset border-bottom-0 border-\".concat(F?\"darkblue\":\"soft\",\" bg-\").concat(F?\"darkblue\":\"soft\"),style:{width:\"5rem\"},children:[(0,o.jsx)(\"option\",{value:\"10\",children:\"10\"}),(0,o.jsx)(\"option\",{value:\"25\",children:\"25\"}),(0,o.jsx)(\"option\",{value:\"50\",children:\"50\"}),(0,o.jsx)(\"option\",{value:\"100\",children:\"100\"}),(0,o.jsx)(\"option\",{value:\"All\",children:Y})]})]})}),(0,o.jsx)(\"div\",{className:\"col-6 d-lg-none pb-2 pb-lg-0\",children:(0,o.jsx)(p.Z,{type:\"search\",name:\"search\",onChange:this.inputChangedHandler,className:\"bg-\".concat(F?\"darkblue\":\"soft\",\" border-0 rounded-2\"),placeholder:\"Search...\"})}),(0,o.jsx)(\"div\",{className:\"col-lg-4 pb-2 pb-lg-0 rounded-2 overflow-hidden\",children:(0,o.jsxs)(\"div\",{className:\"bg-\".concat(F?\"darkblue text-light\":\"soft text-secondary\",\" d-flex justify-content-around align-items-center font-weight-bold py-3\"),children:[(0,o.jsxs)(\"a\",{href:\"/api/export/xlsx\",onClick:this.onClick,className:\"px-2 export text-decoration-none text-reset\",children:[(0,o.jsx)(h.G,{icon:b.icc,className:\"text-\".concat(F?\"white\":\"darkblue\",\" mr-2\")}),re]}),(0,o.jsxs)(\"a\",{href:\"/api/export/pdf\",onClick:this.onClick,className:\"px-2 export text-decoration-none text-reset\",children:[(0,o.jsx)(h.G,{icon:b.gSj,className:\"text-danger mr-2\"}),ee]}),(0,o.jsxs)(\"a\",{href:\"/api/export/csv\",onClick:this.onClick,className:\"px-2 export text-decoration-none text-reset\",children:[(0,o.jsx)(h.G,{icon:b.fUD,className:\"text-green mr-2\"}),te]}),(0,o.jsxs)(\"a\",{href:\"/api/export/pdf\",onClick:this.onClick,className:\"px-2 export text-decoration-none text-reset\",children:[(0,o.jsx)(h.G,{icon:b.wf8,className:\"text-primary mr-2\"}),Q]})]})}),(0,o.jsx)(\"div\",{className:\"col-lg-2 d-none d-lg-block\",children:(0,o.jsx)(p.Z,{type:\"search\",name:\"search\",onChange:this.inputChangedHandler,className:\"bg-\".concat(F?\"darkblue\":\"soft text-secondary\",\" border-0 rounded-2\"),placeholder:\"\".concat(ne,\"...\")})})]})}),(0,o.jsxs)(\"div\",{className:\"flex-fill d-flex flex-column \"+(z?\"p-0\":\"p-4\"),children:[(0,o.jsx)(\"div\",{className:\"table-responsive flex-fill\",children:(0,o.jsxs)(f.Z,{dark:F,bordered:x,hover:!0,borderless:G,className:'bg-\"'.concat(F?\"darkblue\":\"\",'\" ').concat(L),children:[(0,o.jsx)(\"thead\",{className:F?\"text-light\":\"bg-soft text-secondary\",children:(0,o.jsx)(\"tr\",{children:xe})}),(0,o.jsx)(\"tbody\",{className:F?\"bg-darklight-50 text-light\":\"bg-soft-50 text-secondary\",children:!s&&je})]})}),s&&(0,o.jsx)(l.Z,{xs:12,className:\"text-center\",children:(0,o.jsxs)(\"div\",{className:\"text-center py-3\",children:[q,\"...\"]})}),(0,o.jsx)(\"div\",{children:I}),(0,o.jsxs)(\"div\",{children:[(0,o.jsxs)(\"div\",{children:[se,\" \",+he!==ye&&+he>1?pe:Oe,\" \",ce,\" \",i,\" \",i>1?ue:le,\".\"]}),(0,o.jsx)(\"div\",{className:\"pt-2 d-flex justify-content-end\",children:\"All\"===pe?null:(0,o.jsxs)(\"ul\",{className:\"pagination btn-group\",children:[1===he?null:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(\"li\",{className:\"btn btn-yellow\",onClick:this.firstPageHandler,children:[(0,o.jsx)(h.G,{icon:b.UXu,className:\"mr-2\"}),K]}),(0,o.jsx)(\"li\",{className:\"btn btn-darkblue text-secondary\",onClick:this.previousPageHandler,children:(0,o.jsx)(h.G,{icon:b.A35})})]}),(0,o.jsx)(\"li\",{className:\"btn btn-darkblue \"+(he===be?\"text-700 active\":\"secondary\"),onClick:function(){return e.pageChangeHandler(be)},children:be}),ye>1?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(\"li\",{className:\"btn btn-darkblue \"+(he===me?\"text-700 active\":\"secondary\"),onClick:function(){return e.pageChangeHandler(me)},children:me}),ye>2?(0,o.jsx)(\"li\",{className:\"btn btn-darkblue \"+(he===ge?\"text-700 active\":\"secondary\"),onClick:function(){return e.pageChangeHandler(ge)},children:ge}):null,he===ye?null:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(\"li\",{className:\"btn btn-darkblue text-secondary\",onClick:this.nextPageHandler,children:(0,o.jsx)(h.G,{icon:b._tD})}),(0,o.jsxs)(\"li\",{className:\"btn btn-myprimary\",onClick:this.lastPageHandler,children:[V,(0,o.jsx)(h.G,{icon:b.cLY,className:\"ml-2\"})]})]})]}):null]})})]})]})]})]})}}])&&N(t.prototype,r),a&&N(t,a),i}(c.Component);const E=(0,i.$j)((function(e){return function(e){for(var t=1;t{\"use strict\";r.d(t,{Z:()=>o});var n=r(5893);r(7294);const o=function(e){var t=e.children,r=e.dark,o=void 0!==r&&r;return(0,n.jsx)(\"div\",{className:\"bg-\"+(o?\"grayblue\":\"soft\")+\" py-4 pl-5 pr-4 position-relative\",children:t})}},9412:(e,t,r)=>{\"use strict\";r.d(t,{Z:()=>o});var n=r(5893);r(7294);const o=function(e){var t=e.err;return t?(0,n.jsx)(\"div\",{className:\"alert alert-danger\",children:t.message?t.message:t}):null}},2740:(e,t,r)=>{\"use strict\";r.d(t,{Z:()=>j});var n=r(5893),o=r(7294),a=r(2122),s=r(9756),c=r(6156),i=r(5697),l=r.n(i),u=r(4184),d=r.n(u),p=r(3663),f=r(9638);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function b(e){for(var t=1;t{\"use strict\";r.d(t,{Z:()=>a});var n=r(5893),o=(r(7294),r(7625));const a=function(e){var t=e.icon,r=e.children,a=e.className,s=e.user,c=e.dark,i=void 0!==c&&c;return(0,n.jsxs)(\"div\",{className:\"\".concat(s?\"h4\":\"h2\",\" mb-2 text-\").concat(i?\"light\":\"secondary\",\" \").concat(a),children:[(0,n.jsx)(o.G,{icon:t,className:\"mr-2 text-\".concat(i?\"orange\":\"reset\"),fixedWidth:!0}),r]})}},1132:(e,t,r)=>{\"use strict\";r.d(t,{Z:()=>o});var n=r(5893);r(7294);const o=function(e){var t=e.children,r=e.className,o=e.dark,a=void 0!==o&&o;return(0,n.jsx)(\"div\",{className:\"text-\".concat(a?\"light\":\"secondary\",\" lead small ml-4 pl-3 \").concat(r),children:t})}},7355:(e,t,r)=>{\"use strict\";r.r(t),r.d(t,{default:()=>E});var n=r(5893),o=r(7294),a=r(7703),s=r(5977),c=r(3727),i=r(267),l=r(7625),u=r(1436),d=r(6937),p=r(1658),f=r(1132),h=r(6471),b=r(9412),m=r(2740),g=r(6792),y=r(342),x=r(7916),j=r(2903);function v(e){return(v=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function w(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function k(e,t){for(var r=0;r{\"use strict\";r.d(t,{Z:()=>f});var n=r(2122),o=r(9756),a=r(7294),s=r(5697),c=r.n(s),i=r(4184),l=r.n(i),u=r(3663),d={className:c().string,cssModule:c().object,size:c().string,bordered:c().bool,borderless:c().bool,striped:c().bool,dark:c().bool,hover:c().bool,responsive:c().oneOfType([c().bool,c().string]),tag:u.iC,responsiveTag:u.iC,innerRef:c().oneOfType([c().func,c().string,c().object])},p=function(e){var t=e.className,r=e.cssModule,s=e.size,c=e.bordered,i=e.borderless,d=e.striped,p=e.dark,f=e.hover,h=e.responsive,b=e.tag,m=e.responsiveTag,g=e.innerRef,y=(0,o.Z)(e,[\"className\",\"cssModule\",\"size\",\"bordered\",\"borderless\",\"striped\",\"dark\",\"hover\",\"responsive\",\"tag\",\"responsiveTag\",\"innerRef\"]),x=(0,u.mx)(l()(t,\"table\",!!s&&\"table-\"+s,!!c&&\"table-bordered\",!!i&&\"table-borderless\",!!d&&\"table-striped\",!!p&&\"table-dark\",!!f&&\"table-hover\"),r),j=a.createElement(b,(0,n.Z)({},y,{ref:g,className:x}));if(h){var v=(0,u.mx)(!0===h?\"table-responsive\":\"table-responsive-\"+h,r);return a.createElement(m,{className:v},j)}return j};p.propTypes=d,p.defaultProps={tag:\"table\",responsiveTag:\"div\"};const f=p}}]);\n" + ] + } + ], + "source": [ + "print(filtered[34][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "25d486f75dfb4d4a8d2941bed2d030bc", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10 [00:00 {\n", + " const { className, primaryFill } = iconProps;\n", + " return React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", className: className },\n", + " React.createElement(\"path\", { d: \"M10.96 16.44a1.5 1.5 0 112.12 2.12 1.5 1.5 0 01-2.12-2.12zm-2.6-2.74a5.23 5.23 0 018.5 1.62 1 1 0 11-1.83.8 3.23 3.23 0 00-5.93-.01 1 1 0 11-1.83-.8c.26-.6.63-1.15 1.09-1.61zm-2.05-3a8.13 8.13 0 0113 2.1 1 1 0 01-1.78.9 6.13 6.13 0 00-10.94-.02 1 1 0 11-1.78-.9c.38-.76.88-1.46 1.5-2.07z\", fill: primaryFill }));\n", + "};\n", + "const Wifi224Filled = wrapIcon_1.default(rawSvg({}), 'Wifi224Filled');\n", + "exports.default = Wifi224Filled;\n", + "\n" + ] + } + ], + "source": [ + "print(filtered[0][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "self.__precacheManifest = (self.__precacheManifest || []).concat([\n", + " {\n", + " \"revision\": \"vqbpgud2ghvjgm1n5hdgjnn5818fzsf2\",\n", + " \"url\": \"/index.html\"\n", + " },\n", + " {\n", + " \"revision\": \"vqbpgud2ghvjgm1n5hdgjnn5818fzsf2\",\n", + " \"url\": \"/static/css/main.28ec31e2.chunk.css\"\n", + " },\n", + " {\n", + " \"revision\": \"8f77005c9e943d456dda\",\n", + " \"url\": \"/static/js/2.dbdf6981.chunk.js\"\n", + " },\n", + " {\n", + " \"revision\": \"603816eec26c1aff4a38bef8d08d40a6\",\n", + " \"url\": \"/static/js/2.dbdf6981.chunk.js.LICENSE.txt\"\n", + " },\n", + " {\n", + " \"revision\": \"vqbpgud2ghvjgm1n5hdgjnn5818fzsf2\",\n", + " \"url\": \"/static/js/main.6d9023c5.chunk.js\"\n", + " },\n", + " {\n", + " \"revision\": \"9b4e396c183e42c1fa5c\",\n", + " \"url\": \"/static/js/runtime-main.09b85ec0.js\"\n", + " },\n", + " {\n", + " \"revision\": \"4b31330b20e3cff3e49d540e4e7175e2\",\n", + " \"url\": \"/static/media/showcase.4b31330b.jpg\"\n", + " }\n", + "]);\n" + ] + } + ], + "source": [ + "print(filtered[1][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'use strict';\n", + "\n", + "var React = require('react');\n", + "var PureRenderMixin = require('react-addons-pure-render-mixin');\n", + "var SvgIcon = require('../../svg-icon');\n", + "\n", + "var ActionAccountBox = React.createClass({\n", + " displayName: 'ActionAccountBox',\n", + "\n", + " mixins: [PureRenderMixin],\n", + "\n", + " render: function render() {\n", + " return React.createElement(\n", + " SvgIcon,\n", + " this.props,\n", + " React.createElement('path', { d: 'M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.11 0-2 .9-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z' })\n", + " );\n", + " }\n", + "\n", + "});\n", + "\n", + "module.exports = ActionAccountBox;\n" + ] + } + ], + "source": [ + "print(filtered[2][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ec48991d5b6149ccb1e0438a632feea4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10 [00:00 2.4\n", + "ds2 = ds.filter(lambda x: x['fertility_ratio'] < 2.8 and x['fertility_ratio'] > 2.5)\n", + "print(f\"percentage samples with fertility_ratio < 3: {len(ds2)*100/len(ds)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'use strict';\n", + "\n", + "module.exports = [\n", + "\t{\n", + "\t\tname: 'hover',\n", + "\t\tretry: 1,\n", + "\t\ttimeout: 30000,\n", + "\t\tspecs: [\n", + "\t\t\t{\n", + "\t\t\t\tname: 'hovers link',\n", + "\t\t\t\ttime: 1000,\n", + "\t\t\t\tbody: () => {\n", + "\t\t\t\t\tnavigate('/test.html');\n", + "\t\t\t\t\thover(text('Link'));\n", + "\t\t\t\t\tis(text('Hovered'));\n", + "\t\t\t\t}\n", + "\t\t\t},\n", + "\t\t\t{\n", + "\t\t\t\tskip: !global.chai,\n", + "\t\t\t\tname: 'fails without target',\n", + "\t\t\t\ttime: 1000,\n", + "\t\t\t\tbody: () => {\n", + "\t\t\t\t\tnavigate('/other.html');\n", + "\t\t\t\t\tnow(\n", + "\t\t\t\t\t\t() => expect(\n", + "\t\t\t\t\t\t\tnow.hover(text('Nothing'))\n", + "\t\t\t\t\t\t).to.be.eventually.rejectedWith(Error)\n", + "\t\t\t\t\t);\n", + "\t\t\t\t}\n", + "\t\t\t}\n", + "\t\t]\n", + "\t}\n", + "];\n", + "\n" + ] + } + ], + "source": [ + "print(ds2[3][\"content\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "let x = 23\n", + "let oX = new Number(23)\n", + "\n", + "console.log(typeof x)\n", + "console.log(typeof oX)\n", + "console.log(oX *2)\n", + "\n", + "'22' * 2\n", + "// Number('22') * 2\n", + "\n", + "let name = 'Pepe'\n", + "let aDatos = []\n", + "\n", + "\n", + "// Importado de elementales.ts\n", + "function numbers() {\n", + " let num = 23\n", + " console.log(num)\n", + " console.log(num.toFixed(2))\n", + " let numPrecision = num.toFixed(2)\n", + " console.log(typeof numPrecision)\n", + " console.log(typeof num)\n", + "}\n", + "numbers()\n" + ] + } + ], + "source": [ + "print(ds2[4][\"content\"])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.4 ('venv')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "fd8fde6f83dada9276d12fdb71d773558994168ed1b3bea457b8db38c02aa2e1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}